《计算机组成原理课程设计.doc》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计.doc(36页珍藏版)》请在金锄头文库上搜索。
1、计算机组成原理课程设计22020年4月19日文档仅供参考,不当之处,请联系改正。计算机组成原理课程设计报告组员:1.汪学航()2.高申琪()3.刘陈臣()任务分配:汪学航:分配微地址,控制台操作编码,实验电路连接高申琪:IN指令,ADD指令,OR指令,JMP指令,刘陈臣:新指令(NOP),总体调试运行,解决关键技术,相关文档收集,书写,整理。微程序控制器的设计一、设计思路按照要求设计指令系统,该指令系统能够实现数据传送,进行加、减运算和无条件转移,具有累加器寻址、寄存器寻址、寄存器间接寻址、存储器直接寻址、立即数寻址等五种寻址方式。从而能够想到如下指令:()24位控制位分别介绍如下: XRD
2、: 外部设备读信号,当给出了外设的地址后,输出此信号,从指定外设读数据。 EMWR: 程序存储器EM写信号。 EMRD: 程序存储器EM读信号。 PCOE: 将程序计数器PC的值送到地址总线ABUS上。 EMEN: 将程序存储器EM与数据总线DBUS接通,由EMWR和EMRD决定是将DBUS数据写到EM中,还是从EM读出数据送到DBUS。 IREN: 将程序存储器EM读出的数据打入指令寄存器IR和微指令计数器uPC。 EINT: 中断返回时清除中断响应和中断请求标志,便于下次中断。 ELP: PC打入允许,与指令寄存器的IR3、IR2位结合,控制程序跳转。 MAREN:将数据总线DBUS上数据
3、打入地址寄存器MAR。 MAROE:将地址寄存器MAR的值送到地址总线ABUS上。 OUTEN:将数据总线DBUS上数据送到输出端口寄存器OUT里。 STEN: 将数据总线DBUS上数据存入堆栈寄存器ST中。 RRD: 读寄存器组R0-R3,寄存器R?的选择由指令的最低两位决定。 RWR: 写寄存器组R0-R3,寄存器R?的选择由指令的最低两位决定。 CN: 决定运算器是否带进位移位,CN=1带进位,CN=0不带进位。 FEN: 将标志位存入ALU内部的标志寄存器。 X2: X2、X1、X0三位组合来译码选择将数据送到DBUS上的寄存器。 X1: 见16页表。 X0: WEN: 将数据总线DB
4、US的值打入工作寄存器W中。 AEN: 将数据总线DBUS的值打入累加器A中。 S2: S2、S1、S0三位组合决定ALU做何种运算。本实验还需用到的五条机器指令:IN(输入)、ADD(二进制加法)、STA(存数)、OUT(输出)、JMP(无条件转移),其指令格式如下:助记符 机器指令码 说明IN 0000 0000 “INPUT DEVICE”中的开关状态R0ADD addr 0001 0000 R0+addr R0STA addr 0010 0000 R0 addrOUT addr 0011 0000 addr BUSJMP addr 0100 0000 addrPC其中IN为单字长(8位
5、),其余为双字长指令,为addr对应的二进制地址码。为了向RAM写入、读出机器指令,并能启动程序执行,还须设计三个控制台操作微程序。存储器读(KRD):拨动总清开关CLR后,控制台开关SWB、SWA为“0 0”时,按START微动开关,可对RAM连续手动读操作。存储器写(KWE):拨动总清开关CLR后,控制台开关SWB、SWA为“0 1”时,按START微动开关,可对RAM连续手动写操作。启动程序(RP):拨动总清开关CLR后,控制台开关SWB、SWA为“1 1”时,按START微动开关,即可转入到第01号“取址”微指令,启动程序运行。上述三条控制台指令用两个开关SWB、SWA的状态来设置,其
6、定义如下: SWBSWA控制台指令00读内存(KRD)01写内存(KWE)11启动程序(RP) (二)在实验中使用的模型机的微指令格式如下表给定,长度共24位。其中最后六位uA0uA5 为6位的下一条微指令的地址, 前面几位为直接控制字段,直接与相应的控制门连接,A,B,C为3个译码字段,分别由三个控制位译码出多位。其含义如下:A字段B字段C字段151413选择121110选择987选择000000000001LDRi001RS-B001P(1)010LDDR1010010011LDDR2011011100LDIR100100P(4)101LOAD101ALU-B101110LDAR110PC
7、-B110LDPC 控制位含义微程序控制器的结构与微指令的格式密切相关。 微程序控制器由控制存储器、微地址寄存器、微命令寄存器和地址转移逻辑几部分组成。微地址寄存器和微命令寄存器两者的总长度即为一条微指令的长度,二者合在一起称为微指令寄存器。 控制存储器(ROM) ROM中存放微程序,也就是全部的微指令。ROM的容量取决于微指令的总数。假如控制器需要128条微指令,则微地址寄存器长度为7位。ROM的字长取决于微指令长度。如果微指令为32位,则ROM的字长就是32位。实际应用中ROM可采用EPROM或E2PROM、EAROM,用户写入和修改微程序比较方便。微命令寄存器 微命令寄存器暂存由控制存储
8、器中读出的当前微指令中控制字段与测试判别字段信息,可由8D寄存器组成。微地址寄存器 微地址寄存器暂存由控制存储器读出的当前微指令的下址字段信息。它可由带RD、SD强置端的D触发器组成。其中时钟端和D端配合用做ROM的读出打入,用SD进行下址修改。地址转移逻辑 微指令由ROM读出后直接给出下一条微指令的地址,这个地址就放在微地址寄存器中。当微程序出现分支时经过地址转移逻辑去修改微地址寄存器内容,并按修改好的微地址读出下条微指令。地址转移逻辑是一个组合逻辑电路,其输入是当前微指令的判别测试字段Pi、执行部件反馈的“状态条件”及时间因素T4。控制时序信号 上图中标明了一个基本机器周期中的控制时序信号
9、。例如用上一周期的T4时间按微地址寄存器内容从ROM中读一条微指令,经过一段时间后被读出,用当前周期的T1时间打入到微指令寄存器。T2、T3时间用来控制执行部件进行操作。T4时间修改微地址寄存器内容并读出下一条微指令。二、设计步骤:(一)、拟订指令系统指令系统是设计计算机的依据 ,拟订指令系统将涉及基本字长、指令格式、指令种类、寻址方式等内容。基本字长:程序设计平台中配置的存储器容量为256*8,可知道基本字长定为8位。指令格式:指令格式可有单字长和双字长指令两种,在双字长格式中,第二字节一般定义为操作数或操作数地址。指令格式为:操作码OP源操作数目的操作数指令类型:模型机有单操作数指令、双操
10、作数指令和无操作数指令。操作码OP共四位,最多可定义16条指令。数据的传送单位为8位数据的传送范围RR RRAM RAMR寻址方式:由于指令较短,操作数字段仅两位,为了简化硬件设计,将操作数字段和目的操作数字段的寻址定义为不同的含义。源操作数字段寻址方式 目的操作数寻址方式00 R0 00 R101 (R0) 01 (R1)10 I 10 I11 D 11 DRi表示操作数就在寄存器中(Ri)表示操作数地址在寄存器中I指令的第二个字节为操作数或称立即寻址(D)指令的第二个字节为操作数的地址源操作数使用R0寻址目的操作数R1寻址 (二)、确定总体结构根据要求设计数据通路框图:图2-1 数据通路结
11、构框图2.1流程图PC-AR, PC+1RAM-BUS, BUS-LRP(1)RW-R0(DR1)+(DR2) -R0R0-DR1RAM-BUS, BUS-DRERAM-BUS, BUS-ARPC-AR, PC+1RAM-BUS, BUS-LRRAM-BUS, BUS-ARPC-AR, PC+1DR1-LEDRAM-BUS, BUS-ARRAM-BUS, BUS-DR1PC-AR, PC+1RAM-BUS, BUS-PCPC-AR, PC+1IN ADD STA OUT JMP 图2-2 微程序流程图当拟定“取指”微指令时,该微指令的判别测试字段为P(1)测试。由于“取指”微指令是所有微指令都
12、使用的公用微指令,因此P(1)的测试结果会出现多路分支。我们使用指令寄存器的前4位(IR7IR4)作为测试条件,出现5路分支,占用5个固定微地址单元。控制台命令的微程序流程,01为取指令微指令的地址: 图2-3 控制台流程图控制台操作作为P(4)测试,它以控制开关SWB,SWA作为测试条件,出现了3路分支,占用3个固定微地址单元。当分支微地址单元固定后,剩下的其它地方就能够一条微指令占用控存一个微地址单元随意填写。2.2微代码表 当全部微程序设计完毕后,将每条微指令代码化,把流程图按微指令格式转化成“二进制微代码表”,如下:微地址S3S2S1S0MCNWEA9A8ABCUA5UA00000000001100000010001000001000000011110110110000010020000000011000000010010000300000000100000000100010004000000001011000000000101050000000110101010000001100610010101100110