Общий алгоритм ПДП.
Для осуществления прямого доступа к памяти контроллер должен выполнить ряд последовательных операций:
- принять запрос (DREQ) от устройства ввода-вывода;
- сформировать запрос (HRQ) в процессор на захват шины;
- принять сигнал (HLDA), подтверждающий захват шины;
- сформировать сигнал (DACK), сообщающий устройству о начале обмена данными;
- выдать адрес ячейки памяти, предназначенной для обмена;
- выработать сигналы (MEMR, IOW или MEMW, IOR), обеспечивающие управление обменом;
- по окончании цикла DMA либо повторить цикл DMA, изменив адрес, либо прекратить цикл.
Подробнее:
После инициализации процесс пересылки информации может быть начат в любой момент. Инициаторами обмена вправе выступать как ЦП, так и ВУ.
- Устройство, желающее начать В/ВЫВ, извещает об этом контроллер подачей соответствующего сигнала.
- Получив такой сигнал, КПДП выдает в ЦП сигнал “Запрос ПДП”.
- В ответ ЦП освобождает шины адреса и данных, а также те линии шины управления, по которым передаются сигналы, управляющие операциями на шине адреса (ША) и шине данных (ШД).
- Далее ЦП отвечает контроллеру сигналом «Подтверждение ПДП», который для последнего означает, что ему делегированы права на управление системной шиной и можно приступать к пересылке данных.
- Процесс пересылки каждого слова блока состоит из двух этапов.
- При выполнении операции чтения (ОП -> ВУ) на первом этапе КПДП выставляет на шину адреса содержимое РА (адрес текущей ячейки ОП) и формирует сигнал ЧтЗУ. Считанное из ячейки ОП слово помещается на шину данных. На втором этапе КПДП выставляет на Ш А адрес устройства вывода и формирует сигнал Выв, который обеспечивает передачу слова с шины данных в ВУ.
- При выполнении операции записи (ВУ -> ОП) КПДП сначалавыдает на шину данных адрес устройства ввода и формирует сигнал Вв, по которому введенные данные поступают на шину данных. На втором этапе КПДП помещает на ША адрес ячейки ОП, куда должны быть занесены данные, и выдает сигнал ЗпЗУ. Этим сигналом информация с ШД записывается в ячейку ОП.
- Как при чтении, так и при записи происходит буферизацияпересылаемого слова в регистре данных (РД) контроллера. Это необходимо для компенсации различий в скорости работы ОП и ВУ, в силу чего сигналы Выв и Вв формируются контроллером лишь при получении от ВУ подтверждения о готовности. Буферизация сводится к тому, что после первого этапа слово с ШД заносится в РД, а перед вторым — возвращается,из РД на шину данных.
- После пересылки каждого слова логика управления прибавляет единицу к содержимому РА (формирует адрес следующей ячейки ОП) и уменьшает на единицу содержимое СД (ведет подсчет переданных слов).
- Когда пересылка завершена (при нулевом значении в СД), КПДП снимает сигнал «Запрос ПДП», в ответ на что ЦП снимает сигнал «Подтверждение ПДП» и вновь берет на себя управление системной шиной, то есть ЦП вовлечен в процесс ввода/вывода только в начале и конце передачи.
Дата добавления: 2016-06-13; просмотров: 1500;