Руководство пользователя по сигнальным процессорам Sharc
.pdfМногопроцессорная система 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&й этап упаковки/распаковки 16→48 или 32→48 бит
Рис. 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

– сигнал запроса шины хост процессором.
имеет
, и его
(активный уровень – низкий), выставляемый ведущим
(цикл передачи шины BTC, показанный на рис.8.2, аналогичен циклу BTC между двумя SHARC в многопроцессорной системе, см. главу 7
запрещает арбитраж шины ADSP 2106х в многопроцессорной системе на время, в течение которого хост процессор управляет шиной (
должен также использоваться для разрешения работы сигнальных буферов хост процессора, как показано на рис. 8.8 в конце этой главы). Пока выставлен
, ADSP 2106х в многопроцессорной системе будут
, как и в нормальном режиме работы, но циклы передачи шины осуществляться не будут. Ведущий ADSP 2106х будет поддерживать сигналы на своих линиях
выставленными в течение всего времени, пока шиной управляет хост процессор.
(активный уровень – низкий) того ADSP 2106х, к которому будет обращаться и осуществлять чтение или запись. Если
не выставлен,
игнорируется. Чтобы инициировать синхронные передачи, хост процессор, поддерживая сброшенными (высокий уровень) сигналы
всех ADSP 2106х, производит чтение или запись
,
,
и PAGE (см. рис. 8.3). Этими сигналами хост процессор должен управлять все время, пока владеет шиной. Кроме того, линиями
, ADRCLK,
и
необходимо управлять или они могут быть «подтянуты к питанию»
не будет
должен оставаться выставленным до тех пор, пока хост процессор не завершит последнюю передачу данных.
выставляется во время сброса ADSP 2106х, последний не ответит
до завершения сброса и синхронизации многопроцессорной системы.
не должен сбрасываться во время передач хост процессора.
устанавливается после
, ADSP 2106х может перейти в режим ведомого и приостановить любое незавершенное обращение к внешней шине (подробнее см. подраздел «Устранение взаимных блокировок» раздела «Интерфейс системной шины» этой главы).
.
. Ведущий ADSP 2106х ответит
. В следующем цикле ведущий снова возьмет на себя управление шиной и возобновит нормальный арбитраж шины в многопроцессорной системе. Хост процессор не должен сбрасывать
, пока не завершит свой последний обмен данными с ADSP 2106х.
того ADSP 2106х, к которому он будет обращаться. Это сообщает ADSP 2106х,