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

В - первая инициация

Х - задержанная инициация

Если начальное состояние конвейера в момент времени 0 известно, то можно вычислить эквивалентные состояния для всех будущих моментов времени.

В правилах генерирования состояний полагается, что если вектор столкновений в момент времени tизвестен, то векторы столкновений для состояний, соответствующих моменту времениt+1 вычисляются по следующей процедуре.

1. Вектор столкновений для момента времени tсдвигается влево на один разряд, самый левый разряд отбрасывается, а в правый заносится 0.

2. Если в 0-м разряде этого вектора содержится 1, то это новый вектор столкновений.

3. Если в 0-м разряде содержится 0, то в момент t+1 возможны два состояния в зависимости от того, произведена ли новая инициация в моментt+1. Если инициация не произведена, то сдвинутый вектор столкновений представляет очередное состояние. Если же в момент времениt+1 произведена инициация, то новый вектор столкновений является результатом поразрядной логической операции ИЛИ сдвинутого вектора и копии начального вектора столкновений.

4. Во всех случаях, когда новый вектор столкновений идентичен вектору для одного из предыдущих состояний, дуга из текущего состояния "возвращается" к этому предыдущему. Если же вектор столкновений является новым, то определяется новое состояние и проводится дуга от старого состояния к новому состоянию. Дуги, соответствующие единицам времени, в течении которых производятся новые инициации, помеченные значком *.

Правильность этой процедуры вытекает непосредственно из определения вектора столкновений. Если в момент времени tвектор столкновений имеет 1 в разрядеi, то необходимо избегать инициации в моментt+i. Следовательно, вектор столкновения в моментt+1 также должен указывать на это, но тогда требуется, чтобы в разрядеi-1 стояла бы 1. Если в моментt+1 не произведена новая инициация, то верно и обратное, а именно в разрядеi-1 стоит 1, только если в моментtв разрядеiстояла 1. Этим оправдываются шаги 1 и 2.

Шаг 3 учитывает возможность инициации в момент t+1. Это имеет место, только если в моментtв разряде 1 вектора столкновений стоял 0 (или, напротив, в моментt+1 в результате шага 1 процедуры в разряде 0 стоял 0).

Шаг 4 сохраняет диаграмму в виде конечного замкнутого графа. Поскольку многие различные моменты времени могут иметь одинаковые векторы столкновений и, следовательно, одинаковые состояния и поскольку новые состояния зависят только от предыдущих, в этом упрощении нет потери информации.

Диаграмма состояний, построенная по предыдущим правилам для таблицы занятости В, приведена на рис. 8. В момент времени 0, т.е. при самой первой инициации, конвейер находится в исходном состоянии. Первая новая инициация возможна только в момент времени 3 (третья дуга). Если эта инициация выполнена, то новое состояние 11111111 препятствует любым новым инициациям до тех пор, пока все прежние инициации не проработают 8 или более единиц времени. Если в момент времени 3 инициация не произведена (состояние 00111000), то второе решение принимается в момент времени 4 (четвертая дуга). Здесь снова имеются два последующих состояния. Если выполнена новая инициация, то попадаем в цикл из четырех состояний (11110111, 11101110, 11011100, 10111000), где при каждом четвертом синхроимпульсе может быть выполнена новая инициация. Выход из этого цикла осуществляется только тогда, когда эта инициация не осуществляется. Этим циклам непосредственно соответствуют эквивалентные последовательности латентностей. Например, только что рассмотренный цикл отвечает циклу (4), тогда как инициация в момент времени (3) приводит к циклам (3,8), (3,9), (3,10), . . ю Имеются и другие циклы, такие как (8) и (4,8,3,8).