武汉理工大学《计算机组成原理B》课程设计说明书武汉理工大学课程设计课程名称计算机组成原理设计题目模型机设计与实现班级软件zy1302学号姓名指导教师田小华日期2015年6月16日武汉理工大学《计算机组成原理B》课程设计说明书课程设计任务书学生姓名:专业班级:软件zy1302指导教师:田小华工作单位:计算机学院题目:CPU与简单模型机设计初始条件:1.完成计算机组成原理课程教学与实验2.TD-CMA计算机组成原理教学实验系统要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.掌握复杂指令系统计算机的微控制器功能与结构特点2.熟悉TD-CMA教学实验系统的微指令格式3.设计五条机器指令,并编写对应的微程序4.在TDN-CMA教学实验系统中调试机器指令程序,确认运行结果5.建立复杂指令系统计算机的整机概念模型时间安排:1.第14周周一(6月1日)第5~6节:软件1301、1302、sy1301集中讲解课程设计原理与方法第14周周五(6月5日)第5~6节:软件ZY1301、ZY1302集中讲解课程设计原理与方法2.第X周周一~五(6月23~27日):分班实验,调试机器指令程序,撰写课程设计报告指导教师签名:2015年6月2日系主任(或责任教师)签名:2015年6月3日武汉理工大学《计算机组成原理B》课程设计说明书目录1.课程设计的目的…………………………………………………12.课程设计设备……………………………………………………13.课程设计内容……………………………………………………13.1课程设计原理………………………………………………13.2实验步骤……………………………………………………54.实验结果说明以及实验总结……………………………………94.1实验结果说明………………………………………………94.2实验总结……………………………………………………11本科生课程设计成绩评定表…………………………………13武汉理工大学《计算机组成原理B》课程设计说明书第1页模型机设计和实现1.课程设计目的:掌握计算机功能模块的原理和关系,建立计算机整机概念2.课程设计设备:TDN-CM计算机组成原理实验系统,排线若干3.课程设计内容:3.1课程设计原理本次课程设计实现一个简单的CPU,由此构建一个简单模型计算机。CPU由ALU、微控制器(MC)、通用寄存器(R0),指令寄存器(IR)、程序计数器(PC)和地址寄存器(AR)组成,如图5-1-1所示。武汉理工大学《计算机组成原理B》课程设计说明书第2页该CPU在写入相应的微指令后,就具备执行机器指令的功能。在CPU基础上,增加一个主存和基本的输入输出部件,构成一个简单的模型计算机。3.1.1课程设计采用五条机器指令:IN,ADD,OUT,JMP,HLT,对应的源程序内容如下:地址内容助记符说明0000000000100000;START:INR0学号→R00000000100000000;ADDR0,R0R0+R0→R00000001000110000;OUTR0R0→LED0000001111100000;JMPSTART跳转至00地址0000010000000000;0000010101010000;HLT停机指令码中高4位位操作码,JMP为双字节指令,其余为单字节指令。微控制器实验的指令是手动/联机给出,现在要求CPU自动从存储器读取机器指令并执行。3.1.2微指令格式课程设计在微控制器实验的基础上,增加了PC、AR和主存,在微指令中应增加相应的控制位,其微指令格式见表5-1-1。武汉理工大学《计算机组成原理B》课程设计说明书第3页3.1.3数据通路图根据以上设计要求,相关的数据通路图见图5-1-3。武汉理工大学《计算机组成原理B》课程设计说明书第4页3.1.4微程序流程图系统涉及到的微程序流程图,详见图5-1-4。当拟定“取指”微指令时,该微指令的判别测试字段为P1测试。指令译码原理见图3-2-3所示,由于“取指”微指令是所有微程序都使用的公用微指令,因此P1的测试结果出现多路分支。本机使用指令寄存器的高6位(IR7-IR2)作为测试条件,出现5路分支,占用5个固定微地址,微程序流程图上的单元地址均为16进制编码的地址。3.1.5微指令二进制微代码表当全部微程序设计完毕,应将每条微指令代码化,见表5-1-2。表5-1-2二进制表微代码表地址十六进制内容高五位S3S2S1S0A字段B字段C字段MA5~MA000Q00000100000000000000000000000101Q006D4300000000011011010100001103Q107070000100000111000001110000武汉理工大学《计算机组成原理B》课程设计说明书第5页04Q00240500000000001001000000010105Q04B2010000010010110010000000011DQ10514100010000010100010100000130Q00140400000000000101000000010032Q18300100011000001100000000000133Q28040100101000000001000000000135Q0000350000000000000000001101013CQ006D5D0000000001101101010111013.1.6机器指令程序设计一段机器指令程序:从IN单元读入自己的学号,存放于R0,将R0和R0相加,结果存于R0,再将R0的值送到OUT单元显示。机器指令程序如下,地址和内容均为二进制:地址内容助记符说明0000000000100000;START:INR0学号→R00000000100000000;ADDR0,R0R0+R0→R00000001000110000;OUTR0R0→LED0000001111100000;JMPSTART跳转至00地址0000010000000000;0000010101010000;HLT停机3.2实验步骤3.2.1按图5-1-5接线:武汉理工大学《计算机组成原理B》课程设计说明书第6页3.2.2写入实验程序,并进行校验,可用手动或联机写入。武汉理工大学《计算机组成原理B》课程设计说明书第7页1)手动写入或校验⑴手动写入微程序①将开关KK1置为“停止”,KK3置“编程”,KK4置“控存”,KK5置为“置数”挡;②使用CON单元的SD5~SD0给出微地址,IN单元给出低8位应写入的数据,连续两次按动开关ST,将IN单元的数据写到该单元的低8位;③开关KK5置为“加1”挡;④IN单元给出中8位应写入的数据,连续两次按动开关ST,将IN单元的数据写到该单元的中8位;IN单元给出高8位应写入的数据,连续两次按动开关ST,将IN单元的数据写到该单元的高8位;⑤重复①、②、③、④四步,将表5-1-2的微代码写入EPROM2816芯片⑵手动校验微程序①将KK1置为“停止”,KK3置为“校验”,KK4置为“控存”,KK5置为“置数”②使用CON单元的SD05~SD00给出微地址,连续两次按动开关ST,MC单元的数据指示灯M7~M0显示该单元的低8位;③将开关KK5置为“加1”挡;④连续两次按动开关ST,MC单元的数据指示灯M15~M8显示该单元的中8位;MC单元的数据指示灯M23~M16显示该单元的高8位;⑤重复①、②、③、④四步,完成对微代码的校验。⑶手动写入机器指令程序①将KK1置为“停止”,KK3置为“编程”,KK4置为“主存”,KK5置为“置数”②使用CON单元的SD05~SD00给出地址,IN单元给出该单元应写入的数据,连续两次按动开关ST,将IN单元的数据写到该存储器单元;③开关KK5置为“加1”挡;④IN单元给出下一个地址(地址自动加1)应写入的数据,连续两次按动开关ST,将IN单元的数据写到该存储器单元中;然后地址会又加1,只需在IN单元输入后续地址(地址自动加1)应写入的数据,连续两次按动开关ST,即可武汉理工大学《计算机组成原理B》课程设计说明书第8页完成对该单元的写入。⑤亦可①、②两步,将所有机器指令写入主存芯片中。⑷手动校验机器指令程序①将KK1置为“停止”,KK3置为“校验”,KK4置为“主存”,KK5置为“置数”②使用CON单元的SD07~SD00给出地址,连续两次按动开关ST,CPU内总线的数据指示灯D7~D0显示该单元的数据;③开关KK5置为“加1”挡;④连续两次按动开关ST,地址自动加1,CPU内总线的数据指示灯D7~D0显示该单元的数据;此后每两次按动开关ST,地址自动加1,CPU内总线的数据指示灯D7~D0显示该单元的数据,继续进行该操作,直至完成校验。2)联机写入和校验联机软件提供微程序和机器指令程序下载功能,但是微程序和机器指令程序在下载时有规定的格式,详见实验指导书。选择联机软件的“[转储]—[装载]”功能,在打开文件对话框中选择相关文件,软件自动将机器指令程序和微程序写入指定单元。选择联机软件的“[转储]—[刷新指令区]”功能,,可以读出下位机所有的机器指令和微指令,并在指令区显示。对照文件检查微程序和机器指令程序是否正确。3.2.3运行程序⑴本机运行将开关KK1、KK3置为“运行”档,按动CON单元的总清开关CLR,将使PC、AR和微程序地址为00H,程序可以从头开始运行,暂存器A,B,指令寄存器IR和OUT单元也会被清零。将KK2置为“单步”档,每按动一次ST按钮,即可单步运行一条微指令,对照微程序流程图,观察微地址显示灯是否和流程一致。每运行完一条微指令,武汉理工大学《计算机组成原理B》课程设计说明书第9页观察一次CPU内总线和地址总线,对照数据通路图,分析总线上的数据是否正确;结果正确后请截取屏幕并保留屏幕文件,作为结果放到课程设计报告中。当模型机执行完JMP指令后,检查OUT单元显示的数据是否为OUT单元值的2倍;按下CON单元的总清开关CLR,将IN单元的数据改变为学号的2倍,再次执行机器指令程序,从OUT单元显示的数据判断程序执行是否正确,结果正确后请再次截取屏幕并保留屏幕文件,作为结果放到课程设计报告中,方便比较结果。⑵联机运行将KK1、KK3置为“运行”档,进入软件界面,选择菜单命令“[实验]—[简单模型机]”,打开简单模型机数据通路图。按动CON单元的总清开关CLR,然后通过软件运行程序,选择相应的功能命令,即可联机运行、监控、调试程序,当模型机执行完JMP指令后,检查OUT单元显示的数据是否为OUT单元值的2倍。在数据通路图和微程序流中观测指令的执行过程,并观察软件中地址总线、数据总线以及微指令显示和下位机是否一致。4.实验结果说明以及实验总结4.1实验结果说明班级序号:21;对应的16进制:15H;实验最终结果截图如下:武汉理工大学《计算机组成原理B》课程设计说明书第10页根据截图可知,输入是15(16进制),输出的是2A(16进制),的确是两倍输出!武汉理工大学《计算机组成原理B》课程设计说明书第11页4.2实验总结①给出每条机器指令的微程序:IN,ADD,OUT,JMPADD:01H—30H—04H—05HADD指令对应微程序:01H:00000000011011010100001130H:00000000000101000000010004H:00000000001001000000010105H:000001001011001000000001JMP:01H—3CH—1DHJMP指令对应微程序:01H:0000000001101101010000113CH:0000000001101101010111011DH:000100000101000101000001IN:01H—32HIN指令对应微程序:01H:00000000011011010100001132H:000110000011000000000001OUT:01H—33H01H:000000000110