Скачиваний:
23
Добавлен:
11.05.2015
Размер:
998.91 Кб
Скачать

5.8.2. Использование адресного пространства памяти

Следующий способ доступа к периферийным устройствам  через адресное пространство памяти центрального процессора.

Видеосистема получает данные для отображения через пространство памяти в адресах A0000h-BFFFFh. Для того чтобы занести некоторое значение в память видеосистемы, достаточно выполнить операцию записи по необходимому адресу в указанном адресном пространстве. Аналогично осуществляется чтение. Если ОЗУ видеосистемы «не помещается» в это адресное пространство, оно делится на фрагменты — окна — и требуемое окно устанавливается программным переключателем. Более поздние варианты видеосистем для процессора 80386 и выше могут предоставлять все пространство своей памяти через адресное пространство процессора. Этот прием был стандартизован для видеосистем, соответствующих стандарту VBE2.0 и выше.

5.8.3. Прямой доступ к памяти

Прямой доступ к памяти представляет собой специальный режим, когда данные между устройством и ОЗУ передаются по системной шине не через центральный процессор, а напрямую. Это, с одной стороны, позволяет сделать передачу более «прямой», с другой стороны — разгружает центральный процессор.

Для прямого доступа к памяти в ранних IBM-PC использовался специальный контроллер прямого доступа к памяти (Direct Memory Access — DMA), однако с появлением PCI шины каждое PCI устройство может захватывать системную шину и передавать данные (режим Bus Master).

Прямой доступ к памяти используется большинством блочных скоростных устройств. Блочное устройство — устройство обрабатывающее информацию большими фрагментами. Например, дисковод, который физически обрабатывает минимум сектор — не менее 256 непрерывных байт, чаще 512, (при этом используется устаревший DMA-контроллер). Или Sound Blaster  совместимая аудиокарта (режим синтеза или сканирования через ЦАП/АЦП)  в зависимости от модели может использовать как DMA, так и Bus Master.

Контроллер DMA машин XT имеет четыре канала. У машин класса AT используется два DMA, причем старший канал основного контроллера используется для подключения дополнительного контроллера, поэтому остается семь рабочих каналов. Детально ознакомиться с программированием контроллера DMA Вы можете в [10].

Контроллер DMA обеспечивает следующие режимы работы.

  • Передача байта: передается один байт по запросу внешнего устройства. Захват шины происходит только на время передачи байта.

  • Передача блока: передается блок данных по запросу внешнего устройства. Захват шины происходит на время передачи всего блока.

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

  • Каскадирование: канал контроллера используется для каскадного наращивания числа контроллеров. Один канал ведущего контроллера позволяет подключить один ведомый контроллер.

Контроллер DMA может работать в режиме «память-память», что в XT-машинах использовалось для регенерации ОЗУ, а в AT теоретически может использоваться для переноса массивов данных по памяти, однако авторам [10] не удалось этого добиться.

Работа в режиме Bus Master подобна DMA и зависит от конкретного периферийного устройства.

Соседние файлы в папке Введение в вычислительную технику.