- •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.9. Сравнение цпос с фиксированной и плавающей точками
Кроме преимуществ по динамическому диапазону и точности представления данных с ПТ, одним из важнейших достоинств ЦПОС с ПТ является естественность представления данных. Все это существенно облегчает работу про-'граммиста, позволяя ему в большинстве случаев не задумываться о проблемах: D масштабирования данных; О их неоднозначной трактовки; D переполнения.
Вместе с тем, архитектура ЦПОС с ПТ значительно сложнее, вследствие чего они, как правило, имеют большие размеры кристалла и стоимость. При выборе ЦПОС с точки зрения представления данных пользователь должен принимать во внимание:
О область его конкретного применения, в частности, требования к динамическому диапазону сигналов и точности их обработки;
D специфику программирования конкретных алгоритмов ЦОС, в частности, наличие большого объема вычислительных процедур с вероятностью выхода за границы возможного диапазона представления чисел (переполнения) и необходимостью масштабирования промежуточных данных во многих точках программы;
О ограничения на габариты кристалла.
При выборе типа процессора (с ФП или с ПТ) не следует забывать о способах повышения точности в процессорах с ФТ, если снижение скорости обработки останется в рамках заданных требований (дополнительно см. главу 9).
3.10. Организация обработки данных с плавающей точкой в цпос с фт
Кроме рассмотренного выше способа увеличения динамического диапазона и точности представления данных в ЦПОС с ФТ (см. разд. 3.7.12) можно моделировать представление чисел и арифметику с ПТ.
При моделировании формы представления с ПТ для хранения числа требуется два слова — одно для мантиссы, другое — для порядка. Как будет показано далее, форма с ПТ может повысить динамический диапазон и точность представления результатов операций, получаемых в формате "двойное слово" либо "расширенное слово", при их сохранении в памяти данных в формате "слово". Платой за это является увеличение вдвое требуемого объема памяти данных.
В архитектуре процессоров предусмотрены специальные операции, позволяющие моделировать форму представления чисел с ПТ:
П нормализация числа;
П выделение порядка для блока чисел.
Рассмотрим эффективность представления с ПТ при выполнении этих операций.
Нормализация применяется для представления вещественных чисел в форме с ПТ в нормализованном виде. В ЦПОС с ФТ независимо от типа арифметики (целочисленная или дробная) при выполнении нормализации число следует трактовать как вещественное-. Дробное двоичное число с ФТ в прямом коде считается нормализованным, а первая значащая цифра после запятой отлична от 0. Так как ЦПОС с ФТ оперирует с числами в дополнительно! коде, признаком их нормализованного вида будет первая цифра дробно! части, равная:
П 1 — для положительного числа; ПО — для отрицательного числа.
Отсюда легко формулируется правило, по которому определяют, является двоичное число в дополнительном коде нормализованным: число нормал! зовано, если значения знакового и старшего значащего битов не совпадают!
В табл. 3.12 приведены: исходные числа в форме с ФТ в формате "двоим слово" (длиной 8 битов) и они же, сохраняемые в формате "слово" (длиной бита) в двух вариантах: в первом — в форме с ФТ, во втором — с ПТ. видно из этих примеров, эффект увеличения динамического диапазона] точности при переходе к форме с ПТ достигается, когда исходное двоичное число не было уже нормализованным.
Таблица 3.12. Нормализованные и ненормализованные двоичные числа!
Двоичное число с ФТ
|
Нормализованное число с ПТ
|
Эффективность представления с ПТ (есть/нет) ]
| |
Формат
| |||
Двойное слово (8 битов)
|
Слово (4 бита)
|
Слово (4 бита) (мантисса + знак)
|
|
0,0000101
|
0,000
|
0,101 -2~4
|
Есть |
|
0,0010011
|
0,001
|
о.юо • г~2
|
Есть 1
|
0,0011101
|
0,001
|
0,111 • 2~2
|
Есть 1
|
0,0001111
|
0,000
|
0,111 • 2~3
|
Есть 1
|
1,1100110
|
1,110
|
1,001 -2~2
|
Есть Я
|
Таблица 3.12 (окончание)
Двоичное число с ФТ
|
Нормализованное число с ПТ
|
Эффективность представления с ПТ (есть/нет)
| |
Формат
| |||
Двойное слово (8 битов)
|
Слово (4 бита)
|
Слово (4 бита) (мантисса + знак)
|
|
1,1111000
|
1,111
|
1 ,000 • 2~4
|
Есть
|
1,1110101
|
1,111
|
1,010 -2~3
|
Есть
|
1,1101010
|
1,110
|
1,010-2~2
|
Есть
|
0,1010101
|
0,101
|
0,101 -2е-
|
Нет
|
0,1110011
|
0,111
|
0,111 '2°
|
Нет
|
1,0011010
|
1,001
|
1,001 • 2°
|
Нет
|
1,0110011
|
1,011 .
|
1,011 -2°
|
Нет
|
Для нормализации чисел в процессорах с ФТ предусмотрена команда norm, в соответствии с которой производятся необходимые сдвиги числа влево с одновременным запоминанием количества сдвигов в специально отводимом регистре.
Возможность представления числа с порядком используется для организации так называемой блочной плавающей точки. Принцип представления чисел с блочной плавающей точкой состоит в следующем:
П числа объединяются в группы из нескольких чисел — блоки; О внутри блока выделяется самое большое (по модулю) число;
П это число представляется в форме с ПТ; порядок числа (максимальный в блоке) сохраняется в специальном регистре;
П остальные числа блока представляются в форме с ПТ при том же значении порядка.
Операция определения единого порядка для блока данных поддерживается в процессорах фирмы Analog Devices. Вся процедура осуществляется с помощью аппаратно реализованного цикла по специальной команде expadj, называемой "выделение порядка блока". Блоки чисел, имеющих в форме с ПТ одинаковый порядок, в последующем могут обрабатываться с помощью программно организованной блочной арифметики.
Блочная плавающая точка эффективна для представления данных с малыми (по модулю) значениями и с незначительным разбросом этих значений. В табл. 3.13 даны примеры эффективной и неэффективной организаций
блочной плавающей точки в блоках размером 4 числа; жирным шрифтом выделено наибольшее (по модулю) число в блоке.
В заключение отметим, что моделировать представление данных и арифметику с ПТ имеет смысл только, если объем подобных вычислений невелик в противном случае целесообразно выбрать процессор с ПТ.
Таблица 3.13. Блочная плавающая точки
Блок
|
Двоичное число
|
Блочная ПТ
|
Эффективность представления с блочной ПТ (есть/нет)
| |
Формат
| ||||
Двойное слово (16 битов)
|
Слово (8 битов) (мантисса + знак)
|
Порядок
| ||
1
|
0,000111011001010
|
0,0111011
|
|
Есть
|
|
0,001011000100100
|
0,1011000
|
0110
|
|
|
0,000010100100011
|
0,0010100
|
|
|
|
0,001011010100110
|
0,1011010
|
|
|
2
|
0,00111011001010
|
0,0011101
|
|
Нет
|
|
0,101011000100100
|
0,1010110
|
0000
|
|
|
0,111010100100011
|
0,1110101
|
|
|
|
0,000101101010011
|
0,0001011
|
|
|
|