ЭУМК по дисциплине "Проектирование проблемно-ориентированных вычислительных средств" › Теория › Тема 5. Внутренняя периферия процессоров платформы с5000

# Электронный учебно-методический
комплекс по дисциплине
"Проектирование проблемно-ориентированных вычислительных средств"

для специальности

1-40 02 02 «Электронные вычислительные средства»

Оглавление | Программа | Теория | Практика | Контроль знаний | Об авторах

5.6. Контроллер прямого доступа в память
5.6.1. Назначение контроллера ПДП

Платформа С2000 является дальнейшим развитием процессоров TMS320 2-го поколения.
Контроллер прямого доступа к памяти (direct memory access - DMA) процессора ’5402 пересылает данные между указанными ячейками памяти без участия ЦПУ. Контроллер ПДП осуществляет также пересылку между внутренней памятью программ/данных и внутренней периферией (такой как McBSP) и происходит параллельно с операциями ЦПУ. ПДП имеет шесть независимых программируемых канала, что позволяет иметь шесть операций ПДП.
ПДП обеспечивает следующие возможности:

- DMA работает независимо от ЦПУ.
- DMA имеет шесть каналов и поддерживает шесть независимых передач блоков данных.
- DMA имеет более высокий приоритет чем ЦПУ для внутреннего доступа.
- Любой канал имеет независимый программируемый приоритет.
- Любые канальные регистры адресов источников и приемников могут конфигурироваться и индексироваться. Адрес может оставаться постоянным, постинкрементироваться, постдекрементироваться или изменяться на любое программируемое значение.
- Любая процедура чтения или записи может быть инициализирована выбранным событием.
- После пересылки половины или всего блока, любой канал DMA может послать прерывание в ЦПУ.
- DMA позволяет пересылать двойные слова (32-битная пересылка двух 16-битных слов).

DMA может выполнять следующие операции:

- Чтение. DMA читает элемент данных из источника в памяти. Источником может быть память или периферийное устройство и может располагаться в пространстве программ, данных или ввода/вывода.
- Запись. DMA пишет элемент данных, который был прочитан в предыдущей фазе в приемник в памяти. Приемником может быть память или периферийное устройство и может располагаться в пространстве программ, данных или ввода/вывода.
- Пересылка элемента. Комбинация операций чтения и записи одного элемента.
- Пересылка фрейма. В любом канале DMA независимо программируется число элементов во фрейме. Завершением передачи фрейма DMA является пересылка всех элементов в одном фрейме.
- Пересылка блока. В любом канале DMA независимо программируется число фреймов в блоке. Завершением передачи блока DMA является пересылка всех заданных фреймов блока.

5.6.2. Управление контроллером ПДП

Управление работой контроллера выполняется через регистры, отображаемые на память, и субадресуемые регистры (табл. 5.17). На каждый канал приходится пять регистров управления плюс несколько общих регистров.
Таблица 5.17. Субадресуемые регистры DMA процессора C5402

Адрес (Hex) | Суб-адр. (Hex) | Имя | Описание
54 | – | DMPREC | Регистр управления приоритетом и разрешением каналов
55 | – | DMSA | Регистр адреса суббанков
56 | – | DMSDI | Регистр доступа к суббанкам с автоинкрементацией
57 | – | DMSDN | Регистр доступа к суббанкам без автоинкрементации
56/57 | 00 | DMSRC0 | Регистр адреса источника 0-го канала DMA
56/57 | 01 | DMDST0 | Регистр адреса назначения 0-го канала DMA
56/57 | 02 | DMCTR0 | Регистр счетчика элементов 0-го канала DMA
56/57 | 03 | DMSFC0 | Регистр синхрониз. и счетчика кадров 0-го канала DMA
56/57 | 04 | DMMCR0 | Регистр управления режимом передачи 0-го канала DMA
56/57 | 05 | DMSRC1 | Регистр адреса источника 1-го канала DMA
-“- | … | … | …
56/57 | 1D | DMMCR5 | Регистр управления режимом передачи 5-го канала DMA
56/57 | 1E | DMSRCP | Адрес страницы программ источника DMA (общий)
56/57 | 1F | DMDSTP | Адрес страницы программ назначения DMA (общий)
56/57 | 20 | DMIDX0 | 0-й регистр индекса адреса элементов DMA
56/57 | 21 | DMIDX1 | 1-й регистр индекса адреса элементов DMA
56/57 | 22 | DMFRI0 | 0-й регистр индекса кадра DMA
56/57 | 23 | DMFRI1 | 1-й регистр индекса кадра DMA
56/57 | 24 | DMGSA | Общий регистр перезагрузки адреса источника DMA
56/57 | 25 | DMGDA | Общий регистр перезагрузки адреса назначения DMA
56/57 | 26 | DMGCR | Общий регистр перезагрузки счетчика DMA
56/57 | 27 | DMGFR | Общий регистр перезагрузки счетчика кадра DMA

† Обращение по адресу 57h (DMSDI) обновляет регистр субадреса и инкрементирует субадрес содержащийся в DMSA. Обращение по адресу 56h (DMSDN) не изменяет субадрес в DMSA (рис. 5.15).

######

###### Рисунок 5.15 – Доступ к субадресуемым регистрам контроллера DMA

5.6.3. Регистры контроллера ПДП

Разрешение работы каналов DMA и задание их приоритетов выполняется через регистр с отображением на память DMPREC. Формат регистра приведен на рис. 5.16, а назначение отдельных битов описано в табл. 5.18.

######

###### Рисунок 5.16 – Регистр управления приоритетом и разрешением DMA

Таблица 5.18. Назначение битов регистра управления приоритетом (DMPREC)

Бит | Имя | После сброса | Функция
15 | FREE | 0 | Управляет поведением контроллера DMA при эмуляции 0 передача DMA приостанавливается при остановке эмулятора 1 передача DMA продолжается при остановке эмулятора
14 | RSVD | 0 | Резерв
13-8 | DPRC | 0 | Биты управления приоритетом каналами DMA5-DMA0 0 низкий приоритет 1 высокий приоритет
7-6 | INTOSEL | 0 | Биты управления мультиплексором прерываний (см. табл. 5.19)
5-0 | DE | 0 | Биты разрешения работы каналов DMA5-DMA0 0 канал выключен 1 канал включен

Таблица 5.19. Управление мультиплексором прерываний

Бит IMR/ IFR | Значение поля INTOSEL (DMPREC[7,6])
00 | 01 | 10 | 11
7 10 11 | TINT1 BRINT1 BXINT1 | TINT1 DMAC2 DMAC3 | DMAC1 DMAC2 DMAC3 | резерв резерв резерв

Для задания областей памяти используются три регистра для каждого канала:
DMSRC – регистр адреса источника данных (16 младших разрядов)
DMDST – регистр адреса приемника данных (16 младших разрядов)
DMCTR – регистр числа передаваемых элементов массива (беззнаковое)
Число элементов массива указывается на 1 меньше, чем нужно переслать. Счетчик элементов автоматически декрементируется при пересылке очередного элемента.
Режим синхронизации в каждом канале задается регистром DMSFC (рис. 5.17), назначение битов которого приведено в табл. 5.20.

######

###### Рисунок 5.17 – Регистр синхронизации и счетчика фрейма DMSFC

Таблица 5.20. Назначение битов регистра синхронизации (DMSFC)

Бит | Имя | После сброса | Функция
15-12 | DSYN | 0 | Событие синхронизации DMA. Определяет событие, инициирующее передачу очередного элемента (см. табл. 5.21)
11 | DBLW | 0 | Режим двойного слова 0 одинарное слово (16-битные элементы) 1 двойное слово (32-битные элементы)
10-8 | rsvd | 0 | Резерв
7-0 | Frame Count | 0 | Счетчик фреймов. Определяет общее число фреймов (-1) передаваемых в блоке данных

Таблица 5.21. События синхронизации DMA процессора C5402

DSYN | Имя | Режим синхронизации
0000 |  | Асинхронный режим
0001 | REVT0 | Приемник McBSP 0
0010 | XEVT0 | Передатчик McBSP 0
0011 |  | Резерв
0100 |  | Резерв
0101 | REVT1 | Приемник McBSP 1
0110 | XEVT1 | Передатчик McBSP 1
0111 |  | Резерв
… | … | …
1100 |  | Резерв
1101 |  | Прерывание таймера 0
1110 | INT3 | Внешнее прерывание 3
1111 |  | Прерывание таймера 1

Управление режимом передачи в каждом канале задается регистром DMMCR (рис. 5.18), назначение битов которого приведено в табл. 5.22.

######

###### Рисунок 5.18 – Регистр управления режимом передачи DMMCR

Таблица 5.22. Назначение битов регистра управления передачей (DMMCR)

Бит | Имя | После сброса | Функция
15 | AUTOINIT | 0 | Бит режима автоинициализации DMA 0 автоинициализация выключена 1 автоинициализация включена
14 | DINM | 0 | Бит маски генерации прерывания DMA 0 прерывания не генерируются 1 прерывание генерируются в соответствии с битом IMOD

13

IMOD

0

Бит режима генерации прерывания DMA.
В режиме ABU (CTMOD = 1):
0 прерывание только в конце буфера
1 прерывание в середине и конце буфера
В мультифреймовом режиме (CTMOD = 0):
0 прерывание только в конце блока
1 прерывание в конце фрейма и в конце буфера

12 | CTMOD | 0 | Бит управления режимом счетчика передачи 0 мультифреймовый режим 1 ABU (автобуферизированный) режим
11 | rsvd | 0 | Резерв

10-8

SIND

0

Режим индексации адреса источника
000 без модификации
001 постинкрементная
010 постдекрементная
011 постинкрементная с индексом из DMIDX0
100 постинкрементная с индексом из DMIDX1
101 постинкрементная с индексом из (DMIDX0 и DMFRI0)
110 постинкрементная с индексом из (DMIDX1 и DMFRI1)
111 резерв

7-6 | DMS | 0 | Биты выбора пространства памяти источника† 00 пространство программы 01 пространство данных 10 пространство ввода-вывода 11 резерв
5 | rsvd | 0 | Резерв

4-2

DIND

0

Режим индексации адреса приемника
000 без модификации
001 постинкрементная
010 постдекрементная
011 постинкрементная с индексом из DMIDX0
100 постинкрементная с индексом из DMIDX1
101 постинкрементная с индексом из (DMIDX0 и DMFRI0)
110 постинкрементная с индексом из (DMIDX1 и DMFRI1)
111 резерв

1-0 | DMD | 0 | Биты выбора пространства памяти приемника† 00 пространство программы 01 пространство данных 10 пространство ввода-вывода 11 резерв

† В процессоре С5402 для DMA только внутренняя память данных и регистры данных последовательных портов.

Оглавление | Программа | Теория| Практика | Контроль знаний | Об авторах
© БГУИР , 2012