Jump to content

Суперскалярный процессор

Простой суперскалярный конвейер. При одновременной выборке и отправке двух инструкций можно выполнить максимум две инструкции за цикл. (IF = выборка инструкции, ID = декодирование инструкции, EX = выполнение, MEM = доступ к памяти, WB = обратная запись в регистр, i = номер инструкции, t = тактовый цикл [т. е. время])
Процессорная плата суперкомпьютера CRAY T3e с четырьмя суперскалярными Alpha 21164 процессорами

Суперскалярный процессор — это ЦП , который реализует форму параллелизма , называемую параллелизмом на уровне команд, внутри одного процессора. [1] В отличие от скалярного процессора , который может выполнять не более одной инструкции за такт, суперскалярный процессор может выполнять более одной инструкции за такт, одновременно отправляя несколько инструкций различным исполнительным блокам процессора. Таким образом, он обеспечивает большую пропускную способность (количество инструкций, которые могут быть выполнены в единицу времени), чем было бы возможно в противном случае при заданной тактовой частоте . Каждый исполнительный блок — это не отдельный процессор (или ядро, если процессор многоядерный ) , а исполнительный ресурс внутри одного ЦП, например арифметико-логический блок .

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

Суперскалярный метод традиционно связан с несколькими идентифицирующими характеристиками (внутри данного ЦП):

  • Инструкции выдаются из последовательного потока инструкций.
  • ЦП динамически проверяет зависимости данных между инструкциями во время выполнения (в отличие от программной проверки во время компиляции ).
  • ЦП может выполнять несколько инструкций за такт

История [ править ]

Сеймура Крея 1964 CDC 6600 года часто упоминается как первая суперскалярная конструкция. 1967 года IBM System/360 Model 91 была еще одним суперскалярным мэйнфреймом. Intel i960 CA (1989 г.), [2] AMD 29000 -серия 29050 (1990 г.) и Motorola MC88110 (1991 г.), [3] микропроцессоры были первыми коммерческими однокристальными суперскалярными микропроцессорами. Подобные RISC- микропроцессоры были первыми, которые имели суперскалярное исполнение, поскольку в RISC-архитектуре отсутствуют транзисторы и площадь кристалла, которую можно использовать для включения нескольких исполнительных блоков, а традиционная однородность набора команд способствует суперскалярной диспетчеризации (именно поэтому конструкции RISC были быстрее, чем CISC). разрабатывались на протяжении 1980-х и 1990-х годов, и гораздо сложнее выполнять множественную отправку, когда инструкции имеют переменную битовую длину).

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

P5 ; Pentium был первым суперскалярным процессором x86 Nx586 микрокоду , P6 Pentium Pro и AMD K5 были одними из первых разработок, которые декодировали x86 асинхронно -инструкции в динамические последовательности микроопераций , подобные , перед фактическим выполнением на суперскалярной микроархитектуре ; это открыло возможности для динамического планирования буферизованных частичных инструкций и позволило извлечь больше параллелизма по сравнению с более жесткими методами, используемыми в более простом P5 Pentium ; это также упростило спекулятивное выполнение и позволило повысить тактовые частоты по сравнению с такими конструкциями, как усовершенствованный Cyrix 6x86 .

Скаляр в суперскаляр [ править ]

Простейшими процессорами являются скалярные процессоры. Каждая инструкция, выполняемая скалярным процессором, обычно манипулирует одним или двумя элементами данных одновременно. Напротив, каждая инструкция, выполняемая векторным процессором, одновременно обрабатывает множество элементов данных. Аналогия - это разница между скалярной и векторной арифметикой. Суперскалярный процессор представляет собой смесь этих двух. Каждая инструкция обрабатывает один элемент данных, но в каждом ЦП имеется несколько исполнительных блоков, поэтому несколько инструкций могут обрабатывать отдельные элементы данных одновременно.

Суперскалярный дизайн ЦП направлен на повышение точности диспетчера инструкций и позволяет ему постоянно использовать несколько исполнительных блоков. Это становится все более важным по мере увеличения количества единиц. В то время как ранние суперскалярные процессоры имели два ALU и один FPU , более поздняя конструкция, такая как PowerPC 970, включала четыре ALU, два FPU и два блока SIMD. Если диспетчер не сможет обеспечить все эти подразделения инструкциями, производительность системы будет не лучше, чем у более простой и дешевой конструкции.

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

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

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

Ограничения [ править ]

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

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

Существующие двоичные исполняемые программы имеют разную степень внутреннего параллелизма. В некоторых случаях инструкции не зависят друг от друга и могут выполняться одновременно. В других случаях они взаимозависимы: одна инструкция влияет либо на ресурсы, либо на результаты другой. Инструкции a = b + c; d = e + f могут выполняться параллельно, поскольку ни один из результатов не зависит от других вычислений. Однако инструкции a = b + c; b = e + f может быть невозможно выполнять параллельно, в зависимости от порядка выполнения инструкций при прохождении через модули.

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

Независимо от того, насколько развит полупроводниковый процесс или насколько высока скорость переключения, это накладывает практический предел на количество инструкций, которые могут быть отправлены одновременно. Хотя развитие процессов позволит использовать все большее количество исполнительных устройств (например, ALU), бремя проверки зависимостей команд быстро растет, равно как и сложность схем переименования регистров для смягчения некоторых зависимостей. В совокупности потребляемая мощность , сложность и затраты на задержку вентиля ограничивают достижимое суперскалярное ускорение.

Однако даже с учетом бесконечно быстрой логики проверки зависимостей на обычном суперскалярном ЦП, если сам поток команд имеет много зависимостей, это также ограничит возможное ускорение. Таким образом, степень внутреннего параллелизма в потоке кода образует второе ограничение.

Альтернативы [ править ]

В совокупности эти ограничения стимулируют исследование альтернативных архитектурных изменений, таких как очень длинные командные слова (VLIW), явно параллельные вычисления команд (EPIC), одновременная многопоточность (SMT) и многоядерные вычисления .

С помощью VLIW обременительная задача проверки зависимостей аппаратной логикой во время выполнения удаляется и делегируется компилятору . Явно параллельные вычисления команд (EPIC) похожи на VLIW с дополнительными инструкциями по предварительной выборке из кэша.

Одновременная многопоточность (SMT) — это метод повышения общей эффективности суперскалярных процессоров. SMT допускает несколько независимых потоков выполнения, чтобы лучше использовать ресурсы, предоставляемые современными процессорными архитектурами. Тот факт, что они независимы, означает, что мы знаем, что инструкция одного потока может выполняться вне очереди и/или параллельно с инструкцией другого потока. Также один независимый поток не будет создавать пузырь конвейера в потоке кода другого, например, из-за ветвления.

Суперскалярные процессоры отличаются от многоядерных процессоров тем, что несколько исполнительных блоков не являются целыми процессорами. Один процессор состоит из более детальных исполнительных блоков, таких как ALU , целочисленный умножитель , целочисленный сдвиг, FPU и т. д. Может существовать несколько версий каждого исполнительного блока, чтобы обеспечить параллельное выполнение множества инструкций. Это отличается от многоядерного процессора, который одновременно обрабатывает инструкции из нескольких потоков, по одному потоку на процессор (так называемый «ядро»). Он также отличается от конвейерного процессора , в котором несколько инструкций могут одновременно находиться на разных стадиях выполнения, как на конвейере .

Различные альтернативные методы не являются взаимоисключающими — их можно (и часто так и делают) комбинировать в одном процессоре. Таким образом, возможен многоядерный ЦП, в котором каждое ядро ​​представляет собой независимый процессор, содержащий несколько параллельных конвейеров, причем каждый конвейер является суперскалярным. Некоторые процессоры также поддерживают векторную обработку.

См. также [ править ]

Ссылки [ править ]

  1. ^ «Что такое суперскалярный процессор? — Определение из Techopedia» . Techopedia.com . Проверено 29 августа 2022 г.
  2. ^ Макгиди, Стивен (весна 1990 г.). «Реализация i960CA SuperScalar архитектуры 80960». Дайджест статей Compcon Spring '90. Тридцать пятая международная конференция IEEE Computer Society по интеллектуальному использованию . стр. 232–240. дои : 10.1109/CMPCON.1990.63681 . ISBN  0-8186-2028-5 . S2CID   13206773 . {{cite book}}: |journal= игнорируется ( помогите )
  3. ^ Дифендорф, К.; Аллен, М. (весна 1992 г.). «Суперскалярный RISC-микропроцессор Motorola 88110». Дайджест докладов КОМПКОН, весна 1992 г. стр. 157–162. дои : 10.1109/CMPCON.1992.186702 . ISBN  0-8186-2655-0 . S2CID   34913907 . {{cite book}}: |journal= игнорируется ( помогите )
  • Майк Джонсон , Проектирование суперскалярных микропроцессоров , Прентис-Холл, 1991 г., ISBN   0-13-875634-1
  • Сорин Котофана, Стаматис Василиадис, «О сложности проектирования логики суперскалярных машин», EUROMICRO 1998: 10277-10284
  • Стивен Макгиди и др., «Повышение производительности встроенного микропроцессора Superscalar i960MM», Материалы конференции ACM 1991 года по компьютерной архитектуре (Compcon) , 1991, стр. 4–7.

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: e8c6ddf57b19e99e031496f634ae6c03__1717164000
URL1:https://arc.ask3.ru/arc/aa/e8/03/e8c6ddf57b19e99e031496f634ae6c03.html
Заголовок, (Title) документа по адресу, URL1:
Superscalar processor - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)