ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 24.10.2024
Просмотров: 106
Скачиваний: 1
- 74 -
Используя соотношения в соответствующей паре микропро граммных алгебр, можно преобразовать микропрограмму (3.8) к гораздо более экономичному виду.
Распространим подобную запись на программы, учитывая,' что операторы теперь будут соотоять из операций.
Рассмотрим алгоритм, состоящий только из операций сло жения и умножения, причем будем предполагать, что, кроме пер вой операции умножения, каждая следующая порождает одну.опе
рацию сложения |
(как, например, в дискретно-разностных алго |
||
ритмах), т .е . |
только |
операции умножения являются порождающи |
|
ми [5 l] |
. |
|
' |
В |
этом случае |
одна из форм записи программы реализации |
|
такого алгоритма может быть следующей: |
|
|
|
|
с =• |
1т К , |
|
|
|
|
где |
fit |
- |
операция вызова числа из |
t -ой ячейки; |
• |
||||
|
|
- |
операция вызова числа из |
j -ой ячейки; |
+ |
||||
|
С |
- |
операция умножения; |
|
|
|
|||
|
Oft - |
операция пересылки результата операции С в ячей |
|||||||
|
И - |
ку |
с адресом |
Ь ; |
|
|
|
||
|
количество слагаемых в алгоритме; |
|
|
||||||
|
S - операция слижения. |
|
|
|
|||||
|
Фигурные скоски с индексами означают, что оператор |
||||||||
|
О л =* Oi'Sj C Cft' |
является выполненным только в |
случае, |
||||||
когда ] , |
L |
, |
t |
пробегают значения от I до |
К . |
После это |
|||
го |
раоотает |
оператор |
G U * {(&toi+i S X & m S j - - 3 |
|
|||||
|
Вели в |
каком-лиоо |
операторе отсутствует |
операция Oft , |
то будем подразумевать, что результат действия этого |
оператора |
|
остаетоя в арифметическом устройстве (АУ). Например, |
после вы |
|
полнения оператора Q.J *=■о* St+i 5 его результат |
остается в аУ; |
|
после этого вызывается содержимое ячейки |
и складывает |
ся о оодержимым АУ (оумматора), что, в свою очередь, остается в АУ и т .д .
Нетрудно видеть, что запись программы (3.9) рассматри-
веемого алгоритма не является наилучшей. Целесообразно при
вести исходный алгоритм к такому виду, |
чтобы операции сложе |
|||
ния и умножения порождали друг друга. |
Это обстоятельство |
по |
||
зволит исключить в выражении (3.9) операцию |
. |
|
||
Можно доказать, что всякий алгоритм, |
состоящий из |
опе |
||
раций сложения и умножения, в котором одна операция умноже |
||||
ния порождает одну операцию сложения, |
можно привести к виду |
|||
Q _ f(6c6j c)(fiw SJCbj-iCj - j , |
|
|||
t - l - s K , j - J - i - K . |
|
(3.10) |
|
|
|
|
|
||
Рассмотрим алгоритм в |
общем виде |
|
|
|
У e X l Vi +ЭС-х % + - - + # К $ С - |
(3 .II) |
|
||
|
|
|||
Для случая, когда # 1 |
, ¥ t , З&ь . V* . . . . . # К ,^ п р и |
нимают все вещественные значения, |
можно всегда найти такие чис |
||||
ла, что |
v |
ry |
v |
— |
OCk |
7 |
_ w l |
iVj |
|||
|
** s — » |
|
>* ' • * C k-i |
OCk-l |
|
|
|
|
|
|
|
Подобное представление переменных позволяет записать |
|||||
исходный алгоритм (3 .II) в виде |
|
|
|||
у « ( • • • ( V * г * л + |
|
|
|
( 3Л2) |
в котором одна операция ушожения порождает одну операцию сло жения и наоборот.
Разместив в ячейках |
6 i |
величины ¥ь |
|
и в |
ячейках |
|
||||
величины |
|
, нетрудно убедиться, что запись |
програшы |
(3.10) |
||||||
соответствует |
реализации алгоритма (3 .12). Но алгоритм |
(3.12) |
||||||||
является эквивалентным алгоритму ( З . П ) . |
|
|
|
|
|
|||||
Точно так же можно найти |
Jft |
|
|
|
||||||
m i - |
% |
m |
- |
3 . |
fflr-l |
|
|
|
||
|
т г ~ |
|
|
Ук-i |
|
|
|
|||
|
v t |
|
|
|
|
|
|
|
||
В этом случае в ячейках |
|
|
размещаются величины |
d6i |
, |
а в |
||||
ячейках |
- |
величины |
|
|
. |
|
|
|
|
|
Запись программы (3.10) алгоритма, состоящего из опера- |
||||||||||
ояения и умножения, |
является более экономичной, так как |
|
|
- |
76 - |
здесь |
исключается |
операция |
CLt . |
|
На практике чаще всего встречаются алгоритмы, в кото |
||
рых |
X i или |
являются постоянными коэффициентами, В |
этом случае удобно искать отношения именно этих коэффициентов, так как переменные могут быть наперед неизвестными.
Если записать алгоритм (3 .7 ), обозначая
ht «=С/(<п , &г = Q К42, |
. . . , |
&к « Озк |
|
то будем иметь |
|
+-Q<X [h-K]~ |
|
U |
* ЯоЭйМ + |
+•• |
|
3 |
|
|
(3.13) ’ | |
|
- O k h ^[H-i] ---------Cl2KLj[n-К]. |
На основании только что приведенных рассуждений алго ритм (3.13) можно записать следующим образом:
у [и ] - (••’ Н Си-кЗгаг-i. - { / [ П - К - Д г ^ - г -
~ y t n - i ] Z * - X [ n - K ] Z K - i + |
<ЗЛ4> |
|||
+ |
гк- 2+■ *+ х [м -о 2о + л) Гн]) Оо, |
|||
где |
|
си |
|
k |
|
Zi |
|
|
|
|
cti |
’ |
Clm-i |
|
|
|
|||
Количество |
операций в |
алгоритмах |
(3.13) и (3,14) одно |
и то же, однако машинного времени на реализацию алгоритма (3.14) будет затрачено меньше, так как здесь не теряется время на пе ресылку промежуточных результатов вычислений.
3,3, Масштабирование алгоритмов в дискретно
разностной Форме Повышение точности вычислений при неизменной времени
реализации алгоритмов на УВС можно достичь применением соот ветствующих приемов масштабирования. Для этого масштабы на всех этапах работы УБ(; необходимо выбрать такими, чтобы изобра
жения чисел в машине представлялись максимальным количеством разрядов.
Раосмотрим некоторые приемы масштабирования, исполь
- 77
зующие автоматическое изменение масштаоа в зависимости от зна чений промежуточных результатов.
|
|
Пусть необходимо производить вычисления функции у=^(ас) , |
||||||||||||||
причем аргумент |
X |
есть |
некоторая случайная величина. В та |
|||||||||||||
ких случаях, очевидно, масштабировать надо по максимальному |
|
|||||||||||||||
значению промежуточного результата |
2 |
, |
получаемого в процес |
|||||||||||||
се вычисления для данного X |
|
, |
|
|
|
|
|
|
|
|||||||
|
|
Один из способов для определения |
|
~ f ( X ) |
состоит |
|
||||||||||
в исследовании функционального преобразования |
у = £ (об) |
|
||||||||||||||
и выражения |
2 1 |
как функции не |
только |
от X |
, но и от у .. |
|
||||||||||
|
|
Рассмотрим эффективные приемы масштабирования алгорит |
||||||||||||||
мов типа (3.7) в олучае реализации их на УВС о фиксированной |
|
|||||||||||||||
запятой. Выберем масштабные коэффициенты в ввде (71 = 2 * ^ |
|
|||||||||||||||
( |
t |
= 0 , 1 , 2 , . . . ) |
и.определим |
|
|
|
|
|
|
|
|
|||||
|
|
H ( n T b J z ( ^ ( « ' 0 T , |
|
|
|
|
|
|
|
|||||||
где |
|
Z («T ). максимальное |
значение суммы ( з . 7 ; . |
|
|
|
||||||||||
|
|
Предположим, |
что для |
Qi |
и |
&L введены |
постоянные мас |
|||||||||
штабы для всего |
процесса вычислений от |
|
( 1 = 1 |
до |
И = N |
• |
||||||||||
Для входных переменных ОС |
|
О ТJ |
масштаб Щх (иТ) |
будет |
|
|||||||||||
равен |
|
|
|
|
|
|
^ |
|
|
|
|
|
|
|
|
|
и является постоянным для всех X [ ( n - L ) T ] |
при вычислении |
|
||||||||||||||
только одного |
значения |
y f n T ] |
|
. |
|
to входных пере |
|
|||||||||
|
|
Для нахождения коэффициента |
сдвига |
|
||||||||||||
менных достаточно 2 ( п Т ) |
представить в |
нормализованном виде |
|
|||||||||||||
Z ( n T ) ^ c ( 2 C , |
тогда |
порядок |
t |
и будет |
искомым коэффици |
|||||||||||
ентом сдвига. При этом, |
если |
t < 0 |
, осуществляем одвиг всех |
|
||||||||||||
# [ ( > Г - с ) Т ] |
|
, ( |
I |
= |
0 , 1 , 2 , » . . , К |
) |
на |
t |
разрядов вле |
|||||||
во, |
в против; |
ом случае - |
на |
t разрядjb вправо. |
|
|
|
|||||||||
|
|
Исследуем алгоритм |
(3 .?), |
золи |
Х ( ч - |
ступенчатая функ |
||||||||||
ция, |
|
и запишем аго в ваде |
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
к |
|
|
|
|
|
|
|
|
|
|
|
|
|
Ц п ** |
£=0 |
|
|
|
" £ |
S t ^ w -ь • |
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- 78-
Тогда ^« будет описывать переходной процесс, а установивше еся значение его можно найти из выражения
У 5jcm =*■X < Е » ^ У |
$c«t 2 ^ ^^ |
|
х £ |
о с |
(3,15) |
|
|
У и -
i + £&<
Для определения максимального значения в процессе вы числений рассмотрим процесс суммирования попарных произведе ний Cft0in-i , $L ^пЧ . Пусть суммирование происходит в следующем порядке:
5 0 = Qo Х п )
51 * Оо Хн + QiXn-1 =* So +CU0Ch-i ,
S z —S i +GzXtt-z ,
S k « S k-i + O k CCh-k ,
Sк+i— Sк— $1 |
«“I, |
“ S k« “ б г ^ и - а , |
|
$ к + г * S k+i - I - |
= н . |
|
Промежуточная сумма S j ( j |
i, 2 , . ••, K+ О |
изменя |
||
ется |
с изменением |
j |
и в некоторой точке принимает максималь |
||
ное |
значение |
|
, причем этот максимум будет либо при' |
||
Q 4. J £: К |
, |
либо при |
j 4 К 4 5 |
|
- 79 -
Промежуточная сумма примет свое максимальное значение при суммировании первой части алгоритма в случав
У уст < |
ЗС |
О £ |
|
|
|
|
|
|
||
ИЛИ |
|
|
|
*Ч I4 Tj |
|
|
> i • |
|||
l + Z & i |
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
Если же |
У ^ 1 |
, то промежуточная сумма достигает |
||||||||
максимального значения |
при K+ |
|
+ |
, |
|
|
|
|||
При выполнении алгоритма |
(3.15) |
S c |
образуются сумми |
|||||||
рованием коэффициентов. Обозначим максимальную промежуточную |
||||||||||
сумму при сложении коэффициента |
Cf через |
S a |
, |
а при сложе |
||||||
нии коэффициентов |
S |
- через |
S s |
. Тогда |
при |
|
||||
|
2 я 1 |
'*• ОС S |
a , |
|
|
|
|
(3.16) |
||
а при й* * 1 |
|
|
|
к. |
|
|
|
|
|
|
|
|
|
^ |
|
|
|
|
* |
|
(3.17) |
Если X |
|
|
£-о |
|
|
|
|
|
|
|
- медленно изменяющийся процеоо, |
то |
|||||||||
|
И Mi |
'* |
ОС Mia* S o , |
|
|
|
|
(3.18) |
||
|
|
= |
OCn X |
^ ~ < / у сЖ |
|
, |
|
(3.19) |
||
|
|
|
|
i*o |
|
|
|
|
|
|
где OC*m<jx_ максимальное по модулю из |
значений Х п |
,Х>м, . . . , |
||||||||
ОС и-к J |
|
|
|
|
|
|
|
|
|
|
У так - максимальное по модулю значение ^ и- i , . . . , ^ н - г . |
||||||||||
Полученные таким образом величины 2 н |
отражают только |
процеоо оложе^ия попарных произведений. Учитываем, что произ ведш ие чиоел, меньших единицы, меньше любого из сомножителей,
поэтому для |
того, чтобы не получить 2 и |
меньше входных пере |
|
менных, необходимо n p a S a < l(u/,u S l * i ) |
вместо S a ( UJIUS bJ |
|
|
в фррмулы (3.16, 3 .18), (3.17, 3.19) подставить единицу, |
|
||
Еоли |
ЭС (Ч) изменяется достаточно медленно, то |
и |