Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ekzam.docx
Скачиваний:
8
Добавлен:
18.09.2019
Размер:
3.23 Mб
Скачать

36. Суперскалярні процесори

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

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

Процессор может в ряде случаев устранить зависимость между команда­ми, используя дополнительные регистры или переназначив регистры операндов в команде.

В "классическом" RISC-процессоре для повышения эффективности работы конвейера часто используются задержанные переходы. Эта методика значи­тельно менее приспособлена к особенностям суперскалярных процессоров. В большинстве процессоров этого класса используются традиционные методы прогнозирования ветвления.

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

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

В то время как "внутриутробный" период развития RISC-процессоров длил­ся семь-восемь лет (именно столько времени прошло между разработкой в Берк­ли экспериментального RISC-I и выпуском иа рывок полноценных RISC-компьютеров), первые компьютеры с суперскалярными процессорами были вы­пущены в продажу уже через год или два после появления в литературе самого термина "суперскалярный". В настоящее время большинство современных мик­ропроцессоров высокой производительности построено с использованием идей суперскалярной структурной организации.

37. Паралелізм на рівні машинних команд

Производительность процессора с суперскалярной организацией зависит от того, насколько возможно в определенной программе выполнять команды па­раллельно и независимо друг от друга. Под параллелизмом на уровне команд (instruction-level parallelism) понимается возможность параллельного выполнения команд в определенной программе. Для максимального повышения параллелиз­ма на уровне команд используется сочетание программных и аппаратных мето­дов — применяются оптимизирующие компиляторы и схемы параллельных кон­вейеров. Прежде чем мы начнем рассматривать методы проектирования супер­скалярных процессоров, остановимся на фундаментальных ограничениях возможности распараллеливания операций в компьютерах. В работе [JOHN91] перечислено пять ограничений:

  • взаимозависимость по данным;

  • процедурная зависимость;

  • конфликты в использовании ресурсов;

  • зависимость по выходу;

  • обратная зависимость.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]