почему RISCV SB-тип и UJ-тип инструкции закодированы таким образом? - PullRequest
3 голосов
/ 16 октября 2019

Я читаю книгу "Компьютерная организация и дизайн RISC-V Edition", и я натолкнулся на зашифрованные инструкции SB-типа и UJ-типа.

Эти инструкции, которые я упомянул выше, имеют странную закодированную немедленнуюfield.

Тип SB разделяет непосредственное поле двумя частями.

Это имеет смысл, поскольку кодирование всех инструкций должно быть одинаковым.

Но я не могу понять, почему непосредственное полекодируется следующим образом.

imm[12, 10:5], imm[4:1, 11]

instead of

imm[11:5], imm[4:0]

У типа UJ также есть это странное закодированное непосредственное поле

imm[20,10:1,11,19:12]

instead of

imm[19:0]

Может кто-нибудь объяснить это?

1 Ответ

3 голосов
/ 16 октября 2019

Выбранные кодировки прекрасно сочетаются с другими кодировками, упрощая аппаратное обеспечение за счет программного обеспечения, которое должно генерировать инструкции, программного обеспечения, которое должно декодировать инструкции, и программистов, обучающихся или работающих с RISC V;).

S-формат разбивает немедленное на imm [11: 5] и imm [4: 0]. Причина, по которой этот непосредственный элемент разбит, состоит в том, чтобы держать другие поля, а именно поля регистров rs2 и rs1, в том же положении, что и в двух полях исходного регистра в инструкциях R-типа. (По сравнению с MIPS, который работал аналогично, но не так полностью, это устраняет ширину имени регистра (например, ширину 5 бит), мультиплексирование и несколько дополнительных разводок, а также сигнал управления.)

S-формат позволяетдля 12-битного непосредственного значения.

Принимая во внимание, что (S) B-тип для ветвей использует 13-битное непосредственное значение, хотя последний (наименее значимый бит) 13-битного непосредственного значения всегда равен нулю , поэтомуне сохраняется ! Таким образом, он должен фактически кодировать 12 бит точно так же, как в S-формате, но, поскольку они смещены при фактическом использовании (влево на единицу, например, * 2), все биты по существу отключены на 1 битную позицию по сравнению с S-форматом. Формат немедленный. (Сдвиг не является трудным или медленным, но стоит затрат на кремний. Как правило, такой сдвиг на постоянную величину можно сделать, просто подключив входные биты для смещения позиций выходных битов, а не используя специальный сдвиг, который мы увидим в ALU;тем не менее, это все же проводка непосредственного размера и размера канала передачи данных, поэтому ~ 12–32 + дополнительных проводов.)

Чтобы не пришлось смещать (как можно больше) часть непосредственного , то есть сохранено, и для точного соответствия с непосредственным значением в S-формате не сохраненная позиция LSB (из S-формата) используется для сохранения бита 11 немедленного SB-формата. Таким образом, биты 10: 1 выстраиваются в линию точно с непосредственным форматом S.

Но почему бы вместо этого не поставить бит 12 непосредственно в ветвь, что сохранит еще один бит в выравнивании (т.е. 11: 1) с S-форматом? Поскольку старший бит, закодированный в непосредственной части инструкции, используется для подписи, расширяйте непосредственную до 32 бит (для RV32 или 64 бит для RV64, 128 для RV128, много проводов!). Таким образом, сохраняя бит знака в том же месте, что и в 12-битном S-формате, можно совместно использовать одно и то же оборудование расширения знака (с теми же преимуществами и недостатками, которые описаны выше ;-). Следовательно, выбор сохранения бита 11, следующего наиболее значимого бита непосредственного типа SB, в позиции 0 битов (относительно формата S).

Стоимость для SB (уже заданного S) равнатолько два или около того (1-битных) провода и один 1-битный мультиплексор и 1-битный управляющий сигнал - минимальный по сравнению с альтернативами.

См. следующую презентацию , слайд 46, под названием«RISC-V Immediate Encoding» и с подзаголовком: «Почему это так смущает?!?!»

Тип UJ работает аналогично, сохраняя бит знака в той же битовой позиции, что и бит знака другогоинструкции, при этом выравнивая как можно больше других битов с другими форматами.

См. слайд 60 той же презентации.

...