图2.1 复杂模型机指令译码逻辑图
图2.2逻辑结构图
第三章 详细设计
3.1 运算器的物理结构
运算器模块由运算器 (两片74LS181)、暂存器 (两片74LS273)、输出缓冲器 (74LS245)以及进位控制和判零标志控制电路等构成。
运算器模块的工作原理:该模块中算术运算是由74LS181(U31、U32)构成,它是运算器的核心。它可以对两个 8 位的二进制数进行多种算术或逻辑运算。两
3
个参加运算的数分别来自于暂存器 U29 和 U30,运算结果直接输出到输出缓冲器 U33,由输出缓冲器发送到系统的数据总线上,以便进行移位操作或参加下一次运算。暂存器 U29 和 U30 采用 8 位锁存器 74LS273。输出缓冲器 U33 采用三态传输器件 74LS245,由 ALUB`信号来控制,ALUB`为“0”电平时,U33 开通,由于 U33 的方向控制 DIR 接高电平;当 ALUB`为“1”电平时U33不通,其输出呈高阻。299B`为移位寄存器U34的允许输出信号,AR为算术运算时是否影响进位及判零标志控制位,低电平有效。ZID 是 ALU 结果为零标志信号,由 ALU 输出的 8 位数据输入到U50中,经 8 输入或非门产生。再看判零电路,ALU 在算术运算时,M=0,且移位寄存器不在工作,则 299B`=1,影响判零电路的控制位AR=0,因此UN3A输出脚3为“1”电平,当时钟脉冲T4 正跳时UN5A的时钟 CLK 电平产生正跳,此时ZID状态被存入触发器74LS74(UN5A),触发器的输出QZI就是ALU结果的零标志位。
图3.1运算器的物理结构图
4
3.2 存储器系统的组成与说明
1.指令寄存器模块
指令寄存器模块中指令寄存器74LS273(U36)的输出部分以排针形式引出到IJ1,部分内部已连好, 构成实验计算机机时用它作为指令译码电路的输入,实现程序跳转控制。
2.主存储器单元电路
主存储器数据总线挂在扩展数据总线EXD0~EXD7上;它的地址总线由地址寄存器单元电路中的地址寄存器74LS273(U37)给出,地址值由8个LED灯LAD0~LAD7显示,高电平亮,低电平灭;它的读信号直接接地;它的写信号和片选信号由写入方式确定。该存储器中机器指令的读写分手动和自动两种方式。手动方式下 ,写信号由W/R` 提供,片选信号由CE`提供;自动方式下,写信号由控制CPU提供,片选信号由控制CPU提供。
3.移位寄存器模块
移位寄存器采用74LS299(U34),它具有并行接数、逻辑左移、逻辑右移、保持等功能,具体由S0、S1、M、DS0、DS7决定。T4是它的工作脉冲,正跳变有效。
3.3 指令系统的设计与指令分析
1、数据格式
复杂模型机采用7位定点补码表示法表示数据,字长8位,第7位为符号位。 2、指令格式
模型机设计四大类指令共十六条,其中包括算术逻辑指令、I/O指令、存数指令、取数指令、转移指令和停机指令等。
⑴ 算术逻辑指令
设计9条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址,其格式如下:
表3-1 算数逻辑指令格式
7 6 5 4 OP-CODE 3 2 RS 1 0 RD 其中,OP—CODE为操作码,RS为源寄存器,RD为目的寄存器。
5
9条算术逻辑指令的名称、功能。 ⑵ 访问指令及转移指令
模型机设计2条访问指令:即存数STA、取数LDA;2条转移指令:即无条件转移JMP、有进位转移指令BZC。指令格式为:
表3-2 访问指令及转移指令
7 6 0 0 5 4 M 3 2 OP-CODE D 其中,OP—CODE 为操作码,RD为目的寄存器地址(LDA、STA 指令使用)。D为位移量(正负均可),M为寻址模式,本模型机规定变址RI指定为寄存器R2。 ⑶ I / O指令
输入IN和输出OUT指令采用单字节指令,其格式如下:
表3-3 I/O 指令 7654 OP-CODE 32 addr 10 RD 1 0 RD 其中,addr=01时,选中输入数据开关组KD0~KD7作为输入设备,addr=10时,选中2位数码管作为输出设备。
本模型机共有16条基本指令。其中,算术逻辑指令9条,访问内存指令和程序控制指令4条,输入输出指令2条,其他它指令1条。表3.4列出了各条指令的格式、汇编符号、指令功能。
表3-4 复杂指令系统
序号 1 2 3 4 5 6 7 8 9 10 11 汇编符号 CLR Rd MOV RS,Rd ADC RS,Rd SBC RS,Rd INC Rd AND RS,Rd COM Rd RRC RS,Rd RLC RS,Rd LDA M,D, Rd STA M,D, Rd 指令格式 0111 00 Rd 1000 RS Rd 1001 RS Rd 1010 RS Rd 1011 -- Rd 1100 RS Rd 1101 00 Rd 1110 RS Rd 1111 RS Rd 00 M 00 Rd,D 00 M 01 Rd,D 6
功能说明 0→Rd RS→Rd RS+Rd+Cy→Rd RS-Rd-Cy→Rd Rd+1→Rd RS∧Rd →Rd Rd →Rd RS带进位右循环一位RS→Rd RS带进位左循环一位 RS→Rd E→Rd Rd→E
12 13 14 15 16 JMP M,D BZC M,D IN addr, Rd OUT addr, Rd HALT 00 M 10 00,D 00 M 11 00,D 0100 01 Rd 0101 10 Rd 0110 00 00 E→PC 当CY=1或ZI=1时, E→PC addr→Rd Rd→addr 停机 4、微指令格式
表 3-5 24位微指令格式
24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 S3 S2 S1 S0 M Cn WE B1 B0 A B C A5 A4 A3 A2 A1 A0 表3-6 A、B、C字段解析
A字段 15 0 0 0 0 1 1 1 14 0 0 1 1 0 0 1 13 0 1 0 1 0 1 0 B字段 控制信号 12 C字段 10 控制信号 0 1 0 1 0 1 0 RS_G RD_G RI_G 299_G ALU_G PC_G 9 0 0 0 0 1 1 1 8 0 0 1 1 0 0 1 7 0 1 0 1 0 1 0 控制信号 11 0 0 1 1 0 0 1 LDRI LDDR1 LDDR2 LDIR LOAD LDAR 0 0 0 0 1 1 1 P1 P2 P3 P4 AR LDPC 其中uA5~uA0为6位的后续微地址,A、B、C为三个译码字段,分别由三个控制位译码出多位。P字段中的P1~P4是四个测试字位,其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的为地址入口,从而实现微程序的顺序、分支、循环运行。具体来说,P1测试用于“取指令”微指令,它用下址低四位(uA3~uA0)与指令寄存器高四位(IR7~IR4)相或得到各路分支;P2测试用下址低2位(uA1~uA0)与指令寄存器的IR3IR2相或得到各路分支;P3测试用于条件转移,它用下址的uA4与(ZI +CY)相或得到各路分支;P4测试用于控制台操作,它用下址低2位(uA1~uA0)与SWB、SWA相或得到各路分支。
在上述各测试下址中未用到的位均直接保留。AR为算术运算是否影响进位及判零标志控制位,其为零有效。B字段中的RS_G、RD_G、RI_G分别为源寄存器选通信号,目的寄存器选通信号及变址寄存器选通信号,其功能是根据机器指令来进行三个工作寄存器R0、R1及R2的选通译码。它们的功能都是根据机器指令来进行相应芯片的选通译码。
7