.4.3Количественное представление производительности
.4.3.1Задержки, пропускная сопсобность и длина волны
Когда определена общая структура проекта важно определить количество защелок, стадий конвейера в кольцах и фрагментов конвейера, из которых состоит проект. В данном разделе будут даны количественные оценки для введения базиса для первоочередных решений в проекте. Обсуждение будет ограничиваться схемами с 4-фазным квитированием со связными данными и только одним действительным маркером в схеме. В разделе 4.3.4, завершающем данный раздел, будут даны комментарии по применению данных оценок к различным методам проектирования схем.
Производительность конвейера обычно опредляется 2 параметрами: задержками и пропускной способностью. Для асинхронных конвейеров так же важен 3й параметр, динамическая длина волны. В соотвествии с рисунком 4.4 и [153, 154, 155] эти параметры определяются следующим образом:
Latency: Задержка определяется как врем необходимое схеме для того чтобы отразть на выходе изменение входа. В то время как поток данных продвигается вперед, сигналы подтверждения продвигаются в обратном напрвлении. Поэтому определяются 2 праметра:
-
прямая задержка, Lf, это задржка между поялением новых данных на входе стадии (Data[i-1] or Req[i-1]) и появением готового згнаечния на ее выходе (Data[i] or Req[i]) предполагая что сигналы подтверждения выдаются сразу же после прибытия данных. Lf.V и Lf.E обозначают задрежки распространения соотвественно действительного и пустого маркеров. Предполагается чтоо эти задержки постоянны, т.е. что они не зависят от данных. [Поскольку пустой маркер на «обсчитывается» было бы очень желательно минимизировать Lf.E, в 4-фазном протоколе это может быть достигнуто элементами с несимметричными заджержками]
Dual-rail pipeline: Bun died-data pipeline:
Figure 4.34 Generic pipelines for definition of performance parameters.
-
обратная задержка, Lr, это задержка между получение подтверждения от последующей стадиеи (Ack[i+1]) до момента выдачи подтверждения предыдущей (Ack[i]) Исходя из предположения что сигнал запроса вырабатывается сразу же после получения подтверждения. Lr↓ и Lr↑ обозначают здержки распространения Ack↓ и Ack↑ соотвественно.
Period: Период, P, это задрежка между поступлением действительным маркеров в схему (чередующихзся с пустыми маркерами), т.е. полный цикл квитирования. Для 4-фазного протокола это включает: (1) продвижение действительного маркера, (2) распространение сигнала подтверждения, (3) продвижение пустого маркераи (4) распространение сигнала подтверждения. Таким образом нижняя граница периода:
P=Lf.V+Lr↑+Lf.E+Lr↓ (4.1)
Большинство схем, рассатриваемых в данной книге, симметричны, т.е. Lf.V = Lf.E и Lr↑ = Lr↓, и для этих схем выражение упрощается:
P=2Lf+2Lr (4.2)
Предположим что Lf.V > Lf.E и как будет показано в разделе 4.4.1 и далее в разделе 7.3, действиельная реализация защелок может привести к тому что период будет больше минимального значения, данного в выражении 4.1. В разделе 4.4.1 будут проанализированы конвейеры, чей период выражается:
P=2Lf.V+2Lr (4.3)
Throughput: Пропускная способность, T, число действиельных маркеров, проходящих через системы за единицу времени: T = 1/P
Dynamic wavelength: Динамическая длина волны, Wd, конвейера это число стадий конвейера чрез которые проходит маркер за период P:
Wd=P / Lf (4.4)
Explained differently: Wd это расстояние, измеряемое в стадиях конвейера между действиельными или пустыми маркерами, беспрепятсвенно проходящими через конвейер. Действительные маркеры можно представлять как гребень волны, а пустые как ее впадину. Если Lf.V ≠ Lf.E средняя прямая задержка, то необходимо испольовать выражение:
Lf = 1/2 (Lf.V+Lf.E).
Static spread: статическое рассеивание, S, это расстояние, измеряемое в стадиях конвейера, между дейстьвиельными (или пустыми) маркерами в полном конвейере (т.е. не содержащем пузырей). Иногда всесто S используется термин заполнение.
.4.3.2Длительность цикла в кольце
Праметры, опеределенные выше – это локальные параметры, характеризующие реализацию отдельных стадий конвейера. Когда несколько стадий конвейера объендиняются в кольцо используется пораметр:
Cycle time: Длительность цикла в кольце, TCycle, это время эа которое маркер проходит все конвейерные стадии в кольце. Для достижения максимальной производительности (т.е. минимальной дительности цикла), число стадий конвейера на один действиельный маркер должно соотвествовать динамической длине волны, при этом TCycle = P. Если число стадий меньше время циклда будет ограничиваться нехваткой пузырей, а если конвейер будет содержить больше стадий, то время будет ограничено временем распростарнения маркров через все стадии. В [153, 154, 155] эти режимы функционирования называются «bubble limited» и «data limited» соотвественно.
Длительность цикла N-стадийногог кольца в котором по одному действительному и пустому маркеру и N - 2 пузырей можно рассчитать по одному из двух выражений представлненых ниже и на рисунке 4.5:
Figure 4.35 Cycle time of a ling as a function of the number of pipeline stages in it
При N ≥ Wd длительность цикла ограничена прямой задержкой N стадий конвейера:
TCycle(DataLimited)=N x L (4.5)f
Если Lf.V ≠ Lf.E , то Lf=max{Lf.V, Lf.E}
При. N ≤ Wd, длительность цикла ограничивается обратной задержкой. В конвейере с N стадиями с одним действиельным и одним пустым маркерами и N - 2 пузырями, и поскольку цикл включает 2N перемещений данных (N действиельных и N пустых), длительность цикла считается:
TCycle(BubbleLimited)=2N/(N-2) • Lr (4.6)
Если Lr↑ ≠ Lr↓, то Lr=1/2 • (Lr↑ + Lr↓}
Для завершения обзора необходимо упомянуть о третьем возможном режиме работы называемом «control limited», используемом в некоторых схемах [153, 154, 155]. Однако этот режим не присутствует в схемах, обсуждаемых в данной книге.
Так же разделы, посвященные анализу производжительности, присутствуют в [31, 90, 91, 37] и в некоторых источниках используется термин «slack matching» (относящийся к балнсированию между задержками прямого распространения маркеров и обратного пузырей).
.4.3.3Пример 3: производительность 3-стадийного кольца
Количесветнная оценка будет проиллюстрирована на маленьком примере: 3-стадийное кольцо, составленое из идентичных 4-фазных стадий конвейера со связными данными и реализованое как показано на рисунке 4.6(a). Канал данных состоит из защелок и комбинационной схемы, CL. Управляющая часть состоит из C-элементов и инверторов, управляющих защелками и элементами задержек соотвествующих задержкам комбинационной схемы. Без комбинационной схемы и элементов задержек это будет схема простого FIFO. Для наглядности компонентам проставлены в соотвествие следующие задержки: C-элемент: tc = 2 ns, инфертор: ti = 1 ns, и элемент задержки: td = 3 ns.
На рисунке 4.6(b) показаны пути сигналов в соотвествии с прямыми и обратными задержками, а в таблице 4.1 приведен список выражений и значений этих параметров. По этим двум рисункам можно вычислить период и динмичсекую длину волны. Для FIFO, Wd = 5.0 стадий, а для конвейера, Wd = 3.2. Кольцо может соджержать только целое число стадий и если Wd не целое то необходимо проанализировать кольцо на предмет ↓Wd↓ и ↑Wd↑ и определить что дает меньшую длительность цикла. Таблица 4.1 показывает результаты анализа включая длительность циклов для колец с числом стадий от 3 до 6.
Pipeline stage [i]
Figure 4.36 A simple 4-phase bundled-data pipeline stage, and an illustration of its forward and reverse latency signal paths.
Table 4.1 Performance of different simple ring configurations
|
FIFO
|
|
Pipeline
|
|
Parameter
|
Expression
|
Value
|
Expression
|
Value
|
Lr
|
tC + ti
|
3ns
|
tC + ti
|
3ns
|
Lf
|
tC
|
2ns
|
tC + td
|
5ns
|
P=2Lf+2Lr
|
4tC + 2ti
|
10 ns
|
4tC + 2ti + 2td
|
16 ns
|
Wd
|
|
5 stages
|
|
3.2 stages
|
TCycle (3 stages)
|
6Lr
|
18 ns
|
6Lr
|
18 ns
|
TCycle (4 stages)
|
4Lr
|
12 ns
|
4Lf
|
20 ns
|
TCycle (5 stages)
|
3.3 Lr = 5Lf
|
10 ns
|
5Lf
|
25 ns
|
TCycle (6 stages)
|
6Lf
|
12 ns
|
6Lf
|
30 ns
|
.4.3.4Заключительные примечания
Рассмотренные выхе примеры основаны на ряде упрощающих предположений: (1) рассматривались только кольца и конвейеры из одинковых конвейерных сегментов, (2) предполагалось что функциональные блоки имеют симметричные задержки (т.е. схемы, в которых Lf.V = Lf.E), (3) предполагалось что финкциональные блоки имеют постоянные задержки (т.е. игнорируют зависимость здержек от данных), (4) предполагается наличие только одного действиетльного маркера в кольце и (5) анализ представлен только для 4-фазных схем со связными данными.
Для 4-фазных двухпроводных реализаций (где запрос замешан в данных), приведенные выше, праметры производительности применимы без изменения. Для 2-фазного протоколанеобходимы некоторые изменения в выражениях - поскольку в таких схемах нет пустых маркеров, то есть значения только для прямой Lf и обратной Lr задержек. Так же в них проще рассчитывать состояния на предмет длительности цикла для колец с большим количеством маркеров.
Большую сложность предстваяют задержки, зависимые от данных, и неидентичные стадии конвейера. Несмотря на недостаточность вышеприведенных параметров, они тем не менее дают бызовые предстваления о производительности для принятия первичных решений по проектам.
|