19. Понятие слова состояния программы
(ССП), структура ССП. Методы запоминания и восстановления ССП
Состоянием процессора (программы) после данного такта
или после выполнения данной команды, строго говоря, следует считать
совокупность состояний в соответствующий момент времени всех запоминающих
элементов устройства – триггеров, регистров, ячеек памяти. Однако не вся эта
информация исчезает или искажается при переходе к очередной команде или другой
программе. Поэтому из всего многообразия информации о состоянии процессора
(программы) отбираются наиболее существенные её элементы, как правило,
подверженные изменениям при переходе к другой команде или программе.
Совокупность значений этих информационных элементов получила название вектора
состояния процессора (программы). ССП в каждый момент времени должен содержать
информацию, достаточную для продолжения выполнения программы или повторного
пуска программы с точки, соответствующей моменту формирования данного ССП. При
этом предполагается, что остальная информация, характеризующая состояние
программы, например содержимое регистров, или сохраняется, или может быть
восстановлена программным путем по копии, сохраненной в памяти. ССП формируется
после выполнения каждой команды в соответствующем регистре.
Типичная структура слова состояния программы:
Маска прерывания
|
Ключ защиты памяти
|
Код состояния CPU
|
Адрес команды (пр-мы)
|
При обработке на уровне команд сохраняется как мин
следующая информация:
1. Указатель команд.(IP)
2. Длина той команды, которая была
прервана (в байтах).
3. Состояние триггера «работа-останов».
4. Маска прерываний.
5. Информация о распределении и защите
памяти.
Как уже отмечалось, не вся информация исчезает при
переходе к другой программе. Это утверждение распространяется и на прерывания.
При этом можно организовать запоминание информации так, чтобы обработчик
соответствующего прерывания сохранял все необходимое при данном конкретном
прерывании (то есть, запоминал только то, что точно изменится в результате
обработки прерывания).
Методы запоминания ССП:
1.
В ОП ячейках с фиксированными
адресами. Vector→Адрес→ССП→Адрес обработчика.
Повторное прерывание от одного и того же источника запрещаются, т. к. будет
потеряно ССП.
2.
В стеке. В любом стеке есть
указатель стека. В конце стоит команда перехода по SP. Поэтому
условной единицей длины в этом случае будет 1.У этой конструкции нет
ограничений, а значит, чаще используется. Глубина прерываний определяется
размером стека.
3.
В суперЭВМ применяется следующий
способ: существует набор блоков регистров, куда переносится вся информация о
программе.