Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции 437стр.doc
Скачиваний:
48
Добавлен:
15.06.2014
Размер:
9.54 Mб
Скачать

Superscalar Architectures

Вместо увеличения количества конвейеров - один конвейер с большим количеством функциональных блоков (PentiumII). Первая В^1 с суперскалярной архитектурой - СЕЗС 6600(10 блоков ДОО не - след . кем ).

S4

S1

Instruction

fetch

unit

S2

Instruction decode

unit

Слайд 13

Суперконвейерная vs суперскалярной

обработки

8

и

ЕК

во

ЕК

во

ЕК

ЕК

ВА

ЕЛ

во

во

Суперскалярная

ЕА

ВО

ВА

во

ВА

во

ЕА

во

к,

во,

ДС-i

к.

г В=, ВЭ2 „^

«i*.*» ЕА, ЕА, ВЭ, Юа

Э3, ?,

Супфконвейерная

к, к

ВА, ВА,

во,

WC

Э3, ?,

<1 [дс,

ВО,

ИС-i ?,

I ас 1

№,

ВО] I В02

НС ] I

Printed with FinePrint- purchase atwww.fineprint.com

й П

фуперконвейерная vs суперскалярной обработки

8

Ю 11

ЕК

EA

во

ЕК

ВК

ЕА

EO

ЕК

ЕК

ЕК

ЕК

EO

I/K

BO

Суперскалярная

ЕК

EK

EA

EO

ЕК

EA

EK

BO

I/K

ЕК

EA

EK

BA

EO

ЕК

BO

EK

EA

BO

I/K

к,

ВА,

ffi,

ИС,

ВА,

ВЭ-

к,

№■:

ffl,

BD,

ffi.

HC,

ВЭ-

HC . I

Супррскйлярная + суперконвейерная

к,

к,

ffi

ви,

BD

HC ,

ю.

1 "Ч ?1 Pi

ek2

Слайд 15

Суперконвейерные процессоры

Применение суперскалярного подхода -> увеличение производительности ЕМ от 1£ до 8 раз .

Суперскалярность + суперконвейеризация реализованы в ЦП фирмы /М D - Athlon и Duron . Данное совмещение имеет место не только в конвейере команд , го и в блоке обработки чисел с плавающей запятой .

Слайд 16

Printed with FinePrint- purchase atwww.fineprint.com

Особенности реализации суперскалярных процессоров

Проблемы , присущие конвейеру , в суперскалярных процессорах лишь усугубляются . Дополнительные неувязки :1. проблема последовательности поступления команд на исполнение и 2 проблема последовательности завершения команд .

1. Очередность вьщачи декодированных команд на исполнительные блоки отличается от последовательности предписанной программой -неупорядоченная выдача команд (out-of-orderissue ),

Упорядоченная выдача команд (h -orderissue) - команды покидают ступени , предшествующие ступени исполнения в порядке , определённом программой .2. В обоих случаях завершение команд обычно не упорядочено (out-of-order completion). Упорядоченное завершение - знач . реже ^ v

Особенности реализации суперскалярных процессоров

Out-of-ordercompletion , пример :

MULR1,R2,R3 ADDR4,R5,R6

Конфликта го данным нет. hb даже при поступлении в таком порядке на исполнение - команда MUL будет завершена позже , чем АГХ> (требуется больше циклов ).

Взаимозависимость команд - серьёзная проблема .

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

ADDR1,R2,R3 SUBR4, R5,R6

CitSid


Бели в ЦП только одно АЛУ - одновременное выполнение данных команд невозможно .

Printed with FinePrint- purchase atwww.fineprint.com

Стратегии вьщачи и завершения команд

Г(эи паралл . выполнении нескольких команд ф должен знать , в какой очерёдности ем/ следует :

-выбирать команды из памяти

-выполнять команды

-позволять командам менять содержимое per. и памяти .

Суперскал . Ц1 должен уметь варьировать все указанные виды зависимостей , с тем , чтобы результат 6>1Л в соотв . с программой . Три стратегии вьщачи и завершения команд :

  • упорядоченная выдача и упорядоченное завершение

  • упорядоченная вьщача и неупорядоченное завершение

  • неупорядоченная вьщача и неупорядоченное завершение .Пример : 1_П с двумя конвейерами , три <Ш и два блока записирезультата . Команды : D- требует два цикла Ц1 , Б и Н -конфликт за обладание одним <Ш, Б зависит от результата 14,Б и Б конфликтуют за обладание одним и тем же <Ш .

Стратегии вьщачи и завершения команд

Упорядоченная выдача и упорядоченное завершение .

Наиболее простая стратегия . Первые Pentium (сейчас практически не встречается ). Принцип - всё , что затрудняет завершение команды в одном конвейере , останавливает и другой конвейер , т.к. команды должны покидать конвейеры в порядке поступления .

Для принятия очередных команд , 1_П должен ждать пока освободятся обе части ступени Д<. Для упорядочивания завершения вьщача приостанавливается при конфликте за общий ®Ь или если блоку требуется более одного такта Ц1 .

Ц/КЛ

д<

1

й

В

2

В

И

й

12

3

В

И

й

4

И

В

й

2

5

Б

Б

6

Б

Б

В

И

7

Б

8

Б

Б

Слайд Т)

Printed with FinePrint- purchase atwww.fineprint.com

Стратегии вьщачи и завершения команд

Упорядоченная выдача и неупорядоченное завершение

ф позволяет «забегать » вперёд одним командам го отношению к другим , го должен гарантировать , что результаты не будут записаны в память и в регистры в неправильной последовательности .

Е завершена до окончания 11.11 и 13 завершается в одном такте . Выигрыш один такт.

Ц/КЛ

д<

1

й

В

2

В

К

И

12

3

И

И

В

2

4

Б

Б

й

И

В

5

Б

Б

И

6

Б

Б

7

Б

8

Слайд Ъ.

Стратегии вьщачи и завершения команд

Неупорядоченная выдача и неупорядоченное завершение

д<

Qq-o

И<

3>

1

й

12

2

В

Н

11Д

й

12

3

Б

Б

13,14

И

В

2

4

14Д5Д6

Б

В

а

в

5

Б

и

Б

6

Б

7

8

Для обеспечения возможности неупорядоченной вьщачи команд в конвейере д.б. максимально «развязаны » ступени Д< и 1/К - обеспечивается с помощью буфера (окно команд ). Каждая декодированная команда - сперва в буфер , Ц1 может выбирать и декодировать команды до полного заполнения буфера .

Вьщача команд из буфера - пэ мере готовности операндов . Вьщача Б возможна до Б, так как Б зависит от 14, а Б - нет . Разница между данной и предыдущей стратегиями - к выдаче готово больше команд -> меньше вероятность останова конвейера .

Printed with FinePrint- purchase atwww.fineprint.com

Слюй 22

Аппаратная поддержка суперскалярных операций

Две основные проблемы :

  • устранение зависимостей команд го данным (ЧГВ иЗГВ).

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

Возможные решения - программные и аппаратные . Аппаратные решения :

Для первой проблемы - переименование регистров

Для второй - переупорядочивание команд и откладывание

исполнения команд .

Слайд Ъ

Параллелизм

Уровни параллелизма :

Уровень заданий - несколько независимых заданий на разных процессорах (фактически без взаимодействия друг с другом ). Реализуется многопроцессорными К в многозадачном режиме .

Уровень программ - части одной задачи выполняются на множестве процессоров . Реализуется на параллельных К .

Уровень команд - выполнение команд делится на фазы , фазы нескольких последовательных команд могут быть перекрыты зз счёт конвейеризации . Уровень достижим на fM с одним процессором .

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

Printed with FinePrint- purchase atwww.fineprint.com

Параллелизм

Гранулярность - мера отношения объёма вычислений , выполняемых параллельно , к объёму коммуникаций .

Слепень гранулярности - от мелкозернистой (finegrained) и среднезернистой (mediumgrained) до крупнозернистой (coarsegrained).

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

Сред незернистый параллелизм - единицы распараллеливания -вызываемые процедуры (сотни команд ) Достигается программистом + компилятором .

Мелкозернистый параллелизм - каждое параллельное вычисление мало и элементарно (десятки команд ) Характерная особенность -приблизительное равенство затрат на вычисления и обмен информацией . Реализует распараллеливающий компилятор .

Параллелизм

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

Бели коммуникационная задержка велика (слабосвязанные системы ) - то лучше крупнозернистый параллелизм .

Уровень программ - два случая : а) независимые участки , которые можно выполнять параллельно , б) в пределах одного программного цикла , если итерации не зависят друг от друга .

Пример : for (I=0;I<N;I++) a(I) = B(I) + C(I);

Printed with FinePrint- purchase atwww.fineprint.com

Метрики параллельных

вычислении

Для вычисления эффективности параллельных вычислений используют специфическую систему метрик .

Профиль параллелизма программы . Число процессоров , участвующих в каждый момент времени t в параллельном выполнении программы - степень параллелизма D(t) (DOP, Degree of Parallelism). Графическое представление D(t) как функции времени - профиль параллелизма программы .

ва-ь |раллелизма


Слайд 27


2 4 6 8 Ю 12 М 16 IS 20 22 24 26 28 3)


DOP : :

Метрики параллельных

вычислении

Общий объём вычислительной работы W - площадь под кривой : W = XPtj (i=l ДО m - максимальное кип -вэ Ц1).

Средний параллелизм - А = W/ Для данного примера А =3772.

уррва-ь |раллелизма

DOP

2 4 6 8 Ю 12 14 16 18 20 22 24 26 28 3)

Printed with FinePrint- purchase atwww.fineprint.com

Метрики параллельных вычислений

0(п) - общее число операций , выполненных на п-процессорной системе .

Т(п) - время выполнения О(п) операций в виде квантов времени .

В общем случае Т(п)<О(п), если в единицу времени п-процессорами выполняется более чем одна команда , п>2.

Ускорение (speedup) за счёт параллелизма - отношение

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

S(n)=T(iyT(n), Как правило S(n) <n.

Эффективность (efficiency ) - ускорение на один процессор :

= T(l)/(n*T(n))-

Мефики параллельных вычислений

Часто при параллелизме -дополнительные издержки .

Избыточность (redundancy ) - отражает степень соответствия между программными и аппаратными издержками .

Коэффициент полезного использования (utilization) -U(n) = R(n)*E(n) = O(n)/(n*T(n)) .

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

Тогда : S(n)= S(5) = 8/2 =4

E(n)=E(5)=4/5=0,8 R(n)=l/0,8 -1 = 0,25; U(n)= U(5) = 0,25*0,8 = 0,2;

Слайд ЗЭ

Printed with FinePrint- purchase atwww.fineprint.com

Метрики параллельных вычислений

Собственное ускорение - результат реализации параллельного алгоритма на одном процессоре .

Беги ускорение Sp ) =n , то - алгоритм показывает линейное ускорение .

В исключительных ситуациях S(n)>n , тогда - суперлинейное ускорение . Пример :

Последовательный алгоритм выполняется в малом объёме памяти - частые подкачки и промахи гаи . В параллельной версии - локальность го данным не требует частых подкачек .

Виды издержек :

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

с*™»

Метрики параллельных вычислений

Издержки из-за дисбаланса загрузки процессоров - между точками синхронизации каждый из процессоров должен быть загружен одинаково - иначе простой . Ускорение ограничивается самым медленным из процессоров .

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

Качество параллельного выполнения программы -

объединение ускорения , эффективности и избыточности

Q(n) = S(n)*E(n) *R(n) Пример сл.ЗО: Q(n) = Q(5) = 4*0,8*0,25 = 0,8

Слайд 32

Printed with FinePrint- purchase atwww.fineprint.com

Закон Амдала

В идеале система из п процессоров может ускорить вычисления в п раз . В реальности - hs так . Главная причина полное распараллеливание невозможно .

Как правило в каждой программе часть кеда выполняется только последовательно и одним процессором .

Вопрос - как оценить реальное ускорение .

Джин Амдал (одт из разработчиков IBM360) в 1967 гаду предложил формулу , отражающую зависимость ускорения вычисления от числа процессоров и соотношения между последовательной и параллельной частями программы .

Пусть объём задачи остаётся постоянным . Последовательная доля вычислений - f,0 <f < 1 тогда параллельные части занимают 1-f.

Слайд 33

Закон Амдала

S = Ts/ Tp

Тр =f*Ts+((l -f)*Ts)/n Б результате - закон А|^щала :

S = Ts/Tp =n/(l+(n -l)*f) Беги взять предел гри п->оо, то

h S=l/f

Следствия - если в программе В/о последовательных операций , т.е. f=0,l , то сколько процессоров нэ использовать , ускорения более чем в Ю раз hs получить . И то Ю - это наилучший теоретический вариант без учёта издержек .

Слайд 34

Printed with FinePrint- purchase atwww.fineprint.com

Закон Гусгафсона

В 1980 -х годах , Густафсон решал на ВС из 1024 процессоров три задачи с Ё= от 0,4 д? Q8 и получил ускорения равные 1021,1020 и 1016. Согласно закону Амдала теоретическое ускорение ье должно было превысить 201.

Ответ скрывался в предпосылке , что объём вычислений остается таким ж. ЬЬ самом деле объём задачи при распараллеливании увеличивается , при этом f -сокращается .

Пример : Для решения дф .уравнений в частных производных для 1000 узловых точек f =0,1. При увеличении узлов до 100000 f снизится до 0,1%.

Слайд 35

Закон Гусгафсона

Было отмечено , что гри первом приближении объём работы , выполняемой параллельно увеличивается линейно с ростом числа процессоров в системе .

Потому рекомендуется использовать след . выражение :

S = Ts/Tp =n

Данное выражение получило название закон

масштабируемого ускорения или закон Густафсона .

Пэи этом закон Густафсона не противоречит закону Амдала . Сн лишь утилизирует дополнительную мощность , возникающую при увеличении числа процессоров .

Слюд 36

Printed with FinePrint- purchase atwww.fineprint.com

Структурная и функциональная организация ЗЁМ (ComputerOrganizationandDesign )

БГУИР кафедра

доцент Сам ал ь Дмитрий Иванович

т.284 -2L -61, dmitry_samal@mail.ru ,

a.5Q2 -5

Лекция 22 «Параллелизм »

2G07

План лекции

  1. Классификация Флинна .

  2. Организация памяти вычислительных систем .

  3. Модели архитектур совместно используемойпамяти .

  4. Модели архитектур распределённой памяти .

  5. Мультипроцессорная когерентность паи -памяти

Printed with FinePrint- purchase atwww.fineprint.com

Слайд 2

Архитектуры параллельных W\

Private memory

Shared memory \

Computer

Thread

CPU

Coprocessor

CPU

Main CPU

1

CPU

CPU

irrter^

Tightly coupled

Loosely coupled

(a)

(b)

(a)On -chip parallelism, (b) A coprocessor, (c) A multiprocessor, (d) A multicomputer, (e) A grid.

Слайд 3

Классификация параллельных ВС

В 1966 М.Фпинн предложил классификацию на основе понятия «потока » - последовательности элементов -команд или данных , обрабатываемых процессором .

В зависимости от количества потоков команд и потоков данных выделяется четыре класса архитектур :