0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Armv8-A到底是什么東西呢?

安芯教育科技 ? 來源:老秦談芯 ? 2023-04-19 14:32 ? 次閱讀

前面的文章中經(jīng)常提到Armv8-A。那么到底Armv8-A是什么東西呢?這個(gè)問題要說簡(jiǎn)單也很簡(jiǎn)單,要說復(fù)雜也很復(fù)雜。今天我們花點(diǎn)時(shí)間來簡(jiǎn)單研究一下。

眾所周知,ARM是一家設(shè)計(jì)并授權(quán)處理器和相應(yīng)IP(比如互連總線,中斷處理器,圖像處理器等等)的公司,目前其處理器產(chǎn)品分為三類:

Cortex-A系列:這個(gè)系列主要是應(yīng)用(Application)處理器,這類處理器的特點(diǎn)是高性能,一般支持高速緩存,亂序執(zhí)行,分支預(yù)測(cè),指令多發(fā)射等等技術(shù)。

Cortex-R系列:這個(gè)系列主要是實(shí)時(shí)(Real-time)處理器,這類處理器的特點(diǎn)是對(duì)于外部事件的響應(yīng)時(shí)間在可控范圍,這里的實(shí)時(shí)并不是說處理器的速度快,而是對(duì)外部事件的響應(yīng)時(shí)間可預(yù)測(cè)。

Cortex-M系列:這個(gè)系列主要是微控制(Micro-controller)處理器,這類處理器一般設(shè)計(jì)相對(duì)簡(jiǎn)單,芯片規(guī)模小,功耗值低,一般作為低成本芯片的控制器使用。

這三個(gè)系列的代表字母加起來剛好是ARM,所以這應(yīng)該是ARM公司故意為之的。其實(shí)ARM公司的處理器產(chǎn)品在很早的時(shí)候并不是這么命名的,比如很早之前的ARM9,ARM11?,F(xiàn)在ARM的處理器產(chǎn)品又增加了Neoverse系列,與A系列的處理器區(qū)分開來,不過這都是后話,暫時(shí)不用管它,還是認(rèn)為是三個(gè)系列好了。

再返回來說Armv8.x-A,前綴Arm不用解釋了;v表示的是版本(version);8表示的是大版本號(hào);x表示的是擴(kuò)展版本號(hào),也稱為小版本號(hào),比如8.4就是大版本是8,擴(kuò)展版本是4,Armv8-A的基礎(chǔ)版本是Armv8.0-A;最后的A表示的是A系列,所以一定還有R和M對(duì)不?不過本人對(duì)于R和M了解很少,就不介紹了,后面的內(nèi)容都是以A為基礎(chǔ)。

Armv8-A的執(zhí)行狀態(tài)有兩種,AArch64和AArch32。相應(yīng)的Armv8-A支持兩種指令集:AArch64(A64)和AArch32,其中AArch32又分為A32和T32。A64是固定長度指令集,指令編碼32-bit;A32同樣是固定長度指令集,32-bit指令編碼;T32是變長指令集,16-bit和32-bit指令編碼。由于A32和T32主要是為了向前兼容,在Armv8-A中實(shí)際應(yīng)用較少,后面內(nèi)容基本都是介紹AArch64的相關(guān)內(nèi)容。

AArch64中擴(kuò)展了一些寄存器,包括以下:31個(gè)通用的64位寄存器 (X0-X30),處理器狀態(tài)寄存器PSTATE及相關(guān)的若干寄存器,堆棧寄存器SP等等。以后會(huì)找時(shí)間專門分析一下這些寄存器。 Armv8-A中定義了四種異常等級(jí)(Exception Level),這在前面的文章中重復(fù)過很多次了。

pYYBAGQ_i12AL_jaAACkCerLT7s734.jpg
poYBAGQ_i2WATi0VAAHD4DfjaGs625.jpg

Armv8-A支持GICv3,GICv4,SMMU3。 對(duì)于其處理器具體實(shí)現(xiàn)的指令集,ARM有一個(gè)約定,比如某個(gè)處理器實(shí)現(xiàn)了Armv8.1-A,那么該處理器:

必須實(shí)現(xiàn)Armv8.0-A和Armv8.1-A強(qiáng)制要求的功能

可以實(shí)現(xiàn)某些Armv8.2-A中擴(kuò)展的功能

不允許實(shí)現(xiàn)Armv8.3-A和更高版本擴(kuò)展的功能

對(duì)于Armv8.0-A要求的功能,以后有機(jī)會(huì)慢慢分析。這不是一朝一夕能完成的,畢竟單其架構(gòu)文檔已經(jīng)上萬頁了。今天先簡(jiǎn)單列一下Armv8.0-A以后的版本所擴(kuò)展的功能,后面我們?cè)俾治鯝rmv8.0-A的基礎(chǔ)功能和這些擴(kuò)展功能。

1. Armv8.1-A

Atomic memory access instructions (AArch64)

Limited Order regions (AArch64)

Increased Virtual Machine Identifier (VMID) size, and Virtualization Host Extensions (AArch64)

Privileged Access Never (PAN) (AArch32 and AArch64)

2. Armv8.2-A

Support for 52-bit addresses (AArch64)

The ability for PEs to share Translation Lookaside Buffer (TLB) entries (AArch32 and AArch64)

FP16 data processing instructions (AArch32 and AArch64)

Statistical profiling (AArch64)

Reliability Availability Serviceability (RAS) support becomes mandatory (AArch32 and AArch64)

3. Armv8.3-A

Pointer authentication (AArch64)

Nested virtualization (AArch64)

Advanced Single Instruction Multiple Data (SIMD) complex number support (AArch32 and AArch64)

Improved JavaScript data type conversion support (AArch32 and AArch64)

A change to the memory consistency model (AArch64)

ID mechanism support for larger system-visible caches (AArch32 and AArch64)

4. Armv8.4-A

Secure virtualization (AArch64)

Nested virtualization enhancements (AArch64)

Small translation table support (AArch64)

Relaxed alignment restrictions (AArch32 and AArch64)

Memory Partitioning and Monitoring (MPAM) (AArch32 and AArch64)

Additional crypto support (AArch32 and AArch64)

Generic counter scaling (AArch32 and AArch64)

Instructions to accelerate SHA

5. Armv8.5-A and Armv9.0-A

Memory Tagging (AArch64)

Branch Target Identification (AArch64)

Random Number Generator instructions (AArch64)

Cache Clean to Point of Deep Persistence (AArch64)

6. Armv8.6-A and Armv9.1-A

General Matrix Multiply (GEMM) instructions (AArch64)

Fine grained traps for virtualization (AArch64)

High precision Generic Timer

Data Gathering Hint (AArch64)

7. Armv8.7-A and Armv9.2-A

Enhanced support for PCIe hot plug (AArch64)

Atomic 64-byte load and stores to accelerators (AArch64)

Wait For Instruction (WFI) and Wait For Event (WFE) with timeout (AArch64)

Branch-Record recording (Armv9.2 only)

8.Armv8.8-A and Armv9.3-A

Non-maskable interrupts (AArch64)

Instructions to optimize memcpy() and memset() style operations (AArch64)

Enhancements to PAC (AArch64)

Hinted conditional branches

Armv9-A是ARM公司最新的架構(gòu),但是目前還沒有完全公開。

最后提一句,現(xiàn)在基于ARM處理器的多核服務(wù)器芯片設(shè)計(jì)正火,國內(nèi)外玩家越來越多。ARM公司推出了Server Base System Architecture(SBSA)規(guī)范,提出了服務(wù)器的硬件要求。下表總結(jié)了與Armv8.x-A相關(guān)的SBSA要求。

pYYBAGQ_i5SAeFJeAAF3P-C_-9k985.jpg
pYYBAGQ_i5uAWXmvAACTFNCVYsg742.jpg

SBSA文檔是公開的,感興趣的朋友可以去官網(wǎng)下載。目前我看到的SBSA文檔版本是7.0,在2021年1月發(fā)布。 其實(shí)SBSA中就是規(guī)定了一些規(guī)則(rule),對(duì)于不同等級(jí)有不同的要求。下圖是SBSA的不同等級(jí)對(duì)處理器,SMMU和GIC的要求,可以與上一張圖結(jié)合看。

pYYBAGQ_i7GAHdpeAABshK-6yPY325.jpg





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5268

    瀏覽量

    119640
  • 圖像處理器
    +關(guān)注

    關(guān)注

    1

    文章

    103

    瀏覽量

    15454
  • 中斷處理
    +關(guān)注

    關(guān)注

    0

    文章

    94

    瀏覽量

    10940
  • ARMv8
    +關(guān)注

    關(guān)注

    1

    文章

    35

    瀏覽量

    14124

原文標(biāo)題:ARM系列 -- Armv8-A

文章出處:【微信號(hào):Ithingedu,微信公眾號(hào):安芯教育科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    ARM重新定義ARMv8新架構(gòu),ARMv8新架構(gòu)特性解說

    本文從ARMv8-A產(chǎn)生的背景開始,對(duì)它進(jìn)行一個(gè)簡(jiǎn)單的介紹,使大家從整體上,對(duì)ARMv8有一個(gè)簡(jiǎn)單的了解。
    的頭像 發(fā)表于 10-08 17:02 ?1w次閱讀
    ARM重新定義<b class='flag-5'>ARMv8</b>新架構(gòu),<b class='flag-5'>ARMv8</b>新架構(gòu)特性解說

    ARMv8-A AArch32主要特性

    Cortex-A32產(chǎn)品介紹ARMv8-A AArch32主要特性ARMv7-M與AArch32的不同之處軟件從ARMv7-M移植到ARMv7-A
    發(fā)表于 02-19 06:20

    手機(jī)參數(shù)中的4+64G到底是什么東西

    了解手機(jī)中的4+64G到底是什么東西?。?/div>
    發(fā)表于 09-14 09:07

    為何ARMv8-a架構(gòu)要引入EL3

    ARMv8-a架構(gòu)是由哪些部分組成的?為何ARMv8-a架構(gòu)要引入EL3
    發(fā)表于 03-02 09:12

    請(qǐng)問Armv8-A到底是什么東西

    前面的文章中經(jīng)常提到Armv8-A。那么到底Armv8-A什么東西?這個(gè)問題要說簡(jiǎn)單也很簡(jiǎn)單,要說復(fù)雜也很復(fù)雜。今天我們花點(diǎn)時(shí)間來簡(jiǎn)單研
    發(fā)表于 08-22 15:39

    Armv8-A內(nèi)存定序模型詳解

    1. 本指南介紹由 Armv8-A 架構(gòu)定義的內(nèi)存定序模型,并介紹所提供的不同內(nèi)存障礙;本指南還確定一些需要明確定序的常見情況,以及如何使用內(nèi)存障礙以確保實(shí)現(xiàn)正確操作;本指南適用于低級(jí)別代碼的開發(fā)者
    發(fā)表于 08-02 11:03

    ARMV8-A電源管理詳解

    ARMV8-A 電源管理
    發(fā)表于 08-02 08:32

    ARM Cortex-A系列ARMv8-A程序員指南

    ARMv8-A是針對(duì)應(yīng)用配置文件的最新一代ARM架構(gòu)。 在本書中,名稱ARMv8用于描述整個(gè)體系結(jié)構(gòu),它現(xiàn)在包括32位執(zhí)行狀態(tài)和64位執(zhí)行狀態(tài)。 ARMv8引入了使用64位寬寄存器執(zhí)行的能力,但提供
    發(fā)表于 08-22 07:22

    ARMv8-A處理器的裸機(jī)引導(dǎo)代碼

    熟悉ARM軟件開發(fā)。 它旨在幫助您編寫ARMv8-A處理器的引導(dǎo)代碼。 您可以參考本應(yīng)用筆記中的引導(dǎo)代碼示例,并為基于ARMv8-A處理器的裸機(jī)系統(tǒng)編寫自己的引導(dǎo)代碼。
    發(fā)表于 08-23 06:20

    ARMv8-A TrustZone軟件對(duì)實(shí)施SVE的系統(tǒng)的影響

    本文檔介紹ARMv8-A[ARMv8]的可伸縮向量擴(kuò)展[SVE]對(duì)在應(yīng)用程序處理器上以安全狀態(tài)執(zhí)行的軟件的影響。 本文檔考慮了部署現(xiàn)有ARMv8-A TrustZone軟件對(duì)實(shí)施SVE的系統(tǒng)的影響,并為實(shí)施SVE的系統(tǒng)更新該軟件
    發(fā)表于 08-23 06:17

    ARM公司64位ARMv8-A技術(shù)授權(quán)新里程

    2014年9月4日——ARM近日宣布完成第50份64位ARMv8-A的技術(shù)授權(quán)協(xié)議。隨著業(yè)界在更廣泛應(yīng)用中對(duì)于更高性能計(jì)算實(shí)現(xiàn)的需求提升,截至目前,共有27家企業(yè)取得了ARMv8-A技術(shù)授權(quán)。
    發(fā)表于 09-04 16:46 ?2065次閱讀

    工業(yè)觸摸屏到底是一個(gè)什么東西

    對(duì)于觸摸屏,我們大家都經(jīng)常看見,比如我們現(xiàn)在的手機(jī)屏幕,就是一個(gè)觸摸屏,銀行的叫號(hào)機(jī)器,也是一個(gè)觸摸屏,那么工業(yè)觸摸屏又是什么東西?
    發(fā)表于 05-24 10:30 ?5960次閱讀

    芯片到底是什么東西

    全球芯片短缺愈演愈烈,多家車企瀕臨停產(chǎn),芯片已經(jīng)成為我們不可或缺的物件,在日常生活中有著非常廣泛的應(yīng)用,越來越多的高科技產(chǎn)品都在使用芯片,那么芯片到底是什么東西?
    的頭像 發(fā)表于 01-04 11:56 ?2w次閱讀

    集成電路到底是什么東西

    在我們的生活中,許多設(shè)備里都會(huì)出現(xiàn)集成電路,或許有的小伙伴很困惑集成電路到底是什么東西,那么下面我們一起來了解一下吧。 集成電路是一種微型電子器件或部件,縮寫為IC,就是把一定數(shù)量的常用電子元件通過
    的頭像 發(fā)表于 02-01 10:40 ?9843次閱讀

    脈寬調(diào)制到底是個(gè)什么東西?

    昨天在結(jié)尾處提到了PAM、PWM和SPWM,說它們經(jīng)常會(huì)在一些說明書或參考書中見到,尤其是在變頻器的說明書當(dāng)中,那么,它們到底是個(gè)什么東西哪?今天就說道說道這個(gè)事。
    的頭像 發(fā)表于 08-30 15:59 ?1461次閱讀
    脈寬調(diào)制<b class='flag-5'>到底是</b>個(gè)<b class='flag-5'>什么東西</b>?