Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Руководство пользователя по сигнальным процессорам Sharc

.pdf
Скачиваний:
128
Добавлен:
01.05.2014
Размер:
9.49 Mб
Скачать

DMA 6

Передача из внешней памяти во внутреннюю

Для исследования работы DMA в режиме ведомого рассмотрим случай передачи блока данных из внешнего устройства во внутреннюю память ADSP 2106x. Сначала внешнее устройство должно задать настройки передачи в регистрах II, IM, С и регистре управления DMACx канала DMA, чтобы инициализировать канал. Затем устройство должно начать записывать данные в буфер ЕРВх.

Когда буфер содержит истинное слово данных (в зависимости от выбранного режима упаковки для этого может потребоваться один или более циклов обращения к внешней памяти), он посылает сигнал контроллеру DMA, запрашивая внутренний цикл DMA. После получения сигнала предоставления выполняется внутренняя передача по DMA и буфер ЕРВх опустошается. Если внутренняя передача по DMA задерживается по какой либо причине, то внешнее устройство все равно может снова записывать данные в буфер ЕРВх, т. к. он состоит из 6 ячеек памяти. Когда буфер ЕРВх станет полным, внешнее устройство будет остановлено сигналом АСК (для синхронного обращения) или сигналом REDY (для асинхронного, управляемого хост процессором обращения).

Это состояние будет продолжаться до тех пор, пока внутренняя передача по DMA не будет выполнена и не освободится место в буфере ЕРВх. Для работы буфера в этом режиме должен быть обнулен бит запрещения зависания буфера BHD (Buffer Hang Disable) в регистре SYSCON.

Передача из внутренней памяти во внешнюю

Рассмотрим случай передачи из внутренней памяти во внешний порт. Сразу после того, как канал DMA активизируется, он запрашивает внутреннюю передачу по DMA, чтобы заполнить буфер EPBx. Как только буфер заполнится, запрос будет сброшен. Когда внешнее устройство считает буфер (один или более раз, в зависимости от режима упаковки), он станет «частично пуст», и внутренний запрос DMA будет выставлен снова. Если при выполнении внутренних передач по DMA буфер EPBx не может заполняться с той же скоростью, с какой внешнее устройство считывает из него (например, из за конфликтов внутренней шины), то внешнее устройство будет остановлено сигналом АСК (для синхронного обращения) или сигналом REDY (для асинхронного обращения), пока истинные данные не будут переданы в буфер. Для работы буфера в этом режиме должен быть обнулен бит BHD в регистре SYSCON.

Заметим, что сигнал АСК (или REDY) сбрасывается только в течение записи, когда буфер EPBx полный. Сигнал АСК (или REDY) остается выставленным в конце выполненной передачи блока, если буфер EPBx не полный. При считывании буфер

211

6 DMA

будет опустошен в конце передачи блока, и сигнал АСК (или REDY) будет сброшен, если будет предприниматься попытка дополнительного чтения.

Анализ на уровне системы

DMA в режиме ведомого полезен в системах с хост процессором, т. к. он позволяет хост процессору обращаться к любой внутренней ячейке памяти ADSP 2106x при ограничении адресного пространства, которое хост процессор должен распознать – адресное пространство регистров IOP ADSP 2106x. DMA в режиме ведомого также полезен для передачи из ADSP 2106x в ADSP 2106x.

DMA в режиме ведомого имеет один недостаток при интерфейсе с медленным хост процессором – ситуация, когда внешняя шина удерживается в течение передачи (инициируется ADSP 2106x или хост процессором) и никакой обработки запроса не производится. Для того, чтобы обойти этот момент, можно использовать режим DMA с квитированием. В режиме DMA с квитированием ни хост процессор не должен владеть шиной для того, чтобы выдать запрос DMA, ни ADSP 2106x (в режиме ведущего) не должен ждать освобождения шины, чтобы выполнить передачу. Вместо этого хост процессор выставляет сигнал

. Когда ADSP 2106x готов выполнить передачу, он может выполнить ее за один цикл. В следующем разделе это описано подробнее.

6.4.3.4 Режим с квитированием

В ADSP 21060 или ADSP 21062 каждый из каналов DMA 7 и 8 для буферов внешнего порта ЕРВ1 и ЕРВ2 имеет набор сигналов управления внешним

квитированием. и — сигналы запроса и предоставления для буфера ЕРВ1 и канала 7, а и – для буфера ЕРВ2 и канала 8.

В ADSP 21061 каждый из каналов DMA 6 и 7 для буферов ЕРВ1 и ЕРВ0 имеет набор управления внешним квитированием. Для буфера ЕРВ1 и канала 7

запросным и предоставляющим сигналами являются и , а для буфера ЕРВ0 и канала 6 – и .

Эти сигналы служат для аппаратного квитирования, чтобы упростить передачу по DMA между ADSP 2106x и периферийным устройством, которое не имеет возможности управления шиной в режиме ведущего.

Если канал DMA внешнего порта доступен, но сигнал квитирования не будет

использоваться, то соответствующий сигнал должен удерживаться высоким.

212

DMA 6

Режим DMA с квитированием разрешен, когда бит HSHAKE установлен в 1 в соответствующем регистре управления DMACx (DMAC7 или DMAC8 в ADSP 21060 или ADSP 21062; DMAC7 или DMAC6 в ADSP 21061). Если бит MASTER=0, то ADSP 2106x осуществляет квитирование, возвращая сигнал

. Если MASTER=1, то DMA работает в пошаговом режиме ведущего.

Режим DMA с квитированием работает асинхронно и со скоростью вплоть до полной тактовой частоты процессора. Источником/адресатом данных могут быть или внутренняя память ADSP 2106x, или внешняя память. При выполнении внешних передач по DMA необходимо загружать регистр внешнего счетчика ЕС.

Сигналы на линиях выбора памяти сбрасываются при передаче по DMA между внешним устройством и ADSP 2106x , так как нет обращения в пространство внешней памяти. Однако сигналы на линиях выставляются

ADSP 2106x при работе во внешнем режиме с квитированием, т. к. он обеспечивает адрес и стробы для передачи по DMA между внешним устройством и внешней памятью.

Обратимся к рис. 6.8. В качестве сигналов квитирования используются передний и задний фронты сигнала . Передний фронт интерпретируется

процессором, как «начать доступ по DMA», а задний – «выполнить доступ по DMA».

Внешнее устройство должно переключить сигнал в ноль, чтобы

запросить доступ к буферу ЕРВх. Задний фронт обнаруживается процессором и синхронизируется с частотой тактовой синхронизации. Переключение

сигнала должно удовлетворять требования к времени установления,

определенным в технических характеристиках ADSP 2106x для того, чтобы переключение было распознано в данном цикле. Иначе переключение может сработать в следующем цикле. Когда ADSP 2106x распознает запрос, он начинает добиваться предоставления ему внешней шины, если он уже не является ведущим или если буфер не заблокирован (см. состояние блокирования ниже). Когда ADSP 2106x становится ведущим, он переключает

в ноль. ADSP 2106x будет удерживать выставленным, пока он не увидит сброс . Это позволяет внешнему устройству задерживать процессор, пока оно не будет готово продолжать. Если нет конвейерных запросов, то сигнал будет сброшен в следующем цикле после сброса

213

6 DMA

Рис. 6.8. Временные диаграммы DMA в режиме с квитированием при асинхронных запросах

Замечания:

Запросы DMA () могут быть асинхронными. Задний фронт сигнала инициирует запрос DMA в ADSP 2106x. При записи данные должны обеспечиваться устройством, осуществляющим доступ, до сброса . Если

данные недоступны, то устройство может удерживать выставленным, пока данные не будут доступны. Когда это произойдет, процессор попытается обслужить запрос, но обработка запроса будет задержана до прихода переднего фронта .

Существует минимальная задержка в три цикла до того, как будет выставлен сигнал

и произойдет передача по DMA из внешнего устройства в ADSP 2106x (или во внешнюю память). Однако, процессор может оказаться не способен выдать

сигнал предоставления в течение нескольких циклов после запроса DMA, если приходит запрос на обслуживание операции DMA с более высоким приоритетом или если шина в данный момент используется другим процессором. Поэтому внешнее устройство не должно предполагать, что сигнал предоставления придет в течение двух

214

DMA 6

циклов, если не запрещены операции DMA с более высоким приоритетом и внешняя шина не доступна для передачи.

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

. Если внешнее устройство не желает продлить цикл предоставления,

оно может сбросить сигнал сразу после его выставления, обеспечив

минимальную длительность импульса согласно временным требованиям, определенным техническими характеристиками. В этом случае и сигнал

будет коротким импульсом, а внешняя шина будет использоваться только один цикл.

Контроллер DMA имеет конвейер из трех циклов, похожий на конвейер выборка декодирование выполнение программного автомата ядра процессора. Запрос DMA и арбитраж запроса происходят в цикле выборки. Генерация адреса DMA и арбитраж шины осуществляется в цикле декодирования, а передача данных – в цикле выполнения. Использование переднего и заднего фронтов сигнала

позволяет лучше использовать конвейер и передавать данные на полной тактовой частоте процессора.

Внешнее устройство не ожидает сигнала предоставления перед

осуществлением им другого запроса. Запросы хранятся в рабочем счетчике, встроенном в ADSP 2106x. Счетчик хранит максимум семь запросов, таким образом внешнее устройство может выдать до семи запросов до того, как первый будет обслужен. Заметим, что более семи запросов без выдачи сигнала предоставления приведут к непредсказуемым результатам. Сигнал

будет выставлен в ответ на только для количества передач, определенных в счетчике. Для остальных запросов сигнал будет оставаться сброшенным. Для сброса любых

дополнительных запросов должен использоваться бит FLSH в регистре управления DMACx.

Внешнее устройство должно быть уверено, что, когда появится сигнал предоставления , данные для каждого запроса записи будут сразу же

215

6 DMA

доступны (или каждое слово будет доступно при считывании). Это обеспечивается помещением данных во внешний FIFO. Когда передача данных по DMA происходит на полной тактовой частоте процессора, может понадобиться двойной или тройной конвейер данных, чтобы устранить задержку между запросом и предоставлением. Т. о., внешнее устройство может быстро выдать три запроса и, если сигнал предоставления был выдан между ними, то и четвертый запрос. Если это выполняется, то режим DMA с квитированием может работать на полной тактовой частоте при записи и при считывании. Хранящиеся запросы сбрасываются, когда в бит FLSH в регистре управления DMACx записана 1.

Из за того что внешнее устройство может управлять выполнением запроса, нет необходимости иметь доступные данные до формирования запроса. Однако если

данные будут недоступны в течение двух циклов и удерживается

низким, то ADSP 2106x и внешняя шина могут удерживаться неактивными. Внешняя шина используется только один цикл для каждой передачи по DMA, если сигнал запроса сброшен до того, как был выставлен сигнал предоставления. Иначе внешняя шина удерживается столько времени, сколько выставлен

.

ADSP 2106x не начнет арбитраж внешней шины в ответ на сигнал ,

если буфер ЕРВх полный при записи в него или пустой при считывании из него. Это называется состояние блокирования. Арбитраж шины начнется, когда буфер ЕРВх будет обслужен контроллером DMA и изменит свое состояние (т. е.

разблокируется).

В режиме с квитированием, если канал DMA внешнего порта блокирован, то его соответствующие выводы и блокированы и выставленный сигнал будет игнорироваться максимум два цикла после команды разрешения DMA (установки DEN=1), см. рис. 6.9. Сигнал будет удержан высоким процессором ADSP 2106x. Уровень сигнала на входе

должен удерживаться высоким (не низким или изменяющимся) во время команды, разрешающей режим DMA с квитированием.

Несколько ADSP 2106x в многопроцессорном кластере могут совместно использовать сигнал . управляется только ведущим, а иначе находится в третьем состоянии или переводится в третье состояние при выставлении сигнала . Это устраняет необходимость в наличии внешних

216

DMA 6

дополнительных устройств, если более чем одному ADSP 2106x или хост процессору необходимо управлять буфером DMA. Если хост процессор не

соединен с выводом и не управляет им, когда запрашивает шину, то на этом выводе может понадобиться «подтягивающий» к питанию резистор. Сигнал

имеет такую же синхронизацию и время переключения, что и стробы

и , и реагирует на сигналы и таким же образом.

DMAR x должен удерживаться высоким в течение этой команды

CLK

DMAR x

 

DMAR x

DMAR x

 

игнорируется

игнорируется

 

 

 

Выполнение команды

Разрешение DMA путем

 

установки DEN=1 и

 

 

HSHAKE=1 в регистрах

 

 

управления DMAC7 и

 

 

DMAC8

 

 

 

 

Рис. 6.9. Задержка обслуживания после разрешения режима DMA с квитированием

6.4.3.5. Внешний режим с квитированием

Внешнее устройство может также использовать сигналы квитирования

и для управления передачами по DMA между внешним устройством и

внешней памятью (вместо внутренней памяти ADSP 2106x). В этом режиме ADSP 2106x работает как независимый контроллер DMA. Этот режим устанавливается при помощи бита EXTERN в регистрах управления DMAC7 или DMAC8; бит HSHAKE должен быть равен 1, а бит MASTER – 0. Передачи во внешнем режиме с квитированием похожи на обычные передачи по DMA, но имеют некоторые отличия.

Передачи во внешнем режиме с квитированием требуют, чтобы контроллер DMA ADSP 2106x генерировал циклы обращений к внешней памяти. В этом

режиме сигналы и имеют те же функции, но вместо простой генерации сигнала ADSP 2106x выводит также адреса, сигналы

217

6 DMA

выбора памяти , стробы / и отвечает на сигнал АСК (сигнал

будет удерживаться низкого уровня, пока сигнал на линии АСК не

будет выставлен или не закончатся состояния ожидания.) Обращения к внешней памяти происходят также, как если бы их запрашивало ядро процессора ADSP 2106x. Однако буферы ЕРВх не фиксируют и не выводят данные, и не выполняется никаких передач по DMA во внутреннюю память. Для того чтобы генерировать адреса внешней памяти и считать слова, предварительно должны быть загружены регистры параметров EI, EM и ЕС. Из за того что в этом режиме не происходит никаких внутренних передач по DMA, бит PCI в регистре СР не может использоваться для запрещения прерывания DMA, должен использоваться регистр IMASK. Прерывания DMA всегда разрешены и генерируются, если они не маскированы в IMASK. Из за того, что данные во внешнем режиме с квитированием не проходят через процессор, они не могут упаковываться и распаковываться в слова различной разрядности.

6.4.4. Конфигурация системы для межпроцессорного DMA

На рис. 6.10 показаны различные способы настройки передач по DMA через внешний порт между двумя ADSP 2106x. Достоинства и недостатки каждой конфигурации должны быть приняты во внимание при разработке многопроцессорных систем.

6.4.5. Аппаратный интерфейс при выполнении DMA

На рис. 6.11 показан типичный интерфейс между двумя процессорами ADSP 2106x и внешним устройством в многопроцессорной системе. Оба ADSP 2106x настроены для работы в режиме с квитированием. Внешние фиксаторы функционируют как почтовые ящики между внешним устройством и ADSP 2106x. Фиксаторы позволяют осуществлять передачи по DMA за один цикл шины ADSP 2106x даже при работе с медленным внешним устройством.

Фиксаторы управляются сигналами и . Если внешнее

устройство записывает данные в фиксатор, то сигнал используется в

качестве сигнала разрешения вывода для фиксатора. Если внешнее устройство считывает данные из фиксатора, для синхронизации чтения данных

используется передний фронт сигнала . На рис. 6.12 показаны временные диаграммы сигналов , и передача данных. Для

получения точного описания обратитесь к Техническим характеристикам ADSP 2106x.

218

DMA 6

Конфигурация Конфигурация

Произво&

Достоинства и

ADSP&2106x

ADSP&2106x

дитель&

недостатки

(источник

(адресат данных) ность**

 

данных)

 

(циклов на

 

 

передачу)

 

Ведущий,

Ведомый,

 

 

 

Достоинства: Адресат автоматически

DMA в режиме

DMA в режиме

 

1

 

генерирует прерывание после

ведущего,

ведомого,

 

 

 

выполнения.

MASTER=1,

MASTER=0,

 

 

 

Недостатки: DMA должен быть

TRAN=1,

TRAN=0.

 

 

 

запрограммирован и в

EIx=адрес

 

 

 

 

источнике, и в адресате.

буфера ЕРВх в

 

 

 

 

 

адресате,

 

 

 

 

 

ЕМх=0.

 

 

 

 

 

Ведущий,

Ведомый,

 

1

 

Достоинства: Не требуется

DMA в режиме

Прямая запись.

 

 

 

программирования адресата.

ведущего,

 

 

 

 

Недостатки: После выполнения не

MASTER=1,

 

 

 

 

генерируется никаких

TRAN=1,

 

 

 

 

прерываний; источник должен

EIx=адрес ММS

 

 

 

 

выдать векторное прерывание

адресата*,

 

 

 

 

для адресата.

ЕМх=1.

 

 

 

 

 

Ведомый,

Ведущий,

 

2

 

Достоинства: Источник автоматически

DMA в режиме

DMA в режиме

 

 

 

генерирует прерывание после

ведомого,

ведущего,

 

 

 

выполнения.

MASTER=0,

MASTER=1,

 

 

 

Недостатки: Производительность меньше.

TRAN=1.

TRAN=0,

 

 

 

DMA должен быть

 

EIx=адрес буфера

 

 

запрограммирован и в

 

ЕРВх в источнике,

 

 

источнике, и в адресате.

 

ЕМх=0.

 

 

 

 

Ведомый,

Ведущий,

 

4

 

Достоинства: Не требуется

Прямое чтение.

DMA в режиме

 

 

 

программирования для

 

ведущего,

 

 

 

источника.

 

MASTER=1,

 

 

 

Недостатки: Самая малая

 

TRAN=0,

 

 

 

производительность. После

 

EIx=адрес ММS

 

 

 

выполнения не генерируется

 

адресата*,

 

 

 

никаких прерываний; адресат

 

ЕМх=1.

 

 

 

должен выдать векторное

 

 

 

 

 

прерывание для источника.

 

 

 

 

 

 

Рис. 6.10. Конфигурация системы для DMA из ADSP-2106x в ADSP-2106x

*MMS=пространство памяти многопроцессорной системы.

**Предполагаем, что для обращения к MMS не установлены состояния ожидания в регистре WAIT. Если установлено одно состояние ожидания для обращения MMS, добавьте 1 к каждому значению производительности.

219

6 DMA

Рис. 6.11. Пример аппаратного интерфейса DMA

Из за того что сигналы и связаны, только один из ADSP 2106x может иметь сигнал предоставление DMA в данный момент времени.

управляется только ведущим ADSP 2106x.

Если используется пошаговый режим ведущего, то сигнал предоставления записи по DMA может быть комбинацией и вместо .

Если используется пошаговый режим ведущего, то сигнал предоставления чтения по DMA может быть комбинацией и вместо .

Передачи по DMA могут быть как в ADSP 2106x, так и во внешнюю память (во внешнем режиме с квитированием).

220