выполнения; обычно запоминается содержимое программно-доступ ных регистров (СчК, ИРг, регистров АУ и т. д.), т. е. таких, состоя ния которых могут изменяться при выполнении прерывающей про граммы;
— выполнение прерывающей программы; оно осуществляется в обычной последовательности действий по расшифровке и исполне нию отдельных команд;
— возврат к прерванной программе; он заключается в восста новлении состояния прерванной программы путем пересылки ин формации из фиксированных ячеек ОЗУ в соответствующие про граммно-доступные регистры и из регистров-дублеров в основные регистры АУ и УУ.
777 ■ ш .
ЗП 1
/7/7 - ш
Тр, Я
ь ! Н
Ж ,
ъ
_____________ _
t
! t
t 3
Рис. 9.17. Общая временная диаграмма прерывания
Такой последовательности действий отвечает общая временная диаграмма прерывания, приведенная на рис. 9.17. При выполнении текущей программы ТП в момент времени f\ поступает сигнал за проса на прерывание ЗП. Переход к прерывающей программе ПП осуществляется не сразу, так как необходимо время на анализ за проса и окончание действий по выполнению команды прерываемой программы. Выполнение прерывающей программы начинается в мо мент времени t2, который лишь в идеальном случае совпадает с моментом окончания действий по текущей прерываемой программе. Время, протекающее от /] до t2, называется временем реакции на запрос прерывания; на рис. 9.17 оно обозначено как тр; т3 — время, необходимое для запоминания состояния текущей прерываемой
программы; |
тп. п— время |
выполнения |
собственно прерывающей |
программы; |
тв — время, |
необходимое |
для восстановления состоя |
ния прерванной программы. |
|
Время реакции -ср и время обслуживания прерывания
А)бсл А) “Ь
являются важными характеристиками системы прерываний как комплекса аппаратно-программных средств, так как характеризуют потери машинного времени на организацию процесса прерывания и «быстродействие» ЦВМ по обслуживанию запросов на преры вания.
Важной характеристикой системы прерываний и ее составной части — блока прерываний — считается также глубина прерыва ний, которая определяется максимальным количеством программ, которые могут прерывать одна другую. При глубине прерываний у= 0 выполнение первой прерывающей программы не может пре рываться никакой другой программой. При у=1 возможно пре рывание первой прерывающей программы второй прерывающей программой и т. д.
Степень важности запросов на прерывания в общем случае за висит не от времени их поступления в блок прерываний, а от ха рактера источников запросов. Поэтому каждому источнику за-
Рис. 9.18. Временная диаграмма прерываний с учетом приори тетов
просов на прерывания присваивается постоянный, как правило, уровень приоритетности. Принимается, что нулевой уровень обла дает наивысшим приоритетом. Прерывание нулевого уровня, т. е. прерывание, отвечающее источнику запросов с нулевым уровнем приоритетности, может прервать любую из программ, отвечающих уровням 1, 2, ..., т при выделении т + 1 уровней. Прерывание первого уровня может прервать любую из программ, отвечающих уровням 2, 3, ..., т, но не может прервать программу, отвечаю щую уровню 0, и т. д. Прерывания одинакового уровня произво дятся в порядке поступления на них запросов; текущая рабочая программа имеет, как правило, низший приоритет, т. е. она отве чает условному уровню т + 1.
Обслуживание запросов на прерывания с учетом их приорите
тов иллюстрируется общей временной диаграммой |
(рис. 9.18). |
ЗП-2 обозначает запрос прерывания |
второго уровня, |
ЗП-4 — за |
прос прерывания |
четвертого |
уровня, |
ЗП-6 — запрос |
прерывания |
шестого уровня. |
В связи с |
введением приоритетов |
фактическое |
время Тр. реакции на отдельные запросы увеличивается посколь
ку очередь на обслуживание формируется в соответствии с при нятыми приоритетными уровнями.
Средства учета приоритетности запросов на прерывания обыч но объединяются со средствами реализации самих прерываний; создается единая система прерываний и приоритетов. Разнообразие и сложность ситуации, возникающих в процессе работы много программных ЦВМ, требуют создания достаточно гибких систем прерываний и приоритетов, обеспечивающих в необходимых слу чаях запрет прерываний в соответствии со сложившейся обстанов кой, что составляет сущность защиты от прерываний. Таким об разом, блоки прерываний в общем случае включают в свой состав узлы, обеспечивающие не только осуществление собственно пре рываний, но и учет приоритетности запросов, а также защиту от прерываний.
Структура блоков прерываний во многом зависит от общих ха рактеристик системы прерываний и приоритетов, принятой для дан ной ЦВМ, а также от принятых принципов формирования адреса первой команды прерывающей программы. Вариант схемы блока прерываний при 7 ф 0 и аппаратно-программном формировании адреса первой команды прерывающей программы приведен на рис. 9.19. Эта схема обеспечивает учет приоритетности запросов на прерывания и защиту от прерываний по коду маски.
Код прерываний, составляемый из сигналов прерываний, вво дится в регистр прерываний РгПр. Каждый триггер этого регистра отвечает вполне определенному источнику сигналов прерываний. Наивысший приоритет имеет сигнал, значение которого фиксирует ся триггером Тг 1. Для хранения кода маски, или кода защиты от прерываний, используется регистр маски РгМ, разрядность кото рого в общем случае равна разрядности регистра РгПр. Поскольку система имеет ненулевую глубину прерываний, то содержимое РгПр и РгМ должно сохраняться для каждой прерываемой про граммы. Выдача кодов маски и прерываний в ОЗУ осуществляется через группы вентилей В| и В= соответственно. Управляющие сиг налы УС1 и УС2, как и все остальные управляющие сигналы, фор мируются в блоке микрокоманд устройства управления.
Выделение сигнала прерывания, имеющего наибольший приори тет, осуществляется посредством последовательной цепочки эле ментов ИЛИ и И, которые управляются триггерами регистров РгМ и РгПр. Начало работы по выявлению и выделению такого сигнала определяется моментом поступления сигнала УСо, выра батываемого в соответствии с принятыми принципами определения возможных моментов прерываний. Цепочка из элементов И и ИЛИ составлена так, что, когда все возможные в данной ситуации пре рывания замаскированы, ни одна из входных для диодной сетки ДС шин не возбуждается. В этом случае вырабатывается только сигнал выдачи команды СВ К, разрешающий выборку очередной команды из выполняемой устройством управления последователь ности, т. е. данной текущей программы. Сигнал СВК вырабаты-
Рис. 9.19. Блок прерываний
вается также тогда, когда все триггеры РгПр находятся в состоя нии нуля.
Возбуждение одной из входных шин ДС происходит только тогда, когда хотя бы в одном и том же разряде регистров РгПр и РгМ содержатся единицы. Пусть Тг1 и Тг2 этих регистров нахо дятся в состоянии 1. Тогда УС0 проходит через И| и возбуждает соответствующую входную для ДС шину. Элементы Hj и V[\ по
одному из выходов закрыты, поэтому на выходе Иг сигнал не фор мируется; сигнал СВК также не формируется.
Диодная сетка выполняет функции шифратора номера выде ленного сигнала, или причины прерывания. При возбуждении од ной из входных ее шин на выходах ДС формируется вполне опре деленный двоичный код. Образуемый на выходах ДС код причины прерывания вводится через группу вентилей В4 в регистр РгКПр. Этот код, выдаваемый в БУК через группу вентилей В5, обычно используется как код относительного адреса. При суммировании его с некоторой константой образуется действительный адрес пер вой команды прерывающей программы. Код из РгКПр может по даваться через вентили группы Вб на входы дешифратора ДшКПр, что обеспечивает в требуемый момент времени.гашение в РгПр сиг нала, по которому осуществлено прерывание; это действие обычно выполняется только после реализации соответствующей прерываю щей программы.
Организация всех действий по осуществлению прерывания на чинается с момента формирования сигнала выявленного прерыва ния СВПр. Этот сигнал может быть сформирован только при наличии незамаскированного прерывания и нахождении триггера запрета ТгЗп в состоянии 1. Сброс этого триггера в состояние О может осуществляться сигналом со схем контроля; это отвечает случаю запрета любых прерываний при выполнении тестовых и диагностических программ.
Г л а в а X
ОРГАНИЗАЦИЯ И РАСПРЕДЕЛЕНИЕ ПАМЯТИ МНОГОПРОГРАММНЫХ ЦВМ
§ 10.1. Структура запоминающих устройств многопрограммных ЦВМ
Состав запоминающих устройств и их структура определяются, в первую очередь, назначением соответствующих многопрограмм ных ЦВМ. При этом основные различия в составе и структуре за поминающих устройств имеют место для специализированных управляющих и универсальных многопрограммных ЦВМ.
Специализированная управляющая ЦВМ обычно включается в систему управления движением некоторого объекта и размещает ся на этом объекте. Поэтому она выполняется со значительными ограничениями по габаритно-весовым и энергетическим показате лям, обеспечивая в то же время реализацию всех программ управ ления на небольших временных интервалах. Выполнение различ ных программ для определения управляющих воздействий, пере даваемых на органы непосредственного управления движением объекта, организуется по циклам, причем длительность цикла, как правило, постоянна. В каждом цикле реализуется несколько программ управления; возможна и такая организация циклов, при которой за время каждого цикла отдельные программы управле ния реализуются полностью, а остальные — частично.
Программы, реализуемые управляющей многопрограммной ЦВМ рассматриваемого типа, в процессе ее эксплуатации не из меняются. Поэтому они могут размещаться в постоянном запоми нающем устройстве; там же размещается и управляющая про грамма, определяющая необходимую последовательность выпол нения рабочих программ. Тогда оперативное ЗУ (оперативная память) используется в основном для размещения исходных дан ных, промежуточных и окончательных результатов вычислений; к оперативной памяти управляющей многопрограммной ЦВМ кроме собственно оперативного ЗУ относят также отдельные регистры,