Функция одной переменной (тригонометрическая, логарифмическая, показательная и др.) может быть представлена в виде таблицы с n входами и m выходами. Например, для у = sin(x), если аргумент 0 ≤ x ≤ 90° представлен кодом на 8 бит, то шаг изменения x = 90°/256. Пусть также и результат необходимо представлять 8 битами (один байт). Очевидно, что реализация комбинационных схем для каждого разряда (у)как булевой функции 8-разрядного аргумента (х)вряд ли целесообразна. Поэтому для вычисления функции используется метод прямого считывания из ПЗУ, где X – адрес, Y – выходное слово ПЗУ, в числовом поле которого записана таблица необходимой функции.
Однако метод прямого считывания применяется лишь при ограниченной точности (n ≤ 16). Если m = n = 16, то объем памяти V = 16∙216 = 220 = = 1 Мб. Для уменьшения объема памяти существует несколько методов, например метод с поправкой [17], который излагается ниже. Метод с поправкой эффективен уже при n = 12.
ТАБЛИЧНО-АЛГОРИТМИЧЕСКИЕ ВЫЧИСЛИТЕЛЬНЫЕ
ПРЕОБРАЗРОВАТЕЛИ ИНФОРМАЦИИ
|
|
Пусть y = f(x) – монотонная функция. Определим линейную функцию z = kx + Δ(х) и интервал, на котором z заменят f (x) с наименьшим интегралом E от квадрата ошибки, где k = 2i, i – целое положительное или отрицательное число, Δ(x) – поправка.
ε(x) = f (x) – (kx + Δ(x)) – ошибка
Строго говоря, поправка Δ не зависит от х, т.к. она постоянна в границах того интервала, для которого оказывается неизменным угол наклона прямой (k), аппроксимирующей функцию на участке от xi до xi+1. Но поскольку границы участка можно определить через значения х на оси ординат, то с вычислительной точки зрения и величину Δ можно определить через исходный аргумент х. Поэтому символически можно записать Δ = = Δ(х). Угол наклона k можно представить в виде числа, равного двойке в целой степени i (например отрицательной). Конкретное значение i и его знак соответствуют тому или иному интервалу, тогда для него можно также условно записать i = i(x). В этом случае нахождение значения k сведется лишь к сдвигу кода аргумента X. Безусловно, чем выше точность представления величины y = f(x), тем на большее число участков разделится область изменения аргумента. Точность представления характеризуется числом разрядов п.
Для некоторых функций при малой точности (n = 6) можно обойтись без умножения X на коэффициент k, т.е. без сдвига X. Например, функция Sec(x) представима в виде f(x) – b = x + Δ (x), где b – постоянное смещение функции, а поправка Δ х определяется из табл. 14. В табл. 14 значение D–граница отсчетов, для которой сохраняется неизменной величина Δ (х),например, до взятого Δ(x) = 1 следует 0 < x ≤ 5. С 23 по 28 отсчет Δ(x) = 5 и т.д. Преобразователь такого типа приведен на рис. 17.
|
|
Таблица 14
D | ||||||||||||
Δ |
При более высоких требованиях к точности масштабный коэффициент определяется как k = 2 r,а умножение выполняется методом сдвига x на r разрядов. В более общем случае k = 2± j + 2± i + 2 ±r.
В табл. 15 приведены расчеты количества участков кусочно-линейной аппроксимации sin(x) вида bx + Δ(х). Видно, что при увеличении точности воспроизведения функции количество констант ПЗУ увеличивается, т.к. уменьшается длина подинтервала аргумента, соответствующего значению Δ, а следовательно, увеличивается и число значений Δ.
Хст – старшие разряды
Хмл – младшие разряды X
УА – управляющий автомат
Рис. 17
На рис. 18 показан вычислительный преобразователь информации с тремя регистрами сдвига, осуществляющими сдвиг кода х на i, j и r разрядов с соответствующим знаком. Величины и знаки i, j, r считываются по значениям старших разрядов кода х из ПЗУ (k). Этими же старшими разрядами определяется и поправка Δ (х) через ПЗУ(Δ). При этом
f(x) = x 0∙ k + Δ(x 0),
где х 0 – старшие разряды X, k = 2± j + 2± I + 2± r.
Метод с поправкой позволяет существенно снизить объем ПЗУ для представления f(x). Пусть Х= 12 (1,5 байта). Для прямого считывания потребуется 212 12-разрядных ячеек памяти. При этом методе при 6 старших разрядах объем памяти составит 2∙26. Экономия в объеме памяти достигает N= раз. При n = 16 ВПИ с регистрами сдвига по затратам памяти экономичнее ~ в 2000 раз.
Эта экономия определяется следующими факторами:
– переходом к многотактной схеме вычисления f (x);
– существенным уменьшением объема ПЗУ(k) и ПЗУ(Δ) по сравнению с ПЗУ(f). При 16-разрядном аргументе лишь 8 старших разрядов определяют объем ПЗУ(f) и ПЗУ(Δ).
Этот же метод может быть положен в основу вычисления функций двух и трех переменных, если функция такова, что можно выделить основную зависимость от одного главного (исходного или промежуточного) аргумента (рис. 19). По оси абсцисс на графике поставлена функция двух переменных F(x, y), т.е. имеются в виду отсчеты функции F(x) для максимального значения y, так же и по оси ординат отложена R(x, y, z). Эллипс отличий R(x, y, z) и F(x, y) определяется «ошибкой» Z, зависящей от значений F(x, y).
Таблица 15
Погрешность | Номер участка | Начало участка | Конец участка | Угловой коэффициент k | Корректирующая константа Δ |
1,00 | 0,00000 0,49305 0,8630 1,18682 1,51843 | 0,49305 0,36830 1,18682 1,51843 1,56643 | 16/16 13/16 9/16 4/16 1/16 | 0,00999 0,06728 0,26926 0,62871 0,32431 | |
0,1 | 0,00000 0,22689 0,29670 0,45378 0,59341 0,70249 0,79848 0,88575 0,96429 0,03847 1,11264 1,18246 1,24336 1,31336 1,37881 1,44426 1,50534 | 0,22689 0,29670 0,45378 0,59341 0,70249 0,79848 0,88575 0,96429 1,03847 1,11264 1,18246 1,24791 1,31336 1,37881 1,44426 1,50534 1,56643 | 16/16 15/16 15/16 14/16 13/16 12/16 11/16 10/16 9/16 8/16 7/16 6/16 5/16 4/16 3/16 2/16 1/16 | -0,00099 0,01323 0,01377 0,04093 0,07628 0,11838 0,16641 0,21983 0,27826 0,34142 0,40910 0,48112 0,55736 0,63771 0,72210 0,81047 0,90277 |
Такие функции распространены в задачах управления движением, где R = R(x, y, z)определяется в основном зависимостью в координатах х, у, «возмущаемой» незначительно при малых значениях Zи катастрофически при больших.
Тогда можно записать R(x, y, z) = F(x, у) ± ξ(signx, signy)Q(Fст, q), где F(x, y)– эквивалент kx, Q(Fст, q)– эквивалент Δ(х), хотя Fи Q–функции двух переменных.
Величина поправки Qносит нелинейный (рис. 20) характер, поэтому не равномерный код z, обозначенный как q, будет иметь меньшее число разрядов, чем z. Такое преобразование z в q осуществляется посредством ПЗУ как q = q (z).
Структура такого вычислительного преобразователя информации (ВПИ) представлена на рис. 21, где каждая связь помечена числом передаваемых разрядов кодов x, y, z, q, f, равным 8 или 16. Разрядность переменных отмечена скобками, например – (8).
|
|
При методе прямого считывания 32-разрядная конкатенация кодов x, y, z определила бы размер ПЗУ равным 232 ≈ 4∙109 адресов. В данном случае используются два ПЗУ с 16-разрядным адресом и одно с 8-разрядным, т.е. память уменьшится в N раз, где тыс. Более подробно этот метод для функций трех и четырех переменных изложен в [23]. Здесь же кратко показано, что так называемый «черный ящик» может состоять не из одного блока ПЗУ, а из комплекса взаимосвязанных блоков ПЗУ.
Рис. 18
Метод с поправкой более детально разработан А.А. Смагниным [43] для вычисления функций одной переменной.В табл. 16 представлена зависимость различных параметров, определяющих вычисления функций у и объем памяти Vв битах, от погрешности вычисления ε. На рис. 22 представлен ВПИ, где обозначено п – ДПК(х), п2 –ДПК(у), i –старшие разряды n для вычисления F(x 0), j – старшие разряды п для вычисления φ (х)*.
Рис. 19
Таблица 16
Функция y = f(x) | Параметр | Заданная погрешность | ||||
10-2 | 10-3 | 10-4 | 10-5 | 10-6 | ||
n j i n2 nφ | ||||||
объем памяти | ||||||
ex- 1 | n j i n2 nφ | |||||
объем памяти | ||||||
n j i n2 nφ | ||||||
объем памяти Y = (бит) |
Рис. 20
Рис. 21
Рис. 22
Следует заметить, что ВПИ с несколькими ПЗУ уже нельзя отнести к схемам с одним состоянием, т.к. для вычисления функций требуются не только сигналы считывания с ПЗУ, но и последующее суммирование поправок, для чего необходим переход к последовательности нескольких состояний.
При таблично-алгоритмическом методе, функция управления сводится к последовательности операций опроса ПЗУ и суммирования.
Имеются и логические операции, основанные на анализе знаков аргументов и др.
Примеры вычисления функции одной и нескольких переменных с высокой точностью методом считывания табличных значений показывают, что при больших значениях п, т определение параметров структуры «черного ящика» является непростой задачей и требует детального расчета (моделирования) на ЭВМ.
|
|
Т.е. фактически следует рассматривать ПЗУ, сумматор и другие элементы как некий единый «черный ящик», который назовем операционным автоматом, и алгоритм управления им, который необходимо реализовать в виде управляющего автомата. Следовательно, речь уже идет не только о «черном ящике», но и о некоторой двухблоковой структуре в виде управляемой и управляющей частей.
Глава 2