欢迎来到天天文库
浏览记录
ID:9326063
大小:534.50 KB
页数:15页
时间:2018-04-28
《计算机组成原理课程设计指导书》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、《计算机组成原理》课程设计指导书----简单模型机的微程序设计2010年4月第一部分基本模型机的硬件、指令系统及其微程序的设计一、模型机的CPU及系统硬件 基本模型机的CPU及系统硬件组成如图1所示:图1模型机的CPU及系统硬件组成各部件的功能及控制信号如下:运算器由算逻部件ALU(8位)、暂存器DR1、DR2及通用寄存器等组成。ALU的功能控制信号为S3、S2、S1、S0、M、CN,可以实现48种算术和逻辑运算功能,如图2所示。 运算器为单总线结构,其输入端分别连接到暂存器DR1和DR2,其装
2、入数据的微命令分别为LDDR1和LDDR2,当它们为1电平时由节拍脉冲T4将数据总线上的数据装入相应的暂存器。R0、R1、R2为通用寄存器。R0的装入数据的微命令为LDR0,R1的装入数据的微命令为LDR1,R2的装入数据的微命令为LDR2。299为实现移位运算的装置,当299B微命令有效时,其数据端和数据总线连接。14 控制器由程序计数器PC、指令寄存器IR、地址寄存器AR、时序电路、控制存储器及相应的译码电路组成。图274LS181功能表 程序计数器PC的功能是存放下一条指令的地址,其输出是向
3、地址寄存器提供要将执行的指令在存储器中的地址。在提供地址后立即加1,指向指令的下一个字节或下一条指令的地址。其控制微命令有三个。当LOAD=0而LDPC=1时,由T4的正跳变将数据总线上的数据装入PC;当当LOAD=1而LDPC=1时PC的内容加1;当PCB=1时,PC中的地址信息送到数据总线上。 指令寄存器IR用于存放当前执行的指令。当微命令LDIR=1时,由节拍脉冲T3将数据总线上的数据装入。 地址寄存器AR存放要从存储器中读出的数据或指令的地址或要向存储器写入数据或指令的地址。当微命令LDA
4、R=1时,由节拍脉冲T3将数据总线上的数据装入。 存储器RAM用于存放程序和数据。当片选信号CE=0时,如果W/R为0,则根据AR中的地址,从存储器中读出数据并送到数据总线上;如果W/R为1,则根据AR中的地址,向存储器中写入数据总线上的数据。片选信号CE是由微指令中的有关字段(B1B0)译码产生的。14模型机有两个外部设备:输入设备是置数开关SW,用于设置数据或地址,当微命令SWB=0时,设置的数据送到数据总线上;SWB也是由微指令中的有关字段(B1B0)译码产生的。输出设备是两位LED数码管,
5、当微命令LEDB=1时,数据总线上的数据送到数码管显示。二、基本模型机的指令设计 根据基本模型机的硬件设计五条机器指令:外设输入指令IN、二进制加法指令ADD、存数指令STA、输出到外设指令OUT、无条件转移指令JMP。指令格式如下:助记符 机器指令码 说 明IN 00000000;置数开关SW(KD0~KD7)的状态→R0ADDaddr00010000××××××××;(R0)+(addr)→(R0) STAaddr00100000××××××××;(R0)→(add
6、r)OUTaddr00110000××××××××;(addr)→输出设备"LED"JMPaddr01000000××××××××; addr→PC说明:指令IN为单字节指令,其余均为双字节指令,××××××××为要读写的主存储器单元的二进制地址码。三、指令微流程分析 这五条指令的微流程如图3所示:图3用数据流表示的微程序流程14 该图是运行微程序的数据流图,实际上并没有分解到微命令一级。为了设计微程序,还应该根据此图进一步细化到微命令(微操作)一级。例如PC→AR,实际上应该同时发出PCB、L
7、DAR两个微命令;PC+1应该发出LDPC微命令;SW→R0应该发出SWB、LDRi(与指令码中的相应位共同译码产生LDR0微命令)两个微命令;RAM→BUS应该发出CE有效和读存储器两个微命令;BUS→RAM应该发出CE有效和写存储器两个微命令;R0→××是指R0B微命令有效等等。据此可将该图改画成下图:图4用微命令表示的执行五条基本指令的微指令流程14 该图中每个框上的数字表示该条微指令在控存中的地址(与指令格式有关,也与设计者的意愿有关)。如何在一条微指令中实现一个框中的微操作与微指令的格式
8、密切相关。四、基本模型机的微指令格式 本模型机的微指令长共24位,基本采用水平型微指令字段直接编码方式,其控制位顺序如下: 其中,S3、S2、S1、S0、M、CN(μA24~μA19位)为ALU运算类型的控制字段,其输出不需译码直接连接到ALU的对应控制信号即可。需要指出的是,该字段无论如何编码,ALU都要进行某种运算,但是只要不发出ALUB微命令,ALU的运算结果都不会送到数据总线上,也就是不会对其它部件的操作产生任何影响。在设计微程序时,只要不发ALUB微命令,该字段的编码
此文档下载收益归作者所有