您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 实验七-CPU与简单模型机设计实验
1山西大学计算机与信息技术学院实验报告姓名学号专业班级2011级计算机科学与技术课程名称计算机组成原理课程设计实验日期成绩指导教师批改日期实验名称实验七CPU与简单模型机设计实验一、实验目的:(1)掌握一个简单CPU的组成原理。(2)在掌握部件单元电路的基础上,进一步将其构造一台基本模型计算机。(3)为其定义五条机器指令,编写相应的微程序,并上机调试掌握整机概念。二、实验内容:1、实验原理:1、实验原理:本实验要实现一个简单的CPU,并且在此CPU的基础上,继续构建一个简单的模型计算机。CPU由运算器(ALU)、微程序控制器(MC)、通用寄存器(R0),指令寄存器(IR)、程序计数器(PC)和地址寄存器(AR)组成,如图5-1-1所示。这个CPU在写入相应的微指令后,就具备了执行机器指令的功能,但是机器指令一般存放在主存当中,CPU必须和主存挂接后,才有实际的意义,所以还需要在该CPU的基础上增加一个主存和基本的输入输出部件,以构成一个简单的模型计算机。除了程序计数器(PC),其余部件在前面的实验中都已用到,在此不再讨论。系统的程序计数器(PC)和地址寄存器(AR)集成在一片CPLD芯片中。CLR连接至CON单元的总清端CLR,按下CLR按钮,将使PC清零,LDPC和T3相与后作为计数器的计数时钟,当LOAD为低时,计数时钟到来后将CPU内总线上的数据打入PC。2本模型机和前面微程序控制器实验相比,新增加一条跳转指令JMP,共有五条指令:IN(输入)、ADD(二进制加法)、OUT(输出)、JMP(无条件转移),HLT(停机),其指令格式如下(高4位为操作码):助记符机器指令码说明IN00100000INR0ADD00000000R0+R0R0OUT00110000R0OUTJMPaddr11100000********addrPCHLT01010000停机其中JMP为双字节指令,其余均为单字节指令,********为addr对应的二进制地址码。微程序控制器实验的指令是通过手动给出的,现在要求CPU自动从存储器读取指令并执行。根据以上要求,设计数据通路图,如图5-1-3所示。本实验在前一个实验的基础上增加了三个部件,一是PC(程序计数器),另一个是AR(地址寄存器),还有就是MEM(主存)。因而在微指令中应增加相应的控制位,其微指令格式如表5-1-1所示。系统涉及到的微程序流程见图5-1-4所示,当拟定“取指”微指令时,该微指令的判别测试字段为P1测试。指令译码原理见图3-2-3所示,由于“取指”微指令是所有微程序都使用的公用微指令,因此P1的测试结果出现多路分支。本机用指令寄存器的高6位(IR7—IR2)作为测试条件,出现5路分支,占用5个固定微地址单元,剩下的其它地方就可以一条微指令占用控存一个微地址单元随意填写,微程序流程图上的单元地址为16进制。3当全部微程序设计完毕后,应将每条微指令代码化,表5-1-2即为将图5-1-4的微程序流程图按微指令格式转化而成的“二进制微代码表”。设计一段机器程序,要求从IN单元读入一个数据,存于R0,将R0和自身相加,结果存于R0,再将R0的值送OUT单元显示。2、实验步骤:联机写入和校验:联机软件提供了微程序和机器程序下载功能,以代替手动读写微程序和机器程序,但是微程序和机器程序得以指定的格式写入到以TXT为后缀的文件中,微程序和机器程序的格式如下:;//***************************************//;////;//CPU与简单模型机实验指令文件//;////;//ByTangDuCO.,LTD//;////;//***************************************//;//******StartOfMainMemoryData******//$P0020;START:INR0从IN单元读入数据送R0$P0100;ADDR0,R0R0和自身相加,结果送R04$P0230;OUTR0R0的值送OUT单元显示$P03E0;JMPSTART跳转至00H地址$P0400;$P0550;HLT停机;//*******EndOfMainMemoryData*******//;//****StartOfMicroControllerData****//$M00000001;NOP$M01006D43;PC-AR,PC加1$M03107070;MEM-IR,P1$M04002405;R0-B$M0504B201;A加B-R0$M1D105141;MEM-PC$M30001404;R0-A$M32183001;IN-R0$M33280401;R0-OUT$M35000035;NOP$M3C006D5D;PC-AR,PC加1;//**EndOfMicroControllerData**//选择联机软件的“【转储】—【装载】”功能,在打开文件对话框中选择上面所保存的文件,软件自动将机器程序和微程序写入指定单元。选择联机软件的“【转储】—【刷新指令区】”可以读出下位机所有的机器指令和微指令,并在指令区显示,对照文件检查微程序和机器程序是否正确,如果不正确,则说明写入操作失败,应重新写入,可以通过联机软件单独修改某个单元的指令,以修改微指令为例,先用鼠标左键单击指令区的‘微存’TAB按钮,然后再单击需修改单元的数据,此时该单元变为编辑框,输入6位数据并回车,编辑框消失,并以红色显示写入的数据。3.运行程序方法一:本机运行将时序与操作台单元的开关KK1、KK3置为‘运行’档,按动CON单元的总清按钮CLR,将使程序计数器PC、地址寄存器AR和微程序地址为00H,程序可以从头开始运行,暂存器A、B,指令寄存器IR和OUT单元也会被清零。将时序与操作台单元的开关KK2置为‘单步’档,每按动一次ST按钮,即可单步运行一条微指令,对照微程序流程图,观察微地址显示灯是否和流程一致。每运行完一条微指令,观测一次CPU内总线和地址总线,对照数据通路图,分析总线上的数据是否正确。当模型机执行完JMP指令后,检查OUT单元显示的数是否为IN单元值的2倍,按下CON单元的总清按钮CLR,改变IN单元的值,再次执行机器程序,从OUT单元显示的数判别程序执行是否正确。方法二:联机运行将时序与操作台单元的开关KK1和KK3置为‘运行’档,进入软件界面,选择菜单命令“【实验】—【简单模型机】”,打开简单模型机数据通路图。按动CON单元的总清按钮CLR,然后通过软件运行程序,选择相应的功能命令,即可联机运行、监控、调试程序,当模型机执行完JMP指令后,检查OUT单元显示的数是否为IN单元值的2倍。在数据通路图和微程序流中观测指令的执行过程,并观测软件中地址总线、数据总线以及微指令显示和下位机是否一致。3、实验结果:实验过程及结果截图如下所示:5三、实验总结:1、CPU由运算器(ALU)、微程序控制器(MC)、通用寄存器(R0),指令寄存器(IR)、程序计数器(PC)和地址寄存器(AR)组成62、CPU在写入相应的微指令后,就具备了执行机器指令的功能,但是机器指令一般存放在主存当中,CPU必须和主存挂接后,才有实际的意义,所以还需要在该CPU的基础上增加一个主存和基本的输入输出部件,以构成一个简单的模型计算机。3、本模型机共有五条指令:IN(输入)、ADD(二进制加法)、OUT(输出)、JMP(无条件转移),HLT(停机),JMP为双字节指令,其余均为单字节指令4、按动CON单元的总清按钮CLR,使程序计数器PC、地址寄存器AR和微程序地址为00H,程序可以从头开始运行,暂存器A、B,指令寄存器IR和OUT单元也会被清零。5、将时序与操作台单元的开关KK2置为‘单步’档,每按动一次ST按钮,即可单步运行一条微指令。7
本文标题:实验七-CPU与简单模型机设计实验
链接地址:https://www.777doc.com/doc-6069203 .html