Архитектура микропроцессоров семейства Intel

Автор работы: Пользователь скрыл имя, 22 Ноября 2013 в 09:10, реферат

Краткое описание

Все IBM-совместимые персональные компьютеры укомплектованы Intel-совместимыми процессорами. История развития микропроцессоров семейства Intel вкратце такова. Первый универсальный микропроцессор фирмы Intel появился в 1970 г. Он назывался Intel 4004, был четырехразрядным и имел возможность ввода/вывода и обработки четырехбитных слов. Быстродействие его составляло 8000 операций в секунду. Микропроцессор Intel 4004 был рассчитан на применение в программируемых калькуляторах с памятью размером в 4 Кбайт.

Содержание

Вступление
Два кристалла в одном корпусе
Pentium как точка отсчета
Основная проблема на пути повышения производительности
Решение принятое в P6
Архитектура P6
1. Устройство выборки/декодирования
2. Устройство диспетчирования/выполнения
3. Устройство отката
4. Интерфейс шины
5. Вывод
P6 как платформа для построения мощных серверов
Системы на основе P6
Следующее поколение процессоров
Заключение
Приложения
Литература

Вложенные файлы: 1 файл

Архитектура микропроцессоров семейства Intel.docx

— 43.52 Кб (Скачать файл)

 Чтение из памяти  данных, необходимых для команды  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 также реализована улучшенная поддержка контрольных точек, то есть обеспечивается возможность отката компьютера в зафиксированное ранее состояние в случае возникновения ошибки.

Информация о работе Архитектура микропроцессоров семейства Intel