влияние различных сценариев на путь данных одного цикла (команда beq) - PullRequest
0 голосов
/ 28 августа 2018

Я застрял и не уверен в следующей ситуации.

У меня есть следующий цикл данных:

given datacycle

и я знаю, что в 0x3000 у меня есть следующая команда: beq $t1,$t2,home - где home - 0x30AC, $ t1 = $ t2 = 0x2000.

Почему-то я не могу перевести его в гекса с помощью онлайн-конвертеров. Команда, которую я попробовал: beq 0x2000, 0x2000, 0x30AC. Поскольку синтаксис команды beq, насколько я знаю, таков: BEQ rs, rt, offset [I-type], то я не понимаю, почему она не работает.

В любом случае, моя главная проблема в следующих случаях:

  1. Если линия управления ALUSrc закреплена на 1, что будет делать команда?
  2. Если MemWrite зависает на 1, что будет делать команда?
  3. Если ALUOp застрянет на значении 10 (двоичное), что будет делать команда?

Что я думаю:

  1. Если alusrc равен единице, то младшие 16 бит будут взяты (с расширением знака) из команды и добавлены в $ rs (0x2000).
  2. Если Memwrite равен единице, то память данных будет записана неожиданно.
  3. Я действительно не знаю, что произойдет, если ALUop застрянет на 10. Буду очень признателен за объяснения этой ситуации.

Я старался как можно больше уточнить, чтобы сделать его понятным, а также изложить свои попытки и идеи (если они верны, надеюсь, что некоторые из них лол).

...