6.1在CRAY1机上,V为向量寄存器,设向量长度均为32,s为标量寄存器,所用浮点功能执行部件的执行时间分别为:加法需6拍,相乘需7拍,从存储器读数需6拍,求倒数近似值需14拍,打入寄存器及启动功能部件(包括寄存器)各需1拍。问下列各指令组中的哪些指令可以链接?哪些指令可以并行执行?试说明其原因并分别计算出各指令组全部完成所需的拍数。
(1) |
(2) |
(3) |
(4) |
(5) |
(6) |
(7) |
(8) |
解答:
(1) 三条指令可并行执行,所需时间为执行时间最长的指令的执行时间:(1+7+1) + (32-1) = 40
(2) 指令1、指令2并行执行并与指令3链接,所需时间为(1+6+1) + (1+7+1) + (32-1) = 48
(3) 指令1、指令2并行执行并与指令3链接,指令4与指令2存在功能部件冲突,需等待前一流水链完成之后执行,所需时间为(1+6+1) + (1+7+1) + (32-1) + (1+6+1) + (32-1) = 87
(4) 4条指令相链接,所需时间为(1+6+1) + (1+14+1) + (1+6+1) + (1+7+1) + (32-1) = 72
(5) 前3条指令并行执行,最后一条与指令2存在功能部件冲突,所需时间为(1+7+1) + (32-1) + (1+6+1) = 48
(6) 前2条指令并行执行,后2条指令并行执行,所需时间为(1+6+1) + (32-1) + (1+7+1) +(32-1) = 79
(7) 前3条指令相链接,此流水链与第4条指令存在功能部件冲突,所需时间为(1+6+1) + (1+7+1) + (32-1) + (1+6+1) + (32-1) = 87
(8) 前2条指令相链接,此流水链与第3条指令存在寄存器冲突,第3条指令与第4条指令存在功能部件冲突,所需时间为(1+6+1) + (1+6+1) + (32-1) + (1+7+1) + (32-1) + (1+7+1) + (32-1) = 127
6.2、在Cray 1机上,按链接方式执行下面4条向量指令(括号中给出相应功能部件时间),如果向量寄存器和功能部件之间的数据传输需要1拍,试求此链接流水线的流过时间为多少拍?如果向量长度为64,则需要多少拍能得到全部结果。
V0←存储器 (存储器取数:7拍)
V2←V0+V1 (向量加:3拍)
V3←V2<A3 (按照A3左移:4拍)
V5←V3∧V4 (向量逻辑乘:2拍)
解答:
流水线经过时间为(1+7+1) + (1+3+1) + (1+4+1) + (1+2+1) = 24。
如果向量长度为64,则需24 + (64-1) = 87拍能得到全部结果。
6.3、某机有16个向量寄存器,其中V0~V5中分别放有向量A、B、C、D、E、F,向量长度均为8,向量各元素均为浮点数;处理部件采用二个单功能流水线,加法功能部件时间为2拍,乘法功能部件时间为3拍。用类似Cray 1的链接技术,先计算(A+B)*C,在流水线不停流的情况下,接着计算(D+E)*F。
(1) 求此链接流水线的流过时间为多少拍?(设寄存器入,出各需1拍)。
(2) 假设每拍时间为50ns,完成这些计算并把结果存进相应寄存器,此部件的实际的吞吐率是多少MFLOPS?
解答:
(1) (A+B)*C 可用以下2条指令完成:
V0←A+B
V1←V0*C
流水线流过时间为(1+2+1) + (1+3+1) = 9拍
(2) 实际吞吐率为
3.1设有一个两层的存储器层次结构:M1 和 M2。M1 的命中率用 h 表示,并分别令 c1 和 c2 为每千字节的成本,s1 和 s2 为存储器容量,t1 和 t2 为存取时间。
(1) 在什么条件下,整个存储器系统的平均成本会接近于 c2?
(2) 该层次结构的存储器有效存取时间 ta 是多少?
(3) 令两层存储器的速度比 r=t2/t1,并令 E=t1/ta 为存储系统的存取效率。试以 r 和命中 率 h 来表示 E。
(4) 试分别画出 r=5、20 和 100 时,E 和 h 的关系图。
(5) 如果 r=100,为使 E>0.95,要求的命中率 h 是多少?
(6) (5)中的命中率实际上很难达到,假设实际的命中率只能达到 0.96。现在采用一种 缓冲技术来解决这个问题。当访问 M1 不命中时,把包括被访问数据在内的一个数 据块都从 M2 取到 M1 中,并假设被取到 M1 中的每个数据平均可以被重复访问 5 次。请设计缓冲深度(即每次从 M2 取到 M1 中的数据块的大小)。
解答
3.1 有5个中断源D1,D2,D3,D4,D5。信息如下表所示:
中断源名称 |
中断优先级 |
正常中断屏蔽码 |
改变后的中断屏蔽码 |
||||||||
D1 |
D2 |
D3 |
D4 |
D5 |
D1 |
D2 |
D3 |
D4 |
D5 |
||
D1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
D2 |
2 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
D3 |
3 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
D4 |
4 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
D5 |
5 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
1) 使用正常中断屏蔽码时,处理机响应各中断源的中断服务请求的顺序是什么?实际的中断处理次序是什么?
2) 使用改变后的中断屏蔽码时,处理机响应各中断源的中断服务请求的顺序是什么?实际的中断处理次序是什么?
【答案】
1)处理机响应各中断源的中断服务请求的顺序是D1,D2,D3,D4,D5
实际的中断处理次序是D1,D2,D3,D4,D5
2) 处理机响应各中断源的中断服务请求的顺序是D1,D2,D3,D4,D5
实际的中断处理次序是D4,D5,D3,D2,D1
3.2.一台处理机有5个中断源D1,D2,D3,D4,D5,它们的软硬件优先级如表所示:
中断源名称 |
D1 |
D2 |
D3 |
D4 |
D5 |
硬件中断优先级 |
7 |
6 |
5 |
4 |
3 |
软件中断优先级 |
4 |
5 |
7 |
6 |
5 |
1) 在处理机状态字中至少要设置多少位中断屏蔽码?
2) 写出中断响应次序和实际中断处理次序。
3) 当处理机正在执行主程序时,5个中断源同时请求中断服务,画出处理机实际响应中断源的中断服务请求和运行中断服务程序过程的示意图。
【答案】
1) 3位
2)
中断源名称 |
D1 |
D2 |
D3 |
D4 |
D5 |
中断响应次序 |
1 |
2 |
3 |
4 |
5 |
实际中断处理次序 |
5 |
3 |
1 |
2 |
4 |
3)
3.3.一个字节多路通道连接有5台设备,它们的数据传输率如下表所示:
设备名称 |
D1 |
D2 |
D3 |
D4 |
D5 |
数据传输速率(KB/s) |
100 |
33.3 |
33.3 |
20 |
10 |
服务优先级 |
1(最高) |
2 |
3 |
4 |
5 |
1) 计算这个字节多路通道的实际工作流量。
2) 为了使通道能够正常工作,试设计通道的最大流量和工作周期。
3) 该通道工作在最大流量时,5台设备都在0时刻同时发出第一次传送数据的请求,并在以后的时间里按照各自的数据传输速率连续工作。计算这个字节多路通道处理完各台设备的第一次数据服务请求的时刻。