
- •5. Способы адресации в пэвм с 32-разрядной архитектурой
- •9. Эффект гонок в микропрограммных автоматах и способы его устранения
- •17. Сегментация микропрограмм
- •18. Назначение, основные характеристики и функции систем прерывания программ
- •19. Запоминание состояния, переход к прерывающей программе и возврат из нее
- •20. Приоритетное обслуживание прерываний
- •22. Сравнение систем прерываний ес эвм и пэвм
- •23. Классификация систем памяти (см. Пособие Память эвм)
- •24. Сегментная адресация памяти
- •25. Страничная адресация памяти
- •26. Защита памяти
- •27. Защищенный режим в пэвм
- •28. Алгоритмы замещения информации в основной памяти
- •29. Алгоритмы управления очередностью обмена с внешними зу (см. Пособие Память эвм)
- •30. Принципы построения систем ввода-вывода в эвм
- •31. Организация интерфейсов ввода-вывода (должно дорабатываться)
- •32. Программное управление вводом-выводом
- •33. Передача данных с прямым доступом к памяти
- •34. Структура эвм Единой Системы и см эвм
- •35. Основные типы микропроцессоров. Структура микроЭвм
- •36. Совмещение во времени выполнения нескольких команд программы
- •37. Суперскалярная и пакетно-сетевая архитектуры процессоров пэвм
- •38. Процессоры с risc-архитектурой и эвм, управляемые потоками данных
- •39. Гиперпоточная архитектура в пэвм и архитектура эвм с большой длиной командного слова
- •40. Классификация вычислительных систем
22. Сравнение систем прерываний ес эвм и пэвм
Системы прерываний различных ЭВМ обычно имеют ряд отличий в способах реализации своих функций, обусловленных особенностями структуры ЭВМ в целом, используемыми технологиями, предпочтениями разработчиков и пр. Сравнение систем прерываний ЕС ЭВМ и ПЭВМ позволяет выделить следующие основные их особенности.
В ЕС ЭВМ, как в более ранней разработке, система прерываний использует хранение состояния прерываемой программы по фиксированным адресам памяти. Также по фиксированным адресам хранятся состояния и адреса программ, вызываемых для обработки прерываний.
Сами прерывания разбиты на классы:
- внешние прерывания (по сигналам от внешних источников),
- прерывания от ввода-вывода (по сигналам от устройств ввода-вывода),
- прерывания от схем контроля машины,
- программные прерывания (прерывания по ошибкам программы),
- прерывания по обращению к диспетчеру операционной системы.
Первые три класса являются аппаратными прерываниями, а последний – представлен только одной командой – командой обращения к супервизору (SVC – supervisor call).
Аппаратно запоминаемая информация о состоянии прерываемой (как и любой другой программы) группируется в, так называемое, слово состояния программы (ССП). ССП представляет собой двойное слово (8 байт), имеющее формат, показанный на рис. 22.1, где КДК – код длины команды, указывающий длину выполняемой команды в полусловах (по 2 байта), а КУ – код условия – принимающий одно из четырех значений результат выполнения команды, используемый последующими командами при выполнении условных переходов.
Рис 22.1. Слово состояния программы в ЕС ЭВМ
Ключ защиты используется в схеме защиты памяти, позволяющий защищать блоки памяти, выделенные программе (см. вопрос “Защита памяти”). Код прерывания позволяет идентифицировать источник запроса прерывания и указывает либо на линию внешнего сигнала, либо канал, к которому подключено внешнее устройство, выставившее прерывание, либо номер программного прерывания, либо код функции, запрашиваемой командой обращения к диспетчеру операционной системы.
Маска системы позволяет замаскировать прерывания от ввода-вывода (каналов ввода-вывода, которых может быть до 7) и внешние прерывания. (от сигналов на внешних линиях).
Маска программы позволяет замаскировать четыре программных прерывания: по переполнению с фиксированной запятой, по десятичному переполнению, по потери порядка и по потери значимости.
Процессор имеет несколько независимых пар состояний, в которых он различным образом реагирует на сигналы прерывания и исполняемые команды, к которым, в частности относятся пара “ожидание – счет” и “задача – диспетчер”, отображаемые, соответственно в 14-м и 15-м разрядах ССП. Поэтому текущее состояние процессора также запоминается как состояние прерываемой программы.
В состоянии “ожидание” процессор не выполняет команд, но воспринимает сигналы прерывания. В состоянии “задача” процессор не может выполнять команды отдельные команды управления, связанные управлением системой в целом (установка масок, загрузка слова состояния и некоторые другие).
Каждому классу прерываний соответствуют два фиксированных адреса памяти. В одном сохраняется состояние (слово состояния программы – ССП) прерываемой программы, называемое при этом “старым ССП”, из второго – выбирается состояние программы обработки прерывания, называемое “новым ССП”.
Собственно прерывание и сводится к прекращению выполнения текущей команды, запоминанию в памяти текущего значения ССП по адресу старого ССП для того класса прерываний, к которому относится вызвавший его запрос, и загрузке в качестве текущего ССП информации из памяти по адресу нового ССП данного класса.
Приоритет запросов прерываний установлен между классами следующим образом:
- прерывания от схем контроля машины;
- программные прерывания и обращения к супервизору (так как может в каждый момент возникнуть только одно из них),
- внешние прерывания;
- прерывания от ввода-вывода.
Данный приоритет определяет порядок приема запросов, однако порядок их обработки будет несколько иным. Так прерывания от схем контроля блокируют прием дальнейших запросов и обрабатываются в первую очередь.
Остальные прерывания обрабатываются в порядке обратном приему запросов. Т.е., если есть запросы всех трех классов: программные, внешние и по вводу-выводу, то будет принят запрос программных прерываний, но к его обработке процессор не приступит, а примет запрос внешних прерываний. К обработке этого запроса процессор также не приступит, а примет запрос прерывания по вводу-выводу, который и начнет обрабатывать. Закончив его обработку, процессор приступит к обработке внешнего прерывания, а затем – программного. Такой порядок установлен из соображений реальной важности прерываний. Обычно, во время обработки прерывания другие прерывания этого же класса маскируются, хотя на прерывания от схем контроля это не распространяется.
Приоритет запросов прерываний в пределах класса прерываний по вводу-выводу соответствует номерам каналов, а приоритет между устройствами определяется физическим порядком их подключения к опросной линии канала.
Сравнивая системы прерываний ПЭВМ и ЕС ЭВМ можно отметить следующие.
1. В ПЭВМ прерывания разбиты на аппаратные и программные, причем группировка аппаратных прерываний по классам отсутствует, хотя одно из аппаратных прерываний выделено и называется немаскируемым прерыванием NMI – Non Maskable Interrupt, несмотря на то, что в процессоре предусмотрена возможность его маскирования. (Кроме того, есть линия прерывания для входа в режим системного управления SMI – System Management Interrupt).
Что касается программных прерываний ПЭВМ, то их состав, в целом оказывается очень близким к программным прерываниям ЕС ЭВМ, хотя к ним относятся и такие как пошаговый режим, точка останова, обращение к отсутствующему сопроцессору.
2. В ПЭВМ нет слова состояния программы, а есть слово состояния процессора (машины) MSW (machine status word) и сегмент состояния задачи. Слово состояния содержит несколько иную информацию (флаги разрешения защиты, мониторинга сопроцессора, переключения задач и др.), чем информация о состоянии программы, и не включает в себя адрес команд, коды (флаги) условия и маски прерываний. Эти сведения об исполняемой программе хранятся в соответствующих регистрах, которые и запоминаются при прерывании вместо слова состояний.
Вместо слова состояния программы в ПЭВМ при прерывании аппаратно запоминается содержимое счетчика команд и регистра флагов.
В ПЭВМ значительный объем информации о состоянии программы отображается в сегменте состояния задачи TSS (Task State Segment). Этот сегмент используется, в рамках концепции многозадачности, для сохранения информации о выполняемой задаче при переходе к другой задаче. В нем отражается содержимое всех программно доступных регистров процессора, сегментных регистров, счетчика команд и регистра флагов (дубль), указателей стека, а также обратная ссылка на вызвавшую задачу, если это имело место, и некоторая другая информация. При прерываниях состояние этого сегмента может меняться, если обработчик прерывания вызывается с переходом к другой задаче (передача управления на дескриптор TSS или шлюз задачи). Процессор автоматически поддерживает структуру TSS, однако переключение задач, очевидно, не быстрый процесс, так как требует заполнения всех полей TSS, изменяющихся при выполнении текущей программы.
3. Адреса для запоминания состояния (счетчика и регистра флагов) в ПЭВМ не фиксируются: для его сохранения используется стек. Это позволяет легко восстанавливать состояния при обработке вложенных прерываний.
4. Адрес программы, вызываемой для обработки прерываний, в ЕС ЭВМ всегда хранится по фиксированному адресу, связанному с классом прерываний. В ПЭВМ – адреса обработчиков прерываний хранятся в строках специальной таблицы прерываний, причем номера строк для аппаратных прерываний связаны с номером входа, на который поступил запрос прерывания. Поменять номер строки таблицы можно только для всех входов сразу, сместив его на какую-либо величину, задавая другой базовый адрес для контроллера прерываний.
Маска конкретных входов в контроллере прерываний ПЭВМ маскирует соответствующие входы единичными значениями, в то время как единичные значения разрядов масок системы, программы и машинного контроля в ЕС ЭВМ разрешает соответствующее прерывания. Однако общий флаг прерывания в регистре флагов ПЭВМ разрешает прерывания также единичным значением.
5. Количество (внешних) устройств, подключаемых к одному входу прерывания, вообще говоря, ограничивает возможности расширения системы. Однако в ЕС ЭВМ внешние устройства подключаются через каналы (которых в ЭВМ может быть до семи), и каждый канал допускает подключение большого количества устройств. В ПЭВМ эту проблему приходится решать уже с использование программных средств, поскольку 15 входов прерывания (шестнадцатый (IRQ2) занят под каскадное подключение второго контроллера прерываний) требуется разделять между двумя-тремя десятками внутренних системных и внешних устройств. Поэтому обработчики прерываний, для тех входов запросов, к которым подключено несколько устройств, в начале обработки определяют источник, выставивший запрос прерывания.
Конечно, существует также и ряд других отличий между рассматриваемыми системами.