• 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)是嵌入式跟踪宏单元,提供跟踪指令/数据的跟踪功能。

  • 相关阅读:
    hdu 2680 最短路径(dijkstra算法+多源最短路径单源化求最小值)
    kmp算法
    STP根交换机,指定端口,根端口,阻塞端口
    python,django安装
    交换机access与trunk口
    树状数组
    hdoj 2191(多重背包)
    hdoj 2601(判断N=i*j+i+j)
    二维背包经典问题
    hdoj 2602(背包)
  • 原文地址:https://www.cnblogs.com/arnoldlu/p/7864856.html
Copyright © 2020-2023  润新知