计算机组成原理课程设计
--------- 微程序控制及CPU指令执行
姓 名:谢育武
学 号:20101003789 指导老师:刘超
班 号:192103--27
1
第五节 微程序控制器组成实验
一、实验目的
(1)掌握时序产生器的组成原理。
(2)掌握微程序控制器的组成原理。 (3)掌握微指令格式的化简和归并。
二、实验电路
1.时序发生器
TIMER1GAL22V101GND2晶振43VCCMF1CLR#2QD3DP4DZ5TJI6P17INTS8INTC9DB1011GND12CLKININININININININININGNDVCCIOIOIOIOIOIOIOIOIOIOIN242322212019181716151413VCCCLK1INTECLK11INTR2INTE34CLR#5SKIP67891011GND12TIMER2GAL22V10CLKININININININININININGNDVCCIOIOIOIOIOIOIOIOIOIOIN1242322212019181716151413VCCINTQW4W3W2W1GNDT4T3T2T1W4图9 时序信号发生器图
TEC—4计算机组成原理实验系统的时序电路如图9所示。电路采用2片GAL22V10(U6、U7),可产生两级等间隔时序信号T1-T4和W1-W4,其中一个W由一轮T1-T4循环组成,它相当于一个微指令周期或硬布线控制器的一拍,而一轮W1—W4循环可供硬布线控制器执行一条机器指令。
本次实验不涉及硬布线控制器,因此时序发生器中的相关内容也可根据需要放到硬布线控制器实验中进行。
微程序控制器只使用时序信号T1-T4,产生T信号的功能集成在GAL22V10芯片TIMER1(U6)中,另外它还产生节拍信号W1、W2、W3、W4的控制时钟CLK1。该芯片的逻辑功能用ABEL语言实现,其源程序如下: MODULE TIMER1
TITLE 'CLOCK GGENERATOR T1,T2,T3,T4' \
\
MF,CLR,QD,DP,DZ,TJ,P1,INTS,INTC,DB PIN 1..10; W4 PIN 13;
\
T1,T2,T3,T4,QD1,QD2,ACT,INTE,QDR PIN 14..22; CLK1 PIN 23;
T1,T2,T3,T4,QD1,QD2,INTE,QDR ISTYPE 'REG'; ACT,CLK1 ISTYPE 'COM'; CLK = .C.;
S =[T1,T2,T3,T4,QD1,QD2,INTE,QDR];
EQUATIONS
QD1 := QD; QD2 := QD1;
QDR := CLR & QD # CLR & QDR; ACT = QD1 & !QD2;
T1 := CLR & T4 & ACT # CLR & T4 & !(DP # TJ # DZ & P1 # DB & W4) & QDR; T2 := CLR & T1; T3 := CLR & T2;
T4 := !CLR # T3 # T4 & !ACT & (DP # TJ # DZ & P1 # DB & W4) # !QDR; INTE := CLR & INTS # CLR & INTE & !INTC; CLK1 = T1 # !CLR & MF; S.CLK = MF; END
MFQDQD1QD2ACTQDR
硬布线控制器只使用时序信号W1-W4,产生W信号的功能集成在GAL22V10芯片TIMER2(U7)中,该芯片的逻辑功能用ABEL语言实现,其源程序如下: MODULE TIMER2
TITLE 'CLOCK GGENERATOR W1 W2 W3 W4' \
\
CLK1,INTR,IE PIN 1..3;
CLR,SKIP PIN 5..6;
\
W1,W2,W3,W4,INTR1 PIN 14..18 ISTYPE 'REG'; INTQ PIN 20 ISTYPE 'COM'; CLK = .C.;
EQUATIONS
W1 := CLR & W4 ;
W2 := CLR & W1 & !SKIP; W3 := CLR & W2 & !SKIP;
W4 := !CLR # W3 # SKIP & W1 # SKIP & W2 ; INTR1 := INTR; INTQ = IE & INTR1;
[W1,W2,W3,W4,INTR1].CLK = CLK1; END
TIMER1和TIMER2中还集成了中断逻辑,中断逻辑的介绍见第八节。TIMER1的输入信号中,MF接实验台上晶体振荡器的输出,频率为1MHz。T1至T4的脉冲宽度为100ns。CLR(注意,实际上是控制台上的CLR#信号,因为ABEL语言的书写关系改为CLR,仍为低有效信号)为复位信号,低有效。实验台处于任何状态下令CLR# = 0,都会使时序发生器和微程序控制器复位(回到初始状态),CLR# =1时,则可以正常运行。复位后时序发生器停在T4、W4状态,微程序地址为000000B。建议每次实验仪加电后,先用CLR#复位一次。控制台上有一个CLR#按钮,按一次,产生一个CLR#负脉冲,实验台印制板上已连好控制台CLR#到时序电路CLR的连线。
TJ(停机)是控制器的输出信号之一。连续运行时,如果控制信号TJ=1,会使机器停机,停止发送时序脉冲T1—T4、W1—W4,时序停在T4。在实验台上为了将时序信号发生器的输入信号TJ和控制存储器产生的TJ信号区分开来,以便于连线操作,在实验台上时序信号发生器的输入信号TJ命名为TJI,而控制存储器产生的信号TJ仍命名为TJ。QD(启动)是来自启动按钮QD的脉冲信号,在TIMER1中,对QD用MF进行了同步,产生QD1和QD2。ACT表示QD1上升沿,表达式是QD1 & !QD2,脉冲宽度为1000ns 。QDR是运行标志,QD信号使其为1,CLR信号将其置0。DP(单拍)是来自控制台的DP开关信号,当DP =1时,机器处于单拍运行状态,按一次启动按钮QD,只发送一条微指令周期的时序信号就停机。利用单拍方式,每次只执行一条微指令,因而可以观察微指令代码和当前微指令的执行结果。DZ(单指)信号是针对微程序控制器的,接控制台开关DZ和P1信号配合使用。P1是微指令字判断字段中的一个条件信号,从微程序控制器输出。P1信号在微程序中每条机器指令执行结束时为1,用于检测有无中断请求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 = 1时,控制台产生的中断请求脉冲INTR才能起作用,即产生向控制器输出的中断中断信号INTQ,INTQ = INTE & INTR1。
2.数据通路
微程序控制器是根据数据通路和指令系统来设计的。这里采用的数据通路是在综合前面各实验模块的基础上,又增加程序计数器PC(U18)、地址加法器ALU2(U17)、地址缓冲寄存器R4(U25、U26)和中断地址寄存器IAR(U19),详见第二节的图4。PC和ALU2各采用一片GAL22V10,两者配合使用,可完成程序地址的存储、增1和加偏移量的功能。R4由两片74HC298组成,带二选一输入端。IAR是一片74HC374,用于中断时保存断点地址。有关数据通路总体的详细说明,请参看第一节。
3.微指令格式与微程序控制器电路
TJS2S1S0M1LDDR1WRDLRWCEL#ALU_BUSRS_BUS#SW_BUS#IAR_BUS#LDERM3AR1_INCLDAR1LDIARM4PC_INCPC_ADDLDPCLDIRINTCINTS35343332313029282726252423222120191817161514131211判断条件图10 微指令格式
根据给定的12条机器指令功能和数据通路总体图的控制信号,采用的微指令格式见图10。微指令字长共35位。其中顺序控制部分10位:后继微地址6位,判别字段4位,操作控制字段25位,各位进行直接控制。微指令格式中,信号名带有后缀“#”的信号为低有效信号,不带有后缀“#”的信号为高有效信号。
uA5uA4uA3uA2uA1uA0后继微地址P3P2P1P0