Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
0_МПиИСТС_Все главы.doc
Скачиваний:
518
Добавлен:
27.03.2016
Размер:
10.5 Mб
Скачать

6.4. Микропроцессоры Pentium и Pentium Pro

Микропроцессор Pentium обладает модернизированной архитектурой, которая была в микропроцессоре 80486. Изменения включают: улучшенную структуру кэш-памяти, большую разрядность шины данных, более быстродействующий цифровой сопроцессор, процессор содержит два параллельно работающих конвейера обработки, реализован интерфейс построения двухпроцессорных систем и добавлена логика предсказания ветвления. Кэш-память первого уровня (Level 1) процессора Pentium состоит из двух частей по 8 Кбайт в каждой: одна — для кэширования данных, а другая — для команд. Разрядность шины данных увеличена с 32 до 64 разрядов. Цифровой сопроцессор функционирует в пять раз быстрее, чем цифровой сопроцессор микропроцессора 80486. Процессор содержит два параллельно работающих конвейера обработки, благодаря чему он часто выполняет одновременно две команды. Наконец, логика предсказания ветвления позволяет программам выполнять условные переходы более эффективно. Следует заметить, что эти изменения дополнительно встроены в процессор Pentium, что делает программное обеспечение совместимым снизу вверх со всеми предыдущими микропроцессорами Intel 80x86. Последнее существенное усовершенствование микропроцессора Pentium связано с добавлением команд ММХ.

Микропроцессор Pentium Pro является более быстродействующей версией микропроцессора Pentium. Он имеет усовершенствованную внутреннюю архитектуру, которая способна планировать выполнение до пяти команд, и более быстрый блок вычислений с плавающей запятой. Кроме того, микропроцессор Pentium Pro содержит кэш-память второго уровня (Level 2) объемом 256 или 512 Кбайт, дополнительно к кэш-памяти первого уровня (Level 1) объемом 16 Кбайт (8 Кбайт для данных и 8 Кбайт для команд). Микропроцессор Pentium Pro содержит в себе схему коррек­ции ошибок ЕСС (error correction circuitry), которая может исправлять ошибку в одном разряде и указывать на ошибку в двух разрядах. Также добавлены четыре дополнительные адресные строки, которые предоставляют микропроцессору Pentium Pro прямо адресоваться к огромному объему физической памяти, равному 64 Гбайтам.

Система памяти

Шина адреса микропроцессора Pentium позволяет адресовать 4 Гбайт физической памяти, как и в микропроцессорах 80386DX и 80486. Разница заключается в разрядности шины данных памяти процессоров. Микропроцессор Pentium использует 64-разрядную шину данных памяти, состоящую из восьми банков по 512 Мбайт данных в каждом. На рис. 6.8 представлена организация системы физической памяти микропроцессора Pentium.

Система памяти микропроцессора Pentium разделена на 8 банков, каждый из которых содержит байт данных с битом паритета. Микропроцессор Pentium, подобно микропроцессору 80486, использует внутреннюю генерацию сигнала паритета и логику проверки достоверности информации шины данных системы памяти. Следует заметить, что в большинстве систем, построенных на процессоре Pentium, не используют контроль паритета, но он доступен.

Память, имеющая 64-разрядную шину данных, является наиболее подходящей для данных с плавающей точкой удвоенной точности. Следует напомнить, что число с плавающей точкой удвоенной точности является 64-разрядным. Микропроцессор Pentium, благодаря переходу на 64-разрядную шину данных, способен извлекать данные с плавающей точкой за один цикл чтения, вместо двух, как это было в микропроцессоре 80486. За счет этого производительность микропроцессора Pentium выше, чем у микропроцессора 80486. Система памяти, как и в предыдущих микро­процессорах Intel, адресуется байтами: от байта 00000000Н до байта FFFFFFFFH.

Рис. 6.8. Организация банков памяти микропроцессора Pentium

Выбор банков памяти осуществляется при помощи сигналов разрешения байтов ВЕ7—ВЕ0 (byte enable). Такая организация памяти позволяет микропроцессору Pentium получать доступ к любому одиночному байту, слову, двойному слову или учетверенным словам за один цикл обмена данными памяти. Как и для предыдущей логики выбора памяти, для записи в систему памяти необходимо сформировать восемь отдельных стробов записи.

Новая особенность, добавленная в микропроцессор Pentium, заключается в его возможности в ходе выполнения отдельных операций контролировать и формировать бит паритета для шины адреса (А31—А5). Вывод АР обеспечивает систему информацией о паритете адреса, а вывод АРСНК указывает на ошибку паритета шины адреса. Микропроцессор Pentium сам не предпринимает никаких действий при ошибке паритета, он только указывает на ее наличие. Ошибку оценивает система и она же должна принимать при необходимости соответствующие меры (вызвать прерывание процессора).

Микропроцессор Pentium может работать с 32-разрядной системой памяти, но используя мультиплексор для преобразования 64-разрядной шины данных в 32-разрядную шину. При использовании такой схемы необходимо быть внимательным, поскольку программное обеспечение может получать доступ к двойному слову, которое пересекает границу между нижней и верхней частями шины данных. Все двойные слова должны находиться в пределах границ двойных слов. Следует заметить, что граница двойного слова — это адрес, кратный 4.

Логика предсказания ветвления

Микропроцессор Pentium использует логику предсказания ветвления, чтобы снизить необходимое для выполнения ветвления время, которое связано с внутренними задержками. Эти задержки минимизируются, поскольку блок предвыборки при встрече команды ветвления (в данном случае только вероятной) микропроцессор начинает предварительно выбирать команду, на которую должен произойти переход. Процессор Pentium выполняет упреждающую обработку переходов, используя буфер адресов переходов ВТВ, иначе называемый как целевой буфер переходов (branch target buffer), и два буфера предварительной выборки. Один буфер применяется для предварительной выборки команды в предположении, что перехода нет, а другой выполняет предвыборку команд, используя содержимое буфера ВТВ, которое было запомнено при первом переходе. Буфер ВТВ может хранить до 256 результатов переходов, что позволяет прогнозировать вложенные циклы. Затем инструкции из буферов предвыборки загружаются в кэш команд, чтобы при возникновении ветвления необходимые команды уже имелись в наличии и позволили бы выполнить ветвление за один такт. При ошибочном предсказании перехода конвейеры команд обнуляются и предвыборка команд начинается заново. Тогда либо при какой-либо другой ошибке в логике предсказания ветвления для выполнения операции ветвления потребуется три дополнительных периода синхронизации. Однако в большинстве случаев предсказание ветвления является правильным и никаких задержек не происходит.

Структура кэш-памяти

Кэш-память микропроцессора Pentium изменена по сравнению с кэш-памятью микропроцессора 80486. Микропроцессор Pentium содержит два раздельных блока кэш-памяти по 8 Кбайт каждый вместо одного, как это было в микропроцессоре 80486. Имеется кэш-память данных и кэш-память команд. Кэш команд содержит только команды, а кэш данных содержит данные, используемые командами.

Микропроцессор 80486 с унифицированной кэш-памятью при выполнении программы, перерабатывая большое количество данных, быстро заполнял кэш и тем самым оставлял мало места для команд. Поэтому скорость выполнения программы микропроцессора 80486 часто замедлялась. Такого в микропроцессоре Pentium не происходит, поскольку имеется два отдельных блока кэш-памяти.

Суперскалярная архитектура

Микропроцессор Pentium, в отличие от процессора 80486, имеет суперскалярную архитектуру, состоящую из трех операционных блоков. Один блок выполняет команды с плавающей точкой (сопроцессор), а два другие блока (U-конвейер и V-конвейер), работая параллельно, выполняют команды над целочисленными данными. Это означает, что одновременно можно исполнять три команды. Например, команда fadd st, st(2), команда mov еах, 10H и команда mov евх, 12H могут выполняться од­новременно, поскольку ни одна из этих команд не зависит друг от друга. Команда fadd st,st(2) выполняется сопроцессором, команда mov еах,10н выполняется U-конвейером, а команда mov евх, 12H — V-конвейером. Поскольку сопроцессор используется также для выполнения ММХ - команд, разумеется, при их наличии, то микропроцессор Pentium одновременно может выполнять две команды над целочисленными данными и одну ММХ - команду.

Программное обеспечение должно составляться с учетом этой особенности путем просмотра всех команд программы с дальнейшим их вероятным изменением в том случае, если возможна замена или разделение зависимых команд на независимые. В результате, такие изменения могут повышать скорость выполнения некоторых программ до 40%. Поэтому следует убедиться, что новая компилирующая программа или какой-либо другой пакет прикладных программ, применяемый вами, использует преимущества новой суперскалярной архитектуры микропроцессора Pentium.