ARM架構(gòu)概述
理解ARM體系首先要明確三個概念:
Architecture-體系結(jié)構(gòu)Processor-處理器,對應(yīng)于通常所說的ARM核Device-設(shè)備,對應(yīng)于具體的物理芯片
體系結(jié)構(gòu)(Architecture):
為了給不同的處理器提供更通用的編程模型,定義了不同的Architecture,符合相同Architecture的處理器具有相同的編程模型,ARM已定義的Arhitecture有ARMv4、ARMv5、ARMv6M、ARMv7M、ARMv7AR、ARMv8等等。
ARM體系結(jié)構(gòu)(Architecture)定義了ARM處理器的基本特征,包括以下內(nèi)容:
the?programmers?model(編程模型)the?instruction?set(指令集)system?configuration(系統(tǒng)配置)exception?handling(中斷處理)the?memory?model(存儲模型)
?不同版本的體系結(jié)構(gòu)(Architecture)定義了不同的系統(tǒng)特性和系統(tǒng)行為,例如:
采用幾級Cache,Cache的大小寄存器的功能定義提示指令(hint?instructions)的功能
體系結(jié)構(gòu)還定義一些擴展功能,例如:
浮點運算硬件支持SIMD支持
處理器(Processor)
處理器(或者稱為ARM核)是體系結(jié)構(gòu)的一種實現(xiàn),同一個體系結(jié)構(gòu)可以對應(yīng)不同的處理器,ARM7TDMI和ARM920T都基于ARMv4T,但是他們又具有各自的不同特點。
Implementation
Architecture?version
Architecture?variant
ARM11??MPCore?
ARMv6?
ARMv6K,?Improved?multiprocessing?support
ARM1156T2F-S??,?
ARMv6?
ARMv6T2?Thumb-2?technology
ARM1176JZF-S???
ARMv6
ARMv6Z,?ARMv6K?with?Security?Extensions
Cortex-A9?
ARMv7-A
?
Cortex-R4?
ARMv7-R
?
Cortex-M3
ARMv7-M
?
Table:Recent?ARM?processors?and?their?architectures
設(shè)備(Device)
設(shè)備通常是包含了ARM核和一些附加設(shè)備的片上系統(tǒng)(SoC)。在設(shè)備實現(xiàn)上可以配置不同的外圍附加設(shè)備,例如可以配置不同大小的Cache,以及是否包含硬件浮點運算功能,所以基于同一Processor的不同設(shè)備可以擁有不同Cache大小配置。
一個通用的片上系統(tǒng)(SoC)可以包含以下組件:
Level?2?Cache?Controller?(L2CC)Static?Memory?Controller?(SMC)Dynamic?Memory?Controller?(DMC)bus?interconnectinterrupt?controllertimerexternal?bus?interfaces
除了ARM核外,一個片上系統(tǒng)設(shè)備(SoC)上可以包含很多不同的功能模塊,不同廠家可以采用ARM核設(shè)計自己的片上系統(tǒng),以Samsung的S5PV310_UM為例,該芯片集成了Cotex-A9核,Cotex-A9核基于ARMv7-A體系結(jié)構(gòu)。