计算机体系结构 第九章
9.1
1.设32个处理器编号为0、1、…、31.
(1)分别计算下列互连函数:
C u b e 2 ( 12 ) σ ( 8 ) β ( 9 ) P M 2 I + 3 ( 28 ) C u b e 0 ( σ ( 4 ) ) σ ( C u b e 0 ( 18 ) ) \begin{aligned} & \mathrm{Cube}_{2}(12)\quad\sigma(8)\quad\beta(9)\quad\mathrm{PM2I}_{+3}(28)\quad\mathrm{Cube}_{0}(\sigma(4)) \\ & \sigma(\mathrm{Cube}_{0}(18)) \end{aligned} Cube2(12)σ(8)β(9)PM2I+3(28)Cube0(σ(4))σ(Cube0(18))
(2)用 C u b e 0 Cube_0 Cube0和 σ \sigma σ构成混洗交换网(每步只能使用 C u b e 0 Cube_0 Cube0或 σ \sigma σ一次),网络直径是多少?从5号处理机发送数据到7号处理机,最短路径要经过几步?请列出经过的处理机编号。
(3)采用移数网络构成互联网,网络直径是多少?节点度是多少?与 2 号处理机距离最远的是几号处理机?
解:
(1)
- C u b e 2 ( 12 ) = 12 ⊕ 4 = 8 Cube_2(12) = 12 \oplus 4 = 8 Cube2(12)=12⊕4=8
- σ ( 8 ) = 8 < < 1 = 16 \sigma(8) = 8 << 1 = 16 σ(8)=8<<1=16
- β ( 9 ) = s w a p ( 4 , 0 ) ( 9 ) = 24 \beta(9) = swap(4,0)(9) = 24 β(9)=swap(4,0)(9)=24
- P M 2 I + 3 ( 28 ) = 28 + 2 3 m o d 32 = 4 PM2I_{+3}(28) = 28 + 2^3 \mod 32 = 4 PM2I+3(28)=28+23mod32=4
- C u b e 0 ( σ ( 4 ) ) = C u b e 0 ( 8 ) = 9 Cube_0(\sigma(4)) = Cube_0(8) = 9 Cube0(σ(4))=Cube0(8)=9
- σ ( C u b e 0 ( 18 ) ) = σ ( 19 ) = 7 \sigma(Cube_0(18)) = \sigma(19) = 7 σ(Cube0(18))=σ(19)=7
(2)
考虑到操作为 C u b e 0 Cube_0 Cube0 和 σ \sigma σ,可以证明,对于任意起点和终点,交替 C u b e 0 Cube_0 Cube0(当然可以不执行 C u b e 0 Cube_0 Cube0) 和 σ \sigma σ 可以到达任何终点。
所以直径的上界是 2 n − 1 = 9 2n-1=9 2n−1=9,再考虑起点为 0,终点为 1 的情况,可以发现每次都必须执行 C u b e 0 Cube_0 Cube0,故上界取得到。所以直径为 9。
5 = 00101, 7 = 00111,最短路径为:
5 ( 00101 ) − > 4 ( 00100 ) − > 8 ( 01000 ) − > 9 ( 01001 ) − > 18 ( 10010 ) − > 19 ( 10011 ) − > 7 ( 00111 ) 5(00101) -> 4(00100) -> 8(01000) -> 9(01001) -> 18(10010) -> 19(10011) -> 7(00111) 5(00101)−>4(00100)−>8(01000)−>9(01001)−>18(10010)−>19(10011)−>7(00111)
故最短路径需要 6 步,经过的处理机编号为 5,4,8,9,18,19,7。
(3)
这里给出证明的简洁思路:
考虑到PM2I可正可负,故距离取值只有 0 ∼ 2 n − 1 0 \sim 2^{n-1} 0∼2n−1,但距离取 2 n − 1 2^{n-1} 2n−1,只需一次PM2I即可,故接下来都只考虑 0 ∼ 2 n − 1 − 1 0 \sim 2^{n-1} -1 0∼2n−1−1,但是还是可以操作第 n n n 位的。
首先可以发现,对于连续出现的超过2个1,我们可以取补的方式来减少PM2I的次数,故可得,直径中不可能出现连续的超过2个1。
假设有 x 个 0,分类讨论:
- 操作 1:只需要 n − 1 − x n-1-x n−1−x 次即可
- 操作 0:先构造全 1,需要 2 次,故最终只需要 2 + x 2 + x 2+x 次即可
即最终需要
min ( 2 + x , n − 1 − x ) , 1 ≤ x ≤ n − 1 \min (2 + x, n-1-x),1 \leq x \leq n-1 min(2+x,n−1−x),1≤x≤n−1
可得中点为 ⌊ n + 1 2 ⌋ = ⌈ n 2 ⌉ \lfloor \frac{n+1}{2} \rfloor = \lceil \frac{n}{2} \rceil ⌊2n+1⌋=⌈2n⌉,所以可得直径的距离型为
- 当 n n n 为偶数时: L = 1010...1010 L = 1010...1010 L=1010...1010
- 当 n n n 为奇数时: L = 1010..0110...1010 L = 1010..0110...1010 L=1010..0110...1010,即偶数的 L L L 中任意1个1后再插入一个1(取决于奇数偶数)。
可以证得,对于任意情况, N − L N -L N−L 需要的次数严格大于等于 L L L 需要的次数,因为 L L L 的类型很少,所以分类讨论即可。
所以这个边界可以取到。
所以直径为 ⌈ n 2 ⌉ \lceil \frac{n}{2} \rceil ⌈2n⌉。
在此题中, n = 5 n=5 n=5,所以直径为 3。节点度数为 2 n − 1 = 9 2n-1 = 9 2n−1=9。
同时可求得此题中距离为 10110 = 13 , 11010 = 11 10110=13,11010=11 10110=13,11010=11,所以距离最远的处理机为 13 , 15 , 21 , 23 13, 15, 21, 23 13,15,21,23。
9.2
2.用N=8的三级Omega网络连接8个处理机(P0~P7)
8个处理机的输出端分别依次连接Omega的8个输入端0 ~ 7,8个处理机的输入端分别依次连接Omega的8个输出端0 ~ 7,处理机P6要把数据播送到处理机PO ~ P4,
处理机P3要把数据播送到处理机P5~P7.
能否同时为它们的播送要求实现连接,画出开关状态图。
解:
开关状态图如下:留白处开关任意状态即可。