
книги из ГПНТБ / Каган Б.М. Цифровые вычислительные машины и системы учеб. пособие
.pdfкой из блоков регистров в данный момент является ра бочим (рис. 8-8). Состояние указателя блоков входит в состав ССП, следовательно, замена ССП одновременно производит переключение блоков регистров без физиче-
Рис. 8-8. Машина с несколькими наборами регистров.
ского запоминания и восстановления их содержимого. Следует отметить, что повышение быстродействия систе мы достигается здесь ценой увеличения затрат оборудо вания.
8-5. ПРИМЕР АППАРАТНОЙ РЕАЛИЗАЦИИ СИСТЕМЫ ПРЕРЫВАНИЯ
В этом параграфе рассматривается одна из возможных схем построения многоуровневой системы прерывания с аппаратным распознаванием причин прерывания и про граммно-управляемым приоритетом. Рассматриваемый пример не относится к какой-либо одной из существующих машин, хотя в нем используются многие логические свойва, уже реализованные в разработанных в настоящее вре мя системах. Изложение удобно начать с рассмотрения логической схемы одного уровня прерывания (рис. 8-9). В состав аппаратуры уровня прерывания входят: два триггера маски ТМ\ и ТМ2, состояния которых в соответ ствии с изложенным в § 8-3 позволяют игнорировать пре рывание, запрещать прерывание с запоминанием запроса, разрешать прерывание и имитировать запрос; два триг гера, участвующие в формировании сигнала «прерывание осуществлено», триггер запоминания запроса ТЗЗ и триг гер прерывания ТПР; каскады формирования и усиления,
480
преобразующие форму сигналов, получаемых аппарату рой прерывания от внешних источников.
Если не принять каких-либо специальных мер, то дли тельность запроса прерывания должна быть строго опре деленной. При слишком коротких длительностях запрос прерывания может быть утерян до того, как он будет воспринят машиной. Если же запрос возбужден слишком
Рис. 8-9. Схема одного уровня прерывания.
долго, прерывающая программа может выполняться не сколько раз. Можно решить эту задачу, потребовав, что бы источник прерывания поддерживал запрос до полу чения от машины ответного сигнала о приеме запроса, после чего последний должен быть обязательно погашен. Однако такая асинхронная система связи предъявляет дополнительные требования к аппаратуре, находящейся вне вычислительной системы, и увеличивает количество проводов, соединяющих систему с внешним миром.
Кроме того, в вычислительной системе, особенно при использовании ее для управления производственными процессами, источниками прерывания могут быть самые разнообразные устройства, в том числе и нецифровые. По этому форма сигналов по амплитуде, крутизне фронтов и другим признакам может существенно отличаться от
31—333 |
481 |
стандартных импульсов машины. Весьма желательно, чтобы требования к форме сигналов и аппаратуре источ ников прерывания, а также число управляющих сигна лов, которыми обмениваются машина и источник пре рывания, были минимальными. В рассматриваемом при мере эта цель достигается благодаря тому, что запрос прерывания подается на вход формирователя, обеспечи вающего восстановление амплитуды и фронтов сигнала до стандартной величины, и затем на дифференцирующий усилитель, который выделяет передний фронт сигнала.
Преобразованный сигнал запоминается триггером ТЗЗ, если это действие не запрещается соответствующим состоянием маски. Какова бы ни была длительность сиг нала на входе системы, только передний фронт его может вызвать прерывание. Следовательно, на длительность за проса не накладывается никаких иных ограничений, кро ме того, что она должна превосходить некоторый мини мум, определяемый быстродействием системы элементов машины. Если состояние маски равно 00, то, как видно из рисунка, дифференцированный сигнал не будет пропу щен схемой на вход ТЗЗ и, следовательно, запрос пре рывания игнорируется. При всех других состояниях мас ки запрос прерывания запоминается триггером ТЗЗ.
Приоритетность приема запроса прерывания относи тельно других уровней обеспечивается работой триггера прерывания ТПР, который может быть установлен в со
стояние |
1, если есть запрос по данному |
уровню, |
разре |
шенный |
маской (состояние TM 1 равно |
1). На |
нулевой |
вход ТПР подаются единичные выходы таких же тригге ров ТПР от уровней со старшим приоритетом. Схема триггера ТПР построена так, что преобладает сигнал на его нулевом входе, следовательно, при одновременном по явлении нескольких запросов состояние 1 получит только один из ТПР, соответствующий наиболее старшему уров ню После того как один из ТПР получил состояние 1, ни один из уровней, даже более старших, не должен га сить его, пока не окончится процедура входа в прерываю щую программу. Входы всех триггеров ТПР, объединен ные схемой ИЛИ (не показана на данном рисунке), об разуют сигнал Прерывание осуществлено, который заставляет процессор прервать текущую программу и одновременно запрещает дальнейшее изменение состояний ТПР. После окончания процедуры входа процессор по сылает ответный сигнал, гасящий триггеры ТПР и тот из
4 8 2
триггеров ТЗЗ, который вызвал прерывание. Сигнал Пре рывание осуществлено снимается, и нормальная работа системы прерывания восстанавливается.
Чем больше количество уровней прерывания, тем большими возможностями обладает вычислительная си-
Ppept/Запие
oct/u/ccmSueuo
Pm Рлоиод |
Рблохам |
_і . |
|
|
Moâ момера //родил |
|
со с т а р ш и м |
а младшим |
PPM |
|
|
|
|
п ри ори те |
при ори тетом - |
~ffTF |
, |
Н |
Н |
|
т о м |
|
|
||||
|
|
\пт Pßl/,//x |
MampuYuae ere |
Трмдоеремй |
||
|
|
|
F |
р асп о зи аЦ |
оеги стр иоме- |
|
|
|
|
низ |
запроса |
р а ругсиа P 7pJ |
Рриори- |
/аи/е- |
- |
1 ) |
З а п р е т с з а - |
Р еги стр м асии |
|
|
миеРРР |
|
.1N' |
|||
схема |
|
|
|
пом ии аи и ем |
||
|
|
|
|
за п р о с а |
II |
|
|
|
|
|
|
||
|
|
Р еги стр запо- |
||||
Рашеиае £ PJJ, |
мииаиии |
з а |
1 |
|||
просе#PP 33J Дгнори- |
||||||
если 7^PPP=f |
|
|
|
I |
poâauue |
|
|
|
|
запроса |
|
||
|
|
|
|
J/cmauoâua масни |
||
|
|
Д иф ф еренци |
из процессора |
|||
|
|
р у ю щ и е иси- |
ли /леД и
~ Г ~
Формиро#а/ле-
тттттДи М м и таи и и за п р о с о в
З а п р о а / п рері/даи и я
Рис. 8-10. Блок прерывания.
стема. С другой стороны, как видно из предыдущего, вве дение каждого нового уровня связано с существенными затратами электронного оборудования. Поскольку для различных применений требуется разное количество ис точников прерывания, целесообразным представляется модульное построение системы прерывания, при котором аппаратура прерывания выполняется в виде блоков на фиксированное число уровней, а количество блоков опре деляется исходя из действительных потребностей заказ
3 1 |
4 8 3 |
чика. Упрощенная логическая схема такого блока преры вания представлена на рис. 8-10.
Триггеры маски, прерывания и запоминания запро сов, принадлежащие отдельным уровням, собраны в со ответствующие регистры. При появлении запроса в одном из уровней данного блока один из триггеров регистра прерывания РПР устанавливается в состояние 1 и воз буждает соответствующую вертикальную шину матричной схемы распознавания запроса (такая схема изображе на на рис. 8-5). Матричная схема формирует младшие разряды кода номера уровня, старшие разряды кода об разуются тумблерным регистром, который указывает но мер, присвоенный данному блоку прерывания.
Приоритет между запросами прерывания задается не только внутри одного блока, но и между различными бло ками прерывания. Блоки, имеющие меньший номер, об ладают более высоким приоритетом: выходы триггеров РПР из старшего блока формируют на нулевых входах триггеров РПР всех младших блоков сигналы, гасящие эти триггеры. Маска прерывания также построена по модуль ному принципу: каждый блок имеет собственный регистр маски, состояние которого устанавливается и изменяется процессором. Последний посылает наряду с новым содер жанием маски также и код номера маски, указывающий блок прерывания, к которому эта маска относится.
8-6. ОСОБЕННОСТИ СИСТЕМЫ ПРЕРЫВАНИЯ СОВРЕМЕННЫХ ЦВМ
В машинах IBM 360 и ЕС ЭВМ система прерывания имеет пять уровней («классов») прерывания, которым со ответствуют: 1) прерывания от ввода-вывода; 2) про граммные прерывания; 3) прерывание при обращении к супервизору; 4) внешние прерывания и 5) прерывания от схем контрЪля.
Прерывания от ввода-вывода, запрашиваемые пери ферийными устройствами и каналами, сигнализируют про цессору о нормальном или ненормальном окончании опе раций ввода-вывода.
Программные прерывания являются результатом ошибки в программе (использование несуществующих кодов операции или адресов, нарушение защиты памяти, различные виды переполнений разрядной сетки, исчезно вение результата при арифметических операциях и др).
484
Прерывание при обращении к супервизору происхо дит, если в программе встречается команда «обращение к супервизору». Этот вид прерывания является средством, позволяющим пользователю инициировать работу супер визора для выполнения определенных действий (напри мер, получить для программы пользователя дополни тельную область памяти, пустить операцию ввода-вывода и др.).
Внешние прерывания происходят по сигналам, посту пающим от кнопки прерывания на пульте оператора, от датчика времени, от внешних по отношению к машине объектов.
Прерывания от схем контроля возникают, если обна руживается ошибка в работе оборудования машины.
Конкретная причина прерывания внутри каждого класса может быть установлена программным путем по содержимому так называемого «кода прерывания», ко торый запоминается в ОЗУ при каждом случае преры вания, а также по запоминаемой в ОЗУ дополнительной информации, сопровождающей некоторые виды прерыва ния (Слово состояния канала при прерываниях от вводавывода, копия содержимого регистров и триггеров про цессора при прерываниях от схем контроля).
В системах IBM 360 и ЕС ЭВМ текущее состояние программы характеризуется Словом состояния програм мы (ССП).
При прерывании производится замена ССП. ССП прерванной программы (старое ССП) запоминается в памяти, а из памяти в процессор посылается новое ССП, которое определяет прерывающую программу.
Для каждого из 5 классов прерывания в фиксирован ных ячейках ОЗУ предусмотрены места для старого и нового ССП.
Во время работы машины может появиться одновре менно несколько запросов прерывания, относящихся к разным классам. Эти запросы обслуживаются в порядке приоритета, присвоенного классам прерывания. Следует различать приоритет восприятия запросов прерывания и приоритет исполнения затребованных прерывающих программ.
Установлен следующий порядок приоритета между запросами прерывания: 1) прерывания от схем контроля; 2) программные прерывания или прерывания при обра щении к супервизору (запросы этих прерываний не могут
485
возникать одновременно); 3) |
внешние прерывания; |
4) прерывания от ввода-вывода. |
|
При обработке прерывания |
от схем контроля прием |
других запросов прерывания не производится. Следова тельно, этот класс прерываний имеет наивысший приори тет не только между запросами прерывания, но и между прерывающими программами. Для других классов пре-
Маска прері/дания о т системі/ контроля
дредстадление инфор-
/наиии 3 коде а S3//или
3307/3
Маска cucme*f- /Огл |
\ |
ѵі/сс орері/даний защ£//Пб/ |
|
Состояние: о ж и д а н и е (с ч е т )
'/Состояние: задача (супервизор)
/
/Сод нрері/дания
3 |
7 8 |
77 72 73Л73\73 |
37 |
/Соду елодия
Д л и н а номанрб/ М а с к а программнд /зс
прерб/даний_____________________
\У
|
|
адрес кеманді/ |
32 ЗЗІУЗЗ \зз |
33 Тд~ |
S3 |
Рис. 8-11. |
Структура С С П |
в машинах IB M 360 и Е С Э В М . |
рывания приоритет между прерывающими программа ми имеет порядок, противоположный порядку приорите та между запросами.
Таким образом, прерывающие программы для одно временно поступивших запросов будут выполняться в следующем порядке: 1) прерывание от схем контроля; 2) прерывание от ввода-вывода; 3) внешние прерыва ния; 4) программные прерывания или обращение к су первизору.
Этот порядок может быть изменен установкой соот ветствующей маски. Маска устанавливается и изменяет ся программным путем. Прерывание данного уровня (класса) разрешается при наличии единицы в соответст вующем разряде маски и запрещается («маскируется»), если этот разряд содержит нуль.
На рис. 8-11 представлена структура ССП для машин IBM 360 и ЕС ЭВМ. ССП занимает два машинных слова, имеющих длину по 32 разряда каждое.
486
Непосредственно к системе прерывания относятся по ля ССП, содержащие маски прерывания и код преры вания. Предусмотрены следующие маски:
1) Маска системных прерываний, отдельные раз
ряды которой имеют следующий смысл: |
0 — маска |
|
мультиплексного |
канала, 1—6 — маска |
селекторных |
каналов № 1—6 |
соответственно, 7 — маска внешнего |
прерывания. Замаскированные прерывания ввода-выво да и внешние сохраняются в ожидании последующей от работки.
2)Маска прерывания от схем контроля (разряд 13). Замаскированное прерывание теряется.
3)Маска программных прерываний, отдельные раз ряды которой имеют следующий смысл: 36— маска пере
полнения с фиксированной запятой, 37—маска десятично го переполнения, 38— маска исчезновения порядка, 39— маска потери значимости (нулевая мантисса). Замаскиро ванные прерывания теряются.
Установка масок производится либо в момент преры вания в соответствии с содержимым нового ССП, либо специальными командами загрузки ССП в ОЗУ.
Код прерывания (разряды 16—31) указывает для данного класса прерывания фактическую причину (ис точник) запроса прерывания. Например, в случае преры вания от ввода-вывода этот код указывает источник за проса прерывания (номер канала, номер периферийно го устройства), при программном прерывании — причину прерывания (некорректность кода операции, адресации, представления данных, переполнение разрядной сетки, исчезновение порядка, потеря значимости и др.).
В остальных полях ССП содержится информация, ха рактеризующая другие параметры состояния программы в момент прерывания.
Сюда относятся присвоенный программе код ключа защиты памяти, код признака результата последней вы полнявшейся команды, указатель используемого про граммой кода для представления алфавитно-цифровых символов. ССП содержит адрес команды, с которой про грамма должна начать работать при новом пуске, а так же код длины предшествующей команды, при выполне нии которой произошло прерывание. Это позволяет в ря де случаев определять ее адрес, что используется при не которых прерываниях (например от программных оши бок).
487
ССП хранит также «программные состояния» процес сора для данной программы, определяемые состоянием соответствующих управляющих триггеров.
В рассматриваемых ЦВМ существуют четыре альтер нативных программных состояния процессора:
1) Состояние стоп или работа (переключение произ водится вручную). В состоянии стоп команды программы и прерывания не выполняются, электронные часы ЦВМ стоят. В состоянии работа команды и прерывания могут выполняться.
2)Состояние ожидание или счет (определяется зна чением разряда 14 ССП). В состоянии ожидание про грамма ожидает прерывания (например от ввода-выво да), команды не выполняются, машинные часы работают.
Всостоянии счет команды выполняются обычным путем.
3)Состояние супервизор или задача (определяется значением разряда 15 ССП). В состоянии супервизор могут выполняться все команды, а в состоянии задача не выполняются команды ввода-вывода и некоторые коман ды управления («привилегированные команды»).
4)Состояние прерывание разрешено или прерывание
замаскировано. Прерывание может быть замаскировано установкой нулей в разряды масок системных и програм мных прерываний и маски прерывания от схем контроля. Если какие-либо разряды этих масок содержат единицу, то соответствующие прерывания выполняются (состоя ние—прерывание разрешено).
Г л а в а д е в я т а я
КАНАЛЫ ВВОДА-ВЫВОДА
9 - 1 . О Б Щ И Е П О Н Я Т И Я О К А Н А Л Е В В О Д А - В Ы В О Д А
По мере расширения областей применения вычисли тельных машин и превращения их в системы обработки данных обогащался арсенал средств вычислительной техники II изменялся подход к логической организации вычислительной системы. Современные вычислительные системы содержат в своем составе большой и разнооб разный набор устройств для запоминания, регистрации, отображения, ввода и вывода информации. Для всех этих устройств существует общий термин «периферийные устройства». В качестве внешней памяти современные
488
вычислительные системы используют запоминающие устройства на магнитных лентах, дисках, барабанах. По мимо перфокартной и перфолентой аппаратуры для вво да и вывода информации применяются читающие устрой ства, считывающие с документов информацию, записан ную магнитными чернилами, специальными шрифтами. Наряду с медленно действующими электрифицированны ми пишущими машинками для регистрации результатов обработки применяются быстродействующие строчные печатающие механизмы, построители кривых, устройства отображения алфавито-цифровой информации на элек тронно-лучевых трубках. -I
Существенное значение приобрела проблема опера тивной связи человека с машиной, что выразилось в раз работке многочисленных типов запросно-ответных пуль тов, соединяющихся с машиной с помощью специальных кабелей или через стандартные телефонные и телеграф ные сети. Наконец, применение машин для управления технологическими процессами привело к оснащению их аналого-цифровыми и цифро-аналоговыми преобразовате лями и другими видами устройств связи С производствен ными объектами.
Расширение номенклатуры устройств ввода-вывода привело к тому, что в настоящее время характеристики вычислительной системы определяются не только и не столько возможностями ее процессора, сколько набором периферийных устройств, их техническими данными и ло гической организацией их совместной работы в си стеме.
Развитие периферийного оборудования вычислитель ных систем поставило перед современной вычислительной
техникой ряд |
проблем, главными из |
которых явля |
ются: |
|
|
необходимость создания вычислительных систем с пе |
||
ременным составом оборудования; |
периферийных |
|
обеспечение |
параллельной работы |
устройств как по отношению друг к другу, так и по от ношению к работе процессора;
необходимость унификации программирования вводавывода;
обеспечение реакции вычислительной системы на мно гообразие ситуаций, возникающих в устройствах вводавывода (готовность устройств, нарушение нормальной работы и др.)
489