Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архитектура компьютеров_1 / 9_Процессор-суперскаляр-Intel.doc
Скачиваний:
48
Добавлен:
20.03.2015
Размер:
285.18 Кб
Скачать

9.6.2. 16-Разрядный режим

Процессоры IA-32 могут функционировать в режиме, допускающем непосредст­венное выполнение программ на машинных языках ранних 16-разрядных процес­соров Intel (8086 и 80286). В этом режиме применяются только младшие полови­ны регистров процессора, обозначенные на рис. 3.38 как АХ, СХ,.... Размер внут­ренних адресов достигает 16 разрядов, а для адресации используется только подмножество режимов, перечисленных в табл. 3.3. Так, значение индексного ре­гистра при формировании исполнительного адреса масштабировать невозможно.

Переключение между 32-разрядным и 16-разрядным режимами может выпол­няться на уровне отдельных команд. Кроме того, возможен независимый выбор разрядности адреса и данных. Поэтому при работе с 16-разрядными данными мо­гут использоваться все способы адресации архитектуры IA-32. Перед началом выполнения программы устанавливается режим, используемый по умолчанию. Для переключения в другой режим к команде добавляется префиксный байт, не показанный на рис. 3.41.

9.6.3. Процессоры 80386 и 80486

В процессоре 80386, как уже было сказано, впервые реализована архитектура IA-32, описанная в главе 3. Он поддерживает технологии сегментации памяти и разбиения ее на страницы, с которыми мы познакомились в разделе 11.3.1.

Процессор 80486 относится к категории первых микросхем, содержащих поряд­ка 1 млн. транзисторов — приблизительно столько же, сколько их насчитывается в процессоре Motorola 68040. Благодаря расширенным схемам по производительно­сти он значительно превосходил процессор 80386. Арифметическое устройство с плавающей запятой соответствовало стандарту IEEE (см. главу 6). В компьютерах на базе процессоров 80386 за выполнение вычислений с плавающей запятой отве­чала отдельная микросхема сопроцессора. Поддержка страниц и управление памя­тью в процессоре 80486 осуществлялись так же, как и в процессоре 80386.

Процессор 80486 содержал 4-канальный множественно-ассоциативный кэш для команд и данных. Загрузка в него новой информации ускорялась благодаря механизму пакетной пересылки данных, позволявшему считывать и загружать в кэш четыре 32-разрядных слова одним блоком. В нем применялся протокол со сквозной записью, согласно которому записываемые в кэш данные сразу автома­тически сохранялись и в основной памяти.

С целью повышения производительности в архитектуру процессора 80486 был включен ряд устройств параллельной и конвейерной обработки команд. Уст­ройства обработки целых чисел и чисел с плавающей запятой могли выполнять команды параллельно. Во время обработки одной команды из памяти уже извле­калась следующая команда. Для выполнения наиболее «популярных» команд требовалось меньше тактов, чем в процессоре 80386. Так, команды загрузки и со­хранения данных, а также команды, производящие операции над данными реги­стров без обращения к памяти, выполнялись за один такт.

9.6.4. Процессор Pentium

У процессора Pentium, выпущенного в 1993 году, производительность значитель­но выше, чем у процессора 80486. Он содержит 3 млн. транзисторов и при выпол­нении программ, осуществляющих целочисленные вычисления, имеет вдвое выс­шую вычислительную мощность, чем процессор 80486. В процессе выполнения программ, предназначенных для интенсивных вычислений с плавающей запя­той, данный показатель возрастает в пять раз. На рис 9.6.3. приведена структура процессора Pentium.

Рис 9.6.3. Блочная структура процессора Pentium

Pentium имеет CISC-архитектуру, но при этом для повышения производитель­ности в нем использованы многие структурные элементы RISC-процессоров. (Они применялись и в процессоре 80486, но в меньшем количестве.) В частности, для команд и данных предусмотрены раздельные кэши объемом по 8 Кбайт, интегри­рованные в микросхему. У процессора Pentium суперскалярная организация.

Одной из главных особенностей микропроцессоров архитектуры IA-32 является динамическое (спекулятивное) исполнение. Под этим термином подразумевается следующая совокупность возможностей:

  • Глубокое предсказание ветвлений (с вероятностью >90% можно предсказать 1015 ближайших переходов).

  • Анализ потока данных (на 20-30 шагов вперед просмотреть программу и определить зависимость команд по данным или ресурсам).

  • Опережающее исполнение команд (МП P6 может выполнять команды в порядке, отличном от их следования в программе).

Внутренняя организация МП Pentium соответствует архитектуре RISC, поэтому блок выборки команд, считав поток инструкций IA-32 из L1 кэша инструкций, декодирует их в серию микроопераций. Поток микроопераций попадает в буфер переупорядочивания (пул инструкций). В нем содержатся как не выполненные пока микрооперации, так и уже выполненные, но еще не повлиявшие на состояние процессора. Для декодирования инструкций предназначены три параллельных дешифратора: два для простых и один для сложных инструкций. Каждая инструкция IA-32 декодируется в 1-4 микрооперации. Микрооперации выполняются пятью параллельными исполнительными устройствами: два для целочисленной арифметики, два для вещественной арифметики и блок интерфейса с памятью. Таким образом, возможно выполнение до пяти микроопераций за такт.

Блок исполнительных устройств способен выбирать инструкции из пула в любом порядке. При этом благодаря блоку предсказания ветвлений возможно выполнение инструкций, следующих за условными переходами. Блок резервирования постоянно отслеживает в пуле инструкций те микрооперации, которые готовы к исполнению (исходные данные не зависят от результата других невыполненных инструкций) и направляет их на свободное исполнительное устройство соответствующего типа. Одно из целочисленных исполнительных устройств дополнительно занимается проверкой правильности предсказания переходов. При обнаружении неправильно предсказанного перехода все микрооперации, следующие за переходом, удаляются из пула и производится заполнение конвейера команд инструкциями по новому адресу.

Взаимная зависимость команд от значения регистров архитектуры IA-32 может требовать ожидания освобождения регистров. Для решения этой проблемы предназначены 40 внутренних регистров общего назначения, используемых в реальных вычислениях.

Блок удаления отслеживает результат спекулятивно выполненных микроопераций. Если микрооперация более не зависит от других микроопераций, ее результат переносится на состояние процессора, и она удаляется из буфера переупорядочивания. Блок удаления подтверждает выполнение инструкций (до трех микроопераций за такт) в порядке их следования в программе, принимая во внимание прерывания, исключения, точки останова и промахи предсказания переходов.

Благодаря 64-разрядной внешней шине данных ускоряется загрузка в кэши дан­ных из внешней памяти. Кэши имеют 2-канальную множественно-ассоциатив­ную структуру и состоят из 32-байтовых блоков. В состав процессора входят три независимых конвейерных операционных блока: два для целочисленных опера­ций и один для операций с плавающей запятой. Целочисленные конвейеры име­ют пять ступеней, а устройство с плавающей запятой — восемь ступеней.

В процессоре Pentium используется простая форма динамического предсказа­ния переходов. Каждый раз выбирается то направление, по которому осуществлял­ся предыдущий переход. Такое предсказание верно для всех переходов, выполняе­мых в конце программного цикла после первого перехода и до выхода из цикла.