EPIC (архитектура микропроцессора)

EPIC (архитектура микропроцессора)

EPIC (англ. explicitly parallel instruction computing) — микропроцессорная архитектура с явным параллелизмом команд. Термин введён в 1997 году альянсом HP и Intel[1] для разрабатываемой архитектуры Intel Itanium.[2] EPIC позволяет микропроцессору выполнять инструкции параллельно, опираясь на работу компилятора, а не выявляя возможность параллельной работы инструкций при помощи специальных схем. В теории, это могло упростить масштабирование вычислительной мощности процессора без увеличения тактовой частоты.

Содержание

Истоки в VLIW

В 1989 исследователи компании HP пришли к выводу, что RISC архитектуры имеют явный предел инструкций, выполняемых за такт. Были начаты разработки новой архитектуры, позже названой EPIC.[2] Исследования основывались на архитектурах VLIW, в которых каждое командное слово содержит несколько операций, выполняемых на нескольких исполнительных устройствах.

Одной из целей EPIC был перенос сложной логики планирования инструкций из микропроцессора в компилятор, который бы планировал инструкции статически. Это позволило бы убрать планировщик инструкций из процессора, освободив место и мощность для других элементов, например, дополнительных АЛУ. Другой целью было увеличить степень параллелизма инструкций (instruction level parallelism) за счет больших возможностей компилятора по поиску независимых команд.

VLIW в своей изначальной форме имело несколько недостатков, препятствующих массовому внедрению:

  • Наборы инструкций VLIW не являются обратно совместимыми между различными поколениями процессоров. Если в более новом процессоре будет использоваться больше исполнительных устройств (например, АЛУ), то программы для нового процессора нельзя исполнить на старом, более узком процессоре (с меньшим количеством устройств).
  • Задержки загрузки данных из иерархии памяти (кэшей, DRAM) не являются полностью предсказуемыми. Из-за этого статическое планирование инструкций загрузки и использования данных становятся крайне сложными.

Эволюция VLIW

Архитектура EPIC имеет следующие особенности для устранения недостатков VLIW:

  • Каждая группа из нескольких инструкций называется бандлом (bundle). Каждый бандл может иметь стоповый бит, обозначающий, что следующая группа зависит от результатов работы данной. Такой бит позволяет создавать будущие поколения архитектуры с возможностью параллельного запуска нескольких бандлов. Информация о зависимостях вычисляется компилятором, и поэтому аппаратуре не придется проводить дополнительную проверку независимости операндов.
  • Для предподкачки данных используется инструкция программной подкачки (software prefetch). Предподкачка увеличивает вероятность того, что к моменту исполнения команды загрузки, данные уже будут в кеше. Также, в этой инструкции могут быть дополнительные указания для выбора различных уровней кеша для данных.
  • Инструкция спекулятивной загрузки используется для загрузки данных до того, как станет известно, будут ли они использованы (bypassing control dependencies), или будут они изменены перед использованием (bypassing data dependencies).
  • Инструкции проверки загрузки (check load instruction) помогает инструкциям спекулятивной загрузки при помощи проверок, зависела ли инструкция загрузки от последующей записи. В случае наличия подобной зависимости, спекулятивная загрузка должна быть повторена.

Архитектура EPIC также включает в себя несколько концепций (grab-bag) для увеличения ILP (параллелизма инструкций):

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

В архитектуре Itanium также был добавлен вращающийся регистровый файл[3], необходимый для упрощения программной конвейеризации циклов (software pipelining). При наличии такого файла исчезает необходимость в ручной раскрутке циклов и ручного переименования регистров.[4]

Иные разработки и исследования

Существовало некоторое количество исследований архитектур EPIC, не связанных с разработками по Itanium.

  • Проект IMPACT в университете Иллинойса в Urbana-Champaign под руководством Wen-mei Hwu сильно повлиял на более поздние исследования.
  • Архитектура PlayDoh от HP-labs.
  • Федерация Gelato, сообщество разработчиков по разработке более эффективных компиляторов для Linux на серверах Itanium.

См. также

Примечания

  1. Schlansker and Rau EPIC: An Architecture for Instruction-Level Parallel Processors (PDF). HP Laboratories Palo Alto, HPL-1999-111 (February 2000). Архивировано из первоисточника 27 апреля 2012. Проверено 8 мая 2008.
  2. 1 2 Inventing Itanium: How HP Labs Helped Create the Next-Generation Chip Architecture. HP Labs (June 2001). Архивировано из первоисточника 27 апреля 2012. Проверено 14 декабря 2007.
  3. Cовременные серверные процессоры. Часть 2. Intel Itanium, HP PA8700, Alpha
  4. De Gelas, Johan Itanium–Is there light at the end of the tunnel?. AnandTech (November 9, 2005). Архивировано из первоисточника 27 апреля 2012. Проверено 8 мая 2008.

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Полезное


Смотреть что такое "EPIC (архитектура микропроцессора)" в других словарях:

  • Архитектура набора команд — Эту страницу предлагается объединить с Система команд. Пояснение причин и обсуждение на странице Википедия:К объединению/6 ноября 2011. Обсуждение длится одну неделю (или дольш …   Википедия

  • Гарвардская архитектура — Гарвардская архитектура  архитектура ЭВМ, отличительными признаками которой являются: 1. Хранилище инструкций и хранилище данных представляют собой разные физические устройства. 2. Канал инструкций и канал данных также физически разделены.… …   Википедия

  • Процессор — У этого термина существуют и другие значения, см. Процессор (значения). Запрос «ЦП» перенаправляется сюда; см. также другие значения. Intel Celeron 1100 Socket 370 в корпусе FC PGA2, вид снизу …   Википедия

  • Процессоры — Intel 80486DX2 в керамическом корпусе PGA. Intel Celeron 400 socket 370 в пластиковом корпусе PPGA, вид снизу. Intel Celeron 400 socket 370 в пластиковом корпусе PPGA, вид сверху …   Википедия

  • ЦП — Intel 80486DX2 в керамическом корпусе PGA. Intel Celeron 400 socket 370 в пластиковом корпусе PPGA, вид снизу. Intel Celeron 400 socket 370 в пластиковом корпусе PPGA, вид сверху …   Википедия

  • ЦПУ — Intel 80486DX2 в керамическом корпусе PGA. Intel Celeron 400 socket 370 в пластиковом корпусе PPGA, вид снизу. Intel Celeron 400 socket 370 в пластиковом корпусе PPGA, вид сверху …   Википедия

  • Центральное процессорное устройство — Intel 80486DX2 в керамическом корпусе PGA. Intel Celeron 400 socket 370 в пластиковом корпусе PPGA, вид снизу. Intel Celeron 400 socket 370 в пластиковом корпусе PPGA, вид сверху …   Википедия

  • Центральный процессор — Intel 80486DX2 в керамическом корпусе PGA. Intel Celeron 400 socket 370 в пластиковом корпусе PPGA, вид снизу. Intel Celeron 400 socket 370 в пластиковом корпусе PPGA, вид сверху …   Википедия

  • x86-64 — Для улучшения этой статьи желательно?: Переработать оформление в соответствии с правилами написания статей. Викифицировать статью. Исправить статью согласно стилистическим правилам Википедии …   Википедия

  • Кэш процессора — Кэш микропроцессора  кэш (сверхоперативная память), используемый микропроцессором компьютера для уменьшения среднего времени доступа к компьютерной памяти. Является одним из верхних уровней иерархии памяти[1] …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»