2011-gre-cs-practice-book.pdf/Q64 — различия между версиями
Материал из DISCOPAL
StasFomin (обсуждение | вклад) |
|||
(не показаны 4 промежуточные версии 2 участников) | |||
Строка 1: | Строка 1: | ||
== Вопрос: Q64-08c765 == | == Вопрос: Q64-08c765 == | ||
+ | Рассмотрите следующую последовательность инструкций для гипотетического RISC-процессора: | ||
− | + | ;T: R1 ← R2 + R3 | |
− | + | ;U: R4 ← R5 + R6 | |
− | + | ;V: R5 ← R7 + R8 | |
− | + | ;W: R9 ← R5 + R1 | |
+ | ;X: R10 ← R4 + R1 | ||
+ | ;Y: R11 ← R10 + R1 | ||
+ | ;Z: R9 ← R1 + R4 | ||
− | + | Какой из следующих вариантов представляет допустимый порядок выполнения инструкций на процессоре с переупорядочиванием, но без переименования регистров? | |
− | + | ||
− | + | ||
− | + | ||
=== Ответы === | === Ответы === | ||
− | + | * Правильный ответ: T, U, X, V, W, Z, Y | |
− | + | * T, U, X, V, Z, W, Y | |
+ | * T, V, U, X, W, Y, Z | ||
+ | * U, T, V, Y, X, W, Z | ||
+ | * U, T, X, W, Y, Z, V | ||
− | + | === Объяснение === | |
− | + | {{cstest-source|2011-gre-cs-practice-book.pdf|45|64}} | |
− | + | ||
− | + | ||
− | + | ||
− | + | Для правильного выполнения инструкций без переименования регистров важно учитывать зависимости между регистрами. Если инструкция использует значение регистра, которое обновляется другой инструкцией, она не может выполняться раньше этой инструкции. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | * T выполняется первой, так как записывает значение в R1. | |
+ | * V можно выполнить сразу после T, чтобы подготовить R5. | ||
+ | * U можно выполнить, так как оно не зависит от других. | ||
+ | * X идет после T. | ||
+ | * W требует выполнения T и V. | ||
+ | * Y требует выполнения X. | ||
+ | * Z можно выполнить последней после U и T. | ||
− | + | [[Участник:StasFomin|StasFomin]] 21:47, 11 января 2025 (UTC): Тут бы граф с путем когда-нибудь нарисовать, ну ладно. | |
− | Тут | + | |
− | + | ||
− | + | {{question-ok|[[Участник:StasFomin|StasFomin]] 21:47, 11 января 2025 (UTC)}} | |
− | + | [[Категория:Процессорная архитектура]] | |
− | + |
Текущая версия на 21:49, 11 января 2025
Вопрос: Q64-08c765
Рассмотрите следующую последовательность инструкций для гипотетического RISC-процессора:
- T
- R1 ← R2 + R3
- U
- R4 ← R5 + R6
- V
- R5 ← R7 + R8
- W
- R9 ← R5 + R1
- X
- R10 ← R4 + R1
- Y
- R11 ← R10 + R1
- Z
- R9 ← R1 + R4
Какой из следующих вариантов представляет допустимый порядок выполнения инструкций на процессоре с переупорядочиванием, но без переименования регистров?
Ответы
- Правильный ответ: T, U, X, V, W, Z, Y
- T, U, X, V, Z, W, Y
- T, V, U, X, W, Y, Z
- U, T, V, Y, X, W, Z
- U, T, X, W, Y, Z, V
Объяснение
Исходники — вопрос 64 на 45 странице книги «2011-gre-cs-practice-book.pdf»
Для правильного выполнения инструкций без переименования регистров важно учитывать зависимости между регистрами. Если инструкция использует значение регистра, которое обновляется другой инструкцией, она не может выполняться раньше этой инструкции.
- T выполняется первой, так как записывает значение в R1.
- V можно выполнить сразу после T, чтобы подготовить R5.
- U можно выполнить, так как оно не зависит от других.
- X идет после T.
- W требует выполнения T и V.
- Y требует выполнения X.
- Z можно выполнить последней после U и T.
StasFomin 21:47, 11 января 2025 (UTC): Тут бы граф с путем когда-нибудь нарисовать, ну ладно.