x86架构和ARM架构

以下文章摘自:

http://bbs.meizu.com/thread-2841127-1-1.html

 

一、背景知识:

指令的强弱是CPU的重要指标,指令集是提高微处理器效

率的最有效工具之一。

从现阶段的主流体系结构讲,指令集可分为复杂指令集

(CISC)和精简指令集(RISC)两部分。

相应的,微处理随着微指令的复杂度也可分为CISC及

RISC这两类。

CISC

是一种为了便于编程和提高记忆体访问效率的晶片设计体

系。在20世纪90年代中期之前,大多数的微处理器都采

用CISC体系──包括Intel的80×86和Motorola的68K系列

等。 即通常所说的X86架构就是属于CISC体系的。

RISC

是为了提高处理器运行的速度而设计的晶片体系。它的关

键技术在于流水线操作(Pipelining):在一个时钟周期

里完成多条指令。而超流水线以及超标量技术已普遍在晶

片设计中使用。RISC体系多用于非x86阵营高性能微处理

器CPU。像HOLTEK MCU系列等。

ARM ( Advanced RISC Machines ),既可以认为是一

个公司的名字,也可以认为是对一类微处理器的通称,还

可以认为是一种技术的名字。而ARM体系结构目前被公

认为是业界领先的32 位嵌入式RISC 微处理器结构。 所有

ARM处理器共享这一体系结构。

因此我们可以从其所属体系比较入手,来进行X86指令集

与ARM指令集的比较。

二、CISC和RISC的比较

(一)

CISC

1

.CISC体系的指令特征

使用微代码。

指令集可以直接在微代码记忆体(比主记忆体的速度快很

多)里执行,新设计的处理器,只需增加较少的电晶体就

可以执行同样的指令集,也可以很快地编写新的指令集程

式。

庞大的指令集。

可以减少编程所需要的代码行数,减轻程式师的负担。高

阶语言对应的指令集:包括双运算元格式、寄存器到寄存

器、寄存器到记忆体以及记忆体到寄存器的指令。

2

.CISC体系的优缺点

优点:

能够有效缩短新指令的微代码设计时间,允许设计师实现

CISC体系机器的向上相容。

新的系统可以使用一个包含早期系统的指令超集合,也就

可以使用较早电脑上使用的相同软体。另外微程式指令的

格式与高阶语言相匹配,因而编译器并不一定要重新编

写。

缺点:

指令集以及晶片的设计比上一代产品更复杂,不同的指

令,需要不同的时钟周期来完成,执行较慢的指令,将影

响整台机器的执行效率。

(二)RISC

1

.RISC体系的指令特征

精简指令集:

包含了简单、基本的指令,透过这些简单、基本的指令,

就可以组合成复杂指令。

同样长度的指令:

每条指令的长度都是相同的,可以在一个单独操作里完

成。

单机器周期指令:

大多数的指令都可以在一个机器周期里完成,并且允许处

理器在同一时间内执行一系列的指令。

2

.RISC体系的优缺点

优点:

在使用相同的晶片技术和相同运行时钟下,RISC系统的

运行速度将是CISC的2~4倍。由于RISC处理器的指令集

是精简的,它的记忆体管理单元、浮点单元等都能设计在

同一块晶片上。RISC处理器比相对应的CISC处理器设计

更简单,所需要的时间将变得更短,并可以比CISC处理

器应用更多先进的技术,开发更快的下一代处理器。

缺点:

多指令的操作使得程式开发者必须小心地选用合适的编译

器,而且编写的代码量会变得非常大。另外就是RISC体

系的处理器需要更快记忆体,这通常都集成于处理器内

部,就是L1 Cache(一级缓存)。

综合上面所述,若要再进一步比较CISC与RISC之差异,

可以由以下几点来进行分析:

1、指令的形成

CISC

因指令复杂,故采微指令码控制单元的设计,而RISC的

指令90%是由硬体直接完成,只有10%的指令是由软体以

组合的方式完成,因此指令执行时间上RISC较短,但

RISC所须ROM空间相对的比较大,至于RAM使用大小应

该与程序的应用比较有关系。

2、定址模式

CISC

的需要较多的定址模式,而RISC只有少数的定址模式,

因此CPU在计算记忆体有效位址时,CISC占用的汇流排周

期较多。

3、指令的执行

CISC

指令的格式长短不一,执行时的周期次数也不统一,而

RISC结构刚好相反,故适合采用管线处理架构的设计,

进而可以达到平均一周期完成一指令的方向努力。显然

的,在设计上RISC较CISC简单,同时因为CISC的执行步

骤过多,闲置的单元电路等待时间增长,不利于平行处理

的设计,所以就效能而言RISC较CISC还是站了上风,但

RISC因指令精简化后造成应用程式码变大,需要较大的

程式记忆体空间,且存在指令种类较多等等的缺点。

(三)X86指令集和ARM指令集:

(1) X86指令集:

X86

指令集是Intel为其第一块16位CPU(i8086)专门开发的,

后来的电脑中为提高浮点数据处理能力而增加的X87芯片

系列数学协处理器另外使用X87指令,以后就将X86指令

集和X87指令集统称为X86指令集。虽然随着CPU技术的

不断发展,Intel陆续研制出更新型的i80386、i80486,

但为了保证电脑能继续运行以往开发的各类应用程序以保

护和继承丰富的软件资源,所以Intel公司所生产的所有

CPU仍然继续使用X86指令集,所以它的CPU仍属于X86

系列。由于Intel X86系列及其兼容CPU都使用X86指令

集,所以就形成了今天庞大的X86系列及兼容CPU阵容。

除了具备上述CISC的诸多特性外,X86指令集有以下几个

突出的缺点:

l 通用寄存器组————对CPU内核结构的影响

X86指令集只有8个通用寄存器。所以,CISC的CPU执行

是大多数时间是在访问存储器中的数据,而不是寄存器中

的。这就拖慢了整个系统的速度。

RISC系统往往具有非常多的通用寄存器,并采用了重叠

寄存器窗口和寄存器堆等技术使寄存器资源得到充分的利

用。

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

解码器(Decode Unit),这是x86CPU才有的东西。其

作用是把长度不定的x86指令转换为长度固定的类似于

RISC的指令,并交给RISC内核。解码分为硬件解码和微

解码,对于简单的x86指令只要硬件解码即可,速度较

快,而遇到复杂的x86指令则需要进行微解码,并把它分

成若干条简单指令,速度较慢且很复杂。Athlon也好,

PIII也好,老式的CISC的X86指令集严重制约了他们的性

能表现。

l 寻址范围小——约束了用户需要

即使AMD

研发出X86-64架构时,虽然也解决了传统X86固有的一些

缺点,比如寻址范围的扩大,但这种改善并不能直接带来

性能上的提升。

(2) ARM指令集:

相比而言,以RISC为架构体系的ARM指令集的指令格式

统一,种类比较少,寻址方式也比复杂指令集少。当然处

理速度就提高很多。ARM处理器都是所谓的精简指令集

处理机(RISC)。

其所有指令都是利用一些简单的指令组成的,简单的指令

意味着相应硬件线路可以尽量做到最佳化,而提高执行速

率,相对的使得一个指令所需的时间减到最短。

而因为指令集的精简,所以许多工作都必须组合简单的指

令,而针对较复杂组合的工作便需要由『编译程式』

(compiler) 来执行,而 CISC 体系的X86指令集因为硬体

所提供的指令集较多,所以许多工作都能够以一个或是数

个指令来代替,compiler 的工作因而减少许多。

除了具备上述RISC的诸多特性之外,可以总结ARM指令

集架构的其它一些特点如下:

l ARM

的特点

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

2. 支持 Thumb ( 16 位) /ARM ( 32 位)双指令集,

能很好的兼容 8 位 /16 位器件;

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

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

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

6. 指令长度固定;

7. 流水线处理方式

8. Load_store结构

l ARM的一些非RISC

思想的指令架构:

1. 允许一些特定指令的执行周期数字可变,以降低功

耗,减小面积和代码尺寸。

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

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

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

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

(四)小结:

因此,大量的复杂指令、可变的指令长度、多种的寻址方

式这些CISC的特点,也是CISC的缺点,因为这些都大大

增加了解码的难度,而在现在的高速硬件发展下,复杂指

令所带来的速度提升早已不及在解码上浪费点的时间。除

了个人PC市场还在用X86指令集外,服务器以及更大的系

统都早已不用CISC了。x86仍然存在的理由就是为了兼容

大量的x86平台上的软件,同时,它的体系结构组成的实

现不太困难。

而RISC体系的ARM指令最大特点是指令长度固定,指令

格式种类少,寻址方式种类少,大多数是简单指令且都能

在一个时钟周期内完成,易于设计超标量与流水线,寄存

器数量多,大量操作在寄存器之间进行。优点是不言而喻

的,因此,ARM处理器才成为是当前最流行的处理器系

列,是几种主流的嵌入式处理体系结构之一。

RISC

目前正如日中天,Intel似乎也将最终抛弃x86而转向RISC

结构。

而实际上,随着RISC处理器在嵌入式领域中大放异彩,

传统的X86系列CISC处理器在Intel公司的积极改进下也克

服了功耗过高的问题,成为一些高性能嵌入式设备的最佳

选择,发展到今天,CISC与RISC之间的界限已经不再是

那么泾渭分明,RISC自身的设计正在变得越来越复杂

(当然并不是完全依着CISC的思路变复杂),因为所有

实际使用的CPU都需要不断提高性能,所以在体系结构中

加入新特点就在所难免。另一方面,原来被认为是CISC

体系结构的处理器也吸收了许多RISC的优点,比如

Pentium处理器在内部的实现中也是采用的RISC的架构,

复杂的指令在内部由微码分解为多条精简指令来运行,但

是对于处理器外部来说,为了保持兼容性还是以CISC风

格的指令集展示出来。

 

版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.

    分享到:

留言

你的邮箱是保密的 必填的信息用*表示