E:将R0中的内容存在直接地址为0DH的内存单元中.
四、设计原理
模型机在微程序控制下自动产生各部件单元控制信号,实现特定指令的功能。这里,计算机数据通路的控制将由微程序控制器来完成,CPU 从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一段微程序。
本实验采用五条机器指令: IN(输入)、ADD(二进制加法)、STA(存数)、OUT(输出)、JMP(无条件转移),其指令格式如下(前4位为操作码): 助记符 IN 机器指令码 0000 0000 说明 “INPUT DEVICE”中的开关状态 RO 进制加法,R0+[addr] R0 存数,RO [addr] 输出,[addr]BUS PC ADDaddr 00010000×××××××× STAaddr 00100000×××××××× OUTaddr 00110000×××××××× JMPaddr 01000000×××××××× 无条件转移,addr其中IN 为单字长(8位)指令,其余为双字长指令,××××××××为addr 对应的二进制地址码。
根据模型机的数据通路图(如图1所示)和指令的要求定义微代码如下: 微程序 24~21 20 19 CN 18 17 16 15~13 12~10 9~7 A B 6~1 控制信号 S3~S0 M RD M17 M16 表1 微代码定义
P uA5~uA0 A字段 B字段 P字段 控制信15 14 13 控制信号 12 11 10 号 0 0 0 0 0 1 LDRI 0 0 0 0 0 1 RS_G 0 0 0 0 0 1 P1 9 8 7 控制信号 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 LDDR1 LDDR2 LDIR LOAD LDAR 0 0 1 1 1 1 1 0 0 1 0 1 0 1 0 RD_G RI_G 299_G ALU_G PC_G 0 1 0 1 1 0 1 0 1 1 0 1 0 1 0 P2 P3 P4 AR LDPC 表2 A、B、P字段
表中μA5~μA0 为6 位后续微地址,A、B、C 为三个译码字段,分别由三个控制位译码出多位。P 字段中的P(1)~P(4)是四个测试字位。其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的微地址入口,从而实现微程序的顺序、分支、循环运行。B 字段中的RS-B、RD-B、RI-B 分别为源寄存器选通信号、目的寄存器选通信号及变址寄存器选通信号,其功能是根据机器指令来进行三个工作寄存器R0、R1 及R2 的选通译码。A 字段中的LDRI 为从输入设备组件中读入数据使能控制信号。
指令寄存器(IR)用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存取到缓冲寄存器中,然后再传送至指令寄存器。指令划分为操作码和地址码字段,由二进制数构成。为了执行任何给定的指令,必须对操作码进行测试[P(1)],通过节拍脉冲T4的控制以便识别所要求的操作。“指令寄存器”(实验板上标有“INS DECODE”的芯片)根据指令中的操作码译码结果强置微控器单元的微地址,使下一条微指令指向相应得微程序首地址。
本系统使用两种外部设备,一种是二进制代码开关,它作为输入设备(INPUT DEVICE);另一种是数码管,它作为输出设备(OUPUT DEVICE)。例如:输入时,二进制开关数据直接经过三态门送到总线上,只要开关状态不变,输入的信息也不变。输出时,将输出的数据送到数据总线BUS上,当写信号(W/R)有效时,将数据打入输出锁存器,在数码管显示。
图1基本模型机数据通路图
(1) 运算器。运算器又由运算逻辑单元、数据暂存器、通用寄存器组成。在图1模型机的结构图中,ALU、ALU_G和74299组成运算逻辑单元,其中ALU是由2个4位的74LS181串联成8位的运算器,ALU_G是ALU-G
实现用于控制ALU的运算结果的输出,74299用74LS299实现用于对ALU的运算结果进行移位运算;数据暂存器在图1中由DR1和DR2组成,DR1和DR2都是用74LS273实现,它们用于存储运算器进行运算的两个操作数;通用寄存器在图1中由R0、R1和R2组成,R0、R1和R2都是用74LS374实现,它们用作目的寄存器和源寄存器。
(2) 控制器。控制器由微程序控制器、指令寄存器、地址寄存器和程序计数器组成。在图1中微程序控制器表示为MControl,它里面存放了指令系统对应的全部微程序,微程序控制器是由微控制存储器和3个138译码器实现(A138、B138和P138),用于产生控制信号来控制各个组件的工作状态;在图1中指令寄存器表示为IR,指令寄存器由一个74LS273实现,用于存放当前正在执行的指令;在图1中地址寄存器表示为AR,地址寄存器由一个74LS273实现,在读取或者写入存储器时用于指明要读取或写入的地址;程序计数器在图1中由PC_G和PC组成,其中PC是由八位二进制同步计数器实现,用于产生程序指针pc的下一个值,PC_G由PC-G实现,用于存储程序的程序指针pc的值。
(3) 存储器。存储器在图1中表示为MEN,存储器用静态随机存储器6116实现,用来存储用户程序和数据。
(4) 数据总线。数据总线用于连接运算器、存储器、输入输出等模块,数据总线由ccp_DataBus实现。
(5) 输入输出。输入输出类似于键盘和显示器。
(6) 时序产生器。在图1中T1、T2、T3和T4等控制信号都是由时序产生器生产,时序产生器由时序电路实现如图2所示,时序产生器一个周期中产生四个脉冲信号T1~T4,这四个脉冲信号用于控制组件的执行顺序,组件在这些信号的控制下有序的执行,一个周期中完成一条微指令的执行。
系统涉及到的微程序流程如图1所示,当拟定“取指令”微指令时,该微指令的判别测试字段为P1测试。由于“取指”微指令是所有微程序都使用的公用微指令,因此P1测试结果出现多路分支。本次课程设计用指令寄存器的前4位(I7-I4)作为测试条件,出现5路分支,占用5个固定微地址单元。
控制台操作为P4测试,它以控制台开关SWB,SWA作为测试条件,出现了3路分支,占用3个固定微地址单元。当分支微地址单元固定后,剩下的其他地方就可以一条微指令占用控存一个微地址单元随意填写。
当全部微程序设计完毕之后,应将每条微指令代码化:当全部微程序设计完毕
后,应将每条微指令代码化,表3即为将图2的微程序流程图按微指令格式转化而成的二进制微代码表。 微地S3 S2 S1 S0 M CN WE M17 A 址 00 01 02 03 04 05 06 07 10 11 12 13 14 15 M16 B P μA 5…μA0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1 0 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 1 0 1 1 0 0 0 0 0 1 1 1 1 0 1 1 0 1 1 0 0 0 0 1 1 1 1 1 0 1 1 0 1 1 0 0 0 1 1 1 0 1 1 0 1 1 0 1 1 0 0 1 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 16 17 20 21 22 23 24 25 26 27 30 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 0 1 0 1 0 1 1 1 0 1 1 0 1 1 0 0 1 0 0 1 0 1 1 0 1 1 0 1 1 0 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 表3 二进制代码表
00
P4 WRITE(01) READ(00) RUN(11)
21 20 23 PC—>AR PC—>AR 24 22 RAM—>BUS BUSRAM—>BUS BUS01
30 27 DR1DR1
计算机组成原理课程设计基本模型机设计与实现
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)