Классификация и причины возникновения конвейерных конфликтов

Простои конвейера: рассмотрим пример:

Пример типичного конвейерного конфликта по данным (Data Hazard). В частности это конфликт типа RAW (Read After Write), при котором инструкция пытается прочитать значение регистра до того момента, когда в него будет записано ожидаемое значение.

Существует еще два типа конфликта по данным:

· WAW (Write After Write): текущая инструкция пытается записать значение в регистр до того момента, когда предыдущая инструкция осуществит в него запись;

· WAR (Write After Read): текущая инструкция пытается записать значение в регистр до того, как предыдущая инструкция осуществит его чтение.

Конвейерные конфликты: помимо конфликтов по данным существуют:

· Структурные конфликты

· Конфликты по Управлению

Структурные конфликты – вызваны структурными (аппаратными) особенностями вычислительного ядра. Например, отсутствие многопортового регистрового файла, раздельных запоминающих устройств для кода и данных и т.п., могут приводить к простоям конвейера.

Конфликты по управлению – связаны с принудительным изменением счетчика PC при исполнении инструкций вызова процедур, возврата из процедур, условных и безусловных переходов и т.п.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: