
- •27. Частотный детектор на цифровой линии задержки.
- •Выходной сигнал детектора определяется следующим соотношением
- •В результате получим
- •28. Синхронно-фазовый частотный детектор
- •29.Прямое дискретное преобразование Фурье.
- •Подставив (6.2) в (6.1), получим
- •30.Обратное дискретное преобразование Фурье. Обратное преобразование Фурье аналогового сигнала определяется соотношением
- •31. Алгоритм быстрого преобразования Фурье с прореживанием во времени.
- •32. Алгоритм быстрого преобразования Фурье с прореживанием по частоте.
- •Рассмотрим отдельно четные и нечетные отсчеты спектра (отсюда и название алгоритма: прореживание по частоте).
- •33. Оконное преобразование Фурье. Непрерывное вейвлет - преобразование.
- •34. Дискретное вейвлет-преобразование.
- •35. Архитектура сигнальных процессоров. Функциональная схема сигнального процессора.
- •36. Арифметико-логическое устройство сигнального процессора. Функциональная схема. Основные операции.
- •37. Умножитель-накопитель сигнального процессора. Функциональная схема. Основные операции.
- •38. Сдвигатель сигнального процессора. Функциональная схема. Основные операции.
- •39. Генератор адресов команд (программный автомат). Функциональная схема.
- •40. Функциональная схема процессора tms320c64xx
- •41. Формат представления двоичных чисел в процессоре.
- •42. Формы представления двоичных чисел в процессоре. Представление чисел с фиксированной точкой в форматах «слово», «двойное слово», «расширенное слово».
- •43. Представление данных в процессорах с плавающей точкой. Сравнительная оценка процессоров с фиксированной и плавающей точкой.
- •44. Формат и структура слова команды в процессорах со стандартной архитектурой. Алгебраический и мнемонический синтаксис команды.
- •46. Способы указания операндов в слове команды. Прямая адресация. Непосредственная адресация.
- •5.3.2. Непосредственная и прямая адресации данных
- •47. Косвенная адресация. Виды модификации адреса.
- •48.Команды пересылок.
- •49. Команды арифметических операций.
- •50. Команды логических операций и бит-манипуляций.
- •51. Команды управления работой процессора (команды перехода, цикла, обращения к подпрограммам, общего управления)
- •В качестве адреса может быть указана метка в программе. Например, jump fir_start. Метке fir_start соответствует исполняемый адрес команды, в которой указана эта метка.
- •Рассмотрим программную организацию цикла в процессоре tms320c64xx.
- •52. Средства разработки и отладки устройств цифровой обработки сигналов
44. Формат и структура слова команды в процессорах со стандартной архитектурой. Алгебраический и мнемонический синтаксис команды.
5.3.1.Формат и структура слова команды
Команда представляет собой описание действия, которое должен выполнить процессор.
Такими действиями являются:
операции над данными (арифметические и логические операции, пересылки данных),
управление последовательностью выполнения команд (организация циклов, ветвления программы, вызов подпрограмм),
общее управление работой процессора (переход в состояние ожидания, возврат из прерывания, переход к началу выполнения программы).
Совокупность команд, в целом обеспечивающая выполнение указанных функций, называется системой команд процессора.
Команды размещаются в n – разрядных ячейках памяти программ.
Под форматом команды понимается количество слов и длина слова команды в битах.
Формат команды в общем случае представляет собой два слова одинаковой длины n, соответствующие двум соседним n – разрядным ячейкам памяти. Первое слово называют словом команды, второе – словом расширения.
Слово команды хранит код операции, указания на операнды и другую информацию, например, информацию о предварительном сдвиге операнда.
Слово расширения хранит указание на тот операнд, для которого недостаточно места в команде.
В процессорах с однословным форматом слово расширения отсутствует. В процессорах с двухсловным форматом слово расширения может отсутствовать.
Например, процессор TMS320C3x использует однословные команды с длиной слова в 32 бита, процессор ADSP2181 – однословные с длиной слова в 24 бита, процессор TMS320C28 использует однословные команды длиной 16 бит и двухсловные длиной 32 бита.
Структурой слова команды называется условное разделение слова команды на поля, например, поле операции, поле операндов, поле условия выполнения команды. Структура слова команды зависит от архитектуры процессора. Чем больше узлов содержит процессор и чем выше параллелизм выполнения операций, тем сложнее структура слова команды.
Поле условия содержит код условия выполнения операции, указанной в поле операции.
Например, команда IF MV SAT MR процессора ADSP2181 содержит условие выполнения операции насыщения (SAT) содержимого регистра умножителя MR: если бит переполнения MV=1, то операция выполняется
В поле операции записывается операция, которую должен выполнить процессор. Операциями являются сложение, вычитание, умножение, логическое «И», логическое «ИЛИ» и т.д.
Поле операции всегда присутствует в слове команды, а других полей может не быть. Например, команда NOP – нет операции. Но подавляющее большинство команд содержит наряду с полем операции поле операндов.
В поле операндов дается указание на операнд.
Операнды могут указываться:
адресом ячейки памяти данных, в которой хранится операнд,
именем регистра процессора, в котором находится операнд,
константой, хранящейся в слове команды или в слове расширения.
В поле операндов указываются источники (источник) и приемник результата.
Например, в команде процессора ADSP2181 MR=MR+MX1*MF (SS) источниками являются регистры MX1, MF, MR, а приёмником результата – регистр MR. В данном случае MR и источник, и приёмник результата. Символ SS означает, что осуществляется перемножение чисел со знаком.
В приведенных выше примерах отсутствуют поля параллельных пересылок. Рассмотрим команду процессора ADSP 2181, в которой имеются параллельные пересылки,
MR=MR+MX0*MY0 (SS), MX0=DM(0x000A), MY0=PM(0x000B),
где 0x –префикс, указывающий на то, что адрес задается в 16-ричной системе счисления
0x000A 0000 0000 0000 1010
0x000B 0000 0000 0000 1011
Эта команда выполняет накапливающее суммирование произведений с предварительной пересылкой сомножителей из памяти данных (DM) и памяти программ (PM) во входные регистры умножителя MX0 и MY0 соответственно. Результат накапливающего суммирования содержится в выходном регистре умножителя MR. В этой команде осуществляется перемножение операндов, которые были загружены в регистры MX0 и MY0 в предыдущем цикле.
Рассмотренная команда является типичной для цифровой обработки сигналов, т.к. с ее помощью реализуются нерекурсивные цифровые фильтры.
Запись двух последних команд выполнена с использованием алгебраического ассемблерного синтаксиса, который отличается привычной и легко читаемой записью вычислительных операций.
Второй вид ассемблерного синтаксиса является мнемоническим. Мнемонический синтаксис представляет символическую запись информации, содержащейся в каждом поле команды.
В качестве примера использования мнемонического синтаксиса рассмотрим команду процессора TMS320C30
ADDF3 R0, R2, R3.
В поле операции указана операция ADDF3. Рассмотрим элементы обозначения операции: ADD (addition – сложение), F (floating-point – плавающая точка), 3 (в операции участвуют 3 операнда). Таким образом, данная команда выполняет операцию сложения двух чисел с плавающей точкой, находящихся в регистрах R0 и R2, и записью результата в R3.
45. Структура слова команды в процессорах с одновременным выполнением группы команд. Форматы пакетов выборки команд при последовательном, параллельном и последовательно-параллельном выполнении команд во времени.
Рассмотрим структуру слова команды в процессорах с одновременным выполнением группы команд. Возможность одновременного выполнения группы команд обеспечивается за счет специальной архитектуры процессора, при которой различные команды выполняются независимо функционирующими блоками. Типичными представителями этой группы являются процессоры TMS320C6xxx.
Структура слова команды в процессорах с одновременным выполнением группы команд
В поле устройства задаётся устройство, например, одно из 6 АЛУ или один из 2 умножителей, в которых выполняется операция, задаваемая командой.
В поле признака группировки указывается, выполняется ли данная команда параллельно с другими командами.
Рассмотрим, как осуществляется группировка команд. В процессорах платформы С6000 команды выбираются из памяти не по одной, а пакетами. Пакет выборки содержит 8 команд. На рисунке показан формат пакета выборки. Длина слова команды составляет 32 бита. Нулевой бит слова, обозначенный на рисунке через p, является битом признака группировки команд.
Формат пакета выборки процессоров TMS320C6000
Если во всех командах пакета выборки p = 0, то все 8 команд выполняются последовательно одна за другой.
Если во всех командах кроме последней p = 1, то все 8 команд выполняются одновременно в разных блоках.
Возможно параллельно-последовательное выполнение команд в пределах одной выборки. Состояние p = 1 в слове i – ой команды означает, что она будет объединена с (i+1) –ой командой для одновременного выполнения.
Формат пакета выборки при последовательно-параллельном выполнении команд
Первая единица при просмотре пакета выборки слева направо означает, что с данной командой будут группироваться следующие за ней команды, включая ближайший нуль (C, D, E). Исполняться параллельно будут также команды F, G, H. Следовательно, 8 команд будут выполнены за 4 цикла.
Выполнение последовательно-параллельных команд во времени
Циклы
|
Команды
|
1 |
A |
2 |
B |
3 |
C D E |
4 |
F G H |
Команды пакета выборки, выполняемые одновременно, образуют исполняемый пакет. Например, в приведенной таблице таких исполняемых пакетов четыре.
Структура команд на ассемблере при наличии группировки выглядит следующим образом:
Две вертикальные параллельные черты в начале команды означают, что эти команды выполняются параллельно с ближайшей предыдущей, у которой этот знак не указан.
Необходимым условием параллельного выполнения команд является выполнение их в разных устройствах.
Обратимся к примеру двух параллельных команд, записанных на ассемблере
ADD .L1 A0, A1, A2;
|| SHR .S1 A3, 15, A4;
В блоке .L1 выполняется операция сложения A0 и A1. Сумма помещается в A2. В блоке .S1 операнд A3 сдвигается на 15 разрядов вправо. Результат помещается в A4.