模型计算机的设计论文.docx
《模型计算机的设计论文.docx》由会员分享,可在线阅读,更多相关《模型计算机的设计论文.docx(15页珍藏版)》请在冰豆网上搜索。
模型计算机的设计论文
模型计算机的设计
1模型机设计方案及步骤
1.1设计方案
本次课程设计主要任务是设计一模型计算机并利用组合逻辑控制器或微程序进行设计,且至少实现4条CPU指令(从ADD,SUB,XOR,AND,OR中选择)。
在此我选择使用组合逻辑控制器(硬连线)方式设计,并实现ADD,SUB,AND,OR四条指令。
四条指令意义如下:
ADD
数学计算两个数的和
SUB
数学计算两个数的差
AND
逻辑运算两个数的并
OR
逻辑运算两个数的或
对于以上设计的理由如下:
1.对于方式的选取我们选取硬连线实现,因为此次我们设计的模型机较为简单,而且采用元件较少,我们采用硬连线可以使用最少的元件从而取得较高的操作速度。
2.对于字长的选取,多方面考虑后,基于资源和设计的需要可以采用八位字长。
由于共有四条指令,为了满足选取所以选取其中2位作为OP操作,由于在对数的操作中不仅涉及到对数据的存储还会牵连到指令的操作,在此指令的操作有四条指令所以必须有四个储存单元,加上存储数据的一个单元,一共需要五个单元,再由于计算机存储字长值的限制,选不出5个存储单元的字长。
所以至少为3位,其中给出的是8个存储单元,对于寄存器,只有一个数据需要存储,所以1位就行了,但是考虑到计算机存储的限制,所以我们可以把后3位扩展给它。
所以共有8位。
其中3位表示内存单元地址,用3位表示寄存器编号。
加上两个必须的寄存器,其中寄存器有R0、R1、PC、IR。
3.对于内存的选取我们在实际过程中买不到这么小的内存,所以实际操作中可以将前几位置零(接地),用后几位表示即可。
最终根据以上理由我们规定它有8位的数据线D[7:
0],执行4条指令,每条指令的长度为1byte,因而它有6位的地址线A[5:
0]。
它可以存取的存储器为64byte(1byte=8bits)
我们为该CPU定义以下寄存器:
Ø地址寄存器AR[5:
0],保存6位地址。
Ø程序计数器PC[5:
0],保存下一条指令的地址。
Ø数据寄存器DR[7:
0],接受指令和存储器来的数据。
Ø指令寄存器IR[1:
0],存储指令操作码。
1.2设计步骤
1)定义指令集以及指令格式;
2)构造数据通路(含控制门和微操作);
3)根据CPU的结构,画出指令操作流程图;
4)编排指令操作时间表,即把指令操作流程图中的微操作落实到不同的CPU周期和节拍中;
5)根据全部指令的指令操作流程,写出每个微操作控制信号的逻辑表达式;
6)综合、化简微操作逻辑式;
7)用与、或、非等门电路画出产生微控制信号的逻辑控制电路。
【2】
2指令格式
2.1指令格式
由以上分析可知由于指令总数为4,所以用2位可以表示所有指令,采用二地址指令,指令格式为:
765320
OP(2位)
A1(3位)
A2(3位)
2.2指令集
具体详解如下:
765320
OP(2位)
A1(3位)
A2(3位)
00----ADD
01----SUB
IR7-IR6
10----AND
11----OR
用指令中的3位表示内存单元地址,用3位表示寄存器编号,000表示R0,001表示R1。
其中AS为储存器地址,AR为寄存器地址。
其中ADD的指令格式为:
00
AS(3位)
AR(3位)
SUB的指令格式为:
01
AS(3位)
AR(3位)
AND的指令格式为:
10
AS(3位)
AR(3位)
OR的指令格式为:
11
AS(3位)
AR(3位)
由上可知其助记,功能如下:
ADDASARAS+AR——>AS
SUBASARAS-AR——>AS
ANDASARAS&AR——>AS
ORASARAS|AR——>AS
3数据通路
4指令操作流程
时序控制:
采用同步控制方式,用定长指令周期方案。
采用3个CPU周期分别是IF、DOF、EXE,每CPU周期有4个等宽度的节拍电位,每个节拍电位有1个节拍脉冲
指令执行流程:
(A).指令ADDR0,(R1)指令(RS型指令)的执行流程
•指令功能:
(R0)+((R1))→((R1))
•即把R0的内容为地址的数据和R1的内容为地址的地址的单元的数据相加,结果放在(R1)所指向的内存单元中
1)取指周期IF的执行流程
START
IF
T0:
PC→BUS,BUS→AR,Clear,BUS→LA,1→C0,Add
T1:
READ,ALU→BUS,BUS→PC
T2:
DR→BUS,BUS→IR
T3:
1→DOF
2)取目的操作数周期DOF的执行流程
DOF
T0:
RI->BUS,BUS->LA
T1:
IR_Addr->BUS,BUS->AR
T2:
READ
T3:
DR->BUS,BUS->LB,1->EXE
3)执行周期EXE的执行流程
EXE
T0:
Add
T1:
ALU->BUS,BUS->Ri
T2:
NOP(空操作)
T3:
1->IF
CPU周期
节拍
电位
微操作
IF
T0
PC→BUS,BUS→AR,Clear,BUS→LA,1→C0,Add
T1
READ,ALU→BUS,BUS→PC
T2
DR→BUS,BUS→IR
T3
1→DOF
DOF
T0
RI->BUS,BUS->LA
T1
IR_Addr->BUS,BUS->AR
T2
READ
T3
DR->BUS,BUS->LB,1->EXE
EXE
T0
Add
T1
ALU->BUS,BUS->Ri
T2
NOP(空操作)
T3
1->IF
(B).指令SUBR0,(R1)的执行流程
•该指令的功能:
(R0)-((R1))→((R1))
•即把R0的内容为地址的数据和R1的内容为地址的地址的单元的数据相减,结果放在(R1)所指向的内存单元中
该指令流程为:
1)取指周期IF的执行流程
START
IF
T0:
PC→BUS,BUS→AR,Clear,BUS→LA,1→C0,Add
T1:
READ,ALU→BUS,BUS→PC
T2:
DR→BUS,BUS→IR
T3:
1→DOF
2)取目的操作数周期DOF的执行流程
DOF
T0:
RI->BUS,BUS->LA
T1:
IR_Addr->BUS,BUS->AR
T2:
READ
T3:
DR->BUS,BUS->LB,1->EXE
3)执行周期EXE的执行流程
EXE
T0:
Sub
T1:
ALU->BUS,BUS->Ri
T2:
NOP(空操作)
T3:
1->IF
CP周期
节拍
电位
微操作
IF
T0
PC→BUS,BUS→AR,Clear,BUS→LA,1→C0,Add
T1
READ,ALU→BUS,BUS→PC
T2
DR→BUS,BUS→IR
T3
1→DOF
DOF
T0
RI->BUS,BUS->LA
T1
IR_Addr->BUS,BUS->AR
T2
READ
T3
DR->BUS,BUS->LB,1->EXE
EXE
T0
Sub
T1
ALU->BUS,BUS->Ri
T2
NOP(空操作)
T3
1->IF
(C).指令ANDR0,(R1)的执行流程
•该指令的功能:
(R0)&((R1))→((R1))
•即把R0的内容为地址的数据和R1的内容为地址的地址的单元的数据相与,结果放在(R1)所指向的内存单元中
该指令的执行流程为:
1)取指周期IF的执行流程
START
IF
T0:
PC→BUS,BUS→AR,Clear,BUS→LA,1→C0,Add
T1:
READ,ALU→BUS,BUS→PC
T2:
DR→BUS,BUS→IR
T3:
1→DOF
2)取目的操作数周期DOF的执行流程
DOF
T0:
RI->BUS,BUS->LA
T1:
IR_Addr->BUS,BUS->AR
T2:
READ
T3:
DR->BUS,BUS->LB,1->EXE
3)执行周期EXE的执行流程
EXE
T0:
And
T1:
ALU->BUS,BUS->Ri
T2:
NOP(空操作)
T3:
1->IF
CPU周期
节拍
电位
微操作
IF
T0
PC→BUS,BUS→AR,Clear,BUS→LA,1→C0,Add
T1
READ,ALU→BUS,BUS→PC
T2
DR→BUS,BUS→IR
T3
1→DOF
DOF
T0
RI->BUS,BUS->LA
T1
IR_Addr->BUS,BUS->AR
T2
READ
T3
DR->BUS,BUS->LB,1->EXE
EXE
T0
And
T1
ALU->BUS,BUS->Ri
T2
NOP(空操作)
T3
1->IF
(D).指令ORR0,(R1)的执行流程
•该指令的功能:
(R0)|((R1))→((R1))
•即把R0的内容为地址的数据和R1的内容为地址的地址的单元的数据求或,结果放在(R1)所指向的内存单元中
该指令的执行流程为:
1)取指周期IF的执行流程
START
IF
T0:
PC→BUS,BUS→AR,Clear,BUS→LA,1→C0,Add
T1:
READ,ALU→BUS,BUS→PC
T2:
DR→BUS,BUS→IR
T3:
1→DOF
2)取目的操作数周期DOF的执行流程
DOF
T0:
RI->BUS,BUS->LA
T1:
IR_Addr->BUS,BUS->AR
T2:
READ
T3:
DR->BUS,BUS->LB,1->EXE
3)执行周期EXE的执行流程
EXE
T0:
Or
T1:
ALU->BUS,BUS->Ri
T2:
NOP(空操作)
T3:
1->IF
CPU周期
节拍
电位
微操作
IF
T0
PC→BUS,BUS→AR,Clear,BUS→LA,1→C0,Add
T1
READ,ALU→BUS,BUS→PC
T2
DR→BUS,BUS→IR
T3
1→DOF
DOF
T0
RI->BUS,BUS->LA
T1
IR_Addr->BUS,BUS->AR
T2
READ
T3
DR->BUS,BUS->LB,1->EXE
EXE
T0
Or
T1
ALU->BUS,BUS->Ri
T2
NOP(空操作)
T3
1->IF
5微操作控制信号的逻辑表达式
●PC→BUS
●BUS→AR
●BUS→LA
●Clear
●1→C0
●Add
●READ
●ALU→BUS
●BUS→PC
●DR→BUS
●BUS→IR
●IR_Addr→BUS
●BUS→LB
●BUS→Ri
●Ri→BUS
●1→DOF
●1→EXE
●1→IF
6微信号简化
7微信号电路图
8模型机微控制信号连线图
9总结与体会
这次课程设计中,基于前几次实验中,对计算机的大致组成以及运行原理有了初步的了解,并且对实验板也比较熟悉了,所以按照实验连接图连线也比较上手了,经过那么多次实验,觉得连线最重要的就是认真,如果一开小差就会出错,每连完一条线之后,都要检查一遍,看是否连错,这告诉我们,做每一件事都要认认真真的完成,容不得一丝马虎,否则只会落得个事倍功半的效果。
这次课程设计最重要的就是编写程序了,要想编写程序首次要对程序了解,知道每个助记符对应的机器码是什么意思,对应的二进制的每四位代表什么。
在对程序理解的过程中,刚开始不知道程序的十六进制是如何通过助记符转换过来的,经过对指令格式的剖析才知道没个助记符对应的二进制,然后对刚编好的程序进行运行,通过观察CPU一般都是先取机器指令,然后编译,送往寄存器,然后再去指令,再编译,一直这样下去,直到停止为止,此次课程设计最大的收获就是,通过观察大致了解了CPU的运行方式,并且都指令也有了较大的了解,还懂得了合作和请教才是完成任务的最佳方法。
10附录
[1]《计算机组成原理》学习指导与训练.旷海兰等编著.中国水利水电出版社,2004.
[2]计算机原理与设计.宋焕章张春元王保恒.长沙:
国防科技大学出版社,2000.
[3]白中英.计算机组成原理(第二版).北京:
科学出版社,1998