Главная / Аппаратное обеспечение /
Архитектура параллельных вычислительных систем / Тест 4
Архитектура параллельных вычислительных систем - тест 4
Упражнение 1:
Номер 1
Произведите распараллеливание выполнения на стеке программы в безадресной системе команд. Разное время начальной загрузки подстеков и время обмена между ними не учитывать. За сколько тактов выполнится параллельная программа, не считая записи результатов? Сколько процессорных элементов будет использовано? abc×+ de: f+ × ЗпА
Ответ:
 (1) 4 такта, 2 ПЭ 
 (2) 3 такта, 3 ПЭ 
 (3) 2 такта, 4 ПЭ 
Номер 2
Произведите распараллеливание выполнения на стеке программы в безадресной системе команд. Разное время начальной загрузки подстеков и время обмена между ними не учитывать. За сколько тактов выполнится параллельная программа, не считая записи результатов? Сколько процессорных элементов будет использовано? ab+ c× de- × f× ЗпА
Ответ:
 (1) 3 такта, 4 ПЭ 
 (2) 4 такта, 3 ПЭ 
 (3) 2 такта, 5 ПЭ 
Номер 3
Произведите распараллеливание выполнения на стеке программы в безадресной системе команд. Разное время начальной загрузки подстеков и время обмена между ними не учитывать. За сколько тактов выполнится параллельная программа, не считая записи результатов? Сколько процессорных элементов будет использовано? ab+ c× de+× ЗпА
Ответ:
 (1) 3 такта, 3 ПЭ 
 (2) 2 такта, 4 ПЭ 
 (3) 4 такта, 3 ПЭ 
Упражнение 2:
Номер 1
Произведите распараллеливание счета арифметических операторов, содержащих конструкции if-then-else
, убедившись в правильной начальной загрузке и связывания подстеков. Сдвиг во времени загрузки подстеков не учитывать. Продолжите вычисления и определите количество тактов счета по разным ветвям программы. a+ if b+c > 0 then d: 5 else d: 20
Ответ:
 (1) 3 такта по двум ветвям 
 (2) 2 такта по ветви "+", 3 такта по ветви "-" 
 (3) 4 такта по двум ветвям 
Номер 2
Произведите распараллеливание счета арифметических операторов, содержащих конструкции if-then-else
, убедившись в правильной начальной загрузке и связывания подстеков. Сдвиг во времени загрузки подстеков не учитывать. Продолжите вычисления и определите количество тактов счета по разным ветвям программы.
a × if b > 0 then (c + d)×x else (e + f)
Укажите число тактов счета при заданном значении b ( b= 5, b = -7).
Ответ:
 (1) 3 такта по ветви "+", 2 такта по ветви "-" 
 (2) 3 такта по двум ветвям 
 (3) 2 такта по ветви "+", 3 такта по ветви "-" 
Номер 3
Произведите распараллеливание счета арифметических операторов, содержащих конструкции if-then-else
, убедившись в правильной начальной загрузке и связывания подстеков. Сдвиг во времени загрузки подстеков не учитывать. Продолжите вычисления и определите количество тактов счета по разным ветвям программы. (a+ b)× if c > 0 then B else (d+ e)× f
Ответ:
 (1) 2 такта по ветви "+", 3 такта по ветви "-" 
 (2) 3 такта по двум ветвям 
 (3) 3 такта по ветви "+", 2такта по ветви "-" 
Упражнение 3:
Номер 1
Предполагая механизм использования бита значимости регистров r
СОЗУ, уплотните код фрагмента программы счета арифметического оператора на процессоре с программным управлением каждым тактом. Программа составлена в трехадресных командах. b= a+ c
Ответ:
 (1) Сч a r1
Сч с r2
+ r1r2
 
 (2) Сч a r1
Сч с r2
{пропуск тактов в ожидании считывания}
+ r1r2b
 
 (3) Сч a r1
{пропуск тактов в ожидании считывания}
Сч с r2
{пропуск тактов в ожидании считывания}
+ r1 r2b
 
Номер 2
Предполагая механизм использования бита значимости регистров r
СОЗУ, уплотните код фрагмента программы счета арифметического оператора на процессоре с программным управлением каждым тактом. Программа составлена в трехадресных командах. a= b2c
Ответ:
 (1) Сч b r1
Сч с r2
× r1 r2 r3.
× r2 r3 a
 
 (2) Сч b r1
{пропуск тактов в ожидании считывания}
Сч с r2
{пропуск тактов в ожидании считывания}
× r1 r2 r3.
× r2 r3 a
 
 (3) Сч b r1
Сч с r2
{пропуск тактов в ожидании считывания}
× r1 r2 r3.
× r2 r3 a
 
Номер 3
Предполагая механизм использования бита значимости регистров r
СОЗУ, уплотните код фрагмента программы счета арифметического оператора на процессоре с программным управлением каждым тактом. Программа составлена в трехадресных командах. a = a+ b
Ответ:
 (1) Сч a r1
Сч b r2
+ r1 r2 a
 
 (2) Сч a r1
Сч b r2
{пропуск тактов в ожидании считывания}
+ r1 r2 a
 
 (3) Сч a r1
{пропуск тактов в ожидании считывания}
Сч b r2
{пропуск тактов в ожидании считывания}
+ r1r2 a
 
Упражнение 4:
Номер 1
Составьте программу для процессора VlIW-архитектуры задачи
abc×+ de: f+ × ЗпА
при условии: данные находятся в регистровой (сверхоперативной) памяти; результат сложения можно использовать через 1 такт, результат умножения – через 2 такта, деления – через 3 такта; в составе АЛУ (в числе других) содержится 2 ИУ сложения, 2 умножения, одно деления. За сколько тактов, не считая записи, выполняется программа?
Ответ:
 
(1) программа имеет вид
1. | | ×b c r1; | :d e r2 |
2. | NOP | | |
3. | NOP | | |
4. | +a r1 r3 | | |
5. | NOP | | |
6. | + r2 r4 | | |
7. | NOP | | |
8. | | ×r3 r4 A | |
программа выполняется за 10 тактов 
 
(2) программа имеет вид
1. | | ×b c r1; | :d e r2 |
2. | NOP | | |
3. | +a r1 r3 | | |
4. | NOP | | |
5. | + r2 f r4 | | |
6. | NOP | | |
7. | | ×r3 r4 A | |
программа выполняется за 9 тактов 
 
(3) программа имеет вид
1. | | ×b c r1; | :d e r2 |
2. | NOP | | |
3. | NOP | | |
4. | + a r1 r3 | | |
5. | NOP | | |
6. | NOP | | |
7. | +r2 f r4 | | |
8. | NOP | | |
9. | | × r3 r4 A | |
программа выполняется за 11 тактов 
Номер 2
Составьте программу для процессора VlIW-архитектуры задачи
ab+ c× de- × f× ЗпА
при условии: данные находятся в регистровой (сверхоперативной) памяти; результат сложения можно использовать через 1 такт, результат умножения – через 2 такта, деления – через 3 такта; в составе АЛУ (в числе других) содержится 2 ИУ сложения, 2 умножения, одно деления. За сколько тактов, не считая записи, выполняется программа?
Ответ:
 
(1) программа имеет вид
1. | + a b r1; | -d е r2 | |
2. | NOP | | |
3. | | | × r1 c r3 |
4. | NOP | | |
5. | NOP | | |
6. | | | × r3 r2 r4 |
7. | NOP | | |
8. | NOP | | |
9. | | | × r4 f A |
программа выполняется за 11 тактов 
 
(2) программа имеет вид
1. | + a b r1; | -d е r2 | |
2. | NOP | | |
3. | | | × r1 c r3 |
4. | NOP | | |
5. | NOP | | |
6. | | | × r3 r2 r4 |
7. | NOP | | |
8. | | | × r4 f A |
программа выполняется за 10 тактов 
 
(3) программа имеет вид
1. | + a b r1; | -d е r2 | |
2. | NOP | | |
3. | | | ×r1 c r3 |
4. | NOP | | |
5. | | | ×r3 r2 r4 |
6. | NOP | | |
7. | | | ×r4 f A |
программа выполняется за 9 тактов 
Номер 3
Составьте программу для процессора VlIW-архитектуры задачи
ab+ c× de+× ЗпА
при условии: данные находятся в регистровой (сверхоперативной) памяти; результат сложения можно использовать через 1 такт, результат умножения – через 2 такта, деления – через 3 такта; в составе АЛУ (в числе других) содержится 2 ИУ сложения, 2 умножения, одно деления. За сколько тактов, не считая записи, выполняется программа?
Ответ:
 
(1) программа имеет вид
1. | + a b r1; | +d е r2 | |
2. | NOP | | |
3. | | | × r1 c r3 |
4. | NOP | | |
5. | NOP | | |
6. | | | × r3 r2 A |
программа выполняется за 8 тактов 
 
(2) программа имеет вид
1. | + a b r1; | +d е r2 | |
2. | NOP | | |
3. | NOP | | |
4. | NOP | | |
5. | | | ×r3 r2 A |
программа выполняется за 7 тактов 
 
(3) программа имеет вид
1. | + a b r1; | +d е r2 | |
2. | NOP | | |
3. | | | × r1 c r3 |
4. | NOP | | |
5. | NOP | | |
6. | | | × r3 r2 A |
программа выполняется за 7 тактов 
Упражнение 5:
Номер 1
Используя команду if-then-else и трехадресную систему команд, составьте программу счета значения выражения
a+ if b+c > 0 then d: 5 else d: 20
Задержки выполнения команд из-за связности данных выполняются автоматически
Ответ:
 
(1) +b | c | r1 |
:d | 5 | r2 |
:d | 20 | r3 |
>r1 | | s |
if...s | r2 | r4 |
| r3 | |
+a | r4 | <результат> |
 
 
(2) ;d | 20 | r3 |
;d | 5 | r2 |
+b | c | r1 |
> | | s |
if...s | r2 | r4 |
| r3 | |
+a | r4 | <результат> |
 
 
(3) ;d | 20 | r3 |
+b | c | r1 |
;d | 5 | r2 |
>r1 | | s |
if...s | r2 | r4 |
| r3 | |
+a | r4 | <результат> |
 
Номер 2
Используя команду if-then-else и трехадресную систему команд, составьте программу счета значения выражения
a× if b > 0 then (c+ d)× x else (e+ f)
Задержки выполнения команд из-за связности данных выполняются автоматически
Ответ:
 
(1) >b | s | |
+c | d | r1 |
+e | f | r2 |
×r1 | x | r3 |
if...s | r2 | r4 |
| r3 | |
×a | r4 | <результат> |
 
 
(2) +c | d | r1 |
>b | | s |
+e | f | r2 |
×r1 | x | r3 |
if...s | r2 | r4 |
| r3 | |
×a | r4 | <результат> |
 
 
(3) +e | f | r2 |
+c | d | r1 |
>b | | s |
×r1 | x | r3 |
if...s | r2 | r4 |
| r3 | |
×a | r4 | <результат> |
 
Номер 3
Используя команду if-then-else и трехадресную систему команд, составьте программу счета значения выражения
(a+ b)× if c > 0 then B else (d+ e)× f
Задержки выполнения команд из-за связности данных выполняются автоматически
Ответ:
 
(1) +a | b | r1 |
>c | | s |
+d | e | r2 |
×r2 | f | r3 |
if...s | B | r4 |
| r3 | |
×r1 | r4 | <результат> |
 
 
(2) >c | | s |
+a | b | r1 |
+d | e | r2 |
×r2 | f | r3 |
if...s | B | r4 |
| r3 | |
×r1 | r4 | <результат> |
 
 
(3) +d | e | r2 |
> | | s |
+a | b | r1 |
×r2 | f | r3 |
if...s | B | r4 |
| r3 | |
×r1 | r4 | <результат> |
 
Упражнение 6:
Номер 1
Используя механизм предикатов и считая, что адрес предиката указывается перед кодом операции, составьте программу счета значения выражения
a+ if b+c > 0 then d: 5 else d: 20
Ответ:
 
(1) 1. | +b | c | r1 |
2. | >r1 | | s |
3. | s: | d 5 | r2 |
4. | s: | d 20 | r2 |
5. | + | a r2 | <результат?> |
 
 
(2) 1. | +b | c | r1 |
2. | > r1 | | s |
3. | s: | d 5 | r2 |
4. | s: | 20 | r2 |
5. | + a | r2 | <результат?> |
 
 
(3) 1. | + b | c | r1 |
2. | > r1 | | s |
3. | s : | d 5 | r2 |
4. | s + | a r2 | <результат?> |
5. | s : | d 20 | r3 |
6. | s + | a r3 | <результат> |
 
Номер 2
Используя механизм предикатов и считая, что адрес предиката указывается перед кодом операции, составьте программу счета значения выражения
a× if b > 0 then (c+ d)× x else (e+ f)
Ответ:
 
(1) 1. | | >b | | s |
2. | s | +c | d | r1 |
3. | s | +e | f | r1 |
4. | s | × r1 | x | r1 |
5. | | × a | r1 | <результат> |
 
 
(2) 1. | | >b | | s |
2. | s | +c | d | r1 |
3. | | +e | f | r1 |
4. | s | × r1 | x | r1 |
5. | | × a | r1 | <результат> |
 
 
(3) 1. | | > b | | s |
2. | s | +c | d | r1 |
3. | s | + e | f | r1 |
4. | s | × r1 | x | r1 |
5. | | × a | r1 | <результат> |
 
Номер 3
Используя механизм предикатов и считая, что адрес предиката указывается перед кодом операции, составьте программу счета значения выражения
(a+ b)× if c > 0 then B else (d+ e)× f
Ответ:
 
(1) 1. | | + a | b | r1 |
2. | | > c | | s |
3. | s | × r1 | B | <результат> |
4. | s | + d | e | r2 |
5. | s | × r2 | f | r2 |
6. | s | × r1 | r2 | <результат> |
 
 
(2) 1. | | + a | b | r1 |
2. | | > c | | s |
3. | s | Зn B | | r2 |
4. | s | + d | e | r2 |
5. | s | × r2 | f | r2 |
6. | | × r1 | r2 | <результат> |
 
 
(3) 1. | | + a | b | r1 |
2. | | > c | | s |
3. | s | 3n B | | r2 |
4. | s | + d | e | r2 |
5. | | × r2 | f | r2 |
6. | | × r1 | r2 | <результат> |