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

UptoLike

61
На рисунке 4.10. обведены этапы, на которых будет записан результат в первой
команде и потребуется считать результат для второй команды. Очевидно, что нужный
результат еще не будет находиться по месту, адресуемому второй командой, и про-
изойдет конфликт.
Рис. 4.10
2) Конфликт типа «запись после чтения» (WAR). Происходит, если команда
Aj записывает результат до того, как он считывается командой Ai
(предшествующей Aj). Такой тип конфликта может возникать только в случае,
если команда Aj обгоняет команду Ai на конвейере в конвейерах с
неупорядоченной обработкой, выдачей или завершением команд (out-of-order
execution, out-of-order completition).
3) Конфликт типа «запись после записи» (WAR). Возникает, если
последующая команда Aj записывает результат до того, как запишет его
команда Ai, что может привести к нарушению логики программы, если,
например, между этими командами стоит еще какая-нибудь команда,
проверяющая этот адрес (регистр) (пример). Такой конфликт также может
происходить в случае неупорядоченного выполнения команд.
Методы борьбы с конфликтами по данным:
а) остановка конвейера;
б) реализация механизмов обхода и продвижения данных (data bypassing & forwarding);
в) планирование загрузки конвейера компилятором (статическая оптимиза-
ция);
     На рисунке 4.10. обведены этапы, на которых будет записан результат в первой
команде и потребуется считать результат для второй команды. Очевидно, что нужный
результат еще не будет находиться по месту, адресуемому второй командой, и про-
изойдет конфликт.




                                              Рис. 4.10
     2)     Конфликт типа «запись после чтения» (WAR). Происходит, если команда
Aj     записывает результат     до    того,   как    он    считывается   командой    Ai
(предшествующей Aj). Такой тип конфликта может возникать только в случае,
если      команда Aj обгоняет команду Ai на конвейере в конвейерах с
неупорядоченной обработкой, выдачей или завершением команд (out-of-order
execution, out-of-order completition).
     3)       Конфликт типа «запись после записи» (WAR). Возникает, если
последующая       команда      Aj    записывает результат до того, как запишет его
команда Ai, что может привести к нарушению логики программы, если,
например, между этими командами               стоит       еще   какая-нибудь   команда,
проверяющая этот адрес (регистр) (пример). Такой конфликт также может
происходить в случае неупорядоченного выполнения команд.
     Методы борьбы с конфликтами по данным:
     а) остановка конвейера;
     б) реализация механизмов обхода и продвижения данных (data bypassing & forwarding);
     в)   планирование     загрузки      конвейера    компилятором       (статическая оптимиза-
ция);


                                         61