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

If: Instruction fetch

Id: Instruction decode/ register file read

EX: Execute/ address calculation

MEM: Memory access WB: Wi'fte bach

: /anil

I 1Ш2

MUttM)

"9lst""' Read data 1

Registers

r |SU'

..-'.■■ik-Hatn

IT

Similarities with Single -cycleCPU datapath ? Multi -cycleCPU datapath ?

17

Execution in a Pipelined Datapath

oci

OC2

OC3

0C5

COS

CC7

CC8

CCP

JEL

Ы

T)

IM

JEL

Ы

Г)

Reg

TvRvT

IM

Eeg

to

M

IM

to

M

IM

Reg

to

M

Eeg

IM

Reg

Printed with FinePrint- purchase atwww.fineprint.com

йд 18

OCl

Jipen

! ось !

Execution in a Pipelined Datapath

CG4

COS

CC7


OC2

CC3


ccs

CC9

Ы

T)

Reg

TvRvT

IM

Keg

Ы

Г)

Reg

TvRvT

IM

Reg

M

IM

Reg

м

IM

M

Reg

IM

Reg

steady state

19

Mixed Instructions in the Pipeline

ca

ссз

CG4

ccs

CC6

M

IM

Reg

acid

м

Reg

Printed with FinePhnt- purchase atwww.fineprint.com

йд 3}

PipelinePrinciples

Вое команды , которые выполняются конвейером должны иметь <щш стадии , идущие в оцном порядке

  • однако , аШ не проходит через стадию

  • sv - не имеет стадии \ЛВ

Вое промежуточные значения должны быть «защёлкнуты » после каждого цикла .

There is no functional block reuse

F

D

Ж

Ы

Reg

Ш

г

Keg

Issues With Pipelining

What happens when an instruction needs the result of anotherinstruction?

What happens on a branch?

Printed with FinePrint- purchase atwww.fineprint.com

йд 21

йд 22

Конфликты в конвейере команд

Конфликтные ситуации - риск (hazard):

Структурный риск - попытка одновременного обращения нескольких команд к одному и тому >ге ресурсу ЕМ

Риск го данным - взаимосвязь команд го данным

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

Структурный риск - чаще всего обращение к памяти . Три этапа (ЕК , ВО и?)- связаны с обращением к памяти . Частичное решение проблемы - модульная память + гаи . Разделённый гаи выгоднее с этой точки зрения . В целом структурный риск не сильно влияет на производительность конвейера .

Смйд 23

Конфликты в конвейере команд

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

Чтение после записи (ЧГВ ) - команда j читает х до того , как i успела записать новое значение х, т.е.] получит старое значение х.

Запись после чтения (ЧГВ) - команда j записывает новое значение х до того , как i успела считать старое значение х.

Запись после записи (ЗГВ ) - команда j записывает новое значение х прежде , чач команда i успела записать своё значение х. В результате х содержит значение после команды i хотя го алгоритму должна содержать значение после команды j.

Слайд 24

Printed with FinePrint- purchase atwww.fineprint.com

Конфликты в конвейере команд

Запись

Чтение

Чтеьие

i

Запись

Запись

j

i

Запись

ЧПЗ - наиболее частый вид конфликтов , т.к. операция чтения (ЕЮ ) предшествует операции записи (У) По этой причине конфликты типа ЗГН большой проблемы нэ представляют . Сложности только если структура конвейера допускает запись прежде чтения или если команды обрабатываются нэ в последовательности , указанной в программе .

й> ъ

Конфликты в конвейере команд

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

Два аспекта - обнаружение конфликта и устранение .

Обнаружение - невыполнение хотя 6>i одного ик трёх условий Бер нетей на (Bernstein 'sConditions) :

Для ЧПЗ : O(i) n IQ)= 0

Для ЗГН : I(i) n O(j)= 0 Для трех команд - 9 уравнений ,

Для ЗПЗ : O(i) г, О©= 0 для 4-х - 18( го три на каждую пару )

О(к) - множество ячеек изменяемых к, 1(1) - множество ячеек читаемых I.

Printed with FinePrint- purchase atwww.fineprint.com

Конфликты в конвейере команд

Устранение конфликтов - программно и аппаратно :

Программно - компиляция оптимизирующим компилятором (в спорных случаях ставится NOP).

Аппаратно - пузырёк и ускоренное продвижение информации (Forwarding).

Пузырёк - приостановка на несколько тактов команды j, чтобы команда i успела завершиться или пройти конфликтную ступень .

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

Forwarding - обычно буферный регистр между двумя ступенями конвейера , передача информации возможна только между соседними ступенями конвейера . При forwarding , операнд уш вычисленный предыдущей командой может быть получен непосредственно из соотв . буфера , минуя все промежуточные ступени конвейера -> дол . тракты данных (опережения , перехода )f соответствующее усложнение W.

Смйд 27