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)