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.5. Но операции над физическими величинами оформляются теперь как те же операции над регистрами, в которых они хранятся. Для этого в соответствии с диаграммой занятости регистров рисунка 7.7 каждую из величин нужно заменить обозначением того регистра, в котором она хранится. Необходимо учитывать некоторые ограничения, накладываемые структурой вычислительных блоков на использование регистров. Они отражены в списках возможных операндов для каждого вычислительного блока (Приложение B, таблицы …).
Внутри ромбиков физические условия разветвления заменяют соответствующими кодами условий из числа имеющихся в наборе инструкций (Приложение B, таблица B.2). Использовать в качестве "да" и "нет" символы "1 и 0" не следует, так как они могут входить в условие с противоположным смыслом. Например, условие AZ=1 при "да" соответствует нулевому значению физической величины.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.