1. 前言
ARMv8的架構繼承以往ARMv7與之前處理器技術的基礎;
除了支持現有的16/32bit的Thumb2指令外,也向前兼容現有的A32(ARM 32bit)指令集。
基於64bit的AArch64架構,除了新增A64(ARM 64bit)指令集外,也擴充了現有的A32(ARM 32bit)和T32(Thumb2 32bit)指令集,另外還新增加了CRYPTO(加密)模塊支持。
2. 相關術語
Items |
Notes |
PE |
Processing element,處理器單元可以理解成一個cpu core |
Execution state |
運行狀態,包括AArch32和AArch64兩種運行狀態 |
AArch32 |
描述32bit Execution State,地址存在32bit寄存器;指令集使用32位寄存器;支持A32和T32指令集 |
AArch64 |
描述64bit Execution State,地址存在64bit寄存器;指令集使用64位寄存器;支持A64指令集 |
A32、T32 |
AArch32 ISA (Instruction Architecture) |
A64 |
AArch64 ISA (Instruction Architecture) |
Interprocessing |
AArch32和AArch64兩種執行狀態之間的切換 |
SIMD |
Single-Instruction, Multiple-Data (單指令多數據) |
translation table walks |
指頁表的查找過程 |
Volatile |
標有Volatile的字段編譯器認為是多線程代碼, 從而不會執行優化; 這保證內存中字段的值總是最新的。比如連續兩次讀一個變量,不加volatile則編譯器會優化,只會讀一次,加上volatile,則編譯器不會優化,會讀兩次,對寄存器的訪問一般會加此關鍵字 |
3. 主要內容
主要內容 |
說明 |
Execution state |
包括AArch32與AArch64 |
Instruction sets |
包括AArch32下A32和T32指令集 與 AArch64下的A64指令集 |
state |
包括當前的Exception level和Secure state,這決定了PE的行為 |
異常模型 |
異常的類型、路由及處理 |
Interprocessing |
AArch64與AArch32的切換規則 |
存儲模型 |
描述內存訪問的規則和內存管理 |
編程模型 |
通過訪問系統寄存器來控制PE和存儲系統的大部分特性,並提供狀態信息 |
SIMD和浮點指令 |
提供了高性能 |
Security模型 |
提供了兩種安全狀態,支持安全特性的應用開發 |
虛擬化模型 |
支持non-security的虛擬化操作 |
Debug |
提供了軟件訪問debug的一些特性 |
表 ARMV8描述的主要內容
4. 內容編排
章節 |
說明 |
A |
簡介和體系結構概述 |
B C D |
AArch64應用級體系結構 A64指令集 AArch64系統級體系結構 |
E F G |
AArch32應用級體系結構 AArch32指令集 AArch32系統級體系結構 |
H |
外部debug |
I |
Armv8體系結構的內存映射組件 |
J |
體系結構偽代碼 |
表 本數據手冊的內容編排
5. 參考文檔
[1] ARMv8-A Architecture reference manual-DDI0487A_g_armv8_arm.pdf