- гарвардская
структура с разделением потоков команд и данных;
- суперскалярная
архитектура, обеспечивающая одновременное выполнение нескольких
команд в параллельно работающих исполнительных устройствах;
- динамическое
изменение последовательности команд (выполнение команд с опережением
— спекулятивное выполнение);
- конвейерное
исполнение команд;
- предсказание
направления ветвлений.
- Практическая
реализация данных принципов в структуре процессора Pentium
4 имеет ряд существенных особенностей.Увеличенная эффективная
частота системной шины до 400 МГц против сегодняшних 133
МГц. Это приводит к повышению максимально допустимой пропускной
способности оперативной памяти до 3 -2 Гбайт/с. Побудительная
причина такого ускорения очевидна: в противном случае столь
высокочастотный процессор не смог бы вовремя получать необходимые
данные. От системной шины данные и команды моут попасть в кэш третьего уровня. Он предусмотрен в микроархитектуре
NetBurst для серверных вариантов процессора. Далее
данные и команды попадают в интегрированный кэш
второго уровня емкостью 256 Кбайт, который по своим техническим
характеристикам близок к используемому в Pentium III. В
обоих процессорах применяется технология Advanced Transfer
Cache, они работают на частоте ядра, а ширина шины
кэша составляет 32 байт.
- Оба
кэша являются 8-канальными наборно-ассоциативными. Однако
в Pentium 4 увеличена длина строки кэша второго уровня -
до 128 байт (2 сектора по 64 байт).Задержка по обращению
в кэш второго уровня в Pentium 4 составляет 7 тактов. Пропускная
способность кэша второго уровня при частоте 1,5 ГГц составляет
соответственно 48 Гбайт/с.Для замещения информации в кэше
второго уровня, как и в других типах кэш-памяти Pentium
4, используется алгоритм псевдо-LRU. При непопадании в кэш
второго уровня требуется 12 тактов процессора на организацию
взаимодействия с системной шиной, и еще не менее 6-12 тактов
шины (если она свободна) на доступ в подсистему оперативной
памяти. Гарвардская внутренняя структура реализуется путём
разделения потоков команд и данных, поступающих от системной
шины через блок внешнего интерфейса и размещённую на кристалле
процессора общую кэш-память 2-го уровня (L2) .
- Такое
размещение позволяет сократить время выборки команд и данных
по сравнению с Pentuim III, где эта кэш-память располагается
на отдельном кристалле, смонтированном в общем корпусе (картридже)
с процессором.
- Блок
внешнего интерфейса реализует обмен процессора с системной
шиной, к которой подключается память, контроллеры ввода/вывода
и другие активные устройства системы. Обмен по системной
шине осуществляется с помощью 64-разрядной двунаправленной
шины данных, 41-разрядной шины адреса (33 адресных линии
А35-3 и 8 линий выбора байтов BE7-0#), обеспечивающей адресацию
до 64 Гбайт внешней памяти.
- Дешифратор
команд работает вместе с памятью микропрограмм, формируя
последовательность микрокоманд, обеспечивающих выполнение
поступивших команд. Декодированные команды загружаются в
кэш-память микрокоманд, откуда они выбираются для исполнения.
Кэш-память может хранить до 12000 микрокоманд. После её
заполнения практически любая команда будет храниться в ней
в декодированном виде. Поэтому при поступлении очередной
команды блок трассировки выбирает из этой кэш-памяти необходимые
микрокоманды, обеспечивающие её выполнение. Если в потоке
команд оказывается команда условного перехода (ветвления
программы), то включается механизм предсказания ветвления,
который формирует адрес следующей выбираемой команды до
того, как будет определено условие выполнения перехода.
- После
формирования потоков микрокоманд производится выделение
регистров, необходимых для выполнения декодированных команд.
Эта процедура реализуется блоком распределения регистров,
который выделяет для каждого указанного в команде логического
регистра (регистра целочисленных операндов EAX, ECX и других,
регистра операндов с плавающей точкой ST0-ST7 или регистра
блоков MMX, SSE) один из 128 физических регистров, входящих
в состав блоков регистров замещения (БРЗ). Эта
процедура позволяет выполнять команды, использующие одни
и те же логические регистры, одновременно или с изменением
их последовательности. Выбранные микрокоманды размещаются
в очереди микрокоманд. В ней содержатся микрокоманды, реализующие
выполнение 126 поступивших и декодированных команд, которые
затем направляются в исполнительные устройства по мере готовности
операндов.
- Значительное
увеличение числа команд, стоящих в очереди, позволяет более
эффективно организовать поток их исполнения, изменяя последовательность
выполнения команд и выделяя команды, которые могут выполняться
параллельно. Эти функции реализует блок распределения микрокоманд.
Он выбирает микрокоманды из очереди не в порядке их поступления,
а по мере готовности соответствующих операндов и исполнительных
устройств. В результате команды, поступившие позже, могут
быть выполнены до ранее выбранных команд. При этом реализуется
одновременное выполнение нескольких микрокоманд (команд)
в параллельно работающих исполнительных устройствах. Таким
образом, естественный порядок следования команд нарушается,
чтобы обеспечить более полную загрузку параллельно включенных
исполнительных устройств и повысить производительность процессора.
- Суперскалярная
архитектура реализуется путём организации исполнительного
ядра процессора в виде ряда параллельно работающих блоков.
Арифметико-логические блоки ALU производят обработку целочисленных
операндов, которые поступают из заданных регистров БРЗ.
В эти же регистры заносится и результат операции. При этом
проверяются также условия ветвления для команд условных
переходов и выдаются сигналы перезагрузки конвейера команд
в случае неправильно предсказанного ветвления. Исполнительное
ядро работает с повышенной скоростью выполнения операций.
Например, микрокоманда сложения целочисленных операндов
при тактовой частоте процессора 1,5 МГц выполняется всего
за 0,36 нс.
-
Адреса операндов, выбираемых из памяти, вычисляются
блоком формирования адреса (БФА),
который реализует интерфейс с кэш-памятью данных 1-го уровня
(L1) ёмкостью 8 Кбайт. В соответствии с заданными в декодированных
командах способами адресации формируются 48 адресов для
загрузки операндов из памяти в регистр БРЗ и 24 адреса для
записи из регистра в память (в Pentium III формируются 16
адресов для загрузки регистров и 12 адресов для записи в
память). При этом БФА формирует адреса операндов для команд,
которые ещё не поступили на выполнение. При обращении к
памяти БФА одновременно выдаёт адреса двух операндов: один
для загрузки операнда в заданный регистр БРЗ, второй — для
пересылки результата из БРЗ в память. Таким образом, реализуется
процедура предварительного чтения данных для последующей
их обработки в исполнительных блоках, которая называется
спекулятивной выборкой.
- Аналогичным
образом организуется параллельная работа блоков SSE, FPU,
MMX, которые используют отдельный набор регистров и блок
формирования адресов операндов. При выборке операнда
из памяти производится обращение к кэш-памяти данных (L1),
которая имеет отдельные порты для чтения и записи. За один
такт производится выборка операндов для двух команд. Время
обращения к этой кэш-памяти составляет 1,42 нс при тактовой
частоте 1,5 ГГц, что в 2,1 раза меньше, чем при обращении
к кэш-памяти данных в процессоре Pentium III, работающем
на частоте 1,0 ГГц. При формировании адресов обеспечивается
обращение к заданному сегменту памяти. Каждый сегмент может
делиться на страницы, размещаемые в различных местах адресного
пространства. Блоки трансляции адреса обеспечивают формирование
физических адресов команд и данных при использовании страничной
организации памяти.
- Для
сокращения времени трансляции используется внутренняя буферная
память, которая хранит базовые адреса наиболее часто используемых
страниц.
- Динамическое
выполнение команд (dynamic execution) — это обобщенное название
механизма, используемого в NetBurst, построенного на трех
базовых концепциях: предсказание переходов (branch prediction),
динамический анализ потока данных (dynamic data flow analysis)
и спекулятивное выполнение инструкций (out-of-order execution).
Аналогичный механизм, названный Dynamic Execution, используется
в процессорах семейства P6, однако в Intel Pentium 4 он
улучшен.Так, например, емкость пула, в котором хранятся
готовые для обработки инструкции (out-of-order instruction
window), у Intel Pentium 4 увеличена до 126 инструкций —
против 42 у процессоров семейства P6.Кроме того, в Intel
Pentium 4 интегрирован более совершенный механизм предсказания
переходов и количество ошибочно предсказанных переходов
у него в среднем на 33% меньше, чем у процессоров с архитектурой
P6.
- Потоковые
расширения системы команд SIMD2 (Streaming SIMD Extension
2 — SSE2) расширяют технологию, предложенную MMX и SSE
144 новыми инструкциями, в том числе для работы с 128-разрядными
целочисленными операциями и двойной точности числами. Кроме
того, добавлены операции управления памятью и кэшем. Следует
отметить, что данный новый набор операций не требует поддержки
со стороны операционных систем — все ОС, поддерживающие
SSE, будут поддерживать и SSE2. Таким образом, устраняются
задержки и повышается производительность широкого ряда приложений,
связанных с обработкой видео- и аудио сигнала.Задержки при
передаче данных призван устранить кэш на кристалле — меньший
по размеру (8 Кбайт против 16 у процессоров предыдущего
поколения), но более эффективный. Это четырехканальная ассоциативная
память с доступом по 64 байта. За один цикл в кэш можно
осуществить одну операцию чтения и одну — записи. При этом
использован совершенно новый алгоритм доступа, а задержки
при чтении составляют не более двух циклов.
- Все
это обеспечивает функционирование работающего на двойной
скорости блока ускоренного выполнения. Что касается базового
набора команд и используемых способов адресации операндов,
то они практически полностью совпадают с набором команд
и способов адресации в предыдущих моделях Pentium. Процессор
обеспечивает реальный и защищённый режимы работы, реализует
сегментную и страничную организации памяти.
-
.
All rights reserved. a_nes@mail.ru
|