ГЛАВНАЯ
БАЗЫ ДАННЫХ
ИНФОРМАЦИОННЫЕ
СИСТЕМЫ
  УЧЕБНЫЕ МАТЕРИАЛЫ   
ИНФОРМАЦИОННЫЕ СЕТИ
ЭЛЕКТРОНИКА
КОМПЬЮТЕР
ЗАРАБОТАЙ В СЕТИ
 
 


Яндекс цитирования

Besucherzahler dating websites
счетчик посещений





Rambler's Top100
   

Прерывания в ЭВМ

Содержание

1. Принципы организации систем прерывания  программ.

1.1 Векторное прерывание.

1.2 Программно-управляемый    приоритет    прерывающих    программ.

2. Особенности систем прерывания  малых ЭВМ, микропроцессоров и  микро-ЭВМ  

2.1 Векторная система прерывания в малых ЭВМ СМ-4 и микро-ЭВМ СМ-1300 

2.2 Система   прерывания   8-разрядного   микропроцессора   К580.

3. Система прерывания и некоторые особенности организации режимов управления в ЕС ЭВМ..

 

1. Принципы организации систем прерывания  программ

 

Во время выполнения ЭВМ текущей программы внутри маншины и в связанной с ней внешней среде (например, в технолонгическом процессе, управляемом ЭВМ) могут возникать собынтия, требующие немедленной реакции на них со стороны машины.

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

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

 

 

Рис. 1.1. Прерывание программ

 

Каждое событие, требующее прерывания, сопровождается сигналом, оповещающим ЭВМ. Назовем эти сигналы запросанми прерывания. Программу, затребованную запросом прерывания, назовем прерывающей программой,  противопоставляя  ее прерываемой программе, выполнявшейся машиной до  появления запроса.

Как показано на рис. 1.1, запросы на прерывание могут возникать внутри самой ЭВМ и в ее внешней среде. К пернвым относятся, например, занпросы при возникновении в ЭВМ таких событий, как появнление сбоев в ее аппаратуре, переполнение разрядной сетки, попытка деления на 0, выход из установленной для данной программы области памянти, затребование периферийным устройством операции .ввода-вывода, завершение операции ввода-вывода перинферийным устройством или возникновение при этой опенрации особой ситуации и др. Хотя некоторые из указаннных событий порождаются самой программой, моменты их появления, как правило, невозможно предусмотреть. Запросы во внешней среде могут возникать от других ЭВМ, от аварийных и некоторых других датчиков технологиченского процесса и т. п.

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

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

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

Чтобы ЭВМ могла, не требуя больших усилий от програмнмиста, реализовывать с высоким быстродействием прерывания программ, машине необходимо придать соответствующие апнпаратурные и программные средства, совокупность которых получила название системы прерывания программ или контролнлера прерывания.

Основными функциями системы прерывания являются:

-        запоминание состояния прерываемой программы и осунществление перехода к прерывающей программе;

-        восстановление состояния прерванной программы и возврат к ней.

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

Характеристики системы прерывания. Для оценки эффекнтивности систем прерывания могут быть использованы слендующие характеристики.

Общее количество запросов прерывания (входов в систему прерывания).

Время реакции — время между появлением запроса прерывания и началом выполнения прерывающей программы.

На рис. 1.2 приведена упрощенная временная диаграмма процесса прерывания в предположении, что управление запоминнанием состояния и возвратом возложено на саму прерываюнщую программу, которая в этом случае состоит из трех частей: подготовительной и заключительной, обеспечивающих перенключение программ, и собственно прерывающей программы, выполняющей затребованную запросом работу.

 

 

Рис. 1.2. Упрощенная временная диаграмма процесса прерывания

 

На рис. 1.2 время реакции обозначено fp. Для одного и того же запроса задержки в исполнении прерывающей программы зависят от того, сколько программ со старшим приоритетом ждет обслуживания. Поэтому время реакции определяют для запроса с наивысшим приоритетом.

Затраты времени на переключение программ (издержки прерывания) равны суммарному расходу времени на запоминание и восстановление состояния пронграммы:

Глубина прерывания — максимальное число пронграмм, которые могут прерывать друг друга. Если после перенхода к прерывающей программе и вплоть до ее окончания принем других запросов запрещается, то говорят, что система имеет глубину прерывания, равную 1. Глубина равна п, если допунскается последовательное прерывание до я программ. Глубина прерывания обычно совпадает с числом уровней приоритета в системе прерываний. На рис. 9.8 показано прерывание в синстемах с различной глубиной прерывания (предполагается, что приоритет каждого следующего запроса выше предыдущего). Системы с большим значением глубины прерывания обеспечинвают более быструю реакцию на срочные запросы.

Насыщение системы прерывания. Если запрос окажется необслуженным к моменту прихода нового запроса от того же источника, то возникает так называемое насыщение системы прерывания. В этом случае предыдущий запрос прерывания от данного источника будет машиной утрачен, что недопустимо. Быстродействие ЭВМ, характеристики системы прерывания, число источников прерывания и частоты возникновения запронсов должны быть согласованы таким образом, чтобы насыщенние было невозможным.

Допустимые моменты прерывания программ. Большей частью прерывание допускается после окончания любой теку щей команды. В этом случае время реакции определяется в оснновном длительностью выполнения одной команды.

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

Имеются ситуации, в которых желательно немедленное пренрывание. Если, например, аппаратура контроля обнаружила ошибку, то целесообразно сразу же прервать операцию, пока ошибка не оказала влияние на следующие такты работы машины.

Число классов (уровней) прерывания. В ЭВМ число разнличных запросов (причин) прерывания может достигать ненскольких десятков или сотен. В таких случаях часто запросы разделяют на отдельные классы или уровни.

Совокупность запросов, инициирующих одну и ту же пренрывающую программу, образует класс или уровень прерывания (рис. 1.3).

Запросы всех источников прерывания поступают на регистр запросов прерывания РгЗП, устанавливая соответствующие его разряды (флажки) в состояние 1, указывающее на наличие занпроса прерывания определенного источника. Запросы классов прерывания ЗПК1 - ЗПКk формируются элементами ИЛИ, объединяющими разряды РгЗП, относящиеся к соответствуюнщим классам (уровням). Еще одна схема ИЛИ формирует общий сигнал прерывания ОСП, поступающий в устройство управления процессора. Значение сигнала ОСП определяется выранжением

.

Информация о действительной причине прерывания, порондившей запрос данного класса, содержится в коде прерывания, который отражает состояние разрядов РгЗП, относящихся к данному классу прерывания. После принятия запроса прерынвания на исполнение и передачи управления прерывающей пронграмме соответствующий триггер РгЗП сбрасывается. Объединнение запросов в классы прерывания позволяет уменьшить объем аппаратуры, но связано с замедлением работы системы прерывания.

 

 Рис 1.3. Разделение запросов на классы прерывания

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

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

В простейшем случае вектор прерывания состоит лишь из начального адреса прерывающей программы.

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

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

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

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

Процедура прерывания с опросом источников (флажков) прерывания. При указанном способе задания приоритета между запросами каждому источнику запросов соответствует разряд (флажок) в регистре запросов прерывания (регистре флажнков).

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

На рис. 1.4 показаны различные способы реализации пронцедуры опроса источников сигналов прерывания. На рис. 1.4, а показан процесс прерывания с программным опросом флажков прерывания (или, другими словами, опросом периферийных устройств, затребовавших передачу данных). Программный опрос источников прерываний занимает сравнительно много времени. Для уменьшения этого времени процедуру опроса ренализуют аппаратурным путем.

 

Рис. 1.4.а.  Программный опрос

Схема циклического опроса запросов (источников) прерыванний (рис. 1.4,6). Опрос k линии запросов прерывания (или разнрядов регистра запросов прерывания) производится последовантельно (циклически) с помощью n-разрядного счетчика () на который с некоторой частотой поступают импульсы от геннератора. Поиск приоритетного запроса прерывания начинаетнся со сброса счетчика и одновременно триггера Т в нулевое сонстояние, при этом импульсы генератора начинают поступать на вход счетчика. При помощи дешифратора и элементов И в каждом такте поиска проверяется наличие запроса прерыванния, номер которого совпадает с кодом счетчика. Если на даннном входе нет запроса прерывания, то после прибавления 1 к счетчику проверяется следующий по

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Рис. 1.4.б. Циклический (многотактный) опрос.

 

порядку вход. Если имеется запрос, триггер Г перебрасывается в 1, при этом в пронцессор посылается общий сигнал прерывания ОСП и прекранщается поступление импульсов на вход счетчика, т. е. заверншается цикл просмотра входов системы прерывания. Содержинмое счетчика — код номера старшего по приоритету выставленнного запроса — используется для формирования начального адреса прерывающей программы. После передачи управления прерывающей программе, счетчик (и триггер 7) сбрасывается в 0, и процедура опроса запросов возобновляется, начиная с первого входа.

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

Цепочечная однотактная схема определения приоритетного запроса (лдейзи-цепочка╗) представлена на рис. 1.4, в. Как и в предыдущих случаях, приоритет запросов прерывания возранжает с уменьшением их номера.

 

Рис. 1.4.в. цепочечный однотактный опрос (лдейзи - цепочка╗)

 

Процедура определения приоритетного запроса инициирунется сигналом Приоритет, поступающим на цепочку последонвательно включенных схем И. При отсутствии запросов этот сигнал пройдет через цепочку и сигнал общего запроса прерывания не сформируется. Если среди выставленных запросов прерывания наибольший приоритет имеет i-й запрос  (ЗПi = 1, ),  то  распространение   сигнала   Приоритет   правее схемы И с номером i блокируется. На i выходе цепочечной схемы будет сигнал yi = 1, на всех других 0. В процессор постунпит общий сигнал прерывания, при этом шифратор по сигналу yi = 1 сформирует код номера i-го запроса, принятого к обслунживанию. По сигналу процессора Подтверждение прерывания (на рис. 1.4 не показан) этот код передается в процессор и иснпользуется для формирования начального адреса прерываюнщей программы.

Схемы, представленные на рис. 1.4,6 и в, производят поиск крайней левой единицы в наборе сигналов прерывания и форнмируют код номера i запроса, удовлетворяющего условию

1.1 Векторное прерывание

Представленные на рис. 9.10 способы определения запроса с наибольшим приоритетом включают в себя так или иначе вынполняемую процедуру опроса источников прерывания (входов системы прерывания). Эта процедура, даже если она выполнняется аппаратурными средствами, требует сравнительно больнших временных затрат.

Более гибким и динамичным является векторное прерыванние, при котором исключается опрос источников прерывания (флажков регистра прерывания).

Прерывание называется векторным, если источник прерыванния, выставляя запрос прерывания, посылает в процессор (вынставляет на шины интерфейса) код адреса в памяти своего векнтора прерывания.

Отметим, что если прерывание на основе опроса источнинков прерываний всегда сопровождается переходом по одному и тому же адресу и инициирует одну и ту же прерывающую подпрограмму, которая после идентификации источника запроса и формирования адреса начала соответствующей запросу пренрывающей программы передает ей управление, то при векторнном прерывании каждому запросу или уровню (классу) прерынвания или, другими словами, устройству — источнику прерыванния соответствует переход к начальному адресу соответствуюнщей прерывающей программы, задаваемому вектором прерынвания.

1.2 Программно-управляемый    приоритет    прерывающих    программ

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

В ЭВМ широко применяются два способа реализации пронграммно-управляемого приоритета прерывающих программ, в которых используются соответственно порог прерывания (в малых и микро-ЭВМ) и маски прерывания (в ЭВМ общего назначения).

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

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

В современных ЭВМ общего назначения наибольшее раснпространение получило программное управление приоритетом на основе маски прерывания (рис. 1.5).

 

 

Рис. 1.5. Программно – управляемый приоритет на основе маски прерывания

 

Маска прерывания представляет собой двоичный код, разнряды которого поставлены в соответствие запросам или класнсам прерывания. Маска загружается командой программы в регистр маски. Состояние 1 в данном разряде регистра маски разрешает, а состояние 0 запрещает (маскирует) прерывание тенкущей программы от соответствующего запроса. Таким обранзом, программа, изменяя маску в регистре маски, может устаннавливать произвольные приоритетные соотношения между программами без перекоммутации линий, по которым постунпают запросы прерывания. Каждая прерывающая программа может установить свою маску. При формировании маски 1 устанавливаются в разряды, соответствующие запросам (пренрывающим программам) с более высоким, чем у данной пронграммы, приоритетом.

Схемы И выделяют незамаскированные запросы прерыванния, из которых специальная схема, аналогичная цепочечной схеме на рис. 1.4, в выделяет наиболее приоритетный и форминрует код его номера i, удовлетворяющего условию

С замаскированным запросом в зависимости от причины прерывания поступают двояким образом: или он игнорируется, или запоминается, с тем чтобы осуществить затребованные действия, когда запрет будет снят. Например, если прерывание вызвано окончанием операции в периферийном устройстве, то его следует, как правило, запомнить, так как иначе ЭВМ останнется неосведомленной о том, что периферийное устройство освободилось. Прерывание, вызванное переполнением разряднной сетки при арифметической операции, следует при его манскировании игнорировать, так как запоминание этого запроса может привести к тому, что он окажет действие на часть программы или другую программу, к которым это переполнение не относится.

2. Особенности систем прерывания  малых ЭВМ, микропроцессоров и  микро-ЭВМ

 

Во многих малых ЭВМ (например, СМ-4), микропроцессонрах и построенных на микропроцессорах микро-ЭВМ реализонваны многоуровневые векторные системы прерывания с иснпользованием порога прерывания и стековой памяти в процедурах перехода к прерывающей программе и возврата к прерванной программе.

 

2.1 Векторная система прерывания в малых ЭВМ СМ-4 и минкро-ЭВМ СМ-1300

 

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

Запросы внешних прерываний генерируются периферийнынми устройствами, подсоединенными к интерфейсу лобщая шина╗. Имеется пять уровнней приоритета прерывания: самый старший, абсолютный приноритет принадлежит уровню 8 (запросы прямого доступа к памяти ЗПД), далее идут уровни 7-4. Каждый уровень обслуживают две линии: линия запросов прерывания ЗШ ((— номер уровня), к которой параллельно подсоединяются ПУ соответствующего уровня приоритета, и линия разреншения прерывания РШ для уровня i, проходящая послендовательно через все устройства, относящиеся к данному уровню.

Схема Арбитр из выставленных запросов выделяет запрос старшего уровня приоритета и сравнивает его уровень с приноритетом процессора, т. е. с программно-устанавливаемым в регистре слова состояния процессора Порогом прерывания (может принимать значения 4 — 7). Если уровень наиболее приноритетного из выставленных запросов внешнего прерывания превышает порог прерывания, арбитр (процессор) после заверншения выполнения текущей команды выдает сигнал разрешенния прерывания на линию РП соответствующего уровня. Этот сигнал поступает в первое по пути его прохождения устройнство, выставившее запрос и блокирующее дальнейшее распронстранение сигнала РП.

В случае поступления запросов ЗП4-3П7 устройство, понлучив разрешение на прерывание, передает в процессор адрес соответствующего вектора прерывания. Процессор, получив адрес вектора прерывания, помещает в стек, т. е. в ячейки панмяти, адресуемые указателем стека, два слова вектора состоянния: сначала текущее слово состояния процессора (второе слонво вектора состояния), затем первое слово — содержимое .счетчика команд (продвинутый адрес прерванной программы). Перед каждой передачей в стек значение указателя стека уменьншается на два.

Далее в счетчик команд из ячейки, хранящей первое слово вектора прерывания, передается начальный адрес прерываюнщей программы, а из следующей ячейки второе слово вектора прерывания заносится в регистр слова состояния процессора. В новом слове состояния процессора порог прерывания должен быть не меньше уровня приоритета принятого к обслуживанию запроса, чтобы повторный запрос от этого источника прерыванния не мог прервать выполняемую прерывающую программу. Управление переходит к программе обработки прерывания, занданной вектором прерывания. Если эта программа использует общие регистры, то она начинается с передачи их содержимого в стековую память с помощью команд передачи с автодекренментной прямой адресации по регистру указателя стека Рг 6.

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

Имеются особенности в процедуре выполнения запросов прерываний ЗП8 (запросов прямого доступа к памяти). Их приноритет всегда выше приоритета процессора. Поэтому в ответ на запрос ЗП8 (ЗПД) сигнал разрешения РП8 (РПД) посылаетнся немедленно, даже если не завершено выполнение текущей команды, и производится обмен данными между перифенрийным устройством и ОП без участия процессора.

 

2.2 Система   прерывания   8-разрядного   микропроцессора   К580

Система прерывания имеет много общего с только что раснсмотренной, что определяется в первую очередь тем, что в этом случае используются модификация интерфейса типа лобщая шина╗ (лмультишина╗), порог прерывания и стековая память. Есть и отличия, например в формировании адреса и структуре вектора прерывания.

Вектор состояния занимает четынре 8-разрядных слова. Векторы прерываний для восьми уровнней прерывания хранятся в фиксированных ячейках начальной области памяти с адресами 0, 8, 16, ...,56.

На рис. 1.6 представлена функциональная схема блока приноритетного прерывания (БПП), входящая в состав схем (корпунсов) микропроцессорного семейства. Этот блок приоритетного прерывания реализует восьмиуровневую систему прерывания. Запросы поступают на входы R7R0 (приоритет растет с увенличением номера входа). Число уровней (входов) может быть увеличено присоединением дополнительного БПП. При однонвременном появлении нескольких запросов (запрос соответнствует низкому уровню потенциала) в регистр запросов прерывания будет записана 1 лишь в разряд, соответствующий наиболее приоритетному из поступивших запросов, так как сигнал запроса Rj = 0 на одном из входов блокирует все входы с меньшими номерами.

Восьмиразрядный унитарный код номера запроса поступает в шифратор, формирующий 3-разрядный двоичный код номера запроса N = А0А1А2 = А, который в компараторе Км сравнинвается с кодом порога прерывания (приоритета текущей пронграммы) В = B0B1B2, хранящимся в регистре порога прерыванния (регистре текущего состояния). Если уровень запроса выше установленного идущей на процессоре программой порога пренрывания (А > В), то на выход компаратора поступает сигнал 1, в противном случае 0.

Блок приоритетного прерывания находится в режиме ожиндания сигнала разрешения стробирования (на схеме не поканзан), который формирует микропроцессор по окончании цикла команды. Если в момент стробирования БПП, т. е. в момент поступления от микропроцессора сигнала разрешения прерыванния (РП) (INTE), на выходе компаратора единичный сигнал, то триггер ТгП переходит в состояние 1 и на выходе буферной схемы формируется общий сигнал прерывания , конторый устанавливает триггер запрета прерывания ТрЗт, кратнковременно блокирующий регистр РгЗП на случай появления запросов с более высоким приоритетом. Сигнал  инициирует формирование кода команды передачи управления

,

которая в данном случае имеет вид 11 А0А1А2 111. При этом 3-разрядный номер N=A0AiA2 принятого к обслуживанию запроса передается в микропроцессор по сигналу . Протекание процедуры прерывания поясняет рис. 9.15.

 

 

Рис. 1.6. Функциональная схема блока приоритетного прерывания

 

Узлы: РгЗП – регистр запросов прерывания; РгПП – регистр порога прерывания; ТрЗт – триггер запрета прерывания; ШПр – шифратор приоритета запроса прерывания; Км – компаратор; ТгП – триггер прерывания;

Сигналы: - разрешение задачи кода приоритета; РБПП – разрешение работы данного БПП в многоблочной системе прерывания,  - выбор состояния в группе [подается от дешифратора в многоуровневых (более восьми) системах прерывания];  - запрет прерывания; РП – разрешение прерывания;  - общий сигнал прерывания;  - сигнал синхронизации триггера прерывания;  РРб – сигнал разрешения работы следующему (в сторону уменьшения приоритета) БПП в многоблочной системе прерывания.

 По команде RST N аппаратура МП записывает в стек (в ОП по адресу из УС) содержимое СчК (адрес возврата) и зангружает в СчК адрес (соответствует числу )

 

по которому произойдет передача управления.

Код N=А0А1А2 определяет адрес вектора прерывания сонответствующей прерывающей программы, а точнее, начальный адрес группы ячеек ОП, хранящей информацию о начальном адресе прерывающей программы. В рассматриваемом МП сохранение в памяти вектора состояния прерываемой программы и замена его в регистрах вектором прерывания прерывающей программы в отличие от малых ЭВМ СМ-4 выполняются в оснновном не аппаратурными, а программными средствами. Понэтому в данном случае элементы вектора прерывания хранятся в ОП в виде операндов фрагмента программы, выполняющей указанные процедуры (рис. 1.7).

 

 

Рис. 1.7.  Процедура прерывания программ в микропроцессоре К580

IMP – передача управления; DI и EI – запрещение и разрешение прерывания; PUSH и POP  - запись в стек и считывание из стека; RET – загрузка из стека Счк (возврат к прерванной программе)

 

С учетом принятого в настоянщей главе определения вектора прерывания и описанной выше процедуры прерывания в ЭВМ СМ-4 код N = А0А1А2 может рассматриваться как адрес вектора прерывания. Код N может не только формироваться аппаратурой, как это было описано выше, но и передаваться источником прерывания, например пенриферийным устройством, по шине данных интерфейса вместе с запросом прерывания.

Управление переходит к команде, загружающей в СчК адрес начала прерывающей программы. Начальная часть этой программы помещает в стек содержимое регистра-аккумулятонра А и регистра признаков F (команда PUSH PSW), а также и других программно доступных регистров МП, если прерынвающая программа будет их использовать. При этом каждой командой передачи в стек передается содержимое соответнствующей пары регистров. Далее выполняется собственно пронграмма обработки прерывания.

Перед выходом из прерывающей программы последняя воснстанавливает состояния регистров, в том числе аккумулятора и регистра признаков, которые они имели перед прерыванием, и управление переходит к прерванной программе (команда RET). Перед выполнением процедуры запоминания и восстанонвления содержимого регистров прерывание запрещается (конманда DI), а по их завершении разрешается (команда EI).

  

3. Система прерывания и некоторые особенности организации режимов управления в ЕС ЭВМ

 

В машинах общего назначения, входящих в систему ЕС ЭВМ II очереди, представляющей собой существенное развитие ЕС ЭВМ I очереди, возможны два режима: режим основного управления (режим ВС), соответствующий режиму работы маншин ЕС ЭВМ I очереди и полностью программно-совменстимый с ними; режим расширенного управления (режим EС), позволяющий использовать новые аппаратурные и пронграммные средства и соответственно новые функциональные возможности ЕС ЭВМ II очереди.

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

В ЕС ЭВМ II очереди имеются следующие классы (уровни) прерывания: 1) от ввода-вывода; 2) программные; 3) при обращении к супервизору; 4) внешние; 5) от схем контроля и 6) повторного пуска (только в режиме ЕС).

В каждом классе имеется несколько источников (причин) прерывания и, следовательно, запросов прерывания, как это было показано на рис. 9.9.

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

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

Прерывание при обращении к супервизору происходит, если в программе встречается команда лОбращение к супервизору╗. Этот вид прерывания является средством, позволяющим польнзователю инициировать работу супервизора для выполнения определенных действий (например, получить, для программы пользователя дополнительную область памяти, пустить операнцию ввода-вывода и др.).

Внешние прерывания вызываются сигналами, поступающинми от кнопки прерывания на пульте оператора, от датчика времени (таймера), от внешних по отношению к машине объектов.

Прерывания от схем контроля возникают, если обнаружинваются ошибки в работе оборудования машины.

Прерывания повторного пуска поступают от кнопки повторнного пуска на пульте оператора.

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

Текущее состояние программы характеризуется вектором состояния, который в ЕС ЭВМ называется словом состояния программы (ССП).

В ЭВМ ЕС, архитектура которых сложилась в основном раньше, чем получили развитие малые и микро-ЭВМ, отсутствует механизм стековой памяти и ячейки памяти с фиксиронванными адресами используются для хранения векторов сонстояний прерванных и векторов прерываний прерывающих программ (которые в данном случае называются старыми и новыми словами состояния программы).

На рис. 1.8 представлена структура ССП для обоих режинмов управления.

 

 

Рис. 1.8. Структура ССП в машинах ЕС ЭВМ:

а) режим основного управления; б) – режим расширенного управления

  Слово состояния программы занимает два 32-разрядных слова.

Режим управления устанавливается значением 12-го разряда ССП. При 0 в этом разряде имеет место режим основного управления, при 1 — расширенного.

Рассмотрим значения полей ССП основного режима упранвления.

Непосредственно к системе прерывания относятся поля ССП, содержащие маски прерывания и код прерывания. Преднусмотрены следующие маски;

1) маска системных прерываний. Отдельные разряды этой маски имеют следующий смысл: 0 — маска мультиплексного канала; 1 —6 — маска селекторных каналов соответственно № 1 —5; 6 — определяет, допустимо ли прерывЬние для каналов с номерами выше 5 (прерывание возможно, если равны 1 этот разряд и разряд маски соответствующего канала в управляюнщем регистре); 7 — маска внешних прерываний. Замаскиронванные прерывания ввода-вывода и внешние сохраняются в ожидании последующей обработки;

2) маска прерывания от схем контроля (разряд 13). Замаскинрованное прерывание теряется;

3) маска программных прерываний. Отдельные разряды этой маски имеют следующий смысл: 36 — маска переполнения с фиксированной запятой; 37 — маска десятичного переполненния; 38 — маска исчезновения порядка; 39 — маска потери знанчимости (нулевая мантисса). Замаскированные прерывания тенряются.

Маски устанавливаются и изменяются программным путем. Прерывание данного класса разрешается при наличии 1 в сонответствующем разряде маски и запрещается (маскируется), еснли этот разряд содержит 0. Установка масок производится линбо в момент прерывания в соответствии с содержанием нового ССП, либо при выполнении специальной команды загрузки ССП.

Код прерывания (разряды 16 — 31) указывает для данного класса прерывания фактическую причину (источник) запроса прерывания. Например, при прерывании от ввода-вывода этот код указывает источник запроса прерывания (номер канала, нонмер периферийного устройства), при программном прерываннии — причину прерывания (некорректность кода операции, адресации, представления данных, переполнение разрядной сетнки, исчезновение порядка, потеря значимости и др.).

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

Слово состояния программы хранит также программные сонстояния процессора для данной программы, определяемые сонстоянием соответствующих управляющих триггеров.

В рассматриваемых ЭВМ существуют четыре альтернантивных программных состояния процессора:

1) Стоп или Работа (переключение производится вручную). В состоянии Стоп команды программы и прерывания не вынполняются, электронные часы ЭВМ стоят. В состоянии Работа команды и прерывания могут выполняться;

2) Ожидание или Счет (определяется значением разряда 14 ССП). В состоянии Ожидание программа ожидает прерывания (например, от ввода-вывода), команды не выполняются, маншинные часы работают. В состоянии Счет команды выполнняются обычным путем;

3) Супервизор или Задача (определяется значением разряда 15 ССП) В состоянии Супервизор могут выполняться все конманды, а в состоянии Задача не выполняются команды ввода-вывода и некоторые команды управления (привилегированные команды);

4) Прерывание разрешено или Прерывание замаскировано. Прерывание может быть замаскировано установкой нулей в разряды масок прерываний. Если какие-либо разряды этих масок содержат единицу, то соответствующие прерывания вынполняются (состояние Прерывания разрешено).

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

В управляющем регистре 0 разряд 0 задает (запрещает) блок-мультиплексный режим каналов ввода-вывода; разряд

1 — управление  запретом   установки  маски   системы;   разряд

2 — управление синхронизацией часов; разряды 8, 9 и 11 — управление размером страниц и сегментов при динаминческом распределении памяти; разряды 16—19 — маски оповенщения о сбое, экстренном сигнале, сигнале внешнего вызова.

В управляющем регистре 1 разряды 0—7 и 8 — 25 выделены для указания соответственно длины и адреса таблицы сегменнтов. Расширенные маски каналов находятся в разрядах 0 — 31 управляющего регистра 2. Маска монитора находится в разряндах 16 — 31 управляющего регистра 8. Расширенная маска пронграммных событий размещена в разрядах 0 — 3 и 16 — 3! упранвляющего регистра 9. В управляющих регистрах 10 и 11 в разрядах 8 — 31 находятся граничные адреса области памяти, на которую распространяется регистрация программных собынтий.

Процедура перехода к прерывающей программе и возврата из нее, реализуемая в ЕС ЭВМ, пояснена на рис. 1.9. Каждому классу прерывания отводятся в постоянно распределенной области памяти фиксированные ячейки ОП для хранения лстанрого╗ ССП и лнового╗ ССП.

 

 

Рис. 1.9. Процедура перехода к прерывающей программе и возврата из нее в ЕС ЭВМ

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

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

Выполнение прерывающей программы начинается с запоминнания в памяти содержимого тех общих регистров и регинстров плавающей запятой, которые ею будут использованы. Далее выполняется собственно прерывающая программа, котонрая начинается с анализа лкода прерывания╗ и определения конкретной причины прерывания и инициирования подпронграммы отработки прерывания, соответствующей этой принчине.

Заключительная часть прерывающей программы восстананвливает сохраненное в ОП содержимое регистров и завершает свою работу командой загрузки слова состояния прерванной программы из ячейки лстарого╗ ССП в РгССП. Управление переходит к прерванной программе.

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

Установлен следующий порядок приоритета между запросанми прерывания: 1) прерывания от схем контроля; 2) прерыванния повторного пуска; 3) программные прерывания или прерынвания при обращении к супервизору (запросы этих прерываний не могут возникать одновременно); 4) внешние прерывания; 5) прерывания от ввода-вывода.

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

Фактический порядок исполнения прерывающих программ определяется приоритетом не между запросами прерывания, а между прерывающими программами [32].

 

 

Рис. 1.10. Структура система прерывание  (режим основного управления)

 Функционирование системы прерывания в машинах ЕС ЭВМ поясняется схемой на рис. 1.10. Работа системы пренрывания управляется общими синхросигналами процессора. Занпросы прерывания поступают в регистр запросов прерывания РгЗП через схемы маскирования запросов МЗ, состоящие из элементов И, управляемых сигналами триггеров соответствуюнщих разрядов масок в РгССП. Схема приоритетного выбора запроса класса прерывания ПКл, анализируя незамаскиронванные запросы, устанавливает 1 в соответствующий разряд регистра класса прерывания РгКл, в котором разряды 0 — 5 присвоены отдельным классам в порядке убывания приоритентов запросов прерывания.

Для принятого к обслуживанию класса прерывания в сонответствующее поле РгССП передается код прерывания, форминруемый шифратором кода прерывания ШфКП непосредствен но из кода, стоящего в соответствующей классу группе разрядов РгЗП при программных прерываниях, и по выходу схемы приоритетного выбора источника запроса прерывания при прерываниях от ввода-вывода и внешних (схемы ПВВ и ПВн). При прерываниях от ввода-вывода в поле кода прерынвания РгССП поступает от соответствующего ШфКП номер канала, а из самого канала — номер периферийного устройства. Заметим, что при прерываниях от схем контроля код прерыванния состоит из одних 0.

По коду в РгКл шифратор адреса ШфА формирует в РгАССП фиксированный адрес ячейки лстарого╗ ССП даннонго класса прерывания, куда передается ССП текущей пронграммы из РгССП. Затем установкой 1 в старший разряд РгАССП образуется фиксированный адрес ячейки, из которой лновое╗ ССП загружается в РгССП, после чего управление переходит к прерывающей программе.

 

 

 
Hosted by uCoz