Явно параллельное вычисление инструкций

редактировать
Архитектура набора команд

Явно параллельное вычисление команд (EPIC ) - это термин, введенный в 1997 г. альянсом HP-Intel для описания вычислительной парадигмы, которые исследователи исследовали с начала 1980-х годов. Эта парадигма также называется архитектурой независимости. Это было основой для разработки Intel и HP архитектуры Intel Itanium, и HP позже утверждал, что «EPIC» был просто старый термин для архитектуры Itanium. EPIC позволяет микропроцессорам выполнять программные инструкции параллельно с использованием компилятора, а не сложной схемы на кристалле для управления параллельным выполнением инструкций. Это было сделано для обеспечения простого масштабирования производительности без использования более высоких тактовых частот.

Содержание
  • 1 Корни в VLIW
  • 2 Выход за рамки VLIW
  • 3 Другие исследования и разработки
  • 4 См. Также
  • 5 Ссылки
  • 6 Внешние ссылки
Корни в VLIW

К 1989 году исследователи HP поняли, что архитектуры компьютеров с сокращенным набором команд (RISC) достигли предела в один инструкций на цикл. Они начали исследование новой архитектуры, позже названной EPIC . Основой для исследования послужил VLIW, в котором несколько операций кодируются в каждой инструкции, а затем обрабатываются несколькими исполнительными модулями.

Одной из целей EPIC было перенести сложность планирования команд с аппаратного обеспечения ЦП на программный компилятор, который может выполнять планирование команд статически (с помощью информации обратной связи трассировки). Это устраняет необходимость в сложной схеме планирования в ЦП, что освобождает пространство и мощность для других функций, включая дополнительные ресурсы выполнения. Не менее важной целью было дальнейшее использование параллелизма на уровне инструкций (ILP) путем использования компилятора для поиска и использования дополнительных возможностей параллельного выполнения.

VLIW (по крайней мере, исходные формы) имеет несколько коротких -команды, которые помешали ему стать мейнстримом:

  • VLIW наборы инструкций не обратно совместимы между реализациями. Когда создаются более широкие реализации (больше исполнительных блоков ), набор команд для более широких машин не имеет обратной совместимости со старыми, более узкими реализациями.
  • Загрузка ответов из иерархии памяти, которая включает Кеши ЦП и DRAM не имеют детерминированной задержки. Это очень затрудняет статическое планирование инструкций загрузки компилятором.

Архитектура EPIC произошла от архитектуры VLIW, но сохранила многие концепции суперскалярной архитектуры.

Выход за рамки VLIW

Архитектура EPIC добавляет несколько функций, чтобы обойти недостатки VLIW:

  • Каждая группа из нескольких программных инструкций называется пакетом. Каждый из пакетов имеет стоповый бит , указывающий, зависит ли от этого набора операций последующий пакет. Благодаря этой возможности будущие реализации могут быть созданы для параллельного выпуска нескольких пакетов. Информация о зависимостях вычисляется компилятором, поэтому аппаратное обеспечение не должно выполнять проверку зависимостей операндов.
  • Команда предварительной выборки программного обеспечения используется как тип предварительной выборки данных. Эта предварительная выборка увеличивает вероятность попадания в кэш для загрузок и может указывать степень временной локальности, необходимую на различных уровнях кеша.
  • Команда спекулятивной загрузки используется для спекулятивной загрузки данных до того, как станет известно, будет использоваться (в обход управляющих зависимостей), или будет ли он изменен перед использованием (в обход зависимостей данных).
  • Команда проверки загрузки помогает спекулятивным загрузкам, проверяя, зависела ли спекулятивная загрузка от более позднего хранилища, и поэтому его необходимо перезагрузить.

Архитектура EPIC также включает в себя набор архитектурных концепций для увеличения ILP :

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

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

Другие исследования и разработки

Были проведены и другие исследования архитектур EPIC, которые напрямую не связаны с развитием архитектуры Itanium:

  • Проект в Университете Иллинойса в Урбана-Шампейн, возглавляемая Вэнь-мэй Хву, была источником очень влиятельных исследований по этой теме.
  • Архитектура от HP-labs была еще одним крупным исследовательским проектом.
  • Gelato было сообществом разработчиков с открытым исходным кодом, в котором академические и коммерческие исследователи работали над разработкой более эффективных компиляторов для приложений Linux, работающих на серверах Itanium.
См. Также
Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-19 09:58:09
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте