Jump to content

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

Компьютер Атанасова-Берри , первый компьютер с параллельной обработкой. [1]

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

Обсуждение [ править ]

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

Существует два подхода к параллелизму на уровне команд: аппаратный и программный .

Аппаратный уровень работает на динамическом параллелизме, тогда как программный уровень работает на статическом параллелизме. Динамический параллелизм означает, что процессор во время выполнения решает, какие инструкции выполнять параллельно, тогда как статический параллелизм означает, что компилятор решает, какие инструкции выполнять параллельно. [3] [ нужны разъяснения ] Процессор Pentium работает с динамической последовательностью параллельного выполнения, а процессор Itanium работает с параллелизмом статического уровня.

Рассмотрим следующую программу:

e = a + b
f = c + d
m = e * f

Операция 3 зависит от результатов операций 1 и 2, поэтому ее нельзя вычислить, пока не будут выполнены обе. Однако операции 1 и 2 не зависят ни от какой другой операции, поэтому их можно вычислять одновременно. Если предположить, что каждая операция может быть выполнена за одну единицу времени, то эти три инструкции могут быть выполнены в общей сложности за две единицы времени, что дает ILP 3/2.

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

Степень присутствия ILP в программах зависит от конкретного приложения. В некоторых областях, таких как графика и научные вычисления, сумма может быть очень большой. Однако такие рабочие нагрузки, как криптография, могут демонстрировать гораздо меньший параллелизм.

Микроархитектурные методы, используемые для использования ILP, включают:

  • Конвейерная обработка инструкций , при которой выполнение нескольких инструкций может частично перекрываться.
  • Суперскалярное выполнение, VLIW и тесно связанные с ним концепции явно параллельных вычислений команд , в которых несколько исполнительных блоков используются для параллельного выполнения нескольких инструкций.
  • Выполнение вне порядка , при котором инструкции выполняются в любом порядке, не нарушающем зависимости данных. Обратите внимание, что этот метод не зависит ни от конвейерной обработки, ни от суперскалярного выполнения. Текущие реализации внеочередного выполнения динамически (т. е. во время выполнения программы и без помощи компилятора) извлекают ILP из обычных программ. Альтернатива — извлечь этот параллелизм во время компиляции и каким-то образом передать эту информацию оборудованию. Из-за сложности масштабирования техники выполнения вне порядка в отрасли были пересмотрены наборы команд , которые явно кодируют несколько независимых операций для каждой инструкции.
  • Переименование регистров , которое относится к методу, используемому для предотвращения ненужной сериализации программных операций, вызванной повторным использованием регистров этими операциями, используемого для обеспечения выполнения внеочередного выполнения.
  • Спекулятивное выполнение , которое позволяет выполнять полные инструкции или части инструкций до того, как будет определено, должно ли это выполнение иметь место. Обычно используемой формой спекулятивного выполнения является спекуляция потока управления, при которой инструкции после инструкции потока управления (например, ветвления) выполняются до того, как будет определена цель инструкции потока управления. Было предложено и используется несколько других форм спекулятивного выполнения, включая спекулятивное выполнение, основанное на прогнозировании значений , прогнозировании зависимости памяти и прогнозировании задержки кэша .
  • Прогнозирование ветвей , которое используется во избежание остановок при разрешении зависимостей управления. Прогнозирование ветвей используется при спекулятивном исполнении.

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

Архитектуры потоков данных — это еще один класс архитектур, в которых ILP явно указан. Недавний пример см. в архитектуре TRIPS .

В последние годы методы ILP использовались для повышения производительности, несмотря на растущую разницу между рабочими частотами процессоров и временем доступа к памяти (ранние разработки ILP, такие как IBM System/360 Model 91, использовали методы ILP для преодоления ограничений, налагаемых относительно небольшой регистровый файл). В настоящее время штраф за промах в кэше основной памяти стоит несколько сотен циклов ЦП. Хотя в принципе можно использовать ILP, чтобы справиться даже с такими задержками памяти, связанные с этим затраты на ресурсы и рассеиваемую мощность непропорциональны. Более того, сложность и зачастую задержка базовых аппаратных структур приводит к снижению рабочей частоты, что еще больше снижает любые преимущества. Следовательно, вышеупомянутые методы оказываются недостаточными для предотвращения зависания ЦП из-за внешних данных. Вместо этого отрасль движется к использованию более высоких уровней параллелизма, которые можно реализовать с помощью таких методов, как многопроцессорная обработка и многопоточность . [4]

См. также [ править ]

Ссылки [ править ]

  1. ^ «История вычислительной техники» . mason.gmu.edu . Проверено 24 марта 2019 г.
  2. ^ Гуссенс, Бернард; Ланглуа, Филипп; Парелло, Дэвид; Пети, Эрик (2012). «PerPI: инструмент для измерения параллелизма на уровне инструкций» . Прикладные параллельные и научные вычисления . Конспекты лекций по информатике. Том. 7133. стр. 270–281. дои : 10.1007/978-3-642-28151-8_27 . ISBN  978-3-642-28150-1 . S2CID   26665479 .
  3. ^ Хеннесси, Джон Л.; Паттерсон, Дэвид А. (1996). Компьютерная архитектура: количественный подход .
  4. ^ Размышления о стене памяти

Дальнейшее чтение [ править ]

  • Эйкен, Алекс; Банерджи, Утпал; Кеджаривал, Арун; Николау, Александру (30 ноября 2016 г.). Параллелизм на уровне инструкций . Профессиональные вычисления (1-е изд.). Спрингер. ISBN  978-1-4899-7795-3 . ISBN   1-4899-7795-3 . (276 страниц)

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: e8520471eb347764334e0fd7bf1b1bf0__1693881900
URL1:https://arc.ask3.ru/arc/aa/e8/f0/e8520471eb347764334e0fd7bf1b1bf0.html
Заголовок, (Title) документа по адресу, URL1:
Instruction-level parallelism - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)