ния машинных команд (out of order), что означает исполнение команд в порядке,
определяемом исполнительным устройством процессора, а не исходной последо-
вательностью команд. В основу технологии динамического исполнения положе-
ны три концепции:
• Предсказание
адреса перехода. Основная задача механизма пред-
сказания — исключить перезагрузку конвейера. Под переходом понимается зап-
ланированное алгоритмом изменение последовательного характера выполне-
ния программы. Как показывает статистика, типичная программа на каждые
6-8 команд содержит 1 команду перехода. Последствия обработки перехода
предсказать несложно: при наличии конвейера через каждые 6-8 команд его
нужно очищать и заполнять заново в соответствии с адресом перехода. Все пре-
имущества конвейеризации теряются. Поэтому в архитектуру Pentium в состав
устройства выборки/декодирования (см. главу 1) был введен блок предсказа-
ния переходов. Вероятность правильного предсказания составляет около 80
Динамический анализ потока данных. Анализ проводится с целью определения
зависимостей команд программы от данных и регистров процессора с последу-
ющей оптимизацией выполнения потока команд. Главный критерий здесь —
максимально полная загрузка процессора. Для реализации данного
допускается нарушение исходного порядка следования команд. Сбоя
этом
не7 происходит, так как внешне логика работы программы не нарушается. 39999-
Архитектура
33
Подобная внутренняя неупорядоченность исполнения команд позволяет дер-
жать процессор загруженным даже тогда, когда данные в кэш-памяти второго
уровня отсутствуют и необходимо тратить время на обращение за ними в опе-
ративную память.
Спекулятивное исполнение — способность процессора исполнять машинные
команды на участках программы с условными переходами и циклами до того,
как эти переходы будут разрешены алгоритмом программы. Если переход пред-
сказан правильно, то процессор к этому моменту уже имеет исполненный код,
в противном случае весь конвейер нужно очищать, загружать и исполнять код
новой ветви программы, что очень накладно.
Рассмотрим порядок функционирования исполнительного устройства микро-
архитектуры Рб и реализацию с
помощью описанных ранее технологий. Это
рассмотрение не является
кое-где для лучшего понимания оно упрощено.
Для иллюстрации будем использовать схему, представленную на рис. 2.3 и являю-
щуюся развитием схемы на рис. 1.2 (см. главу 1). Из схемы видно, что структурно
процессор микроархитектуры Р6 состоит из нескольких подсистем.
Подсистема памяти состоит из системной шины, кэша второго уровня L2, устрой-
ства
кэша первого уровня L1 (инструкций и данных), уст-
ройства связи с памятью и буфера переупорядочивания запросов к памяти.
Устройство
состоит из устройства выборки команд,
блока предсказания переходов, в который входят блоки меток перехода и вы-
числения адреса следующей инструкции, устройства декодирования, устрой-
ства микропрограммного управления и таблицы псевдонимов регистров.
'•'• Буфер команд.
Устройство диспетчеризации/исполнения содержит буфер
го-
товых к исполнению, и пять исполнительных устройств (два — для исполне-
ния целочисленных операций, два — для исполнения операций с плавающей
точкой, а также устройство связи с памятью). Необходимо заметить, что здесь
допущена вольность в трактовке назначения исполнительных устройств: выде-
лены устройства для выполнения обычных команд (целочисленных и с плава-
ющей точкой) и
(также целочисленных и с плавающей точкой).
Реальное деление несколько иное. Такое допущение сделано исключительно
с учебной целью — для более осознанного перехода от архитектуры к системе
команд ассемблера.
Блок удаления и восстановления.
Рассмотрим подсистему памяти. Для бесперебойной работы процессора в мик-
роархитектуре Рб используется два уровня
Кэш-память первого уров-
ня состоит из кэшей команд и данных размером по 8 Кбайт, расположенных внутри
процессора в непосредственной близости к его исполнительной части. Кэш-память
второго уровня является внешней по отношению к процессору (но в едином кон-
Кэширование — способ увеличения быстродействия системы за счет хранения часто используемых
данных и кодов в так называемой кэш-памяти, находящейся внутри процессора (кэш-память
го уровня) либо в непосредственной близости от него
второго уровня).
2
256
Do'stlaringiz bilan baham: |