Проектирование устройств на сигнальных процессорах: Учебное пособие (Проектирование цифровых устройств аппаратуры связи на ЦСП семейства ADSP-21xx), страница 19

    Q

A

N

Port2

Рис. 7.6 — Диаграмма времени хранения величин для алгоритма рис. 7.5

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

В данном случае, чтение отсчёта из кольцевого буфера является операцией с косвенной адресацией, в которой используются свойства DAG. Адрес хранится в одном из индексных регистров, например в I2. Шаг изменения адреса хранится в одном из регистров модификации, например в M2. Для хранения результата чтения буфера Q пригоден любой из регистров данных dreg вычислительного блока, например AX0. В данном случае приёмник результата в АЛУ можно не занимать. Операция I2=I2+M2 выполняется в DAG параллельно с операцией чтения ячейки буфера AX0=DM(I2,M2) и в программе отображаться не будет.

По результатам анализа составляется диаграмма распределения:

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

AX0

Q

I2

A

M2

N

Port2

Q

Рис. 7.7 — Диаграмма занятости регистров для алгоритма рис. 7.5

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

7.4. Выражение алгоритма через символику процессора

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

Выполнение этапа сводится к повторному изображению структуры детализированного графического алгоритма рисунка 7.5. Но операции над физическими величинами оформляются теперь как те же операции над регистрами, в которых они хранятся. Для этого в соответствии с диаграммой занятости регистров рисунка 7.7 каждую из величин нужно заменить обозначением того регистра, в котором она хранится. Необходимо учитывать некоторые ограничения, накладываемые структурой вычислительных блоков на использование регистров. Они отражены в списках возможных операндов для каждого вычислительного блока (Приложение B, таблицы …).

Внутри ромбиков физические условия разветвления заменяют соответствующими кодами условий из числа имеющихся в наборе инструкций (Приложение B, таблица B.2). Использовать в качестве "да" и "нет" символы "1 и 0" не следует, так как они могут входить в условие с противоположным смыслом. Например, условие AZ=1 при  "да" соответствует нулевому значению физической величины.