Научная статья на тему 'ОПТИМАЛЬНАЯ ПО ПРОИЗВОДИТЕЛЬНОСТИ ГЛУБИНА ПРОГРАММНОГО КОНВЕЙЕРА ДЛЯ ПРИЛОЖЕНИЙ С ПРОГРАММНЫМИ ПЕРЕХОДАМИ И ЗАВИСИМОСТЬЮ ПО ДАННЫМ'

ОПТИМАЛЬНАЯ ПО ПРОИЗВОДИТЕЛЬНОСТИ ГЛУБИНА ПРОГРАММНОГО КОНВЕЙЕРА ДЛЯ ПРИЛОЖЕНИЙ С ПРОГРАММНЫМИ ПЕРЕХОДАМИ И ЗАВИСИМОСТЬЮ ПО ДАННЫМ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
24
6
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПРОИЗВОДИТЕЛЬНОСТЬ ПРОЦЕССОРА / ГЛУБИНА КОНВЕЙЕРА

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Беляев Андрей Александрович

Получено уточненное выражение для оптимальной глубины программного конвейера на основе рекуррентной формулы, определяющей производительность процессора при реализации приложений с наличием программных переходов и внутренних зависимостей по данным как функцию глубины (числа фаз) его конвейера.A more exact value for the optimal depth of the pipeline based on the recurrent formula, determining the processor performance for implementation of the applications involving branches and the data dependencies in execution trace as a function of depth (number of phases) of its pipeline, has been obtained.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Беляев Андрей Александрович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «ОПТИМАЛЬНАЯ ПО ПРОИЗВОДИТЕЛЬНОСТИ ГЛУБИНА ПРОГРАММНОГО КОНВЕЙЕРА ДЛЯ ПРИЛОЖЕНИЙ С ПРОГРАММНЫМИ ПЕРЕХОДАМИ И ЗАВИСИМОСТЬЮ ПО ДАННЫМ»

МИКРОПРОЦЕССОРНАЯ ТЕХНИКА

УДК 621.382.8

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

и зависимостью по данным

А.А.Беляев

ГУП НПЦ «ЭЛВИС» (г. Москва)

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

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

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

-1 г

БЖ-1 = 1 + ръ N-1) + £ Е Ри} N -* - Л*з -1))+ , (1)

г =1 ,=0

где оператор (х)+ (в данном случае: х = ЫЕ -1 - -1)) определятся как

10, если х < 0,

(х)+Ч , ,

[х, если х > 0;

N и Ые - число фаз соответственно установочной и исполнительной части конвейера; рь - относительная частота исполненных инструкций программных переходов, т.е. отношение числа таких инструкций к общему числу исполняемых инструкций; р, - относительная частота вычислительных инструкций, зависимых по данным с расстоянием зависимости г и числом программных переходов между ними Расстоянием зависимости по данным между двумя инструкциями (разрешающей и зависимой) называется число тактов, проходящих между выборками или число инструкций, расположенных между ними плюс одна.

Emma P.G., Davidson E.S. Characterization of Branch and Data Dependencies in Programs for Evaluating Pipeline Performance // IEEE Trans. on Comp. - Vol. 36. - N 7. - P. 859-875, July 1987.

© A.A.EejraeB, 2010

Зависимость BWE\(n) от параметра n, характеризующего глубину конвейериза-

ции, представлена в виде приближенной рекуррентной формулы:

BW-1 (n) = 1 + pb (nS -1) +

nE -1 kE -1

des s (k),

(2)

где Е и £ - взаимно простые натуральные числа (одно из которых или оба могут быть равны единице), отношение Е/£ равно отношению числа фаз исполнительной (пЕ) и установочной (п£) части конвейера; 5 (к) - компонента, характеризующая торможение конвейера вследствие зависимостей по данным при глубине конвейеризации к:

kE-1

De,s (k) = Z Z Pui (kE - i - j(kS -1))+

(3)

i=1 j =0

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

случае, при Е < £ величина 8 (п) определяется только параметрами рг>0, и формула

(3) приобретает вид:

kE-1

De,s(k) =ZPo(kE-i) .

(4)

i=1

Если исполнительная часть конвейера состоит всего из одной фазы к = Е = 1, то торможений конвейера не возникает: БЕ 8 (к) = 0. При кЕ = 2 имеем БЕ 8 (к) = р1 0.

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

4Ei s (n) = BWe, s

n(S + E)(y +1) n(S + E) + у

= |1 + pb (nS -1) +

nE -1 kE -1

Dess (k)

n(S + E)(y +1) n(S + E) + у

(5)

где у = C / L, C - суммарная комбинационная задержка процессора (т.е. полная комбинационная задержка процессора при условии удаления из него всех триггеров); L - общие временные затраты на срабатывание триггера (включая setup time, hold time, clock skew, jitter и т.д.).

Путем приравнивания нулю производной ^ s (n) по n определяется оптимальное значение для глубины конвейеризации nopt:

nopt =

V Уа E, S(k),

где

а

E, S

(k) =

1

S + E

(kE -1)(1 - рь ) - Dess (k) (kE - 1)pbS + EDes (k)

(6)

(7)

Приведенное решение получено в работе Эмма и Дэвидсона на основе приближенной рекуррентной формулы (2), которая соблюдается точно, когда все параметры р, (за исключениемр1>0), равны нулю.

А.А.Беляев

Цель настоящей работы - получение более точной формулы для оптимального значения глубины конвейеризации пор1 на основе более точного учета статистических параметров программной трассы.

Воспользуемся уточненной рекуррентной формулой дляBW—S(n) :

kE—1

BW~]S (n) = 1 + pb (nS -1) + (n - k)E £ plfl + De,s (k)

(8)

i=i

С учетом формулы (8) выражение для функции ^^ (п) можно записать в виде:

f кЕ—1 Л

^E,S (n) = 1 + Pb (nS — 1) + (n — к)E £ Pi,0 + De,s (k) V i=1

n(S + E )(у +1) n(S + E) + у

или после разделения переменных:

S (n) =■

у + 1

a

b

kE—1

(PbS + E £ Pi,0)(a — b)

n + a n + b

(9)

где

a =

i=1

kE—1

1 — Pb — kE £ Pi,0 + de,s (k)

_i=1_

kE—1 :

PbS + E £Pi,0 i=1

b =

у

S + E

После приравнивания нулю производной функции (9) по п решение принимает вид

парг = фа!Е,5 (к) , (10)

но в отличие от формулы (6) функция а!Е 8 (к) имеет вид

aE ,s (k) =

1

S + E

kE—1

1 — Pb — kE £ Pi,0 + de , S (k)

_i=1_

kE—1

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

PbS + E £ Pi,0 i=1

Теоретические выкладки были проверены на примере двух приложений: программы вычисления собственных значений матрицы - Eigenvalue (EIGEN) и программы, реализующей метод исключения Гаусса - Gaussian elimination method (GAUSS).

Для данных приложений по их программным трассам были определены статистические параметрыръ иpi:o, значения которых приведены в табл.1.

Таблица 1

Статистические параметры трассы для приложений EIGEN и GAUSS

Приложения Ръ Р1,0 Р2,0 Р3,0 Р4,0 Р5,0 Р6,0 Р7,0

EIGEN 0,08 0,521 0,0186 0,0061 0,0068 0,0014 0,00024 0,00000

GAUSS 0,12 0,566 0,0554 0,0004 0,00035 0,0033 0,00000 0,00025

В табл.2 приведены значения aES (к) и <x'E S (к), вычисленные при E = S = 1 и

к = 2, 3, 4, 5, 6, 7, а также расхождение в определении оптимальной глубины программного конвейера

д=n°ptгnopt юо%,

П opt

позволяющее оценить повышение точности вычислений при переходе от формулы (6) к формуле (10). Вычисления произведены в программе MATLAB с точностью до четырех знаков после запятой (на практике достаточно и гораздо меньшей точности).

Таблица 2

Погрешность в определении nopt

к EIGEN GAUSS

aE,S (к) a e,s (к) А, % a E,S (к) a e,s (к) А, %

2 0,3319 0,3319 0 0,2289 0,2289 0

3 0,3193 0,2920 4,5719 0,2006 0,1370 20,9810

4 0,3124 0,2745 6,6879 0,1915 0,1362 18,5949

5 0,3068 0,2500 10,7779 0,1870 0,1351 17,6190

6 0,3032 0,2440 11,4737 0,1837 0,1235 21,9557

7 0,3007 0,2427 11,2960 0,1815 0,1235 21,2270

Полученное расхождение в некоторых случаях превышает 10% для приложения EIGEN и 20% для приложения GAUSS, что является весьма существенным при проектировании оптимального конвейера для процессора. Уточненная формула всегда дает существенно меньшую оценку для оптимальной глубины конвейера.

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

Статья поступила после доработки 24 июня 2009г.

Беляев Андрей Александрович - начальник лаборатории ГУП НПЦ «ЭЛВИС» (г. Москва). Область научных интересов: микроэлектроника, сигнальные процессоры, многоядерные системы-на-кристалле, цифровая обработка сигналов, сжатие изображений. E-mail: bel@elvees.com

Информация для читателей журнала «Известия вузов. Электроника»

Подписаться на печатную версию журнала можно по прямой подписке в Агентстве «Роспечать» (см. купон на с. 98). Ч_,

i Надоели баннеры? Вы всегда можете отключить рекламу.