计算机组成与系统结构课设报告Word格式文档下载.docx
《计算机组成与系统结构课设报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《计算机组成与系统结构课设报告Word格式文档下载.docx(18页珍藏版)》请在冰豆网上搜索。
四原理
部件实验过程中,各部件单元的控制信号是人为模拟产生的,而本次实验将能在微程序控制下自动产生各部件单元控制信号,实现特定指令的功能。
这里,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。
4.1数据格式
模型机规定采用定点补码表示法表示数据,且字长为8位,其格式如表4-1:
7
6543210
符号
尾数
表4-1
其中第7位为符号位,数值表示范围是:
-27≤X≤27-1。
4.2指令格式
模型机设计四大类指令共十六条,其中包括算术逻辑指令、I/O指令、访问及转移指令和停机指令。
(1)算术逻辑指令
设计9条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址,其格式如表4-2:
7654
32
10
OP-CODErs
rd
表4-2
其中,OP-CODE为操作码,RS为源寄存器,RD为目的寄存器,并规定表4-3:
RS或RD
选定的寄存器
00
01
10
R0
R1
R2
表4-3
9条算术逻辑指令的名称、功能和具体格式见表4-8。
(2)访问指令及转移指令
模型机设计2条访问指令,即存数(STA)、取数(LDA),2条转移指令,即无条件转移(JMP)、结果为零或有进位转移指令(BZC),指令格式为表4-4:
76
54
00
M
OP-CODE
RD
D
表4-4
其中,OP-CODE为操作码,RD为目的寄存器地址(LDA、STA指令使用)。
D为位移量(正负均可),M为寻址模式,其定义如表4-5:
寻址模式M
有效地址E
说明
01
11
E=D
E=(D)
E=(RI)+D
E=(PC)+D
直接寻址
间接寻址
RI变址寻址
相对寻址
表4-5
本模型机规定变址寄存器RI指定为寄存器R2。
(3)I/O指令
输入(IN)和输出(OUT)指令采用单字节指令,其格式如表4-6:
addr
表4-6
其中,addr=01时,选中“INPUTDEVICE”中的开关组作为输入设备,addr=10时,选中“OUTPUTDEVICE”中的数码块作为输出设备。
(4)停机指令
指令格式如表4-7:
表4-7
HALT指令,用于实现停机操作。
(5)指令系统
本模型机共有16条基本指令,其中算术逻辑指令7条,访问内存指令和程序控制指令4条,输入输出指令2条,其它指令1条。
表4-8列出了各条指令的格式、汇编符号、指令功能。
助记符号
指令格式
CLRRD
011100RD
0→RD
MOVRS,RD
1000RSRD
RS→RD
ADCRS,RD
1001RSRD
RS+RD+CY→RD
SBCRS,RD
1010RSRD
RS–RD–CY→RD
INCRD
1011RD
RD+1→RD
ANDRS,RD
1100RSRD
RS∧RD→RD
COMRD
1101RD
RD取反→RD
RRCRS,RD
1110RSRD
RS循环带CY右移
后→RD
RLCRS,RD
1111RSRD
RS循环带CY左移
LDAM,D,RD
00M00RD
(E)→RS
STAM,D,RD
00M01RD
RD→(E)
JMPM,D
00M1000
E→PC
BZCM,D
00M1100
当CY=1或Z=1时,
E→PC
INaddr,RD
010001RD
(addr)→RD
OUTaddr,RD
010110RD
RD→(addr)
HALT
01100000
停机
表4-8
存储器读操作(KRD):
拨动总清开关CLR后,控制台开关SWB、SWA为“00”时,按START微动开关,可对RAM连续手动读操作。
存储器写操作(KWE):
拨动总清开关CLR后,控制台开关SWB、SWA置为“01”时,按START微动开关可对RAM进行连续手动写入。
启动程序:
拨动总清开关CLR后,控制台开关SWB、SWA置为“11”时,按START微动开关,即可转入到第01号“取址”微指令,启动程序运行。
上述三条控制台指令用两个开关SWB、SWA的状态来设置,其定义如表4-9下:
SWB
SWA
控制台指令
1
读内存(KRD)
写内存(KWE)
启动程序(RP)
表4-9
24
23
22
21
20
19
18
17
16
15
14
13
12
11
9
8
6
5
4
3
2
S3
S2
S1
S0
Cn
WE
A9
A8
A
B
C
μA5
μA4
μA3
μA2
μA1
μA0
表4-10微代码定义
A字段B字段C字段
表4-11
系统涉及到的微程序流程见图6-3,当拟定“取指”微指令时,该微指令的判别测试字段为P
(1)测试。
由于“取指”微指令是所有微程序都使用的公用微指令,因此P
(1)的测试结果出现多路分支。
本机用指令寄存器的前4位(IR7—IR4)作为测试条件,出现5路分支,占用5个固定微地址单元。
控制台操作为P(4)测试,它以控制台开关SWB、SWA作为测试条件,出现了3路分支,占用3个固定微地址单元。
当分支微地址单元固定后,剩下的其它地方就可以一条微指令占用控存一个微地址单元随意填写。
注意:
微程序流程图上的单元地址为8进制。
当全部微程序设计完毕后,应将每条微指令代码化,表4-12即为将图6-3的微程序流程图按微指令格式转化而成的“二进制微代码表”。
微地址
S3S2S1S0MCnWEA9A8
μA5……μA0
000000011
000
100
010000
110
000010
02
000000001
001
001000
03
000100
04
011
05
010
000110
06
100101011
101
000001
07
001101
000000000
000011
000111
001110
010110
000000101
001111
010101
010010
010100
010111
011000
25
000001110
26
27
30
000001101
010001
表4-12
五实验连线图
图5-1简单模型机连线图
图5-2复杂模型机连线图
六数据通路图及微程序流程图
6.1数据通路图
图6-1基本模型机的数据通路图
图6-2复杂模型机的数据通路图
6.2微程序流程图
图6-3基本模型机的微程序流程图
图6-4含与运算的加法
图6-5复杂模型机的微程序流程图
七指令设计
任务一:
加法
$P0000$M00018100
$P0110$M0101ED82
$P0201$M0200C044
$P03B0$M03018001
$P040A$M04001001
$P0580$M0501ED86
$P0790$M0600B007
$P08A0$M0701A208
$P0900$M08959A01
$P0A05$M09028201
$M0A00D181
$M0B00E006
$M0C01ED89
$M0D030201
$M0E01ED8A
$M0F01ED8B
任务二:
含与运算的加法运算
$M00018100
$M0101ED82
$M0200C044
$M03018001
$M04001001
$M0501ED90
$M0601ED91
$M0701A208
$M08959A01
$M09028201
$M1000B007
$M1100B012
$M1201A213
$M13B99A01
$M0B00E010
$P0000
$P0110
$P0201
$P0320
$P0409
$P0580
$P0790
$P08A0
$P0900
任务三:
判断减法运算结果
$M1B01A232
$M1C01A233
$M1D01A236
$M1E318237
$M1F318239
$M20009001
$M21028401
$M2205DB81
$M230180E4
$M24018001
$M2595AAA0
$M2600A027
$M2701BC28
$M2895EA29
$M2995AAA0
$M2A01B42B
$M2B959B41
$M2C01A42D
$M2D65AB6E
$M2E0D9A01
$M2F01AA30
$M300D8171
$M31959B41
$M32019A01
$M3301B435
$M3405DB81
$M35B99B41
$M360D9A01
$M37298838
$M38019801
$M3919883A
$M3A019801
$M3B070A08
$M3C068A09
$P0045
$P0146
$P02A6
$P030C
$P0408
$P0500
$P06FE
$P0758
$P08DA
$P0901
$P0AFD
$P0BC6
$P0CDA
$P0D06
$P0E0F
$P1010
$P110F
$P1258
$P7F0B
$PFD80
$PFE0A
$PFF0C
$M00018108
$M0101ED82
$M0200C050
$M0300A004
$M0400E0A0
$M0500E006
$M0600A007
$M0700E0A0
$M0801ED8A
$M0901ED8C
$M0A00A03B
$M0B018001
$M0C00203C
$M0D00A00E
$M0E01B60F
$M0F95EA25
$M1001ED83
$M1101ED85
$M1201ED8D
$M1301EDA6
$M14001001
$M15030401
$M16018016
$M173D9A01
$M18019201
$M1901A22A
$M1A01B22C
八课程设计总结
在一周的课程设计中,感受最深的就是和同学的合作。
首先我们分工明确,有人负责连线,有人负责连线的监督,有人负责试验中的记录,还有就是大家一起对指令系统的设计,一起动脑,综合大家的意见,找出最好的设计组合。
最后在用转移指令实现对两个数的相减结果的判断更是穷尽我们的思考,用一天的时间完成了对它的算法的设计和实现,并最终通过了李老师的验收。
这次课程设计锻炼了我们的独立思考和解决问题的能力,以及团队合作的能力。
其次,通过这次课程设计结合课本知识,对CPU的发展过程和设计实现有了切实的体会,从最初CPU的组合电路的设计到后来的微程序的控制原理的设计和实现再到后来的流水线的的设计都有了清楚的了解。
最后,通过本次课程设计还对机器语言的编程和有了一定的理解。
还要感谢李老师期间陪在我们身边,尤其是晚上给我们开房实验室,让我们颇受感动,还有中间老师对我们提纲挈领的指导,这些都是我们能顺利完成本次课程设计的重要因素。
九参考文献
《计算机组成原理实验指导书》2007.5
《计算机组成与系统结构》李伯成、李钢清华大学出版社