cpu架构之体系架构

cpu架构之体系架构

1 现代CPU体系结构简介

现代的CPU基本上归为冯诺依曼结构(也称普林斯顿结构)和哈佛结构

1.1 冯诺依曼结构

《cpu架构之体系架构》《cpu架构之体系架构》

冯诺依曼结构(von Neumann architecture),也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的电脑设计概念结构。
本结构隐约指导了将储存装置与中央处理器分开的概念,因此依本结构设计出的计算机又称储存程式型电脑。其中ARM7系列采用冯诺依曼体系架构。
冯.诺曼结构处理器具有以下几个特点:

  • 必须有一个存储器;
  • 必须有一个控制器;
  • 必须有一个运算器,用于完成算术运算和逻辑运算;
  • 必须有输入和输出设备,用于进行人机通信。

1.2 哈佛结构

《cpu架构之体系架构》
《cpu架构之体系架构》

哈佛结构(Harvard architecture)是一种将程序指令存储和数据存储分开的存储器结构。中央处理器首先到程序指令储存器中读取程序指令内容,解码后得到数据地址,再到相应的数据储存器中读取数据,并进行下一步的操作(通常是执行)。程序指令储存和数据储存分开,数据和指令的储存可以同时进行,可以使指令和数据有不同的数据宽度。
与冯诺曼结构处理器比较,哈佛结构处理器有两个明显的特点:
1) 使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存;
2) 使用独立的两条总线,分别作为CPU与每个存储器之间的专用通信路径,而这两条总线之间毫无关联。
改进的哈佛结构,其结构特点为:
《cpu架构之体系架构》

1) 使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存,以便实现并行处理;
2) 具有一条独立的地址总线和一条独立的数据总线,利用公用地址总线访问两个存储模块(程序存储模块和数据存储模块),公用数据总线则被用来完成程序存储模块或数据存储模块与CPU之间的数据传输;

2 现代CPU种类

截止2020年8月,市面上主流的cpu架构有ARM、X86/Atom、MIPS、Risc-V、PowerPC等。
1)ARM/MIPS/PowerPC/ Risc-V均是基于精简指令集(RISC,Reduced Instruction Set Computing)机器处理器的架构;
2)X86则是基于复杂指令集(CISC,Complex Instruction Set Computer)的架构,Atom是x86或者是x86指令集的精简版。

2.1 ARM系列

ARM架构,过去称作进阶精简指令集机器(Advanced RISC Machine,更早称作:Acorn RISC Machine),是一个32位精简指令集(RISC)处理器架构,其广泛地使用在许多嵌入式系统设计。由于节能的特点,ARM处理器非常适用于移动通讯领域,符合其主要设计目标为低耗电的特性。
在今日,ARM家族占了所有32位嵌入式处理器75%的比例,使它成为占全世界最多数的32位架构之一。ARM处理器可以在很多消费性电子产品上看到,从可携式装置(PDA、移动电话、多媒体播放器、掌上型电子游戏,计算机)到电脑外设(硬盘、桌上型路由器)甚至在导弹的弹载计算机等军用设施中都有他的存在。在此还有一些基于ARM设计的派生产品,重要产品还包括Marvell 的XScale架构和德州仪器的OMAP系列。
优势:价格低;能耗低;
ARM 授权方式:ARM 公司本身并不靠自有的设计来制造或出售 CPU ,而是将处理器架构授权给有兴趣的厂家。ARM 提供了多样的授权条款,包括售价与散播性等项目。对于授权方来说,ARM 提供了 ARM 内核的整合硬件叙述,包含完整的软件开发工具(编译器、debugger、SDK),以及针对内含 ARM CPU 硅芯片的销售权。对于无晶圆厂的授权方来说,其希望能将 ARM 内核整合到他们自行研发的芯片设计中,通常就仅针对取得一份生产就绪的智财核心技术(IP Core)认证。对这些客户来说,ARM 会释出所选的 ARM 核心的闸极电路图,连同抽象模拟模型和测试程式,以协助设计整合和验证。需求更多的客户,包括整合元件制造商(IDM)和晶圆厂家,就选择可合成的RTL(暂存器转移层级,如 Verilog)形式来取得处理器的智财权(IP)。借着可整合的 RTL,客户就有能力能进行架构上的最佳化与加强。这个方式能让设计者完成额外的设计目标(如高震荡频率、低能量耗损、指令集延伸等)而不会受限于无法更动的电路图。虽然 ARM 并不授予授权方再次出售 ARM 架构本身,但授权方可以任意地出售制品(如芯片元件、评估板、完整系统等)。商用晶圆厂是特殊例子,因为他们不仅授予能出售包含 ARM 内核的硅晶成品,对其它客户来讲,他们通常也保留重制 ARM 内核的权利。
生产厂商:TI (德州仪器),Samsung(三星),Freescale(飞思卡尔),Marvell(马维尔),Nvidia(英伟达)。

2.2 X86系列/Atom处理器

x86或80×86是英代尔Intel首先开发制造的一种微处理器体系结构的泛称。
x86架构是重要地可变指令长度的CISC(复杂指令集电脑,Complex Instruction Set Computer)。
Intel Atom(中文:凌动,开发代号:Silverthorne)是Intel的一个超低电压处理器系列。处理器采用45纳米工艺制造,集成4700万个晶体管。L2缓存为512KB,支持SSE3指令集,和VT虚拟化技术(部份型号)。与一般的桌面处理器不同,Atom处理器采用顺序执行设计,这样做可以减少电晶体的数量。为了弥补性能较差的问题,Atom处理器的起跳频率会较高。

2.3 MIPS系列

MIPS(Microprocessor without interlocked piped stages,“无内部互锁流水级的微处理器”),是世界上很流行的一种精简指令集RISC处理器,其机制是尽量利用软件办法避免流水线中的数据相关问题。它最早是在80年代初期由斯坦福(Stanford)大学Hennessy教授领导的研究小组研制出来的。MIPS公司的R系列就是在此基础上开发的RISC工业产品的微处理器。这些系列产品为很多计算机公司采用构成各种工作站和计算机系统。
MIPS技术公司是美国著名的芯片设计公司,它采用精简指令系统计算结构(RISC)来设计芯片。和英特尔采用的复杂指令系统计算结构(CISC)相比,RISC具有设计更简单、设计周期更短等优点,并可以应用更多先进的技术,开发更快的下一代处理器。MIPS是出现最早的商业RISC架构芯片之一,新的架构集成了所有原来MIPS指令集,并增加了许多更强大的功能。MIPS自己只进行CPU的设计,之后把设计方案授权给客户,使得客户能够制造出高性能的CPU。中科院计算机研究所的龙芯中央处理器获得其处理器IP的全部专利和总线、指令集授权。

2.4 PowerPC系列

PowerPC 是一种精简指令集(RISC)架构的中央处理器(CPU),其基本的设计源自IBM(国际商用机器公司)的IBM PowerPC 601 微处理器POWER(Performance Optimized With Enhanced RISC;《IBM Connect 电子报》2007年8月号译为“增强RISC性能优化”)架构。
二十世纪九十年代,IBM(国际商用机器公司)、Apple(苹果公司)和Motorola(摩托罗拉)公司开发PowerPC芯片成功,并制造出基于PowerPC的多处理器计算机。PowerPC架构的特点是可伸缩性好、方便灵活。
PowerPC 处理器有广泛的实现范围,包括从诸如 Power4 那样的高端服务器 CPU 到嵌入式 CPU 市场(任天堂 Gamecube 使用了 PowerPC)。PowerPC 处理器有非常强的嵌入式表现,因为它具有优异的性能、较低的能量损耗以及较低的散热量。除了象串行和以太网控制器那样的集成 I/O,该嵌入式处理器与“台式机”CPU 存在非常显著的区别。

2.5 DSP架构

互补型的实时性(Real Time)较好的DSP架构
DSP是微处理器的一种,这种微处理器具有极高的处理速度。因为应用这类处理器的场合要求具有很高的实时性(Real Time)。比如通过移动电话进行通话,如果处理速度不快就只能等待对方停止说话,这一方才能通话。如果双方同时通话,因为数字信号处理速度不够,就只能关闭信号连接.在DSP出现之前数字信号处理只能依靠MPU(微处理器)来完成。但MPU较低的处理速度无法满足高速实时的要求。因此,直到70年代,有人才提出了DSP的理论和算法基础。那时的DSP仅仅停留在教科书上,即便是研制出来的DSP系统也是由分立元件组成的,其应用领域仅局限於军事、航空航天部门。90年代DSP发展最快,相继出现了第四代和第五代DSP器件。现在的DSP属於第五代产品,它与第四代相比,系统集成度更高,将DSP芯核及外围元件综合集成在单一芯片上。这种集成度极高的DSP芯片不仅在通信、计算机领域大显身手,而且逐渐渗透到人们日常消费领域。

2.6 Riscv系列

RISC-V(读作“RISC-FIVE”)是基于精简指令集计算(RISC)原理建立的开放指令集架构(ISA),V表示为第五代RISC(精简指令集计算机),表示此前已经四代RISC处理器原型芯片。每一代RISC处理器都是在同一人带领下完成,那就是加州大学伯克利分校的David A. Patterson教授。与大多数ISA相反,RISC-V ISA可以免费地用于所有希望的设备中,允许任何人设计、制造和销售RISC-V芯片和软件。图1展示了此前的四代RISC处理器原型芯片。它虽然不是第一个开源的的指令集(ISA),但它很重要,因为它第一个被设计成可以根据具体场景可以选择适合的指令集的指令集架构。基于RISC-V指令集架构可以设计服务器CPU,家用电器cpu,工控cpu和用在比指头小的传感器中的cpu。
1) 完全开源
对指令集使用,RISC-V基金会不收取高额的授权费。开源采用宽松的BSD协议,企业完全自由免费使用,同时也容许企业添加自有指令集拓展而不必开放共享以实现差异化发展。
2) 架构简单
RISC-V架构秉承简单的设计哲学。体现为:
在处理器领域,主流的架构为x86与ARM架构。x86与ARM架构的发展的过程也伴随了现代处理器架构技术的不断发展成熟,但作为商用的架构,为了能够保持架构的向后兼容性,其不得不保留许多过时的定义,导致其指令数目多,指令冗余严重,文档数量庞大,所以要在这些架构上开发新的操作系统或者直接开发应用门槛很高。而RISC-V架构则能完全抛弃包袱,借助计算机体系结构经过多年的发展已经成为比较成熟的技术的优势,从轻上路。RISC-V基础指令集则只有40多条,加上其他的模块化扩展指令总共几十条指令。 RISC-V的规范文档仅有145页,而“特权架构文档”的篇幅也仅为91页。
3) 易于移植*nix
现代操作系统都做了特权级指令和用户级指令的分离,特权指令只能操作系统调用,而用户级指令才能在用户模式调用,保障操作系统的稳定。RISC-V提供了特权级指令和用户级指令,同时提供了详细的RISC-V特权级指令规范和RISC-V用户级指令规范的详细信息,使开发者能非常方便的移植linux和unix系统到RISC-V平台。
4) 模块化设计
RISC-V架构不仅短小精悍,而且其不同的部分还能以模块化的方式组织在一起,从而试图通过一套统一的架构满足各种不同的应用场景。用户能够灵活选择不同的模块组合,来实现自己定制化设备的需要,比如针对于小面积低功耗嵌入式场景,用户可以选择RV32IC组合的指令集,仅使用Machine Mode(机器模式);而高性能应用操作系统场景则可以选择譬如RV32IMFDC的指令集,使用Machine Mode(机器模式)与User Mode(用户模式)两种模式。
5) 完整的工具链
对于设计CPU来说,工具链是软件开发人员和cpu交互的窗口,没有工具链,对软件开发人员开发软件要求很高,甚至软件开发者无法让cpu工作起来。在cpu设计中,工具链的开发是一个需要巨大工作量的工作。如果用RISC-V来设计芯片,芯片设计公司不再担心工具链问题,只需专注于芯片设计,RISC-V社区已经提供了完整的工具链,并且RISC-V基金会持续维护该工具链。当前RISC-V的支持已经合并到主要的工具中,比如编译工具链gcc, 仿真工具qemu等

3 ARM发展史

《cpu架构之体系架构》
《cpu架构之体系架构》
《cpu架构之体系架构》
《cpu架构之体系架构》

3.1 ARMv1版架构

该版架构只在原型机ARM1出现过,只有26位的寻址空间,没有用于商业产品。
其基本性能有:

  • 基本的数据处理指令(无乘法);
  • 基于字节、半字和字的Load/Store指令;
  • 转移指令,包括子程序调用及链接指令;
  • 供操作系统使用的软件中断指令SWI;
  • 寻址空间:64MB(226)。

3.2 ARMv2版架构

该版架构对V1版进行了扩展,例如ARM2和ARM3(V2a)架构。包含了对32位乘法指令和协处理器指令的支持。 版本2a是版本2的变种,ARM3芯片采用了版本2a,是第一片采用片上Cache的ARM处理器。同样为26位寻址空间,现在已经废弃不再使用。
V2版架构与版本V1相比,增加了以下功能:

  • 乘法和乘加指令;
  • 支持协处理器操作指令;
  • 快速中断模式;
  • SWP/SWPB的最基本存储器与寄存器交换指令;
  • 寻址空间:64MB。

3.3 ARMv3版架构

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寄存器;
  • 增加了从异常处理返回的指令功能。

3.4 ARMv4版架构

V4版架构在V3版上作了进一步扩充,V4版架构是目前应用最广的ARM体系结构,ARM7、ARM8、ARM9和StrongARM都采用该架构。 V4不再强制要求与26位地址空间兼容,而且还明确了哪些指令会引起未定义指令异常。

指令集中增加了以下功能:

  • 符号化和非符号化半字及符号化字节的存/取指令;
  • 增加了T变种,处理器可工作在Thumb状态,增加了16位Thumb指令集;
  • 完善了软件中断SWI指令的功能;
  • 处理器系统模式引进特权方式时使用用户寄存器操作;
  • 把一些未使用的指令空间捕获为未定义指令。

3.5 ARMv5版架构

V5版架构是在V4版基础上增加了一些新的指令,ARM10和Xscale都采用该版架构。
这些新增命令有:

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

3.6 ARMv6版架构

V6版架构是2001年发布的,首先在2002年春季发布的ARM11处理器中使用。在降低耗电量地同时,还强化了图形处理性能。通过追加有效进行多媒体处理的SIMD(Single Instruction, Multiple Data,单指令多数据 )功能,将语音及图像的处理功能提高到了原型机的4倍。
此架构在V5版基础上增加了以下功能:

  • ThumbTM:35%代码压缩;
  • DSP扩充:高性能定点DSP功能;
  • JazelleTM:Java性能优化,可提高8倍;
  • Media扩充:音/视频性能优化,可提高4倍。

3.7 ARMv7版架构

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)技术的使用。

3.8 ARMv8版架构

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

4 ARM主要处理器介绍

4.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处理器。

4.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处理器居多。

4.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.4 SecurCore处理器

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

4.5 StrongARM处理器

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

4.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等多种。

4.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处理器系列。

5 RISCV处理器介绍

待补充。

    原文作者:楓潇潇
    原文地址: https://blog.csdn.net/u013836909/article/details/112666857
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞