Процессоры нового поколения и перспективы их развития

Формат:

Дата создания: 10.10.2016

Размер: 1.21 KB

Скачать реферат


                            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г.