ARM与X86的比较


CPU的指令集从主流的体系结构上分为精简指令集(RISC)和复杂指令集(CISC)。嵌入式系统中的主流处理器——ARM处理器,所使用的就是精简指令集。而桌面领域的处理器大部分使用的是复杂指令集,比如我们熟悉的Intel的X86系列处理器。我们把ARM处理器所使用的指令集称为ARM指令集,把X86处理器所使用的指令集称为X86指令集,ARM处理器与X86处理器采用不同类型的指令集,因此两种处理器也表现出了诸多差异。

首先,我们就来看一看基于RISC的ARM的体系结构:

ARM是一种RISC体系结构的处理器芯片。和传统的CISC体系结构不同,RISC 有以下的几个特点:

1)简洁的指令集——为了保证CPU可以在高时钟频率下单周期执行指令,RISC指令集只提供很有限的操作(例如add,sub,mul等),而复杂的操作都需要由这些简单的指令来组合进行模拟。并且,每一条指令不仅执行时间固定,其指令长度也是固定的,这样,在译码阶段就可以对下一条指令进行预取

2) Load-Store 结构——这个应该是RISC 设计中比较有特点的一部分。在RISC 中,CPU并不会对内存中的数据进行操作,所有的计算都要求在寄存器中完成。而寄存器和内存的通信则由单独的指令来完成。而在CSIC中,CPU是可以直接对内存进行操作的,这也是一个比较特别的地方

3) 更多的寄存器——和CISC 相比,基于RISC的处理器有更多的通用寄存器可以使用,且每个寄存器都可以进行数据存储或者寻址

作为RISC 领域最成功的处理器,ARM自然也遵从上面的特点。下面我们从技术、市场等不同角度对ARM与X86进行一下比较:

一、寄存器比较
32位的X86处理器所含有的寄存器有:
4个数据寄存器(EAX、EBX、ECX和EDX)
2个变址和指针寄存器(ESI和EDI)
2个指针寄存器(ESP和EBP)
6个段寄存器(ES、CS、SS、DS、FS和GS)
1个指令指针寄存器(EIP)
1个标志寄存器(EFlags)

ARM微处理器共有37个32位寄存器,其中31个通用寄存器,6个状态寄存器。但这些寄存器不能被同时访问,具体哪些寄存器是可编程访问的,取决于处理器的工作状态及具体运行模式。但在任何时候,通用寄存器R14——R0、程序计数器PC、一个或两个状态寄存器都是可访问的。usr模式下体系结构如下:

 

  • 1
  • 2
  • 下一页

相关内容