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》
相关阅读:
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架构相关学习归纳总结的更多相关文章
- ARM架构与体系学习(二)——3级流水线
ARM架构与体系学习(二)——3级流水线 标签: 存储嵌入式汇编c 2012-04-18 00:44 5414人阅读 评论(4) 收藏 举报 分类: ARM7(16) 版权声明:本文为博主原创文章 ...
- css学习归纳总结(三) 转
原文地址:css学习归纳总结(三) 为文档添加样式的三种方法 行内样式 行内样式是写在HTML标签的style属性里的,比如: <p style="font-size: 12px;fo ...
- css学习归纳总结(二) 转
原文地址:css学习归纳总结(二) 标签与元素 <p>标签和p元素有什么区别呢?大多数时候他们表示的是同一样东西,但仍有细微的区别.<p>.<div>等指的是HTM ...
- css学习归纳总结
来源于:trigkit4 css学习归纳总结(一) 选择器的分组 CSS选择器分为 1.群组选择器 如:p, body, img, div{} 2.兄弟选择器 如:p + p { color:#f00 ...
- ARM架构
ARM架构(过去称作进阶精简指令集机器(Advanced RISC Machine),更早称作Acorn RISC Machine)是一个32位元精简指令集(RISC) 中央处理器(processor ...
- ARM 架构、ARM7、ARM9、STM32、Cortex M3 M4 、51、AVR 之间有什么区别和联系?(转载自知乎)
ARM架构: 由英国ARM公司设计的一系列32位的RISC微处理器架构总称,现有ARMv1~ARMv8种类. ARM7: 一类采用ARMv3或ARMv4架构的,使用冯诺依曼结构的内核. ...
- 自然语言处理(NLP)相关学习资料/资源
自然语言处理(NLP)相关学习资料/资源 1. 书籍推荐 自然语言处理 统计自然语言处理(第2版) 作者:宗成庆 出版社:清华大学出版社:出版年:2013:页数:570 内容简介:系统地描述了神经网络 ...
- 高并发高可、O2O、微服务架构用学习网站
高并发高可.O2O.微服务架构用学习网站 https://www.itkc8.com 非常感谢http://www.cnblogs.com/skyblog/p/5044486.html 关于架构,笔者 ...
- 我的学习归纳方法(以学习Maven为例)
以我的个人角度来看待学习这件长久的事,希望对你有帮助,也希望你能提一下你的意见 本文初衷 把自己模板化 以此篇为引,与同行沟通心得,所以在此严重要求如果你有对应的心得还请能回复下,真心感谢!(鞠躬) ...
随机推荐
- 【读书笔记】iOS-自定义 URL Scheme 完全指南
iPhone / iOS SDK 最酷的特性之一就是应用将其自身”绑定”到一个自定义 URL scheme 上,该 scheme 用于从浏览器或其他应用中启动本应用. 注册自定义 URL Sche ...
- 安全测试 WEB安全测试手册
WEB安全测试手册 By:授客 QQ:1033553122 欢迎加入软件性能测试交流QQ群:7156436 概述 Ø 目的 Ø 适用读者 Ø 适用 ...
- loadrunner 运行脚本-Run-time Settings-ContentCheck简单设置
运行脚本-Run-time Settings-ContentCheck简单设置 by:授客 QQ:1033553122 ContentCheck的设置可用来让VuGen检测存在错误的站点页面.如果被测 ...
- 【详细】【转】C#中理解委托和事件
文章是很基础,但很实用,看了这篇文章,让我一下回到了2016年刚刚学委托的时候,故转之! 1.委托 委托类似于C++中的函数指针(一个指向内存位置的指针).委托是C#中类型安全的,可以订阅一个或多个具 ...
- recovery uncrypt功能解析(bootable/recovery/uncrypt/uncrypt.cpp)
我们通常对一个文件可以直接读写操作,或者普通的分区(没有文件系统)也是一样,直接对/dev/block/boot直接读写,就可以获取里面的数据内容了. 当我们在ota升级的时候,把升级包下载到cach ...
- 故障小记录:yum 安装报错File "/usr/bin/yum", line 30 except KeyboardInterrupt, e:
发生原因: 由于yum是基于python的,之前安装我python3,当我修改了python命令的指向到python3之后就会发生这样的问题. 解决办法: 由于我当初想到可能以后还需要python2, ...
- 洗礼灵魂,修炼python(39)--面向对象编程(9)—魔法方法表
好的,不多说,大招来了,几乎完整的魔法方法: 基本的魔法方法 Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE /* Style Defi ...
- C# Aspose.Cells方式导入Excel文件
读取Excel 类 我返回的是DataTable 类型 也可以返回DataSet类型 public class XlsFileHelper { public DataTable ImportExcel ...
- AMP架构补充与wordpress部署
1.httpd的虚拟主机不能使用的问题 httpd中新建一个虚拟主机,并添加访问URI路径的时候,需要给此路径指定访问权限.今天遇到一个虚拟主机不能使用的问题,语法检测没有报错,并且还可以正常启动服务 ...
- Python之对象的永久保存模块---pickle
经常遇到在Python程序运行中得到了一些字符串.列表.字典等数据,想要长久的保存下来,方便以后使用,而不是简单的放入内存中关机断电就丢失数据. 这个时候Pickle模块就派上用场了,它可以将对象转换 ...