Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5_Лекции_по_АЭВМ.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
825.86 Кб
Скачать

Тема 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.      запускаются запрошенные действия - инициализация, конфигурирование устройства, обмен данными и др.

6.      драйвер завершает работу, и процессор возвращается к прерванной задаче.

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

IRQ

Стандартная функция

IRQ

Стандартная функция

0

Системный таймер

8

CMOS и часы

1

Контроллер клавиатуры

9

Звуковая или сетевая карты или свободен

2

Программируемый контроллер прерываний

10

Свободен

3

Последовательный порт COM 2

11

USB или SCSI или свободен

4

Последовательный порт COM 1

12

PS/2 совместимый порт мыши

5

Звуковая или сетевая карты или свободен

13

Сопроцессор

6

Стандартный контроллер гибких дисков

14

Основной контроллер IDE

7

Параллельный порт LPT

15

Дополнительный контроллер IDE

 

Каналы прямого доступа к памяти (dma).

Каналы прямого доступа к памяти (DMA) используются устройствами, осуществляющими высокоскоростной обмен данными. Последовательный и параллельный порты, например, не используют DMA, в отличие от звуковой платы или адаптера SCSI. Один канал DMA может использоваться разными устройствами, но не одновременно. Например, канал DMA 1 может использоваться как сетевым адаптером, так и накопителем на магнитной ленте, но вы не сможете записывать информацию на ленту при работе в сети. Для этого каждому адаптеру необходимо выделить свой канал DMA.

 

Адреса памяти.

Это адрес памяти, который контроллер использует для передачи пакетов между ним и процессором. Базовый адрес памяти - это начало блока памяти, который обычно имеет размер 16 или 32К. Два устройства не могут использовать один и тот же блок памяти. Кроме того убедитесь, что этот блок памяти не перекрывает памяти, используемой другим устройством. Обычно начальные адреса находятся в верхней памяти.

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

  

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]