实验四微程序控制器设计实验.docx
- 文档编号:3314447
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:12
- 大小:313.06KB
实验四微程序控制器设计实验.docx
《实验四微程序控制器设计实验.docx》由会员分享,可在线阅读,更多相关《实验四微程序控制器设计实验.docx(12页珍藏版)》请在冰豆网上搜索。
实验四微程序控制器设计实验
实验四微程序控制器设计实验
(该实验的图、表可参考《计算机组成原理题解、题库、实验》书的193页“第六节常规型微程序控制器组成实验”)
一、实验目的
(1)掌握时序产生器的组成原理。
(2)掌握微程序控制器的组成原理。
(3)加深理解微指令与机器指令的关系。
二、实验电路
1.时序发生器
TEC-4计算机组成原理实验系统的时序电路如图所示。
时序信号发生器图
电路采用2片GAL22V10(U6,U7),可产生两级等间隔时序信号T1-T4和W1-W4,其中一个W由一轮T1-T4循环组成,它相当于一个微指令周期或硬联线控制器的一拍,而一轮W1-W4循环可供硬联线控制器执行一条机器指令。
本实验不涉及硬联线控制器。
微程序控制器只使用时序信号T1-T4,产生T信号的功能集成在GAL22VlO芯片TIMER1(U6)中,另外它还产生节拍信号W1、W2、W3、W4的控制时钟CLK1。
TIMER1的输入信号中,MF接实验台上晶体振荡器的输出,频率为1MHz。
T1至T4的脉冲宽度为100ns。
CLR(注意,实际上是控制台上的CLR#信号,因为ABEL语言的书写关系改为CLR,仍为低有效信号)为复位信号,低有效。
实验仪处于任何状态下令CLR#=0,都会使时序发生器和微程序控制器复位(回到初始状态),CLR#=l时,则可以正常运行。
复位后时序发生器停在T4、W4状态,微程序地址为000000B。
建议每次实验仪加电后,先用CLR#复位一次。
控制台上有一个CLR#按钮,按一次,产生一个CLR#负脉冲,实验台印制板上已连好控制台CLR#到时序电路CLR的连线。
TJ(停机)是控制器的输出信号之一。
连续运行时,如果控制信号TJ=l,会使机器停机,停止发送时序脉冲T1-T4、W1-W4,时序停在T4。
在实验台上为了将时序信号发生器的输入信号TJ和控制存储器产生的TJ信号区分开来,以便于连线操作,在实验台上时序信号发生器的输入信号TJ命名为TJI,而控制存储器产生的信号TJ仍命名为TJ。
QD(启动)是来自启动按钮QD的脉冲信号,在TIMER1中,对QD用MF进行了同步,产生QD1和QD2。
ACT表示QD1上升沿,表达式是QDl&!
QD2,脉冲宽度为1000ns。
QDR是运行标志,QD信号使其为l,CLR信号将其置0。
DP(单拍)是来自控制台的DP开关信号,当DP=l时,机器处于单拍运行状态,按一次启动按钮QD,只发送一条微指令周期的时序信号就停机。
利用单拍方式,每次只执行一条微指令,因而可以观察微指令代码和当前微指令的执行结果。
DZ(单指)信号是针对微程序控制器的,接控制台开关DZ和P1信号配合使用。
Pl是微指令字判断字段中的一个条件信号,从微程序控制器输出。
Pl信号在微程序中每条机器指令执行结束时为l,用于检测有无中断请求INTQ,而时序发生器用它来实现单条机器指令停机。
在DB=0且DP=0的前提下,当DZ=0时,机器连续运行。
当DZ=1时,机器处于单指方式,每次只执行一条机器指令。
DB、SKIP、CLK1信号以及W1-W4时序信号都是针对硬布线控制器的。
W1-W4是节拍信号,硬布线控制器执行一条机器指令需要一组W1-W4信号。
DB(单步)信号就是每次发送一组W信号后停机,可见其功能与DZ类似。
执行某些机器指令不需要完整的一组W信号周期,SKIP信号就是用来跳过本指令剩余的W节拍信号的。
中断允许标志IE由控制存储器的输出信号INTS将其置1,由控制存储器的输出信号INTC将其置0。
在TIMER2内部,控制台产生的中断请求用时钟CLK1进行同步,产生了INTR1。
只有在INTE=l时,控制台产生的中断请求脉冲INTR才能起作用,即产生向控制器输出中断信号INTQ,INTQ=INTE&INTR1。
2.数据通路
微程序控制器是根据数据通路和指令系统来设计的。
这里采用的数据通路是在综合前面各实验模块的基础上,又增加程序计数器PC(U18)、地址加法器ALU2(U17)、地址缓冲寄存器R4(U25、U26)和中断地址寄存器IAR(U19)。
PC和ALU2各采用一片GAL22V10,两者配合使用,可完成程序地址的存储、增1和加偏移量的功能。
R4由两片74HC298组成,带二选一输入端。
IAR是一片74HC374,用于中断时保存断点地址。
数据通路总体图
3.微指令格式与微程序控制器电路
根据给定的12条机器指令功能和数据通路总体图的控制信号,采用的微指令格式见下图。
微指令字长共35位。
其中顺序控制部分10位(后继微地址6位,判别字段4位),操作控制字段25位,各位进行直接控制。
微指令格式中,信号名带有后缀“#”的信号为低有效信号,不带有后缀“#”的信号为高有效信号。
微指令格式
对应微指令格式,微程序控制器的组成如下图所是示:
微程序控制器的组成
控制存储器采用5片EEPROM28C64(U8,U9,U10,U11,U12)。
28C64的输出是D0-D7,分别与引脚11、12、13、15、16、17、18、19相对应,CM0是最低字节,CM4是最高字节。
微地址寄存器6位,用一片6D触发器74HC174(U1)组成,带有清零端。
两级与门、或门构成微地址转移逻辑,用于产生下一微指令的地址。
在每个T1上升沿时刻,新的微指令地址会打入微地址寄存器中,控制存储器随即输出相应的微命令代码。
微地址转移逻辑生成下一地址,等下一个T1上升沿时打入微地址寄存器。
跳转开关JUMP(J1)是一组6个跳线开关。
当用短路子将它们连通时,微地址寄存器μAR从本实验系统提供的微程序地址译码电路得到新的微程序地址μD0-μD5。
当他们被断开时,用户提供自已的新微程序地址μD0-μD5。
这样用户能够使用自己设计的微程序地址译码电路。
5片EEPROM的地址A6(引脚4)直接与控制台开关SWC连接,当SWC=1时,微地址大于或者等于40H,当SWC=0时,微地址的范围00H-3FH。
SWC主要用于实现读寄存器堆的功能。
微地址转移逻辑的多个输入信号中,INTQ是中断请求,本实验中可以不理会它。
SWA、SWB是控制台的两个二进制开关信号,实验台上线已接好。
C是进位信号,IR7-IR4是机器指令代码,由于本次实验不连接数据通路,这些信号都接到二进制开关K0—Kl5上。
三 、机器指令与微程序
为了在教学中简单明了,本实验仪使用12条机器指令,均为单字长(8位)指令。
指令功能与格式
名 称
助记符
功 能
指 令 格 式
IR7 IR6 IR5IR4
IR3 IR2
IR1 IR0
加法
ADDRd,Rs
Rd+Rs->Rd
0 0 0 0
RS1 RS0
RD1 RD0
减法
SUBRd,Rs
Rd-Rs->Rd
0 0 0 1
RS1 RS0
RD1 RD0
乘法
MULRd,Rs
Rd*Rs->Rd
0 0 1 0
RS1 RS0
RD1 RD0
逻辑与
ANDRd,Rs
Rd&Rs->Rd
0 0 1 1
RS1 RS0
RD1 RD0
存数
STARd,[Rs]
Rd->[Rs]
0 1 0 0
RS1 RS0
RD1 RD0
取数
LDARd,[Rs]
[Rs]->Rd
0 1 0 1
RS1 RS0
RD1 RD0
无条件转移
JMP[Rs]
[Rs]->PC
1 0 0 0
RS1 RS0
XX
条件转移
JCD
若C=1则
PC+D->PC
1 0 0 1
D3 D2
D1 D0
停机
STP
暂停运行
0 1 1 0
X X
X X
中断返回
IRET
返回中断
1 0 1 0
X X
X X
开中断
INTS
允许中断
1 0 1 1
X X
X X
关中断
INTC
禁止中断
1 1 0 0
X X
X X
指令功能及格式如表所示。
指令的高4位提供给微程序控制器,低4位提供给数据通路。
应当指出,用以上12条指令来编写实际程序是不够的。
好在我们的目的不是程序设计,而主要是为了教学,通过CPU执行一些最简单的程序来掌握微程序控制器的工作原理。
上述12条指令的微程序流程设计如下图所示。
每条微指令可按前述的微指令格式转换成二进制代码,然后写入5个28C64中。
为了向RAM中装入程序和数据,检查写入是否正确,并能启动程序执行,还设计了以下五个控制台操作微程序:
存储器写操作(KWE):
按下复位按钮CLR#后,微地址寄存器状态为全零。
此时置SWC=0、SWB=1、SWA=0,按启动按钮后微指令地址转入27H,从而可对RAM连续进行手动写入。
存储器读操作(KRD):
按下复位按钮CLR#后,置SWC=0,SWB=0,SWA=1,按启动按钮后微指令地址转入17H,从而可对RAM连续进行读操作。
写寄存器操作(KLD):
按下复位按钮CLR#后,置SWC=0,SWB=1,SWA=1,按启动按钮后微指令地址转入37H,从而可对寄存器堆中的寄存器连续进行写操作。
读寄存器操作(KRR):
按下复位按钮CLR#后,置SWC=1,SWB=0,SWA=0,按启动按钮后微指令地址转入47H,从而可对寄存器堆中的寄存器连续进行读操作。
启动程序(PR):
按下复位按钮CLR#后,置SWC=0,SWB=0,SWA=0,用数据开关SW7-SW0设置内存中程序的首地址,按启动按钮后微指令地址转入07H,然后转到“取指”微指令。
应当着重指出,在微指令格式的设计过程中,对数据通路所需的控制信号进行了归并和化简。
细心的同学可能已经发现,微程序控制器输出的控制信号远远少于数据通路所需的控制信号。
这里提供的微程序流程图是没有经过归并和化简的。
仔细研究一下微程序流程图,就会发现有些信号出现的位置完全一样,这样的信号用其中一个信号就可以代表。
请看信号LDPC和LDR4,这两个信号都在微程序地址07H,1AH,1FH,26H出现,而在其他的微程序地址都不出现,因此这两个信号产生的逻辑条件是完全一样的。
从逻辑意义上看,这两个信号的作用是产生新的PC,完全出现在相同的微指令中是很正常的,因此用LDPC完全可以代替LDR4。
还有另一些信号,例如LDDR1和LDDR2,出现的位置基本相同。
LDDR2和LDDR1的唯一不同是在地址14H的微指令中,出现了LDDR2信号,但是没有出现LDDR1信号。
LDDR1和LDDR2是否也可以归并成一个信号呢?
答案是肯定的。
微程序流程图中只是指出了在微指令中必须出现的信号,并没有指出出现其他信号行不行,这就要根据具体情况具体分析。
在地址14H的微指令中,出现LDDR1信号行不行呢?
完全可以。
在地址14H出现的LDDR1是一个无用的信号,同时也是一个无害的信号,它的出现完全没有副作用,因此LDDR1和LDDR2可以归并为一个信号LDDR1。
根据以上两条原则,我们对下列信号进行了归并和化简:
LDIR(CER)为1时,允许对IR加载,此信号也可用于作为双端口存储器右端口选择CER。
LDPC(LDR4)为l时,允许对程序计数器PC加载,此信号也可用于作为R4的加载允许信号LDR4。
LDAR1(LDAR2)为l时,允许对地址寄存器AR1加载,此信号也可用于作为对地址寄存器AR2加载。
LDDR1(LDDR2)为1时允许对操作数寄存器DR1加载。
此信号也可用于作为对操作数寄存器DR2加载。
Ml(M2) 当M1=l时,操作数寄存器DR1从数据总线DBUS接收数据;当M1=0时,操作数寄存器DR1从寄存器堆RF接收数据。
此信号也可用于作为操作数寄存器DR2的数据来源选择信号。
在对微指令格式进行归并和化简的过程中,我们有意保留了一些信号,没有化简,同学们可以充分发挥创造性,提出更为简单的微指令格式。
还要说明的是,为什么微指令格式可以化简,而实验台数据通路的控制信号为什么不进行化简?
最主要的原因是前面进行的各个实验的需要,例如LDDR1和LDDR2这两个信号,在做运算器数据通路实验时,是不能设计成一个信号的。
还有一个原因是考虑到实验时易于理解,对某些可以归并的信号也没有予以归并。
四、实验设备
(1)TEC-4计算机组成原理实验系统一台
(2)直流万用表一只
(3)逻辑测试笔一支
五、实验任务
(1)按实验要求,连接实验台的开关K0—K15、按钮开关、时钟信号源和微程序控制器。
注意:
本次实验只做微程序控制器本身的实验,故微程序控制器输出的微命令信号与执行部件(数据通路)的连线暂不连接。
连线完成后应仔细检查一遍,然后才可加上电源。
(2)熟悉微指令格式的定义,按此定义将控制台指令微程序的8条微指令按十六进制编码,列于下表。
三种控制台指令的功能由SWC,SWB,SWA三个二进制开关的状态来指定(KRD=001B,KWE=010B,PR=000B)。
微指令地址
微指令编码
微指令地址
微指令编码
00H
0005C00207
3CH
0405C8003D
07H
0005412005
17H
000544003F
27H
040544003D
3FH
0409C0003E
3DH
000140003C
3EH
0005C8003F
单拍(DP)方式执行控制台微程序,读出上述八条微指令,用P字段和微地址指示灯跟踪微指令执行情况。
并与上表数据对照。
(3)用P3和SWC、SWB、SWA的状态组合,观察验证三种控制台指令KRD、KWE、PR微地址转移逻辑功能的实现。
(4)熟悉05H、10H两条微指令的功能和P2测试的状态条件(IR4-IR7),用二进制开关设置IR7-IR4的不同状态,观察SUB、LDA、STA、JUMP机器指令微地址转移逻辑功能的实现。
(用逻辑笔测试有关逻辑电路的电平,分别做出测试记录。
)
(5)设置IR7-IR4的不同组合,用单拍方式执行SUB、LDA、STA、JUMP机器指令微程序,用微地址和P字段指示灯跟踪微程序转移和执行情况。
用逻辑笔测试小插座上输出的微命令信号,记录SUB、LDA、STA、JUMP四条机器指令的微命令信号。
六、实验步骤
(1)接线
跳线开关J1用短路子短接。
控制器的输入C接K0,IR4接K1,IR5接K2,IR6接K3,IR7接K4,TJI接K5,SKIP接GND。
合上电源。
按CLR#按钮,便实验系统处于初始状态。
(2)用P3和SWC、SWB、SWA的状态组合,观察验证三种控制台指令KWE、KRD、PR微地址转移逻辑功能的实现。
将时序电路的输入TJI与控制存储器的输出TJ连接,置DP=l,DB=0,DZ=0。
选择SWC=0、SWB=0、SWA=l,按QD按钮,验证KRD的微地址转移功能;选择SWC=0、SWB=l、SWA=0,按QD按钮,验证KWE的微地址转移功能;选择SWC=0、SWB=0、SWA=0,按QD按钮,验证PR的微地址转移功能。
这里不再详述。
(3)熟悉地址05H、10H两条微指令的功能和P2测试的状态条件(IR4-IR7),用二进制开关设置IR7-IR4的不同状态,观察SUB、LDA、STA、JUMP机器指令微地址转移逻辑功能的实现。
1.05H微指令的功能是根据程序计数器PC从存储器取指令,送往指令寄存器IR,同时进行PC+1的操作。
05H微指令的下一微指令地址是10H。
不过,10H只是一个表面的下一微地址,由于该微指令中P2=1,因此实际的微指令地址的低4位要根据IR7-IR4确定,实际微地址为10H+IR7IR6IR5IR4。
2.置DP=1,DZ=0,DB=0,使实验系统处于单拍状态。
选择SWC=0、SWB=0、SWA=0,按CLR#按钮,使实验系统处于初始状态,微地址是00H。
令K4(IR7)=0,K3(IR6)=0,K2(IR5)=0,K1(IR4)=0,相当于ADD指令的操作码。
按一次QD按钮,微地址变为07H。
按一次QD按钮,微地址变为05H。
按一次QD按钮,微地址变为10H。
按一次QD按钮,微地址变为3BH。
按一次QD按钮,微地址变为34H。
按一次QD按钮,微地址变为0FH。
3.置DP=1,DZ=0,DB=0,使实验系统处于单拍状态。
选择SWC=0、SWB=0、SWA=0,按CLR#按钮,使实验系统处于初始状态,微地址是00H。
令K4(IR7)=0,K3(IR6)=0,K2(IR5)=0,K1(IR4)=1,相当于SUB指令的操作码。
按一次QD按钮,微地址变为07H。
按一次QD按钮,微地址变为05H。
按一次QD按钮,微地址变为11H。
按一次QD按钮,微地址变为3AH。
按一次QD按钮,微地址变为34H。
按一次QD按钮,微地址变为0FH。
4.置DP=l,DZ=0,DB=0,使实验系统处于单拍状态。
选择SWC=0、SWB=0、SWA=0,按CLR#按钮,使实验系统处于初始状态,微地址是00H。
令K4(IR7)=0,K3(IR6)=l,K2(IR5)=0,K1(IR4)=0,相当于STA指令的操作码。
按一次QD按钮,微地址变为07H。
按一次QD按钮,微地址变为05H。
按一次QD按钮,微地址变为14H。
按一次QD按钮,微地址变为35H。
按一次QD按钮,微地址变为0FH。
5.置DP=l,DZ=0,DB=0,使实验系统处于单拍状态。
选择SWC=0、SWB=0、SWA=0,按CLR#按钮,使实验系统处于初始状态,微地址是00H。
令K4(IR7)=0,K3(IR6)=1,K2(IR5)=0,K1(IR4)=1,相当于LDA指令的操作码。
按一次QD按钮,微地址变为07H。
按一次QD按钮,微地址变为05H。
按一次QD按钮,微地址变为15H。
按一次QD按钮,微地址变为36H。
按一次QD按钮,微地址变为34H。
按一次QD按钮,微地址变为0FH。
6.置DP=l,DZ=0,DB=0,使实验系统处于单拍状态。
选择SWC=0、SWB=0、SWA=0,按CLR#按钮,使实验系统处于初始状态,微地址是00H。
令K4(IR7)=l,K3(IR6)=0,K2(IR5)=0,K1(IR4)=0,相当于JMP指令的操作码。
按一次QD按钮,微地址变为07H。
按一次QD按钮,微地址变为05H。
按一次QD按钮,微地址变为18H。
按一次QD按钮,微地址变为0FH。
附取机器指令周期及ADD指令执行周期微程序代码
当
前
微
地
址
T
J
S2
S1
S0
M
1
L
D
D
R
1
W
R
D
L
R
W
C
E
L
#
A
L
U
︱
BUS
RS
︱
BUS
#
S
W
︱
BUS
#
IAR
︱
BUS
#
L
D
E
R
M
3
AR1
︱
INC
L
D
A
R
1
L
D
I
A
R
M
4
P
C
︱
INC
PC
︱
ADD
L
D
P
C
L
D
I
R
I
N
T
C
I
N
T
S
P3P2
P1P0
A5A4
A3A2
A1A0
00
0
000
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1000
000111
07
0
000
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0000
000101
05
0
000
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0100
010000
10
0
000
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0000
111011
3B
0
010
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0000
110100
34
0
000
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0000
001111
0F
0
000
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0010
000101
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 微程序 控制器 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)