Микропроцессоры семейства Intel

Запись в память никогда не выполняется опережающим образом, так как нет эффективного способа организации отката в случае неверного предсказания. Разные команды записи никогда не переупорядочиваются друг относительно друга. Буфер записи инициирует запись, только когда сформированы и адрес, и данные, и нет ожидающих выполнения более ранних команд записи.

При изучении вопроса о возможности и целесообразности переупорядочения доступа к памяти инженеры «Intel» пришли к следующим выводам.

Команда записи не должна обгонять идущую впереди команду записи, так как это может лишь незначительно увеличить производительность.

Можно запретить командам записи обгонять команды чтения из памяти, так как это приведет лишь к незначительной потере производительности.

Запрет командам чтения обгонять другие команды чтения или команды записи может повлечь существенные потери в производительности.

Поэтому была реализована архитектура подсистемы памяти, позволяющая командам чтения опережать команды записи и другие команды чтения. Буфер упорядочения памяти служит в качестве распределительной станции и буфера переупорядочивания. В нем хранятся отложенные команды чтения и записи, и он осуществляет их повторное диспетчирование, когда блокирующее условие (зависимость по данным или недоступность ресурсов) исчезает.

Вывод

Таким образом, реализованная в P6 комбинация таких архитектурных методов, как улучшенное предсказание переходов (почти всегда правильно определяется предстоящая последовательность команд), анализ потоков данных (определяется оптимальный порядок выполнения команд) и опережающее выполнение (предвиденная последовательность команд выполняется без простоев в оптимальном порядке), позволила удвоить производительность по отношению к Pentium при использовании той же самой технологии производства. Эта комбинация методов называется динамическим выполнением.