体系结构复习笔记 第二弹

# 数据表示

# 浮点数的表示

计算机中的浮点数可以表示编码形式为 V=rmE×MV = r_m^E \times M 的有理数。rmr_m 是隐含的底,一般情况下 r=2r=2. E,ME, M 都是有符号定点数,其中 EE 称为阶码MM 称为尾数。下图展示了一种阶码和尾数的具体存储形式。

浮点数的存储要求:

  • 非负阶
  • 规格化
  • 正尾数

需要注意,浮点数的存储形式不是唯一的。尾数和阶码可以采用原码、移码或补码表示。在不同的情况下,浮点数的表示范围不同。

# 尾数下溢处理方法

常见尾数下溢处理方法如下:

  • 截断法:将尾数超出机器字长的部分截去。优点是实现简单,不增加硬件,不需要处理时间;缺点是平均误差较大且无法调节。
  • 舍入法:在机器运算的规定字长之外增设一位附加位,存放溢出部分的最高位,每当进行尾数下溢处理时,将附加位加一。优点是实现简单,增加硬件很少,最大误差小,平均误差接近于零;缺点是处理速度慢,需要花费在附加位上加一以及因此产生的进位时间
  • 恒置 11 法:把有效字长的最低一位置成 rm/2r_m/2. 优点是实现简单,不需要增加硬件和处理时间,平均误差接近 00; 缺点是最大误差较大。
  • 查表舍入法:用 ROM 或者 PLA 存放下溢处理表。优点是速度快,平均误差可以调节到 00; 缺点是硬件量大。

# 寻址技术

# 编址方式

# 大小端问题

大端:高字节保存在低地址中
小端:高字节包括在高地址中

  • x86 是小端模式

# 并行存储器的编址技术

  • 高位交叉编址:主要用来提高存储器容量
  • 低位交叉编址:主要用来提高存储器速度

高位交叉编址
低位交叉编址

# 寻址方式

  • 立即数寻址
  • 面向寄存器寻址
  • 面向主存寻址
  • 面向堆栈寻址

# 指令系统的优化设计

# 操作码优化表示

# Huffman 编码

采用 Huffman 压缩可以显著降低操作码平均长度。

操作码的最短平均长度为其熵

Hopt=ipilog2piH_{opt} = -\sum_ip_i\log_2p_i

nn 位定长操作码的信息冗余量为

R=1Hoptlog2nR = 1-\frac{H_{opt}}{\lceil\log_2 n\rceil}

# 扩展编码法

主要考虑编码的可行性。