Процессор пентиум

2Содержание

     Вступление                                               2
     Два кристалла в одном корпусе                            3
     Pentium как точка отсчета                                4
     Основная проблема на пути повышения производительности   5
     Решение принятое в P6                                    6
     Архитектура P6                                           7
         1. Устройство выборки/декодирования                  7
         2. Устройство диспетчирования/выполнения             8
         3. Устройство отката                                 9
         4. Интерфейс шины                                   10
         5. Вывод                                            11
     P6 как платформа для построения мощных серверов         12
     Системы на основе P6                                    13
     Следующее поколение процессоров                         14
     Заключение                                              17
     Приложения                                              18
     Литература                                              22
.

   . 2 -

ш1.1

  2Вступление

Все IBM-совместимые  персональные  компьютеры укомплектованы Intel-
совместимыми процессорами.  История развития микропроцессо-ров семейства
Intel вкратце такова.  Первый универсальный микро-процессор фирмы Intel
появился в 1970 г.  Он назывался Intel 4004, был  четырехразрядным и имел
возможность ввода/вывода и обработки четырехбитных слов. Быстродействие его
составляло 8000 операций в секунду.  Микропроцессор Intel 4004 был
рассчитан на применение в программируемых калькуляторах с памятью размером
в 4 Кбайт.

Через три года фирма Intel выпустила процессор 8080, который

мог выполнять уже 16-битные арифметические операции, имел 1б-раз-

рядную адресную шину и, следовательно, мог адресовать до 64 Кбайт

памяти (2 516 0=65536).  1978 год ознаменовался выпуском  процессора

8086 с размером слова в 16 бит (два байта),  20-разрядной шиной и

мог оперировать уже с 1  Мбайт  памяти  (2 520 0=1048576,  или  1024

Кбайт),  разделенной на блоки (сегменты) по 64 Кбайт каждый. Про-

цессором 8086 комплектовались компьютеры,  совместимые с IBM PC и

IBM  PC/XT.  Следующим крупным шагом в разработке новых микропро-

цессоров стал появившийся в 1982 году процессор 8028б. Он обладал

24-разрядной адресной шиной, мог распоряжаться 16 мегабайтами ад-

ресного пространства и ставился на компьютеры,  совместимые с IBM

PC/AT.  В  октябре  1985 года был выпущен 80386DX с 32- разрядной

шиной адреса (максимальное адресное пространство - 4 Гбайт),  а в

июне 1988 года - 80386SX,  более дешевый по сравнению с 80386DX и

обладавший 24-разрядной адресной шиной.  Затем в апреле 1989 года

появляется микропроцессор 80486DX,  а в мае 1993 - первый вариант

процессора Pentium (оба с 32-разрядной шиной адреса).

В мае 1995 года в Москве на международной выставке Комтек-95

фирма Intel представила новый процессор - P6.

Одной из важнейших целей,  поставленных при  разработке  P6,

было  удвоение производительности по сравнению с процессором Pen-

tium. При этом производство первых версий P6 будет осуществляться

по уже отлаженной «Intel» и используемой при производстве послед-

них версий Pentium полупроводниковой технологии (О,6 мкм, З,З В).

Использование  того же самого процесса производства дает гарантию

того,  что массовое производство P6 будет налажено без  серьезных

проблем.  Вместе с тем это означает,  что удвоение производитель-

ности достигается только за счет всестороннего улучшения микроар-

хитектуры процессора.  При разработке микроархитектуры P6 исполь-

зовалась тщательно продуманная и настроенная комбинация различных

архитектурных методов.  Часть из них была ранее опробована в про-

цессорах «больших» компьютеров,  часть предложена  академическими

институтами, оставшиеся разработаны инженерами фирмы «Intel». Эта

уникальная комбинация архитектурных особенностей,  которую в «In-

tel» определяют словами «динамическое выполнение», позволила пер-

вым кристаллам P6 превзойти первоначально планировавшийся уровень

производительности.

      При сравнении с альтернативными «Intel» процессорами семейс-
тва х86 выясняется,  что микроархитектура Р6 имеет много общего с
микроархитектурой процессоров Nx586 фирмы NexGen и K5 фирмы  AMD,
и,  хотя  и в меньшей степени,  с M1 фирмы «Cyrix».  Эта общность
   . 3 -

объясняется тем,  что инженеры четырех компаний решали одну и  ту

же  задачу:  внедрение  элементов  RISC-технологии при сохранении

совместимости с CISC-архитектурой Intel х86.


2Два кристалла в одном корпусе

Главное преимущество и уникальная особенность Р6 - размещен-ная  в  одном
корпусе с процессором вторичная статическая кэш-па-мять размером 256 кб,
соединенная с процессором специально выде-ленной шиной. Такая конструкция
должна существенно упростить про-ектирование систем на базе Р6.  Р6 -
первый  предназначенный  для массового производства микропроцессор,
содержащий два чипа в од-ном корпусе.

Кристалл ЦПУ в Р6 содержит 5,5 миллионов транзисторов; крис-

талл кэш-памяти второго уровня - 15,5 миллионов.  Для  сравнения,

последняя  модель  Pentium включала около 3,3 миллиона транзисто-

ров,  а кэш-память второго уровня реализовывалась с помощью внеш-

него набора кристаллов памяти.

Столь большое число транзисторов в кэше объясняется его ста-

тической природой. Статическая память в P6 использует шесть тран-

зисторов для запоминания одного бита, в то время как динамической

памяти было бы достаточно одного транзистора на бит.  Статическая

память быстрее, но дороже.

Хотя число транзисторов на кристалле с вторичным кэшем втрое

больше,  чем на кристалле  процессора,  физические  размеры  кэша

меньше:  202  квадратных миллиметра против 306 у процессора.  Оба

кристалла вместе заключены в керамический корпус с 387 контактами

(“dual cavity pin-drid array”). Оба кристалла производятся с при-

менением одной и той же  технологии  (0,6  мкм,  4-  слойная  ме-

талл-БиКМОП,  2,9  В).  Предполагаемое  максимальное  потребление

энергии: 20 Вт при частоте 133 МГц.

Первая причина  объединения  процессора  и вторичного кэша в

одном корпусе - облегчение проектирования и производства высокоп-

роизводительных  систем  на базе Р6.  Производительность вычисли-

тельной системы,  построенной на быстром процессоре, очень сильно

зависит  от  точной  настройки микросхем окружения процессора,  в

частности вторичного  кэша.  Далеко  не  все  фирмы-производители

компьютеров могут позволить себе соответствующие исследования.  В

Р6 вторичный кэш уже настроен на процессор  оптимальным  образом,

что облегчает проектирование материнской платы.

Вторая причина объединения -  повышение  производительности.

Кзш второго уровня связан с процессором специально выделенной ши-

ной шириной 64 бита и работает на той же тактовой частоте,  что и

процессор.

      Первые процессоры Рentium с тактовой частотой 60  и  66  МГц
обращались к вторичному кэшу по 64-разрядной шине с той же такто-
вой частотой. Однако с ростом тактовой частоты Pentium для проек-
тировщиков  стало слишком сложно и дорого поддерживать такую час-
тоту на материнской плате.  Поэтому  стали  применяться  делители
частоты.  Например,  у  100  МГц Pentium внешняя шина работает на
частоте 66 МГц (у 90 МГц Pentium - соответственно 60 МГц). Penti-
um использует эту шину как для обращений к вторичному кэшу, так и
   . 4 -

для обращения к основной памяти и другим устройствам,  например к

набору чипов PCI.

Использование специально выделенной шины для доступа к  вто-

ричному  кэшу улучшает производительность вычислительной системы.

Во-первых,  при этом достигается полная  синхронизация  скоростей

процессора и шины;  во-вторых,  исключается конкуренция с другими

операциями ввода-вывода и связанные с этим  задержки.  Шина  кэша

второго уровня полностью отделена от внешней шины,  через которую

происходит доступ к  памяти  и  внешним  устройствам.  64-битовая

внешняя шина может работать со скоростью,  равной половине, одной

третьей или одной четвертой от скорости процессора, при этом шина

вторичного кэша работает независимо на полной скорости.

Объединение процессора и вторичного кэша в одном  корпусе  и

их  связь  через  выделенную шину является шагом по направлению к

методам повышения  производительности,  используемым  в  наиболее

мощных RISC-процессорах. Так, в процессоре Alpha 21164 фирмы «Di-

gital» кэш второго уровня размером 96 кб размещен в ядре  процес-

сора,  как и первичный кэш. Это обеспечивает очень высокую произ-

водительность кэша за счет увеличения числа транзисторов на крис-

талле до 9,3 миллиона.  Производительность Alpha 21164 составляет

330 SPECint92 при тактовой частоте 300 МГц. Производительность Р6

ниже (по оценкам «Intel» - 200 SPECint92 при тактовой частоте 133

МГц),  однако Р6 обеспечивает лучшее соотношение стоимость/произ-

водительность для своего потенциального рынка.

При оценке соотношения стоимость/производительность  следует

учитывать, что, хотя Р6 может оказаться дороже своих конкурентов,

большая часть других процессоров должна  быть  окружена  дополни-

тельным набором чипов памяти и контроллером кэша. Кроме того, для

достижения сравнимой производительности работы  с  кэшом,  другие

процессоры  должны  будут  использовать кэш большего,  чем 256 кб

размера.

«Intel», как  правило,  предлагает  многочисленные  вариации

своих процессоров. Это делается с целью удовлетворить разнообраз-

ным  требованиям  проектировщиков систем и оставить меньше прост-

ранства для моделей конкурентов.  Поэтому можно предположить, что

вскоре  после начала выпуска Р6 появятся как модификации с увели-

ченным объемом вторичной кэш-памяти,  так и более дешевые модифи-

кации с внешним расположением вторичного кэша, но при сохраненной

выделенной шине между вторичным кэшом и процессором.


2Pentium как точка отсчета

Процессор Pentium со своей конвейерной и суперскалярной  ар-хитектурой
достиг впечатляющего уровня производительности.

Pentium содержит два 5-стадийных  конвейера,  которые  могут

работать параллельно и выполнять две целочисленные команды за ма-

шинный такт.  При этом параллельно может выполняться только  пара

команд,  следующих  в  программе друг за другом и удовлетворяющих

определенным правилам,  например,  отсутствие регистровых зависи-

мостей типа «запись после чтения».

  В P6 для увеличения пропускной способности осуществлен пере-

ход  к  одному  12-стадийному конвейеру.  Увеличение числа стадий


   . 5 -

приводит к уменьшению выполняемой на каждой стадии работы и,  как

следствие, к уменьшению времени нахождения команды на каждой ста-

дии на 33 процента по сравнению с Pentium.  Это означает, что ис-

пользование при производстве P6 той же технологии, что и при про-

изводстве 100 МГц Pentium,  приведет к получению  P6  с  тактовой

частотой 133 МГц.

Возможности суперскалярной архитектуры Pentium, с ее способ-

ностью к выполнению двух команд за такт, было бы трудно превзойти

без совершенно нового подхода. Примененный в P6 новый подход уст-

раняет жесткую зависимость между традиционными фазами «выборки» и

«выполнения»,  когда последовательность прохождения команд  через

эти две фазы соответствует последовательности команд в программе.

Новый подход связан с использованием так называемого пула  команд

и  с  новыми эффективными методами предвидения будущего поведения

программы.  При этом традиционная фаза «выполнение» заменяется на

две: «диспетчирование/выполнение» и «откат». В результате команды

могут начинать выполняться в произвольном порядке,  но  завершают

свое  выполнение  всегда  в соответствии с их исходным порядком в

программе.  Ядро P6 реализовано как три  независимых  устройства,

взаимодействующих через пул команд (рис. 1).

  2Основная проблема на пути повышения

  2производительности

Решение об организации P6 как трех независимых и взаимодейс-твующих через
пул команд устройств было принято после тщательного анализа факторов,
ограничивающих производительность  современных микропроцессоров.
Фундаментальный факт, справедливый для Pentium и многих других процессоров,
 состоит в том,  что при  выполнении реальных  программ  мощность
процессора не используется в полной мере. Рассмотрим в качестве примера
следующий фрагмент программы, записанный на некотором условном языке:

 r1 <- mem[r0]            /*  Команда 1   */
 r2 <- r1 + r2            /*  Команда 2   */
 r5 <- r5 + 1             /*  Команда 3   */
 r6 <- r6 - r3            /*  Команда 4   */

Предположим, что при выполнении первой команды  фрагмента  -

загрузки из памяти в регистр r1 - оказалось, что содержимое соот-

ветствующей ячейки памяти отсутствует в  кэше.  При  традиционном

подходе  процессор  перейдет  к выполнению команды 2 только после

того, как данные из ячейки mem[r0] основной памяти будут прочита-

ны через интерфейс шины. Все время ожидания процессор будет прос-

таивать.

В то  время как скорость процессоров за последние 10 лет вы-

росла по меньшей мере в 10 раз,  время доступа к основной  памяти

уменьшилось только на 60 процентов.  Это увеличивающееся отстава-

ние скорости работы с памятью по отношению к скорости  процессора

и было той фундаментальной проблемой, которую пришлось решать при

проектировании P6.

  Один из возможных подходов к решению этой проблемы - перенос


   . 6 -

ее центра тяжести на разработку высокопроизводительных  компонен-

тов, окружающих процессор. Однако массовый выпуск систем, включа-

ющих и высокопроизводительный процессор,  и высокоскоростные спе-

циализированные микросхемы окружения,  был бы слишком дорогостоя-

щим.

Можно было  попытаться решить проблему с использованием гру-

бой силы,  а именно увеличить размер кэша второго  уровня,  чтобы

уменьшить  процент  случаев отсутствия необходимых данных в кэше.

Это решение эффективное,  но тоже чрезвычайно дорогостоящее, осо-

бенно  учитывая  сегодняшние  скоростные требования к компонентам

кэша второго уровня. P6 проектировался с точки зрения эффективной

реализации целостной вычислительной системы, и требовалось, чтобы

высокая производительность системы в целом достигалась с  исполь-

зованием дешевой подсистемы памяти.


2Решение, принятое в P6

Решение сформулированной в предыдущем разделе проблемы памя-ти,  принятое в
P6, заключается в обращении к пулу команд, извле-чении из него команд,
следующих за командой, требующей обращения к памяти, и выполнения до
момента завершения команды-тормоза мак-симума полезной работы. В
приведенном в предыдущем разделе приме-ре процессор не может выполнить
команду 2 до  завершения  команды 1,  так  как команда 2 зависит от
результатов команды 1.  В то же время процессор может выполнить команды 3 и
4,  не  зависящие  от результата выполнения команды 1. Мы будем называть
такое выполне-ние команд опережающим выполнением.  Результаты опережающего
вы-полнения  команд  3  и 4 не могут быть сразу записаны в регистры,
поскольку мы должны  изменять  состояние  вычислительной  системы только в
соответствии с правильным порядком выполнения программы.  Эти результаты
хранятся в пуле команд и извлекаются оттуда  позд-нее. Таким образом,
процессор выполняет команды в соответствии с их готовностью к выполнению,
вне зависимости от их первоначально-го порядка в программе,  то есть с
точки зрения реального порядка выполнения команд P6 является машиной,
управляемой потоком  дан-ных.  В  то  же время изменение состояния
вычислительной системы, например запись в регистры, производится в строгом
соответствии с истинным порядком команд в программе.

      Чтение из памяти данных,  необходимых для команды  1,  может
занимать достаточно много тактов. Тем временем P6 продолжает опе-
режающее выполнение команд,  следующих за командой 1,  и успевает
обработать,  как правило,  20-30 команд.  Среди этих 20-30 команд
будет в среднем пять команд перехода,  которые устройство  выбор-
ки/декодирования должно правильно предсказать для того, чтобы ра-
бота устройства диспетчирования/выполнения не оказалась бесполез-
ной.  Небольшое  количество  регистров  в архитектуре процессоров
«Intel» приводит к интенсивному использованию каждого из  них  и,
как следствие, к возникновению множества мнимых зависимостей меж-
ду командами, использующими один и тот же регистр. Поэтому, чтобы
исключить задержку в выполнении команд из-за мнимых зависимостей,
устройство диспетчирования/выполнения работает с дублями  регист-
ров,  находящимися в пуле команд (одному регистру может соответс-
   . 7 -

твовать несколько дублей). Реальный набор регистров контролирует-

ся устройством отката,  и результаты выполнения команд отражаются

на состоянии вычислительной системы только после того, как выпол-

ненная команда удаляется из пула команд в соответствии с истинным

порядком команд в программе.

Таким образом, принятая в P6 технология динамического выпол-

нения может быть описана как оптимальное выполнение  программы  ,

основанное на предсказании будущих переходов, анализе графа пото-

ков данных с целью выбора наилучшего порядка исполнения команд  и

на опережающем выполнении команд в выбранном оптимальном порядке.


2Архитектура P6

На рисунке 2 приведена более подробная блок-схема P6,  вклю-чающая кэши и
интерфейс с основной памятью.

Далее мы будем понимать под «упорядоченным» устройство,  ко-

торое работает в соответствии с исходным порядком команд в  прог-

рамме,  а  под «беспорядочным» - устройство,  которое не обращает

внимания на исходный порядок команд в программе.

Устройство выборки/декодирования   является  «упорядоченным»

устройством,  которое воспринимает на входе поток команд из прог-

раммы  пользователя  и декодирует их,  превращая в последователь-

ность микрокоманд,  соответствующих  потоку  данных  в  программе

пользователя.

Устройство диспетчирования/выполнения является  «беспорядоч-

ным»  устройством,  которое воспринимает поток данных и планирует

выполнение микрокоманд с учетом зависимостей по данным и  доступ-

ности ресурсов, а также временно сохраняет результаты опережающе-

го выполнения в пуле команд.

Устройство отката - «упорядоченное» устройство, которое зна-

ет,  как и когда завершить выполнение команды,  то есть перевести

временные результаты опережающего выполнения в постоянное состоя-

ние вычислительной системы.

Интерфейс шины  является  «частично  упорядоченным» устройс-

твом, отвечающим за связь трех вышеупомянутых устройств с внешним

миром.  Интерфейс  шины  взаимодействует  непосредственно с кэшем

2-го уровня и поддерживает до 4 параллельных  обращений  к  кэшу.

Интерфейс  шины  также  управляет  обменом данными с основной па-

мятью, который происходит с использованием протокола MESI [1].


2Устройство выборки/декодирования

      Структура этого  устройства приведена на рисунке 3.
      Команды из кэша команд могут быть быстро выбраны для  после-
дующей обработки. Указатель на следующую команду - это индекс кэ-
ша  команд,  содержимое  которого определяется буфером переходов,

состоянием процессора и сообщениями о  неправильном  предсказании

перехода, поступающими из устройства выполнения целых команд. Бу-

фер переходов с 512 входами использует  расширение  алгоритма  Йе

(Yeh),  которое  обеспечивает  более  чем  90-процентную точность

предсказания переходов.

  Предположим, что  ничего исключительного не происходит и что


   . 8 -

буфер переходов в своих предсказаниях оказался прав (в P6 предус-

мотрены  эффективные действия в случае неправильного предсказания

перехода).

Кэш команд  выбирает строку кэша,  соответствующую индексу в

указателе на следующую команду,  и следующую за ней строку, после

чего передает 16 выровненных байтов декодеру. Две строки считыва-

ются из-за того,  что команды в архитектуре  Intel  выровнены  по

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

середину или конец строки кэша. Выполнение этой ступени конвейера

занимает три такта, включая время, необходимое для вращения пред-

выбранных байтов и их подачи на декодеры команд.  Начало и  конец

команд помечаются.

Три параллельных декодера принимают поток отмеченных  байтов

и  обрабатывают  их,  отыскивая и декодируя содержащиеся в потоке

команды. Декодер преобразует команды архитектуры Intel в микроко-

манды-триады (два операнда,  один результат).  Большинство команд

архитектуры Intel преобразуются в  одну  микрокоманду,  некоторые

требуют четырех микрокоманд,  а сложные команды требуют обращения

к микрокоду,  представляющему из себя набор заранее  составленных

последовательностей микрокоманд.  Некоторые команды, так называе-

мые байт-префиксы,  модифицируют следующую за ними  команду,  что

также усложняет работу декодера. Микрокоманды ставятся в очередь,

посылаются в таблицу псевдонимов регистров,  где ссылки на  логи-

ческие регистры преобразуются в ссылки на физические регистры P6,

после чего каждая из микрокоманд вместе с дополнительной информа-

цией о ее состоянии (статусе) посылается в пул команд. Пул команд

реализован в виде массива контекстно-адресуемой памяти,  называе-

мого также буфером переупорядочивания.

  В этой точке заканчивается «упорядоченная» часть конвейера.


2Устройство диспетчирования/выполнения

Устройство диспетчирования выбирает микрокоманды из пула ко-манд в
зависимости от их статуса.  Под статусом мы будем понимать информацию о
доступности операндов микрокоманды и наличии необхо-димых для ее выполнения
вычислительных ресурсов. Если статус мик-рокоманды показывает, что ее
операнды уже вычислены и доступны, а необходимое  для ее выполнения
вычислительное устройство (ресурс) также доступно,  то устройство
диспетчирования выбирает  микроко-манду  из  пула команд и направляет ее на
устройство для выполне-ния. Результаты выполнения микрокоманды возвращаются
в пул.

Взаимодействие с  вычислительными ресурсами происходит через

пятипортовую распределительную станцию. Структура устройства дис-

петчирования/выполнения показана на рисунке 4.

P6 может запускать на выполнение до 5 микрокоманд  за  такт,

по  одной  на каждый порт.  Средняя длительно поддерживаемая про-

пускная способность - 3 микрокоманды за такт.  Процесс планирова-

ния  выполнения  микрокоманд  является принципиально «беспорядоч-

ным»:  момент направления микрокоманд на  вычислительные  ресурсы

определяется только потоками данных и доступностью ресурсов,  без

какой бы то ни было связи  с  первоначальным  порядком  команд  в

программе.


   . 9 -

Алгоритм, отвечающий за планирование выполнения микрокоманд,

является крайне важным для производительности процессора в целом.

Если в каждом такте для каждого ресурса готова к выполнению толь-

ко  одна микрокоманда,  то проблемы выбора не возникает.  Но если

готовых к выполнению на данном ресурсе микрокоманд несколько,  то

какую из них выбрать?  Можно доверить выбор случаю.  Можно приме-

нить алгоритм «первый пришел - первый обслужен». Идеальным был бы

выбор микрокоманды, выполнение которой привело бы к максимальному

сокращению графа потоков  данных  выполняемой  программы.  Однако

поскольку  нет  возможности  определить такую микрокоманду в ходе

выполнения программы,  используется алгоритм планирования, имити-

рующий  модель  «первый  пришел  - первый обслужен»,  предпочитая

смежное выполнение смежных микрокоманд.

Поскольку система команд Intel содержит множество команд пе-

рехода,  многие микрокоманды также являются переходами. Алгоритм,

реализованный в буфере переходов, позволяет в большинстве случаев

правильно предсказать,  состоится или не  состоится  переход,  но

иногда он все же будет ошибаться.  Рассмотрим для примера случай,

когда буфер переходов предсказывает переход назад в конце  цикла:

до тех пор,  пока условие выхода из цикла не выполняется, переход

будет предсказываться верно,  однако когда это условие станет ис-

тинным, предсказание будет ошибочным.

Для исправления случаев неверного предсказания перехода при-

менен следующий подход.  Микрокомандам перехода еще в упорядочен-

ной части конвейера ставятся в соответствие адрес  следующей  ко-

манды и предполагаемый адрес перехода.  После вычисления перехода

реальная ситуация сравнивается с предсказанной. Если они совпада-

ют,  то проделанная,  исходя из предположения об исходе перехода,

работа оказывается полезной, так как соответствует реальному ходу

программы, а микрокоманда перехода удаляется из пула команд.

Если же допущена ошибка (переход был предсказан, но не прои-

зошел, или было предсказано отсутствие перехода, а в действитель-

ности он состоялся),  то устройство выполнения переходов изменяет

статус всех микрокоманд, засланных в пул команд после команды пе-

рехода, чтобы убрать их из пула команд. Правильный адрес перехода

направляется в буфер переходов, который перезапускает весь конве-

йер с нового адреса.


2Устройство отката

      Структура устройства отката изображена на рисунке 5.
      Устройство отката  также проверяет статус микрокоманд в пуле
команд: оно ищет микрокоманды, которые уже выполнены и могут быть
удалены  из пула.  Именно при удалении микрокоманды результаты ее

выполнения,  хранящиеся в пуле команд, реально изменяют состояние

вычислительной системы,  например,  происходит запись в регистры.

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

случаи.

Процесс отката занимает два такта. В первом такте устройство

отката считывает пул команд и отыскивает готовые к откату  микро-

команды;  затем  оно определяет,  какие из этих микрокоманд могут

быть удалены из пула в соответствии с исходным порядком команд  в

программе.  Во  втором такте результаты отката записываются в пул

команд и в регистровый файл отката. Устройство отката может обра-

ботать три микрокоманды за такт.


2Интерфейс шины

      Структура интерфейса шины изображена на рисунке 6.
      Есть два типа обращений к памяти: чтение из памяти в регистр
и запись из регистра в память.
При чтении из памяти должны быть заданы адрес памяти, размер
блока считываемых данных и регистр-назначение. Команда чтения ко-

дируется одной микрокомандой.

При записи надо задать адрес памяти, размер блока записывае-

мых данных и сами данные. Поэтому команда записи кодируется двумя

микрокомандами:  первая генерирует адрес,  вторая готовит данные.

Эти микрокоманды планируются независимо и могут  выполняться  па-

раллельно; они могут переупорядочиваться в буфере записи.

Запись в память никогда не выполняется опережающим  образом,

так  как нет эффективного способа организации отката в случае не-

верного предсказания. Разные команды записи никогда не переупоря-

дочиваются  друг относительно друга.  Буфер записи инициирует за-

пись,  только когда сформированы и адрес, и данные, и нет ожидаю-

щих выполнения более ранних команд записи.

При изучении вопроса о возможности и целесообразности переу-

порядочения  доступа к памяти инженеры «Intel» пришли к следующим

выводам.

Команда записи не должна обгонять идущую впереди команду за-

писи,  так как это может лишь незначительно увеличить  производи-

тельность.

Можно запретить командам записи обгонять команды  чтения  из

памяти,  так как это приведет лишь к незначительной потере произ-

водительности.

Запрет командам  чтения  обгонять  другие команды чтения или

команды записи может повлечь существенные потери в производитель-

ности.

Поэтому была реализована архитектура подсистемы памяти, поз-

воляющая командам чтения опережать команды записи и другие коман-

ды чтения.  Буфер упорядочения памяти служит в качестве распреде-

лительной станции и буфера переупорядочивания. В нем хранятся от-

ложенные команды чтения и записи,  и он осуществляет их повторное

диспетчирование, когда блокирующее условие (зависимость по данным

или недоступность ресурсов) исчезает.



   . 11 -


2Вывод

Таким образом,  реализованная в P6 комбинация таких архитек-турных
методов,  как  улучшенное  предсказание  переходов (почти всегда правильно
определяется предстоящая последовательность  ко-манд),  анализ  потоков
данных (определяется оптимальный порядок выполнения команд) и опережающее
выполнение (предвиденная  после-довательность  команд  выполняется без
простоев в оптимальном по-рядке),  позволила удвоить производительность по
отношению к Pen-tium при использовании той же самой технологии
производства.  Эта комбинация методов называется динамическим выполнением.

В настоящее  время  «Intel»  ведет разработку новой 0,35 мкм

технологии производства, что даст возможность выпускать процессо-

ры P6 с тактовой частотой ядра свыше 200 МГц.

.

   . 12 -


2Р6 как платформа для построения мощных серверов

Среди наиболее значимых  тенденций  развития  компьютеров  в последние
годы можно выделить как все возрастающее использование систем на основе
процессоров семейства х86  в  качестве  серверов приложений,  так и
растущую роль «Intel» как поставщика непроцес-сорных технологий, таких как
шины, сетевые технологии, сжатие ви-деоизображений, флэш-память и средства
системного администрирова-ния.

Выпуск процессора  Р6 продолжает проводимую «Intel» политику

переноса возможностей, которыми ранее обладали лишь более дорогие

компьютеры,  на массовый рынок.  Для внутренних регистров Р6 пре-

дусмотрен контроль по четности,  а соединяющая ядро процессора  и

кэш  второго уровня 64-битовая шина оснащена средствами обнаруже-

ния и исправления ошибок. Встроенные в Р6 новые возможности диаг-

ностики  позволяют  производителям  проектировать  более надежные

системы.  В Р6 предусмотрена возможность получения через контакты

процессора  или  с  помощью программного обеспечения информации о

более чем 100 переменных процессора или происходящих в нем  собы-

тиях,  таких как отсутствие данных в кэше,  содержимое регистров,

появление самомодифицирующего кода и так далее. Операционная сис-

тема  и другие программы могут считывать эту информацию для опре-

деления состояния процессора.  В Р6 также реализована  улучшенная

поддержка  контрольных точек,  то есть обеспечивается возможность

отката компьютера в зафиксированное ранее состояние в случае воз-

никновения ошибки.

Р6 поддерживает те же возможности  по  контролю  при  помощи

функциональной избыточности (FRC),  что и Pentium.  Это означает,

что в P6 предусмотрена возможность построения систем с параллель-

ным выполнением одних и тех же операций двумя процессорами с вза-

имным контролем результатов и сообщением об ошибке в случае  рас-

хождения.  При  этом,  к сожалению,  P6 по-прежнему не сообщает о

причине ошибки.

В модели  Р54С процессора Pentium «Intel» предложила простой

и недорогой способ организации двухпроцессорной работы: ведущий и

ведомый процессоры используют общий кэш и невидимо для приложений

разделяют программу на потоки.  Однако использовать такую органи-

зацию работы могут лишь многопоточные операционные системы.

Р6 переводит организацию многопроцессорной работы  на  новый

уровень,  соответствующий определенной «Intel» мультипроцессорной

спецификации MPS 1.1.  Одним из наиболее сложных аспектов симмет-

ричной  многопроцессорной  работы  является поддержание кэш-соот-

ветствия для всех подсоединенных к отдельным  процессорам  кэшей.

Р6  поддерживает кэш-соответствие для вторичного кэша на внутрен-

нем уровне, а внешняя шина P6 выступает как симметричная мультип-

роцессорная шина.

Раньше проектировщики мультипроцессорных систем должны  были

создавать  собственные шины для связи процессоров,  либо приобре-

тать лицензию на уже  существующие  решения,  например  Corollary

C-bus II.  Теперь средства, реализованные «Intel» в Р6, позволяют

объединить четыре процессора в мультипроцессорную систему. Четыре

- это предел, обуславливаемый принятой в Р6 логикой арбитража.


   . 13 -

Еще одна проблема для производителей многопроцессорных  сис-

тем  на  базе Р6 состоит в том,  что для эффективной работы таких

систем к каждому процессору подключается выделенный  кэш,  размер

которого  должен быть больше,  чем 256 кб - размер кэша в корпусе

Р6. Таким образом, проектировщики высокопроизводительных серверов

будут  вынуждены использовать внешние контроллеры кэша и дополни-

тельные микросхемы статической памяти.

Эта проблема  будет разрешена,  если «Intel» увеличит размер

кэша второго уровня в корпусе Р6, что достижимо либо за счет уве-

личения  размера кристалла,  либо за счет перехода к более миниа-

тюрной технологии производства.  Сегодня  производители,  которые

хотят  строить системы с более чем четырьмя процессорами,  должны

объединять две или более четырехпроцессорных  системы  с  помощью

высокоскоростного последовательного соединения память-память. Ре-

ализации таких соединений для PCI ожидаются в этом году.


2Системы на основе Р6

Можно предположить,  что компьютеры на базе P6 первоначально будут
напоминать сегодняшние наиболее мощные Pentium-компьютеры: по меньшей мере
1 Гб жесткий диск, 32 Мб оперативной памяти, мощ-ные  графические
контроллеры.  Появятся первые многопроцессорные серверы на Р6.

Улучшенная диагностика и средства обработки ошибок в Р6 поз-

воляют проектировать на базе Р6 надежные серверы уровня предприя-

тия. Улучшенная поддержка симметричной многопроцессорной работы в

сочетании с поддерживающими такую работу версиями OS/2 и  NetWare

приведет к построению на Р6 еще более мощных серверов.

«Intel» предполагает,  что первыми Р6-системами будут серве-

ры, однако настольные компьютеры на P6 появятся почти одновремен-

но с ними. Цена первых настольных Р6-компьютеров будет начинаться

с 4000 долларов и расти с ростом мощности конфигурации.  С учетом

размера корпуса Р6, его потребления энергии и рассеиваемого тепла

(требуется активное охлаждение),  не следует ожидать быстрого по-

явления портативных компьютеров на Р6.

Как обычно, первыми пользователями настольных компьютеров на

процессоре нового поколения будут разработчики программного обес-

печения  и пользователи из таких областей,  как САПР,  настольные

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

результатов, статистика, одним словом, те области, которым всегда

недоставало и будет недоставать существующих скоростей.

Что касается  серверов,  то первыми кандидатами на переход к

Р6 являются серверы приложений,  осуществляющие такие работы, как

рассылку  сообщений,  доступ к базам данных и хранилищам докумен-

тов. Системные серверы и серверы печати не привязаны к конкретно-

му  типу процессоров и поэтому не испытывают таких потребностей в

увеличении мощности.

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

и подготовки.  Дело в том,  что большие организации эксплуатируют

значительно большее число разработанных на заказ программ и стан-

дартного программного обеспечения,  и требуется провести проверку

на его совместимость с новыми системами.

Типичная Р6-система будет включать процессор Р6  с  тактовой

частотой  133 МГц,  внешнюю шину,  работающую на половине,  одной

третьей или одной четверти от этой  частоты,  набор  чипов  Intel

Р6/PCI по имени Orion,  поддерживающий версию 2.1 32-битовой шины

PCI с частотой 33 МГц, но не поддерживающий 64-битовые расширения

PCI.

Вследствие наличия встроенного кэша второго уровня,  в боль-

шинстве  Р6-систем  будет  отсутствовать внешний кэш и контроллер

кэша. Для построения основной памяти будут использоваться обычные

60-наносекундные DRAM или,  в некоторых случаях, поддерживаемые в

наборе чипов Intel Triton для Pentium более скоростные EDO  DRAM.

Стандартной будет конфигурация с 16 Мб оперативной памяти при все

возрастающем числе систем с 32 Мб.

Первоначально Р6-системы будут включать как шину PCI,  так и

шины EISA/ISA. Однако по мере роста поддержки PCI необходимость в

EISA и ISA будет уменьшаться.  Особенно важным для этого является

появление предусмотренных в PCI 2.1 мостов PCI-PCI. Главной проб-

лемой  при использовании PCI сегодня является ограничения на сте-

пень ее нагрузки. Мосты между шинами позволяют работать с большим

числом  устройств  в пределах одного логического адресного прост-

ранства.

Включение в систему нескольких шин PCI, соединенных мостами,

позволит как избежать использования других шин,  так и подключать

помимо памяти и графики высокоскоростные сетевые интерфейсы (нап-

ример, 100 Мбит/сек Ethernet, FDDI и ATM) и высокоскоростной пос-

ледовательный ввод-вывод.

Емкость памяти на жестком диске будет по меньшей мере 730 Мб

с  использованием  интерфейса IDE или SCSI.  Большая часть систем

будет включать 2-скоростные или более быстрые CDROM.  Графика бу-

дет  обеспечивать  разрешение  1024 на 768 пикселов и управляться

картами-акселераторами с 2-4 Мб памяти.

Более необычные  конфигурации  могут  включать слоты PCMCIA,

4-скоростные CD-ROM,  поддержку 40 Мб/сек Ultra SCSI,  встроенные

10-100  Мбит/сек сетевые порты и встроенные возможности мультиме-

диа,  реализованные с помощью цифровых сигнальных процессоров или

специальных чипов для обработки звука,  ввода/вывода видеоизобра-

жений,  компрессии/декомпрессии. Некоторые производители, возмож-

но,  прибегнут  к  использованию новых типов памяти,  128-битовых

графических акселераторов,  64-битовых расширений шины  и  других

новшеств, допускаемых спецификацией PCI.


2Следующее поколение процессоров

Технология Р6  является логическим развитием технологии Pen-tium. Ожидается
что в процессоре Р7 будет реализована существенно отличная от Р6
технология, обеспечивающая прорыв в производитель-ности при сохранении
совместимости с семейством x86.

  В прошлом  году  «Intel»  и «Hewlett-Packard» договорились о


   . 15 -

совместной разработке нового микропроцессора,  появление которого

планируется на 1997 или 1998 год.  О внутреннем устройстве нового

микропроцессора пока известно лишь то,  что он будет использовать

RISC-технологию и обеспечивать выполнение всего существующего для

процессоров Intel  х86  и  Hewlett-Packard  PA-RISC  программного

обеспечения. Кроме поддержки существующих наборов команд этих се-

мейств, по всей видимости, в Р7 будет введена собственная система

команд.

Согласно преобладающей точке зрения, «Intel» и «Hewlett-Pac-

kard»  ведут эксперименты с технологией VLIW («very long instruc-

tion word» - очень длинное командное слово).  Можно сказать,  что

VLIW  в определенном смысле прямо противоположна технологии,  ис-

пользуемой в Р6.  В Р6 изощренно построенный декодер  транслирует

сложные команды х86 в более короткие и простые RISC-микрокоманды.

VLIW-процессор основывается на компиляторе нового типа,  который,

наоборот,  упаковывает  несколько  простых операций в одну «очень

длинную» команду. Каждая «очень длинная» команда содержит незави-

симые друг от друга операции, которые выполняются параллельно.

Иными словами,  во VLIW-процессоре ответственность за плани-

рование выполнения команд переносится с аппаратуры на программное

обеспечение. Планирование осуществляет компилятор, и получающийся

в результате компиляции код прикладной программы содержит всю ин-

формацию о порядке выполнения команд.

Однако пока VLIW-технология весьма несовершенна.  Во-первых,

не разработаны эффективные методы проектирования  VLIW-компилято-

ров.  Во-вторых,  вполне  вероятно,  что программное обеспечение,

разработанное для VLIW-процессора, придется перекомпилировать при

появлении процессора нового поколения.

По этим причинам,  а также учитывая и другие обстоятельства,

многие  обозреватели сомневаются в том,  что Intel и Hewlett-Pac-

kard смогут выпустить жизнеспособный с точки  зрения  конкуренции

на рынке VLIW-процессор.  Рынок процессоров х86 слишком важен для

Intel, и вряд ли Intel может полностью положиться на неопробован-

ную технологию.  Поэтому вполне вероятно,  что Intel работает над

параллельным проектом Р7, основанным на более традиционной техно-

логии, чтобы застраховаться на случай неудачи VLIW-проекта.

Дело в том что  возможности  усовершенствования  архитектуры

х86  не исчерпаны.  Естественное направление ее развития включает

усиление суперскалярности до шести одновременно  выполняемых  ко-

манд,  увеличение размера первичных кэшей,  размещение вторичного

кэша на кристалле процессора,  большее число исполнительных  уст-

ройств,  увеличение размера буферов и поддержка более длинных це-

почек выполняемых с опережением команд.

Конкуренты «Intel»  также  не  собираются сидеть сложа руки.

«NexGen» планирует выпуск процессора Nx686 в конце  1995  года  и

утверждает, что его производительность будет в 2-4 раза превосхо-

дить производительность Nx586. «Cyrix» также работает над процес-

сором-преемником М1, но подробностей пока не сообщает.

      Наиболее подробно сообщает о своих планах AMD.  Следующий за
К5 процессор К6 появится в 1996 году, а его массовое производство
начнется в 1997 году. К6 будет изготавливаться по технологии 0,35
мкм и будет содержать около 6,5 миллионов транзисторов. Предпола-
   . 16 -

гаемая производитель К6 - 300 SPECint92. В 1997 году AMD планиру-

ет  выпуск процессора К7,  с началом его массового производства в

1998 году. К7 будет изготавливаться по технологии 0,18 мкм; число

транзисторов - 10-15 миллионов.  Предполагается, что при тактовой

частоте 400 МГц он достигнет  производительности  700  SPECint92.

Наконец, в 2001 году AMD планирует выпуск процессора K8, содержа-

щего 20 миллионов транзисторов и  обеспечивающего  производитель-

ность 1000 SPECint92 на тактовой частоте 600 МГц.

Возможно и появление новых конкурентов. Процессоры 386 и 486

производят IBM Microelectronics,  «Texas Instruments», SGS-Thomp-

son и ряд азиатских фирм.  Однако до сих пор никто из них не  пы-

тался выйти на передовые позиции и не брался за разработку совре-

менного процессора семейства х86,  который мог бы конкурировать с

новейшими процессорами «Intel», AMD, «Cyrix» и NexGen.

.

   . 17 -


2Заключение

Процессоры Р6 фирмы Intel выбраны в качестве элементной базы для первого в
мире компьютера производительностью свыше триллиона операций в секунду.
Уникальная машина предназначена главным обра-зом для расчетов по ядерной
тематике Министерства энергетики США.

Министерство остановило свой выбор на Intel Corporation, по-

ручив ей изготовление нового компьютера, производительность кото-

рого в десять раз превысит аналогичную характеристику самых быст-

рых  современных  суперкомпьютеров.  Новая вычислительная система

будет установлена в Sandia National Laboratories  -  многоцелевой

лаборатории  Министерства энергетики США в городе Альбукерк (штат

Нью-Мексико).  В составе машины Intel/Sandia будет работать свыше

9000 микропроцессоров компании Intel следующего поколения,  полу-

чивших кодовое название Р6.

Замечательно, что  машина  Intel/Sandia  строится  из тех же

компьютерных «строительных кирпичиков», которые Intel представля-

ет  производителям компьютерной техники для использования в круп-

номасштабных параллельных системах, высокопроизводительных серве-

рах, рабочих станциях и настольных компьютерах.

Новая система будет  иметь  пиковую  производительность  1.8

триллионов  операций в секунду и в десять раз повысит быстродейс-

твие при работе с важными  прикладными  программами  Министерства

энергетики. Машина оснащается системной памятью в 262 Гбайт и бу-

дет сдана в эксплуатацию к концу 1996 года.

Недавно фирма Intel объявила новое название своего процессо-

ра P6. Теперь он будет называться Pentium Pro.

.

   . 22 -


Литература


1.    Монитор N 3 1995г.

  Д.Бройтман «Микроархитектура процессора P6» с.6-11.


2.    Монитор  N  5 1995г.

  Д.Бройтман «Процессор P6: общий обзор» с.8-12.


        Hard 'n' Soft N 10 1995г.


                    [pic][pic][pic][pic][pic][pic]- 18 -

                                 Приложения

|                |Intel P6      |Intel Pentium |AMD K5        |Cyrix M1      |NexGen Nx 586 |
|Тактовая частота|133           |100           |100           |100           |93            |
|(МГц)           |              |              |              |              |              |
|Производительнос|200           |112,7         |147           |147-169       |112,7         |
|ть (SPECint92)  |              |              |              |              |              |
|Суперскалярность|3             |2             |4             |2             |3             |
|(команды)       |              |              |              |              |              |
|Исполнительные  |5             |3             |5             |4             |3             |
|устройства      |              |              |              |              |              |
|Предсказание    |динамическое  |динамическое  |динамическое  |динамическое  |динамическое  |
|переходов       |              |              |              |              |              |
|Опережающее     |есть          |нет           |есть          |есть          |есть          |
|выполнение      |              |              |              |              |              |
|"Беспорядочное" |есть          |нет           |есть          |есть          |есть          |
|выполнение      |              |              |              |              |              |
|Число           |5,5 млн.      |3,3 млн.      |4,3 млн.      |3,3 млн.      |3,5 млн.      |
|транзисторов    |              |              |              |              |              |
|Кэш первого     |16 -          |16 -          |24 -          |16 - единый   |32 -          |
|уровня (кб)     |раздельный    |раздельный    |раздельный    |              |раздельный    |
|Кэш второго     |256 кб        |внешний       |внешний       |внешний       |внешний       |
|уровня          |              |              |              |              |              |
|Технология      |0,6 мкм БиКМОП|0,6 мкм БиКМОП|0,5 мкм КМОП  |0,65 мкм КМОП |0,5 мкм КМОП  |
|Размер кристалла|306           |163           |неизвестно    |394           |196           |
|(кв. мм)        |              |              |              |              |              |
|Начало выпуска  | |я пол. 1995  |середина 1994 | |я пол. 1995  | |я пол. 1995  |Конец 1994    |
|Цена (в партиях |неизвестна    |$6731         |неизвестна    |неизвестна    |$569          |
|по 1000)        |              |              |              |              |              |


 1. Сейчас эта цена уже реально меньше ($200-300)