Устройства ввода-вывода. Прерывания

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

Устройство ввода-вывода обычно состоит из двух частей – само устройство и его контроллер. Контроллер осуществляет управление работой устройства на физическом уровне. Контроллер выполняется в виде набора микросхем и либо совмещен с устройством, либо установлен на системной плате. Если контроллер установлен на системной плате, то обычно он позволяет работать с двумя и более устройствами данного типа. Примером такого контроллера может служить контроллер накопителей на жестких магнитных дисках, который позволяет работать одновременно с двумя НЖМД. Задачей контроллера является преобразование потока битов в блок байтов. Считываемые биты накапливаются в памяти контроллера, которая называется буфером данных, и затем в виде блоков байтов передаются в оперативную память. Каждый контроллер, помимо буфера, имеет также несколько регистров, посредством которых процессор может управлять работой контроллера.

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

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: