Читайте также: |
|
Цепочка операций DMA позволяет контроллеру DMA автоматически инициализироваться между серией передач по DMA. Используя режим цепочки операций, вы можете настраивать серию операций DMA, в которой каждая операция может иметь различные параметры.
Общая идея такова (со слов Хусаинова). В памяти мы создаем некоторый буфер, и в этот буфер фиксированного размера в определенном порядке мы записываем значения, которые должны быть загружены в регистры параметров DMA-пересылки - определяем значения для следующей персылки. Как только пересылка заканчивается в регистре CP должен лежать адрес этого самого буфера. Если цепочечное связывание включено, то из 17 младших разрядов CP берется адрес буфера, который назвается TCB. Из этого буфера начинается загрузка по одному слову значений в параметры DMA-пересылки этого же самого канала. Когда запись завершается, автоматически начинается следующая DMA-пересылка.
Последовательность DMA канала определяется как совокупность передач по DMA, начиная с инициализации регистров параметров и заканчивая уменьшением значения регистра счетчика до нуля. Каждый канал DMA имеет бит разрешения цепочки (CHEN) в соответствующем регистре управления. Для разрешения цепочки операций бит должен быть установлен в 1. Запись нулей в поле адреса регистра указателя цепочки (СР) запрещает цепочку операций DMA.
Когда цепочка операций разрешена, передачи по DMA начинаются с записи адреса памяти в регистр СР. Цепочки операций DMA могут выполняться только внутри одного и того же канала; использование нескольких каналов в одной цепочке операций не поддерживается.
Регистр СР – 18-разрядный, 17 младших бит – поле адреса памяти. Старший бит (бит 17) регистра СР – это бит управления, называемый PCI (программно-управляемые прерывания). Бит PCI определяет, происходит или нет прерывание после выполнения текущей последовательности DMA (в совокупности с битом маскирования прерывания в IMASK). Когда PCI=1 – прерывание разрешено и будет сгенерировано, когда содержимое регистра счетчика достигнет нуля. 0 – прерывания каналов запрещены. Заметим, что бит действует, если разрешена цепочка операций (CHEN=1).
Регистр общего назначения (GP) может быть полезным при выполнении цепочки операций DMA. Он загружается из памяти вместе с другими регистрами параметров и может использоваться для указания на последнюю выполненную последовательность DMA. Это позволяет программе определить, где размещен последний полный (или пустой) буфер данных. Так как этот регистр не имеет закрепленной за ним функции, он может использоваться для любых целей.
TCB-блоки
При выполнении цепочки операций DMA процессор автоматически инициализирует следующую передачу по DMA сразу после того, как все содержимое буфера передано или принято. Регистр указателя цепочки (СР) указывает на адрес во внутренней памяти, где хранится следующий набор параметров DMA. Этот новый набор параметров называется блок управления передачей (TСВ – Transfer Control Block). Контроллер DMA автоматически считывает ТСВ из внутренней памяти и загружает значения в регистры параметров канала, чтобы настроить следующую последовательность DMA. Этот процесс называется загрузкой ТСВ цепочки.
При выполнении загрузки ТСВ цепочки регистры параметров канала DMA загружаются значениями, выбранными из внутренней памяти. Регистр СР содержит указатель цепочки – старший адрес ТСВ. ТСВ хранится в последовательных ячейках памяти.
Рабочий регистр загружается из регистра СР перед началом загрузки цепочки и декрементируется после того, как каждый регистр загружается. Рабочий регистр позволяет обновлять регистр СР без пересечения с загрузкой текущего регистра. Когда загрузка цепочки выполнена, рабочий регистр загружается новым значением СР. Это позволяет выполнять последовательность цепочек DMA в цикле. Замечание: содержимое рабочего регистра не доступно.
Запрос загрузки ТСВ цепочки происходит также, как для всех других операций DMA. Сигнал запроса загрузки ТСВ фиксируется и удерживается контроллером DMA, пока не станет запросом высшего приоритета. Устройство I/O самостоятельно определяет приоритет и передает ТСВ, как при обычном DMA. Если присутствует много сигналов запроса загрузки цепочки, то первыми передаются ТСВ для каналов DMA с высшим приоритетом. Если канал находится в процессе загрузки цепочки, то процесс не может быть прерван запросом канала с высшим приоритетом.
Дата добавления: 2015-11-16; просмотров: 82 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Регистры управления DMA-пересылками через линк-порты | | | Организация взаимодействия между процессорным ядром и портами при вводе/выводе данных. |