Armv8-A 架构概述
目錄
Armv8-A 架構
對工程師來說Armv8-A有什么新東西?
Armv7-A體系結構
Armv8-A 架構
Armv8-A架構是針對應用程序('A')設計的最新一代Arm架構。
它引入了可用的64位和32位執行狀態(Execution state ),分別稱為AArch64和AArch32。 AArch64執行狀態支持A64指令集,可以在64位寄存器中保存地址,并允許基本指令集中的指令使用64位寄存器進行處理。 AArch32執行狀態是一個32位執行狀態,它保留了與Armv7-A體系結構的向后兼容性,并增強了該體系結構,可以支持AArch64狀態中包含的某些功能。 它支持T32和A32指令集。
Armv8-A是唯一支持AArch64的profile ,其中AArch64和AArch32之間的關系被稱為interprocessing。 另外,Armv8-A架構允許支持不同等級的AArch64和AArch32,例如:
- 只有AArch64的設計。
- AArch64可支持AArch32操作系統/虛擬機的設計。
- AArch64只支持在應用層級(非特權)使用AArch32。
對工程師來說Armv8-A有什么新東西?
Armv8-A架構引入了許多變化,可以設計出可實現的性能更高的處理器。
- 大的物理地址
這使處理器能夠訪問超過4GB的物理內存。 - 64位虛擬尋址
這使虛擬內存越過4GB限制的。 這對使用內存映射文件I / O或稀疏尋址的現代桌面和服務器軟件很重要。 - 自動信號事件
這使得高效,高性能的自旋鎖成為可能。 - 更大的寄存器文件
有31個64位通用寄存器,這提高了性能并減少了堆棧的使用。 - 高效的64位立即生成
文字池的需求較少。 - 較大的PC相對尋址范圍
在共享庫和位置無關的可執行程序中的有效的數據尋址范圍是+/- 4GB。 - 額外的16KB和64KB轉換粒度
這降低了轉換后備緩沖區(TLB)不命中率和頁面訪問的深度。 - 新的異常模型
這降低了OS和hypervisor 程序的復雜度 - 高效的緩存管理
用戶空間緩存操作提高了動態代碼生成效率。 快速數據緩存clear 操作使用數據緩存清零指令清除。 - 硬件加速密碼技術
提供比軟件加密更好的3倍到10倍速度性能。 這對于由于太小而不能有效轉載到硬件加速器的細粒度解密和加密很有用,例如https。 - 加載-獲取,存儲-釋放的指令
專為C ++ 11,C11,Java內存模型而設計。 它們通過消除顯式的內存屏障指令來提高線程安全代碼的性能。 - NEON雙精度浮點高級SIMD
這使得SIMD矢量化可以應用于更廣泛的算法集合,例如科學計算,高性能計算(HPC)和超級計算機。
Armv7-A體系結構
Armv7-A體系結構引入了architecture profiles的概念,并且繼續被引入Armv8架構。 它實現了具有多種模式的傳統Arm架構,支持基于內存管理單元(MMU)的虛擬內存系統架構(VMSA),并支持Arm(A32)和Thumb(T32)指令集。
架構擴展
這個架構也支持多個擴展。 包括:
- 安全擴展。 這是一組可選的擴展,這些擴展提供了一組安全功能,利用這些安全功能可以協助安全應用程序的開發。
- 多重處理擴展。 這些是一組可選的擴展,提供了一組增強多重處理功能的特性。
- 大的物理地址擴展。 這是一個可選的擴展,它提供了一個地址轉換系統,支持高達40位的物理地址,并且具有良好的轉換性能。 它需要實現多重處理擴展。
- 虛擬化擴展。 這些是一組可選的擴展,為虛擬機監視器(稱為Hypervisor)提供硬件支持,以在各個Guest 操作系統之間進行切換。 它需要實現安全擴展和大的物理地址擴展。
- 通用計時器擴展。 這是一個可選的擴展,它提供了一個系統定時器和一個低延遲寄存器接口。 它是作為大的物理地址擴展或虛擬化擴展的一部分,但也可以使用Armv7-A架構的早期版本來實現。
- 性能監視器擴展。 該擴展定義了一個推薦的性能監視器實現方式,并為性能監視器保留了寄存器空間。
原文
https://developer.arm.com/products/architecture/a-profile
官方指導手冊:
https://developer.arm.com/products/architecture/cpu-architecture/r-profile/docs/ddi0487/a
作者:趙國開
鏈接:https://www.jianshu.com/p/8119986a39c5
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權并注明出處。
總結
以上是生活随笔為你收集整理的Armv8-A 架构概述的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: uboot的环境变量分析(printen
- 下一篇: Petalinux 2017.4安装教程