简单模型机的微程序设计
- 格式:doc
- 大小:25.00 KB
- 文档页数:15
计算机组成原理课程设计报告JUC2模型机的微程序设计姓名学号专业指导教师江苏大学计算机学院2015年 6月 30日11熟悉微程序的设计和调试方法1.1 目标要求(1) 掌握微程序的设计方法(2) 熟悉利用调试软件运行、调试微程序的方法1.2 微程序设计1.2.1取指令的微程序设计微地址(H) 微指令(H)微指令字段(H)微命令F0 F1 F2 F3 F4 F5 F6 F7 F8 F9000 20080001 1 0 0 0 2 0 0 0 0 001 PCoe, ARce001 000690020 0 0 0 1 2 1 1 0 002 ARoe′, RD, DRce′, PCinc 002 CC000003 6 3 0 0 0 0 0 0 0 003 DRoe, IRce003 000004040 0 0 0 0 0 0 0 2 004 BM21.2.2取目的操作数的微程序设计(1) 直接寻址的微程序微地址(H) 微指令(H)微指令字段(H)微命令F0 F1 F2 F3 F4 F5 F6 F7 F8 F9006 00000A28 0 0 0 0 0 0 0 0 5 02C BM502C 20080033 1 0 0 0 2 0 0 0 0 033 PCoe ,ARce033 00069034 0 0 0 0 1 2 1 1 0 034 ARoe’ ,RD,DRce’,PCinc 034 C0080035 6 0 0 0 2 0 0 0 0 035 DRoe,ARce035 000610360 0 0 0 1 2 0 1 0 036 ARoe’,RD,DRce’036 D4000007 6 4 0 0 0 0 0 0 0 007 DRoe,TRce1.2.3执行阶段的微程序设计(1) INC指令的微程序微地址(H) 微指令(H)微指令字段(H)微命令F0 F1 F2 F3 F4 F5 F6 F7 F8 F9071 1A700E50 0 6 9 3 0 0 0 0 0 050 INC,SVce,PSWce (2)保存运算结果的微程序微地址(H) 微指令(H)微指令字段(H)微命令F0 F1 F2 F3 F4 F5 F6 F7 F8 F9051 60030052 3 0 00 0 3 0 0 0 052 Soe,DRce052 00052200 5 0 0 0 0 1 0 2 0 000 ARoe,DRoe’,WR(2) JMP指令的微程序微地址(H) 微指令(H)微指令字段(H)微命令F0 F1 F2 F3 F4 F5 F6 F7 F8 F9070 A4000200 5 1 0 0 0 0 0 0 1 000 ARoe,PCce (3) DEC指令的微程序微地址(H) 微指令(H)微指令字段(H)微命令F0 F1 F2 F3 F4 F5 F6 F7 F8 F9072 1AB00E50 0 6 A 3 0 0 0 0 7 050 DEC, SVce, PSWce1.3 调机程序设计程序 1-10030: 0460; INC 0040H0031: 0040;0032: 0420; JMP 0030H0033: 0030;程序1-20030: 04A0; DEC FF02H0031: FF02;0032: 0420; JMP 0030H0033: 0030;1.5小结今天是课设第一天,在开始之前,老师对大致的过程做了一些讲解。
CPU与简单模型机设计实验1.实验目的和背景CPU是计算机的核心部件,负责执行各种运算和指令。
在现代计算机系统中,CPU的设计日益复杂和精密,其中包含了大量的逻辑单元、寄存器、控制器等组件。
本实验旨在通过设计一个简单的模型机,使学生们对CPU的基本原理和运作方式有一个直观的理解,并通过实际操作加深对计算机系统的理解。
2.实验内容和步骤本实验将分为以下几个步骤来完成:1)硬件设计:首先,根据CPU的基本原理和结构,设计一个简单的模型机,包括运算单元、寄存器、控制器等组件。
可以参考经典的冯·诺伊曼结构,根据实际需要添加一些功能模块。
2)指令设计:设计若干简单的指令集,包括算术运算、逻辑运算、跳转等指令。
指令集的设计应考虑到CPU的硬件结构,使其能够有效地执行这些指令。
3)程序编写:编写一些简单的程序,包括对指令集的测试、算术运算、逻辑运算等,以验证CPU的正确性和性能。
4)实验报告:总结实验中的设计过程、实现方法、遇到的问题以及解决方案,对设计的CPU进行性能评估和改进。
3.实验材料和工具1)计算机:用于进行程序编写和模拟实验,可以选择使用现有的模拟器或者在线平台。
2)模型机器材料:包括集成电路芯片、面包板、导线、电阻、电容等,用于搭建实验平台。
3)编程工具:用于程序编写和调试,可以选择使用C语言、Python 等高级语言。
4.实验预期结果和意义通过本次实验,学生们将能够深入了解CPU的基本原理和工作原理,掌握计算机系统的设计和实现方法。
同时,通过实际操作,学生们可以锻炼自己的设计能力、解决问题的能力和团队合作能力。
这对于深入理解计算机科学的理论知识、提高实践能力和培养创新思维具有重要意义。
5.实验总结通过本次实验,我对CPU的工作原理和计算机系统的设计有了更深入的理解,掌握了一定的设计和实现方法。
在实验过程中遇到了一些问题,如指令集设计不够合理、硬件连接错误等,通过团队合作和思考,最终得以解决。
内蒙古师范大学计算机与信息工程学院《计算机组成原理》课程设计报告题目:_____简单模型机的组成与程序运行_____________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按微指令格式,参照微程序流程图将每条微指令代码化,译成二进制微代码。
《计算机组诚愿理》实验报告实验序号:04 实验项目名称: CPU 与简单模型机设计实验(2)载入指令文件,进行验证:(3)运行指令(程序):将时序与操作台单元的开关KK1 和KK3 置到‘运行’档,实验类型选择简单模型机,CON单元中按CLR清零,检测结果是否与预测的一致。
四、实验结果与数据处理(过程分析):(1)启动IN单元,向其中输入操作数(这里值为03);(2)启动程序计数器(PC),然后自动进行加1操作,将指令地址存放到地址寄存器(AR);(3)从存储器当中读取指令,并将它存放到指令寄存器(IR)当中,然后对指令进行编译处理,形成控制信号,来控制各个部件的工作;(4)启动读操作,将IN单元当中操作数(03)读入到R0寄存器;(5)接着从PC中取出第二条指令的地址,并自动加1,并将它存放到AR当中;(6)从存储器当中取出第二条指令,并将它存放到IR当中,并进行编译;(7)将存储器R0中的03值送到A和B当中;(8)启动ALU运算器,执行加操作,并将运算结果送往R0当中;(8)同样从PC当中第三条指令(将运算结果送往OUT单元显示),取指令流程与上述类似;执行操作,将运算结果送往OUT单元进行显示;五、分析与讨论(心得)答:这是一个简单的CPU是由运算器(ALU)、微程序控制器(MC)、通用寄存器(R0),指令寄存器(IR)、程序计数器(PC)和地址寄存器(AR)组成;这个实验是了解了一些指令::IN(输入)、ADD(二进制加法)、OUT(输出)、JMP (无条件转移),HLT(停机);再者,就是观察运行载入的指令文件的过程,通过数据通路图整个过程的变化即数据的流向及处理情况,尝试着去理解CPU在MC的控制下CPU的其他部件(ALU RO IR PC AR)的调用和处理的细节;通过这。
简单模型机的微程序设计一.设计题目二.主要内容通常地谈,撰写微程序可以分为以下几步: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。
《计算机组成原理》实验报告学院:计算机学院专业:班级学号:学生姓名:实验日期:指导老师:五邑大学计算机学院计算机组成原理实验室实验五CPU与简单模型机实验报告一、实验目的(1) 掌握一个简单CPU 的组成原理。
(2) 在掌握部件单元电路的基础上,进一步将其构造一台基本模型计算机。
(3) 为其定义五条机器指令,编写相应的微程序,并上机调试掌握整机概念。
二、实验设备PC机一台,TD-CMA 实验系统一套。
三、实验原理本实验要实现一个简单的 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。
本模型机和前面微程序控制器实验相比,新增加一条跳转指令JMP,共有五条指令:IN (输入)、ADD(二进制加法)、OUT(输出)、JMP(无条件转移),HLT(停机),其指令格式如下(高4位为操作码):助记符机器指令码说明IN 0010 0000 IN R0ADD 0000 0000 R0 + R0 R0OUT 0011 0000 R0 OUTJMP addr 1110 0000 ******** addr PCHLT 0101 0000 停机其中JMP 为双字节指令,其余均为单字节指令,********为addr 对应的二进制地址码。
计算机组成原理课程设计---——简单模型机的微程序设计计算机组成原理课程设计------- 简单模型机的微程序设课程设计报告课程名称:计算机组成原理系另!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条机器指令的基础上增加实现下述各功能的机器指令,试设计相应的机器指令的格式并改写原来的微程序使其可以运行所有的机器指令。
课程名称:计算机组成原理实践名称:模型机综合实验及微程序设计姓名:专业:计算机科学与技术班级:学号:计算机科学与技术学院实验教学中心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、对所设计的指令进行分析,画出各指令的用微命令表示的微流程图。
不仅要画出每个对应一条微指令的功能框内的微命令,而且要初步确定该条微指令在控存中的微地址,以便于在设计微程序时确定前一条指令的次地址NA字段和C字段的编码。
在这个过程中,一定要注意P 测试的规则以及指令高四位的编码。
3、根据微流程图的顺序,一个功能框一个功能框地确定各字段的编码,将这些字段组合即可形成一条条的微指令编码。
这些微指令的集合就是可以完成所设计的指令功能的微程序。
当然这样设计的微程序有可能不完全正确,还需要进一步检查修改。
以上几步可以用脑、手、纸、笔即可完成。
4、对设计的微程序进行检查修改。
本模型机可以手动地用开关将微程序输入机器的控存。
为了能将要执行的指令输入主存,在微程序中必须安排一端相应的微程序;为了能检查输入的指令是否正确,也要设计一段微程序。
三. 具体要求 1.通过使用作者开发的微程序分析和设计仿真软件,熟悉介绍的为基本模型机而设计的微程序的执行过程。
必须充分理解并正确解释下些问题:微程序中的微指令的各个字段的作用。
哪些字段是不译码的,哪些字段是直接译码的,哪些字段又可以看成是字段间接编码的。
答:不译码的是S3~B0字段;直接译码的是A、B、C字段;间接编码的是uA6~uA1。
微程序中的微指令是否是顺序执行的,如果不是,那么次地址是如何产生的。
什么情况下,次地址字段才是将要执行的微指令的地址。
答:微程序中的微指令不是顺序执行的。
如果遇到P测试时,则在每一条功能指令执行完后,进行一次P测试,根据P测试跳到下一条机器指令的微地址。
P测试就是根据测试程序的机器指令中的8~5位和微程序的后六位进行或运算来实现分支,此次课程设计的微程序后六位设计为010000,则根据下面各功能的指令设计,IN、ADD、STA、OUT、JMP、MOV、NADD、AND、OR、XOR的入口地址分别为10H、11H、12H、13H、14H、15H、16H、17H、18H、19H。
如果没有遇到P测试的话,那么次地址即为该微指令地址字段所指向的微地址。
在微程序中如何根据机器指令中的相关位实现分支,据此,在设计机器指令时应如何避免和解决与其它指令的微指令的微地址冲突。
答:微程序中是根据测试程序的机器指令中的8~5位和微程序中后六位进行“或”运算来实现分支的。
避免和解决与其它指令的微指令的微地址冲突的方法就是使用不同没有被其他微指令用过的微地址。
哪些微指令是执行所有指令都要用到的。
答:01:10 02:00 解释一条机器指令的微程序的各条微指令的微地址是否连续?这些微指令的微地址的安排的严重原则是什么?答:不连续。
严重原则是将各条机器指令的入口微地址置于地址连续的地址单元中,避免其它微指令乱用这一段地址。
为什么读写一次内存总要用两条微指令完成?答:因为W/R只有两种状态,即要么是读,要么是写,所以,要完成一次读写总要用两条微指令完成。
机器程序中用到的寄存器是R0,是机器指令中哪些位决定的?如果要用R1或R2,是否要改写微程序或改写机器指令?如果要,应如何改写?答:是机器指令中的2~1位决定。
如果要用到R1或R2,那么不需要改写微程序,但得改写机器指令的低两位,即2~1位,若要用到R1,则将其改为01,若要用R2,则将其改为10。
2.根据基本模型机的硬件设计五条机器指令:外设输入指令IN、二进制加法指令ADD、存数指令STA、输出到外设指令OUT、无条件转移指令JMP。
并且增添下列五条指令:①新加法指令NADD RD,RS:(RS)加(RS)→(RD) ②或指令OR RD,RS:(RS)或(RD)→(RD) ③异或指令XOR RD,RS:(RS)异或(RD)→(RD)④与指令AND RD,RS:(RS)与(RD)→(RD) ⑤数据传送指令MOV RD,RS:(RS)→(RD) 四.进度安排共周11天的时间,具体安排如下:1~2天:对整个课程设计内容作详细的讲解,并辅导学生完成课程设计指导书的学习,使其掌握和理解课程设计的核心内容。
3~5天:学生在机房学习熟悉课程设计所使用的仿真软件,并深入了解该仿真软件所实现的模型机的指令系统和微程序的设计方法。
6~9天:在原有5条机器指令的基础上增加实现下述各功能的机器指令,试设计相应的机器指令的格式并改写原来的微程序使其可以运行所有的机器指令。
10~11天:根据自己设计的微程序系统写出相应的课程设计报告。
五.成绩评定 1 正文一. 课程设计的目的 1. 计算机的硬件基本组成 2. 计算机中机器指令的设计 3. 计算机中机器指令的执行过程 4. 微程序控制器的工作原理 5. 微指令的格式设计原则在此基础上设计可以运行一些基本机器指令的微程序的设计二. 课程设计的内容1. 编写基本模型机的指令基本模型机的指令设计:助记符机器指令码说明IN0000 0000;置数开关SW的状态→R0 ADD addr0001 0000 ××××××××;(R0)+(ad dr)→ STA addr 0010 0000 ××××××××;(R0)→ OUT addr0011 0000 ××××××××;(addr)→输出设备\JMP addr 0100 0000 ××××××××;addr→PC MOV0101RS RD;RS:(RS)→(RD) NADD0110RSRD;(RS)+(RS)→ AND 0111RS RD;and (RD)→ OR 1000RS RD;or (RD)→ XOR 1001RS RD;xor (RD)→ 说明:十条指令分别为外设输入指令、二进制加法指令、存数指令、输出到外设指令、无条件转移指令、寄存器间传数指令、新加法指令、与指令、或指令、异或指令。
××××××××为要读写的主存储器单元的二进制地址码。
2 2. 根据基本模型机的指令画流程图、IN 10 SW→ R0 ADD 11 PC→ AR PC+1 03 RAM→BUS BUS→AR 04 →BURAMSTA 12 PC→AR PC+1 07 RAM→BUS BUS→AR 08 R0→BUS BUS→RAM OUT 13 PC→AR PC+1 09 RAM→BUS BUS→AR 0A RAM →BUS BUS→DR1 0B 01 DR1→LED 01 PC → AR PC+1 02 RAM→ BUS BUS → IR P(1)测试JMP 14 PC→AR PC+1 MOV 15 RS→RD NAND 16 RS→ DR1 AND 17 RS→ DR1OR 18 RS→ DR1 XOR 19 RS→ DR1 0D 0C 01 (DR1+DR1)→RD 01 0E RD→ DR2 1A RD→ DR2 1B (DR1或RD 1C RD→ DR2 01 RAM→BUS BUS→PC01 0F (DR1与RD 1D (DR1异或DR2) → RD S →DR2 BUS 05 R0→ DR106 (DR1+DR2) →R001 DR2) → DR2) → 01 01 01 01 流程图3 IN 10 SWB 有效LDRi ADD 11 PCB LDAR LDPC 03 CE有效W/R=0 LDAR 04 CE有效W/R=0 LDDR2 05 R0B有效LDDR1 06 ALU做加法LDRi ALUB01 PCB LDAR LDPC 02 CE有效W/R=0 LDIR P(1)测试STA 12 PCB LDAR LDPC 07 CE有效W/R=0 LDAR 08 R0B CE有效W/R=1 OUT 13 PCB LDAR LDPC JMP 14 PCB LDAR LDPC 0C MOV 15 RSB LDRi NADD 16 RSB LDDR1 AND 17 RSB LDDR1 0E RDB LDDR2 0F OR 18RSB LDDR1 1A RDB LDDR2 1B ALU 做“或” LDRi ALUB XOR 19 RSB LDDR1 1C RDB LDDR2 1D ALU做“异或” LDRi ALUB 01 09 CE有效W/R=0 LDAR 0A CE有效W/R=0 LDDR1 0B 01 0D ALU做新加法LDRi ALUB 01 CE有效W/R=0 LOAD 01 ALU做“与” LDRi ALUB 01 ALUB LEDB ALU=A W/R=1 01 01 01 01流程图01 43. 根据基本模型机微指令格式按流程图顺序写出微程序代码:编写的机器指令代码如下: 01:10 02:00 03:00 04:11 05:10 06:11 07:00 08:01 09:10 0A:11 0B:01 0C:11 0D:11 0E:11 0F:11 10:11 11:11 12:11 13:01 14:00 15:11 16:01 17:10 18:10 19:00 1A:11 1B:1111000000001 1C:11 1D:11 5 下面是利用该软件设计的微程序编码及各条微指令的功能分析:24 23 22 21 20 19S3 S2 S1 S0 M Cn 01:000000无效02:000000无效03:000000无效04:000000无效05:000000无效06:100101 ALU作加法07:000000无效08:000000无效09:000000无效0A:000000无效0B:000001 ALU=A 0C:000000 无效0D:110001 ALU 0E:000000 无效0F:101111 ALU与10:000000无效11:000000无效12:000000无效13:000000无效14:000000无效18 17 16 111 无效15 14 13 12 11 10 9 8 7 B 110 PCB 000 无效000 无效000 无效010 RDB 101 ALUB 000 无效001 RSB 000 无效000 无效101 ALUB 000 无效101 ALUB 010 RDB 101 ALUB 000 无效110 PCB 110 PCB 110 PCB 110 PCB 6 6 5 4 3 2 1 uA6 uA5 uA4 uA3 uA2 uA1 000010 转微地址:02 010000 转微地址:NA或WEB1 B0 A 110 LDAR C 110 LDPC 001 P(1) 000 无效000 无效000 无效000无效000 无效000 无效000 无效000 无效000 无效000 无效000 无效000 无效000 无效000 无效110 LDPC 110 LDPC 110 LDPC 110 LDPC 001 100 从主存读LDIR 001 110 从主存读LDAR 001 011 从主存读LDDR2 111 无效111 无效010 LDDR1 001 LDRi IR 000100 转微地址:04 000101 转微地址:05 000110 转微地址:06 000001 转微地址:01 001000 转微地址:08 000001 转微地址:01 001010 转微地址:0A 001011 转微地址:0B 000001 转微地址:01 000001 转微地址:01 000001 转微地址:01 001111 转微地址:0F 000001 转微地址:01 000001 转微地址:01 000011 转微地址:03 000111 转微地址:07 001001 转微地址:09 001100 转微地址:0C 001 110 从主存读LDAR 101 000 向主存写无效001 110 从主存读LDAR 001 010 从主存读LDDR1 110向LED000 写无效001 101 从主存读LOAD 111 无效111 无效111无效001 LDRi 011 LDDR2 001 LDRi 001 000 从SW读LDRi 111 110 无效LDAR 111 无效111 无效111 无效110 LDAR 110 LDAR 110 LDAR 15:000000无效16:000000无效17:000000无效18:000000无效19:000000无效1A:000000 无效1B:111011 ALU或1C:000000 无效1D:011011 ALU异或111 无效111 无效111 无效111 无效111 无效111 无效111 无效111 无效111 无效001 LDRi 010 LDDR1 010 LDDR1 010 LDDR1 010 LDDR1 011 LDDR2 001 LDRi 011 LDDR2 001 LDRi 001 RSB 001 RSB 001 RSB 001 RSB 001 RSB 010 RDB 101 ALUB 010 RDB 101 ALUB 000 无效000 无效000 无效000 无效000 无效000 无效000 无效000 无效000 无效000001 转微地址:01 001101 转微地址:0D 001110 转微地址:0E 011010 转微地址:1A 011100 转微地址:1C 011011 转微地址:1B 000001 转微地址:01 011101 转微地址:1D 000001 转微地址:01 4. 根据已经写好的微程序指令编写测试的机器指令程序编码:00H:00000000 ;IN R0:SW->R0验证IN指令,将SW状态赋给寄存器R0,此时R0=0 01H:00010000 ;ADD R0+31->R0验证AND指令,将寄存器R0里的数据和0E地址内容相加送给R0 ,此时R0=31 02H:00001110 ;地址0EH 03H:00100000 ;STA R0->10H验证STA指令,将R0里的内容送到地址10H 04H:00001111 ;地址0FH 05H:00110000 ;OUT验证STA指令,将地址10H内容输出到外设06H:00001111 ;地址0FH 07H:01010001 ;MOV R0->R1验证STA指令,将寄存器R0里的数据赋给寄存器R0,此时R0=31,R1=31 08H:01100100 ;NADD R1+R1->R0 验证NADD指令,将寄存器R1里的数据加上自身后赋给寄存器R0,此时R0=62 09H:01110100 ;(R0 and R1)->R0验证AND指令,将R0与R1内容赋给R0,此时R0=20 0AH:10000100 ;(R0 or R1)->R0验证OR指令,将R0或R1内容赋给R0,此时R0=31 0BH:10010100 ;(R0 xor R1)->R0验证OR指令,将R0异或R1内容赋给R0,此时R0=0 0CH:01000000 ;JMP->00H验证JMP指令,将地址0D的内容无条件转移给PC 0DH:00000000 0EH:00110001 ;31H 0FH: 三. 课程设计总结通过这次一个多星期的课程设计,使我对计算机组成原理这门课程有了深刻的理解。