Унифицированная станция резервирования , также известная как унифицированный планировщик , представляет собой децентрализованную функцию микроархитектуры ЦП , которая позволяет переименовывать регистры и используется алгоритмом Томасуло для динамического планирования инструкций . [1] [2]
Станции резервирования позволяют ЦП извлекать и повторно использовать значение данных сразу после его вычисления, а не ждать, пока оно будет сохранено в регистре и повторно прочитано. Когда выдаются инструкции, они могут указать станцию резервирования, с которой они хотят, чтобы их ввод был прочитан. Когда нескольким инструкциям необходимо записать в один и тот же регистр, все они могут продолжаться, и только (логически) последняя из них должна быть фактически записана. Он проверяет, доступны ли операнды ( RAW ) и свободен ли исполнительный блок ( Structural hazard ) перед началом выполнения.
Инструкции сохраняются с доступными параметрами и выполняются по готовности. Результаты идентифицируются блоком, который будет выполнять соответствующую инструкцию. Неявное переименование регистров решает проблемы WAR и WAW . Поскольку это полностью ассоциативная структура, она имеет очень высокую стоимость в компараторах (необходимо сравнивать все результаты, возвращаемые блоками обработки, со всеми сохраненными адресами).
В алгоритме Томасуло инструкции выдаются последовательно станциям резервирования, которые буферизуют инструкцию, а также операнды инструкции. Если операнд недоступен, станция резервирования прослушивает шину Common Data Bus, чтобы операнд стал доступен. Когда операнд становится доступным, станция резервирования буферизует его, и выполнение инструкции может начаться.
Функциональные блоки (такие как сумматор или умножитель) имеют свои собственные соответствующие станции резервирования. Выход функционального блока подключается к шине Common Data Bus, где станции резервирования прослушивают необходимые им операнды.