ARM采用的是32位架構
ARM閱讀
--Byte: 8 bits
--Halfword: 16 bits(2 byte) 半字
--Word: 32 bits(4 byte)
大部分ARM core提供: core(核心)
--ARM指令集(32 bit) (有些占內存、時間快)
--Thumb指令集(16 bit) (省內存、但是浪費時間)
--Thumb2指令集(16 & 32bit)(ARM v7(S5PV210) 大概2005年才開始推出)
Jazelle cores 支持 Java bytecode
/************************************************************************************************/
ARM有7種基本工作模式(6個特權模式和一個用戶模式)
----User(用戶模式): 非特權模式,大部分任務執行在這種模式
----FIQ(快速中斷):當一個高優先級(fast)中斷產生時將會進入這種模式 -- |
----IRQ(普通中斷):當一個低優先級(nomal)中斷產生時會進入這種模式 |
----Supervisor(管理模式):當復位或軟中斷指令執行時將會進入這種模式 |-------異常模式
----Abort(異常模式):當存取異常時會進入這種模式 |
----Under(未定義模式):當執行未定義指令時會進入這種模式 -- |
----System(系統模式):使用和User模式相同寄存器的特權模式
注意:
除了User(用戶模式)是Normal(普通模式)外,其他6種都是Privilege(特權模式)。
Privilege中除Sys模式外,其余5種為異常模式
各種模式的切換,可以是程序員通過代碼主動切換(通過寫CPSR寄存器);也可以是CPU在某些情況下自動切換。
各種模式下權限和可以訪問的寄存器不同。
為什么需要那么多種模式?
CPU 是硬件,OS是軟件,軟件的設計要依賴硬件的特性,硬件的設計要考慮軟件需要,便於實現軟件特性。
操作系統有安全級別要求,因此CPU設計多種模式為了方便操作系統的多種角色安全等級需要。
/************************************************************************************************/