Современные высокопроизводительные компьютеры


Устранение зависимостей по данным и механизмы динамического планирования - часть 8


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

Состояние команд

КомандаВыдачаЧтение
операндов
Завершение выполненияЗапись
результата

LDF6,34(R2)((((
LDF2,45(R3)(((

MULTDF0,F2,F4(

SUBDF8,F6,F2(

DIVDF10,F0,F6(

ADDF6,F8,F2

Состояние функциональных устройств

ИмяЗанятостьOpFiFjFkQjQkRjRk

IntegerДаLoadF2R3

Mult1ДаMultF0F2F4 НетДа
Mult2Нет

AddДаSubF8F6F2 IntegerДаНет
DivideДаDivF10F0F6Mult1 НетДа

Состояние регистра результата

F0F2F4F6F8F10F12. . .F30

FUMult1Integer AddDivide

Рис. 6.4. Регистры состояния централизованной схемы управления

Другой подход к динамическому планированию - алгоритм Томасуло

Другой подход к параллельному выполнению команд при наличии конфликтов был использован в устройстве плавающей точки в машине IBM 360/91. Эта схема приписывается Р. Томасуло и названа его именем. Разработка IBM 360/91 была завершена спустя три года после выпуска CDC 6600, прежде чем кэш-память появилась в коммерческих машинах. Задачей IBM было достижение высокой производительности на операциях с плавающей точкой, используя набор команд и компиляторы, разработанные для всего семейства 360, а не только для приложений с интенсивным использованием плавающей точки. Архитектура 360 предусматривала только четыре регистра плавающей точки двойной точности, что ограничивало эффективность планирования кода компилятором. Этот факт был другой мотивацией подхода Томасуло. Наконец, машина IBM 360/91 имела большое время обращения к памяти и большие задержки выполнения операций плавающей точки, преодолеть которые и был призван разработанный Томасуло алгоритм. В конце раздела мы увидим, что алгоритм Томасуло может также поддерживать совмещенное выполнение нескольких итераций цикла.




Начало  Назад  Вперед



Книжный магазин