Присвоение шестнадцатеричного числа IR-ветвям в процессоре - PullRequest
0 голосов
/ 08 февраля 2012

image

Может ли кто-нибудь помочь мне понять, как я могу назначить каждой из 5 ветвей IR шестнадцатеричное число?

R[2] ← Mem2[R[1] + 0x5] << 0x02;

R[3] ← R[2]+ Mem2[0x0A] + 0x01; 

С помощью этих двух инструкций мы сможем назначить шестнадцатеричное число для каждой из пяти ветвей с именем IR <...>. Я понимаю, что первая ветвь сверху является единственной, непосредственно связанной с реестром, а две нижние ветви будут иметь постоянные значения, поскольку они не связаны с реестром. Но вы, ребята, можете мне помочь или объяснить, как работает этот синтаксис?

1 Ответ

0 голосов
/ 10 февраля 2012

Блок с именем «IR» на вашем снимке зарегистрирован с шириной входа 32 бита (порт D).Таким образом, его выход (порты Q и ~ Q) тоже 32-битный.

Обозначение IR<N1..N2> означает 32-битную часть;например, IR<12..0> - для битов с номерами 0,1,2,3,4,5,6,7,8,9,10,11,12;и IR<23..21> означает «принимать только биты 21,22,23,24».

Итак, если IR в какой-то момент времени является двоичным: 00010010 00110100 01010110 01111000 (с битами, пронумерованными от конца до начала; 0x12345678в шестнадцатеричном виде);его части:

  • IR<31..24> 8-битное значение ширины 0x12 = 00010010 - оно перейдет в схему управления.
  • IR<23..21> 3-битное значение ширины 0x1 = 001 -он перейдет к блоку "mux B", порт 0 и к правой части файла регистра (это dst = номер регистра назначения)
  • IR<20..18> 3-битное значение 0x5 = 101 - он перейдет кблок "mux B", порт 1 (src1 или src2)
  • IR<17..15> 3-битное значение ширины 0x0 = 000 - он перейдет к блоку "mux B", порт 2 (src1 или src2)
  • IR<14..13> 2-битное значение 0x2 = 10 - для блока "C"
  • IR<12..0> 13-битное значение 0x1678 = 10110 01111000 - для блока "D" (это IMM =немедленное значение)
  • IR<23..0> является копией младшего 24-битного = 0x345678 - для блокировки "mux A" (в случае команды JMP)

Для решения вашей задачи мыдолжен знать, как команды закодированы в IR и каков набор команд этого CPU.Это выглядит как очень упрощенный MIPS или RISC или может быть SPARC.

...