Типы данных FPU
Числовой процессор может выполнять операции с семью разными типами данных, представленными в таблице 9, — три целых двоичных, один целый десятичный и три типа данных с плавающей запятой.
Таблица 9. Типы данных FPU
Тип данных |
Бит |
Количество значащих цифр |
Пределы |
Целое слово |
16 |
4 |
-32768 — 32767 |
Короткое целое |
32 |
9 |
-2*109 — 2*109 |
Длинное целое |
64 |
18 |
-9*1018 — 9*1018 |
Упакованное десятичное |
80 |
18 |
-99..99 — +99..99 (18 цифр) |
Короткое вещественное |
32 |
7 |
1.18*10-38 — 3.40*1038 |
Длинное вещественное |
64 |
15—16 |
2.23*10-308 — 1.79*10308 |
Расширенное вещественное |
80 |
19 |
3.37*10-4932 — 1.18*104932 |
Вещественные числа хранятся, как и все данные, в форме двоичных чисел. Двоичная запись числа с плавающей запятой аналогична десятичной, только позиции справа от запятой соответствуют не делению на 10 в соответствующей степени, а делению на 2. Переведем для примера в двоичный вид число 0,625:
0,625 - 1/2 = 0,125
1/4 больше, чем 0,125
0,125 - 1/8 = 0
Итак, 0,625 = 0,101b. При записи вещественных чисел всегда выполняют нормализацию — умножают число на такую степень двойки, чтобы перед десятичной точкой стояла единица, в нашем случае
0,625 = 0,101b = 1,01b * 2-1
Говорят, что число имеет мантиссу 1,01 и экспоненту -1. Как можно заметить, при использовании этого алгоритма первая цифра мантиссы всегда равна 1, так что ее можно не писать, увеличивая тем самым точность представления числа дополнительно на 1 бит. Кроме того, значение экспоненты хранят не в виде целого со знаком, а в виде суммы с некоторым числом так, чтобы хранить всегда только положительное число и чтобы было легко сравнивать вещественные числа — в большинстве случаев достаточно сравнить экспоненту. Теперь мы можем рассмотреть вещественные форматы IEEE, используемые в процессорах Intel:
короткое вещественное: бит 31 — знак мантиссы, биты 30 – 23 — 8-битная экспонента + 127, биты 22 – 0 — 23-битная мантисса без первой цифры;
длинное вещественное: бит 63 — знак мантиссы, биты 62 – 52 — 11-битная экспонента + 1024, биты 51 – 0 — 52-битная мантисса без первой цифры;
расширенное вещественное: бит 79 — знак мантиссы, биты 78 – 64 — 15-битная экспонента + 16 383, биты 63 – 0 — 64-битная мантисса с первой цифрой ( то есть бит 63 равен 1).
FPU выполняет все вычисления в 80-битном расширенном формате, а 32- и 64-битные числа используются для обмена данными с основным процессором и памятью.
|
|
Кроме обычных чисел формат IEEE предусматривает несколько специальных случаев, которые могут получаться в результате математических операций и над которыми также можно выполнять некоторые операции:
положительный ноль: все биты числа сброшены в ноль;
отрицательный ноль: знаковый бит — 1, все остальные биты — нули;
положительная бесконечность: знаковый бит — 0, все биты мантиссы — 0, все биты экспоненты — 1;
отрицательная бесконечность: знаковый бит — 1, все биты мантиссы — 0, все биты экспоненты — 1;
денормализованные числа: все биты экспоненты — 0 (используются для работы с очень маленькими числами — до 10-16445 для расширенной точности);
неопределенность: знаковый бит — 1, первый бит мантиссы (первые два для 80-битных чисел) — 1, а остальные — 0, все биты экспоненты — 1;
не-число типа SNAN (сигнальное): все биты экспоненты — 1, первый бит мантиссы — 0 (для 80-битных чисел первые два бита мантиссы — 10), а среди остальных бит есть единицы;
не-число типа QNAN (тихое): все биты экспоненты — 1, первый бит мантиссы (первые два для 80-битных чисел) — 1, среди остальных бит есть единицы. Неопределенность — один из вариантов QNAN;
неподдерживаемое число: все остальные ситуации.
|
|
Остальные форматы данных FPU также допускают неопределенность — единица в старшем бите и нули в остальных для целых чисел, и старшие 16 бит — единицы для упакованных десятичных чисел.
Содержание раздела
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий