Кодировка набора инструкций

Я пытаюсь решить это упражнение:

Вы закодируете набор инструкций для процессора с 32 регистрами (R0-R31). Арифметико-логические инструкции имеют вид:

Ri<-Rj op Rk

и для их кодирования доступно 22 бита.

Инструкции по чтению и письму в форме:

Ri<-memory[Rj+offset] (i,j = 0...31)
Ri->memory[Rj+offset] (i,j = 0...31)

и для их кодирования доступно 30 битов.

i) Сколько арифметико-логических инструкций вы можете закодировать? ii) Рассчитайте максимальную длину смещения в битах.

Я пытался найти решения, искал несколько часов, но ничего не нашел. Любая помощь будет потрясающей!

1 ответ

Если у вас есть 32 регистра в вашем ISA, то вы знаете, сколько места занимает каждый спецификатор регистра (5 бит каждый). Оставшиеся оставшиеся биты могут быть использованы для указания конкретного типа команды ("код операции") и немедленной ("смещение", в случае команд ld/st).

Для команды регистр / регистр требуется 3 спецификатора, то есть 15 бит. Остальные биты могут быть использованы для указания типа инструкции.

Другие вопросы по тегам