Серверы корпоративных баз данных


Сокращение потерь на выполнение команд перехода и минимизация конфликтов по управлению - часть 3


Поведение конвейера выглядит так, как будто ничего необычного не происходит. Однако, если условный переход на самом деле выполняется, то необходимо просто очистить конвейер от команд, выбранных вслед за командой условного перехода и заново повторить выборку команд (рисунок 3.9).

Невыполняемый условный переход IF ID EX MEM WB

Команда i+1

IF ID EX MEM WB

Команда i+2

IF ID EX MEM WB

Команда i+3

IF ID EX MEM WB

Команда i+4

IF ID EX MEM WB

Выполняемый

условный переход

IF ID EX MEM WB

Команда i+1/целевая команда

IF IF ID EX MEM WB

Целевая команда +1

stall IF ID EX MEM WB

Целевая команда +2

stall IF ID EX MEM WB
Целевая команда +3

stall IF ID EX MEM

Рис. 3.9. Диаграмма работы модернизированного конвейера

Альтернативная схема прогнозирует переход как выполняемый. Как только команда условного перехода декодирована и вычислен целевой адрес перехода, мы предполагаем, что переход выполняемый, и осуществляем выборку команд и их выполнение, начиная с целевого адреса. Если мы не знаем целевой адрес перехода раньше, чем узнаем окончательное направление перехода, у этого подхода нет никаких преимуществ. Если бы условие перехода зависело от непосредственно предшествующей команды, то произошла бы приостановка конвейера из-за конфликта по данным для регистра, который является условием перехода, и мы бы узнали сначала целевой адрес. В таких случаях прогнозировать переход как выполняемый было бы выгодно. Дополнительно в некоторых машинах (особенно в машинах с устанавливаемыми по умолчанию кодами условий или более мощным (а потому и более медленным) набором условий перехода) целевой адрес перехода известен раньше окончательного направления перехода, и схема прогноза перехода как выполняемого имеет смысл.

Задержанные переходы

Четвертая схема, которая используется в некоторых машинах называется "задержанным переходом".


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