Скачиваний:
33
Добавлен:
01.05.2014
Размер:
257.54 Кб
Скачать

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. Оптимальная последовательность инициаций для таблицы занятости В