(1) Am2901的内部组成

  Am2901芯片是一个4位的位片结构的运算器器件, 其内部组成如图2.11所示。

      图2.11 Am2901 芯片的内部组成

  Am2901芯片是一个完整的运算器,只是位数较少,具有很好的典型性,作为教学实例是非常理想的。教学计算机分成8位和16位字长的两种型号,其运算器的主体部分,8位机,用2片Am2901芯片级联而成,16位机用4片Am2901芯片级联而成。了解这一芯片的内部组成与运行机制是学习计算机运算器组成与设计的基础。

  从图2.11上可以看到, 该芯片的第一个组成成分是一个4位的算逻运算部件ALU, 它的输出为F, 两个输入分别用R和S标记, 还有送入ALU最低位的进位信号Cn。它能实现R+S、S-R、R-S三种算术运算功能, 和R∨S、R∧S、R∧S、R ∨S、R ∨S五种逻辑运算功能。在给出运算结果的同时, 还送出向高位的进位输出信号Cn+4, 溢出标志信号OVR, 最高位的状态信号F3(可能用作符号位), 以及运算结果为零的标志信号F=0000。

  该芯片的第二个组成成分是由16个4位的通用寄存器组成的寄存器组。它是一个用双端口(A口和B口)控制读出, 单端口(B口)控制写入的部件。为了对其进行读写, 需通过A地址、B地址指定被读写的寄存器。两路读出数据分辨用A口、B口标记,经锁存器线路可以送到ALU的R、S输入端的多路选择器,A口读出数据还可以用作该芯片的可选输出信号之一。寄存器组的写入数据由一组多路选择器给出,并由B地址选择写入的寄存器。

  该芯片的第三个组成成分是4位的Q寄存器,主要用于实现硬件的乘法、除法指令,能对本身的内容完成左、右移位功能,能接收ALU的输出。输出送到ALU 的S 输入端。

  该芯片的其余组成成分是5组多路灯选通门, 通过它们, 实现芯片内上述三个组成成分之间的联系,实现该芯片和其外界信息的输入与输出操作, 这包括:
 . 外部4位的数据经D输入端送入运算器芯片之内,是直接送到ALU的R输入端;
 . 一组4位的二选一器件控制把运算器内的两路4位输出数据(A口数据、ALU的运算结果数据)送出芯片,标记为Y;
 . 一组4位的二选一和4位的三选一器件, 分别用于组合外部送来信息D, 通用寄存器组的双路读出信息A和B, 乘商寄存器Q的信息, 以 形成ALU的两路输入R和S的值;
 . 一组4位的三选一器件, 完成从ALU的输出结果, ALU输出结果左移一位的值, ALU输出结果右移一位的值中选择其一, 作为通用寄存器的写入信息, 实现的是通用接存器接收及移位功能。在左右移位时, 其最高位和最低位可以送出或接收相应位的信息, 图上用RAM3和RAM0标记, 它们都是由能进行双向传送的三态门电路实现的;
 . 一组4位的三选一器件, 用于完成Q寄存器内容的左右移位, 或接收ALU的输出结果的操作功能。在进行左右移位操作时, 与通用寄存器移位类似的是, 这里存在Q3和Q0的双向传送问题。

  助学部分
  为了帮助记忆,我们把运算器的功能与组成概括为如下三句话:

  运算器三大块(功能和组成),运算(ALU)、暂存(通用寄存器组)、乘除快(乘商寄存器),多路选通连起来(以便构成一个能协同运行的运算器整体)。