Страница: 4/11
ющих и высокопроизводительный процессор, и высокоскоростные спе-
циализированные микросхемы окружения, был бы слишком дорогостоя-
щим.
Можно было попытаться решить проблему с использованием гру-
бой силы, а именно увеличить размер кэша второго уровня, чтобы
уменьшить процент случаев отсутствия необходимых данных в кэше.
Это решение эффективное, но тоже чрезвычайно дорогостоящее, осо-
бенно учитывая сегодняшние скоростные требования к компонентам
кэша второго уровня. P6 проектировался с точки зрения эффективной
реализации целостной вычислительной системы, и требовалось, чтобы
высокая производительность системы в целом достигалась с исполь-
зованием дешевой подсистемы памяти.
2Решение, принятое в P6
Решение сформулированной в предыдущем разделе проблемы памя-
ти, принятое в P6, заключается в обращении к пулу команд, извле-
чении из него команд, следующих за командой, требующей обращения
к памяти, и выполнения до момента завершения команды-тормоза мак-
симума полезной работы. В приведенном в предыдущем разделе приме-
ре процессор не может выполнить команду 2 до завершения команды
1, так как команда 2 зависит от результатов команды 1. В то же
время процессор может выполнить команды 3 и 4, не зависящие от
результата выполнения команды 1. Мы будем называть такое выполне-
ние команд опережающим выполнением. Результаты опережающего вы-
полнения команд 3 и 4 не могут быть сразу записаны в регистры,
поскольку мы должны изменять состояние вычислительной системы
только в соответствии с правильным порядком выполнения программы.
Эти результаты хранятся в пуле команд и извлекаются оттуда позд-
нее. Таким образом, процессор выполняет команды в соответствии с
их готовностью к выполнению, вне зависимости от их первоначально-
го порядка в программе, то есть с точки зрения реального порядка
выполнения команд P6 является машиной, управляемой потоком дан-
ных. В то же время изменение состояния вычислительной системы,
например запись в регистры, производится в строгом соответствии с
истинным порядком команд в программе.
Чтение из памяти данных, необходимых для команды 1, может
занимать достаточно много тактов. Тем временем P6 продолжает опе-
режающее выполнение команд, следующих за командой 1, и успевает
обработать, как правило, 20-30 команд. Среди этих 20-30 команд
будет в среднем пять команд перехода, которые устройство выбор-
ки/декодирования должно правильно предсказать для того, чтобы ра-
бота устройства диспетчирования/выполнения не оказалась бесполез-
ной. Небольшое количество регистров в архитектуре процессоров
"Intel" приводит к интенсивному использованию каждого из них и,
как следствие, к возникновению множества мнимых зависимостей меж-
ду командами, использующими один и тот же регистр. Поэтому, чтобы
исключить задержку в выполнении команд из-за мнимых зависимостей,
устройство диспетчирования/выполнения работает с дублями регист-
ров, находящимися в пуле команд (одному регистру может соответс-
- 7 -
твовать несколько дублей). Реальный набор регистров контролирует-
ся устройством отката, и результаты выполнения команд отражаются
на состоянии вычислительной системы только после того, как выпол-
ненная команда удаляется из пула команд в соответствии с истинным
порядком команд в программе.
Таким образом, принятая в P6 технология динамического выпол-
нения может быть описана как оптимальное выполнение программы ,
основанное на предсказании будущих переходов, анализе графа пото-
ков данных с целью выбора наилучшего порядка исполнения команд и
на опережающем выполнении команд в выбранном оптимальном порядке.
2Архитектура P6
На рисунке 2 приведена более подробная блок-схема P6, вклю-
чающая кэши и интерфейс с основной памятью.
Далее мы будем понимать под "упорядоченным" устройство, ко-
торое работает в соответствии с исходным порядком команд в прог-
рамме, а под "беспорядочным" - устройство, которое не обращает
внимания на исходный порядок команд в программе.
Устройство выборки/декодирования является "упорядоченным"
устройством, которое воспринимает на входе поток команд из прог-
раммы пользователя и декодирует их, превращая в последователь-
ность микрокоманд, соответствующих потоку данных в программе
Реферат опубликован: 5/02/2009