Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Тема 6. Организация ввода-вывода ПК



Драйвер (driver) – программное обеспечение, позволяющее конкретному устройству работать с остальными устройствами компьютера. Каждому устройству соответствует свой драйвер, разработанный под соответствующую операционную систему (операционная система – программное обеспечение, позволяющее всем частям компьютера работать как единое целое). Операционная система компьютера не распознает устройство до тех пор, пока не будет установлен необходимый драйвер (если операционная система не поддерживает спецификацию Plug and Play(включи и работай)). Существуют драйверы мыши, клавиатуры, видеокарты и т.д.

Каждое устройство для своей работы использует ресурсы ПК, называемыми системными. Обычно под систем­ными ресурсами подразумевают:

адреса портов ввода-вывода.
каналы запросов прерываний (IRQ);
адреса памяти;
каналы прямого доступа к памяти (DMA); '

Адреса портов ввода-вывода.

Через порты ввода-вывода к компьютеру можно подключать разнообразные устройства для расширения его возможностей. Принтер, подключенный к одному из параллельных портов LPT, позволяет вывести на бумагу результаты работы. Модем, соединенный с одним из последова­тельных портов СОМ, обеспечивает связь по телефонным линиям с другими компьютерами, на­ходящимися за тысячи километров от вас. Сканер, подключенный к порту LPT или адаптеру SCSI, позволяет ввести в компьютер графические изображения или текст непосредственно с листа бумаги и преобразовать их в необходимый формат для дальнейшей обработки.

В большинстве компьютеров имеется хотя бы два последовательных порта и один парал­лельный. Последовательные порты обозначаются, как СОМ1 и COM2, а параллельный —LPT1. В принципе, в компьютере можно установить до четырех последовательных (СОМ1-СОМ4) и трех параллельных (LPT1-LPT3) портов.

Внимание

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

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

В отличие от прерываний IRQ и каналов прямого доступа к памяти, в наших персональных компьютерах мы имеем огромное множество портов ввода-вывода. Имеется 65 535 портов, пронумерованных от 0000h до FFFFh, и это, пожалуй, самый удивительный артефакт в процессоре Intel. Хотя многие устройства используют до восьми портов, все равно их количество более чем достаточное. Самая большая проблема состоит в том, чтобы двум устройствам случайно не назначить один и тот же порт.

Хотя порты ввода-вывода обозначаются щестнадцатеричными адресами, подобными адресам памяти, они не память; они - порты. Различие состоит в том, что, когда вы посылаете данные по адресу памяти 1000h, то данные будут сохранены в модуле памяти SIMM или DIMM. Если вы посылаете данные по адресу 1000h порта ввода-вывода, то эти данные попадают на этот "канал" шины, и любое устройство, прослушивающее этот канал, может принять эти данные. Если никакое устройство не прослушивает этот адрес порта, то данные достигнут конца шины и будут поглощены нагрузочными резисторами шины.

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

Системная плата и набор микросхем системной логики обычно используют адреса портов ввода-вывода от 0h до FFh, а все другие устройства— от 100h до FFFFh.

Каналы запросов прерываний (irq).

Прерывания - это базовый механизм реакции системы на возникающие события. Аппаратные прерывания, называемые обычно IRQ (Interrupt ReQuest) - это физические сигналы, с помощью которых контроллер устройства информирует процессор о необходимости обработать некоторый запрос.

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

Указатели в таблице векторов определяют адреса памяти, по которым записаны програм­мы-драйверы для обслуживания платы, пославшей запрос. Например, для сетевой платы век­тор прерывания содержит адрес сетевых драйверов, предназначенных для работы слей; для контроллера жесткого диска вектор указывает на программный код BIOS, обслуживающий контроллер

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

Благодаря прерываниям компьютер может своевременно реагировать на внешние собы­тия. Например, всякий раз, когда с последовательного порта в систему поступает новый байт, вырабатывается IRQ.

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

При генерации большого количества прерываний стек может переполниться и тогда ПК зависнет. Если такая ошибка возникает слишком часто, попытайтесь исправить ситуацию, увеличив параметр STACKS (размер стека) в файле CONFIG.SYS.

Условно схема обработки прерывания выглядит следующим образом:

1.процессор получает сигнал прерывания и его номер;

2.по специальной таблице отыскивается адрес программы, ответственной за обработку прерывания с данным номером - обработчика прерывания;

3.процессор приостанавливает текущую работу и переключается на выполнение обработчика (в общем случае это некоторый драйвер);

4.драйвер получает доступ к устройству и проверяет причину возникновения прерывания;

5.запускаются запрошенные действия - инициализация, конфигурирование устройства, обмен данными и др.





Дата публикования: 2014-11-28; Прочитано: 353 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...