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. js 如何移除一个匿名函数的绑定事件

    大家都知道 addEventListener的用法 绑定事件 例如 element.addEventListener(type,handler,false); element是dom元素 type是事 ...

  2. csharp:FTP Client Library using FtpWebRequest or Sockets

    https://netftp.codeplex.com/SourceControl/latest http://ftplib.codeplex.com/ https://www.codeproject ...

  3. wepy里面两种不同的写回调函数的方法

    方案一const getHelpCenter = createAction(GET_HELP_CENTER, () => request('api/hisense/article/menu/li ...

  4. 【代码笔记】Web-ionic 网格(Grid)

    一,效果图. 二,代码. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  5. js判断当前浏览器语言类型

    console.log(window.navigator.language.slice(0, 2)); 得到的是zh

  6. python之with语句的原理

    首发时间:2018-02-23 15:28 之前看到一篇博客说博主python面试时遇到面试官提问with的原理,而那位博主的博文没有提及with原理,故有此文. 关于with语句,官方文档中是这样描 ...

  7. 根据学习廖雪峰老师的git教程做的笔记

    根据学习廖雪峰老师的git教程做的笔记 安装git 进行git的配置 配置您的用户名和邮箱地址,使用--global 这个参数表明了在此台机器上的所有仓库都会使用该配置 $ git config -- ...

  8. [20180317]12c TABLE ACCESS BY INDEX ROWID BATCHED2.txt

    [20180317]12c TABLE ACCESS BY INDEX ROWID BATCHED2.txt --//简单探究12c TABLE ACCESS BY INDEX ROWID BATCH ...

  9. centos-7 虚拟机安装图形界面

    centos-7 虚拟机安装图形界面 想到安装一个docker环境,于是拿出了以前装的虚拟机centos7,记得装完后,没进行任何配置(默认安装的是命令行界面). 配置网络 现有的虚拟机是没有办法联网 ...

  10. Win10 + MASM32 + EditPlus 汇编语言编程环境设置

    下载安装MASM32汇编环境 官方下载站:MASM32 环境变量配置 配置MasmHome变量,值为masm32的安装目录: 配置include和lib变量 include : %MasmHome%\ ...