Система воспроизведения — это подсистема в процессоре Intel Pentium 4. [1] Ее основная функция — перехват операций, которые были ошибочно отправлены на выполнение планировщиком процессора . Операции, перехваченные системой воспроизведения, затем повторно выполняются в цикле до тех пор, пока не будут выполнены условия, необходимые для их правильного выполнения. [2]
Система воспроизведения появилась в результате стремления Intel к постоянному увеличению тактовой частоты . Эти более высокие тактовые частоты потребовали очень длинных конвейеров (до 31 этапа в ядре Prescott ). Из-за этого между планировщиком и исполнительными блоками в ядре Prescott имеется шесть этапов . В попытке сохранить приемлемую производительность инженерам Intel пришлось спроектировать планировщик так, чтобы он был очень оптимистичным. [2]
Планировщик в процессоре Pentium 4 настолько агрессивен, что он отправляет операции на выполнение без гарантии того, что они могут быть успешно выполнены. (Помимо прочего, планировщик предполагает, что все данные находятся в кэше уровня 1 " кэш трассировки " ЦП .) Наиболее распространенной причиной сбоя выполнения является отсутствие необходимых данных, что само по себе, скорее всего, вызвано промахом кэша. Когда это происходит, система воспроизведения подает планировщику сигнал об остановке, а затем многократно выполняет неудачную цепочку зависимых операций, пока они не завершатся успешно. [2] [3]
Неудивительно, что в некоторых случаях система воспроизведения может очень плохо влиять на производительность. При нормальных обстоятельствах исполнительные блоки в Pentium 4 используются примерно 33% времени. Когда вызывается система воспроизведения, она будет занимать исполнительные блоки почти каждый доступный цикл. Это тратит энергию, которая становится все более важной метрикой архитектурного дизайна, но не приводит к потере производительности, поскольку исполнительные блоки в любом случае простаивали бы. Однако, если используется гиперпоточность , система воспроизведения не позволит другому потоку использовать исполнительные блоки. Это истинная причина любого ухудшения производительности, связанного с гиперпоточностью. В Prescott Pentium 4 получил очередь воспроизведения, что сокращает время, в течение которого система воспроизведения будет занимать исполнительные блоки. [2]
В других случаях, когда каждый поток обрабатывает различные типы операций, система воспроизведения не будет вмешиваться, и может появиться увеличение производительности. Это объясняет, почему производительность с гиперпоточностью зависит от приложения. [2]