33H 34H DC4024 DC4029 110 110 111 111 000 000 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0100100 PC->AR,PC=PC+1 0101001 PC->AR,PC=PC+1 4.实验步骤
(1)连接实验线路:按照图6-1实验线路,仔细检查连线无误后,接通电源。
(2)编写微代码:参见附录2的6.2微指令格式一节 (3)装入微代码
方法一(脱机手工装入):
①将微控器单元(MAIN CONTROL UNIT)右上角的编程开关置于“PROG”状态。 ②将时序电路单元(CLOCK UNIT)中的RUN/STEP开关置于“STEP”状态。 ③从手动单元 (MANUAL UNIT)中的开关“MA6~MA0”上拨入微地址MA6~MA0。
④从微代码开关MK23~MK0上拨入微代码,24位开关对应着24位显示灯(灯亮表示“1”,灯灭表示“0”)。
⑤按动START按键,启动时序,即将24位微代码写入到控存(2816)的相应单元(由微地址MA6~MA0所指定)中。
⑥重复步骤①~⑤,即可将微指令代码一条条装入控存。 方法二(联机装入):参见附录3《上位软件操作》。 (4)检验微码 方法一(手动校验):
①将编程开关置于“READ”状态。
②将时序电路单元(CLOCK UNIT)中的RUN/STEP开关置于“STEP”状态。
③从手动单元 (MANUAL UNIT)中的开关“MA6~MA0”上拨入微地址MA6~MA0。
④按动START按键,启动时序,读入微代码,观察显示灯MD23~MD0的状态(灯亮表示“1”,灯灭表示“0”)。检查读出的微代码是否与写入的相同。如果不同,则将编程开关重新置于“PROG”状态,再执行操作3,装入正确的微代码即可。
⑤重复步骤①~④,即可校验每一条微指令代码。
方法二(联机校验):参见附件中《上位软件使用说明书》的“第三章 操作流程”。 (5)执行微程序 方法一(单步运行):
①将编程开关置于“RUN”状态,将时序电路单元(CLOCK UNIT)中的RUN/STEP开关置于“STEP”状态
②操作CLR开关(在实验板的右下角),使CLR信号“1→0→1”,从而使微地址MA6~MA0
清零,即本机的微程序运行入口为0000000B(00H)。
③按动START按键,启动时序电路,每按动读出并执行一条微指令代码,然后停机。此时,实验台上的微地址显示灯MA6~MA0和微代码显示灯MD23~MD0的状态(灯亮表示“1”,灯灭表示“0”)指示所读出微指令的地址和代码。
-16-
方法二(连续运行):
①将编程开关置于“RUN”状态,将时序电路单元(CLOCK UNIT)中的RUN/STEP开关置于“RUN”状态。
②同单步运行的②。
③按动START按键,启动时序,则可以连续读出(执行)微指令代码,片刻之后,将
RUN/STEP开关置于“STEP”状态,即可停机。
(6)观测时序信号。
用联机软件的时序功能或者双踪示波器,观察方波信号T1~T4的输出。将时序电路中的开关置为“RUN”,按动START按键,从方波上可观察到T1~T4各时刻的波形,比较它们的相互关系,画出波形。
5.实验要求
(1)要求会编写简单微代码,(如加法运算A+B),在脱机方式下将代码装入微控制器,并经校验后运行输出。
(2)将表6-1中的微代码联机装入控制存储器并校验。
(3)从零地址开始执行微程序,观察并记录微地址的变化顺序,并解释其原因。 (4)观察微地址显示灯MA6~MA0和微代码显示灯MD23~MD0的最低7位MD6~MD0状态是否始终保持一致?从理论上讲,是否应该这样?分析为什么。
(5)若要强制使微程序从07H单元开始执行,请结合微程序控制器的结构和原理,说明你的方法,并实现。(提示:使用控制信号SE6~SE0来实现)。
-17-
实验7 控制器实验二(简单模型机设计与实现)
1.实验目的
(1)掌握各部件单元电路实验的基础上,进一步将其组成系统,构成一台基本模型计算机; (2)为其定义五条机器指令,编写相应的微程序和测试程序,并上机调试,掌握整机概念。
2.实验设备
YY-Z02计算机组成原理教学实验系统一台,排线若干。
3.实验原理
在部件实验过程中,各部件的控制信号是通过手动开关、人工模拟产生的,而在本次及以后的整机实验中,各部件的控制信号是在微程序的控制下,由控制器自动产生的,从而实现特定的指令功能。计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应着一段微程序。
图7-1是本实验基本模型机的原理图。各部件挂接在总线上,从主存中取出的指令保存在指令寄存器IR中,并将指令码送往指令译码器(INS UNIT),指令译码器则同时结合微控制器及其他部件有关信息进行译码,产生控制微程序流程的信号SE6~SE0,送回微控器。微控器根据SE6~SE0修改下址,产生后继微指令地址,在下一个微周期,则从后继续指令地址取出微指令。微指令的24位编码经内部译码器译码,产生各种微操作控制信号,送往全机各个部件,以控制各部件协调运转,完成微指令所规定的功能。在一段微程序执行完后,相应的该条机器指令也就执行完毕。
(1)指令系统
在本实验中,定义了五条单操作数机器指令,格式和功能如下:(在本实验中DR只为R0) ① IN DR,[PORTAR]
格式: I7 I6 I5 I4 I3 I2 I1 I0 11 0000 DR PORTAR 功能:输入设备(INPUT DEVICE)开关数据送DR,PORTAR为输入设备的端口地址。 ② ADD DR, [ADDR]
格式: I7 I6 I5 I4 I3 I2 I1 I0 11 0001 DR ADDR 功能:(DR)+[ADDR]→DR,结果影响标志;直接寻址,直接地址ADDR在指令第二字节。
-18-
③ STA [ADDR], DR
格式: I7 I6 I5 I4 I3 I2 I1 I0 11 0010 DR ADDR 功能: DR→[ADDR];直接寻址,DR的内容送主存ADDR地址单元。 ④ OUT [PORTAR],[ADDR]
-19-
格式: I7 I6 I5 I4 I3 I2 I1 I0 11 0011 ×× ADDR PORTAR 功能: [ADDR]→LED;直接寻址,主存ADDR地址单元的内容送输出设备发光管显示。PORTAR为输出设备的端口地址,由PORTAR中的Ai位线选。 ⑤ JMP ADDR
格式: I7 I6 I5 I4 I3 I2 I1 I0 11 0011 ×× ADDR 功能:ADDR→PC,微程序跳转到主存ADDR地址继续执行。 (2)控制台操作
为了向主存中手动装入程序和数据,检查写入是否正确,并能启动程序执行,设计了三段控制台操作微程序,以支持三条控制台操作指令,其定义和功能如表7-1所示,后继实验均是相似的控制台操作,不累述。
表7-1控制台操作指令 开关 KB KA 1 0 0 1 0 0 或1 1 控制台指令 读内存 写内存 启动程序 功能 拨动CLR开关“1→0→1”后,按START微动开关, 可对内存连续进行读操作。 拨动CLR开关“1→0→1”后,按START微动开关, 可对内存连续进行写操作。 拨动CLR开关“1→0→1”后,按START微动开关,则转入取指令微程序入口开始执行。 (3)微程序流程图及微码
图7-2控制台操作微程序流程图 图7-3 实验七微程序流程图
控制台操作和以上五条指令操作的微程序流程图分别如图7-2和7-3所示,微代码如表7-1。
-20-