第2章 指令系统

2.1 指令系统概述

指令系统是计算机中软件与硬件交界的一个主要标志:

  • 软件设计者利用指令系统编制各种应用软件和系统软件
  • 硬件设计者采用各种手段实现指令系统

2.2 指令系统结构的分类

通用寄存器型指令集结构

CPU 中用来存储操作数的存储单元主要有:

  • 堆栈
  • 累加器
  • 一组寄存器

对于 通用寄存器型指令集结构 ,按 ALU 中操作数的个数和在存储器中的个数分类如下:

通用寄存器型指令集结构可以分为三种类型:

2.3 寻址方式

在通用寄存器型指令集结构中,一般是利用寻址方式指明指令中的操作数是一个常数、一个寄存器操作数,或是一个存储器操作数。

寻址实际上是从形式地址到实际地址的转换。形式地址由指令描述,实际地址也称为有效地址。

有效地址指明是存储器单元的地址或寄存器地址。

两种表示寻址方式的方法:

  • 将寻址方式编码于操作码中,由操作码描述相应的寻址方式。

  • 在指令字中设置专门的寻址字段,用以直接指出寻址方式

物理地址空间的信息如何存放?

上例中,8 个二进制位表示 8 个字节。

2.4 操作数类型和大小

2.5 指令系统的设计与优化

2.5.1 指令系统设计的基本原则

2.5.2 控制指令

2.5.3 指令操作码的优化

2.5.4 指令集编码

指令系统的 3 种编码格式:

  • 可变长度编码格式

  • 固定长度编码格式

  • 混合型编码格式

2.6 指令系统的发展和改进

2.7 指令格式举例

寄存器

32 个 32 位的通用寄存器(GPRs)。

寄存器 R0 的内容恒为全 0。

32 个 32 位的浮点数寄存器(FPRs)。

数据类型

寻址方式

指令格式

ALU 操作

转移操作

浮点操作

2.8 MIPS 的一种简单实现

2.8.1 数据通路 DataPath

要给 setup time 留足时间。

在 Hold_Time 期间不能有输入信号的变化

2.8.2 数据通路分类

2.8.3 定长指令周期与变长指令周期的三级时序发生器

2.8.4 MIPS 的一种简单实现