文档详情

计算机组成原理课程设计

nu****n
实名认证
店铺
DOC
406.01KB
约10页
文档ID:138018991
计算机组成原理课程设计_第1页
1/10

课 程 设 计 报 告课程名称: 计算机组成原理 系 别: 姓 名: 班 级: 学 号: 成 绩: 指导教师: 开课时间:20 -20 学年 第 学期一.设计题目计算机组成原理课程设计——简单模型机的微程序设计二.主要内容通过课程设计更清楚地理解下列基本概念:1.计算机的硬件基本组成;2.计算机中机器指令的设计3.计算机中机器指令的执行过程;4.微程序控制器的工作原理5.微指令的格式设计原则;在此基础上设计可以运行一些基本机器指令的微程序的设计 三.具体要求置数指令 IN 置数开关SW(KD0~KD7)的状态→R0加法指令 ADD R0,,(addr):(R0)+(addr)→(R0) 存数指令 STA R0,(addr):(R0)→(addr)输出指令 OUT (addr):(addr)→输出设备"LED"跳转指令 JMP (addr):addr→PC 或指令OR RD,RS:(RS)或(RD)→(RD) 新加法指令 NADD (addr1),(addr2):(addr1)加(addr2)→(RD) 异或指令XOR (addr1),(addr2):(addr1)异或(addr2)→(RD) 与指令AND RD,RS:(RS)与(RD)→(RD) 求反指令 NOT RD:/(RD) →(RD) 四.进度安排 共1.5周11天的时间,具体安排如下: 1~2天:对整个课程设计的内容做详细的讲解,并学生完成课程设计指导书的学习,使其掌握和理解课程设计的核心内容; 3 ~5天:学生在机房学习熟悉课程设计所使用的仿真软件,并深入了解该仿真软件所实现 的模型机的指令系统(原有的5条指令)和微程序设计方法; 6~9天:在原有5条机器指令的基础上增加实现下述各功能的机器指令,试设计相应的机器指令的格式并改写原来的微程序使其可以运行所有的机器指令。

10~11天:根据自己设计的微程序系统写出相应的课程设计实验报告 五.成绩评定 六. 正文 一、模型机的CPU及系统硬件   基本模型机的CPU及系统硬件组成如图1所示:图1 模型机的CPU及系统硬件组成 各部件的功能及控制信号如下: 运算器由算逻部件ALU(8位)、暂存器DR1、DR2及通用寄存器等组成ALU的功能控制信号为 S3、S2、S1、S0、M、CN,可以实现48种算术和逻辑运算功能,如图2所示  运算器为单总线结构,其输入端分别连接到暂存器DR1和DR2,其装入数据的微命令分别为LDDR1和LDDR2,当它们为1电平时由节拍脉冲T4将数据总线上的数据装入相应的暂存器R0、R1、R2为通用寄存器R0的装 入数据的微命令为LDR0,R1的装入数据的微命令为LDR1,R2的装入数据的微命令为LDR2299为实现移位运算的装置,当299B微命令有效时,其数据端和数据总线连接  控制器由程序计数器PC、指令寄存器IR、地址寄存器AR、时序电路、控制存储器及相应的译码电路组成。

程序计数器PC的功能是存放下一条指令的地址,其输出是向地址寄存器提供要将执行的指令在存储器中的地址在提供地址后立即加1,指向指令的下一个字节或下一条指令的地址其控制微命令有三个当LOAD=0而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中的地址,向存储器中写入数据总线上的数据片选信号 CE是由微指令中的有关字段(B1B0)译码产生的 模型机有两个外部设备:输入设备是置数开关SW,用于设置数据或地址,当微命令SWB=0时,设置的数据送到数据总线上;SWB也是由微指令中的有关字段(B1B0)译码产生的。

输出设备是两位LED数码管,当微命令LEDB=1时,数据总线上的数据送到数码管显示 二、基本模型机的指令设计 根据基本模型机的硬件设计五条机器指令:外设输入指令IN、二进制加法指令ADD、存数指令STA、输出到外设指令OUT、 无条件转移指令JMP指令格式如下: 助记符   机器指令码           说 明 IN    0000 0000 ; 置数开关SW(KD0~KD7)的状态→R0 ADD addr 0001 0000 ×××× ××××; (R0)+(addr)→(R0)  STA addr 0010 0000 ×××× ××××; (R0)→(addr) OUT addr 0011 0000 ×××× ××××; (addr)→输出设备"LED" JMP addr 0100 0000 ×××× ××××; addr→PC 说明: 指令IN为单字节指令,其余均为双字节指令, ××××××××为要读写的主存储器单元的二进制地址码 三、指令微流程分析   这十条指令的微流程图如图所示运行微程序RD→DR2RAM→BUSBUS→AR0CNOTR0→DR1R0→DR1PC→ARPC+1PC→ARPC+1RS→DR101RAM→BUSBUS→PC16PC→ARPC+101DR1→LED15RAM→BUSBUS→DR114RAM→BUSBUS→AR13PC→ARPC+1R0→BUSBUS→RAM12RAM→BUSBUS→AR11PC→ARPC+1(D1+DR2)→R0100FR0→DR1RAM→BUSBUS→DR2RAM→BUSBUS→ARPC→ARPC+1010B0A09080706050403ADDXORNADDORJMPOUTSTAANDINPC→ARPC+1RAM→BUSBUS→IRP(1)测试0102SW→R027251F19170DRD→DR2RAM→BUSBUS→AR求反→RD20261A1801或结果→RDRAM→BUSBUS→DR1RAM→BUSBUS→DR1与结果→RD0E211B0101PC→ARPC+1PC→ARPC+101221CRAM→BUSBUS→ARRAM→BUSBUS→AR231DRAM→BUSBUS→DR2RAM→BUSBUS→DR224011E异或结果→RDDR1+DR2→RD0101 用数据流表示的微程序流程运行微程序01PCBLDARLDPC02CE有效W/R=0LDIRP(1)测试NOTANDORSUBMOVJMPOUTSTAADDIN090A0B0C080706050304RSB有效LDDR1RCB LDARLDPCRDB有效RSB有效LDDR1RCB LDARPC+1PCBLDARLDPCPCBLDARLDPCPCBLDARLDPCPCBLDARLDPCSWB有效LDRi110D01 13 16 17 19 1F 25 27CE有效W/R=0LDARRDB有效LDDR2CE有效W/R=0LOADCE有效W/R=0LDARALU做反运算LDRiALUBRDB有效LDDR2CE有效W/R=0LDARCE有效W/R=0LDARCE有效W/R=0LDAR12010E01 14 18 1A 20 26ALU做或LDRiALUBCE有效W/R=0LDDR1CE有效W/R=0LDDR1ALU做与LDRiALUBCE有效W/R=0LDDR1R0BCE有效W/R=1CE有效W/R=0LDDR20F0101 15 1B 21RCB LDARLDPCRCB LDARLDPC01ALUBLEDBALU=AW/R=1R0B有效LDDR110 1C 22CE有效W/R=0LDARCE有效W/R=0LDAR01ALU做加LDRiALUB 1D 23CE有效W/R=0LDDR2CE有效W/R=0LDDR201 用微命令表示的执行十条基本指令的微指令流程 1E 24ALU做加LDRiALUBALU做异或LDRiALUB0101 该图中每个框上的数字表示该条微指令在控存中的地址(与指令格式有关,也与设计者的意愿有关)。

如何在一条微指令中实现一个框中的微操作与微指令的格式密切相关 五、编写微程序 08:09:0A: 0B:0C:0D:0E:0F:10:11:12:13:14:15:16:17:18:19:1A: 1B:1C:1D:1F此后就可以手动地用开关将微程序输入机器的控存然后将控存的启动地址置为0,运行微程序, 将要执行的测试程序存入主存,也可从主存中读出指令,检查输入的指令是否正确下面是利用该软件设计的微程序编码及各条微指令的功能分析注意第一条微指令的微地址为01H,其它各条微指令的微地址都由上一行文字最后的数字(16进制)指定不难看出,上面的文字说明和我们所画的用微命令表示的微程序流程图中各个框中所列的微命令是一一对应的这个微程序可以根据用微命令表示的微程序流程图在本仿真软件上很方便地设计出来六.测试程序00H:00110000; IN R0:(SW)→(R0) 01H:01000000; ADD R0,10:(RS)+(10)→(RD)02H:0001000003H:01010000; STA 11,R0:(R0)→1104H:0001000105H:01100000; OUT 11:11→(LED)06H:0001000107H:10000001; OR RS,RD:RS或RD→RD08H:10010001; NADD (addr1),(addr2):(addr1)+(addr2)→RD09H:000100100AH:000100110BH:10100001; XOR (addr1),(addr2):(addr1)或(addr2)→RD0CH:000101000DH:00010101 0EH:10110001; AND RS,RD:(RS)与(RD)→RD 0FH:11000001; NOT RS:RS取反→RD 10H:00010001 11H: 12H:00010001 13H:00010001 14H:00010001 15H:00010001七.总结 经过一周左右的努力,终于完成了计算机组成原理的课程设计. 课程设计中,我对计算机的基本组成、工作原理,以及他们之间的通信方式 ,微程序控制器的设计、微 指令和微程序的编制、调试以及执行等过程在理论的基础上面有了更加深刻的理解。

虽然只有短短的一周,但是我学到了很多东西. 在学习过程中光有理论知识还是不够的,要理论知识与 实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力这次设计中,我也发 现了自己很多不足的地方我会在以后的学习中不断学习,积累经验,提高自己 总之,感谢老师和同学的帮助,在之后的学习过程中我会更加努力。

下载提示
相关文档
正为您匹配相似的精品文档