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

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

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

Хост-интерфейс 8

управления шиной, может произойти взаимная блокировка. Эта ситуация рассматривается в следующем разделе.

8.8.2.2. Устранение взаимных блокировок

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

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

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

преодолена выставлением сигнала на линии на один или более циклов сразу после обнаружения взаимной блокировки (то есть когда буфер между системной и локальной шинами доступен для обеих сторон). (Suspend Bus Tristate) – линия перевода шины ADSP 2106х в третье состояние.

Комбинация и переводит ведущий ADSP 2106х в режим ведомого

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

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

что сигнал в этом случае будет выставлен дважды – один раз перед

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

нарушит требования временных соотношений режима ведомого.

Следующая последовательность действий позволяет хост процессору приостановить текущее обращение ADSP 2106х и получить доступ к его внутренним ресурсам, если:

1)обращение выполняется ядром процессора ADSP 2106х, а не контроллером DMA,

2)для этого обращения к памяти не обнаружены потери DRAM PAGE,

3)блокировка шины не разрешена.

301

8 Хост-интерфейс

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

2.Хост процессор управляет обоими стробами и , выставляя их в течение некоторого времени (в пределах интервала установки, определенного

в перечне технических характеристик) после выставления . Затем хост процессор может выполнять столько обращений, сколько потребуется.

3.Хост процессор имеет полный контроль над шиной и может обращаться к любому из ADSP 2106х или периферийному устройству на шине.

4.Хост процессор сбрасывает . будет сброшен, когда опустеет внутренний читаемый буфер.

5.Через цикл после того, как ADSP 2106х сбросит , он возобновляет свой приостановленный доступ.

8.8.2.3. Передачи по DMA ADSP-2106х по системной шине

Использование сигналов и для устранения взаимных блокировок

системной шины, описанное выше, не может использоваться для передач по DMA, так как, если в ADSP 2106х началась передача слова в режиме DMA, она должна завершиться (то есть ADSP 2106х должен получить сигнал ACK). Если

и выставляются во время передачи по DMA, линия не будет

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

Чтобы предотвратить возникновение взаимных блокировок системной шины при передачах по DMA, вы должны обеспечить выставление перед

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

задержана (выставлением ) в любой момент передачи слова. Для предотвращения возникновения взаимной блокировки должен быть выставлен до сброса . По завершении последовательности передач DMA программа обработки прерывания DMA должна очистить внешний флаг .

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

302

Хост-интерфейс 8

быть значительно увеличена использованием режима DMA с квитированием. В этом случае сигнал привязывается к линии запроса DMA, . Таким

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

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

8.8.3. Многопроцессорная система с локальной памятью

На рис. 8.9 показано, как несколько подсистем ADSP 2106х могут быть объединены на системной шине для увеличения производительности. Арбитраж при обращениях к системной шине осуществляется специальной программируемой матрицей логических элементов, выполненной в виде ПЛИС. Локальные шины ADSP 2106х изолируются от системной шины при помощи буфера.

Приведенная на рис. 8.9 система работает следующим образом:

ADSP 2106х запрашивает управление системной шиной сигналом после того, как выставит сигнал какой либо из линий MS, например . Матрица

Рис. 8.9. Подсистемы ADSP-2106х на системной шине

303

8 Хост-интерфейс

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

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

При обращении к ведомому ADSP 2106х другой группы ведущий ADSP 2106х выводит адрес пространства памяти многопроцессорной системы той группы. Матрица определяет пространство памяти многопроцессорной системы этой группы по трем старшим битам адреса и выставляет сигнал

для выбранной группы. После выставления матрица открывает буферы шины ведомого ADSP 2106х. Старшие биты адреса группы обнуляются буфером, с тем чтобы позволить группе декодировать адресные поля E, М и S как локальное пространство памяти многопроцессорной

системы. Поскольку сигнал не выставляется, обращение будет синхронным. Возможность одиночного состояния ожидания для шины должна быть разрешена.

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

8.8.4 Интерфейс ADSP&2106х с микропроцессором

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

микропроцессор должен держать выставленным сигнал (запрос шины хост процессором), пока он не увидит выставленной сигнал (то есть сигнал

ADSP 2106х, имеющего ID=001). После этого он может сбросить ,

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

2106х. Хост микропроцессор обращается к ADSP 2106х, выставляя и подтверждая связь с помощью REDY. в этом случае не используется.

304

Линк-порты 9

9.1. Обзор

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

Заметим, что процессор ADSP 21061 не имеет линк портов; материал, приведенный в этой главе, не содержит информации об этом процессоре.

Особенности линк портов и их функции:

Линк порты могут работать независимо и одновременно.

Данные, передаваемые через линк порты, упаковываются в 32 или 48 разрядные слова и могут прямо считываться ядром процессора ADSP 2106x или передаваться по DMA в память на кристалле.

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

Регистры передачи и приема данных с двойной буферизацией.

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

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

305

9 Линк-порты

Шесть выводов линк портов приведены в табл. 9.1. Каждый линк порт состоит из четырех двунаправленных линий передачи данных (LxDAT3 0) и двух линий квитирования – синхронизации (LxCLK) и подтверждения связи (LxACK).

Использование сигнала на линии LxCLK позволяет выполнять асинхронную передачу данных, а сигнал на линии LxACK дает возможность передачи с квитированием. Когда линк порт настроен на передачу, он управляет линиями данных и линией LxCLK. Когда линк порт настроен на прием, он управляет линией LxACK.

Выводы

Функция

LxDAT3 0

Данные линк порта «х»

LxCLK

Синхронизация линк порта «х»

LxACK

Подтверждение связи линк порта «х»

«х» означает номер линк порта, 0 5.

Таблица 9.1. Выводы линк-порта

На рис. 9.б приведены примеры различных схем соединения линк портов. В главе 7 Многопроцессорная система рассматриваются схемы соединения процессоров в многопроцессорную систему.

9.1.1. Назначение линк-порта буферам линк-портов

Имеется шесть внутренних буферных регистров данных, которые не зависят от существующих линк портов – это буферы линк портов (LBUF0 LBUF5); они могут соединяться с любым из шести линк портов. Линк порты принимают и передают данные по своим выводам данных LxDAT3 0; можно назначить, чтобы любой из шести буферов линк портов обрабатывал данные заданного линк порта. Данные считываются или записываются в буферы линк портов из внутренней памяти по DMA.

Передатчик

 

Приемник

 

LxDAT 3-0

4

 

 

Каждый

LxDAT

3-0

Каждый

LxCLK

LxCLK

 

линк -

 

линк -

порт

LxACK

LxACK

 

порт

 

 

 

Рис. 9.а. Соединение выводов линк-порта

306

Линк-порты 9

Рис. 9.б. Примеры соединения процессоров с помощью линкпортов

Запомните, что «линк порт x» автоматически не означает «буфер х линк портов».

Регистр назначения линк порта (LAR, Link Assignment Register) используется для назначения буфера линк портов определенному линк порту. Передача данных из памяти в память может быть выполнена путем назначения одного и того же линк порта двум буферам. Подробнее о регистре LAR см. в разделе «Регистры управления линк портом» этой главы. На рис. 9.1 изображена блок схема линк портов и буферов линк портов.

9.1.2. Каналы DMA линк-порта

Буферы 0 5 линк портов обеспечиваются каналами DMA 1, 3, 4, 5, 6 и 7 соответственно:

307

9 Линк-порты

Рис. 9.1. Линк-порты и буферы линк-портов

1 канал DMA

Буфер 0

линк портов (общий с приемом через SPORT1)

3 канал DMA

Буфер 1

линк портов (общий с передачей через SPORT1)

4 канал DMA

Буфер 2 линк портов

5 канал DMA

Буфер 3 линк портов

6 канал DMA

Буфер 4

линк портов (общий с буфером 0 внешнего порта)

7 канал DMA

Буфер 5

линк портов (общий с буфером 1 внешнего порта)

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

9.1.3. Прерывания линк-порта

Для линк портов предназначены прерывания трех типов:

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

308

Линк-порты 9

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

Когда внешний источник обращается через линк порт, которому не назначен буфер (или через линк порт, у которого назначенный ему буфер линк портов блокирован), то генерируется маскируемое прерывание LSRQ.

9.1.4. Начальная загрузка через линк-порт

Линк порт может быть использован для загрузки внутренней памяти после сброса. Более подробно см. в разделе «Начальная загрузка» главы

Проектирование системы этого руководства.

9.2. Регистры управления линк-портом

Есть три регистра управления линк портом: регистр управления буферами линк портов (LCTL, Link Buffer Control Register), регистр общего управления линк портами (LCOM, Link Common Control Register) и регистр назначения линк порта (LAR, Link Assignment Register). Для конфигурирования операций линк порта эти регистры должны записываться в следующем порядке: LAR, LCOM и затем LCTL. До переназначения линк порта в регистре LAR требуется заблокировать в регистре LCTL назначенный линк порту буфер.

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

Регистры управления LCTL и LCOM после сброса инициализируются 0x0000 0000. LAR инициализируется 0x0002 С688, что соответствует назначению линк порта 0 для буфера 0 линк портов, линк порта 1 для буфера 1 линк портов, линк порта 2 для буфера 2 линк портов, линк порта 3 для буфера 3 линк портов, линк порта 4 для буфера 4 линк портов, линк порта 5 для буфера 5 линк портов. Полная информация об инициализации этих регистров после сброса приведена в приложении Регистры управления/состояния этого руководства.

9.2.1. Регистр управления буферами линк-портов (LCTL)

Регистр LCTL содержит биты управления для каждого буфера линк портов. В табл. 9.2 описаны биты управления в LCTL.

309

9 Линк-порты

Биты

Имя

Определение

0 3

*

Управление буфером 0 линк портов

4 7

*

Управление буфером 1 линк портов

8 11

*

Управление буфером 2 линк портов

12 15

*

Управление буфером 3 линк портов

Таблица 9.2. Регистр управления буферами линк-портов (LCTL)

Биты

Имя

Определение

16 19

*

Управление буфером 4 линк портов

20 23

*

Управление буфером 5 линк портов

24

LEXT0

Расширенный размер слова: 1=48 разрядное, 0=32

разрядное

 

 

25

LEXT1

Расширенный размер слова: 1=48 разрядное, 0=32

разрядное

 

 

26

LEXT2

Расширенный размер слова: 1=48 разрядное, 0=32

разрядное

 

 

27

LEXT3

Расширенный размер слова: 1=48 разрядное, 0=32

разрядное

 

 

28

LEXT4

Расширенный размер слова: 1=48 разрядное, 0=32

разрядное

 

 

29

LEXT5

Расширенный размер слова: 1=48 разрядное, 0=32

разрядное

 

 

30 31

 

зарезервированы

Таблица 9.2. Регистр управления буферами линк-портов (LCTL) (окончание)

*Каждая группа содержит следующие 4 бита управления для каждого буфера линк портов (х=0, 1, 2, 3, 4, 5):

Биты

Имя

Описание

0+4х

LxEN

Активизация LBUFx

1+4х

LxDEN

Разрешение DMA через LBUFx

2+4х

LxCHEN

Разрешение цепочки операций DMA через LBUFx

3+4х

LxTRAN

Направление LBUFx: 1=передача, 0=прием

Биты управления LCTL:

LxEN Активизация буфера линк портов. Когда буфер блокируется (LxEN переключается из 1 в 0), биты LxSTAT и LRERR обнуляются. При блокировке буфера назначенный ему линк порт прекращает прием (вывод сигнала LxACK) или передачу (вывод сигнала LxCLK). Для сброса сигналов LxACK и LxCLK в низкий уровень активизируйте использование «подтягивающего» к земле резистора в регистре LCOM.

310