Cortex-Mx简介及CPU主流架构

Cortex-Mx简介

Cortex-Mx就是arm研发的CPU/内核/处理器。

Cortex-Mx的优点可以从两方面简单阐述:

  1. 硬件:成本,功耗,尺寸,性能等
  2. 软件:可移植性强——CMSIS

CMSIS:Cortex Microcontroller Software Interface Standard,是ARM Cortex-M的软件接口标准。

CMSIS是ARM为所有芯片开发商写好的最底层软件接口,这样用户如果要升级等,也不需要重新构建底层接口。

竞争者:

  1. AVR架构,如:PIC单片机(PIC性能牛逼,但是价格贵),这是Cortex相较之的竞争优势。
  2. MSP430架构:TI独有,超低功耗,混合信号处理

MCU和MPU的区别

MCU,即Micro controller uint,微控制器/单片机

MPU,即Micro processor uint,微处理器

MCU和MPU最大的区别就是CPU采用的架构不同

  1. MCU采用的是Cortex-M系列
  2. MPU采用的是Cortex-A系列

这涉及到ARM公司现在最流行的Cortex系列。

Cortex系列:

  1. Cortex-A:面向尖端的基于虚拟内存的操作系统和用户应用,例如手机和平板
  2. Cortex-M:针对成本和功耗敏感的应用,微控制器和终端应用
  3. Cortex-R:针对实时操作系统,主要用在汽车领域,动力传动方案

Cortex系列属于arm-v7架构。

一般MPU采用的是多核架构:例如TI的AM335X系列

“MPU和MCU的区别本质上是因为应用定位不同,为了满足不同的应用场景而按不同方式优化出来的两类器件。MPU注重通过较为强大的运算/处理能力,执行复杂多样的大型程序,通常需要外挂大容量的存储器。而MCU通常运行较为单一的任务,执行对于硬件设备的管理/控制功能。通常不需要很强的运算/处理能力,因此也不需要有大容量的存储器来支撑运行大程序。通常以单片集成的方式在单个芯片内部集成小容量的存储器实现系统的“单片化”。”

——转自知乎 MPU和MCU的区别https://wjrsbu.smartapps.cn/zhihu/article?id=106860696&isShared=1&hostname=baiduboxapp&_swebfr=1

指令集

指令集决定了CPU架构的不同。

CPU指令集(Instruction Set Architecture,ISA)是CPU能直接识别和接受并指挥计算机执行某种操作的命令集,它是软件与硬件之间交互的桥梁。上层软件要在CPU执行,就必须被翻译成机器码。编译器对软件翻译为机器码的过程中,要经过编译、汇编、链接几个步骤,最后生成由二进制机器码组成的可执行文件,这串机器码可以直接被CPU读取和执行。指令集在这个过程中起规范汇编文件格式,使软件、硬件可以顺利交互的作用。

指令集是软件和硬件都要遵循的一套规则。

指令集架构之所以重要,是因为他不只决定了硬件的具体的实作方式,也决定了其配套的软件的工具链,包含编译器,仿真器,SoC开发套件系统等,一旦要改用其他CPU指令集做具体的实作设计的话,所有相关的软件硬件全部都要更换,所以这也就是为什么X86架构会始终独占PC,而ARM则独大移动和嵌入式设备的原因。

CPU三种主流架构

  1. RISC-V:新兴的,IOT,AI,IOT/AI时代
  2. ARM(基于RISC指令集):移动,嵌入式设备,移动互联网时代
  3. X86(基于CSIC指令集):PC,服务器(Intel、AMD),互联网时代

RISC

RISC的英文全称为“Reduced Instruction Set Computer”,即“精简指令集计算机”,是一种执行较少类型计算机指令的微处理器。

CISC

CISC的英文全称为“Complex Instruction Set Computer”,即“复杂指令系统计算机”,从计算机诞生以来,人们一直沿用CISC指令集方式。

CPU包含有丰富的电路单元,因而功能强、面积大、功耗大。

RISC和CISC的区别

以下转自https://zhuanlan.zhihu.com/p/346864380简述risc和cisc的区别 

 1、指令系统

  CISC

  计算机的指令系统比较丰富,有专用指令来完成特定的功能。因此,处理特殊任务效率较高。

  RISC

  设计者把主要精力放在那些经常使用的指令上,尽量使它们具有简单高效的特色。对不常用的功能,常通过组合指令来完成。因此,在RISC 机器上实现特殊功能时,效率可能较低。但可以利用流水技术和超标量技术加以改进和弥补。

  2、存储器操作

  CISC

  机器的存储器操作指令多,操作直接。

  RISC

  对存储器操作有限制,使控制简单化。

  3、程序

  CISC

  汇编语言程序编程相对简单,科学计算及复杂操作的程序社设计相对容易,效率较高。

  RISC

  汇编语言程序一般需要较大的内存空间,实现特殊功能时程序复杂,不易设计。

  4、中断

  CISC

  机器是在一条指令执行结束后响应中断。

  RISC

  机器在一条指令执行的适当地方可以响应中断。

  5、CPU

  CISC

  CPU包含有丰富的电路单元,因而功能强、面积大、功耗大。

  RISC

  CPU包含有较少的单元电路,因而面积小、功耗低。

  6、设计周期

  CISC

  微处理器结构复杂,设计周期长。

  RISC

  微处理器结构简单,布局紧凑,设计周期短,且易于采用最新技术。

  7、用户使用

  CISC

  微处理器结构复杂,功能强大,实现特殊功能容易。

  RISC

  微处理器结构简单,指令规整,性能容易把握,易学易用。

  8、应用范围

  CISC

  机器则更适合于通用机。

  RISC

  由于RISC指令系统的确定与特定的应用领域有关,故RISC 机器更适合于专用机。

  我们经常谈论有关“PC”与“Macintosh”的话题,但是又有多少人知道以Intel公司X86为核心的PC系列正是基于CISC体系结构,而 Apple公司的Macintosh则是基于RISC体系结构,CISC与RISC到底有何区别?

  从硬件角度来看CISC处理的是不等长指令集,它必须对不等长指令进行分割,因此在执行单一指令的时候需要进行较多的处理工作。而RISC执行的是等长精简指令集,CPU在执行指令的时候速度较快且性能稳定。因此在并行处理方面RISC明显优于CISC,RISC可同时执行多条指令,它可将一条指令分割成若干个进程或线程,交由多个处理器同时执行。由于RISC执行的是精简指令集,所以它的制造工艺简单且成本低廉。

  从软件角度来看,CISC运行的则是我们所熟识的DOS、Windows操作系统。而且它拥有大量的应用程序。因为全世界有65%以上的软件厂商都理为基于CISC体系结构的PC及其兼容机服务的,象赫赫有名的Microsoft就是其中的一家。而RISC在此方面却显得有些势单力薄。虽然在RISC上也可运行DOS、Windows,但是需要一个翻译过程,所以运行速度要慢许多。

  目前CISC与RISC正在逐步走向融合,Pentium Pro、Nx586、K5就是一个最明显的例子,它们的内核都是基于RISC体系结构的。他们接受CISC指令后将其分解分类成RISC指令以便在遇一时间内能够执行多条指令。由此可见,下一代的CPU将融合CISC与RISC两种技术,从软件与硬件方面看二者会取长补短。

RISC-V

RISC-V(读作“RISC-FIVE”)是基于精简指令集计算(RISC)原理建立的开放指令集架构(ISA),V表示为第五代RISC。

RISC-V是开源的,与大多数ISA相反,RISC-V ISA可以免费地用于所有希望的设备中,允许任何人设计、制造和销售RISC-V芯片和软件。它虽然不是第一个开源的的指令集(ISA),但它很重要,因为它第一个被设计成可以根据具体场景可以选择适合的指令集的指令集架构。

基于RISC-V指令集架构可以设计服务器CPU,家用电器cpu,工控cpu和用在比指头小的传感器中的cpu。

使用的有英伟达、WD、SiFive,国内的阿里平头哥、晶心科技、北京君正等。

RISC-V ISA是模块化设计,可以自由裁剪,可拓展专业化,用户能够灵活选择不同的模块组合,来实现自己定制化设备的需要。这种模块化是x86和arm架构不具备的。

RISC-V ISA兼顾数据传输速率和数据量,是以数据为中心的架构。

缺点是生态系未成熟,分歧不利于整合。

RISC-V 有望成为IOT/AI时代的新一代主流。

posted @ 2021-04-03 17:59  懒懒阳光下的午睡  阅读(1236)  评论(0编辑  收藏  举报