Файл: Каган Б.М. Цифровые вычислительные машины и системы учеб. пособие.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 09.04.2024

Просмотров: 261

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

осуществляет запоминание «старого» ССП, соответству­ ющего прерванной программе, и установку «нового», со­ ответствующего данной прерывающей программе; заклю­ чительная часть программы восстанавливает старое ССП. На период замены ССП новое прерывание, даже от уров­ ней с более высоким приоритетом, запрещается, чтобы предохранить ССП от искажений. В вычислительных системах для ускорения процедуры входа в прерываю­ щую программу операции замены ССП осуществляются аппаратно.

В состав дополнительной информации о прерванной программе входит содержимое арифметических регист­ ров (аккумуляторов), индексных регистров и других программно-доступных регистров, общих для всех про­ грамм. Запоминание всей этой информации может приве­ сти к значительному возрастанию времени обслужива­ ния прерывания. В то же время многие прерывающие программы фактически используют (и, следовательно, портят) только часть из указанных регистров. Поэтому обычно сохранение дополнительной информации дости­ гается программными методами. При этом на про­

граммиста возлагается

забота о сохранении только

тех регистров, которые

действительно портятся его про­

граммой.

 

Рассмотрим основные методы, используемые в совре­ менной вычислительной технике для запоминания ССП.

1. В памяти машины для каждого уровня прерывания отводятся фиксированные ячейки для хранения старого и нового ССП (рис. 8-7, а). Адреса фиксированных ячеек могут определяться в соответствии с номером уровня пре­ рывания или могут быть зафиксированы для каждого уровня произвольным образом.

Процедура замены ССП осуществляется автоматиче­ ски аппаратурой, которая запоминает старое слово, вы­ зывает новое и запрещает на это время прием каких-ли­ бо других запросов прерывания. После окончания этой процедуры общий запрет прерывания снимается и управ­ ление передается первой команде прерывающей про­ граммы по адресу, указанному в новом слове. В конце прерывающей программы должна быть размещена команда, вызывающая в регистры управления машины старое ССП из фиксированной ячейки. Размещение фик­ сированных ячеек в памяти может быть, вообще говоря, неизвестно программисту.

476


Фиксироданные

К

477

программы (С С П ).

2. В памяти образуется два массива ССП — старых и новых (рис. 8-7,6). Длина массива новых ССП определя­ ется количеством уровней прерывания в системе, а вы­ борка слова из этого массива управляется, например, базовым адресом прерывания и номером уровня, фор­ мируемым аппаратурой во время приема запроса преры­ вания. Таким образом, новые ССП фиксированы относи­ тельно уровней прерывания.

Массив старых ССП адресуется специальным регист­ ром АЗП (адрес запоминания), который при каждом за­ поминании слова в массив увеличивает свое содержимое на единицу младшего разряда, а при выборке слова из массива — уменьшает на единицу. Массив старых ССП образует таким образом магазинную память.

Регистр АЗП может быть составлен из двух частей: постоянной, содержащей некоторое количество неизмен­ ных старших разрядов, определяющих месторасположе­ ние всего массива старых слов в памяти, и переменной, в которую входят остальные (младшие) разряды, подвер­ гающиеся изменениям при прибавлении или вычитании единицы и определяющие выбор ячейки данного массива.

При входе в прерывающую программу аппаратура машины записывает старое ССП по адресу, определяемо­ му текущим значением АЗП, которое затем увеличивает­ ся на единицу. После этого машина выбирает новое ССП в соответствии со значением базового адреса и номера уровня. В конце прерывающей программы выполняется команда, которая уменьшает АЗП на единицу и вызы­ вает ССП по адресу из АЗП. Ячейки массива старых ССП не привязаны к уровням прерывания, и расположе­ ние в них информации определяется порядком следования запросов прерывания во времени. Глубина прерывания определяется разрядностью переменной части АЗП: если количество переменных разрядов і, то глубина прерыва­ ния системы равна 2г. До сих пор для простоты предпо­ лагалось, что ССП занимает одну ячейку памяти. В ре­ альных системах длины одной ячейки не хватает и ССП занимает несколько последовательных ячеек памяти. Ес­ ли число ячеек, отведенных для хранения одного ССП, равно 2к, то в таких системах АЗП при каждом приеме или выдаче ССП подвергается изменению на 2h единиц, а глубина прерывания равна 2і~к.

3. Если для хранения ССП желательно использовать произвольные ячейки памяти, то запоминание и восста­

478


новление ССП должно выполняться не аппаратными средствами, а командами самой прерывающей програм­ мы, в адресных частях которых может быть указано лю­ бое место в памяти (рис. 8-7, в). При использовании та­ кой системы аппаратное формирование начального адре­ са и выборка первой команды прерывающей программы из памяти должны производиться помимо счетчика ко­ манд, без изменения его содержания. Если необходимо обеспечить в дальнейшем возврат к прерванной програм­ ме, то в качестве первой команды прерывающей програм­ мы должна быть поставлена команда замены ССП. Если прерывающая программа состоит только из одной коман­ ды, то, так как счетчик команд продолжает хранить ста­ рое содержание, после выполнения прерывающей коман­ ды машина автоматически вернется к старой программе. Если возвращения к старой программе не требуется, то первая команда может сразу начать выполнение полез­ ных действий. Таким образом, указанная система обла­ дает большой логической гибкостью, хотя запоминание информации программными средствами всегда требует большего времени, чем при аппаратном выполнении этих функций. Так как ССП запоминаются в произвольных участках памяти по указанию самих прерывающих про­ грамм, то глубина прерывания ограничивается только чис­ лом имеющихся в системе уровней прерывания и объе­ мом памяти. Как уже говорилось ранее, запоминание до­ полнительной информации осуществляется с помощью ^ стандартных методов программирования. Тем не менее ' в некоторых вычислительных системах с целью сокраще­ ния времени обслуживания применяют специальные сред­ ства по ускорению указанных операций. К таким сред­ ствам относятся используемые в машинах IBM 360 и ЕС ЭВМ команды группового запоминания и вызова, позволяющие быстро записывать в последовательные ячейки памяти информацию из группы регистров и, на­ оборот, записывать информацию из последовательных ячеек памяти в группу регистров.

Дальнейшее усовершенствование заключается в том, чтобы для каждой программы иметь свой набор регист­ ров. В машине Sigma-7 регистры на интегральных схе­ мах являются ячейками быстрой памяти, причем в рас­ ширенном комплекте машины может быть до 32 блоков по 16 регистров в блоке. Кроме того, имеется специаль­ ный пятиразрядный указатель блока, определяющий, ка-

479



кой из блоков регистров в данный момент является ра­ бочим (рис. 8-8). Состояние указателя блоков входит в состав ССП, следовательно, замена ССП одновременно производит переключение блоков регистров без физиче-

Рис. 8-8. Машина с несколькими наборами регистров.

ского запоминания и восстановления их содержимого. Следует отметить, что повышение быстродействия систе­ мы достигается здесь ценой увеличения затрат оборудо­ вания.

8-5. ПРИМЕР АППАРАТНОЙ РЕАЛИЗАЦИИ СИСТЕМЫ ПРЕРЫВАНИЯ

В этом параграфе рассматривается одна из возможных схем построения многоуровневой системы прерывания с аппаратным распознаванием причин прерывания и про­ граммно-управляемым приоритетом. Рассматриваемый пример не относится к какой-либо одной из существующих машин, хотя в нем используются многие логические свойва, уже реализованные в разработанных в настоящее вре­ мя системах. Изложение удобно начать с рассмотрения логической схемы одного уровня прерывания (рис. 8-9). В состав аппаратуры уровня прерывания входят: два триггера маски ТМ\ и ТМ2, состояния которых в соответ­ ствии с изложенным в § 8-3 позволяют игнорировать пре­ рывание, запрещать прерывание с запоминанием запроса, разрешать прерывание и имитировать запрос; два триг­ гера, участвующие в формировании сигнала «прерывание осуществлено», триггер запоминания запроса ТЗЗ и триг­ гер прерывания ТПР; каскады формирования и усиления,

480

преобразующие форму сигналов, получаемых аппарату­ рой прерывания от внешних источников.

Если не принять каких-либо специальных мер, то дли­ тельность запроса прерывания должна быть строго опре­ деленной. При слишком коротких длительностях запрос прерывания может быть утерян до того, как он будет воспринят машиной. Если же запрос возбужден слишком

Рис. 8-9. Схема одного уровня прерывания.

долго, прерывающая программа может выполняться не­ сколько раз. Можно решить эту задачу, потребовав, что­ бы источник прерывания поддерживал запрос до полу­ чения от машины ответного сигнала о приеме запроса, после чего последний должен быть обязательно погашен. Однако такая асинхронная система связи предъявляет дополнительные требования к аппаратуре, находящейся вне вычислительной системы, и увеличивает количество проводов, соединяющих систему с внешним миром.

Кроме того, в вычислительной системе, особенно при использовании ее для управления производственными процессами, источниками прерывания могут быть самые разнообразные устройства, в том числе и нецифровые. По­ этому форма сигналов по амплитуде, крутизне фронтов и другим признакам может существенно отличаться от

31—333

481