ScholarGate
Ассистент

Конвейеризация и опасности

Конвейеризация обеспечивает перекрытие выполнения последовательных инструкций путем разделения обработки инструкций на стадии, что увеличивает пропускную способность; опасности — это ситуации (конфликты ресурсов, зависимости данных и ветвления), которые препятствуют выполнению следующей инструкции в следующем цикле.

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

Definition

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

Scope

Эта тема охватывает классический конвейер инструкций и три класса опасностей, которые его ограничивают: структурные опасности (конфликты ресурсов), опасности данных (зависимости между инструкциями) и опасности управления (ветвления). Она включает стандартные методы устранения — пересылку/обход, задержку и обработку ветвлений. Она исключает углубленное рассмотрение расширенного параллельного выполнения (параллелизм на уровне инструкций), предсказания направления ветвлений (предсказание ветвлений) и динамического переупорядочивания (внеочередное выполнение).

Core questions

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

Key concepts

  • стадии конвейера (выборка, декодирование, выполнение, память, обратная запись)
  • пропускная способность против задержки
  • структурные опасности
  • опасности данных
  • опасности управления
  • пересылка и обход
  • задержки и «пузырьки» конвейера
  • штраф за ветвление

Key theories

Пропускная способность конвейера и опасности
k-стадийный конвейер в идеале завершает одну инструкцию за такт после заполнения, но структурные опасности, опасности данных и опасности управления вызывают задержки, которые снижают пропускную способность ниже идеальной; проектирование конвейера сосредоточено на минимизации этих задержек.

Mechanisms

Обработка инструкций разделяется на стадии, так что пока одна инструкция выполняется, другие извлекаются и декодируются. Структурная опасность возникает, когда две инструкции нуждаются в одном и том же ресурсе; опасность данных — когда инструкция нуждается в результате, который еще не был произведен; опасность управления — когда следующая инструкция зависит от неразрешенного ветвления. Пересылка направляет результаты непосредственно между стадиями, задержки вставляют «пузырьки», когда пересылки недостаточно, а обработка ветвлений уменьшает штрафы, связанные с опасностями управления.

Clinical relevance

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

History

Конвейеризация появилась в ранних высокопроизводительных машинах, таких как IBM Stretch и CDC 6600, в начале 1960-х годов. Простой пятиступенчатый конвейер стал канонической учебной и проектной моделью с появлением RISC-процессоров в 1980-х годах, а систематическая классификация опасностей и методов их устранения была кодифицирована в текстах Хеннесси-Паттерсона.

Key figures

  • John L. Hennessy
  • David A. Patterson
  • Seymour Cray

Related topics

Seminal works

  • hennessy2019
  • patterson2020

Frequently asked questions

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

Methods for this concept

Related concepts