Детальный проект конвейерного RISC процессора (Глава 5 "Обработка прерываний"), страница 27

DLXσ

DLX

T'

reset

ue[0:4]

full[0:4]

reset

JISR

ue[0:4]

full[0:4]

-2

1

*

*

*

-1

1

*

*

0

1

00001

00001

0

0

10000

10000

0

0

10000

10000

1

0

01000

01000

0

0

01000

01000

2

0

00100

00100

0

0

00100

00100

3

0

00010

00010

0

0

00010

00010

4

0

00001

00001

0

0

00001

00001

5

0

10000

10000

0

0

10000

10000

DLXn

DLXП

T

reset

ue[0:4]

full[2:4]

reset

JISR

ue[0:4]

full[2:4]

-1

1

*

*

*

0

1

10000

*

0

1

10001

**1

1

0

11000

000

0

0

11000

000

2

0

11100

100

0

0

11100

100

3

0

11110

110

0

0

11110

110

4

0

11111

111

0

0

11111

111

• Для заключительного цикла Tp требование 2 покрывает все регистры и память R Cнезависимо от этапа, которому они принадлежат (поле 2).

Вышеупомянутая теорема и моделирующая теорема 4.11 конструкции DLX без обработки прерываний очень похожи. Таким образом, в основном можно многократно использовать доказательство теоремы 4.11. Сигнал JISRконструкций DLX и DLXП – аналог сигнала resetв конструкциях DLXσ и DLXπ. Эти пары сигналов используются для инициализации окружения PC и они отмечают начало выполнения. В последовательных конструкциях выполнение начинается в цикле - 1, в то время как в конвейерных конструкциях оно начинается в цикле 0:

resetσ-1  = JISR-1 = JISRП0 = resetn0 = 1.


ДОКАЗАТЕЛЬСТВО


Доказательство теоремы 5.11

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

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



обоих конвейерных конструкций. Для начального цикла T = 0 конвейерная функция планирования определена только для этапа k = 0:

IП(0,0) = I(0,l) = 0.

Этап 0 имеет память команд и ее адрес как входы. В конвейерной конструкции IM адресуется dpc, тогда как в последовательной конструкции она адресуется регистром DPC. Так как

DPCce = PCce /\ ue.1 V JISR,

из этого следует по гипотезе теоремы и флагам разрешения обновления, что

Память IM – только для чтения и, следовательно, сохраняет свое начальное содержание. Таким образом, в конструкции DLXПв цикле T = 0 этапа 0 имеем те же самые  входы, что и в конструкции DLX в цикле T ' = l.

Обратите внимание, что этапы kконструкций DLXи DLXПгенерируют одни и те же сигналы Sи обновляют их выходные регистры одним и тем же способом, если они получают идентичные входы. Это также применимо к памяти данных DM и ее сигналу запроса записи Dmw'.3, который в каждой конструкции блокируется, если команда сталкивается с отсутствием страницы при выборке. Таким образом, с новой dateline леммой 5.9, индукционное доказательство требования 1 может быть закончено как и прежде.