Одна вещь, которую вы должны рассмотреть, - разрешить ли любую форму инструкции из нескольких слов или что-нибудь, что может «действовать» как инструкция из нескольких слов; если вы это сделаете, вы можете подумать, следует ли использовать дополнительные слова инструкции после основной инструкции или префиксные слова перед ней. Разрешение префиксов и последующих слов может увеличить сложность обработки прерываний, но это может избежать необходимости размещать редко используемые инструкции в том же пространстве кода операции, что и обычно используемые.
Если инструкции извлекаются в цикле до их выполнения, можно получить инструкцию «условного перехода», которая либо заставит пропустить следующее слово инструкции, либо его содержимое будет перенесено непосредственно в счетчик программ; такой дизайн может добавить некоторую дополнительную сложность к последовательности прерываний, но это может облегчить необходимость использования большой части пространства кода операции для команд "ветвление", "переход" и "вызов", в то же время позволяя гораздо более широкий диапазон условий ветвления чем было бы возможно в противном случае. Поскольку ветвь, которая берется, обычно требует мертвого цикла после выполнения самой инструкции, независимо от того, откуда исходит адрес, получение адреса из следующего слова, которое было выбрано, но не будет выполнено, не требует дополнительных затрат. время.
Несмотря на то, что перемещение целевого адреса из инструкций ветвления сократит объем занимаемого ими кода операции, 16-разрядный формат кода операции все еще довольно узок. Использование префиксных инструкций может помочь в этом. Если, например, нужно иметь 32 регистра, для того чтобы любой регистр мог быть независимо указан как source1, source2 и destination, потребуется 15 битов в коде операции, что дает колоссальную сумму двух команд. Не очень полезно. С другой стороны, было бы неплохо использовать любой из 32 регистров для каждого из трех операндов. Можно сбалансировать две цели, если любая операция ALU, которой не предшествует префикс, использует восемь битов, чтобы сделать два выбора из одного из шестнадцати регистров, но имеет операцию ALU, которая следует сразу за префиксом, используя некоторые биты в префиксе вдоль с восьмым из следующей инструкции, чтобы позволить независимый выбор обоих источников и адресатов из полного набора из 32. Инструкции, которые используют верхние регистры, будут занимать два слова / цикла, а не одно, но в некоторых случаях такой компромисс может быть целесообразным. Самая большая трудность с использованием префиксов заключается в том, что необходимо либо предотвратить возникновение прерывания между префиксом и следующей инструкцией, либо обеспечить, чтобы в случае возникновения прерывания команда после префикса все еще использовала правильные регистры [например, имея программу -counter save logic хранит адрес последней выполненной не префиксной инструкции]. но в некоторых случаях такой компромисс может быть оправдан. Самая большая трудность с использованием префиксов заключается в том, что необходимо либо предотвратить возникновение прерывания между префиксом и следующей инструкцией, либо обеспечить, чтобы в случае возникновения прерывания команда после префикса все еще использовала правильные регистры [например, имея программу -counter save logic хранит адрес последней выполненной не префиксной инструкции]. но в некоторых случаях такой компромисс может быть оправдан. Самая большая трудность с использованием префиксов заключается в том, что необходимо либо предотвратить возникновение прерывания между префиксом и следующей инструкцией, либо обеспечить, чтобы в случае возникновения прерывания команда после префикса все еще использовала правильные регистры [например, имея программу -counter save logic хранит адрес последней выполненной не префиксной инструкции].
Использование многословных инструкций усложнит некоторые аспекты дизайна, но может снизить необходимость принятия других сложных решений.