Суперскалярный процессор — Superscalar processor
«Superscaler» перенаправляется сюда. Информацию о системной плате Sega arcade см. В разделе Sega Super Scaler .
Простой суперскалярный конвейер. Посредством выборки и отправки двух инструкций за раз можно выполнить максимум две инструкции за цикл. (IF = выборка инструкции, инструкции, EX = выполнение, MEM = доступ к памяти, WB = обратная запись в регистр, i = номер инструкции, t = цикл часов [то есть время])
Суперскалярная процессор является процессором , который реализует форма параллелизма называется инструкция уровня параллелизма в одном процессоре. В отличие от скалярного процессора, который может выполнять не более одной отдельной инструкции за такт, суперскалярный процессор может выполнять более одной инструкции в течение тактового цикла, одновременно отправляя несколько инструкций различным исполнительным блокам на процессоре. Следовательно, он обеспечивает большую пропускную способность (количество инструкций, которые могут быть выполнены за единицу времени), чем это было бы возможно при заданной тактовой частоте . Каждый исполнительный блок не является отдельным процессором (или ядром, если процессор является многоядерным ), а является исполнительным ресурсом в пределах одного ЦП, например, арифметико-логическим блоком .
В таксономии Флинна одноядерный суперскалярный процессор классифицируется как процессор SISD (Single Instruction stream, Single Data stream), хотя одноядерный суперскалярный процессор, который поддерживает короткие векторные операции, может быть классифицирован как SIMD (Single Instruction stream, Multiple Data stream). потоки). Многоядерный суперскалярная процессор классифицируется как MIMD процессора (несколько потоков Инструкции, множество потоков данных).
Хотя суперскалярный ЦП обычно также является конвейерным , суперскалярное и конвейерное выполнение считаются различными методами повышения производительности. Первый выполняет несколько инструкций параллельно с использованием нескольких исполнительных модулей, тогда как последний выполняет несколько инструкций в одном и том же исполнительном модуле параллельно, разделяя исполнительный модуль на разные фазы.
Суперскалярная техника традиционно связана с несколькими отличительными характеристиками (в пределах данного ЦП):
- Инструкции выдаются из последовательного потока команд
- ЦП динамически проверяет зависимости данных между инструкциями во время выполнения (по сравнению с проверкой программного обеспечения во время компиляции ).
- ЦП может выполнять несколько инструкций за такт
Содержание
- 1 История
- 2 Скаляр в суперскаляр
- 3 Ограничения
- 4 альтернативы
- 5 См. Также
- 6 Ссылки
- 7 Внешние ссылки
Seymour Cray «s CDC 6600 с 1966 часто упоминается как первый суперскалярного дизайн. IBM System / 360 Model 91 1967 года был еще одним суперскалярным мэйнфреймом. Микропроцессоры Motorola MC88100 (1988), Intel i960 CA (1989) и AMD 29000 серии 29050 (1990) были первыми коммерческими однокристальными суперскалярными микропроцессорами. Микропроцессоры RISC, подобные этим, были первыми, в которых реализовано суперскалярное исполнение, потому что в архитектуре RISC отсутствуют транзисторы и площадь кристалла, которая может использоваться для включения нескольких исполнительных блоков (именно поэтому проекты RISC были быстрее, чем проекты CISC в 1980-х и в 1990-х годах).
За исключением ЦП, используемых в маломощных приложениях, встроенных системах и устройствах с питанием от батарей , практически все ЦП общего назначения, разработанные примерно с 1998 г., являются суперскалярными.
Р5 Pentium был первым суперскалярная x86 процессор; Nx586 , P6 Pentium Pro и AMD K5 были одними из первых конструкций, расшифровывает x86 -Инструкция асинхронно в динамический микрокод -like микроопераций последовательностей до фактического исполнения на суперскалярную микроархитектуре ; это открыло возможность для динамического планирования буферизованных частичных инструкций и позволило извлечь больше параллелизма по сравнению с более жесткими методами, используемыми в более простом P5 Pentium ; это также упростило спекулятивное исполнениеи позволил более высокие тактовые частоты по сравнению с такими конструкциями, как усовершенствованный Cyrix 6×86 .
Скаляр в суперскаляр
Самые простые процессоры — это скалярные процессоры. Каждая инструкция, выполняемая скалярным процессором, обычно манипулирует одним или двумя элементами данных одновременно. Напротив, каждая инструкция, выполняемая векторным процессором, работает одновременно со многими элементами данных. Аналогия — разница между скалярной и векторной арифметикой. Суперскалярный процессор представляет собой смесь двух. Каждая инструкция обрабатывает один элемент данных, но в каждом ЦП есть несколько исполнительных блоков, поэтому несколько инструкций могут обрабатывать отдельные элементы данных одновременно.
В суперскалярном дизайне ЦП упор делается на повышение точности диспетчера инструкций и на возможность постоянного использования нескольких исполнительных модулей. Это становится все более важным по мере увеличения количества единиц. В то время как ранние суперскалярные процессоры имели бы два ALU и один FPU , более поздний дизайн, такой как PowerPC 970, включает четыре ALU, два FPU и два модуля SIMD. Если диспетчер не может поддерживать все эти устройства с инструкциями, производительность системы будет не лучше, чем у более простой и дешевой конструкции.
Суперскалярный процессор обычно поддерживает скорость выполнения, превышающую одну инструкцию за машинный цикл . Но простая одновременная обработка нескольких инструкций не делает архитектуру суперскалярной, поскольку конвейерные , многопроцессорные или многоядерные архитектуры также достигают этого, но с другими методами.
В суперскалярном ЦП диспетчер считывает инструкции из памяти и решает, какие из них могут выполняться параллельно, отправляя каждое из нескольких исполнительных блоков, содержащихся внутри одного ЦП. Следовательно, можно представить себе суперскалярный процессор, имеющий несколько параллельных конвейеров, каждый из которых обрабатывает команды одновременно из одного потока команд.
Содержание
Архитектура | Первая реализация | Год | Разработчик | Другие разработчики суперскалярных ЭВМ на данной архитектуре | Примечание |
---|---|---|---|---|---|
CDC 6600 | CDC 6600 | 1964 | Control Data Corporation | Конвейер исполнения команд, несколько исполнительных устройств (но не конвейеризованных). | |
CDC 7600 [источник не указан 4342 дня] | CDC 7600 | 1969 | Control Data Corporation | Полная конвейеризация — и исполнения команд, и самих исполнительных устройств. | |
IBM 360/91 [источник не указан 4342 дня] | 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 |
В суперскалярных вычислительных машинах используется ряд методов для ускорения вычислений, характерных прежде всего для них, однако такие методики могут использоваться и в других типах архитектур:
- Внеочередное исполнение
- Переименование регистров
- Объединение нескольких команд в одну
Также используются общие методики увеличения производительности, применяемые и в других типах вычислительных машин:
Альтернативы [ править ]
В совокупности эти ограничения приводят к исследованию альтернативных архитектурных изменений, таких как очень длинное командное слово (VLIW), явно параллельное вычисление команд (EPIC), одновременная многопоточность (SMT) и многоядерные вычисления .
С VLIW обременительная задача проверки зависимостей аппаратной логикой во время выполнения снимается и делегируется компилятору . Явно параллельное вычисление инструкций (EPIC) похоже на VLIW с дополнительными инструкциями предварительной выборки из кэша.
Одновременная многопоточность (SMT) — это метод повышения общей эффективности суперскалярных процессоров. SMT позволяет выполнять несколько независимых потоков, чтобы лучше использовать ресурсы, предоставляемые современными архитектурами процессоров.
Суперскалярные процессоры отличаются от многоядерных процессоров тем, что несколько исполнительных блоков не являются целыми процессорами. Один процессор состоит из исполнительных модулей с более мелкой структурой, таких как ALU , целочисленный умножитель , целочисленный сдвигатель, FPU и т. Д. Может быть несколько версий каждого исполнительного модуля, чтобы обеспечить выполнение множества инструкций параллельно. Это отличается от многоядерного процессора, который одновременно обрабатывает инструкции из нескольких потоков, по одному потоку на процессор (называемый «ядром»). Он также отличается от конвейерного процессора , где несколько инструкций могут одновременно находиться на разных стадиях выполнения,конвейерная мода.
Различные альтернативные методы не исключают друг друга — они могут (и часто комбинируются) в одном процессоре. Таким образом, возможен многоядерный ЦП, где каждое ядро является независимым процессором, содержащим несколько параллельных конвейеров, причем каждый конвейер является суперскалярным. Некоторые процессоры также имеют возможность вектора .
Содержание
Сеймур Крейс CDC 6600 с 1966 года часто упоминается как первая суперскалярная конструкция. 1967 год IBM System / 360 Модель 91 был еще одним суперскалярным мэйнфреймом. Motorola MC88100 (1988), Intel i960CA (1989) и 29000 драмМикропроцессоры серии 29050 (1990) были первыми коммерческими однокристальными суперскалярными микропроцессорами. RISC микропроцессоры, подобные этим, были первыми, у которых было суперскалярное исполнение, потому что RISC-архитектура освобождает транзисторы и площадь кристалла, которая может использоваться для включения нескольких исполнительных блоков (вот почему RISC-конструкции были быстрее, чем CISC дизайнов с 1980-х по 1990-е годы).
За исключением процессоров, используемых в малая мощность Приложения, встроенные системы, и аккумуляторустройства с питанием, по сути, все ЦП общего назначения, разработанные примерно с 1998 года, являются суперскалярными.
В P5 Pentium был первым суперскалярным процессором x86; то Nx586, P6 Pentium Pro и AMD K5 были одними из первых дизайнов, которые расшифровывают x86-инструкции асинхронно в динамические микрокод-подобно микрооперация последовательности до фактического выполнения на суперскалярном микроархитектура; это открыло для динамического планирования буферизованных частичный инструкций и позволил извлечь больше параллелизма по сравнению с более жесткими методами, используемыми в более простых P5 Pentium; это также упростило спекулятивное исполнение и позволили более высокие тактовые частоты по сравнению с такими конструкциями, как усовершенствованный Cyrix 6×86.
Содержание
Сеймур Крейс CDC 6600 с 1966 года часто упоминается как первая суперскалярная конструкция. 1967 год IBM System / 360 Модель 91 был еще одним суперскалярным мэйнфреймом. Motorola MC88100 (1988), Intel i960CA (1989) и 29000 драмМикропроцессоры серии 29050 (1990) были первыми коммерческими однокристальными суперскалярными микропроцессорами. RISC микропроцессоры, подобные этим, были первыми, у которых было суперскалярное исполнение, потому что RISC-архитектура освобождает транзисторы и площадь кристалла, которая может использоваться для включения нескольких исполнительных блоков (вот почему RISC-конструкции были быстрее, чем CISC дизайнов с 1980-х по 1990-е годы).
За исключением процессоров, используемых в малая мощность Приложения, встроенные системы, и аккумуляторустройства с питанием, по сути, все ЦП общего назначения, разработанные примерно с 1998 года, являются суперскалярными.
В P5 Pentium был первым суперскалярным процессором x86; то Nx586, P6 Pentium Pro и AMD K5 были одними из первых дизайнов, которые расшифровывают x86-инструкции асинхронно в динамические микрокод-подобно микрооперация последовательности до фактического выполнения на суперскалярном микроархитектура; это открыло для динамического планирования буферизованных частичный инструкций и позволил извлечь больше параллелизма по сравнению с более жесткими методами, используемыми в более простых P5 Pentium; это также упростило спекулятивное исполнение и позволили более высокие тактовые частоты по сравнению с такими конструкциями, как усовершенствованный Cyrix 6×86.
Содержание
Первой в мире суперскалярной ЭВМ была CDC 6600 (1964 года), разработанная Сеймуром Крэем [1] . В СССР первой суперскалярной ЭВМ считался компьютер «Эльбрус», разработка которого велась в 1973—1979 годах в ИТМиВТ. Основным структурным отличием Эльбруса от CDC 6600 (кроме совершенно другой видимой программисту системы команд — стекового типа) являлось то, что все узлы в нём были конвейеризованы, как в современных суперскалярных микропроцессорах. На основании этого факта Б. А. Бабаян заявлял о приоритете советских ЭВМ в вопросе построения суперскалярных вычислительных машин, однако уже следующая за CDC 6600 машина фирмы Control Data, CDC 7600 (англ.), созданная в 1969 году, за 4 года до начала разработки «Эльбруса», имела конвейеризацию исполнительных устройств. Кроме того, несколько ранее (в 1967 году) фирмой IBM была выпущена машина IBM 360/91, использующая внеочередное исполнение, переименование регистров и конвейеризацию исполнительных устройств [2] .
Первыми промышленными суперскалярными однокристальными (англ. single-chip ) микропроцессорами стали микропроцессор MC88100 1988 года фирмы Motorola, микропроцессор Intel i960CA 1989 года и микропроцессор 29050 серии AMD 29000 1990 года. Первым же коммерчески широкодоступным суперскалярным микропроцессором стал i960, вышедший в 1988 году. В 1990-е годы основным производителем суперскалярных микропроцессоров стала фирма Intel.
Все процессоры общего назначения, разработанные примерно с 1998 года, кроме процессоров, используемых в устройствах с низким энергопотреблением, во встраиваемых системах и в устройствах, питаемых от батареек, являются суперскалярными.
Процессоры Pentium с микроархитектурой P5 (англ.) стали первыми суперскалярными процессорами архитектуры x86. Микропроцессоры Nx586, P6 Pentium Pro и AMD K5 стали первыми суперскалярными процессорами, преобразующими инструкции x86 во внутренний код, который затем исполняли.
Какое будущее ждет суперкомпьютеры?
Очевидно, что производительность суперкомпьютеров будет разгоняться до космических цифр, их размеры — уменьшаться, а потребление энергии — сокращаться. Но самое интересное кроется в задачах, которые они смогут решать.
Эксперты считают, что через 15 лет симуляции отойдут на второй план, а машинное обучение позволит суперкомпьютерам выполнять глубокую аналитику данных. В итоге их будут применять везде: от разработки бесконечных аккумуляторов до лекарства от рака.