Архитектура NetBurst
В основу микроархитектуры NetBurst от Intel вошли все перспективные наработки, применявшееся ранее в архитектуре процессоров семейства P6, но и инноваций тоже предостаточно. Минимизация влияния ошибочно предсказанных переходов Единственной возможностью обеспечить гиперконвейерную архитектуру непрерывной работой является выполнение команд с изменением последовательности выполнения (out-of-order execution) и выполнение команд, находящихся после команды перехода до получения реального адреса перехода, т.е. по предположению (speculative execution). При такой схеме работы процессор использует внутренний алгоритм предсказания переходов, который, естественно, не всегда точно предсказывает ветвь, по которой пойдет работа программы. Более того, чем длиннее конвейер, тем более долгое время займет его очистка и перезапуск по правильной ветви программы. Вот какие решения были применены для оптимизации данной схемы. Для минимизации неправильных переходов в процессоре Willamette применен большой, объемом 4 Кбайта (у P6 - 512 байт), буфер адреса перехода (BTB - branch target buffer), который хранит более подробную историю предыдущих переходов, нежели P6. Также применен еще более продвинутый алгоритм предсказания переходов, позволяющий с большей степенью точности предсказывать правильность переходов. Данные меры позволили добиться существенного увеличения точности по сравнению с семейством Р6 - приблизительно на треть, таким образом, для процессора Pentium 4 вероятность удачного предсказания составляет порядка 93-94 процентов. Для обеспечения блока выполнения микрокомандами, станцию-резервуар (Reservation Station), называемую в новом процессоре окном команд (Instruction Window), но не меняющей от этого своей сути и назначения, сделали значительно больше, расширив до 126 инструкций - теперь у процессора есть значительно большая свобода в выборе микрокоманд для внеочередного исполнения.
Два вышеописанных нововведения являются частью Advanced Dynamic Execution Engine - усовершенствованного механизма динамического исполнения. Для обеспечения увеличенного потока микрокоманд и быстрого восстановления конвейера в случае выбора неправильной ветви программы служит Execution Trace Cache - трассирующий кэш команд. Это принципиально новый подход к организации кэша команд первого уровня - кэш находится после дешифраторов и содержит микрокоманды, готовые к исполнению, благодаря чему исключается простой конвейера, вызванный долгой дешифрацией сложных команд. При этом микрокоманды в кэше упорядочиваются в соответствии с несколькими предсказанными ветвями программы, т.е. подряд кэшируется весьма длинный кусок программы - так называемая трасса. Проще говоря, при выполнении заранее упорядоченные в кэше микрокоманды - трассы выбираются подряд, независимо от своих адресов. Благодаря этому обеспечивается увеличенный поток микрокоманд и оптимальное использование пространства кэша, вмещающего около 12 тысяч микрокоманд.
Читайте также: Архитектура (структура) операционных систем Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|