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

Память команд – только для чтения и обновление памяти данных заблокировано при ue.3 = 0. Следовательно таблица 5.17 и уравнение 5.4 подразумевают

(IM, DM)0 = (IM, DM)1П .

В каждой конструкции выходные регистры этапа 4 обновляются в течении JISR. Так как этап 4 получает одни и те же входы, он также производит идентичные выходы. Таким образом,

 R € C       R0 = RП1 ,

и для подпоследовательностей P1 и P'1 применима моделирующая теорема 5.11. Так как команда I(1, p1) вызывает прерывание, требование 2 теоремы 5.11 подразумевает, что в течении циклов T1и T '1 с

IП(4, T1) = (l, p1)    и   I(4, T1') = (1, p1)




IП(4, Ti) = (i, pi)     ->    JISRПTi = 1 /\ IП(0, Ti) = (i + 1, 0).

Рисунок 5.21 Планирование первых двух подпоследовательностей P1 ,P2для конвейерного выполнения последовательности Q

обе конструкции находятся в одинаковой конфигурации, т.е.,




При последовательном выполнении следующая подпоследовательность стартует через один цикл после JISR, т.е.,

I(4,Ti') = (i, p1)     ->     JISRTi' = 1 /\ I(0, Ti' + 1) = ( i + 1, 0),

тогда как при конвейерном выполнении, следующая подпоследовательность уже стартовала в течении JISR, т.е.,


QED


Для первых двух подпоследовательностей рисунок 5.21 иллюстрирует это поведение управления.

Таким образом, цикл T1' + 1 соответствует циклу 0 последовательного выполнения P2 , и этот цикл T1 + 1 соответствует циклу 1 конвейерного выполнения P2. Тогда уравнение 5.5 подразумевает, что подпоследовательности p2и P'2 стартуют в одинаковой конфигурации и что теорема 5.11 может быть применена.

С теми же самыми параметрами, теорема следует индукцией по подпоследовательностям Qи Q'.


5.8    Выборочные ссылки и дальнейшее чтение

Процедуры обработки прерываний которые не являются вложенными, например, описаны в [PH94].  Механизмы вложенных прерываний обрабатываются в [MP95] для последовательных машин и в [Knu96] для конвейерных машин.


5.9    Упражнения

Упражнение 5.1 Пусть t1и t2 циклы машины DLXП, и пусть t1 < t2 . Предположим, что внешние прерывания iи jразрешены, прерывание iстановится активным в цикле t1, прерывание jстановится активным в цикле t2 , другие прерывания не обслуживаются или не ожидаются в цикле t2 .

1. Показать, что возможно, что прерывание jбудет обслужено перед прерыванием i.

2. Почему это не является контрпримером для доказательства корректности?

Упражнение 5.2 Исключение “недопустимый адрес”. Два адреса хранятся в регистрах специального назначения UPи LOW. Маскируемое исключение типа abort должно быть вызвано, если происходит попытка доступа ниже LOWили выше UP.

1. Сконструировать аппаратуру для этого исключения.

2. Сконструировать механизм пересылки для регистров UPи LOW.

3. Определите влияние на стоимость и время цикла.

Упражнение 5.3 Защищенный режим. Мы хотим запускать машину в двух режимах называемых защищенный режим и пользовательский режим. В защищенном режиме должна запускаться только ОС.

1. Сконструируйте механизм прерываний для “mode exception”, который активируется, если происходит попытка изменить в пользовательском режиме следующие значения: mode, UP, LOW, биты маски для “mode exception” и “invalid address exception”.

2. Возможно ли объединить “invalid address exception” и “mode exception” в одно исключение?

3. Какими должны быть приоритеты нового исключения(й)?

4. Каково воздействие на доказательство корректности?

Упражнение 5.4 Защита стека прерываний.

1. Сконструируйте механизм прерываний, где стек прерываний может быть доступен только операционной системой; кодовые сегменты save и restore – часть операционной системы.

2. Какие требования для процедуры обработки прерываний из доказательства корректности могут быть гарантированы операционной системой?

3. Какие требования для процедуры обработки прерываний из доказательства корректности не могут быть гарантированы операционной системой?


Упражнение 5.5 Предположим мы хотим сделать исключение “нарушение границ” типа repeat.

1. Сделайте набросок обработчика исключений, который производит выборку требуемых данных.

2. Каким должен быть приоритет данного исключения?

3. Каково воздействие на доказательство корректности?