对于刚接触到ARM的人来说,可能仅仅知道ARM是一种内核,是一种处理器(CPU),但是,每当我们思考ARM内核是如何发挥作用、ARM处理器到底有什么用的时候,我们可能就会脑袋空白。当然,作为初学者,我也不想去深究ARM内核的那些五花八门的架构和形形色色的内核版本,因为它们过于复杂,特别是ARM所包含的技术(如流水线、指令集等),所以,我将简单介绍几款常见的ARM内核,以及几种搭载它们的SoC(片上系统,我们平常所说的处理器芯片)。
本文只介绍一些概念,给初学者们(包括我自己)建立一个对ARM比较直观的印象。

ARM内核

目录

  • ARM内核
    • 介绍几种常见的ARM内核
      • 1.Cortex-M3
      • 2.Cortex-A7
      • 3.Cortex-A53
      • 4.Cortex-A72
    • 什么是SoC芯片
      • 1. STM32F103ZET6
      • 2. i.MX 6ULL
      • 3. A133(全志)
      • 4. RK3399
    • 总结
    • 文章参考

介绍几种常见的ARM内核

1.Cortex-M3

很多人学习ARM都是从单片机(MCU)开始的,比如STM32,STM32因为资料比较开放,网上资料丰富,深受广大电子爱好者青睐,STM32采用的就是ARM内核,比如下一章要介绍的STM32F103ZET6的内核版本为Cortex-M3,下图为ARM官网对Cortex-M3的介绍,使用了网页翻译,可能和原文意思有些出入,想看原文的可以访问ST官网相关网页:https://developer.arm.com/ip-products/processors/cortex-m/cortex-m3?_ga=2.2737650.376128369.1630719411-1382392082.1624347417

由上图,我们可以了解到Cortex-M3的内部结构,下面简单描述一下这些模块:

  1. CPU采用Armv7-M架构;
  2. 总线接口为3条哈佛总线;
  3. 中断控制器采用嵌套向量中断控制器;
  4. 支持多种跟踪技术,如ITM、ETM和ITM;
  5. 调试单元包括JTAG和SW,8个断点和4个观察点。

2.Cortex-A7

ARM Cortex™-A7 MPCore™ 处理器是 ARM 迄今为止开发的最有效的应用处理器,它显著扩展了 ARM 在未来入门级智能手机、平板电脑以及其他高级移动设备方面的低功耗领先地位。(来源百度)
Cortex-A7集成的 L2 缓存提供了一个强大的内存系统,其性能比Cortex-A5提高了 20% 以上。
因为它实现了 Armv7-A 架构扩展,Cortex-A7 提供了 40 位物理寻址和增强的硬件虚拟化。
由于支持 32 位丰富的操作系统,包括 Linux,让 Cortex-A7 能够将高级功能和性能带入生活。
目前搭载Cortex-A7内核的芯片包括:i.MX 6ULL(恩智浦)、RK3036(瑞芯微)、A20(全志)、hi3516ev300(华为海思)、MT6589(联发科)、MSM8909(高通骁龙)和STM32MP1(意法)等等,下文将简单介绍i.MX 6ULL芯片的原理框图。

Cortex-A7官方介绍:

3.Cortex-A53

Cortex-A53是部署最广泛的 64 位 Armv8-A 处理器,它能在更高的能效水平下提供比其前代产品更高的性能,适用于移动、数字电视、汽车、网络、存储和航空航天等广泛应用。

Cortex-A53官方介绍:

4.Cortex-A72

Cortex-A72 处理器可以在 big.LITTLE 配置中与 Cortex-A53 处理器配对,适用于高端智能手机、大屏幕的移动设备、企业网路设备、服务器、无线基台、数字电视。

Cortex-A72官方介绍:

什么是SoC芯片

SoC(System on Chip),称为系统级芯片,也称为片上系统,其实我们平常看见的单片机(MCU)、应用处理器芯片、DSP芯片甚至FPGA都能称为SoC,ARM芯片指的是搭载ARM内核(CPU)的SoC。
SoC是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。(百度百科)
系统级芯片的构成可以是系统级芯片控制逻辑模块、微处理器/微控制器CPU 内核模块、数字信号处理器DSP模块、嵌入的存储器模块、和外部进行通讯的接口模块、含有ADC /DAC 的模拟前端模块、电源提供和功耗管理模块,对于一个无线SoC还有射频前端模块、用户定义逻辑(它可以由FPGA 或ASIC实现)以及微电子机械模块,更重要的是一个SoC 芯片内嵌有基本软件(RDOS或COS以及其他应用软件)模块或可载入的用户软件等。(百度百科)

用文字描述SoC并不能让我们直观地感受到SoC真正的面目,接下来我来列举几个常见的SoC芯片,它们的内核都是上一章介绍过的。

1. STM32F103ZET6

下图为STM32F103ZET6的系统框图如下图所示,该SoC的组成部分包括:CPU(Cortex-M3)、512Kbyte Flash、64Kbyte SRAM、84byte后备数据、系统时钟模块、数模转换模块、外设接口模块(串口、USB等)和控制模块(定时器、PWM)。

下图为更加详细的系统框图,描述了SoC各部分模块之间是如何互相控制和传输数据的。

Cortex-M3内核(CPU)通过芯片内部的总线矩阵控制着各个模块,这些模块称为该单片机系统的片上外设(也可称片内外设),因为它们在芯片这个集成电路的内部。比如我们最常用的GPIO,它全部挂载在APB2总线上,通过读写对应的寄存器值即可完成对GPIO的读写操作,其他外设也是类似的道理。

2. i.MX 6ULL

下图为IMX6ULL的系统功能框图,其CPU为Cortex-A7,与STM32F103ZET6的系统框图比较, 我们能明显感觉IMX6ULL的功能更丰富,这不仅仅是因为它的CPU运算能力更强,还有一点是该框图中添加了很多外设的接口,比如WLAN、CAN、USB OTG、Ethernet、Keypad和MMC/SD等,由于芯片内部只提供了这些外设的接口,而没有这些功能模块,所以需要外接模块实现特定功能,这类外接的功能模块就成为该SoC的片外外设,但是实现这些功能的总线接口依然属于片内外设。

3. A133(全志)

下图为全志A133的功能框图,内核为Cortex-A53,该框图只是列举了SoC的功能,并没有将内部架构画出。
与前面的SoC不同的是,随着CPU性能的提高,A133的功能接口又有了新的变化,首先常用的外设接口上有了部分增加,但变化不大,重大的变化体现在多媒体功能。
该SoC内置了显卡(GPU,图像处理单元),增加了H.264硬件编码和解码,音视频接口也占据了功能框图的近三分之一。

4. RK3399

RK3399是瑞芯微的芯片里性能最高的芯片,具有很高的性能和高可扩展性,其内核采用big.LITTLE架构,双核Cortex-A72+四核Cortex-A53,GPU采用四核ARM新一代高端图像处理器Mali-T860,总体性能比上一代提高45%。
RK3399的外设接口非常丰富,
常用外设接口方面:集成双USB3.0,串口、SPI、I2C等通信接口的个数是否充足,可以外接很多外设。
多媒体方面:双ISP像素数处理能力高达800MPix/s,支持双摄像头数据同时输入,支持3D、深度信息提取等高阶处理。
显示方面:HDMI2.0接口、H.264/H.264/VP9 4K@60fps高清视频解码和显示。
音频方面:支持8路数字麦克风阵列输入。

总结

通过对上面这些内核和SoC的了解和学习,我们可以得知ARM只代表处理器芯片的CPU内核,它的性能决定了处理器芯片的总体性能。但是,SoC芯片功能的强大,很大程度上还取决于芯片设计厂商的技术水平,只有将片内外设与内核进行最大程度的适配,同时设计出完美架构,才能设计出优秀的处理器芯片。——以上纯属个人观点,大佬勿喷。

文章参考

以下几篇文章是我在百度上找的各种关于ARM知识的介绍和总结,希望能够帮助我们更好地理解ARM相关知识,仅供参考。

  1. arm cortex-a cortex-r cortex-m的本质区别是什么,体系架构?指令集?
  2. ARMv7 cortex-A 体系结构介绍
  3. IC狂人日记 ARM处理器详解(1)- ARM Cortex-A系列处理器
  4. ARM Cortex-A系列(A53、A57、A73等)处理器性能分类与对比

初识ARM(内核、SoC)相关推荐

  1. 指令集架构、arm内核、SoC、处理器、CPU、GPU等的关系

    指令集架构如:ARMv5.ARMv6.ARMv7-A/R.ARMv8-A [28] ARM内核如:ARM7.ARM9.ARM11(v6).到cortex-A7.A8.A9.A12.A15(v7-A/R ...

  2. 嵌入式学习硬件篇------初识ARM

    ARM体系结构的演变与发展 ARM公司简介 ARM(Advanced RISC Machine Limited)于1991年成立于英国剑桥,最早由Acorn.Apple和VLSI合资成立,主要出售芯片 ...

  3. ARM-CPU工作原理,基于ARM的SOC讲解

    CPU原理,基于ARM的SOC讲解 一.计算机架构 在了解计算机架构之前,我们先来认识几位对计算机的发明做出关键共享的几位大佬. 1. 巴贝奇 机械计算机之父,英国贵族,曾孤军奋战下造出的第一台差分机 ...

  4. 嵌入式-ARM-学习总结(1):初识ARM

    嵌入式-ARM-学习总结(1):初识ARM ARM的特点 冯诺依曼结构与哈佛结构 内存与外存 S5PV210的启动过程 ARM的7种工作模式 ARM汇编指令集 8种寻址方式 ARM的特点 ARM采用R ...

  5. 2. 从0开始学ARM-CPU原理,基于ARM的SOC讲解

    关于ARM的一些基本概念,大家可以参考我之前的文章: <到底什么是Cortex.ARMv8.arm架构.ARM指令集.soc?一文帮你梳理基础概念[科普]> 关于ARM指令用到的IDE开发 ...

  6. 关于ARM内核经典系列ARM7/ARM9/ARM11和Cortex®-A/Cortex®-R/Cortex®-M的产品线简单介绍

    目前市场上的嵌入式单片机或者Soc大部分都是ARM的内核架构,相信大家对Cortex®-M3/Cortex®-M4,Cortex®-A53/Cortex®-A73等有所耳闻. ARM公司主要是设计处理 ...

  7. TinyML设备设计的Arm内核

    TinyML设备设计的Arm内核 Arm cores designed for TinyML devices Arm推出了两个新的IP核,旨在为终端设备.物联网设备和其低功耗.成本敏感的应用程序提供机 ...

  8. Cortex系列ARM内核介绍

    众所周知,英国的ARM公司是 嵌入式微处理器世界当中的佼佼者.ARM一直以来都是自己研发微处理器内核架构,然后将这些架构的知识产权授权给各个芯片厂商,精简的CPU架构,高效的处理能力以及成功的商业模式 ...

  9. arm 架构_Arm架构之Arm内核解析

    Arm架构已经主导了当今嵌入式处理和计算市场,但在过去的几十年里,Arm 架构却走过了漫长的道路.从20世纪80年代开始,它起初是作为家用电脑处理器,然后在20世纪90年代成为手机芯片的基础.如今,在 ...

最新文章

  1. 瘦了!光荣!都是忙工作忙的!
  2. .Net 项目代码风格规范
  3. 小蚂蚁学习C语言(25)——C语言结构体——使用结构体手动录入信息的小案例...
  4. 前端学习(2245)vue值造轮子之需求设计
  5. 13 - java包装类
  6. 夯实基础,彻底掌握js的核心技术(三):堆栈内存及闭包详解
  7. 《和平精英》玩跨界,特斯拉主题店超级充电站现身海岛
  8. 算法面试题:均分纸牌
  9. linux如何查看路由器ip地址,如何查找路由器IP地址?
  10. ORACLE 数据泵之NETWORK_LINK
  11. 宇枫资本投资过程中要注意这些习惯
  12. 从零搭建个人资讯系统1
  13. 科学家发现4起黑洞相撞事件,其中最大的一起或为“双重”碰撞
  14. Java手机号校验、短信验证码、验证码工具类
  15. 简易碰撞检测原理--图形相交测试
  16. 入职一家初创公司第一周的血与泪
  17. oracle索引整理
  18. 外贸人如何从SiteGround购买建站外贸主机
  19. uni-app使用canvas生成图片并保存到相册
  20. 白侠机器人_白侠微信多群直播机器人,引领全新直播潮流

热门文章

  1. 怎么将显卡驱动程序更新到最新版本?
  2. 读万卷书,不如行万里路-壮游的教育
  3. 掌握JedisPoolConfig参数配置,学会调优技能
  4. Linux笔记(五)之组管理和权限管理
  5. 酷派手机android版本,酷派大神X7的手机系统是什么?能升级安卓5.0吗?
  6. 洛谷P5365 [SNOI2017] 英雄联盟 题解
  7. 实力解剖一枚挖矿脚本,风骚操作亮瞎双眼
  8. 有想一起创业的吗?熟悉ios+安卓的马甲包开发程序员
  9. 关于kali无线网络配置
  10. 【深度分析】游戏乐趣的一些来源