- •Диспетчеризация в конвейерных структурах
- •1.1. Общие сведения.
- •1.1.1. Принципы разбиения вычислительного процесса на ступени
- •1.1.2. Таблицы занятости.
- •Логика 1
- •1.1.3. Латентность
- •1.1.4. Диаграмма состояний
- •1.1.5. Диаграмма состояний
- •В - первая инициация
- •1.1.6. Модифицированная диаграмма состояний
- •1.1.7. Анализ модифицированной диаграммы состояний
- •Начальное состояние
- •Цикл латентностей - периодически повторяющаяся последовательность латентностей.
1.1.4. Диаграмма состояний
Цель стратегии управления или стратегии диспетчеризации состоит в том, чтобы определить, когда следует осуществлять новые инициации. Этого нельзя сделать без знания действий конвейера на любом временном шаге.
Однако для стратегии диспетчеризации ценность представляет не сама схема фактического использования ступеней, а описание того, приведет ли к столкновению с прежними инициациями новая инициация, осуществляемая в некоторый момент времени.
Одним из методов выявления и представления такой информации является метод, основанный на диаграмме состояний, в которой текущей конфигурации конвейера для каждого момента времени соответствует одно из состояний.
Дуги, идущие от одного состояния к последующим, показывают, в каком из новых состояний конвейер может находиться в следующий момент времени. Все возможные последовательности латентностей соответствуют путям на такой диаграмме. Анализируя все пути, особенно те, которые образуют замкнутые циклы, можно определить пути с минимальной средней латентностью. Тогда последовательности латентностей, которым эти пути соответствуют, являются оптимальными. В каждом состоянии закодирована информация, называемая вектором состояний, Такой вектор являетсяd-разрядной двоичной последовательностью, гдеd-время вычисления для таблицы занятости. При этомd-разрядов нумеруются от 0 доd-1 слева направо; ноль вi-ой позиции означает, что у инициации начатой черезi-единиц времени после текущего момента не будет столкновений ни с одной из незавершенных в текущий момент инициаций, а 1 означает, что столкновения будут и поэтому инициация должна быть запрещена. В векторе столкновений для каждого периода времени учитывается, будет ли новая инициация в этом периоде.
Примеры латентностей
Без столкновений
Время
-
0
1
2
3
4
5
6
Ступень 1
А1
А2
А1
А2
Ступень 2
А1
А2
А1
А2
А1
А2
Ступень 3
А1
А2
А1
А1
А, А латентность = 1
Время
-
0
1
2
3
4
5
6
7
8
9
10
Ступень 1
В1
В1
В2
В2
В1
В1
В2
Ступень 2
В1
В1
В2
В2
Ступень 3
В1
В1
В2
В2
В,В латентность = 4
Время
-
0
1
2
3
4
5
6
7
Ступень 1
В
В
А
А
В
В
Ступень 2
А
В
А
В
А
Ступень 3
А
А
В
В
А
А,В латентность = 0
Со столкновениями (показаны кружками)
Время
-
Ступень
0
1
2
3
4
5
6
7
8
Ступень 1
А1
А2
Ступень 2
А1
А2
Ступень 3
А1
А2
А1
А2
А, А латентность = 2
Время
-
Ступень
0
1
2
3
4
5
6
7
8
9
1
В1
В1
В2
В2
В1
В1
В2
В2
2
В1
В2
3
В1
В2
В, В латентность = 2
Время
-
Ступени
0
1
2
3
4
5
6
7
8
1
В
А
В
В
2
А
3
А
А
В
А,В латентность = 1
Рис. 4. Примеры латентностей
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
В1 |
В1 |
|
В2 |
В2 |
|
В1 |
В1 |
|
В2 |
В2 |
В3 |
В3 |
|
В4 |
В4 |
|
В3 |
|
|
В1 |
|
В1 |
В2 |
|
В2 |
|
|
|
|
|
В3 |
|
В3 |
В4 |
|
|
|
|
В1 |
|
В1 |
В2 |
|
В2 |
|
|
|
|
В3 |
|
В3 |
В4 |
Средняя латентность=5,5
Последовательность латентностей = 3,8,3,8, . . . Цикл повторяется . . .
Рис. 3.5. Жадная последовательность инициаций для таблицы занятости В
Время
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
В1 |
В1 |
|
|
В2 |
В2 |
В1 |
В1 |
В3 |
В3 |
В2 |
В2 |
В4 |
В4 |
В3 |
В3 |
В5 |
В5 |
|
|
В1 |
|
В1 |
|
В2 |
|
В2 |
|
В3 |
|
В3 |
|
В4 |
|
В4 |
|
|
|
|
В1 |
|
В1 |
|
В2 |
|
В2 |
|
В3 |
|
В3 |
|
В4 |
В4 |
Средняя латентность = 4 Цикл повторяется
Последовательность латентностей = 4, 4, 4, 4, . . .
Рис. 5. Оптимальная последовательность инициаций для таблицы занятости В