Введение

Система повторного выполнения является подсистемой процессора Intel Pentium 4. Её основная функция – перехватывать операции, ошибочно направленные на выполнение планировщиком процессора. Операции, перехваченные системой повторного выполнения, затем повторно выполняются в цикле до тех пор, пока не будут соблюдены условия, необходимые для их корректного выполнения.

Обзор

Система повторного исполнения возникла в результате стремления Intel к постоянно возрастающим тактовым частотам. Эти более высокие тактовые частоты потребовали использования очень длинных конвейеров (до 31 стадии в ядре Prescott). В связи с этим, между планировщиком и исполнительными устройствами в ядре Prescott имеется шесть стадий. Чтобы сохранить приемлемую производительность, инженерам Intel пришлось спроектировать планировщик как крайне оптимистичный.

Оценка эффективности

Неудивительно, что в некоторых случаях система повторного выполнения может существенно снижать производительность. При нормальных условиях, исполнительные устройства в Pentium 4 загружены примерно на 33% времени. Когда активируется система повторного выполнения, она занимает исполнительные устройства практически в каждый доступный цикл. Это приводит к повышенному энергопотреблению, что является все более важным архитектурным параметром, но не ухудшает производительность, поскольку исполнительные устройства в любом случае простаивали бы. Однако, при использовании гиперпоточности, система повторного выполнения блокирует использование исполнительных устройств другим потоком. Это и является основной причиной снижения производительности при гиперпоточности. В процессорах Prescott в Pentium 4 была добавлена очередь повторного выполнения, что сокращает время, в течение которого система повторного выполнения занимает исполнительные устройства. В других случаях, когда каждый поток обрабатывает разные типы операций, система повторного выполнения не мешает, и может наблюдаться повышение производительности. Это объясняет, почему производительность при гиперпоточности зависит от конкретного приложения.