Книги / Книга Проектирование ВПОВС (часть 2)
.pdf
x |
1 |
+ |
|
|
x |
2 |
+ |
|
|
x |
+ |
|
|
|
|
|
|
|
|
|
|||||
|
- |
|
|
|
- |
|
|
3 |
- |
|
||
|
|
|
|
|
|
|
|
|
|
|||
y |
1 |
+ |
|
|
y |
2 |
+ |
|
|
y |
+ |
мл |
|
|
|
|
|
||||||||
|
- |
|
|
- |
|
3 |
- |
|||||
|
|
|
|
|
|
|
|
|
|
|||
|
|
С |
0 |
|
|
|
С |
0 |
|
|
С |
|
|
|
|
|
|
|
|
|
|
0 |
|||
|
|
S |
|
|
|
S |
|
|
S |
|
||
|
|
Перенос в младш. |
Сл. разряд |
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|||
|
|
разряд старш. разряда |
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
Коррекция |
|
|
Коррекция |
|
||
|
|
|
|
|
|
|
младших |
|
|
|
младших |
|
|
|
|
|
|
|
|
разрядов |
|
|
|
разрядов |
|
|
|
|
|
|
|
|
Старшие |
Текущие |
|
|
||
|
|
|
|
|
|
|
разряды |
разряды |
|
|
||
|
|
|
|
|
|
|
Рег. 1 |
|
|
Рег. 2 |
|
Рег. 3 |
Последовательное число
Рис. 3.35.
Рассмотрим процесс суммирования на примере суммирования двух 10-
битовых слагаемых, разбив их на два поля по пять бит.
|
0 |
1 |
2 |
3 |
4 |
5 |
x1 |
0 |
1 |
0 |
-1 |
0 |
0 |
y1 |
0 |
0 |
-1 |
1 |
-1 |
0 |
0 |
0 |
|
|
|
|
|
0 |
0 |
1 |
|
|
|
|
0 |
0 |
1 |
|
|
|
|
|
0 |
-1 |
1 |
|
|
|
|
0 |
0 |
1 |
|
|
|
|
|
0 |
0 |
0 |
|
|
|
|
1 |
-1 |
0 |
|
|
|
|
|
0 |
-1 |
1 |
|
|
|
|
-1 |
-1 |
1 |
|
|
|
|
|
0 |
0 |
0 |
232
-1 |
0 |
|
1 |
2 |
3 |
4 |
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
x1 |
0 |
|
-1 |
0 |
1 |
-1 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
y1 |
0 |
|
-1 |
1 |
1 |
-1 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
-1 |
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
Младшие разряды 00 |
|
|
|||||||||||||
0 |
1 |
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
0 |
|
0 |
1 |
|
|
|
|
|
|
|
|
|
|
|
Результат S1 = .0 1 -1 0 |
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
1 |
|
0 |
1 |
|
|
|
|
|
|
|
|
|
|
|
S2 = .0 0 -1 -1 |
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
1 |
-1 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
S1 = .1 0 -1 0 |
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
1 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
0 |
-1 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
S .01 1 0000 1 1 10 1 |
|
|
||||||||||||||||||||
|
|
|
|
0 |
-1 |
0 |
|
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
0 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
-1 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
Проверка |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
-1 |
0 |
1 |
|
2 |
3 |
4 |
5 |
6 |
|
7 |
8 |
|
|
9 |
|
|
|
10 |
11 |
|||||||
|
|
|
|
|
|
|
|
|
0 |
|
1 |
|
0 |
-1 |
0 |
1 |
0 |
|
1 |
-1 -1 0 |
1 |
||||||||||
|
|
|
|
|
|
|
|
|
|
0 |
|
0 |
|
-1 1 |
-1 1 |
0 |
|
-1 -1 -1 1 |
1 |
||||||||||||
|
|
|
|
0 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
0 |
0 |
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
-1 разряд |
|
0 |
|
|
0 |
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
0 |
|
-1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 разряд |
|
0 |
|
|
0 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 разряд |
|
|
|
1 |
|
-1 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
-1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 разряд |
|
|
|
|
|
|
|
-1 |
|
-1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
-1 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 разряд |
|
|
|
|
|
|
|
|
|
0 |
|
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
4 разряд |
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
|
0 |
|
|
|
|
|
|
|
|
|
|
|
5 разряд |
|
|
|
|
|
|
|
|
|
|
|
|
0 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
-1 |
0 |
|
|
|
|
|
|
|
|
||
6 разряд |
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
-1 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
-1 |
|
0 |
|
|
|
|
|
||
7 разряд |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-1 |
-1 |
|
0 |
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
0 |
|
|
|
1 |
|
|
8 разряд |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-1 |
|
0 |
1 |
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
-1 |
0 |
9 разряд |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
0 |
|
|
0 |
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
-1 |
10 разряд |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
-1 |
|
|
|
0 |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
11 разряд |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-1 |
|
|
|
0 |
0 |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
233 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4. ВЫЧИСЛЕНИЕ ЭЛЕМЕНТАРНЫХ ФУНКЦИЙ С АРГУМЕНТАМИ,
ПРЕДСТАВЛЕННЫМИ ПОЛЯМИ
При выполнении основных процедур с переменной разрядностью размерность данных меняется от шага к шагу. Для сохранения на каждом этапе высокой производительности при приемлемом объёме оборудования широко используемая двоичная система не обеспечивает требования либо по времени,
либо по объёму оборудования. В связи с чем для построения систем с переменной разрядностью разработаны методы вычислений, основанные на коде “опережающий перенос” [7, 37]. В данной главе рассматриваются методы реализации элементарных функций, широко используемые в алгоритмах специализированных систем, погрешность и время определения которых существенно влияет на их эффективность. В дальнейшем исходные данные,
разрядность которых меняется в достаточно широком диапазоне, будем определять как поля.
Основные трудности численного определения элементарных функций и других операций с аргументами, представленных полями, является переменная точность вычислений, связанная с изменением формата данных в зависимости от этапа алгоритма. Таким образом, в специализированных системах высокой точности использование стандартных программ, предназначенных для вычисления функций с фиксированным форматом данных (обычно n = 64 бита),
невозможно. Это связано с тем, что в большинстве случаев в подпрограммах определения значений функций используются полимиальные приближения. А
так как в случае увеличения разрядности в процессе выполнения отдельных операций точность вычислений возрастает, что ведёт к увеличению размерности полинома. И как следствие, для каждого случая требуется свой набор коэффициентов полинома. Использование же одного набора коэффициентов, ориентированного на максимальную точность, приводит к увеличению числа малопродуктивных операций. В силу указанных причин в работе рассмотрены методы, позволяющие изменять разрядность представления данных (полей) в процессе вычислений.
234
Как указывалось выше, под полем в данном случае и далее подразумевается аргумент, разрядность которого не фиксирована и превышает стандартные значения разрядностей, определяемых стандартом для ЭВМ
(например, 64 бита), и может изменяться в процессе реализации операций в общем случае неограниченно. Впервые работа с полями организовывалась в вычислительных машинах ЕС-1030 и ЕС-1060, где число бит представления данных не ограничивалось. Однако использование двоичной позиционной системы требовало длительного времени выполнения операций с полями, что ограничивало возможности её применения.
Предлагаемые в работе методы обработки данных, представленных полями с переменной разрядностью, основаны на коде “опережающий перенос”, что требует адаптации известных алгоритмов вычисления функций и построения специализированных устройств вычислительной техники для их реализации.
Основные трудности численного определения элементарных функций с аргументом, представленных полями, является переменная точность вычислений, связанная с изменением формата данных в зависимости от задачи.
Таким образом, в специализированных вычислительных системах используются как стандартные программы для фиксированных форматов данных (обычно n = 64 бита), так и программы вычисления функций с аргументом, заданных полями.
В последнем случае использование полимиальных приближений затруднительно, так как для каждого случая требуется свой набор коэффициентов полинома. Использование же одного набора, ориентированного на максимальную точность, приводит к увеличению числа малопродуктивных операций.
235
Таблица 4.1
K |
1/К |
1/К |
|
|
|
|
(десятичное представление) |
(двоичное представление) |
|
||
|
|
|
|
|
|
2 |
0,5 (0) |
0.1(0) |
|
|
|
|
|
|
|
|
|
3 |
0.(3) |
0.(01) |
|
|
|
|
|
|
|
|
|
5 |
0.2(0) |
0.(0011) |
|
|
|
|
|
|
|
|
|
7 |
0.(142957) |
0.(001) |
|
|
|
|
|
|
|
|
|
11 |
0.(09) |
0.(000111) |
|
|
|
|
|
|
|
|
|
13 |
0.(076923) |
0.(00010010 10) |
|
|
|
|
|
|
|
|
|
17 |
0.(0583235294176470) |
0.(00000111 1) |
|
|
|
|
|
|
|
|
|
19 |
0.(052631578473684210) |
0.(00001110 0101) |
|
|
|
|
|
|
|
|
|
23 |
0.04347826086956521738(9) |
0.(00001010 01) |
|
|
|
|
|
|
|
|
|
29 |
0.(0310) |
0.(00001000 11001011) |
|
|
|
|
|
|
|
|
|
31 |
0.0322(5806451612) |
0.(0001001) |
|
|
|
|
|
|
|||
37 |
0.(027) |
0.(01101110 10110011 11100100 01010011) |
|||
|
|
|
|
||
41 |
0.(024390) |
0.(00000110 00011010 0111) |
|
||
|
|
|
|
|
|
43 |
0.(0232581395348837) |
0.(00000101 1111) |
|
|
|
|
|
|
|
|
|
47 |
0.() |
0.000001010 |
11100100 |
1100010 |
(00001010 |
|
|
1100100 1100010) |
|
|
|
|
|
|
|||
53 |
(0.01886792452830) |
0.00000100 1101 (01001000 01110011 |
|||
|
|
11101100 10101101 11100011 0000) |
|
||
|
|
|
|||
57 |
(0.01753859649122807) |
0.(00001000 11111010 00111110 111) |
|||
|
|
|
|
|
|
4.1.1. Вычисление значений показательной функции
Пусть задана функция y = ex, где х – аргумент, представленный полем, в
полулогарифмической форме, т.е.
x x 2N 2m , |
(4.6) |
где N – порядок, определяющий количество сдвигов на число разрядов групп, а m – порядок сдвига на число незначащих разрядов внутри старшей группы.
238
