Посылка запроса DMA или прямого управления


Для организации обмена по DMA и прямого управления хост должен иметь по одной входной линии LDRQ# для каждого подключенного устройства, использующего эти функции. По этой линии устройство передает состояние запросов каналов DMA в последовательном коде. Посылка начинается со старт-бита, за которой следуют код номера канала и бит запроса АСТ, где 1 (высокий уровень) – запрос активен, 0 – пассивен.

Передача данных DMA выполняется под управлением хоста, но несколько отличается от обычных обращений к портам и памяти. Здесь появляются новые поля:

? поле SIZE определяет размер передачи: 0000 – 1 байт, 0001 – 2 байта, 0011 – 4 байта, остальные значения зарезервированы;

? поле CHANNEL служит для передачи хостом номера канала DMA и признака конца цикла.

Прямое управление шиной ведущее устройство запрашивает так же, как и прямой доступ, но указывая зарезервированный номер канала. Предоставляя управление, хост в поле START задает номер мастера, который позже определит тип цикла. Прямое управление подразумевает обращение к ресурсам хоста. Данные в 2- и 4-байстных передачах следуют друг за другом без зазора, но в циклах чтения памяти и портов всегда будут такты ожидания, поскольку потребуется время на арбитраж шины PCI или доступ к контроллеру памяти.

Загрузка...