(1) 如果双地址指令有15条,单地址指令和零地址指令的条数基本相同,问单地址指令和零地址指令各有多少条?并且为这三类指令分配操作码。
(2) 如果要求三类指令的比例大致为1:9:9,问双地址指令、单地址指令和零地址指令各有多少条?并且为这三类指令分配操作码。
解:
1) 单地址指令条数为63
零地址指令条数64
操作码分别为:
双址: 0000 ~1110
单地址:1111 000000
。。。。
1111 111110
零地址:1111 111111 000000
。。。。。。
1111 111111 111111
2) 首先,从题意可得:(16-x) :63x = 1 :9
所以,x = 2
操作码分别为:
双址: 0000-1101(共14条)
单地址:1110 0000000
……..
1110 1111110
1111 0000000
……..
1111 1111110
(共126条)
零地址:1110 111111 000000
。。。。。。
1110 111111 111111
1111 111111 000000
。。。。
1111 111111 111111
(共128条)
2.一个处理机共有10条指令,各指令在程序中出现的概率如下表:
(1) 计算这10条指令的操作码最短长度。
(2) 采用Huffman编码法编写这10条指令的操作码,并计算操作码的平均长度及信息冗余量,把得到的操作码编码和计算的结果填入上面的表中。
(3) 采用2/8扩展编码法编写这10条指令的操作码,并计算操作码的平均长度和信息冗余量,把得到的操作码编码和计算的结果填入上面的表中。
(4) 采用3/7扩展编码法编写这10条指令的操作码,并计算操作码的平均长度和信息冗余量,把得到的操作码编码和计算的结果填入上面的表中。
指令 序号 |
出现 的概率 |
Huffman 编码法 |
2/8扩展 编码法 |
3/7扩展 编码法 |
I1 |
0.25 |
00 |
00 |
00 |
I2 |
0.20 |
10 |
01 |
01 |
I3 |
0.15 |
010 |
1000 |
10 |
I4 |
0.10 |
110 |
1001 |
11000 |
I5 |
0.08 |
0110 |
1010 |
11001 |
I6 |
0.08 |
1110 |
1011 |
11010 |
I7 |
0.05 |
1111 |
1100 |
11011 |
I8 |
0.04 |
01110 |
1101 |
11100 |
I9 |
0.03 |
011110 |
1110 |
11101 |
I10 |
0.02 |
011111 |
1111 |
11101 |
操作码平均长度 |
2.99 |
3.1 |
3.2 | |
操作码冗余信息 |
0.7% |
4.2% |
7.2% |
2.一条浮点加法流水线由对阶、尾数加和规格化三个流水段组成,每个流水段的时间均为2ns。流水线的输出端有直接数据通路与输入端相连,并且设置有缓冲寄存器用以保存中间运算结果。用这条流水线计算8个浮点数的和:S=A1+A2+A3+A4+A5+A6+A7+A8。画出流水线的时空图,并计算流水线的吞吐率、加速比和效率。
解答:S=A1+A2+A3+A4+A5+A6+A7+A8 =[(A1+A2)+(A3+A4)]+[(A5+A6)+(A7+A8)]
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | |||
规格化 |
1 |
2 |
3 |
4 |
5 |
6 |
7 | |||||||
尾数加 |
1 |
2 |
3 |
4 |
5 |
6 |
7 | |||||||
对阶 |
1 |
2 |
3 |
4 |
5 |
6 |
7 | |||||||
加数 |
A1 A3 A5 A7 A1+A2 A5+A6 A1+A2+A3+A4 | |||||||||||||
加数 |
A2 A4 A6 A8 A3+A4 A7+A8 A5+A6+A7+A8 |
流水线的吞吐率,效率,加速比分别为:
3.一动态多功能流水线由6个功能段组成,如下图:
其中:s1、S4、S5、S6组成乘法流水线,S1、S2、S3、S6组成加法流水线,各个功能段时间均为50ns。假定该流水线的输出结果可以直接返回流水线输入端,而且设置有足够的缓冲寄存器。若按照最快的方式用该流水线计算。
(1)请画出其处理过程的时空图。
(2)计算其实际吞吐率,加速比和效率。
[解](1): 乘法操作用到的流水段有:S1、S4、S5、S6; 加法操作用到的流水段有:S1、S2、S3、S6。以最快的方式处理的流水线时空图如图所示: