计算机组成原理课程设计报告.docx
- 文档编号:30172941
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:23
- 大小:221.23KB
计算机组成原理课程设计报告.docx
《计算机组成原理课程设计报告.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计报告.docx(23页珍藏版)》请在冰豆网上搜索。
计算机组成原理课程设计报告
计算机组成原理课程设计
实
验
报
告
目 录
一、程序设计…………………………………………………1
1、程序设计目的…………………………………………………1
2、程序设计基本原理………………………………………………1
二、课程设计任务及分析…………………………………………6
三、设计原理……………………………………………………7
1、机器指令…………………………………………………………7
2、微程序流程图……………………………………………………9
3、微指令代码……………………………………………………10
4、课程设计实现步骤……………………………………………11
四、实验设计结果与分析………………………………………15
五、实验设计小结………………………………………………15
六、参考文献…………………………………………………15
一、程序设计
1、程序设计目的
(1)在掌握部件单元电路实验的基础上,进一步将其组成系统构造一台基本模型计算机。
(2使用简单模型机和复杂模型机的部分机器指令,并编写相应的微程序,具体上机调试掌握整机概念。
(3)掌握微程序控制器的组成原理。
(4)掌握微程序的编写、写入,观察微程序的运行。
(5)通过课程设计,使学生将掌握的计算机组成基本理论应用于实践中,在实际操作中加深对计算机各部件的组成和工作原理的理解,掌握微程序计算机中指令和微指令的编码方法,深入理解机器指令在计算机中的运行过程。
2、程序设计基本原理
(1)实验模型机结构
[1]运算器单元(ALUUINT)
运算器单元由以下部分构成:
两片74LS181构成了并-串型8位ALU;两个8位寄存器DR1和DR2为暂存工作寄存器,保存参数或中间运算结果。
ALU的S0~S3为运算控制端,Cn为最低进位输入,M为状态控制端。
ALU的输出通过三态门74LS245连到数据总线上,由ALU-B控制该三态门。
[2]寄存器堆单元(REGUNIT)
该部分由3片8位寄存器R0、R1、R2组成,它们用来保存操作数用中间运算结构等。
三个寄存器的输入输出均以连入数据总线,由LDRi和RS-B根据机器指令进行选通。
[3]指令寄存器单元(INSUNIT)
指令寄存器单元中指令寄存器(IR)构成模型机时用它作为指令译码电路的输入,实现程序的跳转,由LDIR控制其选通。
[4]时序电路单元(STATEUNIT)
用于输出连续或单个方波信号,来控制机器的运行。
[5]微控器电路单元(MICRO-CONTROLLERUNIT)
微控器主要用来完成接受机器指令译码器送来的代码,使控制转向相应机器指令对应的首条微代码程序,对该条机器指令的功能进行解释或执行的工作。
由输入的W/R信号控制微代码的输出锁存。
由程序计数器(PC)和地址寄存器(AR)实现程序的取指功能。
[6]逻辑译码单元(LOGUNIT)
用来根据机器指令及相应微代码进行译码使微程序转入相应的微地址入口,从而实现微程序的顺序、分支、循环运行,及工作寄存器R0、R1、R2的选通译码。
[7]主存储器单元(MAINMEM)
用于存储实验中的机器指令。
[8]输入输出单元(INPUT/OUTPUTDEVICE)
输入单元使用八个拨动开关作为输入设备,SW-B控制选通信号。
输出单元将输入数据置入锁存器后由两个数码管显示其值。
*该CPU数据结构通路框图如下:
(2)机器指令的结构和功能
部件实验过程中,各部件单元的控制信号是人为模拟产生的,而本次课设是在微程序控制下自动产生各部件单元控制信号,实现特定指令的功能。
这里,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。
模型机设计四大类指令共十六条,其中包括算术逻辑指令、I/O指令、访问存储器及转移指令和停机指令。
[1]算术逻辑指令
设计9条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址,其格式如下:
D7D6D5D4
D3D2
D1D0
OP-CODE
Rs
Rd
其中,OP-CODE为操作码,Rs为源寄存器,Rd为目的寄存器,并规定:
选中的寄存器(Rs或Rd)
R0
R1
R2
寄存器的编码
00
01
10
[2]访存指令及转移指令
模型机设计2条访问指令,即存数(STA)、取数(LDA)、2条转移指令,即无条件转移(JMP)、结果为零或有进位转移指令(BZC)。
其格式如下:
D7D6
D5D4
D3D2
D1D0
D7····D0
OP-CODE
M
OP-CODE
Rd
D
其中,OP-CODE为操作码,Rd为目的寄存器,D为位移量(正负均可),M为寻址方式,其定义如下:
寻址方式
有效地址
说明
00
E=D
直接寻址
01
E=(D)
间接寻址
10
E=(RI)+D
RI变址寻址
11
E=(PC)+D
相对寻址
本模型机规定变址寄存器RI指定为寄存器R2。
[3]I/O指令
输入和输出指令采用单字节指令,其格式如下:
D7D6D5D4
D3D2
D1D0
OP-CODE
addr
Rd
其中,addr=01时,表示选中“输入单元”中的开关组作为输入设备,addr=10时,表示选中“输出单元”中的数码管作为输出设备。
[4]停机指令
这类指令只有1条,即停机指令HALT,用于实现停机操作,指令格式如下:
D7D6D5D4
D3D2
D1D0
0110
00
00
(3)指令系统
[1]本模型机共有16条基本指令。
其中,算术逻辑指令9条,访问内存指令和程序控制指令4条,输入输出指令2条,其他它指令1条。
表1列出了各条指令的格式、汇编符号、指令功能。
表1复杂模型机指令系统
序号
汇编符号
指令格式
功能说明
1
CLRRd
011100Rd
0→Rd
2
MOVRS,Rd
1000RSRd
RS→Rd
3
ADCRS,Rd
1001RSRd
RS+Rd+Cy→Rd
4
SBCRS,Rd
1010RSRd
RS-Rd-Cy→Rd
5
INCRd
1011--Rd
Rd+1→Rd
6
ANDRS,Rd
1100RSRd
RS∧Rd →Rd
7
COMRd
110100Rd
Rd →Rd
8
RRCRS,Rd
1110RSRd
RS带进位右循环一位,RS→Rd
9
RLCRS,Rd
1111RSRd
RS带进位左循环一位,RS→Rd
10
LDAM,D,Rd
00M00Rd,D
E→Rd
11
STAM,D,Rd
00M01Rd,D
Rd→E
12
JMPM,D
00M1000,D
E→PC
13
BZCM,D
00M1100,D
当CY=1或ZI=1时,E→PC
14
INaddr,Rd
010001Rd
addr→Rd
15
OUTaddr,Rd
010110Rd
Rd→addr
16
HALT
01100000
停机
[2]微指令格式
表2复杂模型机微指令结构图
微程序
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
控制信号
S3
S2
S1
S0
M
CN
RD
M17
M16
A
B
P
uA5
uA4
uA3
uA2
uA1
uA0
A字段
B字段
P字段
15
14
13
控制信号
12
11
10
控制信号
9
8
7
控制信号
0
0
0
0
0
0
0
0
0
0
0
1
LDRI
0
0
1
RS_G
0
0
1
P1
0
1
0
LDDR1
0
1
0
RD_G
0
1
0
P2
0
1
1
LDDR2
0
1
1
RI_G
0
1
1
P3
1
0
0
LDIR
1
0
0
299_G
1
0
0
P4
1
0
1
LOAD
1
0
1
ALU_G
1
0
1
AR
1
1
0
LDAR
1
1
0
PC_G
1
1
0
LDPC
其中uA5~uA0为6位的后续微地址,A、B、P为三个译码字段,分别由三个控制位译码出多位。
P字段中的P1~P4是四个测试字位,其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的为地址入口,从而实现微程序的顺序、分支、循环运行。
具体来说,P1测试用于“取指令”微指令,它用下址低四位(uA3~uA0)与指令寄存器高四位(IR7~IR4)相或得到各路分支;P2测试用下址低2位(uA1~uA0)与指令寄存器的IR3IR2相或得到各路分支;P3测试用于条件转移,它用下址的uA4与(ZI+CY)相或得到各路分支;P4测试用于控制台操作,它用下址低2位(uA1~uA0)与SWB、SWA相或得到各路分支。
在上述各测试下址中未用到的位均直接保留。
AR为算术运算是否影响进位及判零标志控制位,其为零有效。
B字段中的RS_G、RD_G、RI_G分别为源寄存器选通信号,目的寄存器选通信号及变址寄存器选通信号,其功能是根据机器指令来进行三个工作寄存器R0、R1及R2的选通译码。
三字段中的其他位类似与此,均是某芯片的选通信号,它们的功能都是根据机器指令来进行相应芯片的选通译码。
为了向RAM中装入程序和数据,检查写入是否正确,并能启动程序执行,还必须设计三个控制台操作微程序。
存储器读操作(READ):
拨动总清开关CLR后,控制台开关SWB、SWA为“00”时,按START微动开关,可对RAM连续手动读操作。
存储器写操作(WRITE):
拨动总清开关CLR后,控制台开关SWB、SWA为“01”时,按START微动开关,可对RAM进行连续手动写入。
启动程序:
拨动总清开关CLR后,控制台开关SWB、SWA置为“11”时,按START微动开关,即可转入到第01号“取址”微指令,启动程序运行。
上述三条控制台指令用两个开关SWB、SWA的状态来设置,其定义如下:
SWB
SWA
控制台指令
0
0
1
0
1
1
读内存
写内存
启动程序
二、课程设计任务及分析
从输入设备中读取数据X并将其存入以K为直接地址的内存单元,计算2X,取反后加X减1并将结果存入以N为间接地址的内存单元,最后输出。
在进行这一次设计之前,我们先明确的这次设计的大体过程,画大体图—汇编程序—流程图—微指令代码—检查,然后我们进行了下一步骤,观察任务在进行这一次的设计之时首先我们看见了在读取与储存时的两种不同的寻址方式,想到了这两种的不同,具体表示在流程图上面就是间接寻址要通过地址先找地址再找数据所以要分两次,然后我们又看了看我们的运算所需要的过程,参考书本后,我们决定了将2X通过一次X加X算术运算来实现,由于2X的取反只需要做非运算即可,非运算书上有,加法运算书上有,减1运算书上面也有,于是我们就决定在预算过程过程中通过4次来实现,所以我们想到了先计算X加X然后在将2X求非再加X最后减1的运算流程,于是一个初步的构想于是就这样形成了,在写汇编程序时候我们也是忠实的按照这个构想来写的。
设计顺序大致如下:
先画出了程序的流程,然后写出了汇编程序,并且写出了机器指令,其次我们完成了总体的流程图,然后根据流程图写出了微指令以及微指令代码,将机器指令代码与微指令代码写成了一个txt文档用机器录入,运行程序,对照程序上面显示的图与我们画的流程图进行对照,检查来判断这次试验的成功与否。
到此我们这一次的设计过程到这里就结束了,我们充分的参与并且体会了设计一个程序的每一次的收获,充分的体会了其中的设计的快乐与痛苦,对我们的专业能力也有很大的提升。
三、设计原理
1、机器指令
在部件试验中,我们是人为用二进制开关来模拟一些控制信号来完成数据通路的控制。
而在本课程设计中,数据通路的控制将由微程序控制器来完成,即一条机器指令对应一个微程序。
本设计的规定项目采用五条机器指令:
IN(输入)、MOV(将最终计算结果存入间接地址中)、ADD(二进制加法)、NOT(给2X取非)、STA(将X存入直接地址中)、DEC(减1)、OUT(输出)、HLT(保持执行结束状态,不再执行操作),其指令格式如下表1(前四位是操作码):
指令助记符
操作码
地址码
功能说明
IN
00000000
00000000
“INPUTDEVICE”->R0
ADD
00100000
01000000
00000011
00000110
(DR1)+(DR2)->R0
NOT
00110000
00000101
DR1->R0
STA
00110000
00000101
R0->RAM
DEC
01010000
00001000
R0-1->R0
MOV
01100000
00001001
R0->RAM,RAM->RAM
OUT
01000000
00000111
RAM->LED
HLT
01010000
00001001
停机
IN为单字长指令,含义是将输入设备输入的数据放入R0中
ADD为双字长指令,其含义是根据指令提供的地址将内存中的数取出放入DR2,与DR1中的数相加,结果放在R0。
NOT为单字长指令,含义是将R0的内容取非后放入R0。
STA为双字长指令,第二个字是要存放的地址,含义是将R0中的内容存储到第二字为地址的内存单元中。
DEC是单字长指令,含义是R0的内容减1后放入R0
MOV是双字长指令,第二字是要存放的间接地址,含义是将R0中的内容存储到第二字为间接地址的内存单元中。
OUT为双字长指令,含义是根据指令提供的地址,将内存中的数据取出由数码管进行显示。
HLT为空转指令,保持执行结束状态,并不在执行任何操作。
本设计的机器指令如下:
地址(二进制)
内容(二进制)
助记符
注释
00000000
00000000
INR0
“INPUTDEVIECE”->R0
00000001
00010000
STAR0,[0FH]
R0->[0FH]
00000010
00001111
00000011
00100000
ADD[0FH],R0
R0+[0FH]->R0
00000100
00001111
00000101
00110000
NOTR0
R0->R0
00000110
01000000
ADD[0FH],R0
R0+[0FH]->R0
00000111
00001111
00001000
01010000
DECR0
R0-1->R0
00001001
01100000
MOVR0,[[10H]]
R0->[[10H]]
00001010
00010000
00001011
01110000
OUT[[10H]]
[[10H]]->LED
00001100
00010000
00001101
10000000
HLT
停止
00001110
00001111
00000001
00010000
00010001
00010001
结果
按照如下规定的格式,用联机软件建立将机器指令及微指令的二进制代码编辑成十六进制的*.txt类型文件。
(微指令格式中的微指令代码为将表中的24位微代码按从左到右分成三个八位,将此三个八位二进制代码转换为相应的十六进制数即可),并用联机软件的转储功能将该式文件装载到试验系统中。
机器指令格式说明:
$PXXXX
微指令格式说明:
$MXXXXXXXX
启动程序:
当控制台开关SWB、SWA置为“11”时,按START微动开关,即可转入到第01号“取指”微指令,启动程序运行。
按照数据通路可画出机器指令的微程序流程图如图2所示。
当拟定“取指”微指令时,该微指令的判别测试字段为P
(1)测试。
由于“取指”微指令是所有微程序都使用的公用微指令,因此P
(1)的测试结果出现多路分支。
本实验中共出现8路分支,分别对应8种机器指令。
占用8个固定的微地址单元。
2、微程序流程图
3、微指令代码
微地址
S3S2S1S0MCNWEA9A8
A
B
C
μ1μ2μ3μ4μ5μ6
00
000000011
000
000
000
010000
01
000000011
110
110
110
000010
02
000000001
100
000
001
100000
03
000000001
110
000
000
000100
04
000000101
000
001
000
000001
05
000000001
110
000
000
000110
06
000000001
011
000
000
000111
07
000000011
010
001
000
001111
10
000000001
110
000
000
001100
11
000000001
110
000
000
001101
12
000000001
010
000
000
001011
13
000001110
000
101
000
000001
14
000000101
000
001
000
000001
15
000000001
110
000
000
001010
17
100101011
001
101
000
000001
20
000000011
110
110
110
010010
21
000000001
110
110
110
010100
22
000000001
010
000
000
010111
23
000000011
000
000
000
000001
24
000000000
010
000
000
011000
26
000010011
001
101
000
000001
27
000001110
000
101
000
010000
30
000001101
000
101
000
010001
31
000000001
110
000
000
011010
32
000000001
011
000
000
011011
33
000000011
010
000
000
011100
34
100101011
001
101
000
000001
36
111101011
001
101
000
000001
37
000000001
110
000
000
001000
40
000000000
001
000
000
000001
41
000000011
110
110
110
000011
42
000000011
110
110
110
000101
43
000000011
010
001
000
010110
44
000000011
110
110
110
011001
45
000000011
010
001
000
011110
46
000000011
110
110
110
011111
47
000000011
110
110
110
001001
50
000000011
000
000
000
101000
指令寄存器(IR)用来保存当前正在执行的一条指令。
当执行一条指令时,先把它从内存取到缓冲寄存器中,然后再传送至指令寄存器。
指令划分为操作码和地址码字段,由二进制数构成。
为了执行任何给定的指令,必须对操作码进行测试[P
(1)],通过节拍脉冲T4的控制以便识别所要求的操作。
“指令寄存器”(实验板上标有“INSDECODE”的芯片)根据指令中的操作码译码结果强置微控器单元的微地址,使下一条微指令指向相应得微程序首地址。
本系统使用两种外部设备,一种是二进制代码开关,它作为输入设备(INPUTDEVICE);另一种是数码管,它作为输出设备(OUPUTDEV
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 课程设计 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)