基本模型机08.docx
- 文档编号:5447787
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:27
- 大小:282.66KB
基本模型机08.docx
《基本模型机08.docx》由会员分享,可在线阅读,更多相关《基本模型机08.docx(27页珍藏版)》请在冰豆网上搜索。
基本模型机08
目录
摘要2
前言3
第一章设计目的及设计原理4
1.1设计的目的4
1.2设计原理4
第二章总体设计7
第三章详细设计8
3.1运算器的物理结构8
3.2存储器系统的组成与说明12
3.2.1存储器的详细设计12
3.3指令系统的设计与指令分析13
3.3.1数据格式13
3.3.2指令格式14
3.4微程序控制器的逻辑结构及功能15
3.4.1微程序控制器的逻辑图15
3.5微程序的设计与实现16
3.6微程序的设计与实现19
3.6.1指令格式19
3.6.2微程序流程图20
3.6.3微程序设计21
第四章系统调试报告27
总结29
参考文献30
致谢31
摘要
本次计算机组成原理课程设计通过对一个基本模型机的设计,设计计算机的基本组成部件、微程序控制器、微指令和微程序,设计中的组成模块是带有片间串行进位的8位算术、逻辑运算功能的运算器,使用运算芯片和寄存器完成,存储器,使用微程序设计的方式实现控制器,从而建立基本模型机的概念。
本课程设计要求实现十三条机器指令:
IN(输入),LDA(取数),CLR(清零),SUB(减法指令),OUT(输出),JMP(无条件转移指令),MOV(数据传送指令),DEC(减1指令),ADD(加法指令)STA(存数),BZC(有条件转移指令),INC(加1指令),ADC(带进位加法指令)。
在微程序控制下自动产生各部件单元的控制信号,实现特定指令的功能,通过设计流程图,编写机器指令,微指令和控制信号程序。
微指令设计完毕后,连接线路在DVCC计算机组成原理教学实验箱运行程序,并将实验结果显示输出。
关键词:
基本模型机的设计;微指令;微程序;
前言
该设计是根据计算机组成原理课程所学的知识,设计、开发的一套简单模型机。
是在DVCC试验机上实现的,此系列实验系统作为较高层次、专用于计算机原理课程教学实验的实验计算机系统具有良好的实验性能和系统的完整性以及可扩展性。
良好的实验性体现在DVCC系列机能很好地完成计算机硬件系统各功能部件的教学实验,它包括运算器部件、控制器部件、主存储器部件和外设接口实验;计算机的CPU自行设计与实现,有自己的汇编语言的支持。
在相应软件的配合下,将各功能部件有机的结合起来,完成计算机整机的实验。
系统的完整性体现在DVCC系列机与学生常见到的简单计算机大体相同,其主要组成与运行方式和PC机差不多,该系列机是一台硬软件相对完整、配置巧妙合理的完整的计算机系统,通过它能体现出重要教学内容、能完成主要教学实验项目。
第一章设计目的及设计原理
1.1设计的目的
本课程设计的教学目的是在掌握计算机系统组成及内部工作机制、理解计算机各功能部件工作原理的基础上,深入掌握信息流和控制信息流的流动过程,进一步加深计算机系统各模块间相互关系的认识和整机的概念,培养开发和调试计算机的技能。
再设计实践中提高应用所学专业知识分析问题和解决问题的能力。
用微程序控制器实现以下指令功能,设计各指令格式以及编码,并实现各机器指令微代码,根据定义的机器指令,自拟编写加ADD,减SUB等的应用程序。
全部微指令设计完毕后,编写二进制代码,即使每条指令代码化。
连接线路在DVCC计算机组成原理教学实验箱上运行,并显示输出实验结果。
1.2设计原理
(1)运算器
设计中所用的运算器数据通路,其中运算器由两片74LS181以并/串形成8位字长的ALU构成。
运算器的输出经过一个三态门74LS245(U33)到ALUO1插座,实验时用8芯排线和内部数据总线BUSD0~D7插座BUS1~6中的任一个相连,内部数据总线通过LZD0~LZD7显示灯显示;运算器的两个数据输入端分别由二个锁存器74LS273(U29、U30)锁存,两个锁存器的输入并联后连至插座ALUBUS,测试时通过8芯排线连至外部数据总线EXD0~D7插座EXJ1~EXJ3中的任一个;参与运算的数据来自于8位数据开并KD0~KD7,并经过一三态门74LS245(U51)直接连至外部数据总线EXD0~EXD7,通过数据开关输入的数据由LD0~LD7显示。
算术逻辑运算功能发生器74LS181(U31、U32)的功能控制信号S3、S2、S1、S0、CN、M并行相连后连至SJ2插座,测试时通过6芯排线连至6位功能开关插座UJ2,以手动方式用二进制开关S3、S2、S1、S0、CN、M来模拟74LS181(U31、U32)的功能控制信号S3、S2、S1、S0、CN、M;其它电平控制信号LDDR1、LDDR2、ALUB`、SWB`以手动方式用二进制开关LDDR1、LDDR2、ALUB、SWB来模拟,这几个信号有自动和手动两种方式产生,通过跳线器切换,其中ALUB`、SWB`为低电平有效,LDDR1、LDDR2为高电平有效。
另有信号T4为脉冲信号,在手动方式下进行实验时,只需将跳线器J23上T4与手动脉冲发生开关的输出端SD相连,按动手动脉冲开关,即可获得实验所需的单脉冲。
带进位控制运算器增加进位控制部分,其中高位74LS181(U31)的进位CN4通过门UN4E、UN2C、UN3B进入UN5B的输入端D,其写入脉冲由T4和AR信号控制,T4是脉冲信号,在手动方式下进行实验时,只需将跳线器J23上T4与手动脉冲发生开关的输出端SD相连,按动手动脉冲开关,即可获得测试所需的单脉冲。
AR是电平控制信号(低电平有效),可用于实现带进位控制实验。
从图中可以看出,AR必须为“0”电平,D型触发器74LS74(UN5B)的时钟端CLK才有脉冲信号输入。
才可以将本次运算的进位结果CY锁存到进位锁存器74LS74(UN5B)中。
(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提供。
由于地址寄存器为8位,故接入6264的地址为A0~A7,而高4位A8~A12接地,所以其实际使用容量为256字节。
6264有四个控制线:
CS1第一片选线、CS2第二片选线、OE读线、WE写线。
其功能如表3—4所示。
CS1片选线由CE`控制(对应开关CE)、OE读线直接接地、WE写线由W/R`控制(对应开关WE)、CS2直接接+5V。
(3)部件测试过程中,各部件单元的控制信号是人为模拟产生的,而总体测试将能在微程序控制下自动产生各部件单元控制信号,实现特定指令的功能。
这里,测试计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。
为了向主存储器RAM中装入程序或数据,并且检查写入是否正确以及能运行主存储器中的程序,必须设计三个控制操作微程序。
·存储器读操作:
拨动总清开关后,置控制开关SWB、SWA为“00”时,按要求连线后,连续按“启动运行”开关,可对主存储器RAM连续手动读操作。
·存储器写操作:
拨动总清开关后,置控制开关SWB、SWA为“01”时,按要求连线后,再按“启动运行”开关,可对主存储器RAM进行连续手动写入。
·运行程序:
拨动总清开关后,置控制开关SWB、SWA为“11”时,按要求连线后,再按“启动运行”开关,即可转入到第01号“取址”微指令,启动程序运行。
上述三条控制指令用两个开关SWC、SWA的状态来设置,其定义如下:
SWB
SWA
控制台命令
0
0
1
0
1
1
读内存
写内存
启动程序
表1-1控制指令
(4)指令寄存器
指令寄存器用来保存当前正在执行的一条指令。
当执行一条指令时,先把它从内存取到缓冲寄存器中,然后再传送到指令寄存器。
指令划分为操作码和地址码字段,由二进制构成,为了执行任何一条给定的指令,必须对操作码进行测试P
(1),通过节拍脉冲T4的控制以便识别所要求的操作。
“指令译码器”根据指令中的操作码进行译码,强置微控器单元的微地址,使下一条微指令指向相应的微程序首地址。
第二章总体设计
基本整机模型数据框图如图2-1所示,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。
图2-1模型机的数据通路图
数据的通路从程序计数器PC的地址送到主存的地址寄存器,根据地址寄存器的内容找到相应的存储单元。
存储器中的数据是指令时,那么数据是从RAM送到总线,再从总线送到IR中。
存储器中的数据是需要加工的数据时,那么数据是从RAM送到总线,再动总线送到通用寄存器中等待加工。
数据加工过程中,两个数据是从总线上将数据分别分时压入两个暂存器中,等待运算部件的加工,在数据加工完成以后。
运算结果是通过三态门送到总线上。
三态门的控制时由微控制器来控制。
第三章详细设计
3.1运算器的物理结构
运算器主要由运算部件,暂存器,移位器,标志位寄存器,通用寄存器构成。
运算器最主要的功能就是进行数据的加工数据加工好以后也是有控制器控制将数据送到相应的部件上。
运算部件加工数据以后不是直接送到总线,而由一三态门控制是否送到总线。
实现数据合理传输。
最终达到有条不紊的工作。
运算器中的两个锁存器是挂到总线上有从总线中得到数据。
他们只能从总线中读数据,不能将数据送到总线上而他们的数据只能送给运算部件进行加工不能给别的任何部件。
这两个寄存器对程序员是不可见的,只有微程序控制器能对这两个寄存器操作。
运算部件74LS181的实现带进位的运算时需要用到进位寄存器中的内容,74LS299进行带进位的移位运算时也需要用到进位寄存器。
所以在运算器的设计中加入进位寄存器是非常必要的,实现也不是很难。
74LS299在实现循环移位的时候自己是不能的实现的必须加入外围电路,辅助实现
1.1运算部件
运算部件主要由功能是需要实现基本的数学运算和逻辑运算,如加法,减法,乘法,除法,与,或,非等运算。
在设计考虑到现在部件和本人对运算芯片的了解。
本次课程设计中使用的时74LS181作为运算单元。
运用两片74LS181可以实现读两个八位二进制数的加工。
运算部件的数据是由存放在寄存器中本次课程设计中使用两片74LS273作为锁存器,两个锁存器都接到总线上,可以在T4时刻和在被选中的情况下从总线中得到数据,提供给运算部件加工。
运算器的输出经过一个三态门74LS245送到总线上。
表3.174LS181的功能表
1.2移位器
运算器中不仅包括算术逻辑运算部分还包括。
移位运算器用于实现移位运算和部分乘法和除法运算(×2和÷2)。
移位运算器的是现在方式很多本次设计中使用的是74LS299移位寄存器作为移位部件,但是单独一个74LS299不能实现所有的移位运算(如循环移位,和带进位的移位),必需加入外围电路来实现。
移位运算部件的数据都是直接从总线上来到总线上去,不需要用到暂存器。
它的数据输入和输出是由它的控制端来控制,这些控制信息是由微控制器给出。
图3.1运算器的物理结构
1.3标志位寄存器
标志位寄存器主要的功能是为了保存在运算过程中的产生的一些有用的信息,如进位,溢出,零标志位等。
这些标着可以用于程序中跳转的测试条件。
对于系统的正确工作是非常重要的。
本次设计的是基本模型机,由于74LS181和74LS299的运算功能都是由微控制器来控制其中在移位和运算过程。
在运算和移位的过程中都会产生进位,进位的保存电路如图3所示。
其它的标志位在设计用不到,在此设计中就没有设计其它的标志位,只设计了一个进位位寄存器。
图3.2进位寄存器
1.4通用寄存器
通用寄存器的是存储部件中非常重要的一个组成部分。
它的存储速度快,访问频繁,成本高,存储量小等特点。
通用寄存器组主要的功能是为了保存一些中间变量,为运算器提供高效的数据,消除瓶颈。
但是寄存器都成本比较高不能做的很大。
在本模型机使用的通用寄存器组有三个他们分别标号R1,R2,R3它们选中工作都是由微控制器直接控制以达到要求的速度。
模型机中的三个通用寄存器是用三片74LS374构成。
他们的输入和输出都是直接和总线相连的。
数据是从总线中来到总线中去达到寄存数据的功能。
本设计中的通用寄存器的设计如图5所示。
图3.3通用寄存器
3.2存储器系统的组成与说明
3.2.1存储器的详细设计
存储器最主要的部件是存储器件。
本次设计中使用一片6264,6264的实际存储容量为8K字节,由于设计中使用的都是8位的设计地址线也是8位在此实际使用了256字节。
6264有四个控制线:
CS1第一片选线,CS2第二片选线,OE读线,WE写线,功能表如下(表3.2):
表3.2存储器功能表
工作方式
I/O
输入
DI
DO
/OE
/WE
/CS
非选择
X
HIGH-Z
X
X
H
读出
HIGH-Z
DO
L
H
L
写入
DI
HIGH-Z
H
L
L
写入
DI
HIGH-Z
L
L
L
选择
X
HIGH-Z
H
L
L
存储器的实现物理电路图为:
图3.4存储器的链接图
设计中使用了一块74LS273作为地址寄存器(AR)他是从总线上读地址信息,保存好以后。
根据地址寄存器中的地址信息可以对主存中对应单位的信息读或者写。
主存中信息都是由总行传输。
送地址和数据虽然用都是总线,但是它们是在不同的时刻使用时没有冲突的。
他们所在的总线周期不同。
地址信息是从总线总得到时用控制器控制其他的部件向总线总发出地址信息。
在得到地址信息后根据地址信息选中主存的单元都或者写。
从主存中读信息都时候数据是在总线上传输到控制需要传输的元件,在写时总线上有别的元件向总线中发送信息就能写入主存。
3.3指令系统的设计与指令分析
3.3.1数据格式
数据格式如下所示:
D7D6D0
符号
尾数
3.3.2指令格式
模型机设计四大类指令共十三条,其中包括算术指令逻辑指令,I/O指令,存算指令、取算指令、转移指令。
(1)算术指令
设计7条算术指令并用单字节表示,寻址方式采用寄存器寻址,其格式如下
7654
32
10
OP-CODE
RS
DS
其中,OP-CODE为操作码,RS为源寄存器,DS目的寄存器,并规定:
RS或RD
选定的寄存器
00
01
10
R0
R1
R2
7条算术指令的名称。
访存指令及转移指令
机设计2条访问指令:
即存算STA,取算LDA;2条转移指令:
即无条件转移指令JMP,有进位跳转指令BZC,指令格式为:
76
54
32
10
00
M
OP-CODE
RD
D
其中,OP-CODE为操作码,RD为源寄存器的地址(LAD,STA指令用),D为位移量,M为寻址模式,其定义如下:
寻址模式M
有效地址
说明
00
01
10
11
E=D
E=(D)
E=(RI)+D
E=(RD)+D
直接寻址
间接寻址
RI变址寻址
相对选址
本模型机规定变址RI为寄存器R2
(1)I/O指令
输入IN指令和输出指令OUT指令采用单字节指令,其格式如下:
7654
32
10
OP-CODE
addr
RD
其中,addr=01时,选中输入数据开关KD0~KD7作为输入设备,addr=10
选中2位数码管作为输出设备。
指令系统
本模型机共有13条基本指令,其中算术指令7条,访存指令和程序控制指令4条,输入输出指令2条。
表2列出了各条指令的格式,汇编符合,指令功能。
汇编符号
指令格式
功能
CLRrd
MOVrsrd
ADDrsrd
SUBrsrd
011100rd
0110rsrd
1000rsrd
1001rsrd
0→rd
rs→rd
rs+rd→rd
rd-rs→rd
INCrd
ADCrsrd
DECrd
1010rd
1011rsrd
1100rd
rd+1→rd
rs+rd+(CF)→rd
rd-1→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
3.4微程序控制器的逻辑结构及功能
3.4.1微程序控制器的逻辑图
3.5微程序的设计与实现
微控制器主要由控制器,微指令寄存器和地址转移逻辑三大部分组成。
其中,微指令寄存器分为微地址寄存器和微命令寄存器两部分。
控制存储器用来存放实现全部指令系统的微程序,它是一种只读型存储器。
一旦微程序固化,机器运行时则只读不写。
在串行方式的微程序控制器中,微指令周期就是只读存储器的工作周期。
控制存储器的字长就是微指令字的长度,其存储容量视机器指令系统而定,即取决于微程序的数量。
对控制存储器的要求是速度快,读出周期要短。
微指令寄存器用来存放由控制存储器读出的一条微指令信息。
其中微地址寄存器决定将要访问的下一条微指令地址,而微命令寄存器则保存一条微指令的操作控制字段和判别测试字段的信息。
地址转移逻辑在一般情况下,微指令由控制存储器读出后直接给出下一条微指令的地址,通常我们简称为微地址,这个微地址信息就存放在微地址寄存器中。
如果微程序不出现分支,那么下一条微指令的地址就直接由微地址寄存器给出,当微程序出现分支时,意味着微程序出现条件转移。
在这种情况下,通过判别测试字段P和执行部件的“状态条件”反馈信息,去修改微地址寄存器的内容,并按改好的内容去读下一条微指令。
地址转移逻辑就承担自动完成修改微地址的任务。
微控制器寄存器使用的是两片74LS273和一片74LS175构成它们从微命令存储器中读出并保存,为后续模块提供信息。
它是根据节拍信号进行读的。
地址转移部分是由一个74LS245作为6的带强制端的触发器构成寄存器和构成在强制端没有输入时使用的是从微存储器读出下一条地址。
如果强制端有输入就是强制端给定的地址。
强制端给地址主要是在分支的时候给出。
还有三个74LS138够成地址译码部分。
分别对应A,B,C字段。
微控制器的物理设计
微控制器的设计中根据其要求,使用的微控制的微控存使用的是3片2816
构成。
其中每一片使用的是256个字节并没有全使用。
这主要考虑到是整个模型机都使用的都是8位的。
三片2816实现的位扩张,构成24位长度微指令。
因此根据起设计的要求物理设计的逻辑图如下:
图3.5物理设计的逻辑图
3.6微程序的设计与实现
3.6.1指令格式
微指令长共24位,其控制位顺序如表3.6.1所示:
微程序
24
23
22
21
20
19
18
17
16
15
14
13
控制信号
S3
S2
S1
S0
M
CN
WE
B1
B0
A
微程序
12
11
10
9
8
7
6
5
4
3
2
1
控制信号
B
C
uA5
uA4
uA3
uA2
uA1
uA0
A字段B字段C字段
表3.6.1微指令的格式
A字段:
LDRi:
寄存器输入选中,具体选择同指令寄存器(IR)的最低2位(I1,I0)配合,当I1,I0=00时为输入到R0寄存器;I1,I0=01时为R1;I1,I0=10时为R2。
LDDR1:
暂存器DR1选中。
LDDR2:
暂存器DR2选中。
LDIR:
指令寄存器IR选中。
LOAD:
总线数据直接装载到PC计数器。
LDAR:
地址寄存器AR选。
B字段:
RS-B:
为源寄存器输出选中。
具体选择同指令寄存器(IR)的3,4位(I3,I2)配合,当I3,I2=00时为输入到R0寄存器;I3,I2=01时为R1;I3,I2=10时为R2。
RD-B:
为目的寄存器输出选中。
具体选择同指令寄存器(IR)的最低2位(I1,I0)配合,当I1,I0=00时为输入到R0寄存器;I1,I0=01时为R1;I1,I0=10时为R2。
RI-B:
为变址寄存器选中。
本机定固定为R2。
299-B:
移位寄存器输出选中。
ALU-B:
逻辑运算单元结果输出。
PC-B:
PC计数器输出。
C字段:
P
(1):
分支判断1,和指令寄存器(IR)的高四位(IR7-IR4)作为测试条件。
可分16个分支。
P
(2):
分支判断2,和指令寄存器(IR)的三四位(IR3,IR2)作为测试条件,有4个分支。
P(3):
分支判断3,和CY或ZI作为测试条件,有两个分支。
P(4):
分支判断4,和开关SWB,SBA作为测试条件,有4个分支。
用于控制台控制区(读程序,写程序,和运行程序)。
AR:
进行算术运算时是否影响进位和判零标志的控制位。
选中时进行带进位运算。
LDPC:
为PC计数信号选中。
UA5……UA0:
为下一步微地址。
指令的后续地址的产生方法是:
在没有跳转的指令中后六位就是下一条微指令的入口地址。
在有跳转的指令根据跳转的条件微控制器根据相应的条件和地址将下地址直接送到为控制器的地址强制端得到下一条指令的地址。
微程序是按顺序在在为控存中存放在系统初始化的是时候指令是从00H地址开始的00H地址中存放的是一条跳转指令直接可以跳转到01H的中存放的就是真正在控制程序功能的指令。
机器就根据指令一条的执行。
在微控制器的控制下让机器根据指令的来进行有条不紊的工作。
为指令的入口地址的形成是根据机器指令的高四位进行判断后得出的。
每一条微指令都对应相应的一个地址。
地址的编制和每一微指令是一一对应。
不存在冲突。
3.6.2微程序流程图
根据以上的指令设计,得出的微程序流程图如图3.6.2所示:
3.6.3微程序设计
1.设计与分析:
1).IN指令
微地址
S3
S2
S1
S0
M
CN
WE
B1
B0
A
B
C
UA5…UA0
08
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
2).OUT指令
微地址
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基本 模型 08