![]() |
Главная -> Появление первого микропроцессора 0 1 2 3 4 5 6 [7] 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 значащих цифр, т. е. всех верных цифр числа, кроме нулей, стоящих слева в изображении числа. Например, числа 12,3; 0,123; 0,000123 имеют по три значащие цифры. Цифры в записи приближенного числа принято считать верными, если граничная абсолютная ошибка представления этого числа не превосходит половины единицы (иногда целой единицы) его младшего разряда [15]. Очевидно, что в силу этого определения все цифры округленного числа (при точном округляемом числе) являются верными, хотя фактически могут не совпадать с соответ-стующими цифрами точного числа. Например, при симметричном округлении точного числа 0,17997 до четырех цифр округленное число имеет значение 0,1800, не совпадающее с точным в трех разрядах, но тем не менее имеющее все верные цифры. Значность чисел определяет граничную относительную ошибку их представления: чем выше значность, тем меньше эта ошибка и, следовательно, тем выше точность числа. Точному числу на числовой оси соответствует точка, а округленному - интервал чисел. На рис. 1.3 показаны интервалы 0,05 < 0,1 <0,15 и 0,095 < 0,10 < 0,105 округленных чисел 0,1 и 0,10 соответственно с одной и двумя значащими цифрами. Чем выше значность, тем уже интервал неопределенности и тем ближе округленное число к точному. Заметим, что в арифметике с фиксированной запятой в отличие от арифметики с плавающей запятой (об этом будет сказано далее, в гл. 2) повышение значности приводит одновременно к существенному увеличению диапазона представимых чисел, т. е. точность и диапазон чисел оказываются тесно связанными друг с другом. Повышение значности в 8-разрядных микропроцессорах достигается, как правило, побайтным увеличением формата чисел (8, 16, 24 двоичных разрядов и т. д.), поскольку байт - 8-рязрядное двоичное слово - является структурной единицей, требующей минимальных программных затрат для обработки (доступ же к отдельным битам байта связан с усложнением обработки). Программы сложения, вычитания, умножения и деления, рассматриваемые в этой главе, оперируют с данными различного формата, что позволяет выбрать ту или иную программу в зависимости от требуемых точности вычислений и диапазона представления чисел. При использовании арифметики с фиксированной за-, пятой для выполнения сложных вычислений (последова- 0.04 0,05 0.06 0.0? 0.0в OJDQ 0,1 0.11 0,12 0.13 0.14 0.15 0.1В
Рис. 1.3. Интервалы округленных чисел различной значности на числовой оси тельностей арифметических операций) возникает задача расчета масштабов, обеспечивающих значения модулей исходных промежуточных и результирующих чисел в пределах заданного диапазона их представлений [46, 61, 64, 70]. В данной работе для вычиcлeий сложных выражений (см. гл. 4) применяется арифметика с плавающей запятой, поэтому здесь задача расчета масштабов не рассматривается. 1.2. СЛОЖЕНИЕ И ВЫЧИТАНИЕ Л/БАЙТНЫХ ЧИСЕЛ 1.2.1. МЕТОДИКА СЛОЖЕНИЯ И ВЫЧИТАНИЯ Операции сложения и вычитания точных чисел не вносят погрешности в результат. Свойства этих операций для чисел ограниченной точности определяются следующим правилом: граничная абсолютная ошибка суммы или разности чисел не превышает суммы граничных ошибок представления слагаемых [34, 64, 70]: Аг( S ±А:,)< 2 Аг(Х,). (1.15) 1= 1 /= I Это правило учитывает наихудший случай распределения ошибок округления слагаемых: когда ошибки независимы и одного знака. При значительном числе слагаемых, полученных методом симметричного округления, происходит взаимная компенсация ошибок разного знака, и истинная абсолютная ошибка суммы (разности) лишь в исключительных случаях близка к граничной. Граничная относительная оилибка суммы слагаемых одного знака находится между наименьшей и наибольшей из граничных относительных ошибок слагаемых [с учетом формулы (1.12)]: [бр (A:,)]nnin < бр ( S X) < [бг (Х,)]п,а.х. (1.16) Иными словами, точность суммы не уступает точности слагаемых (вследствие компенсации ошибок сумма оказывается обычно точнее слагаемых). В отличие от суммы разность чисел ограниченной точности может быть менее точной, чем уменьшаемое и вычитаемое. Потеря точности особенно велика в том случае, когда уменьшаемое и вычитаемое близки по абсолютной величине. Такое вычитание приводит к резкому снижению значности результата и, следовательно, к возрастанию граничной относительной оилибки разности. При организации вычислений необходимо либо избегать вычитания близких чисел, либо брать исходные числа с достаточно высокой точностью, обеспечивающей при вычитании необходимую точность результата. В 8-разрядных микропроцессорах разрядность формата данных n = 8N, где - количество байтов {N I). УУ-байтное (многобайтное) беззнаковое двоичное число X можно рассматривать как Л/-разрядное число в смешанной системе счисления с основанием 2 = 256, где каждый байт Х[ (/= 1, 2, N) кодирует цифру числа в соответствующем 256-ричном разряде согласно формуле (1.6) или (1.7). Условимся в дальнейшем в /V-байтных данных {N > 1) байт с индексом i = 1 называть младшим (МЛБ), с индексом N - старшим (СТБ), а с промежуточными индексами - средними (СРВ) байтами. В микропроцессоре КР580 операции сложения (вычитания) чисел для случая N = 1 вьшолняются с помощью соответствующих команд (см. табл. П. 2). При N> 1 требуется разработка программ. Пусть X=(Xfj, Xi) и Y - {Yn, У) - УУ-байтные числа. В основе программы сложения (вычитания) X±Y = Z лежит вычислительная схема, изображенная на рис. 1.4, где Xn, Х2, X, - байты первого слагаемого (уменьшаемого); Yfj, К2, У - байты второго слагаемого (вычитаемого); Zn, .... Z2, Z\ - байты суммы (разности), размещаемые на месте первого слагаемого; CY - бит переноса, который можно рассматривать перед операцией сложения г-х байтов как младший разряд дополнительного слагаемого, а после выполнения этой операции - как дополнительный старший разряд суммы (разности) /-х байтов. В кружках обозначен тип выполняемой операции, стрелки показывают направления передачи информации (информационные потоки) между элементами схемы. Штриховыми линиями выделен повторяющийся процесс, который ис-26 0 1 2 3 4 5 6 [7] 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 0.0495 |
|