Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Периферийные устройства ПК / Тема 3 (Системные ресурсы ЭВМ).doc
Скачиваний:
41
Добавлен:
02.05.2014
Размер:
278.02 Кб
Скачать
    1. Взаимодействие программ с периферийными устройствами

Адаптер – средство сопряжения устройства с шиной или интерфейсом.

Контроллер – микросхема, реализующая схемное сопряжение устройств и интерфейсов.

Для их взаимодействия с ПО адаптеры и контроллеры содержат регистры ввода-вывода, которые могут располагаться либо в адресном пространстве памяти либо в пространстве портов ввода-вывода. Чаще всего программы с адаптерами общаются через инструкции обращения к памяти и портам ввода-вывода, используя прерывания, прямой доступ к памяти и непосредственное управление шиной. Существуетдва способа адресации (непосредственный и косвенный) — к портам ввода-вывода. Косвенный ориентирован на перемещаемость ресурсов при отображении всех регистров ввода-вывода на па­мять (memory mapped I/O). Кроме того, пространство памяти гораздо просторнее — 4 Гбайт против 64 Кбайт, «перегороженных» вдоль и поперек традиционными регистрами PC-совместимых компьютеров.

4.1. Методы передачи данных

Для передачи данных между программой и устройством применяют разные методы:

  • программно-управляемый обмен;

  • программированный ввод-вывод;

  • обмен по каналу DMA;

  • обмен в режиме прямого управления шиной.

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

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

  1. Операцию чтения регистра состояния устройства для анализа его готов­ности.

  2. Ожидание готовности (зацикливание предыдущего шага).

  3. Собственно обмен байтом или словом данных.

Такой обмен сильно загружает процессор, особенно если программа формиру­ет и управляющие сигналы обмена. Так, например, работает драйвер параллельно­го порта в стандартном режиме, когда строб данных формируется двумя инструк­циями OUT. В результате предел пропускной способности такого порта, в зависимо­сти от производительности процессора, может быть порядка 150 Кбайт/с. Если процессор разгрузить от анализа готовности и формирования строба, как, напри­мер, в ЕРР-режиме параллельного, то производительность пор­та можно повысить на порядок. Однако такой режим обмена программно-управ­ляемым называть уже некорректно — это уже режим программного ввода-вывода с аппаратным контролем потока, где темп обмена определяет подключенное уст­ройство.

Режим программного обмена PIO (Programmed Input/Output), пересылающий блок байтов, слов или двойных слов между памятью и портом ввода-вывода, построен на инструкциях блочной пересылки REP INS/OUTS. Для этих инструкций задается начальный адрес памяти, длина блока, адрес порта и направление изме­нения адреса памяти (инкремент или декремент). Инструкции блочной пересылки и обмен PIO появились с процессорами 80286. Пересылки выполняются быстро, скорость передачи определяется производительностью (частотой) процессо­ра и шины. Обмен в режиме PIO успешно применяется и для обмена с устрой­ствами ATA (IDE), причем в машинах AT он выполняется быстрее, чем по стан­дартному каналу DMA. Поскольку полную скорость РIO периферийные устрой­ства воспринять обычно не могут, контроллер интерфейса, аппаратно вводя такты ожидания, «притормаживает» обмен до разумных скоростей, определяемых режимом обмена. Для устройств АТА определены 5 режимов, называемых PIO-mode, со скоростями обмена от 3,3 (РIO Mode 0) до 22,2 Мбайт/с (РIO Mode 4). В режимах 0, 1 и 2 синхронизация с устройством не предусмат­ривается — считается, что оно должно успевать. В режимах с большими номера­ми используется сигнал готовности от устройства, по которому могут быть вве­дены дополнительные такты ожидания. Для устройств АТА режим РIO задается при инициализации контроллера интерфейса АТА и согласуется с возможностя­ми устройств.

Обмен по прямому доступу к памяти (DMA) почти не загружает процессор — выполняемые им инструкции ввода-вывода относятся лишь к анализу состояния и инициализации канала DMA, но не к самой передаче данных. Но скорость стандартного канала DMA ограничена 4 Мбайт/с.