Процессоры нового поколения и перспективы их развития

Страница: 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