Процессоры

Автор: Пользователь скрыл имя, 09 Ноября 2011 в 22:35, доклад

Описание работы

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

Работа содержит 1 файл

Информатика..docx

— 63.80 Кб (Скачать)

Конфликты по управлению возникают при конвейеризации команд условных перехо-

дов. По статистике до 15%-20% всех команд в программе - это команды условных перехо-дов. Конфликт проявляется в том, что адрес условного перехода определяется только в

конце выполнения команды, в то время, как конвейер уже должен быть заполнен коман-

дами из какой-то одной ветви. Если не обрабатывать конфликт, то производительность

конвейера может  снижаться в 2 и большее число  раз. Способы борьбы с конфликтами  по

управлению  можно разделить на 2 группы: статические  и динамические.

К статическим методам  можно отнести:

1) Возврат, т.е.  статическое прогнозирование перехода  как всегда выполняе-

мого, либо - всегда не выполняемого с последующей очисткой конвейера в слу-

чае неправильного прогноза и возвратом к нужной команде.

2) Разворачивание  циклов. Поскольку многие условные  переходы связаны с определе-

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

невелико, можно  «развернуть» цикл, то есть продублировать тело цикла столько раз,

сколько необходимо, отказавшись от проверки условия  вообще. Это приведет к увеличе-

нию кода программы, но избавит от конфликта по управлению.

3) Задержанные  переходы (использование «слотов  задержки»).

Под слотами  задержки понимают участки программы, которые будут занесены в кон-

вейер и успеют выполниться до выяснения адреса перехода в условной команде. Идея их

использования состоит в том, чтобы заполнять  слоты задержки «полезными» или  «не-

вредными» командами, то есть такими, которые либо не зависят  от условия, либо - не

приведут к  нарушению логики программы, даже если их выполнение окажется лишним.

(Рис. 4.9)

4) Предсказание  переходов на основе профиля  программы. Профилирова-

ние (profiling) предусматривает составление прогноза о выполнении тех или иных перехо-

дов на основе статистических наблюдений за программой по результатам ее многократно-

го прогона.

К динамическим методам  можно отнести:

1) Приостановку  конвейера до выяснения адреса  перехода.

2) Реализацию  команд условного перехода в  процессоре таким образом,

чтобы адрес  перехода выяснялся на начальных  этапах выполнения

команды.

3) Динамическое  предсказание ветвлений в процессоре (branching predict).

Динамическое  предсказание ветвлений в процессорах  осуществляется с помощью

буферов предсказания перехода (БПП - Branch Predicting Buffer -BPB). Чаще всего в

них используется счетчик прогнозов, который представляет собой обычный n64

разрядный двоичный счетчик. При каждом выполненном  переходе счетчик прогнозов

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

Если текущее  значение счетчика > 2n-1, то переход  прогнозируется как выполняемый,

иначе - как  невыполняемый. На практике ограничиваются либо 1-битным, либо 2-

битными счетчиками, которые при этом обеспечивают вероятность  правильного

прогноза соответственно до 70% и 85%.

Для еще большего ускорения предсказания используют буфер целевых адресов пе-

реходов (Branch Target Buffer - BTB), представляющий собой ассоциативную

кэш -память, в которой в качестве тегов используются адреса команд ветвления в текущей

части программы, а в ячейках содержатся счетчики прогнозов и целевые адреса перехода

при условии  его выполнения. Процессор при  выборке команды проверяет, не хранится ли

ее адрес  в BTB, считывает счетчик прогнозов  и в зависимости от его значения принимает

решение о выборке  команд по следующему адресу или по адресу, указанному в BTB.

4.5.4 Суперскалярные архитектуры

Итак, использование  конвейера команд позволяет в  лучшем случае снизить показатель

CPI до 1, то есть  на каждом такте с конвейера  должна «сходить» новая обработанная  ко-

манда. В этом случае производительность нашего процессора ARC должна увеличиться в

4 раза, при его  длительности такта в 10 нс (тактовая частота 100 Мгц) имеем производи-

тельность в 100 MIPS. Но во-первых, у Celeron такой показатель равняется, как мы выяс-

нили, где-то 250, а во-вторых - как показано ранее, достижение показателя 1 CPI не всегда

возможно из-за конфликтов при конвейеризации. То есть реально мы будем иметь в  луч-

шем случае 1,5-2 CPI. Как же достигается такая высокая производительность в Celeron и

других процессорах  с архитектурой P6? Для этого в  них используется суперскалярная об-

работка, то есть обработка с многопотоковым конвейером команд, когда процессор может

выполнять больше 1 команды за такт (CPI < 1, или - IPC > 1).

Фактически  в суперскалярном процессоре несколько потоков проходят через несколь-

ко исполнительных устройств, а остальные ступени так или иначе работают с одним пото-

ком. Для согласования разных скоростей потоков декодирования, выборки, трансляции в

RISC - подобные  инструкции, переупорядочивания и  потоков в исполнительных устрой-

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

из исполнительных устройств (рис. 4.10)

Необходимо  отметить, что в суперскалярных процессорах происходит очень сложное

и нетривиальное  преобразование последовательного  потока команд исходной программы

в параллельный поток триад (операция + операнды + назначение результата), параллельно

продвигающихся  по очередям команд в исполнительные устройства. Процессор ограни-

чен в возможностях такого преобразования, а также в возможностях спекулятивного ис-

65

полнения (подготовки загрузки альтернативных ветвей ветвления) и прогнозирования

ветвлений размером т.н. «окна исполнения», то есть той  частью программного кода, кото-

рый процессор «видит» в процессе выполнения в данном такте. Все это ограничивает воз-

можности распараллеливания потоков команд до величин порядка 6-8.

Рис. 4.10

4.5.5 Процессоры  с длинным командным словом (VLIW).

В процессорах  с длинным командным словом (Very Long Instruction Word) использу-

ется альтернативный суперскалярной обработке принцип распараллеливания по-

следовательного алгоритма. В основном вся тяжесть планирования загрузки большого

числа исполнительных устройств в таком процессоре (а у него блочное операцион-

ное устройство) ложится на программиста, или - на оптимизирующий компилятор. В

процессор поступают  уже сформированные триады для всех исполнительных устройств,

так что ему  только остается выполнять эти длинные  команды. В результате он не огра-

ничен размером окна исполнения, так как и программист, и компилятор видят весь код

программы, и  могут извлечь из него максимальный параллелизм.

66

Такой подход позволяет  достичь принципиально более  высокой производительности

(например, тестирование  процессоров Itanium с архитектурой IA-64, использующей прин-

ципы VLIW, указывает на 10-кратное ускорение при выполнении ряда вычислений), но

такие процессоры обладают и рядом недостатков:

- в целом  менее эффективная загрузка исполнительных  устройств, так как не всегда

можно сформировать достаточное количество команд для  параллельного исполнения;

- сложности  обработки условных переходов;

- сложность  программирования и др.

Последнее обстоятельство ограничивает применение процессоров VLIW, даже Intel, в

персональных  ЭВМ, так как для этого придется кардинально переписывать все программ-

ное обеспечение, поскольку в существующем виде оно не даст прироста производитель-

ности на этих процессорах. Сфера применения VLIW-процессоров пока ограничена сер-

верами, производительными  рабочими станциями, а также многопроцессорными ЭВМ.

Что касается обработки  условных переходов, то тут можно  отметить широкое исполь-

зование в процессорах VLIW так называемых условных (conditional) команд. Это коман-

ды, использующие предварительно рассчитанные логические значения (предикаты), для

выполнения, либо пропуска какого-то действия (наподобие  операторов языков высокого

уровня c := iif (a>b, a, c)), что позволяет избавиться от нескольких ветвей при коротких

условных переходах и использовать один поток команд без необходимости предсказывать

адрес для следующей  выборки.

4.6 Обзор архитектур  процессоров Intel

Корпорация  Intel является "законодателем мод" на рынке микропроцессоров, а ее про-

дукты стали де-факто стандартом в компьютерной индустрии. Конечно, существует

большое количество других производителей и распространенных семейств МП (те же

процессоры  Motorola и др.), однако наиболее распространенными во всем мире, и особен-

но в России, являются все же процессоры Intel.

Кроме того, в  течении многих лет другие разработчики МП (AMD, NextGen, VIA и др.)

выпускают свои аналоги процессоров, совместимых  по системам команд с МП Intel. По-

этому, анализируя эволюцию процессоров Intel, мы проследить историю развития микро-

процессоров общего назначения вообще. А история развития процессоров Intel подтвер-

ждает в целом закон Мура, сформулированный одним из основателей империи Intel Гор-

доном Муром  еще в 1965 году: "каждые 1,5-2 года выпускается  новый процессор, степень

интеграции  которого (и производительность) вдвое  выше, чем у предыдущего."Согласно

информации  Intel /11/, за 24 года количество транзисторов в кристалле МП увеличилось

более чем в 3700 раз от 29 тыс. в процессоре i8086 (выпущен в 1978 г.) до 108 млн в Intel__

Информация о работе Процессоры