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


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


QED


Пусть команда Ii вызывает внутреннее прерывание j, т.е., ev[j]i = 1. тогда бит причины CA[j]i также активируется. Согласно предположению леммы, j- немаскируемое или размаскированое (SR[j]i-1 = 1). В любом случае, соответствующий бит MCA установлен и инициирован переход на ISR. Таким образом, Ii+1 – первая команда процедуры ISR(k), где k = iliозначает уровень прерывания после Ii . Из-за определения уровня прерываний, k <= j. Для k = j, требование следует немедленно. Для k < j, прерывание k– внешнее или внутреннее. В случае внешнего прерывания, kдолжен быть сбросом (ограничение 3) который прерывает выполнение обслуживания любых рассматриваемых прерываний. Если k– внутреннее прерывание, оно имеет тип abort или repeat из-за требования 3. Таким образом, ISR(k) обслуживающее любое рассмотренное прерывание прерывает выполнение, или после ISR(k), выполнение продолжается с команды Ii .



Если ограничение 3 слабое, полнота механизма прерываний в значении леммы 5.7 не может быть гарантирована. Примем, что команда Ii является причиной двух внутренних прерываний jи j', и что j < j'. Если jимеет тип continue, ISR(j) обслужит только jи продолжит выполнение с команды, которая следует за Ii в случае JISRi = 0. Таким образом, прерывание j' потеряется. Если прерывание jимеет тип repeat, ISR(j) также не обслуживает прерывание j'. Однако, команда Ii повторится после ISR, и ошибка, которая соответствует прерыванию j' – может произойти снова.


5.5    Аппаратура прерываний

В этом разделе мы сконструируем аппаратуру прерываний для подготовленной последовательной архитектуры DLXсогласно спецификации раздела 5.2. Набор команд архитектуры (ISA) расширяется

• файлом регистров специального назначения SPR,

• регистром S, который буферизирует данные, читаемые из SPR,3

• схемой для сбора прерывающих событий,        

• механизмом вызова ISR, который в случае активации событий прерываний помещает параметры прерывания в файл регистров SPR и пару адресов (SISR, SISR + 4) в регистры DPCи PC', и

• управлением, реализующим команды из таблицы 5.4.

Расширение ISA требует изменений в путях данных и в управлении (раздел 5.5.6). Пути данных получают дополнительное окружение CAenv, которое собирает сигналы прерывающих событий и определяет причину прерываний (раздел 5.5.5). За исключением окружения PC, регистрового файла окружения RFenv и схемы Daddr, остальные пути данных подвергаются только незначительным изменениям (раздел 5.5.4). Рисунок 5.1 изображает верхнеуровневые схемные решения расширенных путей данных DLX. Их стоимость может быть выражена как

cdp =CPCenv + CIMenv + CIRenv + CEXenv + CDMenv + CSH4Lenv

     +   CRFenv + CDaddr + CCAenv+Cbuffer + 8*Cff(32).     

Обратите внимание, что без аппаратуры прерываний, сброс в основном выполняет две задачи: он приводит аппаратуру в определенное состояние (аппаратная инициализация) и

3Регистры A и В играют здесь роль файла регистров GPR




Рисунок 5 1 Пути данных подготовленной последовательной конструкции с поддержкой прерываний

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

5.5.1    Окружение PCenv

Окружение PCenv на рисунке 5.2 все еще принадлежит механизму задержанного PC, но теперь он предоставляет дополнительный регистр DDPC(задержанный задержанный PC), который буферизирует PC текущей команды Ii:

DDPCi = DPCi-1.

Функциональные возможности окружения также должны быть расширены в расчете на новую команду управления rfe и поддержку перехода на ISR. Без обработки прерываний PC инициализируется при сбросе. Теперь сброс обрабатывается подобно любому другому прерыванию и поэтому, PC инициализируется