ScholarGate
Ассистент

Форматы и кодирование инструкций

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

Найти тему в PaperMindСкороFind papers & topics
Tools & resources
Скачать слайды
Learn & explore
ВидеоСкоро

Definition

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

Scope

Эта тема охватывает двоичное представление инструкций: кодировки фиксированной и переменной длины, поля, определяющие операцию, регистры-источники и регистры-приемники, а также непосредственные значения, а также компромисс между плотностью кода и простотой декодирования. Она включает репрезентативные семейства форматов, такие как типы R/I/S/B/U/J в RISC-V. Исключаются выбор режимов адресации операндов (режимы адресации) и более широкая философия RISC/CISC (RISC и CISC).

Core questions

  • Какие поля должна содержать кодировка инструкции для определения операции и ее операндов?
  • Как кодировки фиксированной и переменной длины соотносят простоту декодирования с плотностью кода?
  • Как кодируются непосредственные значения и большие константы в рамках ограниченного числа битов инструкции?
  • Как регулярное кодирование упрощает конвейерное декодирование инструкций?

Key concepts

  • поле кода операции
  • поля спецификаторов регистров
  • непосредственные поля
  • кодирование фиксированной длины против кодирования переменной длины
  • плотность кода
  • регулярность декодирования
  • семейства форматов инструкций (R/I/S/B/U/J)

Mechanisms

Каждая инструкция делится на битовые поля: код операции выбирает операцию, поля регистров именуют операнды, а непосредственные поля содержат константы или смещения адресов. Форматы фиксированной длины (как в RISC-V) имеют одинаковую ширину всех инструкций и последовательно располагают поля, что делает декодирование простым и быстрым; форматы переменной длины (как в x86) плотно упаковывают инструкции для достижения высокой плотности за счет более сложного декодирования.

Clinical relevance

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

History

Ранние наборы инструкций использовали нерегулярные, вручную настроенные кодировки для экономии дефицитной памяти. Движение RISC 1980-х годов отдавало предпочтение унифицированным форматам фиксированной длины для оптимизации декодирования и конвейеризации, в то время как наборы CISC, такие как x86, сохраняли плотные кодировки переменной длины. Современные открытые архитектуры наборов инструкций (ISA), такие как RISC-V, кодифицируют чистые, расширяемые семейства форматов.

Key figures

  • David A. Patterson
  • John L. Hennessy

Related topics

Seminal works

  • patterson2020
  • hennessy2019

Frequently asked questions

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

Methods for this concept

Related concepts