скачать рефераты
  RSS    

Меню

Быстрый поиск

скачать рефераты

скачать рефератыРеферат: Процессор пентиум

Чтение из памяти данных,  необходимых для команды  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 по-прежнему не сообщает о

причине ошибки.

Страницы: 1, 2, 3


Новости

Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

© 2010.