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. inheritCombination.js

    // 组合继承 // 其基本思路是使用原型链实现对原型属性和方法的继承,而通过借用构造函数来实现对实例属性的继承 function Person(name){ this.name = name; th ...

  2. SQL Server: create table sql script

    ---摇奖observeh数据库设计 Function getSpace lottery /* -- Author:geovindu 涂聚文 -- Date: 20180427 为了自写生成代码.根据 ...

  3. couldn't locate lint-gradle-api-26.1.2.jar for flutter project

    Could not find com.android.tools.lint:lint-gradle:26.1.2 当我尝试构建发行版本APK 时导致报这种错误,无法发行,针对自己的项目作出了相关修改, ...

  4. nginx的ngx_http_realip_module模块和http头X-Forwarded-For、X-Real-IP

    ngx_http_realip_module模块 realip模块作用:当本机的nginx处于反向代理的后端时可以获取到用户的真实ip.可以让accesslog记录用户真实IP地址. set_real ...

  5. [Winform-WebBrowser]-在html页面中js调用winForm类方法

    在winform项目中嵌入了网页,想通过html页面调用后台方法,如何实现呢?其实很简单,主要有三部: 1.在被调用方法类上加上[ComVisible(true)]标签,意思就是当前类可以com组件的 ...

  6. 在ASP.NET Core中使用多环境

    原文地址:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/environments?view=aspnetcore-2.1#star ...

  7. 给电脑插上无线网卡,变成路由器----Windows系统承载网络的使用

    1. 以管理员身份运行命令提示符(PowerShell) 2. 启用并设定虚拟wifi网卡 netsh wlan set hostednetwork mode=allow ssid=wifi名称 ke ...

  8. Paxos 算法 :消息传递一致性

    网络上有很多关于优秀的关于Paxos 算法的文章,我下面进行整理搜集一下: 分布式理论之一:Paxos算法的通俗理解 维基的简介:Paxos算法是莱斯利·兰伯特(Leslie Lamport,就是 L ...

  9. 4.9Python数据类型(5)列表(新版)

    前言 列表是一种python类似数组的数据结构,操作灵活,可存储多种类型的数据. 目录 1.列表的基础知识 2.列表的增删改查并操作 3.列表的其他操作 4.基本方法表 (一)列表的基础知识 1.说明 ...

  10. January 04th, 2018 Week 01st Thursday

    Just do what works for you, because there will always be someone who think differently. 就做你自己所能做的,因为 ...