Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

Корни в VLIW [ править ]

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

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

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

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

Выходя за рамки VLIW [ править ]

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

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

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

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

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

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

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

  • Проект IMPACT в Университете Иллинойса в Урбана-Шампейн , возглавляемый Вен-мей Хву , стал источником значительных исследований по этой теме.
  • PlayDoh архитектуры от HP-лаборатории был еще один крупный исследовательский проект.
  • Gelato было сообществом разработчиков с открытым исходным кодом, в котором академические и коммерческие исследователи работали над созданием более эффективных компиляторов для приложений Linux, работающих на серверах Itanium.

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

  • Компьютер со сложной системой команд (CISC)
  • Компьютер с сокращенным набором команд (RISC)
  • Очень длинное командное слово (VLIW)
  • Компьютерная архитектура
  • Суперскаляр
  • Широкая проблема

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

  1. ^ Schlansker и Рау (февраль 2000). «EPIC: Архитектура для параллельных процессоров на уровне инструкций» (PDF) . Лаборатории HP Пало-Альто, HPL-1999-111 . Проверено 8 мая 2008 .
  2. ^ США 4847755 
  3. ^ a b «Изобретая Itanium: как лаборатории HP помогли создать архитектуру микросхем нового поколения» . Лаборатория HP . Июнь 2001 . Проверено 14 декабря 2007 .
  4. ^ De Gelas, Йохан (9 ноября 2005). «Итаниум - есть ли свет в конце туннеля?» . AnandTech . Проверено 8 мая 2008 .

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

  • Историческая справка о EPIC
  • Марк Смотерман (2002) « Понимание архитектур и реализаций EPIC »