Программирование и комп-ры

Процессор Pentium 4



Курсовая сдавалась в декабре 2000г. в ОГУ, кафедра ПИ,


ВМКСС


Дополнение к  моей курсовой:


О конвеере Р4 более подробно (www.ixbt.ru)



                       Intel Willamette. Первый взгляд

      1999 год стал не слишком удачным годом для Intel. И Direct  RDRAM  был
воспринят индустрией без особого энтузиазма, и VIA более чем удачно  сыграла
со своим Apollo Pro133/133A.  Что  касается  процессоров,  то  не  все  было
гладко и здесь. AMD, наконец, смогла полностью использовать  весь  потенциал
своих инженеров и  предложить  процессор,  выводящий  ее  из  рыночной  ниши
производителя недорогих процессоров уровня Low-End и чуть выше. Более  того,
ее Athlon, вышедший на полгода позже Pentium III, оказался весьма  и  весьма
перспективным процессором в плане роста тактовой частоты.  Предположительно,
в конце 2000 года  процессоры  из  этой  линейки  должны  достигнуть  уровня
порядка 1.4 ГГц. И это в то время, когда последнее  детище  Intel,  вышедшее
этой осенью - Coppermine, оказалось куда менее разгоняемым и к  концу  года,
предположительно, должно достигнуть скорости около лишь 1 ГГц.
      Что должен был сделать в  такой  ситуации  Intel?  Наверное,  ускорить
выход своего следующего x86 ядра, последнего IA32 ядра для  пользователей  -
Willamette. Первоначально, срок выхода процессоров на  этом  ядре  колебался
где-то между  концом  2000  года  и  началом  2001.  Соответственно,  первое
появление образцов чипа ожидалось где-то ближе  к  лету.  И  вот,  в  январе
неожиданно выясняется, что Intel уже получил на руки первый чип, а в  апреле
компания  намерена  начать  поставку  образцов  своим   особо   приближенным
партнерам.
      Тем временем приближался февраль - месяц двух крупных событий  в  мире
процессоров, конференции ISSCC и форума разработчиков Intel - IDF. Одним  из
самых ожидаемых событий ISSCC была демонстрация 1  ГГц  Willamette.  Однако,
ничего подобного не произошло - Intel продемонстрировал  там  всего  лишь  1
ГГц Coppermine, опять уступив первенство AMD с ее 1.1 ГГц  Athlon.  Но  зато
как  он  отыгрался  на  IDF!  Там  компания,  опять  совершенно  неожиданно,
продемонстрировала Willamette, работающий на частоте  1.5  ГГц.  Впечатляет,
что и говорить. Интересно, изменится ли  картина,  если  посмотреть  на  нее
более пристально?
      Willamette должен стать первой за  долгие  годы  серьезной  переделкой
архитектуры P6. Пожалуй, за последние пять лет,  с  момента  выхода  Pentium
Pro,  в  этой   области   не   происходило   ничего   более   значительного:
асимметричное  ядро,  с  блоками,  работающими   на   различных   скоростях,
значительно   улучшенная   версия   суперскалярного   механизма   исполнения
инструкций,  новый  кэш,  отслеживающий   порядок   выполнения   инструкций,
переработанные блоки операций с мультимедиа данными и  числами  с  плавающей
запятой, огромный набор новых инструкций на  все  случаи  жизни,  совершенно
новая 100 МГц шина, передающая по 4 пакета данных  за  такт,  что  дает  нам
результирующую  частоту  400  МГц,  конвейер  выполнения  инструкций  из  20
шагов... Хватит?
      А  теперь  попробуем  пройтись  по  пунктам.  И  начнем  с  того,  что
собственно позволило новому процессору Intel достичь столь высокой  тактовой
частоты  -  конвейера  выполнения  инструкций.  Для   начала   учтем,   один
общепринятый факт - чем длиннее  конвейер,  тем  легче  наращивать  тактовую
частоту, но тем меньше производительности получается  на  каждый  полученный
мегагерц. И наоборот. Почему так? Потому  что,  чем  на  большее  количество
стадий рассчитан конвейер, тем меньше работы приходится на каждый  отдельный
такт, тем быстрее этот самый такт выполняется. Но! Допустим, у  нас  имеется
простейший блок из нескольких, связанных друг с другом операций:
1) A=B+C
2) D=A+1
      То есть,  операция  1  будет  находиться  в  кэше  инструкций  столько
времени,  сколько  понадобится  для  выполнения  операции  2.  А  она  будет
выполняться тем больше тактов, чем длиннее конвейер. А кстати,  какой  длины
он у сегодняшних процессоров? Pentium  III  имеет  конвейер  длиной  12  (17
стадий FPU), Athlon - 10 стадий (15  стадий  FPU),  Alpha  -  7  стадий  (10
стадий FPU).  Как  видим  на  основании  этих  данных,  Willamette  является
абсолютным чемпионом по длине конвейера, то есть, имеет самое меньшее  время
выполнения такта, позволяющее достичь максимальной тактовой  частоты,  но  и
самые большие задержки для связанных друг  с  другом  операций  (операции  2
придется ждать 20 тактов, пока не выполнится до конца операция 1).

      Впрочем,  не  все  так  просто.  Во  первых,  в  буфере  всегда  будет
находиться некоторое количество инструкций, не требующих  знания  результата
выполнения предыдущих (простейший пример: A=1+2).  Их  тоже  можно  начинать
выполнять  во  время  выполнения  операции  1  (в  сегодняшних   процессорах
находится несколько исполнительных модулей, умеющих  работать  параллельно),
чтобы не было простоя во время ожидания, пока та  пройдет  весь  конвейер  и
можно будет приступить к выполнению операции 2.
      Другой вопрос, что чем  длиннее  конвейер  (и,  соответственно,  время
выполнения инструкций), тем меньше вероятность, что в буфере  удастся  найти
достаточно  таких  независимых  инструкций,  для   того,   чтобы   полностью
загрузить исполнительные модули во время ее выполнения операции 1.  И  здесь
немаловажную роль имеет объем этого буфера. Для информации - у  Pentium  III
он имеет объем 40  микроопераций,  (одна  x86  инструкция  в  среднем  равна
примерно полутора микрооперациям). У Willamette его  объем,  по  утверждению
Intel, должен значительно возрасти, результат очевиден.
      (Кстати, о кэше. Предполагаемый объем кэша первого уровня Willamette -
256 Кбайт, в 8 (!) раз больше, чем у Pentium III и в два раза больше, чем  у
Athlon. Объем кэша второго уровня  неизвестен,  но  предполагается,  что  он
будет менее 1 Мбайт - 512 Кбайт?).
      Во вторых, в действие вступает алгоритм предсказания переходов  -  чем
длиннее конвейер, тем более важным становится предсказание того,  выполнение
какой инструкции понадобится, задолго до самого процесса ее  выполнения.  И,
естественно, ошибка на этой стадии - выбор не той ветви, по  которой  пойдет
процесс  выполнения  программы,  будет  весьма  и  весьма   сказываться   на
производительности процессора. И она будет тем более критична,  чем  длиннее
конвейер - одна ошибка в выборе исполняемых операций в самом начале, и  пока
досчитается весь конвейер, и выяснится, что считалось совсем не то...  Intel
пообещал в Willamette значительно повысить  точность  процесса  предсказания
переходов, "скомбинировав все доступные на сегодня схемы  предсказаний".  По
некоторым сведениям, эффективность этого алгоритма в Willamette достигла  95
процентов.
      Одним из инструментов улучшения  производительности  в  этой  области,
станет одна новинка - кэш с упорядочиванием инструкций.  Его  задачей  будет
являться хранение инструкций в том порядке,  в  каком  они  исполняются.  То
есть, если первая инструкция, находящаяся по адресу 100,  выполняет  переход
на вторую инструкцию, находящуюся где-то по адресу, ну, скажем,  200,  то  в
этом кэше вторая инструкция будет находиться именно в том порядке,  как  она
исполняется - сразу непосредственно  за  первой,  и  т.д.  В  результате  мы
избавляемся  от  одного  из  скользких  мест,  где  мог  ошибиться  алгоритм
предсказания переходов.
      Еще один такой инструмент -  Advanced  Dynamic  Execution.  Так  Intel
называет   улучшенную   версию   механизма   суперскалярного   внеочередного
выполнения инструкций, когда процессор жонглирует инструкциями,  нарушая  их
естественную   последовательность,   с   целью   более   плотной    загрузки
исполнительных модулей - этот пункт тоже относится  к  издержкам  применения
длинного конвейера и  призван  минимизировать  связанное  с  ним  увеличение
задержек выполнения инструкций.
      Это все, что  касается  конвейера  Willamette.  Этот  фактор  является
весьма важным в  определении  производительности  процессора,  но  не  менее
важным является и производительность  модулей,  непосредственно  выполняющих
те или иные операции - с целыми числами, с числами с плавающей  запятой,  со
специфическими данными, когда одна инструкция  оперирует  сразу  несколькими
пакетами данных (SIMD).
      Здесь впечатления двойственные: что касается  целочисленных  операций,
то здесь все в полном порядке:  в  Willamette  блок  целочисленных  операций
работает на удвоенной скорости относительно скорости процессора -  то  есть,
в  случае  с  показанным  на  IDF  1.5  ГГц  чипом,  скорость   работы   его
целочисленных модулей  составляла  3  ГГц!  (Опять  же,  это  результирующая
частота - на самом деле скорость остается 1.5 ГГц, просто  этот  блок  умеет
выполнять вычисления не  за  полный  такт,  а  за  его  половину.  То  есть,
фактически его скорость удваивается). "Модулей" - поскольку их у  Willamette
два, соответственно, в  самом  идеальном  случае  получается  4  операции  с
целыми числами за один такт работы процессора.
      А вот что касается блока для операций с числами с  плавающей  запятой,
то получившаяся здесь картина, похоже, не впечатлила  даже  сам  Intel.  Два
таких  модуля  (против  трех  у  Athlon)  будут  обеспечивать  для  1.4  ГГц
процессора пиковую производительность в операциях с плавающей запятой  всего
лишь 1.4 GFLOPS, поскольку реальную вычислительную работу  выполняет  только
модуль - операции типа FADD, FMUL, и т.д., второй  же  занимается  подсобной
деятельностью - FMOVE, FSTORE. Здесь надо заметить,  что  для  Athlon,  если
предположить, что к тому времени он будет иметь ту  же  тактовую  частоту  -
1.4 ГГц (а основания, в принципе, имеются), этот показатель будет равен  2.8
GFLOPS.
      В общем, Intel решил не связываться с x87 в  своем  новом  процессоре,
сосредоточив все внимание  на  блоке,  предназначенном  для  работы  с  SIMD
(Single instruction - multiple data)  инструкциями  -  64-бит  инструкциями,
рассчитанными  на  числа  с  плавающей  запятой,  и  128-бит  целочисленными
инструкциями. Таких модулей у Willamette также  два,  один  для  регистровых
операций и один - для арифметических. За счет того, что это  -  SIMD,  то  в
идеале  возможны  варианты,  когда  за  один  такт  выполняется  одна   SIMD
инструкция, состоящая из четырех операций. Итого: четыре операции,  1.4  ГГц
-  пиковая  производительность  Willamette  в  случае   использования   SIMD
составляет 5.6 GFLOPS! Это напомню, против 2.8 GFLOPS x87 у 1.4  ГГц  Athlon
или же 5.6 GFLOPS в случае  использования  его  SIMD  блока,  работающего  с
набором 3DNow!.
      Так что немудрено, что Intel  будет  всячески  продвигать  новый  SIMD
набор инструкций Wilamette  (SSE2),  как  наилучший  вариант  для  работы  с
операциями с плавающей точкой.
      В результате мы сталкиваемся с двумя возможными вариантами.
      Intel сможет убедить разработчиков программ использовать SSE2,  набор,
состоящий из 144 новых инструкций:
    . 76 совершенно новых, оперирующих с широким диапазоном данных (включая
      числа с плавающей запятой двойной точности и целые числа из 4 слов: и
      то, и то - 64 бит, если используются регистры XMM, и происходит
      упаковка данных, то речь идет уже о 128-бит числах), часть инструкций
      из этого набора позволяет программа брать на себя контроль над
      механизмами кэширования, загрузки и хранения данных в регистрах
      процессора.
    . 68 расширенных SIMD инструкций для работы с целыми числами. Если в
      Pentium II/III они работали только с 64-бит MMX регистрами, то в
      Willamette они уже смогут использовать 128 бит регистры XMM этого
      процессора.
      Если Intel это удастся, то Willamette в операциях с  плавающей  точкой
для конца года будет выглядеть вполне солидно.
      Если же разработчики  программного  обеспечения  не  проявят  большого
энтузиазма и продолжат использовать старый добрый x87, то  Willamette  будет
выглядеть на числах с плавающей точкой отнюдь не так  блестяще,  практически
не отличаясь от Pentium III, работающего на той же тактовой частоте.
      При  все  возрастающей  производительности  процессоров  и  подсистемы
памяти, увеличение скорости системной шины GTL+ за последний год всего  лишь
на 33 МГц выглядит не слишком впечатляюще. Да  тут  еще  и  появление  новой
платформы  -  IA64.  В  общем,  с  выходом  Willamette  Intel  вводит  новую
системную  шину,  которая  мало  того,  что  должна  значительно   увеличить
пропускную  способность  (тактовая  частота  100  МГц,  даже  ниже,  чем   у
сегодняшней  133  МГц  GTL+,  но  за  счет  передачи  4  пакетов  за   такт,
результирующая  частота  получается  400  МГц),  она  еще  и  должна   стать
связующим звеном между IA32 и IA64 - после Tehama, чипсета  под  Willamette,
ее будет использовать i870 - чипсет, предназначенный как  под  IA32  Foster,
так и под IA64 McKinley.
      Таким образом,  плюсы  новой  шины:  значительно  выросшая  пропускная
способность - 3.2 Гбайт/с (400 МГц, 64 бит) против 1,064 Гбайт/с  (400  МГц,
64-бит) у сегодняшней 133 МГц GTL+ (3.2 Гбайт/с -  как  раз  ровно  столько,
сколько будет способен обеспечить двухканальный RDRAM, на который  рассчитан
Tehama) и некоторая перспективность в плане будущего.
      Минусы: 4 пакета данных за один такт - это здорово, но  только  в  том
случае, когда  удастся  их  предоставить  к  моменту  выполнения  очередного
такта. Иначе пропускная способность шины будет использоваться  далеко  не  в
полную меру. В общем, 3.2 Гбайт/с - это в самом идеальном случае.  Второе  -
сегодняшние материнские платы для Willamette никоим образом не  подходят.  И
даже не только за счет использования новой системной шины,  но  хотя  бы  за
счет нового форм-фактора - Socket-462.  Опять  новая  платформа,  и  никакие
переходники здесь уже не помогут.
      Вот такие вот дела. Что мы имеем в  результате?  Мы  имеем  процессор,
созданный  в  полном  соответствии   с   принципом   "покупают   мегагерцы",
оптимизированный именно под него, а не под максимальную  производительность.
В    итоге,    согласно    предварительным    данным,    Willamette    имеет
производительность того же уровня, что и работающий на одной частоте  с  ним
Coppermine. Или Athlon. Таким образом, увеличение производительности  нового
процессора будет связано исключительно с его увеличившейся скоростью.

      Как  предполагается,  к  концу  года  новые  процессоры  AMD  подойдут
примерно с той же скоростью, на которой Intel намерен выпустить  Willamette.
(И оба они будут требовать новые  материнские  платы).  Как  предполагается,
производительность у них будет  примерно  одинаковой,  то  есть  сегодняшнее
состояние неустойчивого равновесия между Intel  и  AMD  сохранится  еще  как
минимум до начала 2001 года.
      А  дальше?  Willamette  должен  стать  последним  потребительским  x86
процессором,  то  есть  в  2001  году  Intel  начнет  его  оптимизацию   для
дальнейшего повышения скоростных показателей. И где-то в том районе  в  свет
выйдет  новый  x86  процессор  AMD  -  SledgeHammer  (K8).  Основываясь   на
сегодняшних знаниях, получается интересная картина - в следующем году  Intel
опять должен оказаться в роли догоняющего на рынке x86 процессоров  среднего
уровня. Если, конечно, этот рынок к  тому  времени  будет  заслуживать  хоть
каких-либо усилий.



смотреть на рефераты похожие на "Процессор Pentium 4 "