2. 数据表示、寻址方式与指令系统

重点

一、浮点数尾数基值的选择和下溢处理🌟

1.浮点数尾数基值的选择

基值rm:尾数采用的进制

尾数的数位m’:长度为m的机器位数中,能存放几个rm位的数

  • 若rm=2,则m’ = m
  • 若rm=16,则 m’ = m/4

阶值所占位数p

N = 尾数 * rme

条件

  • 非负阶
  • 规格化:正尾数小数点后第一个rm进制数位不为0
  • 正尾数

image-20220523111033994

影响

  1. 数的范围:rm增大,可表示数的范围增大
  2. 数的个数:rm增大,可表示数的个数增大
  3. 数轴分布:rm增大,重叠范围内数的密度稀疏
  4. 数的精度:rm增大,可表述数的精度下降
  5. 精度损失:rm增大,数的精度损失减小
  6. 运算速度:rm增大,运算速度提高

2.浮点数尾数下溢的处理方法

截断法:将尾数超过机器字长的部分截取

  • 实现简单、不增加硬件
  • 最大误差较大,平均误差大且无法调节
  • 很少使用

舍入法:增加一位附加位,类似于四舍五入

  • 实现简单,增加硬件少
  • 最大误差小,平均误差接近于0且无法调节
  • 处理速度慢

恒置“1”法:最低为恒置“1”

  • 实现最简单,不需要增加硬件与处理时间
  • 平均误差趋于0,最大误差最大

查表舍入法:根据情况选用截断法或舍入法

  • 硬件量大
  • 平均误差可调节到0
  • 速度较快

二、自定义数据表示

1.标识符数据表示

定义:将数据类型与数据本身直接练习在一起 数据(字) = 类型标志 + 数据值

优点:

  • 简化了指令系统和程序设计
  • 简化了编译程序
  • 便于实现一致性校验
  • 能由硬件自动变换数据类型
  • 支持数据库系统的实现与数据类型无关的要求,使程序不用修改即可处理多种不同类型的数据
  • 位软件调试和应用软件开发提供了支持

问题:

  1. 每个数据字因增设标识符,会增加程序所占的主存空间
  2. 采用标志符会降低指令的执行速度

2.数据描述符

定义:描述符与数据分开存放,用以描述要访问的数据是整块的还是单个的,访问该数据块或数据元素的地址及其他信息

优点:描述符可用于块内所有元素,不必每次访存取元素时都去访存描述符。一条指令就能执行对整个数据块的运算。

三、再定位技术

当程序装入主存时,就需要进行逻辑地址空间到物理地址空间的转换,即进行程序的定位

1.静态再定位

目的程序装入主存时,由装入程序用软件方法把目的程序得逻辑地址变换成物理地址。

问题:

  • 指令地址码被修改,会因一道程序地址改错而影响其他程序
  • 指令允许修改妨碍了程序的可重入
  • 指令被修改,不利于程序出错时得故障定位和程序调试
  • 给重叠、流水技术得采用带来了困难

2.动态再定位

程序执行时,只通过地址加法器将逻辑地址加上基址寄存器的程序基址形成物理(有效)地址后去访存

变址寻址:对诸如向量、数组等数据块运算得支持,以便实现程序的循环

基址寻址:逻辑地址空间到物理地址空间变换得支持,以实现程序的动态在定位。

3.虚实地址映像表

四、信息按整数边界存储

信息再主存中存放得地址必须是该信息宽度的整数倍

保证了访问速度,但造成了存储空间的浪费

五、操作码优化

1.哈夫曼编码

构造哈夫曼树

2.拓展操作码

原则:短码不能是长码的前缀

例题:若某机要求有:三地址指令4条,单地址指令255条,零地址指令16条。 设指令字长为12位,每个地址码长为3位。能否以扩展操作码为其编码?如果单地址指令 改为254条呢?

  • 三地址指令4条,操作码共3位,操作码为:0XX,共四条
  • 单地址指令255条,操作码共9位,为 1XX XXX XXX 共28=256个,剩余 111 111 110
  • 0地址指令共16条,操作码共12位,111 111 110 XXX最多8条,不可以

六、指令格式的优化设计🌟

用最短的位数来表示指令的操作信息和地址信息,使程序中指令的平均字长最短

措施:

  1. 采用拓展操作码,并选择合适的编码方式,以缩短操作码的平均码长
  2. 采用多种寻址方式,缩短地址码长度,并在有限的地址长度内提供更多地址信息
  3. 采用0、1、2、3等多种地址制,增强指令的功能,宏观上缩短程序的长度,加快程序的执行速度
  4. 同种地址制内采用多种地址形式,使每种地址字段有多种长度,让长操作码与短地址码组配
  5. 维持指令字再存储器中按整数边界存储的前提下, 使用多种不同的指令字长度

七、指令系统改进途径

CISC缺点:

  • 指令系统庞大
  • 许多指令操作繁杂,执行速度低,不如简单指令的组合
  • 高级语言编译程序选择目标指令的范围太大,难以优化生成高效机器语言程序,编译程序过长、复杂
  • 指令的使用频度不高,且差别大,相当一部分指令利用率很低

RISC优点:

  • 简化了指令系统设计,适合VLSI实现
  • 提高了机器的执行速度和效率
  • 降低了设计成本
  • 可直接支持高级语言的实现,简化编译程序的设计。

八、RISC思想及所采用的基本技术

思想:

  • 精简指令的条数
  • 简化指令的格式
  • 指令字等长,且都在一个机器周期内执行完
  • 扩大机器中通用寄存器的个数,只让存、取两类指令访存
  • 指令的实现以组合电路硬联实现为主,少量指令采用微程序解释
  • 设计高质量编译程序来优化支持高级语言程序的实现

技术:

  • 按设计RISC机器的一般原则来精选和优化设计指令系统
  • 逻辑上采用组合电路硬联为主,少量指令采用微程序解释
  • CPU内设置大量寄存器,并采用重叠寄存器组的窗口
  • 指令采用重叠和流水的方式解释,采用延迟转移
  • 采用高速缓冲器Cache缓冲指令和数据