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.
3.
Hard 'n' Soft N 10 1995г.
- 18
-
Приложения
P6
частота (МГц)
(SPECint92)
(команды)
устройства
переходов
выполнение
"Беспорядочное"
выполнение
транзисторов
млн.
млн.
млн.
млн.
млн.
первого уровня (кб)
- раздельный
- раздельный
- раздельный
- единый
- раздельный
второго уровня
кб
мкм БиКМОП
мкм БиКМОП
мкм КМОП
мкм КМОП
мкм КМОП
кристалла (кв. мм)
выпуска
пол. 1995
1994
пол. 1995
пол. 1995
1994
(в партиях по 1000)
$6731
1. Сейчас эта цена уже реально меньше ($200-300)