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

Требование 2 – новое, и поэтому требует полного доказательства. Для выходных регистров этапа 4 требование 1 уже подразумевает требование 2. Кроме того, в конструкциях DLXи DLXПпамять команд никогда не обновляется. Таким образом, требование 2 должно быть доказано только для двух программных счетчиков PC' и DPC, и для памяти данных DM.

Последовательность команд P' последовательной конструкции создавалась так, что команда Ipвызывает прерывание. Так как сигнал JISRгенерируется на этапе 4, требование 1 подразумевает

JISRT ' p = JISRПTp= 1.

В каждой конструкции оба PC инициализируются при активном сигнале JISR, и следовательно

DPCT ' p + 1   =      SISR      =   DPCПTp + 1

PC'T ' p + 1    =   SISR+ 4   =   PC'ПTp+1.

Память данных DM принадлежит набору out(3). Для этапа 3 обе функции планирования подразумевают

IП(3, Tp - 1) = I(3, T 'p - 1) = p.

dpcП0 = DPCП1 = DPC0 = DPCΣ1.



В последовательной конструкции память данных обновляется только когда команда на этапе 3, т.е., когда full.3 = 1. Тогда требование 1 подразумевает, что




JISR сигнализирует только если full.4 = 1. Для цикла Tp' последовательный механизм останова тогда подразумевает, что

Таким образом, память данных не обновляется в течении JISR, и следовательно

DMT 'p = DMT ' p + 1   

В конвейерной конструкции сигнал разрешения записи памяти данных генерируется как

Dmw.3 = Dmw'.3 /\ full.3 /\ (JISR NOR reset).

Так как сигнал Dmw.3 блокируется при активном сигнале JISR, память данных не изменяется в течении цикла Tp , и следовательно,

QED

 
DMПTp+1= DMПTp.

Этим завершается доказательство требования 2.

Теперь мы рассмотрим произвольную последовательность команд Q, которая обрабатывается конвейерной конструкцией DLX, и которая прерывается несколькими прерываниями типа non-aborting. Такая последовательность Qможет быть разломана на несколько непрерывных подпоследовательностей

pi  = I(i, 0) ,..., I(i, p1) ,..., I(i, pi + δi) .

Это значит, что для любой последовательности Pi , команда I(i, 0) предшествующая JISR, I(i, pi)является только командой Pi которая вызывает прерывание, и команда I(i, pi + δ1) является последней командой выбранной перед переходом на ISR. Для последовательного выполнения мы рассмотрим последовательность команд Q' = P1',P2' ,... которая происходит из последовательности Qвыбросом команд вызывающих JISR, т.е.,

События внешних прерываний назначены, как и прежде. Функции планирования расширенны очевидным способом. Для конструкций DLXи DLXП,

I(k, T) = (i, j)    и   IП(k,T) = (i, j)

Означает, что в цикле Tконвейерного этапа kвыполняется команда I(i, j).



Подобно обеим конструкциям DLX без аппаратуры прерываний, конструкции DLX и DLXПстартуют сбросом, а не JISR. Леммы 5.8 и 5.10 подразумевают, что после сброса обе конструкции изящно пойдут вверх; один цикл после сброса JISR = 1 и конструкции инициируют переход на ISR(0). Таким образом, теперь мы можем сформулировать общую моделирующую теорему для конструкций DLXи DLXП:


Теорема 5.12


Пусть Q = P1 , P2 ,.... и Q' = P'1 , P2 ,... – две последовательности команд расширенные последовательностью внешних событий, как определено выше. Последовательность Q выполняется конвейерной конструкцией DLXП а Q' - последовательной конструкцией DLX. При последовательном выполнении сброс дается в цикле - 2, в то время как при конвейерном выполнении, сброс дается в цикле - 1 :

reset-2 = 1 = resetП-1.

Пусть обе конструкции стартуют с одинаковым содержанием, т.е., любой регистр и памятьR путей данных удовлетворяет

RΣ-1 = RП0,                            (5.4) и пусть первая команда I(1, 0) предшествует JISR

JISR-1 = 1 = JlSSП0.

Для каждой пары (Pi , P'i ) подпоследовательностей, конструкция DLXП выполняя Pi моделирует конструкцию DLX на P'i в значении теоремы 5.11.


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


Как показано в доказательстве требования 2 теоремы 5.11, обе конструкции инициализируют PC при JISR одинаково, таким образом

(PC', DPC)0 = (PC', DPC)1П.