微程序控制器的设计与实现
- 格式:doc
- 大小:1.14 MB
- 文档页数:18
一、设计题目16位机微程序控制器指令系统的设计与实现二、设计目的通过看懂教学计算机组合逻辑控制器中已经设计好并正常运行的几条基本指令(例如ADD、MVRR、OUT、MVRD、JR、RET等指令)的功能、格式和执行流程,然后自己设计微程序控制器中的29条基本指令和19条扩展指令的功能、格式和执行流程,并在教学计算机上实现、调试正确,达到以下目的:1、深入理解计算机控制器的功能、组成知识和各类典型指令的执行过程;2、对指令格式、寻址方式、指令系统、指令分类等建立具体的总体概念;3、学习微程序控制器的设计过程和相关技术。
三、设计说明控制器设计是学习计算机总体组成和设计的重要的部分。
要在TEC—2000教学计算机上完成这项设计,必须清楚懂得:1、TEC—2000教学机的微程序控制器主要由作为选件的微程序控制器小板和教学机大板上的7片GAL20V8组成。
2、TEC—2000教学机微程序控制器上要实现的全部基本指令和扩展指令的控制信号都是由微程序小板上的7片控制存储器给出的。
3、应了解监控程序的A命令只支持基本指令,扩展指令应用E命令将指令代码写入到相应的存储单元中;不能用T、P命令单步调试扩展指令,只能用G命令执行扩展指令。
4、要明白TEC—2000教学机支持的指令格式及指令执行流程分组情况;理解TEC—2000教学机中已经设计好并正常运行的各类指令的功能、格式、执行流程和控制信号的组成。
5、明确自己要实现的指令格式、功能、执行流程设计中必须遵从的约束条件。
6、为了完成扩展指令的功能、格式和执行流程,并在教学计算机上实现、调试正确的实验内容,具体过程包括:1)确定指令格式和功能,要受教学机已有硬件的约束,应尽量与已实现指令的格式和分类办法保持一致;2)划分指令执行步骤并设计每一步的执行功能,设计节拍状态的取值,应参照已实现指令的处理办法来完成,特别要注意的是,读取指令的节拍只能用原来已实现的,其他节拍的节拍状态也应尽可能的与原用节拍的状态保持一致和相近;3)在指令微程序表中填写每一个控制信号的状态值,注意要特别仔细,并有意识地体会这些信号的控制作用;4)将设计好的微码,装入控制存储器的相应单元;5)写一个包含你设计的指令的程序,通过运行该程序检查执行结果的正确性,来初步判断你的设计是否正确;如果有问题,通过几种办法查出错误并改正,继续调试,直到完全正确。
微程序控制器的设计与实现一、引言微程序控制器是一种用于指令执行的高级控制器,它通过微指令序列来控制计算机的操作。
本文将介绍微程序控制器的设计与实现方法,包括微程序的设计原理、控制存储器的组织结构、微指令的编码和执行过程等。
二、微程序设计原理微程序设计是一种将指令的操作码映射为一系列微指令的方法。
每个微指令对应着计算机的一条基本操作,例如存储器读取、算术运算等。
微指令序列通过微程序计数器来控制,实现指令的顺序执行。
三、控制存储器的组织结构控制存储器是存储微指令序列的重要组成部分。
它通常采用的是RAM (Random Access Memory)的结构,以实现对微指令的随机读取。
控制存储器的地址由微程序计数器提供,通过地址译码器来选择对应的微指令。
四、微指令的编码微指令的编码是将指令的操作码映射为一系列控制信号的过程。
常见的编码方式有水平编码和垂直编码两种。
水平编码将每个控制信号独立编码,占用较多的位数;垂直编码则将多个控制信号合并编码,占用较少的位数。
根据具体的设计需求,可以选择适合的编码方式。
五、微指令的执行过程微指令的执行过程包括指令的获取、解码和执行三个阶段。
指令的获取是通过微程序计数器提供的地址从控制存储器中读取相应的微指令;指令的解码是将微指令中的控制信号解码为具体的操作;指令的执行是根据解码后的控制信号执行相应的操作,例如读取存储器、进行算术运算等。
六、实现微程序控制器的步骤实现微程序控制器的步骤包括微指令的设计、控制存储器的编程、控制信号的生成等。
首先,根据指令集的要求设计微指令的格式和编码方式;然后,根据微指令的格式编程控制存储器,将微指令序列存储其中;最后,根据微指令的编码生成相应的控制信号,控制计算机的操作。
七、实例分析以一个简单的加法指令为例,介绍微程序控制器的实现过程。
首先,设计微指令的格式,包括操作码、源操作数、目的操作数等字段;然后,编程控制存储器,将微指令序列存储其中;最后,根据微指令的编码生成相应的控制信号,例如读取源操作数、读取目的操作数、进行加法运算等。
微程序控制器的设计与实现微程序控制器的设计原理是基于指令的操作码来进行控制的。
在计算机系统中,每个指令都有一个唯一的操作码,微程序控制器根据这个操作码来判断下一步应该执行的动作。
因此,微程序控制器的首要任务是建立一套指令操作码和对应控制动作的映射关系。
微程序控制器的设计可以分为两个阶段,即微程序的编写和微程序控制器的实现。
在微程序编写阶段,需要根据计算机系统的指令集架构和系统的需求来编写每一条指令的微程序。
在微程序控制器的实现阶段,先将每条指令的微程序编码成微指令,然后将这些微指令存储在微程序存储器中。
当执行一条指令时,微程序控制器会根据指令的操作码在微程序存储器中找到对应的微指令,并执行相应的控制动作。
微程序控制器的实现方法有多种,其中最常见的是使用ROM(只读存储器)作为微程序存储器。
ROM的每个地址存储一个微指令,可以根据操作码的位数确定ROM的大小。
此外,还可以使用RAM(随机存储器)作为微程序存储器,以便在微程序运行中修改微指令。
为了提高微程序控制器的执行效率,还可以采用流水线技术,将微程序的执行过程划分为多个阶段,并在流水线中同时执行多条指令的微程序。
微程序控制器的设计与实现对计算机系统的性能有着重要的影响。
首先,微程序控制器可以将指令执行过程分解成多个微指令,使得每个微指令只包含一个简单的控制动作,从而提高了指令执行的精确性和可靠性。
其次,微程序控制器对指令执行的控制粒度更细,可以实现更灵活的指令调度和并行处理,提高了指令级并行性。
此外,微程序控制器还可以根据指令的类型、频率和资源需求等特点,进行自适应的指令调度和资源分配,进一步提高系统的性能。
在评价微程序控制器的效果时,需要考虑其控制精确性、执行效率、资源利用率等方面的指标。
控制精确性是指微程序控制器是否能够准确执行指令的操作,以及是否能够正确处理异常情况和中断请求。
执行效率是指微程序控制器每秒钟能够执行多少条指令,衡量了微程序控制器的性能优劣。
北京建筑大学2015/2016 学年第二学期课程设计课程名称计算机组成原理综合实验设计题目微程序控制器设计与实现系别电信学院计算机系班级计141学生姓名艾尼瓦尔·阿布力米提学号完成日期二〇一六年七月八日星期五成绩指导教师(签名)计算机组成综合实验任务书➢实验目的1.融合贯通计算机组成原理课程,加深对计算机系统各模块的工作原理及相互联系(寄存器堆、运算器、存储器、控制台、微程序控制器)。
2.理解并掌握微程序控制器的设计方法和实现原理,具备初步的独立设计能力;3.掌握较复杂微程序控制器的设计、调试等基本技能;提高综合运用所学理论知识独立分析和解决问题的能力。
➢实验电路1. 微指令格式与微程序控制器电路2.微程序控制器组成仍然使用前面的CPU组成与机器指令执行实验的电路图,但本次实验加入中断系统。
这是一个简单的中断系统模型,只支持单级中断、单个中断请求,有中断屏蔽功能,旨在说明最基本的原理。
中断屏蔽控制逻辑分别集成在2片GAL22V10(TIMER1 和TIMER2)中。
其ABEL语言表达式如下:INTR1 := INTR;INTR1.CLK = CLK1;IE := CLR & INTS # CLR & IE & !INTC;IE.CLK= MF;INTQ = IE & INTR1;其中,CLK1是TIMER1产生的时钟信号,它主要是作为W1—W4的时钟脉冲,这里作为INTR1的时钟信号,INTE的时钟信号是晶振产生的MF。
INTS微指令位是INTS机器指令执行过程中从控制存储器读出的,INTC微指令位是INTC机器指令执行过程中从控制存储器读出的。
INTE是中断允许标志,控制台有一个指示灯IE显示其状态,它为1时,允许中断,为0 时,禁止中断。
当INTS = 1时,在下一个MF的上升沿IE变1,当INTC = 1时,在下一个MF的上升沿IE变0。
CLR信号实际是控制台产生的复位信号CLR#。
微程序控制器原理实验报告一、引言微程序控制器作为计算机系统的重要组成部分,扮演着指挥和控制计算机操作的关键角色。
本实验报告将对微程序控制器的原理进行探讨,并描述相关实验的设计、步骤、结果和分析。
二、微程序控制器的原理2.1 微程序控制器的概念微程序控制器是一种控制计算机操作的技术,通过将指令集中的每个指令分解为一系列微操作,并以微指令的形式存储在控制存储器中,从而实现指令的执行控制。
2.2 微指令的组成和格式微指令由多个字段组成,每个字段代表一个微操作控制信号。
常见的微指令格式包括微地址字段、条件码字段、操作码字段等。
2.3 微指令的执行过程微指令的执行过程包括指令的取指、译码、执行和写回等阶段。
每个阶段对应微指令的不同部分,通过控制信号的转换和传递,完成相应的操作。
三、微程序控制器的设计与实验3.1 设计思路在进行微程序控制器实验前,需要明确实验的目标和设计思路。
实验通常包括以下几个步骤:确定指令集、确定微指令格式、设计控制存储器、设计控制逻辑电路等。
3.2 实验步骤1.确定指令集:根据实验需求,确定需要支持的指令集。
2.确定微指令格式:根据指令集的要求,设计适合的微指令格式。
3.设计控制存储器:根据微指令格式,设计控制存储器的结构和内容。
4.设计控制逻辑电路:根据微指令的执行过程,设计控制逻辑电路,实现指令的控制和转换。
5.构建实验平台:将设计的控制存储器和控制逻辑电路构建成实验平台,并与计算机系统相连。
6.进行实验:在实验平台上执行指令,观察和记录实验结果。
3.3 实验结果与分析根据实验步骤中的设计和操作,得到了相应的实验结果。
通过比对实验结果和预期效果,可以对微程序控制器的设计和实验进行分析和评估。
四、总结与展望微程序控制器作为计算机系统的关键组成部分,通过微操作的方式实现指令的执行控制。
本实验报告对微程序控制器的原理进行了探讨,并描述了相关实验的设计、步骤、结果和分析。
通过实验,我们深入理解了微程序控制器的工作原理和设计方法。
微程序控制器简介微程序控制器(Microprogram Controller)是一种用于控制计算机硬件执行指令的微处理器,用来实现指令的解码和执行。
在计算机的内部结构中,微程序控制器位于中央处理器(CPU)内部,起到指挥和控制其他部件工作的功能。
工作原理微程序控制器通过一系列微操作指令来控制计算机硬件执行指令,这些微操作指令是由微指令(Microinstruction)组成的。
每条微指令对应着一条机器指令的执行过程,包括指令的分析、解码、操作数寻址和执行等过程。
微程序控制器内部包含一个存储器单元,称为微存储器(Microstore)。
微存储器中存储了一组微程序,每条微程序对应一条机器指令的执行过程。
当计算机执行某条机器指令时,微程序控制器会从微存储器中读取相应的微程序,并按照微程序中的微指令逐步控制各个硬件部件执行指令。
特点与优势微程序控制器具有以下特点和优势:1.模块化设计:微程序控制器是一个独立的硬件模块,可以灵活地与其他硬件部件组合在一起。
这种模块化设计使得微程序控制器可以根据计算机的需求进行定制和扩展。
2.简化指令执行过程:微程序控制器将复杂的机器指令执行过程分解为一系列微操作指令,这些微操作指令更加细化和简化,使得指令的解码和执行更加高效和可靠。
3.易于调试和修改:微程序控制器的微程序可以通过软件进行编写、调试和修改。
当需要新增或修改指令时,只需要修改微程序,而无需对硬件进行改动。
这种灵活性和可修改性极大地方便了软件开发和系统维护。
4.提高指令执行效率:微程序控制器可以根据指令的特点和执行需求进行优化。
通过使用高效的微指令和微操作指令,可以加速指令的执行速度,提高计算机系统的性能。
应用领域微程序控制器广泛应用于各种计算机系统中,尤其适用于复杂指令集计算机(CISC)架构。
它在操作系统、编译器、数据库、图形处理等领域都有重要的应用。
在操作系统中,微程序控制器负责实现指令的解码和执行,协调各个硬件部件的工作,保证操作系统的正常运行。
微程序控制器实验报告微程序控制器实验报告引言微程序控制器是一种常见的计算机控制器,它采用微程序的方式来实现指令的执行。
在本次实验中,我们将学习和探索微程序控制器的工作原理,并通过实验验证其功能和性能。
实验目的本次实验的主要目的是通过设计和实现一个简单的微程序控制器,来深入理解微程序控制器的工作原理和原理图设计。
实验过程1. 设计微指令集在设计微程序控制器之前,首先需要确定微指令集。
微指令集是由一系列微指令组成的,每个微指令对应一个控制信号,用于控制计算机的各个组件的操作。
在本次实验中,我们选择了常见的微指令集,包括存储器读写、算术逻辑运算、数据传输等指令。
2. 设计微指令控制存储器微指令控制存储器是微程序控制器的核心组件,用于存储微指令集。
在本次实验中,我们使用了静态随机存储器(SRAM)来实现微指令控制存储器。
通过将微指令集编码为二进制数,并将其存储在SRAM中的不同地址位置,实现对微指令的存储和读取。
3. 设计微指令解码器微指令解码器用于解析微指令,并产生相应的控制信号。
在本次实验中,我们使用了组合逻辑电路来实现微指令解码器。
通过将微指令的不同位与控制信号相连,实现对微指令的解码和控制信号的生成。
4. 设计微程序计数器微程序计数器用于控制微程序的执行顺序。
在本次实验中,我们使用了计数器和触发器来实现微程序计数器。
通过将微程序计数器的输出与微指令控制存储器的地址输入相连,实现对微指令的顺序读取。
实验结果通过实验,我们成功设计并实现了一个简单的微程序控制器。
在实验中,我们编写了微指令集,并将其存储在微指令控制存储器中。
通过微指令解码器和微程序计数器的协作,我们成功实现了对微指令的解码和执行。
实验结果表明,微程序控制器能够准确地控制计算机的各个组件的操作,并实现指令的执行。
实验总结通过本次实验,我们深入了解了微程序控制器的工作原理和原理图设计。
微程序控制器作为一种常见的计算机控制器,具有灵活性和可扩展性。
微程序控制器的设计与实现微程序控制器是一种基于微程序的控制器,它通过微指令序列来控制计算机的执行流程。
本文将详细介绍微程序控制器的设计与实现。
一、引言微程序控制器是计算机中重要的控制单元之一,它负责将指令转换为微指令序列,并控制计算机的执行流程。
微程序控制器的设计与实现是计算机体系结构中的关键问题之一,本文将从微程序控制器的设计原理、设计方法和实现步骤等方面进行详细介绍。
二、微程序控制器的设计原理1. 微程序控制器的基本原理微程序控制器是一种通过微指令序列来控制计算机的执行流程的控制器。
它将指令的操作码作为输入,通过查找微程序存储器中的微指令序列,生成控制信号,控制计算机的各个部件进行相应的操作。
2. 微程序控制器的工作原理微程序控制器的工作原理是将指令的操作码作为输入,通过查找微程序存储器中的微指令序列,生成控制信号,控制计算机的各个部件进行相应的操作。
微程序存储器中存储了一系列微指令,每个微指令对应一个操作,通过顺序执行这些微指令,实现对计算机的控制。
三、微程序控制器的设计方法1. 微程序控制器的设计流程微程序控制器的设计流程包括以下几个步骤:(1)确定指令集和操作码:根据计算机的需求确定指令集和操作码。
(2)设计微指令格式:根据指令集和操作码设计微指令的格式,包括操作类型、操作数等。
(3)设计微指令序列:根据指令集和操作码设计微指令序列,确定每个微指令对应的操作。
(4)设计微程序存储器:根据微指令序列设计微程序存储器,将微指令序列存储在微程序存储器中。
(5)生成控制信号:根据微指令序列和输入的操作码,通过查找微程序存储器,生成相应的控制信号。
(6)验证和调试:对设计的微程序控制器进行验证和调试,确保其正常工作。
2. 微程序控制器的设计方法微程序控制器的设计方法包括水平微程序控制器和垂直微程序控制器两种。
(1)水平微程序控制器:水平微程序控制器将微指令序列分为多个水平层次,每个水平层次对应一个微指令。
微程序控制器的设计与实现一、设计目的1、巩固和深刻理解“计算机组成原理”课程所讲解的原理,加深对计算机各模块协同工作的认识。
2、掌握微程序设计的思想和具体流程、操作方法。
3、培养学生独立工作和创新思维的能力,取得设计与调试的实践经验。
4、尝试利用编程实现微程序指令的识别和解释的工作流程。
二、设计内容按照要求设计一指令系统,该指令系统能够实现数据传送,进行加、减运算和无条件转移,具有累加器寻址、寄存器寻址、寄存器间接寻址、存储器直接寻址、立即数寻址等五种寻址方式。
三、设计具体要求1、仔细复习所学过的理论知识,掌握微程序设计的思想,并根、据掌握的理论写出要设计的指令系统的微程序流程。
指令系统至少要包括六条指令,具有上述功能和寻址方式。
2、根据微操作流程及给定的微指令格式写出相应的微程序3、将所设计的微程序在虚拟环境中运行调试程序,并给出测试思路和具体程序段4、撰写课程设计报告。
四、设计环境1、伟福COP2000型组成原理实验仪,COP2000虚拟软件。
2、VC开发环境或者Java开发环境。
五、设计方案(1)设计思想编写一个指令系统,根据所编写的指令的功能来设计相应的微程序。
首先利用MOV传送指令来给寄存器和累加器传送立即数,实现立即数寻址;利用寄存器寻址方式,用ADDC指令对两者进行相加运算;利用寄存器间接寻址方式,用SUB指令实现减运算;利用累加器寻址方式,用CPL指令实现对累加器寻址;利用存储器寻址方式,用JMP 指令实现程序的无条件跳转。
这样,所要设计的指令系统的功能就全部实现了。
(2)微指令格式采用水平微指令格式的设计,一次能定义并执行多个并行操作微命令的微指令,叫做水平型微指令。
其一般格式如下:按照控制字段的编码方法不同,水平型微指令又分为三种:全水平型(不译法)微指令,字段译码法水平型微指令,以及直接和译码相混合的水平型微指令。
(3)24个微指令的意义COP2000 模型机包括了一个标准CPU 所具备所有部件,这些部件包括:运算器ALU、累加器A、工作寄存器W、左移门L、直通门D、右移门R、寄存器组R0-R3、程序计数器PC、地址寄存器MAR、堆栈寄存器ST、中断向量寄存器IA、输入端口IN、输出端口寄存器OUT、程序存储器EM、指令寄存器IR、微程序计数器uPC、微程序存储器uM,以及中断控制电路、跳转控制电路。
其中运算器和中断控制电路以及跳转控制电路用CPLD 来实现,其它电路都是用离散的数字电路组成。
微程序控制部分也可以用组合逻辑控制来代替。
模型机为8 位机,数据总线、地址总线都为8位,但其工作原理与16位机相同。
相比而言8 位机实验减少了烦琐的连线,但其原理却更容易被学生理解、吸收。
模型机的指令码为8 位,根据指令类型的不同,可以有0 到2 个操作数。
指令码的最低两位用来选择R0-R3 寄存器,在微程序控制方式中,用指令码做为微地址来寻址微程序存储器,找到执行该指令的微程序。
而在组合逻辑控制方式中,按时序用指令码产生相应的控制位。
在本模型机中,一条指令最多分四个状态周期,一个状态周期为一个时钟脉冲,每个状态周期产生不同的控制逻辑,实现模型机的各种功能。
模型机有24 位控制位以控制寄存器的输入、输出,选择运算器的运算功能,存储器的读写。
24 位控制位分别介绍如下:XRD :外部设备读信号,当给出了外设的地址后,输出此信号,从指定外设读数据。
EMWR:程序存储器EM写信号。
EMRD:程序存储器EM读信号。
PCOE:将程序计数器PC的值送到地址总线ABUS上。
EMEN:将程序存储器EM 与数据总线DBUS接通,由EMWR和EMRD决定是将DBUS数据写到EM中,还是从EM读出数据送到DBUS。
IREN:将程序存储器EM读出的数据打入指令寄存器IR和微指令计数器uPC。
EINT:中断返回时清除中断响应和中断请求标志,便于下次中断。
ELP: PC打入允许,与指令寄存器的IR3、IR2位结合,控制程序跳转。
MAREN:将数据总线DBUS上数据打入地址寄存器MAR。
MAROE:将地址寄存器MAR的值送到地址总线ABUS上。
OUTEN:将数据总线DBUS上数据送到输出端口寄存器OUT里。
STEN:将数据总线DBUS上数据存入堆栈寄存器ST中。
RRD:读寄存器组R0-R3,寄存器R?的选择由指令的最低两位决定。
RWR:写寄存器组R0-R3,寄存器R?的选择由指令的最低两位决定。
CN:决定运算器是否带进位移位,CN=1带进位,CN=0不带进位。
FEN:将标志位存入ALU内部的标志寄存器。
X2: X2、X1、X0三位组合来译码选择将数据送到DBUS上的寄存器。
如下表所示:WEN:将数据总线DBUS的值打入工作寄存器W中。
AEN:将数据总线DBUS的值打入累加器A中。
通过S2,S1,S0 来选择运算数据由寄存器A及寄存器W 给出, 运算结果输出到直通门D。
如下表所示:S2 S1 S0 功能0 0 0 A+W 加0 0 1 A-W 减0 1 0 A|W 或0 1 1 A&W 与1 0 0 A+W+C 带进位加1 0 1 A-W-C 带进位减1 1 0 ~A A取反1 1 1 A 输出A(4)微程序的设计一共设计七条微程序,如下:MOV R0,#55H 立即数寻址,数据传送MOV A,#33H 立即数寻址,数据传送MOV @R0,A 将A的值存入以R0为地址的内存单元ADDC A,R0 寄存器寻址,带进位加SUB A,@R0 寄存器间接寻址,减运算CPL A 累加器寻址,求反JMP 0 存储器寻址,无条件跳转在COP2000中的设计如下所截图:这七条指令的流程图如下:1)MOV A, #II 2)MOV R?,#II 3)MOV @R?,A4)ADDC A,R? (5)SUBB A,@R? 6)CPL A7)JMP MM(5)详细设计下面详细分析每条程序的设计:1、_FATCH_只用一个周期状态,程序执行的第一条取指的微指令该指令为一个周期状态,T0状态的设计及可控制信号如下:2、MOV A, #II该指令为两个周期状态T1状态的设计及可控制信号如下:T0状态的设计及可控制信号如下:3、MOV R?,#II该指令为两个周期状态,T1状态的设计及可控制信号如下:T0状态的设计及可控制信号如下:4、MOV @R?,A该指令为三个周期状态,T2状态的设计及可控制信号如下:T1状态的设计及可控制信号如下:T0状态的设计及可控制信号如下:5、ADDC A,R?该指令为三个周期状态,T2状态的设计及可控制信号如下:T1状态的设计及可控制信号如下:T0状态的设计及可控制信号如下:6、SUB A,@R?该指令为四个周期状态,T3状态的设计及可控制信号如下:T2状态的设计及可控制信号如下:T1状态的设计及可控制信号如下:T0状态的设计及可控制信号如下:7、CPL A该指令为两个周期状态,T1状态的设计及可控制信号如下:T0状态的设计及可控制信号如下:7. JMP MM该指令为两个周期状态,T1状态的设计及可控制信号如下:T0状态的设计及可控制信号如下:六、调试过程七条指令编写完成以后,选择菜单[文件|保存指令系统/微程序]功能,将新建的指令系统/微程序保存下来,以便以后调用。
将新的指令系统/微程序保存为“INST33.INS”。
在COP2000的ASM窗口中输入以下几行源程序:MOV A, #66HMOV R0,#33HMOV @R0,AADDC A,R0SUB A,@R0CPL AJMP 0将程序另存为NEW_INST33.ASM,将程序汇编成机器码,观察反汇编窗口,会显示出程序地址、机器码、反汇编指令。
发现程序代码颜色会发生改变,点击复位按钮后进行单微指令的测试,如下图所示ASM 微程序如下:显示出程序地址、机器码、反汇编指令如下图所示:程序地址机器码反汇编指令指令说明00 0466 MOV A,#66 02 0833 MOV R0,#3304 0C MOV @R0,A05 10 ADDC A,R006 14 SUB A,@RO07 18 CPL A08 1C00 JMP 00 (1)微指令运行结果1)MOV A,#66H测试结果如图:说明立即数66已经写入累加器A中。
说明立即数33已经写入寄存器R0中。
3)MOV @R0,A测试结果如图:说明累加器中A的直66已经写入以R0为地址的内存单元中。
先将R0中的33传送的W中。
将A与W通过ALU相加的到99,并把结果通过直通门返回到累加器A 中。
先将R0的地址读出并送入地址寄存器MAR中。
MAR将地址输出到ABUS,EM读出该地址的数据并将该数据66传送到W中。
A与W通过ALU相减得33,得到的结果通过直通门返回到累加器A中。
6)CPL A 累加器寻址,求反结果如下:7)JMPP 0测试结果如下:PC将地址输出到ABUS,EM将值为0打入回PC,说明下条指令从0地址开始运行。
(2)出现问题与解决方案1)程序在运行完中间某个指令后自动中断操作。
解决方案:该指令的最后一个周期的缺少取指令,加上该微指令即可。
2)在进行MOV @R?,A的操作时,无法将A的值写入内存。
解决方案:控制信号中的EM_WR没有置为低电平,将该信号设为有效位即可写入。
3)指令跳转操作在第一次可顺利完成,但在第二次会出现错误。
解决方案:控制信号EM_RD应设为有效位,即允许读内存的信息。
七、心得体会通过本次本次《计算机组成原理》课程设计,我对计算机原理的学习有了更深入的认识。
本次课程设计为计算机组成原理微程序控制器的设计与实现,我们做这次课程设计用的是伟福COP2000型组成原理实验仪和COP2000虚拟软件。
由于对伟福COP2000型组成原理实验仪和COP2000虚拟软件不太了解,通过上网查找资料和再参考计算机组成原理课程设计任务书,知道用户可以通过COP2000计算机组成原理实验软件或组成原理实验仪来设计自己的指令集。
平时做实验用过该软件,但操作还不是很熟练。
经过这些天的琢磨,自己对这个软件也有了一定的认识,所以想用该软件实现多种寻址方式和各种操作并不是很困难的。
对比实验指导书以及上网搜寻相关资料来熟悉该软件的界面以及各种操作,其次再通过本次课程设计的要求来一步步设计微指令,从而更加熟悉用COP2000来实现微程序的设计的方法。
总之,这次课设让我受益匪浅,我感受最深的是不论要进行何种课程设计,必须首先要有一个好的设计思想和设计步骤,如果所使用平台是一个比较陌生的软件环境的话,还要首先熟悉该软件才能在设计时避免由于准备不充分而带来个各种问题。
现在我知道输入这些和汇编语句,计算机会从控存中提取出相应的一段微程序去完成指令所交付的工作。
每一段微程序是由一些微指令的序列构成,而微指令则是由若干无先后顺序的微命令构成,每一个微命令都唯一对应计算机内部的某个部件的专有控制信号。