Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Konspekt1.doc
Скачиваний:
58
Добавлен:
21.11.2018
Размер:
3.2 Mб
Скачать

Тема 5: Система прерываний и организация ввода/вывода

Тема лекции: Прямой доступ в память

План лекции:

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

5.8 Распределение системных ресурсов

Прямой доступ в память (ПДП)

Прямой доступ к памяти (Direct Memory Access, DMA) — это обмен между системной памятью (ОЗУ) и устройством, выполняемый без непосредственно­го участия процессора. Для устройств ISA в архитектуре PC/AT присутствует централизованный контрол­лер DMA.

Для устройств шины PCI (и всех ее «родственников») контроллер является частью устрой­ства — мастера шины (bus master). Штатного централизованного контроллера DMA, как это было в архитектуре ISA, для шины PCI нет.

Многоканальный контроллер DMA, программируемый по командам от цен­трального процессора, присутствует на системной плате PC-совместимого ком­пьютера. Первоначально он использовался устройствами шины ISA, теперь он используется интегрированной традиционной периферией: контроллером НГМД, портами LPT и СОМ и некоторыми встроенными аудиосредствами. Процессор при обмене по DMA занят только инициализацией контроллера, ко­торая сводится к записи в его регистры нескольких байтов, задающих началь­ный адрес и размер пересылаемого блока памяти, направление и режим обмена. Затем обмен производят системная шина и контроллер DMA, а инициатором обмена выступает устройство, сигнализирующее контроллеру DMA о своей го­товности к обмену.

Во время операций DMA процессор может продолжать ра­боту, если выбранный режим обмена не занимает всей пропускной способности шин, задействованных процессором в данный момент (шины памяти, шины PCI, через которые подключается ISA в современных компьютерах).

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

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

"Память → Процессор → ВУ" (или "ВУ → Процессор → Память").

Рассмотрим вариант программно-управляемого обмена между памятью и внешним устройством в МПС на базе МП 8080. Пусть необходимо пе­редать массив данных длиной L, начиная с адреса ADR на ВУ с адресом АIO. Положим, что начальный адрес массива загружен в регистровую пару HL, а длина массива — в регистр С.

Таким образом, для того чтобы в рамках процедуры копирования массива данных переслать из памяти в ВУ один байт данных, потребуется десять ма­шинных циклов. Процессоры с более совершенной системой команд (напри­мер, х86) могут использовать для этой цели меньшее число МЦ, но все равно их будет более одного.

Управляя обменом, микропроцессор "ведет" два счетчика — адресов массива и количества переданных байтов и формирует на магистраль сигналы управ­ления. Если снабдить ВУ аппаратными счетчиками и схемой формирования управляющих сигналов (т. н. "канал прямого доступа в память" — ПДП), то передачу одного байта (слова) можно осуществить за один МЦ без участия процессора.

Фрагмент программы обмена мо­жет иметь вид, представленный в табл. 5.2.

Таблица 5.2 -Фрагмент программы обмена

Мнемокод

Комментарий

Количество МЦ

LM: MOV А,М

Чтение байта в Акк

2

OUT AIO

Выдача байта на ВУ

3

INX Н

Модификация адреса

1

DCRC

Модификация счетчика

1

JNZ LM

Переход, если массив не исчерпан

3

Всего машинных циклов: 10

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

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

По стандартным каналам DMA возможно обращение как к системной памяти (расположенной на системной плате), так и к памяти, подключенной к шинам ISA и PCI. Обращение к 8-разрядной памяти, расположенной на адаптерах, до­пустимо только по 8-битным каналам (преобразование циклов выполнять неко­му). Однако ПУ, использующие эти каналы, могут располагаться лишь в слотах ISA/EISA или на системной плате (контроллер НГМД, LPT-порт в режиме ЕСР или Fast Centronics, аудиокодек). Если эти устройства системной платы ис­пользуют каналы DMA, то данные каналы становятся недоступными для або­нентов шины ISA. Контроллерам AT А, расположенным на системной плате, стандартные каналы DMA не требуются.

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