ARM架構相關學習歸納總結


ARM作為一個生態不僅提供了CPU Core,還提供了一系列相關的IP,比如GIC、MMU、AMBA、CoreLink、CoreSight、Mali等等。

其他還包括Debug工具、開發工具、IDE等等。

對於整個ARM生態的架構建立一個概觀,然后清除某一模塊在整個生態中的位置,以及與其他模塊的關系,對於理解本模塊非常重要。

對於建立全局觀,也是有益的。所以花點時間,瀏覽一下ARM支持文檔,也就有意義了。

1. Core的指令集、A/R/M系列以及處理器型號

首先最底層的指令集ARM(32/64位)、Thumb、Thumb-2

根據不同應用場景,定義了不同的Profile,分別是Application、Realtime、Microcontroller三種。這三種配置和不同的指令集版本交叉,形成了不同的體系架構基礎。

包括ARMv8-A、ARMv8-M、ARMv7-A、ARMv7-R、ARMv7-M、ARMv6-M、ARMv4、ARMv5等等。

在不同的體系架構下面,又有不同的細分產品。主要分為三大類Cortex-A、Cortex-R和Cortex-M。

其中Cortex-A系列是最大家族,包括Cortex-A5、Cortex-A9、Cortex-A53、Cortex-A72等等。

Cortext-R系列包括Cortex-R4、Cortex-R5、CortexR8等等。

Cortex-M系列包括Cortex-M0、Cortex-M3等等。

以Cortex-A53為例,支持ARM(32/64)、Thumb、Thumb-2三種指令集,屬於v8版本指令集,使用A Profile

 

  A Profile R Profile M Profile
ARMv8  ARMv8-A    ARMv8-M
ARMv7  ARMv7-A ARMv7-R 

ARMv7-M 

(Cortex-M3)

ARMv6    

 ARMv6-M

(Cortex-M0)

ARMv4/5    (ARM7/ARM9/ARM10等等)

相關資料包括:

《ARMv8-A Reference Manual》:http://infocenter.arm.com/help/topic/com.arm.doc.ddi0487b.b/DDI0487B_b_armv8_arm.pdf

ARM® Cortex®-A53 MPCore Processor Technical Reference Manual Revision: r0p4》:http://infocenter.arm.com/help/topic/com.arm.doc.ddi0500g/DDI0500G_cortex_a53_trm.pdf

相關閱讀:

閱讀Cortex-A53 Technical Reference Manual筆記

2. GIC中斷控制器

A53 Reference Manual中存在GIC CPU Interface,這部分GICv4架構定義的。除了GIC CPU Interface,整個GIC的實現還包括GIC Distributor、和外設中斷線接口等等。

GIC架構有GIVv2、GICv3、GICv4等版本,這些架構的實現有GIC-400、GIC-500、GIC-500等等

下面以GIC-500為例,GIC-500支持128核,只支持ARMv8架構,並且實現了標准GIC CPU Interface的CPU核。它實現了GICv3/4架構的GICv3部分。

相關文檔有:

《ARM® CoreLink™ GIC-500 Generic Interrupt Controller Technical Reference Manual Revision: r1p1》:http://infocenter.arm.com/help/topic/com.arm.doc.ddi0516e/DDI0516E_gic5000_r1p1_trm.pdf

ARM® Generic Interrupt Controller Architecture Specification GIC architecture version 3.0 and version 4.0

 相關閱讀:

閱讀GIC-500 Technical Reference Manual筆記

3. MMU內存管理單元

MMU是內存管理單元,是虛擬地址和物理地址的橋梁。MMU架構版本包括Version1.0、Version 2.0、Version 3.0 and 3.1

MMu的實現包括MMU-400、MMU-401、MMU-500。

相關文檔包括:

《System Memory Management Unit Architecture Specification SMMU architecture version 3.0 and version 3.1》

ARM® CoreLink™ MMU-500 System Memory Management Unit Technical Reference Manual Revision: r2p4》

相關閱讀:

閱讀ARM Memory(L1/L2/MMU)筆記

4. AMBA(Advanced Microcontroller Bus Architecture)

AMBA是SoC內功能塊連接和管理總線的總稱,包括APB、AHB/APB-Lite、AXI、ACE等等。

協議的版本包括AMBA2、AMBA3(ATB/APB/AHB-Lite/AXI)、AMBA4(AXI/ACE/APB4/ATB4/AXI4/AXI4-Stream)、AMBA5(AHB5/CHI)

APB:Advanced Peripheral Bus,用於低帶寬的外設之間的連接。

AHB/AHB-Lite:Advanced High Performance Bus,用於高速器件之間的連接,比如DMA、DRAM等等。

AXI:Advanced eXtensible Interface,用於SoC中多主從連接。

ATB:Advanced Trace Bus,用於芯片建傳輸Trace數據。

ACE:AXI Coherency Extensions,多用於big.LITTLE架構。

CHI:Coherent Hub Interface,多用於服務器與網絡應用所需要的高可擴展性SoC。

 

5. MALI圖形處理器

MALI是ARM提供的GPU,包括高性能的G72、G71、T760、T860;高效率的G51、T820、T720;低功耗的Mali-400、Mali-450、Mali-470

MALI系列IP除了GPU,還包括Display Processing(Mali-DP500、Mali-DP550、Mali-DP650、Mali-DP71)、Video Processing(Mali-V500、Mali-V550、Mali-V61)、Camera (Mali-C71)等等圖形與多媒體IP。

 

6. CoreLink控制器和外設

CoreLink是一系列控制器和外設的總稱,處理上面介紹的GIC和MMU之外,還包括DMA、DMC、NIC、L2 Cache等等。

 DMAC(DMA Controller):DMA控制器,包括DMA-330

L2C Controller:L2 Cache的控制器,包括L2C-210、L2C-220、L2C-310

下表典型的L1/L2/L3/L4大小與讀取時間表:

DMC(Dynamic Memory Controller):動態內存控制器,也即DDR顆粒的控制器,包括DMC-34x、DMC-400、DMC-500、DMC-520、DMC-620

SMC(Static Memory Controller):靜態存儲控制器,支持SRAM、NAND的控制器。包括SMC-35x

CCI(Cache Coherent Interconnect):保證互聯Cache一致性,包括CCI-400、CCI-500CCI-550

CCN(Cache Coherent Network):包括CCN-502、CCN-504、CCN-508

NIC(Network Interconnect):包括NIC-301、NIC-400、NIC-450

7. CoreSight和ETM

 CoreSight主要用於SoC的跟蹤和調試,提高系統對外的可見性。

ETM(Embedded Trace Macrocell)是嵌入式跟蹤宏單元,提供跟蹤指令/數據的跟蹤功能。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM