- •1. Принципы и базовые алгоритмы обработки сигналов в цифровых системах. Требования к аппаратной базе для выполнения базовых операций цос.
- •3. Форматы представления данных в сигнальных процессорах. Сравнительные особенности процессоров, ориентированных на обработку фз- и пз-данных. Оценка необходимой разрядности процессора.
- •1. Данные с фиксированной запятой (Fixed-Point Numbers)
- •2. Данные с плавающей запятой (Floating-Point Numbers)
- •4. Этапы и средства разработки и отладки по для процессоров цос. Критерии выбора языка программирования и средств разработки по
- •6. Особенности программной организации ввода-обработки-вывода данных в системах цос, работающих в реальном времени. Работа по прерываниям. Использование буферов.
- •7. Методики оптимизации кода для risc-процессоров
- •Inline- функции
- •8. Dsp семейства adsp-2106x. Основные характеристики и особенности архитектуры.
- •9. Карта памяти adsp-2106x. Пространства внутренней памяти, памяти многопроцессорной системы и внешней памяти. Пространство памяти iop-регистров.
- •10. Физическая организация внутренней памяти. Блоки памяти. Возможные виды конфликтов при обращении к внутренней памяти и способы их устранения. Адресация нормальных и коротких слов.
- •12. Доступ к памяти в программе. Организация dag. Основные возможности. Особенности программирования регистров dag. Кольцевые буферы.
- •13. Системные регистры: назначение и работа с ними. Устройство обмена между шинами (px-регистры).
- •14. Общие принципы работы вычислительных блоков adsp-21ххх. Особенности организации вычислений с пз- и фз-данными. Регистровый файл. Поддерживаемые типы данных и их идентификация в программе.
- •15. Теневые регистры. Регистры флагов. Понятие "липких" флагов. Флаги аккумулирующих сравнений.
- •16. Описание и функции алу. Флаги состояния и режимы работы алу. Мас. Функционирование мас. Особенности выполнения операций округления и насыщения при работе с фз-операндами. Флаги состояния мас.
- •17. Сдвигатель. Функционирование сдвигателя. Выделение и депонирование битовых полей. Флаги состояния сдвигателя. Организация многофункциональных вычислений. Ограничения.
- •19. Организация циклов. Ограничения при организации циклов. Циклы не по счетчику. Достоинства и недостатки аппаратной поддержки циклов.
- •20. Кэш инструкций. Структура и функционирование. Возможности управления обновлением кэша. Примеры повышения/понижения эффективности выполнения кода с учетом работы кэша.
- •21. Обработка прерываний: общая последовательность действий. Таблица прерываний. Маскирование прерываний. Регистры, программного секвенсора, используемые при обработке прерываний.
- •22. Отличия работы процессора при разрешенных и запрещенных вложенных прерываниях.
- •23. Организация работы с таймером. Программные прерывания. Внешние прерывания.
- •24. Понятие и назначение dma-пересылок в adsp-2106x. Направления пересылок. Каналы dma. Принципы функционирования dma-контроллера adsp-2106x. Генерация прерываний dma-контроллером.
- •26. Цепочечные dma-пересылки в adsp-2106x. Tcb-блоки. Инициирование и завершение цепочечных dma-пересылок. Контроль состояния цепочечной dma-пересылки
- •27. Порты sharc-процессоров. Реализуемые виды интерфейсов. Организация взаимодействия между процессорным ядром и портами при вводе/выводе данных.
- •29. Архитектура и принципы функционирования линк-портов (звеньевых портов) adsp-2106x. Регистры управления работой линк-портов adsp-2106x. Связь между линк-буферами и линк-портами.
- •30. Организация взаимодействия между процессорами по выделенным каналом через линк-порты. Регистр lsrq и его назначение. Идея алгоритма "передачи маркера".
- •31. Механизм арбитража внешней шины. Схемы приоритетов. Приоритетный доступ процессорного ядра.
- •32. Операции вещательной записи. Блокировка шины. Использование "зеркальных" семафоров. Межпроцессорные сообщения и вектор прерывания virpt.
- •33. Отличительные особенности компилятора cc21k. Поддерживаемые типы данных и их реализация.
- •2.1. Общие сведения
- •2.2. Поддерживаемые типы данных
- •34. Расширения языка с. Ассемблерные вставки – использование регистров. Поддержка пространств памяти данных памяти команд. Доступ к круговым буферам.
- •2.3.1. Поддержка inline-функций
- •2.3.2. Ассемблерные вставки
- •2.3.3. Поддержка пространств памяти данных и памяти команд
- •2.3.4. Доступ к круговым буферам
- •2.4.1. Использование памяти
- •2.4.2. Регистры компилятора
- •36. Работа со стеком при вызове процедур в рамках rte. Передача и возврат параметров. Взаимодействие программ на с и ассемблере
- •2.4.4. Передача параметров в функции и возврат значений
- •2.5. Взаимодействие подпрограмм на с и ассемблере
- •2.5.1. Описания имен и области их видимости
- •2.5.2. Макросы для работы со стеком при вызове и возврате из функций на ассемблере
- •2.5.3. Вызов подпрограммы на ассемблере из программы на с
- •2.5.4. Вызов подпрограммы на с из подпрограммы на ассемблере
- •37. Разработка обработчиков прерываний. Диспетчер прерываний. Классификация обработчиков прерываний по "быстродействию" и накладным расходам.
3. Форматы представления данных в сигнальных процессорах. Сравнительные особенности процессоров, ориентированных на обработку фз- и пз-данных. Оценка необходимой разрядности процессора.
В зависимости от конкретного приложения необходимо определить требуемый уровень точности вычислений и динамический диапазон системы. Для этого нужно выбрать соответствующий формат данных.
1. Данные с фиксированной запятой (Fixed-Point Numbers)
а) целые (Integer)
- знаковые (signed)
- беззнаковые (unsigned)
б) дробные (Fractional)
- знаковые (signed)
- беззнаковые (unsigned)
2. Данные с плавающей запятой (Floating-Point Numbers)
Данные с фиксированной запятой
Представление данных в ФЗ-формате означает, что для всех чисел заданного формата логически фиксируется одинаковое местоположение точки, разделяющей целую и дробную часть числа.
Целые числа с фиксированной точкой
В целочисленном ФЗ-формате предполагается, что логическая (двоичная) точка расположена справа от самого младшего бита. Целые ФЗ-числа могут быть знаковыми и беззнаковыми, причем знаковые числа представляются в дополнительном коде.
Дробные числа с фиксированной точкой
В дробном (fractional) ФЗ-формате предполагается, что логическая (двоичная) точка расположена либо справа от самого старшего бита (для знаковых чисел), либо слева от самого старшего бита (для беззнаковых чисел). Для операций ЦОС предпочтительно использование знакового представления. Как правило, используется нормирование, чтобы все арифметические операции выполнялись с числами, по модулю меньшими единицы.
Дробные более устойчивы к переполнению за счет усечения и отбрасывания. Важно, что при этом позиция наиболее значащих битов не изменяется: число "расширяется" вправо за счет младших, менее значащих битов.
Достоинства ФЗ-формата: равномерность квантования, простота аппаратной реализации арифметических операций.
Главный недостаток – ограниченный динамический диапазон, не могут использоваться для обработки и очень больших, и очень малых чисел одновременно.
Данные с плавающей запятой
Число с плавающей запятой представляется в виде:
x = f * 2e,
где f – мантисса, а e – порядок (экспонента).
Диапазон допустимых значений мантиссы 1 ≤ f ≤ 2. Процедура приведения мантиссы к допустимому диапазону называется нормализацией.
Так как мантисса имеет указанный диапазон значений, то ее двоичная запись всегда выглядит как 1,… Поэтому первый разряд можно не хранить. Это называется использованием неявного (спрятанного) старшего бита.
Согласно стандарту IEEE-754/854 32-разрядное (одинарная точность) число с плавающей точкой представляется в следующем формате:
31 |
30 |
23 |
22 |
0 |
|||
s |
e7 |
e0 |
1.f22 |
f0 |
|||
Оно состоит из знакового бита s, 24-битового поля мантиссы (f22-f0) (с учетом «спрятанного» бита) и 8-битовой беззнаковой смещенной двоичной экспоненты (e7-e0). Значение беззнаковой двоичной экспоненты e находится в диапазоне от 1 до 254 и получается путем прибавления к несмещенной двоичной экспоненте числа +127. В таблице представлены особые типы данных:
-
Тип
Экспонента
Мантисса
Значение
NAN
255
≠ 0
неопределено
Infinity
255
= 0
(-1)s * ∞
Normal
1 ≤ e ≤ 254
любая
(-1)s * (1.f22-0)2e-127
Zero
0
0
(-1)s * 0
Для повышения точности представления мантиссы Analog Devices реализована поддержка 40-разрядных ПЗ-чисел расширенной точности:
39 |
38 |
31 |
30 |
0 |
|||
s |
e7 |
e0 |
1.f30 |
f0 |
|||
Для представления нуля используется денормализованная мантисса – значение в старшем разряде 0. В такой ситуации малые по модулю числа оказываются расположенными неравномерно – вокруг нуля появляется "мертвая" зона. Чтобы решить эту проблему применяют соглашение о денормализации: если все разряды порядка имеют нулевое значение, то величина порядка увеличивается на единицу, а мантисса считается денормализованной (содержит в старшем разряде не 1, а 0). Это позволяет расширить диапазон представления малых по модулю чисел.
Сравнительные особенности процессоров, ориентированных на обработку ФЗ- и ПЗ-данных
Все ПЗ-процессоры поддерживают обработку ФЗ-данных.
при использовании ПЗ-арифметики требуются дополнительные операции для преобразования ФЗ->ПЗ при вводе данных и ПЗ->ФЗ при их выводе
использование ПЗ-процессоров во многом облегчает и ускоряет процесс разработки программного обеспечения, так как для выполнения базовых операций используется одна инструкция, в отличие от ФЗ со множеством опций и инструкций.
ПЗ-процессоры более дорогие, чем ФЗ-процессоры, однако в последнее время наметилась тенденция уравнивания цен и переход на ПЗ-процессоры
обычно системы с ФЗ-процессорами имеют более низкое энергопотребление, что особенно актуально, например, в сотовой телефонии.
Примеры применения ФЗ-процессоров: звуковые платы, мини-АТС (обработка голоса), сотовая телефония.
Примеры применения ПЗ-процессоров: устройства коммутации пакетов в коммуникационных сетях, устройства обработки медиаданных.
Оценка необходимой разрядности
Для оценки необходимой разрядности процессора используются такое понятие, как динамический диапазон.
Диапазон представления чисел устанавливает границы между минимально и максимально допустимыми значениями, представляемыми в заданном формате и коде.
Динамический диапазон (ДД) определяется как:
.
Общая оценка качественных характеристик системы (динамический диапазон) определяется самым "слабым" с точки зрения точности представления и обработки данных звеном цепи. Например, если в сочетании с 16-разрядным АЦП, обеспечивающим качество преобразования (динамический диапазон) примерно 96 дБ, мы будем использовать 24-разрядный DSP-процессор, способный обеспечить динамический диапазон до 144 дБ, то "полный" динамический диапазон системы составит только 96 дБ.
Предположим, что с выхода АЦП поступает 16-разрядный цифровой сигнал с динамическим диапазоном 96 дБ. При использовании для его обработки 16-разрядного ЦСП и наличия в алгоритме обработки нескольких операций умножения, умножения с накоплением и т.п. в результате накопления ошибок округления и усечения ошибка распространится на младшие биты значений сигнала. Происходит сокращение динамического диапазона сигнала и, следовательно, ухудшается качество сигнала. Распространение ошибки на каждый следующий разряд приводит к снижению ОСШК (отношение сигнал-шум квантования) на 6 дБ. При использовании 16-разрядного DSP-процессора искажения, внесенные в процессе цифровой обработки, попадут в выходной сигнал и приведут к снижению динамического диапазона до 96 – 18 = 78 дБ. При использовании 24-разрядного DSP-процессора ошибки квантования и усечения не превысят пороговый уровень шума для АЦП и не приведут к дальнейшему ухудшению качественных характеристик сигнала.
Одним из основных правил при использовании систем ЦОС является выбор DSP-процессора и реализация алгоритмов обработки, обеспечивающих "непревышение" накопленных в результате промежуточных вычислений ошибок выше порога шума АЦП. С этой целью разрядность ЦСП обычно выбирается "с запасом" в зависимости от сложности алгоритмов обработки.
