Микропроцессоры семейства Intel
 
Содержание
Вступление 
Два кристалла в одном корпусе 
Pentium как точка отсчета 
Основная проблема на пути повышения производительности 
Решение принятое в P6 
Архитектура P6 
1. Устройство выборки/декодирования
2. Устройство диспетчирования/выполнения 
3. Устройство отката 
4. Интерфейс шины 
5. Вывод 
P6 как платформа для построения мощных серверов 
Системы на основе P6 
Следующее поколение процессоров 
Заключение 
Приложения 
Литература 
 
Вступление 
Все 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, было удвоение производительности по сравнению с процессором Pentium. При этом производство первых версий P6 будет осуществляться по уже отлаженной "Intel" и используемой при производстве последних версий Pentium полупроводниковой технологии (О, 6 мкм, З, З В) . 
Использование того же самого процесса производства дает гарантию того, что массовое производство P6 будет налажено без серьезных проблем. Вместе с тем это означает, что удвоение производительности достигается только за счет всестороннего улучшения микроархитектуры процессора. При разработке микроархитектуры P6 использовалась тщательно продуманная и настроенная комбинация различных архитектурных методов. Часть из них была ранее опробована в процессорах "больших" компьютеров, часть предложена академическими институтами, оставшиеся разработаны инженерами фирмы "Intel". Эта уникальная комбинация архитектурных особенностей, которую в "Intel" определяют словами "динамическое выполнение", позволила первым кристаллам P6 превзойти первоначально планировавшийся уровень производительности. 
При сравнении с альтернативными "Intel" процессорами семейства х86 выясняется, что микроархитектура Р6 имеет много общего с микроархитектурой процессоров Nx586 фирмы NexGen и K5 фирмы AMD, и, хотя и в меньшей степени, с M1 фирмы "Cyrix". Эта общность объясняется тем, что инженеры четырех компаний решали одну и ту же задачу: внедрение элементов RISC-технологии при сохранении совместимости с CISC-архитектурой Intel х86. 
Два кристалла в одном корпусе 
Главное преимущество и уникальная особенность Р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 МГц) . Pentium использует эту шину как для обращений к вторичному кэшу, так и для обращения к основной памяти и другим устройствам, например к набору чипов PCI. 
Использование специально выделенной шины для доступа к вторичному кэшу улучшает производительность вычислительной системы. 
Во-первых, при этом достигается полная синхронизация скоростей процессора и шины; во-вторых, исключается конкуренция с другими операциями ввода-вывода и связанные с этим задержки. Шина кэша второго уровня полностью отделена от внешней шины, через которую происходит доступ к памяти и внешним устройствам. 64-битовая внешняя шина может работать со скоростью, равной половине, одной третьей или одной четвертой от скорости процессора, при этом шина вторичного кэша работает независимо на полной скорости. 
Объединение процессора и вторичного кэша в одном корпусе и их связь через выделенную шину является шагом по направлению к методам повышения производительности, используемым в наиболее мощных RISC-процессорах. Так, в процессоре Alpha 21164 фирмы "Digital" кэш второго уровня размером 96 кб размещен в ядре процессора, как и первичный кэш. Это обеспечивает очень высокую производительность кэша за счет увеличения числа транзисторов на кристалле до 9,3 миллиона. Производительность Alpha 21164 составляет 330 SPECint92 при тактовой частоте 300 МГц. Производительность Р6 ниже (по оценкам "Intel" - 200 SPECint92 при тактовой частоте 133 МГц) , однако Р6 обеспечивает лучшее соотношение стоимость/производительность для своего потенциального рынка. 
При оценке соотношения стоимость/производительность следует учитывать, что, хотя Р6 может оказаться дороже своих конкурентов, большая часть других процессоров должна быть окружена дополнительным набором чипов памяти и контроллером кэша. Кроме того, для достижения сравнимой производительности работы с кэшом, другие процессоры должны будут использовать кэш большего, чем 256 кб размера. 
"Intel", как правило, предлагает многочисленные вариации своих процессоров. Это делается с целью удовлетворить разнообразным требованиям проектировщиков систем и оставить меньше пространства для моделей конкурентов. Поэтому можно предположить, что вскоре после начала выпуска Р6 появятся как модификации с увеличенным объемом вторичной кэш-памяти, так и более дешевые модификации с внешним расположением вторичного кэша, но при сохраненной выделенной шине между вторичным кэшом и процессором. 
Pentium как точка отсчетаПроцессор Pentium со своей конвейерной и суперскалярной архитектурой достиг впечатляющего уровня производительности. 
Pentium содержит два 5-стадийных конвейера, которые могут работать параллельно и выполнять две целочисленные команды за машинный такт. При этом параллельно может выполняться только пара команд, следующих в программе друг за другом и удовлетворяющих определенным правилам, например, отсутствие регистровых зависимостей типа "запись после чтения". 
В P6 для увеличения пропускной способности осуществлен переход к одному 12-стадийному конвейеру. Увеличение числа стадий приводит к уменьшению выполняемой на каждой стадии работы и, как следствие, к уменьшению времени нахождения команды на каждой стадии на 33 процента по сравнению с Pentium. Это означает, что использование при производстве P6 той же технологии, что и при производстве 100 МГц Pentium, приведет к получению P6 с тактовой частотой 133 МГц. 
Возможности суперскалярной архитектуры Pentium, с ее способностью к выполнению двух команд за такт, было бы трудно превзойти без совершенно нового подхода. Примененный в P6 новый подход устраняет жесткую зависимость между традиционными фазами "выборки" и "выполнения", когда последовательность прохождения команд через эти две фазы соответствует последовательности команд в программе. 
Новый подход связан с использованием так называемого пула команд и с новыми эффективными методами предвидения будущего поведения программы. При этом традиционная фаза "выполнение" заменяется на две: "диспетчирование/выполнение" и "откат". В результате команды могут начинать выполняться в произвольном порядке, но завершают свое выполнение всегда в соответствии с их исходным порядком в программе. Ядро P6 реализовано как три независимых устройства, взаимодействующих через пул команд (рис. 1) . 
Основная проблема на пути повышения производительностиРешение об организации 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 проектировался с точки зрения эффективной реализации целостной вычислительной системы, и требовалось, чтобы высокая производительность системы в целом достигалась с использованием дешевой подсистемы памяти. 
Решение, принятое в P6Решение сформулированной в предыдущем разделе проблемы памяти, принятое в P6, заключается в обращении к пулу команд, извлечении из него команд, следующих за командой, требующей обращения к памяти, и выполнения до момента завершения команды-тормоза максимума полезной работы. В приведенном в предыдущем разделе примере процессор не может выполнить команду 2 до завершения команды 1, так как команда 2 зависит от результатов команды 1. В то же время процессор может выполнить команды 3 и 4, не зависящие от результата выполнения команды 1. Мы будем называть такое выполнение команд опережающим выполнением. Результаты опережающего выполнения команд 3 и 4 не могут быть сразу записаны в регистры, поскольку мы должны изменять состояние вычислительной системы только в соответствии с правильным порядком выполнения программы. 
Эти результаты хранятся в пуле команд и извлекаются оттуда позднее. Таким образом, процессор выполняет команды в соответствии с их готовностью к выполнению, вне зависимости от их первоначального порядка в программе, то есть с точки зрения реального порядка выполнения команд P6 является машиной, управляемой потоком данных. В то же время изменение состояния вычислительной системы, например запись в регистры, производится в строгом соответствии с истинным порядком команд в программе. 
Чтение из памяти данных, необходимых для команды 1, может занимать достаточно много тактов. Тем временем P6 продолжает опережающее выполнение команд, следующих за командой 1, и успевает обработать, как правило, 20-30 команд. Среди этих 20-30 команд будет в среднем пять команд перехода, которые устройство выборки/декодирования должно правильно предсказать для того, чтобы работа устройства диспетчирования/выполнения не оказалась бесполезной. Небольшое количество регистров в архитектуре процессоров "Intel" приводит к интенсивному использованию каждого из них и, как следствие, к возникновению множества мнимых зависимостей между командами, использующими один и тот же регистр. Поэтому, чтобы исключить задержку в выполнении команд из-за мнимых зависимостей, устройство диспетчирования/выполнения работает с дублями регистров, находящимися в пуле команд (одному регистру может соответствовать несколько дублей) . Реальный набор регистров контролируется устройством отката, и результаты выполнения команд отражаются на состоянии вычислительной системы только после того, как выполненная команда удаляется из пула команд в соответствии с истинным порядком команд в программе. 
Таким образом, принятая в P6 технология динамического выполнения может быть описана как оптимальное выполнение программы , основанное на предсказании будущих переходов, анализе графа потоков данных с целью выбора наилучшего порядка исполнения команд и на опережающем выполнении команд в выбранном оптимальном порядке. 
Далее мы будем понимать под "упорядоченным" устройство, которое работает в соответствии с исходным порядком команд в программе, а под "беспорядочным" - устройство, которое не обращает внимания на исходный порядок команд в программе. 
Устройство выборки/декодирования является "упорядоченным" устройством, которое воспринимает на входе поток команд из программы пользователя и декодирует их, превращая в последовательность микрокоманд, соответствующих потоку данных в программе пользователя. 
Устройство диспетчирования/выполнения является "беспорядочным" устройством, которое воспринимает поток данных и планирует выполнение микрокоманд с учетом зависимостей по данным и доступности ресурсов, а также временно сохраняет результаты опережающего выполнения в пуле команд. 
Устройство отката "упорядоченное" устройство, которое знает, как и когда завершить выполнение команды, то есть перевести временные результаты опережающего выполнения в постоянное состояние вычислительной системы. 
Интерфейс шины является "частично упорядоченным" устройством, отвечающим за связь трех вышеупомянутых устройств с внешним миром. Интерфейс шины взаимодействует непосредственно с кэшем 2-го уровня и поддерживает до 4 параллельных обращений к кэшу. 
Интерфейс шины также управляет обменом данными с основной памятью, который происходит с использованием протокола MESI [1]. 
Устройство выборки/декодированияСтруктура этого устройства приведена на рисунке 3. 
Команды из кэша команд могут быть быстро выбраны для последующей обработки. Указатель на следующую команду - это индекс кэша команд, содержимое которого определяется буфером переходов, состоянием процессора и сообщениями о неправильном предсказании перехода, поступающими из устройства выполнения целых команд. Буфер переходов с 512 входами использует расширение алгоритма Йе (Yeh) , которое обеспечивает более чем 90-процентную точность предсказания переходов. 
Предположим, что ничего исключительного не происходит и что буфер переходов в своих предсказаниях оказался прав (в P6 предусмотрены эффективные действия в случае неправильного предсказания перехода) . 
Кэш команд выбирает строку кэша, соответствующую индексу в указателе на следующую команду, и следующую за ней строку, после чего передает 16 выровненных байтов декодеру. Две строки считываются из-за того, что команды в архитектуре Intel выровнены по границе байта, и поэтому может происходить передача управления на середину или конец строки кэша. Выполнение этой ступени конвейера занимает три такта, включая время, необходимое для вращения предвыбранных байтов и их подачи на декодеры команд. Начало и конец команд помечаются. 
Три параллельных декодера принимают поток отмеченных байтов и обрабатывают их, отыскивая и декодируя содержащиеся в потоке команды. Декодер преобразует команды архитектуры Intel в микрокоманды-триады (два операнда, один результат) . Большинство команд архитектуры Intel преобразуются в одну микрокоманду, некоторые требуют четырех микрокоманд, а сложные команды требуют обращения к микрокоду, представляющему из себя набор заранее составленных последовательностей микрокоманд. Некоторые команды, так называемые байт-префиксы, модифицируют следующую за ними команду, что также усложняет работу декодера. Микрокоманды ставятся в очередь, посылаются в таблицу псевдонимов регистров, где ссылки на логические регистры преобразуются в ссылки на физические регистры P6, после чего каждая из микрокоманд вместе с дополнительной информацией о ее состоянии (статусе) посылается в пул команд. Пул команд реализован в виде массива контекстно-адресуемой памяти, называемого также буфером переупорядочивания. 
В этой точке заканчивается "упорядоченная" часть конвейера. 
Устройство диспетчирования/выполненияУстройство диспетчирования выбирает микрокоманды из пула команд в зависимости от их статуса. Под статусом мы будем понимать информацию о доступности операндов микрокоманды и наличии необходимых для ее выполнения вычислительных ресурсов. Если статус микрокоманды показывает, что ее операнды уже вычислены и доступны, а необходимое для ее выполнения вычислительное устройство (ресурс) также доступно, то устройство диспетчирования выбирает микрокоманду из пула команд и направляет ее на устройство для выполнения. Результаты выполнения микрокоманды возвращаются в пул. 
Взаимодействие с вычислительными ресурсами происходит через пятипортовую распределительную станцию. Структура устройства диспетчирования/выполнения показана на рисунке 4. 
P6 может запускать на выполнение до 5 микрокоманд за такт, по одной на каждый порт. Средняя длительно поддерживаемая пропускная способность микрокоманды за такт. Процесс планирования выполнения микрокоманд является принципиально "беспорядочным": момент направления микрокоманд на вычислительные ресурсы определяется только потоками данных и доступностью ресурсов, без какой бы то ни было связи с первоначальным порядком команд в программе. 
Алгоритм, отвечающий за планирование выполнения микрокоманд, является крайне важным для производительности процессора в целом. 
Если в каждом такте для каждого ресурса готова к выполнению только одна микрокоманда, то проблемы выбора не возникает. Но если готовых к выполнению на данном ресурсе микрокоманд несколько, то какую из них выбрать? Можно доверить выбор случаю. Можно применить алгоритм "первый пришел - первый обслужен". Идеальным был бы выбор микрокоманды, выполнение которой привело бы к максимальному сокращению графа потоков данных выполняемой программы. Однако поскольку нет возможности определить такую микрокоманду в ходе выполнения программы, используется алгоритм планирования, имитирующий модель "первый пришел - первый обслужен", предпочитая смежное выполнение смежных микрокоманд. 
Поскольку система команд Intel содержит множество команд перехода, многие микрокоманды также являются переходами. Алгоритм, реализованный в буфере переходов, позволяет в большинстве случаев правильно предсказать, состоится или не состоится переход, но иногда он все же будет ошибаться. Рассмотрим для примера случай, когда буфер переходов предсказывает переход назад в конце цикла: до тех пор, пока условие выхода из цикла не выполняется, переход будет предсказываться верно, однако когда это условие станет истинным, предсказание будет ошибочным. 
Для исправления случаев неверного предсказания перехода применен следующий подход. Микрокомандам перехода еще в упорядоченной части конвейера ставятся в соответствие адрес следующей команды и предполагаемый адрес перехода. После вычисления перехода реальная ситуация сравнивается с предсказанной. Если они совпадают, то проделанная, исходя из предположения об исходе перехода, работа оказывается полезной, так как соответствует реальному ходу программы, а микрокоманда перехода удаляется из пула команд. 
Если же допущена ошибка (переход был предсказан, но не произошел, или было предсказано отсутствие перехода, а в действительности он состоялся) , то устройство выполнения переходов изменяет статус всех микрокоманд, засланных в пул команд после команды перехода, чтобы убрать их из пула команд. Правильный адрес перехода направляется в буфер переходов, который перезапускает весь конвейер с нового адреса. 
Устройство отката также проверяет статус микрокоманд в пуле команд: оно ищет микрокоманды, которые уже выполнены и могут быть удалены из пула. Именно при удалении микрокоманды результаты ее выполнения, хранящиеся в пуле команд, реально изменяют состояние вычислительной системы, например, происходит запись в регистры. 
Устройство отката должно не только обнаруживать завершившиеся микрокоманды, но и удалять их из пула команд таким образом, чтобы изменение состояния вычислительной системы соответствовало первоначальному порядку команд в программе. При этом оно должно учитывать и правильно обрабатывать прерывания, исключительные ситуации, неправильно предсказанные переходы и другие экстремальные- 10 случаи. 
Процесс отката занимает два такта. В первом такте устройство отката считывает пул команд и отыскивает готовые к откату микрокоманды; затем оно определяет, какие из этих микрокоманд могут быть удалены из пула в соответствии с исходным порядком команд в программе. Во втором такте результаты отката записываются в пул команд и в регистровый файл отката. Устройство отката может обработать три микрокоманды за такт. 
Интерфейс шины
Структура интерфейса шины изображена на рисунке 6. 
Есть два типа обращений к памяти: чтение из памяти в регистр и запись из регистра в память. 
При чтении из памяти должны быть заданы адрес памяти, размер блока считываемых данных и регистр-назначение. Команда чтения кодируется одной микрокомандой. 
При записи надо задать адрес памяти, размер блока записываемых данных и сами данные. Поэтому команда записи кодируется двумя микрокомандами: первая генерирует адрес, вторая готовит данные. 
Эти микрокоманды планируются независимо и могут выполняться параллельно; они могут переупорядочиваться в буфере записи. 
Запись в память никогда не выполняется опережающим образом, так как нет эффективного способа организации отката в случае неверного предсказания. Разные команды записи никогда не переупорядочиваются друг относительно друга. Буфер записи инициирует запись, только когда сформированы и адрес, и данные, и нет ожидающих выполнения более ранних команд записи. 
При изучении вопроса о возможности и целесообразности переупорядочения доступа к памяти инженеры "Intel" пришли к следующим выводам. 
Команда записи не должна обгонять идущую впереди команду записи, так как это может лишь незначительно увеличить производительность. 
Можно запретить командам записи обгонять команды чтения из памяти, так как это приведет лишь к незначительной потере производительности. 
Запрет командам чтения обгонять другие команды чтения или команды записи может повлечь существенные потери в производительности. 
Поэтому была реализована архитектура подсистемы памяти, позволяющая командам чтения опережать команды записи и другие команды чтения. Буфер упорядочения памяти служит в качестве распределительной станции и буфера переупорядочивания. В нем хранятся отложенные команды чтения и записи, и он осуществляет их повторное диспетчирование, когда блокирующее условие (зависимость по данным или недоступность ресурсов) исчезает. 
Вывод
Таким образом, реализованная в P6 комбинация таких архитектурных методов, как улучшенное предсказание переходов (почти всегда правильно определяется предстоящая последовательность команд) , анализ потоков данных (определяется оптимальный порядок выполнения команд) и опережающее выполнение (предвиденная последовательность команд выполняется без простоев в оптимальном порядке) , позволила удвоить производительность по отношению к Pentium при использовании той же самой технологии производства. Эта комбинация методов называется динамическим выполнением. 
В настоящее время "Intel" ведет разработку новой 0,35 мкм технологии производства, что даст возможность выпускать процессоры P6 с тактовой частотой ядра свыше 200 МГц. 
Р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 логикой арбитража. 
Еще одна проблема для производителей многопроцессорных систем на базе Р6 состоит в том, что для эффективной работы таких систем к каждому процессору подключается выделенный кэш, размер которого должен быть больше, чем 256 кб - размер кэша в корпусе Р6. Таким образом, проектировщики высокопроизводительных серверов будут вынуждены использовать внешние контроллеры кэша и дополнительные микросхемы статической памяти. 
Эта проблема будет разрешена, если "Intel" увеличит размер кэша второго уровня в корпусе Р6, что достижимо либо за счет увеличения размера кристалла, либо за счет перехода к более миниатюрной технологии производства. Сегодня производители, которые хотят строить системы с более чем четырьмя процессорами, должны объединять две или более четырехпроцессорных системы с помощью высокоскоростного последовательного соединения память-память. Реализации таких соединений для PCI ожидаются в этом году. 
Системы на основе Р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. 
Следующее поколение процессоров Технология Р6 является логическим развитием технологии Pentium. Ожидается что в процессоре Р7 будет реализована существенно отличная от Р6 технология, обеспечивающая прорыв в производительности при сохранении совместимости с семейством x86. 
В прошлом году "Intel" и "Hewlett-Packard" договорились о- 15 совместной разработке нового микропроцессора, появление которого планируется на 1997 или 1998 год. О внутреннем устройстве нового микропроцессора пока известно лишь то, что он будет использовать RISC-технологию и обеспечивать выполнение всего существующего для процессоров Intel х86 и Hewlett-Packard PA-RISC программного обеспечения. Кроме поддержки существующих наборов команд этих семейств, по всей видимости, в Р7 будет введена собственная система команд. 
Согласно преобладающей точке зрения, "Intel" и "Hewlett-Packard" ведут эксперименты с технологией VLIW ("very long instruction word" - очень длинное командное слово) . Можно сказать, что VLIW в определенном смысле прямо противоположна технологии, используемой в Р6. В Р6 изощренно построенный декодер транслирует сложные команды х86 в более короткие и простые RISC-микрокоманды. 
VLIW-процессор основывается на компиляторе нового типа, который, наоборот, упаковывает несколько простых операций в одну "очень длинную" команду. Каждая "очень длинная" команда содержит независимые друг от друга операции, которые выполняются параллельно. 
Иными словами, во VLIW-процессоре ответственность за планирование выполнения команд переносится с аппаратуры на программное обеспечение. Планирование осуществляет компилятор, и получающийся в результате компиляции код прикладной программы содержит всю информацию о порядке выполнения команд. 
Однако пока VLIW-технология весьма несовершенна. Во-первых, не разработаны эффективные методы проектирования VLIW-компиляторов. Во-вторых, вполне вероятно, что программное обеспечение, разработанное для VLIW-процессора, придется перекомпилировать при появлении процессора нового поколения. 
По этим причинам, а также учитывая и другие обстоятельства, многие обозреватели сомневаются в том, что Intel и Hewlett-Packard смогут выпустить жизнеспособный с точки зрения конкуренции на рынке 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 миллионов транзисторов. Предполагаемая производитель К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-Thompson и ряд азиатских фирм. Однако до сих пор никто из них не пытался выйти на передовые позиции и не брался за разработку современного процессора семейства х86, который мог бы конкурировать с новейшими процессорами "Intel", AMD, "Cyrix" и NexGen. 
Заключение
Процессоры Р6 фирмы Intel выбраны в качестве элементной базы для первого в мире компьютера производительностью свыше триллиона операций в секунду. Уникальная машина предназначена главным образом для расчетов по ядерной тематике Министерства энергетики США. 
Министерство остановило свой выбор на Intel Corporation, поручив ей изготовление нового компьютера, производительность которого в десять раз превысит аналогичную характеристику самых быстрых современных суперкомпьютеров. Новая вычислительная система будет установлена в Sandia National Laboratories - многоцелевой лаборатории Министерства энергетики США в городе Альбукерк (штат Нью-Мексико) . В составе машины Intel/Sandia будет работать свыше 9000 микропроцессоров компании Intel следующего поколения, получивших кодовое название Р6. 
Замечательно, что машина Intel/Sandia строится из тех же компьютерных "строительных кирпичиков", которые Intel представляет производителям компьютерной техники для использования в крупномасштабных параллельных системах, высокопроизводительных серверах, рабочих станциях и настольных компьютерах. 
Новая система будет иметь пиковую производительность 1.8
триллионов операций в секунду и в десять раз повысит быстродействие при работе с важными прикладными программами Министерства энергетики. Машина оснащается системной памятью в 262 Гбайт и будет сдана в эксплуатацию к концу 1996 года. 
Недавно фирма Intel объявила новое название своего процессора P6. Теперь он будет называться Pentium Pro. 
Приложения
 	Intel P6	Intel Pentium	AMD K5	Cyrix M1	NexGen Nx 586	
Тактовая частота (МГц) 	133	100	100	100	93	
Производительность (SPECint92) 	200	112,7	147	147-169	112,7	
Суперскалярность (команды) 	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	 	 	 	
Цена (в партиях по 1000) 	неизвестна	$6731	неизвестна	неизвестна	$569	
1. Сейчас эта цена уже реально меньше ($200-300) - 22 
 
Литература
1. Монитор N 3 1995г. Д. Бройтман "Микроархитектура процессора P6" с. 6-11. 
2. Монитор N 5 1995г. Д. Бройтман "Процессор P6: общий обзор" с. 8-12. 
3. Hard 'n' Soft N 10 1995г.