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

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

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

Многопроцессорная система 7

4. Прямая запись завершается после начала программы обработки прерывания.

Для предотвращения появления такой ситуации ведущий перед записью в регистр VIRPT ведомого должен удостовериться, что все прямые записи завершены. Это может быть выполнено путем опроса бита DWPD (в регистре SYSTAT) ведомого после выполнения прямой записи. Запись в VIRPT следует производить после того, как бит DWPD будет равен нулю.

7.8. Биты состояния в регистре SYSTAT

Регистр SYSTAT обеспечивает информацию о состоянии, прежде всего для многопроцессорной системы. В табл. 7.4 показаны биты состояния в этом регистре.

Имя бита

Описание

HSTM

Управление шиной хост процессором

BSYN

Синхронизация шины

CRBM

Текущий ведущий (ID2 0 ведущего ADSP 2106x)

IDC

Код идентификатора (ID2 0 этого ADSP 2106x)

DWPD

Задержка прямой записи

VIPD

Задержка векторного прерывания

HPS

Состояние упаковки при передаче хост процессора

Таблица 7.4. Биты состояния в регистре SYSTAT

HSTM

Управление шиной хост&процессором (Host Mastership). Указывает, что хост

 

процессор управляет шиной:

 

1 = хост процессор – ведущий

 

0 = хост&процессор – не ведущий

BSYN

Синхронизация шины (Bus Synchronization). Указывает, когда логика арбитража

 

шины синхронизирована после сброса (см. «Синхронизация шины после

 

сброса»):

 

1 = Логика арбитража шины синхронизирована

 

0 = Логика арбитража шины не синхронизирована

CRBM

Текущий ведущий (Current Bus Master). Указывает код ID того ADSP 2106x,

 

который является текущим ведущим. Если CRBM равен ID этого ADSP 2106x,

 

то он является ведущим. Значение CRBM истинно только для ID>0. Когда ID2

 

0=000, CRBM всегда равен 1.

IDC

Код идентификатора (ID Code). Указывает значения на выводах ID2 0 данного

 

ADSP 2106x.

DWPD

Задержка прямой записи (Direct Write Pending). Указывает, что прямая запись

 

во внутреннюю память отложена. После выполнения прямой записи бит DWPD

 

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

 

цепочка операций DMA на подходе или происходит запрос DMA с более

 

высоким приоритетом. Максимальная задержка – 12 циклов.

261

7 Многопроцессорная система

 

1

= есть задержка прямой записи

 

0

= нет задержки прямой записи

VIPD

Задержка векторного прерывания (Vector Interrupt Pending). Указывает, что

 

отложенное векторное прерывание еще не обработано. Бит VIPD

 

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

 

после возврата из программы обработки прерывания. Ведущий ADSP 2106x

 

(или хост процессор), который выдает векторное прерывание, должен

 

контролировать этот бит, чтобы определить, когда программа обработки

 

завершается и когда может быть выдано новое векторное прерывание.

 

1

= есть задержка векторного прерывания

 

0

= нет задержки векторного прерывания

HPS

Состояние упаковки при передаче хост&процессора (Host Packing Status).

 

Указывает, завершена или нет упаковка слова и какая стадия упаковки

 

происходит.

 

00 = упаковка выполнена

01 = 1 й этап всех режимов упаковки и распаковки

10 = 2&й этап упаковки/распаковки 1648 или 3248 бит

Рис. 7.9. Биты состояния в регистре SYSTAT

262

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

8.1. Обзор

Хост интерфейс ADSP 2106х обеспечивает простое подсоединение стандартных микропроцессорных шин – как 16, так и 32 разрядных, предъявляя незначительные дополнительные требования к аппаратной части. ADSP 2106х поддерживает синхронную и асинхронную передачу данных, позволяя хост процессору использовать различные тактовые частоты. Асинхронная передача обеспечивается на скорости вплоть до полной тактовой частоты процессора. Хост процессор осуществляет обращения к ADSP 2106х через его внешний порт по внешней шине (DATA47 0 и ADDR31 0). Память хост интерфейса отображается в объединенное адресное пространство ADSP 2106х. На рис. 8.1 представлена блок схема внешнего порта, устройства ввода вывода (IOP) и буферов FIFO данных, которая иллюстрирует расположенные на кристалле пути следования данных для передач, управляемых хост процессором. Для передачи кода и данных хост процессор может использовать четыре канала DMA внешнего порта, что уменьшает программные затраты.

Хост процессор запрашивает внешнюю шину ADSP 2106х и управляет ею с помощью сигналов «запрос шины хост процессором» (, Host Bus Request),

«предоставление шины хост процессору» (, Host Bus Grant), и «готов»

(REDY). Получив управление шиной, хост процессор может осуществлять прямые чтение и запись во внутреннюю память ADSP 2106х. Он также может производить чтение и запись любого из регистров IOP ADSP 2106x, включая буферы FIFO EPBx. Хост процессор использует один из регистров IOP (например, SYSCON или SYSTAT) для управления и конфигурирования ADSP 2106х и настройки DMA. Передачи по DMA, будучи установлены хост процессором (или ядром процессора ADSP 2106х), управляются встроенным контроллером DMA АDSP 2106х. В многопроцессорной системе хост процессор может обращаться к внутренней памяти и регистрам IOP каждого ADSP 2106х. Векторные прерывания обеспечивают эффективное выполнение команд хост процессора.

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

263

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

данных, сигналами управления памятью то есть чтением, записью и выбором кристалла – хост процессор может обращаться к любому устройству на шине ADSP 2106х, как если бы это устройство было просто памятью. Разрядность шины данных хост процессора может быть 16 или 32 бита, управляемый им адрес может иметь 8 или 32 бита. Любой из ADSP 2106х на шине может быть

адресован либо с помощью его сигнала

(выбор кристалла), либо с помощью

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

В табл. 8.1 определены сигналы ADSP 2106х, используемые интерфейсом хост процессора.

Рис. 8.1. Внешний порт и хост-интерфейс

264

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

Сигнал Тип

Определение

 

 

 

 

 

Запрос шины хост&процессором (Host Bus Request). Выставляется хост

 

I/А

 

 

 

процессором для запроса управления внешней шиной ADSP 2106х. В

 

 

 

многопроцессорной системе при выставлении

ведущий ADSP 2106х

 

 

 

освободит шину и выставит

. Чтобы освободить шину, ADSP 2106х

переводит линии адреса, данных, выбора кристалла и строба в состояние с высоким сопротивлением. В многопроцессорной системе имеет наивысший приоритет над всеми запросами шины процессором ().

I/O Предоставление шины хост&процессору (Host Bus Grant). Подтверждает запрос шины , показывая, что хост процессор может принять на себя управление внешней шиной. ADSP 2106х выставляет (низкий уровень), пока не будет освобожден. В

многопроцессорной системе является выходным сигналом ведущего ADSP 2106х и отслеживается всеми остальными процессорами.

I/A Выбор кристалла (Chip Select). Выставляется хост процессором для

выбора ADSP 2106x.

REDY (o/d) O Подтверждение перехода управления шиной хост&процессору (Host Bus Acknowledge). ADSP 2106х сбрасывает REDY (низкий уровень), чтобы добавить состояния ожидания при асинхронных обращениях к своей внутренней памяти или регистрам IOP со стороны хост процессора. По умолчанию используется выход с открытым стоком (o/d); состояние активного управляющего выхода (a/d) программируется битом ADREDY

в регистре SYSCON. Если выставлены входные сигналы и , то REDY будет только выходным сигналом.

I/S Перевод шины в третье состояние (Suspend Bus Tristate). Внешние

устройства могут выставлять сигнал (активный уровень —

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

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

ошибок PAGE или взаимных блокировок хост процессора и ADSP 2106х. Обозначения: I=вход, S=синхронный, Р=питание, (o/d)=с открытым стоком (open drain), O=выход, А=асинхронный, G=земля, (a/d)=активный управляющий (active drive)

Таблица 8.1. Сигналы хост-интерфейса

265

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

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

внешняя шина (external bus)

многопроцессорная

система

(multiprocessor

system)

пространство

памяти

многопроцессорной

системы

(multiprocessor memory space)

регистр IOP

ведомый или режим ведомого (bus slave or slave mode)

цикл перехода шины (Bus Transition Cycle, BTC)

сигналы DATA47 0, АDDR31 0, , , , ADRCLK,

PAGE, , ACK и .

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

часть карты памяти ADSP 2106х, которая включает в себя внутреннюю память и регистры IOP каждого ADSP 2106х в многопроцессорной системе; это адресное пространство отображается в объединенное адресное пространство ADSP 2106х.

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

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

).

цикл, в котором управление внешней шиной передается от одного ADSP 2106х другому (в многопроцессорной системе).

цикл перехода шины хост процессору (Host Transition Cycle, HTC)

асинхронная

передача

(asynchronous

transfers)

цикл, в котором управление внешней шиной передается от ADSP 2106х хост процессору – в течение этого цикла ADSP

2106х прекращает управление сигналами , ,

ADDR31 0, , АDRCLK, PAGE, и , которые после этого должны управляться хост процессором.

асинхронное обращение хост процессора к ADSP 2106х; после получения управления внешней шиной ADSP 2106х

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

266

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

синхронная

передача

(synchronous

transfers)

прямое чтение и прямая запись (direct reads & writes)

буферы FIFO внешнего порта (external port FIFO buffers)

передача одного слова данных (single word data transfer)

регистры

управления DMACх (DMACx control registers)

синхронное обращение хост процессора ADSP 2106х; не

выставлен, и хост процессор должен действовать подобно другому ADSP 2106х в многопроцессорной системе, генерируя адрес в пространстве памяти многопроцессорной

системы, устанавливая и или , выводя или фиксируя данные.

прямое обращение к внутренней памяти ADSP 2106х или регистрам устройства ввода вывода (регистрам IOP) со стороны другого ADSP 2106х или хост процессора.

EPB0, EPB1, EPB2 и EPB3 – регистры IOP, используемые для передач по DMA через внешний порт и передач одного слова данных (от других ADSP 2106х или хост процессора); эти буферы состоят из 6 ячеек FIFO.

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

регистры управления DMA для буферов внешнего порта EPBx: DMAC6, DMAC7, DMAC8 и DMAC9, которые соответствуют EPB0, EPB1, EPB2 и EPB3 (полное описание регистров управления DMACx см. в главе DMA или в приложении Регистры управления/состояния этого руководства).

8.2. Управление ADSP-2106х хост-процессором

Сигналы и позволяют хост процессору получать контроль над

ADSP 2106х и его внешней шиной. Получив управление шиной ADSP 2106x, хост процессор может передавать данные как синхронно, так и асинхронно; чаще используется асинхронная передача. При синхронной передаче шина хост процессора может быть 16 , 32 или 48 разрядной, при асинхронной – только 16 или 32 разрядной.

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

267

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

разрядность шины хост процессора равна 16 битам, данные могут быть упакованы в 32 или 48 разрядные слова. Когда разрядность шины хост процессора равна 32 битам, данные могут быть упакованы в 48 разрядные слова. Для управлениями режимами упаковки и распаковки данных используются биты режима упаковки при передаче хост процессора (HPM, Host Packing Mode) в регистре SYSCON.

8.2.1. Получение управления шиной

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

приоритет над всеми запросами шины в многопроцессорной системе , и его

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

Сигналом, показывающим, что происходит передача управления шиной, является (активный уровень – низкий), выставляемый ведущим

процессором сразу по завершении текущей операции шины. Цикл, в котором передается управление шиной, называется циклом перехода шины хост процессору (HTC, Host Transition Cycle).

На рис. 8.2 показаны временные диаграммы получения управления шиной хост процессором. HBG выставляется во время цикла передачи управления шиной (BTC, Bus Transition Cycle) и остается выставленным, пока хост процессор не сбросит (цикл передачи шины BTC, показанный на рис.8.2, аналогичен циклу BTC между двумя SHARC в многопроцессорной системе, см. главу 7 Многопроцессорная система). запрещает арбитраж шины ADSP 2106х в многопроцессорной системе на время, в течение которого хост процессор управляет шиной ( должен также использоваться для разрешения работы сигнальных буферов хост процессора, как показано на рис. 8.8 в конце этой главы). Пока выставлен , ADSP 2106х в многопроцессорной системе будут

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

Получив управление шиной, хост процессор может выбрать синхронный или асинхронный обмен данными с ADSP 2106х. Чтобы инициировать асинхронные

268

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

Рис. 8.2. Временные диаграммы арбитража шины

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

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

В течение цикла HTC, в котором хост процессор получает управление шиной, он отвечает за управление следующими сигналами: ADDR31 0, , , и PAGE (см. рис. 8.3). Этими сигналами хост процессор должен управлять все время, пока владеет шиной. Кроме того, линиями , ADRCLK, и

необходимо управлять или они могут быть «подтянуты к питанию»

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

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

269

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

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

На получение управления шиной хост процессором налагаются следующие ограничения:

Если выставляется во время сброса ADSP 2106х, последний не ответит

выставлением до завершения сброса и синхронизации многопроцессорной системы.

не должен сбрасываться во время передач хост процессора.

Если устанавливается после , ADSP 2106х может перейти в режим ведомого и приостановить любое незавершенное обращение к внешней шине (подробнее см. подраздел «Устранение взаимных блокировок» раздела «Интерфейс системной шины» этой главы).

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

В системах с одним ADSP 2106x (с ID2 0 = 000) синхронные передачи могут не использоваться.

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

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

8.2.2. Асинхронные передачи

Для того, чтобы инициировать асинхронную передачу после получения управления внешней шиной ADSP 2106х, хост процессор должен выставить сигнал на выводе

того ADSP 2106х, к которому он будет обращаться. Это сообщает ADSP 2106х,

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

270