- •3.1 Представление данных в алгоритме.
- •3.2 Представление данных в программе
- •3.3 Представление данных в цпос
- •3.5. Форматы данных
- •3.7.3. Представление вещественных чисел
- •3. 7. 4. Шестнадцатеричный эквивалент представления данных
- •3. 7. 5. Целочисленная и дробная арифметики
- •3.7.6. Коды чисел
- •Прямой код
- •Дополнительный код
- •Двойное слово
- •Msp lsp
- •Ext msp lsp
- •3. 7.7. Представление данных
- •Сложение и вычитание
- •Умножение
- •Замечание
- •3.7.10. Преобразование форматов в цпос с фиксированной точкой
- •3.7.11. Диапазон, динамический диапазон
- •3.7.12. Увеличение динамического диапазона
- •3. 8. 2. Форма представления данных с плавающей точкой
- •3.8.4. Преобразование форматов в цпос с плавающей точкой
- •3.8.5. Нормализованные числа j
- •3,8.6. Специально данные
- •3.8.7. Арифметические операции над данными с плавающей точкой
- •3.8.8. Диапазон, динамический диапазон и точность представления чисел с плавающей точкой
- •3.9. Сравнение цпос с фиксированной и плавающей точками
- •3.10. Организация обработки данных с плавающей точкой в цпос с фт
Данные
Реализация устройств цифровой обработки сигналов (ЦОС) на базе цифровых сигнальных процессоров (ЦПОС) включает следующие основные этапы:
разработка метода и алгоритма ЦОС,
составление и отладка программы,
выполнение программы процессором.
На всех этапах объектами цифровой обработки являются данные - совокупность констант, переменных и массивов. Различают исходные, промежуточные и конечные данные: значения исходных данных задаются, а промежуточных и конечных – вычисляются.
Указанным этапам соответствуют разные модели обработки данных
Первому— математическая,
Второму – программная,
Третьему – физическая.
Каждому из этих этапов соответствует свое представление данных, обусловленное спецификой модели.
В настоящей главе рассматривается представление данных на уровне физической модели – в регистрах и ячейках памяти процессоров. Однако прежде кратко остановимся на основных характеристиках данных и особенностях их представления в алгоритме и программе.
3.1 Представление данных в алгоритме.
Данные в схеме алгоритма представляются:
Символическими именами констант, переменных и массивов,
Непосредственно константами.
Важнейший характеристикой данных, определяющей их представление и обработку в процессоре, является тип данных.
Различают следующие основные типы данных
Целый,
Вещественный
Комплексный,
Логический ,
Литеральный (текстовый)
В алгоритмах ЦОС в вычислительных блоках, непосредственно относящихся к обработке сигналов, как правило, используются данные:
вещественноготипа – отсчеты входного и выходного сигналов, коэффициенты уравнений, отсчеты ДПФ и импульсных характеристик, значения частотных характеристик и т.д.
комплексного типа—в виде упорядоченных пар данных вещественного типа, соответствующих вещественной и мнимой частям,
целоготипа – количество и номера отсчетов и коэффициентов, размерность массивов, счетчики и т.д.,
логическоготипа – в операциях побитовой обработки.
Операции управления и вычисления адресов (номеров ячеек памяти, хранящих данные) выполняются специальными устройствами, предусмотренными в архитектуре процессоров, поэтому такие вычисления непосредственно к обработке данных не относятся и в этой главе не рассматриваются.
Наибольший объем вычислений в алгоритмах ЦОС связан с данными вещественного типа, поэтому в настоящей главе им уделено основное внимание. Обработка данных целого типа, занимающая, как правило, существенно меньший объем вычислений, также обсуждается. Особенности обработки данных логического типа и бит – последовательностей рассматриваются в гл.6
3.2 Представление данных в программе
Данные в командах программы, составленной на языке ассемблера, представляются (указываются):
Символическими именами констант, переменных и массивов, соответствующими адресами ячеек памяти, в которых они хранятся;
Именами регистров, в которых они хранятся;
Непосредственно контактами.
Правила указания данных в командах рассматриваются в гл.5
Представление исходных данных в директивах инициализации констант, зависящие от их представления в процессоре, рассматривается в этой главе.
3.3 Представление данных в цпос
Представление данных в процессоре обусловлено:
Разрядностью ячеек памяти и регистров, в которых они хранятся;
Условным функциональным распределением разрядов (на знаковые, значащие и т.п.) в ячейках и регистрах;
Спецификой выполнения арифметических операций в процессоре.
Соответственно, представление данных характеризуется:
Форматом;
Формой;
Кодом;
Кроме того, представление данных зависит от типа арифметики ,используемой в процессоре.
Характеристики представления данных и типы арифметики подробно обсуждаются далее, но сначала
Кратко напомним особенности алгебраического представления чисел в двоичной системе и основные правила выполнения арифметических операций с двоичными числами.
Двоичная система счисления
Двоичная система счисления – это простейшая позиционная система, в которой:
Для записи чисел используются только две цифры – 0 и 1;
Разряды двоичного числа называют битами;
Веса битов зависят от их месторасположения (позиции) в двоичном числе.
Целые десятичные числа переводятся в двоичные числаточно.Правило перевода заключается в последовательном делении модуля десятичного числа на 2 и запоминании остатков ( 0 или 1).Процесс деления продолжается до тех пор, пока частное не окажется равным 1. Двоичное число составляется из последовательности последнего частного, которое является старшим разрядом (старшим битом) числа и остатков, начиная с последнего; знак числа восстанавливается. В табл.3.1 приведен пример перевода числа –123(10)в двоичное число.
Таб.3.1. Пример перевода целого десятичного числа в двоичное
Деление модуля числа |
Остаток |
Двоичное число |
123 / 2 = 61 61 / 2 = 30 30 /2 = 15 15 / 2 = 7 7 /2 = 3 3 / 2 = 1 – старший бит
|
1—младший бит 1 0 1 1 1 – последний остаток
|
-- 1111011
|
Дробныедесятичные числа переводятся в двоичные числа в общем случаеприближенно, поэтому при переводе необходимо заранее указывать количество значащих цифр (количество битов) после запятой, определяющее точность представления десятичного числа. Правило перевода заключается в последовательном умножении на 2 модулядробной части десятичного числа и запоминании значений произведения (0 или 1) целой части. Двоичное число составляется из последовательных значений целых частей произведений, начиная с первого, которое является старшим разрядом (старшим битом); знак числа восстанавливается. Пример перевода числа 0,65(10) в двоичное число с точностью до 7 значащих цифр после запятой приведен в табл.3.2.
Табл.3.2.Пример перевода дробного десятичного числа в двоичное
Умножение модуля на числа |
Целая часть |
Двоичное число |
0,65 .2 = 1.30 0,30. 2 = 0,60 0,б0 . 2 = 1,20 0,20.2 = 0,40 0,40. 2 = 0,80 0,80 . 2 = 1,60 0,б0. 2 = 1,20 |
1—старший бит 0 1 0 0 1 1 – младший бит
|
0,1010011.... |
Пример точного перевода дробного числа 0,75(10) , как частного случая, дается
в табл. 3.3
Табл.3.3. Точный перевод дробного десятичного числа в двоичное
Умножение модуля числа |
Целая часть |
Двоичное число |
0,75. 2 = 1,50 0,50. 2 = 1,00 |
1 – старший бит 1 |
0,11 |
Для смешанных чисел отдельно переводятся целая и дробная части; целая часть переводится точно,дробная – приближенно.