Назначение шестнадцатеричного номера ветвям IR в процессоре

изображение

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

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

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

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


person Jérémy Chiniara    schedule 08.02.2012    source источник


Ответы (1)


Блок с именем «IR» на вашем рисунке является регистром с шириной входа (порт D) 32 бита. Таким образом, его вывод (порты 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 — для блокировки «мультиплексора A» (в случае команды JMP)

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

person osgx    schedule 10.02.2012