Суперскалярность

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Плата CRAY T3E-136/ac (1995)

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

Если в процессе работы команды, обрабатываемые конвейером, не противоречат друг другу, и одна не зависит от результата другой, то такое устройство (ядро) может осуществить параллельное выполнение команд. В суперскалярных системах решение о запуске инструкции на исполнение принимает сам вычислительный модуль, что требует много ресурсов. В более поздних системах, таких как Эльбрус-3 и Itanium, используется статпланирование, то есть параллельные инструкции объединяются компилятором в длинную команду, в которой все инструкции заведомо параллельные (архитектура VLIW).

Существует спор относительно того, какую ЭВМ можно считать первой суперскалярной. В иностранной литературе чаще всего указывается CDC 6600 (1964) разработанная Сеймуром Крэем.[1] В СССР первой суперскалярной ЭВМ считался «Эльбрус», разработка которого велась в 1973—1979 годах в ИТМиВТ. Основным структурным отличием Эльбруса от CDC 6600 (кроме, естественно, совершенно другой видимой программисту системы команд — стекового типа) являлось то, что все модули исполнения в нём были конвейеризованы, как в современных суперскалярных микропроцессорах. На основании этого факта Б. А. Бабаян заявлял о приоритете советских ЭВМ в вопросе построения суперскалярных вычислительных машин, однако уже следующая за CDC 6600 машина фирмы Control Data, CDC 7600 1969 года имела конвейеризацию исполнительных устройств. Кроме того, несколько ранее (1967) фирмой IBM была выпущена машина IBM 360/91, использующая внеочередное исполнение, переименование регистров и конвейеризацию исполнительных устройств[2] Первым же коммерчески широкодоступным суперскалярным микропроцессором стал i960, вышедший в 1988 году. В 1990-е годы основным производителем суперскалярных микропроцессоров стал Intel.

Реализации[править | править вики-текст]

Процессоры, поддерживающие суперскалярность:

Архитектура Первая реализация Год Разработчик Другие разработчики суперскалярных ЭВМ на данной архитектуре Примечание
CDC 6600 CDC 6600 1964 Control Data Corporation Конвейер исполнения команд, несколько исполнительных устройств (но не конвейеризованных).
CDC 7600[источник не указан 1631 день] CDC 7600 1969 Control Data Corporation Полная конвейеризация — и исполнения команд, и самих исполнительных устройств.
IBM 360/91[источник не указан 1631 день] IBM 360/91 1967 IBM Полная конвейеризация с динамическим переименованием регистров, исполнением команд не в очередности их поступления и предсказанием переходов
Эльбрус Эльбрус-1 1979 ИТМиВТ
i960 i960 1988 Intel
Am29000 Am29050 1990 AMD
SPARC SuperSPARC 1992 Sun Microsystems Fujitsu, МЦСТ
m88k MC88110 1992 Motorola
x86 Pentium 1993 Intel AMD, VIA
MIPS R8000 1994 MIPS Technologies Toshiba
ARM Cortex A8 ARM

Ускорение вычислений[править | править вики-текст]

В суперскалярных вычислительных машинах используется ряд методов для ускорения вычислений, характерных прежде всего для них, однако такие методики могут использоваться и в других типах архитектур:

Также используются общие методики увеличения производительности, применяемые и в других типах вычислительных машин:

Примечания[править | править вики-текст]

  1. Классификация Хендлера. PARALLEL.RU - Информационно-аналитический центр по параллельным вычислениям:. Проверено 16 августа 2009. Архивировано из первоисточника 26 февраля 2012.
  2. см. http://domino.research.ibm.com/tchjr/journalindex.nsf/ResVolumes!OpenView&Start=1&Count=1000&Expand=42.1#42.1.

Литература[править | править вики-текст]