2004-gre-cs-practice-book.pdf/Q17 — различия между версиями
StasFomin (обсуждение | вклад) (Новая страница: « == Вопрос: Q17-4c9f66 == <i>Тут вставьте перевод вопроса. Используйте [https://wiki.4intra.net/Help:%D0%A4%D0%BE%D1%80…») |
StasFomin (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | |||
== Вопрос: Q17-4c9f66 == | == Вопрос: Q17-4c9f66 == | ||
− | + | Некоторая конвейерная RISC-машина имеет 8 регистров общего назначения R0, R1, …, R7 и поддерживает следующие операции | |
− | + | ||
− | + | ||
− | + | ||
− | + | ADD Rs1, Rs2, Rd Add Rs1 to Rs2 and put the sum in Rd | |
− | + | MUL Rs1, Rs2, Rd Multiply Rs1 by Rs2 and put the product in Rd | |
− | + | ||
− | + | Операция обычно занимает один цикл; однако операция занимает два цикла, если она дает результат, необходимый для выполнения непосредственно следующей операции в последовательности операций. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | Рассмотрим выражение ''AB ABC BC + +'', где переменные ''A'', ''B'', ''C'' находятся в регистрах R0, R1, R2. | |
− | + | ||
− | + | ||
+ | Если содержимое этих трех регистров не должно изменяться, то каково минимальное количество тактов требуется для последовательности операций, которая вычисляет значение ''AB + ABC + BC''? | ||
+ | |||
+ | === Ответы === | ||
+ | * 5 | ||
+ | * Правильный ответ: 6 | ||
+ | * 7 | ||
+ | * 8 | ||
+ | * 9 | ||
=== Объяснение === | === Объяснение === | ||
− | < | + | Вообще странно, что менее выгодно, когда результат операции сразу доступен. Надо это вкурить. |
− | {{cstest-source|2004-gre-cs-practice-book.pdf| | + | |
+ | <graph> | ||
+ | digraph G{ | ||
+ | A -> MUL_R3_1 | ||
+ | B -> MUL_R3_1 | ||
+ | C -> MUL_R4_2 | ||
+ | MUL_R3_1 -> MUL_R4_2 | ||
+ | |||
+ | B -> MUL_R5 | ||
+ | C -> MUL_R5 | ||
+ | |||
+ | B -> MUL_R4 | ||
+ | |||
+ | } | ||
+ | </graph> | ||
+ | |||
+ | {{cstest-source|2004-gre-cs-practice-book.pdf|18|17}} | ||
+ | |||
− | |||
{{question-ok|}} | {{question-ok|}} | ||
+ | |||
+ | [[Категория:Процессорная архитектура]] | ||
+ | [[Категория:Разобраться.]] |
Версия 01:17, 14 декабря 2024
Вопрос: Q17-4c9f66
Некоторая конвейерная RISC-машина имеет 8 регистров общего назначения R0, R1, …, R7 и поддерживает следующие операции
ADD Rs1, Rs2, Rd Add Rs1 to Rs2 and put the sum in Rd MUL Rs1, Rs2, Rd Multiply Rs1 by Rs2 and put the product in Rd
Операция обычно занимает один цикл; однако операция занимает два цикла, если она дает результат, необходимый для выполнения непосредственно следующей операции в последовательности операций.
Рассмотрим выражение AB ABC BC + +, где переменные A, B, C находятся в регистрах R0, R1, R2.
Если содержимое этих трех регистров не должно изменяться, то каково минимальное количество тактов требуется для последовательности операций, которая вычисляет значение AB + ABC + BC?
Ответы
- 5
- Правильный ответ: 6
- 7
- 8
- 9
Объяснение
Вообще странно, что менее выгодно, когда результат операции сразу доступен. Надо это вкурить.
Исходники — вопрос 17 на 18 странице книги «2004-gre-cs-practice-book.pdf»