2011-gre-cs-practice-book.pdf/Q64 — различия между версиями

Материал из DISCOPAL
Перейти к: навигация, поиск
 
(не показаны 3 промежуточные версии 2 участников)
Строка 2: Строка 2:
 
Рассмотрите следующую последовательность инструкций для гипотетического RISC-процессора:
 
Рассмотрите следующую последовательность инструкций для гипотетического RISC-процессора:
  
* T. <m> R1 \leftarrow R2 + R3 </m>
+
;T: R1 ←  R2 + R3
* U. <m> R4 \leftarrow R5 + R6 </m>
+
;U: R4 ←  R5 + R6
* V. <m> R5 \leftarrow R7 + R8 </m>
+
;V: R5 ←  R7 + R8
* W. <m> R9 \leftarrow R5 + R1 </m>
+
;W: R9 ←  R5 + R1
* X. <m> R10 \leftarrow R4 + R1 </m>
+
;X: R10 ←  R4 + R1
* Y. <m> R11 \leftarrow R10 + R1 </m>
+
;Y: R11 ←  R10 + R1
* Z. <m> R9 \leftarrow R1 + R4 </m>
+
;Z: R9 ←  R1 + R4
  
 
Какой из следующих вариантов представляет допустимый порядок выполнения инструкций на процессоре с переупорядочиванием, но без переименования регистров?
 
Какой из следующих вариантов представляет допустимый порядок выполнения инструкций на процессоре с переупорядочиванием, но без переименования регистров?
Строка 21: Строка 21:
 
=== Объяснение ===
 
=== Объяснение ===
 
{{cstest-source|2011-gre-cs-practice-book.pdf|45|64}}
 
{{cstest-source|2011-gre-cs-practice-book.pdf|45|64}}
 +
 
Для правильного выполнения инструкций без переименования регистров важно учитывать зависимости между регистрами. Если инструкция использует значение регистра, которое обновляется другой инструкцией, она не может выполняться раньше этой инструкции.
 
Для правильного выполнения инструкций без переименования регистров важно учитывать зависимости между регистрами. Если инструкция использует значение регистра, которое обновляется другой инструкцией, она не может выполняться раньше этой инструкции.
  
Строка 31: Строка 32:
 
* Z можно выполнить последней после U и T.
 
* Z можно выполнить последней после U и T.
  
 +
[[Участник:StasFomin|StasFomin]] 21:47, 11 января 2025 (UTC): Тут бы граф с путем когда-нибудь нарисовать, ну ладно.
  
 +
{{question-ok|[[Участник:StasFomin|StasFomin]] 21:47, 11 января 2025 (UTC)}}
  
{{question-ok|}}
+
[[Категория:Процессорная архитектура]]
{{reserve-task|[[Участник:Nikitashapovalov|Nikitashapovalov]] 20:59, 8 января 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): Тут бы граф с путем когда-нибудь нарисовать, ну ладно.