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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

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

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

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

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

Cortex-R系列:這個系列主要是實時(Real-time)處理器,這類處理器的特點是對于外部事件的響應時間在可控范圍,這里的實時并不是說處理器的速度快,而是對外部事件的響應時間可預測。

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

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

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

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

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

pYYBAGQ_i12AL_jaAACkCerLT7s734.jpg
poYBAGQ_i2WATi0VAAHD4DfjaGs625.jpg

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

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

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

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

對于Armv8.0-A要求的功能,以后有機會慢慢分析。這不是一朝一夕能完成的,畢竟單其架構文檔已經(jīng)上萬頁了。今天先簡單列一下Armv8.0-A以后的版本所擴展的功能,后面我們再慢慢分析Armv8.0-A的基礎功能和這些擴展功能。

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公司最新的架構,但是目前還沒有完全公開。

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

pYYBAGQ_i5SAeFJeAAF3P-C_-9k985.jpg
pYYBAGQ_i5uAWXmvAACTFNCVYsg742.jpg

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

pYYBAGQ_i7GAHdpeAABshK-6yPY325.jpg





審核編輯:劉清

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

    關注

    31

    文章

    5294

    瀏覽量

    119816
  • 圖像處理器
    +關注

    關注

    1

    文章

    103

    瀏覽量

    15470
  • 中斷處理
    +關注

    關注

    0

    文章

    94

    瀏覽量

    10947
  • ARMv8
    +關注

    關注

    1

    文章

    35

    瀏覽量

    14133

原文標題:ARM系列 -- Armv8-A

文章出處:【微信號:Ithingedu,微信公眾號:安芯教育科技】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    ARM重新定義ARMv8新架構,ARMv8新架構特性解說

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

    ARMv8-A AArch32主要特性

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

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

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

    為何ARMv8-a架構要引入EL3

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

    請問Armv8-A到底是什么東西

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

    Armv8-A內存定序模型詳解

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

    ARMV8-A電源管理詳解

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

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

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

    ARMv8-A處理器的裸機引導代碼

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

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

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

    ARM公司64位ARMv8-A技術授權新里程

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

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

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

    芯片到底是什么東西

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

    集成電路到底是什么東西

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

    脈寬調制到底是什么東西?

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