Структурная организация вычислительной системы на базе процессора ADSP-2181. Программно-логическая модель сигнального процессора ADSP-2181, страница 6

"имя файла" – указывает на файл инициализации, из которого элементы буфера получают их начальные значения данных. Ассемблер VisualDSP++ открывает файл инициализации и читает его слово за словом. Имя файла может состоять только из фактического названия (имени), если программа и файл инициализации включены в один проект.

[длина] – параметр, который определяет длину (число слов) связанного буфера. Когда длина не задана, размер буфера определен числом элементов (слов) файла инициализации.

Если в программе инициализация буфера не предусмотрена (файл инициализации в директиве .VAR не задан), соответствующая директива .VAR bufferName [длина] определяет буфер, ячейки буфера при ассемблировании очищаются (обнуляются).

Буферы могут быть линейными (нециклическими) и циклическими. Линейный буфер размещается в памяти с любого адреса. Циклический буфер может быть размещён в памяти с некоторыми ограничениями, связанными с аппаратными особенностями памяти процессора. Циклический буфер должен стартовать с базового адреса, который кратен 2n, где n – количество бит, требуемых для представления длины буфера в двоичном виде.

    2.3. Форматы данных

Аппаратный арифметический узел процессоров семейства ADSP-21хх использует 16-разрядные данные с фиксированной точкой. Вместе с тем вычислительный узел обладает специфическими характеристиками, которые позволяют работать с числами в формате с плавающей точкой за счёт использования соответствующего программного управления выполнением арифметических операций.

Процессор ADSP-2181 может использовать как целочисленный, так и дробный формат беззнаковых и знаковых данных.

Для обозначения формата в технической документации используются две цифры, разделённые точкой (.): первая из них обозначает количество бит слева от двоичной точки, вторая – количество бит справа от двоичной точки. Например, знаковый формат 16.0 является целочисленным (используется для представления положительных и отрицательных чисел без дробной части), а знаковый формат 1.15 – дробный формат (используется для представления положительных и отрицательных чисел без целой части). Диапазон представления чисел в дробном формате 1.15 от 7FFF(16) = +0.999969482421875(10) до

8000(16) = –1.0(10). Отрицательные числа представляются в дополнительном коде.

В процессоре ADSP-2181 выбор дробного или целочисленного формата осуществляется соответственно сбросом или установкой бита MSTAT.4 в регистре MSTAT. При сбросе и перезапуске процессора этот бит обнуляется, т.е. устанавливается дробный режим.

При выполнении сложения и вычитания оба операнда должны быть представлены в одном и том же формате (знаковом или беззнаковом с одинаковым расположением точки). Такой же формат имеет и результат.

При умножении форматы сомножителей могут быть знаковыми, беззнаковыми или смешанными. При перемножении двух 16-разрядных двоичных чисел получается 32-разрядное число. При этом произведение двух операндов с форматами M.N и P.Q будет иметь формат (M+P).(N+Q).

Когда оба операнда имеют формат 1.15, произведение получается в формате 2.30 (2 знаковых бита и 30 бит дробной части). Так как один из знаковых битов является избыточным, все биты результата можно сдвинуть на 1 разряд влево. После сдвига влево формат результата становится равным 1.31 и может округляться до 1.15. Таким образом, при использовании дробного формата наиболее удобен формат 1.15, поэтому арифметический узел процессора ADSP-2181 оптимизирован под этот формат.

Язык ассемблера для процессоров семейства ADSP-21хх допускает использование разных форматов для представления чисел (констант) в программах: двоичный (binari), десятичный (decimal), шестнадцатеричный (hexadecimal) и дробный (fractional) форматы. Для обозначения типа формата введены следующие признаки, сопровождающие числовые значения в программах или в документации:

“ 0х ”– префикс, обозначающий шестнадцатеричное число (0хiiiiiiii – hexadecimal);

“ b# ”– префикс, обозначающий двоичное число

(b#iiiiiiii – binari);

          – отсутствие префикса обозначает десятичное число

               (iiiiiiiiii – decimal);

“ r ”  – суффикс, обозначающий дробное число

               (iiiiiiiiir – fractional).

3. ПРОГРАММЫ ЛАБОРАТОРНЫХ РАБОТ

РАБОТА 1

Знакомство с основами работы сVisualDSP++.

Изучение программно-логической моделиADSP-2181

Цель работы

Изучение регистровой модели и функционирования процессора ADSP-2181 в среде проектирования Visual DSP++ в режиме симулятора при выполнении программы копирования буфера.

Подготовка к работе

1. Изучить общую структуру вычислительной системы и внутреннюю структуру ADSP-2181.

2. Изучить регистровые модели ALU, MAC, SHIFTER.

3. Изучить функционирование PROGRAM SEQUENCER,

DAG1, DAG2 при выполнении программы.

4. Изучить программу LR2.ASM:

а) структура программы, состав и назначение программных модулей;

б) инициализация (начальная загрузка) памяти; физические адреса буферов и программы в DM и PM;

в) настройки DAG1, DAG2 и реализуемые при этом режимы адресации операндов;

г) организация программного цикла копирования буфера;

д) состояние (содержание) памяти PM, DM до и после цикла копирования.

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

6. Проработать все изменения в программе при использовании других буферов (буфера-источника и буфера-приёмника данных) и режимов адресации, заданных преподавателем.

Выполнение работы

1. Вызвать проект LR2.dpj (рабочий стол > папка ЛР1-3 > LR2.dpj). В окне проекта (Projekt: LR2.dpj) отображается состав проекта, в окне вывода диагностических сообщений (OutputWindow) – сообщение Ready(Готово). Проанализировать содержимое папок проекта Source Files, Linker Files, Header Files, Data Files и сформулировать выводы о назначении содержащихся в них файлов.

2. В окне проекта вызвать программу копирования буфера LR2.asm (ProjektWindow: LR2.dpj> LR2.asm). В окне редактирования программы отображается текст программы на языке Ассемблера. Сопоставить текст программы с исходным, содержащимся в раздаточных материалах, полученных студентом. При необходимости редактирования программы по заданию преподавателя внести необходимые изменения (задать другой файл инициализации, другой буфер-источник или буфер-приёмник и т.п.).