5.7 Корректность аппаратуры прерываний
В этом разделе мы докажем, что конвейерная аппаратура DLXПвместе с допустимыми ISR выполняет вложенные прерывания точным способом. Для последовательной конструкции точность обработки прерываний – хорошо понятна. Поэтому мы сводим точный конвейерный механизм прерываний к одному из последовательных механизмов, показав, что конструкция DLXПмоделирует конструкцию DLX∑на любой непрерывной последовательности команд.
В первом шаге мы рассмотрим непрерывную последовательность команд I0 , ... , Ip , где I0 предшествует JISR и где Ipинициирует JISR. Во втором шаге покажем, что моделирование работает, когда объединяются различные последовательности. Что касается этих моделирований, отмененные команды и события внешних прерываний - проблема.
Между выборкой команды Ip , которая инициирует переход на ISR и фактически JISR, конструкция DLXПзапускает следующие команды Ip+1 ,..., Ip+δ . Однако, эти команды отменяются JISR, прежде чем они достигнут этапа обратной записи (write back). Таким образом, что касается моделирования, мы рассмотрим последовательность P = I0 ,..., Ip ,..., Ip+δ для конвейерной конструкции, и последовательность P' = I0 ,..., Ipдля последовательной конструкции.
Асинхронны к выполнению команды и могут вызываться в любое время. Из-за конвейерного выполнения последовательность команд Pобычно быстрее выполняется в конструкции DLXПчем в конструкции DLX∑. Следовательно, для моделирования недостаточно назначить данное внешнее событие на фиксированный такт. Вместо этого последовательности команд Pи P' расширяются последовательностью внешних событий. Для любого внешнего прерывания ev[j], мы используем следующее присвоение, которое иллюстрировано в таблице 5.15:
Таблица 5.15 Назначение вызывающих внешние прерывания событий для непрерывной последовательности команд P
cycle |
ev[j] JISR |
full.3 full.4 |
M WB |
T-1 |
0 0 |
||
T |
1 0 |
0 |
— |
T+1 |
1 0 |
0 0 |
_ _ |
1 0 |
0 0 |
- - |
|
t-1 |
1 0 |
1 0 |
Ii - |
t |
1 0 |
1 |
Ii |
Пусть событие, вызывающее внешнее прерывание ev[j], устанавливается в течение цикла Tконвейерного выполнения P ev[j]ПT-1 = 0 и ev[j]ПT = 1, пусть t– первый цикл после T, для которого этап обратной записи полон, и пусть T ' + 1 – цикл в последовательном выполнении P' соответствующий циклу t, т.е., IП(4, t) = i = I∑(4, T ' + l). В последовательном выполнении P, событие ev[j] тогда присваивается такту T ' |
ev[j]∑T '= 1. |
Так как внешние события собираются на этапе 3, велико искушение порассуждать о первом цикле ţ >= Tв котором этап 3 полон, т.е., i = IП (3, ţ). Для единственной непрерывной последовательности команд Pэто безразлично, поскольку команды, выполняемые на этапе 3, всегда пропускаются на этап 4 в конце цикла. Таким образом, |
Однако, когда объединяются две последовательности P = I0 ,..., Ip+δи Q = J0 , J1 ,..., команды, выполняемые на этапе 3, могут отменяться JISR. Следовательно, это существенно в обсуждении выполнения команд на этапе 4. В примере из таблицы 5.16, внешнее событие ev[j] установлено, пока конструкция DLXПвыполняет переход на ISR. Когда обсуждается этап 3, внешнее событие присвоено команде Ip+1которая не имеет аналога в последовательном выполнении, поскольку, когда рассуждаем о этапе 4, событие присваивается первой команде последовательности Q.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.