基本模型机设计一. 设计目的1. 在掌握部件单元电路实验的基础上,进一步将其组成系统构造一台稍微复杂的模型计算机;2. 为其定义5条机器指令,并编写相应的微程序,具体上机调试掌握整机概念二. 设计内容部件实验过程中,各部件单元的控制信号是人为模拟产生的,而本次实验将能在微程序控制下自动产生各部件单元控制信号,实现特定指令的功能,这里,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。
三.概要设计为了向RAM中装入程序和数据,检查写入是否正确,并能启动程序执行,还必须设计三个控制台操作微程序.存储器读操作:拨动总清开关CLR后,控制台开关SWB,SWA 为”0 0”时,按START微动开关,可对RAM连续手动读操作.存储器写操作:拨动总清开关CLR后,控制台开关SWB SWA置为”0 1”时,按START微动开关可对RAM进行连续手动写入.启动程序:拨动总清开关CLR后,控制台开关SWB SWA置为“1 1”时,按START微动开关,既可转入到第01号“取址”微指令,启动程序运行.上述三条控制台指令用两个开关SWB SWA 的状态来设置,其定义如下表3-1读写变化根据以上要素设计数据通路框图,如图3-1:表3-2 微代码的定义表3-3 A,B,P字段内容A字段 B字段 P字段当拟定“取指令”微指令时,该微指令的判别测试字段为P1测试。
由于“取指”微指令是所有微程序都使用的公用微指令,因此P1测试结果出现多路分支。
本次课程设计用指令寄存器的前4位(I7-I4)作为测试条件,出现5路分支,占用5个固定微地址单元。
控制台操作为P4测试,它以控制台开关SWB,SWA作为测试条件,出现了3路分支,占用3个固定微地址单元。
当分支微地址单元固定后,剩下的其他地方就可以一条微指令占用控存一个微地址单元随意填写。
控制台0020WRITE(01)2030 27表3-4 二进制微代码表上图为本实验的连线图五.测试数据及运行结果正常测试数据(3组)及运行结果;输入:03 结果:04输入:02 结果:03输入:07 结果:08六.调试情况,设计技巧及体会经过这次课程设计,我体会到自己所学的东西太少了,很多都不知道。
虽然这次设计的只是一个小程序,但是这其间我还是学到了不少东西。
在这次课程设计的过程,有些很基本的知识出现记混淆的现象,通过查书及询问同学,最终明白了。
本次课程设计我们要设计一台微程序控制的模型机,以对计算机能有一个整机的概念,完成对计算机组成原理这门课程的综合应用,达到学习本书的作用。
作为一个计算机系学生这是必需掌握的,使我们对数据选择器,移位器,加法器,运算器,存储器和微程序控制器,有了比较透彻的认识。
由于计算机设计的部件较多,结构原理较复杂,对于我们这样的初设计者来说感到无从下手,所以我们在整个过程中采取由浅入深,由简单到复杂的放法,通过这次设计,使我们能清楚的了解计算机的基本组成,基本原理和设计步骤,设计思路和调试步骤,最终能清晰的建立起整机概念,为独立完成计算机设计奠定了基础。
七.参考文献计算机组成原理实验指导书西安邮电学院计算机系邢高峰牛晓晨王劲松计算机组成原理白中英科学出版社八.附录:源代码(电子版)本实验采用5条指令实现加1操作,设计机器指令如下:地址内容助记符说明?0000IN;输入开关数据→R0,采集数据0110ADD[0AH] ;R0+[0AH]→R0020A;地址0320STA[0BH] ;R0→[0BH]040B;地址0530OUT[0BH] ;[0BH]→BUS,输出显示060B;地址0740JMP[08H] ;00H—>pc0800 ;地址090A01 ;自定0B ;求和结果复杂模型机的设计一. 设计目的1. 在掌握部件单元电路实验的基础上,进一步将其组成系统构造一台复杂的模型计算机;2. 在基本指令的基础上,进行扩充指令并编写相应的微程序,具体上机调试掌握整机概念二. 设计内容设计一个必须包含IN、OUT、STA、ADD、JMP指令的复杂指令模型机,指令种类自己决定,至少包括5条。
部件实验过程中,各部件单元的控制信号是人为模拟产生的,而本次实验将能在微程序控制下自动产生各部件单元控制信号,实现特定指令的功能,这里,计算机数据通路的控制将由微程序控制器来完成,CPU 从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。
三.概要设计为了向RAM中装入程序和数据,检查写入是否正确,并能启动程序执行,还必须设计三个控制台操作微程序.存储器读操作:拨动总清开关CLR后,控制台开关SWB,SWA 为”0 0”时,按START微动开关,可对RAM连续手动读操作.存储器写操作:拨动总清开关CLR后,控制台开关SWB SWA置为”0 1”时,按START微动开关可对RAM进行连续手动写入.启动程序:拨动总清开关CLR后,控制台开关SWB SWA置为“1 1”时,按START微动开关,既可转入到第01号“取址”微指令,启动程序运行.上述三条控制台指令用两个开关SWB SWA 的状态来设置,其定义如下表3-1读写变化根据以上要素设计数据通路框图,如下图所示:微程序:$M00018108 $M0101ED82 $M0200C050 $M0300A004 $M0400E0A0 $M0500E006 $M0600A007 $M0700E0A0 $M0801ED8A $M0901ED8C $M0A00A03B $M0B018001 $M0C00203C $M0D00A00E $M0E01B60F $M0F95EA25 $M1001ED83 $M1101ED85 $M1201ED8D $M1301EDA6$M173D9A01 $M1901A22A $M1A01B22C $M1B01A232 $M1C01A233 $M1D01A236 $M1E318237 $M1F318239 $M2205DB81 $M230180E4 $M2595AAA0 $M2600A027 $M2701BC28 $M2895EA29 $M2995AA0 $M2A01B42B $M2B959B41 $M2C01A42D $M2D65AB6E $M2E0D9A01 $M2F01AA30 $M300D8171 $M31959B41 $M32019A01 $M3301B435 $M3405DB81 $M35B99B41 $M360D9A01 $M3919883A $M3A019801 $M3B070A08 $M3C068A09四.详细设计1. 实验的连线图2.指令系统本模型机共有16条基本指令,其中算术逻辑指令7条,访存指令和程序控制指令4条,输入输出指令2条,其它指令1条,表列出了各条指输入值:03 和 01输出值:02 00 03 00 03 FF 00六.调试情况,设计技巧及体会1.调试步骤(1)按图连接实验线路(2)写入程序1)手动写入A.按如下步骤讲微代码写入微控器中的存储器2816中:①将编程开关置为PROM(编程)状态。
②将实验板上“STATE UNIT”中的“STEP”置为“STEP”,“STOP”置为“RUN”状态。
③用二进制模拟开关置微地址MA5—MA0。
④在MK24-MK1开关上置微代码,24位开关对应24位显示灯,开关量置为“0”时灯亮,开关量为“1”时灯灭。
⑤启动时序电路(按动启动按钮“START”),即将微代码写入到2816的相应地址对应的单元中。
⑥重复①-⑤步骤,将所有的微代码写入2816中。
B.按如下步骤校验微代码①将编程开关置为READ(校验)状态。
②将实验板上“STATE UNIT”中的“STEP”置为“STEP”,“STOP”置为“RUN”状态。
③用二进制模拟开关置微地址MA5—MA0。
④启动时序电路(按动启动按钮“START”),读出微代码。
观察显示灯MD24-MD1的状态(灯亮为“0”,灭为“1”),检查读出的微代码是否与写入的相同。
如果不同,则将开关置于PROM编程状态,重新执行③)即可。
C.按如下步骤使用KWE微程序进行机器指令程序的装入。
①使编程开关处于“RUN”,STEP为“STEP”状态,STOP为“RUN”状态。
②拨动总清开关CLR(0→1→0),微地址寄存器清零,程序计数器清零,然后使控制台SWB、SWA开关置为“0 1”,并按动一次START,微地址显示灯显示“010001”。
③再按动一次START,微地址灯显示“010100”,此时数据开关的内容置为要写入的机器指令。
再按动两次START键后,即完成该条指令的写入,并且微地址显示灯显示“010001”。
(注:由KWE的流程图可知,该流程每执行一次,将向PC寄存器所指向的存储器单元中写入一个字节的数据,并且将PC加1。
)④如果还需要向存储器中输入数据,则需重复重新执行③。
D.按如下步骤使用KRD微程序进行机器指令程序的检查。
①使编程开关处于“RUN”,STEP为“STEP”状态,STOP为“RUN”状态。
②拨动总清开关CLR(0→1→0),微地址寄存器清零,程序计数器清零,然后使控制台SWB、SWA开关置为“0 0”,并按动一次启动开关START,微地址显示灯显示“010000”。
③再按动一次START,微地址灯显示“010010”,第三次按动STRAT,微地址灯显示为“010111”,再按动STRAT后此时输出单元的数码管显示为PC寄存器所指单元的内容。
(注:由KRD的流程图可知,该流程每执行一次,将显示PC寄存器所指向的存储器单元中一个字节的数据,并且将PC加1。
)④如果还需要检查存储器中其他单元的数据,则需重复重新执行③。
2)联机读/写程序将微代码写入文本文件中,通过联机软件载入实验系统。
(3)运行程序1)本机运行A.单步运行程序①使编程开关处于“RUN”状态,STEP为“STEP”状态,STOP为“RUN”状态。
②拨动总清开关CLR(0→1→0),微地址寄存器清零,程序计数器清零。
③单步运行一条微指令,每按动一次START键,即单步运行一条微指令。
对照微程序流程图,观察微地址显示灯是否与流程一致。
④当运行结束后,可检查存数单元(0BH)中的结果是否和理论计算结果一致。
B.连续运行程序①使编程开关处于“RUN”状态,STEP为“EXEC”状态,STOP为“RUN”状态。
②拨动总清开关CLR(0→1→0),微地址寄存器清零,程序计数器清零。
③按动START键,系统将连续运行程序,直至将STOP拨至“STOP”状态。