Сравнение архитектур процессоров пятого и шестого поколений - shikardos.ru o_O
Главная
Поиск по ключевым словам:
страница 1
Похожие работы
Название работы Кол-во страниц Размер
Сравнение производительности процессоров 1 83.64kb.
Сравнение производительности процессоров по индексу icomp index 0 1 134.38kb.
T1877 Необходимо подробное описание всех действий со скиншотами. 1 187kb.
Законодательства Архангельской области награждены 1 200.43kb.
М. В. Исаев Mikhail Isaev основные тенденции в архитектуре высокопроизводительных... 1 112.31kb.
Сводное тестирование процессоров: от Pentium 100 до наших дней 3 589.67kb.
Ошибки процессоров Pentium 1 23.43kb.
Сравнение эмпирических данных по испарению и осадкам. Анализ испарения... 1 404.36kb.
Анализ формул постановления правительства РФ №354, сравнение постановлений... 1 166.32kb.
Информация об итогах 6-го заседания Тюменской областной Думы пятого... 1 353.45kb.
Общие сведения о результатах выборов депутатов Верховного Совета... 1 174.55kb.
Сравнение производительности процессоров по индексу icomp index 0 1 134.38kb.
- 4 1234.94kb.
Сравнение архитектур процессоров пятого и шестого поколений - страница №1/1





Сравнение архитектур процессоров пятого и шестого поколений.

Рассмотрим архитектуры процессоров пятого и шестого поколений с точки зрения поиска путей повышения производительности, основанных на выше описанных технологиях.

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

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

Структура целочисленных конвейеров представлена на рис. 1. Оба конвейера имеют по пять ступеней:

PF (PreFetch) – предварительная выборка (предвыборка),

D1 (Decode siage 1) – первая стадия декодирования,

D2 (Decode stage 2) – вторая стадия декодирования,

Е (Execute) – исполнение,

WB (Write Buffer) – буфер записи.

Оба конвейера функционально схожи, но второй (V) конвейер по сравнению с главным (U) имеет некоторые ограничения. Процессор может выполнять до двух инструкций за один цикл. Во время исполнения проверяются следующие две инструкции и, если возможно, запускаются в U- и V-конвейеры. Если две инструкции сразу запустить невозможно, то первая из них запускается в U-конвейер, а V-конвейер простаивает. При выполнении инструкций на обоих конвейерах их функциональное поведение в точности совпадает с поведением при последовательном выполнении. Ступень D2, на которой вычисляются адреса операндов памяти, имеет многоканальный сумматор. В отличие от соответствующей ступени конвейера 486-го процессора, эта ступень не вводит дополнительных тактов задержки при многокомпонентных вычислениях адреса.

Рис.1. Целочисленный конвейер процессора Pentium. Встроенная подсистема кэширования включает два двухканальных наборно-ассоциативных кэша размером по 8 Кб. Длина строки кэша составляет З2 байта, ширина внешней шины данных – 8 байт. Оба кэша поддерживают политику обратной записи (хотя в кэш инструкций запись и не производится) и алгоритм замещения LRU. Память каждого кэша разбита на восемь банков с чередованием по границам в 4 байта. Кэш данных доступен обоим конвейерам, и, если им требуются данные из разных банков, запросы от обоих конвейеров могут обслуживаться одновременно.

Блок предварительной выборки инструкций имеет четыре 32-байтных буфера. На ступени PF две независимые пары буферов выборки работают вместе с целевым буферы ветвления ВТВ (Branch Target Buffer). В каждый момент времени предварительную выборку инструкций может активно запрашивать только один буфер. Выборка производится последовательно до появления инструкции ветвления. Когда такая инструкция появляется, BTB предсказывает, будет ли переход или нет. Если переход не предсказывается, продолжается линейная предвыборка. Если предсказывается переход, то разрешается работа другого буфера предвыборки и он начинает предвыборку с целевой точки ветвления. Если предсказанное ветвление не свершилось, конвейеры инструкций очищаются и предвыборка начинается снова. Блок предвыборки может без штрафных циклов выбирать инструкции, занимающие до двух строк кэша. Поскольку кэш инструкций отделен от кэша данных, предвыборка инструкций не конфликтует с запросами данных из кэша.

Процессор Pentium реализует схему динамического предсказания ветвлений

с буфером цели ветвления (BTB) на 256 вхождений. Если предсказание верно, инструкции ветвления выполняются без штрафных циклов. Если ветвление предсказано ошибочно, условный переход, выполняемый на U-конвейере, требует три штрафных цикла, а на V-конвейере – четыре. Ошибочно предсказанный вызов подпрограммы или безусловный переход требует три штрафных цикла на любом конвейере.

Каждый конвейер (U и V) имеет свой буфер записи WB для повышения производительности при последовательных операциях записи в память, буферы

имеют разрядность 64 бит и могут оба заполниться за один такт, например, при одновременных кэш-промаха: записи на обоих конвейерах. На внешнюю шину записи из этих буферов направляются в том же порядке, в каком они генерируются процессорным ядром. Никакие запросы чтения (как результаты кэш-промaxов) не нарушают порядка уже имеющихся в буферах запросов записи. Pentium поддерживает строгий порядок записи.

Высокопроизводительный мат. сопроцессор реализован на трёхступенчатом конвейере плавающей точки, пристроенном к целочисленному конвейеру. Инструкции FPU проходят по общему конвейеру до ступ ни Е, после чего по крайней мере по одному такту они проводят на ступенях X1, Х2 и WF конвейера FPU.

2. Процессор Pentium Pro.

В семействе процессоров Pentium Pro используется архитектура динамического исполнения, в которой сочетается изменение порядка исполнения, предположительное исполнение инструкций (speculative execution) с аппаратным переименованием регистров и предсказанием ветвлений. Их отличительной чертой является то, что инструкции, проходящие через конвейер в порядке поступления, разбиваются на простейшие микрооперации р - ops, которые выполняются суперскалярным процессорным ядром в порядке, удобном процессору. “Беспорядочное ядро процессора содержит несколько конвейеров, к которым подключаются исполнительные устройства целочисленных вычислений, обращений к памяти, ветвлений и вычислений с плавающей точкой. Несколько различных исполнительных устройств могут объединяться на одном конвейере. Кэш данных является псевдодвухпортовым (используя чередования банков), один порт выделяется для записи, другой - для чтения. Большинство простых операций (операции целочисленной арифметики и логики, умножение с плавающей точкой) могут конвейеризироваться с производительностью исполнения в одну-две операции за такт. Делитель FPU не имеет конвейера. Длительные операции могут выполняться параллельно с короткими.



Конвейер процессора Pentium Pro содержит три части:

  1. препроцессор (упорядоченный) (in-order issue front-end);

  2. ядро с неупорядоченным исполнением (out-of-order core);

  3. упорядочивающее выходное устройство (in-order retirement unit).

Схема конвейера приведена на рис. 2. Здесь показаны следующие ступени:

ВТВ0, ВТВ1 (Branch Target Bt Buffer) - буфер целей ветвления;

IFU0 (Instruction FetchJnit) - блок выборки инструкций. На ступени IFU1 инструкции выбираются 16-байтными пакетами, выровненными по границам параграфов. На ступени IFU2 инструкции предварительно декодируются и укладываются в два буфера по .6 байт уже без привязки к границам параграфов;

ID0, ID1(Instruction Decode)e) - декодер инструкций, способный за один такт пропускать до трех макроинструкций, выпуская до шести микроопераций. При декодировании инструкций ветвлений посылает информацию в BTB0;

RAT (Register Allocation) - блок переименования регистров и выделения ресурсов;

ROB Rd (Re-order Buffer Read) - переупорядочивающий буфер чтения, способный выполнять за такт два чтения регистров;

RS (Reservation Station) – станция резервации, являющаяся окончанием упорядоченного препроцессора;

Port0...Port4 порты “беспорядочного” вычислительного ядра, на которых группируются исполнительные устройства:


  1. Port0 может содержать целочисленное АЛУ (инструкции LEA, сдвигов, арифметики включая целочисленное умножение) и FPU (Инструкции FADD, FMUL, FDIV),

  2. Port1 – целочисленное АЛУ,

  3. Port2 – блок загрузки данных,

  4. Port3 – блок адреса записи,

  5. Port4 – блок данных записи;

RОВ wЬ (Re-Order Buffer writeback) – переупорядочивающий буфер записи;

RRf (Register Retirement File) – файл регистров, способный за один такт

принимать из устройств до трех завершенных микроопераций,

Рис. 2 Конвейер процессора Pentium Pro

3. Процессоры с технологией MMX.

Технология ММХ представляет собой расширение набора инструкций с использованием техники SIM0 (Single Instruction, Multiple Data - одна инструкция на множество данных) для ускорения мультимедийных и коммуникационных программ за счет параллельности обработки. Набор ММХ-инструкций добавляет 57 новых кодов инструкций и новый тип 64-битнт.тх данных. Этот новый тип данных хранит упакованные целочисленные значения во время выполнения операций ММХ. Дополнительно имеются восемь новых 64-битных регистров с именами ММХО - ММХ7 (на самом деле используется стек регистров FPU). Технология ММХ прозрачна для операционной системы и полностью совместима с существующим ПО для процессоров Intel.

Процессоры Pentiuт ММХ по сравнению с обычными процессорами Pentium имеют дополнительные ступени в конвейере. Их интеграция с целочисленным конвейером очень похожа на конвейер FPU. В целочисленный конвейер после ступени PF введена дополнительны ступень F, на которой производится синтаксический разбор инструкции.

Суперскалярная архитектура процессоров Pentium ММХ позволяет выполнять инструкции парамами в пределах ограничений на число исполнительных устройств и их взаимосвязей:



  1. АЛУ исполняет арифметические (сложение и вычитание) и логические операции. Наличие двух АЛУ позволяет выполнять эти инструкции парами на обоих конвейерах;

  2. умножитель исполняет все операции умножения за три цикла, но он конвейеризирован, что позволяет получать результат очередного умножения в каждом такте. Процессор имеет только один умножитель, так что операции умножения не могут исполняться парами. Однако они могут исполняться в паре с любыми другими инструкциями. Умножения могут исполняться как на U-, так и на V-конвейере;

  3. сдвиговое устройство выполняет все операции сдвигов, упаковки и распаковки. Это устройство тоже только одно, так что данные инструкции (на любом конвейере) могут выполняться в паре только с другими инструкциями;

  4. инструкции ММХ, требующие доступа к памяти или обычным регистрам, могут исполняться только на U-конвейере и не могут выполняться в паре с не-ММХ инструкциями.

Процессор Pentium II основан на архитектуре Pentium Pro, в которую добавлено несколько исполнительных устройств для операций ММХ. Теперь Port0 может содержать еще и АЛУ ММХ и умножитель ММХ, а Portf - АЛУ ММХ и устройство сдвигов ММХ.

Размер первичного кэша процессоров с поддержкой ММХ увеличен до 2х16 Кбайт. Кэш данных также разбит на восемь чередующихся банков. Кэш в процессорах класса Р5 одновременно доступен для двух конвейеров, если они обращаются к разным банкам. Кэш данных у Р6 допускает одновременность операций записи и считывания, адресованных к разным банкам. Если оба запроса (на чтение и запись) имеют один и тот же адрес, они выполняются за один цикл, минуя кэш.

Буфер ветвлений ВТВ процессоров Pentium ММХ и Pentium II функционально идентичен буферу Pentium Pro, но имеет одну характерную особенность. Если последние байты двух соседних инструкций попадают в одно выровненное двойное слово, возможно ошибочное предсказание ветвлений. Такая ситуация возможна при короткой второй инструкции ветвления (короткий относительный переход). Этого можно избежать, например, применением 16-битного смещения во второй инструкции.

Процессор Pentium ММХ имеет четыре буфера записи, а не два. Кроме того, они могут использоваться любым конвейером без жесткой привязки, как это было у Pentium Записи с кэш-попаданиями не могут пропускать перед собой записи с кэш-промахами, поэтому для достижения высокой производительности программист должен планировать инструкции записи. Следует стремиться к тому, чтобы эти инструкции не собирались в группы более чем по четыре, а между ними находились бы другие инструкции.


Литература

ЛГук М. Процессоры Intel: от 8086 до Pentium II Спб: Питер, 1997. 224 с.(Мальшаков Г.В.)