Рубрики

ВОРОТА | Gate IT 2007 | Вопрос 41

В следующей таблице указаны задержки операций между инструкцией, производящей результат, и инструкцией, использующей результат.

Load R1, Loc 1;     Load R1 from memory location Loc1
Load R2, Loc 2;     Load R2 from memory location Loc 2
Add R1, R2, R1;     Add R1 and R2 and save result in R1
Dec R2;     Decrement R2
Dec R1;     Decrement R1
Mpy R1, R2, R3;     Multiply R1 and R2 and save result in R3
Store R3, Loc 3;     Store R3 in memory location Loc 3

Какое количество циклов необходимо для выполнения вышеуказанного сегмента кода, если предположить, что для выполнения каждой инструкции требуется один цикл?
(А) 7
(Б) 10
(С) 13
(D) 14

Ответ: (с)
Объяснение:  

В данном вопросе есть 7 инструкций, каждая из которых занимает 1 такт. (Трубопровод может быть использован)
Если команда находится в фазе выполнения и любые другие инструкции s не может быть в фазе выполнения. Таким образом, по крайней мере 7 тактов будет принято.
Теперь дано, что между двумя инструкциями должна быть задержка или задержка в зависимости от их работы. Экс- 1й строке таблицы говорит , что между двумя операциями , в которых первый производит результат операции ALU и 2й использует результат должен быть задержка 2 тактовых cyles.

тактовый цикл:


1) Нагрузка R1, Loc 1; Загрузить R1 из ячейки памяти Loc1
Занимает 1 такт, просто загружая R1 на loc1.


2) нагрузка R2, Loc 2; Загрузить R2 из ячейки памяти Loc2
Занимает 1 такт, просто загружая r2 на loc2.


3) Добавить R1, R2, R1; Добавьте R1 и R2 и сохраните результат в R1
R1 = R1 + R2;

Следовательно, эта инструкция использует результат R1 и R2, то есть результат инструкции 1 и инструкции 2.

Поскольку инструкция 1 является операцией загрузки, а инструкция 3 является операцией ALU. Таким образом, должна быть задержка в 1 тактовый цикл между инструкцией 1 и инструкцией 3. Который уже существует из-за I2.
Поскольку инструкция 2 является операцией загрузки, а инструкция 3 является операцией ALU. Таким образом, между инструкцией 2 и 3 должна быть задержка в 1 такт.

4) декабрь R2; Декремент R2
Эта инструкция зависит от инструкции 2, и между инструкцией 2 и инструкцией 4 должна быть задержка в один тактовый цикл. Поскольку инструкция 2 — это нагрузка, а 4 — это АЛУ. Который уже есть в связи с инструкцией 3.

5) дек R1 декрет R1
Эта инструкция зависит от инструкции 3
Поскольку Инструкция I3 — это АЛУ, а I5 — также АЛУ, поэтому между ними должна быть задержка в 2 такта, из которых уже есть задержка в 1 такт из-за I4, поэтому задержка в один такт между I4 и I5.

6) MPY R1, R2, R3; Умножьте R1 и R2 и сохраните результат в R3
R3 = R1 * R2;
Эта инструкция использует результат инструкции 5, так как обе команды 5 и 6 являются ALU, поэтому задержка должна составлять 2 такта.

7) Хранить R3, Loc 3 Хранить R3 в памяти Loc3
Эта инструкция зависит от инструкции 6, которая является ALU, а инструкция 7 сохраняется, поэтому между ними должна быть задержка в 2 такта.

Следовательно, всего будет 13 тактов.

Это решение предоставлено Shashank Shanker khare .
Тест на этот вопрос

Рекомендуемые посты:

ВОРОТА | Gate IT 2007 | Вопрос 41

0.00 (0%) 0 votes