Горнец Н.Н., Рощин А.Г. Организация ЭВМ и систем (2006) (1186251), страница 20
Текст из файла (страница 20)
Для компьютеров 1ВМ РС многочисленные способы адресации отчасти достались «по наследству» от ранних моделей микропроцессоров, когда разрядность была ограничена. Выбору реализуемой компьютером системы команд должно уделяться самое серьезное внимание. Каждая аппаратно реализуемая операция, входящая в систему команд, выполняется быстрее, чем аналогичная операция, не входящая в систему команд и, следовательно, реализуемая в виде подпрограммы.
На первый взгляд из этого следует, что увеличение аппаратно реализуемых операций, т.е. расширение системы команд, может привести к повышению быстродействия машины. Этот вывод положен в основу концепции архитектуры компьютера с расширенным набором команд — С1БС-архитектур. Однако расширение системы команд может приводить и к обратным результатам. Именно это обстоятельство послужило толчком для разработки машин с сокращенным набором команд — К1БС-архитектур. 5.3. Система прерываний и приостановок, состояние процессора Во время выполнения какой-либо программы компьютером могут возникнуть события, требующие его немедленной реакции. Необходимость незамедлительного решения другой задачи, переполнение разрядной сетки, программный или аппаратный сбой, окончание предусмотренного интервала времени и т.д. — все это события, требующие переключения компьютера на другую программу.
Переход к другой программе осуществляется посредством системы прерываний. Прерывание программы — это процесс переключения процессора с одной программы на другую по внешнему сигналу с сохранением информации для последующего возобновления прерванной программы. При возникновении события, приводящего к прерыванию, формируется сигнал, называемый запросом прерывания. Существует несколько источников запросов прерывания: это схемы контроля процессора, система питания, память, периферийные устройства и т.д. При наличии нескольких источников запро- 114 сов прерывания устанавливается определенный порядок их обслуживания путем назначения приоритетов. Запросы прерываний направляются на различные разряды специального регистра (регистра запросов прерываний), опрос которого производится в строго определенной последовательности при завершении очередной команды.
Номер разряда этого регистра не только определяет приоритет запроса прерываний, но и позволяет найти соответствующую данному запросу программу обслуживания прерывания. Поступивший запрос может прервать только менее приоритетную программу. .Существует также векторная система прерываний. В ней информация о месте возникновения запроса передается от источника прерываний в виде адреса ячейки памяти, содержимое которой определяет конкретную программу обслуживания.
Помимо адреса перехода к программе обслуживания эта ячейка хранит дополнительную управляющую информацию. Содержимое этой ячейки (или нескольких последовательных ячеек) принято называть вектором прерываний. Еще один очень важный процесс — приостановки, при которых средства управления, работающие автономно от процессора, задерживают его работу на время цикла памяти, когда память занята приемом или выдачей информации для другого устройства. Во время приостановок, называемых также занятием цикла памяти, процессор никаких действий не выполняет, его состояние не меняется, но выполнение очередной команды задерживается до освобождения памяти. Возможности ограничены непосредственной передачей данных между ОП и процессором, когда память или шина используются несколькими устройствами. Работой компьютера управляют команды программы, но конкретные выполняемые действия зависят от его текущего состояния.
При работе машины в специальном регистре процессора постоянно находится слово состояния программы, которое и характеризует его состояние. Это слово содержит информацию, необходимую для возобновления программы при прерываниях: указания о разрешенных прерываниях, адрес текущей выполняемой команды, различные признаки, ключи защиты и маски. Характеристики системы прерываний.
Систему прерываний характеризуют: общим числом входов от источников (числом запросов прерываний); числом уровней прерывания, по которым сгруппированы источники, вызывающие одну и ту же прерывающую программу; глубиной прерывания, т.е. максимальным числом программ, которые могут быть последовательно прерваны друг другом; системой приоритетов и организацией переходов к следующей программе.
Одной из основных характеристик системы прерываний служит время реакции т,, т.е. время ожидания, прошедшее между 115 запросом прерывания и началом переключения программ. Это время зависит не только от характеристик системы прерывания, но и от числа ожидающих обслуживания программ со старшими приоритетами.
По этой причине время реакции определяют для запроса с наибольшим приоритетом, который будет обрабатываться первым. Обычно наивысший приоритет назначают запросам прерываний, поступающим от аппаратуры контроля, чтобы обнаруженная ошибка не оказала влияния на последующую работу компьютера. В персональных компьютерах, как правило, процесс прерывания происходит по окончании текущей команды (рис. 5.6), и время реакции определяется длительностью этой команды. На этом рисунке т, — время запоминания параметров текушей команды, т„„— время выполнения прерывающей программы и т, — длительность восстановления параметров текущей программы. Если компьютер предназначен для систем реального времени, то это время может оказаться недопустимо большим, поэтому прерывание выполняется после каждой микрокоманды.
Однако при этом количество запоминаемой и восстанавливаемой информации значительно возрастает. Для уменьшения времени на переключение программ состояние прерванной программы запоминают в специальной стековой памяти. Очевидно, что это время зависит от количества запоминаемой информации. Затраты времени на запоминание параметров текущей программы (для освобождения ресурсов процессора) т, и восстановление состояния процессора после выполнения прерывающей программы т, определяют длительность переключения программ при прерывании. Эта длительность обычно составляет несколько машинных тактов. Одной из основных характеристик системы прерываний является глубина прерываний — максимальное число программ, способных прерывать друг друга.
В простейших компьютерах глубина за Рис. 5.6. Временная диаграмма процесса прерываний 116 обычно Равна 1, т.е. после начала выполнениЯ пРеРывающей пРограммы запросы на прерывание не обслуживаются. В большинстве компьютеров глубина прерываний больше 1 и более приоритетные запросы обслуживаются в первую очередь. Так, если текущая программа прервана программой ввода-вывода от клавиатуры, а в процессе ее выполнения поступил запрос от накопителя на дисках, то она также будет прервана.
После этого завершится программа ввода-вывода от накопителя, затем программа ввода-вывода от клавиатуры, и только после этого первая программа. Если запрос на прерывание от какого-либо источника не будет обслужен до прихода очередного запроса от того же источника, то он теряется; возникает насыщение системы прерываний. Приоритет прерываний. Во многих компьютерах, особенно предназначенных для управления производственными процессами, число различных источников прерывания может достигать нескольких сотен, а их обслуживание вызывает сложности.
Для упрощения обработки прерываний эти источники подразделяют на отдельные уровни. Всем запросам, обрабатываемым одной программой обработки прерываний, присвоен один уровень. Запросы (сигналы) поступают на определенные разряды регистра, устанавливая их в «1». Выходы нескольких разрядов этого регистра объединены схемой ИЛИ, сигнал с которой вызывает нужную программу обработки. Поскольку существует несколько источников прерываний, например схемы контроля ЦП, системы питания, памяти, внешние события и т.п., сигналы от которых могут поступить одновременно, то нужно установить очередность обработки этих прерываний.
Порядок обслуживания прерываний устанавливается путем назначения приоритетов. Запросы прерываний в зависимости от назначенного приоритета направляются на различные разряды регистра прерываний процессора, опрос которого производится в строго определенной последовательности.
Так, запрос самого высокого уровня поступает на первый «опрашиваемый» разряд этого регистра и, следовательно, всегда обрабатывается первым. Самым высоким приоритетом обладают прерывания от схем контроля. Поступивший запрос прерывания может прервать только менее приоритетную программу. Время задержки в обслуживании прерывания определяется не только реакцией системы, но и числом ожидающих запросов более высокого приоритета. Организация перехода к прерывающей программе. Векторная система прерываний широко применяется в персональных компьютерах. После обнаружения сигнала прерывания при выполнении каждой команды процессора производится проверка — разрешено ли оно. Прерывание может быть замаскировано.