1、计算机组成原理课程设计报告及代码之复杂模型机设计课程设计报告课程名称: 计算机组成原理题目名称: 复杂模型机设计专业名称: 计算机科学与技术班 级: 03学生姓名: 李俊 同组同学: 丰翔 王兆宇学 号: 指导教师: 兰勇完成时间: 2016年1月8 日 5一 、课程设计概述 课程设计的教学目的本课程设计的教学目的是在掌握计算机系统组成及内部工作机制、理解计算机各功能部件工作原理的基础上,深入掌握数据信息流和控制信息流的方法,进一步加深对计算机系统各模块间相互关系的认识和整机的概念,培养开发和调试计算机的技能。在设计实践中提高应用所学专业知识分析问题和解决问题的能力。 课程设计任务和基本要求
2、本课程设计以TDCMA计算机组成原理教学实验系统为平台完成。 1. 按给定的数据格式和指令系统,理解微程序控制器的设计原理。 2. 设计给定机器指令系统以及微程序流程图,按微指令格式写出微程序的微指令代码。 3. 连接逻辑电路,完成启动、测试、编程、校验和运行,并观测运行过程和结果。 4. 将微程序控制器模块与运算器模块、存储器模块联机,组成一台模型计算机。 5. 用微程序控制器控制模型机的数据通路。 6. 通过在模型机上运行有机器指令组成的简单程序,掌握机器指令与微指令的关系,建立计算机的整机概念,掌握计算机的控制机制。 7. 按指定应用项目进行汇编指令格式及功能设计,并设计相应的机器指令代
3、码,按照模型机数据通路设计实现机器指令功能的微程序。在PC机上编辑机器指令和微程序,装载代码到TDCMA实验系统并运行,实现应用要求。 设计原理在部件实验中,我们是人为用二进制开关来模拟一些控制信号完成数据通路的控制。而在本课程设计中,数据通路的控制由微程序控制器来完成。计算机从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令的列来完成,即一条机器指令对应一个微程序。二、 规定项目的实验验证 设计原理机器指令格式:$P XX XX 机器指令标志、十六进制地址、机器指令代码微指令格式:$M XX XXXXXX 微指令标志、十六进制地址、微指令代码微指令代码格式23222120191
4、8-1514-1211-98-65-0M23CNWRRDIOMS3-S0ABCM5-M00进位读写ALU下一个地址CN代表进位WR、RD代表向MEM单元写和读IOM代表向IN或OUT单元读写S3-S0代表不同的运算A指定目的地址B指定原地址C代表P测试或指定目的地址为PC指针M5-M0代表下一个微指令的地址(一共6位,所以最大值为3F)WR、RD、IOM的功能WRRDIOM功能000不涉及MEM、IN和OUT单元010从MEM单元读数据011从IN单元读数据100向MEM单元写数据101向OUT单元写数据S3S0以及CN的功能运算类型S3;S2;S1;S0CN功能逻辑运算0000XF=A000
5、1XF=B0010XF=AB0011XF=A+B0100XF=B移位运算循环移位0101XF=AB01100F=A11F=A101110F=A11F=AAR, PC加10203107070000100000111000001110000MEM-IR, P04002405000000000010001000000101RS-B0504B201000001001011001000000001A加B-RD06002407000000000010001000000111RS-B07013201000000010011001000000001A与B-RD0810600900010000011000000
6、0001000MEM-AR09183001 000110000011000000000001IO-RD0A106010000100000110000000010000MEM-AR0B005341 000000000101001101000001NOP0C103001000100000011000000000001MEM-RD0D200601001000000000011000000001RD-MEM0E005341 000000000101001101000001A-PC0F0000CB 000000000000000011001011NOP, P10280401 00101000000001
7、0000000001RS-IO11103001 000100000011000000000001MEM-RD12063201 000001100011001000000001A-1-RD13002414 000000000010010000010100RS-B1405B201 000001011011001000000001A减B-RD15002416 000000000010010000010110RS-B1601B201 000000011011001000000001A或B-RD171803B201 000000111011001000000001ARD191A1B00000100000
8、0000000000000000001A-PC1C10101D 000100000001000000011101MEM-A1D10608C 000100000110000010001100MEM-AR, P1E10601F 000100000110000000011111MEM-AR1F101020 000100000001000000100000MEM-A2010608C 000100000110000010001100MEM-AR, P21006D62 000000000110110001100010PC-AR,PC+22102023 000100000010000000100011MEM
9、-B23058201 000001011000001000000001A-B2425262728101029 000100000001000000101001MEM-A2900282A 000000000010100000101010RI-B2A04E22B 000001001110001000101011A加B-AR2B04928C 000001001001001010001100A加B-A, P2C10102D 000100000001000000101101MEM-A2D002C2E 000000000010110000101110PC-B2E04E22F 000001001110001
10、000101111A加B-AR2F04928C 000001011001001010001100A加B-A, P30001604 000000000001011000000100RD-A31001606 000000000001011000000110RD-A32006D48 000000000110110101001000PC-AR, PC加133006D4A 000000000110110101001010PC-AR, PC加134001621 000000000001011000100001RD-A35000035 000000000000000000110101NOP36006D51
11、000000000110110101010001PC-AR, PC加137001612 000000000001011000010010RD-A38001613 000000000001011000010011RD-A39001615 000000000001011000010101RD-A3A001618 000000000001011000011000RD-A3B000001 000000000000000000000001NOP3C006D5C 000000000110110101011100PC-AR, PC加13D006D5E 000000000110110101011110PC-A
12、R, PC加13E006D68 000000000110110101101000PC-AR, PC加13F006D6C 000000000110110101101100PC-AR, PC加1表4二进制微代码表本设计的机器指令程序及相应的汇编程序如下:微指令汇编指令格式指令功能ADD RD,RS0000RSRDRD+RS-RDAND RD,RS0001RSRDRD&RS-RDIN RD,P0010*RDPP-RDOUT P,RS0011RS*PRD-PTEST RD,D0100RDDRD-DHALT0101停机 LDI RD,D0110*RDDD-RDDEC RD0111*RDRD-1RDSUB
13、 RD,RS1000RSRDRD-RS-RDOR RD,RS1001RSRDRS|RD-RDROL RD1010RDRDRD保留LAD M D,RD1100MRDDE-RDSTA M D,RS1101MRSRD-EJMP M D1110MDE-PCJNZ M D1111MD当ZF=0或CF=0跳转 操作步骤实验连线图1 连线:按实验连线图进行连线。2. 测试:在联机软件CMA中打开综合性实验的数据通路图,并进行测试3 编写程序:采用联机读/写程序按下面规定格式,用联机软件在CMPP中建立将机器指令及微指令的二进制代码编辑成十六进制的*.TXT文档,并用联机软件的转储功能将该格式文件装载到实验系
14、统中。测试程序及微指令代码:; 运行程序联机运行:联机运行程序时,进入CMA软件界面,装在机器指令及微指令后,选择【实验】【综合性实验】功能菜单打开相应动态数据通路图,按相应功能键即可联机运行、监控、调试程序。三、 指定应用项目的设计与实现1、基本模型机设计与实现; 2、在基本模型机设计的基础上设计一台复杂模型机任务分析:本实验完成了逻辑与、左移、算术加、减运算、直接寻址、间接寻址、变址寻址、test指令并用JNZ、JMP指令实现跳转。同时涉及到输入输出数据和将寄存器中的内容输入到内存中等知识点。解决方案:1. 从in单元读入一个数,读入R1。2. 立即数0FH送R03. R0&R1与运算得到
15、R1的低四位,输出R1的值4. 通过变址寻址找到地址为64H单元的数据存入R3,且输出R35. R1=R1+R3,输出R1。6. 通过间接寻址找到67H单元的数据62H,将62H中的数据存入R3,输出R37. R1=R1-R3,输出R18. 将R1左移一位9. 输出R110. R1-12.跳转至START四、 收获和体会李俊)通过本次课程设计,对计算机的基本组成,部件的设计,部件间的连接,微程序控制器的设计,微指令和微程序的编制与调试等过程有更深的了解,加深了对组成原理理论课程的理解。 通过自己对一系列微程序的编写,对程序执行的流程以及指令之间的跳转有了更深的理解,能够根据流程图和机器指令写出相应的微程序,对简单模型机里的数据流向图也有了一定的理解,能看懂根据自己编写的微程序在模型机上的一步步流向,对各种指令的运用更加熟悉,对它们微程序的一步步流程也有了清晰的认识,通过对机器指令和微指令的分析和编写,理解了指令代码所对应的功能。最后感谢老师和同组同学的帮助。