计算机组成原理课程设计指导书_第1页
计算机组成原理课程设计指导书_第2页
计算机组成原理课程设计指导书_第3页
计算机组成原理课程设计指导书_第4页
计算机组成原理课程设计指导书_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机组成原理课程设计指导书-简单模型机的微程序设计2010年4月第一部分 基本模型机的硬件、指令系统及其微程序的设计一、模型机的CPU及系统硬件   基本模型机的CPU及系统硬件组成如图1所示:图1 模型机的CPU及系统硬件组成各部件的功能及控制信号如下: 运算器由算逻部件ALU(8位)、暂存器DR1、DR2及通用寄存器等组成。ALU的功能控制信号为S3、S2、S1、S0、M、CN,可以实现48种算术和逻辑运算功能,如图2所示。  运算器为单总线结构,其输入端分别连接到暂存器DR1和DR2,其装入数据的微命令分别为LDDR1和LDDR2,当它们为1电平时由节拍脉

2、冲T4将数据总线上的数据装入相应的暂存器。R0、R1、R2为通用寄存器。R0的装入数据的微命令为LDR0,R1的装入数据的微命令为LDR1,R2的装入数据的微命令为LDR2。299为实现移位运算的装置,当299B微命令有效时,其数据端和数据总线连接。  控制器由程序计数器PC、指令寄存器IR、地址寄存器AR、时序电路、控制存储器及相应的译码电路组成。 图2 74LS181功能表  程序计数器PC的功能是存放下一条指令的地址,其输出是向地址寄存器提供要将执行的指令在存储器中的地址。在提供地址后立即加1,指向指令的下一个字节或下一条指令的地址。其控制微命令有三个。当LOAD=0

3、而LDPC=1时,由T4的正跳变将数据总线上的数据装入PC;当当LOAD=1而LDPC=1时PC的内容加1;当PCB=1时,PC中的地址信息送到数据总线上。  指令寄存器IR用于存放当前执行的指令。当微命令LDIR=1时,由节拍脉冲T3将数据总线上的数据装入。  地址寄存器AR存放要从存储器中读出的数据或指令的地址或要向存储器写入数据或指令的地址。当微命令LDAR=1时,由节拍脉冲T3将数据总线上的数据装入。  存储器RAM用于存放程序和数据。当片选信号CE=0时,如果W/R为0,则根据AR中的地址,从存储器中读出数据并送到数据总线上;如果W/R为1,则根据AR中

4、的地址,向存储器中写入数据总线上的数据。片选信号CE是由微指令中的有关字段(B1B0)译码产生的。模型机有两个外部设备:输入设备是置数开关SW,用于设置数据或地址,当微命令SWB=0时,设置的数据送到数据总线上;SWB也是由微指令中的有关字段(B1B0)译码产生的。输出设备是两位LED数码管,当微命令LEDB=1时,数据总线上的数据送到数码管显示。二、基本模型机的指令设计   根据基本模型机的硬件设计五条机器指令:外设输入指令IN、二进制加法指令ADD、存数指令STA、输出到外设指令OUT、无条件转移指令JMP。指令格式如下: 助记符 机器指令码说明IN 0000 0000

5、 ; 置数开关SW(KD0KD7)的状态R0ADD addr 0001 0000 ×××× ××××; (R0)+(addr)(R0)STA addr 0010 0000 ×××× ××××; (R0)(addr)OUT addr 0011 0000 ×××× ××××; (addr)输出设备"LED"JMP addr 0100 0000

6、 ×××× ××××; addrPC说明: 指令IN为单字节指令,其余均为双字节指令, ××××××××为要读写的主存储器单元的二进制地址码。三、指令微流程分析   这五条指令的微流程如图3所示:图3 用数据流表示的微程序流程  该图是运行微程序的数据流图,实际上并没有分解到微命令一级。为了设计微程序,还应该根据此图进一步细化到微命令(微操作)一级。例如PCAR,实际上应该同时发出PCB、LDAR

7、两个微命令;PC+1应该发出LDPC微命令;SWR0应该发出SWB、LDRi(与指令码中的相应位共同译码产生LDR0微命令)两个微命令;RAMBUS应该发出CE有效和读存储器两个微命令;BUSRAM应该发出CE有效和写存储器两个微命令;R0××是指R0B微命令有效等等。据此可将该图改画成下图: 图4 用微命令表示的执行五条基本指令的微指令流程  该图中每个框上的数字表示该条微指令在控存中的地址(与指令格式有关,也与设计者的意愿有关)。如何在一条微指令中实现一个框中的微操作与微指令的格式密切相关。四、基本模型机的微指令格式    本模型机的微指令

8、长共24位,基本采用水平型微指令字段直接编码方式,其控制位顺序如下:   其中,S3、S2、S1、S0、M、CN(A24A19位)为ALU运算类型的控制字段,其输出不需译码直接连接到ALU的对应控制信号即可。需要指出的是,该字段无论如何编码,ALU都要进行某种运算,但是只要不发出ALUB微命令,ALU的运算结果都不会送到数据总线上,也就是不会对其它部件的操作产生任何影响。在设计微程序时,只要不发ALUB微命令,该字段的编码可以任意设置。   A18位为输出设备(LED)和主存(RAM)的读、写控制字段,该位为0,表示读;该位为1,表示写。 &#

9、160; A17A16位(B1B0)字段用于选择外设和主存。B1B0=01选择主存(CE有效),B1B0=00选择输入数据开关(SWB有效),B1B0=10选择输出LED(LEDB有效)。B1B0=11对本模型机无效,即没有选中任何外设或主存。   对本模型机而言,上述三位可以看成一个字段,其编码的含义如下:   A18A17A16=000或100  从输入开关SW读数据   A18A17A16=001       从主存读数据   A18A17

10、A16=101       向主存写数据   A18A17A16=110       向LED写数据   其它组合无意义。  uA6A1位为6位的预置后续微地址,“预置”的含义是该字段与微地址控制字段以及指令寄存器等部件的内容共同产生下一条微指令在控存中的微地址。  A、B、C 三个译码字段,分别由三组译码控制电路译码产生各种微命令。  A字段用于产生各寄存器的数据装入微命令,各种编码的含义如上表所示。 由

11、于模型机有三个通用寄存器(R0、R1、R2),它们都有相应的数据装入微命令,为了不增加微指令的宽度,该字段只设计了一个LDRi命令。为了区分究竟是哪个寄存器装入数据,要根据指令寄存器中操作码的最低两位(I1I0)的状态而定:当I1I0=00时,发LDR0微命令;I1I0=01时,发LDR1微命令;I1I0=10时,发LDR2微命令;I1I0=11时,对本模型机无效;  B字段中的RSB、RDB、RIB分别为源寄存器的内容送数据总线、目的寄存器送数据总线及变址寄存器送数据总线的微命令,其功能是根据机器指令来选通三个工作寄存器R0、R1及R2之一,将其内容送数据总线。 具体规则如下:&#

12、160;  如果RDB有效,根据指令寄存器的最低两位(I1I0)的状态决定哪个寄存器的内容送数据总线:当I1I0=00时,发R0B微命令;I1I0=01时,发R1B微命令;I1I0=10时,发R2B微命令;I1I0=11时,对本模型机无效;   如果RSB有效,根据指令寄存器(I3I2)两位的状态决定哪个寄存器的内容送数据总线:当I3I2=00时,发R0B微命令;I3I2=01时,发R1B微命令;I3I2=10时,发R2B微命令;I3I2=11时,对本模型机无效;   本模型机的变址寄存器固定为R2,故RIB有效就是R2B有效。 &#

13、160; 基于上述字段的设计规则,在设计机器指令格式时,必须将目的寄存器的编码放在指令的第一个字节的I1I0位置,将源寄存器的编码放在指令的第一个字节的I3I2位置,且编码必须符合上述规则,即00代表寄存器R0,01代表寄存器R1,10代表寄存器R2。  B字段中的299B是移位运算装置的数据端与数据总线相连的微命令。该装置在图中没有画出。C字段中的P(1)P(4)是四个测试字段。其功能是根据机器指令、A5A0字段及其它有关部件的内容,产生下一条微指令在控存中的微地址,使微程序转入相应的微地址入口,从而实现微程序的顺序、分支、循环运行等。AR为算术运算是否影响进位及判零标志控制位,低

14、电平有效。LDPC为使PC+1的微命令。  P(1)P(4)的意义如下:  P(1)测试的作用是次地址字段NA(41位) 或(运算) 指令寄存器IR(85位)产生下一条微指令在控存中的微地址的41位,下一条微指令在控存中的微地址的65位仍为NA字段的65位。    P(2)测试的作用是次地址字段NA(21位)或指令寄存器IR(43位)产生下一条微指令在控存中的微地址的21位,下一条微指令在控存中的微地址的63位仍为NA字段的63位。  P(3)测试的作用是次地址字段NA(4位)或进位或零标志产生下一条微指令在控存中的微地址的4位,下一条微指令在

15、控存中的微地址的其它位仍为NA字段的相应位。  P(4)测试的作用是次地址字段NA(21位)或(SWC,SWA)产生下一条微指令在控存中的微地址的21位,下一条微指令在控存中的微地址的63位仍为NA字段的63位。五、编写微程序  在了解了微指令格式后,就可以开始编写微程序了。  一般地讲,编写微程序可以分成以下几步:  1、设计机器的指令格式,如本文第二部分所示。  2、对所设计的指令进行分析,画出各指令的用微命令表示的微流程图,如本文第二部分所示。不仅要画出每个对应一条微指令的功能框内的微命令,而且要初步确定该条微指令在控存中的微地址,以便于

16、在设计微程序时确定前一条指令的次地址NA字段和C字段的编码。在这个过程中,一定要注意P(1)测试的规则以及指令高四位的编码。 执行五条基本指令的微指令流程如图4所示。  3、根据微流程图的顺序,一个功能框一个功能框地按照第四段所述的微指令格式,确定各字段的编码,将这些字段组合即可形成一条条的微指令编码。这些微指令的集合就是可以完成所设计的指令功能的微程序。当然这样设计的微程序有可能不完全正确,还需要进一步检查修改。   以上几步可以用脑、手、纸、笔即可完成。  4、对设计的微程序进行检查修改。本模型机可以手动地用开关将微程序输入机器的控存。为了能将要执行

17、的指令输入主存,在微程序中必须安排一端相应的微程序;为了能检查输入的指令是否正确,也要设计一段微程序。这段微程序的微命令流程图如图5所示。图5 读写机器指令的微程序流程图   根据上述流程图,可设计相应的微程序。   将这段微程序(启动微地址为00H)和13步设计好的微程序组合成一个既可以向主存中写指令也可以从主存中读指令又可以运行主存中的程序的完整的微程序。 用于测试的机器指令程序编码如下:地址 编码 说明00H: 00000000 ;置数开关SW(KD0KD7)的状态R001H: 00010000 ;(R0)+(0A)(R0)02H: 0000101

18、003H: 00100000 ;(R0)(0B)04H: 0000101105H: 00110000 ; (0B)输出设备"LED"06H: 0000101107H: 01000000 ; 00PC08H: 0000000009H:0AH: 00000001 ;数据为01H不难看出这一段程序的功能是将置数开关设置的数加存储器0A单元中的内容送数码管LED显示。既可读写机器指令又可运行微程序的完整的微程序编码如下: 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 此后就可以手动地用开关将微

19、程序输入机器的控存。然后将控存的启动地址置为0,运行微程序,将要执行的测试程序存入主存,也可从主存中读出指令,检查输入的指令是否正确。关于如何将指令输入主存以及将微指令写入控存,参见实验设备厂的实验六和实验七的指导书。总之,这是一件相当烦琐的工作。  在完成上述工作后,即可单步或连续运行微程序,检查微程序是否正确。如果发现错误,及时修改后再试。  这个过程的操作参见实验指导书的实验六 。   不难看出,要在本模型机上编写微程序是十分困难的。   为了解决这个难题,笔者开发了一个专门设计、分析针对本模型机的仿真软件,使得微程序的设计变得相当容易。

20、关于该软件的功能和使用方法,参见该软件的“帮助”。   下面是利用该软件设计的微程序编码及各条微指令的功能分析。注意第一条微指令的微地址为01H,其它各条微指令的微地址都由上一行文字最后的数字(16进制)指定。  不难看出,上面的文字说明和我们所画的用微命令表示的微程序流程图中各个框中所列的微命令是一一对应的。  这个微程序可以根据用微命令表示的微程序流程图在本仿真软件上很方便地设计出来。第二部分 课程设计要求一 课程设计的目的通过课程设计更清楚地理解下列基本概念:1 计算机的硬件基本组成;2 计算机中机器指令的设计;3 计算机中机器指令的执行过程;4 微程序控制器的工作原理。5 微指令的格式设计原则;在此基础上设计可以运行一些基本机器指令的微程序的设计二课程设计的内容和要求 1通过使用作者开发的微程序分析和设计仿真软件,熟悉本文介绍的为基本模型机而设计的微程序的执行过程。必须充分理解并正确解

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论