Реферат: Процессоры нового поколения и перспективы их развития
<span Courier New"">
<span Courier New""> 2Содержание
<span Courier New"">
<span Courier New""> Вступление 2
<span Courier New""> Два кристалла в одном корпусе 3
<span Courier New""> Pentium как точка отсчета 4
<span Courier New""> Основная проблема на пути повышенияпроизводительности 5
<span Courier New""> Решение принятое в P6 6
<span Courier New""> Архитектура P6 7
<span Courier New""> 1. Устройствовыборки/декодирования 7
<span Courier New""> 2. Устройстводиспетчирования/выполнения 8
<span Courier New""> 3. Устройство отката 9
<span Courier New""> 4. Интерфейс шины 10
<span Courier New""> 5. Вывод 11
<span Courier New""> P6 как платформа для построения мощныхсерверов 12
<span Courier New""> Системы на основе P6 13
<span Courier New""> Следующее поколение процессоров 14
<span Courier New""> Заключение 17
<span Courier New""> Приложения 18
<span Courier New""> Литература 22
<span Courier New"">.
<span Courier New""> — 2 -
<span Courier New"">
<span Courier New""> ш1.1
<span Courier New""> 2Вступление
<span Courier New"">
<span Courier New""> Все IBM-совместимые персональные компьютеры укомплектованы
<span Courier New"">Intel-совместимымипроцессорами. История развитиямикропроцессо-
<span Courier New"">ров семействаIntel вкратце такова. Первыйуниверсальный микро-
<span Courier New"">процессор фирмыIntel появился в 1970 г. Он называлсяIntel 4004,
<span Courier New"">был четырехразрядным и имел возможностьввода/вывода и обработки
<span Courier New"">четырехбитныхслов. Быстродействие его составляло 8000 операций в
<span Courier New"">секунду. Микропроцессор Intel 4004 был рассчитан наприменение в
<span Courier New"">программируемыхкалькуляторах с памятью размером в 4 Кбайт.
<span Courier New""> Через три года фирма Intel выпустилапроцессор 8080, который
<span Courier New"">мог выполнять уже16-битные арифметические операции, имел 1б-раз-
<span Courier New"">рядную адреснуюшину и, следовательно, мог адресовать до 64 Кбайт
<span Courier New"">памяти(2 516 0=65536). 1978 годознаменовался выпуском процессора
<span Courier New"">8086 с размеромслова в 16 бит (два байта), 20-разряднойшиной и
<span Courier New"">мог оперироватьуже с 1 Мбайт памяти (2 520 0=1048576, или 1024
<span Courier New"">Кбайт), разделенной на блоки (сегменты) по 64 Кбайткаждый. Про-
<span Courier New"">цессором 8086комплектовались компьютеры, совместимыес IBM PC и
<span Courier New"">IBM PC/XT. Следующим крупным шагом в разработке новых микропро-
<span Courier New"">цессоров сталпоявившийся в 1982 году процессор 8028б. Он обладал
<span Courier New"">24-разряднойадресной шиной, мог распоряжаться 16 мегабайтами ад-
<span Courier New"">ресногопространства и ставился на компьютеры, совместимые с IBM
<span Courier New"">PC/AT. В октябре 1985 года был выпущен80386DX с 32- разрядной
<span Courier New"">шиной адреса(максимальное адресное пространство — 4 Гбайт), а в
<span Courier New"">июне 1988 года — 80386SX, более дешевый по сравнению с80386DX и
<span Courier New"">обладавший24-разрядной адресной шиной. Затем вапреле 1989 года
<span Courier New"">появляетсямикропроцессор 80486DX, а в мае 1993 — первый вариант
<span Courier New"">процессораPentium (оба с 32-разрядной шиной адреса).
<span Courier New""> В мае 1995 года в Москве на международнойвыставке Комтек-95
<span Courier New"">фирма Intelпредставила новый процессор — P6.
<span Courier New""> Одной из важнейших целей, поставленных при разработке P6,
<span Courier New"">было удвоение производительности по сравнению спроцессором Pen-
<span Courier New"">tium. При этомпроизводство первых версий P6 будет осуществляться
<span Courier New"">по уже отлаженной«Intel» и используемой при производстве послед-
<span Courier New"">них версийPentium полупроводниковой технологии (О,6 мкм, З, З В).
<span Courier New"">Использование того же самого процесса производства даетгарантию
<span Courier New"">того, что массовое производство P6 будет налаженобез серьезных
<span Courier New"">проблем. Вместе с тем это означает, что удвоение производитель-
<span Courier New"">ности достигаетсятолько за счет всестороннего улучшения микроар-
<span Courier New"">хитектурыпроцессора. При разработкемикроархитектуры P6 исполь-
<span Courier New"">зоваласьтщательно продуманная и настроенная комбинация различных
<span Courier New"">архитектурных методов. Часть из них была ранее опробована в про-
<span Courier New"">цессорах«больших» компьютеров, частьпредложена академическими
<span Courier New"">институтами,оставшиеся разработаны инженерами фирмы «Intel». Эта
<span Courier New"">уникальнаякомбинация архитектурных особенностей, которую в «In-
<span Courier New»">tel"определяют словами «динамическое выполнение», позволила пер-
<span Courier New"">вым кристаллам P6превзойти первоначально планировавшийся уровень
<span Courier New"">производительности.
<span Courier New""> При сравнении с альтернативными«Intel» процессорами семейс-
<span Courier New"">тва х86выясняется, что микроархитектура Р6имеет много общего с
<span Courier New"">микроархитектуройпроцессоров Nx586 фирмы NexGen и K5 фирмы AMD,
<span Courier New"">и, хотя ив меньшей степени, с M1 фирмы«Cyrix». Эта общность
<span Courier New";mso-fareast-font-family: Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:RU;mso-fareast-language: EN-US;mso-bidi-language:AR-SA"><span Courier New"">
<span Courier New""> — 3 -
<span Courier New"">
<span Courier New"">объясняетсятем, что инженеры четырех компаний решалиодну и ту
<span Courier New"">же задачу: внедрение элементов RISC-технологии при сохранении
<span Courier New"">совместимости сCISC-архитектурой Intel х86.
<span Courier New"">
<span Courier New""> 2Два кристалла в одномкорпусе
<span Courier New"">
<span Courier New""> Главное преимущество и уникальнаяособенность Р6 — размещен-
<span Courier New"">ная в одном корпусе с процессором вторичная статическая кэш-па-
<span Courier New"">мять размером 256кб, соединенная с процессором специальновыде-
<span Courier New"">ленной шиной.Такая конструкция должна существенно упростить про-
<span Courier New"">ектирование системна базе Р6. Р6 — первый предназначенный для
<span Courier New"">массовогопроизводства микропроцессор, содержащийдва чипа в од-
<span Courier New"">ном корпусе.
<span Courier New""> Кристалл ЦПУ в Р6 содержит 5,5 миллионовтранзисторов; крис-
<span Courier New"">талл кэш-памятивторого уровня — 15,5 миллионов. Для сравнения,
<span Courier New"">последняя модель Pentium включала около 3,3 миллиона транзисто-
<span Courier New"">ров, а кэш-память второго уровня реализовывалась спомощью внеш-
<span Courier New"">него наборакристаллов памяти.
<span Courier New""> Столь большое число транзисторов в кэшеобъясняется его ста-
<span Courier New"">тической природой.Статическая память в P6 использует шесть тран-
<span Courier New"">зисторов длязапоминания одного бита, в то время как динамической
<span Courier New"">памяти было быдостаточно одного транзистора на бит. Статическая
<span Courier New"">память быстрее,но дороже.
<span Courier New""> Хотя число транзисторов на кристалле свторичным кэшем втрое
<span Courier New"">больше, чем на кристалле процессора, физические размеры кэша
<span Courier New"">меньше: 202 квадратных миллиметра против 306 у процессора. Оба
<span Courier New"">кристалла вместезаключены в керамический корпус с 387 контактами
<span Courier New"">(«dualcavity pin-drid array»). Оба кристалла производятся с при-
<span Courier New"">менением одной итой же технологии (0,6 мкм, 4- слойная ме-
<span Courier New"">талл-БиКМОП, 2,9 В). Предполагаемое максимальное потребление
<span Courier New"">энергии: 20 Втпри частоте 133 МГц.
<span Courier New""> Первая причина объединения процессора и вторичного кэша в
<span Courier New"">одном корпусе — облегчение проектирования и производства высокоп-
<span Courier New"">роизводительных систем на базе Р6. Производительностьвычисли-
<span Courier New"">тельнойсистемы, построенной на быстромпроцессоре, очень сильно
<span Courier New"">зависит от точной настройки микросхемокружения процессора, в
<span Courier New"">частностивторичного кэша. Далеко не все фирмы-производители
<span Courier New"">компьютеров могутпозволить себе соответствующие исследования. В
<span Courier New"">Р6 вторичный кэшуже настроен на процессор оптимальным образом,
<span Courier New"">что облегчаетпроектирование материнской платы.
<span Courier New""> Вторая причина объединения - повышение производительности.
<span Courier New"">Кзш второгоуровня связан с процессором специально выделенной ши-
<span Courier New"">ной шириной 64бита и работает на той же тактовой частоте, что и
<span Courier New"">процессор.
<span Courier New""> Первые процессоры Рentium с тактовойчастотой 60 и 66 МГц
<span Courier New"">обращались квторичному кэшу по 64-разрядной шине с той же такто-
<span Courier New"">вой частотой.Однако с ростом тактовой частоты Pentium для проек-
<span Courier New"">тировщиков стало слишком сложно и дорого поддерживатьтакую час-
<span Courier New"">тоту наматеринской плате. Поэтому стали применяться делители
<span Courier New"">частоты. Например, у 100 МГц Pentium внешняя шина работает на
<span Courier New"">частоте 66 МГц (у90 МГц Pentium — соответственно 60 МГц). Penti-
<span Courier New"">um использует этушину как для обращений к вторичному кэшу, так и
<span Courier New";mso-fareast-font-family: Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:RU;mso-fareast-language: EN-US;mso-bidi-language:AR-SA"><span Courier New"">
<span Courier New""> — 4 -
<span Courier New"">
<span Courier New"">для обращения косновной памяти и другим устройствам, например к
<span Courier New"">набору чипов PCI.
<span Courier New""> Использование специально выделенной шиныдля доступа к вто-
<span Courier New"">ричному кэшу улучшает производительность вычислительнойсистемы.
<span Courier New"">Во-первых, при этом достигается полная синхронизация скоростей
<span Courier New"">процессора ишины; во-вторых, исключается конкуренция с другими
<span Courier New"">операциямиввода-вывода и связанные с этим задержки. Шина кэша
<span Courier New"">второго уровняполностью отделена от внешней шины, через которую
<span Courier New"">происходит доступк памяти и внешним устройствам. 64-битовая
<span Courier New"">внешняя шинаможет работать со скоростью, равнойполовине, одной
<span Courier New"">третьей или однойчетвертой от скорости процессора, при этом шина
<span Courier New"">вторичного кэшаработает независимо на полной скорости.
<span Courier New""> Объединение процессора и вторичного кэша водном корпусе и
<span Courier New"">их связь через выделенную шину являетсяшагом по направлению к
<span Courier New"">методамповышения производительности, используемым в наиболее
<span Courier New"">мощныхRISC-процессорах. Так, в процессоре Alpha 21164 фирмы «Di-
<span Courier New»">gital" кэшвторого уровня размером 96 кб размещен в ядре процес-
<span Courier New"">сора, как и первичный кэш. Это обеспечивает оченьвысокую произ-
<span Courier New"">водительностькэша за счет увеличения числа транзисторов на крис-
<span Courier New"">талле до 9,3 миллиона. Производительность Alpha 21164 составляет
<span Courier New"">330 SPECint92 притактовой частоте 300 МГц. Производительность Р6
<span Courier New"">ниже (по оценкам«Intel» — 200 SPECint92 при тактовой частоте 133
<span Courier New"">МГц), однако Р6 обеспечивает лучшее соотношениестоимость/произ-
<span Courier New"">водительность длясвоего потенциального рынка.
<span Courier New""> При оценке соотношениястоимость/производительность следует
<span Courier New"">учитывать, что,хотя Р6 может оказаться дороже своих конкурентов,
<span Courier New"">большая частьдругих процессоров должна быть окружена дополни-
<span Courier New"">тельным наборомчипов памяти и контроллером кэша. Кроме того, для
<span Courier New"">достижениясравнимой производительности работы с кэшом, другие
<span Courier New"">процессоры должны будут использовать кэшбольшего, чем 256 кб
<span Courier New"">размера.
<span Courier New""> «Intel», как правило, предлагает многочисленные вариации
<span Courier New"">своихпроцессоров. Это делается с целью удовлетворить разнообраз-
<span Courier New"">ным требованиям проектировщиков систем и оставить меньше прост-
<span Courier New"">ранства длямоделей конкурентов. Поэтому можнопредположить, что
<span Courier New"">вскоре после начала выпуска Р6 появятся какмодификации с увели-
<span Courier New"">ченным объемомвторичной кэш-памяти, так и болеедешевые модифи-
<span Courier New"">кации с внешнимрасположением вторичного кэша, но при сохраненной
<span Courier New"">выделенной шинемежду вторичным кэшом и процессором.
<span Courier New"">
<span Courier New""> 2Pentium как точкаотсчета
<span Courier New"">
<span Courier New""> Процессор Pentium со своей конвейерной исуперскалярной ар-
<span Courier New"">хитектурой достигвпечатляющего уровня производительности.
<span Courier New""> Pentium содержит два 5-стадийных конвейера, которые могут
<span Courier New"">работатьпараллельно и выполнять две целочисленные команды за ма-
<span Courier New"">шинный такт. При этом параллельно может выполнятьсятолько пара
<span Courier New"">команд, следующих в программе друг за другом иудовлетворяющих
<span Courier New"">определеннымправилам, например, отсутствие регистровых зависи-
<span Courier New"">мостей типа«запись после чтения».
<span Courier New""> В P6 для увеличения пропускной способностиосуществлен пере-
<span Courier New"">ход к одному 12-стадийномуконвейеру. Увеличение числа стадий
<span Courier New";mso-fareast-font-family: Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:RU;mso-fareast-language: EN-US;mso-bidi-language:AR-SA"><span Courier New"">
<span Courier New""> — 5 -
<span Courier New"">
<span Courier New"">приводит куменьшению выполняемой на каждой стадии работы и, как
<span Courier New"">следствие, куменьшению времени нахождения команды на каждой ста-
<span Courier New"">дии на 33процента по сравнению с Pentium. Этоозначает, что ис-
<span Courier New"">пользование припроизводстве P6 той же технологии, что и при про-
<span Courier New"">изводстве 100 МГцPentium, приведет к получению P6 с тактовой
<span Courier New"">частотой 133 МГц.
<span Courier New""> Возможности суперскалярной архитектурыPentium, с ее способ-
<span Courier New"">ностью квыполнению двух команд за такт, было бы трудно превзойти
<span Courier New"">без совершеннонового подхода. Примененный в P6 новый подход уст-
<span Courier New"">раняет жесткуюзависимость между традиционными фазами «выборки» и
<span Courier New"">«выполнения», когда последовательность прохождениякоманд через
<span Courier New"">эти две фазысоответствует последовательности команд в программе.
<span Courier New"">Новый подходсвязан с использованием так называемого пула команд
<span Courier New"">и с новыми эффективными методами предвидения будущего поведения
<span Courier New"">программы. При этом традиционная фаза«выполнение» заменяется на
<span Courier New"">две:«диспетчирование/выполнение» и «откат». В результатекоманды
<span Courier New"">могут начинатьвыполняться в произвольном порядке, но завершают
<span Courier New"">свое выполнение всегда в соответствии с ихисходным порядком в
<span Courier New"">программе. Ядро P6 реализовано как три независимых устройства,
<span Courier New"">взаимодействующихчерез пул команд (рис. 1).
<span Courier New"">
<span Courier New""> 2Основная проблема на путиповышения
<span Courier New""> 2производительности
<span Courier New"">
<span Courier New""> Решение об организации P6 как трехнезависимых и взаимодейс-
<span Courier New"">твующих через пулкоманд устройств было принято после тщательного
<span Courier New"">анализафакторов, ограничивающихпроизводительность современных
<span Courier New"">микропроцессоров. Фундаментальный факт, справедливый дляPentium
<span Courier New"">и многих другихпроцессоров, состоит в том, что при выполнении
<span Courier New"">реальных программ мощность процессора неиспользуется в полной
<span Courier New"">мере. Рассмотримв качестве примера следующий фрагмент программы,
<span Courier New"">записанный нанекотором условном языке:
<span Courier New"">
<span Courier New""> r1 < — mem[r0] /* Команда 1 */
<span Courier New""> r2 < — r1 + r2 /* Команда 2 */
<span Courier New""> r5 < — r5 + 1 /* Команда 3 */
<span Courier New""> r6 < — r6 — r3 /* Команда 4 */
<span Courier New"">
<span Courier New""> Предположим, что при выполнении первойкоманды фрагмента -
<span Courier New"">загрузки изпамяти в регистр r1 — оказалось, что содержимое соот-
<span Courier New"">ветствующейячейки памяти отсутствует в кэше. При традиционном
<span Courier New"">подходе процессор перейдет к выполнению команды 2только после
<span Courier New"">того, как данныеиз ячейки mem[r0] основной памяти будут прочита-
<span Courier New"">ны черезинтерфейс шины. Все время ожидания процессор будет прос-
<span Courier New"">таивать.
<span Courier New""> В то время как скорость процессоров за последние 10 лет вы-
<span Courier New"">росла по меньшеймере в 10 раз, время доступа косновной памяти
<span Courier New"">уменьшилосьтолько на 60 процентов. Этоувеличивающееся отстава-
<span Courier New"">ние скоростиработы с памятью по отношению к скорости процессора
<span Courier New"">и было тойфундаментальной проблемой, которую пришлось решать при
<span Courier New"">проектированииP6.
<span Courier New""> Один из возможных подходов к решению этойпроблемы — перенос
<span Courier New";mso-fareast-font-family: Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:RU;mso-fareast-language: EN-US;mso-bidi-language:AR-SA"><span Courier New"">
<span Courier New""> — 6 -
<span Courier New"">
<span Courier New"">ее центра тяжестина разработку высокопроизводительных компонен-
<span Courier New"">тов, окружающихпроцессор. Однако массовый выпуск систем, включа-
<span Courier New"">ющих ивысокопроизводительный процессор, ивысокоскоростные спе-
<span Courier New"">циализированныемикросхемы окружения, был бы слишкомдорогостоя-
<span Courier New"">щим.
<span Courier New""> Можно было попытаться решить проблему с использованием гру-
<span Courier New"">бой силы, а именно увеличить размер кэша второго уровня, чтобы
<span Courier New"">уменьшить процент случаев отсутствия необходимых данных в кэше.
<span Courier New"">Это решениеэффективное, но тоже чрезвычайнодорогостоящее, осо-
<span Courier New"">бенно учитывая сегодняшние скоростные требованияк компонентам
<span Courier New"">кэша второгоуровня. P6 проектировался с точки зрения эффективной
<span Courier New"">реализациицелостной вычислительной системы, и требовалось, чтобы
<span Courier New"">высокаяпроизводительность системы в целом достигалась с исполь-
<span Courier New"">зованием дешевойподсистемы памяти.
<span Courier New"">
<span Courier New""> 2Решение, принятое вP6
<span Courier New"">
<span Courier New""> Решение сформулированной в предыдущемразделе проблемы памя-
<span Courier New"">ти, принятое в P6, заключается в обращении к пулукоманд, извле-
<span Courier New"">чении из негокоманд, следующих за командой, требующейобращения
<span Courier New"">к памяти, ивыполнения до момента завершения команды-тормоза мак-
<span Courier New"">симума полезнойработы. В приведенном в предыдущем разделе приме-
<span Courier New"">ре процессор неможет выполнить команду 2 до завершения команды
<span Courier New"">1, так как команда 2 зависит от результатов команды 1. В то же
<span Courier New"">время процессорможет выполнить команды 3 и 4, не зависящие от
<span Courier New"">результатавыполнения команды 1. Мы будем называть такое выполне-
<span Courier New"">ние командопережающим выполнением. Результатыопережающего вы-
<span Courier New"">полнения команд 3 и 4 не могут быть сразузаписаны в регистры,
<span Courier New"">поскольку мыдолжны изменять состояние вычислительной системы
<span Courier New"">только всоответствии с правильным порядком выполнения программы.
<span Courier New"">Эти результатыхранятся в пуле команд и извлекаются оттуда позд-
<span Courier New"">нее. Такимобразом, процессор выполняет команды всоответствии с
<span Courier New"">их готовностью квыполнению, вне зависимости от их первоначально-
<span Courier New"">го порядка впрограмме, то есть с точки зренияреального порядка
<span Courier New"">выполнения командP6 является машиной, управляемойпотоком дан-
<span Courier New"">ных. В то же время изменение состояниявычислительной системы,
<span Courier New"">например запись врегистры, производится в строгом соответствии с
<span Courier New"">истинным порядкомкоманд в программе.
<span Courier New""> Чтение из памяти данных, необходимых для команды 1, может
<span Courier New"">заниматьдостаточно много тактов. Тем временем P6 продолжает опе-
<span Courier New"">режающеевыполнение команд, следующих за командой1, и успевает
<span Courier New"">обработать, как правило, 20-30 команд. Среди этих 20-30команд
<span Courier New"">будет в среднемпять команд перехода, которыеустройство выбор-
<span Courier New"">ки/декодированиядолжно правильно предсказать для того, чтобы ра-
<span Courier New"">бота устройствадиспетчирования/выполнения не оказалась бесполез-
<span Courier New"">ной. Небольшое количество регистров в архитектуре процессоров
<span Courier New"">«Intel»приводит к интенсивному использованию каждого из них и,
<span Courier New"">как следствие, квозникновению множества мнимых зависимостей меж-
<span Courier New"">ду командами,использующими один и тот же регистр. Поэтому, чтобы
<span Courier New"">исключить задержкув выполнении команд из-за мнимых зависимостей,
<span Courier New"">устройстводиспетчирования/выполнения работает с дублями регист-
<span Courier New"">ров, находящимися в пуле команд (одному региструможет соответс-
<span Courier New";mso-fareast-font-family: Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:RU;mso-fareast-language: EN-US;mso-bidi-language:AR-SA"><span Courier New"">
<span Courier New""> — 7 -
<span Courier New"">
<span Courier New"">твовать несколькодублей). Реальный набор регистров контролирует-
<span Courier New"">ся устройствомотката, и результаты выполнения командотражаются
<span Courier New"">на состояниивычислительной системы только после того, как выпол-
<span Courier New"">ненная командаудаляется из пула команд в соответствии с истинным
<span Courier New"">порядком команд впрограмме.
<span Courier New""> Таким образом, принятая в P6 технологиядинамического выпол-
<span Courier New"">нения может бытьописана как оптимальное выполнение программы ,
<span Courier New"">основанное напредсказании будущих переходов, анализе графа пото-
<span Courier New"">ков данных сцелью выбора наилучшего порядка исполнения команд и
<span Courier New"">на опережающемвыполнении команд в выбранном оптимальном порядке.
<span Courier New"">
<span Courier New""> 2Архитектура P6
<span Courier New"">
<span Courier New""> На рисунке 2 приведена более подробнаяблок-схема P6, вклю-
<span Courier New"">чающая кэши иинтерфейс с основной памятью.
<span Courier New""> Далее мы будем понимать под «упорядоченным» устройство, ко-
<span Courier New"">торое работает всоответствии с исходным порядком команд в прог-
<span Courier New"">рамме, а под«беспорядочным» — устройство, которое не обращает
<span Courier New"">внимания наисходный порядок команд в программе.
<span Courier New""> Устройство выборки/декодирования является «упорядоченным»
<span Courier New"">устройством, которое воспринимает на входе поток команд изпрог-
<span Courier New"">раммы пользователя и декодирует их, превращая впоследователь-
<span Courier New"">ностьмикрокоманд, соответствующих потоку данных в программе
<span Courier New"">пользователя.
<span Courier New""> Устройство диспетчирования/выполненияявляется «беспорядоч-
<span Courier New»">ным" устройством, которое воспринимает поток данных и планирует
<span Courier New"">выполнениемикрокоманд с учетом зависимостей по данным и доступ-
<span Courier New"">ности ресурсов, атакже временно сохраняет результаты опережающе-
<span Courier New"">го выполнения впуле команд.
<span Courier New""> Устройство отката — «упорядоченное» устройство, которое зна-
<span Courier New"">ет, как и когда завершить выполнениекоманды, то есть перевести
<span Courier New"">временныерезультаты опережающего выполнения в постоянное состоя-
<span Courier New"">ниевычислительной системы.
<span Courier New""> Интерфейс шины является «частично упорядоченным» устройс-
<span Courier New"">твом, отвечающимза связь трех вышеупомянутых устройств с внешним
<span Courier New"">миром. Интерфейс шины взаимодействует непосредственно с кэшем
<span Courier New"">2-го уровня иподдерживает до 4 параллельных обращений к кэшу.
<span Courier New"">Интерфейс шины также управляет обменом данными с основной па-
<span Courier New"">мятью, которыйпроисходит с использованием протокола MESI [1].
<span Courier New"">
<span Courier New""> 2Устройствовыборки/декодирования
<span Courier New"">
<span Courier New""> Структура этого устройства приведена на рисунке 3.
<span Courier New""> Команды из кэша команд могут быть быстровыбраны для после-
<span Courier New"">дующей обработки.Указатель на следующую команду — это индекс кэ-
<span Courier New"">ша команд, содержимое которого определяетсябуфером переходов,
<span Courier New"">состоянием процессораи сообщениями о неправильном предсказании
<span Courier New"">перехода,поступающими из устройства выполнения целых команд. Бу-
<span Courier New"">фер переходов с512 входами использует расширение алгоритма Йе
<span Courier New"">(Yeh), которое обеспечивает более чем 90-процентную точность
<span Courier New"">предсказанияпереходов.
<span Courier New""> Предположим, что ничего исключительного не происходит и что
<span Courier New";mso-fareast-font-family: Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:RU;mso-fareast-language: EN-US;mso-bidi-language:AR-SA"><span Courier New"">
<span Courier New""> — 8 -
<span Courier New"">
<span Courier New"">буфер переходов всвоих предсказаниях оказался прав (в P6 предус-
<span Courier New"">мотрены эффективные действия в случае неправильногопредсказания
<span Courier New"">перехода).
<span Courier New""> Кэш команд выбирает строку кэша, соответствующую индексу в
<span Courier New"">указателе наследующую команду, и следующую за нейстроку, после
<span Courier New"">чего передает 16выровненных байтов декодеру. Две строки считыва-
<span Courier New"">ются из-затого, что команды в архитектуре Intel выровнены по
<span Courier New"">границе байта, ипоэтому может происходить передача управления на
<span Courier New"">середину иликонец строки кэша. Выполнение этой ступени конвейера
<span Courier New"">занимает тритакта, включая время, необходимое для вращения пред-
<span Courier New"">выбранных байтови их подачи на декодеры команд. Началои конец
<span Courier New"">командпомечаются.
<span Courier New""> Три параллельных декодера принимают потокотмеченных байтов
<span Courier New"">и обрабатывают их, отыскивая и декодируясодержащиеся в потоке
<span Courier New"">команды. Декодерпреобразует команды архитектуры Intel в микроко-
<span Courier New"">манды-триады (дваоперанда, один результат). Большинство команд
<span Courier New"">архитектуры Intelпреобразуются в одну микрокоманду, некоторые
<span Courier New"">требуют четырехмикрокоманд, а сложные команды требуютобращения
<span Courier New"">к микрокоду, представляющему из себя набор заранее составленных
<span Courier New"">последовательностеймикрокоманд. Некоторые команды, такназывае-
<span Courier New"">мыебайт-префиксы, модифицируют следующую заними команду, что
<span Courier New"">также усложняетработу декодера. Микрокоманды ставятся в очередь,
<span Courier New"">посылаются втаблицу псевдонимов регистров, гдессылки на логи-
<span Courier New"">ческие регистрыпреобразуются в ссылки на физические регистры P6,
<span Courier New"">после чего каждаяиз микрокоманд вместе с дополнительной информа-
<span Courier New"">цией о еесостоянии (статусе) посылается в пул команд. Пул команд
<span Courier New"">реализован в видемассива контекстно-адресуемой памяти, называе-
<span Courier New"">мого такжебуфером переупорядочивания.
<span Courier New""> В этой точке заканчивается«упорядоченная» часть конвейера.
<span Courier New"">
<span Courier New""> 2Устройстводиспетчирования/выполнения
<span Courier New"">
<span Courier New""> Устройство диспетчирования выбирает микрокомандыиз пула ко-
<span Courier New"">манд взависимости от их статуса. Под статусоммы будем понимать
<span Courier New"">информацию одоступности операндов микрокоманды и наличии необхо-
<span Courier New"">димых для еевыполнения вычислительных ресурсов. Если статус мик-
<span Courier New"">рокомандыпоказывает, что ее операнды уже вычислены и доступны, а
<span Courier New"">необходимое для ее выполнения вычислительное устройство(ресурс)
<span Courier New"">такжедоступно, то устройство диспетчированиявыбирает микроко-
<span Courier New"">манду из пула команд и направляет ее на устройство для выполне-
<span Courier New"">ния. Результатывыполнения микрокоманды возвращаются в пул.
<span Courier New""> Взаимодействие с вычислительными ресурсами происходит через
<span Courier New"">пятипортовуюраспределительную станцию. Структура устройства дис-
<span Courier New"">петчирования/выполненияпоказана на рисунке 4.
<span Courier New""> P6 может запускать на выполнение до 5микрокоманд за такт,
<span Courier New"">по одной на каждый порт. Средняя длительноподдерживаемая про-
<span Courier New"">пускнаяспособность — 3 микрокоманды за такт. Процесс планирова-
<span Courier New"">ния выполнения микрокоманд являетсяпринципиально «беспорядоч-
<span Courier New»">ным": момент направления микрокоманд на вычислительные ресурсы
<span Courier New"">определяетсятолько потоками данных и доступностью ресурсов, без
<span Courier New"">какой бы то нибыло связи с первоначальным порядком команд в
<span Courier New"">программе.
<span Courier New";mso-fareast-font-family: Calibri;mso-fareast-theme-font:minor-latin;mso-ansi-language:RU;mso-fareast-language: EN-US;mso-bidi-language:AR-SA"><span Courier New"">
<span Courier New""> — 9 -
<span Courier New"">
<span Courier New""> Алгоритм, отвечающий за планированиевыполнения микрокоманд,
<span Courier New"">является крайневажным для производительности процессора в целом.
<span Courier New"">Если в каждомтакте для каждого ресурса готова к выполнению толь-
<span Courier New"">ко одна микрокоманда, то проблемы выбора не возникает. Но если
<span Courier New"">готовых к выполнениюна данном ресурсе микрокоманд несколько, то
<span Courier New"">какую из нихвыбрать? Можно доверить выборслучаю. Можно приме-
<span Courier New"">нить алгоритм«первый пришел — первый обслужен». Идеальным был бы
<span Courier New"">выбормикрокоманды, выполнение которой привело бы к максимальному
<span Courier New"">сокращению граф