- •Системные ресурсы эвм
- •Программно-аппаратные ресурсы пк
- •Внутренние ресурсы системы
- •Распределение памяти
- •Стандартная память — Conventional Memory (640 к)
- •Верхняя память — uma
- •Пространство ввода-вывода
- •Взаимодействие программ с периферийными устройствами
- •4.1. Методы передачи данных
- •4.2. Синхронизация программ и устройств
- •4.3. Буферизация данных в устройствах
- •4.4. Распределение системных ресурсов
Взаимодействие программ с периферийными устройствами
Адаптер – средство сопряжения устройства с шиной или интерфейсом.
Контроллер – микросхема, реализующая схемное сопряжение устройств и интерфейсов.
Для их взаимодействия с ПО адаптеры и контроллеры содержат регистры ввода-вывода, которые могут располагаться либо в адресном пространстве памяти либо в пространстве портов ввода-вывода. Чаще всего программы с адаптерами общаются через инструкции обращения к памяти и портам ввода-вывода, используя прерывания, прямой доступ к памяти и непосредственное управление шиной. Существуетдва способа адресации (непосредственный и косвенный) — к портам ввода-вывода. Косвенный ориентирован на перемещаемость ресурсов при отображении всех регистров ввода-вывода на память (memory mapped I/O). Кроме того, пространство памяти гораздо просторнее — 4 Гбайт против 64 Кбайт, «перегороженных» вдоль и поперек традиционными регистрами PC-совместимых компьютеров.
4.1. Методы передачи данных
Для передачи данных между программой и устройством применяют разные методы:
программно-управляемый обмен;
программированный ввод-вывод;
обмен по каналу DMA;
обмен в режиме прямого управления шиной.
Первые два метода позволяют программе непосредственно обмениваться данными с устройством — все данные во время обмена с устройством проходят через процессор. В двух последних обмен с устройством происходит асинхронно по отношению к исполняемой программе, которая получает и передает данные только через буферы, расположенные в оперативной памяти компьютера. Выбор метода передачи данных определяется в основном требованиями к пропускной способности, времени отклика на события, происходящим в адаптере, и допустимой загрузкой процессора.
Программно-управляемый обмен подразумевает последовательность следующих шагов.
Операцию чтения регистра состояния устройства для анализа его готовности.
Ожидание готовности (зацикливание предыдущего шага).
Собственно обмен байтом или словом данных.
Такой обмен сильно загружает процессор, особенно если программа формирует и управляющие сигналы обмена. Так, например, работает драйвер параллельного порта в стандартном режиме, когда строб данных формируется двумя инструкциями 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 Мбайт/с.