一.建立指令流水系统实验
1.实验内容及要求
(1)实验内容:
1. 分析流水指令集 insfile
2.MIC。
2. 改造实验十二中自己编制的指令集,使其中至少一条指令成流水方式。
3. 在自己编制的两个指令集中运行同一个程序,观测运行情况和效率。
程序来
源自定。
(2)实验要求:
1. 了解指令流水系统的设计方式。
2. 编制一条可以流水方式运行的指令。
2.实验环境
Principle操作系统,DICE-CP226计算机组成原理与系统结构实验仪和CP226软件。
3.实施步骤或参数
实验内容1:
1. 打开CP226环境,点击打开文件,选择目录 c:\ program files\CP226计算机组成原理\data\
2. 在data目录中打开insfile2.mic,为了方便分析,在记事本中打开insfile1.mic 文件,可同时观察两个文件中相同指令的微指令有什么不同。
3. 1.3 可以发现,因为每条指令的最后一条微指令都为CBFFFF取指指令,所以,当此取指指令前一条指令未用到取指位时,两条指令基本都进行了合并,形成流水方式。
实验内容2:
1. 实验十二的代码为:(由于word排版问题,源文件的各列可能没有对齐,在实际文件中,各列要严格按照模版位置对齐。
)
12.mic源文件:
_FATCH_ T0 00 CBFFFF
01 FFFFFF
02 FFFFFF
03 FFFFFF
04 FFFFFF
05 FFFFFF
06 FFFFFF
07 FFFFFF
08 FFFFFF
09 FFFFFF
0A FFFFFF
0B FFFFFF
0C FFFFFF
0D FFFFFF
0E FFFFFF
0F FFFFFF
A-W A,#* T2 10 C7FFEF
T1 11 FFFE91
T0 12 CBFFFF
13 FFFFFF 输出
OUTA T1 14 FFDF9F
T0 15 CBFFFF
16 FFFFFF
17 FFFFFF
跳到 * T1 18 C6FFFF
T0 19 CBFFFF
1A FFFFFF
1B FFFFFF
LD A,#* T1 1C C7FFF7
T0 1D CBFFFF
1E FFFFFF
1F FFFFFF
延时 T0 20 FFFFFF
21 FFFFFF
22 FFFFFF
23 FFFFFF
24 FFFFFF
25 FFFFFF
26 FFFFFF
27 FFFFFF
28 FFFFFF
29 FFFFFF
2A FFFFFF
2B FFFFFF
2C FFFFFF
2D FFFFFF
2E FFFFFF
2F FFFFFF
31 FFFFFF
32 FFFFFF
33 FFFFFF
34 FFFFFF
35 FFFFFF
36 FFFFFF
37 FFFFFF
38 FFFFFF
39 FFFFFF
3A FFFFFF
3B FFFFFF
3C FFFFFF
3D FFFFFF
3E FFFFFF
3F CBFFFF
12.mac源程序:
_FATCH_ 000000xx 00-03 1 清0首先执行_FATCH_ 指令取指 000001xx 04-04 1
000010xx 08-0B 1
000011xx 0C-0F 1
A-W A,#* 000100xx 10-13 II 2
OUTA 000101xx 14-17 1
跳到 * 000110xx 18-1B MM 2
LD A,#* 000100xx 1C-1F II 2
延时 000XXXXX 20-3F 1
12.dat源程序:
A-W A,#* 10 2
OUTA 14 1
跳到 * 18 2
LD A,#* 1C 2
延时 20 1
2. 本实验改动了12.mic指令A-W A,#*和OUTA。
13.mic源程序:
_FATCH_ T0 00 CBFFFF
01 FFFFFF
02 FFFFFF
03 FFFFFF
04 FFFFFF
05 FFFFFF
06 FFFFFF
07 FFFFFF
08 FFFFFF
09 FFFFFF
0A FFFFFF
0B FFFFFF
0C FFFFFF
0D FFFFFF
0E FFFFFF
0F FFFFFF
A-W A,#* T2 10 C7FFEF
T1 11 CBFE91
T0 12 FFFFFF
13 FFFFFF 输出
OUTA T1 14 CBDF9F
T0 15 FFFFFF
16 FFFFFF
17 FFFFFF
跳到 * T1 18 C6FFFF
T0 19 CBFFFF
1A FFFFFF 1B FFFFFF LD A,#* T1 1C C7FFF7 T0 1D CBFFFF
1E FFFFFF 1F FFFFFF 延时 T0 20 FFFFFF
21 FFFFFF
22 FFFFFF
23 FFFFFF
24 FFFFFF
25 FFFFFF
26 FFFFFF
27 FFFFFF
28 FFFFFF
29 FFFFFF
2A FFFFFF
2B FFFFFF
2C FFFFFF
2D FFFFFF
2E FFFFFF
2F FFFFFF
31 FFFFFF
32 FFFFFF
33 FFFFFF
34 FFFFFF
35 FFFFFF
36 FFFFFF
37 FFFFFF
38 FFFFFF
39 FFFFFF
3A FFFFFF
3B FFFFFF
3C FFFFFF
3D FFFFFF
3E FFFFFF
3F CBFFFF
3. 编写.asm源文件如下:
LOOP:
LD A,#55H
OUTA
OUTA
OUTA
OUTA
OUTA
LD A,#22H
OUTA
OUTA
OUTA
OUTA
OUTA
LD A,#55H
A-W A,#22H
OUTA
OUTA
OUTA
OUTA
OUTA
跳到 LOOP
END
4 分别导入12.mic 和13.mic,进行一个比较,记录实验结果。
4.测试或者模拟结果
OUT寄存器交替循环显示55,22,77,改动后的指令运行速度更快。
5.体会
本次实验主要在于能否理解流水系统,实质上是很好理解的,因为我们可以对应到生
活中的工人的流水线,所以改源程序的时候也很简单,我改了两个地方,让他们并行执行一下,但是由于我自己选择的上节课的程序不好,没有能看出速度的变化,在老师的提示下将延迟全部改成了OUT,这样就十分明显了。