第二章 指令系统

2.2 寻址技术

  寻址技术是指寻找数据及其它信息的地址的技术,它是软件与硬件的一个主要分界面。寻址技术要研究的主要内容包括编址方式、寻址方式和定位方式等。寻址技术研究的对象主要有寄存器、主存储器、堆栈和输入输出设备等,其中以面向主存储器的寻址技术为主要研究对象。
  在"汇编语言程序设计"课中,我们已经学习了常见寻址方式的基本工作原理和它们的使用方法,在"计算机组成原理"课中,已经学习了寻址技术的实现方法等。本课程的重点是:在分析各种寻址技术优缺点的基础上,学习在计算机系统设计过程中如何选择和确定采用哪种寻址技术。
  要对寄存器、主存储器和输入输出设备等进行寻址,首先必须对这些设备进行编址。正象一个大楼里的许多房间,首先必须对每一个房间编上一个唯一的号码,人们才能找到要找的房间。
  在计算机系统中,编址方式是指对各种存储设备进行编码的方法。主要内容包括编址的单位、零地址空间的个数等,另外还包括并行存储器的编址技术和输入输出设备的非线性编址技术等。

2.2.1 编址单位

  目前常用的编址单位有字编址、字节编址和位编址等几种。以下,主要以主存储器的编址方式为例说明各种编址单位的优缺点。
  字编址是实现起来最容易的一种编址方式,这是因为每个编址单位与设备的访问单位相一致,即每个编址单位所包含的信息量(如二进制位数)与访问一次设备(指读或写一次寄存器、主存储器或输入输出设备等)所获得的信息量是相同的。早期的大多数机器都采用这种编址方式,目前,仍在部分机器采用字编址方式。
  在采用字编址的机器中,每从主存储器中读出一条指令,程序计数器加1,每读出一个数据,地址计数器加1。字编址方式实现起来很简单,地址信息、存储器容量等没有任何浪费,它的主要缺点是没有对非数值计算的提供支持。从目前计算机的实际应用领域看,非数值应用已经超过了数值应用,而非数值应用要求按字节编址,因为它的基本寻址单位是字节。
  在采用字编址的计算机中,需要设置专门的字节操作指令,位操作指令等,在这些指令中要有专门的字段指出操作数的字节编号或位的编号。
  目前使用最普遍的编址单位是字节编址,这是为了适应非数值计算的需要。字节编址方式能够使编址单位与信息的基本单位(一个字节)相一致,这是它的最大优点。然而,如果主存储器的访问字长也是一个字节的话,那么主存储器的频带就太窄了,必将成为整个计算机系统的瓶颈。通常主存储器的字长是一个字节的4倍以上,有的达到几十倍,即每个主存储器地址所包含的信息量(一个字节)与访问一次主存储器所获得的信息量(通常是一个字)是不相同的。