Рассмотрим последовательность машинных команд, приведенных ниже:Конвейерная ворота 2015
MUL R5, R0, R1
DIV R6, R2, R3
ADD R7, R5, R6
SUB R8, R7, R4
В приведенной выше последовательности, R0
к R8
являются регистры общего назначения. В приведенных инструкциях первый регистр сохраняет результат операции, выполняемой во втором и третьем регистрах. Эта последовательность команд должна быть выполнена в конвейерном процессоре команд со следующими 4 этапа:
- выборки команды и декодирования (IF),
- Операнд Fetch (OF),
- Выполнение операции (РО) и
- Запишите результат (WB).
В IF
, OF
и WB
этапы берут 1 такт каждый для любой команды. Стадия PO
занимает 1 такт для ADD
или SUB
инструкция, 3 такта для MUL
инструкция и 5 тактов для DIV
инструкция. Конвейерный процессор использует переадресацию операнда от этапа PO до этапа OF. Количество тактовых циклов, взятых для выполнения вышеуказанной последовательности инструкций, равно
Поскольку четко указано, что пересылка операндов должна использоваться с этапа PO на OF, поэтому ответ на выше должен быть 15 тактов.
Но во многих местах ответ дается как 13 тактов. 13 ответ придет, когда мы будем использовать переадресацию операнда от PO к PO.
Мой ответ:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
IF OF PO PO PO WB
IF OF PO PO PO PO PO WB
IF OF PO WB
IF OF PO WB
Ответ дается во многих местах:
1 2 3 4 5 6 7 8 9 10 11 12 13
IF OF PO PO PO WB
IF OF PO PO PO PO PO WB
IF OF PO WB
IF OF PO WB
может любой сказать, какой ответ правильный?
Как это возможно? В каждом другом случае вопросы Operand Forwarding берут ровно один такт (см. Этот http://gateoverflow.in/1391/gate2005-68?show=77905#a77905) только этот конкретный (gate 2015, заданный вопрос) они делают операнд пересылка в те же часы. Вы должны дать конкретную причину этому. –