Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Торгашев В.А. Система остаточных классов и надежность ЦВМ

.pdf
Скачиваний:
5
Добавлен:
23.10.2023
Размер:
5.18 Mб
Скачать

В. А. Торгашев

система

остаточных

классов и надежность

ЦВМ

В . А . Т о р г а ш е в

СИСТЕМА ОСТАТОЧНЫХ КЛАССОВ И НАДЕЖНОСТЬ ЦВМ

М осква , , Совет ское радио“ 1973

УДК 681.142.019.3

Т о р г а ш е в В. А. Система остаточных классов и надеж­ ность ЦВМ. М., «Сов. радио», 1973, 120 с.

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

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

Рис. 6, табл. 3, библ. 23 назв.

Редакция кибернетической литературы

3314-087 046(01 )-73

© Издательство «Советское радио», 1973.

ВВЕДЕНИЕ

Характерной чертой современной техники является стремление использовать вычислительные машины для управления сложными и ответственными автоматическими системами. И одним из главных факторов, ограничивающих применение ЦВМ в таких системах, является их относительно низкая надежность. Правда, в принципе можно обеспечить сколь угодно высокую надежность вычислитель­ ных устройств за счет использования избыточности. Однако чаще всего цена, которую приходится платить за повышение надежности, оказывается слишком высокой.

Основным методом, который широко применяется при построе­ нии высоконадежных устройств и систем, является р е з е р в и р о ­ в а н и е . Существует большое количество различных способов резер­ вирования, но для любого из них характерна очень высокая избы­ точность. Даже для коррекции одиночных ошибок чаще всего при­ ходится увеличивать количество оборудования в 2—4 раза.

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

точно экономичные

корректирующие

коды,

широко

применяемые

в каналах связи.

Однако все эти

коды

позволяют

эффективно

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

Корректирующие коды, сохраняющие свои свойства при выпол­ нении некоторых арифметических операций (чаще всего сложения и вычитания), получили название арифметических кодов. Как было показано Питерсоном [18], любой арифметический код задает конт­ рольные соотношения, которые сводятся к вычислению остатков от деления результата операции на одно или несколько фиксированных чисел, называемых модулями.

Известны два основных класса арифметических кодов, исправ­ ляющих ошибки. К первому классу относятся такие коды, которые не изменяют формы представления исходных чисел. Эти коды, назы­ ваемые обычно ЛУѴ-кодами, могут достаточно эффективно исполь­ зоваться для коррекции ошибок в вычислительных устройствах по­ следовательного типа. В этом случае декодирующая схема получает­ ся достаточно простой.

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

3

ным разрядам, делает сомнительной гипотезу о независимости оши­ бок в этих схема«. Поэтому ЛМ-коды используются в цифровых вычислительных машинах только для обнаружения ошибок [9].

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

Мысль использовать остаточные классы для кодирования целых чисел в ЦВМ была впервые высказана М. Валахом [22]. Система остаточных классов (СОК), рассмотренная в этой работе, была обоб­ щена А. Свободой [20] и для операций с дробями.

После этого как в СССР, так и в США появляется целый ряд работ, посвященных СОК [I—5, 9—17].

Первоначально считалось, что основным преимуществом системы

.остаточных классов является возможность резко уменьшить время выполнения операций сложения, вычитания и особенно умножения '(для целых чисел) за счет отсутствия переносов между разрядами. Поэтому большинство из указанных выше работ было посвящено, <: одной стороны, разработке методов ускорения таких относительно медленных в СОК операций, как определение знака или величины числа, определение переполнения, деление чисел и т. д., а с другой стороны — вопросам схемной реализации системы остаточных клас­ сов. После того как в работе Н. Сабо [21] была выведена теорема, устанавливающая границы скорости выполнения операций, связан­ ных с определением знака числа, некоторые исследователи пришли к выводу о нецелесообразности применения системы остаточных классов в ЦВМ универсального типа. Однако интенсивные исследо­ вания, проводимые в СССР под руководством И. Я. Акушского, позволили выявить еще ряд весьма ценных свойств системы оста­ точных классов, не менее важных, чем отсутствие переносов при сложении и умножении. В частности, кодирование чисел в СОК позволяет находить более экономичные и быстрые методы обработки информации для широкого класса задач, решаемых на ЦВМ. Дру­ гим важным свойством системы остаточных классов является то, что ее применение дает возможность существенно повысить надежность ЦВМ.

Корректирующие свойства системы остаточных классов и воз­ можности применения этой системы для повышения надежности ЦВМ исследовались в работах И. Я. Акушского и Д. И. Юдицкого [1—5], С. Б. Файна [13, .14] и автора данной книги [10—12].

Из зарубежных работ следует отметить статью Уотсона и Ха­ стингса [23], интересное исследование корректирующих кодов в СОК, основаниями которой служат полиномы, проведенное Стоуном

[19], а также патент на

изобретение, полученный Фроггаттом в

1964 г.

[15].

делается попытка обобщить полученные

В

предлагаемой книге

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

Гл. 1 в основном посвящена методам выполнения ариф­ метических операций с дробными числами в системе остаточных классов. В отличие от других работ, выполненных в данной обла­

4

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

Рассматриваемые в первой главе алгоритмы относятся не толь­ ко к обычным СОК со взаимно простыми основаниями, но и к та-' кпм системам остаточных классов, основания которых имеют общие делители. Дело в том, что подобная система тоже обладает опреде­ ленными корректирующими свойствами и оценить целесообразность применения таких систем для повышения надежности ЦВМ можно лишь в том случае, если показана возможность выполнения в по­ добных системах любых арифметических операций.

В гл. 2 рассматриваются основные свойства линейных и нелітнейных корректирующих кодов в СОК, исследуются методы обнару­ жения и коррекции ошибок, возникающих в процессе выполнения арифметических операций.

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

В гл. 3 рассматриваются вопросы структурной организации различных устройств ЦВМ, работающей в СОК. Основное внимание уделяется схемам, обеспечивающим обнаружение и коррекцию оши­ бок, а также способам изменения корректирующих свойств системы остаточных классов в процессе решения различных задач.

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

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

5

кую надежность ЦВМ при меньших аппаратурных затратах по сравнению с применением резервирования.

Следует заметить, что оценка эффективности применения систе­ мы остаточных классов для повышения надежности ЦВМ очень сильно зависит от конкретной структуры вычислительной машины и используемой системы элементов, а также от тех требований, которые предъявляются к точности, быстродействию и надежности решения задач для проектируемой ЦВМ. Поэтому вопрос о целе­ сообразности использования СОК или резервирования для повыше­ ния надежности ЦВМ должен решаться разработчиком в зависимо­ сти от конкретной ситуации, причем в ряде случаев возможно

совместное использование обоих методов.

этой небольшой

книге

Безусловно, автор не смог осветить в

всех проблем, связанных с возможностями

корректирующих

кодов

в СОК. Так, например, вопросы повышения надежности устройств ввода-вывода; исследования, касающиеся эффективности обменных операций для ряда практически важных задач управления; изучение свойств линейных L-кодов и ряд других очень интересных задач еще ждут своих исследователей.

Улучшению содержания и стиля книги во многом способство­ вали критические замечания, сделанные при знакомстве с рукописью И. Я- Акушским, В. М. Амербаевым и О В. Щербаковым. Автор выражает им глубокую благодарность.

Г Л А В А П Е Р В А Я

АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ В СИСТЕМЕ ОСТАТОЧНЫХ КЛАССОВ

1.1.ПРЕДСТАВЛЕНИЕ ЧИСЕЛ В СОК

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

остатков (вычетов) от деления этого числа

на фиксированные целые

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

числа ри рг........... р т, называемые основаниями (мо­

дулями).

 

 

Обозначим

ац = \ А \р^ — наименьший

положительный остаток

от деления целого числа А на основание рі. Тогда число А запи­ шется в системе остаточных классов в следующей форме:

А = {а„ а2,.. ., а„,}.

Любому целому числу А можно сопоставить определенный набор {сіь .... dm}, но обратное утверждение справедливо лишь в том слу­ чае, когда основания СОК попарно взаимно просты. Если это усло­

вие не

выполняется, то найдутся такие наборы {оь ...,

которым

нельзя

сопоставить ни одного целого числа А.

 

Например, при рі = 4 и р2 = 6 числу А = 7 соответствует набор {3, 1), однако набору {3, 2} не соответствует ни одно из целых чисел.

Для произвольной СОК существует М = [р\, р2, ..., рт\ * раз­ личных наборов {di, ..., dm}, каждому из которых можно сопоста­ вить множество целых чисел вида А ± kM, где k = 0, 1, 2,... Если все целые числа А принадлежат интервалу, величина которого рав­ на М, то каждому набору {di, ..., dm} соответствует только одно число А из заданного интервала.

Число М назовем общим основанием (модулем) системы оста­ точных классов. В дальнейшем под термином «основание М» будем понимать именно общее основание системы.

Для записи целого числа А в СОК с общим основанием М вос­ пользуемся обозначением

А= {а„ аг, . .., ат}м .

Впозиционных системах счисления в основном используются

два типа дробных

чисел — дроби с произвольным

знаменателем

A/В и дроби с фиксированным знаменателем А/рк,

где А

п В

произвольные целые

числа, р — основание позиционной

системы

счисления, k — целое положительное число.

 

 

Величина k определяется либо положением запятой между раз­

рядами числа (для чисел с фиксированной запятой),

либо задается

отдельным числом (для чисел с плавающей запятой). Оба типа дробей можно представить в системе остаточных классов.

* [рі, Рг,

■■■, Рт] — наименьшее общее кратное чисел р\,

Рг, ■■■>

рт. Если эти

числа попарно взаимно просты, то [рі, р%, ...,

рт ] =

= Рі 'р2 • • • Рт.

7

В первом случае и числитель и знаменатель представляются отдельно в СОК с основанием М:

А/В = {а,, а2, ..., a/w}yjf/{ßn

Р/я}ж-

Во втором случае в качестве знаменателя можно использовать величину, равную наименьшему общему кратному всех или части оснований системы. При этом для указания модулей, входящих в состав знаменателя, иногда применяют косые скобки [20]. Например, если в СОК с попарно простыми основаниями рь р2, рз, Рі знаме­ натель равен Р1Р2 , то

А/РіРз = {/а„ а2/, сс„ а4}ж ,

где А = {а,, а2, а„,

Однако в данной работе используется другое обозначение:

где N — фиксированное целое число.

Вчастности, N может быть равно наименьшему общему крат­ ному каких-либо оснований системы.

Такое представление дробей соответствует числам с фиксиро­ ванной запятой.

Всистеме остаточных классов нет естественного разделения чи­ сел на положительные и отрицательные. Поэтому существует не­ сколько способов представления отрицательных чисел [3]. По-види­ мому, удобнее всего представлять отрицательные числа в виде

дополнения абсолютной величины числа до основания системы М (представление, аналогичное дополнительному коду в позиционных системах счисления):

{ ~ А )м = {° — Л}.« = {M ~ A }M '

(1Л>

Если величина диапазона изменения чисел L

равна основанию

М и сам диапазон симметрично расположен относительно нуля, то

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

являются

числа, лежащие в интервале

(0, М/2),

а отрицательными— числа в интервале (Mj2, М).

(—L\, L2),

В общем случае при изменении чисел в интервале

где Li + L2 = L ^

M,

положительными считаются числа, лежащие

в интервале (0,

L2),

а

отрицательными — числа в

интервале

(M — LU M)*.

 

распространяется и на дробные числа, если

Все вышесказанное

положить, что L — диапазон изменения числителей.

Приведем пример, иллюстрирующий представление чисел в СОК.

Пример 1.1. Пусть дана СОК с

основаниями

Рі = 4, р2 = 5,

рз — 6 и общим основанием М = [4, 5, 6] = 60.

 

 

 

Следовательно, диапазон изменения чисел, представленных в

этой системе -счисления, не должен превышать

60.

Положим L\ =

=. L2 = 30 и

представим в

заданной

СОК

целые

числа

А = +17,

В = —17:

 

 

 

 

 

 

 

 

{■А\м - ( 17Ь

= {!* 2- 5W

і В)м =

Ь

17Ь

-

(43U =

(3- 3- Ч аг

* Символом L обозначается и сам диапазон

изменения чисел и

его величина.

 

 

 

 

 

 

 

 

8

1.2. МОДУЛЬНЫЕ ОПЕРАЦИИ

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

В отличие от позиционных систем счисления, где величина опре­ деленного разряда суммы или произведения зависит не только от значений соответствующих, ио и от других разрядов слагаемых или

сомножителей,

в системе остаточных классов сложение,

вычитание

и умножение

(для целых чисел) выполняются отдельно по каждому

основанию и переносы между разрядами отсутствуют.

 

Следовательно, эти операции в системе остаточных классов яв­

ляются модульными.

 

 

 

 

 

 

Пусть

 

 

 

 

 

 

 

 

И }ж

= {“■’

с'2’1' •

ат)м'

{В)м = {ß" ß“’- • • ^т)м '

Тогда

 

 

 

 

 

 

 

 

 

 

 

u

x

ß L

=

c fi’ T.......’ v u -

(L 2>

где -л = \at ±

ß j

,

г =

1,

2, . . . , m.

 

I

X

I pt

 

 

 

 

 

 

Интересно, что если отрицательные числа в СОК определяются вы­ ражением (1.1), то формула (1.2) оказывается справедливой для чисел любого знака. Поскольку для сложения и вычитания чисел такое утверждение тривиально, рассмотрим лишь операцию умно­ жения.

Пусть один из сомножителей (А) отрицателен, а другой (В) — положителен. Тогда

{С}М -

- \ А I}М -{В)М - { В . М - I А \.В }М .

Но очевидно,

что

|/Ш |дг = 0. Поэтому {С},ц = — |А|-В}м.

Положим теперь, что оба сомножителя являются отрицательными;

~ { М * - М . \ А \ - М . \ В \ + \А 1 .\В \}м = {\А 1 - \В ]}м .

Таким образом, умножение всегда можно свести к операциям, выполняемым над положительными числами.

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

Модульные операции и их результаты называются формальны­ ми, если при выполнении этих операций пренебрегают возможным выходом результата за пределы диапазона.

К модульным операциям можно отнести и деление целых чисел

без остатка;

 

. -

{С)м ~ {А )м І{В )м ~~

Тг.......Ѵ Ь

где

 

 

а:

1

 

Pi

ß; Pi

 

9

Соседние файлы в папке книги из ГПНТБ