Параллелизм на уровне команд

Параллелизм на уровне команд
  • Page 1 of 1
  • 1
Archive - read only
Параллелизм на уровне команд
  • WеniZAY
    WеniZAY
    1
    Параллелизм на уровне команд (ILP) — является мерой того, какое множество операций в компьютерной программе могут выполняться одновременно. Потенциальное совмещение выполнения команд называется параллелизмом на уровне команд.

    Есть два подхода к параллелизму на уровне команд:

    аппаратные средства
    программное обеспечение
    Уровень аппаратного обеспечения работает на динамическом параллелизме, тогда как, уровень программного обеспечения работает на статическом параллелизме. Современные высокопроизводительные процессоры x86 (Intel Pentium 4, Intel Core) работают на динамической последовательности параллельного выполнения (Внеочередное исполнение команд). Статический параллелизм применялся в процессорах Itanium (однако в Itanium 2 применяется гибридный подход).

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

    e = a + b
    f = c + d
    m = e * f
    Операция 3 зависит от результатов 1 и 2, поэтому она не может быть рассчитана, пока обе из них не будут завершены. Однако операции 1 и 2 не зависят от любой другой операции, так что они могут быть вычислены одновременно. Если предположить, что каждая операция может быть завершена в одну единицу времени, то эти три инструкции могут быть завершены в общей сложности за две единицы времени, давая ILP 3/2.

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

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

    Микроархитектурные методы для обеспечения ILP:

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

    В последние годы методы ILP использовались для повышения производительности, несмотря на растущее несоответствие между рабочими частотами процессора и времени доступа к памяти (ранние конструкции ILP, такие как IBM System/360 Model 91 использовали методы ILP чтобы преодолеть ограничения, налагаемые относительно небольшого файл регистров). В настоящее время его потери кэша в основную память стоят несколько сотен циклов процессора. Хотя в принципе можно использовать ILP допуская даже такие задержки памяти связывающие ресурсы и расходы рассеиваемой мощности непропорционально. Кроме того, сложность и часто латентность базового оборудования структур приводит к снижению рабочей частоты и дальнейшего сокращения каких либо преимуществ. Таким образом, вышеупомянутые методы оказываются недостаточными, чтобы держать процессор от остановки данных вне кристалла. Вместо этого, отрасль движется в сторону использования более высоких уровней параллелизма, которые могут быть использованы с помощью таких методов, как многопроцессорность и многопоточность.
    • Page 1 of 1
    • 1
    Search:
    Параллелизм на уровне команд
    2024 Hosted by uCoz
    Запрещено использование материалов сайта без прямой ссылки на источник. Все права защищены.