搜档网
当前位置:搜档网 › cpu架构简析

cpu架构简析

cpu架构简析
cpu架构简析

CPU架构解析报告

报告人:夏栩

四川农业大学信息工程学院本报告旨在从x86、MIPS、ARM等不同,简单分析说明各种架构之间关系、以及各自特点。首先明确体系架构和体系结构的定义,然后分别论述x86、ARM、MIPS架构的特点,然后是简单介绍ARM与MIPS对比,ARM与X86对比,最后是谈一下对ARM处理器的前景观望。

首先,体系架构的定义:

CPU架构是CPU厂商给属于同一系列的CPU产品定的一个规范,主要目的是为了区分不同类型CPU的重要标示。目前市面上的CPU主要分有两大阵营,一个是intel系列CPU,另一个是AMD系列CPU。

图表1第一块支持X86指令集的Intel i8086处理器

图表 2 AMD系列CPU

体系结构的定义:在计算世界中, "体系结构"一词被用来描述一个抽象的机器,而不是一个具体的机器实现。一般而言,一个CPU的体系结构有一个指令集加上一些寄存器而组成。“指令集”与“体系结构”这两个术语是同义词。

一、x86、ARM、MIPS架构

x86、ARM、MIPS算是是目前最常见也相对最知名的处理器架构了。

1、x86架构

图表 3 X86架构处理器示意图

x86或80x86是英特尔首先开发制造的一种微处理器体系结构的泛称。该系列较早期的处理器名称是以数字来表示,并以“86”作为结尾,包括Intel 8086、80186、80286、80386以及80486,因此其架构被称为“x86”。

x86架构于1978年推出的Intel 8086中央处理器中首度出现,它是从Intel 8008处理器中发展而来的,而8008则是发展自Intel 4004的。8086在三年后为IBM PC 所选用,之后x86便成为了个人电脑的标准平台,成为了历来最成功的CPU架构。8086是16位元处理器;直到1985年32位元的80386的开发,这个架构都维持是16位元。接着一系列的处理器表示了32位元架构的细微改进,推出了数种的扩充,直到2003年AMD对于这个架构发展了64位元的扩充,并命名为AMD64。后来Intel也推出了与之兼容的处理器,并命名为Intel 64。两者一般被统称为x86-64或x64,开创了x86的64位时代。

值得注意的是Intel早在1990年代就与惠普合作提出了一种用在安腾系列处

理器中的独立的64位架构,这种架构被称为IA-64。IA-64是一种崭新的架构,和x86架构完全没有相似性。(对于Intel和AMD的处理器技术,打算专门挑些典型的区别总结一篇文章)

x86架构是重要地可变指令长度的CISC。字组(word, 4字节)长度的内存存取允许不对齐内存位址,字组是以低位字节在前的顺序储存在内存中。向后相容性一直都是在x86架构的发展背后一股驱动力量(设计的需要决定了这项因素而常常导致批评,尤其是来自对手处理器的拥护者和理论界,他们对于一个被广泛认为是落后设计的架构的持续成功感到不解)。但在较新的微架构中,x86处理器会把x86指令转换为更像RISC的微指令再予执行,从而获得可与RISC比拟的超标量性能,而仍然保持向前兼容。

如今,我们面前的PC机基本都是x86架构计算机。如果你想尝试其他架构的计算机,首先要考虑的是放弃Windows系统。(好消息是即将正式发布的Windows 8 将支持x86和ARM两种架构)

2、ARM架构

图表 4 ARM Cortex-A9架构处理器

图表 5 ARM Cortex-A8处理器隶属于Cortex-A系列,基于ARMv7-A架构ARM架构(进阶精简指令集机器(Advanced RISC Machine),较早称作Acorn RISC Machine)是一个32位元精简指令集(RISC)处理器架构,其广泛地使用

在许多嵌入式系统设计。由于节能的特点,ARM处理器非常适用于移动通讯领域,符合其主要设计目标为低耗电的特性。

ARM架构包含了下述RISC特性:

1.读取/储存架构

2.正交指令集(任意存取指令可以任意的寻址方式存取数据Orthogonal instruction set)

3.大量的16 ×32-bit 寄存器阵列(register file)

4.固定的32 bits 操作码(opcode)长度,降低编码数量所产生的耗费,减轻解码和流水线化的负担。

5.大多均为一个CPU周期执行。

为了补强这种简单的设计方式,相较于同时期的处理器如Intel 80286和Motorola 68020,还多加了一些特殊设计:

1.大部分指令可以条件式地执行,降低在分支时产生的负重,弥补分支预测器(branch predictor)的不足。

2.算数指令只会在要求时更改条件编码(conditioncode)

3.32-bit筒型位移器(barrelshifter)可用来执行大部分的算数指令和寻址计算而不会损失效能

4.强大的索引寻址模式(addressing mode)

5.精简但快速的双优先级中断子系统,具有可切换的暂存器组

在今日,ARM家族占了所有32位元嵌入式处理器75%的比例,使它成为占全世界最多数的32位元架构之一。ARM处理器可以在很多消费性电子产品上看到,从可携式装置(PDA、移动电话、多媒体播放器、掌上型电玩、计算机)到

电脑周边设备(硬盘、桌上型路由器)甚至在导弹的弹载计算机等军用设施中都有他的存在。

对于智能机爱好者们,ARM处理器的大名一定早有所闻。

3、MIPS架构

图表 6 MIPS架构

MIPS架构(英语:MIP Sarchitecture,为“无内部互锁流水级的微处理器Microprocessor without Interlocked Pipeline Stages的缩写,也是Millionsof Instructions Per Second的相关语),是一种采取精简指令集(RISC)的处理器架构,1981年出现,由MIPS科技公司开发并授权,广泛被使用在许多电子产品、网络设备、个人娱乐装置与商业装置上。其机制是尽量利用软件办法避免流水线中的数据相关问题。它最早是在80年代初期由斯坦福(Stanford)大学Hennessy教授领导的研究小组研制出来的。MIPS公司的R系列就是在此基础上开发的RISC工业产品的

微处理器。这些系列产品为很多计算机公司采用构成各种工作站和计算机系统。

MIPS是出现最早的商业RISC架构芯片之一。MIPS的系统结构及设计理念比较先进,强调软硬件协同提高性能,同时简化硬件设计。

2002年,中国科学院计算所开始研发龙芯处理器,采用MIPS架构,但未经MIPS公司的授权,遭到侵权的控告。2007年,中国科学院与MIPS公司达成和解,得到正式授权。中国龙芯2和前代产品采用的都是64位MIPS指令架构。过去,MIPS架构的产品多见于工作站领域,索尼PS2游戏机所用的“Emotion Engine”也采用MIPS指令,这些MIPS处理器的性能都非常强劲,而龙芯2也属于这个阵营,在软件方面与上述产品完全兼容。

ARM与MIPS对比:

与当前商业化最成功的ARM架构相比,MIPS的优势主要有以下几点:

1,MIPS支持64bit指令和操作,ARM目前只到32bit

2,MIPS有专门的除法器,可以执行除法指令

3,MIPS的内核寄存器比ARM多一倍,所以同样的性能下MIPS的功耗会比ARM更低,同样功耗下性能比ARM更高

4,MIPS指令比ARM稍微多一点,稍微灵活一点

5,有观点认为MIPS的bank寄存器性能也要好于ARM,不过没见过能反映出来的测试

以上为MIPS对比ARM架构的优势,接下来我们再看一看MIPS架构的不足之处,与ARM架构相比,MIPS架构也存在着以下几点不足

1,MIPS的内存地址起始有问题,这导致了MIPS在内存和cache的支持方面都有限制,现在的MIPS处理器单内核面对高容量内存时有问题

2,MIPS今后的发展方向是并行线程,类似INTEL的超线程,而ARM未来的发展方向是物理多核,目前看来物理多核占优。由此来看,我国的龙芯向多核发展还是颇具远见的。

3,MIPS虽然结构更加简单,但是到现在还是顺序单发射,ARM已经进化到了乱序双发射,甚至NV的丹佛已经是乱序三发射了。

商业上二者差别也大,ARM很昂贵,而且不能随意自行更改内核。而MIPS 就要开放的多了。(这也算龙芯为什么不采用ARM架构的原因了。)ARM与x86对比:

X86指令集有以下几个突出的缺点:

通用寄存器组——对CPU内核结构的影响X86指令集只有8个通用寄存器。所以,CISC的CPU执行是大多数时间是在访问存储器中的数据,而不是寄存器中的。这就拖慢了整个系统的速度。

RISC系统往往具有非常多的通用寄存器,并采用了重叠寄存器窗口和寄存器堆等技术使寄存器资源得到充分的利用。

RISC技术与CISC技术比较

图表7 RISC技术与CISC技术比较

解码——对CPU的外核的影响

解码器,这是x86CPU才有的东西。其作用是把长度不定的x86指令转换为长度固定的类似于RISC的指令,并交给RISC内核。解码分为硬件解码和微解码,对于简单的x86指令只要硬件解码即可,速度较快,而遇到复杂的x86指令则需要进行微解码,并把它分成若干条简单指令,速度较慢且很复杂。寻址范围小——约束了用户需要ARM指令集的特点:

1. 体积小,低功耗,低成本,高性能;

2. 支持Thumb (16 位)/ARM (32 位)双指令集,能很好的兼容8 位/16 位

器件;

3. 大量使用寄存器,指令执行速度更快;

4. 大多数数据操作都在寄存器中完成;

5. 寻址方式灵活简单,执行效率高;

6. 指令长度固定;

7. 流水线处理方式

8. Load store结构:在RISC中,所有的计算都要求在寄存器中完成。而寄存器和

内存的通信则由单独的指令来完成。而在CSIC中,CPU是可以直接对内存进行操作的。

ARM的一些非RISC思想的指令架构:

1. 允许一些特定指令的执行周期数字可变,以降低功耗,减小面积和代码尺寸。

2. 增加了桶形移位器来扩展某些指令的功能。

3. 使用了16位的Thumb指令集来提高代码密度。

4. 使用条件执行指令来提高代码密度和性能

5. 使用增强指令来实现数据信号处理的功能。

ARM处理器的前景观望小结:

X86采用CISC,具有大量的复杂指令、可变的指令长度、多种的寻址方式这些CISC的特点,也是CISC的缺点,因为这些都大大增加了解码的难度,而在现在的高速硬件发展下,复杂指令所带来的速度提升早已不及在解码上浪费点的时间。除了个人PC市场还在用X86指令集外,服务器以及更大的系统都早已不用CISC了。x86仍然存在的理由就是为了兼容大量的x86平台上的软件,同时,它的体系结构组成的实现不太困难。不过现在X86只是RISC的内核披了件CISC的外衣,从Pentium开始,CISC指令在内部被解码成几条RISC指令,即所谓的uOps,然后通过处理器调度机制将指令分配给RISC内核进行。

一方面,ARM采用的RISC体系最大特点是指令长度固定,指令格式种类少,

寻址方式种类少,大多数是简单指令且都能在一个时钟周期内完成,易于设计超标量与流水线,寄存器数量多,大量操作在寄存器之间进行,因此有较快运行速度。

另一方面,ARM目前是移动处理器的老大。ARM的合作伙伴们基于ARM的设计向移动和嵌入式市场的出货量已经达500亿片。对于安卓,ARM已然成为标准,这对Intel和MIPS而言是个问题。尽管安卓的主要编程语言是Java,开发者也可以使用现有的代码(比如C或者C++)去开发应用。这些固定平台的应用通常都编译成ARM处理器的程序,不全都会编译成Intel或者MIPS处理器的程序。为了解决这个问题,Intel和MIPS要使用特殊的转换软件把ARM的指令转换成他们处理器使用的指令。而这当然是会降低性能的。

综上所述,制造处理器是一项复杂的业务,虽然ARM,Intel和MIPS都在不懈努力地向移动设备提供最好的技术,但是很明显ARM

是老大。拥有着低功耗,简明的64位设计,异构计算,以及作为移动计算的标准,看来ARM在未来较长一段时间里保持其老大的地位。

相关主题