02325 Preguntas de autoexamen "Arquitectura de sistemas informáticos": capítulos 6, 7 y 8

Revisa el catálogo general

  02325 Lista de claves de revisión de autoexamen de "Arquitectura de sistemas informáticos"

6. Procesador de matriz

1. Red de interconexión de una etapa

Preguntas del examen de historia : 2020.10 (PM2I), 2017.04 (PM2I)

Descripción del título : función de interconexión de la red de interconexión de un solo nivel, conexión de la unidad.
  

Ejercicios extraescolares 6-4 6-5

  Implementa una red de interconexión de cubo de un solo nivel de 16 unidades de procesamiento.
(1) Escriba las fórmulas generales de todos los tipos de funciones de red de interconexión de cubos de un solo nivel (
2) ¿A qué unidades de procesamiento puede usar la unidad de procesamiento No. 3 la red de interconexión de cubos de un solo nivel para transferir datos directamente?
(3) Los resultados de las dos primeras preguntas cuando se reemplaza la red de interconexión de cubos de un solo nivel por la red PM2I de un solo nivel.

解:
(1)函数一般式:
C ube 0 ( b 3 b 2 b 1 b 0 ) = b 3 b 2 b 1 b ‾ 0 C ube 1 ( b 3 b 2 b 1 b 0 ) = b 3 b 2 segundo ‾ 1 segundo 0 C ube 2 ( segundo 3 segundo 2 segundo 1 segundo 0 ) = segundo 3 segundo ‾ 2 segundo 1 segundo 0 C ube 3 ( segundo 3 segundo 2 segundo 1 segundo 0 ) = segundo ‾ 3 segundo 2 segundo 1 segundo 0 \begin{array}{l} \mathrm{Cubo_0(b_3b_2b_1b_0)=b_3b_2b_1\overline{b}_0} \\ \mathrm{Cubo_1(b_3b_2b_1b_0)=b_3b_2\overline{b}_1b_0} \\ \mathrm{Cubo_2( b_3b_2b_1b_0)=b_3\overline{b}_2b_1b_0} \\ \mathrm{Cubo_3(b_3b_2b_1b_0)=\overline{b}_3b_2b_1b_0} \end{matriz}cubo _ _ _0( segundo3b2b1b0)=b3b2b1b0cubo _ _ _1( segundo3b2b1b0)=b3b2b1b0cubo _ _ _2( segundo3b2b1b0)=b3b2b1b0cubo _ _ _3( segundo3b2b1b0)=b3b2b1b0

(2) Nos. 1, 2, 7 y 11.

(3) Función general:
PM 2 + 0 ( j ) = j + 1 mod 16 PM 2 − 0 ( j ) = j − 1 mod 16 PM 2 + 1 ( j ) = j + 2 mod 16 PM 2 − 1 ( j ) = j − 2 mod 16 PM 2 + 2 ( j ) = j + 4 mod 16 PM 2 − 2 ( j ) = j − 4 mod 16 PM 2 ± 3 ( j ) = j ± 8 mod 16 \begin { matriz}{l} \mathrm{PM2_{+0}}(j)=j+1\quad \mathrm{mod\ 16}\\ \mathrm{PM2_{-0}}(j)=j-1\ quad \mathrm{mod\ 16}\\ \mathrm{PM2_{+1}}(j)=j+2\quad \mathrm{mod\ 16}\\ \mathrm{PM2_{-1}}(j)= j -2\quad \mathrm{mod\ 16}\\ \mathrm{PM2_{+2}}(j)=j+4\quad \mathrm{mod\ 16}\\ \mathrm{PM2_{-2}} ( j)=j-4\quad \mathrm{mod\ 16}\\ \mathrm{PM2_{\pm3}}(j)=j\pm8\quad \mathrm{mod\ 16} \end{matriz}PM 2 _+ 0( j )=j+1mod 1 6 _ _ PM 2 _ 0( j )=j1mod 1 6 _ _ PM 2 _+ 1( j )=j+2mod 1 6 _ _ PM 2 _ 1( j )=j2mod 1 6 _ _ PM 2 _+ 2( j )=j+4mod 1 6 _ _ PM 2 _ 2( j )=j4mod 1 6 _ _ PM 2 _± 3( j )=j±8mod 1  6 _ _
 1, 2, 4, 5, 7, 11, 15.

El concepto de red de interconexión:
  los datos deben transmitirse entre unidades de procesamiento, pero cuando hay muchas unidades de procesamiento, es imposible que cada unidad se conecte directamente en pares. El costo es demasiado alto, por lo que es necesario utilizar una interconexión. Red. Diferentes redes de interconexión Correspondiente a diferentes funciones de interconexión, representa diferentes modos de conexión. Las funciones de interconexión de diferentes redes se muestran en la siguiente tabla.
(1) La estructura de conexión de la red de un solo nivel del cubo (Cubo)
  es similar a un cubo: 4 unidades de procesamiento están conectadas con un cubo bidimensional (cuadrado), y cada unidad está conectada con otras dos unidades; 8 unidades de procesamiento están conectadas con un cubo tridimensional (cubo).Cada unidad está conectada a otras 3 unidades, y así sucesivamente.
  Como en esta pregunta, 16 unidades están representadas por 4 bits binarios, y cada unidad está conectada a otras 4 unidades. Las unidades conectadas al No. 3 (0011) son 2 (0010), 1 (0001), 7 (0111) y 11 (1011).
(2) El significado de la red PM2I de una etapa
  PM2I es P lus − Minus 2 i \mathrm{Plus-Minus}\ 2^imás _ _ _menos 2 _ _ _ _ i (suma2 i 2^i2i ), correspondiente a su función de interconexión, representajjQué números de unidad se pueden conectar directamente a la unidad de procesamiento j .
  Como en esta pregunta,iiEl rango de valores de i es de 0 a 3 correspondiente a 4 bits,NNN es 16 correspondiente al número de unidades de procesamiento y mod representa el resto. iCuando i toma 3, los dos resultados son iguales, por lo que al escribir la función de interconexión, es2 log 2 N − 1 \mathrm{2log_2}N-12 l o g2norte1 . Para tamaño 3:
3 ± 1 = 2 , 4 3\pm1=2,43±1=2 ,4
3 ± 2 = 1 , 5 3\pm2=1,53±2=1 ,5
3 ± 4 = − 1 , 7 → 15 , 7 3\pm4=-1,7\to15,73±4=- 1 ,71 5 ,7
3 ± 8 = − 5 , 11 → 11 , 11 3\pm8=-5,11\to11,113±8=5 ,1 11 1 ,1 1
(3) El intercambio aleatorio y la mariposa se ignoran básicamente, simplemente escriba la función de interconexión.

red de una sola etapa función de interconexión NNN 为处理单元个数
n = l o g 2 N n=\mathrm{log_2}N n=log2N
立方体 C u b e i ( P n − 1 ⋯ P i ⋯ P 1 P 0 ) = P n − 1 ⋯ P ‾ i ⋯ P 1 P 0 \mathrm{Cube_i(P_{n-1} \cdots P_i \cdots P_1P_0)=P_{n-1} \cdots \overline{P}_i \cdots P_1P_0} Cubei(Pn1PiP1P0)=Pn1PiP1P0 对应位取反 1 对 n n n
PM2I { P M 2 + i ( j ) = j + 2 i m o d   N P M 2 − i ( j ) = j − 2 i m o d   N \left\{\begin{matrix}\mathrm{PM2}_{+i}(j)=j+2^i\quad \mathrm{mod\ }N\\\mathrm{PM2}_{-i}(j)=j-2^i\quad \mathrm{mod\ }N\end{matrix}\right. { PM2+i(j)=j+2imod NPM2i(j)=j2imod N 加减 2 i 2^i 2i 1 对 2 n − 1 2n-1 2n1
混洗交换 S h u f f l e ( P n − 1 P n − 2 ⋯ P 1 P 0 ) = P n − 2 ⋯ P 1 P 0 P n − 1 \mathrm{Shuffle(P_{n-1} P_{n-2} \cdots P_1P_0)= P_{n-2} \cdots P_1P_0P_{n-1}} Shuffle(Pn1Pn2P1P0)=Pn2P1P0Pn1 最左位挪到最右边 1 对 1
蝶形 B u t t e r f l y ( P n − 1 P n − 2 ⋯ P 1 P 0 ) = P 0 P n − 2 ⋯ P 1 P n − 1 \mathrm{Butterfly(P_{n-1} P_{n-2} \cdots P_1P_0)= P_0P_{n-2} \cdots P_1P_{n-1} } Butterfly(Pn1Pn2P1P0)=P0Pn2P1Pn1 最高位最低位互换 1 对 1

2. 多级立方体网络

历史考题:2021.04、2018.04、2017.10、2016.10

题目描述:互连函数、网络拓扑结构图、控制开关状态。
  

课后习题 6-6

  阵列有 0~7 共 8 个处理单元互连,要求按 (0,5)、(1,4)、(2,7)、(3,6) 配对通信。
(1)写出实现此功能的互连函数的一般式;
(2)画出用三级立方体网络实现互连函数的互连网络拓扑结构图,并标出各控制开关的状态。

解:
(1) C u b e ( b 2 b 1 b 0 ) = b ‾ 2 b 1 b ‾ 0 \mathrm{Cube(b_2b_1b_0)=\overline{b}_2b_1\overline{b}_0} Cube(b2b1b0)=b2b1b0
  把配对通信的二进制位表示写出来就能看出来(只要算一对就行,保险起见都算一算):
( 0 , 5 ) → ( 000 , 101 ) (0,5) \to (000,101) (0,5)(000,101)
( 1 , 4 ) → ( 001 , 100 ) (1,4) \to (001,100) (1,4)(001,100)
( 2 , 7 ) → ( 010 , 111 ) (2,7) \to (010,111) (2,7)(010,111)
( 3 , 6 ) → ( 011 , 110 ) (3,6) \to (011,110) (3,6)(011,110)

(2)
在这里插入图片描述
拓扑结构图画法:
  此图分为两个部分,底部的交换、直连、交换是各控制开关的状态,需要根据题目来确定,其余部分为多级立方体互连网络的结构,这部分是固定的。
在这里插入图片描述
  图中 A~L 的矩形框为控制单元,每个控制单元 2 个输入 2 个输出,可以实现的控制方式有 4 种,上播下播通常不考:
(1)直连:输入 (x,y) 输出 (x,y);
(2)交换:输入 (x,y) 输出 (y,x);
(3)上播:输入 (x,y) 输出 (x,x);
(4)下播:输入 (x,y) 输出 (y,y);
在这里插入图片描述
  对于多级立方体网络,每一列控制单元都是二功能交换单元,对应一个等级 i i i,并对应 C u b e i \mathrm{Cube}_i Cubei 互连函数。
  以第 1 列,第 0 级为例,控制单元利用 C u b e 0 \mathrm{Cube}_0 Cube0 实现直连或交换两个功能,对于 C u b e 0 \mathrm{Cube}_0 Cube0 来说 0(000) 对应 1(001)、2(010) 对应 3(011)、4(100) 对应 5(101)、6(110) 对应 7(111)。
  以第 2 列,第 1 级为例,对于 C u b e 1 \mathrm{Cube}_1 Cube1 来说 0(000) 对应 2(010)、1(001) 对应 3(011)、4(100) 对应 6(110)、5(101) 对应 7(111)。
  图中每个控制单元输入输出的数字是一样的,而每一对数字都是可以用对应等级的互连函数实现连接的,如此一来图中每个单元上的数字都可以先写出,然后把相同的数字连接起来就行了。
  这里的多级立方体网络是采用的级控制,即每一级(列)所有的控制开关只能处于一种状态,要么直连要么交换。题目中控制开关的状态可以由两种方法确定:
(1)根据第一问的互连函数,0、2 位要取反,对应 0、2 级交换,1 级直连;
(2)根据网络拓扑结构图,要想让 0 输入和 5 相连:0 从 A0 输入交换从 A1 输出,从 F1 输入直连从 F1 输出,从 J1 输入交换从 J5 输出,最终连接 5。


课后习题 6-10

  并行处理机有 16 个处理单元,要实现相当于先 8 组 2 元交换,然后是 1 组 16 元交换,再次是 4 组 4 元交换的交换函数功能。
(1)写出实现此函数最终等效的功能,各处理器间所实现的互连函数的一般式;
(2)画出实现此互连函数的四级立方体互连网络拓扑结构图,标出各级交换开关的状态。

解:
  这里主要搞懂几组几元交换的意思,得到如 6-6 中的配对通信,就很容易了。如 8 组 2 元交换代表 16 个处理单元分成 8 组,每组 2 个单元,每组的单元反向排列。

| 0  1 |  2  3 |  4  5 |  6  7 |  8  9 | 10 11 | 12 13 | 14 15 |		输入
| 1  0 |  3  2 |  5  4 |  7  6 |  9  8 | 11 10 | 13 12 | 15 14 |		82 元交换
|14 15   12 13   10 11    8  9    6  7    4  5    2  3    0  1 |		116 元交换
|13 12   15 14 |  9  8   11 10 |  5  4    7  6 |  1  0    3  2 |		44 元交换

  0(0000) 对应 13(1101),可得到互连函数 C u b e ( b 3 b 2 b 1 b 0 ) = b ‾ 3 b ‾ 2 b 1 b ‾ 0 \mathrm{Cube(b_3b_2b_1b_0)=\overline{b}_3\overline{b}_2b_1\overline{b}_0} Cube(b3b2b1b0)=b3b2b1b0,拓扑结构图按同样的画法,先确定每一级的数字对,标上数字后对应连接。交换开关状态直接安装互连函数确定,0、2、3 级为交换,1 级为直连。

在这里插入图片描述


3. 并行存储器无冲突访问

历史考题:2019.10

题目描述:无冲突访问数组元素分布、并行存储器分体数。
  

课后习题 6-14

  在集中式主存的阵列机中,处理单元数为 4,为了使 4 × 4 4\times 4 4×4 的二维数组 A 的各元素 a i j ( i = 0 ∼ 3 , j = 0 ∼ 3 ) a_{ij}(i=0\sim3,j=0\sim 3) aij(i=03,j=03) 在行、列、主 / 次对角线上均能实现无冲突访问,请填出数组各元素在存储器分体(分体号从 0 开始)中的分布情况。假设 a 00 a_{00} a00 已放在分体号为 3。体内地址(从 i + 0 i+0 i+0 开始)为 i + 0 i+0 i+0 的位置。

解:
分体数 M = 5 = 2 2 P + 1 M=5=2^{2P}+1 M=5=22P+1
P = 1 P=1 P=1
数组中同一列上两个相邻行的元素其地址错开的体号距离 δ 1 = 2 P = 2 \delta_1=2^P=2 δ1=2P=2
数组中同一行中两个相邻列的元素其地址错开的体号距离 δ 2 = 1 \delta_2=1 δ2=1
数组各元素在存储器分体中的分布情况如下表:

图6-14
解释:
  无冲突访问就是在访问数组的行、列、主 / 次对角线的元素时没有冲突。需要访问的数据存放在不同的分体中时访问没有冲突,但是多个数据在同一分体中就会产生冲突。假设如下表存储数据,可以看出访问数组每一行、主 / 次对角线的元素没有冲突,但是访问列时每个元素都在一个分体中就会产生冲突,无法并行。

0 1 2 3
a 00 a_{00} a00 a 01 a_{01} a01 a 02 a_{02} a02 a 03 a_{03} a03
a 10 a_{10} a10 a 11 a_{11} a11 a 12 a_{12} a12 a 13 a_{13} a13
a 20 a_{20} a20 a 21 a_{21} a21 a 22 a_{22} a22 a 23 a_{23} a23
a 30 a_{30} a30 a 31 a_{31} a31 a 32 a_{32} a32 a 33 a_{33} a33

  题目的目的就是要设计分体的数量和数组元素的存放方式,使得实现无冲突访问。解题步骤为:
(1)确定分体数,分体数为大于 4(数组的行列数、处理单元数) 的质数,也就是 5;
(2)将分体数改写为 2 2 P + δ 2 = 2 2 × 1 + 1 2^{2P}+\delta_2 = 2^{2\times1}+1 22P+δ2=22×1+1 的形式;
(3) δ 1 = 2 P = 2 \delta_1=2^P=2 δ1=2P=2,代表同一列元素的间隔,如 a 00 a_{00} a00 存在 3, a 10 a_{10} a10 要存在 5,因为分体号是 0 ∼ 4 0\sim 4 04,5 就对应到 0;
(4) δ 2 = 1 \delta_2=1 δ2=1,代表同一行元素的间隔,如 a 00 a_{00} a00 存在 3, a 01 a_{01} a01 要存在 4。


7. 多处理机

1. 霍纳法则

历史考题:2019.10、2019.04、2018.10、2017.04、2015.04

题目描述:画树形流程图,计算级数 T P T_P TP、机数 P P P、加速比 S P S_P SP、效率 E P E_P EP
  

课后习题 7-6

  由霍纳法则给定的表达式如下: E = a ( b + c ( d + e ( f + g h ) ) ) E=a(b+c(d+e(f+gh))) E=a(b+c(d+e(f+gh))),利用减少树高的办法来加速运算,要求:
(1)画出树形流程图;
(2)确定 T P T_P TP P P P S P S_P SP E P E_P EP 的值。

解:
(1)
在这里插入图片描述
(2) T P = 4 ,   P = 3 ,   S P = 7 / 4 ,   E P = 7 / 12 T_P=4,\ P=3,\ S_P=7/4,\ E_P=7/12 TP=4, P=3, SP=7/4, EP=7/12

解释:
  原式 E = a ( b + c ( d + e ( f + g h ) ) ) E=a(b+c(d+e(f+gh))) E=a(b+c(d+e(f+gh))) 只能从内向外依次计算,一共 7 步,不能并行,也就是只能单处理机处理,此时的树高(级数)为 T 1 = 7 T_1=7 T1=7
  将式子改写,通用方法是先完全展开,然后尽可能两两成一对并且提公因式

E = a ( b + c ( d + e ( f + g h ) ) ) = a b + a c d + a c e f + a c e g h = ( a b + a c d ) + ( a c e f + a c e g h ) = a ( b + c d ) + a c e ( f + g h ) = [ a ( b + c d ) ] + [ ( a c e ) ( f + g h ) ] \begin{aligned} E&=a(b+c(d+e(f+gh))) \\ &=ab + acd+acef+acegh \\ &=(ab+acd)+(acef+acegh) \\ &=a(b+cd)+ace(f+gh) \\ &=[a(b+cd)]+[(ace)(f+gh)] \end{aligned} E=a(b+c(d+e(f+gh)))=ab+acd+acef+acegh=(ab+acd)+(acef+acegh)=a(b+cd)+ace(f+gh)=[a(b+cd)]+[(ace)(f+gh)]

  然后按公式画树形图即可,个人感觉从上往下画比较好,顶部为加法,展开两个分支,然后在逐步画各个子项的计算,这样比较容易对齐树的层级。
  注意点:有些情况画法是不唯一的,例如某一项为 a b ( c + d ) ab(c+d) ab(c+d),此时可以 a b ab ab c + d c+d c+d 并行再相乘分两步,也可以先算 c + d c+d c+d 再依次乘上 a a a b b b 分三步。此时需要根据题目的情况来决定,有时按并行的两步来计算并不能减少树高,反而会增加机数(因为只一个分支不一定影响整个树高)。
  级数 T P T_P TP :树高,树含有运算符的层级数量;
  机数 P P P:有多少台处理机在进行并行运算,看每一层有多少个运算符,取最大值;
  加速比 S P = T 1 / T P S_P=T_1/T_P SP=T1/TP:单处理机的级数和当前并行加速后的级数的比值;
  效率 E P = S P / P E_P=S_P/P EP=SP/P:加速比除以机数。

2. FORK、JOIN 语句

历史考题:2021.10、2020.10、2020.04、2016.04、2015.10

题目描述:程序用 FORK、JOIN 语句改写,画资源时间图。
  

课后习题 7-8

  若有下述程序:
   U = A + B \mathrm{U=A+B} U=A+B
   V = U / B \mathrm{V=U/B} V=U/B
   W = A ∗ U \mathrm{W=A*U} W=AU
   X = W − V \mathrm{X=W-V} X=WV
   Y = W ∗ U \mathrm{Y=W*U} Y=WU
   Z = X / Y \mathrm{Z=X/Y} Z=X/Y
  试用 FORK、JOIN 语句将其改写成可在多处理机上并行执行的程序。假设现有两台处理机,且除法速度最慢,加、减法速度最快,请画出该程序运行时的资源时间图。

解:
(1)改写后的程序为:

							| 语法解释:
10	U = A + B				| 执行语句左边的编号通常就按 10 20 30... 依次增大, 没有严格的要求
	FORK	30				| FORK	30 就代表下面一条语句和 30 号语句并行
20	V = U / B				|
	JOIN 	2				| JOIN	2 就代表有 2 条语句并行
	GOTO	40				| GOTO	40 是因为 20 运行完接下来要运行 40
30	W = A * U				|
	JOIN	2				| 30 下面不用写 GOTO	 40 是因为按顺序它运行完本来就是运行 40
40	FORK	60				| 这里的 FORK 编号是因为前面有 GOTO 要跳到这里来, 而第一条按顺序运行
50	X = W - V				| 没有别的语句要用到它的编号, 就省略了。
	JOIN	2				|
	GOTO	70				| 如果有 2 条以上的语句要并行就是多写几行 FORK, 同时 JOIN 改成对应的数量
60	Y = W * U				| 例如 20 30 40 都并行:
	JOIN	2				| FORK	30
70	Z = X / Y				| FORK	40

  题目给出的程序每一行就是一条指令,通过观察可以分析程序的并行性,得到程序的运行步骤:
(1)① U = A + B \mathrm{U=A+B} U=A+B 执行
(2)② V = U / B \mathrm{V=U/B} V=U/B 和 ③ W = A ∗ U \mathrm{W=A*U} W=AU 可并行
(3)④ X = W − V \mathrm{X=W-V} X=WV 和 ⑤ Y = W ∗ U \mathrm{Y=W*U} Y=WU 可并行
(4)⑥ Z = X / Y \mathrm{Z=X/Y} Z=X/Y 执行

(2)资源时间图
在这里插入图片描述

  优化了一下答案的图,很多题目中只说加减法最快,除法最慢,这里直接自己规定加减法为 4,乘法 5,除法 6,FORK、JOIN、GOTO 都是 1。部分题目也会这样规定,定量画出来更直观。
  画图流程和注意事项:
(1)10 号语句,加法占 4 个时间
(2)紧接着 FORK 30,后面按顺序运行 20,并且上面并行 30;
(3)20 和 30 运行完都是接上 JOIN 2 ,JOIN 2 是个关键,它会判断 2 条并行指令是否都运行完,如果没有当前的指令就断开了要等全都运行完,如果已经都运行完了就按当前指令往下运行,如果还有指令没开始运行,就会运行未运行指令。
  有点绕,下面举几个例子:
  这道题里面,30 是乘法,20 是除法,所以 30 后面的 JOIN 2 会发现 20 还没运行完就停住了不会往下运行 40,而 20 的 JOIN 2 发现都运行完了就会进入 GOTO 40;假如是 20 先运行完那么就不会进入 GOTO,而是 30 运行完后自然按顺序运行 40。后面也是如此,因为 50 结束的比 60 快,所以 50 后面的 GOTO 70 就被截断了不运行,等 60 运行完接上 70。
  有的情况是 JOIN 4 是 4 条语句并发,假设是 (10,20,30,40),但是只有 2 个处理机,那么就是先并行 10 和 20,谁先运行完后面紧跟 30,以此类推。
(4)还有个注意点是 FORK 相关的,假设现在是 3 条语句并发 (10,20,30),在 3 个处理机上运行,那么运行 10 之前就有 2 个 FORK 语句:FORK 20 和 FORK 30,画图的时候当 FORK 20 一运行完,CPU2 就可以开始执行 20 了,然后 FORK 30 运行完再执行 30 和 10,参考本题的虚线。


8. 数据流机和归约机

  不考大题。

Supongo que te gusta

Origin blog.csdn.net/weixin_43605641/article/details/124525916
Recomendado
Clasificación