Информатика и вычислительная техника


Организация управления периферийными устройствамиСистема прерывания программ


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

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

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

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

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

182

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

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

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

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

В интерфейсе с общей шиной сочетается принцип централизации в микропроцессоре основных функций управления обменом данными с широкой децентрализацией этих процессов в контроллерах и драйверах периферийных устройств.

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

  • - прямой доступ к памяти (ПДП);
  • - обмен данными командами текущей программы микропроцессора;
  • - обмен данными с использованием системы прерывания программ.


Прямой доступ к памяти обеспечивает автономно от микропроцессора передачу данных между ОП и ПУ.




184

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

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

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

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


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

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

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

185

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

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

Рис. 8.11. Процедура перехода к прерывающей программе и возврата из нее

На рис. 8.11 показана процедура перехода к прерывающей программе и возврат из нее с использованием слова состояния (или вектора состояния) программ. Каждому классу прерывания отводятся в постоянно

186

распределенной области памяти фиксированные ячейки ОП для хранения "старого" ССП и "нового" ССП.

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


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

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

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

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

Отметим основные из них.

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

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

187

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

  • Обозначения:
  • tp - время реакции;
  • tз - запоминание состояния прерванной программы;
  • tc - собственно прерывающая программа;
  • tв - восстановление состояния прерванной программы


3. Время потерь tп, характеризующее непроизводительные суммарные расходы времени на запоминание (1з) и восстановление (te) состояния прерываемой программы, т.е. tп : = tз + tв (рис. 8.12).

4. Глубина прерывания - максимальное число программ, которые могут прерывать друг друга.Если после перехода к прерывающей программе и вплоть до ее окончания прием других запросов прерывания запрещается, то говорят, что система имеет глубину прерывания, равную ]. Глубина равна п, если допускается последовательное прерывание до n программ. Глубина прерывания обычно совпадает с числом уровней приоритета в системе прерываний.

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

188

182 :: 183 :: 184 :: 185 :: 186 :: 187 :: 188 :: Содержание


Содержание раздела