微程序控制器的设计与实现
- 格式:doc
- 大小:1.17 MB
- 文档页数:18
解析计算机组成原理实验系统的设计与实现摘要:本文首先对系统的硬件设计进行了论述和实验,实验一起所采用的是单元式的结构,包括整个的计算机部件的单元电路,用户可以根据自己所设计的模型计算机结构方案对用户的连接方式进行改变,从而构造出结构不同、复杂程度不同的原理性计算机,用此实验对学生们进行教学指导,从而使学生能够清楚的认识到计算机的组成机构及组成系统。
本文在对计算机组成原理课程教学的基础上,掌握了相关技术,并设计和实现了计算机的组成原理实验系统。
关键词:计算机组成原理实验系统;设计与实现中图分类号:tp301-4当今时代,是商业的时代,计算机组成原理实验系统中系统的设计与实现技术并没有得到公开,然而,面对现代教学的要求,用不完善的计算机组成原理实验系统设计与实现进行实验,并不利于增强学生对计算机组成原理的认识。
针对学生的层次及自身能力的不同,一套结构简单、易于实现的组成原理实验系统的设计很有必要,不仅可以使学生对实验有更加深入的了解,同时还能培养学生学习和了解计算机的相关技术,提高自身的理论与实践结合能力。
1系统硬件的设计系统的硬件可以为学生们提供实验的平台,即原理实验仪,由单片机和构成计算机组成的微程序控制器、运算器、输入输出、存储器等基本单元模块组成。
1.1系统的硬件组成实验仪的组成部分如图1所示:图1实验仪的组成结构图实验仪的硬件是以微控制器atmel at89c52为中心,然后再配合其他的各个部件,实现对计算机组成原理的实验教学功能。
1.2mcu at89c52资源分配at89c52资源分配具有一定的标准功能,即8k字节flash闪速存储器,256字节内部ram,32个i/o口线,3个16位定时计时器,一个6量两级中断结构,单个全双工串行通信口,片内震荡及时钟电路等。
同时,at89c52可以通过静态逻辑操作降到最低的0hz,并选用两种软件进行节电的工作。
当空闲时,可以停止cpu的运行工作,但是可以允许ram、计数器、串行通信口等系统的继续工作。
计算机组成原理实验报告实验报告运算器实验⼀、实验⽬的掌握⼋位运算器的数据传输格式,验证运算功能发⽣器及进位控制的组合功能。
⼆、实验要求完成算术、逻辑、移位运算实验,熟悉ALU运算控制位的运⽤。
三、实验原理实验中所⽤的运算器数据通路如图2-3-1所⽰。
ALU运算器由CPLD描述。
运算器的输出FUN经过74LS245三态门与数据总线相连,运算源寄存器A和暂存器B的数据输⼊端分别由2个74LS574锁存器锁存,锁存器的输⼊端与数据总线相连,准双向I/O 输⼊输出端⼝⽤来给出参与运算的数据,经2⽚74LS245三态门与数据总线相连。
图2-3-1运算器数据通路图中A WR、BWR在“搭接态”由实验连接对应的⼆进制开关控制,“0”有效,通过【单拍】按钮产⽣的脉冲把总线上的数据打⼊,实现运算源寄存器A、暂存器B的写⼊操作。
四、运算器功能编码算术运算逻辑运算K23~K0置“1”,灭M23~M0控位显⽰灯。
然后按下表要求“搭接”部件控制路。
表2.3.2 运算实验电路搭接表算术运算1.运算源寄存器写流程通过I/O单元“S7~S0”开关向累加器A和暂存器B置数,具体操作步骤如下:2.运算源寄存器读流程关闭A、B写使能,令K18=K17=“1”,按下流程分别读A、B。
3.加法与减法运算令M S2 S1 S0(K15 K13~K11=0100),为算术加,FUN及总线单元显⽰A+B的结果令M S2 S1 S0(K15 K13~K11=0101),为算术减,FUN及总线单元显⽰A-B的结果。
逻辑运算1.运算源寄存器写流程通过“I/O输⼊输出单元”开关向寄存器A和B置数,具体操作步骤如下:2.运算源寄存器读流程关闭A、B写使能,令K17= K18=1,按下流程分别读A、B。
①若运算控制位设为(M S2 S1 S0=1111)则F=A,即A内容送到数据总线。
②若运算控制位设为(M S2 S1 S0=1000)则F=B,即B内容送到数据总线。
《计算机组成原理》学生实验报告(2011~2012学年第二学期)专业:信息管理与信息系统班级: A0922学号:10914030230姓名:李斌目录实验准备------------------------------------------------------------------------3 实验一运算器实验-----------------------------------------------------------7 实验二数据通路实验-------------------------------------------------------13 实验三微控制器实验--------------------------------------------------------18 实验四基本模型机的设计与实现------------------------------------------22实验准备一、DVCC实验机系统硬件设备1、运算器模块运算器由两片74LS181构成8位字长的ALU。
它是运算器的核心。
可以实现两个8位的二进制数进行多种算术或逻辑运算,具体由74181的功能控制条件M、CN、S3、S2、S1、S0来决定,见下表。
两个参与运算的数分别来自于暂存器U29和U30(采用8位锁存器),运算结果直接输出到输出缓冲器U33(采用74LS245,由ALUB信号控制,ALUB=0,表示U33开通,ALUB=1,表示U33不通,其输出呈高阻),由输出缓冲器发送到系统的数据总线上,以便进行移位操作或参加下一次运算。
进位输入信号来自于两个方面:其一对运算器74LS181的进位输出/CN+4进位倒相所得CN4;其二由移位寄存器74LS299的选择参数S0、S1、AQ0、AQ7决定所得。
触发器的输出QCY就是ALU结果的进位标志位。
QCY为“0”,表示ALU结果没有进位,相应的指示灯CY灭;QCY为“1”,表示ALU结果有进位,相应的指示灯CY点亮。
实验四微程序控制器设计实验一、实验目的(1)掌握时序产生器的组成原理。
(2)掌握微程序控制器的组成原理。
(3)加深理解微指令与机器指令的关系。
二、实验电路1.时序发生器TEC-4计算机组成原理实验系统的时序电路如图6所示。
图6 时序信号发生器图电路采用2片GAL22V10(U6,U7),可产生两级等间隔时序信号T1-T4和W1-W4,其中一个W 由一轮T1-T4循环组成,它相当于一个微指令周期或硬联线控制器的一拍,而一轮W1-W4循环可供硬联线控制器执行一条机器指令。
本实验不涉及硬联线控制器。
微程序控制器只使用时序信号T1-T4,产生T信号的功能集成在GAL22VlO芯片TIMER1(U6)中,另外它还产生节拍信号W1、W2、W3、W4的控制时钟CLK1。
TIMER1的输入信号中,MF接实验台上晶体振荡器的输出,频率为1MHz。
T1至T4的脉冲宽度为100ns。
CLR(注意,实际上是控制台上的CLR#信号,因为ABEL语言的书写关系改为CLR,仍为低有效信号)为复位信号,低有效。
实验仪处于任何状态下令CLR# = 0,都会使时序发生器和微程序控制器复位(回到初始状态),CLR# = l时,则可以正常运行。
复位后时序发生器停在T4、W4状态,微程序地址为000000B。
建议每次实验仪加电后,先用CLR#复位一次。
控制台上有一个CLR#按钮,按一次,产生一个CLR#负脉冲,实验台印制板上已连好控制台CLR#到时序电路CLR的连线。
TJ(停机)是控制器的输出信号之一。
连续运行时,如果控制信号TJ = l,会使机器停机,停止发送时序脉冲T1-T4、W1-W4,时序停在T4。
在实验台上为了将时序信号发生器的输入信号TJ和控制存储器产生的TJ信号区分开来,以便于连线操作,在实验台上时序信号发生器的输入信号TJ命名为TJI,而控制存储器产生的信号TJ仍命名为TJ。
QD(启动)是来自启动按钮QD的脉冲信号,在TIMER1中,对QD用MF进行了同步,产生QD1和QD2。
郑州轻工业学院本科计算机组成原理课程设计总结报告设计题目:基本模型机的设计与实现学生姓名:系别:专业:班级:学号:指导教师:2011 年1月7 日郑州轻工业学院课程设计任务书题目基本模型机的设计与实现专业、班级学号姓名主要内容:乘法指令、停机指令的设计与实现。
基本说明:由于乘法指令较为复杂,本次模型机设计只完成乘法机器指令和停机指令的设计与实现。
主要参考资料等:《计算机组成原理》白中英主编科学出版社。
完成期限:一周指导教师签名:课程负责人签名:2011年 1月 7 日目录课程设计任务书 (2)一、微程序控制器的基本原理 (4)二、模型机结构 (5)三、微指令格式 (6)四、指令系统 (7)五、指令流程图 (8)六、程序清单 (9)七、微程序清单 (10)八、心得与体会 (11)附录:微程序详解 (11)1. 总述 (11)2. 乘法算法 (11)3. 实现难点 (12)一、微程序控制器的基本原理微程序控制器原理框图如图所示。
它主要有控制存储器、微指令寄存器和地址转移逻辑三大部分组成。
其中微指令寄存器分为微地址寄存器和微命令寄存器两部分。
(1)控制存储器控制存储器用来存放实现全部指令系统的微程序,机器运行时只读不写。
其工作过程是:每读出一条微指令,则执行这条微指令接着以读出下一条微指令,又执行这条微指令……。
(2)微指令寄存器微指令寄存器用来存放由控制存储器读出的一条微指令信息。
其中微地址寄存器决定将要访问的下一条微指令的地址,而微命令寄存器则保存一条微指令的操作控制字段和判别测试字段的信息。
(3)地址转移逻辑在一般情况下,微指令由控制存储器读出后直接给出下一微指令的地址,通常我们简称微地址,这个微地址信息就存放在微地址寄存器中。
如果微程序不出现分支,那么下一条微指令的地址就直接由微地址寄存器给出。
当微程序出现分支时,意味着微程序出现条件转移。
在这种情况下,通过判别测试字段P和执行部件的“状态条件”反馈信息,去修改微地址寄存器人内容,并按改好人内容去读下一条微指令。
微程序流程图和指令格式微程序流程图是用于描述微程序控制器的工作原理和指令执行流程的图形化表示方法。
微程序是一种在硬件中实现指令执行的方式,通过将指令的操作序列以微操作的形式存储在控制存储器中,实现对指令的逐条执行。
微程序流程图由一系列块状图组成,每个块状图表示一个微操作或一个微操作的序列,通过箭头连接各个块状图来表示指令的执行流程。
微程序流程图的主要元素包括微操作块、条件判断块、跳转块和连接线。
微操作块表示执行一个具体的微操作,比如寄存器的读取、运算操作、存储器的读写等。
条件判断块用于根据一些条件决定程序的执行路径,比如条件判断是否满足跳转条件。
跳转块用于指示程序跳转到其他的微操作块执行,实现指令流程的跳转。
连接线用于连接各个块状图,表示指令的流程方向。
指令格式是微程序指令在计算机中存储和处理的格式。
微程序指令是以位序列形式存在的,它包括指令操作码和操作数等字段。
指令操作码表示指令的类型,用于确定微程序的执行流程。
操作数字段用于存储指令的操作数,提供给微程序进行相应的处理。
微程序指令的格式可以根据具体的微程序控制器的设计而有所不同,一般包括以下几个字段:1.操作码字段:用于指示指令的类型和操作。
不同的操作码对应不同的微操作。
2.地址字段:用于指定指令操作数的存储地址。
3.寄存器字段:用于指定指令操作数所在的寄存器。
4.控制字段:用于指定微程序的控制信号,包括时钟信号、使能信号、写使能信号等。
5.数据字段:用于指定指令操作数的具体数值。
指令格式的设计需要考虑微程序控制器的功能需求和硬件实现的限制。
不同的微程序控制器可能有不同的指令格式,但是它们都遵循将指令操作码和操作数等信息存储在指定的位序列中,以便微程序控制器进行解码和执行。
总之,微程序流程图和指令格式是描述微程序控制器工作原理和指令执行流程的重要工具和方法,通过合理设计和使用它们,可以实现对指令的高效执行和控制。
计算机原理课程设计报告 - 1 - 微程序控制器的设计与实现 一、设计目的 1、巩固和深刻理解“计算机组成原理”课程所讲解的原理,加深对计算机各模块协同工作的认识。 2、掌握微程序设计的思想和具体流程、操作方法。 3、培养学生独立工作和创新思维的能力,取得设计与调试的实践经验。 4、尝试利用编程实现微程序指令的识别和解释的工作流程。 二、设计内容 按照要求设计一指令系统,该指令系统能够实现数据传送,进行加、减运算和无条件转移,具有累加器寻址、寄存器寻址、寄存器间接寻址、存储器直接寻址、立即数寻址等五种寻址方式。 三、设计具体要求 1、仔细复习所学过的理论知识,掌握微程序设计的思想,并根、据掌握的理论写出要设计的指令系统的微程序流程。指令系统至 少要包括六条指令,具有上述功能和寻址方式。 2、根据微操作流程及给定的微指令格式写出相应的微程序 3、将所设计的微程序在虚拟环境中运行调试程序,并给出测试思路和具体程序段 4、撰写课程设计报告。 计算机原理课程设计报告 - 2 - 四、设计环境 1、伟福COP2000型组成原理实验仪,COP2000虚拟软件。 2、VC开发环境或者Java开发环境。 五、设计方案 (1)设计思想 编写一个指令系统,根据所编写的指令的功能来设计相应的微程序。首先利用MOV传送指令来给寄存器和累加器传送立即数,实现立即数寻址;利用寄存器寻址方式,用ADDC指令对两者进行相加运算;利用寄存器间接寻址方式,用SUB指令实现减运算;利用累加器寻址方式,用CPL指令实现对累加器寻址;利用存储器寻址方式,用JMP指令实现程序的无条件跳转。这样,所要设计的指令系统的功能就全部实现了。 (2)微指令格式 采用水平微指令格式的设计,一次能定义并执行多个并行操作微命令的微指令,叫做水平型微指令。 其一般格式如下: 控制字段 判别测试字段 下地址字段 按照控制字段的编码方法不同,水平型微指令又分为三种:全水平型(不译法)微指令,字段译码法水平型微指令,以及直接和译码相混合的水平型微指令。 (3)24个微指令的意义 COP2000 模型机包括了一个标准CPU 所具备所有部件,这些部件包括:运算器ALU、累加器A、工作寄存器W、左移门L、直通门D、右计算机原理课程设计报告 - 3 - 移门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决计算机原理课程设计报告 - 4 - 定是将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上的寄存器。 如下表所示: X2 X1 X0 输出寄存器 0 0 0 IN_OE 外部输入门 0 0 1 IA_OE 中断向量 0 1 0 ST_OE 堆栈寄存器 0 1 1 PC_OE PC寄存器 1 0 0 D_OE 直通门 1 0 1 R_OE 右移门 1 1 0 L_OE 左移门 1 1 1 没有输出
WEN: 将数据总线DBUS的值打入工作寄存器W中。 计算机原理课程设计报告 - 5 - 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中的设计如下所截图: 计算机原理课程设计报告
- 6 - 这七条指令的流程图如下: 1)MOV A, #II 2)MOV R?,#II 3)MOV @R?,A
4)ADDC A,R? (5)SUBB A,@R? 6)CPL A PCABUS PC+1 PCPCABUS PC+1 ABUS EMA PCABUS EMR? PCABUS PC+1
R? MAR MARABUS ADEM 计算机原理课程设计报告
- 7 - 7)JMP MM (5)详细设计 下面详细分析每条程序的设计: 1、_FATCH_只用一个周期状态,程序执行的第一条取指的微指令 该指令为一个周期状态,T0状态的设计及可控制信号如下:
PCABUS PC+1 PCABUS EMA PCABUS PC+1 R? W R? MAR PCABUS PC+1
AALU (A取反) ALUA
A+WALU ALUA MARABUS EMW
A-WALU ALUA
PCABUS EMPC
PCABUS PC+1 计算机原理课程设计报告
- 8 - 2、 MOV A, #II 该指令为两个周期状态 T1状态的设计及可控制信号如下:
T0状态的设计及可控制信号如下: 3、 MOV R?,#II 该指令为两个周期状态,T1状态的设计及可控制信号如下:
T0状态的设计及可控制信号如下: 4、 MOV @R?,A 该指令为三个周期状态,T2状态的设计及可控制信号如下: 计算机原理课程设计报告
- 9 - T1状态的设计及可控制信号如下:
T0状态的设计及可控制信号如下: 5、 ADDC A,R? 该指令为三个周期状态,T2状态的设计及可控制信号如下:
T1状态的设计及可控制信号如下: T0状态的设计及可控制信号如下: 6、 SUB A,@R? 该指令为四个周期状态,T3状态的设计及可控制信号如下: 计算机原理课程设计报告
- 10 - T2状态的设计及可控制信号如下:
T1状态的设计及可控制信号如下: T0状态的设计及可控制信号如下: 7、 CPL A 该指令为两个周期状态,T1状态的设计及可控制信号如下:
T0状态的设计及可控制信号如下: 7. JMP MM 该指令为两个周期状态,T1状态的设计及可控制信号如下:
T0状态的设计及可控制信号如下: