Выбрать главу

Для сравнения, DSP с плавающей точкой обычно используют минимум 32 разряда для представления каждого числа. Это приводит к возможности представления гораздо большего количество различных значений, чем в 16-разрядном DSP с фиксированной точкой, а точнее — 232 = 4294967296. Что особенно важно, плавающая точка сильно увеличивает диапазон значений, который может быть представлен. Наиболее распространенный стандарт с плавающей точкой — стандарт ANSI/IEEE 754-1985, где самое большое и самое маленькое возможные числа равны ±3,4х1038 и ±1,2х10-38 соответственно. Важно, что этот стандарт резервирует структуры битов, которые позволяют представить другие специальные коды чисел, такие как, например, ±0 и ±оо.

Стандарт IEEE-754 представления чисел с плавающей точкой охарактеризован более детально на рис. 7.28. 32-разрядное слово разделяется на знаковый разряд, S, 8-разрядную экспоненту Е, и 23-разрядную мантиссу М. Отношение между десятичным и двоичным представлениями чисел с плавающей точкой, представленных в формате IEEE-754, задается с помощью выражения:

NUMBER10 = (-1)S х 1.M х 2(E-127)

Обратите внимание, что "1." предшествует "М" и что смещение 127 вычитается из экспоненты "Е" так, что "Е" — всегда положительное число.

В случае использования арифметики с плавающей точкой с повышенной точностью используется один разряд для знака, 31 — разрядная мантисса, 11 — разрядная экспонента, и полная длина слова, таким образом, составляет 43 разряда.

При работе с арифметикой повышенной точности динамический диапазон мантиссы увеличивается на 8 разрядов, скорость обработки данных при этом остается практически прежней, так как регистры-аккумуляторы уже имеют число разрядов больше 32. С другой стороны, 64-разрядная двойная точность (52-разрядная мантисса, 11-разрядная экспонента и разряд под знак) требует дополнительного цикла процессора при обработке. Необходимость использовать удвоенную точность при цифровой обработке сигналов встречается редко.

Многие приложения ЦОС используют преимущества более широкого динамического диапазона, обеспечиваемого 32-разрядной арифметикой с плавающей точкой. К тому же, гораздо проще программировать процессор с плавающей точкой, так как проблемы, связанные с фиксированной точкой, такие как переполнение, потеря разрядов, масштабирование данных и ошибки округления, минимизируются, и даже полностью исчезают при использовании арифметики с плавающей точкой. Важно отметить также, что DSP с плавающей точкой могут стоить значительно выше, чем DSP с фиксированной точкой, а время на разработку эквивалентного программного обеспечения может быть значительно меньше при использовании процессора с плавающей точкой.

Хотя все DSP с плавающей точкой могут работать с фиксированной точкой (при необходимости на них можно реализовать счетчики, циклы и обработку сигналов АЦП/ЦАП), это не обязательно означает, что математические действия с фиксированной точкой выполняются в них так же быстро, как операции с плавающей точкой, что зависит от внутренней архитектуры DSP. Например, DSP семейства SHARC Analog Devices оптимизированы как для операций с плавающей точкой, так и для операций с фиксированной точкой, которые производятся с одинаковой эффективностью. По этой причине процессоры SHARC чаще называют "32-разрядными DSP", чем "процессорами с плавающей точкой".

СРАВНЕНИЕ АРИФМЕТИКИ С ФИКСИРОВАННОЙ ТОЧКОЙ И С ПЛАВАЮЩЕЙ ТОЧКОЙ

• 16-раз рядная с фиксированной точкой:

♦ 216 = 65536 возможных значений

• 32-разрядная с плавающей точкой:

♦ Наибольшее значение: ±6.8 х 1038, в стандарте IEEE-754: ±3.4 х 1038

♦ Наименьшее значение: ±5.9 х 10-39, в стандарте IEEE-754: ±1.2 х 10-38

• Расширенная точность (40-бит: знак + 8-битная экспонента + 31-битная мантисса)

• Двойная точность: (64-бит.: знак + 11-бит. эксп.+ 52-бит. мантисса)

• 32-разрядная с плавающей точкой:

♦ Более высокая точность

♦ Больший динамический диапазон

♦ Проще в программировании

Рис. 7.29