В этом режиме контроллер DMA выполняет только одну передачу. Адрес и счетчик слов будут изменяться при каждой передаче. DREQ должен быть активным, пока не активизируется соответствующий DACK. Если DREQ активен на протяжении одиночной передачи, HRQ переходит в неактивное состояние по выполнении одной передачи и освобождает шину системе. HRQ снова станет активным (при активном DREQ) и по получении нового HLDA будет выполняться следующий цикл одиночной передачи. Это гарантирует CPU в системе выполнение одного полного машинного цикла между передачами DMA.
Режим передачи блока (Blok Transfer Mode)
В этом режиме передается блок информации во время обслуживания подсистемы DMA. DREQ должен быть активным, пока не появиться активный DACK.
Режим передачи по требованию (Demand Transfer Mode)
В этом режиме передача данных выполняется до тех пор, пока не появится TC или внешний -EOP, либо когда DREQ станет неактивным. Таким образом, передачи могут продолжаться до тех пор, пока периферийное устройство не исчерпает объем данных.
Каскадный режим (Cascade Mode)
Этот режим использует объединение нескольких контроллеров DMA для расширения числа подключаемых каналов. Выходы HRQ и входы HLDA от дополнительных контроллеров соединяются соответственно со входами DREQ и выходами DACK первичного контроллера DMA . Это дает возможность запросам от дополнительного устройства распространяться через сеть приоритетных цепей предшествующего устройства.
Таким образом, канал первичного контроллера DMA, к которому подключен дополнительный контроллер, программируется на выполнение каскадного режима и служит только для определения приоритета дополнительного устройства и транзита сигналов HRQ в CPU и HLDA из CPU. Все другие сигналы каскадного канала первичного контроллера DMA в формировании циклов подсистемы DMA не участвуют.
Режим память-память
Этот режим предназначен для передачи блоков данных из одного адресного пространства памяти в другое с минимальными программными и временными затратами, но в PC AT не используется. В данном режиме могут работать только нулевой и 1-й каналы контроллера. Эта передача инициируется программной установкой REQ для канала 0. Адрес ячейки памяти-источника данных задают в CAR0, а ячейки-приемника - в CAR1. Байт данных, считанный из памяти, заносится во временный регистр (TR) и затем из TR считывается в ячейку-приемник. Когда значение счетчика слов канала 1 станет равным FFFFh, обслуживание заканчивается.
Типы передач.
Каждый из трех активных режимов предполагает выполнение трех различных передач. Это ЧТЕНИЕ, ЗАПИСЬ и ПРОВЕРКА. Передача ЧТЕНИЕ пересылает данные из памяти в периферийное устройство при активизации -MEMR и -IOW. Передача ЗАПИСЬ пересылает данные из периферийного устройства в память при активизации -MEMW и -IOR. ПРОВЕРКА - это псевдопередача.
Подсистема DMA осуществляет передачи ЧТЕНИЯ или ЗАПИСИ, генерируя адреса и реагируя на -EOP, но сигналы управления памятью и периферийными устройствами остаются не активными. Вход READY игнорируется в ПРОВЕРКЕ.
Приоритеты.
Подсистема DMA имеет два типа приоритета, которые можно установить программно. Первый из них - фиксированный приоритет, который фиксирует каналы в последовательности, соответствующей убыванию их номеров.
Низший приоритет имеет канал номер 3, а высший приоритет имеет канал 0.
После выбора какого-либо канала для обслуживания запрещается вмешательство остальных каналов до тех пор, пока обслуживание не завершится.
Второй тип приоритета - циклический. Последний обслуженный канал становится каналом с низшим приоритетом согласно циклу. При циклическом приоритете любое устройство, требующее обслуживания, непременно будет распознано после обработки максимум трех более приоритетных обслуживаний. Это исключает монополизацию всей системы одним каналом.
Регистры контроллера DMA.
Дата: 2019-03-05, просмотров: 332.