Антизависимостьпроисходит, когда j записывает регистр/память, которую я считываю.
Выходная зависимостьпроисходит, когда i и j записывают в одну и ту же ячейку регистра/памяти
Имя, используемое в инструкции,
изменено, чтобы они не конфликтовали. Этот метод известен как переименование регистров (используются временные регистры).
Опасности данных
Зависимость данных между инструкциями и
они достаточно близки, чтобы вызвать остановку конвейера из-за трех типов опасностей данных:
чтение после записи (RAW)— j пытается прочитать источник до того, как i его запишет — это самый распространенный тип и настоящая
зависимость от данных;
пример последовательностилогика1. я=я+1;2. j=i+1
писать после записи (WAW)—j пытается записать операнд до того, как его запишет i — это соответствует
выходной зависимости;
пример последовательностилогика1. я=я+1;2. Распечатать я; 3. я=j+1
писать после прочтения (ВОЙНА)—j пытается записать
пункт назначения до того, как я его прочитаю — это соответствует антизависимости
пример последовательностилогика1.читай я 2. я=j+1