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

ARM架构相关学习归纳总结的更多相关文章

  1. ARM架构与体系学习(二)——3级流水线

    ARM架构与体系学习(二)——3级流水线 标签: 存储嵌入式汇编c 2012-04-18 00:44 5414人阅读 评论(4) 收藏 举报  分类: ARM7(16)  版权声明:本文为博主原创文章 ...

  2. css学习归纳总结(三) 转

    原文地址:css学习归纳总结(三) 为文档添加样式的三种方法 行内样式 行内样式是写在HTML标签的style属性里的,比如: <p style="font-size: 12px;fo ...

  3. css学习归纳总结(二) 转

    原文地址:css学习归纳总结(二) 标签与元素 <p>标签和p元素有什么区别呢?大多数时候他们表示的是同一样东西,但仍有细微的区别.<p>.<div>等指的是HTM ...

  4. css学习归纳总结

    来源于:trigkit4 css学习归纳总结(一) 选择器的分组 CSS选择器分为 1.群组选择器 如:p, body, img, div{} 2.兄弟选择器 如:p + p { color:#f00 ...

  5. ARM架构

    ARM架构(过去称作进阶精简指令集机器(Advanced RISC Machine),更早称作Acorn RISC Machine)是一个32位元精简指令集(RISC) 中央处理器(processor ...

  6. ARM 架构、ARM7、ARM9、STM32、Cortex M3 M4 、51、AVR 之间有什么区别和联系?(转载自知乎)

    ARM架构:  由英国ARM公司设计的一系列32位的RISC微处理器架构总称,现有ARMv1~ARMv8种类. ARM7:       一类采用ARMv3或ARMv4架构的,使用冯诺依曼结构的内核. ...

  7. 自然语言处理(NLP)相关学习资料/资源

    自然语言处理(NLP)相关学习资料/资源 1. 书籍推荐 自然语言处理 统计自然语言处理(第2版) 作者:宗成庆 出版社:清华大学出版社:出版年:2013:页数:570 内容简介:系统地描述了神经网络 ...

  8. 高并发高可、O2O、微服务架构用学习网站

    高并发高可.O2O.微服务架构用学习网站 https://www.itkc8.com 非常感谢http://www.cnblogs.com/skyblog/p/5044486.html 关于架构,笔者 ...

  9. 我的学习归纳方法(以学习Maven为例)

    以我的个人角度来看待学习这件长久的事,希望对你有帮助,也希望你能提一下你的意见 本文初衷 把自己模板化 以此篇为引,与同行沟通心得,所以在此严重要求如果你有对应的心得还请能回复下,真心感谢!(鞠躬) ...

随机推荐

  1. 图的遍历(bfs+dfs)模板

    bfs #include<iostream> #include<queue> #include<cstdio> using namespace std; queue ...

  2. 洛谷P4425 [HNOI/AHOI2018]转盘(线段树)

    题意 题目链接 Sol 首先猜一个结论:对于每次询问,枚举一个起点然后不断等到某个点出现时才走到下一个点一定是最优的. 证明不会,考场上拍了3w组没错应该就是对的吧... 首先把数组倍长一下方便枚举起 ...

  3. 学习css(TODO)

    1. css 是一个什么样的角色? 答:css 负责控制网页的样式. 扩展:div + css 是经典的网页布局.实现网页内容与表现相分离. 2. css 的使用方式? 答:1. 内联式:直接在 HT ...

  4. Mobile first! Wijmo 5 + Ionic Framework之:费用跟踪 App

    费用跟踪应用采用了Wijmo5和Ionic Framework创建,目的是构建一个hybird app. 我们基于<Mobile first! Wijmo 5 + Ionic Framework ...

  5. linux上部署engineercms、docker和onlyoffice实现文档协作

    等了好久,这次终于下决心在局域网部署了linux系统,并安装docker和load了onlyoffice,利用engineercms进行资料管理和文档协作. 我整理了完整文档,见我的网盘. engin ...

  6. recovery 强制执行恢复出厂设置(Rescue Party)

    有时候我们在系统正常运行的时候,突然跑到recovery里面了,并且停在了如下界面:   Can't load Android system. Your data may be corrupt. If ...

  7. python:序列化与数据持久化

    数据持久化的方式有: 1.普通文件无格式写入:将数据直接写入到文件中 2.普通序列化写入:json,pickle 3.DBM方式:shelve,dbm 相关内容: json pickle shelve ...

  8. 遇到npm报错read ECONNRESET怎么办

    遇到npm 像弱智一样报错怎么办 read ECONNRESET This is most likely not a problem with npm itselft 'proxy' config i ...

  9. [cb]SceneView 获取鼠标位置

    扩展需求 在Scene视图中获取鼠标的位置 Demo 在Scene视图中,当鼠标点击时实例化一个Cube 重点部分 实现代码 using UnityEngine; using UnityEditor; ...

  10. django中admin

    我们在models中建立了表结构,想要在admin中表示: from django.contrib import admin from . import models for table in mod ...