Скачиваний:
11
Добавлен:
13.02.2014
Размер:
323.07 Кб
Скачать

Процессор Intel Pentium 4

Уважаемый Покупатель!!!

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

Введение

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

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

Отличитель­ной особенностью процессоров семейства Intel Pentium 4 является их беспри­мерно длинный конвейер (Hyper-Pipelined Technology). Так, первоначально (в процессорах на ядре с кодовым названием Northwood) длина конвейера составляла 20 ступеней. Впоследствии (в процессорах на ядре с кодовым названи­ем Prescott) она увеличена до 31 ступени.

Архитектура, заложенная в процессоре Intel Pentium 4, получила название Intel NetBurst. Структурная схема процессора изображена на рисунке 1.

Рисунок 1. Структурная схема процессора Intel Pentium 4

Сравнивая схему классического процессора со схемой процессора Intel Pentium 4, можно заметить несколько конструктивных различий. Прежде всего, инструк­ции поступают в предпроцессор из кэша L2, а не из кэша L1, как в классической схеме.

Кэш второго уровня L2 процессоров семейства Pentium 4 получил название Ad­vanced Transfer Cache. Имеющий 256-битную шину, работающую на частоте ядра, и усовершенствованную схему передачи данных, этот кэш обеспечивает высочайшую пропускную способность, столь важную для потоковых процессов обработки.

Кроме того, в схеме предпроцессора появился новый элемент — кэш L1 декоди­рованных микроинструкций с отслеживанием исполнения (Trace Cache). Нали­чие такого кэша — одна из составляющих архитектуры NetBurst. (Кэш L1 дан­ных размеров (8 Кбайт) также присутствует в процессоре, но разнесен с кэшем L1 инструкций).

При работе процессора инст­рукции выбираются из кэша L2, транслируются в команды х86 и декодируются. При этом с учетом того, что конвейер имеет много ступеней и должен быть дос­таточно быстрым, при декодировании инструкции разбиваются на более мелкие микрокоманды, которые затем поступают в Trace Cache. Для выборки команд из кэша L2, их транслирования в команды х86 и последующего декодирования от­водится несколько начальных ступеней конвейера (восемь ступеней). Соответст­венно, при выполнении фрагмента программного кода для декодирования команд будет использовано восемь процессорных тактов. Однако во многих современ­ных (прежде всего, мультимедийных) приложениях один и тот же фрагмент кода может повторяться многократно. В этом случае тратить процессорные такты на повторную выборку, транслирование и декодирование было бы нерационально. Выгоднее хранить уже готовые к исполнению микроинструкции в специальном кэше L1, где из них формируются мини-программы, называемые отслеживания­ми (traces). При попадании в кэш L1 происходит внеочередное выполнение ко­манд; при этом значительно экономятся ресурсы процессора, так как по своей сути внеочередное выполнение команд подразумевает устранение восьми пер­вых ступеней конвейера, фактическая длина которого в этом случае составляет уже 20 ступеней. В кэше с отслеживанием может храниться до 12 000 декодиро­ванных микрокоманд (при этом заметим, что в процессоре Intel Pentium 4 про­цент попадания в кэш составляет более 90%).

Если рассмотреть работу процессора Intel Pentium 4 при внеочередном выполне­нии команд, то есть когда происходит попадание в Trace Cache и используются уже декодированные команды, то схема работы процессора Intel Pentium 4 будет подобна схеме работы классического процессора. Режим работы процессора при внеочередном выполнении команд является естественным для процессора Intel Pentium 4, поэтому, когда мы говорим о длине конвейера в 20 ступеней, мы име­ем в виду длину основного конвейера без учета восьми первых ступеней, кото­рые используются при необходимости выборки команд, их трансляции, декоди­рования и сохранения в Trace Cache полученных микрокоманд. Общая же длина конвейера составляет 28 ступеней).

Для того чтобы обеспечить высокий процент попаданий в кэш L1 с отслежива­ниями (Trace Cache) и построение в нем мини-программ, используется специ­альный блок предсказания ветвлений (Branch Targets Buffers, BTB и Instruction Translation Look-aside Buffers, I-TLB). Этот блок предсказания позволяет моди­фицировать мини-программы, основываясь на спекулятивном предсказании. Так, если в программном коде имеется точка ветвления, то блок предсказаний может предположить дальнейший ход программы вдоль одной из возможных ветвей и с учетом этого спекулятивного предсказания построить мини-программу. Кро­ме того, с кэшем L1 связан также буфер ветвлений (ВТВ) размером 4 Кбайт.

Кэш микроинструкций с отслеживаниями имеет еще одну особенность. Дело в том, что большинство команд х86 при декодировании преобразуются в две-три микроинструкции. Однако встречаются и такие команды, для декодирования ко­торых потребовались бы десятки и даже сотни микрокоманд. Естественно, что сохранять такие декодированные команды в кэше L1 было бы нерационально. Для этих целей используется специальная ROM-память (uCode ROM), а в са­мом кэше L1 сохраняется лишь метка на область ROM-памяти, где хранятся со­ответствующие микрокоманды. При попадании на такую метку управление по­током инструкций передается ROM-памяти.

Теперь рассмотрим процесс продвижения микроинструкций по основному кон­вейеру, то есть когда процессор работает в режиме внеочередного выполнения инструкций. В течение первых двух тактов в Trace Cache передается указатель на следующие выполняемые инструкции — это первые две ступени конвейера, называемые Trace Cache next instruction pointer. После получения указателя в течение двух тактов происходит выборка инструкций из кэша (Trace Cache Fetch) — это две следующие ступени конвейера. После этого выбранные инст­рукции должны быть отосланы на внеочередное выполнение. Для того чтобы обеспечить продвижение выбранных инструкций по процессору, то есть доста­вить их из предпроцессора в постпроцессор, используется еще одна дополни­тельная, или передаточная, ступень конвейера, называемая Drive. На этой ступе­ни не происходит обработки инструкции. Фактически такая «пустая» ступень конвейера представляет собой временную задержку и вводится для компенсации высоких тактовых частот.

На следующих трех ступенях конвейера, называемых Allocate & Rename, проис­ходит переименование и распределение дополнительных регистров процессора. В процессоре Intel Pentium 4 содержится 128 дополнительных регистров, кото­рые не определены архитектурой набора команд. Переименование регистров по­зволяет добиться их бесконфликтного существования.

На 9-й ступени конвейера формируются две очереди микрокоманд: очередь мик­рокоманд памяти (Mem Queue) и очередь арифметических микрокоманд (Int/ FP Queue).

На следующих трех ступенях конвейера происходит планирование и распределе­ние (Schedule) микрокоманд. Планировщик выполняет две основные функции: переупорядочивание микрокоманд и распределение их по функциональным уст­ройствам. Суть переупорядочивания микрокоманд заключается в том, что пла­нировщик (Scheduler) определяет, какую из микрокоманд уже можно выполнять, и в соответствии с их готовностью меняет порядок их следования. Распределе­ние микрокоманд происходит по четырем функциональным устройствам, то есть формируются четыре очереди. Первые две из них предназначены для устройств памяти (Load/Store Unit). Эти очереди формируются из очереди памяти MemQueue. Микрокоманды из очереди арифметических микрокоманд (Int/FP Queue) также распределяются в очереди соответствующих функциональных устройств. Для этого предназначено три распределителя:

□ Fast ALU Scheduler — распределитель простых целочисленных операций.

Он собирает простейшие микроинструкции для работы с целыми числами, чтобы затем послать их на исполнительный блок ALU, работающий на двойной ско­рости. В процессоре Pentium 4 имеется два исполнительных блока ALU, рабо­тающих на удвоенной скорости. К примеру, если тактовая частота процессора составляет 3,8 ГГц, то эти два устройства ALU работают с частотой 7,6 ГГц и в параллельном режиме способны выполнять четыре целочисленные опера­ции за один такт. Эти два блока ALU получили название Rapid Execution Engine (блоки быстрого исполнения).

□ Slow ALU/General FPU Scheduler — распределитель целочисленных опера­ций/распределитель операций с плавающей точкой. Это устройство распре­деляет остальные операции ALU и операции с плавающей точкой.

□ Simple FP Scheduler — распределитель простых операций с плавающей точ­кой. Это устройство формирует очередь простых операций с плавающей точ­кой и операций по доступу к памяти с плавающей точкой.

Следующие две ступени конвейера — этап диспетчеризации (Dispatch). На этих ступенях инструкции попадают на один из четырех портов диспетчеризации (dispatch ports), которые выполняют функцию шлюзов к функциональным уст­ройствам.

После того как инструкции пройдут порты диспетчеризации, они загружаются в блок регистров для дальнейшего выполнения Для этого предназначены сле­дующие две ступени процессора, называемые Register Files.

Таким образом, после загрузки инструкций в блок регистров все готово для не­посредственного выполнения команд Процесс непосредственного выполнения инструкций в исполнительных устройствах происходит на следующей, семна­дцатой, ступени конвейера, которая называется Execute.

Следующие три ступени конвейера: ступень изменения состоянии флагов (Flags) — если результат выполнения инструкции этого требует; ступень проверки ветвле­ния (Branch Check), на которой процессор узнает, сбылось ли предсказание ветв­ления. Последняя ступень процессора — еще одна передаточная ступень Drive, назначение которой мы уже рассматривали.

Как мы уже отмечали, в процессорах на ядре Prescott длина конвейера была уве­личена с 20 до 31 ступени. Причина увеличения длины конвейера заключается в том, что поскольку многие команды являются довольно сложными и не могут быть выполнены за один такт процессора, особенно при высоких тактовых час­тотах, то каждая из четырех стадий обработки команд (выборка, декодирование, выполнение, запись) должна состоять из нескольких ступеней конвейера. Кроме того, в конвейер преднамеренно вставляются так называемые пустые ступени (Drive), на которых не происходит обработка инструкции.

Эти пустые (или передаточные) ступени необходимы для того, чтобы при высо­ких тактовых частотах сигнал успевал во время одного такта распространиться от одного исполнительного блока к другому. Напомним, что при частотах свыше 3 ГГц время одного такта составляет менее 3 не. За столь короткий промежуток времени свет в вакууме успевает пройти расстояние менее 1 см, а поскольку ско­рость распространения сигналов в кристалле существенно ниже скорости света, то при высоких тактовых частотах неизбежно приходится вводить пустые ступе­ни конвейера для передачи сигнала.

Характеристики процессоров

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

Тактовая частота

До недавнего времени тактовая частота процессора напрямую связывалась с его производительностью, то есть чем выше тактовая частота процессора, тем он бо­лее производительнее. Собственно, сама микроархитектура NetBurst, положен­ная в основу процессоров Intel Pentium 4, изначально была ориентирована на то, что основным средством увеличения производительности процессоров будет рост тактовой частоты. Действительно, за пять лет существования процессоров Intel Pentium 4 их тактовая частота была увеличена почти в три раза. Старто­вав с отметки чуть больше 1 ГГц, за пять лет тактовая частота достигла значения 3,8 ГГц. Конечно, увеличение тактовой частоты — это далеко не единственное нововведение, которое сопутствовало появлению новых процессоров семейства Intel Pentium 4. В то же время можно сказать, что для процессора Intel Pentium 4 повышение тактовой частоты являлось одним из основных способов (причем до­вольно эффективным) увеличения его производительности. Зависимость между тактовой частотой процессора и его производительностью достаточно простая. Производительность процессора принято отождествлять со скоростью выполне­ния им инструкций программного кода; таким образом, производительность -это количество инструкций, выполняемых процессором в единицу времени:

Переписав это выражение в виде произведения количества инструкций, выпол­няемых за один такт процессора (Instruction Per Clock, IPC), на количество так­тов процессора за единицу времени (тактовая частота процессора):

получаем, что производительность процессора прямо пропорциональна его так­товой частоте.

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

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

Технологический процесс производства

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

Частота системной шины

Частота системной шины определяет пропускную способность шины, связываю­щей процессор с чипсетом. Естественно, что чем выше частота системной шины, тем выше и производительность процессора. Если говорить о процессорах Intel, то частоту системной шины называют частотой FSB. К примеру, если частота FSB составляет 800 МГц, то ее пропускная способность (с учетом 64-битной или 8-байтной ширины шины) составляет 6,4 Гбайт/с. Для шины FSB с частотой 1066 МГц пропускная способность составит уже 8,5 Гбайт/с. Для процессоров Intel частота FSB может быть равной 400, 533, 800 и 1066 МГц.

Размер кэша

Как уже отмечалось, современный процессор имеет несколько типов кэша, ин­тегрированных на кристалл процессора: кэш первого уровня L1 и кэш второго уровня L2. Кэш L1, который делится на кэш команд и кэш данных, используется непосредственно ядром процессора. Кэш L2 представляет собой своеобразный буфер между оперативной памятью и кэшем L1. В пределах одного семейства процессоры могут отличаться размером кэша L2. Непосредственного влияния размер кэша не оказывает на производительность процессора, однако при недос­таточном размере кэша увеличивается время простоя процессора, в течение ко­торого в кэш загружаются данные из оперативной памяти. Это, в свою очередь, отражается и на производительности процессора. Поэтому чем больше размер кэша L2, тем лучше.

Технологии, поддерживаемые процессорами

Технология Intel Hyper-Threading

Как уже отмечалось, кроме увеличения тактовой частоты существуют и другие способы увеличения производительности процессора, связанные с изменением его архитектуры. К примеру, можно увеличить число исполнительных блоков (Execution Units) внутри самого процессора. В этом случае возможно параллельное выполнение нескольких процессорных инструкций одновременно. Такая много­задачность реализована в том или ином виде во всех современных процессорах. Отход от последовательного выполнения команд, использование нескольких ис­полняющих блоков в одном процессоре позволяют одновременно обрабатывать несколько процессорных микрокоманд, то есть организовывать параллелизм на уровне инструкций (Instruction Level Parallelism, ILP), что, естественно, увели­чивает общую производительность.

Поясним все вышесказанное на примере. Представьте себе гипотетический про­цессор, в котором имеется всего три исполнительных блока: блок для работы с целыми числами (арифметико-логическое устройство, ALU), блок для работы с числами с плавающей точкой (FPU) и блок для записи и чтения данных из па­мяти (Store/Load, S/L). Пусть, кроме того, каждая операция осуществляется за один такт процессора.

Рисунок 2. Последовательное выполнение инструкций в гипотетическом процессоре

Предположим, что выполняется программа, состоящая из трех инструкций: пер­вые две — арифметические действия с целыми числами, а последняя — сохране­ние результата. В этом случае вся программа будет выполнена за три такта про­цессора. В первом такте задействуется блок ALU процессора (темный квадрат на рисунке 2), во втором — также блок ALU, а в третьем — блок записи и чтения данных из памяти S/L. В этом случае мы имеем дело с классическим последова­тельным вариантом выполнения программы.

В современных приложениях в любой момент времени, как правило, выполняет­ся не одна, а несколько задач или несколько потоков (threads) одной задачи, на­зываемых также нитями. Давайте посмотрим, как будет вести себя наш гипоте­тический процессор при выполнении двух разных потоков задач (рисунок 3).

Допустим, что первый поток включает две независимые инструкции с использо­ванием блока ALU и одну инструкцию по сохранению результата. Задача второ­го потока — загрузить необходимые данные из памяти (работа с блоком S/L), произвести операцию с действительными числами (числами с плавающей запя­той) при помощи блока FPU и сохранить результат с использованием блока S/L. Если бы оба потока исполнялись изолированно, то для выполнения первого потребовалось бы два такта процессора, а для второго — три. При одновременном исполнении обоих потоков процессор будет постоянно переключаться между обоими потоками так, что за один такт процессора выполняются только инст­рукции какого-либо одного из потоков. Для исполнения обоих потоков всего по­требуется пять процессорных тактов.

Рисунок 3. Выполнение двух потоков на процессоре без Hyper-Threading

Теперь давайте подумаем над тем, как можно повысить скорость выполнения за­дачи в рассмотренном примере. Для этого нужно по возможности не только вы­полнять параллельно независимые инструкции одного потока, но и совместить выполнение инструкций различных потоков. В нашем примере выполнение двух арифметических операций с целыми числами первого потока молено совместить с загрузкой данных из памяти второго потока и выполнить все три операции за один такт процессора. Аналогично на втором такте процессора можно совмес­тить операцию сохранения результатов первого потока с операцией с действи­тельными числами (с плавающей запятой) второго потока (рисунок 2).

Собственно, в таком параллельном выполнении двух потоков и заключается ос­новная идея технологии Hyper-Threading, которая реализована в современных процессорах Intel. Итак, технология Hyper Threading — это реализация одновре­менной многопоточности (Simultaneous Multi-Threading, SMT). Технология Hyper-Threading является промежуточной между многопоточной обработкой, осуществляемой в мультипроцессорных системах, и параллелизмом на уровне инструкций, реализованном в однопроцессорных системах.

Рисунок 4. Параллельное выполнение двух потоков на процессоре с реализацией технологии Hyper-Threading

Конечно, ждать двукратного увеличения производительности процессора от ис­пользования технологии Hyper-Threading не приходится, и па практике выиг­рыш куда более скромен.

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

Для реализации технологии Hyper-Threading процессор должен иметь два «входа» для отдельных потоков, как если бы существовало два физических процессора, но при этом всего один конвейер обработки команд, как в реальном физическом процессоре, который использует оба потока. В этом случае один физический процессор представляется операционной системе как два логических.

С конструктивной точки зрения процессор с поддержкой технологии Hyper-Threading состоит из двух логических процессоров, каждый из которых имеет свои регистры и контроллер прерываний (Architectural State, AS), то есть две па­раллельно исполняемые задачи работают со своими собственными независимы­ми регистрами и прерываниями, но при этом используют одни и те же ресурсы процессора для выполнения задач. Таким образом, от реальной двухпроцессор­ной конфигурации технология Hyper-Threading отличается только тем, что оба логических процессора используют одни и те же исполняющие ресурсы, одну и ту же разделяемую между двумя потоками кэш-память и одну системную шину.

Технологии тепловой защиты

Как уже отмечалось, современные процессоры рассеивают такую тепловую мощ­ность, что для ее эффективного отвода требуется использовать очень мощные кулеры. Однако даже мощные кулеры не гарантируют, что в периоды 100% за­грузки процессора локальная температура процессора не превысит допустимых значений. Поэтому все современные процессоры (и Intel, и AMD) имеют встро­енные средства тепловой защиты. Наиболее сложный механизм, предотвращаю­щий перегрев, используется в процессорах Intel. Именно с рассмотрения этих механизмов мы и начнем. Итак, в современных процессорах компании Intel (включая новейшие двухъядерные процессоры Intel Pentium D) используется три типа тепловой защиты: технологии Thermal Monitor, Thermal Monitor 2 и ре­жим аварийного отключения.

Технология Thermal Monitor

Технология Thermal Monitor реализована следующим образом: при нагревании процессора до некоторой критической температуры генерируется специальный сигнал, в результате чего активируется режим тепловой защиты процессора, при котором он остывает. При достижении нормальной температуры процессор воз­вращается к нормальному режиму работы. Естественно, что в режиме активации тепловой защиты процессор работает не на полную мощность, то есть остывание процессора происходит за счет потери производительности.

Рассмотрим данную технологию более подробно. Для контроля температуры во всех современных процессорах Intel встроены два термодатчика (термодиода), один из которых сообщает системе аппаратного мониторинга материнской платы температуру ядра процессора, а еще один является частью схемы Thermal Moni­tor и расположен в самой «горячей» точке ядра процессора — возле блоков ALU.

При достижении некоторого критического значения температуры (по состоянию термодатчика, расположенного возле блоков ALU) генерируется специальный сигнал PROCHOT#, который активирует специальный модуль Thermal Control Unit. Температура, при которой «выставляется» сигнал PROCHOT#, индивиду­ально калибруется для каждого процессора в процессе производства исходя из величины рассеиваемой им мощности. Однажды заданное значение температуры для сигнала PROCHOT# уже не может быть изменено.

Задача модуля Thermal Control Unit заключается в том, чтобы модулировать но­минальную тактовую частоту процессора. Смысл модуляции заключается в том, что в период действия сигнала PROCHOT* на номинальный сигнал тактовой частоты процессора накладывается еще один служебный сигнал, частота кото­рого существенно ниже тактовой частоты процессора. В результате частота, ко­торая подается на вычислительные блоки процессора, является прореженной, и можно говорить о том, что ядро процессора работает на пониженной частоте. Важно отметить, что технология Thermal Monitor никак не влияет на частоту тактирования процессора, а лишь модулирует частоту тактирования вычислительных блоков процессора.

В результате образования «холостых» тактов процессор будет иметь меньшую производительность и меньшее тепловыделение, а температура процессора нач­нет уменьшаться. С понижением температуры ядра количество холостых циклов начнет уменьшаться, и как только температура ядра процессора снизится ниже порогового значения примерно на 1°С, сигнал PROCHOT# исчезнет, а номи­нальная частота процессора совпадет с эффективной.

Рисунок 5. Модуляция частоты в технологии Thermal Monitor

Важно отметить, что сигнал PROCHOT может быть «выставлен» при достиже­нии критической температуры не только процессором, но и системами тепловой защиты других компонентов, например модуля регулировки напряжения (Vol­tage Regulation, VR) или модулей памяти.

Технология Thermal Monitor 2

В новых процессорах компании Intel к технологии Thermal Monitor добавился еще один инструмент теплового контроля — технология Thermal Monitor 2, ко­торая позволяет в еще большей степени влиять на энергопотребление процессо­ра при достижении им критической температуры.

При использовании технологии Thermal Monitor 2, когда рабочая температура процессора достигает критического значения, активируется служебный сигнал PROCHOT#, в результате чего происходит снижение тактовой частоты процес­сора и напряжение питания (VID). Это, в свою очередь, приводит к снижению потребляемой процессором мощности, а следовательно, и к снижению его рабо­чей температуры. Снижение тактовой частоты процессора происходит за счет уменьшения коэффициента внутреннего умножения до минимального значения. Технология Thermal Monitor 2 во многом напоминает технологию Enhanced Intel SpeedStep с той лишь разницей, что в технологии Enhanced Intel SpeedStep переход на меньшую тактовую частоту и напряжение питания осуществляется в период слабой активности процессора, а в технологии Thermal Monitor 2 — при достижении критической температуры. Кроме того, если в технологии Enhanced Intel SpeedStep определяются несколько возможных рабочих точек (несколько возможных тактовых частот и напряжений), то в технологии Thermal Monitor 2 определены только две рабочие точки, соответствующие максимальной и мини­мальной частотам процессора.

Соседние файлы в папке роман