И. Шагурин
Особенности архитектуры процессоров Pentium 4
Внутренняя структура (микроархитектура) процессора Pentuim 4 значительно отличается от микроархитектуры предшествующих моделей Pentium II, Pentium III, Celeron. Наряду с микроархитектурой существенно изменилась и архитектура систем, реализуемых на его основе. Новая системная архитектура, использующая процессор Pentuim 4 и набор специализированных микросхем Chipset 850 и 845, выпускаемых компанией Intel, обеспечивают значительное повышение производительности — от 23 до 87% при решении различного класса задач. В 2002 году тактовая частота серийных процессоров превысила 3ГГц, была добавлена технология HyperThreading, что позволило компании Intel обогнать в конце 2002 по технологичности выпуска и производительности всех конкурентов.
Развитие архитектуры IA-32 в семействе Pentium
В процессоре Pentium 4 реализуется архитектура IA-32 (Intel Architеcture-32), общая для всех 32-разрядных микропроцессоров Intel, начиная с i386. В табл. 1 приведены основные модели процессоров, в которых используется эта архитектура, и некоторые их характеристики. Отметим, что модели Pentium II Xeon и Pentium III Xeon ориентированы на работу в высокопроизводительных мультипроцессорных системах (серверах, рабочих станциях).
Таблица 1. Некоторые характеристики процессоров архитектуры IA-32
Модель, начало выпуска |
Число транзисторов |
Тактовая частота, МГц |
Объем внутренней кэш-памяти |
i386, октябрь 1985 г. |
275 тыс. |
до 40 |
Нет |
i486, апрель 1989 г. |
1,2 млн. |
до 100 |
8 Кбайт - команды |
Pentium, март 1993 г. |
3,1 млн. |
до 200 |
8 Кбайт - команды |
Pentium Pro, ноябрь 1995 г. |
5,5 млн. |
до 200 |
8 Кбайт - команды |
Pentium MMX, |
4,5 млн. |
до 233 |
8 Кбайт - команды |
Pentium II, |
7,5 млн. |
до 450 |
16 Кбайт - команды |
Celeron, |
|
до 750 |
128 Кбайт - общий |
Pentium III, |
8,5 млн. |
до 1000 |
16 Кбайт - команды |
Pentium 4, |
42 млн. |
до 1500 |
256 Кбайт - общтй |
Pentium 4+HT |
50 млн. |
3200 |
512Кбайт - общий |
В процессе развития IA-32 производилось расширение возможностей обработки данных, представленных в различных форматах (рис. 1). Процессоры i386 выполняли обработку только целочисленных операндов. Для обработки чисел с “плавающей точкой” использовался внешний сопроцессор i387, подключаемый к микропроцессору. В состав процессоров i486 и последующих моделей Pentium введён специальный блок FPU (Floating-Point Unit), выполняющий операции над числами с “плавающей точкой”. В процессорах Pentium MMX была впервые реализована групповая обработка нескольких целочисленных операндов разрядностью 1, 2, 4 или 8 байт с помощью одной команды. Такая обработка обеспечивается введением дополнительного блока MMX (Milti-Media Extension — Мультимедийное Расширение). Название блока отражает его направленность на обработку видео- и аудиоданных, когда одновременное выполнение одной операции над несколькими операндами позволяет существенно повысить скорость обработки изображений и звуковых сигналов. Начиная с модели Pentium III, в процессоры вводится блок SSE (Streaming SIMD Extension — Потоковое SIMD-расширение) для групповой обработки чисел с “плавающей точкой”.
Рис. 1. Эволюция архитектуры IA-32
Таким образом, если первые модели процессоров Pentium выполняли только пооперандную обработку данных по принципу “Одна команда – Одни данные” (SISD — Single Instruction – Single Data), то, начиная с процессора Pentium MMX, реализуется также их групповая обработка по принципу “Одна команда – Много данных” (SIMD — Single Instruction – Multiple Data).
Соответственно, расширяется и набор регистров процессора, используемых для промежуточного хранения данных (рис. 2). Кроме 32-разрядных регистров для хранения целочисленных операндов, процессоры Pentium содержат 80-разрядные регистры, которые обслуживают блоки FPU и MMX. При работе FPU регистры ST0-ST7 образуют кольцевой стек, в котором хранятся числа с “плавающей точкой”, представленные в формате с расширенной точностью (80 разрядов). При реализации MMX-операций они используются как 64-разрядные регистры MM0-MM7, где могут храниться несколько операндов (8 8-разрядных, 4 16-разрядных, 2 32-разрядных или один 64-разрядный), над которыми одновременно выполняется поступившая в процессор команда (арифметическая, логическая, сдвиг и ряд других).
Рис. 2. Регистры хранения данных в процессорах Pentium
Блок SSE-2, введённый в состав процессора Pentium 4, значительно расширяет возможности обработки нескольких операндов по принципу SIMD, по сравнению с блоком SSE в модели Pentium III. Этот блок реализует 144 новые команды, обеспечивающих одновременное выполнение операций над несколькими операндами, которые раcполагаются в памяти и в 128-разрядных регистрах XMM0-XMM7. В регистрах могут храниться и одновременно обрабатываться 2 числа с “плавающей точкой” в формате двойной точности (64 разряда) или 4 числа в формате одинарной точности (32 разряда). Этот блок может также одновременно обрабатывать целочисленные операнды: 16 8-разрядных, 8 16-разрядных, 4 32-разрядных или 2 64-разрядных. В результате производительность процессора Pentium 4 при выполнении таких операций оказывается вдвое выше, чем Pentium III.
Операции SSE-2 позволяют существенно повысить эффективность процессора при реализации трёхмерной графики и Интернет-приложений, обеспечении сжатия и кодирования аудио- и видеоданных и в ряде других применений.
Введение большой группы команд SSE-2 является основной особенностью реализованного в Pentium 4 варианта архитектуры IA-32. Что касается базового набора команд и используемых способов адресации операндов, то они практически полностью совпадают с набором команд и способов адресации в предыдущих моделях Pentium. Процессор обеспечивает реальный и защищённый режимы работы, реализует сегментную и страничную организации памяти. Таким образом пользователь имеет дело с хорошо знакомым набором регистров и способов адресации, может работать с базовой системой команд и известными вариантами реализации прерываний и исключений, которые характерны для всех моделей семейства Pentium [2].
Необходимо отметить, что использование команд как системы MMX, так и SSE(2) требует перепрограммирования соответствующих процедур в программах практически на ассемблере (на начало 2003 г.).
Микроархитектура процессоров Pentium 4
Основные особенности процессора Pentium 4 связаны с его микроархитектурой. Микроархитектура процессора определяет реализацию его внутренней структуры, принципы выполнения поступающих команд, способы размещения и обработки данных. Как анонсировала компания Intel, новая микроархитектура процессора Pentium 4, получившая название NetBurst (пакетно-сетевая), ориентирована на эффективную работу с Интернет-приложениями. Необходимо отметить, что в микроархитектуре NetBurst реализованы многие принципы, использованные в предыдущей модели Pentium III (микроархитектура P6 [2]). Характерными чертами этой микроархитектуры являются:
Практическая реализация данных принципов в структуре процессора Pentium 4 имеет ряд существенных особенностей (рис. 3).
Рис. 3. Общая структура Pentium 4
Гарвардская внутренняя структура реализуется путём разделения потоков команд и данных, поступающих от системной шины через блок внешнего интерфейса и размещённую на кристалле процессора общую кэш-память 2-го уровня (L2) ёмкостью 256(512) Кбайт. Такое размещение позволяет сократить время выборки команд и данных по сравнению с Pentuim III, где эта кэш-память располагается на отдельном кристалле, смонтированном в общем корпусе (картридже) с процессором. Ширина шины к кеш-памяти первого уровня составляет 128 бит.
Блок внешнего интерфейса реализует обмен пpоцессоpа с системной шиной, к которой подключается память, контроллеры ввода/вывода и другие активные устройства системы. Обмен по системной шине осуществляется с помощью 64-разрядной двунаправленной шины данных, 41-разрядной шины адреса (33 адресных линии А35-3 и 8 линий выбора байтов BE7-0#), обеспечивающей адресацию до 64 Гбайт внешней памяти в широком спектре режимов выборки.
Дешифратор команд работает вместе с памятью микропрограмм, формируя последовательность микрокоманд, обеспечивающих выполнение поступивших команд. Декодированные команды загружаются в кэш-память микрокоманд, откуда они выбираются для исполнения. Кэш-память может хранить до 12000 микрокоманд. Это важное отличие от архитектуры Пентиум-3, где в этой кеш-памяти хранились недекодированные комадны х86. После её заполнения практически любая команда будет храниться в ней в декодированом виде. Поэтому при поступлении очередной команды блок трассировки выбирает из этой кэш-памяти необходимые микрокоманды, обеспечивающие её выполнение. Если в потоке команд оказывается команда условного перехода (ветвления программы), то включается механизм предсказания ветвления, который формирует адрес следующей выбираемой команды до того, как будет определено условие выполнения перехода.
После формирования потоков микрокоманд производится выделение регистров, необходимых для выполнения декодированных команд. Эта процедура реализуется блоком распределения регистров, который выделяет для каждого указанного в команде логического регистра (регистра целочисленных операндов EAX, ECX и других, регистра операндов с плавающей точкой ST0-ST7 или регистра блоков MMX, SSE, рис. 2) один из 128 физических регистров, входящих в состав блоков регистров замещения (БРЗ). (В процессоре Пентиум-2 было всего 40 регистров в аналогичном блоке).
Эта процедура позволяет выполнять команды, использующие одни и те же логические регистры, одновременно или с изменением их последовательности.
Выбранные микрокоманды размещаются в очереди микрокоманд. В ней содержатся микрокоманды, реализующие выполнение до 126 поступивших и декодированных команд, которые затем направляются в исполнительные устройства по мере готовности операндов. Отметим, что в процессорах Pentium III в очереди находятся микрокоманды для (до) 40 поступивших команд. Значительное увеличение числа команд, стоящих в очереди, позволяет более эффективно организовать поток их исполнения, изменяя последовательность выполнения команд и выделяя команды, которые могут выполняться параллельно. Эти функции реализует блок распределения микрокоманд. Он выбирает микрокоманды из очереди не в порядке их поступления, а по мере готовности соответствующих операндов и исполнительных устройств. В результате команды, поступившие позже, могут быть выполнены до ранее выбранных команд. При этом реализуется одновременное выполнение нескольких микрокоманд (команд) в параллельно работающих исполнительных устройствах. Таким образом естественный порядок следования команд нарушается, чтобы обеспечить более полную загрузку параллельно включенных исполнительных устройств и повысить производительность процессора.
Суперскалярная архитектура реализуется путём организации исполнительного ядра процессора в виде ряда параллельно работающих блоков. Арифметико-логические блоки 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 ГГц. Кеш-память первого уровня работает на частоте процессора.
При формировании адресов обеспечивается обращение к заданному сегменту памяти. Каждый сегмент может делиться на страницы, размещаемые в различных местах адресного пространства. Блоки трансляции адреса обеспечивают формирование физических адресов команд и данных при использовании страничной организации памяти. Для сокращения времени трансляции используется внутренняя буферная память, которая хранит базовые адреса наиболее часто используемых страниц.
В Pentuim 4 используется гиперконвейерная технология выполнения команд, при которой число ступеней конвейера достигает 20 (в Pentium — 5 ступеней, в Pentium III — 11). Таким образом одновременно в процессе выполнения может находиться до 20 команд, находящихся на разных стадиях (ступенях) их реализации. (В UltraSPARC-3 Cu глубина конвейера в 14 считалась сверхбольшой.)
Эффективность конвейера резко снижается из-за необходимости его перезагрузки при выполнении условных ветвлений, когда требуется произвести очистку всех предыдущих ступеней и выбрать команду из другой ветви программы. Чтобы сократить потери времени, связанные с перезагрузкой конвейера, используется блок предсказания ветвлений. Его основной частью является ассоциативная память, называемая буфером адресов ветвлений (BTB — Branch Target Buffer), в которой хранятся 4092 адреса ранее выполненных переходов. Отметим, что в BTB процессора Pentium III хранятся адреса только 512 переходов. Кроме того, BTB содержит биты, хранящие предысторию ветвления, которые указывают, выполнялся ли переход при предыдущих выборках данной команды. Биты представляют собой 2-битный счётчик, хранящий число со знаком, которое обозначает, сколько раз сработала команда перехода. При поступлении очередной команды условного перехода указанный в ней адрес сравнивается с содержимым BTB. Если этот адрес не содержится в BTB, то есть ранее не производились переходы по данному адресу, то предсказывается отсутствие ветвления. В этом случае продолжается выборка и декодирование команд, следующих за командой перехода. При совпадении указанного в команде адреса перехода с каким-либо из адресов, хранящихся в BTB, производится анализ предыстории. В процессе анализа определяется чаще всего реализуемое направление ветвления, а также выявляются чередующиеся переходы. Если предсказывается выполнение ветвления, то выбирается и загружается в конвейер команда, размещённая по предсказанному адресу. Усовершенствованный блок предсказания ветвления, используемый в Pentuim 4, обеспечивает 90-% вероятность правильного предсказания. Таким образом резко уменьшается число перезагрузок конвейера при неправильном предсказании ветвления.
Реализация микроархитектуры
Реализованное в Pentium 4 значительное изменение микроархитектуры и повышение производительности потребовали введения дополнительных аппаратных средств. На кристалле процессора располагаются 42 млн. транзисторов (+5% на поддержку HyperThreading) (Pentium III содержал 8,5 млн. транзисторов без учёта кэш-памяти 2-го уровня, размещённой на отдельном кристалле). В настоящее время для изготовления Pentium 4 используется КМОП-технология с разрешающей способностью 0,13 мкм. Выпускаемые модели Pentium 4 имеют максимальные тактовые частоты 3,02 и 3,2 ГГц и размещаются в 478-выводных корпусах типа PPGA (Plastic Pin Grid Array). В 2003-4 году компания Intel планирует переход к 0,09-мкм технологии изготовления с использованием 7-слойной системы медных соединений. При этом будет обеспечено повышение тактовой частоты процессоров Pentium 4 до 4-5 ГГц и выше (10 ГГц в перспективе).
Архитектура систем на базе Pentium 4
Практическая реализация потенциальных возможностей процессора Pentium 4 обеспечивается при использовании набора специализированных микросхем, необходимых для построения на его основе цифровых систем различного назначения. Для реализации систем на базе Pentium 4 компания Intel выпускает набор микросхем Chipset 850, в который входят:
Типовая архитектура систем, реализованных на базе процессора Pentium 4 с использованием набора Chipset 850, показана на рис. 4. Основной особенностью этой архитектуры является использование новой системной шины FSB, обеспечивающей обмен со скоростью 3,2 Гбайт/c, что соответствует частоте передачи данных 400 МГц, в более новых чипсетах 533 Мгц. В будущем частота будет поднята до 800 ГГц. Такая скорость реализуется путём применения нового типа сверхбыстродействующей двухканальной памяти RDRAM RamBus и контроллера-концентратора MCH, обеспечивающего 4 канала обмена с памятью этого типа.
Отметим, что применение такой памяти слишком удорожает систему, и в связи с выходом Пентиум-4 на массовый рынок, чипсеты стали поддерживать и более "народную" память SDRAM и DDR SDRAM.
Контроллер MCH выполняет обмен с оперативной памятью типа Direct RAMBUS ёмкостью от 128 Мбайт (минимально допустимый объём) до 2 Гбайт с помощью сдвоенных каналов. Память реализуется на основе микросхем быстродействующей двухканальной RDRAM-памяти типа PC800 или PC600, выпускаемых компанией RAMBUS. Таким образом общий доступ к оперативной памяти осуществляется с использованием четырёх каналов обмена. При тактовой частоте канала 100 МГц обеспечивается общая частота обмена, эквивалентная 400 МГц.
К контроллеру MCH подключается также универсальный разъём AGP8X, используемый для связи с графическим адаптером при скорости передачи данных 2.1 Гбайт/с.
Контроллер ICH2 служит для подключения различных внешних устройств с использованием интерфейса ULTRA ATA/66/100 и Serial ATA. Этот интерфейс реализует обмен с жёстким диском со скоростью 66 или 100 Мбайт/c (Serial ATA - до 150 Мбт/с). ICH2 также обеспечивает прямой доступ внешних устройств к памяти со скоростью 33 Мбайт/с при помощи интерфейса ULTRA DMA/33. Контроллер служит для подключения последовательных портов с шиной USB, связи с локальной сетью Ethernet и параллельного обмена по шине PCI. Обеспечивается возможность реализации каналов для передачи аудиоданных.
Области применения и реализуемое повышение производительности
Основной областью применения процессора Pentium 4 являются высокопроизводительные настольные персональные компьютеры (desktop PC).
Новые 64-разрядные процессоры Itanium, архитектура которых принципиально отличается от архитектуры IA-32, используемой в семействе Pentium, будут применяться в наиболее высокопроизводительных серверах и рабочих станциях. Процессоры Celeron сохранят свои доминирующие позиции в персональных компьютерах для массового потребителя.
Основным преимуществом процессора Pentium 4, по сравнению с предыдущей моделью Pentium III, является существенное повышение производительности при реализации различных приложений. В табл. 3 даны результаты тестовых испытаний производительности компьютеров на основе Pentium 4 (тактовая частота 1,5 ГГц, частота обмена по системной шине 400 МГц) и Pentium III (тактовая частота 1,0 ГГц, частота обмена по системной шине 133 МГц). Приведённые данные содержались в материалах, представленных компанией Intel на презентации процессора Pentium 4 в Москве, в ноябре 2000 года. В табл. 3 указаны программы, с помощью которых производилась сравнительная оценка производительности для различных приложений.
Таблица 3. Результаты сравнительных испытаний процессоров Pentium III и Pentium 4
Вид приложения |
Повышение производительности |
Обработка целых чисел (SPECint2000) |
23% |
Обработка чисел с плавающей запятой (SPECfp2000) |
79% |
Кодирование аудиосигналов (eJay МРЗ Plus 1.3) |
25% |
Работа в сети Интернет (WebMark2001) |
23% |
Распознавание речи (Dragon Naturally Speaking, preffered 4.0) |
27% |
Кодирование видеопотоков |
|
Обработка видеоматериалов |
|
Трехмерные игры |
44% |
Трехмерная графика (3D WinBench 2000) |
32% |
Приведённые данные показывают, что наибольший выигрыш обеспечивается при использовании Pentium 4 для обработки видеоданных, реализации трёхмерной графики и выполнении операций над числами с “плавающей точкой”.
Литература