Реферат: Pentium IV
--PAGE_BREAK--Преобразование линейного виртуального адреса в физический происходит следующим образом (рисунок 2.24). Поле номера виртуальной страницы (старшие 20 разрядов) делится на две равные части по 10 разрядов — поле номера раздела и поле номера страницы в разделе. С помощью номера физической страницы, хранящей каталог и смещения в этой странице, задаваемого полем номера раздела, процессор находит дескриптор виртуальной страницы раздела. В соответствии с атрибутами этого дескриптора определяются права доступа к этой странице, а также наличие ее в физической памяти. В случае ее отсутствия происходит страничное прерывание, и операционная система должна в этом случае переместить ее в память. После того, как нужная страница находится в памяти, для определения адреса элемента данных используется смещение, определяемое полем номера страницы линейного виртуального адреса.Таким образом, при доступе к странице в процессоре используется двухуровневая схема адресации страниц, что замедляет преобразование, но позволяет использовать страничный механизм и для хранения самой таблицы страниц, и существенно уменьшить объем физической памяти для ее хранения. Для ускорения страничных преобразований в блоке управления страницами используется ассоциативная память, в которой кэшируется 32 комбинации «номер виртуальной страницы — номер физической страницы». Эта специальная кэш-память (дополнительная по отношению к 8 Кбайтному кэшу данных процессоров i486 и
Pentium ) значительно ускоряет преобразование адресов, так как в случае попадания в кэш длительный процесс, описанный выше, исключается.
Организация виртуальной памяти в процессоре i386 позволяет защитить адресные пространства различных процессов за счет двух механизмов:
1. Изоляция адресных пространств процессов в физической памяти путем назначения им различных физических страниц или сегментов (если страничный механизм отключен).
2. Защита сегментов от несанкционированного доступа с помощью привилегий четырех уровней.
Средства вызова подпрограмм и задач
Операционная система, как однозадачная, так и многозадачная, должна предоставлять задачам средства вызова подпрограмм операционной системы, библиотечных подпрограмм, а также иметь средства для запуска задач, а при многозадачной работе средства быстрого переключения с задачи на задачу. Вызов подпрограммы отличается от запуска задачи тем, что в первом случае адресное пространство остается тем же (таблица LDT остается прежней), а при вызове задачи адресное пространство полностью меняется.
Вызов подпрограмм без смены кодового сегмента в защищенном режиме процессора i386 производится аналогично вызову в реальном режиме с помощью команд JMP и CALL.
Для вызова подпрограммы, код которой находится в другом сегменте (который может принадлежать библиотеке, другой задаче или операционной системе), процессор i386 предоставляет 2 варианта вызова, причем оба используют защиту с помощью прав доступа.
Первый способ состоит в непосредственном указании в поле команды JMP или CALL селектора сегмента, содержащего код вызываемой подпрограммы, а также смещение в этом сегменте адреса начала подпрограммы.
Схема такого вызова приведена на рисунке 2.25. Здесь и далее показан только этап получения линейного адреса в виртуальном пространстве, а следующий этап (подразумевается, что механизм поддержки страниц включен) преобразования этого адреса в номер физической страницы опущен, так как он не содержит ничего специфического по сравнению с доступом к сегменту данных, рассмотренному выше. Разрешение вызова происходит в зависимости от значения поля C в дескрипторе сегмента вызываемого кода. При C=0 вызываемый сегмент не считается подчиненным, и вызов разрешается, только если уровень прав вызывающего кода не меньше уровня прав вызываемого сегмента. При C=1 вызываемый сегмент считается подчиненным и допускает вызов из кода с любым уровнем прав доступа, но при выполнении подпрограмма наделяется уровнем прав вызвавшего кода.
Очевидно, что первый способ непригоден для вызова функций операционной системы, имеющей обычно нулевой уровень прав, из пользовательской программы, работающей, как правило, на третьем уровне. Поэтому процессор i386 предоставляет другой способ вызова подпрограмм, основанный на том, что заранее определяется набор точек входа в привилегированные кодовые сегменты, и эти точки входа описываются с помощью специальных дескрипторов — дескрипторов шлюзов вызова подпрограмм. Этот дескриптор принадлежит к системным дескрипторам, и его структура отличается от структуры дескрипторов сегментов кода и данных (рисунок 2.26). Схема его использования приведена на рисунке 2.27. Селектор из поля команды CALL используется для указания на дескриптор шлюза вызова подпрограммы в таблицах GDT или LDT. Для использования этого дескриптора вызывающий код должен иметь не меньший уровень прав, чем дескриптор, но если дескриптор шлюза доступен, то он может указывать на дескриптор сегмента вызываемого кода, имеющий более высокий уровень, чем имеет шлюз, и вызов при этом произойдет. При определении адреса входа в вызываемом сегменте смещение из поля команды CALL не используется, а используется смещение из дескриптора шлюза, что не дает возможности задаче самой определять точку входа в защищенный кодовый сегмент.
При вызове кодов, обладающих различными уровнями привилегий, возникает проблема передачи параметров между различными стеками, так как для надежной защиты задачи различного уровня привилегий имеют различные сегменты стеков. Селекторы этих сегментов хранятся в контексте задачи — сегменте TSS (Task State Segment). Если вызывается подпрограмма, имеющая другой уровень привилегий, то из текущего стека в стек уровня доступа вызываемого сегмента копируется столько 32-разрядных слов, сколько указано в поле счетчика слов дескриптора шлюза.
Структура сегмента TSS задачи приведена на рисунке 2.28. Контекст задачи должен содержать все данные для того, чтобы можно было восстановить выполнение прерванной в произвольный момент времени задачи, то есть значения регистров процессора, указатели на открытые файлы и некоторые другие, зависящие от операционной системы, переменные. Скорость переключения контекста в значительной степени влияет на скоростные качества многозадачной операционной системы. Процессор i386 производит аппаратное переключение контекста задачи, хранящегося в сегменте TSS. Как видно из рисунка, сегмент TSS имеет фиксированные поля, отведенные для значений регистров процессора, как универсальных, так и некоторых управляющих (например LDTR и CR3). Для описания возможностей доступа задачи к портам ввода-вывода процессор использует в защищенном режиме поле IOPL (Input/Output Privilege Level) в своем регистре EFLAGS и карту битовых полей доступа к портам. Для получения возможности выполнять команды ввода-вывода выполняемый код должен иметь уровень прав не ниже значения поля IOPL. Если же это условие соблюдается, то возможность доступа к порту с конкретным адресом определяется значением соответствующего бита в карте ввода-вывода сегмента TSS (карта состоит из 64 Кбит для описания доступа к 65536 портам).
Кроме этого, сегмент TSS может включать дополнительную информацию, необходимую для работы задачи и зависящую от конкретной операционной системы (например, указатели открытых файлов или указатели на именованные конвейеры сетевого обмена). Включенная в этот сегмент информация автоматически заменяется процессором при выполнении команды CALL, селектор которой указывает на дескриптор сегмента TSS в таблице GDT (дескрипторы этого типа могут быть расположены только в этой таблице). Формат дескриптора сегмента TSS аналогичен формату дескриптора сегмента данных.
Как и в случае вызова подпрограмм, имеется две возможности вызова задачи — непосредственный вызов через указание селектора сегмента TSS нужной задачи в поле команды CALL и косвенный вызов через шлюз вызова задачи. Как и при вызове подпрограмм, непосредственный вызов возможен только в случае, если вызывающий код обладает уровнем привилегий, не меньшим, чем вызываемая задача. При вызове через шлюз (который может располагаться и в таблице LDT) достаточно иметь права доступа к шлюзу. Непосредственный вызов задачи показан на рисунке 2.29. При переключении задач процессор выполняет следующие действия:
1) Выполняется команда CALL, селектор которой указывает на дескриптор сегмента типа TSS.
2) В TSS текущей задачи сохраняются значения регистров процессора. На текущий сегмент TSS указывает регистр процессора TR, содержащий селектор сегмента.
3) В TR загружается селектор сегмента TSS задачи, на которую переключается процессор.
4) Из нового TSS в регистр LDTR переносится значение селектора таблицы LDT в таблице GDT задачи.
5) Восстанавливаются значения регистров процессора (из соответствующих полей нового сегмента TSS).
6) В поле селектора возврата заносится селектор сегмента TSS снимаемой с выполнения задачи для организации возврата к прерванной задаче в будущем.
Вызов задачи через шлюз происходит аналогично, добавляется только этап поиска дескриптора сегмента TSS по значению селектора дескриптора шлюза вызова.
Использование всех возможностей, предоставляемых процессорами Intel 80386, 80486 и Pentium, позволяет организовать операционной системе высоконадежную многозадачную среду.
Всем было понятно, что Intel необходимо выпустить новый CPU. Конкуренты буквально «наступают на пятки», ядро Coppermine практически достигло своего предела частот, требования к производительности процессоров растут не по дням, а по часам, стремительно набирает обороты рынок домашней мультимедиа… Пользователь уже не довольствовался простым повышением частоты, его душа томилась по чему-то принципиально новому, свежему, неизведанному. И вот — вышел Pentium 4. Революция свершилась. Но революция не бывает «мягкой»...
Новая архитектураPentium 4
<shapetype id="_x0000_t202" coordsize=«21600,21600» o:spt=«202» path=«m,l,21600r21600,l21600,xe»><path gradientshapeok=«t» o:connecttype=«rect»><shape id="_x0000_s1027" type="#_x0000_t202" wrapcoords=«0 0 21600 0 21600 21600 0 21600 0 0» o:allowincell=«f» filled=«f» stroked=«f»><img width=«248» height=«48» src=«dopb338.zip» hspace=«12» alt=«Подпись: Pentium 4 собственной персоной» v:shapes="_x0000_s1027"><shape id="_x0000_s1028" type="#_x0000_t75" wrapcoords="-108 0 -108 21457 21600 21457 21600 0 -108 0" o:allowincell=«f»><imagedata src=«2.files/image006.jpg» o:><img width=«200» height=«151» src=«dopb339.zip» hspace=«12» v:shapes="_x0000_s1028">Проще перечислить, что в новом процессоре Intel не изменилось: он все еще 64-битовый и все еще поддерживает систему команд x86. Собственно, если перечислять именно то, чего изменения совсем не коснулись, то на этом список заканчивается. Группа разработчиков Pentium 4 «отряхнула с колен прах Pentium III» и создала архитектуру нового CPU практически «с нуля».
Но старую аксиому «не сломалось — не чини» в R&D-отделе Intel знают наверняка. Поэтому сперва попробуем понять, почему понадобилось настолько сильно переделывать (а кое-где и создавать заново) архитектуру Pentium 4 вместо того, чтобы подвергать дальнейшим усовершенствованиям ядро Pentium Pro (а мы уже писали ранее, что фактически именно этот процессор служит родоначальником серии Pentium II/III).
Как работают современные процессоры
Для начала — небольшая, но совершенно необходимая теоретическая часть. Во первых, все современные CPU используют конвейерную (pipelined) архитектуру в различных ее вариантах. Это означает, что любая команда выполняется не одним, а несколькими блоками, объединенными в конвейер. Первым процессором, в котором было применено такое решение, стал Intel 486, он имел конвейер из пяти ступеней.
Однако это еще не все. Дело в том, что внутри любой современный CPU уже давно «наполовину RISC», т. е. фактически он исполняет совсем другие команды, а не те, что поступают к нему из ОЗУ. Эра процессоров, «напрямую» выполнявших команды x86-ассемблера, закончилась еще с приходом Intel Pentium Pro/II и AMD K5/K6. Все последующие CPU сначала осуществляют преобразование довольно «емких» x86-команд в более простой RISC-подобный код (как правило, при этом одна команда преобразуется в несколько), исполнением которого и занимается непосредственно ядро процессора. Такой, на первый взгляд, сложный путь был избран потому, что ядро, исполняющее простые команды, гораздо легче «переносит» высокие частоты работы. В общем, спор между низкочастотным сложным ядром и высокочастотным простым уже давно и однозначно решен в пользу последнего.
При этом появляется еще одна возможность увеличения скорости исполнения команд — параллелизация обработки. То есть несколько RISC-подобных команд обрабатываются параллельно — за один такт, но на разных участках конвейера. Ну и кроме того, начиная с Intel Pentium, архитектура современных CPU стала «суперскалярной» (superpipelined), это означает, что конвейеров в них несколько и работают они параллельно.
Конвейерная архитектура: плюсы и минусы, проблемы и решения
Однако на этом пути возникла существенная проблема, связанная уже с недостатком самой конвейерной архитектуры. Поток команд, поступающих на конвейер, очень желательно сделать постоянным и непрерывным. В противном случае из-за «заминки» на любой его стадии те операции, для которых необходимо «знать» результат исполнения предыдущей команды, будут просто ждать ее завершения, и все «замрет». Для устранения этой проблемы используются два приема: внеочередное исполнение (Out-of-Order Execution) и предсказание ветвлений (Branch Prediction).
Внеочередное исполнение — термин, понимать который следует именно буквально: команды, поступающие на конвейер позже, исполняются — раньше. Рассмотрим простой пример «программы»:
A = B + C
N = A + 2
C = B + 3
В этом случае для выполнения второй операции необходимо завершить первую, так как значение A + 2 невозможно узнать до тех пор, пока в результате предыдущей операции не будет установлено значение A. Однако для выполнения третьей команды результаты двух предшествующих знать не обязательно! Значит, чтобы конвейер не простаивал, следует исполнять сначала первую команду, потом сразу же можно приступать к третьей, а уж пока она будет выполняться, «подоспеет» значение А, необходимое для выполнения второй. Именно выявлением подобных последовательностей и занимаются современные CPU, что позволяет им в результате сократить время простоя.
Механизм предсказания ветвлений — штука более сложная, однако получить некоторое представление о нем на простейшем примере тоже можно. Правда, необходимо знать хотя бы азы программирования (к примеру, BASIC). Итак, представим себе цикл FOR I = 1 TO 10… NEXT I. При компиляции этого цикла в машинный код он преобразуется примерно в такую последовательность команд:
10 I = 1
20 ...
30 I = I + 1
40 IF I <= 10 THEN GOTO 20
50…
Как видите, переход со строки 40 в десяти случаях осуществляется на строку 20 и только в одном — на строку 50. Механизм предсказания при этом просто «запомнит», куда произошел переход по условию в самый первый раз, после чего будет предполагать, что и в следующий раз переход осуществится туда же. И ошибется всего лишь один раз из десяти! А ведь в реальных задачах встречаются циклы с гораздо большим количеством повторений… Зная же, какие команды последуют за операцией перехода, можно, соответственно, начать декодировать их задолго до того, как сама операция совершится. И опять-таки конвейер будет «спасен» от простоя.
Разумеется, все приведенные выше примеры относятся к самым примитивным. На практике алгоритмы, ведающие внеочередным исполнением и предсказанием ветвлений, гораздо сложнее (и, кстати, являются тайной за семью печатями, потому что от них во многом зависит производительность конкретного CPU). Однако для того чтобы понять отличия Pentium 4 от предыдущих процессоров, знать «как это работает» — просто необходимо.
Pentium 4: гиперконвейеризация
Как мы уже говорили ранее — чем примитивнее команды, тем на большей частоте способно работать исполняющее их ядро. Однако элементы конвейера также подпадают под это правило: чем проще одна ступень конвейера — тем с большей скоростью он может «продвигаться». Но простая ступень может выполнять только простое действие, следовательно, количество их должно возрасти. Собственно, здесь мы уже вплотную подошли к ответу на вопрос, почему ядру Coppermine, наследнику «старичка» Pentium Pro, с таким трудом «давались» большие частоты: его конвейер из 12 ступеней приблизился уже к самому пределу своей максимально возможной частоты. Даже теоретически для 0,18-микронного процесса это значение составляет порядка 1,2 GHz, а ведь общеизвестно, что теоретический предел редко достижим на практике: «идеальных» кристаллов, увы, не бывает. Поэтому было принято кардинальное решение: увеличить длину конвейера сразу до… 20 ступеней! При этом многие части CPU, ранее входившие в конвейер (к примеру, блок декодирования команд), были вообще вынесены за его пределы и работают теперь как бы «сами по себе». Данная архитектура получила название «гиперконвейерной» (hyperpipelined) — в честь конвейера небывалой длины. Естественно, возможная частота работы возросла, что с успехом подтверждают новые Pentium 4, вышедшие сразу же на частотах 1,4 и 1,5 GHz. И это при сохранении того же 0,18-микронного процесса! Однако далось такое увеличение частот работы отнюдь не «бесплатно».
продолжение
--PAGE_BREAK--Длина конвейера Intel Pentium 4 увеличена до 20 этапов. Хорошо ли это? Для примера — сегодняшний Pentium III имеет 12-этапный конвейер, Athlon — 10-ти. Но при этом не стоит забывать один общеизвестную истину — чем длиннее конвейер, тем легче наращивать тактовую частоту, но, соответственно, тем меньшая производительность приходится на каждый полученный мегагерц :-(. Выходит палка о двух концах.
Простой конвейера: старые проблемы, умноженныена новые частоты
Приведенное ранее описание работы механизма предсказания ветвлений осталось все же немного незавершенным: мы закончили его на «победном» варианте: ветка предсказана правильно, процессор начал декодирование команд «наперед», переход осуществился к «угаданному» адресу, находящиеся там команды готовы к исполнению (или даже уже частично исполнены). Но что происходит, если «штатный предсказатель» все же ошибся? А происходит «воистину страшное» — весь конвейер приходится очищать от ненужных команд и в срочном порядке начинать готовить к исполнению новые, находящиеся еще в памяти и совсем по другому адресу. Естественно, ядро CPU во время всего этого «разбора полетов» просто исполняет холостой цикл, так как ни подготовленных данных, ни команд к нему не поступает. И наверняка наш читатель уже догадался сам об основной проблеме гиперконвейерной архитектуры нового процессора: чем длиннее конвейер, тем больше работы идет насмарку и тем дольше придется ждать, пока он будет «вычищен» от непонадобившихся команд и снова заполнен нужными. К тому же высокая частота работы в данном случае автоматически означает, что с момента ошибки в предсказании перехода до момента ее обнаружения «лишней» работы процессор успеет сделать больше. Да, такова реальность: не всегда высокая частота означает высокое быстродействие. Однако не все так плохо — естественно, проблема эта была известна еще задолго до выхода процессора, и минимизации потерь было уделено серьезное внимание.
<shape id="_x0000_s1029" type="#_x0000_t75" wrapcoords="-86 0 -86 21501 21600 21501 21600 0 -86 0" o:allowincell=«f»><imagedata src=«2.files/image008.png» o:><img width=«250» height=«219» src=«dopb340.zip» hspace=«12» v:shapes="_x0000_s1029">Предсказания должны сбываться!
<shape id="_x0000_s1030" type="#_x0000_t202" wrapcoords=«0 0 21600 0 21600 21600 0 21600 0 0» o:allowincell=«f» filled=«f» stroked=«f»><img width=«247» height=«42» src=«dopb341.zip» hspace=«12» alt='Подпись: Модули RIMM и «заглушки» CRIMM).' v:shapes="_x0000_s1030"> Применительно к соответствующему блоку процессора данная фраза выглядит как самое что ни на есть благое пожелание. И разработчики Pentium 4 сделали все от них зависящее, чтобы так это и происходило. Блок предсказания ветвлений нового CPU подвергся значительным модификациям — размер буфера, в котором хранятся адреса возможных переходов (BTB — Branch Target Buffer), увеличился до 4 KB (512 байт у Pentium III), кроме того, сам алгоритм был усовершенствован и теперь учитывает большее количество возможных факторов. В итоге, по заявлениям разработчиков, результативность предсказаний увеличилась на треть, и сейчас их точность достигает 94%.
Усовершенствованное внеочередное исполнение
Для того чтобы найти команду, претендующую на внеочередное исполнение, нужно иметь место, где ее искать. Анализировать «наперед» код, содержащийся в памяти, — операция накладная, да и медленная. Поэтому у всех современных процессоров есть так называемая «резервация» (Reservation Station), в которой хранятся декодированные и готовые к исполнению команды. У Pentium 4 соответствующий блок называется «окном команд» (Instruction Window), но, по сути, эти два наименования обозначают одно и то же — буфер для инструкций. Окно команд Pentium 4 тоже существенно выросло, теперь для внеочередного исполнения процессору предлагают «на выбор» более 120 инструкций (точные данные еще не опубликованы).
Удвоенная внутренняя частота ALU
Арифметико-логические блоки (Arithmetical Logic Units) в Pentium 4 работают на удвоенной частоте. Так, к примеру, ALU у Pentium 4 1,5 GHz функционирует на частоте 3 GHz! Это позволяет выполнять многие операции фактически даже не за один, а за полтакта, или две операции за такт. А поскольку таких блоков у Pentium 4 два — в идеале за один такт работы процессора получается 4 операции с целыми числами!
Сопроцессор
Что касается блока для операций с числами с плавающей запятой у Pentium 4, то получившаяся картина, похоже, не устраивает даже саму Intel. Два таких модуля в операциях с плавающей запятой будут обеспечивать для 1.4 ГГц-процессора Pentium 4 пиковую производительность всего лишь 1.4 GFLOPS :-(. Реальную вычислительную работу выполняет только один модуль — операции типа FADD (сложения) и FMUL (умножения), второй же занимается подсобной деятельностью — операции типа FSTORE (обмен между регистрами и памятью). Не в пример Pentium 4, FPU процессора Athlon содержит три раздельных, полностью конвейеризированных модуля, способных принимать инструкции на каждом такте. При этом один из них предназначен только для инструкции FSTORE, остальные два состоят из устройств FADD и FMUL. Благодаря этому FPU может выполнять за каждый такт по две инструкции — одну сложения и другую умножения, т. е. 1 ГГц Athlon имеет пиковую производительность 2 GFLOPS. Получается, что у Athlon более совершенная архитектура сопроцессора, чем у Pentium 4.
SSE-2
Поскольку производительность нового процессора очень сильно зависит от скорости поступления команд в исполнительные блоки конвейера, «напрашивается» еще один способ ускорения его работы — сократить количество команд, необходимых для выполнения ключевых операций. Однако в рамках существующего x86-набора это сделать попросту невозможно: если хоть что-то в нем изменить, CPU потеряет совместимость со старыми программами. Ведь то, что даже на самом современном процессоре до сих пор может исполняться код, написанный для родоначальника всего семейства — Intel 8086, является особым предметом гордости Intel. Но если нельзя изменить, никто не запрещает дополнить. Так и сделали — Pentium 4 поддерживает расширенный набор SIMD-команд под кодовым наименованием SSE-2. Во-первых, давайте разберемся с самим термином. SIMD (Single Instruction — Multiple Data) — это специальный тип инструкций, когда в качестве аргумента одной команды выступает достаточно большой массив данных. SSE-2 (Streaming SIMD Extensions 2, Потоковые SIMD Расширения 2) — значительно расширенная версия набора SSE, знакомого нам по Pentium III Coppermine. Набор SSE-2 включает в себя 144 новые инструкции, специально ориентированные на обработку больших входящих потоков данных. Использование SSE-2, по заявлениям Intel, способно поднять на невиданные доселе высоты производительность в мультимедиа-приложениях и играх — кодирование/декодирование аудио- и видеоданных, распознавание речи, трехмерные компьютерные игры — вот область применения новых команд. Основной упор делается на то, что теперь многие операции, ранее требовавшие написания целого фрагмента программы, могут быть осуществлены с помощью одной-двух инструкций SSE-2.
Платформа для Pentium 4
Естественно, процессор с таким количеством архитектурных новшеств требовал и принципиально новой платформы. Ее роль на данный момент выполняет новый чипсет Intel i850. Основным моментом, который хотелось бы отметить, является организация работы с памятью в рамках всей связки Pentium 4 <--> i850. Высокоскоростная 400-мегагерцевая RDRAM связана с чипсетом через двухканальную шину, разрядность каждого канала — 32 бита. Таким образом, в сумме имеем 64 бита и частоту 400 MHz, т. е. пропускную способность порядка 3,2 GBps. Дальше — больше: полоса пропускания шины FSB, по которой процессор «общается» с чипсетом, также эквивалентна 400 MHz! А учитывая, что сам процессор — 64-битовый, мы видим, что фактически шина, соединяющая процессор и чипсет, имеет такую же пропускную способность, как шина, соединяющая чипсет с памятью! И опять-таки хочется заметить, что при всей революционности подходов выглядит новая архитектура Intel весьма стройно — в ней действительно все строго ориентировано на основные приоритеты Pentium 4: потоковое видео и аудио, Internet, мультимедиа, игры.
Системная шина
При все возрастающей производительности процессоров и подсистемы памяти, увеличение скорости уже достаточно пожилой системной шины GTL+ за последний год всего лишь на 33 МГц выглядит не слишком впечатляюще. Поэтому неудивительно, что с выходом Willamette Intel вводит новую системную шину, которая должна значительно повысить пропускную способность. Эта системная шина имеет 128-битные линии с 64-битным доступом, к примеру, у процессоров предыдущих поколений были 32-битные линии. А ее тактовая частота — всего 100 МГц, то есть даже ниже, чем у сегодняшней 133 МГц GTL+, но за счет передачи 4 пакетов за такт, эффективная частота возрастает до 400 МГц.
Таким образом плюсы новой шины очевидны: значительно выросшая пропускная способность — 3.2 Гб/с (400 МГц, 64 бит) против 1.064 Гб/с у сегодняшней GTL+ (133 МГц, 32 бит) и против 1.6 Гб/с у системной шины EV6 под Athlon (200 МГц, 64-бит).
А вот минусы получились замаскированными. 4 пакета данных за один такт — это, конечно, здорово, но только в том случае, когда удастся их предоставить к моменту выполнения очередного такта. Иначе пропускная способность шины будет использоваться далеко не полностью. В общем, 3.2 Гб/с — это максимум, на что мы можем рассчитывать. К тому же, использование новой шины требует применения нового чипсета, что также плюсом назвать достаточно трудно.
Кэш первого и второго уровня
В кэш-памяти первого уровня сохраняются декодированные команды — ~12 Кб микрокоманд, благодаря чему в цикле исполнения устраняются задержки, связанные с раскодированием. Такая технология должна повысить быстродействие кэш-памяти команд и увеличить эффективность использования кэша. Кроме того, процессор Pentium 4 содержит кэш-память второго уровня типа Advanced Transfer Cache объемом 256 Кб, обеспечивающую передачу данных со скоростью 48 Гбит/с, увеличивающуюся пропорционально тактовой частоте ядра. В целом очень неплохо, но ничего революционного.
Относительно L2-кэша, видимо, разработчики посчитали, что «лучшее — враг хорошего», поэтому он остался таким же, как у Pentium III Coppermine: «учетверенной» ширины 256-битовая шина и работа на частоте ядра. А вот объем L1-кэша уменьшился вдвое и составляет по 8 КВ на команды и данные. Несколько странное решение, однако, возможно, дело просто в том, что процессор «не резиновый», и учитывая количество всех остальных модулей, больший размер L1 просто не удалось интегрировать в ядро. К тому же не стоит забывать, что Pentium 4 обладает существенно увеличенными в объеме «скрытыми кэшами» — фактически и 4-килобайтовый Branch Target Buffer, и Instruction Window по принципу своей работы вполне подходят под это определение.
Кэш второго уровня — быстродействующая память, которая используется процессором для хранения часто используемых данных. Благодаря высокой скорости работы, данные из кэша второго уровня загружаются гораздо быстрее, чем из основной памяти. В процессорах Pentium III Coppermine, AMD Ahtlon, Thunderbird и Duron кэш второго уровня находится непосредственно на ядре процессора и работает на его полной частоте.
Выводы
Intel Pentium 4 — процессор во всех отношениях новаторский. Фактически впервые в x86-семействе появился CPU, изначально спроектированный в расчете на быстродействие в определенных классах задач, но в то же самое время являющийся универсальным по набору команд. К тому же, говоря о самом процессоре, не стоит забывать и об архитектуре всей остальной системы. В нашем случае она действительно почти идеально сбалансирована, причем опять-таки — именно для строго определенных целей. Естественно (не будем закрывать глаза на очевидные вещи), кое-чем пришлось пожертвовать, и этими жертвами оказались «неудобные» новому CPU программы и алгоритмы работы. Логику Intel примерно можно представить так: «пусть в некоторых задачах наш процессор окажется на 10--15% медленнее, зато в остальных он получит возможность быть в 1,5--2 раза быстрее!». Такая ситуация и сложилась, судя по результатам наших тестов.
Следовательно, успех нового CPU во многом зависит от поддержки со стороны производителей ПО и распространенности программ именно того типа, на которые он ориентирован. Ну, в последнем пункте можно не сомневаться — игры и домашняя мультимедиа даже в нашей стране завоевывают все большую популярность, не говоря уже о Западе. А вот касательно учета особенностей Pentium 4 при разработке программ — здесь, несомненно, должны оказать немалое влияние «громкое» имя Intel и ее репутация, а также хорошая раскрученность марки «Pentium» во всем мире.
Отрадно и то, что переход на программы и процессор «нового века» Intel не намеревается осуществлять прямо завтра и на все 100%. Как следует из официальных заявлений самой компании, производство Pentium 4 только в 2002 г. сравняется с объемами выпуска Pentium III, так что и пользователи, и разработчики программного обеспечения будут располагать достаточным количеством времени для того, чтобы присмотреться к новому процессору. Наверняка не последнюю роль в принятии именно такой схемы сыграл и фактор стоимости памяти для новых систем — все же RDRAM сейчас намного дороже привычной PC133 SDRAM. Однако Intel надеется, что к тому времени, когда Pentium 4 распространится широко, ситуация успеет измениться в лучшую сторону.
Intel уже демонстрировала опытные образцы Pentium 4. А некоторым независимым источникам (зарубежные компьютерные СМИ) даже удалось попробовать новинку в работе. И если отбросить результаты явно рекламных тестов, активно использующих SSE2, то выводы получатся достаточно обычными — революции не произошло :-(. Несмотря на внедрение всех вышеперечисленных инноваций, результаты первых полевых испытаний не выявили явного преимущества Pentium 4 перед Pentium III Coppermine или AMD Athlon — при равных тактовых частотах.
Но вряд ли стоит огорчаться по этому поводу. Теперь в арсенале Intel имеется отлично масштабируемая архитектура, позволяющая быстро и легко наращивать тактовую частоту процессора, сохраняя при этом хороший прирост производительности системы в целом. Теперь главному конкуренту в лице AMD Athlon будет очень тяжело тягаться с Pentium 4 по уровню достигаемых тактовых частот. В бешеной гонке полупроводниковых гигантов за звание производителя самого быстрого процессора компания Intel сделала огромный рывок вперед, оставив позади соперников — AMD и VIA. Вот только надолго ли?
Pentium 4 представляет собой полностью новую архитектуру, кодовое название которой NetBurst. Он создан для решения таких задач, как шифрование данных, сжатия видео-информации или Napster-сетей, т.е. для технологий, популярность которых растет одновременно с Интернет, — сказал Альберт Ю (Albert Yu), главный вице-президент Intel Architecture Group. - Это будет высокопроизводительный процессор для платформы PC. Мы также работаем над новыми возможностями в области потокового видео.Новые подсистемы архитектуры NetBurst позволят процессору обрабатывать данные намного быстрее. Микро-движок быстрого выполнения, названный Rapid Execution Engine, например, будет работать с удвоенной скоростью процессора и будет отвечать за часто повторяемые задачи, такие как сложение или вычитание.
Список литературы
1. InfoCity — виртуальный город компьютерной документации (Статья Pentium 4: революция не бывает половинчатой!) www.InfoCity.kiev.ua/mhard.
еще рефераты
Еще работы по информатике
Реферат по информатике
Решение задачи одномерной упаковки с помощью параллельного генетического алго-ритма
2 Сентября 2013
Реферат по информатике
Графы и их представление на ЭВМ
2 Сентября 2013
Реферат по информатике
Решение линейных интегральных уравнений
2 Сентября 2013
Реферат по информатике
Становлення ринку електронних угод
18 Июня 2015