
книги из ГПНТБ / Торгашев В.А. Система остаточных классов и надежность ЦВМ
.pdfВ. А. Торгашев
система
остаточных
классов и надежность
ЦВМ
В . А . Т о р г а ш е в
СИСТЕМА ОСТАТОЧНЫХ КЛАССОВ И НАДЕЖНОСТЬ ЦВМ
М осква , , Совет ское радио“ 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