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

1. Понятие конвейера

Printed with FinePrint- purchase atwww.fineprint.com

Смйд 2

Конвейеризация вычислений

1П.Э-

ОБ

1

2

■--*

ОБЭ

Ь

практике : равные задержки для всех ЗБ j редки

1 1 1 1

1 1 Pf

р.

р.

11 11 mi

м i 4

р.

2

р.

11 i i

i i i 4

р.

ОБз

1 i i i i "'"""'-ff.w

В архитектуре ЕМ множество объектов , использующих

конвейеризацию (например , АПУ , память ) Наиболее ощутимый результат - конвейеризация этапов машинного цикла .

По способу синхронизации работы ступеней конвейера : синхронные и асинхронные .

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

Асинхронные - связь м/у ступенями слабее , тракты длиннее . СлЫ^ 3 Пример - систолические массивы .

Пять ступеней

Пять ступеней выполнения (для некоторых команд требуется меньше )

  • F_: Instruction Fetch/ Выборка команды

  • D : Instruction Decode (& register fetch & add PC + immed УДекодирование команды

  • Б(_: Execute/ Выполнение команды

: Memoryaccess/ Работа с памятью

- \ЛБ_: Write -Back intoregisters/ Запись в регистр результатаIF ! ID ; EX ■ Mm i W3

Icache

Decode,; R-Ftead"

AJJ

update

Dcache

R-Wrire

Total

R-type

S

37

U>ad

S

47

Store

39

Printed with FinePrint- purchase atwww.fineprint.com

3D

йд 4

Partitioning the Single -CycleDesign

Write Read

register data 2

Write

data

Слайд 5

Добавление промежуточных

элементов

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

Дополнительные регистры необходимы если :

  • Вычисления производятся в одном тактовомцикле , а используются в другом

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

Printed with FinePrint- purchase atwww.fineprint.com

Слайд 6

PC

IF

ID


Add



Registers

Read


re9ister1 ReadRead data 1

register 2

Write Read

register data 2

Write

data


Where to add registers (more or

f


Read address

fnstruclion

Instruction

Reg Write] 16


memory

Метрики эффективности конвейеров

Три метрики : ускорение f эффективность и производительность .

Ускорение - время работы без конвейера к времени с наличием конвейера . N - количество входных задач , К - количество ступеней , Тк - тактовый период .

Т^ =(K+(N -1)JT K

Без конвейера - Т^ =NKT K

Ускорение - S = NKT K/(K+(N -1)JT к =NK/(K+(N -1)) При N->oo ускорение стремится к величине К. Эффективность - доля ускорения на одну ступень конвейера

Е = s/K= N/(K+(N -1))

Пропускная способность ("производительность ) - эффективность на тактовый период :

Р = N/TK(K+(N -1))

При N->oo эффективность -> 1, производительность -> к частоте тактирования конвейера .

Printed with FinePrint- purchase atwww.fineprint.com

йд 7

Нелинейные конвейеры

в<

с

<ГЕ

вьк

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

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

X

X I 1

1 |x

<is

X

X

X

X

X

X

X

X

Y

Y

Y

Y

Y

Y

X

Y

X

Y

X

X

X

Y

X

Y

X

Y

X

Y

Слайд 9

Конвейер команд

Ступени конвейера :

  • F_: Instruction Fetch/ Выборка команды

  • D : Instruction Decode (& register fetch & add PC+ immed УДекодирование команды

  • EX_: Execute/ Выполнение команды

: Memory access/ Работа с памятью

- V\B_: Write -Back in to registers/ Запись в регистр результата

V\B

ВХ

д<

во

Вьборка гаманды

О

Формирое -е адреса следующей гамачды

Декодирование гаманды

О

Вычисление

Адрессе

сперандсе

Вьборка операндов

Исполйениа

14=1


ксмач.

О

сйПИСЬ

результата

Printed with FinePrint- purchase atwww.fineprint.com

Слайд 10

Конвейер команд

1. Выборка команды (0<)

2 Декодирование команды (Д<)

  1. Вычисление адресов операндов

  2. Выборка операндов (BD)

5. Исполнение команды (И<)6l Запись результата (3?)

Время выполнения : без конвейера - 9*6 = 54 с конвейером - 14 Выигрыш -40/54 = 0,74

Команда 1 Команда 2 Команда 3 Команда 4 Команда 5 Команда б Команда 7 Команда 8 Команда 9

ВХ

вх

ва

вх

вэ

ВА

Ж

вх

вэ

вэ

ВА

вэ

8

ВЭ

ВА

В<

9

ВЭ

ИХ

ВЭ

ВА

11

и<

вэ

ВА

И< ■

ВЭ

и<

Смай 11

MultipleCycleCPU

<3f^z

Prjwng^onLl/ \.PCSjj;ce

=^^/OultLtlnw^

I i-.ftli^ffiH-i |3й J|

*

\Mite

Memory

IrfitrjCtOTi

|ai-2e|

InStFLKTbon

ЕЙ 21]

Instn/ctiofi

:15 0| Intfructinn register

l-z.ijriicn 115 t>]

Memofv dad

refllstei

l«buCfic>rt |й П|

Juinp

ALUOl

Printed with FinePrint- purchase atwww.fineprint.com

^ 12

Instruction Latencies

Single -CydeCPU

Load | Ifetch |R&g/Dec| Exec | Mm | Wr \

MultipleCycleCPU

Cydel I Cyde2 I Cyde3 I Cyde4 I Cyde5

Load f

Ifetch

/Dec |

Exec

I

Mm

I

Wr

1

Add [

Ifetch

/Dec |

Exec

|

Wr

|

Instruction Latencies and Throughput

•Single -CydeCPU

Load | Ifetdi p^ /Dec | Exec | Iv&n |

•MultipleCycleCPU

Cyclel Cycle2 Cycle3 Cycle4 Cycle5

Load | Ifetdi |рщ /Dec | Ekec

• Pipelined CPU

Cycle! cycle2 Cycle3 Cycle4 CycleS Cycle6 Cycle7 CycleS

Load | Ifetdi fc% /Dec]| Exec Ц Mm ||

Load | Ifetch p^ ЮесЦ Ехес

Load | Ifetdi peg /Dec || Exec | Iv&n

Load | Ifetch |feeg /Dec | Exec | bfai \ tt

Printed with FinePrint- purchase atwww.fineprint.com

Cmk> 13

Сшк> И

PipeliningAdvantages

Выше максимальная производительность Лучшее использование ресурсов CFU

Но, более сложный тракт данных {datapath )f более сложное управление (?)

APipelined Datapath

IF: Instructionfetch

ID: Instruction decode and register fetch EX: Execution and effective address calculation MEM: Memory access WB: Write back

Printed with FinePrint- purchase atwww.fineprint.com

Слайд 15

Слайд 16

Pipelined Datapath