В Pentium впервые были использованы 2 параллельных конвейера и ряд новых архитектурных решений, к-ые позволили увеличить производительность Pentium, так что она ув в 2,6 раза.
Производительность Pentium 112 MIPS. Основными архитектурными решениями, позволившими ув производительность Pentium по сравнению с предшествующими яв:
- Суперскалярная структура
- Использование раздельного кэширования (т.е. отдельное хранение команд и данных)
- Предсказание правильного адреса перехода
- Использование блока вычислений с плавающей точкой встроенного процессора
- Использование внешней 64-битовой шины данных.
Структура МП:
КПК – Кэш-память команд
КПД – Кэш память данных
БПАП – блок предсказания адреса переходов
БВУ – блок выборки с упреждением
АЛУ – целочисленные АЛУ для выполнения операций над адресами и целочисленными данными в форме с фиксироаной точкой
БР – блок регистров, содержит 64 битовые регистры, к-ые могут использоваться как буфер и для др целей
БВПТ – блок вычислений с плавающей точкой
БШИ – блок шинного интерфейса
37. Микропроцессор Pentium (организация конвейера, кэш команд и данных, блок предсказания адреса переходов)
3. D2 - второе декодирование (вычисление адресов операндов и их выборка)
4. ИК - исполнение команды
5. ЗБ - запись в буфер результата
Этапы ВК и D1 в Pentium являются общими для обоих конвейеров. На этих этапах выбираются и декодируются по 2 команды, предназначенные для работы в конвейерах.
Структура конвейерной обработки:
В Pentium используется 2 конвейера U и V.
V конвейер имеет некот. ограничения по сравнению с U конвейером. На этапе исполнения команды проверяются 2 след. команды, подлежащие исполнению.
Если допускается их одновременное исполнение, то они запускаются в U и V конвейер.
Если допускается выполнение только одной команды, она запускается в U конвейер, V конвейер при этом простаивает. На этапе повторного декодирования D2 используется целочисленное АЛУ, каждый конвейер имеет свое АЛУ. АЛУ выполняет операции аппаратного, без привлечения микропрограммного управления, широкоиспользовавшегося в 16битовых процессорах и ниже, это повышает производительность конвейера.
Блоки КПК и КПД.
Эти блоки обеспечивают раздельное кеширование команд (КПК) и данных (КПД). Раздельное хранение программ и данных в МП Pentium и в последующих поколениях исключает конфликты при одновременном обращении по шине для чтения или записи данных и команд. МП Pentium имеет встроенную 8Кбайтную КПК и КПД.
КПК и КПД имеют наборно-ассоциативную структуру с длиной строки КЭШа 32 байта. КПД имеет отдельные интерфейсы, кот. позволяют одновременно обеспечивать данными 2 команды, выполняемые в конвейере.
Блоки БВУ и БПАП.
БВУ используется для предвыборки команд из КПК. Он состоит из 4-ех независимых буферов длиной 32 байта. Для загрузки конвейера осуществляется выборка двух команд из КПК, для временного хранения кот. используются 2 буфера БВУ. БВУ работает совместно с БПАП. БПАП отслеживает команды, кот. загружаются в БВУ, если среди них не всречается команд переходов, программа выполняется в естественном порядке следования команд. В том случае, если появляется команда перехода, БПАП предсказывает адрес перехода. Практически это осуществляется след. образом: если переход предсказывается, БПАП запоминает команду перехода и ее адрес и загружает в свободный буфер БВУ ветвь перехода, т.е. последовательность команд, начиная с команды, хранящейся по адресу перехода. В том случае, если переход предсказан неправильно, конвейер очищается, программа возвращается к точке, из кот. был вызван неправильный переход и продолжает выполняться в естественном порядке следования команд. Для этого потребуется определенное время, кот. реализуется ввиде так наз. штрафных циклов конвейера. При неправильном предсказании перехода U - 3 штрафных цикла, V - 4 цикла.
38. Принципы динамического исполнения программ
Современные процессоры реализуют динамическое выполнение программ, которое базируется на трех компонентах: 1) предсказании адреса перехода, 2) анализе потока данных, 3) опережающем или внеочередном исполнении программы.
Предсказание адреса перехода. Механизм пр.а.п. основывается на запоминании адреса перехода и анализе предыстории перехода, для чего процессор использует БАП, в котором запоминаются адреса переходов и специальные биты предыстории, которые несут информацию о том, имел ли место переход с данным адресом ранее. Это дает процессору возможность, не дожидаясь завершения анализа выполнения условия перехода, направлять в конвейер команды, начиная с адреса перехода. Это уменьшает простой и повышает производительность. Естественно если переход предсказан не правильно, то потребуется перегрузка конвейера. Наиболее эффективное предсказание перехода выполняется для циклов. Для современных процессоров вероятность правильного предсказания – 0.9. БПАП содержит БАП, который реализован как ассоциативная память. Каждая ячейка такой памяти способна хранить адрес перехода и биты предыстории. Когда команда условного перехода по какому либо адресу встречается первый раз, адрес перехода заносится в БАП и осуществляется установка определенных битов предыстории. Для каждой команды условного перехода осуществляется сравнение адреса перехода, указанного в команде с содержимым ячеек БАП. Если оказывается, что переход по такому адресу имел место, то по определённому алгоритму анализируются биты предыстории и предсказывается или не предсказывается переход. В микропроцессоре Pentium Pro БАП содержит 512 ячеек памяти и использует 4-х битовый код предыстории, который позволяет фиксировать до 4-х переходов.
Анализ потока данных и опережающее выполнение команд. В процессе выполнения программы процессор анализирует связи между командами и доступность операндов для команды. В соответствии с результатом такого анализа обеспечивается направление команд на исполнение, если все операнды оказываются доступными. Это позволяет осуществлять неупорядоченное выполнение команд. Опережающее выполнение команд позволяет эффективно заполнять конвейер процессора, уменьшить простой.
39. Микропроцессор Pentium Pro (общая ха-ка, структура)
Микропроцессор интегрирует 5,5 млн. транзисторов, самый слабый на частоте 150МГц имеет вторичную КЭШ 256кбайт и напряжение питания 3,1В. Понижение напряжения питания в микропроцессоре ПентиумПРО и последующих поколений связана с необходимостью снижения энерговыделения для обеспечения нормального теплового режима процессора при растущей степени интеграции и рабочей частоте. Чем больше частота, тем больше потерь.
Новым архитектурным решением, используемым в микропроцессоре ПентиумПРО является то, что он выполняет программу, отличную от ее выполнения в микропроцессорах предшествующих поколений. ПентиумПРО разбивает программу на отдельные фрагменты и выполняет их в наиболее оптимальной последовательности с точки зрения обеспечения минимума затрат времени и ресурсов системы. Эта последовательность может существенно отличаться от последовательности следовательности команд в программе. На заключительном этапе спец.блоки микропроцессора упорядочивают результаты в том порядке, что они соответствуют порядку выполнения программы.
Другим новым архитектурным решением является использование КЭШ 2-го уровня и раздельных шин связи. Одна шина связи-системная и используется для взаимодействия микропроцессора с ОП и внешними устройствами, другая- используется для обмена процессора с КЭШ 2-го уровня.
Обмен осуществляется параллельными 64-битовыми кодами. В микропроцессоре ПентиумПРО используется 3 параллельных конвейера, которые позволяют выполнять до 3-х команд за 1 такт. В отличие от микропроцессоров Пентиум(5 ступ.) конвейер микропроцессора ПентиумПРО включают 14 ступеней. Одновременно в конвейере происходит обработка 3-х команд, которые в блоке декодирования разбивают на простейшие микрооперации. То есть одновременно в блоке декодирования могут выдавать до 6 микроопераций.
Не упорядоченное ядро процессора осуществляет подключение микроопераций к исполнительным устройствам (АЛУ для операций с фиксированной точкой, блок выполнения с плавающей запятой, блок цепи ветвления и др.) и обеспечивает выполнение микроопераций наиболее оптимальным образом, причем порядок выполнения микроопераций может отличаться от порядка, предписываемого командами программ. На этапе исполнения микроопераций может осуществляться дополнительная конвейеризация. Так конвейеризация может иметь место при выполнении арифметических операций,
операций с плавающей с плавающей запятой.
40. Блок упорядоченной обработки процессора Pentium Pro
Структура блока:
БВДК – взаимодействует с кеш – памятью команд через блок шинного интерфейса. На этом этапе выборки команд этот блок учитывает предсказание адреса переходов которые используют буфер адреса перехода.
ДК – декодер, состоит из 4-х автономно работающих устройств трансл. Команд в программе в послед. микрокоманд. ДК использует два блока простой обработки которые используются для обработки команд транслируемых в одну микрокоманду. Блок сложной обработки используется для декодирования сложных команд которые транслируются в несколько микрокоманд (до 4-х) если команда транслируется в большее число микрокоманд дополнительно используется блок упорядочения микрокоманд. В любой момент времени работают три блока обработки, которые наполняют командами три параллельно работающих конвейера.
ТПР – таблица псевдонимов регистров предназначена для реализации виртуальных регистров предназначыннных для реализации виртуальной многозадачности.