处理器架构与指令集

1.相关概念    

        CPU:中央处理器(CPU)是智能设备的大脑。任务是通过执行一系列指令来驱动其他设备,包括显示屏、触摸屏等,让一坨塑料金属混合物变成闪亮的智能手机或者平板电脑。移动设备非常复杂,其中的处理器需要执行数百万行指令才能完成人们希望这些设备去做的事。速度和功耗对处理器来说至关重要。速度影响用户体验,功耗影响电池寿命。完美的移动设备必须有好性能以及低功耗。这就是为什么选择什么样的处理器很重要。一个超级耗电、反应迟钝的处理器会很快吸干你的电池,而一个考究的、高效的处理器给你带来高性能和长久的电池寿命。

        指令集:主要是指CPU硬件与软件之间的接口描述。计算机指令就是指挥机器工作的指示和命令,程序就是一系列按一定顺序排列的指令,执行程序的过程就是计算机的工作过程。指令集,就是CPU中用来计算和控制计算机系统的一套指令的集合,本质上是一段二进制机器码,CPU只能识别机器码,但是机器码是一串无意义的字符串,程序员很难看看懂这些语句,用它来开发软件,所以后面就发明了汇编语言,汇编语言本质上跟机器码一一对应的。而每一种新型的CPU在设计时就规定了一系列与其他硬件电路相配合的指令系统。举个例子,我们写的软件为什么可以通过机器让其跑起来,并且是按照给定的方式,这其实是CPU内部的指令集的功劳,我们设计的所有软件得经过CPU内部指令集来达成,看起来很抽象是吧,通俗来讲就是这个指令集就对硬件进行操作的指令的集合,它们是机器代码,01010010这种格式,每一个指令代表对硬件进行什么样操作。

        指令集架构:是计算机体系架构的一部分。指令集是一个很虚的东西,是一个标准规范。架构主要是指某一个处理器所使用的具体指令集,比如说i.MX6ull,它是基于ArmV7架构的,就是指它是使用armV7指令集,在大部分场合,架构等于指令集。

        微架构:指令集架构与微架构(microarchitecture)不同,微架构指的是一套用于执行指令集的微处理器设计方法,使得指令集架构可以在微处理器上被执行。也就是CPU架构。集成电路工程师在设计处理器时,会按照指令集规定的指令,设计具体的译码和运算电路来支持这些指令的运行;指令集在CPU处理器内部的具体硬件电路的实现,我们就称为微架构,一套相同的指令集,可以由不同形式的电路实现,可以有不同的微架构。在设计一个微架构时,一般需要考虑很多问题:处理器是否支持分支预测,单发射还是多发射,顺序执行还是乱序执行?流水线需要多少级?主频需要多高?Cache需要多大?需要几级Cache?根据不同的配置选项,我们可以基于一套指令集设计出不同的微架构。

       CPU架构:CPU架构是CPU厂商给属于同一系列的CPU产品定的一个规范,主要目的是为了区分不同类型CPU的重要标示。目前市面上的CPU分类主要分有两大阵营,一个是intel、AMD为首的复杂指令集CPU,另一个是以IBM、ARM为首的精简指令集CPU。两个不同品牌的CPU,其产品的架构也不相同,例如,Intel、AMD的CPU是X86架构的,而IBM公司的CPU是PowerPC架构,ARM公司是ARM架构。CPU架构称为微架构。是一堆硬件电路,去实现指令集所规定的操作运算。其实就是CPU的集中电路图纸,用来实现我们我们这些指令集,从而通过指令集就可以操作电路进而操作硬件。所以指令集决定了处理器的架构,因为处理器架构就是用硬件电路实现指令集。但是具体用什么样的处理器架构,设计怎样的硬件电路,每个人设计的都可以不一样。

2 .冯·诺依曼架构与哈佛架构(处理器架构)

        对于处理器架构,目前已经演变出很多架构,但基本上都是由冯·诺依曼架构和哈佛架构演变而来。

https://pic1.zhimg.com/80/v2-4d5c8cf3d08bce62dfc1d2601280da10_720w.jpg

2.1 冯·诺伊曼架构

        1945 年,约翰·冯·诺依曼 (John von Neumann) 在他的著名《First Draft of a Report on the EDVAC》提出了电子数字计算机,也就是冯·诺伊曼架构。冯·诺伊曼架构(Von Neumann Architecture),也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的处理器架构。该架构将储存装置与中央处理器分开的概念,因此依该架构设计出的计算机又称储存程式型电脑

冯诺依曼架构如下图所示:

https://pic3.zhimg.com/80/v2-10b35a9623b10175ed5d2c58ff160c7e_720w.jpg

CPU:CPU是负责执行计算机程序指令的电子电路单元。CPU是处理指令的计算机系统的主要组件。它运行操作系统和应用程序,不断接收来自用户或应用程序的输入。

寄存器:它是一种存储器,用于快速接收、存储和传输中央处理器立即使用的数据和指令。

ALU: Arithmetic Logic Unit 负责所有所需的计算,如乘法、加法、减法、比较、逻辑运算符和其他算术运算符。

控制单元(CU: CU也是中央处理器(CPU)的一部分。CU 操作系统内的所有处理器控制信号、输入/输出设备、数据和指令的移动。

总线:用作指令和数据的信号通信。

内存单元:内存单元由随机存取内存 (RAM) 组成,有时也称为主内存或主内存。与硬盘(二级内存)不同,这种内存速度快,而且 CPU 可以直接访问。RAM 被分成多个分区。它的每个分区都由一个地址及其内容组成。该地址将唯一标识内存中的每个位置。将数据从永久内存(硬盘)加载到更快且可直接访问的临时内存 (RAM) 中,可使 CPU 工作得更快。

PC和服务器芯片(譬如Intel AMD那些出的),ARM Cortex-A系列嵌入式芯片(譬如核心是ARM Cortex A8的三星S5PV210,譬如华为的麒麟970等手机芯片)等都是冯诺依曼结构。这些系统都需要大量内存,所以工作内存都是DRAM,因为他们更适合使用冯诺依曼系统。

2.2 哈佛架构

哈佛架构(Harvard architecture)是一种将程序指令储存和数据储存分开的存储器结构。中央处理器首先到程序指令储存器中读取程序指令内容,解码后得到数据地址,再到相应的数据储存器中读取数据,并进行下一步的操作(通常是执行)。

哈佛架构的架构如下:

https://pic1.zhimg.com/80/v2-3479884dc629d142d6529117ce770d1c_720w.jpg

总线:用作指令和数据的信号通路。在这种架构中,数据和指令都有单独的总线。有不同类型的总线,它们如下:数据总线、数据地址总线、指令总线、指令地址总线。

操作寄存器:在哈佛架构中,使用了不同类型的寄存器,用于存储不同类型指令的地址。一些寄存器是内存数据寄存器,内存地址寄存器。

程序计数器:程序计数器具有要执行的下一条指令的位置。程序计数器将下一个地址传递给内存地址寄存器。

ALU:Arithmetic Logic Unit 负责所有所需的计算,如乘法、加法、减法、比较、逻辑运算符和其他算术运算符。

控制单元(CU:CU也是中央处理器(CPU)的一部分。CU 操作系统内的所有处理器控制信号、输入/输出设备、数据和指令的移动。

输入/输出流:I/P设备用于在中央处理器(CUP)输入指令的帮助下将数据读入主存储器。当输出通过输出设备显示时,它提供来自系统的信息。简单地说,计算机系统在 O/P 设备的帮助下给出处理(计算)的结果。

在遵循冯诺依曼架构的普通计算机中,指令和数据都存储在同一内存中。因此使用相同的总线来获取指令和数据。这意味着 CPU 不能同时做两件事(读指令和读/写数据)。而哈佛体系结构的计算机将指令和数据分别使用独立存储和独立总线(信号路径)。它基本上是为了克服冯诺依曼架构的瓶颈而开发的。指令和数据总线分开的主要优点是 CPU 可以同时访问指令和读/写数据。这是哈佛架构的主要优势。

哈佛结构的微处理器通常具有较高的执行效率,因其程序指令和数据指令分开组织和储存的,执行时可以预先读取下一条指令。目前使用哈佛结构的中央处理器和微控制器有很多,比如Microchip公司的PIC系列芯片,还有摩托罗拉公司的MC68系列、Zilog公司的Z8系列、ATMEL公司的AVR系列和ARM公司的ARM9、ARM10和ARM11。MCU也就是单片机中几乎都是用哈佛结构,譬如广泛使用的51单片机、典型的STM32单片机(核心是ARM Cortex-M系列的)都是哈佛结构。

与冯.诺曼结构处理器比较,哈佛结构处理器有两个明显的特点:

1.使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存;

2.使用独立的两条总线,分别作为CPU与每个存储器之间的专用通信路径,而这两条总线之间毫无关联。

2.3 总结

哈佛结构和冯诺依曼结构主要区别在是否区分指令与数据。在教科书里这是两种截然不同的做法。

但实际上在内存里,指令和数据是在一起的。而在CPU内的缓存中,还是会区分指令缓存和数据缓存,最终执行的时候,指令和数据是从两个不同的地方出来的。你可以理解为在CPU外部,采用的是冯诺依曼模型,而在CPU内部用的是哈佛结构。

哈佛结构设计复杂,但效率高。冯诺依曼结构则比较简单,但也比较慢。CPU厂商为了提高处理速度,在CPU内增加了高速缓存。也基于同样的目的,区分了指令缓存和数据缓存。有时为了解决现实问题,究竟是什么主义真的没那么重要。

实际上,绝大多数现代计算机使用的是所谓的“Modified Harvard Architecture”,指令和数据共享同一个address space,但缓存是分开的。

在现实世界中很少有非常纯粹的概念,特别是在实际的应用里。教科书里的大多是理想化的模型,便于掌握某个概念的重点和本质,但实际中很难达到这种理想化的状态。

有一些ARM(Cortex-M系列)是哈佛结构,而另一些ARM(Cortex-A)是冯诺依曼结构(或者更准确说是混合结构),对ARM体系CPU(除ARM7)对外表现为冯.诺伊曼架构,对内则表现为哈佛架构。

https://pic1.zhimg.com/80/v2-4096548a6c5a7fed0eb27b2586e6e24c_720w.jpg

因此,两种架构各有优势,不能一概而论。就目前而言,两种现代处理器在大规模的处理都是冯诺依曼,在小规模的处理是哈佛。

3.指令集架构

介绍完了处理器架构,接下来说说指令集。指令集有两种设计理念,也是目前世界上主要的两种CPU架构。分别是精简指令集(RISC)与复杂指令集系统(CISC)系统。

3.1 CISC(复杂指令集计算机)

CISC的英文全称为“Complex Instruc TIon Set Computer”,即“ 复杂指令系统计算机”,从计算机诞生以来,人们一直沿用CISC指令集方式。早期的桌面软件是按CISC设计的,并一直沿续到现在。目前,桌面计算机流行的x86体系结构即使用CISC。微处理器(CPU)厂商一直在走CISC的发展道路,包括Intel、AMD,还有其他一些现在已经更名的厂商,如 TI(德州仪器)、IBM以及VIA(威盛)等。在CISC微处理器中,程序的各条指令是按顺序串行执行的,每条指令中的各个操作也是按顺序串行执行的。顺序执行的优点是控制简单,但计算机各部分的利用率不高,执行速度慢。CISC架构的服务器主要以IA-32架构(Intel Architecture,英特尔架构)为主,而且多数为中低档服务器所采用。
  
长期来,计算机性能的提高往往是通过增加硬件的复杂性来获得。随着集成电路技术。特别是VLSI(超大规模集成电路)技术的迅速发展,为了软件编程方便和提高程序的运行速度,硬件工程师采用的办法是不断增加可实现复杂功能的指令和多种灵活的编址方式.甚至某些指令可支持高级语言语句归类后的复杂操作.至使硬件越来越复杂,造价也相应提高.为实现复杂操作, 微处理器除向程序员提供类似各种寄存器和机器指令功能外.还通过存于只读存贮器(ROM)中的微程序来实现其极强的功能 ,傲处理在分析每一条指令之后执行一系列初级指令运算来完成所需的功能 ,这种设计的型式被称为复杂指令集计算机(Complex Instruction Set Computer-CISC)结构.一般CISC计算机所含的指令数目至少300条以上,有的甚至超过500条.
 

3.2 RISC(精简指令集计算机)

RISC的英文全称为“Reduced Instruc TIon Set Computer”,即“ 精简指令集计算机”,是一种执行较少类型计算机指令的微处理器,起源于80年代的MIPS主机(即RISC机),RISC机中采用的微处理器统称RISC处理器。这样一来,它能够以更快的速度执行操作(每秒执行更多百万条指令,即MIPS)。因为计算机执行每个指令类型都需要额外的晶体管和电路元件,计算机指令集越大就会使微处理器更复杂,执行操作也会更慢。
  
采用复杂指令系统的计算机有着较强的处理高级语言的能力.这对提高计算机的性能是有益的.当计算机的设计沿着这条道路发展时.有些人没有随波逐流.他们回过头去看一看过去走过的道路,开始怀疑这种传统的做法:IBM公司没在纽约Yorktown的JhomasI.Wason研究中心于1975年组织力量研究指令系统的合理性问题.因为当时已感到,日趋庞杂的指令系统不但不易实现.而且还可能降低系统性能.1979年以帕特逊教授为首的一批科学家也开始在美国加册大学伯克莱分校开展这一研究.结果表明,CISC存在许多缺点.首先.在这种计算机中.各种指令的使用率相差悬殊:一个典型程序的运算过程所使用的80%指令.只占一个处理器指令系统的20%.事实上最频繁使用的指令是取、存和加这些最简单的指令.这样-来,长期致力于复杂指令系统的设计,实际上是在设计一种难得在实践中用得上的指令系统的处理器.同时.复杂的指令系统必然带来结构的复杂性.这不但增加了设计的时间与成本还容易造成设计失误.此外.尽管VLSI技术现在已达到很高的水平,但也很难把CISC的全部硬件做在一个芯片上,这也妨碍单片计算机的发展.在CISC中,许多复杂指令需要极复杂的操作,这类指令多数是某种高级语言的直接翻版,因而通用性差.由于采用二级的微码执行方式,它也降低那些被频繁调用的简单指令系统的运行速度.因而.针对CISC的这些弊病.帕特逊等人提出了精简指令的设想即指令系统应当只包含那些使用频率很高的少量指令.并提供一些必要的指令以支持操作系统和高级语言.按照这个原则发展而成的计算机被称为精简指令集计算机(Reduced Instruction Set Computer-RISC)结构.简称RISC.

3.3 CISC和RISC区别

        为了说明两者的区别,先举一个例子。下图是实现乘法运算的计算步骤:a = a * b。它需要4个步骤:

        A.读出a的值

        B.读出b的值

        C.相乘

        D.写结果到a中

https://pic3.zhimg.com/80/v2-a4b5e7cb67d49974a2aed374be12e4f6_720w.jpg

        使用CISC提供的乘法指令,只需要一条指令即可完成这4步操作。当然,这一个指令需要多个CPU周期才可以完成。

        而RISC不提供“一站式”的乘法指令,需调用四条单CPU周期指令完成两数相乘:内存a加载到寄存器,内存b加载到寄存器,两个寄存器中数相乘,寄存器结果存入内存a。

        按照此思路,早期的设计出的RISC指令集,指令数是比CISC少些。后来,很多RISC的指令集中指令数反超了CISC。因此,应该根据指令的复杂度而非数量来区分两种指令集。

        当然,CISC也是要通过操作内存、寄存器、运算器来完成复杂指令的。它在实现时,是将复杂指令转换成了一个微程序,微程序在制造CPU时就已存储于微服务存储器。一个微程序包含若干条微指令(也称微码),执行复杂指令时,实际上是在执行一个微程序。这也带来两种指令集的一个差别,微程序的执行是不可被打断的,而RISC指令之间可以被打断,所以理论上RISC可更快响应中断。

总的来说,区别如下:

(1)指令能力:

CISC的指令能力强,单多数指令使用率低却增加了CPU的复杂度,指令是可变长格式,它必须对不等长指令进行分割,因此在执行单一指令的时候需要进行较多的处理工作。

RISC的指令大部分为单周期指令,指令长度固定,CPU在执行指令的时候速度较快且性能稳定。因此在并行处理方面RISC明显优于CISC,RISC可同时执行多条指令,它可将一条指令分割成若干个进程或线程,交由多个处理器同时执行。RISC对内存只有load/store操作,数据的运算都是在CPU内部实现。

(2)寻址方式:

CISC支持多种寻址方式。

RISC支持的寻址方式少。

(3)实现方式:

CISC通过微程序控制技术实现(微码)。

RISC增加了通用寄存器,硬布线逻辑控制为主,适合采用流水线方式执行。RISC可以优化编译,有效支持高级语言。

(4)研发周期:

CISC的研制周期长。

RISC硬件简单,因而它的制造工艺简单且成本低廉。

4.部分指令集简述

4.1 x86指令集

x86指令集在个人电脑的市场占有率上毫无疑问是王者,其创立者为Intel。可以说x86指令集是目前世界上最流行的指令集了,也被认为是现存唯一的CISC指令集。

Intel主导下的x86架构,并不一直是处理器架构做得最好的,历史上出现过的Alpha等RISC处理器其架构设计就比同时代的x86更优,1976年乔布斯和沃兹尼亚克推出的使用8位6502处理器的Apple II计算机也击败过x86架构。但x86的兼容性(Compatibility)做得最好,其他如Alpha过于追求更先进的技术,甚至Alpha指令集代与代之间完全不兼容,从而淡出了市场,而x86的兼容性,使得即使在如今64位时代下,其仍能运行16位乃至8位的程序。显然如果客户每次升级处理器,都需要重写一遍程序的话,那绝对是受不了的。

而在兼容性之外,还有Intel和AMD本身的实力,足以下很多功夫在其他方面(工艺、架构)上来提高性能,以弥补架构上的差距。同时,x86架构也逐渐吸取了RISC架构的优势,在处理器内部,通过复杂的译码逻辑,将变长的复杂指令转换成定长的、简洁的微码,随后再流水执行。这样带来的缺点就是x86的译码逻辑相对于纯正的RISC来说要复杂很多,但这也许并不全是坏处。

说起指令集兼容性的重要性,有一件事十分典型,即x86从32位发展到64位时。首先是Intel与惠普联合推出了IA-64指令集,但其与32位的x86不兼容,因此难以推广。随后AMD推出了x86-64架构,是在32位的基础上增加了64位扩展,很快占据了市场。之后IA-64彻底失败,Intel也接纳了x86-64作为x86架构在64位时代的版本。

x86架构处理器的两大厂商,即Intel和AMD,只是提供处理器,并不生产整机。因此Intel和AMD都与IBM达成了合作,搭上了IBM这班飞速发展的快车。此外微软的操作系统也是长期支持x86架构。总的来看,x86处理器芯片有Intel和AMD,电脑整机有IBM,操作系统有微软,在这几大厂商的联合下,使得x86指令集架构占据了绝大部分的个人电脑市场。其他整机厂商,如1984年成立的DELL所推出的第一台计算机Turbo PC也是基于Intel 8088处理器。

此外让人津津乐道的,也有AMD和Intel之间的竞争。进入20世纪后,更明确说是2006年之后,Intel几乎是压制AMD,后者也不得不在价格和性能上妥协来避免直接竞争。但在20世纪前,AMD不见得比Intel差到哪去,相反在x86最初的二十年里,AMD的实力丝毫不输于Intel,甚至更强。而AMD之所以落后则是有多方面原因,包括领导的不力、方向性的错误、Intel的不正当竞争。最近几年随着锐龙架构的兴起,AMD也逐渐跟上了Intel的脚步,而Intel则饱受工艺研发的痛苦,被困在14nm工艺长达5年之久,不断滞后了先前承诺的10nm计划。

关于x86指令集的更详细内容,可以移步Intel和AMD提供的开发手册了。

4.2 ARM

ARM,即Advanced RISC Machine,或更早些时候的Acorn RISC Machine,是一系列RISC架构处理器。如果说x86统治了个人电脑(Personal Computer,即PC)市场,那么ARM则是统治了移动设备市场,主要是手机、平板以及嵌入式系统。这得益于RISC架构的优势,其简洁性可以很容易的实现低功耗需求,降低设计难度和散热性要求,同时具备良好的扩展性可以满足众多需求。

英国计算机公司Acorn Computers于1978年在剑桥成立,其在1980s推出了Acorn RISC Machine architecture,用于自家的PC。Acorn的第一款基于ARM的产品是一种协处理器模块,用于BBC Micro系列计算机,而BBC系列计算机也用于开发用于芯片设计的仿真软件,以及用于ARM2开发的CAD工具。

在1980s末期,Apple Computer公司和VLSI Technology公司开始和ARM合作开发新的架构。1990年Acorn将芯片设计团队独立出去,成立了Advanced RISC Machines Ltd,其母公司则为ARM Holdings,与Apple和VLSI共同开发处理器核。在1992年推出了ARM6架构,而Apple使用了基于ARM6的ARM610作为Apple Newton PDA的基础。Acorn在破产前一直在销售基于ARM的PC,而ARM Holdings则在销售芯片架构设计。

ARM并不生产芯片,而是出售芯片设计,供其他厂商使用。ARM架构的授权方式主要有两类:核心级授权和架构级授权:

前者只提供处理器核,可以和其他模块组合在一起形成可用的芯片。该授权下主要有两种级别,一种是提供门级网表(gate netlist)以及一些仿真模型和测试程序,因此无法修改核心架构,使用这种授权模式的有三星的Hummingbird和Exyno、苹果的A4、A5和A5X等。另外一种是提供HDL级的处理器核架构,此时相当于有了源代码,厂家可以自行修改,进行个性化开发,使用这种授权模式的有苹果、高通、华为、三星、博通、Xilinx等等。

后者则是指令集授权,可以使用ARM的ISA,内核可以自行设计,但仍需服从ARM架构。使用这种授权模式的有高通、苹果等。

4.3 MIPS、Alpha、Power、SPARC

比较知名的RISC,除了ARM外,简单介绍一下四种:

MIPS(Microprocessor without Interlocked Piped Stages Architecture)是一种十分简洁的RISC架构,其出身可谓是名门之家,由斯坦福大学的Hennessy教授领导的研究小组研制开发。由于MIPS是经典的RISC架构,且广泛用于体系结构领域的教学上,如Patterson和Hennessy的系列著作《计算机体系结构·量化研究方法》就主要以MIPS为例。如今除了ARM外,再说其RISC基本上就是MIPS了。我国的龙芯也是基于MIPS指令集,拓展了自己的指令后形成了LoongISA。

Power是IBM开发的RISC指令集。IBM于1980年推出了全球第一台基于RISC的原型机,而1980年也是IBM在PC市场上称霸的起步时期,但IBM却选择了RISC用于高性能领域,其成功也证明了RISC比CISC在高性能上更具优势。Power架构在超算、金融等高端服务器领域表现十分成功,至今IBM仍在迭代发展Power架构。

Alpha是一种64位的RISC指令集架构,由DEC公司设计开发,被用于DEC自己的工作站和服务器中。Alpha是一款优秀的处理器,它不仅是最早跨过GHz的企业级处理器,而且还是最早计划采用双核,甚至是多核架构的处理器。2001年,康柏收购DEC之后,逐步将其全部64位服务器系列产品转移到Intel的安腾处理器架构之上。2004年,惠普收购康柏,从此Alpha架构淡出了人们的视野。

SPARC(Scalable Processor ARChitecture),是由Sun公司在1985年设计的指令集架构,是一种非常有代表性的高性能RISC架构。Oracle收购Sun公司之后,SPARC架构归Oracle所有。2017年9月,Oracle公司宣布正式放弃硬件业务,也包括了收购自Sun的SPARC处理器。

4.4 RISC-V

RISC-V是一个开源的指令集架构,遵循RISC的设计原则,即力求简洁性,同时保持开放性。这个开源项目于2010年起源于伯克利,随后一直发展至今。

RISC-V最大的意义在于其开源性。现有的ISA基本上都十分昂贵,如ARM的授权。此外,设计CPU也是一个很复杂、很费钱的工作,不仅需要有经验的架构设计人员,还需要不断的经历仿真、验证、流片测试,而这则是普通公司难以承受的。

RISC-V自诞生之日起就是为了解决这些问题,提供一个开源的、广泛应用的、经过验证的指令集。经过若干年的开发,RISC-V具备了完整的软件工具链,以及若干开源的处理器架构设计。2016年,RISC-V基金会成立,作为一个非盈利组织,负责维护RISC-V指令集手册和架构文档,并推动RISC-V持续发展。许多著名科技公司,如谷歌、惠普、Oracle、西部数据等,都是RISC-V基金会的创始会员,越来越多的芯片公司也开始使用或计划使用RISC-V架构。此外,许多体系结构领域的教材,如Patterson和Hennessy的系列著作《计算机体系结构·量化研究方法》,其作者本身也大力支持RISC-V架构,因此后续越来越多的教材也将以RISC-V为例。而随着物联网时代的加速到来,有一个统一的、通用的、开源的指令集架构是很有意义的。

然而RISC-V的野心太大,无论是PC的王者Intel,还是移动设备的霸主ARM,都不会任由其发展下去。目前的形势下,正在兴起的物联网、AI则是RISC-V主要的发展方向。

5.ARM指令集架构

ARM是Advanced RISC Machines的缩写,它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的RISC (精简指令集)处理器。 1985年第一个ARM原型在英国剑桥诞生。公司的特点是只设计芯片,而不生产。它提供ARM技术知识产权(IP)核,将技术授权给世界上许多著名的半导体、软件和OEM厂商,并提供服务。有ARM7/ARM9等多个版本。除了一些Unix图形工作站外,大多数ARM核心的处理器都使用在嵌入领域。ARM,既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。

5.1 ARM版本介绍

ARM版本Ⅰ: V1版架构 

该版架构只在原型机ARM1出现过,只有26位的寻址空间,没有用于商业产品。 其基本性能有: 基本的数据处理指令(无乘法); 基于字节、半字和字的Load/Store指令; 转移指令,包括子程序调用及链接指令; 供操作系统使用的软件中断指令SWI; 寻址空间:64MB(226)。

ARM版本Ⅱ: V2版架构 

该版架构对V1版进行了扩展,例如ARM2和ARM3(V2a)架构。包含了对32位乘法指令和协处理器指令的支持。 版本2a是版本2的变种,ARM3芯片采用了版本2a,是第一片采用片上Cache的ARM处理器。同样为26位寻址空间,现在已经废弃不再使用。 V2版架构与版本V1相比,增加了以下功能 乘法和乘加指令; 支持协处理器操作指令; 快速中断模式; SWP/SWPB的最基本存储器与寄存器交换指令; 寻址空间:64MB。

ARM版本Ⅲ : V3版架构 

ARM作为独立的公司,在1990年设计的第一个微处理器采用的是版本3的ARM6。它作为IP核、独立的处理器、具有片上高速缓存、MMU和写缓冲的集成CPU。 变种版本有3G和3M。版本3G是不与版本2a向前兼容的版本3,版本3M引入了有符号和无符号数乘法和乘加指令,这些指令产生全部64位结果。 V3版架构( 目前已废弃 )对ARM体系结构作了较大的改动

寻址空间增至32位(4GB); 当前程序状态信息从原来的R15寄存器移到当前程序状态寄存器CPSR中(Current Program Status Register); 增加了程序状态保存寄存器SPSR(Saved Program Status Register); 增加了两种异常模式,使操作系统代码可方便地使用数据访问中止异常、指令预取中止异常和未定义指令异常。; 增加了MRS/MSR指令,以访问新增的CPSR/SPSR寄存器; 增加了从异常处理返回的指令功能。

ARM版本Ⅳ : V4版架构 

V4版架构在V3版上作了进一步扩充,V4版架构是目前应用最广的ARM体系结构,ARM7、ARM8、ARM9和StrongARM都采用该架构。 V4不再强制要求与26位地址空间兼容,而且还明确了哪些指令会引起未定义指令异常。 指令集中增加了以下功能: 符号化和非符号化半字及符号化字节的存/取指令; 增加了T变种,处理器可工作在Thumb状态,增加了16位Thumb指令集; 完善了软件中断SWI指令的功能; 处理器系统模式引进特权方式时使用用户寄存器操作; 把一些未使用的指令空间捕获为未定义指令

ARM版本Ⅴ : V5版架构

V5版架构是在V4版基础上增加了一些新的指令,ARM10和Xscale都采用该版架构。 这些新增命令有 带有链接和交换的转移BLX指令; 计数前导零CLZ指令; BRK中断指令; 增加了数字信号处理指令(V5TE版); 为协处理器增加更多可选择的指令; 改进了ARM/Thumb状态之间的切换效率; E---增强型DSP指令集,包括全部算法操作和16位乘法操作; J----支持新的JAVA,提供字节代码执行的硬件和优化软件加速功能。

ARM版本Ⅵ : V6版架构 

V6版架构是2001年发布的,首先在2002年春季发布的ARM11处理器中使用。在降低耗电量地同时,还强化了图形处理性能。通过追加有效进行多媒体处理的SIMD(Single Instruction, Multiple Data,单指令多数据 )功能,将语音及图像的处理功能提高到了原型机的4倍。 此架构在V5版基础上增加了以下功能 THUMBTM:35%代码压缩; DSP扩充:高性能定点DSP功能; JazelleTM:Java性能优化,可提高8倍; Media扩充:音/视频性能优化,可提高4倍

ARM版本ⅤⅡ: V7版架构 

V7架构是在ARMv6架构的基础上诞生的。该架构采用了Thumb-2技术,它是在ARM的Thumb代码压缩技术的基础上发展起来的,并且保持了对现存ARM解决方案的完整的代码兼容性。Thumb-2技术比纯32位代码少使用31%的内存,减小了系统开销。同时能够提供比已有的基于Thumb技术的解决方案高出38%的性能。ARMv7架构还采用了NEON技术,将DSP和媒体处理能力提高了近4倍,并支持改良的浮点运算,满足下一代3D图形、游戏物理应用以及传统嵌入式控制应用的需求。此外,ARMv7还支持改良的运行环境,以迎合不断增加的JIT(Just In Time)和DAC(DynamicAdaptive Compilation)技术的使用。

ARM版本ⅤⅢ: V8版架构

v8架构是在32位ARM架构上进行开发的,将被首先用于对扩展虚拟地址和64位数据处理技术有更高要求的产品领域,如企业应用、高档消费电子产品。ARMv8架构包含两个执行状态:AArch64和AArch32。AArch64执行状态针对64位处理技术,引入了一个全新指令集A64;而AArch32执行状态将支持现有的ARM指令集。目前的ARMv7架构的主要特性都将在ARMv8架构中得以保留或进一步拓展,如:TrustZone技术、虚拟化技术及NEON advanced SIMD技术等。

5.2 ARM微处理器核心以及体系结构的发展历史

1.ARM7处理器

ARM7处理器采用了ARMV4T(冯·诺依曼)体系结构,这种体系结构将程序指令存储器和数据存储器合并在 一起。主要特点就是程序和数据共用一个存储空间,程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,采用单一的地址及数据总线,程序指令和 数据的宽度相同。这样,处理器在执行指令时,必须先从存储器中取出指令进行译码,再取操作数执行运算。总体来说ARM7体系结构具有三级流水、空间统一的 指令与数据Cache、平均功耗为0.6mW/MHz、时钟速度为66MHz、每条指令平均执行1.9个时钟周期等特性。其中的ARM710、ARM720和ARM740为内带Cache的ARM核。ARM7指令集同Thumb指令集扩展组合在一起,可以减少内存容量和系统成本。同时,它还利用 嵌入式ICE调试技术来简化系统设计,并用一个DSP增强扩展来改进性能。ARM7体系结构是小型、快速、低能耗、集成式的RISC内核结构。该产品的典 型用途是数字蜂窝电话和硬盘驱动器等,目前主流的ARM7内核是ARM7TDMI、ARM7TDMI-S、ARM7EJ-S、ARM720T。现在市场上 用得最多的ARM7处理器有Samsung公司的S3C44BOX与S3C4510处理器、Atmel公司的AT91FR40162系列处理器、Cirrus公司的EP73xx系列等。通常来说前两三年大部分手机基带部分的应用处理器基本上都以ARM7为主。还有很多的通信模块,如CDMA模块、GPRS模块和GPS模块中都含有ARM7处理器。

2.ARM9、ARM9E处理器

ARM9处理器采用ARMV4T(哈佛)体系结构。这种体系结构是一种将程序指令存储和数据存储分开的存储器 结构,是一种并行体系结构。其主要特点是程序和数据存储在不同的存储空间中,即程序存储器和数据存储器。它们是两个相互独立的存储器,每个存储器独立编 址、独立访问。与两个存储器相对应的是系统中的4套总线,程序的数据总线和地址总线,数据的数据总线和地址总线。这种分离的程序总线和数据总线可允许在一 个机器周期内同时获取指令字和操作数,从而提高了执行速度,使数据的吞吐量提高了一倍。又由于程序和数据存储器在两个分开的物理空间中,因而取指和执行能 完全重叠。ARM9采用五级流水处理及分离的Cache结构,平均功耗为0.7mW/MHz。时钟速度为120MHz~200MHz,每条指令平均执行1.5个时钟周期。与ARM7处理器系列相似,其中的ARM920、ARM940和ARM9E处理器均为含有Cache的CPU核,性能为132MIPS(120MHz时钟,3.3V供电)或220MIPS(200MHz时钟)。ARM9处理器同时也配备Thumb指令扩展、调试和Harvard总线。在生产工艺相同的情况下,性能是ARM7TDMI处理器的两倍之多。常用于无线设备、仪器仪表、联网设备、机顶盒设备、高端打印机及 数码相机应用中。ARM9E内核是在ARM9内核的基础上增加了紧密耦合存储器TCM及DSP部分。目前主流的ARM9内核是ARM920T、ARM922T、ARM940。相关的处理器芯片有Samsung公司的S3C2510、Cirrus公司的EP93xx系列等。主流的ARM9E内核是ARM926EJ-S、ARM946E-S、ARM966E-S等。目前市场上常见的PDA,比如说PocketPC中一般都是用ARM9处理器,其中以Samsung公司的S3C2410处理器居多。

3.ARM10E处理器

ARM10E处理器采用ARMVST体系结构,可以分为六级流水处理,采用指令与数据分离的Cache结构, 平均功耗1000mW,时钟速度为300MHz,每条指令平均执行1.2个时钟周期。ARM10TDMI与所有ARM核在二进制级代码中兼容,内带高速32×16 MAC,预留DSP协处理器接口。其中的VFP10(向量浮点单元)为七级流水结构。其中的ARM1020T处理器则是由ARMl0TDMI、32KB指 令、数据Caches及MMU部分构成的。其系统时钟高达300MHz时钟,指令Cache和数据Cache分别为32KB,数据宽度为64位,能够支持 多种商用操作系统,适用于下一代高性能手持式因特网设备及数字式消费类应用。主流的ARM10内核是ARM1020E、ARM1022E、ARM1026EJ-S等。

4.SecurCore处理器

SecurCore系列处理器提供了基于高性能的32位RISC技术的安全解决方案,该系列处理器具有体积 小、功耗低、代码密度大和性能高等特点。另外最为特别的就是该系列处理器提供了安全解决方案的支持。采用软内核技术,以提供最大限度的灵活性,以及防止外 部对其进行扫描探测,提供面向智能卡的和低成本的存储保护单元MPU,可以灵活地集成用户自己的安全特性和其他的协处理器,目前含有SC100、SC110、SC200、SC210 4种产品。

5.StrongARM处理器

StrongARM处理器采用ARMV4T的五级流水体系结构。目前有SA110、SA1100、SA1110等3个版本。另外Intel公司的基于ARMv5TE体系结构的XScale PXA27x系列处理器,与StrongARM相比增加了I/D Cache,并且加入了部分DSP功能,更适合于移动多媒体应用。目前市场上的大部分智能手机的核心处理器就是XScale系列处理器。

6.ARM11处理器

ARM11系列微处理器是ARM公司近年推出的新一代RISC处理器,它是ARM新指令架构——ARMv6的第一代设计实现。该系列主要有ARM1136J,ARM1156T2和ARM1176JZ三个内核型号,分别针对不同应用领域。

ARM11处理器系列可以在使用130nm代工厂技术、小至2.2mm2芯片面积和低 至0.24mW/MHz的前提下达到高达500MHz的性能表现。ARM11处理器系列以众多消费产品市场为目标,推出了许多新的技术,包括针对媒体处理 的SIMD,用以提高安全性能的TrustZone技术,智能能源管理(IEM),以及需要非常高的、可升级的超过2600 Dhrystone 2.1 MIPS性能的系统多处理技术。主要的ARM11处理器有ARM1136JF-S、ARM1156T2F-S、ARM1176JZF-S、ARM11 MCORE等多种。

7.Cortex系列处理器

ARM Cortex-M系列支持Thumb-2指令集(Thumb指令集的扩展集),可以执行所有已存的为早期处理器编写的代码。通过一个前向的转换方式,为ARM Cortex-M系列处理器所写的用户代码可以与ARM Cortex-R系列微处理器完全兼容。ARMCortex-M系列系统代码(如实时操作系统)可以很容易地移植到基于ARM Cortex-R系列的系统上。ARMCortex-A和Cortex-R系列处理器还支持ARM 32位指令集,向后完全兼容早期的ARM处理器,包括从1995年发布的ARM7TDMI处理器到2002年发布的ARMll处理器系列。

Cortex-A:面向尖端的基于虚拟内存的操作系统和用户应用

Cortex-R:针对实时系统

Cortex-M:微控制器

(1)Cortex-M系列

Cortex-M0:

Cortex-M0是目前最小的ARM处理器,该处理器的芯片面积非常小,能耗极低,且编程所需的代码占用量很少,这就使得开发人员可以直接跳过16位系统,以接近8位系统的成本开销获取32位系统的性能。Cortex-M0处理器超低的门数开销,使得它可以用在仿真和数模混合设备中。

Cortex-M0+:

以Cortex-M0处理器为基础,保留了全部指令集和数据兼容性,同时进一步降低了能耗,提高了性能。2级流水线,性能效率可达1.08DMIPS/MHz。

Cortex-M1:

第一个专为FPGA中的实现设计的ARM处理器。Cortex-M1处理器面向所有主要FPGA设备并包括对领先的FPGA综合工具的支持,允许设计者为每个项目选择最佳实现。

Cortex-M3:

适用于具有较高确定性的实时应用,它经过专门开发,可使合作伙伴针对广泛的设备(包括微控制器、汽车车身系统、工业控制系统以及无线网络和传感器)开发高性能低成本平台。此处理器具有出色的计算性能以及对事件的优异系统响应能力,同时可应实际中对低动态和静态功率需求的挑战。

Cortex-M4:

由ARM专门开发的最新嵌入式处理器,用以满足需要有效且易于使用的控制和信号处理功能混合的数字信号控制市场。

Cortex-M7:

在 ARM Cortex-M处理器系列中,Cortex-M7的性能最为出色。它拥有六级超标量流水线、灵活的系统和内存接口(包括AXI和AHB)、缓存(Cache)以及高度耦合内存(TCM),为MCU提供出色的整数、浮点和DSP性能。

互联:64位AMBA4 AXI,AHB外设端口(64MB到512MB)

指令缓存:0到64kB,双路组相联,带有可选ECC

数据缓存:0到64kB,四路组相联,带有可选ECC

指令TCM:0到16MB,带有可选ECC

数据TCM:0到16MB,带有可选ECC

规格对比

Cortex-A系列

Cortex-A73

这是ARM2016年发布的最新A系列处理器,Cortex-A73支持全尺寸ARMv8-A构架,ARMv8-A是ARM公司的首款支持64位指令集的处理器架构,包括ARM TrustZone技术、NEON、虚拟化和加密技术。所以无论是32位还是64位,Cortex-A73都可以提供适应性最强的移动应用生态开发环境。Cortex-A73包括128位 AMBR 4 ACE接口和ARM的big.LITTLE系统一体化接口,采用了目前最先进的10nm技术制造,可以提供比Cortex-A72高出30%的持续处理能力,非常适合移动设备和消费级设备使用。预计今年晚些时候到2017年,Cortex-A73处理器将会逐渐覆盖到我们合作伙伴的高端智能手机、平板电脑、翻盖式移动设备、数字电视等一系列消费电子设备。

Cortex-A72

Cortex-A72最早发布于2015年年初,也是基于ARMv8-A架构,采用台积电16nm FinFET制造工艺,Cortex-A72可在芯片上单独实现性能,也可以搭配Cortex-A53处理器与ARMCoreLinkTMCCI高速缓存一致性互连(CacheCoherentInterconnect)构成ARMbig.LITTLETM配置,进一步提升能效。在相同的移动设备电池寿命限制下,Cortex-A72能相较基于Cortex-A15的设备提供3.5倍的性能表现,相比于Cortex-A57也有约1.8倍的性能提升,展现出了优异的整体功耗效率。Cortex-A72是目前基于ARMv8-A架构处理器中使用最广泛的处理器之一,主要其应用市场包括高端智能手机、大屏幕的移动设备、企业网路设备、服务器、无线基台、数字电视。

Cortex-A57

Cortex-A57是ARM针对2013年、2014年和2015年设计起点的CPU产品系列的旗舰级CPU,它也是ARM首次采用64位ARMv8-A架构CPU,而且通过Aarch32执行状态,保持与ARMv7架构的完全后向兼容性。除了ARMv8的架构优势之外,Cortex-A57还提高了单个时钟周期性能,比高性能的Cortex-A15 CPU高出了20%至40%。它还改进了二级高速缓存的的设计以及内存系统的其他组件,极大的提高了能效。Cortex-A57将为移动系统提供超高能的性能,而借助big.LITTLE,SoC能以很低的平均功耗做到这一点。其主要面对的是中高端电脑,平板电脑以及服务器产品。

Cortex-A53

Cortex-A53同样是采取了ARMv8-A架构,能够支持32位的ARMv7代码和64位代码的AArch64执行状态。A53架构特点是功耗降低、能效提高。其目标是28nm HPM制造工艺下、运行SPECint2000测试时,单个核心的功耗不超过0.13W。它提供的性能比Cortex-A7处理器的功率效率更高,并能够作为一个独立的主要的应用处理器,或者搭配Cortex-A57处理器构成big.LITTLE配置。Cortex-A53在相同的频率下,能提供比Cortex-A9更高的效能。其主要面对的是中高端电脑,平板电脑,机顶盒,数字电视等。

Cortex-A35

Cortex-A35是基于ARMv8-A 64位架构设计的一款低功耗CPU,其目的是为了取代此前32位Cortex-A7和Cortex-A5两颗老核心,采用和A53/A7类似的顺序有限双发射设计,同时融入了A72的一些新特性,并在前端重新设计了指令预取单元,提升了分支预测精度。此外,A35还采用了A53的缓存、内存架构,可配置8-64KB一级指令和数据缓存、128KB-1MB二级缓存,加入了NEON/FP单元,改进了存储性能,支持完整流水线的双精度乘法,还为CPU核心、NEON流水线都配备了硬件保留状态(独立电源域)以提升电源管理效率。在同样的工艺、频率下,A35的功耗比A7低大约10%,同时性能提升6-40%。而对比A53,它可以保留80-100%的性能,但是功耗降低32%、面积缩小25%,能效提升25%。A35还可以和A53、A57、A72等大核心搭配,组成big.LITTLE混合架构系统,进一步提升系统能效。其主要定位于低功耗的低端手机、可穿戴、物联网等领域。

Cortex-A32

这是ARM新一代构架中,唯一一个32位(ARMv7-A)架构的处理器,但A32就像是32位版的A35,目标很明显,就是在效能比本来就逆天的A35的基础上进一步控制功耗。A32架构主打芯片面积、功耗控制和能耗比,其停留在32位(ARMv7-A指令集),指令预取单元针对效率进行了重新设计,一、二级暂存、浮点和DSP操作性能则针对速度进行了改进,并引入了新的电源管理特性。其支持TrustZone安全加密、NEONSIMD指令集、DSP/SIMD扩展、VFPv4浮点计算、虚拟硬件等。A32可以在32位下提供和A35一样的性能。但更低功耗,让它的效能比(单位电能产出的性能)比A35还要高10%、比A5高30%、比A7高25%。A35可以透过提升频率达到A5380-100%性能,也就是说,A32也可以在32位下达到同样的性能等级,这时候的芯片面积只有A53的68%,而功耗则只有A53的61%。

在64位之下,A35都有代替A53架构的实力,而在32位中,A32就已经是完胜所有人的境界了,而且比起64位的A35架构,32位的A32更适合用在穿戴设备和物联网产品上。

Cortex-A17

A17仍然基于32位ARMv7-A指令集,初期会采用28nm工艺,后期进化到20nm。本质架构和A12一样都是双宽度、乱序发射,仅仅是改进了外部互联,引入了新的一致性总线AMBA4ACE,可以更快速地连接内存控制器,从而改善性能和能效。得益于这个新的总线,A17可以支持多核心SoC的完整内存一致性操作,能够参与big.LITTLE双架构混合方案,在特定频率、工艺、内存条件下,A17的性能比A12提升大约40%。在某些特定的环境中,A17的性能已经可以和A15处于一个档次了,但是功耗更低、能效更高。虽然在命名上排在Cortex-A15之上,但其定位中端,而不是高端。

Cortex-A15

Cortex-A15最早在2010年发布,基于32位ARMv7-A架构。A15和A9同样具备乱序执行,但是Cortex-A15具备(两倍)的指令发射端口和执行资源,指令解码能力也要高出50%,动态分支预测能力更强(采用了多层级分支表缓存),指令拾取带宽更强(128bitvs64bit),这些都能让A15的流水线执行具备更高的效率。除此以外,A15采用了VFPv4浮点单元设计,能执行FMA指令以及硬件除法指令,相较而言A9的峰值向量浮点性能基本上只有A15的一半。Cortex-A15处理器可以应用在智能手机、平板电脑、移动计算、高端数字家电、服务器和无线基础结构等设备上。

Cortex-A9

ARMCortex-A9采用ARMv7-A架构,目前我们能见到的四核处理器大多都是属于Cortex-A9系列。Cortex-A9处理器的设计旨在打造最先进的、高效率的、长度动态可变的、多指令执行超标量体系结构,提供采用乱序猜测方式执行的8阶段管道处理器,凭借范围广泛的消费类、网络、企业和移动应用中的前沿产品所需的功能,它可以兼具高性能和高能效。Cortex-A9微体系结构既可用于可伸缩的多核处理器(Cortex-A9MPCore多核处理器),也可用于更传统的处理器(Cortex-A9单核处理器)。可伸缩的多核处理器和单核处理器支持16、32或64KB4路关联的L1高速缓存配置,对于可选的L2高速缓存控制器,最多支持8MB的L2高速缓存配置,它们具有极高的灵活性,均适用于特定应用领域和市场。

Cortex-A8

ARMCortex-A8处理器,基于ARMv7-A架构,是目前使用的单核手机中最为常见的产品。Cortex-A8处理器是首款基于ARMv7体系结构的产品,能够将速度从600MHz提高到1GHz以上。Cortex-A8处理器可以满足需要在300mW以下运行的移动设备的功率优化要求;以及需要2000DhrystoneMIPS的消费类应用领域的性能优化要求。Cortex-A8高性能处理器目前已经非常成熟,从手机到上网本、DTV、打印机和汽车信息娱乐,Cortex-A8处理器都提供了可靠的高性能解决方案。

Cortex-A7

Cortex-A7采用ARMv7-A架构,它的特点是在保证性能的基础上提供了出色的低功耗表现。Cortex-A7处理器的体系结构和功能集与Cortex-A15处理器完全相同,不同这处在于,Cortex-A7处理器的微体系结构侧重于提供最佳能效,因此这两种处理器可在big.LITTLE(大小核大小核心伴侣结构)配置中协同工作,从而提供高性能与超低功耗的终极组合。单个Cortex-A7处理器的能源效率是Cortex-A8处理器的5倍,性能提升50%,而尺寸仅为后者的五分之一。

Cortex-A5

Cortex-A5处理器同样基于ARMv7-A架构,它是能效最高、成本最低的处理器,能够向最广泛的设备提供最基础的Internet访问。Cortex-A5处理器在指令以及功能方面与更高性能的Cortex-A8、Cortex-A9和Cortex-A15处理器完全兼容-一直到操作系统级别。Cortex-A5处理器还保持与经典ARM处理器(包括ARM926EJ-S、ARM1176JZ-S和ARM7TDMI?)的向后应用程序兼容性。其定位于从入门级智能手机、低成本手机和智能移动设备以及基础工业设备。

规格对比

Cortex-R系列

Cortex-R4

第一个基于ARMv7-R体系的嵌入式实时处理器。专用于大容量深层嵌入式片上系统应用,如硬盘驱动控制器、无限基带处理器、消费产品手机MTK平台和汽车系统的电子控制单元。

Cortex-R5

2010年推出,基于ARMv7-R体系,扩展了Cortex-R4处理器的功能集,支持在可靠的实时系统中获得更高级别的系统性能、提高效率和可靠性并加强错误管理。这些系统级功能包括高优先级的低延迟外设端口(LLPP)和加速器一致性端口(ACP),前者用于快速外设读写,后来用于提高效率并与外部数据源达成更可靠的高速缓存一致性。

基于40nmG工艺,Cortex-R5处理器可以实现以将近1GHz的频率运行,此时它可提供1,500DhrystoneMIPS的性能。该处理器提供高度灵活且有效的双周期本地内存接口,使SoC设计者可以最大限度地降低系统成本和功耗。

Cortex-R7

Cortex-R7处理器是性能最高的Cortex-R系列处理器。它是高性能实时SoC的标准。Cortex-R7处理器是为基于65nm至28nm的高级芯片工艺的实现而设计的,此外其设计重点在于提升能效、实时响应性、高级功能和简化系统设计。基于40nmG工艺,Cortex-R7处理器可以实现以超过1GHz的频率运行,此时它可提供2700DhrystoneMIPS的性能。该处理器提供支持紧密耦合内存(TCM)本地共享内存和外设端口的灵活的本地内存系统,使SoC设计人员可在受限制的芯片资源内达到高标准的硬实时要求。

规格对比

本文为自我知识点总结,参考文章网址如下(部分来源已无法查询,如涉及版权问题,请联系作者):

计算机CPU四大体系架构 - 知乎 (zhihu.com)

指令集、架构、处理器、内核,芯片之间的关系_指令集和架构的关系-CSDN博客

处理器架构与指令集 - 知乎 (zhihu.com)

ARM Cortex各系列处理器分类比较_cortexm4f与cortex-a72_daijingxin的博客-CSDN博客

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值