嵌入式系统中的arm指令集与PC计算机中的X86指令集的区别与联系

目录

正文

0.

1.

2.

3.

4.

5.

6.

7.

8.

[参考文献]


正文

0.

所谓指令集,就是CPU中用来计算和控制计算机系统的一套指令的集合,而每一种新型的CPU在设计时就规定了一系列与其他硬件电路相配合的指令系统。CPU的指令集从主流的体系结构上分为精简指令集(RISC)和复杂指令集(CISC)。嵌入式系统中的主流处理器——ARM处理器,所使用的就是精简指令集。而桌面领域的处理器大部分使用的是复杂指令集,比如Intel的X86系列处理器。我们把ARM处理器所使用的指令集称为ARM指令集,把X86处理器所使用的指令集称为X86指令集。由于ARM处理器与X86处理器采用不同类型的指令集,因而造成了处理器在性能、成本、功耗等方面的诸多差异。现从ARM指令集和X86指令集的特点、操作、功能方面做一比较,以说明两种处理器有诸多差异的原因。

1.

第一,X86指令集随着计算机的功能越来越强大,计算机内部的元件越来越多,指令也相应的变得十分复杂,而在使用过程中,并不是每一条指令都要完全被执行,在技术人员的研究过程中发现,约有80%的程序只用到了20%的指令,而一些过于冗余的指令严重影响到了计算机的工作效率。而ARM指令集种类大大的减少,指令只提供简单的操作,使一个周期就可以执行一条指令。编译器或者程序员通过几条简单指令的组合来实现一个复杂的操作(例如,除法操作)。

2.

第二,由于X86指令集是属于CISC类型的指令集,其每条指令的长度是不固定的,而且有几种不同的格式,这样一来,就造成了X86处理器的解码工作非常复杂。为了提高处理器的工作频率,就不得不延长处理器中的流水线。而过长的流水线在分支如果出现预测出错的情况,又会带来CPU工作停滞时间较长的弊端。而ARM指令集大多数指令采用相同的字节长度,并且在字边界上对齐,字段位置固定,特别是操作码的位置。这就非常适合采用流水线技术,允许流水线在当前指令译码阶段去取其下一条指令。

3.

第三,X86指令采用了可访问内存地址的方法,这样的方法容易造成处理器与内存之间的不平衡工作,从而降低处理器的工作效率。而ARM处理器则是使用Load/Store的存储模式,其中只有Load和Store指令才能从内存中读取数据到寄存器,所有其他指令只对寄存器中的操作数进行计算。因此,每条指令中访问的内存地址不会超过1个,指令访问内存的操作不会与算术操作混在一起。

4.

第四,X86构架处理器中的FPU(Floating Point Unit)浮点运算单元的运算能力较差,其主要原因就是X86指令集中所使用的一个操作数堆栈。如果在运算过程中,没有足够的寄存器进行计算,系统就不得不使用堆栈来存放数据,这样一来会浪费大量的时间来处理FXCH指令,才能将正确的数据放到堆栈的顶部。ARM处理器本身不支持浮点运算,所有的浮点运算都在一个特殊的浮点模拟器中运行,并且速度很慢,经常需要进行数千个时钟周期才能完成浮点函数的计算。

5.

第五,在流水线方面,ARM指令的处理过程被拆分成几个更小的、能够被流水线并行执行的单元。在理想情况下,流水线每周期前进一步,可获得最高的吞吐率;而X86指令集的执行需要调用微代码的一个微程序,在执行速度上不如ARM指令集。

6.

第六,X86指令对于各种扩展部件的限制也是十分不利的。首先,X86架构的处理器对于4GB的内存容量上限制,虽然现在目前主流的个人电脑的内存大小为512MB和1GB,但是相信随着操作系统和应用软件的不断提升,会快将会突破4GB的内存容量。而ARM则相反,它可以支持丰富的扩展部件。

7.

第七,为了提高X86架构的处理器的性能,而出现像寄存器重命名、缓冲器巨大、乱序执行、分支预测、X86指令转化等等现象,都使得处理器的核心面积变得越来越大,这也限制了处理器工作频率的进一步提升,设计成本增加,此外,处理器所集成的这些庞大数目的晶体管都只是为了解决X86指令的问题。而ARM指令集可以大大简化处理器的控制器和其他功能单元的设计,不必使用大量专用寄存器,特别是允许以硬件线路来实现指令操作,从而节约的处理器的制造成本,核心面积小。

8.

第八,ARM指令集还加强了并行处理能力,非常适合于采用处理器的流水线、超流水线和超标量技术,从而实现指令级并行操作,提高处理器的性能。而且随着VLSI(Very Large Scale Integration,超大规模集成电路)技术的发展,整个处理器的核心甚至多个处理器核心都可以集成在一个芯片上。然而X86指令集却给VLSI设计带来很大的设计负担,不利于单片集成。

 

 

[参考文献]

[1]金瑶,陈磊萍. ARM指令集与X86指令集之比较[J]. 成功(教育),2007.

发布了143 篇原创文章 · 获赞 31 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/u25th_engineer/article/details/103796596