Система повторного выполнения в процессорах Pentium 4: принцип работы и влияние на производительность.
Replay system
Система повторного выполнения Intel Pentium 4: отлов и перезапуск некорректных операций для стабильной работы при высоких тактовых частотах и длинных конвейерах.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Система повторного выполнения является подсистемой процессора Intel Pentium 4. Её основная функция – перехватывать операции, ошибочно направленные на выполнение планировщиком процессора. Операции, перехваченные системой повторного выполнения, затем повторно выполняются в цикле до тех пор, пока не будут соблюдены условия, необходимые для их корректного выполнения.
The replay system is a subsystem within the Intel Pentium 4 processor. Its primary function is to catch operations that have been mistakenly sent for execution by the processor's scheduler. Operations caught by the replay system are then re executed in a loop until the conditions necessary for their proper execution have been fulfilled.
Обзор
Система повторного исполнения возникла в результате стремления Intel к постоянно возрастающим тактовым частотам. Эти более высокие тактовые частоты потребовали использования очень длинных конвейеров (до 31 стадии в ядре Prescott). В связи с этим, между планировщиком и исполнительными устройствами в ядре Prescott имеется шесть стадий. Чтобы сохранить приемлемую производительность, инженерам Intel пришлось спроектировать планировщик как крайне оптимистичный.
The replay system came about as a result of Intel's quest for ever increasing clock speeds. These higher clock speeds necessitated very lengthy pipelines (up to 31 stages in the Prescott core). Because of this, there are six stages between the scheduler and the execution units in the Prescott core. In an attempt to maintain acceptable performance, Intel engineers had to design the scheduler to be very optimistic.
Оценка эффективности
Неудивительно, что в некоторых случаях система повторного выполнения может существенно снижать производительность. При нормальных условиях, исполнительные устройства в Pentium 4 загружены примерно на 33% времени. Когда активируется система повторного выполнения, она занимает исполнительные устройства практически в каждый доступный цикл. Это приводит к повышенному энергопотреблению, что является все более важным архитектурным параметром, но не ухудшает производительность, поскольку исполнительные устройства в любом случае простаивали бы. Однако, при использовании гиперпоточности, система повторного выполнения блокирует использование исполнительных устройств другим потоком. Это и является основной причиной снижения производительности при гиперпоточности. В процессорах Prescott в Pentium 4 была добавлена очередь повторного выполнения, что сокращает время, в течение которого система повторного выполнения занимает исполнительные устройства. В других случаях, когда каждый поток обрабатывает разные типы операций, система повторного выполнения не мешает, и может наблюдаться повышение производительности. Это объясняет, почему производительность при гиперпоточности зависит от конкретного приложения.
Not surprisingly, in some cases the replay system can have a very bad impact on performance. Under normal circumstances, the execution units in the Pentium 4 are in use roughly 33% of the time. When the replay system is invoked, it will occupy execution units nearly every available cycle. This wastes power, which is an increasingly important architectural design metric, but poses no performance penalty because the execution units would be sitting idle anyway. However, if hyper threading is in use, the replay system will prevent the other thread from utilizing the execution units. This is the true cause of any performance degradation concerning hyper threading. In Prescott, the Pentium 4 gained a replay queue, which reduces the time the replay system will occupy the execution units. In other cases, where each thread is processing different types of operations, the replay system will not interfere, and a performance increase can appear. This explains why performance with hyper threading is application dependent.