1

у нас есть Datapath из одного процессора, например, следующий рисунок. если следующий адрес команды будет в PC Register,Datapath на CPU и циклы

сколько clock cycle нужно следующее word add команда выбирается и выполняется?

Память 10 бит, и каждая команда по крайней мере, 2-х слов. весь регистр 10 бит и имеет INC (increment), CLR (clear), LD(load) инструкций. Addr означает прямую адресацию. инструкция будет работать на 10-битных слова:

Wadd (src1), (src2), (dst) 

enter image description here

Мой инструктор решить, что это на 15 такте. любой намек или идея, как это будет рассчитано?

Edit:

Моя попытка *, но я не уверен, моя попытка является истинным или ложным:

enter image description here

+0

Это не ясно, что вы спрашиваете, почему бы вам не показать свою попытку решить эту проблему? – Leeor

+0

Дорогой @Leeor, я делаю некоторые изменения. так понятно? –

ответ

0

Ваше решение не совсем работает, как вы перемещаете PC когда-то тоже много раз, что означает, что вы загружаете указатель назначения в качестве указателя источника 2 (на шаге 5 вы не должны увеличивать ПК снова).Я не заметил никаких других ошибок в вашем решении, однако мне удалось найти тот, который работает быстрее:

[UPDATE: По-видимому, в процессоре есть ИК-приемник; поэтому мы будем считать, ИК может быть загружен из DR]

Получить Op Код

Шаг 1: AR <- PC

Шаг 2: DR <- M[AR]; PC++; AR++

Шаг 3: IR <- DR; DR <- M[AR]

Шаг 4: Decode(IR)

Получить SRC1

Шаг 5: AR <- DR; PC++

Шаг 6: DR <- M[AR]; AR <- PC

Получить SRC2 (SRC1 к AC)

Шаг 7: AC <- DR; DR <- M[AR]; PC++

Шаг 8: AR <- DR

Шаг 9: DR <- M[AR]; AR <- PC

Добавить и получить DEST

Шаг 10: AC <- AC + DR; DR <- M[AR]

Put ответ в DEST (Отдельные из них, если мы хотим, чтобы продолжать идти к следующей инструкции)

Шаг 11: AR <- DR; DR <- ACPC++

Шаг 12: M[AR] <- DRAR <- PC

[UPDATE2: Как представляется, существует случайное требование, чтобы принять 15 циклов; вот 15-минутное решение ...Обратите внимание, что 12 цикл является идеальным, и вы должны обсудить это с вашим TA/профессор]

Получить Op Код

Шаг 1: AR <- PC

Шаг 2: DR <- M[AR]; PC++; AR++

Шаг 3: IR <- DR

Шаг 4: DR <- M[AR]

Шаг 5: Decode(IR)

Получить SRC1

Шаг 6: AR <- DR; PC++

Шаг 7: DR <- M[AR]

Шаг 8: AR <- PC

Получить SRC2 (SRC1 к AC)

Шаг 9: AC <- DR

Шаг 10: DR <- M[AR]; PC++

Шаг 11: AR <- DR

Шаг 12: DR <- M[AR]; AR <- PC

Добавить и получить DEST

Шаг 13: AC <- AC + DR; DR <- M[AR]

Put ответ в DEST (обособленных если мы хотим перейти к следующей инструкции)

Шаг 14: AR <- DR; DR <- ACPC++

Шаг 15: M[AR] <- DRAR <- PC

+0

я вычислить 14, ближе всего к правильному ответу (15), ПК -> ар Pc (src1) -> ар мем (src1) -> др др -> ар мем -> др др -> ас MEM (src2) -> др др -> ар мем -> др др + ас -> ас Dest -> др др -> ар ас -> др др -> мем –

+0

вы заботитесь о снижении циклы или количество передач регистров? В моем решении, указанном в ответе, для завершения операции требуется 11 циклов (многие из этих шагов имеют более одной передачи за цикл). Если вы хотите уменьшить количество переводов, может быть лучшее решение – Unn

+0

Уважаемый @Unn, выбранный выбор этого вопроса - (15), (10) или (20), что 15 выбирается TA. не могли бы вы снова проверить мой вопрос? –

 Смежные вопросы

  • Нет связанных вопросов^_^