Интерфейсы ПК

       

А.4. Прямой доступ к памяти и прямое управление шиной


А.4. Прямой доступ к памяти и прямое управление шиной

Прямой доступ к памяти - DMA (Direct Memory Access) - метод обмена ПУ с памятью без участия процессора. В обыч- ном программном обмене (PIO) при пересылке блока дан- ных, например, из порта в память (инструкция REP INSB), выполняются следующие действия:

Процессор генерирует шинный цикл чтения порта, выстав- ляя его адрес и формируя сигнал IORD#. Данные из порта считываются процессором во внутренний шинный буфер.

т Процессор генерирует шинный цикл записи в память, выставляя адрес ячейки и формируя сигнал MEMWR#. Данные из внутреннего шинного буфера записываются в память.

Эти шаги автоматически повторяются с изменением ад- реса памяти. Количество повторов задается в регистре СХ,

инкремент/декремент адреса - флагом DF. Во время пе- редачи всего блока процессор занят.

В режиме прямого доступа к памяти процессор инициали- зирует контроллер прямого доступа к памяти - задает на- чальный адрес, счетчик и режим обмена, после чего осво- бождается. Обмен производит контроллер и выполняет его несколько иначе. Контроллер имеет несколько каналов. Для интерфейса ПУ каждый канал представляется парой сигна- лов: запрос обмена - DRQx и подтверждение обмена - DACKx#. В операциях по каналу DMA адрес порта не фигу- рирует, а используется только пара сигналов, соответствую- щая номеру канала. Цикл передачи блока в память будет выглядеть следующим образом (Рисунок А.2):

1. По сигналу DRQx контроллер запрашивает управление шиной и дожидается его предоставления процессором (и другими контроллерами шины).

2. Контроллер выставляет адрес ячейки памяти и форми- рует в одном цикле шины сигналы IORD#, DACKx# и MEMWR#. Сигнал DACKx# указывает на то, что операция выполняется для канала "х", a IORD# - на направление в канале (для пересьыки из памяти в канал использовался бы сигнал IOWR#). Чтобы по сигналу IORD# не было лож- ного чтения (по IOWR# - ложной записи) порта, адрес которого совпадает с адресом памяти, присутствующим в цикле DMA, контроллер высоким уровнем сигнала AEN запрещает портам дешифрацию адреса. Байт, считанный из канала, в том же цикле шины записывается в ячейку памяти.

3. Контроллер модифицирует счетчик адреса и повторяет шаги 1-2 для каждого следующего сигнала DRQx, пока не будет исчерпан счетчик циклов. В последнем цикле об- мена контроллер формирует общий сигнал окончания ТС (Terminate Count), который может быть использован устройством для формирования сигнала аппаратного пре- рывания.

Обратная пересылка отличается только тем, что использу- ются сигналы IOWR# и MEMRD#.



Содержание раздела