Приоритеты DMA-каналов

Порты ввода/вывода взаимодействуют с DMA-контроллером посредством генерации запросов на обслуживание и предоставления контроллером канала по запросу. С каждым портом (последовательным, внешним, линк-портом) связаны один или более DMA-каналов, каждый из которых имеет собственный сигнал запроса и сигнал предоставления, упорядоченные по приоритету. Если порту требуется передать данные во внутреннюю память, он выставляет запрос на использование DMA-канала. Когда приоритет данного запроса становится максимальным, DMA-контроллер выставляет сигнал предоставления канала и DMA-обмен выполняется в следующем такте. Если порту требуются данные из внутренней памяти, то последовательность действий аналогична.

Если DMA-канал запрещен, то DMA-контроллер не генерирует сигнал предоставления канала вне зависимости от того, имеется ли сигнал запроса от порта ввода/вывода.

Поскольку в течение одного такта более одного DMA-канала могут генерировать запрос на обслуживание, то для выбора единственного канала, которому предоставляется право управления шинами данных и адреса IOD и IOA в данном процессорном цикле, используется схема приоритетов. Приоритеты ADSP-21060 фиксированы (за исключением приоритетов каналов внешнего порта) и расположены в следующем порядке:

- обращения ядра - высший приоритет
- канал № 0 (SPORT0 – прием)  
- канал № 1 (SPORT1 – прием или линк-буфер № 0)  
- канал № 2 (SPORT0 – передача)  
- канал № 3 (SPORT1 – передача или линк-буфер № 1)  
- запрос на загрузку TCB-блока при цепочечной DMA  
- обращения внешнего устройства к внутренней памяти  
- канал № 4 (линк-буфер № 2)  
- канал № 5 (линк-буфер № 3)  
- канал № 6 (буфер внешнего порта № 0 или линк-буфер 4)  
- канал № 7 (буфер внешнего порта № 1 или линк-буфер 5)  
- канал № 8 (буфер внешнего порта № 2)  
- канал № 9 (буфер внешнего порта № 3) - низший приоритет

Следует обратить внимание на то, что операции обращения внешнего устройства к внутренней памяти ADSP и цепочечной загрузки TCB-блоков требуют установки приоритетов наряду с DMA-каналами. Это необходимо, поскольку эти операции также используют для доступа к внутренней памяти шины I/O.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: