Широковещательная запись

Широковещательная запись позволяет одновременно передавать данные во все

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

процессоров.

Область старших адресов пространства памяти многопроцессорной системы 0x0038 0000 _ 0x003F FFFF используется для широковещательной записи. Когда адрес записи попадает в эту область, каждый ведомый ADSP_2106x принимает записываемые данные; ведущий ADSP_2106x также принимает свою широковещательную запись. В цикле чтения данных из области широковещательной записи считывается соответствующая ячейка во внутренней памяти процессора, при этом сигнал не выставляется.

На рис. 7.8 показаны временные диаграммы типичной широковещательной записи при MMSWS=0. В этом примере первая запись завершается без состояния ожидания. Во время второй записи один или больше ведомых имеют 3 состояния ожидания и сбрасывают ACK на 3 цикла. Примечание: вход ACK опрашивается ведущим в нечетных циклах (выставлен). Если разрешено

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

Поскольку ведущий процессор должен ждать завершения выполнения широковещательной записи во все ведомые, сигнал подтверждениЯ обрабатывается по_другому для предотвращения конфликтов при управлении линией ACK. Линии сигналов подтверждения, использующиеся для ответа на эти передачи, объединяются по схеме «монтажное ИЛИ». Этот сигнал

обрабатывается следующим образом:

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

2. Если широковещательная запись не закончена, то во всех следующих четных циклах ведомый ADSP_2106x не управляет сигналом ACK. Вместо этого ведущий процессор устанавливает сигнал ACK в 1 и продолжает запись (возврат к шагу 1).

В большинстве случаев сигнал ACK будет выставлен (высокий уровень) и ведомые ADSP_2106x будут готовы принять данные к началу широковещательной записи – запись выполняется за один цикл. Однако если сигнал ACK сброшен (низкий уровень) или один из ведомых не готов принять данные, то широковещательная запись будет занимать минимум три цикла.

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

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: