计算机组成原理实验讲义(7)

2018-12-22 23:31

实验八 常规型微程序控制器组成实验

一、实验目的

1.掌握时序产生器的组成原理。 2.掌握微程序控制器的组成原理。 3.掌握微指令格式的化简和归并。 二、实验电路

1.时序发生器

TEC-4计算机组成原理实验系统的时序电路如图9所示。电路采用2片GAL22V10(U6,U7),可产生两级等间隔时序信号T1-T4和W1-W4,其中一个W由一轮T1-T4循环组成,它相当于一个微指令周期或硬联线控制器的一拍,而一轮W1-W4循环可供硬联线控制器执行一条机器指令。

图9 时序信号发生器

本次实验不涉及硬联线控制器,因此时序产生器中的相关内容也可根据需要放到硬联线控制器实验中进行。

微程序控制器只使用时序信号T1-T4,产生T信号的功能集成在GAL22V10芯片TIMER1(U6)中,另外它还产生节拍信号W1,W2,W3,W4的控制时钟CLK1。该芯片的逻辑功能用ABEL语言实现,其源程序如下:

MODULE TIMER1

TITLE ‘CLOCK GENERATIOR T1,T2,T3,T4’ “2000,9

“INPUT

MF,CLR,QD,DP,DZ,TJ,P1,INTC,INTS,DB PIN 1..10; W4 PIN 13; “OUTPUT

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;

ACT = QD1 &! QD2;

QDR:=CLR &QD # CLR &QDR;

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

硬联线控制器只使用时序信号W1-W4,产生W信号的功能集成在GAL22V10芯片TIMER2(U7)中,该芯片的逻辑功能用ABEL语言实现,其源程序如下:

MODULE TIMER2

TITLE ‘CLOCK GENERATIOR W1,W2,W3,W4’ “2000,9

“INPUT

CLK1.INTR,IE,PIN 1..3; CLR,SKIP PIN 5..6; “OUTPUT

W1,W2,W3,W4INTR1 PIN 14..18 ISTYPE ’REG’; INTQ PIN 20 ISTYPE ‘COM’;

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的脉冲宽度为1000ns。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命名为TJ1,而控制存储器产生的信号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节拍信号的。中断允许标志由控制存储器的输出信号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.微指令格式与微程序控制器电路

根据给定的12条机器指令功能和数据通路总体图的控制信号,采用的微指令格式见图10。微指令字长共35位。其中顺序控制部分10位,后继微地址6位,判别字段4位,操作控制字段25位,各位进行直接控制。微指令格式中,信号名带有后缀“#”的信号为低有效信号,不带有后缀“#”的信号为高有效信号。

图10 微指令格式

对应微指令格式,微程序控制器的组成见图11。控制存储器采用5片EEPROM28C64(U8,U9,U10,U11,U12)。微地址寄存器6位,用一片6D触发器74HC174(U1)组成,带有清零端。两级与门、或门构成微地址转移逻辑,用于产生下一微指令的地址。在每个T1上升沿时刻,新的微指令地址会打入微地址寄存器中,控制存储器随即输出相应的微命令代码。微地址转移逻辑生成下一地址,等下一个T1上升沿时打入微地址寄存器。跳转开关JUMP(J1)是一组6个跳线开关。当用短路子将它们连通时,微地址寄存器μAR从本实验系统提供的微程序地址译码电路得到新的微程序地址μD0-μD5。这样用户能够使用自己设计的微程序地址译码电路。5片28C64的地址A6(引脚4)直接与控制台开关SWC连接,当SWC=1时,微地址大于或者等于40H,当SWC=0时,微地址小于40H。SWC主要用于实现读寄存器堆的功能。

微地址转移逻辑的多个输入信号中,INTQ是中断请求,本实验中可以不理会。SWA, SWB是控制台的两个二进制开关信号,实验台上线已接好。C是进位信号,IR7-IR4

是机器指令代码,由于本次实验不连接数据通路,这些信号都接到二进制开关K0-K15上。

三、机器指令与微程序

为教学中简单明了,本实验仪使用12条机器指令,均为单字长(8位)指令。指令功能及格式如表5所示。指令的高4位提供给微程序控制器,低4位提供给数据通路。

应当指出,用以上12条指令来编写实际程序是不够的。好在我们的目的不是程序设计,而主要是为了教学目的,通过CPU执行一些最简单的程序来掌握微程序控制器的工作原理。

上述12条指令的微程序流程设计如图12所示。每条微指令可按前述的微指令格式转换成二进制代码,然后写入5个28C64中。

为了向RAM和寄存储器堆中装入程序和数据,检查写入是否正确,并能启动程序执行,还设计了以下五个控制台操作微程序:

存储器写操作(KWE):按下复位按钮CLR#后,微地址寄存器状态为全零。此时置SWC=0,SWB=1,SWA=0,按启动按钮后微指令地址转入27H,从而可对RAM连续进行手动写入。

表5 指令功能与格式

名 称 加法 减法 乘法 逻辑与 存数 取数 无条件转移 条件转移 停机 中断返回 开中断 关中断 助记符 ADD Rd,Rs SUB Rd,Rs MUL Rd,Rs AND Rd,Rs STA Rd,[Rs] LDA Rd,[Rs] JMP [Rs] JC D STP IRET INTS INTC 功 能 Rd+Rs→Rd Rd-Rs→Rd Rd×Rs→Rd Rd&Rs→Rd Rd→[Rs] [Rs]→Rd [Rs]→PC 若C=1则 PC+D→PC 暂停运行 返回断点 允许中断 禁止中断 指令格式 R7 0 0 0 0 0 0 1 1 0 1 1 1 R6 0 0 0 0 1 1 0 0 1 0 0 1 R5 0 0 1 1 0 0 0 0 1 1 1 0 R4 0 1 0 1 0 1 0 1 0 0 1 0 R3 RS1 RS1 RS1 RS1 RS1 RS1 RS1 D3 × × × × R2 RS0 RS0 RS0 RS0 RS0 RS0 RS0 D2 × × × × R1 RD1 RD1 RD1 RD1 RD1 RD1 × D1 × × × × R0 RD0 RD0 RD0 RD0 RD0 RD0 × D0 × × × × 存储器读操作(KRD):按下复位按钮CLR#后,置SWC=0,SWB=0,SWA=1,按启动按钮后微指令地址转入17H,从而可对RAM连续进行读操作。

启动程序(PR):按下复位按钮CLR#后,置SWC=0,SWB=0,SWB=A,用数据开关SW7-SW0设置内存中程序的首地址,按启动按钮后微指令地址转入07H,然后转到“取指”微指令。

写寄存器操作(KLD):按下复位按钮CLR#后,置SWC=0,SWB=1,SWA=1,按启动按钮后微指令地址转入37H,从而可对寄存器堆中的寄存器连续进行写操作。

读寄存器操作(KRR):按下复位按钮CLR#后,置SWC=1,SWB=0,SWA=0,按启动按钮后微指令地址转入47H,从而可对寄存器堆中的寄存器连续进行读操作。

应当着重指出,在微指令格式的设计过程中,对数据通路所需的控制信号进行了归并和化简。细心的同学可能已经发现,微程序控制器输出的控制信号远远少于数据通路所需的控制信号。这里提供的微程序流程图是没有经过归并和化简的。仔细研究一下微程序流程图,


计算机组成原理实验讲义(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中国连接装置行业市场调查研究报告(目录)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: