收藏 分享(赏)

X86,MIPS,ARM CPU体系结构特点.doc

上传人:精品资料 文档编号:9161107 上传时间:2019-07-26 格式:DOC 页数:8 大小:55.50KB
下载 相关 举报
X86,MIPS,ARM CPU体系结构特点.doc_第1页
第1页 / 共8页
X86,MIPS,ARM CPU体系结构特点.doc_第2页
第2页 / 共8页
X86,MIPS,ARM CPU体系结构特点.doc_第3页
第3页 / 共8页
X86,MIPS,ARM CPU体系结构特点.doc_第4页
第4页 / 共8页
X86,MIPS,ARM CPU体系结构特点.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、在回答以下问题之前我们有必要说明一下什么是处理器体系结构和体系架构。体系架构: CPU 架构是 CPU 厂商给属于同一系列的 CPU 产品定的一个规范,主要目的是为了区分不同类型 CPU 的重要标示。 目前市面上的 CPU 主要分有两大阵营,一个是 intel 系列 CPU,另一个是 AMD 系列 CPU。体系结构: 在计算世界中, “体系结构“一词被用来描述一个抽象的机器, 而不是一个具体的机器实现。一般而言,一个 CPU 的体系结构有一个指令集加上一些寄存器而组成。 “指令集”与“体系结构”这两个术语是同义词。问题一:X86,MIPS,ARM 三块 cpu 的体系结构和特点X86:X86

2、采用了 CISC 指令集。在 CISC 指令集的各种指令中,大约有 20%的指令会被反复使用,占整个程序代码的 80%。而余下的 80%的指令却不经常使用,在程序设计中只占 20%。 总线接口部件 BIU总线接口部件由 4 个 16 位段寄存器(DS,ES,SS,CS) 、一个 16 位指令指针寄存器(IP)、20 位物理地址加法器、6 字节指令队列( 8088 为 4 字节)及总线控制电路组成,负责与存储器及 I/O 端口的数据传送。 执行部件 EU执行部件由 ALU、寄存器阵列 (AX,BX,CX,DX,SI,DI,BP,SP)、标志寄存器(PSW)等几个部分组成,其任务就是从指令队列流中

3、取出指令,然后分析和执行指令,还负责计算操作数的 16 位偏移地址。 寄存器的结构1)数据寄存器 AX、BX、CX 、DX 均为 16 位的寄存器,它们中的每一个又可分为高字节 H和低字节 L。即 AH、BH、CH、DH 及 AL、BL 、CL、DL 可作为单独的 8 位寄存器使用。不论16 位寄存器还是 8 位寄存器,它们均可寄存操作数及运算的中间结果。有少数指令指定某个寄存器专用,例如,串操作指令指定 CX 专门用作记录串中元素个数的计数器。2)段寄存器组:CS 、DS 、SS、ES。8086/8088 的 20 位物理地址在 CPU 内部要由两部分相加形成的。SP、BP、SI、DI 是用

4、以指明其偏移地址,即 20 位物理地址的低 16 位;而CS、DS、SS 、ES 是用以指明 20 位物理地址的高 16 位的,故称作段寄存器。4 个存储器使用专一,不能互换,CS 识别当前代码段,DS 识别当前数据段,SS 识别当前堆栈段;ES 识别当前附加段。一般情况下,DS 和 ES 都须用户在程序中设置初值。3)控制寄存器组:IP 和 FLAG。指令指针 IP 用以指明当前要执行指令的偏移地址(段地址由 CS 提供) 。标志寄存器 FLAG 有 16 位,用了其中的九位,分两组:状态标志和控制标志。前者用以记录状态信息,由 6 位组成,后者用以记录控制信息由 3 位组成。6 位状态标志

5、,包括 CF、AF 、OF、SF、PF 和 ZF,它反映前一次涉及 ALU 操作的结果,对用户它“只读不写” 。控制标志包括方向标志 DF,中断允许标志 IF 及陷阱标志 TF,中断允许标志 IF 及陷阱标志 TF,可通过指令设置。MIPS: 所有指令都是 32 位编码; 有些指令有 26 位供目标地址编码;有些则只有 16 位。因此要想加载任何一个 32 位值,就得用两个加载指令。16 位的目标地址意味着,指令的跳转或子函数的位置必须在64K 以内(上下 32K) ; 所有的动作原理上要求必须在 1 个时钟周期内完成,一个动作一个阶段; 有 32 个通用寄存器,每个寄存器 32 位(对 32

6、 位机)或 64 位(对 64 位机) ; 本身没有任何帮助运算判断的标志寄存器,要实现相应的功能时,是通过测试两个寄存器是否相等来完成的; 所有的运算都是基于 32 位的,没有对字节和对半字的运算( MIPS 里,字定义为 32 位,半字定义为 16 位) ; 没有单独的栈指令,所有对栈的操作都是统一的内存访问方式。因为 push 和 pop 指令实际上是一个复合操作,包含对内存的写入和对栈指针的移动; 由于 MIPS 固定指令长度,所以造成其编译后的二进制文件和内存占用空间比 x86 的要大, (x86 平均指令长度只有 3 个字节多一点,而 MIPS 是 4 个字节) ; 寻址方式:只有

7、一种内存寻址方式。就是基地址加一个 16 位的地址偏移; 内存中的数据访问必须严格对齐(至少 4 字节对齐) ; 跳转指令只有 26 位目标地址,再加上 2 位的对齐位,可寻址 28 位的空间,即256M; 条件分支指令只有 16 位跳转地址,加上 2 位的对齐位,共 18 位寻址空间,即 256K; MIPS 默认不把子函数的返回地址(就是调用函数的受害指令地址)存放到栈中,而是存放到$31 寄存器中;这对那些叶子函数有利。如果遇到嵌套的函数的话,有另外的机制处理; 高度的流水线:MIPS 指令的五级流水线:(每条指令都包含五个执行阶段)第一阶段:从指令缓冲区中取指令。占一个时钟周期;第二阶

8、段:从指令中的源寄存器域(可能有两个)的值(为一个数字,指定$0$31 中的某一个)所代表的寄存器中读出数据。占半个时钟周期;第三阶段:在一个时钟周期内做一次算术或逻辑运算。占一个时钟周期;第四阶段:指令从数据缓冲中读取内存变量的阶段。从平均来讲,大约有 34 的指令在这个阶段没做什么事情,但它是指令有序性的保证。占一个时钟周期;第五阶段:存储计算结果到缓冲或内存的阶段。占半个时钟周期;所以一条指令要占用四个时钟周期;ARM: ARM 处理器是一个 32 位元精简指令集 (RISC)处理器架构,其广泛地使用在许多嵌入式系统设计。 RISC(Reduced Instruction Set Com

9、puter,精简指令集计算机)RISC 体系结构应具有如下特点:1)采用固定长度的指令格式,指令归整、简单、基本寻址方式有 23 种。2)使用单周期指令,便于流水线操作执行。3)大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载/ 存储指令可以访问存储器,以提高指令的执行效率。 ARM 体系结构还采用了一些特别的技术,在保证高性能的前提下尽量缩小芯片的面积,并降低功耗:1)所有的指令都可根据前面的执行结果决定是否被执行,从而提高指令的执行效率。2)可用加载/存储指令批量传输数据,以提高数据的传输效率。 寄存器结构ARM 处理器共有 37 个寄存器,被分为若干个组( BANK) ,这些寄存

10、器包括:1) 31 个通用寄存器,包括程序计数器(PC 指针) ,均为 32 位的寄存器。2) 6 个状态寄存器,用以标识 CPU 的工作状态及程序的运行状态,均为 32 位,目前只使用了其中的一部分。 指令结构ARM 微处理器的在较新的体系结构中支持两种指令集:ARM 指令集和 Thumb 指令集。其中,ARM 指令为 32 位的长度, Thumb 指令为 16 位长度。 Thumb 指令集为 ARM 指令集的功能子集,但与等价的 ARM 代码相比较,可节省 30%40%以上的存储空间,同时具备32 位代码的所有优点。问题二:arm 和 x86 在体系架构上的区别和各自的优点Arm 使用 R

11、ISC 结构。X86 使用 CISC 结构。所以要说明两者的区别需要从 RISC , CISC 的结构特点来入手: CISC 和 RISC 的比较CISC:CISC 体系的指令特征使用微代码。指令集可以直接在微代码记忆体(比主体的速度快很多)里执行,新设计的处理器,只需增加较少的电晶体就可以执行同样的指令集,也可以很快地编写新的指令集程式。有庞大的指令集。CISC 体系的优缺点优点:能够有效缩短新指令的微代码设计时间,允许设计师实现 CISC 体系机器的向上相容。新的系统可以使用一个包含早期系统的指令超集合,也就可以使用较早电脑上使用的相同软体。另外微程式指令的格式与高阶语言相匹配,因而编译器

12、并不一定要重新编写。缺点:指令集以及晶片的设计比上一代产品更复杂,不同的指令,需要不同的时钟周期来完成,执行较慢的指令,将影响整台机器的执行效率。RISC:1)精简指令集包含了简单、基本的指令,透过这些简单、基本的指令,就可以组合成复杂指令。2)每条指令的长度都是相同的,可以在一个单独操作里完成。3)大多数的指令都可以在一个机器周期里完成,并且允许处理器在同一时间内执行一系列的指令。RISC 体系的优缺点:优点:在使用相同的晶片技术和相同运行时钟下,RISC 系统的运行速度将是 CISC 的 24 倍。由于 RISC 处理器的指令集是精简的,它的记忆体管理单元、浮点单元等都能设计在同一块晶片上

13、。RISC 处理器比相对应的 CISC 处理器设计更简单,所需要的时间将变得更短,并可以比 CISC 处理器应用更多先进的技术,开发更快的下一代处理器。缺点:多指令的操作使得程式开发者必须小心地选用合适的编译器,而且编写的代码量会变得非常大。另外就是 RISC 体系的处理器需要更快记忆体,这通常都集成于处理器内部,就是 L1 Cache(一级缓存) 。综合上面所述,若要再进一步比较 CISC 与 RISC 之差异,可以由以下几点来进行分析:1、指令的形成CISC 因指令复杂,故采用微指令码控制单元的设计,而 RISC 的指令 90%是由硬体直接完成,只有 10%的指令是由软体以组合的方式完成,

14、因此指令执行时间上 RISC 较短,但 RISC 所须 ROM 空间相对的比较大,至于 RAM 使用大小应该与程序的应用比较有关系。2、定址模式CISC 需要较多的定址模式,而 RISC 只有少数的定址模式,因此 CPU 在计算记忆体有效位址时,CISC 占用的汇流排周期较多(是什么?) 。3、指令的执行CISC 指令的格式长短不一,执行时的周期次数也不统一,而 RISC 结构刚好相反,故适合采用管线处理架构的设计,进而可以达到平均一周期完成一指令的方向努力。因此,在设计上 RISC 较 CISC 简单,同时因为 CISC 的执行步骤过多,闲置的单元电路等待时间增长,不利于平行处理的设计,所以

15、就效能而言 RISC 较 CISC 还是站了上风,但 RISC 因指令精简化后造成应用程式码变大,需要较大的程式记忆体空间,且存在指令种类较多等等的缺点。综上来分析 X86 和 ARM 的区别:X86 指令集有以下几个突出的缺点: 通用寄存器组对 CPU 内核结构的影响 X86 指令集只有 8 个通用寄存器。所以,CISC 的 CPU 执行是大多数时间是在访问存储器中的数据,而不是寄存器中的。这就拖慢了整个系统的速度。RISC 系统往往具有非常多的通用寄存器,并采用了重叠寄存器窗口和寄存器堆等技术使寄存器资源得到充分的利用。 解码对 CPU 的外核的影响解码器,这是 x86CPU 才有的东西。

16、其作用是把长度不定的 x86 指令转换为长度固定的类似于 RISC 的指令,并交给 RISC 内核。解码分为硬件解码和微解码,对于简单的x86 指令只要硬件解码即可,速度较快,而遇到复杂的 x86 指令则需要进行微解码,并把它分成若干条简单指令,速度较慢且很复杂。 寻址范围小约束了用户需要(优点见 CISC 优点)ARM 指令集的特点: 体积小,低功耗,低成本,高性能; 支持 Thumb ( 16 位) /ARM ( 32 位)双指令集,能很好的兼容 8 位 /16 位器件; 大量使用寄存器,指令执行速度更快; 大多数数据操作都在寄存器中完成; 寻址方式灵活简单,执行效率高; 指令长度固定;

17、流水线处理方式 Load_store 结构:在 RISC 中,所有的计算都要求在寄存器中完成。而寄存器和内存的通信则由单独的指令来完成。而在 CSIC 中,CPU 是可以直接对内存进行操作的。ARM 的一些非 RISC 思想的指令架构: 允许一些特定指令的执行周期数字可变,以降低功耗,减小面积和代码尺寸。 增加了桶形移位器来扩展某些指令的功能。 使用了 16 位的 Thumb 指令集来提高代码密度。 使用条件执行指令来提高代码密度和性能。 使用增强指令来实现数据信号处理的功能。小结:X86 采用 CISC,具有大量的复杂指令、可变的指令长度、多种的寻址方式这些 CISC 的特点,也是 CISC

18、 的缺点,因为这些都大大增加了解码的难度,而在现在的高速硬件发展下,复杂指令所带来的速度提升早已不及在解码上浪费点的时间。除了个人 PC 市场还在用 X86 指令集外,服务器以及更大的系统都早已不用 CISC 了。x86 仍然存在的理由就是为了兼容大量的 x86 平台上的软件,同时,它的体系结构组成的实现不太困难。ARM 采用的 RISC 体系最大特点是指令长度固定,指令格式种类少,寻址方式种类少,大多数是简单指令且都能在一个时钟周期内完成,易于设计超标量与流水线,寄存器数量多,大量操作在寄存器之间进行,因此有较快运行速度。因此,ARM 处理器才成为是当前最流行的处理器系列,是几种主流的嵌入式

19、处理体系结构之一。问题三:给出 intel 和 amd 在体系架构上的区别和各自的优点INTEL 与 AMD 在体系架构上的区别最主要的是在于微架构和连接架构的区别。INTEL 在微架构方面胜于 AMD,而 AMD 在连接架构上胜于 INTEL。先来说明一下微架构和连接架构: 微架构:它描述的是处理器最基础的指令执行部分,包括执行的方式和运算单元构成等。 连接架构:描述的是处理器和各部分芯片组等的连接方式和数据传输等。 如果说微架构决定了计算机大脑的智商,那么连接架构所决定的就是神经系统的敏锐程度,这两者相辅相成,从不同的角度对系统性能产生着重大影响。INTEL 微架构上的优点:英特尔的 Co

20、re 微架构具有四发射能力,即每个周期可以同时对 4 条 x86 指令进行解码,Core 微架构还结合了微指令融合和宏指令融合两项优化技术,同时可以对多达 56 条指令进行处理。显然,在频率相同的情况下,处理器的指令并行度越高,实际性能就越强。正因为这方面的优势,Core 2 Duo 处理器才能够在较低的频率下保有超越高频 Pentium 4 的卓越性能。AMD 微架构上的缺陷:AMD K8 微架构同时只能对 3 条指令进行解码,也没有任何指令优化技术,并行能力远逊于英特尔的“Core ”以及 Pentium M 家族所采用的“P6 增强”微架构。INTEL 连接结构上的缺陷:英特尔平台处理器

21、通过前端总线与北桥芯片连接(北桥芯片包括图形接口控制器和内存控制器两个逻辑单元) ,北桥芯片通过特定的总线与南桥芯片连接(南桥芯片则负责 I/O 扩展,包括存储、网络、音频、内部扩展总线(PCI、PCI Express x1)、外部连接总线( 并口、串口、USB)等等) 。 处理器必须通过“前端总线”与北桥芯片相连,然后再经由单/双通道“内存总线”才能与内存系统实现数据交换,那么只有当前端总线的带宽高于内存总线时,处理器才能够充分利用内存资源。而由于技术上的限制,前端总线难有大幅度提升的空间,这就注定内存瓶颈难以消除。 内存的访问延迟由于需要前端总线和北桥芯片的中转,处理器的内存延迟较长,导致

22、处理器必须浪费很多时间在数据等待上,处理器即便拥有一流的微架构,也难以充分发挥潜能。AMD 连接架构上的优点:(集成内存控制器+芯片直连总线)以 AMD K8 处理器为例子,K8 的连接架构特点: 将内存控制器集成于处理器内部,处理器核心与内存控制器通过超高速、低延时的内部总线连接; 引入通用的 HyperTransport 总线技术,实现处理器与处理器、处理器与 I/O 芯片组之间的高速直连。 这两项技术有效改变了传统连接方案的弊病,让处理器得以充分发挥自身潜能而不会被内存系统拖后腿,同时也有利于构建更强大的多路并行计算系统。在多路服务器领域,集成内存控制器的设计让每颗处理器都拥有属于自己的

23、内存系统,不会再有任何因资源分享造成的性能降低或存取冲突之类的问题,系统的多路扩展也变得更加容易。 HyperTranport 更大的意义体现在多处理器的扩展AMD K8 微架构中包含三个独立的 HyperTranport 控制器,可支持三路 HyperTranport 总线输出,这三路总线可以根据需要同其他的处理器和 I/O 控制芯片连接,进而建立起一套完整的高性能计算单元。结合上述两项技术,K8 微架构非常适合用于构建超级计算机系统。 现在内存控制器由处理器所整合,芯片组的功能仅剩下图形接口控制器/整合图形和I/O 扩展,这两个部分的功能都非常稳定,没有迫切升级的必要,而且处理器与芯片组连

24、接的 HyperTranport 总线也是非常稳定。计算机的主板就变成一个规格稳定的承载平台,用户如果要进行硬件升级,只要更换处理器或升级内存即可。从用户的角度来看,选择 AMD 平台可以让计算机拥有更长的生命周期,相比之下,英特尔当前的 Core 2 Duo 平台就缺乏这个优势。问题四:针对目前的多核 cpu,目前软件编程上存在哪些问题?提出解决问题方案或设想。多核心处理器与之前的单核心处理器有很大的不同就是它需要软件的支持,只有基于线程化的软件硬应用上多核心处理器才能发挥出应有的效能,因此多核心处理器的最大问题就是软件问题。之所以要提出多核心处理器,就要涉及到 CPU 的性能发展趋势:之前

25、 CPU 性能的提升主要靠:1、时钟速度2、执行优化3、缓存现在由于物理技术的限制,1,2 两点已经频临极限。剩下 3 可以使用。所以如今主要的提升方向为:1、超线程2、多核3、缓存其中多核正如上面所说的只有写得较好的多线程应用才能真正发挥多核的作用。单线程应用无法享受到好处。正如早期编程从结构化到面向对象编程的改革,多核的出现使软件编程面临了有一个改革:并发程序的编写。并发程序的编写是困难的:因为大多数计算机和编程语言发明之初就是按照冯诺依曼理论进行设计的。根据冯诺依曼的理论,CPU 是按照程序指令,一条条取出来并顺序执行的。而在多核或者多 CPU 的计算机中,同时会有多条指令在执行,与在单

26、个顺序处理器中通过交替执行不同任务来造成并行的假象不同,针对多核和多 CPU 平台开发的软件是真正的并行软件,有多个执行内核(或者多 CPU)参与计算,为了充分发挥多核(多 CPU)的能力,就要尽可能地让各个执行内核(或者多 CPU)均衡工作。不过,多核对于不用应用领域的软件影响并不相同:第一类是传统的科学计算用户,他们的软件大部分是高性能计算专家写的,也多是并行的,他们对 MPI、OpenMP 等并行编程模型也已经掌握。对这类用户而言,多核提供的是更高性能的执行平台,他们下一步工作是对进行高性能计算的系统软件针对多核优化,但这不是当前最主要的问题。所以对这类用户来说,多核的应用基本不存在太大

27、困难。第二类是一般意义上提到的服务器用户,如银行以及搜狐、Google 这样的互联网公司,它们主要的业务特征是并发的访问。这些应用具有天然的并行性,如多用户的访问本身就是并行的。对于这些服务器、数据库处理而言,多核同样也为他们提供了一个便宜而且高性能的计算平台,面临的挑战也不是很大。第三类是移动用户和桌面用户,他们是面临挑战最大的群体。这些用户的原有大部分程序都是串行的,如大部分串行程序是用 Visual Basic 语言编写的,怎样为这类用户提供很好的并发编模型和开发环境,以帮助他们开发有效的并行程序,这是多核应用最重大的挑战。其实,多核软件的开发所遇到的难题并不新鲜,因为本质上多核软件与多 CPU 软件没有多大区别,这就是并行程序设计的问题。并行程序设计很早就有人开始研究,而且很多人一直在进行这方面的研究。解决方法: 开发一款较为成熟的多线程编程工具,多线程编译器和多线程分析工具。有助于并发程序的开发。 逐渐将适应于多核计算机的多线程编程的课程代入大学课堂,激发多线程研发潜力。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报