Детальный проект конвейерного RISC процессора (Глава 4 "Основы конвейеризации"), страница 23

(GPRw.kTπ= 0) \/ ((Cad.kTπ)=/=r),

или что этап kобрабатывает фиктивную команду, т.е., full.kT = 0. Таким образом, сигнал hit.kTнеактивен и рассуждения теоремы 4.7 могут быть повторены.

Если регистр GPR[r] обновляется командой предшествующей Ii, мы определим через last(i,r) индекс последней команды перед Ii , которая обновляет регистр GPR[r], т.е.,

last(i,r) = max{j < i | Ijобновляющая регистр GPR[r]}.

Команда I = Ilast(i, r)является также все еще обрабатываемой, или она уже покинула конвейер.

Если команда I все еще выполняется, там тогда существует этап l >= 2 с

In(l,T) = last(i,r).

Из леммы 4.10 и определения last(i, r) следует, что

hitA.lTπ = 1,

и что любой этап между этапами 1 и l пуст или обрабатывает команду с адресом назначения отличным от r. Из конструкции схемы Forwследует, что

topA.kTπ= 1.

Так как  dhazTπ = 0, сигнал опасности операнда Aтакже неактивен, dhazATπ = 0. По определению этого сигнала и по теореме моделирования для l >= 2 следует, что

v.lTπ = 1 = v.llast(i, r) .

Тогда декодирующий этап k = 1 читает соответствующий операнд Aкоманды Ii ,

AinTn    =  C'.1Tn                        ; конструкция механизма пересылки

=   GPR[r]last(i, r)       ; теорема для этапов со 2 по 4

=   GPR[r]i-1                ; определение last(i, r),


Таблица 4.17 Стоимость ядра последовательной DLX и конвейерной конструкции DLX

Конструкция

DP

CON

DLX

последовательная

10846

1105

11951

основная конвейерная

12198

756

12954

конвейер + пересылка

12998

805

13803

конвейер + блокировка

13010

830

13840


QED


и требование следует для этапа k = 1.

Если команда I уже выполнилась до завершения, тогда не существует этапа l >= 2 с

Iπ(l,T) = last(i,r).

С рассуждениями подобными предыдущему случаю следует, что AinTπ = GPR[r]Tπ= GPR[r]last(i, r) = GPR[r]i-1 ,

и таким образом, I получает соответствующий операнд A.


4.6    Анализ Стоимости/производительности

В предыдущих разделах мы описали несколько вариантов ядра конвейерной DLX и получили формулы для их стоимости и времени цикла. В последующем мы оценим последовательную и конвейерную конструкцию DLX, основываясь на стоимости, времени цикла и отношении стоимость/производительность.  SPEC integer benchmark suite SPECint92 [Hil95, Sta] послужит в качестве нагрузки.

4.6.1    Аппаратная стоимость и время цикла

Таблица 4.17 перечисляет стоимость различных конструкций DLX. По сравнению с последовательной конструкцией главы 3, основной конвейер увеличивает полный счетчик вентилей на 8%, а пересылка результата добавляет еще 7%. Однако, механизм аппаратной взаимной блокировки, не имеет фактически никакого воздействия на стоимость. Таким образом, конструкция DLXπ с аппаратной взаимной блокировкой требует аппаратных средств только на 16% больше, чем последовательная конструкция.

Обратите внимание, что конвейеризация увеличивает стоимость только путей данных; управление становится даже дешевле. Это верно также для конвейерной конструкции с пересылкой и блокировкой, несмотря на более сложный механизм пересылки.


Таблица 4.18 Времена циклов ядра DLX для последовательной и конвейерной конструкции. Время цикла CON является максимальным из двух перечисленных времен.


Конструкция

A/B

PC

EX

IF,M

CON

последовательная

27

70

70

18 + dmem

40

39 + dmstat

основная конвейерная

27

54

66

16 + dmem

32

41 +dmstat

конвейер + отправка

72

93a

66

16 + dmem

34

41 + dmstat

конвейер + блокировка

72

93a

66

16 + dmem

57

43 + dmstat