Файл: Торгашев В.А. Система остаточных классов и надежность ЦВМ.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 21.07.2024

Просмотров: 119

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

достаточно простым алгоритмом при относительно высокой скоро­ сти выполнения операции.

Пусть СIN = (AIN):{B/N).

Очевидно, что числитель частного, являющийся целым числом, можно определить следующим образом:

C=>IANIB].

(1.35)

Все способы деления дробей, представленных в СОК, можно раз­ бить на три основные группы.

Для способов первой группы характерно то, что в расширен­ ной системе остаточных классов, обеспечивающей однозначное пред­ ставление величин ЛЛ; любым из известных способов, осуществляет­ ся деление целых чисел A N : В. Следует отметить, что чаще всего в литературе рассматривается деление именно целых чисел, пред­ ставленных в СОК [3, 17]. Способы, относящиеся к этой группе, помимо значительных аппаратурных затрат, связанных с необхо­ димостью расширения исходной СОК, характеризуются относитель­ но низким быстродействием (т. е. большим числом модульных опе­ раций, необходимых для реализации деления).

Более быстродействующими являются способы деления, отно­ сящиеся ко второй группе, где вместо деления выполняется умно­ жение делимого на величину, обратную делителю:

СN .

Одни из таких способов, основанный на итеративном методе вычисления.величины [N2/B], рассматривается в работе [12]. В этом случае все вычисления можно выполнять, не расширяя исходной

СОК, причем число модульных операций, необходимых для

деле­

ния двух дробей, в

среднем

равно 12 (п + 1)

и может быть

умень­

шено почти в два

раза при

использовании

двух преобразователей

из СОК в ОПС. При делении дробей, представленных в СОК,, ука­ занный способ обладает наиболее высоким быстродействием. Од­

нако подобный алгоритм

деления

является довольно

разнородным

по своей структуре, что

приводит

к

существенному

усложнению

устройства управления.

 

 

группе, весьма

близки по

Способы, относящиеся к третьей

своей структуре к способам деления дробей в обычных вычисли­ тельных машинах, использующих двоичную систему счисления. Ниже будет рассмотрен один из таких способов, в известной степени эквивалентный делению двоичных дробей без восстановления ос­ татка.

Пусть делимое A/N и делитель BIN положительны. Преобра­

зуем выражение (1.35) "следующим образом:

 

С = (AN — г)ІВ,

(1.36)

где г = [>17/]ß < ß . Тогда величина

должна удовлетворять

нера­

венству

 

 

A N — ВС

В.

(1.37)

Для решения этого неравенства можно воспользоваться следующим рекуррентным соотношением:

А (і + 1) - Д ( / ) р „ _ г- с „ _ гВ, і = 0 , 1 , 2 ........л - 1 , (1.38)

31


где А (0) = А,

а величина

 

является

решением неравенства:

 

0

А (0 Рп—і

сп—[В<С.В.

 

(1.39)

Очевидно, что

 

;,

поскольку для любых і = 0 , 1........п —1

Л; < Д*. Поэтому для

каждого } = п I неравенство (1 .с-9) можно

решить путем перебора различных значении

су от 0 (или 1) до

рj —\.

Последовательно вычисляя величины А (0), А (1 ),... ,А {п — 1),

придем к выражению

 

 

 

 

 

 

А(п) =

A N В (спрп^ і.

! - . . . +

с2р, +

с,) < В.

(1.40)

Сравнивая

неравенства

(1.37)

и (1.40),

можно

заметить, что

решения неравенств (1.39) являются символами частного С, пред­ ставленного в ОПС, т. е., вычислив величины сп, с„_і, ..... С|, мы однозначно определим искомый результат деления дробей. Посколь­ ку эти символы вычисляются последовательно, для определения С удобно воспользоваться рекуррентной формулой

 

С(г

+

1) = С ( і) д ,- і

+

 

 

1........л - 1 ,

 

 

(1.41)

где С (0) = 0;

 

С = С(п).

 

 

 

 

 

 

 

 

 

 

Так как наиболее трудоемкой частью данного алгоритма де­

ления

является

решение неравенств

(1.39),

рассмотрим

пути сокра­

щения

времени,

необходимого

для

вычисления

коэффициентов с„,

..., с,.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пусть старший ненулевой символ числа В, представленного в

ОПС,

равен blt

где І ^ п . Тогда,

положив

Кі_і=р\,

...

 

 

заме­

ним неравенство

(1.39)

на следующее выражение:

 

 

 

 

 

 

 

 

0 < [ А (і) Рп-іІКі-г] — c'n_ i b [ < b l .

 

 

 

(1.42)

Следует отметить, что

 

 

 

 

 

 

 

 

 

 

 

 

 

[ А Р п - і І К і - і ] = ^Kt_ x(A Pn - i) <

P n - i Pi-

 

 

 

Для решения этого неравенства требуется значительно меньше

времени, чем

для

решения неравенства (1.39), так

как все опера­

ции, связанные с определением величины cn_ t ,

можно

выполнять

в сокращенной

СОК, содержащей

не более двух

оснований.

 

Конечно, в общем случае величины с'п_1 не

разны

искомым

значениям сп .і из-за ошибок

вызванных округлением чисел Арп—і

и В.

Легко убедиться

в том, что

абсолютная

величина

разности

сп_. и ся_(

не

превышает единицы. Поэтому

при

подстановке

в выражение

(1.38) величины

с'н_ 1

вместо

с„_г

получаем

резуль­

тат А' (1+1), лежащий в интервале ( — В, 2В).

 

 

 

 

 

Если сп—і =

с'п_ 1+ Др где Д( = 0, + 1,

—1,

то

Д(1 +

1) =

= Лу+і + ДіВ .

 

 

 

 

 

 

 

В

 

 

 

 

 

Поэтому,

сравнивая

величины

Л'(і'+1)

и

и

используя

нера­

венство (1.39),

можно определить

величину

и

знак

ошибки

и

соот­

ветственно определить искомые значения Л(г'+1) и

 

 

 

 

* Предполагается,

что делимое

обязательно

меньше делителя

(Л < В), так как иначе произойдет переполнение.

 

 

 

 

32


Однако значительно удобнее осуществлять необходимую кор­ рекцию при значениях ошибки одного знака. Поэтому положим

с п"- і

+ 1.

Тогда А (I + 1) -

А ” (і +

1) + А\В. где Д '= 0 ,1, 2.

Из

неравенства

(1.39) следует,

что при

наличии ошибок А"(І-И )

является отрицательным числом. Следовательно, отпадает необхо­ димость сравнивать значения выражения (1.38) с числом В.

Наконец, можно вообще не выполнять коррекцию на каждом шаге вычислений, если положить, что величины с' п_ і могут быть не только положительными, но и отрицательными, причем знак этой величины совпадает со знаком числа А'(і).

В этом случае

величина С, получаемая

из

формулы

(1.41),

при подстановке вместо с„_і значений с' п_і отличается

от

иско­

мого частного С не более чем на единицу.

интервале

(—В, 0),

Действительно,

если А'(і)

оказывается в

что свидетельствует

о наличии

ошибки Д _і= —1,

то по

формуле

(1.41) для данного шага получается результат, завышенный на еди­ ницу: С"=С+1.

Предположим теперь, что на следующем

шаге нет ошибки.

Тогда,

поскольку е,’_ £ отрицательно,

то

 

 

 

 

С'{і + \) = Рп-іС'{і)

- \с’п_ \

=

 

 

 

= Рп-і(0 + 1) — {Рп-1 — с„_г) =

С (і +

1).

 

Аналогично исправляется ошибка и в том случае, когда

по­

падает

в интервал [Д, 2В). При этом

легко убедиться

в том,

что

значение с'п_ і оказывается равным р п—і + с„_/. Итак,

при замене

коэффициентов с„_/ на с'п_ і

частное

можно вычислять

практи­

чески с тон же

точностью.

 

 

сп_ 1

 

 

 

 

 

Для

определения коэффициентов

из

неравенства

(1.42)

можно

воспользоваться процедурой, аналогичной

делению

в дво­

ичной системе счисления, гак

как очевидно, что

 

 

 

 

 

 

с'п_і =

 

(і) Рп-іУЬі].

 

 

 

 

Рассмотрим

рекуррентное выражение

 

 

 

 

 

 

+

=

 

 

b

j - 0,1......si,

(1.43)

где nt (0) =

04 (г) Рп-іУ,

st = [Iog2 Pn+i] +

1,

i =

0, 1,.... n—1;

 

 

 

1, е сл и

* i U ) > 0;

 

 

 

 

 

—1,

если

U )

<

 

 

 

 

 

 

 

0,

если

( j )

= 0.

 

 

 

Т о г д а

c« - i “ 2 в *СУ)2*г '-

(1.44)

j = o

 

3 Заклз № 107

33


При вычислении по формуле (1.43) требуются две модульных операции на каждом шаге, а всего для определения коэффициента

— 2si операций.

лд-

Для

вычисления

каждой

из

позиционных

характеристик

(Л (0 Рп-і)

требуется Z + 1

модульных

операции при усло­

вии,

что

І К іРпі <

М.

Однако

при I = п

это

условие может

и не выполняться.

Для

того чтобы в этом

случае не расширять

исходную систему оснований, воспользуемся следующим соотно­ шением:

 

ТСКВ- 1 ( л (0 Рп-і)

1(Л (0).

(1-45)

где К п_і I — Kn-'ilРп—ѵ

^ = lj 2 ,.....

 

 

 

При L=

0 это равенство становится несправедливым. Поэтому

сначала вычислим характеристику

(Д), а

затем характери­

стику тс/ся—2 (яр;| (-4) />л),

полагая эту

величину

примерно равной

ъ кп-і(.АРп)-

Тогда для

определения

позиционных

характеристик

потребуется

не

более

п

модз'льных

операций для

і = 1......п — 1

и 2п операций

для і = 0; всего для деления двух

положительных

дробей подобным способом требуется примерно п2-|-3/г-1-2] Iog2T/[ модульных операций.

Время выполнения этой операции можно существенно умень­

шить, если вычислять коэффициенты с'п_ 1 каким-либо

табличным

способом. Однако, как правило, в

этом

случае

резко

возрастают

аппаратурные затраты.

 

 

 

 

 

 

 

 

 

Если знаки делимого и делителя произвольны, то сначала

вычислим их абсолютные

величины,

выполним

деление рассмот­

ренным выше способом и присвоим

результату

необходимый

знак с помощью умножения частного на —1 (при

различных зна­

ках исходных величин). Переход к

абсолютным

величинам А и В

можно выполнять одновременно с

вычислением

 

 

(Ар,,) и Ь[,

умножая их на

—1, если

соответствующий

знак

окажется отри­

цательным.

 

 

 

 

 

 

 

 

 

 

Одновременно с частным в процессе выполнения деления вы­

числяется и остаток |/ПѴ|в, равный А(гі).

 

 

 

 

 

Пример 1.9. Пусть задана СОК с основаниями

= 4, р г = 5,

р, = 7,

р і = 3,

N = 4-5-7 =

140; М =

N-3 =

420. Вычислить част­

ное от

деления

дроби A /N =

5°/,40

на

величину

B /N =

10°/j4o-

Прежде всего определим

величину

старшего ненулевого раз­

ряда числа В, представленного в ОПС, а также позиционную

характеристику

ък ^(Арг):

 

 

{ М л

-

{[100/4-5]}«. -

{1,0,5, 2}«»,

і , - 5;

Ш м = {[50/5]}4SO =

{2, 0, 3 ,1}420,

(/1) = 10;

(АРа))м Ä

{[10• 7/4г]}4ао =

О- 2, 3, 2 } 42о > ид-5 (Ар3) ~ 17.

Теперь можно перейти к непосредственному вычислению частного, пользуясь формулами (1.43), (1.44), (1.45), (1.38), (1.41):

34


«i = [log,7] + 1 =

3,

s2 =

[log, 5] + 1 =

3, s3 =

[log, 4] + 1 = 3,

" .(!)

=

1 7 - 2 » - 5 =

- 2 3 ,

a , ( 0 ) - l ;

*0 (2) =

- 2 3

+

22-5 = - 3 ,

a0( l ) -------1;

".(3)

=

- 3

+

2-5 =

7,

u0 (2) =

— 1;

" . (4) =

7 - 5

=

2,

 

u0(3) =

1;

 

 

 

c^ =

2s — 2a — 2 +

1 = 3.

 

 

 

Следует

отметить, что

величину гс0 (4)

можно

не вычислять,

поскольку она не влияет на ход дальнейших вычислений.

(1)>ж = {50-7 — 3- 100},2о =

{2, 0,1, 2}12o,

A (1) -

50;

 

! ci\M = {3}4,o =

{3 ,3 ,3 ,

0 }420,

С'(1) =

3;

 

KKi (AIPi) = WUjpi] =

12;

c2 = 23—22— 2' +

1 = 3 ;

{/1(2)}Л1 =

{50-5 -3 .100}420=

{2,0, 6, 1}420,

A (2) =

- 5 0 ;

{c' (2)}AJ =

{3 ■5 +

3}420 ^

{0,4, 3, 0}42o},

c' (2) =

18;

KKi (AzPi) — [AtjPi\ — — 10; Cg =

— 23 + 22 +

21 =

— 2;

i A

Г

{ -

50' 4 +

2 - l°0}42o =

{°. °. °- °}42o-

A (3) = 0;

К

 

=

( 18-4 -

2)420 =

I2, 0. 0 ,1}420,

c' (3) =

70.

В данном случае полученный результат точно совпал с истин­ ным значением числителя частного, но при других значениях А и В он может отличаться от С в меньшую или большую сторону на величину, равную единице.

Итак:

{2, 0 ,1 ,1},{)о/{0’ 0, 2, 2}»° = (2, 0, 0,1}»°.

1.7. ВЫПОЛНЕНИЕ В СОК ДРУГИХ ОПЕРАЦИИ НЕМОДУЛЬНОГО ТИПА

Кроме выполнения рассмотренных выше арифметических опера­ ций (сложения, вычитания, умножения и деления), в ЦВМ часто приходится определять знаки чисел и наличие переполнения разряд­ ной сетки, вычислять абсолютные величины чисел, сравнивать между собой числа или их абсолютные величины. Наконец, при вводе ин­ формации в машину приходится осуществлять преобразование чи­

сел из

позиционных систем

счисления

(десятичной

или двоичной) в

СОК,

а при выводе — обратное преобразование из

СОК в

позици­

онную

систему, хотя для

некоторых

управляющих ЦВМ

можно

обойтись без подобного преобразования, если все датчики, а также преобразователи выходных величин работают в системе остаточных

классов.

немодульных операций (так же

Покажем, что любая из этих

как умножение и деление дробей)

может быть представлена в виде

некоторой последовательности модульных операций (сложения, вы­ читания, умножения) и немодульных операций вычисления пози­ ционных характеристик и расширения системы оснований.

3

35