基本模型机设计.docx
- 文档编号:23511013
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:34
- 大小:370.94KB
基本模型机设计.docx
《基本模型机设计.docx》由会员分享,可在线阅读,更多相关《基本模型机设计.docx(34页珍藏版)》请在冰豆网上搜索。
基本模型机设计
摘要
本次课程设计通过设计一套简单计算机模型的方案,微指令、微程序的设计实现计算机的基本功能、经过不断调试最终达到了设计要求,从而较为系统地掌握计算机中的运算器、寄存器、译码电路、存储器、和存储微指令等硬件组成的相关知识,实现知识融会贯通的目的。
设计中使用的运算器是74LS181,存储器是6264,与相应的译码电路、锁存电路以及输入输出电路组成了模型机的硬件基础。
当然光有硬件电路不是一个完整的计算机,本设计还设计了相应的微指令和微程序组成具有一定功能的指令系统,包括IN,OUT,STA,LDA,JMP,BZC,CLR,MOV,AND,OR,HLT。
为了测试指令系统的正确性,设计中还编写了小程序来验证指令。
关键词:
计算机组成;微指令;微程序;控制存储器;移位运算
前言
随着社会科技的发展,计算机被应用到各行各业,人们步入自动化、智能化的生活阶段。
本次课程设计课题是基本模型机的设计与实现,它正体现了这一点。
利用CPU与简单模型机来实现计算机组成原理课程及实验中所学到的实验原理和编程思想,硬件设备自拟,编写指令的应用程序,用微程序控制器实现了一系列的指令功能,最终达到将理论与实践相联系。
本次设计完成了各指令的格式以及编码的设计,实现了各机器指令微代码,形成具有一定功能的完整的应用程序。
部件实验过程中,各部件单元的控制信号是人为模拟产生的,本课程设计将能在微程序控制下自动产生各部件单元的控制信号,实现特定指令的功能,通过设计流程图,编写机器指令,微指令和控制信号程序。
首先向存储器(RAM)中装入数据和程序,然后检查写入是否正确,启动程序执行。
另外,还需设计三个控制台操作微程序:
存储器读操作(READ),存储器写操作(WRITE),运行程序(RUN)。
以上各微指令设计完毕后,连接线路在计算机组成原理教学实验箱运行程序,并将实验结果显示输出。
第一章模型机设计概述
1.1设计目的
通过课程设计加深对计算机各功能部件的理解;掌握数据信息流和控制信息流的流动和实现过程,建立起整机概念;培养设计、开发和调试计算机的能力。
融会贯通计算机组成原理课程中各章的内容,通过知识的综合运用,加深对计算机系统各模块的工作原理及相互联系的认识,特别是对硬连线控制器的认识,建立清晰的整机概念。
对计算机的基本组成、部件的设计、部件间的连接、微程序控制器的设计、微指令和微程序的编制与调试等过程有更深的了解,加深对理论课程的理解。
在掌握部件单元电路实验的基础上,进一步将其组成系统地构造一台基本模型计算机。
(1)在掌握部件单元电路实验的基础上,进一步将其组成系统构造一台基本模型计算机。
(2)为其定义十二条机器指令,并编写相应的微程序,具体上机调试掌握整机概念。
(3)掌握微程序控制器的组成原理。
(4)掌握微程序的编写、写入,观察微程序的运行。
(5)通过课程设计,使学生将掌握的计算机组成基本理论应用于实践中,在实际操作中加深对计算机各部件的组成和工作原理的理解,掌握微程序计算机中指令和微指令的编码方法,深入理解机器指令在计算机中的运行过程。
1.2设计任务
计算机系统设计的总体目标是设计模型机系统的总体结构、指令系统和时序信号。
该设计要求根据计算机组成原理课程所学知识,设计、开发一套简单的模型计算机。
以教学实验用模型机为背景,通过调研、分析现有的模型机,建立带有8位移位运算指令的整机模型。
通过对一个简单计算机的设计,以达到对计算机的基本组成、部件的功能与设计、微程序控制器的设计、微指令和微程序的编制与调试等过程有更深的了解,加深对理论课程的理解。
通过模型机的设计和调试,连贯运用计算机组成原理课程学到的知识,建立计算机整机概念,加深计算机时间和空间概念的理解。
1.3设计要求
根据理论课程所学的知识,设计出简单计算机系统的总体方案,结合各单元实验积累和课堂上所学知识,选择适当芯片,设计简单的模型机,具体要求如下:
(1)利用各单元实验和课堂上所学知识,选择适当的芯片,设计简单的计算机系统;
(2)在完成数据通路设计并验证数据通路功能的基础上增加指令和微指令控制的功能;
(3)以手动方式产生各指令执行过程中所需要的微命令,控制指令的执行;
(4)以自己所设计的计算机系统为硬件环境,设计出完成指定功能的各指令周期流程图,并设计出相应的微命令;
(5)设计时序列电路,产生满足指令周期和指令执行所需要的多级时序信号;
设计控存,将各指令的微程序存放在CM中,经过适当的时序控制,通过微程序自动控制指令的执行(当采用微程序控制器时)。
1.4设计原理
部件实验过程中,各部件单元的控制信号是人为模拟产生的,而本次设计将能在微程序控制下自动产生各部件单元控制信号,实现特定指令的功能。
实验系统中模型机的运行是在微程序的控制下进行的,在实验平台中,模型机从内存中取出、解释、执行机器指令都将由微指令和与之相配合的时序来完成。
计算机中CPU是核心,它是通过指令和微指令的执行来工作的。
指令是计算机要完成的某一项功能。
它对应到执行的过程中是一段微程序。
一段微程序含多条为指令,而一条微指令又含多个微命令。
一个微命令驱动某个硬件部件执行某种操作。
通过这样一个关系,从而达到由计算机指令来驱动计算机各个硬部件的协调工作以实现一条指令的执行。
计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应与一个微程序。
模型机包括运算器,存储器,微控器,输入设备,输出设备以及寄存器。
这些部件的动作控制信号都有微控制器根据微指令产生。
需要特别说明的是由机器指令构成的程序存放在存储器中,而每条机器指令对应的微程序存储在微控制器的存储器中。
(1)运算器。
运算器又由运算逻辑单元、数据暂存器、通用寄存器组成。
ALU、ALU_G和74299组成运算逻辑单元,其中ALU是由4个4位的74LS181串联成16位的运算器,ALU_G是ALU-G实现用于控制ALU的运算结果的输出,74299用74LS299实现用于对ALU的运算结果进行移位运算;数据暂存器由DR1和DR2组成,DR1和DR2都是用74LS273实现,它们用于存储运算器进行运算的两个操作数;通用寄存器由R0、R1和R2组成,R0、R1和R2都是用74LS374实现,它们用作目的寄存器和源寄存器。
(2)控制器。
控制器由微程序控制器、指令寄存器、地址寄存器和程序计数器组成。
微程序控制器里面存放了指令系统对应的全部微程序,微程序控制器是由微控制存储器和3个138译码器实现(A138、B138和P138),用于产生控制信号来控制各个组件的工作状态;在图1中指令寄存器表示为IR,指令寄存器由一个74LS273实现,用于存放当前正在执行的指令;在图1中地址寄存器表示为AR,地址寄存器由一个74LS273实现,在读取或者写入存储器时用于指明要读取或写入的地址;程序计数器由PC_G和PC组成,其中PC是由八位二进制同步计数器实现,用于产生程序指针pc的下一个值,PC_G由PC-G实现,用于存储程序的程序指针pc的值。
(3)存储器。
存储器用静态随机存储器6116实现,用来存储用户程序和数据。
(4)数据总线。
数据总线用于连接运算器、存储器、输入输出等模块。
(5)输入输出。
输入输出类似于键盘和显示器。
(6)时序产生器。
T1、T2、T3和T4等控制信号都是由时序产生器生产,时序产生器一个周期中产生四个脉冲信号T1~T4,这四个脉冲信号用于控制组件的执行顺序,组件在这些信号的控制下有序的执行,一个周期中完成一条微指令的执行。
本设计采用12条机器指令:
IN(输入)、LDA(取数)、STA(存数)、OUT(输出)、AND(逻辑与)、JMP(无条件转移)、BZC(为零或有进位转移)、MOV(数据传送)、CLR(位清零)、OR(逻辑或)、NOT(逻辑非)、HLT(处理器暂停指令)、ADD(加法)
为了向RAM中装入程序和数据,检查写入是否正确,并能启动程序执行,还必须设计三个控制台操作微程序。
存储器读操作(KRD):
拨动总清开关CLR后,控制台开关SWB、SWA为00时,按START微动开关,可对RAM连续手动读操作。
存储器写操作(KWE):
拨动总清开关CLR后,控制台开关SWB、SWA为01时,按START微动开关,可对RAM进行连续手动写入。
启动程序:
拨动总清开关CLR后,控制台开关SWB、SWA置为11时,按START微动开关,即可转入到第01号取址微指令,启动程序运行。
第二章模型机总体设计
2.1模型机的逻辑结构
简单的模型计算机是由运算器、控制器、存储器、总线、输入输出和时序产生器组成。
在模型机中,我们将要实现RAM的读写指令,寄存器的读写指令,跳转指令,ALU的加、减、与、或指令。
把通用寄存器作为累加器A,进行左、右移等指令,整体构成一个单累加器多寄存器的系统。
模型机组成结构图如下所示:
图2.1模型机组成结构图
2.1.1运算器的物理结构
运算器模块主要由四片74LS181、暂存器两片74LS273等构成。
其中74LS181可通过控制器相应的控制指令来进行某种运算,具体由S0、S1、S2、S3、S4、M来决定。
T4是它的工作脉冲,正跳变有效。
寄存器堆模块为实验计算机提供了2个8位通用寄存器。
它们用来保存操作数及其中间运算结果,它对运算器的运算速度、指令系统的设计等都有密切的关系。
在该运算器中,有两片74LS181组成算术和逻辑运算。
数据的来源由74LS273寄存器提供,74LS273产生16位数据,分别送入到74LS181运算器中进行相应的运算。
运算器结构图如下:
图2.2运算器结构图
2.1.2存储器系统的组成与说明
主存储器单元电路主要用于存放实验机的机器指令,它的数据总线挂在外部数据总线EXD0~EXD7上;它的地址总线由地址寄存器单元电路中的地址寄存器74LS273(U37)给出,地址值由8个LED灯LAD0~LAD7显示,高电平亮,低电平灭;在手动方式下,输入数据由键盘提供,并经一三态门74LS245(U51)连至外部数据总线EXD0~EXD7,实验时将外部数据总线EXD0~EXD7用8芯排线连到内部数据总线BUSD0~BUSD7,分时给出地址和数据。
它的读信号直接接地;它的写信号和片选信号由写入方式确定。
该存储器中机器指令的读写分手动和自动两种方式。
手动方式下,写信号由W/R`提供,片选信号由CE`提供;自动方式下,写信号由控制CPU的P1.2提供,片选信号由控制CPU的P1.1提供。
2.1.3微程序控制器逻辑结构及功能
微程序控制器的结构与微指令的格式密切相关。
它由控制存储器、微地址寄存器、微命令寄存器和地址转移逻辑几部分组成。
微地址寄存器和微命令寄存器两者的总长度即为一条微指令的长度,二者合在一起称为微指令寄存器。
微控制器寄存器使用的是两片74LS273和一片74LS175构成它们从微命令存储器中读出并保存,为后续模块提供信息。
它是根据节拍信号进行读的。
2.2模型机的工作过程
模型机的工作过程可以归纳如下:
(1)控制器把PC中的指令地址送往地址寄存器AR,并发出读命令。
存储器按给定的地址读出指令,经由存储器数据寄存器MDR送往控制器,保存在指令寄存器IR中。
(2)指令译码器ID对指令寄存器IR中的指令进行译码,分析指令的操作性质,并由控制电路向存储器、运算器等有关部件发出指令所需要的微命令。
(3)当需要由存储器向运算器提供数据时,控制器根据指令的地址部分,形成数据所在的存储单元地址,并送往地址寄存器AR,然后向存储器发出读命令,从存储器中读出的数据经由存储器数据寄存器MDR送往运算器。
(4)当需要由运算器向存储器写入数据时,控制器根据指令的地址部分,形成数据所在的存储单元地址,并送往存储器地址寄存器AR,再将欲写的数据存入存储器数据寄存器MDR,最后向存储器发出写命令,MDR中的数据即被写入由MAR指示地址的存储单元中。
(5)一条指令执行完毕后,控制器就要接着执行下一条指令。
为了把下一条指令从存储器中取出,通常控制器把PC的内容加上一个数值,形成下一条指令的地址,但在遇到“转移”指令时,控制器则把“转移地址”送入PC。
控制器不断重复上述过程的
(1)到(5),每重复一次,就执行了一条指令,直到整个程序执行完毕。
2.3带进位运算的模型机监控软件设计
本模型机监控软件主要完成从输入设备读入数据,进行算术运算、移位运算后,将结果存入呢村的某个单元,最后通过输出设备输出结果。
监控软件详细如下:
地址
内容
助记符
说明
00000000
00000000
IN
“输入开关量”R0
00000001
00010000
ADD[0DH]
R0[0DH]R0
00000010
00001101
00000011
10000000
RLC
00000100
00000000
IN
“输入开关量”R0
00000101
01100000
RRC
00000110
01110000
RL
00000111
00100000
STA[0EH]
00001000
00001110
R0[0EH]
00001001
00110000
OUT[0EH]
00001010
00001110
[0EH]BUS
00001011
01000000
JMP00H
00HPC
00001100
00000000
00001101
01000000
自定义数据
00001110
结果存放单元
表2.1监控软件详细表
2.4数据通路图
2.5连接线路图
图2.4模型机实现线路图
第三章详细设计
3.1运算器设计
3.1.1运算器中各芯片的连接图
图3.116位运算器电路图
3.1.2运算器功能及说明
1.运算器功能:
加工信息包括算术运算和逻辑运算。
74LS181功能如表所示:
表3-174LS181的控制逻辑引脚的功能表
2.设计先行进位的16位算数或逻辑运算功能的运算器
专用的先行进位产生器用于将多片运算电路之间的进位信号连接成并行进位结构。
74LS182的引出端信号分别为:
进位输入端Cn,进位产生输入端G0~G3,进位传输输入端P0~P3,进位输出端Cn+x、Cn+y、Cn+z,进位产生输出端G,进位传输输出端P。
控制端M用来控制ALU进行算术运算还是逻辑运算,当M=0时,M对进位信号没有任何影响。
此时Fi不仅与本位的被操作数Yi和操作数Xi有关,而且与向本位的进位值Cn+i有关,因此M=0时,进行算术操作;当M=1时,封锁了各位的进位输出,即Cn+i=0,因此各位的运算结果Fi仅与Yi和Xi有关,故M=1时,进行逻辑操作。
此次设计的16位运算器由四片74LS181以并行构成16位字长的ALU。
它可以对16两个位的二进制数进行多种算数或逻辑运算,具体由74LS181的功能控制条件S0、S1、S2、S3、Cn、M来决定,详见74LS181功能表,两个参加运算的数分别来自暂存器U29和U30,运算结果直接输出到输出缓冲器U33,有输出缓冲器发送到系统的数据总线上,以便进行移位操作或参加下一次运算。
低8位运算器的输出经过一个三态门74LS245(U33)到ALUO1插座,实验时用8芯排线和内部数据总线BUSD0~D7插座BUS1~6中的任一个相连,低8位数据总线通过LZD0~LZD7显示灯显示;高8位运算器的输出经过一个三态门74LS245(U33`)到ALUO1`插座,实验时用8芯排线和高8位数据总线BUSD8~D15插座KBUS1或KBUS2相连,高8位数据总线通过LZD8~LZD15显示灯显示;参与运算的四个数据输入端分别由四个锁存器74LS273(U29、U30、U29`、U30、)锁存,实验时四个锁存器的输入并联后用8芯排线连至外部数据总线EXD0~D7插座EXJ1~EXJ3中的任一个;参与运算的数据源来自于8位数据开并KD0~KD7,并经过一三态门74LS245(U51)直接连至外部数据总线EXD0~EXD7,输入的数据通过LD0~LD7显示。
进位输入信号来自于两个方面:
其一对运算器74LS181(U31、U32)的进位输出进行倒向所得Cn;其二由移位寄存器74LS299的选择参数S0、S1、A0~A7决定所得。
3.2存储器设计
因为Intel6264的片容量为8k×8b(8kB),因此需要2片Intel6264存储器芯片。
主存储器单元电路主要用于存放实验机的机器指令,它的数据总线挂在外部数据总线EXD0~EXD7上;它的地址总线单元电路中的地址寄存器74LS273(U37)给出,地址值由8个LED灯LAD0~LAD7显示,高电平亮,低电平灭。
它的读信号直接接地;它的写信号和片选信号由写入方式确定。
该存储器中机器指令的读写分手动和自动两种方式。
手动方式下,写信号由W/R提供,片选信号由CE提供;自动方式下,写信号由控制CPU的P1.2提供,片选信号由控制CPU的P1.1提供。
存储器用静态随机存储器6116实现,用来存储用户程序和数据。
存储器部分由两片6116构成16位存储器,地址总线只有低八位有效,因而其存储空间为00H—FFH。
6116有三个控制线:
CE(片选线)OE(读线)、WE(写线),当CE=0、WE=0时进行写操作,CE=0、WE=1时进行读操作,其写时与脉冲宽度一致。
EPROM2732:
0000H~0FFFH;1000H~1FFFH;
SRAM6116:
2000H~27FFH;2800~2FFFH
存储器中的数据是指令时,那么数据是从RAM送到总线,再从总线送到IR中;存储器中的数据是需要加工的数据时,那么数据是从RAM送到总线,再动总线送到通用寄存器中等待加工。
存储器连接图如下:
图3.2存储器连接图
3.3指令系统设计
3.3.1指令寻址方式
模型机的寻址方式分五种:
累加器寻址:
操作数为累加器A,例如“CPLA”是将累加器A值取反,还有些指令是隐含寻址累加器A,例如“OUT”是将累加器A的值输出到输出端口寄存器OUT。
寄存器寻址:
参与运算的数据在R0-R3的寄存器中,例如“ADDA,R0”指令是将寄存器R0的值加上累加器A的值,再存入累加器A中。
寄存器间接寻址:
参与运算的数据在存储器EM中,数据的地址在寄存器R0-R3中,如“MOVA,@R1”指令是将寄存器R1的值做为地址,把存储器EM中该地址的内容送入累加器A中。
存储器直接寻址:
参与运算的数据在存储器EM中,数据的地址为指令的操作数。
例如“ANDA,40H”指令是将存储器EM中40H单元的数据与累加器A的值做逻辑与运算,结果存入累加器A。
立即数寻址:
参与运算的数据为指令的操作数。
例如“SUBA,#10H”是从累加器A中减去立即数10H,结果存入累加器A。
3.3.2指令格式
本模型机共有12条基本指令,其中算术指令7条,访存指令和程序控制指令4条,输入输出指令2条。
下表列出了各条指令的格式,汇编符合,指令功能。
汇编符号
指令格式
功能
CLRrd
MOVrsrd
011100rd
0110rsrd
0→rd
rs→rd
ANDrsrd
ORrsrd
1011rsrd
1100rsrd
rs∧rd→rd
rs∨rd→rd
LDAMDrd
STAMDrd
JMPMD
BZCMD
00M00rd
00M01rd
00M10rd
00M11rd
(E)→rd
rd→(E)
E→PC
当cy=1时E→PC
INaddrrd
OUTaddrrd
010001rd
010110rd
addr→rd
rd→addr
HALT
01100011
停机
表3-2指令操作格式
1.算术逻辑指令
设计8条算术逻辑指令用单字长表示,寻址方式采用寄存器直接寻址,其格式如下:
7654
32
10
OP—CODE
RS
RD
表3.3算术逻辑指令格式
其中,OP-CODE为操作码,RS为源寄存器,RD为目的寄存器,并规定如下表:
RS或RD
选定的寄存器
00
R0
01
R1
10
R2
表3.4算术逻辑指令设计
2.访问指令及转移指令
模型机设计2条访问指令,即存数(STA)、取数(LDA),1条转移指令,即无条件转移(JMP),用双字长表示,指令格式为:
7654
32
10
OP-CODE
M
RD
D
表3.5访问指令及转移指令格式
其中,OP-CODE为操作码,RD为目的寄存器地址(LDA、STA指令使用)。
D为位移量(正负均可),M为寻址模式,其定义如下:
寻址模式M
有效地址E
说明
00
E=D
直接寻址
01
E=(D)
间接寻址
10
E=(RI)+D
RI变址寻址
11
E=(PC)+D
相对寻址
表3.6访问指令及转移指令设计
本模型机规定变址寄存器RI指定为寄存器R2。
3.I/0指令
输入(IN)和输出(OUT)指令采用单字长指令,其格式如下:
7654
32
10
OP-CODE
ADDR
RD
表3.7I/0指令格式
其中,ADDR=01时,选中“INPUTDEVICE”中的开关组作为输入设备,ADDR=10时,选中“OUTPUTDEVICE”中的数码块作为输出设备。
本模型机共有13条基本指令,其中算术逻辑指令8条,访问内存指令和程序控制指令3条,输入输出指令2条。
指令系统如下所示:
助记符号
指令格式
功能
CLRRD
MOVRS,RD
ANDRS,RD
SUBRS,RD
0111
00
RD
1000
RS
RD
1001
RS
RD
1010
RS
RD
0—>RD
RS—>RD
RS&RD—>RD
RS-RD-CY—>RD
RRRS,RD
RLRS,RD
RRCRS,RD
RLCRS,RD
1011
RD
RD
1100
RS
RD
1110
RS
RD
1110
RS
RD
LDAM,D,RD
STAM,D,RD
JMPM,D
00
M
00
RD
00
M
00
RD
00
M
00
RD
E—>RS
RD—>E
E—>PC
表3.8I/0指令设计
3.4微程序控制器设计与实现
3.4.1微程序控制器的原理
1.微程序控制的基本思想:
就是仿照通常解题程序的方法,把操作控制信号编制成所谓的“微指令”,存放到只读存储器里。
当机器运行时一条有一条的读出这些微指令,从而产生全机所需要的各种操作控制信号,使相应部件执行所规定的操作。
2.基本组成:
控制存储器,微指令寄存器,微地址寄存器,地址转移逻辑
3. 微程序控制器的工作过程:
开始运行程序时
a.CPU自动将取指令的微程序入口地址送入uAR,启动控制存储器进行读操作,将微指令送入uIR。
b.指令的操作码部分经译码器产生一组微命令,送到有关部件控制完成一组微操作。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基本 模型 设计