
- •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. Разработка обработчиков прерываний. Диспетчер прерываний. Классификация обработчиков прерываний по "быстродействию" и накладным расходам.
26. Цепочечные dma-пересылки в adsp-2106x. Tcb-блоки. Инициирование и завершение цепочечных dma-пересылок. Контроль состояния цепочечной dma-пересылки
Цепочечные DMA-пересылки в ADSP-2106x
Цепочка операций DMA позволяет контроллеру DMA автоматически инициализироваться между серией передач по DMA. Используя режим цепочки операций, вы можете настраивать серию операций DMA, в которой каждая операция может иметь различные параметры.
Общая идея такова (со слов Хусаинова). В памяти мы создаем некоторый буфер, и в этот буфер фиксированного размера в определенном порядке мы записываем значения, которые должны быть загружены в регистры параметров DMA-пересылки - определяем значения для следующей персылки. Как только пересылка заканчивается в регистре CP должен лежать адрес этого самого буфера. Если цепочечное связывание включено, то из 17 младших разрядов CP берется адрес буфера, который назвается TCB. Из этого буфера начинается загрузка по одному слову значений в параметры DMA-пересылки этого же самого канала. Когда запись завершается, автоматически начинается следующая DMA-пересылка.
Последовательность DMA канала определяется как совокупность передач по DMA, начиная с инициализации регистров параметров и заканчивая уменьшением значения регистра счетчика до нуля. Каждый канал DMA имеет бит разрешения цепочки (CHEN) в соответствующем регистре управления. Для разрешения цепочки операций бит должен быть установлен в 1. Запись нулей в поле адреса регистра указателя цепочки (СР) запрещает цепочку операций DMA.
Когда цепочка операций разрешена, передачи по DMA начинаются с записи адреса памяти в регистр СР. Цепочки операций DMA могут выполняться только внутри одного и того же канала; использование нескольких каналов в одной цепочке операций не поддерживается.
Регистр СР – 18-разрядный, 17 младших бит – поле адреса памяти. Старший бит (бит 17) регистра СР – это бит управления, называемый PCI (программно-управляемые прерывания). Бит PCI определяет, происходит или нет прерывание после выполнения текущей последовательности DMA (в совокупности с битом маскирования прерывания в IMASK). Когда PCI=1 – прерывание разрешено и будет сгенерировано, когда содержимое регистра счетчика достигнет нуля. 0 – прерывания каналов запрещены. Заметим, что бит действует, если разрешена цепочка операций (CHEN=1).
Регистр общего назначения (GP) может быть полезным при выполнении цепочки операций DMA. Он загружается из памяти вместе с другими регистрами параметров и может использоваться для указания на последнюю выполненную последовательность DMA. Это позволяет программе определить, где размещен последний полный (или пустой) буфер данных. Так как этот регистр не имеет закрепленной за ним функции, он может использоваться для любых целей.
TCB-блоки
При выполнении цепочки операций DMA процессор автоматически инициализирует следующую передачу по DMA сразу после того, как все содержимое буфера передано или принято. Регистр указателя цепочки (СР) указывает на адрес во внутренней памяти, где хранится следующий набор параметров DMA. Этот новый набор параметров называется блок управления передачей (TСВ – Transfer Control Block). Контроллер DMA автоматически считывает ТСВ из внутренней памяти и загружает значения в регистры параметров канала, чтобы настроить следующую последовательность DMA. Этот процесс называется загрузкой ТСВ цепочки.
При выполнении загрузки ТСВ цепочки регистры параметров канала DMA загружаются значениями, выбранными из внутренней памяти. Регистр СР содержит указатель цепочки – старший адрес ТСВ. ТСВ хранится в последовательных ячейках памяти.
Рабочий регистр загружается из регистра СР перед началом загрузки цепочки и декрементируется после того, как каждый регистр загружается. Рабочий регистр позволяет обновлять регистр СР без пересечения с загрузкой текущего регистра. Когда загрузка цепочки выполнена, рабочий регистр загружается новым значением СР. Это позволяет выполнять последовательность цепочек DMA в цикле. Замечание: содержимое рабочего регистра не доступно.
Запрос загрузки ТСВ цепочки происходит также, как для всех других операций DMA. Сигнал запроса загрузки ТСВ фиксируется и удерживается контроллером DMA, пока не станет запросом высшего приоритета. Устройство I/O самостоятельно определяет приоритет и передает ТСВ, как при обычном DMA. Если присутствует много сигналов запроса загрузки цепочки, то первыми передаются ТСВ для каналов DMA с высшим приоритетом. Если канал находится в процессе загрузки цепочки, то процесс не может быть прерван запросом канала с высшим приоритетом.
Инициирование и завершение цепочечных DMA-пересылок
Для того чтобы настроить и инициализировать цепочку операций DMA, в вашей программе нужно выполнить следующее:
1. Расположить все ТСВ во внутренней памяти.
2. Установить биты разрешения DMA DEN=1 и разрешения цепочечной пересылки DMA CHEN=1 в соответствующем регистре управления DMA.
3. Записать последний адрес (т. е. значение адреса в регистре IIx) первого ТСВ в регистр СРх – это начнет цепочку.
Контроллер DMA автоматически инициализируется первым ТСВ, а затем начнет выполнять первую передачу. После того как передача будет выполнена, начнется следующая, если текущий адрес указателя цепочки не нулевой. Этот адрес используется в качестве указателя на следующий ТСВ. Запомните, что поле адреса в регистре СРх содержит только 17 разрядов. Если адрес записывается прямо в СРх, то бит 17 может конфликтовать с битом PCI.
Последовательность DMA начинается, когда происходит одно из следующих событий:
Цепочка операций запрещена, бит DEN переключается из 0 в 1 (Это соответственно для нецепочечной пересылки!)
Цепочка операций разрешена, DMA разрешен (DEN=1) и в поле адреса регистра СР записывается не нулевое значение (в этом случае сначала происходит загрузка ТСВ цепочки в регистры параметров канала).
Цепочка операций разрешена, поле адреса регистра СР ненулевое, текущая последовательность DMA закончилась (снова происходит загрузка ТСВ цепочки).
Последовательность DMA заканчивается, когда происходит одно из следующих событий:
Содержимое регистра счетчика уменьшается до нуля (содержимое обоих счетчиков С и ЕС для каналов внешнего порта).
(Для нецепочечных!) Цепочка операций запрещена, бит канала DEN переключается из 1 в 0.
Если бит DEN становится 0 и цепочка операций разрешена, канал переходит в режим «вставка цепочки» и последовательность DMA продолжается.
Контроль состояния цепочечной DMA-пересылки
По идее через регистр DMASTAT можно смотреть идет ли сейчас пересылка, а также контролировать состояние загрузки параметров DMA-пересылки.