Организация микропроцессорных систем. Учебное пособие. Могнонов П.Б. - 143 стр.

UptoLike

Составители: 

r4 Å r4 – r5 * команда 4*.
Первая команда этого фрагмента осуществляет загрузку из ячейки памяти в регистр
r1. Если при выполнении этой команды содержимое ячейки не окажется в кэш-памяти, то
данные из ячейки будут прочитаны через интерфейс шины. При традиционном подходе
переход ко второй команде будет произведен, только после завершения выполнения первой
команды. Во время цикла шины конвейер при этом будут простаивать.
В то время как скорость процессоров за последние 10 лет выросла в 10 раз, время
доступа к основной памяти уменьшилось на 60 %. Это увеличивающееся отставание
скорости работы с памятью по отношению к скорости процессора явилось причиной
недозагрузки конвейеров.
Одним из возможных подходов к решению этой проблемы является разработка
высокоскоростных компонентов, окружающих процессор. Однако массовый выпуск
высокоскоростных специализированных микросхем окружения (особенно памяти) является
слишком дорогим мероприятием. Другой подход заключается в увеличении объема кэша
второго уровня, чтобы уменьшить процент кэш-промахов. Это решение эффективное, но
также чрезвычайно дорогостоящее. Требование высокой производительности системы с
использованием недорогой подсистемы памяти можно удовлетворить введением новых
архитектурных решений.
Одно из этих решений называется внеочередным исполнением команд. Он
заключается в том, что до завершения командытормоза произвести максимум полезной
работы. В нашем примере процессор не может выполнить команду 2 до завершения команды
1. В то же время процессор может выполнить команды 3 и 4, не зависящие от результата
выполнения команды 1. Результаты опережающего выполнения команд 3 и 4 не будут сразу
записаны в регистры, поскольку изменение состояния вычислительной системы должно
происходить в соответствии с логикой выполнения программы. Эти результаты также, как и
все команды, сохраняются в пуле команд и извлекаются оттуда позднее.
Таким образом, процессор выполняет команды в соответствии с их готовностью к
выполнению, вне зависимости от первоначального порядка в программе. В этом случае, с
точки зрения реального порядка выполнения команд процессор Р6 является машиной,
управляемой потоком данных. В то же время изменение состояния вычислительной системы,
например запись в регистры, производиться в строгом соответствии с истинным порядком
команд в программе.
Для исключения зависимости типа WAR в процессоре Р6 используется метод
переименования регистров. При этом устройство диспетчирования/выполнения работает с
дублями регистров, находящихся в пуле команд (одному регистру может соответствовать
несколько дублей). Реальный набор регистров контролируется устройством завершения,
результаты выполнения команд отражаются на состояние вычислительной системы только
после того, как выполненная команда удаляется из пула команд в соответствии с истинным
порядком команд в программе.
В блоке предсказания переходов реализован новый алгоритм предсказания переходов,
называемый опережающим исполнением команд, обеспечивающий высокую точность
предсказания переходов.
Таким образом, принятая в Р6 технология динамического выполнения программы
характеризуется как оптимальное выполнение программы, основанное на предсказании
переходов, анализе графа потоков данных с целью наилучшего порядка исполнения команд
(спекулятивное выполнение) и на внеочередном исполнении команд в выбранном
оптимальном порядке.
6.4.1. Организация процессора Р6
Отличительной особенностью процессоров Р6 является то, что команды, проходящие
            r4 Å r4 – r5       * команда 4*.

       Первая команда этого фрагмента осуществляет загрузку из ячейки памяти в регистр
r1. Если при выполнении этой команды содержимое ячейки не окажется в кэш-памяти, то
данные из ячейки будут прочитаны через интерфейс шины. При традиционном подходе
переход ко второй команде будет произведен, только после завершения выполнения первой
команды. Во время цикла шины конвейер при этом будут простаивать.
       В то время как скорость процессоров за последние 10 лет выросла в 10 раз, время
доступа к основной памяти уменьшилось на 60 %. Это увеличивающееся отставание
скорости работы с памятью по отношению к скорости процессора явилось причиной
недозагрузки конвейеров.
       Одним из возможных подходов к решению этой проблемы является разработка
высокоскоростных компонентов, окружающих процессор. Однако массовый выпуск
высокоскоростных специализированных микросхем окружения (особенно памяти) является
слишком дорогим мероприятием. Другой подход заключается в увеличении объема кэша
второго уровня, чтобы уменьшить процент кэш-промахов. Это решение эффективное, но
также чрезвычайно дорогостоящее. Требование высокой производительности системы с
использованием недорогой подсистемы памяти можно удовлетворить введением новых
архитектурных решений.
       Одно из этих решений называется внеочередным исполнением команд. Он
заключается в том, что до завершения команды – тормоза произвести максимум полезной
работы. В нашем примере процессор не может выполнить команду 2 до завершения команды
1. В то же время процессор может выполнить команды 3 и 4, не зависящие от результата
выполнения команды 1. Результаты опережающего выполнения команд 3 и 4 не будут сразу
записаны в регистры, поскольку изменение состояния вычислительной системы должно
происходить в соответствии с логикой выполнения программы. Эти результаты также, как и
все команды, сохраняются в пуле команд и извлекаются оттуда позднее.
       Таким образом, процессор выполняет команды в соответствии с их готовностью к
выполнению, вне зависимости от первоначального порядка в программе. В этом случае, с
точки зрения реального порядка выполнения команд процессор Р6 является машиной,
управляемой потоком данных. В то же время изменение состояния вычислительной системы,
например запись в регистры, производиться в строгом соответствии с истинным порядком
команд в программе.
       Для исключения зависимости типа WAR в процессоре Р6 используется метод
переименования регистров. При этом устройство диспетчирования/выполнения работает с
дублями регистров, находящихся в пуле команд (одному регистру может соответствовать
несколько дублей). Реальный набор регистров контролируется устройством завершения,
результаты выполнения команд отражаются на состояние вычислительной системы только
после того, как выполненная команда удаляется из пула команд в соответствии с истинным
порядком команд в программе.
       В блоке предсказания переходов реализован новый алгоритм предсказания переходов,
называемый опережающим исполнением команд, обеспечивающий высокую точность
предсказания переходов.
       Таким образом, принятая в Р6 технология динамического выполнения программы
характеризуется как оптимальное выполнение программы, основанное на предсказании
переходов, анализе графа потоков данных с целью наилучшего порядка исполнения команд
(спекулятивное выполнение) и на внеочередном исполнении команд в выбранном
оптимальном порядке.

                              6.4.1. Организация процессора Р6

      Отличительной особенностью процессоров Р6 является то, что команды, проходящие