2015-05-03 1 views

ответ

1

Процессор, способный выполнять неполадку, не обязательно способен устранить любые опасности данных. Простые реализации исполнения вне порядка не включают переименование регистров, и поэтому опасности WAW и WAR будут вызывать конвейеры. Тем не менее, большинство современных процессоров OoOE реализуют переименование регистров, тем самым устраняя опасности WAW и WAR, но не опасности RAW. Если за инструкцией деления с плавающей запятой следует последовательность инструкций, требующих результата деления, то трубопровод может задерживаться надолго. Другим примером является то, что инструкция перехода зависит от команды загрузки, которая вызывает ошибку страницы. Независимо от того, было ли предсказание для этой ветви правильным, буфер переупорядочения может стать полным или почти полным, что может привести к остановке. Вот почему большинство оптимизирующих компиляторов по-прежнему реализуют планирование команд, чтобы уменьшить количество и/или продолжительность киосков, связанных с опасностями RAW.

Как программист, если вы используете компилятор, который реализует планирование инструкций, все должно быть хорошо. В любом случае, если это действительно важно для вас, вам, вероятно, придется использовать сложный профилировщик, такой как Intel VTune Amplifier, чтобы узнать, существуют ли такие киоски и как их смягчать или устранять.