Что такое машинная инструкция?

Программа пользователя в оперативной памяти состоит из машинных инструкций и данных. Напротив, управляющая память содержит фиксированную микропрограмму, которую случайный пользователь не может изменить. Микропрограмма состоит из микрокоманд, задающих различные внутренние управляющие сигналы для выполнения микроопераций регистра. Каждая машинная инструкция инициирует серию микроинструкций в памяти управления. Эти микроинструкции генерируют микрооперации для получения инструкции для основной памяти; оценить эффективный адрес, выполнить операцию, указанную в инструкции, и вернуть управление фазой выборки, чтобы повторить цикл для следующей инструкции

Я не совсем понимаю здесь разницу между машинной инструкцией, микроинструкцией и микропирами. я конечно понимаю, что микроинструкции по приведенному абзацу - это промежуточный уровень инструкций, но какая из двух других более близка к машинному языку. Являются ли CLA, ADD, STA, BUN, BSA и т. д. машинными инструкциями или микрооперациями?

2 ответа

Центральный процессор представляет себя снаружи как устройство, способное выполнять машинные инструкции . Например,

      mov (%esi,%ebx,4), %edx

машинная инструкция , которая перемещает 4 байта данных по адресу ESI+4*EBX в регистр EDX. Машинные инструкции общедоступны — они публикуются производителем процессора в руководстве пользователя. Компиляторы, такие как gcc, будут выводить файлы, содержащие машинные инструкции, и обычно они заканчиваются файлами EXE/DLL.

Если вы внимательно посмотрите на приведенную выше инструкцию, то увидите, что это довольно сложная операция. Он включает в себя некоторые арифметические действия (умножение и сложение) для получения адреса памяти, а затем перемещение данных с этого адреса в регистр. С точки зрения ЦП также имеет смысл использовать уже существующую арифметическую единицу. Поэтому имеет смысл разбить эту инструкцию на микроинструкции . По сути, movинструкция реализуется внутри ЦП как микропрограмма, записанная в микроинструкциях. Это, однако, деталь реализации ЦП. Микроинструкции являются внутренними для ЦП и невидимы для всех, кроме производителя ЦП.

Микроинструкции имеют ряд преимуществ:

  • они упрощают внутреннюю архитектуру ЦП, дизайн и тестирование, тем самым снижая стоимость на единицу
  • они позволяют легко создавать богатые и мощные наборы машинных инструкций (вам просто нужно комбинировать микроинструкции по-разному)
  • они обеспечивают согласованный машинный язык для разных процессоров (например, Xeon и Pentium оба реализуют базовый набор инструкций x86_64, хотя они сильно различаются по аппаратному обеспечению)
  • создавать оптимизации (т.е. одна и та же инструкция на одном процессоре может быть реализована аппаратно, другая может эмулироваться в микроинструкциях)
  • исправить ошибки (например, вы можете исправить уязвимость Spectre во время работы машины, не покупая новый процессор и не открывая сервер)

Для получения дополнительной информации см. https://en.wikipedia.org/wiki/Micro-operation .

Думаю, ответ на ваш вопрос содержится в этих трех предложениях:

  • Программа пользователя в оперативной памяти состоит из машинных инструкций и данных.
  • Каждая машинная инструкция инициирует серию микрокоманд в памяти управления.
  • Эти микроинструкции генерируют микрооперации.

Так:

  • Пользователь вводит машинные инструкции
  • Они переводятся в микроинструкции
  • Они переводятся в микрооперации

Упомянутая вами мнемоника - это то, что пользователь может использовать для записи или чтения списка машинных инструкций (фактические инструкции - это просто шаблоны битов, понятные процессору). «Случайный пользователь» (т. е. всем, кроме разработчика микросхемы) никогда не приходится иметь дело непосредственно с микроинструкциями или микрооперациями, поэтому он никогда не узнает их индивидуальных имен.

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