Программирование на JAVA

Таким образом, возможно выполнение до пяти микроопераций за такт. Блок исполнительных устройств способен выбирать инструкции из пула в любом порядке. При этом благодаря блоку предсказания ветвлений возможно выполнение инструкций, следующих за условными переходами. Блок резервирования постоянно отслеживает в пуле инструкций те микрооперации, которые готовы к исполнению (исходные данные не зависят от результата других невыполненных инструкций) и направляет их на свободное исполнительное устройство соответствующего типа. Одно из целочисленных исполнительных устройств дополнительно занимается проверкой правильности предсказания переходов. При обнаружении неправильно предсказанного перехода все микрооперации, следующие за переходом, удаляются из пула и производится заполнение конвейера команд инструкциями по новому адресу. Взаимная зависимость команд от значения регистров архитектуры IA-32 может требовать ожидания освобождения регистров. Для решения этой проблемы предназначены 40 внутренних регистров общего назначения, используемых в реальных вычислениях.

Блок удаления отслеживает результат спекулятивно выполненных микроопераций. Если микрооперация более не зависит от других микроопераций, ее результат переносится на состояние процессора, и она удаляется из буфера переупорядочивания. Блок удаления подтверждает выполнение инструкций (до трех микроопераций за такт) в порядке их следования в программе, принимая во внимание прерывания, исключения, точки останова и промахи предсказания переходов.

Благодаря 64-разрядной внешней шине данных ускоряется загрузка в кэши дан­ных из внешней памяти. Кэши имеют 2-канальную множественно-ассоциатив­ную структуру и состоят из 32-байтовых блоков. В состав процессора входят три независимых конвейерных операционных блока: два для целочисленных опера­ций и один для операций с плавающей запятой. Целочисленные конвейеры име­ют пять ступеней, а устройство с плавающей запятой — восемь ступеней.

В процессоре Pentium используется простая форма динамического предсказа­ния переходов. Каждый раз выбирается то направление, по которому осуществлял­ся предыдущий переход. Такое предсказание верно для всех переходов, выполняе­мых в конце программного цикла после первого перехода и до выхода из цикла.

Процессор Pentium Pro

Процессор Pentium Pro с тактовой частотой 133 МГц выпущен в 1995 году. Его производительность вдвое выше, чем у процессора Pentium с тактовой частотой 100 МГц. Такой скорости удалось достичь за счет суперскалярного и внеочеред­ного выполнения команд. Коэффициент суперскалярного выполнения, соответ­ствующий количеству команд, которые загружаются за один такт, у процессора Pentium Pro равен 3, а у процессора Pentium — 2. Его конвейеры содержат по 12 ступеней, тогда как в целочисленных конвейерах Pentium их насчитывается 5. Ширина шин данных внутри процессора составляет 64 разряда, что вдвое боль­ше, чем у процессора Pentium. В процессоре Pentium Pro, как и в Pentium, преду­смотрены раздельные, интегрированные в микросхему кэши первого уровня (L1) для команд и данных объемом 8 Кбайт каждый. Кроме того, добавлен кэш второ­го уровня (L2) емкостью 256 Кбайт. Он располагается в одном модуле с микро­схемой процессора, но на отдельной микросхеме, соединенной с микросхемой процессора 64-разрядной шиной.

Суперскадярная обработка обеспечивается наличием нескольких блоков вы­полнения команд — двумя для целочисленных операций и двумя для операций с плавающей запятой. Одним из важнейших усовершенствований, внесенных в процессор Pentium Pro и обеспечивших столь значительное повышение его про­изводительности, является возможность активизации команд не в том порядке, в каком они заданы в программе и выбраны из памяти. Эта функция позволяет параллельно выполнять большее количество команд. Конечно, для получения правильных результатов вычислений требуются дополнительные управляющие схемы. Как и в процессоре Pentium, в Pentium Pro происходит динамическое предсказание переходов, цель которого — заблаговременный выбор команд для параллельной работы.

Внешние схемы мониторинга шины позволяют использовать процессор Pen­tium Pro в мультипроцессорных системах. Эти схемы служат для приведение в соответствие общих данных, временно хранящихся в кэш-памяти нескольких процессоров.

Процессоры Pentium II и Pentium III

В архитектуру системы команд процессора Pentium II добавлены команды ММХ, о которых кратко рассказывалось в разделе 3.23.2. Эти команды обеспечивают па­раллельную обработку небольших групп чисел, представляющих мультимедиа-данные (пикселы, оцифрованный звук и т. п.). Для обработки такого рода данных используются те же восемь 64-разрядных регистров, которые применяются в слу­чае данных с плавающей запятой. Кэши L1 в процессоре Pentium II имеют вдвое больший размер, чем в процессоре Pentium Pro, то есть по 16 Кбайт каждый. Раз­мер внешнего кэша L2 составляет 512 Кбайт.

В процессор Pentium III добавлена поддержка векторных команд (SIMD). Эти команды, называемые потоковым расширением SIMD (SSE), обеспечивают эффективное выполнение векторных операций над данными с плавающей запятой. В каждый из восьми новых 128-разрядных реги­стров, называемых регистрами ХММ, упаковывается по четыре 32-разрядных операнда с плавающей запятой. Кэши процессора Pentium III такие же, как у Pentium II, с единственным, но очень важным отличием: кэш-память второго уровня емкостью 256 Кбайт расположена на той же микросхеме, что и процессор, благодаря чему увеличена ширина его соединения с кэшами первого уровня.

Процессоры Pentium, Pentium Pro, Pentium II и Pentium III при выпуске в 1993,1995,1997 и 1999 годах имели тактовую частоту 60,200,266 и 500 МГц со­ответственно. В дальнейшем благодаря непрерывному усовершенствованию тех­нологий производства СБИС, заключающемуся в постоянном уменьшении раз­меров транзисторов и вентильных задержек, тактовая частота версий процессора Pentium III достигла 1 ГГц.

Процессор Pentium 4

Процессор Pentium 4 выпущен в 2000 году и имеет тактовую частоту от 1,3 до 1,5 ГГц. Он поддерживает весь набор команд IA-32, включая команды ММХ и SSE. Расширенный набор команд SSE (SSE2) позволяет обрабатывать по два упакованных 64-разрядных числа с плавающей запятой или по два упакованных 64-разрядных целых числа, хранящихся в 12-разрядных регистрах ХММ. Такие длинные целые числа удобны для шифрования и дешифрирования — операций, выполняемых в приложениях с функциями защиты данных. Повышение такто­вой частоты достигается в значительной мере за счет использования длинных кон­вейеров с короткими ступенями (теперь их количество увеличено вдвое по сравне­нию с Pentium III, где их было всего 10), а также за счет усовершенствованных структуры и технологий производства схем.

Процессор содержит раздельные кэши первого уровня для команд и данных. Кэш данных имеет объем 8 Кбайт, 4-канальную множественно-ассоциативную структуру и состоит из блоков по 64 байта. Кэш команд предназначен для хране­ния декодированных сегментов потока команд, которые могут включать одну или несколько ветвей исходной программы. В случае повторения сегментов выполне­ние программы протекает быстрее, но требуется проверка, действительно ли каж­дый раз осуществляется переход к одной и той же ветви программы. Эта стратегия называется кэшированием с отслеживанием (trace cache). Декодированные коман­ды представлены как микрооперации. Каждая команда IA-32 способна определять до восьми микроопераций. В кэше с отслеживанием может находиться множест­во сегментов потока команд, содержащих до 12 тысяч микроопераций.

Интегрированный в микросхему кэш второго уровня объемом 256 Кбайт состо­ит из 128-байтовых блоков и обладает 8-канальной множественно-ассоциативной структурой. Соединение между кэшами L1 и L2 обеспечивает пересылку данных со скоростью 48 Гбайт/с, тогда как в процессоре Pentium III этот параметр равен 16 Гбайт/с.

Системная шина процессора Pentium 4 тоже гораздо быстрее шины процессо­ра Pentium III. Она имеет ширину 64 разряда и работает на частоте 400 МГц. Ско­рость пересылки данных по этой шине составляет 3,2 Гбайт/с, а у процессора Pentium III - 1 Гбайт/с.


<< назад