Вычислительные машины и системы. Ремонтов А.П - 60 стр.

UptoLike

60
Конфликтом при конвейеризации команд называют ситуацию, которая препятствует
выполнению очередной команды из потока команд в предназначенном для нее такте.
Конфликты делятся на три основные группы:
1. Структурные или ресурсные.
Возникают в результате того, что аппаратные средства не могут поддерживать все
комбинации команд в режиме их одновременного выполнения с совмещением на конвей-
ере. Это происходит в случае, если какие-то устройства в процессоре не конвейеризованы,
либо - присутствуют в единственном экземпляре (не распараллелены). Например, могут
возникать конфликты при обращении к общей КЭШ-памяти: одну команду необходимо
извлечь из памяти (на первом этапе выполнения), а другая пытается записать результат в
память на заключительном этапе. Для борьбы с ресурсными конфликтами в основном
применяют три способа:
- приостановка конвейера (pipeline stall, pipeline "bubble" - конвейерный "пузырь")
до разрешения конфликта (до завершения первой конфликтующей команды);
- дублирование аппаратных средств, вызывающих конфликт, например, разделение
КЭШ-памяти на КЭШ команд и КЭШ данных;
- ускорение или конвейеризация проблемного устройства, что позволяет снизить
затраты времени на приостановку. Решение об увеличении аппаратных затрат в по-
следних двух случаях принимают, если конфликт возникает часто, так как дополни-
тельные затраты могут быть существеннее, чем потери производительности от при-
остановки конвейера, если она происходит редко.
2. Конфликты программные или информационные. Делятся на две под-
группы:
а) конфликты по данным, возникающие в случае, если выполнение
следующей команды зависит от результата предыдущей.
б) конфликты по управлению, возникающие при нарушении естественного
порядка следования команд (условная передача управления).
3. Выделяют несколько вариантов конфликтов по данным:
1) Конфликт типа «чтение после записи» (Read After Write - RAW). Допустим,
имеются две команды - команда Ai и команда Aj, причем команда Ai предшествует
команде Aj. Конфликт RAW возникает, если команда Aj использует результаты
работы команды Ai, то есть должна прочитать регистр, либо память после записи
туда результата командой Ai, но к моменту чтения данные еще не записаны, по-
скольку команды следуют друг за другом на конвейере и сдвинуты всего на один
этап.
     Конфликтом при конвейеризации команд называют ситуацию, которая препятствует
выполнению очередной команды из потока команд в предназначенном для нее такте.
     Конфликты делятся на три основные группы:
     1. Структурные или ресурсные.
     Возникают в результате того, что аппаратные средства не могут поддерживать все
комбинации команд в режиме их одновременного выполнения с совмещением на конвей-
ере. Это происходит в случае, если какие-то устройства в процессоре не конвейеризованы,
либо - присутствуют в единственном экземпляре (не распараллелены). Например, могут
возникать конфликты при обращении к общей КЭШ-памяти: одну команду необходимо
извлечь из памяти (на первом этапе выполнения), а другая пытается записать результат в
память на заключительном этапе. Для борьбы с ресурсными конфликтами в основном
применяют три способа:
     -     приостановка конвейера (pipeline stall, pipeline "bubble" - конвейерный "пузырь")
до       разрешения конфликта     (до   завершения первой конфликтующей команды);
     -     дублирование аппаратных средств, вызывающих конфликт, например, разделение
КЭШ-памяти на КЭШ команд и КЭШ данных;
     -    ускорение или конвейеризация проблемного устройства, что позволяет снизить
затраты времени на приостановку. Решение об увеличении аппаратных затрат в по-
следних двух случаях принимают, если конфликт возникает часто, так как дополни-
тельные затраты могут быть существеннее, чем потери производительности от при-
остановки конвейера, если она происходит редко.
     2. Конфликты программные или информационные. Делятся на две под-
группы:
     а)        конфликты по данным, возникающие в случае, если выполнение
следующей команды зависит от результата предыдущей.
     б)       конфликты по управлению, возникающие при нарушении естественного
порядка следования команд (условная передача управления).
     3. Выделяют несколько вариантов конфликтов по данным:
     1) Конфликт типа «чтение после записи» (Read After Write - RAW). Допустим,
имеются две команды - команда Ai и команда Aj, причем команда Ai предшествует
команде Aj. Конфликт RAW возникает, если команда Aj использует результаты
работы команды Ai, то есть должна прочитать регистр, либо память после записи
туда результата командой Ai, но к моменту чтения данные еще не записаны, по-
скольку команды следуют друг за другом на конвейере и сдвинуты всего на один
этап.


                                        60