Skip to content
On this page

第二章 数据表示、寻址方式与指令系统

一、 数据表示

1、数据表示与数据结构

  • 数据表示指的是能由机器硬件直接识别和引用的数据类型。
    • 定点数据
    • 逻辑数据
    • 浮点数据
  • 串、队、栈、向量、阵列、链表、树、图等是软件系统所要处理的各种数据结构,它们反映了面向应用所要用到的各种数据元素或信息单元之间的结构关系。
    • 数据结构和数据表示是软、硬件的交界面
  • 机器的运算类指令和运算器结构主要是按机器有什么样的数据表示来确定的

2、高级数据表示

  • 定义数据表示

    • 自定义(Self-defining)数据表示包括标志符数据表示和数据描述符两类。
    • 标志符
      • 为了缩短高级语言与机器语言的这种语义差距, 可让机器中的每个数据如下所示,都带有类型标志位
      • 标志符数据表示的主要优点为:
        • ①简化了指令系统和程序设计。
        • ②简化了编译程序。
        • ③便于实现一致性校验。
        • ④能由硬件自动完成数据类型的变换。
    • 数据描述符
      • 为进一步减少标志符所占的存贮空间,对于向量、数组、记录等数据,由于每个元素具有相同的属性,为此发展出数据描述符
  • 向量、数组数据表示

    • 含义:有序排列的数据元素称为向量(向量数据)
    • 向量数据的三要素
      • 基地址:存放第一个向量数据的地址;
      • 向量长度:向量数据个数;
      • 位移量:与基地址的距离。
  • 堆栈数据表示

    • (1)有若干高速寄存器组成的硬件堆栈,并附加控制电路让它与主存中的堆栈区在逻辑上组成一个整体,使堆栈的访问速度是寄存器的,堆栈的容量是主存的。
    • (2)有很丰富的堆栈操作类指令且功能很强, 直接可对堆栈中的数据进行各种运算和处理。
    • (3)有力地支持高级语言程序的编译。假定有算术赋值语句F=AB+C/(D-E),可以很容易通过用逆波兰表达式ABCDE-/+
    • (4)有力地支持子程序的嵌套和递归调用。

3、引入数据表示的原则

  • (1)一方面是看系统的效率有否提高,即是否减少了实现时间和所需的存贮空间。
  • (2)另一方面是看引入这种数据表示后, 其通用性和利用率是否高。

4、浮点数尾数基数大小和下溢处理方法的选择

  • 浮点数尾数基值的选择

  • 浮点数一般采用阶码尾数两部分表示。由于计算机字长有限,浮点数只能表示出数轴上分散于正、负两个区间上部分离散值

  • 使用rm来表示其浮点数尾数的基,rm使用二进制

    • 根据浮点位数的基,求规格化尾数的值
      • 最小尾数公式:1 × r (-1 m)
      • 最大尾数公式:1 - 1 × r (-m' m)
  • ★浮点数尾数的下溢处理办法

    • 截断法(最简单)
    • 舍入法
    • 恒置'1'法
    • 查表舍入法

二、寻址方式

1、寻址方式的三种面向

  • 面向寄存器堆栈主存的寻址方式。

2、两种:占用操作码来指明;不占用操作码、在地址码部分设置专门的寻址方式字段。

3、★程序在主存中的定位技术

  • 逻辑地址程序员编程时使用的地址。主存物理地址是程序在主存中的实际地址

4、物理主存中信息的存储分布

  • 信息按整数边界存储对于保证访问速度是必要的,但它会造成存储空间的浪费。

三、 指令系统的设计和优化

1、指令系统的设计原则

  • (1)是否有利于满足系统的基本功能;
  • (2)是否有利于优化计算机的性能价格比;
  • (3)是否有利于指令系统今后的发展和改进;

2、 ★指令操作码的优化

  • 指令操作码地址码两部分组成的。指令格式的优化是指如何用最短的位数来表示指令的操作信息和地址信息,使程序中指令的平均字长最短。
  • ★哈夫曼编码:在操作码的优化上,要用到哈夫曼压缩概念。其基本思想是,对发生概率最高的事件采用最短的位数(时间)来表示(处理),而对出现概率较低的事件允许用较长的位数(时间)来表示(处理),使得表示平均位数(时间)缩短
  • 扩展操作码编码是界于定长二进制编码和完全的哈夫曼编码之间的一种编码形式,操作码不是定长的,但只有有限几种码长,仍利用短码表示高概率的信息,长码表示低概率的信息。但必须遵守短码不能是长码的前缀的原则。

3、指令字格式的优化

  • 采用扩展操作码,根据指令的使用频率选择合适的编码方式,缩短平均码长;
  • 采用多种寻址方式,以缩短地址码的长度;
  • 采用0、1、2、3等多地址制,以增强指令的功能,从宏观上缩短程序的长度;
  • 在维持指令字在存储器中按整数边界存储的前提下,使用多种不同的指令字长度。

四、 指令系统的发展和改进

1、两种途径和方向(CISC和RISC)

  • 进一步增强原有指令的功能以及设置更为复杂的新指令来取代原先由软件子程序完成的功能,实现软件功能的硬化。按此方向设计的计算机称为CISC。

  • 通过减少指令种数和简化指令功能来降低硬件设计的复杂度,提高指令的执行速度,按此方向设计的计算机称为RISC。

2、按CISC方向发展和改进指令系统

  • 面向目标程序的优化
  • 面向高级语言的优化
  • 面向操作系统的优化

3、按RISC方向发展和改进指令系统 ★

  • (1)CISC的问题:指令系统庞大;操作繁杂、执行速度很低;高级语言编译程序选择目标指令的效率降低;各指令的使用频度都不会太高
  • (2)RISC的基本原则:
    • 大大减少指令系统可采用的寻址方式的种类
    • 让所有指令都在一个机器周期内完成
  • RISC的技术特点 ★ -

Released under the MIT License.