组成原理课程设计设计一台模型计算机.docx
《组成原理课程设计设计一台模型计算机.docx》由会员分享,可在线阅读,更多相关《组成原理课程设计设计一台模型计算机.docx(11页珍藏版)》请在冰豆网上搜索。
组成原理课程设计设计一台模型计算机
计算机组成原理课程设计
一、基本要求:
设计一台模型计算机
具体内容:
1.数据格式和指令系统2.数据通路
3.时序系统4.微指令格式
5.微程序控制器6.微程序流程图
7.微程序代码表
二、模型机设计
1.数据格式和指令系统的约定
1)数据格式
模型机规定采用定点补码表示法表示数据,且字长为8位,其格式如下:
76543210
符号
数据
其中:
第7位为符号位,数值表示范围是:
-1≤X<1。
2)指令系统
模型机设计四大类指令共16条,其中包括算术逻辑指令(9条)、I/O指令(4条)、访内及转移指令(2条)和停机指令(1条)。
因为指令系统共16条指令,所以操作码是4位。
由于模型机机器字长为8位,故设计单字长指令和双字长指令供使用。
(1)算术逻辑指令
设计9条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址,其格式如下:
76543210
OP-CODE
Rs
Rd
其中,OP-CODE为操作码,Rs为源寄存器,Rd为目的寄存器,并规定:
9条算术逻辑指令的名称、功能和具体格式。
(2)访内指令及转移指令
模型机设计2条访问指令,即存数(STA)、取数(LDA),2条转移指令,即无条件转移(JMP)、结果为零或有进位转移指令(BZC),指令格式为:
76543210
00
X
OP-CODE
Rd
D
其中,OP-CODE为操作码,Rd为目的寄存器,D为位移量(正负均可),X为寻址方式,其定义如下:
寻址方式
有效地址
说明
00
01
10
11
E=D
E=(D)
E=(R2)+D
E=(PC)+D
直接寻址
间接寻址
R2变址寻址
相对寻址
(3)输入输出指令
格式如下:
76543210
OP-CODE
addr
Rd
其中,addr=01时,选中“INPUTDEVICE”中的开关组作为入设备,addr=10时,选中“OUTPUTDEVICE”中的数码快作为输出设备。
(4)停机指令
格式如下:
76543210
OP-CODE
00
00
这类指令只有一条,即停机指令HALT
(5)模型机指令系统
指令类型
操作名称及用法
功能
指令格式
算术逻辑指令
MOVRs,Rd传送
(Rs)->Rd
1
0
0
0
Rs
Rd
ADDRs,Rd加法
(Rs)+(Rd)->Rd
1
0
0
1
Rs
Rd
SUBRs,Rd减法
(Rs)-(Rd)->Rd
1
0
1
0
Rs
Rd
INCRd自增
(Rd)+1→Rd
1
0
1
1
00
Rd
ANDRs,Rd与
(Rs)&&(Rd)->Rd
1
1
0
0
Rs
Rd
COMRs,Rd比较
(Rd)-(Rs)的结果影响状态位:
若N=1,则Rs>Rd
1
1
0
1
Rs
Rd
CLARd清零
0->Rd
1
1
1
0
0
0
Rd
RRCRd带进位右循环一位
0->MSB->MSB-1->…->LSB->C-1
1
1
1
1
0
0
Rd
RLCRd带进位左循环一位
C<-MSB<-MSB-1<-…<-LSB<-0
0
1
1
1
0
0
Rd
访内及转移指令
STAX,D,Rd存数
(Rd)->E
0
0
X
0
0
Rd
D
LDAX,D,Rd取数
E->Rd
0
0
X
0
1
Rd
D
JMPX,D无条件跳转
E->PC
0
0
X
1
0
00
D
BZCX,D若条件位Z=1或C=1,则跳转
E->PC
0
0
X
1
1
00
D
I/O指令
INaddr,Rd输入
(addr)->Rd
0
1
0
0
0
1
Rd
OUTaddr,Rd输出
Rd->(addr)
0
1
0
1
1
0
Rd
停机指令
HALT
停机
0
1
1
0
0
0
0
0
2.数据通路
简单的模型计算机是由运算器、控制器、存储器、总线、输入输出和时序产生器组成。
在模型机中,我们将要实现RAM的读写指令,寄存器的读写指令,跳转指令,ALU的加、减、与、或指令。
把通用寄存器作为累加器A,进行左、右移等指令,整体构成一个单累加器多寄存器的系统。
运算器模块主要由四片74LS181、暂存器两片74LS273等构成。
其中74LS181可通过控制器相应的控制指令来进行某种运算,具体由S0、S1、S2、S3、M、CN来决定。
T4是它的工作脉冲,正跳变有效。
寄存器堆模块为实验计算机提供了2个8位通用寄存器。
它们用来保存操作数及其中间运算结果,它对运算器的运算速度、指令系统的设计等都有密切关系。
在该运算器中,有两片74LS181组成算术和逻辑运算。
数据的来源由74LS273寄存器提供,74LS273产生16位数据分别送入到74LS181运算器中进行相应的运算。
主存储器单元电路主要用于存放实验机的机器指令,它的数据总线挂在外部
数据总线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写线。
CS1片选线由CE`控制(对应开关CE)、OE读线直接接地、WE写线由W/R`控制(对应开关WE)、CS2直接接+5V。
为了向主存储器RAM中装入程序或数据,并且检查写入是否正确以及能运行主存储器中的程序,必须设计三个控制操作微程序。
·存储器读操作:
拨动总清开关后,置控制开关SWB、SWA为“0 0”时,按要求连线后,连续按“启动运行”开关,可对主存储器RAM连续手动读操作。
·存储器写操作:
拨动总清开关后,置控制开关SWB、SWA为“0 1”时,按要求连线后,再按“启动运行”开关,可对主存储器RAM进行连续手动写入。
·运行程序:
拨动总清开关后,置控制开关SWB、SWA为“1 1”时,按要求连线后,再按“启动运行”开关,即可转入到第01号“取址”微指令,启动程序运行。
IR指令寄存器用来保存当前正在执行的一条指令。
当执行一条指令时,先把指令从内存去到DR中,然后再传送至IR。
指令由操作码和地址码字段组成,为了执行任何给定的指令,必须对操作码进行P测试,通过节拍脉冲T4的控制以便识别所要求的操作。
指令译码器根据指令中的操作码译码强置微控器单元的地址,使下一条微指令指向相应的微程序的首址。
本系统有两种外部I\O设备,一种是二进制代码开关,它作为输入设备;另一种是数码块,它作为输出设备。
输入时二进制开关数据直接经过三态门送到外部数据总线上,只要开关状态不变,输入的信息也不变。
输出时,将输出数据送到外部数据总线上,当写信号有效时将数据打入输出锁存器,驱动数码块显示。
根据计算机的执行原理对各个元部件进行状态控制,最终设计出模型机的数据通路框图见附件一的图1。
计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。
数据的通路从程序计数器PC的地址送到主存的地址寄存器,根据地址寄存器的内容找到相应的存储单元。
存储器中的数据是指令时,那么数据是从RAM送到总线,再从总线送到IR中。
存储器中的数据是需要加工的数据时,那么数据是从RAM送到总线,再从总线
送到通用寄存器中等待加工。
数据加工过程中,两个数据是从总线上将数据分别分时压入两个暂存器中,等待运算部件的加工,在数据加工完成以后。
运算结果是通过三太门送到总线上。
三态门的控制时由微控制器来控制。
3.时序系统
本实验装置的主存模块和操作控制器模块都带有时序电路,在连续或单脉冲源的作用下时序电路能连续或单步地输出T1、T2、T3、T4、信号,并有启停控制信号。
在微程序控制器中,机器指令和微指令的时序关系比较简单,所以时序电路也比较简单。
读取一个控存单元的时间与机器指令的CPU周期的时间相同,指令周期等于CPU周期与本质了所含微指令条数的积。
时序系统的设计见附件2的图2。
节拍电位与节拍脉冲时序关系图见附件3的图3。
4.微指令格式
微指令格式采用水平型微指令,微命令编码采用直接表示法和字段直接译码法相结合的混合表示法,以缩短微指令长度,后继地址采用断定方式,微指令格式如下:
2398650
控制字段(15)
判别字段(3位)
下址字段(6位)
操作控制字段15位,通过直接或字段译码方式对数据通路进行控制。
下址字段6位,从而确定控制存储器容量为64个单元。
判别测试字段3位,通过字段译码可用于规定7种P测试方式,以及一种不测试P0。
当P0=000的情况下,按下址字段的地址直接取下一条微指令。
具体微指令格式内容见附件三的图4。
S3,S2,S1,S0,M,Cn:
为运算器74LS181芯片的控制信号。
WE:
为W/R信号对RAM和OUT进行读写操作,高电平为写有效。
A9,A8:
为对外部设备(RAM,OUTPUT,INPUT)地址进行译码。
A字段内容具体见附件3。
LD299:
寄存器选中,具体选择同IR的最低2位(I1,I0)配合。
当I1I0=00时为输入到R0寄存器;
当I1I0=01时为输入到R1寄存器;
当I1I0=10时为输入到R2寄存器;
LDDR1:
暂存器DR1选中。
LDDR2:
暂存器DR2选中。
LDIR:
指令寄存器IR选中。
LOAD:
总线数据直接装载在PC计数器中。
LDAR:
地址寄存器AR选中。
B字段内容具体见附件3。
B-RS:
为源寄存器输出选中。
具体选择同IR的3,4位(I3,I2)配合。
当I3I2=00时为输入到R0寄存器;
当I3I2=01时为输入到R1寄存器;
当I3I2=10时为输入到R2寄存器;
RD-B:
为目的寄存器输出选中。
具体选择同指令寄存器(IR)的最低2位(I1,I0)配合。
当I1I0=00时为R0寄存器输出;
当I1I0=01时为R1寄存器输出;
当I1I0=10时为R2寄存器输出;
RI-B:
为变址寄存器选中。
本机固定为R2。
299-B:
为移位寄存器输出选中。
ALU-B:
逻辑运算单元结果输出。
PC-B:
PC计数器输出。
P字段:
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计数信号选中。
5.微程序控制器
微程序控制器的结构与微指令的格式密切相关。
它由控制存储器、微地址寄存器、微命令寄存器和地址转移逻辑几部分组成。
微地址寄存器和微命令寄存器两者的总长度即为一条微指令的长度,二者合在一起称为微指令寄存器。
微控制器寄存器使用的是两片74LS273和一片74LS175构成它们从微命令存储器中读出并保存,为后续模块提供信息。
它是根据节拍信号进行读的。
微程序控制器的工作过程:
开始运行程序时
a.CPU 自动将取指令的微程序入口地址送入uAR ,启动控制存储器进行读操作,将微指令送入uIR 。
b. 指令的操作码部分经译码器产生一组微命令,送到有关部件控制完成一组微操作。
c. 由微地址产生逻辑或微指令的下字址给出下一条微指令的地址。
再按取微指令。
执行微指令的过程重复。
微程序控制器结构见附件3图五。
6.微程序流程图
当拟定“取址”微指令时,该微指令的判别测试字段为P
(1)测试。
由于“取址”微指令是所有微程序都使用的公用微指令,因此P
(1)的测试结果出现多路分支。
控制台操作为P(4)测试,它以控制台开关SWB、SWA作为测试条件,出现了3路分支,占用3个固定微地址单元。
当分支微地址单元固定后,剩下的其它地方就可以一条微指令占用一个微地址单元随意填写。
注意:
微程序流程图上的地址为16进制。
指令中的STA、LDA JMP BZC 是四条双字长的指令。
他们有四种寻址方式分别是直接、间接、变址、相对。
指令在操作地址的时候都是先得到地址然才能操作。
在这里设计的过程使用的也是同样的思想。
在指令译码的过程中对这四条指令使用的方式不是直接判断应该执行什么指令,而是先判断应该使用怎样的寻址方式先找到应该操作的主存地址再进行操作。
间接寻址的方式的STA指令如下:
第一步:
(01H)从地址指针(PC)中得到地址,送到地址寄存器(AR)中,PC自动加一。
第二步:
(02H)主存(RAM)中读出东西送到总线上,送到指令寄存器(IR)中。
第三步:
(10H)将(IR)中的内容进行译码。
判断下一条指令的地址。
第四步:
(12H)由于是STA指令是一条双子长指令。
所以在此再次执行第一步即可。
第五步:
(06H)将主存中的数据写到DR1中。
第六步:
(07H) 将R2中的内容送到DR2中。
第七步:
(08H)将DR1与DR2中的数据相加后送到AR中,是STA指令操作地址。
并进行判断执行的是哪种地址。
第八步:
(20H)将相应的寄存器中的内容送到RAM中。
第九步:
回到原操作。
微程序流程图、控制台流程图见附件4图6。
7.微程序代码表
微程序代码表见附件5图7。
三、总结
本次课程设计我们要设计一台微程序控制的模型机,使我们对计算机能有一个整机的概念,以完成对计算机组成原理这门课程的综合应用,达到学习本书的作用。
通过本次的课程设计使我进一步熟悉了计算机组成原理的基本知识,同时也了解了模型机设计的基本过程,掌握了一些基本的软硬件设计知识并对其进行了基本的运用。
在模型机的设计中运用了很多知识,也学习了许多设计技巧。
在本次课程设计过程中,我主要是通过查阅书本及其他资料及浏览网页完成对基本功能部件的功能的了解。
在课程设计中,微控制器的设计是最为复杂的一项,在微控制器设计中译码电路和翻译电路的设计是最为困难。
微指令的设计中要求的就是精益求精,细微至极。
设计过程需要对24位的微指令中的每一位都要细微设计。
因此花的时间最多。
但是由于课程设计时间较短,所以该模型机还有许多不尽人意的地方。
二周的课程设计,提高了我的实际操作能力,从以前所学理论上升到实践,真正做到了学有所用。
设计中遇到的最为困难的也是在微指令设计中对微指令的每一位的正确判断,为了能正确识别每一位微指令,我们再次做了组成原理实验,加深对时序和数据流向的认识和理解。