RISC体系结构

本章将RISC分为两类讨论,第一类是桌面和服务器上的RISC:

  • Digital Alpha
  • MIPS, Inc.
  • Hewlett-Packard PA-RISC
  • IBM and Motorola PowerPC
  • Sun Microsystems SPARC

第二类是嵌入式的RISC:

  • Advanced RISC Machines ARM
  • Advanced RISC Machines Thumb
  • Hitachi SuperH
  • Mitsubishi M32R
  • MIPS, Inc. MIPS16

这其中的Alpha,PA-RISC和M32R已经被淘汰。

对这10种RISC体系结构的相似之处将会讨论50页左右,表1罗列了桌面和服务器RISC的主要特点,表2则罗列了嵌入式RISC的。

嵌入式RISC倾向于提供8到16个通用寄存器,桌面/服务器提供32个,嵌入式的寄存器可能是16位或者32位,服务器的都是32位的。现在的情况则是,嵌入式的一般会是32位或者64位,而桌面/服务器的都是64位了。

Thumb和MIPS16虽然是独立的体系结构,但是更多的是作为ARM和MIPS的可选模式。这两种模式都使用16位长的指令,提供体系结构的子集,一般情况下的程序,这种指令集已经足够了。所有的机器都会希望16位和32位的模式没有本质的差别。当它们需要代码密度的时候就用16位的模式,当需要性能的时候可以选择32位的模式。

老一些的RISC这么多年来会有新的扩展,所以,我们只比较最新的版本: 桌面/服务器的RISC是:Alpha第三版,MIPS64,PA-RISC 2.0和SPARC第九版,嵌入式的是:ARMv4,Thumb,SH-3,M32R和MIPS16.

Alpha MIPS I PA-RISC 1.1 PowerPC SPARC v.8
发布时间 1992 1986 1986 1993 1987
指令位数 32 32 32 32 32
地址空间(大小,模式) 64位,扁平 32位,扁平 48位,分段 32位,扁平 32位,扁平
数据对齐 对齐 对齐 对齐 不对齐 对齐
寻址模式 1 1 5 4 2
保护模式
最小页大小 8KB 4KB 4KB 4KB 8KB
I/O 内存映射 内存映射 内存映射 内存映射 内存映射
内部寄存器(数量,模式,大小) 31 个通用寄存器,64位 31 个通用寄存器,32位 31 个通用寄存器,32位 31 个通用寄存器,32位 31 个通用寄存器,32位
浮点寄存器 31x32或者31x64位 16x32或者16x64位 56x32或者28x64位 32x32或者32x64位 32x32或者32x64位
浮点格式 IEEE 754 单精度,双精度 IEEE 754 单精度,双精度 IEEE 754 单精度,双精度 IEEE 754 单精度,双精度 IEEE 754 单精度,双精度

表1:五种桌面和服务器的指令集第一版汇总。除了数据寻址方式和指令集的细节,整形指令集很相似。跟表34比较,新版本的指令集都支持64位的地址空间。

ARM Thumb SuperH M32R MIPS16
发布时间 1985 1995 1992 1997 1996
指令位数 32 16 16 16/32 16/32
地址空间(大小,模式) 64位,扁平 32位,扁平 32位,扁平 32位,扁平 32/64位,扁平
数据对齐 对齐 对齐 对齐 对齐 对齐
寻址模式数量 6 6 4 3 2
I/O 内存映射 内存映射 内存映射 内存映射 内存映射
内部寄存器(数量,模式,大小) 15个通用寄存器,32位 8个通用寄存器,SP,LR,32位 16个通用寄存器,32位 16个通用寄存器,32位 8个通用寄存器,SP,RA,32/64位

表2:五种嵌入式指令集。对比表34,除了数据寻址方式和指令集的细节,整形指令集很相似。

接下来的章节会按下面的顺序来讨论:

  • 以MIPS核的指令为基础,说明最基础的指令集,定义放在附录A
  • 桌面/服务器RISC的多媒体扩展
  • 嵌入式RISCs指令的DSP扩展
  • MIPS不包含,但是有两个以上的指令集包含了的指令
  • 10种指令集各自独有的指令和特点

我们在最后一节叙述指令集的进化和未来的发展方向。

results matching ""

    No results matching ""