多种主流指令集之间对比

译自《computer architecture, a quantitative approach》附录K《survey of instruction set architectures》。

全书以MIPS基本指令集为基准,对比介绍了主流的十三种指令集。虽然成书年代比较早,但是作为教程,帮助构建基本的指令集认识,还是有一定参考价值。

下面开始是正文:


本书包含了13种指令集,一些已经完成了他们的使命,还有一些依旧是IT产业的重要部分。我们将他们放一起来讨论指令集的历史变迁。

首先我们要介绍10种精简指令集。ARM(包括Thumb),MIPS(包括MIPS16),Power和SPARC,加起来是每年以十亿记的市场,其中,ARM占嵌入式的大头。Alpha和HP PA-RISC的市场则基本被Itanium挤占光了,要步入历史了。

X86现在显然还是一种有优势的指令集,控制了绝大数的桌面和低端服务器市场。这本书上对它的介绍也会比其他的指令集多得多。现在它也有了64位的扩展,这个指令集的生命力不容小觑。

VAX指令集的强调代码密度,而且希望能够提供与编程语言近似的机器语言。架构师为此设计的大量微指令,然而都不容易在单芯片和流水线上实现它们。成功的案例只有一个短命的Alpha。

饱受争议的IBM 360/370显然是个经典作品,也是许多其他指令集的参照对象。比如,1960年代就做出了下面的这些标准:

  • 8位一个byte
  • 以byte寻址
  • 32位一个word
  • 32位单精度浮点,64位双精度浮点
  • 32位的通用寄存器,64位的独立浮点寄存器
  • 在同一系列的计算机中保持二进制兼容
  • 体系结构设计与实现分离

第二章中会提到,IBM 370指令集支持虚拟化,所以也是指令集中最适合虚拟机扩展的,现在IBM 360/370都还有64位扩展的大型机版本。

results matching ""

    No results matching ""