当前位置: 首页 > ds >正文

计算机体系结构 第九章 (附带移数网络直径证明和取值情况)

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)=124=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 2n1=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} 02n1,但距离取 2 n − 1 2^{n-1} 2n1,只需一次PM2I即可,故接下来都只考虑 0 ∼ 2 n − 1 − 1 0 \sim 2^{n-1} -1 02n11,但是还是可以操作第 n n n 位的。
首先可以发现,对于连续出现的超过2个1,我们可以取补的方式来减少PM2I的次数,故可得,直径中不可能出现连续的超过2个1。
假设有 x 个 0,分类讨论:

  • 操作 1:只需要 n − 1 − x n-1-x n1x 次即可
  • 操作 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,n1x),1xn1
可得中点为 ⌊ n + 1 2 ⌋ = ⌈ n 2 ⌉ \lfloor \frac{n+1}{2} \rfloor = \lceil \frac{n}{2} \rceil 2n+1=2n,所以可得直径的距离型为

  • n n n 为偶数时:分两种情况
    • n − 1 − x n-1-x n1x 小: L 1 = 1010...1010 L_1 = 1010...1010 L1=1010...1010
    • 2 + x 2+x 2+x 小: L 2 = 1010...10111010...1010 L_2 = 1010...10111010...1010 L2=1010...10111010...1010 ,即中间出现唯一一个连续3个1
  • n n n 为奇数时: L = 1010..0110...1010 L = 1010..0110...1010 L=1010..0110...1010,即偶数的 L 1 L_1 L1 中任意1个1后再插入一个1(取决于奇数偶数)。

可以证得,对于任意情况, N − L N -L NL 需要的次数严格大于等于 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 2n1=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.
能否同时为它们的播送要求实现连接,画出开关状态图。

解:

开关状态图如下:留白处开关任意状态即可。

在这里插入图片描述

http://www.xdnf.cn/news/4252.html

相关文章:

  • 刷leetcodehot100返航版--哈希表5/5、5/6
  • Java抽象类与接口详解
  • 【项目】基于ArkTS的网吧会员应用开发(1)
  • 访问计划(C++)
  • BC9 printf的返回值
  • 学习路线(工业自动化软件架构)
  • Imagine Explainers:AI × 可视化 × 趣味讲解,让复杂变简单
  • 1. 设计哲学与核心价值
  • C/C++滑动窗口算法深度解析与实战指南
  • 2025年第十六届蓝桥杯省赛JavaB组真题
  • 【RocketMQ Broker 相关源码】-注册 broker 信息到所有的 NameServer
  • gcc/g++用法摘记
  • torch.nn.Sequential() and torch.nn.ModuleList()
  • 用输入输出变量根据超稳定性理论设计模型参考自适应系统
  • 迭代器模式
  • map和set的设计以及红黑树的设计
  • 英伟达语音识别模型论文速读:Fast Conformer
  • 学习黑客Nmap 实战
  • Java学习手册:Spring 多数据源配置与管理
  • 信息系统项目管理工程师备考计算类真题讲解十二
  • 破局者手册 Ⅰ:测试开发核心基础,解锁未来测试密钥!
  • 【NLP】27. 语言模型训练以及模型选择:从预训练到下游任务
  • RAG知识库只是表面简单!
  • Kubernetes排错(七)-节点排错
  • 除了java.nio.file.StandardCopyOption,还有哪些类可以实现文件的复制和移动?
  • C++动态库和静态库的生成和使用
  • linux crash工具详解
  • android-ndk开发(1): 搭建环境
  • 星途-(4)
  • 关于Python:9. 深入理解Python运行机制