Как ЦПУ реагирует на прерывания
Программа – это список команд, выполняемых ЦПУ для решения некоторой задачи. Предположим, вы используете браузер для навигации в WEB, ЦПУ в свою очередь затрачивает большую часть времени на выполнение команд браузера для отображения текста и графики. Процессор занят обработкой команд, но компьютер реагирует на движение мыши, перемещая курсор на экране. Для этого ЦПУ реагирует на прерывания, генерируемые мышью. Когда ЦПУ обнаруживает прерывания, он останавливает выполнение текущей задачи (прерывается) для выполнения команд относящихся к определенному устройству. Команды, выполняемые ЦПУ для обнаружения и обслуживания устройства называется обработчиком прерываний устройства. После обработки прерываний ЦП продолжает выполнение предыдущей задачи. Когда процессор принимает прерывания на линии 12, не предполагается, что оно вызвано мышью. Более того, ЦПУ не имеет значения какое устройство генерирует событие. Вместо этого процессор содержит таблицу адресов памяти, в которой каждому прерыванию соответствует запись.
Когда возникает прерывание ЦПУ, начинает выполнение команд обработчика прерываний, которое занимает адрес памяти соответствующий ему. Процессору безразлично, для какого устройства он выполняет команды.
|
|
Область памяти
Не все устройства подключаемые к ПК требуют наличия IRQ. При установке устройств в системный блок его подключают к шине определенного типа. Шина – это просто набор проводников. Устройство включаемое в слот расширения обычно требует собственной линии прерываний. Возможен и другой вариант, когда устройство подключается к универсальной последовательной шине USB (universal serial bus) или SCSI-шине. В этом случае шина используется для взаимодействия с контроллером (электронной схемой (МС), которая управляет шиной). Контроллер в свою очередь исполняет прерывание для взаимодействия с ЦПУ
|
Мышь CD A:B Модем Винчестер
Выбор линии IRQ для устройства, которые взаимодействуют с ЦПУ.
Устройства, которые взаимодействуют с ЦПУ, исключая прерывания для обладающих собственной линией IRQ. При попытке использования одной и той же линии IRQ двумя устройствами возникает конфликт, который не позволяет функционировать обоим устройствам. Их называют IRQ-конфликтами. Методика выбора IRQ для устройства зависит от его типа. В некоторых случаях использует переключатель, которые находятся на плате устройства. Иногда это перемычки - их паяют или используют специальные программы. Чтобы избежать конфликтов при установке нового устройства нужно знать как оно функционирует с ЦПУ. Если устройство подключено к USB или SCSI шине для него не нужно указывать линию IRQ. Такие устройства самоконфигурируются, чтобы использовать ресурсы незанятые системой. При подключении устройства не Plug and Play в слот материальной платы, необходимо определить какие прерывания достигаются в данный момент, а затем сконфигурировать устройство таким образом, чтобы оно использовало доступную линию IRQ.
Определение используемых в системе прерываний.
Программа «Сведения о системе»
0- 1- 2- . . . 15- |
Каскадные IRQ.
Первые ПК поддерживали 8 линий прерываний . С появлением ЦП 80286 был добавлен 2-ой контроллер прерываний , что обеспечивает поддержку 16 линий прерываний . В таблице прерываний указано , что когда ЦПУ принимает прерывание по линии 2 ЦП распознаёт , что IRQ соответствует 2-му котроллеру , а следовательно прерываниям от 8-15.
После приёма сигнала прерывания по линии 2 процессор анализирует порты ввода\вывода OxAO и OxA1 , чтобы определить какое прерывание на 2м контроллере в действительности.
Передача информации вслед за IRQ.
С помощью прерываний устройство сигнализирует ЦПУ о том , что для ни необходимо выполнить определённые действия . После получения запроса на прерывание , процессор запускает коды соответствующего обработчика. Обработчик прерываний принимает от устройства информацию об операциях , которое ЦП выполняет для устройства.
Например , когда перемещаем мышь , её электроника генерирует прерывание по линии 12. Тоже происходит при щелчках на кнопки мыши. Обработчик прерываний должен определить какое действие с мышью вызвало прерывание. Для передачи этой информации обработчик прерываний использует специальные. область памяти, называемые портами ввода\вывода I\O. Адрес порта используемого для взаимодействия с ЦПУ зависит от типа устройства. Каждое устройство используещее прерывание обладает уникальным адресом портов . Например клавиатура: 0060-сброс контроллера клавиатуры, 0064-составляет коды контроллера. Уникальные адреса также необходимы устройствам как и уникальные линии IRQ. Если два устройства используют один адрес порта , возникает ошибка, которая исключает их правильное функционирование. При установке платы расширения, которая не поддерживает автоматически конфигурируемые устройства нужно обеспечить, чтобы устанавливаемые параметры порта устройства не конфликтовали с существующими устройствами. Предпринимаемые для установки адресов порта действия зависят от типа устройства. В одних устройствах используется переключатели , в других джамперы, в третьих программные средства.
Определении адресов портов использующих системой.
Чтобы определить , какие устройства ввода/вывода используется в системе в данный момент времени можно воспользоваться «Утилитой о системе».
|
Обмен большими объемами данных с устройством.
Если устройства требуют обмена небольшими объемами информации, оно может взаимодействовать с обработчиком прерываний посредством портов ввода/вывода. Порт идеально подходит для мыши, которая движется предавая небольшой объем информации. ( величина перемещения или щелчок, двойной щелчок – распознается по интервалу времени между двумя обычными щелчками). Устройства, которые обрабатываются большие массивы данных, такие как CD или винчестер обычно использует стандартные области памяти для хранения информации, которую привод читает или записывает. Начальный адрес такой области называется базовым адресом устройства. При установке нового устройства может возникнуть необходимость указать уникальный базовый адрес ОЗУ, которое не используются другими устройствами. Отобразить области памяти можно с помощью утилиты «Сведения о системе».
Прямой доступ к памяти DMA.
Как уже говорилось выше, устройства с помощью прерываний уведомляют ЦПУ о необходимости выполнения для них некоторых действий. Количество выполняемых операций зависит от типа устройства. Для процессора важно быстро завершить обработку прерывания, чтобы продолжать выполнение предыдущей задачи. Если прерывание сгенерировала мышь, ЦПУ обычно быстро завершает его обработку. Однако операции чтения/записи (R/W) дисковым накопителем требует передачи большого объема данных между ОЗУ и устройствам, что может потребовать значительных затрат времени процессора. Чтобы повысить эффективность использования ЦПУ разработали специальную микросхему DMA (direct memory acсses – прямой доступ к памяти)– называемую контроллер DMA. ЦПУ может контролирующую ее функционирование, чтобы обеспечить обмен данными между ОЗУ и устройством. Используя микросхему DMA для перемещения данных, ЦПУ упрощает себе задачу передачи каждого бита данных. Это позволяет ЦПУ выполнять другие задачи, пока микросхема DMA контролирует перемещение данных. Например, для чтения информации с диска в память ЦПУ может конфигурировать микросхему DMA, указав ей начальный адрес сектора, количество секторов и область памяти, которую данные должны занять. В свою очередь контроллер DMA будет выполнять операции с диском, пока ЦПУ занят другими задачами. Когда контроллер DMA завершит свою задачу, он посредством прерывания сообщит об этом ЦП. ЦП может проанализировать порты DMA, чтобы определить состояние выполняемой операции. Большинство современных ПК имеет 2 микросхемы DMA, которые подобно контроллеру прерываний функционируют каскадно. Устройства, которые используют DMA можно увидеть в “Сведения о системе”
- Ресурсы аппаратуры
|
|
-Канал DMA