Для установки нажмите кнопочку Установить расширение. И это всё.

Исходный код расширения WIKI 2 регулярно проверяется специалистами Mozilla Foundation, Google и Apple. Вы также можете это сделать в любой момент.

4,5
Келли Слэйтон
Мои поздравления с отличным проектом... что за великолепная идея!
Александр Григорьевский
Я использую WIKI 2 каждый день
и почти забыл как выглядит оригинальная Википедия.
Статистика
На русском, статей
Улучшено за 24 ч.
Добавлено за 24 ч.
Что мы делаем. Каждая страница проходит через несколько сотен совершенствующих техник. Совершенно та же Википедия. Только лучше.
.
Лео
Ньютон
Яркие
Мягкие

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

Из Википедии — свободной энциклопедии

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

Истоки VLIW

В 1989 году исследователи компании Hewlett-Packard пришли к выводу, что количество инструкций, которые процессор архитектуры RISC способен выполнить за один такт, ограничено. Были начаты разработки новой архитектуры, основанной на архитектуре VLIW и названной 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. (Gelato Federation[en])

См. также

Примечания

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

Ссылки

Эта страница в последний раз была отредактирована 25 декабря 2021 в 02:40.
Как только страница обновилась в Википедии она обновляется в Вики 2.
Обычно почти сразу, изредка в течении часа.
Основа этой страницы находится в Википедии. Текст доступен по лицензии CC BY-SA 3.0 Unported License. Нетекстовые медиаданные доступны под собственными лицензиями. Wikipedia® — зарегистрированный товарный знак организации Wikimedia Foundation, Inc. WIKI 2 является независимой компанией и не аффилирована с Фондом Викимедиа (Wikimedia Foundation).