Файл: Торгашев В.А. Система остаточных классов и надежность ЦВМ.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 21.07.2024
Просмотров: 118
Скачиваний: 0
ставленным число {Л4 — | А |]ЛІ,, отнюдь не равное { — | Л |}Л[„ так как I М \м , ф 0. Поэтому результат расширения следует скоррек
тировать, вычитая из него основание М.
В общем случае в процессе расширения системы оснований могут принимать участие не все модули, входящие в исходную СОК. В частности, если в системе остаточных классов представ
лена правильная дробь {/1}^, то в расширении участвуют лишь
модули, соответствующие знаменателю N. Поэтому вновь получен ные при расширении остатки соответствуют величине {ЛГ —
и для коррекции результата следует |
вычесть |
из |
этих |
остатков |
|||
константу |
Заменяя в формуле |
(1.26) Я |
на |
Я' и |
вычитая |
||
из правой части N, получим выражение для расширения |
числи |
||||||
теля отрицательной дроби: |
|
|
|
|
|
||
|
{А}& *= {(— АГ) (** (7і) + 1)}*,. |
|
|
|
(1.30) |
||
Тогда при расширении системы оснований для |
дробей |
с про |
|||||
извольным знаком удобно пользоваться общей формулой: |
|
|
|||||
|
{А}н , = { ( - |
Ю( (it* (А) + |
sign (Л))}*,, |
|
|
(1.31) |
|
|
если |
А ;> U; |
|
|
|
|
|
|
если |
А < 0. |
|
|
|
|
|
Следует отметить, что знак числа А однозначно определяется его позиционной характеристикой. В частности, если А является
числителем правильной дроби {Л}^, то
|
sign ( Л ) - | - * л г (^4)1/?'. |
(1-32) |
Аналогичными формулами можно воспользоваться и для округ |
||
ления произведения |
с произвольным |
знаком при условии, |
что М' > 2N 2. Причем знак произведения можно определять по формуле (1.32) лишь в том случае, если Я' > N.
Нетрудно убедиться в том, что количество модульных операций, необходимых для расширения системы оснований при использовании чисел с произвольным знаком, увеличивается на единицу по сравне нию с вариантом, рассмотренным в § 1.4.
IПоэтому для получения округленного произведения двух дробей
спроизвольными знаками требуется выполнить:
а) 2 (я И- 1) модульных операций, |
если |
М > 2N а; |
||
б) 3(я + 1), если величины |
{/1}^/ |
и |
вычисляются одно |
|
временно; |
|
|
|
|
в) |
4(п+1), если те же |
величины вычисляются последовательно. |
||
К недостаткам данного способа умножения следует отнести не |
||||
обходимость введения добавочных оснований |
(для вариантов б) ив)), |
в результате чего по меньшей мере вдвое увеличиваются аппаратур ные затраты иа создание арифметического устройства.
Поэтому рассмотрим другой способ умножения, не требующий введения добавочных оснований. Так же как и в предыдущем слу
27
чае, сначала предположим, что оба сомножителя положительны. Представим каждый из сомножителей в виде пары чисел:
|
|
А = A \N I -f“ As, |
В — BiNs -j- Bz, |
0 -33) |
|||||||||
где NiNs = N н N- ~ Л С . |
|
|
|
|
|
|
|
|
|||||
Тогда |
|
|
|
|
A\Bs |
|
AsB^ |
AjBs ~[ |
|
||||
|
|
|
|
А \ В ) -)- |
|
|
|||||||
|
|
|
|
N t |
+ |
|
N , |
+ |
N J |
|
|||
|
|
|
|
|
|
|
|
||||||
|
|
|
AiBi |
|
|
1 ГAsBj |
|
|
|||||
|
|
|
|
NsJ +I |
Nt.' |
(1.34) |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Положим |
для |
определенности |
W |
|
> |
ЛГ,. Из |
очевидных нера |
||||||
|
|
4- |
|
2 |
|
следует, |
что: |
|
|||||
венств |
/1 < N, |
В-С N |
и формулы |
(1.33) |
|
||||||||
|
Hi <3 Л^2; |
As <С |
j; |
Д, <С Л4; |
Д2 <С ЛГ2• |
|
|||||||
Из |
возможных |
произведений A,ß, |
AsBi, A tBs |
последнее |
может |
||||||||
щшнпмать наибольшее значение, не превышающее величины (N 2— I)2. |
|||||||||||||
Поэтому, выбирая |
M > ( N 2— I)2, можно |
гарантировать однозначное |
представление этих произведений в заданной СОК.
Для вычисления произведения положительных дробей в соответ
ствии |
с формулой (1.34) необходимо сначала представить |
величины |
||
A t, As, |
В, и В2 в СОК с основанием М. Очевидно, что |
|
||
|
А\ — Гсдг, (-4); As — \ А )уѵ,; |
Bi = |
(В)', Bs —IВ (д^. |
|
Поэтому для определения величин |
{4} w и |
{Ö.} лг сначала |
вычисля |
ются позиционные характеристики в сокращенных СОК с основания ми M/Ni н MlNs соответственно, а далее эти системы расширяются до исходной. Число модульных операций, используемых в каждом
случае, |
равно п. |
{42},u и {В2} Лг можно воспользоваться вы |
||
Для |
получения чисел |
|||
ражениями, |
полученными |
непосредственно из формулы |
(1.33): |
|
|
|
{Аг}м = {А}м — {AIN S) M <’ |
|
|
|
|
^ {А і} лг = {В }м — {B I N S} M . |
|
|
Далее, |
после вычисления произведении •( |
{4, 62}^ |
и{Л2Д,}лі в соответствии с формулой (1.34) определяются позицион
ные характеристики {r-Nli (А Д 2)}/И и |
(4 2S I)}JV и, наконец, про |
изведение ( С j. Полученный результат может отличаться от искомо |
го произведения почти на три единицы младшего разряда из-за оши бок, возникающих при округлении. Однако, если М > 3 ЛГ, то вели чину ошибки Д можно определить из выражения {Д}лі =*
= {лдг (АВ — CW)}AT•
Произведения {АВ}М и {СЫ}щ вычисляются формально, так как нас интересуют не сами эти величины, а их разность, которая может быть однозначно представлена в заданной СОК.
Для получения симметричной погрешности округления к произ ведению АВ следует прибавить величину [N/2].
Если положить Рп+і^4, то для вычисления ошибки требуется п-\-2 модульных операции, а в целом умножение двух положитель
ных дробей можно выполнить за время, соответствующее 5/г+ІІ |
мо- |
- дульным операциям при минимальном объеме арифметического |
уст |
28
ройства, либо Зл+7 операциям, если использовать два преобразова теля из СОК в ОПС.
Если перемножаемые дроби имеют произвольные знаки, то при расширении системы оснований можно воспользоваться формулами, аналогичными (1.31) и (1.32). Правда, вторая формула может ис пользоваться для определения знака лишь у чисел, меньших чем N. В то же время произведение ЛіВ2 может превышать знаменатель дроби. Однако нетрудно убедиться в том, что Д2 и Во всегда поло жительны, и поэтому знак А (или А і) совпадает со знаком произве дения А\Вг. Что касается ошибки Д, то она так же всегда положи тельная независимо от знаков сомножителей А и В, ибо округление при вычислении позиционных характеристик осуществляется в мень шую сторону.
Число модульных операций, использующихся при вычислении произведения двух дробей с произвольными знаками, не превышает 5(п+3) либо 3(л+3) при наличии двух преобразователей из СОК
вОПС.
Втех случаях, когда умножение выполняется с удвоенной точ ностью, т. е. требуется знать число, соответствующее младшим раз
рядам произведения |
Q N 2 |
= |
| AB |дг / N 2, |
можно воспользоваться |
||
выражением |
|
|
|
|
|
|
|
|
{ С } Л - { Д В - ( С |
+ Д)Л7}Л . |
|||
Пример |
1.7. |
Пусть |
задана |
СОК |
с основаниями рі= 3, |
|
Ро=7 и Рз—4; N = 3-7=21; |
Л4 —ЛМ =84. Вычислим произведение |
|||||
дробей AIN — l6l2 i и |
ß/TV = |
l0/21, представленных в данной СОК при |
||||
помощи перехода к расширенной системе оснований: |
||||||
{ + $ |
= {1,2,0}Ц; |
6 |
{ ß }" |
= { 2 , 4 , 2 }|і . |
Добавив модуль Ръ— Ъ и р = П , получим новую СОК с основанием Л4'=4620, причем R '= 5 5 > N .
Представим числители дробей в этой СОК, используя формулы
(1.31) и (1.32): |
|
|
|
|
{А}м' = |
{1. 2, 0, 1, 5}4620; |
|
{Вм ,} = {2- 2- |
1}-іб2о- |
Тогда |
{ЛВ}М, = {1, 1,0, 0, 5}4620; |
|
||
|
|
|||
|
{™/Ѵ(AB)}m ,iN |
= |
{0, 2, 3}220 ; |
|
Sign (тсдг (ДВ)) = I — nM 'I R ( A B ) |д = I —3 |t = |
1 |
|||
|
Г гсдг (AB) |
|
||
^заметим, что |
яM'lR (AB) “ L |
Л' |
Поэтому, используя вы |
|
ражение (1.31), |
получим |
|
|
|
{ * N (AB)}N = { 1,6}21;
{лдг (AB)}jtf, — {1, 6, 0, 2, 3).4бао.
Переходя снова к исходной СОК путем исключения цифр, соот-
29
ветствующнх двум последним основаниям, получим окончательным результат:
{C }^ = { ^ { ß } ^ |
= |
{ l,6 ,0 } 82{. |
|||
Легко убедиться |
в том, |
что С= 76 = —8, т. е. C/N = —8/21. |
|||
Пример 1.8. Решить предыдущий пример, ие расширяя задан |
|||||
ную СОК. Положим УѴ|=рі=3; N2—P2=7- Далее представим каж |
|||||
дый из числителей |
перемножаемых |
дробей в |
виде пары чисел |
||
Д = Д і З + Д 2 и В В \ 7 В 2. |
|
|
|
|
|
{Д,}уИ= |
{2, 5, 1},4, |
Д, = |
5; |
||
|
= |
1 , 1},*. |
Д2 = |
1; |
|
{Ді}лі = |
1 5, 2}S4, |
Д. = - 2 ; |
|||
{Да}лі = |
{Д 4, 0),*, |
Bs = 4. |
произведения |
|
|
{А\Ві}м — {2, 4, 2}S4, |
Д,Д, = |
—Ш; |
{ A ß . } A f - { 2, 6, 0}84, |
Д,Д2 = |
20; |
{Д2Дi } = {1,5, 2}84, |
Д2Д, = |
- 2 |
и позиционные характеристики |
|
|
{KN, |
(7ІіДа)}уѴі “ |
{2. 2, 2}s4; |
{тедг, |
= |
{2, 6, 3}84. |
Приближенное произведение получим как результат суммиро вания Д,Д, и позиционных характеристик: {С}^ = {0, 5, 3}|{.
Далее вычисляем ошибку {ДД— C N }M = {2, 1, 1}а4; {Д}ж =-
- {1, 1. Н е окончательный результат умножения двух дробей равен:
{С + Д}ж = {^}ж-{б}щ = {1 . 6, 0}82',
т. е. совпадает с результатом предыдущего примера.
1.6. ДЕЛЕНИЕ ДРОБНЫХ ЧИСЕЛ В СОК
Операция деления является наиболее сложной из всех ариф метических операций. Правда, для большинства задач относитель ная доля деления не превышает нескольких процентов от общего числа арифметических операций. Во многих управляющих машинах деление не включается в состав команд и осуществляется про граммными способами. Поэтому можно считать, что время выпол нения операции деления относительно слабо сказывается на общей производительности ЦВМ. В связи с этим мы не будем подробно анализировать различные способы выполнения этой операции, а рассмотрим лишь один способ деления дробей, который отличается
30