Явно параллельное вычисление инструкций - Explicitly parallel instruction computing

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

Корни в VLIW

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

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

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

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

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

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

ЭПИЧЕСКИЙ Архитектуры добавляют несколько функций, чтобы обойти недостатки VLIW:

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

В ЭПИЧЕСКИЙ архитектура также включает схватить сумку архитектурных решений для увеличения ILP:

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

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

Прочие исследования и разработки

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

  • В ВЛИЯНИЕ проект в Университет штата Иллинойс в Урбане-Шампейн во главе с Вэнь-мэй Хву, был источником очень влиятельных исследований по этой теме.
  • В PlayDoh Архитектура от HP-labs была еще одним крупным исследовательским проектом.
  • Джелато было сообществом разработчиков с открытым исходным кодом, в котором академические и коммерческие исследователи работали над созданием более эффективных компиляторов для приложений Linux, работающих на серверах Itanium.

Смотрите также

использованная литература

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

внешние ссылки