微程序设计实验报告_第1页
微程序设计实验报告_第2页
微程序设计实验报告_第3页
微程序设计实验报告_第4页
微程序设计实验报告_第5页
已阅读5页,还剩11页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品学习资料范文微程序设计实验报告篇一:计算机组成原理课程设计——微程序设计报告书

课程设计指导教师评定成绩表

指导教师评定成绩:

指导教师签名:年月日

重庆大学本科学生课程设计任务书

说明:1、学院、专业、年级均填全称,如:光电工程学院、测控技术、2003。

2、本表除签名外均可采用计算机打印。本表不够,可另附页,但应在页脚添加页码。

计算机组成原理课程设计报告书

一、设计目的:

综合运用所学过的计算机原理知识,设计并实现较为完整的计算机。掌握运用计算机原理知识解决问题和设计指令程序的能力。通过课程设计的综合训练,培养实际分析问题,编写程序指令和动手能力、团队协作精神,帮助学生系统掌握计算机组成原理课程的主要内容。

二、设计要求:

设计要求:

用微程序控制器实现以下指令功能

调用:CALLaddr;指令功能与80X86相同,addr是8位二进制地址返回:RET;存储器到存储器传送:MOVmemi,memj;memi?(memj),ij,memi内存单元地址带右移的加法运算:ADDRi,Rj,N;Ri?(Ri)+(Rj)N,Rj中内容不变N=0-7

根据模型计算机的数据路径以及微程序控制器的工作原理,设计各指令格式以及编码,并实现各机器指令微代码,根据定义的机器指令,自拟编写包含以下指令的应用程序。

三、微程序控制器的原理:

A.微程序控制的基本思想:

1.若干微命令编制成一条微指令,控制实现一步操作;2.若干微指令组成一段微程序,解释执行一条机器指令;3.微程序事先存放在控制存储器中,执行机器指令时再取出。

B.基本组成:控制存储器,微指令寄存器,微地址寄存器,地址转移逻辑

框图

:

图1微程序控制器组成原理框图

控制存储器(CM):用来存放实现全部指令系统的微程序,位于CPU中。它是一种只读

型存储器,要求速度快,读出周期短

微指令寄存器:存放当前由控制存储器读出的一条微指令信息,分为微地址寄存器和

微命令寄存器两个部分。其中微地址寄存器决定将要访问的下一条微指令的地址,微命令寄存器则保存一条微指令的操作控制字段和判别测试字段(P)的信息

地址转移逻辑:自动完成修改微地址的任务。

微程序控制器:微程序控制器的基本任务是完成当前指令的翻译和执行,即将当前指

令的功能转换成可以控制的硬件逻辑部件工作的微命令序列,完成数据传送和各种处理操作。它的执行方法就是将控制各部件动作的微命令的集合进行编码,即将微命令的集合仿照机器指令一样,用数字代码的形式表示,这种表示称为微指令。这样就可以用一个微指令序列表示一条机器指令,这种微指令序列称为微程序。微程序存储在一种专用的存储器中,称为控制存储器,微程序控制器原理框图如图2所示

图2微程序控制器原理框图

C.微程序控制计算机的工作过程:

下面通过计算机启动、执行程序直到停机的过程,来说明微程序是如何控制计算机工作的:

计算机加电以后,首先由复位信号(Reset)将开机后执行的第一条指令的地址送入PC内,同时将一条取指微指令送入微指令寄存器中,并将其他一些有关的状态位或寄存器置于初始状态。当电压达到稳定值后,自动启动计算机,产生节拍电位和工作脉冲。为保证计算机正常工作,电路必须保证开机后第一个机器周期信号的完整性,在该CPU周期末,产生开机后第一个工作脉冲。然后计算机开始执行程序,不断地取出指令、执行指令。

程序可以存放在固定存储器中,也可以利用固化在只读存储器(ROM)中的一小段

引导程序,将要执行的程序和数据从外部设备调入主存。实现各条指令的微程序是存放在微程序控制器中的。当前正在执行的微指令从微程序控制器中取出后放在微指令寄存器中,由微指令的控制字段中的各位直接控制信息和数据的传送,并进行相应的处理。当遇到停机指令或外来停机命令后,应该待当前这条指令执行完毕后再停机或至少在本机器周期结束时停机。要保证停机后,重新启动计算机能继续工作而且不出现任何错误。

四、总体设计(系统构成):

实现一个简单的CPU,并且在此CPU的基础上,继续构建一个简单的模型计算机。CPU由运算器(ALU)、微程序控制器(MC)、通用寄存器(R0),指令寄存器(IR)、程序计数器(PC)和地址寄存器(AR)组成,如图3所示。这个CPU在写入相应的微指令后,就具备了执行机器指令的功能,但是机器指令一般存放在主存当中,CPU必须和主存挂接后,才有实际的意义,所以还需要在该CPU的基础上增加一个主存和基本的输入输出部件,以构成一个简单的模型计算机。

图3基本CPU构成原理图

程序计数器PC:

程序计数器PC由两片4位可预置二进制计数器构成8位的计数器。使用“可预置”是因为转移指令需要直接修改PC的值。其电路原理如下图。

篇二:微程序控制器实验报告

微程序控制器实验

预习报告

1.微程序控制器的组成和工作原理。

微程序控制器主要由控制存储器、微指令寄存器和地址转移逻辑三大部分组成。其工作原理分为:一、将程序和数据通过输入设备送入存储器;二、启动运行后,从存储器中取出程序指令送到控制器去识别,分析该指令要求什么事;三、控制器根据指令的含义发出相应的命令(如加法、减法),将存储单元中存放的操作数据取出送往运算器进行运算,再把运算结果送回存储器指定的单元中;四、运算任务完成后,就可以根据指令将结果通过输出设备输出

2.微程序、微指令、微命令之间的关系。

一系列微指令的有序集合称为微程序。

在微程序控制方式之下,从控制存储器中取出,完成一个或几个微操作的命令称为微指令。

控制部件通过控制线向执行部件发出各种控制命令,通常把这种控制命令叫做微命令。

所以总的来说:微程序包含微指令,而每条微指令包含的微命令控制。

3.微指令、微程序的设计及调试。

在微程序流程图中,根据每个状态的微指令,将其进行编码,设计出所需硬件及执行效率较高的微程序控制电路,然后进行调试。

思考题:

1.举例说明实验中出现的基本概念:微命令、微操作、微指令、微程序?微命令:控制器发出的每个控制信号,如对运算单元的控制mcns3s2s1s0发出的010101等。

微操作:由微命令控制实现的最基本的操作称为微操作。如发出运算器加运算的微命令后,运算器进行加法计算,就称为微操作。

微指令:完成一个或几个微操作的指令。如控制器进行存数据的命令后,需要有we信号有效,pc保持,来控制这些的指令即为微指令。

微程序:微程序包含微指令。如微程序流程中包括很多微指令控制,进行一些加减运算,存储数据,地址自加一等等。

2.解释并比较微程序控制器的几种设计方法?

微序列控制器通过吧控制信号存储在一个查找Rom,(1)用水平编码生成微操作(2)用垂直编码生成微操作(3)从微代码直接产生控制信号。

3.微程序控制器的控制对象、手段及方法?控制器如何取指令?

微程序控制器控制对象分为硬件方面和软件方面,硬件方面为数据通路的控制信号,软件方面为测试程序的控制信号。

控制器根据状态机的不同状态进行指令读取,在不同状态下取得的指令也不同。

4.控制器的功能?如何取指令、分析指令、执行指令?

通过下址取得指令,根据控制信号进行不同信号的开启或关闭也就是分析指令,然后再在控制信号的作用下执行指令。

5.下址的产生方法?常用的有哪些,实验中用到了哪些?

A:计数器方式――在顺序执行微指令时,后续微指令地址由现行微指令加上一个增量来产生;在非顺序执行微指令时,必须在执行现行微指令后,转去执行指定后续微指令地址的下一条微指令。

B:增量方式与断定方式的结合――微指令的顺序控制字段分成两部分:条件选择字段与转移地址字段.由这两个字段结合,当转移条件满足时,将转移地址字段作下一个微地址;若无转移要求,则直接从微程序计数器中取得下一条微指令.一般用于微指令执行时,需要外部判断条件的场合。

C:多路转移方式――当微程序不产生分支时,后续微地址直接由微指令的顺序控制字段给出;否则有若干个后续地址可以选择,此时必须由顺序控制字段的"判别测试"和"状态条件"信息来选择其中一个微地址.一般用于有多个转移且可以使用组合逻辑设计转移地址逻辑的场合。实验中用到了多路转移方式。

6.每条机器指令的指令码如何与其入口微地址对应?微程序分支如何处理?

通过编码方式,将指令码的状态分成不同的几个,再运用微地址进行编码,对不同的指令码编程不同的地质,一一对应。

在不同分支出现时利用临时寄存器IR对几个分支进行编码,映射为不同状态。

7.如何简化微程序流程图,使其ADD、AND指令在部分微指令中合并?(如AR→RAM、RAM→DR2、R5→DR1)

只对ALU部分的下址进行区分,其他部分用同样的下址即可,这样可以省去一个IR的编码状态。

8.电路设计过程中如果出现多个状态机怎么办?

将不同状态机的控制信号进行区分,在不同控制信号作用下进行多个状态机的控制。

实验日志

11月10日

对微指令的复习和理解,明白了下址的控制方法但是对电路中P1的意义不太理解。

经过看微程序流程图,发现P1在ldir需要进行下载时有效,所以P1即为控制临时存储器IR的控制信号,该控制信号由流程图中第四步中有效,来控制IR的下址是否有效。

11月12日

编写ROM时发现P1具体为1的状态不同会出现不能强读强写,所以将P1为1改为当RAM数据传到IR时令其有效,得到正确波形。

11月18日

仿真时发现ar的第一个地址不正确,应该为00H但是却是个不是个确定的值。经分析发现第一个ar值应该为sw输入到总线上,而总线的值没有k输入,所以将k的输入设定为00H,得到的仿真结果正确。

实验报告

ROM部分代码(只显示编码部分):

Swr4br5balupcbusdr1dr2r4lr5lmcns3s2s1s0werdpclrpcldpcenldarldirp1下址五位0111100000000000010100000001whenaddress=00000ELSE--SW--PC

1111000000000000011110000010whenaddress=00001ELSE--PC--ARPC=PC+11111100000000000110001101000whenaddress=00010ELSE--RAM--IR

1111000000000000011110010101whenaddress=01001ELSE--LDA1:PC--ARPC=PC+11111100000000000110010010110whenaddress=10101ELSE--LDA2:RAM--AR1111100010000000110000000001whenaddress=10110ELSE--LDA3:RAM--R5

1111000000000000011110010111whenaddress=01010ELSE--STA1:PC--ARPC=PC+11111100000000000110010011000whenaddress=10111ELSE--STA2:RAM--AR1101100000000001010000000001whenaddress=11000ELSE--STA3:R5--RAM

1111000000000000011110011001whenaddress=01011ELSE--OUT1:PC--ARPC=PC+11111100000000000110010011010whenaddress=11001ELSE--OUT2:RAM--AR1111100000000000110000000001whenaddress=11010ELSE--OUT3:RAM--BUS1101110000000000010000011011whenaddress=01100ELSE--COM1:R5--DR11110100011000000010000000001whenaddress=11011ELSE--COM2:/ALU--R5

1111000000000000011110011100whenaddress=01101ELSE--JMP1:PC--ARPC=PC+11111100000000000110100000001whenaddress=11100ELSE--JMP2:RAM--PC

1111000000000000011110000011whenaddress=01110ELSE--ADD1:PC--ARPC=PC+11111100000000000110010000100whenaddress=00011ELSE--ADD2:RAM--AR1111101000000000110000000101whenaddress=00100ELSE--ADD3:RAM--DR21101110000000000010000000110whenaddress=00101ELSE--ADD4:R5--DR11110100010110010010000000001whenaddress=00110ELSE--ADD5:ALU--R5加

1111000000000000011110011101whenaddress=01111ELSE--AND1:PC--ARPC=PC+11111100000000000110010011110whenaddress=11101ELSE--AND2:RAM--AR1111101000000000110000011111whenaddress=11110ELSE--AND3:RAM--DR21101110000000000010000000111whenaddress=11111ELSE--AND4:R5--DR1

1110100011010110010000000001whenaddress=00111ELSE--AND5:ALU--R5101011and0111100000000000010100010001whenaddress=10000ELSE--KWE1:SW--PC

1111000000000000011110010010whenaddress=10001ELSE--KWE2:PC--ARPC=PC+10111100000000001010000010001whenaddress=10010ELSE--KWE3:SW--RAM0111100000000000010100010011whenaddress=01000ELSE--KWE1:SW--PC

1111000000000000011110010100whenaddress=10011ELSE--KWE2:PC--ARPC=PC+11111100000000000110000010011whenaddress=10100ELSE--KWE3:RAM--BUS1111100000000000100010000000

没有加数据通路部分时的仿真波形:

波形分析:

将状态机定为单步运行状态,dp为1,qd每次进行启动。

CLR由1-0-1,清零作用使微地址A4~0为00000。

执行第一个单拍,执行将输入值传给pc,得到下址00001

执行第二个单拍,执行微地址为00001的微指令,PC-AR,pc自加一,地址计数加1变为01H,得到下址00010。

执行第三个单拍,将00地址的值读出来赋给IR,在T3时序信号到来时,执行将RAM中存放的数据(指令)送到IR(指令寄存器),此处运用手动输入的方法,同时给出判别信号P及下一条微指令的地址01000,在T4有效时,P1为1,IR7,IR6,IR5可以手动输入010将微地址改为01010,产生下条微指令的地址。然后即可进入STA指令操作。

然后下址为10111,开始执行RAM-〉AR操作。从其他输出信号看产生的输出也是正确的。

下一个操作进行强读信号的执行。在之前将CLR信号置为0,进行清零才行,得到00000地址。然后将KRD信号从1到0再到1,使得a[3]强置数为1,可以将地址从00000变为01000,该地址产生下址10011,即为强读控制信号。

加入数据通路部分进行仿真:

说明:数据通路加上后应该修改部分控制信号,以满足状态机在不同状态下控制ar,alu,pc等的正确执行。修改如下:

篇三:计算机组成原理课程设计微程序的分析与设计宿迁学院实验报告

《计算机组成原理课程设计》

简单模型机的微程序设计

学生姓名:

学号:201003111XX系别:三系班级:专业:软件工程指导教师:卞利

一.课程设计的目的

1.计算机的硬件基本组成2.计算机中机器指令的设计3.计算机中机器指令的执行过程4.微程序控制器的工作原理5.微指令的格式设计原则

在此基础上设计可以运行一些基本机器指令的微程序的设计

二.课程设计的内容和要求

题目:

①数据传送指令MOVRD,RS:(RS)→(RD)②减法指令SUBRD,RS:(RS)减(RD)→(RD)③或指令ORRD,(addr):(RD)或(addr)→(RD)④异或指令XORRD,(addr):(addr)异或(RD)→(RD)⑤与指令ANDRD,RS:(RS)与(RD)→(RD)

通过使用作者开发的微程序分析和设计仿真软件,熟悉介绍的为基本模型机而设计的微程序的执行过程。必须充分理解并正确解释下些问题:

(1)微程序中的微指令的各个字段的作用。哪些字段是不译码的,哪些字段是直接译码的,哪些字段又可以看成是字段间接编码的。

答:不译码:S3-B0,直接译码:C字段,间接译码:A,B字段,当C字段进行P(1)或LDPC时ua6-ua1也是间接。(2)微程序中的微指令是否是顺序执行的,如果不是,那么次地址是如何产生的。什么情况下,次地址字段才是将要执行的微指令的地址。

答:微程序中的微指令不是顺序执行的,如果遇到P(1)~P(4)测试时,则根据机械指令,uA5~uA其他有关部件的内容,产生下一条微指令在空存中的微地址,是微程序转入相应的微地址入口,从而实现微程序的顺序、分支、循环运行等。例如遇到P(1)测试,则下一条微指令在空存中的微地址的4~1位是用次地址字段NA(4~1位)或指令寄存器IR(8~5位)所产生,下一条微指令的微地址仍为NA字段的6~5位。如果没有遇到P(1)~P(4)测试的话,那么次地址即为该微指令地址字段所指向的微地址。

(3)在微程序中如何根据机器指令中的相关位实现分支,据此,在设计机器指令时应如何避免和解决与其它指令的微指令的微地址冲突。答:微程序中是根据测试程序的机器指令中的8~5位和微程序中后六位进行“或”运算来实现分支的。避免和解决与

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论