(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。以最快的方式处理的流水线时空图如图所示: