基于微程序控制器(主控存分开)的简单计算机设计与实现.doc
《基于微程序控制器(主控存分开)的简单计算机设计与实现.doc》由会员分享,可在线阅读,更多相关《基于微程序控制器(主控存分开)的简单计算机设计与实现.doc(30页珍藏版)》请在三一办公上搜索。
1、计算机组成原理课程设计说明书题目:基于微程序控制器(主控存分开)的简单计算机设计与实现姓名:靳淑蕉学号:U200915337班级:信息安全0903同组者:潘莹实验台号:49完成日期:2012年1月19日指导老师:王晓兰、周建国、秦磊华华中科技大学计算机科学与技术学院一实验题目1二实验目的1三实验要求1四实验流程2五设计方案21.芯片选择22.设计原理图42.1数据通路42.2增加回存功能52.3增加机器指令部分62.4增加微指令部分83.设计微程序控点104.微指令设计124.1取指公操作134.2取数微指令144.3加法微指令144.4回存微指令144.5停机微指令155.指令周期流程图15
2、5.1取指公操作:155.2取数微指令155.3加法运算指令165.4乘2微指令175.5回存微指令186.时序设计187.时序图208.设计接线图21六检查过程23七布线调试时遇到的问题及解决办法23八实现心得体会26九参考文献27一 实验题目基于微程序控制方式的主控存分开的简单计算机系统的设计与实现二 实验目的1. 加深对冯诺依曼体系结构计算机组成及其各部分功能的理解,进一步建立整机的概念。2. 加深对计算机数据通路的理解,加深对计算机指令系统、微指令的认识,并通过时序控制,完整地设计一个简单的计算机系统。3. 锻炼学生初步的计算机系统分析和设计能力。4. 锻炼学生分析、定位和排除故障的能
3、力。三 实验要求1. 利用各单元实验和课堂上所学知识,选择适当的芯片,设计简单的计算机系统。2. 在完成数据通路设计并验证数据通路功能的基础上增加指令和微指令控制的功能。3. 以自己所设计的计算机系统为硬件环境,设计出完成指定功能的各指令周期流程图,并设计出相应的微命令。 4. 以手动方式产生各指令执行过程中所需要的微命令,控制指令的执行。5. 设计控存,并将各指令的微程序存放在CM中,经过适当的时序控制,通过微程序自动控制指令的执行。四 实验流程在课程设计开始前,我们检查了各个芯片是否能正常工作。按照实验指导书上面所给定的各个芯片的功能进行测试,在确定所用的芯片都是好的之后再开始进行接下来的
4、工作。在整个课程设计的过程中,我们依照的是课程设计指导书上面的三步走方法:第一步:打通数据通路,可向存储器6116中存数,向寄存器中打入,用手动实现算术或逻辑运算。第二步:由PC寻址加载机器指令,完成指定算术或逻辑运算;并将结果存入存储器中。第三步:由机器指令的操作码部分加载微指令,由机器指令的地址码部分加载操作数,同时,由它加载的各个微信号,进行运算完成一条机器指令的执行。五 设计方案1. 芯片选择在这次的课程设计中,我们选择的芯片类型及数量如下:74LS2442片74LS3735片1812片74LS1611片74LS1571片74LS3951片61161片28162片关于各个芯片的选择理由
5、如下:74LS244芯片:该芯片具有“选通”和“高阻”两种状态,适合用来作为数据输入或是流通时的闸门,所以我们采用了两片244。一片用来向6116中存入机器指令,另外一片用来控制向6116中回存运算的结果。73LS373芯片:该芯片又称八D锁存器,从它的功能表中也可以看出它具有“选通”和“锁存在已建立的数据电平”两种状态,所以该芯片适合用来作为寄存器。因此我们采用了5片373芯片,其中一片寄存181的运算结果并输出显示,一片作为数据累加器AC,一片作为IR寄存机器指令,剩下两片作为IR存放从控存中读出的微指令。181芯片:181芯片是进行算术或逻辑运算必不可少的芯片,而运算的数据是存放在611
6、6中的,每个单元的数据有8位,因此我们需要两片181并联实现8位数据的运算。74LS161芯片:该芯片又称同步四位计数器,从它的名字就可以看出它具有计数的功能,同时我们在实现中还利用到了它的清零功能。161芯片是用来作为PC使用的,通过它的4位输出一共可以选择到主存6116中的16个地址单元。74LS157芯片:该芯片又称2选1数据选择器,一共有两个输入数据流,每一个数据流是4位的,通过使能端S可以选通其中任意一个数据流,因此该芯片非常适合用来作为主存6116的地址选择控制。当需要机器指令的时候,157选择PC送来的地址;当需要数据的时候157选择IR的低四位送来的数据地址。74LS395芯片
7、:该芯片有两个功能,“清零”和“置数”,我们选择它作为PC。由于在每执行完一条机器指令之后都要再执行取指公操作,因此我们选择将取值公操作存放在控存的0号单元。取指阶段将395清零,执行取指公操作;执行阶段395置数,执行具体功能。6116芯片:该芯片的类型是RAM,我们选择它作为主存。由于主存中需要根据不同的表达式反复写入各种机器指令,而6116的数据存入要相对2816简单一点,因此主存采用的是6116芯片。2816芯片:该芯片的类型是ROM,因此使得它具有断电之后还能保存数据的优势。选择两片2816作为控存,存放微指令。因为微指令只需要在设计好了之后,一次性的打入,以后都不需要再修改了,所以
8、2816无疑是最好的选择。此外还有若干逻辑门 2. 设计原理图在原理图的设计过程中,我们是分步走的。首先是从最基本的数据通路开始,然后再一点点的像垒积木一样的往上添加各种芯片逐步实现各个功能。现在将该过程做一个详细的介绍如下:2.1 数据通路数据通路部分我们是按照组成原理实验指导书实验五的参考电路一的方案去做的,只是在上面做了两点改动:1.将两片395芯片换成了一片373芯片。因为395需要脉冲触发,较373来说略显麻烦,因此进行了这样的替换。2.将6116输入到181的数据由A输入端改成了B输入端。因为在做减法时是A-B,为了能正确进行连续的减法运算就必须将AC存放的数据从A端输入,而将从主
9、存中取出来的数据从B端输入。最后设计的数据通路电路图如下:图1按照该电路连接之后,能够手动实现各种基本的数据运算。具体的步骤为:将数据事先存放到存储器的某些单元中,再通过手动选择地址选中数据,手动调节运算指令,手动操作各个芯片的使能端,从而能够进行连续的算术或逻辑运算,并将结果显示。2.2 增加回存功能在按照2.1中设计的电路连接之后,我们发现所设计的数据通路没有回存功能,因此我们需要在原来的电路上进行一些改进。我们认为回存和开始的时候向主存6116中打入数据其实是同样的原理,不过就是要能够控制回存的时机,也即需要回存的时候才将运算结果回存到主存的某一个单元,其余时候不会影响到主存中存放的数据
10、。因此我们仍然采用244芯片,以A寄存器的结果为输入,输出连到6116的输入/输出端,然后通过手动选择244的使能端来控制回存的时机。这样设计的电路如下:图22.3 增加机器指令部分在完成了数据通路,并多次测试确认无误的基础上,我们开始在上面实现机器指令。此时的机器指令的意思就是能够通过PC选址加载8位的机器指令到指令寄存器IR中。这8位机器指令得到高4位是操作码,由这4位操作码直接连到181运算器的S3-S0端,去控制各种运算类型;8位机器指令的低4位则是地址码,会回到主存6116中去选择运算需要的数据。按照这样的需求,我们增加了一片373作为指令寄存器IR,增加了一片157用于在4位地址码
11、和PC输出的地址中做二路选择。这样设计出来的电路如下:图32.4 增加微指令部分从这里开始,就到了整个实验的关键部分了。所谓增加微指令也就是通过一系列的设计,把之前的那些需要我们手动控制的各个芯片的使能端全部都通过微指令的0、1状态控制起来。之前2.3中实现的只是控制到了181的S3-S0这4个使能端,现在各个芯片,比如181的M端、Cn非端、各个373的使能G端都要用微指令来控制。我们统计了一下,这个需要控制的点超过了8个,因此我们需要两片373作为微指令寄存器IR,这样就可以设计16位的微指令(实际上用不到16位)。微指令是存放在控存中的,对于控存我们选用的是2816。之所以选择2816主
12、要是看中了它是ROM类型的存储器,能够在断电之后依然保存所存储的数据,而恰好微指令也只需要在设计完毕之后一次性的存入,以后一般这样就可以免除了我们多次写控存的工作。PC我们选用的是395芯片,主要是因为该芯片有一个清零功能。我们在每个机器指令执行前我们需要先执行取指公操作,然后再执行具体功能的微指令。这样395的清零功能就为我们提供了很大的便利,我们只需要将取指微指令放在控存的0号单元,然后在每个指令周期的开头将PC清零,就可以进行取指操作了。综上所述,我们在机器指令的基础上添加了一片395.两片2816和两片373,最后设计出的电路如下所示:图43. 设计微程序控点在设计微指令之前,我们先分
13、析整个电路中的各个芯片的控点,其中有些是需要控制的;有些是不需要变动的,始终接到一个电位就行了。首先是不需要控制的控点:输入244芯片:OEa非和0Eb非控点并接,然后接到一个开关上,只在写机器指令的时候选0,写完后一直为1。这个由手动控制,不需要微指令控制。主存6116芯片:CE非始终接0,OE非始终接0(我们选用WE非为0,OE非为0的那个写功能)。多余的地址线接到一起,始终接0(或者接1也可以)。PC 161芯片:MR非端接开关,只在开机的时候手动置0,清零之后再置1。但是后来发现其实可以将start非接到MR非端实现自动清零,因为start非端也是只在开机的时候为0,其余时候一直为1。
14、157芯片:使能端E非始终为0。DR373、AC373、IR373、IR373:输出控制始终接0。控存2816芯片:CE非始终接0,WE非始终接1,OE非始终接0。(因为控存始终是读状态)。多余的地址线接到一起,始终接0(或者接1也可以)。PC 395芯片:PE始终接1,OE非始终接0。接下来是需要控制的控点:6116芯片:WE非157芯片:SPC 161芯片:CPPC 395芯片:MR非、CP非IR373、IR373、DR373、AC373:使能G回存244芯片:OEa非、OEb非并接在一起控制根据那些需要控制的控点,我们设计出来的微指令的每一个控点的状态及其所表示的意义如下表所示:微指令控
15、点意义表 取值控点01C14运行停机C13清零置数C12-C9181的S3-S0控制端C8181有进位181无进位C7算术运算逻辑运算C6IR不变IR置数C5DR不变DR置数C4AC不变AC置数C3回存244无效回存244有效C2主存写主存读C1157地址选PC157地址选地址码C0PC不变PC加1现在对这15个微指令控点做一一的解释如下:C14:该位直接连到时序部分的STOP端口,平时该位一直为0,只有当最后需要停机时才将该位置为1。通过该位可以实现自动停机。C13:该位会连到作为PC的395的清零端MR非和CP非,配合时序来控制PC的置数和清零。通过将该位置0,来使得PC清零,通过将该位置
16、1,来使得PC置数。通过该位,可以让PC在恰当的时候置数取到相应的微指令,在恰当的时候又可以清零执行取指公操作。C12-C9:这四个控制位会直接连到181的S3-S0四个控制端口,通过这四个控制位的0/1状态来进行不同的运算。C8:该位会直接连到低位181的低位进位端,然后低位181的向高位的进位端再连到高位181的低位进位端。通过选择该位为1表示没有进位,而通过选择该位为0表示有进位。该位的设置主要是为了实现减法运算,因为181只有A-B-1的运算,为了正确的实现减法,就用一位进位来抵消。该位平时一直置1,只有减法运算的时候才置为0。C7:该位直接连到181芯片的M端,这样可以控制进行的是算
17、术运算还是逻辑运算。C6:该位是控制作为IR的373芯片的选通和保持状态的,当该位为1时IR选通,存放在主存中的机器指令会送到IR中去;当该位为0时IR会保持当前的输出不变,也就相当于此事的输入端无效。之所以要设置该位是因为从主存中读到的数既有机器指令又有运算数据,因此从主存输出的数据不是每一次都可以读到IR中去的,因此需要控制IR何时有效。C5:该位是控制作为DR的373芯片的,DR是存放181的运算结果的,当该位为0时,DR处于不选通状态,而只有当该位置1时DR才选通,181的运算结果才能存放到DR中去。C4:该位是控制作为AC的373芯片的,AC是累加器,用来存放上一次运算为止的运算结果
18、,通过AC实现连续运算的功能。C3:该位控制作为回存的244芯片。回存功能只有在最后运算全部完毕的时候,才将最后的运算结果送回到主存中去,而其余时候是不会向主存输入数据的。因此通过选择该位为0,则将244选通,此时可以回存数据;通过选择该位为1,则将244置为高阻状态,即没有输出。C2:该位直接连到主存6116芯片的WE非端。当该位为1时主存读数据,该位为0时主存写入数据。该位的设置主要是为了配合完成回存功能,一般情况下主存都是处于读数据状态,只有当回存时主存才会写入数据。C1:该位直接连到157芯片的输入选择S端,该位为1时选择的是I1端口的输入有效,也即IR中存放的机器指令的低4位地址码有
19、效;该位为0时选择的是I0端口的输入有效,也即PC的地址有效。之所以要设置该位是因为,在主存中存放的有两种数据,一种是机器指令,它的地址是根据PC来选择的;另外一种是进行运算所需的数据,它的地址是根据机器指令的地址码部分来选择的。通过该位即可控制主存中各种数据的正确取得。4. 微指令设计根据上面设计出来的微指令的控点,我们开始设计具体的微指令。先将每一条微指令列举如下:微指令C15C14C13C12C11C10C9C8C7C6C5C4C3C2C1C0空停机PCS3S2S1S0Cn非MIRDRAC回存主存157PC取指0010000101001101取数0001010110111110加0001
20、001100111110与非0000100110111110减0000110000111110乘20001100100111110异或0000110110111110或非0000001110111110非0000000110111110与0001011110111110回存0000000100110010停机0100000100001100现在对上述微指令的设计设计过程做一一的介绍如下:(其中各种算术/逻辑运算指令就选取加法指令为代表)4.1 取指公操作取指公操作阶段,显然系统还在运行,故C14位设为0。此时PC应该置数,置数的内容为IR中存放的机器指令的高4位操作码,然后才能根据PC所置的数
21、到控存中去取对应的微指令,故C13位置1。取指阶段不涉及到运算器的功能,故C12-C9、C8、C7的取值任意,我们设为0000、1、0。指令寄存器此时应该选通,因为要读取机器指令进来,故C6位置1。同样的此时没有涉及到运算功能,故DR、AC应该保持当前的输出不变,C5和C4设为11。不涉及到回存,回存244设为高阻,内存为读状态,故C3和C2设为11。此时157应该选择PC的输入,根据PC的输入选取机器指令,故C1位置0。取值阶段的最后PC的值要自动加一,以便下一次取指能取到下一条机器指令,故C0位置1。4.2 取数微指令所谓取数微指令,也就是进行了一次逻辑运算“F=B”。此时不用停机,C14
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 微程序 控制器 主控 分开 简单 计算机 设计 实现
链接地址:https://www.31ppt.com/p-2884027.html