60.3.1. DMA



THIS SECTION IS UNDER CONSTRUCTION





Раньше были сложности с интеграцией, поэтому DMA не размещался на каждом устройстве, а был встроен в компьютер. Как это работало: Программное обеспечение настраивало регистры DMA контроллера на определенный блок памяти Когда устройству надо было передать данные оно давало на шину сигнал DRQi (DMA Request) (i = уникальный номер канала DMA) DMA контроллер это видел - и выставлял на шину адресс и другие управляющие сигналы а так же давал сигнал DACKi (DMA Acknowledge) И устройство выставляло данные на шину/читало данные с шины. Что можно было сделать Установить параметры Адресс буфера в физической памяти Ранние имплементации имели ограничения что буфер не может пересекать границу кратную например 64K, или 128K Размер одной передачи Byte/Word/Dword Количество оставшихся возможных передач Тип операции Чтение/Запись Запустить/Остановить Получить состояние Все нормально DMA Overrun - зона закончилась В общем случае DMA контроллеры устарели, сейчас устройства просто Bus Master и сами ходят по сложным структурам памяти содержащим указатели на буфера.

Index Prev Next