
Введение
15
Применение AN-кодов требует предварительного умножения исходных
чисел на некоторое заранее выбранное число A с последующим выполнением
арифметических операций над числами вида AN, где в дальнейшем осуществ-
ляется декодирование с исправлением или обнаружением ошибок, которые
также требуют проверки определенных вычислений. Исследования AN-кодов
начинались с работ [85, 76], а в дальнейшем развивались в работах зарубеж-
ных [40, 112, 86–89] и отечественных авторов [6–8, 33, 94, 16, 122].
Теория AN-кодов интенсивно развивалась в 70-е годы ХХ в., но затем
многие из исследователей пришли к выводу, что для практического примене-
ния в вычислительных системах наиболее приспособлены остаточные коды.
Остаточные коды являются систематическими, т.е. они содержат в себе
кроме информационных и контрольные разряды. В этих кодах арифметиче-
ские операции выполняются параллельно над исходными операндами и их
наименьшими вычетами по некоторым выбранным модулям. После заверше-
ния операций вычисленные вычеты результата операции по этим модулям
сравниваются с результатами аналогичной операции над вычетами операндов.
Теория остаточных кодов впервые была представлена в [110] и очень успешно
развивалась в работах отечественных авторов [1, 15 19–26, 28, 39]. В дальней-
шем исследователи обратили внимание на необходимость использования цик-
лической структуры AN-кодов, где существовала аналогия между цикличе-
скими AN-кодами и кодами для передачи информации в системах связи, на-
пример кодами Хемминга. Теоретическим исследованиям циклических AN-
кодов с контролем по модулю посвящено большое количество работ, среди
которых необходимо отметить следующие: [17, 27, 36, 56, 51, 102, 103, 67, 77,
106, 93, 117].
Однако в практическом плане радужные перспективы применения этих
кодов в цифровых устройствах не дали каких-либо положительных результа-
тов и ограничились только контролем четности (нечетности). Недостатки при-
менения этих кодов рассматриваются в работах [12–14]. Самый существенный
из них заключается в уменьшении номинального быстродействия цифровых
вычислительных систем, по мнению Е.И. Брюховича, не менее чем вдвое. Эта
оценка явно занижена, так как быстродействие будет еще ниже, поскольку им
учитывалась только операция обнаружения ошибок и не учтено время на ис-
правление этих ошибок.
Известно, что кодирование для любых типов кодов, в том числе и ариф-
метических, не составляет проблемы, и процесс кодирования сводится к вы-
числению
наименьших вычетов по заданному модулю. Подобную задачу не-
обходимо решать на первом этапе декодирования (обнаружение ошибок) при
вычислении синдрома, для чего используются схемы свертки [42, 44]. Органи-
зация работы на втором этапе декодирования (исправление ошибок) вычисли-
тельного комплекса, использующего арифметические коды, обсуждается в ра-
ботах [39, 43, 59, 55], а перестановочное декодирование – в [91] и частично в
[122].