Как узнать управляющие сигналы, когда цикл выборки отличается в разных инструкциях?

#cpu #cpu-architecture #processor #instructions #alu

#процессор #cpu-архитектура #процессор #Инструкции #alu

Вопрос:

Если первый цикл каждой инструкции не одинаков (т. Е. Не Все инструкции имеют одинаковый цикл выборки), то как процессор узнает, какими должны быть управляющие сигналы для первого цикла?

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

Комментарии:

1. О каком процессоре вы говорите? Классический RISC, такой как MIPS, где инструкции имеют фиксированную ширину? en.wikipedia.org/wiki/Classic_RISC_pipeline#Instruction_decode . Если нет, например, инструкции, которые могут быть 16 или 32-разрядными (например, RVC: en.wikipedia.org/wiki/RISC-V#Compressed_subset или ARM Thumb2), то либо для некоторых выборок требуется 2-й цикл, либо у вас есть буфер предварительной выборки, из которого вы декодируете, и это не так просто, как использовать биты слова инструкции непосредственно в качествевнутренние управляющие сигналы (так, как может / делает классический MIPS).

2. Я полагаю, что мой вопрос был «Какой должна быть архитектура процессора, чтобы позволить первому циклу некоторых инструкций иметь разные управляющие сигналы?». Итак, в этом случае ответ заключается в том, что это было бы невозможно в классическом процессоре MIPS / RISC, но использование выборок, имеющих более одного цикла / использование буфера предварительной выборки, может сделать это возможным?

3. Не столько «сделало бы это возможным», сколько сделало бы необходимым наложить тонкий слой декодирования между битами командного слова и внутренними управляющими сигналами. Этот уровень декодирования не должен занимать целый цикл, всего пару задержек задержки для мультиплексирования / поиска по таблице (несколько входных сигналов генерируют больший набор выходных сигналов, которые используются в качестве внутренних управляющих сигналов.) Если инструкции не имеют фиксированной ширины, разные длины, вероятно, имеют достаточно разные форматы, чтобы вам потребовалось некоторое реальное декодирование, прежде чем у вас будут правильные сигналы для выборки регистров и так далее.

4. Спасибо, это очень интересно! Извините, если вопрос был немного наивным, я сталкивался только с архитектурой MIPS. Похоже, мне нужно кое-что почитать.

5. Современные микропроцессоры 90-минутное руководство! тогда, вероятно, это хорошая отправная точка для вашего чтения. : P Может быть, также некоторые сведения о современных x86 ISA, такие как realworldtech.com/sandy-bridge , и менее современные, менее сложные вещи, такие как realworldtech.com/merom (Ядро 2), и, возможно, realworldtech.com/ev8-mckinley (Альфа против Itanium)