- •Организация эвм и систем
- •Глава 6 Организация памяти
- •Глава 1. Структура современного компьютера
- •1.1 Основные понятия
- •1.2 Принцип действия компьютера
- •Цикл работы компьютера
- •1.3 Программное обеспечение компьютера
- •1.4 Надежность, производительность и показатели быстродействия
- •Производительность компьютера
- •Технико-эксплуатационные характеристики
- •1.5 Вычислительные системы и сети
- •Вопросы для самопроверки
- •Глава 2 представление информации в компьютере
- •5.2 Система команд. Форматы команд и способы адресации
- •5.3 Система прерываний и приостановок, состояние процессора
- •Характеристики системы прерываний
- •Организация перехода к прерывающей программе
- •5.4 Режимы работы процессора: однопрограммный, пакетный, разделения времени, реального времени
- •5.5 CisCиRisCкомпьютеры
- •Процессоры персональных компьютеров
- •5.6 Устройства управления
- •Устройства управления с хранимой в памяти логикой
- •5.7 Методы и средства повышения производительности процессоров персональных компьютеров
- •Суперскалярная обработка
- •Переименование регистров
- •Динамическое прогнозирование условных переходов
- •Контроллер памяти Контроллер pci
- •Вопросы для самопроверки
- •Глава 6. Организация памяти
- •6.1 Адресное пространство
- •6.2 Виды памяти
- •6.3 Оперативная память
- •Статическая и динамическая память
- •6.5 Внешняя память
- •6.6 Организация виртуальной памяти
- •Страничное, сегментное и странично-сегментное распределение
- •Свопинг
- •6.7 Защита памяти
- •Вопросы для самопроверки
- •Глава 7. Интерфейсы
- •7.1 Понятие интерфейса и его характеристики
- •7.1 Состав линий системной шины
- •Передача данных по проводным линиям связи По линиям связи современных интерфейсов преимущественно передаются низкочастотные дискретные одно - и биполярные сигналы (рисунок 7.Х).
- •Адрес верный
- •7.2 Подключение устройств
- •7.4 Интерфейсы внешней памяти
- •7.5 Малые интерфейсы (usb,ide,rs-232c,scsi)
- •Вопросы для самопроверки
- •Глава 8. Периферийные устройства компьютеров
- •8.1 Организация систем ввода-вывода. Каналы, контроллеры
- •Основные функции свв
- •Программный ввод-вывод
- •Прямой доступ в память
- •8.2 Клавиатура и мышь
- •8.3 Дисплеи
- •8.4 Принтеры
- •8.5 Накопители на магнитных дисках
- •Структура накопителя на жестких дисках
- •Структура и особенности накопителя на гмд
- •8.6 Накопители на компакт-дисках (cd-rom, cd-r, cd-rw, dvd)
- •8.7 Другие виды периферийных устройств
- •Вопросы для самопроверки
- •Какие особенности пу делают возможным организацию параллельной обработки и ввода-вывода?
- •Закон Амдала
- •Совместно используемая и распределенная память
- •Когерентность кэш-памяти
- •Наибольшее распространение получили следующие аппаратные механизмы, реализующие протокол когерентности кэш-памяти: это протоколы наблюдения и на основе справочника.
- •9.2 Конвейерные системы
- •Векторные регистры
- •9.3 Симметричные системы
- •9.4 Вычислительные системы со сверхдлинным командным словом
- •9.5 Другие виды мультипроцессорных систем
- •Машины с массовым параллелизмом
- •Нейрокомпьютеры
- •9.6 Проблемно-ориентированные системы
- •Вопросы для самопроверки
- •Глава 10. Организация вычислительного процесса
- •12.2 Системы автоматического контроля и диагностики
- •Контроль передач информации
- •Контроль арифметических операций
- •12.3 Защита памяти. Raid-массивы
- •12.4 Построение «безотказных» систем питания Вопросы для самопроверки
- •Список литературы
5.3 Система прерываний и приостановок, состояние процессора
Во время выполнения какой-либо программы компьютером могут возникнуть события, требующие его немедленной реакции. Необходимость незамедлительного решения другой задачи, переполнение разрядной сетки, программный или аппаратный сбой, окончание предусмотренного интервала времени и т.д. – все это события, требующие переключения компьютера на другую программу. Переход к другой программе осуществляется посредством системы прерываний.
Прерывание программы – процесс переключения процессора с одной программы на другую по внешнему сигналу с сохранением информации для последующего возобновления прерванной программы. При возникновении события, приводящего к прерыванию, формируется сигнал, называемый запросом прерывания. Существует несколько источников запросов прерывания: это схемы контроля процессора, система питания, память, периферийные устройства и т.д. При наличии нескольких источников запросов прерывания устанавливается определенный порядок их обслуживания путем назначения приоритетов. Запросы прерываний направляются на различные разряды специального регистра (регистра запросов прерываний), опрос которого производится в строго определенной последовательности при завершении очередной команды. Номер разряда этого регистра не только определяет приоритет запроса прерываний, но и позволяет найти соответствующую данному запросу программу обслуживания прерывания. Поступивший запрос может прервать только менее приоритетную программу.
Существует и другая, так называемая векторная система прерываний. В ней информация о месте возникновения запроса передается от источника прерываний в виде адреса ячейки памяти, содержимое которой определяет конкретную программу обслуживания. Помимо адреса перехода к программе обслуживания эта ячейка хранит дополнительную управляющую информацию. Содержимое этой ячейки (или нескольких последовательных ячеек) принято называть вектором прерываний.
Еще один очень важный процесс – это приостановки. При приостановках средства управления, работающие автономно от процессора, задерживают его работу на время цикла памяти, когда память занята приемом или выдачей информации для другого устройства. Во время приостановок, называемых также занятием цикла памяти, процессор никаких действий не выполняет, его состояние не меняется, но выполнение очередной команды задерживается до освобождения памяти. Возможности ограничены непосредственной передачей данных между ОП и процессором, когда память или шина используются несколькими устройствами.
Работой компьютера управляют команды программы, но конкретные выполняемые действия зависят от его текущего состояния. При работе машины в специальном регистре процессора постоянно находится слово состояния программы, которое и характеризует его состояние. Это слово содержит информацию, необходимую для возобновления программы при прерываниях. Слово состояния должно содержать указания о разрешенных прерываниях, адрес текущей выполняемой команды, различные признаки, ключи защиты и маски.
Характеристики системы прерываний
Систему прерываний характеризуют общим числом входов от источников (числом запросов прерываний), числом уровней прерывания, по которым сгруппированы источники, вызывающие одну и ту же прерывающую программу, глубиной прерывания, т.е. максимальным числом программ, которые могут быть последовательно прерваны друг другом, системой приоритетов и организацией переходов к следующей программе.
Одной из основных характеристик системы прерываний служит время реакции ож, т.е. время, прошедшее между запросом прерывания и началом переключения программ. Это время зависит не только от характеристик системы прерывания, но и от количества ожидающих обслуживания программ со старшими приоритетами. По этой причине время реакции определяют для запроса с наибольшим приоритетом, т.е. запроса, который будет обрабатываться первым. Обычно наивысший приоритет назначают запросам прерываний, поступающим от аппаратуры контроля, чтобы обнаруженная ошибка не оказала влияния на последующую работу компьютера.
В персональных компьютерах, как правило, процесс прерывания происходит по окончании текущей команды, как показано на рисунке 5.6, и время реакции определяется длительностью этой команды. На рисунке з – время запоминания параметров текущей команды, пп – время выполнения прерывающей программы и в – длительность восстановления параметров текущей программы.
[Для компьютеров, предназначенных для систем реального времени, это время может оказаться недопустимо большим, поэтому в них прерывание выполняется после каждой микрокоманды. Однако при этом количество запоминаемой и восстанавливаемой информации значительно возрастает.]
Для уменьшения времени на переключение программ состояние прерванной программы запоминают в специальной стековой памяти. Очевидно, что это время зависит от количества запоминаемой информации.
Затраты времени на запоминание параметров текущей программы (для освобождения ресурсов процессора) з и на восстановление состояния процессора после выполнения прерывающей программы в определяют длительность переключения программ при прерывании. Эта длительность обычно составляет несколько машинных тактов.
текущая
команда
запрос прерывания
ож з пп в
Рисунок 5.6 Временная диаграмма процесса прерываний
Одной из основных характеристик системы прерываний служит глубина. Глубина прерываний – это максимальное число программ, способных прерывать друг друга. В простейших компьютерах глубина прерывания обычно составляет 1, т.е. после начала выполнения прерывающей программы запросы на прерывание не обслуживаются. В большинстве компьютеров глубина прерываний больше единицы и более приоритетные запросы обслуживаются в первую очередь. Так, если текущая программа была прервана программой ввода-вывода от клавиатуры, а в процессе ее выполнения поступил запрос от накопителя на дисках, то она также будет прервана. После этого будет завершена программа ввода-вывода от накопителя, затем программа ввода-вывода от клавиатуры, и только после этого завершена первая программа.
Если запрос на прерывание от какого-либо источника не будет обслужен до прихода очередного запроса от того же источника, то он теряется; возникает насыщение системы прерываний.
Приоритет прерываний
Во многих компьютерах, особенно предназначенных для управления производственными процессами, число различных источников прерывания может достигать нескольких сотен, а их обслуживание вызывает определенные сложности.
Для упрощения обработки прерываний эти источники подразделяют на отдельные уровни. Всем запросам, обрабатываемым одной программой обработки прерываний, присвоен один уровень. Запросы (сигналы) поступают на определенные разряды регистра, устанавливая их в единицу. Выходы нескольких разрядов этого регистра объединены схемой ИЛИ, сигнал с которой и вызывает нужную программу обработки.
Поскольку существует несколько источников прерываний, например, схемы контроля ЦП, системы питания, памяти, внешние события и т.п., сигналы от которых могут поступить одновременно, то нужно установить очередность обработки этих прерываний. Порядок обслуживания прерываний устанавливается путем назначения приоритетов. Запросы прерываний в зависимости от назначенного приоритета направляются на различные разряды регистра прерываний процессора, опрос которого производится в строго определенной последовательности. Так, запрос самого высокого уровня поступает на первый «опрашиваемый» разряд этого регистра, и, следовательно, всегда будет обрабатываться первым. Самым высоким приоритетом обладают прерывания от схем контроля. Поступивший запрос прерывания может прервать только менее приоритетную программу.
Время задержки в обслуживании прерывания определяется не только реакций системы, но и числом ожидающих запросов более высокого приоритета.