简单模型机的微程序设计
- 格式:doc
- 大小:532.00 KB
- 文档页数:28
内蒙古师范大学计算机与信息工程学院《计算机组成原理》课程设计报告题目:_____简单模型机的组成与程序运行_____________1 任务描述设计题目名称:简单模型机的组成与程序运行要求:基于TD-CMA计算机组成原理教学实验系统,设计一个简单的计算机整机系统—模型机,分析其工作原理。
根据模型机的数据通路以及微程序控制器的工作原理,设计完成以下几条机器指令和相应的微程序,输入程序并运行。
IN R0 ;IN ->R0SUB 0DH ;R0 - [0DH] -> R0,直接寻址SHL R0 ;将R0寄存器中的内容逻辑左移STA 0EH,R0 ;R0->[0EH],直接寻址LDA 0FH,R0 ;0FH]->R0,直接寻址LOP: DEC R0 ;R0-1->R0BZC EXIT ;当FC或FZ为1时,转到EXITJMP LOPEXIT: OUT 0EH,R0 ;[0EH]->LED,直接寻址0DH、0EH、0FH单元内容分别为03H、04H、02H。
2 设计设备PC机一台,TD-CMA实验系统一套。
3 设计原理和方法3.1设计原理3.1.1数据格式:本实验计算机采用定点补码表示法表示数据,字长为8位,其格式如下:其中第七位为符号位,数值表示范围是:-1≤X<13.1.2 指令格式所有单字节指令( SUB等 )格式如下:本实验的输入IN指令和OUT指令采用单字节指令,其格式如下:其中OP-CODE为操作码,RD为目的寄存器地址(STA、LDA指令使用),D为位移量(正负均可),M寻址模式M 有效地址E 说明00011011E=DE=(D)E=(RI)+DE=(PC)+D直接寻址间接寻址RI变址寻址相对寻址3.1.3指令系统本实验共有10条基本指令,其中算术指令有2条(DEC、SUB),访问内存指令和程序控制指令7条,输入指令1条。
3.2按微指令格式,参照微程序流程图将每条微指令代码化,译成二进制微代码。
评语: 课中检查完成的题号及题数:课后完成的题号与题数:成绩: 自评成绩: 85实验报告实验名称:CPU 与简单模型机设计实验日期:2015.11.17 班级: 2 学号:13 姓名:周小多一、实验目的:1. 掌握一个简单CPU 的组成原理。
2. 在掌握部件单元电路的基础上,进一步将其构造一台基本模型计算机。
3. 为其定义五条机器指令,编写相应的微程序,并上机调试掌握整机概念。
二、实验内容:1.要实现一个简单的CPU,并且在此CPU 的基础上,继续构建一个简单的模型计算机。
CPU 由运算器(ALU)、微程序控制器(MC)、通用寄存器(R0),指令寄存器(IR)、程序计数器(PC)和地址寄存器(AR)组成,如图2-1-1 所示。
这个CPU 在写入相应的微指令后,就具备了执行机器指令的功能,但是机器指令一般存放在主存当中,CPU 必须和主存挂接后,才有实际的意义,所以还需要在该CPU 的基础上增加一个主存和基本的输入输出部件,以构成一个简单的模型计算机。
2.本模型机和前面微程序控制器实验相比,新增加一条跳转指令JMP,共有五条指令:IN(输入)、ADD(二进制加法)、OUT(输出)、JMP(无条件转移),HLT(停机),其指令格式如下(高4位为操作码):助记符机器指令码说明IN 0010 0000 IN→R0ADD 0000 0000 R0 + R0→R0OUT 0011 0000 R0→OUTJMP addr 1100 0000 addr→ PCHLT 0101 0000 停机3. 设计一段机器程序,要求从IN 单元读入一个数据,存于R0,将R0 和自身相加,结果存于R0,再将R0 的值送OUT 单元显示。
根据要求可以得到如下程序,地址和内容均为二进制数。
地址内容助记符说明00000000 00100000 ; START: IN R0 从IN 单元读入数据送R000000001 00000000 ; ADD R0,R0R0 和自身相加,结果送R000000010 00110000 ; OUT R0R0 的值送OUT 单元显示00000011 11100000 ; JMP START跳转至00H 地址00000100 0000000000000101 01010000 ; HLT停机三、项目要求及分析:1. 试修改现有的指令系统,将加法指令的功能修改为R0的内容和某个存储单元的内容相加;增加存数、取数和减法三条机器指令,指令助记符分别为STA、LAD 和SUB,指令操作码分别为十六进制的60、70和80。
简单模型机的微程序设计一.设计题目二.主要内容通常地谈,撰写微程序可以分为以下几步:1、设计机器的指令格式。
2、对所设计的指令进行分析,画出各指令的用微命令表示的微流程图。
不仅要画出每个对应一条微指令的功能框内的微命令,而且要初步确定该条微指令在控存中的微地址,以便于在设计微程序时确定前一条指令的次地址na字段和c字段的编码。
在这个过程中,一定要注意p(1)测试的规则以及指令高四位的编码。
3、根据微流程图的顺序,一个功能侧边一个功能框地确认各字段的编码,将这些字段女团即可构成一条条的微指令编码。
这些微指令的子集就是可以顺利完成所设计的指令功能的微程序。
当然这样设计的微程序有可能不完全正确,还须要进一步检查修正。
以上几步可以用脑、手、纸、笔即可完成。
4、对设计的微程序展开检查修正。
本模型机可以手动地用控制器将微程序输出机器的控存。
为了能够将要继续执行的指令输出主存,在微程序中必须精心安排一端适当的微程序;为了能够检查输出的指令与否恰当,也必须设计一段微程序。
三.具体要求1.通过采用作者研发的微程序分析和设计仿真软件,熟识了解的为基本模型机而设计的微程序的继续执行过程。
必须充份认知并恰当表述下些问题:(1)微程序中的微指令的各个字段的作用。
哪些字段是不译码的,哪些字段是直接译码的,哪些字段又可以看成是字段间接编码的。
答:不译码的是s3~b0字段;直接译码的是a、b、c字段;间接编码的是ua6~ua1。
(2)微程序中的微指令是否是顺序继续执行的,如果不是,那么次地址就是如何产生的。
什么情况下,次地址字段才就是将要继续执行的微指令的地址。
答:微程序中的微指令不是顺序执行的。
如果遇到p(1)测试时,则在每一条功能指令执行完后,进行一次p(1)测试,根据p(1)测试跳到下一条机器指令的微地址。
p (1)测试就是根据测试程序的机器指令中的8~5位和微程序的后六位进行或运算来实现分支,此次课程设计的微程序后六位设计为010000,则根据下面各功能的指令设计,in、add、sta、out、jmp、mov、nadd、and、or、xor的入口地址分别为10h、11h、12h、13h、14h、15h、16h、17h、18h、19h。
计算机组成原理课程设计---——简单模型机的微程序设计计算机组成原理课程设计------- 简单模型机的微程序设课程设计报告课程名称:计算机组成原理系另!j: _______________________ 姓名:________________________ 班级:________________________ 学号:________________________ 成绩:________________________ 指导教师:_____________________ 开课时间:20-20学年第学期设计题目计算机组成原理课程设计——简单模型机的微程序设计 :.主要内容通过课程设计更清楚地理解下列基本概念: 1. 计算机的硬件基本组成; 2. 计算机中机器指令的设计 3. 计算机中机器指令的执行过程;4. 微程序控制器的工作原理。
5. 微指令的格式设计原则;在此基础上设计可以运行一些基本机器指令的微程序的设计匚具体要求置数指令IN 置数开关SW (KDO ?KD7)的状态—RO 加法指令存数指令输出指令跳转指令或指令OR RD, 新加法指令 NADD (addrl) , (addr2): (addr 1)加异或指令 XOR (addrl) , (addr2): (addrl)异或 (addr2)— (RD)RO, , (addr): (R0)+ (addr)— (RO) RO, (addr): (R0)-> (addr) (addr): (addr)输出设备“LED" (addr): add rfPC RS : (RS)或(RD) — (RD) AD D STA OU T (addr2) f (RD)与指令AND RD, RS: (RS)与(RD) — (RD)求反指令NOT RD: /(RD) — (RD)四.进度安排共1?5周11天的时间,具体安排如下:广2天:对整个课程设计的内容做详细的讲解,并辅导学生完成课程设计指导书的学习,使其掌握和理解课程设计的核心内容;3 ~5天:学生在机房学习熟悉课程设计所使用的仿真软件,并深入了解该仿真软件所实现的模型机的指令系统(原有的5条指令)和微程序设计方法;6~9天:在原有5条机器指令的基础上增加实现下述各功能的机器指令,试设计相应的机器指令的格式并改写原来的微程序使其可以运行所有的机器指令。
实验项目CPU与简单模型机设计实验实验时间2015年11月7日实验目的(1) 掌握一个简单CPU 的组成原理。
(2) 在掌握部件单元电路的基础上,进一步将其构造一台基本模型计算机。
(3) 为其定义五条机器指令,编写相应的微程序,并上机调试掌握整机概念。
实验设备PC机一台,TD-CMA实验系统一套实验原理本实验要实现一个简单的CPU,并且在此CPU 的基础上,继续构建一个简单的模型计算机。
CPU 由运算器(ALU)、微程序控制器(MC)、通用寄存器(R0),指令寄存器(IR)、程序计数器(PC)和地址寄存器(AR)组成,如图5-1-1 所示。
这个CPU 在写入相应的微指令后,就具备了执行机器指令的功能,但是机器指令一般存放在主存当中,CPU 必须和主存挂接后,才有实际的意义,所以还需要在该CPU 的基础上增加一个主存和基本的输入输出部件,以构成一个简单的模型计算机。
图5-1-1 基本CPU 构成原理图除了程序计数器(PC),其余部件在前面的实验中都已用到,在此不再讨论。
系统的程序计数器(PC)和地址寄存器(AR)集成在一片CPLD 芯片中。
CLR 连接至CON 单元的总清端CLR,按下CLR 按钮,将使PC 清零,LDPC 和T3 相与后作为计数器的计数时钟,当LOAD为低时,计数时钟到来后将CPU 总线上的数据打入PC。
如图5-1-2所示。
图5-1-2 程序计数器(PC)原理图本模型机和前面微程序控制器实验相比,新增加一条跳转指令JMP,共有五条指令:IN(输入)、ADD(二进制加法)、OUT(输出)、JMP(无条件转移),HLT(停机),其指令格式如下(高4位为操作码):其中JMP 为双字节指令,其余均为单字节指令,********为addr 对应的二进制地址码。
微程序控制器实验的指令是通过手动给出的,现在要求CPU 自动从存储器读取指令并执行。
根据以上要求,设计数据通路图,如图5-1-3 所示。
课程名称:计算机组成原理实践名称:模型机综合实验及微程序设计姓名:专业:计算机科学与技术班级:学号:计算机科学与技术学院实验教学中心2016年12月07日目录实验项目名称:模型机综合实验及微程序设计 (2)一、实验目的 (2)二、实验内容 (2)三、实验用设备仪器及材料 (2)四、实验原理 (2)(一)模型机总体结构 (2)(二)模型机寻址方式 (4)(三)微程序控制器组成及原理 (4)(四)模型机指令集 (4)(五)设计指令/微指令系统 (5)五、实验操作步骤 (5)实验1:数据传送实验/输入输出实验 (5)实验2:数据运算实验(加/减/与/或) (8)实验3:移位/取反实验 (9)实验4:转移实验 (11)实验5:编写微指令 (13)六、实验结果分析 (17)(一)实验过程中部分截图 (17)(二)心得体会 (20)实验项目名称:模型机综合实验及微程序设计一、实验目的1.了解伟福CP2000实验仪及软件的工作环境。
2.了解微指令系统的工作原理及工作方式。
3.自己设计简单指令与微指令,在机器上运行测试程序验证结果。
二、实验内容1.数据传送实验/输入输出实验2. 数据运算实验(加/减/与/或)3. 移位/取反实验4.转移实验5. 编写微指令三、实验用设备仪器及材料COP2000计算机组成原理实验仪、计算机四、实验原理(一)模型机总体结构COP2000 模型机包括了一个标准CPU 所具备所有部件,这些部件包括:运算器ALU、累加器A、工作寄存器W、左移门L、直通门D、右移门R、寄存器组R0-R3、程序计数器PC、地址寄存器MAR、堆栈寄存器ST、中断向量寄存器IA、输入端口IN、输出端口寄存器OUT、程序存储器EM、指令寄存器IR、微程序计数器uPC、微程序存储器uM,以及中断控制电路、跳转控制电路。
其中运算器和中断控制电路以及跳转控制电路用CPLD 来实现,其它电路都是用离散的数字电路组成。
微程序控制部分也可以用组合逻辑控制来代替。
实验四简单模型机的设计与实现一、实验目的1. 理解并掌握指令格式、寻址方式、指令系统的设计方法;2. 进一步理解数据通路,提高分析、编排指令执行流程的能力;3. 掌握组合逻辑控制器的设计方法,理解模型计算机的整机工作过程;4. 提高基于Verilog HDL的硬件电路的设计、调试、测试能力。
二、实验设备与环境DE2-70实验开发版,QuartusⅡ开发软件。
三、实验内容与步骤1. 模型机的基本结构分析。
模型机的结构图如图1所示。
要求:分析模型机的构成模块,包括运算器、存储器、寄存器、程序计数器PC、地址寄存器AR、指令寄存器IR,明确各部件的工作特性;分析模型机的总线互联结构,明确各部件间的信息通路。
依据分析结果填写表1.表1 部件功能及通路表2. 分析指令流程,手动执行指令。
memContent.hex(存储器初始化文件)文件中已存储了两条机器指令代码,依据上边步骤中对数据通路的分析,以及下边给出的指令说明、存储器初始化文件内容,手动发出控制命令,完成从取指到指令执行的整个过程。
记录过程,填写表2。
指令格式:单字长一地址指令,采用直接寻址,所以可直接访问的地址范围为32B,并将REG_A作为累加器。
位:指令功能LDA X (X)->AADD X (A)+(X)->A存储器初始化文件内容://指令地址(十六进制) 指令代码(二进制) 助记符说明00 110 10000 LDA X // X=(10)1601 001 10001 ADD X // X=(11)16//数据地址(十六进制) 数据(二进制)10 0011 001111 0010 0000图1 模型机结构图表2-1 指令流程控制信号表2-2指令流程控制信号及输出信号3. 实现模型机的自动连续运行。
(1)设计指令,包括指令格式、寻址方式,并分析编排指令流程。
要求设计的指令能够通过编写程序对两个操作数实现至少两种运算,并实现HLT、IN、OUT、STA等指令,形成较完备的指令系统。
课程设计报告课程设计名称:简单模型机的微程序设计系:三系学生姓名:班级:软件二班学号:成绩:指导教师:开课时间: 2012学年 2 学期一、设计题目计算机组成原理课程设计——简单模型机的微程序设计二、主要内容1.通过使用作者开发的微程序分析和设计仿真软件,熟悉本文介绍的为基本模型机而设计的微程序的执行过程。
必须充分理解并正确解释下列问题:⑴微程序中的微指令的各个字段的作用。
哪些字段是不译码的,哪些字段是直接译码的,哪些字段又可以看成是字段间接编码的。
⑵微程序中的微指令是否是顺序执行的,如果不是,那么次地址是如何产生的。
什么情况下,次地址字段才是将要执行的微指令的地址。
⑶在微程序中如何根据机器指令中的相关位实现分支,据此,在设计机器指令时应如何避免和解释其它指令的微指令的微地址冲突。
⑷哪些微指令是执行所有指令都要用到的。
⑸解释一条机器指令的微程序的各条微指令的微地址是否连续这些微指令的微地址的安排的严重原则是什么⑹为什么读写一次内存总要用两条微指令完成⑺机器程序中的用到的寄存器是R0,是由机器指令中哪些位决定的如果要用R1或R2,是否要改写微程序或改写机器指令如果要,应如何改写2.在原有5条机器指令的基础上增加实现下述各功能的机器指令,试设计相应的机器指令的格式并改写原来的微程序使其可以运行所有的机器指令。
新增加的机器指令的功能是:①或指令OR RD,RS:(RS)或(RD)→(RD)②减法指令SUB RD,(addr):(RD)减(addr)→(RD)③异或指令XOR (addr1),(addr2):(addr1)异或(addr2)→(RD)④与指令AND RD,RS:(RS)与(RD)→(RD)⑤求反指令 NOT RD:/(RD) →(RD)其中的RS、RD可以是R0、R1、R2中的任何一个。
三、具体要求写出课程设计报告,解释你的设计思想,比如,如何实现各指令的分支,如何重新安排各指令对应的微程序中的微指令的微地址,如何设计各微指令的编码。
要求画出用微命令表示的微流程图并适当加以解释。
四、进度安排共周11天的时间,具体安排如下:1~2天:对整个课程设计的内容做详细的讲解,并辅导学生完成课程设计指导书的学习,使其掌握和理解课程设计的核心内容;3~5天:学生在机房学习熟悉课程设计所使用的仿真软件,并深入了解该仿真软件所实现的模型机的指令系统(原有的5条指令)和微程序设计方法;6~9天:在原有5条机器指令的基础上增加实现下述各功能的机器指令,试设计相应的机器指令的格式并改写原来的微程序使其可以运行所有的机器指令。
10~11天:根据自己设计的微程序系统写出相应的课程设计实验报告五、成绩评定六、正文(1)模型机的CPU及系统硬件基本模型机的CPU及系统硬件组成如图1所示:图1 模型机的CPU及系统硬件组成各部件的功能及控制信号如下:运算器由算逻部件ALU(8位)、暂存器DR1、DR2及通用寄存器等组成。
ALU 的功能控制信号为S3、S2、S1、S0、M、CN,可以实现48种算术和逻辑运算功能,如图2所示。
图2 74LS181功能表运算器为单总线结构,其输入端分别连接到暂存器DR1和DR2,其装入数据的微命令分别为LDDR1和LDDR2,当它们为1电平时由节拍脉冲T4将数据总线上的数据装入相应的暂存器。
R0、R1、R2为通用寄存器。
R0的装入数据的微命令为LDR0,R1的装入数据的微命令为LDR1,R2的装入数据的微命令为LDR2。
299为实现移位运算的装置,当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时,数据总线上的数据送到数码管显示。
(2)基本模型机的指令设计根据基本模型机的硬件设计五条机器指令:外设输入指令IN、二进制加法指令ADD、存数指令STA、输出到外设指令OUT、无条件转移指令JMP。
指令格式如下:助记符机器指令码说明IN 0101 0000 ;置数开关SW(KD0~KD7)的状态→R0 ADD addr 0110 0000 ××××××××;(R0)+(addr)→(R0)STA addr 0111 0000 ××××××××;(R0)→(addr)OUT addr 1000 0000 ××××××××;(addr)→输出设备"LED"JMP addr 1001 0000 ××××××××;addr→PCOR 1010 0100 ;(RS)or (RD)→(RD)SUB addr 1011 1100 ××××××××;(RD) - (addr)→(RD)XOR 1100 1100 ;(addr1)xor (addr2)→(RD)AND 1101 0100 ;(RS)and (RD)→(RD)NOT 1110 1100 ;/(RD)→(RD)(3)指令微流程分析原有的五条指令的微流程如下图所示:总微流程如图所示:NOTANDXORSUBOUTSTAADDIN该图是运行微程序的数据流图,实际上并没有分解到微命令一级。
为了设计微程序,还应该根据此图进一步细化到微命令(微操作)一级。
例如PC→AR,实际上应该同时发出PCB、LDAR两个微命令;PC+1应该发出LDPC微命令;SW→R0应该发出SWB、LDRi(与指令码中的相应位共同译码产生LDR0微命令)两个微命令;RAM→BUS应该发出CE有效和读存储器两个微命令;BUS→RAM应该发出CE有效和写存储器两个微命令;R0→××是指R0B微命令有效等等。
据此可将该图改画成下图:NOTAND XOR SUB OUT STA ADD IN(4)基本模型机的微指令格式本模型机的微指令长共24位,基本采用水平型微指令字段直接编码方式,其控制位顺序如下:其中,S3、S2、S1、S0、M、CN(μA24~μA19位)为ALU运算类型的控制字段,其输出不需译码直接连接到ALU的对应控制信号即可。
需要指出的是,该字段无论如何编码,ALU都要进行某种运算,但是只要不发出ALUB微命令,ALU 的运算结果都不会送到数据总线上,也就是不会对其它部件的操作产生任何影响。
在设计微程序时,只要不发ALUB微命令,该字段的编码可以任意设置。
μA18位为输出设备(LED)和主存(RAM)的读写控制字段,该位为0,表示读;该位为1,表示写。
μA17~μA16位(B1B0)字段用于选择外设和主存。
B1B0=01选择主存(CE 有效),B1B0=00选择输入数据开关(SWB有效),B1B0=10选择输出LED(LEDB 有效)。
B1B0=11对本模型机无效,即没有选中任何外设或主存。
对本模型机而言,上述三位可以看成一个字段,其编码的含义如下:uA18uA17uA16=000或100 从输入开关SW读数据uA18uA17uA16=001 从贮存读数据uA18uA17uA16=101 向主存写数据uA18uA17uA16=110 向LED 写数据其他组合无意义。
编写次微程序时采用011表示无效。
μA6~μA1位为6位的预置后续微地址,“预置”的含义是该字段与微地址控制字段以及指令寄存器等部件的内容共同产生下一条微指令在控存中的微地址。
A 、B 、C 三个译码字段,分别由三组译码控制电路译码产生各种微命令。
A 字段用于产生各寄存器的数据装入微命令,各种编码的含义如上表所示。
由于模型机有三个通用寄存器(R0、R1、R2),它们都有相应的数据装入微命令,为了不增加微指令的宽度,该字段只设计了一个LDRi 命令。
为了区分究竟是哪个寄存器装入数据,要根据指令寄存器的最低两位(I 1I 0)的状态而定:当I 1I 0=00时,发LDR0微命令;I 1I 0=01时,发LDR1微命令;I 1I 0=10时,发LDR2微命令;I 1I 0=11时,对本模型机无效;B 字段中的RSB 、RDB 、RIB 分别为源寄存器的内容送数据总线、目的寄存器送数据总线及变址寄存器送数据总线的微命令,其功能是根据机器指令来选通三个工作寄存器R0、R1及R2之一,将其内容送数据总线。
具体规则如下:如果RDB 有效,根据指令寄存器的最低两位(I 1I 0)的状态决定哪个寄存器的内容送数据总线:当I 1I 0=00时,发R0B 微命令;I 1I 0=01时,发R1B 微命令;I 1I 0=10时,发R2B 微命令;I 1I 0=11时,对本模型机无效;如果RSB 有效,根据指令寄存器(I 3I 2)两位的状态决定哪个寄存器的内容送数据总线:当I 3I 2=00时,发R0B 微命令;I 3I 2=01时,发R1B 微命令;I 3I 2=10时,发R2B 微命令;I 3I 2=11时,对本模型机无效;本模型机的变址寄存器固定为R2,故RIB 有效就是R2B 有效。
基于上述字段的设计规则,在设计机器指令格式时,必须将目的寄存器的编码放在指令的第一个字节的I 1I 0位置,将源寄存器的编码放在指令的第一个字节的I 3I 2位置,且编码必须符合上述规则,即00代表寄存器R0,01代表寄存器R1,10代表寄存器R2。