ScholarGate
Ассистент

Параллелизм на уровне инструкций

Параллелизм на уровне инструкций (ILP) — это потенциал для одновременного выполнения нескольких инструкций из одной программы, используемый суперскалярными процессорами и процессорами со сверхдлинным командным словом (VLIW), которые выдают и завершают несколько инструкций за такт.

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

Definition

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

Scope

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

Core questions

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

Key concepts

  • суперскалярная выдача
  • сверхдлинное командное слово (VLIW)
  • зависимости по данным и именам
  • переименование регистров
  • множественные функциональные блоки
  • спекулятивное выполнение
  • пределы ILP
  • инструкций за такт (IPC)

Key theories

Динамическое планирование инструкций
Аппаратное обеспечение может обнаруживать и использовать ILP во время выполнения, отслеживая зависимости и планируя готовые инструкции на несколько функциональных блоков; алгоритм Томасуло, с резервационными станциями и переименованием регистров, является каноническим механизмом, обеспечивающим внеочередную, параллельную выдачу.

Mechanisms

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

Clinical relevance

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

History

Множественные функциональные блоки и динамическое планирование появились в CDC 6600 и IBM System/360 Model 91 в 1960-х годах. Суперскалярные конструкции стали мейнстримом в 1990-х годах, а архитектуры VLIW, такие как Intel Itanium, стремились к параллелизму, управляемому компилятором. Исследования пределов ILP в начале 1990-х годов прояснили, почему параллелизм в одном потоке ограничен.

Debates

Аппаратный против компиляторно-управляемого ILP
Суперскалярное внеочередное аппаратное обеспечение динамически находит параллелизм ценой сложности и энергопотребления, тогда как VLIW полагается на компилятор для статического планирования параллелизма; опыт показал, что динамические подходы более надежны для различных рабочих нагрузок, в то время как статические подходы остаются привлекательными для предсказуемых, маломощных конструкций.

Key figures

  • Robert Tomasulo
  • Yale Patt
  • John L. Hennessy
  • Joseph A. Fisher
  • James E. Smith

Related topics

Seminal works

  • hennessy2019
  • tomasulo1967

Frequently asked questions

В чем разница между суперскалярным и VLIW?
Оба выполняют несколько операций за такт. Суперскалярный процессор решает на аппаратном уровне, во время выполнения, какие инструкции могут быть выданы вместе; процессор VLIW полагается на компилятор, который заранее группирует независимые операции в широкие инструкции, что упрощает аппаратное обеспечение, но требует большего от компилятора.
Почему существует предел параллелизма на уровне инструкций?
Реальные программы имеют истинные зависимости по данным и частые ветвления, которые ограничивают количество инструкций, которые могут выполняться параллельно. За пределами определенного окна достижимый параллелизм насыщается, поэтому извлечение большего ILP дает убывающую отдачу относительно добавленной сложности аппаратного обеспечения и энергопотребления.

Methods for this concept

Related concepts