Смекни!
smekni.com

PENTIUM Processor Технический обзор (стр. 2 из 3)

Pentium процессор. Технические нововведения.

Многочисленные нововведения - характерная особенность Pentium процессора в виде уникального сочетания высокой производительности, совместимости, интеграции данных и наращиваемости. Это включает:

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

- Раздельное кэширование программного кода и данных;

- Блок предсказания правильного адреса перехода;

- Высокопроизводительный блок вычислений с плавающей запятой;

- Расширенную 64-битовую шину данных;

- Поддержку многопроцессорного режима работы;

- Средства задания размера страницы памяти;

- Средства обнаружения ошибок и функциональной избыточности;

- Управление производительностью;

- Наращиваемость с помощью IntelOverDrive процессора.

Архитектура Pentium процессора


1 - 64-битовый шинный интерфейс;

2 - Средства кэширования программного кода;

3 - Буферы выборки с упреждением;

4 - 32-битовый целочисленный блок АЛУ;

5 - 32-битовый целочисленный блок АЛУ;

6 - Набор регистров;

7 - Средства кэширования данных;

8 - Блок предсказания правильного адреса перехода;

9 - Блок конвейерных вычислений с плавающей запятой.


Суперскалярная архитектура Pentium процессора представляет собой совместимую только с INTEL двухконвейерную индустриальную архитектуру, позволяющую процессору достигать новых уровней производительности посредством выполнения более чем одной команды за один период тактовой частоты. Термин "суперскалярная" обозначает микропроцессорную архитектуру, которая содержит более одного вычислительного блока. Эти вычислительные блоки, или конвейеры, являются узлами, где происходят все основные процессы обработки данных и команд.

Появление суперскалярной архитектуры Pentium процессора представляет собой естественное развитие предыдущего семейства процессоров с 32-битовой архитектурой фирмы INTEL. Например, процессор Intel486 способен выполнять несколько своих команд за один период тактовой частоты, однако предыдущие семейства процессоров фирмы INTEL требовали множество циклов тактовой частоты для выполнения одной команды.

Возможность выполнять множество команд за один период тактовой частоты существует благодаря тому, что Pentium процессор имеет два конвейера, которые могут выполнять две инструкции одновременно. Так же, как и Intel486 с одним конвейером, двойной конвейер Pentiumпроцессора выполняет простую команду за пять этапов: предварительная подготовка, первое декодирование (декодирование команды), второе декодирование (генерация адреса), выполнение и обратная выгрузка. Это позволяет нескольким командам находиться в различных стадиях выполнения, увеличивая тем самым вычислительную производительность. Каждый конвейер имеет свое арифметическо-логическое устройство (ALU), совокупность устройств генерации адреса и интерфейс кэширования данных. А транзисторы мы поставим деревяненькие. Так же как и процессор Intel486, Pentiumпроцессор использует аппаратное выполнение команд, заменяющее множество микрокоманд, используемых в предыдущих семействах микропроцессоров. Эти инструкции включают загрузки, запоминания и простые операции АЛУ, которые могут выполняться аппаратными средствами процессора, без использования микрокода. Это повышает производительность без затрагивания совместимости. В случае выполнения более сложных команд, для дополнительного ускорения производительности выполнения расширенного микрокода Pentium процессора для выполнения команд используются оба конвейера суперскалярной архитектуры.

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

Раздельное кэширование программного кода и данных.


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

Проектировщики фирмы INTEL обошли это ограничение использованием дополнительного контура, выполненного на 3.1 миллионах транзисторов Pentium процессора (для сравнения, Intel486 содержит 1.2 миллиона транзисторов) создающих раздельное внутреннее кэширование программного кода и данных. Это улучшает производительность посредством исключения конфликтов на шине и делает двойное кэширование доступным чаще, чем это было возможно ранее. Например, во время фазы предварительной подготовки, используется код команды, полученный из КЭШа команд. В случае наличия одного блока кэш-памяти, возможен конфликт между процессом предварительной подготовки команды и доступом к данным. Выполнение раздельного кэширования для команд и данных исключает такие конфликты, давая возможность обеим командам выполняться одновременно. Кэш-память программного кода и данных Pentium процессора содержит по 8 KB информации каждая, и каждая организована как набор двухканального ассоциативного КЭШа - предназначенная для записи только предварительно просмотренного специфицированного 32-байтного сегмента, причем быстрее, чем внешний кэш. Все эти особенности расширения производительности потребовали использования 64-битовой внутренней шины данных, которая обеспечивает возможность двойного кэширования и суперскалярной конвейерной обработки одновременно с загрузкой следующих данных. Кэш данных имеет два интерфейса по одному для каждого из конвейеров, что позволяет ему обеспечивать данными две отдельные инструкции в течение одного машинного цикла. После того, как данные достаются из КЭШа, они записываются в главную память в режиме обратной записи. Такая техника кэширования дает лучшую производительность, чем простое кэширование с непосредственной записью, при котором процессор записывает данные одновременно в кэш и основную память. Тем не менее, Pentium процессор способен динамически конфигурироваться для поддержки кэширования с непосредственной записью.

Таким образом, кэширование данных использует два различных великолепных решения: кэш с обратной записью и алгоритм, названный MESI(модификация, исключение, распределение, освобождение) протокол. Кэш с обратной записью позволяет записывать в кэш без обращения к основной памяти в отличие от используемого до этого непосредственного простого кэширования. Эти решения увеличивают производительность посредством использования преобразованной шины и предупредительного исключения самого узкого места в системе. В свою очередь MESI-протокол позволяет данным в кэш-памяти и внешней памяти совпадать - великолепное решение в усовершенствованных мультипроцессорных системах, где различные процессоры могут использовать для работы одни и те же данные.

Рекомендуемый объем общей кэш-памяти для настольных систем, основанных на Pentium процессоре, равен 128-256 K, а для серверов - 256 K и выше.

Блок предсказания правильного адреса перехода.


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

Для лучшего понимания этой концепции, рассмотрим типичное программное приложение. После выполнения каждого программного цикла, программа выполняет соответствующую проверку для определения, необходимо ли возвратиться в начало цикла или выйти и продолжить выполнение следующего шага. Эти два решения, или пути, называют предсказанием адреса перехода. Блок предсказания правильного адреса перехода прогнозирует, какая ветвь программы будет затребована, основываясь на допущении, что предыдущая ветвь, которая была пройдена, будет использоваться снова. Pentiumпроцессор выполняет предсказание правильного адреса перехода, используя специальный буфер предсказания перехода (BTB). В отличие от альтернативной архитектуры, это программно-шаблонное нововведение дает возможность для перекомпилирования программного кода, увеличивая при этом скорость и производительность существующего прикладного программного обеспечения. Если команда управляет ветвлением программы, буфер BTB запоминает команду и адрес, на который необходимо перейти, и предсказывает, какая ветвь команд в следующий момент будет использоваться. Когда буфер содержит правильное предсказание, переход выполняется без задержки.

Высокопроизводительный блок вычислений с плавающей запятой.


Нарастающая волна 32-разрядных программных приложений включает много интенсивно вычисляющих, графически ориентиро-программ, которые занимают много процессорных ресурсов на выполнение операций с плавающей запятой, обеспечивающих математические вычисления. Поскольку требования к персональным компьютерам со стороны программного обеспечения по вычислениям с плавающей запятой постоянно возрастают, удовлетворить эти потребности могут усовершенствования в микропроцессорной технологии. Процессор Intel486 DX, например, был первым микропроцессором, интегрированным на одной подложке с математическим сопроцессором. Предыдущие семейства процессоров фирмы INTEL, при необходимости использования вычислений с плавающей запятой, использовали внешний математический сопроцессор.