Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛЕКЦИЯ 3 процессоры.doc
Скачиваний:
17
Добавлен:
21.09.2019
Размер:
1.8 Mб
Скачать

Суперскалярные архитектуры

Один конвейер — хорошо, а два — еще лучше. Одна из возможных схем процес¬сора с двумя конвейерами показана на рис. 2.4. В ее основе лежит конвейер, изо¬браженный на рис. 2.3. Здесь общий блок выборки команд вызывает из памяти сразу по две команды и помещает каждую из них в один из конвейеров. Каждый конвейер содержит АЛУ для параллельных операций. Чтобы выполняться па¬раллельно, две команды не должны конфликтовать из-за ресурсов (например, регистров), и ни одна из них не должна зависеть от результата выполнения дру¬гой. Как и в случае с одним конвейером, либо компилятор должен гарантировать отсутствие нештатных ситуаций (когда, например, аппаратура не обеспечивает проверку команд на несовместимость и при обработке таких команд выдает не¬корректный результат), либо за счет дополнительной аппаратуры конфликты должны выявляться и устраняться непосредственно в ходе выполнения команд.

Рисунок 2.4

У процессора 386 и его предшественников их не было. Конвейеры в процессорах компании Intel появились, только начиная с модели 486 . Процессор 486 имел один пятиступенчатый конвейер, a Pentium — два та¬ких конвейера.

Основ¬ная идея суперскалярной архитектуры — один конвейер с большим количеством функциональных блоков, как показано на рис. 2.5. Pentium II.

Рисунок 2.5

Со временем значение понятия «суперскалярный» несколько изменилось. Те¬перь суперскалярными называют процессоры, способные запускать несколько ко¬манд (зачастую от четырех до шести) за один тактовый цикл. Естественно, чтобы передавать все эти команды, в суперскалярном процессоре должно быть несколь¬ко функциональных блоков. Поскольку в процессорах этого типа, как правило, предусматривается один конвейер, его устройство обычно соответствует рис. 2.5.

Параллелизм на уровне процессоров

Параллелизм на уровне команд в определенной степени помогает увеличить быстродействие, но конвей¬еры и суперскалярная архитектура обычно повышают скорость работы всего лишь в 5 -10 раз. Чтобы увеличить производительность в 50, 100 и более раз, нужно создавать компьютеры с несколькими процессорами.

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

Матричный процессор (array processor) состоит из большого числа сходных процессоров, которые выполняют одну и ту же последовательность команд применительно к разным наборам данных. Первым в мире таким процессором был ILLIAC IV (Университет Иллинойс). Это решение, зна¬чительно отличающееся от стандартной фон-неймановской машины, иногда на¬зывают архитектурой SIMD (Single Instruction-stream Multiple Data-stream — один поток команд с несколькими потоками данных).

С точки зрения программиста, векторный процессор (vector processor) очень похож на матричный. Как и матричный, он чрезвычайно эффективен при выпол¬нении последовательности операций над парами элементов данных. Однако в отличие от матричного процессора, все операции сложения выполняются в од¬ном блоке суммирования, который имеет конвейерную структуру. Компания Cray Research, основателем которой был Сеймур Крей, выпустила множество моделей векторных процессоров, начиная с модели Сгау-1 (1974).

Оба типа процессоров работают с массивами данных. Оба они выполняют од¬ни и те же команды, которые, например, попарно складывают элементы двух векторов. Однако если у матричного процессора столько же суммирующих уст¬ройств, сколько элементов в массиве, векторный процессор содержит векторный регистр, состоящий из набора условных регистров. Эти регистры загружаются из памяти единственной командой, которая фактически делает это последова¬тельно. Команда сложения попарно складывает элементы двух таких векторов, загружая их из двух векторных регистров в суммирующее устройство с конвей¬ерной структурой. В результате из суммирующего устройства выходит другой вектор, который либо помещается в векторный регистр, либо сразу используется в качестве операнда при выполнении другой операции с векторами.

Матричные процессоры в настоящее время не выпускаются, но принцип, на котором они основаны, по-прежнему актуален.

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