ARM指令集和X86指令集对⽐
参考资料:
0. 基础知识
指令的强弱是CPU的重要指标,指令集是提⾼微处理器效率的最有效⼯具之⼀。从现阶段的主流体系结构讲,指令集可分为复杂指令集(CISC)和精简指令集(RISC)两部分。相应的,微处理随着微指令的复杂度也可分为 CISC 及 RISC 这两类。
CISC是⼀种为了便于编程和提⾼存储器访问效率的芯⽚设计体系。在20世纪90年代中期之前,⼤多数的微处理器都采⽤CISC体系,包括Intel 的 80x86 和 Motorola 的 68K 系列等。即通常所说的 X86 架构就是属于 CISC 体系的。
RISC是为了提⾼处理器运⾏速度⽽设计的芯⽚设计体系。它的关键技术在于流⽔线操作(Pipelining):在⼀个时钟周期⾥完成多条指令。⽽超流⽔线以及超标量技术已普遍在芯⽚设计中使⽤。RISC体系多⽤于⾮ x86 阵营⾼性能微处理器CPU,像HOLTEK MCU系列等。
ARM(Advanced RISC Machines),既可以认为是⼀个公司的名字,也可以认为是对⼀类微处理器的通称,还可以认为是⼀种技术的名字。⽽ARM体系结构⽬前被公认为是业界领先的32位嵌⼊式 RISC 微
处理器结构,所有 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指令集有以下⼏个突出的缺点:
通⽤寄存器组——对CPU内核结构的影响。X86指令集只有8个通⽤寄存器,所以,CISC的CPU执⾏是⼤多数时间是在访问存储器中的数据,⽽不是寄存器中的。这就拖慢了整个系统的速度。RISC系统往往具有⾮常多的通⽤寄存器,并采⽤了重叠寄存器窗⼝和寄存器堆等技术使寄存器资源得到充分的利⽤。
解码——对CPU的外核的影响。解码器(Decode Unit),这是x86 CPU才有的东西。其作⽤是把长度不定的x86指令转换为长度固定的类似于RISC的指令,并交给RISC内核。解码分为硬件解码和微解码,对于简单的x86指令只要硬件解码即可,速度较快,⽽遇到复杂的x86指令则需要进⾏微解码,并把它分成若⼲条简单指令,速度较慢且很复杂。Athlon也好,PIII也好,⽼式的CISC的X86指令集严重制约了他们的性能表现。
寻址范围⼩——约束了⽤户需要。即使AMD研发出X86-64架构时,虽然也解决了传统X86固有的⼀些缺点,⽐如寻址范围的扩⼤,但这种改善并不能直接带来性能上的提升。
2. ARM指令集
相⽐⽽⾔,以RISC为架构体系的ARM指令集的指令格式统⼀,种类⽐较少,寻址⽅式也⽐复杂指令集少。当然处理速度就提⾼很多。ARM处理器都是所谓的精简指令集处理机(RISC)。其所有指令都是利⽤⼀些简单的指令组成的,简单的指令意味着相应硬件线路可以尽量做到最佳化,⽽提⾼执⾏速率,相对的使得⼀个指令所需的时间减到最短。⽽因为指令集的精简,许多⼯作都必须组合简单的指令来完成,⽽针对较复杂组合的⼯作便需要由编译器(compiler) 来执⾏,⽽ CISC 体系的X86指令集因为硬体所提供的指令集较多,所以许多⼯作都能够以⼀个或是数个指令来代替,编译器的⼯作因⽽减少许多。
除了具备上述RISC的诸多特性之外,可以总结ARM指令集架构的其它⼀些特点如下:
体积⼩,低功耗,低成本,⾼性能;
⽀持Thumb(16 位)/ARM ( 32 位)双指令集,能很好的兼容 8 位 /16 位器件;
⼤量使⽤寄存器,指令执⾏速度更快;
⼤多数数据操作都在寄存器中完成;
寻址⽅式灵活简单,执⾏效率⾼;
指令长度固定;
流⽔线处理⽅式;
load-store结构。
ARM的⼀些⾮RISC思想的指令架构:
允许⼀些特定指令的执⾏周期数字可变,以降低功耗,减⼩⾯积和代码尺⼨;
增加了桶形移位器来扩展某些指令的功能;
x86架构和arm架构区别使⽤了16位的Thumb指令集来提⾼代码密度;
使⽤条件执⾏指令来提⾼代码密度和性能;
使⽤增强指令来实现数字信号处理的功能。
3. 总结
因此,⼤量的复杂指令、可变的指令长度、多种的寻址⽅式这些CISC的特点,也是CISC的缺点,因为这些都⼤⼤增加了解码的难度,⽽在现在的⾼速硬件发展下,复杂指令所带来的速度提升早已不及在解码上浪费的时间。
除了个⼈PC市场还在⽤X86指令集外,服务器以及更⼤的系统都早已不⽤CISC了。x86仍然存在的理由就是为了兼容⼤量的x86平台上的软件。同时,它的体系结构组成的实现不太困难。
⽽RISC体系的ARM指令最⼤特点是指令长度固定,指令格式种类少,寻址⽅式种类少,⼤多数是简单指令且都能在⼀个时钟周期内完成,易于设计超标量与流⽔线,寄存器数量多,⼤量操作在寄存器之间进⾏。优点是不⾔⽽喻的,因此,ARM处理器才成为是当前最流⾏的处理器系列,是⼏种主流的嵌⼊式处理体系结构之⼀。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论