RU2115231C1 - Data coding-decoding device - Google Patents

Data coding-decoding device Download PDF

Info

Publication number
RU2115231C1
RU2115231C1 RU94039139A RU94039139A RU2115231C1 RU 2115231 C1 RU2115231 C1 RU 2115231C1 RU 94039139 A RU94039139 A RU 94039139A RU 94039139 A RU94039139 A RU 94039139A RU 2115231 C1 RU2115231 C1 RU 2115231C1
Authority
RU
Russia
Prior art keywords
input
inputs
information
output
block
Prior art date
Application number
RU94039139A
Other languages
Russian (ru)
Other versions
RU94039139A (en
Inventor
Ю.Я. Личидов
В.Н. Стальнов
А.С. Волков
А.Ю. Фомин
Original Assignee
Пензенский научно-исследовательский электротехнический институт
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Пензенский научно-исследовательский электротехнический институт filed Critical Пензенский научно-исследовательский электротехнический институт
Priority to RU94039139A priority Critical patent/RU2115231C1/en
Publication of RU94039139A publication Critical patent/RU94039139A/en
Application granted granted Critical
Publication of RU2115231C1 publication Critical patent/RU2115231C1/en

Links

Images

Landscapes

  • Error Detection And Correction (AREA)

Abstract

FIELD: communication engineering. SUBSTANCE: device has input-output unit 1, common bus 2, storage unit 3, first, second and third buffer registers 4,5 and 6, first and second delay assemblies 7 and 8, multiplier 9, switch 10, unit of modulo 2 adders 11, first, second and third units of switches 12,13 and 14, first, second and third OR gates 15,16 and 17, sequential data input-output 18, clock input 19, starting input 20, parallel data inputs-outputs 21, and control inputs-outputs 22. EFFECT: enhanced noise immunity of data transmission. 19 dwg

Description

Изобретение относится к технике связи и может использоваться в аппаратуре передачи данных для осуществления помехоустойчивого кодирования и декодирования информации каскадным кодом. The invention relates to communication technology and can be used in data transmission equipment for the implementation of error-correcting coding and decoding of information by a cascade code.

Известны устройства для кодирования [1] и декодирования [2, 3, 4] информации с использованием недвоичных кодов, например кодов Рида-Соломона. Known devices for encoding [1] and decoding [2, 3, 4] information using non-binary codes, such as Reed-Solomon codes.

Указанные устройства реализованы аппаратным способом и поэтому сложны и ненадежны в работе. Кроме того, они имеют фиксированную структуру и вследствие этого не могут перестраиваться на использование других кодов, что бывает необходимо при изменении условий передачи. These devices are implemented in hardware and therefore are complex and unreliable in operation. In addition, they have a fixed structure and therefore cannot be reconfigured to use other codes, which is necessary when changing the transmission conditions.

Указанных недостатков лишены устройства, использующие программную реализацию процедур кодирования и декодирования. Проектируемая в настоящее время аппаратура передачи данных (АПД), как правило, содержит в себе микропроцессор, который наряду с решением задач по управлению потоками информации и их обработке может использоваться для осуществления процедур кодирования и декодирования информации, особенно если учесть возможность разнесения во времени указанных процедур. The indicated drawbacks are deprived of devices using a software implementation of the encoding and decoding procedures. Currently designed data transmission equipment (ADF), as a rule, contains a microprocessor, which, along with solving problems of managing information flows and their processing, can be used to carry out encoding and decoding of information, especially considering the possibility of time diversity of these procedures .

Наиболее близким к предлагаемому техническому решению и выбранным вследствие этого за прототип является устройство кодирования-декодирования информации [5]. Устройство содержит блок ввода-вывода, выходы которого через первый блок памяти подключены к первым входам блока ввода-вывода. Выходы первого блока памяти через последовательно соединенные первый блок сумматоров, второй блок постоянной памяти и второй блок сумматоров подключены к вторым входам блока ввода-вывода. Блок ввода-вывода содержит микроЭВМ, подключенную через один межмодульный интерфейс к последовательно-параллельному интерфейсу, вход-выход которого является последовательным входом-выходом блока ввода-вывода, а через другой межмодульный интерфейс к параллельному интерфейсу, параллельные входы-выходы которого являются параллельными входами-выходами блока ввода-вывода. Closest to the proposed technical solution and therefore selected for the prototype is a device for encoding-decoding information [5]. The device comprises an input-output unit, the outputs of which through the first memory unit are connected to the first inputs of the input-output unit. The outputs of the first memory block through series-connected the first block of adders, the second block of read-only memory and the second block of adders are connected to the second inputs of the input-output block. The input-output block contains a microcomputer connected via one inter-module interface to the serial-parallel interface, the input-output of which is the serial input-output of the input-output block, and through the other inter-module interface to the parallel interface, the parallel inputs and outputs of which are parallel inputs outputs of the input-output block.

Известное устройство работает следующим образом. В режиме кодирования информация в параллельном коде поступает на параллельные входы-выходы блока ввода-вывода, по программе, записанной в микроЭВМ, запоминается в ее памяти и в виде адреса поступает на адресные входы первого блока памяти. По этим адресам считываются проверочные символы и записываются в память микроЭВМ. Последняя по программе организует последовательный вывод кодовой комбинации, состоящей из информационных и проверочных символов, через последовательно-параллельный интерфейс в канал связи. The known device operates as follows. In the encoding mode, information in the parallel code is fed to the parallel inputs and outputs of the input-output unit; according to the program recorded in the microcomputer, it is stored in its memory and fed into the address inputs of the first memory unit as an address. At these addresses, verification characters are read and written to the memory of the microcomputer. The last program organizes the serial output of the code combination, consisting of information and test characters, through a serial-parallel interface to the communication channel.

В режиме декодирования информация из канала связи в виде кодовых комбинаций систематического кода (у которого разделены информационные и проверочные символы) поступает на последовательный вход-выход блока ввода-вывода и по программе, записанной в памяти микроЭВМ, запоминается в ней. После этого информационные символы кодовой комбинации поступают на адресные входы первого блока памяти. По этим адресам считываются проверочные символы, которые поступают на первые входы первого блока сумматоров, на вторые входы которого поступают проверочные символы, принятые из канала связи. Совпадение проверочных символов означает прием кодовой комбинации без ошибок. В противном случае на выходе первого блока сумматоров формируется синдром, который поступает на адресные входы второго блока памяти. По этим адресам считывается комбинация ошибок, соответствующая данному виду синдрома. Эта комбинация поступает на первые входы второго блока сумматоров, на вторые входы которого поступают информационные символы с выхода блока ввода-вывода. Ошибочные символы при этом инвертируются, а принятые без ошибок проходят через блок сумматоров без изменения. Исправленная информация поступает в блок ввода-вывода и из него через параллельные входы-выходы потребителю. In decoding mode, information from the communication channel in the form of code combinations of a systematic code (which has information and verification symbols separated) is fed to the serial input-output of the input-output unit and is stored in the program in the memory of the microcomputer. After that, information symbols of the code combination are sent to the address inputs of the first memory block. At these addresses, verification characters are read, which enter the first inputs of the first adder block, the second inputs of which receive verification characters received from the communication channel. Matching test characters means receiving a code combination without errors. Otherwise, a syndrome is formed at the output of the first adder block, which arrives at the address inputs of the second memory block. A combination of errors corresponding to this type of syndrome is read at these addresses. This combination arrives at the first inputs of the second adder block, the second inputs of which receive information symbols from the output of the input-output block. In this case, erroneous characters are inverted, and received without errors pass through the adder block without change. Corrected information enters and from the input-output unit through parallel inputs / outputs to the consumer.

Таким образом, кодирование и декодирование информации в известном устройстве осуществляется табличным способом. Число комбинаций, которое необходимо хранить в первом блоке памяти, равно 2k, где k - число информационных разрядов в кодовой комбинации, а во втором блоке памяти - 2r, где r - число проверочных символов. Известное устройство не может работать с большими длинами кодов, так как с ростом k и (или) r объем памяти составит Nзу = 2k+2r слов, что существенно усложняет и делает ненадежным устройство.Thus, the encoding and decoding of information in a known device is carried out in a tabular manner. The number of combinations that must be stored in the first memory block is 2 k , where k is the number of information bits in the code combination, and in the second memory block is 2 r , where r is the number of check characters. The known device can not work with large length codes, because with increasing k and (or) r memory amount zu N = 2 k +2 r words that significantly complicates and makes the device unreliable.

Практически величины k и r ограничены разрядностью микропроцессоров. Большинство эксплуатируемых в настоящее время микропроцессоров имеют разрядность, равную 16-32. Для помехоустойчивой передачи информации по каналам связи плохого качества, особенно с группированием ошибок, такой разрядности кодовых комбинаций явно недостаточно. In practice, the values of k and r are limited by the capacity of microprocessors. Most microprocessors currently in operation have a capacity of 16-32. For noise-tolerant transmission of information over poor-quality communication channels, especially with grouping of errors, such a bit depth of code combinations is clearly not enough.

Повышения помехоустойчивости передачи информации можно достичь путем использования длинных кодов, имеющих приемлемую сложность реализации, например кодов БЧХ в поле GF (2m), у которых длина кодовых комбинаций в пересчете на двоичные символы может составлять несколько тысяч или даже десятков тысяч. Примеры выполнения устройств кодирования-декодирования в недвоичных полях аппаратным способом приведены в [1, 2, 3, 4]. Их недостаток заключается в сложности реализации и фиксированности структуры.Improving the noise immunity of information transmission can be achieved by using long codes having acceptable implementation complexity, for example, BCH codes in the GF field (2 m ), in which the length of code combinations in terms of binary characters can be several thousand or even tens of thousands. Examples of the implementation of encoding-decoding devices in non-binary fields in hardware are given in [1, 2, 3, 4]. Their disadvantage lies in the complexity of implementation and the fixation of the structure.

Известное устройство-прототип, использующее программный принцип реализации, не может использовать длинные коды и, следовательно, при фиксированной относительной скорости передачи информации обладает низкой помехоустойчивостью передачи. The known prototype device using the software implementation principle cannot use long codes and, therefore, at a fixed relative speed of information transfer has a low noise immunity of transmission.

Задачей изобретения является повышение помехоустойчивости передачи информации. The objective of the invention is to increase the noise immunity of information transmission.

Техническим результатом, достигаемым при решении поставленной задачи, является обеспечение кодирования и декодирования информации с использованием длинных недвоичных кодов, например каскадных кодов, в котором в качестве внешнего кода используется недвоичный код РС. The technical result achieved in solving the problem is to provide encoding and decoding of information using long non-binary codes, for example, cascading codes, in which the non-binary code of the PC is used as an external code.

Для решения указанной задачи в устройство кодирования-декодирования информации, содержащее блок ввода-вывода и блок памяти, соединенные между собой общей шиной, а также блок сумматоров по модулю два, введены три буферных регистра, умножитель, два узла задержки, коммутатор, три блока ключей и три элемента ИЛИ. При этом информационные входы первого буферного регистра, выходы первого, второго и третьего блоков ключей и первые входы коммутатора соединены с общей шиной. Выходы первого буферного регистра через умножитель подключены к входам первого блока ключей и к первым входам блока сумматоров по модулю два. Выходы коммутатора через второй буферный регистр соединены с вторыми входами умножителя и с входами второго блока ключей, а через третий буферный регистр - с входами третьего блока ключей и вторыми входами блока сумматоров по модулю два, выходы которого соединены с вторыми входами коммутатора. Первый, второй и третий управляющие выходы блока ввода-вывода подключены соответственно к управляющим входам первого, второго и третьего блоков ключей, четвертый - к входу записи первого буферного регистра, пятый - через первый элемент ИЛИ к входу записи второго буферного регистра, через третий элемент ИЛИ к управляющему входу коммутатора, а через последовательно соединенные второй узел задержки и второй элемент ИЛИ к входу записи третьего буферного регистра. Шестой управляющий выход блока ввода-вывода подключен к вторым входам второго и третьего элементов ИЛИ и через первый узел задержки к второму входу первого элемента ИЛИ. Седьмой управляющий выход блока ввода-вывода подключен к вторым входам первого и второго узлов задержки. При этом последовательный информационный вход-выход, параллельные информационные входы-выходы, управляющие входы-выходы, тактовый и пусковой входы блока ввода-вывода являются соответствующими входами и выходами устройства. To solve this problem, an information encoding / decoding device containing an input / output unit and a memory unit connected by a common bus, as well as an adder unit modulo two, introduces three buffer registers, a multiplier, two delay nodes, a switch, and three key blocks and three elements OR. In this case, the information inputs of the first buffer register, the outputs of the first, second, and third key blocks and the first inputs of the switch are connected to a common bus. The outputs of the first buffer register through the multiplier are connected to the inputs of the first block of keys and to the first inputs of the block of adders modulo two. The outputs of the switch through the second buffer register are connected to the second inputs of the multiplier and to the inputs of the second block of keys, and through the third buffer register to the inputs of the third block of keys and the second inputs of the block of adders modulo two, the outputs of which are connected to the second inputs of the switch. The first, second and third control outputs of the I / O block are connected respectively to the control inputs of the first, second and third key blocks, the fourth to the write input of the first buffer register, the fifth through the first OR element to the write input of the second buffer register, through the third OR element to the control input of the switch, and through the second delay node and the second element OR connected in series to the recording input of the third buffer register. The sixth control output of the input-output unit is connected to the second inputs of the second and third OR elements and through the first delay node to the second input of the first OR element. The seventh control output of the input-output unit is connected to the second inputs of the first and second delay nodes. In this case, the serial information input-output, parallel information inputs and outputs, control inputs and outputs, clock and start inputs of the input-output unit are the corresponding inputs and outputs of the device.

Предлагаемое устройство обеспечивает кодирование информации каскадным кодом [6, с. 228], состоящим из двух кодов, внутреннего (n, k) и внешнего (N, K), где n и N - общее число, а k и K - число информационных символов в комбинации внутреннего и внешнего кодов соответственно. The proposed device provides coding of information with a cascade code [6, p. 228], consisting of two codes, internal (n, k) and external (N, K), where n and N are the total number, and k and K are the number of information symbols in the combination of internal and external codes, respectively.

В качестве внутреннего кода используются двоичные короткие коды, в качестве внешнего кода - недвоичные коды, например коды Рида-Соломона (РС) над полем GF (2m), где m - расширение двоичного поля.Binary short codes are used as the internal code, non-binary codes are used as the external code, for example, Reed-Solomon (PC) codes over the field GF (2 m ), where m is the extension of the binary field.

В качестве примера в предлагаемом устройстве использован внутренний (24, 16) код с образующим многочленом
g(X) = x8 + x7 + x4 + 1, (1)
исправляющий однократные ошибки, обнаруживающий все двукратные ошибки более высокой кратности.
As an example, the proposed device uses an internal (24, 16) code with a generating polynomial
g (X) = x 8 + x 7 + x 4 + 1, (1)
correcting single errors, detecting all double errors of a higher multiplicity.

В качестве внешнего кода используется код РС (241, 225) над полем GF(28) с образующим многочленом поля
F(X) = x8 + x4 + x3 + x2 + 1 (2)
с примитивным элементом поля α = 00000010.
As an external code, the PC code (241, 225) is used over the field GF (2 8 ) with the generatrix of the field
F (X) = x 8 + x 4 + x 3 + x 2 + 1 (2)
with a primitive field element α = 00000010.

Образующий многочлен кода РС имеет вид

Figure 00000002

На фиг. 1 представлена функциональная схема предлагаемого устройства; на фиг. 2 - функциональная схема блока ввода-вывода 1; на фиг. 3 - функциональная схема дешифратора 25 (пример); на фиг. 4 - функциональная схема параллельного порта ввода-вывода 24 (пример); на фиг. 5 - функциональная схема последовательного порта ввода-вывода 26 (пример); на фиг. 6 - функциональная схема микропроцессорного блока 23 (пример); на фиг. 7 показано распределение области кодирования ОЗУ (пример); на фиг. 8 изображена блок-схема алгоритма кодирования информации внешним кодом (пример); на фиг. 9 - блок-схема алгоритма кодирования информации внутренним кодом (пример); на фиг. 10 дано схематичное представление распределения ячеек ОЗУ для записи информации, принимаемой из канала связи (пример); на фиг. 11 представлена блок-схема алгоритма декодирования информации, закодированной внутренним кодом (пример); на фиг. 12 - блок-схема обобщенного алгоритма декодирования внешнего кода; на фиг. 13 - блок-схема алгоритма вычисления коэффициентов синдромного многочлена (пример); на фиг. 14 показаны временные диаграммы управляющих сигналов; на фиг. 15 изображена блок-схема алгоритма определения коэффициентов многочлена локаторов стираний (пример); на фиг. 16 - диаграмма состояний; на фиг. 17 - структура массива коэффициентов многочлена локаторов стираний; на фиг. 18 - блок-схема алгоритма определения коэффициентов модифицированного синдромного многочлена (пример); на фиг. 19 - блок-схема алгоритма определения коэффициентов многочлена локаторов ошибок (пример).The generating polynomial of the PC code has the form
Figure 00000002

In FIG. 1 presents a functional diagram of the proposed device; in FIG. 2 is a functional diagram of an input-output block 1; in FIG. 3 is a functional diagram of a decoder 25 (example); in FIG. 4 is a functional diagram of a parallel input / output port 24 (example); in FIG. 5 is a functional diagram of a serial input / output port 26 (example); in FIG. 6 is a functional diagram of a microprocessor unit 23 (example); in FIG. 7 shows the distribution of the RAM coding region (example); in FIG. 8 shows a block diagram of an algorithm for encoding information with an external code (example); in FIG. 9 is a block diagram of an information encoding algorithm with an internal code (example); in FIG. 10 is a schematic representation of the distribution of RAM cells for recording information received from a communication channel (example); in FIG. 11 shows a block diagram of an algorithm for decoding information encoded by an internal code (example); in FIG. 12 is a block diagram of a generalized external code decoding algorithm; in FIG. 13 is a block diagram of an algorithm for calculating the coefficients of a syndromic polynomial (example); in FIG. 14 shows timing diagrams of control signals; in FIG. 15 shows a block diagram of an algorithm for determining the coefficients of the polynomial of erasure locators (example); in FIG. 16 is a state diagram; in FIG. 17 is a structure of an array of coefficients of a polynomial of erasure locators; in FIG. 18 is a block diagram of an algorithm for determining the coefficients of a modified syndromic polynomial (example); in FIG. 19 is a block diagram of an algorithm for determining the coefficients of a polynomial of error locators (example).

Операции кодирования и декодирования информации внутренним (двоичным) кодом осуществляются программно: табличным методом. Некоторое отличие заключается в операции сравнения принятых из канала связи проверочных символов с образованными в месте приема, которая в предлагаемом устройстве выполняется программно, а в прототипе - аппаратно. The operations of encoding and decoding information by the internal (binary) code are carried out programmatically: by the tabular method. Some difference lies in the operation of comparing the verification symbols received from the communication channel with the ones formed at the receiving location, which is performed in the proposed device in software and in the prototype in hardware.

Основное отличие предлагаемого устройства от прототипа заключается в обеспечении операций кодирования и декодирования информации в поле GF(2m), для чего в состав устройства введены блоки, осуществляющие под управлением микропроцессора операции в этом поле.The main difference of the proposed device from the prototype is the provision of encoding and decoding information in the GF field (2 m ), for which purpose the units that carry out operations in this field under the control of the microprocessor are introduced into the device.

При этом кодирование и декодирование информации недвоичным кодом сводятся в основном к трем вычислительным процедурам: вычисления по схеме Горнера, сложения произведений, умножения на общий сомножитель, осуществляемым одними и теми же узлами устройства. Смена процедуры вычисления обеспечивается процессором всего лишь изменением порядка записи операндов в буферные регистры без изменения режима работы устройства, что исключает использование лишних команд. In this case, the encoding and decoding of information by a non-binary code is reduced mainly to three computational procedures: computations according to the Horner scheme, addition of products, multiplication by a common factor, carried out by the same device nodes. A change in the calculation procedure is provided by the processor by just changing the order in which the operands are written to the buffer registers without changing the operating mode of the device, which eliminates the use of extra commands.

Так, например, при вычислении коэффициентов Sm синдромного многочлена по формуле Горнера [7, с. 175]

Figure 00000003

где
Figure 00000004
, R - число проверочных символов кода PC;
Figure 00000005
- символы принятой кодовой комбинации;
α - примитивный элемент поля GF(2m);
N - длина кодовой комбинации кода PC,
элемент α записывается в первый буферный регистр, символ C1 - во второй буферный регистр, а последующие символы
Figure 00000006
- в третий буферный регистр, при этом результат вычисления получается сразу же при вводе символа Cj во втором буферном регистре. Благодаря такой организации вычисления наиболее сложная операция определения коэффициентов Sm осуществляется достаточно быстро.So, for example, when calculating the coefficients S m of the syndromic polynomial according to Horner's formula [7, p. 175]
Figure 00000003

Where
Figure 00000004
, R is the number of check characters for the PC code;
Figure 00000005
- characters of the received code combination;
α is a primitive element of the field GF (2 m );
N is the length of the code combination of the PC code,
the element α is written in the first buffer register, the character C 1 in the second buffer register, and subsequent characters
Figure 00000006
- in the third buffer register, while the result of the calculation is obtained immediately when you enter the character C j in the second buffer register. Thanks to such organization of the calculation, the most complicated operation of determining the coefficients S m is carried out rather quickly.

Таким образом, за одну команду "пересылки" осуществляются следующие операции: умножения в поле, сложения в поле, запись результата на место одного из сомножителей с возможностью продолжения таких вычислений. Thus, for one “transfer” command, the following operations are performed: multiplication in the field, addition in the field, recording the result in the place of one of the factors with the possibility of continuing such calculations.

Такое сочетание аппаратных и программных методов реализации операций позволило оптимальным образом распределить ресурсы машинного времени и в конечном счете обеспечить кодирование информации длинными кодами при приемлемой сложности реализации и тем самым повысить помехоустойчивость передачи информации. Such a combination of hardware and software methods for the implementation of operations made it possible to optimally distribute computer time resources and ultimately ensure coding of information with long codes with acceptable implementation complexity and thereby increase the noise immunity of information transmission.

По сравнению с другими техническими решениями, реализующими кодирование и декодирование информации в поле GF(2m), предлагаемое устройство является более простым. В самом деле аппаратная часть предлагаемого устройства, используемая для операций в поле GF(2m), содержит три буферных регистра, умножитель, коммутатор, блок сумматоров по модулю два, две схемы задержки, три ключа и три элемента ИЛИ.Compared with other technical solutions that implement the encoding and decoding of information in the field GF (2 m ), the proposed device is simpler. In fact, the hardware of the proposed device used for operations in the GF (2 m ) field contains three buffer registers, a multiplier, a switch, an adder unit modulo two, two delay circuits, three keys, and three OR elements.

В устройстве кодирования [1] кроме других узлов содержится N-K формирователей проверочных символов, каждый из которых соизмерим по объему с аппаратной частью предлагаемого устройства. In the encoding device [1], in addition to other nodes, N-K shapers of check symbols are contained, each of which is comparable in volume with the hardware of the proposed device.

В устройстве для декодирования кода Рида-Соломона [2] только для операции вычисления синдромов блоком проверок требуется N-K секций, каждая из которых содержит три умножителя, четыре блока сумматоров, осуществляющих операции в поле GF(2m), генератор элементов поля GF(2m), регистр, т.е. по объему больше, чем аппаратная часть предлагаемого устройства, используемая для этих целей. При этом следует учесть, что в [2] блоки вычисления многочлена локаторов стираний и блок решения ключевого уравнения являются соизмеримыми с блоком вычисления многочлена обобщенных проверок.In the device for decoding the Reed-Solomon code [2], only for the operation of computing syndromes by the block of checks, NK sections are required, each of which contains three multipliers, four blocks of adders performing operations in the field GF (2 m ), the generator of elements of the field GF (2 m ), register, i.e. in volume larger than the hardware of the proposed device used for these purposes. It should be noted that in [2] the blocks for computing the polynomial of erasure locators and the block for solving the key equation are comparable with the block for computing the polynomial of generalized checks.

Набор вычислительных операций в поле Галуа GF(2m), реализуемый в [4], обладает низкими функциональными возможностями, требует многотактных схем управления. Устройство выполняет сумму только двух произведений, и с помощью его затруднительно выполнить вычисления по формуле (1).The set of computational operations in the Galois field GF (2 m ), implemented in [4], has low functionality and requires multi-cycle control circuits. The device performs the sum of only two works, and using it it is difficult to perform calculations according to the formula (1).

Анализ этих и других технических решений [3] показывает, что, как правило, процедура декодирования кода PC выполняется набором узлов, каждый из которых выполняет какую-либо одну операцию при общем их числе порядка 10 (см. далее обобщенный алгоритм декодирования, фиг. 12). Предлагаемое устройство небольшим набором аппаратных узлов и микропроцессором выполняет все эти операции, что и позволяет достичь технического результата: обеспечение кодирования и декодирования информации длинными кодами в поле GF(2m).An analysis of these and other technical solutions [3] shows that, as a rule, the decoding procedure of a PC code is performed by a set of nodes, each of which performs any one operation with a total of about 10 (see further the generalized decoding algorithm, Fig. 12 ) The proposed device with a small set of hardware nodes and a microprocessor performs all these operations, which allows to achieve a technical result: providing encoding and decoding of information by long codes in the GF field (2 m ).

На фиг. 1 представлена функциональная схема предлагаемого устройства. Устройство содержит блок ввода-вывода 1, общую шину 2, блок памяти 3, первый 4, второй 5 и третий 6 буферные регистры, первый 7 и второй 8 узлы задержки, умножитель 9, коммутатор 10, блок сумматоров по модулю два 11, первый 12, второй 13 и третий 14 блоки ключей, первый 15, второй 16 и третий 17 элементы ИЛИ, последовательный информационный вход-выход 18, тактовый вход 19, пусковой вход 20, параллельные информационные входы-выходы 21, управляющие входы-выходы 22. In FIG. 1 presents a functional diagram of the proposed device. The device contains an input-output block 1, a common bus 2, a memory block 3, the first 4, the second 5 and the third 6 buffer registers, the first 7 and the second 8 delay nodes, a multiplier 9, a switch 10, an adder block modulo two 11, the first 12 , second 13 and third 14 key blocks, first 15, second 16 and third 17 OR elements, serial information input-output 18, clock input 19, start input 20, parallel information inputs-outputs 21, control inputs-outputs 22.

Устройство имеет следующие связи. Входы-выходы блока ввода-вывода 1, блока памяти 3, информационные входы первого буферного регистра 4, первые входы коммутатора 10 и выходы первого 12, второго 13 и третьего 14 блоков ключей соединены с общей шиной 2. Выходы первого буферного регистра 4 через умножитель 9 подключены к входам первого блока 12 ключей и к первым входам блока сумматоров по модулю два 11. Выходы коммутатора 10 через второй буферный регистр 5 соединены с вторыми входами умножителя 9 и с входами второго блока 13 ключей, а через третий буферный регистр 6 - с входами третьего блока ключей и вторыми входами блока сумматоров по модулю два 11, выходы которого соединены с вторыми входами коммутатора. Первый Q1, второй Q2 и третий Q3 управляющие выходы блока ввода-вывода 1 подключены соответственно к управляющим входам первого 12, второго 13 и третьего 14 блоков ключей, четвертый Q4 - к входу записи первого буферного регистра 4, пятый Q5 - через первый элемент ИЛИ 15 к входу записи второго буферного регистра 5, через третий элемент ИЛИ 17 к управляющему входу коммутатора 10, а через последовательно соединенные второй узел 8 задержки и второй элемент ИЛИ 16 к входу записи третьего буферного регистра 6. Шестой управляющий выход Q6 блока ввода-вывода 1 подключен к вторым входам второго 16 и третьего 17 элементов ИЛИ и через первый узел 7 задержки к второму входу первого элемента ИЛИ 15. Седьмой управляющий выход Q7 блока ввода-вывода 1 подключен к вторым входам первого 7 и второго 8 узлов задержки. The device has the following connections. The inputs and outputs of the input-output block 1, the memory block 3, the information inputs of the first buffer register 4, the first inputs of the switch 10 and the outputs of the first 12, second 13 and third 14 key blocks are connected to the common bus 2. The outputs of the first buffer register 4 through the multiplier 9 connected to the inputs of the first block of keys 12 and to the first inputs of the block of adders modulo two 11. The outputs of the switch 10 through the second buffer register 5 are connected to the second inputs of the multiplier 9 and to the inputs of the second block 13 of the keys, and through the third buffer register 6 to the inputs of the third block lyuchey and second inputs of the adders modulo two unit 11, which outputs are connected to second inputs of the switch. The first Q1, second Q2 and third Q3 control outputs of the I / O unit 1 are connected respectively to the control inputs of the first 12, second 13 and third 14 key blocks, the fourth Q4 - to the recording input of the first buffer register 4, the fifth Q5 - through the first element OR 15 to the recording input of the second buffer register 5, through the third OR element 17 to the control input of the switch 10, and through the second delay node 8 connected in series and the second OR element 16 to the recording input of the third buffer register 6. The sixth control output Q6 of the I / O unit 1 is connected ene to second inputs of the second 16 and third 17 and OR elements through the first delay unit 7 to the second input of the first OR gate 15. The seventh control output Q7 input-output unit 1 is connected to the second inputs of the first 7 and second 8 delay units.

Последовательный информационный вход-выход 18, тактовый вход 19, пусковой вход 20, параллельные информационные входы-выходы 21 и управляющие входы-выходы 22 блока ввода-вывода 1 являются соответствующими входами-выходами устройства. Serial information input-output 18, clock input 19, start-up input 20, parallel information inputs-outputs 21 and control inputs-outputs 22 of the input-output unit 1 are the corresponding inputs and outputs of the device.

Буферные регистры 4, 5 и 6 могут быть выполнены на ИМС К588ИР1, блоки ключей 12, 13 и 14 - на ИМС 564КТ3, блок сумматоров 11 по модулю два - на ИМС 564ЛП2 [9]. Buffer registers 4, 5 and 6 can be performed on the IMS K588IR1, key blocks 12, 13 and 14 - on the IMS 564KT3, the adder block 11 modulo two - on the IMS 564LP2 [9].

Коммутатор 10 может быть выполнен на 16-ти парах ключей, реализованных на ИМС 564КТ3. Управляющие входы четных ключей объединены и подключены к управляющему входу коммутатора непосредственно, а нечетных - через инвертор. Таким образом, информационные входы четных ключей являются первыми (A) входами, а нечетных ключей - вторыми (B) входами коммутатора 10. The switch 10 can be performed on 16 pairs of keys implemented on the IC 564KT3. The control inputs of the even keys are combined and connected to the control input of the switch directly, and the odd keys through the inverter. Thus, the information inputs of the even keys are the first (A) inputs, and the odd keys are the second (B) inputs of the switch 10.

Блок памяти 3 содержит ПЗУ, реализованное на ИМС 573РФ4, и ОЗУ на ИМС 537РУ9. The memory unit 3 contains a ROM implemented on the IC 573RF4, and RAM on the IC 537RU9.

Центральным узлом устройства является микропроцессорный блок 23, входящий в состав блока ввода-вывода 1. В процессе работы устройства в любом из режимов микропроцессор опрашивает признаки подключенных к общей шине 2 узлов, выставляя последовательно адрес каждого, с целью выявления узла, готового к обмену информацией, и при положительном результате осуществляет этот обмен. В приведенных ниже примерах реализации узлов устройства наименование управляющих сигналов, поступающих на эти узлы, дано применительно к процессору К1801ВМ2 [7]. The central node of the device is a microprocessor unit 23, which is part of the input-output unit 1. During operation of the device in any of the modes, the microprocessor polls for signs of 2 nodes connected to the common bus, exposing each address in sequence, in order to identify a node ready for information exchange, and with a positive result, carries out this exchange. In the following examples of the implementation of the nodes of the device, the name of the control signals supplied to these nodes is given with reference to the processor K1801VM2 [7].

Предлагаемое устройство работает в следующих режимах: ввода-вывода информации и кодирования-декодирования информации. The proposed device operates in the following modes: input-output information and encoding-decoding information.

Режим ввода-вывода информации. Information input-output mode.

На фиг. 2 представлена функциональная схема блока ввода-вывода 1. Блок ввода-вывода 1 содержит микропроцессорный блок 23, параллельный порт ввода-вывода 24, дешифратор 25 и последовательный порт ввода-вывода 26. Входы-выходы микропроцессорного блока 23, параллельного порта ввода-вывода 24, последовательного порта ввода-вывода 25 и входы дешифратора 25 подключены к общей шине 2. In FIG. 2 is a functional diagram of an input / output unit 1. An input / output unit 1 comprises a microprocessor unit 23, a parallel input / output port 24, a decoder 25, and a serial input / output port 26. The inputs and outputs of a microprocessor unit 23, a parallel input / output port 24 , serial I / O port 25 and the inputs of the decoder 25 are connected to a common bus 2.

Дешифратор 25 имеет три группы выходов. По первой группе выходов выдаются семь управляющих сигналов Q1 - Q7, необходимых для работы устройства в режиме кодирования-декодирования информации. По второй группе выходов выдаются сигналы, необходимые для обеспечения ввода-вывода информации параллельным портом ввода-вывода 24. По третьей группе выходов выдаются сигналы, необходимые для обеспечения ввода-вывода информации последовательным портом ввода-вывода 26. Decoder 25 has three groups of outputs. The first group of outputs gives seven control signals Q1 - Q7, which are necessary for the device to operate in the encoding-decoding mode of information. The second group of outputs gives the signals necessary to ensure the input / output of information by the parallel input / output port 24. The third group of outputs gives the signals necessary to provide the input / output of information by the serial input / output port 26.

Параллельный порт ввода-вывода 24 предназначен для обмена параллельной информацией и управляющими сигналами между оконечным оборудованием данных (ООД) и предлагаемым устройством, осуществляемого соответственно по параллельным информационным входам-выходам 21 и управляющим входам-выходам 22. The parallel input-output port 24 is designed for the exchange of parallel information and control signals between the data terminal equipment (OOD) and the proposed device, which is carried out respectively through parallel information inputs and outputs 21 and control inputs and outputs 22.

Последовательный порт ввода-вывода 26 предназначен для обмена последовательной информацией между каналом связи и предлагаемым устройством, осуществляемого по последовательному информационному входу-выходу 18. При этом принимаемая из канала связи информация сопровождается тактовой частотой, поступающей по тактовому входу 19, и признаком начала информации, поступающим по пусковому входу 20. The serial input / output port 26 is intended for the exchange of serial information between the communication channel and the proposed device, carried out by the serial information input-output 18. In this case, the information received from the communication channel is accompanied by a clock frequency arriving at the clock input 19 and a sign of the beginning of the information arriving at launch input 20.

На фиг. 3 в качестве примера реализации представлена функциональная схема дешифратора 25, который содержит последовательно соединенные буферный регистр 27, двоично-десятичный дешифратор 28 и блок 29 элементов И 30, число которых равно числу дешифрируемых сигналов. In FIG. 3, as an example of implementation, a functional diagram of a decoder 25 is presented, which comprises a buffer register 27 connected in series, a binary decimal decoder 28, and a block of AND elements 30, the number of which is equal to the number of decrypted signals.

Дешифратор работает следующим образом. По шине 2 на информационные входы буферного регистра 27 поступает код адреса опрашиваемого узла, а на управляющий вход записи с некоторой задержкой - сигнал "Обмен" (SYNC применительно к процессору К1801ВМ2), который фиксирует этот адрес в буферном регистре 27. После фиксации адреса с управляющего выхода буферного регистра 27 выдается сигнал "Подтверждение", поступающий через шину адрес - данные 2 в микропроцессорный блок 23. С выхода буферного регистра 27 комбинация адреса поступает на вход двоично-десятичного дешифратора 28, который преобразует код адреса в позиционный сигнал, поступающий в блок 29 элементов И 30. The decoder works as follows. Bus 2 receives the address code of the node being interrogated at the information inputs of the buffer register 27, and the “Exchange” signal (SYNC as applied to the K1801BM2 processor), which fixes this address in the buffer register 27, to the control input of the record with some delay. After fixing the address from the control The output of the buffer register 27 is the signal "Confirmation", received via the address-data 2 bus to the microprocessor unit 23. From the output of the buffer register 27, the address combination is input to the binary decimal decoder 28, which converts the code Dres a position signal supplied to the block elements 29 and 30.

Микропроцессор в процессе взаимодействия с узлами устройства осуществляет две операции: чтение и запись информации. Поэтому каждый позиционный сигнал с выхода двоично-десятичного дешифратора 28 поступает на первые входы двух элементов И, на вторые входы которых поступают управляющие сигналы "Чтение" (DIN) или "Запись" (DOIT) от микропроцессорного блока 23, при этом на выходах элементов И формируются сигналы чтения или записи информации для соответствующих узлов устройства, поступающие на выходы дешифратора 24:
семь управляющих сигналов Q1 - Q7, поступающих на выходы блока ввода-вывода 1, четыре управляющих сигнала: "Чтение 1" ("ЧТ 1"), "Чтение 2" ("ЧТ 2"), "Запись 1" ("ЗП 1"), "Сброс" - в параллельный порт ввода-вывода 24 и пять управляющих сигналов: "Чтение 3" ("ЧТ 3"), "Чтение 4" ("ЧТ 4"), "Чтение 5" ("ЧТ 5"), "Запись 2" ("ЗП 2") и "Запись 3" ("ЗП 3") - в последовательный порт ввода-вывода 26.
The microprocessor in the process of interaction with the nodes of the device performs two operations: reading and writing information. Therefore, each positional signal from the output of the binary decimal decoder 28 is fed to the first inputs of the two And elements, the second inputs of which receive the “Read” (DIN) or “Write” (DOIT) control signals from the microprocessor unit 23, while the And outputs signals are read or written information for the respective nodes of the device, arriving at the outputs of the decoder 24:
seven control signals Q1 - Q7, which are supplied to the outputs of the I / O unit 1, four control signals: "Read 1"("RE1"),"Read2"("RE2"),"Write1"("RF 1 ")," Reset "- to the parallel I / O port 24 and five control signals:" Read 3 "(" RE 3 ")," Read 4 "(" RE 4 ")," Read 5 "(" RE 5 " ), "Record 2"("RFP2") and "Record 3"("RFP3") - to the serial input-output port 26.

В случае, если опрашиваемый микропроцессором узел работает только в одном режиме чтения или записи информации, то позиционный сигнал с выхода дешифратора поступает только на один элемент И. If the node interrogated by the microprocessor operates only in one mode of reading or writing information, then the positional signal from the output of the decoder enters only one element I.

Буферный регистр 27 может быть реализован на микросхеме К588ИР1, двоично-десятичный дешифратор 28 - К564ИД1, элементы И - 564ЛА7 [8]. The buffer register 27 can be implemented on the chip K588IR1, binary decimal decoder 28 - K564ID1, elements I - 564LA7 [8].

Рассмотрим работу устройства в режиме ввода-вывода информации через параллельный порт ввода-вывода 24, пример реализации которого приведен на фиг. 4. Consider the operation of the device in the input-output mode of information through the parallel input-output port 24, an implementation example of which is shown in FIG. 4.

Порт ввода-вывода 24 содержит буферный регистр ввода 31 информации, буферный регистр вывода 32 информации, триггер признаков ввода 33, триггер признаков вывода 34, два ключа 35 и 36. I / O port 24 contains a buffer register for inputting 31 information, a buffer register for outputting 32 information, a trigger for input features 33, a trigger for features for output 34, two keys 35 and 36.

Информация от ООД поступает в параллельном коде на входы 21 блока ввода-вывода 1 и далее на информационные входы буферного регистра ввода 31, и по сигналу "Ввод" от ООД, поступающему на вход 22 блока ввода-вывода 1 (фиг. 1) и далее на записывающий вход буферного регистра 31, записывается в последнем. Одновременно сигал "Ввод" поступает на вход триггера признаков ввода 33, устанавливая его в состояние "1", которое поступает на информационный вход первого ключа 35. Сигнал с инверсного выхода триггера 33 поступает на выход порта и далее на управляющий вход-выход 22 блока ввода-вывода 1 в ООД, сигнализируя о запрете ввода следующего слова информации (сигнал "Запрет"). Information from the OOD comes in parallel code to the inputs 21 of the input-output block 1 and then to the information inputs of the input buffer register 31, and the signal "Input" from the OOD to the input 22 of the input-output block 1 (Fig. 1) and further at the recording input of the buffer register 31, is recorded in the latter. At the same time, the “Input” signal is input to the input trigger trigger 33, setting it to state “1”, which is fed to the information input of the first key 35. The signal from the inverse output of the trigger 33 goes to the port output and then to the control input-output 22 of the input unit - output 1 in the OOD, signaling the prohibition of entering the next word of information (signal "Prohibition").

Микропроцессор, находясь в цикле опроса узлов устройства, периодически опрашивает и анализирует состояние ключа 35, подавая сигнал "Чтение 1" через дешифратор 25, поступающий на управляющий вход ключа 35. The microprocessor, being in the cycle of polling the nodes of the device, periodically polls and analyzes the status of the key 35, giving the signal "Read 1" through the decoder 25, which is received at the control input of the key 35.

При наличии информации в буферном регистре ввода 31 на выходе ключа 35 появится сигнал, который поступает на выход порта и далее на шину 2 как признак "Наличие информации от ООД". Микропроцессор, обнаружив этот признак, считывает информацию с буферного регистра 31, для чего он через дешифратор 25 выставляет сигнал "Чтение 2", поступающий на считывающий вход буферного регистра 31, при этом информация в параллельном коде поступает на выход порта и далее в шину 2. If there is information in the input buffer register 31 at the output of the key 35, a signal will appear that goes to the output of the port and then to bus 2 as a sign of "Availability of information from the OOD". The microprocessor, having detected this symptom, reads information from the buffer register 31, for which it sets the “Read 2” signal through the decoder 25 to the reading input of the buffer register 31, while the information in the parallel code goes to the port output and then to bus 2.

После записи информации в ОЗУ микропроцессор через дешифратор сигналом "Сброс" сбрасывает триггер 33, в результате чего с выхода триггера снимается сигнал "Запрет", разрешая ввод с ООД следующего слова информации. After recording information in RAM, the microprocessor through the decoder with the "Reset" signal resets the trigger 33, as a result of which the "Disable" signal is removed from the output of the trigger, allowing the input of the next word of information from the OOD.

В режиме вывода информации последняя по шине 2 поступает на информационные входы буферного регистра вывода 32 и фиксируется в нем сигналом "Запись 1", поступающим на записывающий вход буферного регистра 32 от микропроцессора через дешифратор 25. In the mode of outputting information, the latter via bus 2 enters the information inputs of the buffer register of output 32 and is fixed in it by the signal “Record 1”, which is fed to the recording input of the buffer register 32 from the microprocessor through the decoder 25.

Этим же сигналом триггер признаков вывода 34 устанавливается в состояние "1", которое через управляющий вход-выход 22 блока ввода-вывода поступает в ООД как сигнал "Наличие информации". Сигнал с инверсного выхода триггера 34 поступает на информационный вход второго ключа 36. Микропроцессор, опрашивая ключ 36 сигналом "Чтение 1", поступающим на управляющий вход ключа 36 через дешифратор 25, обнаруживает признак занятости буферного регистра 32 и поэтому не выводит из ОЗУ очередное слово информации. ООД, обнаружив сигнал "Наличие информации", выдает сигнал "Вывод", поступающий по управляющему входу-выходу 22 блока ввода-вывода 1 на считывающий вход буферного регистра 32, считывая с него информацию, которая через входы-выходы 21 блока ввода-вывода 1 поступает в ООД. Одновременно сигналом "Вывод" сбрасывается триггер 34 признака вывода, в результате чего сбрасывается признак "Наличие информации" и в очередном цикле разрешается вывод слова из ОЗУ в порт 24. By the same signal, the trigger of the signs of the output 34 is set to the state "1", which through the control input-output 22 of the input-output unit is received in the OOD as a signal "Information availability". The signal from the inverted output of the trigger 34 is fed to the information input of the second key 36. The microprocessor, interrogating the key 36 with the “Read 1” signal, coming to the control input of the key 36 through the decoder 25, detects a busy sign of the buffer register 32 and therefore does not output the next word of information from RAM . OOD, upon detecting the signal “Availability of information”, issues a signal “Output”, which is received via the control input-output 22 of the input-output unit 1 to the read input of the buffer register 32, reading information from it, which is input-output 21 of the input-output unit 1 enters the OOD. Simultaneously with the “Output” signal, the trigger of the output flag is reset, as a result of which the flag “Availability of information” is reset and in the next cycle the word is allowed to be output from RAM to port 24.

Буферные регистры 31 и 32 могут быть реализованы каждый из двух ИМС К588ИР1, триггеры 33 и 34 - на ИМС 564ТМ2, ключи 35 и 36 - на ИМС 564КТ3 [9] . Buffer registers 31 and 32 can be implemented each of two IMS K588IR1, triggers 33 and 34 - on IMS 564TM2, keys 35 and 36 - on IMS 564KT3 [9].

На фиг. 5 в качестве примера реализации приведена функциональная схема последовательного порта ввода-вывода информации 26, который содержит последовательно-параллельные регистры по вводу 37 и выводу 38 информации, параллельные буферные регистры по вводу 39 и по выводу 40 информации, двоично-десятичный счетчик 41, элемент И 42, триггеры 43 и 44, ключи 45 и 46, элементы ИЛИ 47 и 48. In FIG. 5, as an example of implementation, a functional diagram of the serial input / output port of information 26 is provided, which contains serial-parallel registers for inputting 37 and outputting 38 information, parallel buffer registers for inputting 39 and outputting information 40, binary-decimal counter 41, AND element 42, triggers 43 and 44, keys 45 and 46, OR elements 47 and 48.

Ввод информации осуществляется следующим образом. Информация в последовательном коде с входа-выхода 18, тактовая частота Fт с входа 19 и сигнал "Пуск" с входа 20 блока ввода-вывода 1 устройства поступают соответственно на информационный и записывающий входы последовательно-параллельного регистра ввода 37 и установочный вход счетчика 41 (через элемент ИЛИ 48). Кроме того, тактовая частота Fт поступает также на счетный вход счетчика 41. Информация записывается в регистре 37, а счетчик 41 устанавливается в нулевое состояние и через число тактов, равное разрядности слова, например 16, через элемент И 42, играющий роль дешифратора 16 такта, выдает сигнал на записывающий вход параллельного буферного регистра 39, фиксируя информацию, поступающую на его входы с выхода последовательно-параллельного регистра ввода 37. Одновременно с этим сигнал с выхода элемента И 42 через элемент ИЛИ 47 устанавливает триггер 44 в состояние "1", которое поступает на информационный вход ключа 45, сигнализируя микропроцессору о наличии информации из канала связи. Микропроцессор, находясь в цикле опроса, обнаруживает этот сигнал, подавая для этого на управляющий вход ключа 45 по шине 2 через дешифратор 25 сигнал "Чтение 3", после чего формирует сигнал "Чтение 4", поступающий по шине 2 через дешифратор 25 на считывающий вход буферного регистра 39, считывая с него информацию, которая поступает на выход порта и далее в шину 2. После этого микропроцессор выдает сигнал "Запись 2", поступающий по шине 2 через дешифратор 25 на сброс триггера 44, устанавливая его в состояние "0", в результате чего становится возможным прием следующего слова информации.Entering information is as follows. The information in the serial code from input-output 18, the clock frequency F t from input 19 and the “Start” signal from input 20 of the input-output unit 1 of the device are supplied respectively to the information and recording inputs of the serial-parallel input register 37 and the installation input of the counter 41 ( through the element OR 48). In addition, the clock frequency F t is also supplied to the counting input of the counter 41. The information is recorded in the register 37, and the counter 41 is set to zero and through the number of ticks equal to the word capacity, for example 16, through the AND element 42, which plays the role of a 16 clock decoder , gives a signal to the recording input of the parallel buffer register 39, fixing the information received at its inputs from the output of the serial-parallel input register 37. At the same time, the signal from the output of the And 42 element through the OR element 47 sets the trigger 44 in state "1", which is fed to the information input of key 45, signaling to the microprocessor that there is information from the communication channel. The microprocessor, being in a polling cycle, detects this signal by supplying a Read 3 signal to the control input of key 45 via bus 2 through decoder 25, after which it generates a Read 4 signal, which is transmitted via bus 2 through decoder 25 to the read input buffer register 39, reading from it the information that goes to the output of the port and then to bus 2. After that, the microprocessor generates a signal "Record 2", received via bus 2 through the decoder 25 to reset the trigger 44, setting it to state "0", as a result, reception becomes possible the next word of information.

В режиме вывода информации последняя по шине 2 поступает на информационные входы буферного регистра 40 и сигналом "Запись 2", поступающим от микропроцессора по шине 2 через дешифратор 25, записывается в этом регистре. Одновременно этим же сигналом триггер 44 устанавливается в нулевое состояние, которое будет присутствовать на информационном входе ключа 45 и при опросе его микропроцессором будет свидетельствовать о запрете ввода в буферный регистр 40 очередного слова информации. In the information output mode, the last one on bus 2 is input to the information inputs of the buffer register 40 and the “Record 2” signal, coming from the microprocessor via bus 2 through the decoder 25, is recorded in this register. At the same time, the trigger 44 is set to the zero state, which will be present at the information input of the key 45 and, when interrogated by the microprocessor, will indicate that the next information word cannot be entered into the buffer register 40.

После записи первого слова информации в буферный регистр 40 микропроцессор по шине 2 через дешифратор 25 выдает сигнал "Чтение 5", поступающий через элемент ИЛИ 48 на установочный вход двоично-десятичного счетчика 41, устанавливая его в нулевое состояние, на первый вход триггера 43, устанавливая его в единичное состояние, через элемент ИЛИ 47 - на записывающий вход параллельно-последовательного регистра по выводу 38 информации, осуществляя запись в него информации с выходов буферного регистра вывода 40, и на первый вход триггера 44, устанавливая его в единичное состояние и снимая тем самым запрет на ввод очередного слова информации. After writing the first word of information to the buffer register 40, the microprocessor on the bus 2 through the decoder 25 generates a signal "Read 5", coming through the OR element 48 to the installation input of the binary decimal counter 41, setting it to zero, to the first input of the trigger 43, setting it is in a single state, through an OR element 47 - to the recording input of a parallel-serial register for outputting 38 information, recording information in it from the outputs of the buffer register of output 40, and to the first input of trigger 44, setting it in a single state and thereby removing the ban on entering another word of information.

Сигналом с выхода триггера 43 открывается ключ 46 и информация под действием тактовой частоты Fт, поступающей на тактовый вход регистра 38, выдается на вход-выход 18 блока ввода-вывода 1.The signal from the output of the trigger 43 opens the key 46 and information under the action of the clock frequency F t supplied to the clock input of the register 38, is issued to the input-output 18 of the input-output unit 1.

Вывод последующих слов информации в буферный регистр 40 осуществляется по сигналам, периодически выдаваемым через 16 тактов счетчиком 41 через элемент И 42. Через 16 тактов после записи последнего слова в буферный регистр 40 микропроцессор по шине 2 через дешифратор 25 выдает сигнал "Запись 5", сбрасывающий триггер 43 в нулевое состояние и отключающий тем самым выход регистра 38 от канала связи. Одновременно в цикле опроса прекращается анализ ключа 45 на возможность ввода информации. The subsequent words of information are output to the buffer register 40 by the signals periodically issued after 16 cycles by the counter 41 through the And 42 element. 16 cycles after the last word has been written to the buffer register 40, the microprocessor sends a "Record 5" signal via bus 2 through the decoder 25, which resets trigger 43 to the zero state and thereby disconnecting the output of the register 38 from the communication channel. At the same time, in the polling cycle, the analysis of key 45 for the possibility of entering information is terminated.

Последовательно-параллельные регистры 37 и 38 могут быть реализованы на четырех ИМС 564ИР9, буферные регистры 39 и 40 каждый - на двух ИМС 588ИР1, счетчик 41 - ИМС 564ИЕ10, элемент И 42 - на ИМС 564ЛА7, триггреры 43 и 44 - на ИМС 564ТМ2, ключи 45 и 46 - на ИМС 564КТ3, элементы ИЛИ - на ИМС 564ЛЕ5 [9]. Serial-parallel registers 37 and 38 can be implemented on four ICs 564IR9, buffer registers 39 and 40 each on two ICs 588IR1, counter 41 - IC 564IE10, element I 42 - on IC 564LA7, triggers 43 and 44 - on IC 564TM2, keys 45 and 46 - on the IC 564KT3, the elements OR - on the IC 564LE5 [9].

На фиг. 6 представлен пример реализации функциональной схемы микропроцессорного блока 23 на базе процессора К1801ВМ2. Микропроцессорный блок содержит собственно процессор 49, регистр сдвига 50 и элемент ИЛИ 51. Регистр сдвига и элемент ИЛИ образуют схему формирования сигнала "Ответ". Процессор содержит входы-выходы AD0-AD15, по которым процессор выдает адреса опрашиваемых узлов и получает или выдает информацию, вход "Подтверждение" (AR), по которому процессор получает сигнал, подтверждающий прием адреса дешифратором, выходы "Обмен" (SYNC), "Чтение" (DIN), "Запись" (DOIT), по которым процессор формирует сигналы, поступающие в дешифратор при организации взаимодействия его с узлами устройства, а также выход "Байт" (WIBT), по которому процессор выдает сигнал в ОЗУ. Этот сигнал совместно с младшим разрядом адреса (нулевым) определяет, в какой из байтов ОЗУ происходит запись. Например, значение "0" сигнала означает запись в ОЗУ одного из двух байтов, в разряд "0" адреса указывает, какой байт конкретно будет записываться (младший, старший). Указанные выше выходы процессора образуют общую шину 2. In FIG. 6 shows an example of the implementation of the functional diagram of the microprocessor unit 23 based on the processor K1801VM2. The microprocessor unit contains the actual processor 49, the shift register 50 and the OR element 51. The shift register and the OR element form the response signal generation circuit. The processor contains inputs and outputs AD0-AD15, through which the processor gives the addresses of the nodes being surveyed and receives or provides information, the "Confirmation" (AR) input, by which the processor receives a signal confirming that the decoder has received the address, the "Exchange" (SYNC) outputs, " Reading "(DIN)," Write "(DOIT), by which the processor generates signals entering the decoder when organizing its interaction with the device nodes, as well as the" Byte "output (WIBT), by which the processor generates a signal in RAM. This signal, together with the least significant bit of the address (zero), determines which of the RAM bytes is being written. For example, the value “0” of a signal means writing one of two bytes to RAM; the address “0” indicates which byte will be written specifically (low, high). The above processor outputs form a common bus 2.

Регистр сдвига 50 предназначен для задержки сигналов "Чтение" или "Запись" и формирования сигнала "Ответ" для процессора по входу RPLY. Сигнал "Ответ" говорит о том, что в режиме чтения информации процессором из опрашиваемого узла эта информация выставлена по шине 2, а в режиме записи - информация записана в узел. Величина задержки, обеспечиваемой регистром сдвига 50, выбирается исходя из надежного срабатывания взаимодействующих с процессором узлов. The shift register 50 is designed to delay the signals "Read" or "Write" and the formation of the signal "Response" for the processor at the input of RPLY. The “Response” signal indicates that in the mode of reading information by the processor from the interrogated node, this information is set on bus 2, and in the recording mode, the information is written to the node. The amount of delay provided by the shift register 50 is selected based on the reliable operation of the nodes interacting with the processor.

Регистр сдвига 50 может быть реализован на ИМС 564ИР2, элемент ИЛИ - на ИМС 564ЛЕ5. The shift register 50 can be implemented on the IC 564IR2, the element OR on the IC 564LE5.

Режим кодирования-декодирования информации. The encoding-decoding mode of information.

Как говорилось ранее, в каскадном коде осуществляется двойное кодирование информации, сначала внешним недвоичным кодом, например кодом РС, а затем внутренним двоичным кодом. В предлагаемом устройстве для повышения его быстродействия и уменьшения сложности используется двухполосное кодирование информации внешним кодом. Для этого информация разбивается на блоки по 16 символов, при этом четные байты всех блоков образуют одну полосу, а нечетные - другую полосу, каждая из которых кодируется внешним кодом РС. As mentioned earlier, in cascading code, information is double-encoded, first with an external non-binary code, such as a PC code, and then with an internal binary code. In the proposed device to increase its speed and reduce complexity, two-way coding of information by external code is used. To do this, the information is divided into blocks of 16 characters, with even bytes of all blocks form one strip, and odd bytes form another strip, each of which is encoded with an external PC code.

Известно [6, с.119], что кодовый многочлен C(x) можно представить в виде
С(x) = xN-K•I(x) + t(x), (5)
где
I(x) - информационный многочлен;
t(x) - остаток от деления многочлена xN-K•I(x) на образующий многочлен G(x).
It is known [6, p.119] that the code polynomial C (x) can be represented as
C (x) = x NK • I (x) + t (x), (5)
Where
I (x) - information polynomial;
t (x) is the remainder of the division of the polynomial x NK • I (x) by the generator of the polynomial G (x).

Операция деления одного многочлена на другой "Столбиком" заключается в умножении сокращаемого коэффициента делимого на коэффициенты делителя (коэффициенты образующего многочлена) с последующим сложением полученных произведений с коэффициентами делимого. Таким образом, кодирование информации можно осуществить с помощью операции умножения и сложения. При этом в предлагаемом устройстве операция умножения, как требующая большой затраты машинного времени, осуществляется аппаратной частью, а операция сложения, требующая малой затраты машинного времени, - программно. The operation of dividing one polynomial into another by “Column” consists in multiplying the canceled coefficient of the dividend by the divisor coefficients (coefficients of the forming polynomial), followed by the addition of the obtained products with the dividend coefficients. Thus, the encoding of information can be carried out using the operations of multiplication and addition. Moreover, in the proposed device, the multiplication operation, which requires a large expenditure of computer time, is carried out by the hardware, and the addition operation, which requires a small expenditure of computer time, is software.

На фиг. 7 схематически представлено распределение области ОЗУ, используемой при кодировании. Эта область содержит шесть зон. В 1 и 2 зонах объемом каждая 241 байт записываются информационные массивы 1 и 2 полосы соответственно. 5 и 6 зоны дублируют 1 и 2 зоны. В 3 и 4 зонах будут записаны проверочные символы кода РС. Объем 3 и 4 зон каждой составляет 16 восьмиразрядных слов. In FIG. 7 schematically shows the distribution of the RAM region used in encoding. This area contains six zones. In 1 and 2 zones, each 241 bytes in volume, information arrays of 1 and 2 bands are recorded, respectively. 5 and 6 zones duplicate 1 and 2 zones. In zones 3 and 4, the verification characters of the PC code will be recorded. The volume of 3 and 4 zones of each is 16 eight-bit words.

Первоначальная запись информации из блока ввода-вывода осуществляется одновременно по первой полосе в 1 и 5 зоны, по второй полосе во 2 и 6 зоны. The initial recording of information from the input-output unit is carried out simultaneously on the first strip in 1 and 5 zones, on the second strip in 2 and 6 zones.

Отведение K ячеек памяти под запись информационных символов и N - K ячеек памяти с первоначальным "нулевым" значением и последующей записью в них проверочных символов кода РС означает автоматическое умножение информационного многочлена I(x) на xN-K в соответствии с выражением (5).Allocation of K memory cells for recording information symbols and N - K memory cells with the initial “zero” value and the subsequent recording of test characters of the PC code in them means the automatic multiplication of the information polynomial I (x) by x NK in accordance with expression (5).

В дальнейшем в процессе кодирования кодом РС содержимое 1 и 2 зон постоянно обновляется для хранения промежуточных результатов деления многочлена xN-K• I(x) на образующий многочлен G(x) (коэффициенты образующего многочлена хранятся в ПЗУ), а содержимое 5 и 6 зон остается неизменным. В результате деления в 3 и 4 зонах окажутся записанными проверочные символы кода РС (остаток от деления).Subsequently, in the process of encoding with the PC code, the contents of zones 1 and 2 are constantly updated to store intermediate results of dividing the polynomial x NK • I (x) by the generating polynomial G (x) (the coefficients of the generating polynomial are stored in ROM), while the contents of 5 and 6 zones remain unchanged. As a result of the division, the verification characters of the PC code (the remainder of the division) will be recorded in zones 3 and 4.

Кодирование информации осуществляется по программе, хранящейся в ПЗУ блока памяти 3, в соответствии с алгоритмом, представленным на фиг.8. Операторы алгоритма имеют следующее назначение. The coding of information is carried out according to the program stored in the ROM of the memory unit 3, in accordance with the algorithm presented in Fig. 8. Algorithm operators have the following purpose.

Первым оператором осуществляется запись в регистр общего назначения (РОН) 1 микропроцессора числа K информационных символов кода РС (K = 225). The first operator writes to the general purpose register (RON) 1 of the microprocessor the number K of information symbols of the PC code (K = 225).

Второй оператор считывает из зон 1 и 2 ОЗУ блока памяти 3 старшие коэффициенты (байты) многочлена xN-K • I(x) и пересылает их в первый буферный регистр 4, выставляя по шине 2 адрес этого регистра. Дешифратор 25 дешифрирует этот адрес и управляющим сигналом Q4, поступающим на записывающий вход этого регистра, фиксирует в нем этот коэффициент (фиг.1).The second operator reads the highest coefficients (bytes) of the polynomial x NK • I (x) from zones 1 and 2 of the RAM of memory block 3 and sends them to the first buffer register 4, setting the address of this register on bus 2. The decoder 25 decrypts this address and the control signal Q4 supplied to the recording input of this register, fixes this coefficient in it (figure 1).

Третий оператор осуществляет проверку на конец кодирования внешним кодом, для чего содержимое РОН 1 уменьшается на единицу и сравнивается с нулем. При отличии результата от нуля осуществляется переход к четвертому оператору, в противном случае - переход к программе кодирования информации внутренним кодом. The third operator checks the end of the encoding with an external code, for which the contents of RON 1 are reduced by one and compared with zero. If the result differs from zero, the transition to the fourth operator is performed, otherwise, the transition to the program for encoding information with internal code.

Четвертый оператор осуществляет запись в РОН 2 микропроцессора числа, равного (N-K - 1), в нашем примере (N-K-1)= 15. The fourth operator writes to RON 2 of the microprocessor a number equal to (N-K - 1), in our example (N-K-1) = 15.

Пятым оператором осуществляется запись из ПЗУ очередного (на первом этапе деления многочленов xN-K • I(x) и G(x) - старшего) коэффициента многочлена G(x) через коммутатор 10 во второй буферный регистр 5, выставляя для этого по шине 2 адрес этого регистра. Дешифратор 25 дешифрирует этот адрес и управляющим сигналом Q5 через первый элемент ИЛИ 15 фиксирует этот коэффициент во втором буферном регистре 5. При этом на выходе умножителя 9 получается результат умножения содержимого обоих регистров.The fifth operator writes from the ROM the next (at the first stage of dividing the polynomials x NK • I (x) and G (x) - senior) coefficient of the polynomial G (x) through switch 10 into the second buffer register 5, setting the address 2 for this this register. The decoder 25 decodes this address and the control signal Q5 through the first element OR 15 captures this coefficient in the second buffer register 5. At the same time, at the output of the multiplier 9, the result of multiplying the contents of both registers is obtained.

Шестым оператором осуществляется пересылка результата умножения в РОН 3 микропроцессора, для чего микропроцессор через дешифратор 25 формирует управляющий сигнал Q1, в результате чего открывается первый блок ключей и результат произведения поступает по шине 2 в РОН 3. The sixth operator sends the result of the multiplication to RON 3 of the microprocessor, for which the microprocessor through the decoder 25 generates a control signal Q1, as a result of which the first block of keys is opened and the result of the product is sent via bus 2 to RON 3.

Седьмым оператором в арифметико-логическом устройстве (АЛУ) микропроцессора содержимое РОН 3 складывается с текущими коэффициентами многочлена, хранящегося в зонах 1 и 2, следующими по порядку за сокращаемым коэффициентом. На первом этапе, когда сокращается старший коэффициент многочлена xN-K•I(x), такими текущими коэффициентами являются коэффициенты, следующие за старшим. При этом результат сложения записывается по адресу текущего коэффициента, и совокупность этих коэффициентов образует промежуточный (модифицированный) многочлен, с коэффициентами которого на последующих этапах деления будут осуществляться операции умножения и сложения.The seventh operator in the arithmetic logic unit (ALU) of the microprocessor contains the contents of RON 3 with the current coefficients of the polynomial stored in zones 1 and 2, following the order of magnitude of the reduced coefficient. At the first stage, when the leading coefficient of the polynomial x NK • I (x) is reduced, such current coefficients are the coefficients following the leading one. In this case, the result of addition is recorded at the address of the current coefficient, and the combination of these coefficients forms an intermediate (modified) polynomial, with the coefficients of which at the subsequent stages of division, the operations of multiplication and addition will be performed.

Восьмой оператор осуществляет проверку на конец процедуры умножения содержимого первого и буферного регистров на коэффициенты образующего многочлена G(x), для чего содержимое РОН 2 уменьшается на единицу и сравнивается с нулем. При отличии результата вычитания от нуля осуществляется переход к пятому оператору, в противном случае - переход к второму оператору, начиная процедуру сокращения очередного старшего коэффициента модифицированного многочлена. The eighth operator checks at the end of the procedure of multiplying the contents of the first and buffer registers with the coefficients of the generatrix of the polynomial G (x), for which the contents of RON 2 are reduced by one and compared with zero. If the subtraction result differs from zero, the transition to the fifth operator is performed; otherwise, the transition to the second operator is performed, starting the procedure for reducing the next highest coefficient of the modified polynomial.

В предлагаемом устройстве кодирование и декодирование информации осуществляются сразу по двум полосам. Поэтому буферные регистры 4, 5 и 6 содержат по два восьмиразрядных регистра, а умножитель 9 содержит два восьмиразрадных умножителя. In the proposed device, the encoding and decoding of information is carried out immediately in two bands. Therefore, the buffer registers 4, 5 and 6 contain two eight-bit registers, and the multiplier 9 contains two eight-bit multipliers.

Применительно к процессору К1902ВМ2 к набору элементов, указанных в примерах реализации, для выполнения операторов 1, 3, 4 и 8 требуется ≃ 6 мкс для каждого, операторов 2, 5 и 7 - ≃ 15 мкс. Кодирование одного блока (225•16) дв. символов кодом РС потребует число команд, равное Nк = (4•15+4) 225+1 = 401 команда, и по времени займет Tвнешн. ≃ 0,16 с. На кодирование одного бита информации в среднем потребуется 2,5 команды.In relation to the K1902BM2 processor, the set of elements indicated in the implementation examples requires ≃ 6 μs for each operator 1, 3, 4, and 8, and ≃ 15 μs for each operator 2, 5, and 7. Coding of one block (225 • 16) dv. characters with a PC code will require a number of commands equal to N k = (4 • 15 + 4) 225 + 1 = 401 teams, and will take T externally in time . ≃ 0.16 s. On average, 2.5 commands are required to encode one bit of information.

Дальнейшее повышение производительности предлагаемого устройства можно достичь путем использования при кодировании процедуры декодирования со стираниями на месте проверочных символов. Так как предлагаемое устройство более приспособлено к процедуре декодирования, то быстродействие повышается до 1,37 команды на бит. A further increase in the performance of the proposed device can be achieved by using a decoding procedure with erasure in place of check symbols when encoding. Since the proposed device is more adapted to the decoding procedure, the speed increases to 1.37 instructions per bit.

Кроме того, использование высокоскоростных процессоров, например, 80386 фирмы "Intel" также повышает быстродействие устройства. In addition, the use of high-speed processors, for example, Intel 80386 also improves the performance of the device.

Чисто программная реализация операции умножения двух чисел в поле GF (2m) потребует 18 команд [10].A purely software implementation of the operation of multiplying two numbers in the field GF (2 m ) will require 18 commands [10].

Выигрыш предлагаемого устройства по числу команд для операции умножения примерно составляет 4,5 раза. Примерно такой же будет и выигрыш устройства во всей операции кодирования кодом РС, так как операция умножения является наиболее частой. The gain of the proposed device in the number of commands for the operation of multiplication is approximately 4.5 times. The gain of the device in the entire encoding operation with the PC code will be approximately the same, since the multiplication operation is the most frequent.

После завершения кодирования информации внешним кодом микропроцессор осуществляет кодирование каждого 16-разрядного слова внутренним (24, 16) кодом, добавляя к 16 информационным символам 8 проверочных. Кодирование осуществляется табличным способом. After completing the encoding of information with an external code, the microprocessor encodes each 16-bit word with an internal (24, 16) code, adding 8 test characters to 16 information symbols. Coding is carried out in a tabular manner.

Однако прямое табличное кодирование, использованное в прототипе, когда 16 информационных символов являются адресом ячейки, в которой хранятся 8 проверочных символов, требует большого объема памяти. Поэтому в предлагаемом устройстве используется табличное кодирование по частям с длиной каждой части l = 8 [11], что позволяет сократить объем памяти с 216 до 28 ячеек.However, the direct tabular coding used in the prototype, when 16 information characters are the address of the cell in which 8 test characters are stored, requires a large amount of memory. Therefore, the proposed device uses tabular coding in parts with the length of each part l = 8 [11], which allows to reduce the amount of memory from 2 16 to 2 8 cells.

На фиг. 9 представлена блок-схема алгоритма кодирования информации внутренним кодом (пример). Операторы алгоритма имеют следующее назначение. In FIG. 9 shows a block diagram of an algorithm for encoding information with an internal code (example). Algorithm operators have the following purpose.

Оператор 1 устанавливает исходные данные, к которым относятся
начальный адрес массива M 1 символов кода РС (информационных комбинаций внутреннего кода),
начальный адрес массива M 2 остатков,
начальный адрес массива M 3 проверочных символов внутреннего кода,
начальное значение счетчика шага символов в кодовом блоке кода РС, например N = 241.
Operator 1 sets the source data, which include
the starting address of the array M 1 characters of the PC code (information combinations of the internal code),
the starting address of the array M 2 residues,
the starting address of the array M 3 verification characters of the internal code,
the initial value of the step counter characters in the code block of the PC code, for example N = 241.

При каждом обращении в массивы символов кода РС и проверочных символов внутреннего кода используется автоинкрементный способ адресации. Each access to the arrays of characters of the PC code and verification characters of the internal code uses an auto-incremental addressing method.

Оператор 2 формирует адрес ячейки массива M 2, где хранится остаток от деления первого байта текущего блока внутреннего кода (в начале алгоритма первого) на образующий многочлен g(x). Operator 2 generates the cell address of array M 2, where the remainder of dividing the first byte of the current block of the internal code (at the beginning of the algorithm of the first) by the generating polynomial g (x) is stored.

Оператор 3 по сформированному в операторе 2 адресу извлекает остаток и пересылает его в РОН микропроцессора. Operator 3 at the address generated in operator 2 extracts the remainder and sends it to the microprocessor RON.

Оператор 4 извлекает из массива M 1 второй байт текущего блока. Operator 4 extracts the second byte of the current block from the array M 1.

Оператор 5 складывает второй байт текущего слова с содержимым РОНа. Operator 5 adds the second byte of the current word with the contents of RON.

Оператор 6 выделяет младший байт в результате сложения (операция обнуления старшего байта, характерная для системы команд машин типа "Электроника-60"). Operator 6 allocates the least significant byte as a result of addition (the operation of resetting the most significant byte, characteristic of the instruction system of machines of the type "Electronics-60").

Оператор 7 по адресу, равному содержимому младшего байта этого результата, считывает из массива M 2 остатков проверочный символ и записывает его в массив проверочных символов M 3. Operator 7, at an address equal to the contents of the least significant byte of this result, reads a check character from an array of M 2 residues and writes it to an array of check characters M 3.

Оператор 8 уменьшает значение счетчика числа символов на единицу. Operator 8 decreases the value of the counter of the number of characters by one.

Оператор 9 проверяет условие равенства 0 показаний счетчика. При невыполнении условия равенства 0 осуществляется переход к оператору 2, при выполнении - окончание алгоритма. Operator 9 checks the condition of equality of 0 counter readings. If the condition of equality 0 is not fulfilled, the transition to operator 2 is carried out, when executed, the end of the algorithm.

Загрузка микропроцессора программой кодирования внутренним кодом по описанному выше алгоритму составил около 1690 команд, или 0,29 команды на бит информации. The loading of the microprocessor by the internal encoding program according to the algorithm described above amounted to about 1690 instructions, or 0.29 instructions per bit of information.

Результирующая загрузка микропроцессора на кодирование внутренним и внешним кодами составит примерно Tрез=Tвнеш. + Tвнутр=1,37+0,29 = 1,66 к/бит.The resulting load of the microprocessor for encoding with internal and external codes will be approximately T res = T ext. + T int = 1.37 + 0.29 = 1.66 k / bit.

Режим декодирования информации. Information decoding mode.

В режиме ввода информации из канала связи, как говорилось ранее при описании работы блока ввода-вывода 1, информация записывается в ОЗУ блока памяти 3. Микропроцессор и ОЗУ, используемые в устройстве, являются 16-разрядными. На фиг. 10 схематично представлено распределение ячеек ОЗУ для записи информации, принимаемой из канала связи. In the mode of inputting information from the communication channel, as mentioned earlier in the description of the operation of the I / O unit 1, information is recorded in the RAM of the memory unit 3. The microprocessor and RAM used in the device are 16-bit. In FIG. 10 schematically shows the distribution of RAM cells for recording information received from a communication channel.

На фиг. 11 представлена блок-схема алгоритма декодирования закодированной внутренним кодом информации. Алгоритм использует табличный метод декодирования по частям [11]. Назначение операторов алгоритма следующее. In FIG. 11 is a flowchart of a decoding algorithm of information encoded by an internal code. The algorithm uses a tabular method of decoding in parts [11]. The purpose of the algorithm operators is as follows.

Оператором 1 устанавливаются исходные данные, к которым относятся
число блоков внутреннего кода в блоке кода РС, например, равное 241,
начальный адрес зоны ОЗУ, в которой хранится информация, принятая из канала связи,
начальный адрес зоны ОЗУ, в которой хранятся признаки блоков внутреннего кода, например "0" - кодовый блок без ошибки или с необнаруженной ошибкой, "1" - кодовый блок с обнаруженной ошибкой.
Operator 1 sets the source data, which include
the number of blocks of the internal code in the PC code block, for example, equal to 241,
the starting address of the RAM zone in which information received from the communication channel is stored,
the starting address of the RAM zone in which the signs of the internal code blocks are stored, for example, “0” is the code block with no error or with an undetected error, “1” is the code block with the detected error.

Оператор 2 определяет промежуточный результат деления байта, содержащего старшие коэффициенты декодируемого кодового блока. Происходит это следующим образом. Operator 2 determines the intermediate result of dividing a byte containing the highest coefficients of the decoded code block. It happens as follows.

По текущему (начальному при начале кодирования) адресу ячейки информационной зоны ОЗУ сосчитывается байт со старшими коэффициентами и записывается в РОН микропроцессора, так как при этом происходит размножение байта, то необходима операция "обнуления" (занесения константы) старшего байта этого РОНа. Эта операция занесения константы повторяется при каждом чтении информации из ОЗУ. При этом старший байт РОНа используется для указания определенной зоны в ОЗУ, а младший - для указания адреса байта в этой зоне. The byte with the highest coefficients is counted at the current (starting at the beginning of coding) cell address of the RAM information zone and written to the microprocessor RON, since this multiplies the byte, the operation of "zeroing" (entering a constant) of the high byte of this RON is necessary. This operation of entering constants is repeated each time information is read from RAM. In this case, the high byte of RON is used to indicate a specific zone in RAM, and the low byte is used to indicate the byte address in this zone.

По адресу содержимого в младшем байте РОНа с учетом константы в старшем байте РОНа происходят обращение к зоне остатков и считывание из нее промежуточного остатка от деления старших коэффициентов декодируемого блока на образующий многочлен g(x) и запись в этот же РОН. Затем содержимое РОНа складывается по модулю два со следующим байтом декодируемого блока и записывается в этом же РОНе. At the address of the contents in the low byte of the RON, taking into account the constant in the high byte of the RON, the remainder zone is accessed and the intermediate residue is read from it by dividing the highest coefficients of the decoded block by the generating polynomial g (x) and written to the same RON. Then the contents of the RON are added modulo two with the next byte of the decoded block and recorded in the same RON.

Оператор 3 определяет синдром декодируемого блока, для чего по адресу содержимого РОНа происходят обращение к соответствующей ячейке зоны остатков и считывание результата от деления содержимого РОНа на образующий многочлен g(x), который записывается в этом же РОНе. После этого содержимое РОНа складывается по модулю два с проверочным байтом декодируемого блока, результат сложения, являющийся синдромом, записывается в этом же РОНе. Operator 3 determines the syndrome of the decoded block, for which, at the address of the RON content, an access to the corresponding cell of the residual zone and reading the result of dividing the contents of the RON by the generating polynomial g (x), which is written in the same RON, are read. After that, the contents of the RON are added modulo two with the check byte of the decoded block, the result of the addition, which is the syndrome, is recorded in the same RON.

Оператор 4 осуществляет анализ синдрома. Если синдром равен нулю, то оператор 5 осуществляет запись признака "0" в соответствующую декодируемому блоку ячейку зоны признаков, если синдром отличен от нуля, то оператор 6 осуществляет в эту ячейку запись признака "1". Operator 4 performs an analysis of the syndrome. If the syndrome is equal to zero, then operator 5 records the sign “0” in the cell of the zone of signs corresponding to the block being decoded; if the syndrome is different from zero, then operator 6 records the sign “1” in this cell.

Операторы 7 и 8 осуществляют проверку на окончание процедуры декодирования. Для этого оператор 7 уменьшает на единицу содержимое ячейки памяти (РОНа), где хранится текущий номер декодируемого блока, а оператор 8 сравнивает значение этого номера с нулем. Если N = 0, то происходит окончание процедуры декодирования, если N≠0, то осуществляется переход к оператору 2 и процедура декодирования продолжается. Operators 7 and 8 check for completion of the decoding procedure. For this, operator 7 reduces by one the contents of the memory cell (RON), where the current number of the decoded block is stored, and operator 8 compares the value of this number with zero. If N = 0, then the decoding procedure ends, if N ≠ 0, then the transition to operator 2 occurs and the decoding procedure continues.

В результате декодирования в одной части ОЗУ будет записан информационный массив с числом 16-разрядных кодовых блоков, равный N, а в другой части ОЗУ будет записан массив признаков (стираний) такого же объема. As a result of decoding, an information array with the number of 16-bit code blocks equal to N will be recorded in one part of the RAM, and an array of signs (deletions) of the same volume will be recorded in the other part of the RAM.

Алгоритм несколько усложняется при использовании кода в режиме исправления однократных ошибок. Детальная проработка этого алгоритма показала, что затраты машинного времени составляют 0,86 команды на бит для самого тяжелого варианта декодирования (в 241 символах 16 стираний и 225 исправлений одиночных ошибок). The algorithm is somewhat more complicated when using the code in the mode of fixing single errors. A detailed study of this algorithm showed that the cost of computer time is 0.86 instructions per bit for the most difficult decoding option (241 characters have 16 erasures and 225 single error corrections).

Алгоритм декодирования внешнего кода РС, являющегося частным случаем кода БЧХ, по существу изложен в [7, с. 167 - 175]. Исходными данными для декодирования внешнего кода являются полученные при декодировании внутреннего кода декодированные кодовые комбинации, номера (локаторы) стертых кодовых комбинаций внутреннего кода. The decoding algorithm of the external PC code, which is a special case of the BCH code, is essentially described in [7, p. 167 - 175]. The initial data for decoding the external code are the decoded code combinations obtained by decoding the internal code, numbers (locators) of the erased code combinations of the internal code.

Обобщенный алгоритм декодирования внешнего кода БЧХ (РС) представлен на фиг. 12. A generalized decoding algorithm for an external BCH (RS) code is shown in FIG. 12.

В первой операции алгоритма осуществляется вычисление синдромного многочлена S(x). Синдромный многочлен имеет вид
S(x) = S0xR-1 + S1xR-2 + ... + SR-1; R = n - K. (6)
Коэффициенты многочлена определяются как значения кодового многочлена C(x) длиной N при подстановке в него значений

Figure 00000007
[6, с. 188] , где D - кодовое расстояние кода; m0 - целое положительное число, не превышающее -2.In the first operation of the algorithm, the syndrome polynomial S (x) is calculated. The syndrome polynomial has the form
S (x) = S 0 x R-1 + S 1 x R-2 + ... + S R-1 ; R = n - K. (6)
Coefficients of a polynomial are defined as the values of the code polynomial C (x) of length N when substituting values in it
Figure 00000007
[6, p. 188], where D is the code distance of the code; m 0 is a positive integer not exceeding -2.

Например, для m0 = 0 и кода РС с образующим многочленом (3) (D = 17) в кодовый многочлен необходимо подставить значения αo,α;α23...α15 .For example, for m 0 = 0 and a PC code with a generating polynomial (3) (D = 17), it is necessary to substitute the values α o , α; α 2 , α 3 ... α 15 into the code polynomial.

Вычисление коэффициентов синдромного многочлена удобно производить в виде рекуррентного соотношения по формуле (4). It is convenient to calculate the coefficients of the syndromic polynomial in the form of a recurrence relation by the formula (4).

При отсутствии искажений коэффициенты Sm равны нулю, при наличии искажений они отличны от нуля и вместе с локаторами (номерами) стертых символов, определенными при декодировании внутреннего кода, используются далее для декодирования кода РС.In the absence of distortion, the coefficients S m are equal to zero, in the presence of distortion, they are nonzero and, together with the locators (numbers) of the erased characters determined when decoding the internal code, are used further to decode the PC code.

На фиг. 13 представлена блок-схема алгоритма вычисления коэффициентов синдромного многочлена по схеме Горнера, использующего как программную, так и аппаратную части устройства кодирования-декодирования (фиг. 1). In FIG. 13 shows a block diagram of an algorithm for calculating the coefficients of a syndromic polynomial according to Horner's scheme, using both the software and hardware of the encoding-decoding device (Fig. 1).

На фиг. 14 представлены временные диаграммы управляющих сигналов, формируемых микропроцессором при вычислении коэффициентов Sm.In FIG. 14 shows timing diagrams of control signals generated by the microprocessor in calculating the coefficients S m .

Операторы алгоритма имеют следующее назначение. Algorithm operators have the following purpose.

Оператор 1 устанавливает исходные данные, к которым относятся
начальное значение адреса B0 + 1 массива элементов поля в ПЗУ, где B0 - константа,
начальное значение счетчика коэффициентов синдромного многочлена R__→ <A> (в ячейку по адресу A заносится значение R, в качестве примера R = 16),
начальное значение адреса A0 + 1 массива коэффициентов Sm синдромного многочлена, где A0 - константа.
Operator 1 sets the source data, which include
the initial value of the address B 0 + 1 of the array of field elements in the ROM, where B 0 is a constant,
the initial value of the coefficient counter of the syndrome polynomial R__ → <A> (the value R is entered in the cell at address A, as an example, R = 16),
the initial value of the address A 0 + 1 of the array of coefficients S m of the syndrome polynomial, where A 0 is a constant.

Оператор 2 устанавливает начальное значение C + 1 массива информации в ОЗУ, где C - константа. Начальное значение адресов массивов записывается в РОНах, при этом используется автоинкрементный способ адресации. Operator 2 sets the initial value C + 1 of the information array in RAM, where C is a constant. The initial value of the addresses of the arrays is recorded in RONs, and an auto-incrementing addressing method is used.

Оператор 3 по сигналу Q4 (фиг. 14 ж) осуществляет запись из ПЗУ блока памяти 3 по шине 2 в первый буферный регистр 4 (фиг. 1) очередного элемента поля

Figure 00000008
(в начале алгоритма αo из ячейки с адресом B0 + 1).The operator 3 on the signal Q4 (Fig. 14 g) writes from the ROM of the memory unit 3 via bus 2 to the first buffer register 4 (Fig. 1) of the next field element
Figure 00000008
(at the beginning of the algorithm α o from the cell with the address B 0 + 1).

Оператор 4 по сигналу Q5 (фиг. 14 б) осуществляет запись из ОЗУ блока памяти 3 по шине 2 через коммутатор 10 во второй буферный регистр 5 очередного символа Cj ( в начале алгоритма C1 из ячейки с адресом C + 1). При этом на выходе умножителя 9 получается результат умножения Ciαm, который поступает на первые входы блока сумматоров 11 по модулю два.Operator 4, on signal Q5 (Fig. 14 b), writes from RAM of memory block 3 via bus 2 through switch 10 to the second buffer register 5 of the next character C j (at the beginning of algorithm C 1 from the cell with address C + 1). At the same time, at the output of the multiplier 9, the result of the multiplication C i α m is obtained, which is supplied to the first inputs of the block of adders 11 modulo two.

Операторы

Figure 00000009
по сигналу Q6 (фиг. 14 г) осуществляют запись из ОЗУ блока памяти 3 по шине 2 через коммутатор 10 в третий буферный регистр 6 символов C2 - CN, при этом с вводом каждого символа на выходе блока сумматора по модулю два 11 образуется сумма предыдущего результата с вводимым символом, которая через коммутатора 10 (при снятии сигнала Q6 коммутатор устанавливается в противоположное состояние) поступает на информационные входы второго буферного регистра 5, где фиксируется сигналом Q6, задержанным в первом узла 7 задержки (фиг. 14 д), величина задержки определяется управляющим сигналом Q7 (тактируемая задержка).Operators
Figure 00000009
the signal Q6 (Fig. 14 g) is used to write from the RAM of the memory unit 3 via bus 2 through the switch 10 to the third buffer register 6 characters C 2 - C N , and with the input of each character at the output of the adder block modulo two 11 the sum is formed of the previous result with an input symbol, which, through the switch 10 (when the Q6 signal is removed, the switch is set to the opposite state), enters the information inputs of the second buffer register 5, where it is fixed by the Q6 signal delayed in the first delay node 7 (Fig. 14 d), the delay value determine Xia control signal Q7 (clocked delay).

На умножителе 9 эта сумма умножается на величину αm и результат умножения поступает на блок 11 сумматоров по модулю два, а с его выхода через коммутатор 10 во второй буферный регистр, где он фиксируется очередным сигналом Q6.On the multiplier 9, this sum is multiplied by the value α m and the multiplication result is sent to the block 11 adders modulo two, and from its output through the switch 10 to the second buffer register, where it is fixed by the next signal Q6.

Оператор N + 4 после ввода последнего символа CN выдает сигнал Q2 на второй блок ключей, и значение коэффициента Sm записывается в ОЗУ по соответствующему адресу в массив коэффициентов синдромного многочлена.The operator N + 4 after entering the last character C N generates a signal Q2 to the second block of keys, and the value of the coefficient S m is written to RAM at the corresponding address in the array of coefficients of the syndrome polynomial.

Операторы N + 5 и N + 6 перед вычислением следующего коэффициента синдромного многочлена осуществляют проверку на окончание алгоритма, т.е. не является ли очередной коэффициент Sm последним. Для этого оператор N + 5 уменьшает содержимое ячейки A на единицу и записывает результат в ту же ячейку, а оператор N + 6 сравнивает результат с нулем. Положительный результат сравнения означает, что все R коэффициентов многочлена вычислены и записаны в соответствующий массив ОЗУ. При отрицательном результате сравнения осуществляются переход к оператору 2 и повторение алгоритма с очередным αm.
Загрузка микропроцессора программой вычисления коэффициентов синдромного многочлена по описанному выше алгоритму составляет около 4000 команд.
The operators N + 5 and N + 6, before calculating the next coefficient of the syndromic polynomial, check for the end of the algorithm, i.e. whether the next coefficient S m is the last. To do this, the N + 5 operator reduces the contents of cell A by one and writes the result to the same cell, and the N + 6 operator compares the result with zero. A positive comparison result means that all R coefficients of the polynomial are calculated and written to the corresponding RAM array. If the comparison result is negative, the transition to operator 2 and the repetition of the algorithm with the next α m are performed.
The load of the microprocessor by the program for calculating the coefficients of the syndromic polynomial according to the algorithm described above is about 4000 instructions.

В результате осуществления описанного алгоритма будет сформирован массив М0 коэффициентов синдромного многочлена, записанных по адресам (A0 + 1) - (A0 + R).As a result of the implementation of the described algorithm, an array of M 0 syndromic polynomial coefficients recorded at the addresses (A 0 + 1) - (A 0 + R) will be formed.

Во второй операции обобщенного алгоритма декодирования внешнего кода (фиг. 12) осуществляется вычисление многочлена локаторов стираний λ(x) . In the second operation of the generalized external code decoding algorithm (Fig. 12), the polynomial of erasure locators λ (x) is calculated.

Многочлен локаторов стираний имеет вид

Figure 00000010

где
Yj - локаторы (номера) стираний, полученные при декодировании внутреннего кода;
λi - значения коэффициентов;
s - число стираний (см. [7], с. 169 формула Б 6, в которой
σdei,aZs-e=Xs-i) ).The polynomial of erasure locators has the form
Figure 00000010

Where
Y j - erasure locators (numbers) obtained by decoding the internal code;
λ i are the values of the coefficients;
s is the number of erasures (see [7], p. 169 formula B 6, in which
σ de = λ i , aZ se = X si )).

Приравнивая коэффициенты при неизвестных с одинаковыми степенями в левой и правой частях уравнения (7), можно найти значения коэффициентов λi .Equating the coefficients for unknowns with equal degrees in the left and right sides of equation (7), we can find the values of the coefficients λ i .

При программной реализации удобнее определение значений коэффициентов проводить в виде
λ (j) i (j-1) i +Yjλ (j-1) i-1 (8)
(см. аналогично [7], с. 173, формула Б 22),
где
λ (j-1) i - i-й коэффициент после обработки (j - 1)-го локатора стираний,

Figure 00000011
.With a software implementation, it is more convenient to determine the values of the coefficients in the form
λ (j) i = λ (j-1) i + Y j λ (j-1) i-1 (eight)
(see similarly to [7], p. 173, formula B 22),
Where
λ (j-1) i - i-th coefficient after processing the (j - 1) -th erasure locator,
Figure 00000011
.

Определение значений коэффициентов целесообразно осуществлять в s этапов по рекуррентной процедуре с использованием результатов определения значений коэффициентов, полученных на предыдущем этапе. It is advisable to determine the values of the coefficients in s stages using a recursive procedure using the results of determining the values of the coefficients obtained in the previous step.

На первом этапе (j = 1) определяется коэффициент
λ1 1 1 =Y1.(9)
На втором этапе определяются коэффициенты

Figure 00000012

На третьем этапе определяются коэффициенты
Figure 00000013

На s-м этапе определяются коэффициенты
Figure 00000014

В качестве примера на фиг. 15 приведена блок-схема алгоритма определения коэффициентов многочлена локаторов стираний λ(x) , на фиг. 16 - состояние РОНов, первого и второго буферных регистров в зависимости от номера этапа и номера оператора.At the first stage (j = 1), the coefficient
λ 1 = λ 1 1 = Y 1. (9)
In the second stage, the coefficients are determined
Figure 00000012

In the third stage, the coefficients are determined
Figure 00000013

At the s-th stage, the coefficients are determined
Figure 00000014

As an example in FIG. 15 shows a block diagram of an algorithm for determining the coefficients of the polynomial of erasure locators λ (x), in FIG. 16 - state of RONs, first and second buffer registers depending on the stage number and operator number.

Операторы алгоритма имеют следующее значение. The operators of the algorithm have the following meaning.

Оператор 1 устанавливает исходные данные, к которым относятся
начальный адрес A1 + 1 массива М 1 локаторов стираний, записываемый в РОН 0, где A1 - константа,
начальный адрес A2 + 1 массива M 2 коэффициентов многочлена локаторов стираний, записываемый в РОН 2 и РОН 4, где A2 - константа,
начальное значение номера этапа j = 1, записываемое в счетчике числа этапов,
адрес ячейки L, в которой записан последний локатор стираний, например A1 + 3, если число стираний s = 3.
Operator 1 sets the source data, which include
the starting address A 1 + 1 of the array M 1 of erasure locators recorded in RON 0, where A 1 is a constant,
the starting address A 2 + 1 of the array M 2 of coefficients of the erasure locator polynomial written in RON 2 and RON 4, where A 2 is a constant,
the initial value of the stage number j = 1, recorded in the counter of the number of stages,
the address of the cell L in which the last erasure locator is recorded, for example, A 1 + 3, if the number of erasures is s = 3.

Оператор 2 осуществляет запись из массива M 1 в массив M 2 первого локатора стираний Y1, формируя тем самым коэффициент λ1 в соответствии с выражением (9). Для этого содержимое ячейки, адрес которой указан в РОН 0, записывается в ячейку, адрес которой указан в РОН 4. При этом после каждого обращения к массивам M 1 и M 2 адреса, хранящиеся в РОН 0 и РОН 4, увеличивается на единицу.Operator 2 writes from the array M 1 to the array M 2 of the first erasure locator Y 1 , thereby forming a coefficient λ 1 in accordance with expression (9). To do this, the contents of the cell whose address is specified in RON 0 is recorded in the cell whose address is specified in RON 4. In this case, after each access to the arrays M 1 and M 2, the addresses stored in RON 0 and RON 4 are increased by one.

Оператор 3 проверяет условие, является ли следующий локатор Yj последним, для чего он сравнивает адрес этого локатора, хранящийся в РОН 0, с адресом ячейки L, в которой записан последний локатор стираний. При положительном результате сравнения алгоритм заканчивается, при отрицательном осуществляется переход к оператору 4.Operator 3 checks the condition whether the next locator Y j is the last, for which it compares the address of this locator stored in PON 0 with the address of the cell L in which the last erase locator is written. If the comparison result is positive, the algorithm ends; if the comparison is negative, the transition to operator 4 is performed.

Оператор 4 осуществляет запись номера завершенного этапа j, записанного в счетчике этапов, в РОН 5. The operator 4 records the number of the completed step j recorded in the step counter in RON 5.

Оператор 5 осуществляет переход к следующему этапу, увеличивая содержимое счетчика числа этапов на единицу: j = j + 1. Operator 5 proceeds to the next step, increasing the contents of the counter of the number of steps by one: j = j + 1.

Оператор 6 осуществляет считывание из массива M 1 в РОН 1 и в первый буферный регистр 4 (фиг. 1) текущего локатора стираний Yj (после первого этапа Yj = Y2, после второго Yj = Y3 и так далее).The operator 6 reads from the array M 1 into PON 1 and into the first buffer register 4 (Fig. 1) of the current erasure locator Y j (after the first stage Y j = Y 2 , after the second Y j = Y 3, and so on).

Оператор 7 осуществляет считывание из массива M 2 в РОН 3 содержимого ячейки, адрес которой записан в РОН 2, с последующим увеличением адреса на единицу (после первого этапа по этому адресу сосчитывается коэффициент λ1= λ (1) 1 ).Operator 7 reads from the array M 2 in RON 3 the contents of the cell whose address is recorded in RON 2, followed by an increase in the address by one (after the first stage, the coefficient λ 1 = λ is calculated at this address (1) 1 )

Оператор 8 определяет коэффициент λ (j) 1 путем суммирования содержимого РОН 3 и РОН 1 с последующей записью результата в РОН 1 (после первого этапа в соответствии с выражением (10), после второго - с выражением (12) и так далее).Operator 8 determines the coefficient λ (j) 1 by summing the contents of RON 3 and RON 1, followed by recording the result in RON 1 (after the first stage in accordance with expression (10), after the second, with expression (12) and so on).

Оператор 9 осуществляет считывание предыдущего результата из РОН 1 в массив M 2 по адресу, который записан в РОН 4, с последующим увеличением этого адреса на единицу. Operator 9 reads the previous result from RON 1 to array M 2 at the address that is recorded in RON 4, with a subsequent increase of this address by one.

Оператор 10 осуществляет считывание содержимого РОН 3 во второй буферный регистр 5 (фиг. 1), при этом происходит вычисление очередного коэффициента многочлена λ(x) . The operator 10 reads the contents of RON 3 into the second buffer register 5 (Fig. 1), while the next polynomial coefficient λ (x) is calculated.

Оператор 11 осуществляет запись результата умножения в РОН 1. The operator 11 records the result of the multiplication in RON 1.

Операторы 12 и 13 осуществляют проверку на окончание этапа, вычитая единицу из содержимого РОН 5 и сравнивая результат вычитания с нулем. При положительном результате сравнения осуществляется переход к оператору 14. При отрицательном результате сравнения осуществляется переход к оператору 7 и определение следующего коэффициента этапа. Operators 12 and 13 carry out a check at the end of the stage by subtracting one from the contents of RON 5 and comparing the result of the subtraction with zero. If the comparison result is positive, the transition to the operator 14. If the comparison is negative, the transition to the operator 7 and determination of the next stage coefficient.

Оператор 14 осуществляет считывание содержимого РОН 1 и запись его в массив M 2 по адресу, который записан в РОН 4, с последующим увеличением этого адреса на единицу, и переход к оператору 3. Operator 14 reads the contents of RON 1 and writes it to the array M 2 at the address that is recorded in RON 4, with a subsequent increase of this address by one, and goes to operator 3.

В результате осуществления описанного алгоритма будет сформирован массив M 2 коэффициентов многочлена локаторов стирания

Figure 00000015
и промежуточных коэффициентов
Figure 00000016
полученных в соответствии с выражениями (9 - 15) и записанных по адресам (A2 + 1) - (A2 + 136) (при числе стираний меньшем, 16 часть массива остается свободной).As a result of the implementation of the described algorithm, an array of M 2 coefficients of the erasure locator polynomial coefficients will be formed
Figure 00000015
and intermediate coefficients
Figure 00000016
received in accordance with expressions (9 - 15) and recorded at the addresses (A 2 + 1) - (A 2 + 136) (with the number of erasures less, 16 part of the array remains free).

На фиг. 17 представлена структура массива M 2 для этого случая. In FIG. 17 shows the structure of the array M 2 for this case.

В третьей операции обобщенного алгоритма осуществляется вычисление модифицированного синдромного многочлена, который служит для определения алгоритмов (номеров) ошибочных символов кода РС. Для его нахождения в синдромном многочлене S(x) необходимо устранить составляющие, характеризующие стирания, что достигается путем перемножения синдромного многочлена S(x) и многочлена локаторов стираний λ(x) . In the third operation of the generalized algorithm, a modified syndromic polynomial is calculated, which serves to determine the algorithms (numbers) of erroneous symbols of the PC code. To find it in the syndrome polynomial S (x), it is necessary to eliminate the components characterizing the erasure, which is achieved by multiplying the syndrome polynomial S (x) and the erasure locator polynomial λ (x).

Осуществляя перемножение этих многочленов с последующей подстановкой значений

Figure 00000017

где
ej - значение ошибки;
dk - значение стертого символа;
xj - локатор ошибки;
Yk - локатор стирания (см. [7], с. 169, формула Б 5),
а также с учетом того, что
Figure 00000018

получим
T(x) = T0xR-1-S + T1xR-2-S + ... + TR-2-Sx + TR-1-S, (18)
где
Figure 00000019

где
величины
Figure 00000020
определены первой и второй операциями обобщенного алгоритма.By multiplying these polynomials with the subsequent substitution of values
Figure 00000017

Where
e j is the error value;
d k is the value of the erased character;
x j is the error locator;
Y k - erasure locator (see [7], p. 169, formula B 5),
as well as the fact that
Figure 00000018

we get
T (x) = T 0 x R-1-S + T 1 x R-2-S + ... + T R-2-S x + T R-1-S , (18)
Where
Figure 00000019

Where
values
Figure 00000020
defined by the first and second operations of the generalized algorithm.

В качестве примера на фиг. 18 приведена блок-схема алгоритма определения коэффициента модифицированного синдромного многочлена T(x). As an example in FIG. 18 is a flowchart of an algorithm for determining the coefficient of a modified syndromic polynomial T (x).

Операторы алгоритма имеют следующее назначение. Algorithm operators have the following purpose.

Оператор 1 устанавливает исходные данные, к которым относятся
условный начальный адрес (A0 + 0) массива M 0 коэффициентов синдромного многочлена, предшествующий адресу A0 + 1 ячейки, в которой хранится коэффициент S0, адрес записывается в РОН 0,
начальный адрес массива M 3 (A3 + 1) коэффициентов модифицированного синдромного многочлена, записываемый в РОН 2,
начальное значение счетчика числа коэффициентов модифицированного синдромного многочлена Nмод = K = 2t, где t - скорость направляемых кодом РС ошибок,

Figure 00000021
, где ]•[ означает целую часть.Operator 1 sets the source data, which include
conditional starting address (A 0 + 0) of the array M 0 of the coefficients of the syndrome polynomial preceding the address A 0 + 1 of the cell in which the coefficient S 0 is stored, the address is written in RON 0,
the starting address of the array M 3 (A 3 + 1) of the coefficients of the modified syndromic polynomial recorded in RON 2,
the initial value of the counter of the number of coefficients of the modified syndrome polynomial N mod = K = 2t, where t is the speed of errors sent by the PC code,
Figure 00000021
, where] • [means the integer part.

В качестве примера рассмотрим случай, когда число стираний S = 3 и, следовательно, K = 12. As an example, consider the case when the number of erasures is S = 3 and, therefore, K = 12.

Система уравнений для нахождения коэффициентов T0, T1 ... , T11 имеет вид

Figure 00000022

Оператор 2 записывает в счетчик числа стираний число стираний, в нашем примере Nст = 3.The system of equations for finding the coefficients T 0 , T 1 ..., T 11 has the form
Figure 00000022

Operator 2 writes to the erasure counter the number of erasures, in our example N article = 3.

Оператор 3 записывает в РОН 4 адрес A2 + 1 ячейки массива M 2, в которой хранится первый коэффициент λ1 многочлена локаторов стираний.Operator 3 writes to RON 4 the address A 2 + 1 of the cell of array M 2, in which the first coefficient λ 1 of the erasure locator polynomial is stored.

Оператор 4 присваивает переменной L1 значение, равное 0.Operator 4 sets the variable L 1 to a value of 0.

Оператор 5 увеличивает содержимое РОН 0 на величину S + 1. Operator 5 increases the contents of RON 0 by S + 1.

Оператор 6 считывает из массива M 0 содержимое ячейки с адресом <РОН О>, то есть в нашем примере с адресом <A0+4> , по которому хранится коэффициент SS= S3, и записывает его в третий буферный регистр (фиг. 1) по сигналу Q6.Operator 6 reads from the array M 0 the contents of the cell with the address <РОН О>, that is, in our example, with the address <A 0 +4>, at which the coefficient S S = S 3 is stored, and writes it to the third buffer register (Fig. 1) by signal Q6.

Оператор 7 считывает из массива M 0 содержимое ячейки с адресом <РОН О-1>, , по которому хранится коэффициент SN-1 (в нашем примере λ1 ), и записывает в первый буферный регистр 4 по сигналу Q4.Operator 7 reads from the array M 0 the contents of the cell with the address <RON O-1>, at which the coefficient S N-1 is stored (in our example, λ 1 ), and writes it to the first buffer register 4 according to signal Q4.

Оператор 8 увеличивает содержимое РОН 4 на величину L1.Operator 8 increases the contents of RON 4 by L 1 .

Оператор 9 считывает из массива M 2 содержимое ячейки с адресом РОН 4, по которому хранится коэффициент

Figure 00000023
(в нашем примере λ1 ), и записывает его во второй буферный регистр 5 по сигналу Q5. При этом адрес, записанный в РОН 4, увеличивается на единицу. На выходе умножителя 9 сформируется результат S2•λ1 , который поступит на первые входы сумматора 11 по модулю два, на вторые входы которого поступает сигнал с выхода третьего буферного регистра 6, в котором был записан коэффициент S3.The operator 9 reads from the array M 2 the contents of the cell with the address RON 4, which stores the coefficient
Figure 00000023
(in our example, λ 1 ), and writes it to the second buffer register 5 by the signal Q5. In this case, the address recorded in RON 4 increases by one. At the output of the multiplier 9, a result S 2 • λ 1 is generated, which will be supplied to the first inputs of the adder 11 modulo two, to the second inputs of which a signal is output from the output of the third buffer register 6, in which the coefficient S 3 was recorded.

Сигналом Q5, задержанным во втором элементе задержки 8, выходной сигнал сумматора 11, равный (S2λ1+ S3) , поступающий через коммутатор 10 на входы третьего буферного регистра 6, записывается в этом регистре.The signal Q5, delayed in the second delay element 8, the output signal of the adder 11 equal to (S 2 λ 1 + S 3 ), coming through the switch 10 to the inputs of the third buffer register 6, is recorded in this register.

Оператор 10 увеличивает значение переменной L1 на единицу.The operator 10 increases the value of the variable L 1 by one.

Оператор 11 уменьшает значение, записанное в счетчике стираний, на единицу. Operator 11 decreases the value recorded in the erase counter by one.

Оператор 12 проверяет условие равенства нулю значения счетчика числа стираний. При отрицательном результате сравнения происходит переход к оператору 7, при положительном - к оператору 13. В нашем примере N - 1 = 2, поэтому операторы 7 - 12 повторяются два раза. The operator 12 checks the condition that the value of the counter of the number of erasures be equal to zero. If the comparison result is negative, the transition to operator 7 occurs; if the comparison is positive, the transition to operator 13. In our example, N - 1 = 2, therefore, operators 7 - 12 are repeated twice.

При первом повторении оператор 7 сосчитывает коэффициент S1, а при втором - S0.At the first repetition, operator 7 calculates the coefficient S 1 , and at the second repetition, S 0 .

Оператор 8 при первом повторении сосчитает содержимое ячейки по адресу РОН 4 = A2 + 3, то есть коэффициент λ2 , а при втором - по адресу РОН 4 = A2 + 6, то есть коэффициент λ1 .Operator 8 at the first repetition will count the contents of the cell at the address PON 4 = A 2 + 3, that is, the coefficient λ 2 , and at the second it will at the address PON 4 = A 2 + 6, that is, the coefficient λ 1 .

В результате первого повторения в третьем буферном регистре 6 образуется сумма S1λ2+ S2λ1+ S3 , а в результате второго - коэффициент T0, при этом условие N = 0 будет выполнено и осуществится переход к оператору 13.As a result of the first repetition in the third buffer register 6, the sum S 1 λ 2 + S 2 λ 1 + S 3 is formed , and as a result of the second, the coefficient T 0 is formed , while the condition N = 0 will be satisfied and the transition to operator 13 will be carried out.

Оператор 13 по сигналу Q3 через третий блок ключей 14 записывает первый коэффициент T0 в массив M 3, коэффициенты модифицированного синдрома по адресу содержимого РОН 2 = A3 + 1, то есть в первую ячейку массива M 3, при этом адрес в РОН 2 увеличится на единицу и станет равным РОН 2 = A3 + 2.The operator 13, on signal Q3, through the third key block 14, writes the first coefficient T 0 to the array M 3, the coefficients of the modified syndrome at the address of the contents of RON 2 = A 3 + 1, that is, in the first cell of the array M 3, while the address in RON 2 will increase per unit and becomes equal to RON 2 = A 3 + 2.

Оператор 14 уменьшает на единицу значение K (в нашем примере K станет равным 11). The operator 14 decreases the value of K by one (in our example, K will become equal to 11).

Оператор 15 проверяет равенство нулю значения K. Если K = 0, то алгоритм закончен и в массиве M 3 будут последовательно записаны 12 коэффициентов многочлена T (x), начиная с T0 и кончая T11. Если K не равно 0, то осуществляется переход к оператору 2 и происходит вычисление очередного коэффициента. В результате осуществления описанного алгоритма в массиве M 3 будут записаны R = S коэффициентов модифицированного синдромного многочлена T(x) по адресам (A3 + 1) - (A3 + R - S).Operator 15 checks that the value K is zero. If K = 0, then the algorithm is completed and 12 coefficients of the polynomial T (x) are sequentially written in the array M 3, starting from T 0 and ending with T 11 . If K is not equal to 0, then the transition to operator 2 is carried out and the next coefficient is calculated. As a result of the implementation of the described algorithm, in the array M 3 R = S coefficients of the modified syndromic polynomial T (x) are written at the addresses (A 3 + 1) - (A 3 + R - S).

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

Figure 00000024

Коэффициенты этого многочлена определяются с использованием произведения T(x)•σ(x) аналогично тому, как это было сделано при вычислении коэффициентов модифицированного синдромного многочлена.The fourth procedure defines a polynomial of error locators, which has the form
Figure 00000024

The coefficients of this polynomial are determined using the product T (x) • σ (x) in the same way as when calculating the coefficients of the modified syndromic polynomial.

Система уравнений для определения коэффициентов σt имеет вид

Figure 00000025
,
(аналогично [7], с. 171, формула Б 14).The system of equations for determining the coefficients σ t has the form
Figure 00000025
,
(similar to [7], p. 171, formula B 14).

Эта система уравнений может решаться, например, методом Гаусса [13] путем сведения матрицы коэффициентов к треугольной форме. This system of equations can be solved, for example, by the Gauss method [13] by reducing the matrix of coefficients to a triangular shape.

Обычно, исходя из результатов моделирования помехоустойчивости каскадных кодов, ограничивают число исправляемых ошибок. Это значительно упрощает процедуру решения приведенной системы управлений и нахождения в последующем локаторов ошибок. Usually, based on the results of modeling noise immunity of cascade codes, the number of correctable errors is limited. This greatly simplifies the procedure for solving the reduced control system and finding error locators in the future.

На фиг. 19 в качестве примера приведен алгоритм определения коэффициентов многочлена σ(x) для случая исправления двух ошибок, то есть t=2. In FIG. 19, an example is given of an algorithm for determining the coefficients of the polynomial σ (x) for the case of correction of two errors, i.e., t = 2.

Матрица коэффициентов будет иметь вид

Figure 00000026
.The matrix of coefficients will have the form
Figure 00000026
.

В виду того, что назначение большинства операторов очевидно из их начертания, приводим только определение некоторых коэффициентов. In view of the fact that the purpose of most operators is obvious from their outline, we give only the definition of some coefficients.

В операторе A2

Figure 00000027

В операторе A4
Figure 00000028

В операторе A6
Figure 00000029

В операторе A8
Figure 00000030

В операторе A9 определяются σ1 и σ2 .In statement A2
Figure 00000027

In operator A4
Figure 00000028

In statement A6
Figure 00000029

In statement A8
Figure 00000030

The operator A9 defines σ 1 and σ 2 .

В операторе B2 осуществляется перестановка строк. In B2, row permutation is performed.

В операторе B33

Figure 00000031

В операторе B6
Figure 00000032

Анализ выражений (24 - 30( показывает, что в них участвуют только три операции: деления, сложения по модулю два и умножения.In statement B33
Figure 00000031

In statement B6
Figure 00000032

Analysis of expressions (24 - 30 (shows that only three operations are involved in them: division, addition modulo two, and multiplication.

В предлагаемом устройстве операция деления заменена операцией умножения на обратный элемент. Для этого в ПЗУ блока памяти записана таблица обратных элементов поля. Для того, чтобы сосчитать элемент, обратный делителю, необходимо задать адрес, равный самому делителю. In the proposed device, the division operation is replaced by the operation of multiplication by the inverse element. For this, a table of inverse field elements is written in the ROM of the memory block. In order to count the element inverse to the divisor, you must set the address equal to the divisor itself.

Таким образом, все операции по нахождению коэффициентов уравнения (21) сводятся к операции умножения и сложения по модулю два. Ввиду того, что выполнение этих операций с помощью предлагаемого устройства фиг. 1 описано в предыдущих процедурах, детальное описание алгоритма определения коэффициентов не проводится. Thus, all operations to find the coefficients of equation (21) are reduced to the operation of multiplication and addition modulo two. Due to the fact that the implementation of these operations using the proposed device of FIG. 1 is described in previous procedures, a detailed description of the coefficient determination algorithm is not carried out.

В пятой процедуре находятся локаторы ошибок хj путем решения уравнения (21). В общем случае это уравнение может решаться путем последовательной подстановки в это уравнение всех локаторов кода и выбора в качестве решения тех локаторов, при которых уравнение обращается в ноль (процедура Ченя, см. [7], с. 176).In the fifth procedure, error locators x j are found by solving equation (21). In the general case, this equation can be solved by sequentially substituting all the code locators into this equation and choosing as a solution those locators for which the equation vanishes (Chen's procedure, see [7], p. 176).

Для t≤4 можно воспользоваться алгоритмом решения, изложенным в [12, с. 58 - 65]. Например, для t=3 уравнение (21) приводится к виду

Figure 00000033

которое решается табличным путем: путем считывания из ПЗУ по адресу, соответствующему свободному члену уравнения корней Z1 и Z2, причем Z3=Z1+Z2, и последующего определения локаторов ошибок из выражения
Figure 00000034
.For t≤4, you can use the solution algorithm described in [12, p. 58 - 65]. For example, for t = 3, equation (21) is reduced to
Figure 00000033

which is solved in a tabular way: by reading from the ROM at the address corresponding to the free term of the root equation Z 1 and Z 2 , with Z 3 = Z 1 + Z 2 , and then determining the error locators from the expression
Figure 00000034
.

Предлагаемое устройство реализует операцию возведения в степень : нахождения величины σ 2 1 в (31) путем умножения элемента самого на себя, операцию деления в (30) путем умножения на обратный элемент, как в предыдущей процедуре. Операция извлечения квадратного корня в предлагаемом устройстве реализуется табличным путем, для чего в ПЗУ блока памяти записана таблица квадратных корней элементов поля GF(28). Значение (σ 2 1 + σ2)0,5 в (31) находится путем считывания из этой таблицы по адресу (σ 2 1 + σ2) .The proposed device implements the operation of raising to a power: finding the value of σ 2 1 in (31) by multiplying the element by itself, the division operation in (30) by multiplying by the inverse element, as in the previous procedure. The operation of extracting the square root in the proposed device is implemented in a tabular manner, for which purpose a table of square roots of the elements of the field GF (2 8 ) is written in the ROM of the memory unit. Value (σ 2 1 + σ 2 ) 0.5 in (31) is found by reading from this table at (σ 2 1 + σ 2 ).

Остальные операции в (31) и (30) являются операциями сложения по модулю два. Ввиду известности выполнения операций из описания работы устройства детальное описание алгоритма вычисления по выражению (31) не приводится. The remaining operations in (31) and (30) are modulo two addition operations. Due to the fame of performing operations from the description of the operation of the device, a detailed description of the calculation algorithm by expression (31) is not given.

После определения локаторов (номеров позиций) ошибок стирания ошибки объединяются в одно понятие: искажения. After determining the locators (position numbers) of errors, erasing errors are combined into one concept: distortion.

В шестой процедуре вычисляется многочлен локаторов искажений, который имеет вид

Figure 00000035

Алгоритм определения коэффициентов многочлена искажений совпадает с алгоритмом определения коэффициентов многочлена стираний и является его продолжением.In the sixth procedure, the polynomial of distortion locators is calculated, which has the form
Figure 00000035

The algorithm for determining the coefficients of the distortion polynomial coincides with the algorithm for determining the coefficients of the erasure polynomial and is a continuation of it.

Пусть, например, S=3 и t=2. Тогда в массиве M 2 (фиг. 17) будут записаны шесть коэффициентов, три из которых являются коэффициентами λ1, λ2, λ3 уравнения (7) и три λ (2) 1 , λ (3) 1 , λ (3) 2 - промежуточными коэффициентами.Let, for example, S = 3 and t = 2. Then, in the array M 2 (Fig. 17), six coefficients will be written, three of which are the coefficients λ 1 , λ 2 , λ 3 of equation (7) and three λ (2) 1 , λ (3) 1 , λ (3) 2 - intermediate coefficients.

Выражения для нахождения следующих коэффициентов λ4 и λ5 уравнения (32) будут иметь вид

Figure 00000036

Выражения для промежуточных коэффициентов будут иметь вид
Figure 00000037

В результате выполнения алгоритма эти коэффициенты будут записаны в массив M 2 по адресам (A2+7) - (A2+15).The expressions for finding the following coefficients λ 4 and λ 5 of equation (32) will have the form
Figure 00000036

The expressions for the intermediate coefficients will have the form
Figure 00000037

As a result of the algorithm, these coefficients will be written to the array M 2 at the addresses (A 2 +7) - (A 2 +15).

Седьмая процедура является заключительной в обобщенном алгоритме декодирования внешнего кода PC. В этой процедуре, используя коэффициенты многочленов синдрома и локаторов искажений, определяются вектора искажений и осуществляется исправление символов кодовой комбинации. The seventh procedure is the final in a generalized decoding algorithm for external PC code. In this procedure, using the coefficients of the syndrome polynomials and distortion locators, distortion vectors are determined and the symbols of the code combination are corrected.

Для определения (S+t)-го искажения используется формула, соответствующая алгоритму Форни (см. [6], с. 219, рис. 77, формула для определения Yl, при этом следует учесть, что использование обратных элементов X -1 l эквивалентно использованию прямых элементов), которая в обозначениях, принятых в материалах заявки, имеет вид

Figure 00000038

где
λs+t-1- λ1 - коэффициенты многочлена искажений λ(x) (формула 7), определенные в шестой процедуре;
So - Ss+t-1 - первые (S+t) коэффициенты синдромного многочлена S(x) (формула 6), определенные в первой процедуре обобщенного алгоритма;
λ′(xs+t) - значение производной многочлена λ(x), полученное при подстановке в λ′(x) значения x = xs+t.To determine the (S + t) -th distortion, we use the formula corresponding to Forney's algorithm (see [6], p. 219, Fig. 77, the formula for determining Y l , it should be noted that the use of inverse elements X -1 l equivalent to the use of direct elements), which in the notation adopted in the application materials has the form
Figure 00000038

Where
λ s + t-1 - λ 1 - coefficients of the distortion polynomial λ (x) (formula 7) defined in the sixth procedure;
S o - S s + t-1 - the first (S + t) coefficients of the syndrome polynomial S (x) (formula 6) defined in the first procedure of the generalized algorithm;
λ ′ (x s + t ) is the value of the derivative of the polynomial λ (x) obtained by substituting the value x = x s + t in λ ′ (x).

Производная многочлена λ(x) вычисляется по формулам
для четного S
λ′(x) = [(λ1•x2+ λ3)x2+ λ4]x2+...+λs+t-1; (36)
для нечетного S
λ′(x) = [(x2+ λ2)x2+ λ4]x2+...+λs+t-1. (37)
Вычисление производной целесообразно осуществлять на этапе вычисления коэффициентов многочлена локаторов стираний.
The derivative of the polynomial λ (x) is calculated by the formulas
for even s
λ ′ (x) = [(λ 1 • x 2 + λ 3 ) x 2 + λ 4 ] x 2 + ... + λ s + t-1 ; (36)
for odd s
λ ′ (x) = [(x 2 + λ 2 ) x 2 + λ 4 ] x 2 + ... + λ s + t-1 . (37)
It is advisable to calculate the derivative at the stage of calculating the coefficients of the polynomial of erasure locators.

Ввиду того, что вычисления λ′(x) происходит по формуле Горнера [4], детальное описание алгоритма не приводится. Due to the fact that the calculation of λ ′ (x) follows the Horner formula [4], a detailed description of the algorithm is not given.

Подставляя в формулу (35) известные значения коэффициентов

Figure 00000039
получим значение последнего искажения ES+t , соответствующего локатору xs+t.Substituting into the formula (35) the known values of the coefficients
Figure 00000039
we get the value of the last distortion E S + t corresponding to the locator x s + t .

Исправление искаженного символа осуществляется путем его суммирования с вектором ошибки. Correction of a distorted symbol is carried out by summing it with the error vector.

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

Figure 00000040
.The code polynomial corrected in this way corresponds to a new syndromic polynomial, the coefficient of which is determined as follows:
Figure 00000040
.

При i = 1 определяется синдромный многочлен, соответствующий откорректированному последнему искажению, после чего по выражению (35) находится предпоследний вектор искажения. Повторяя этапы вычисления векторов Es+t-(i-1) и соответствующих им синдромных многочленов, на последних этапах получаем

Figure 00000041

Занчения векторов ошибок записываются в один из РОНов микропроцессора. Затем по адресу искаженного символа, определяемому его локатором, осуществляются исправление искаженного символа путем суммирования его с вектором ошибки и запись результата сложения на место искаженного символа.For i = 1, the syndromic polynomial corresponding to the corrected last distortion is determined, after which the penultimate distortion vector is found from expression (35). Repeating the steps of computing the vectors E s + t- (i-1) and their corresponding syndromic polynomials, in the last steps we obtain
Figure 00000041

The completion of the error vectors is recorded in one of the RONs of the microprocessor. Then, at the address of the distorted symbol determined by its locator, the distorted symbol is corrected by summing it with the error vector and writing the result of addition to the place of the distorted symbol.

Число команд, необходимое для декодирования блока каскадного кода, является переменной величиной и зависит от числа ошибок и стираний в блоке. Для наиболее тяжелого случая, когда исправляется 16 стираний, для декодирования внешнего (241, 225) кода потребуется 1,37 команды на бит, для декодирования внутреннего (24, 16) когда потребуется 0,86 команды на бит. Полное декодирование блока каскадного кода осуществляется за ≃ 13000 команд, что составляет 2,23 команды на бит. The number of instructions required to decode a cascade code block is a variable and depends on the number of errors and erasures in the block. For the most difficult case, when 16 erasures are corrected, 1.37 instructions per bit are required to decode the external (241, 225) code, and 0.86 instructions per bit are required to decode the internal (24, 16) code. Complete decoding of the cascade code block is carried out for ≃ 13000 instructions, which is 2.23 instructions per bit.

Таким образом, предлагаемое техническое решение позволяет осуществить операции кодирования и декодирования информации как обычными двоичными, так и недвоичными кодами. Особенно эффективным является применение каскадного кодирования, которое при равной скорости передачи информации позволило получить выигрыш в помехоустойчивости, равный 2 дБ (каскадный код: РС и короткий блоковой код), по сравнению с двоичным блоковым кодом (жесткое решение) [14, с. 320, таблица 8.1], и даже еще больший выигрыш при использовании M-ичной модуляции [14, с. 322, таблица 8.2]. Thus, the proposed technical solution allows the operation of encoding and decoding information as conventional binary and non-binary codes. Particularly effective is the use of cascade coding, which, with the same information transmission speed, allows to obtain a gain in noise immunity equal to 2 dB (cascade code: PC and short block code), compared to a binary block code (hard decision) [14, p. 320, table 8.1], and even greater gains when using M-ary modulation [14, p. 322, table 8.2].

Существенным также является то, что в предлагаемом техническом решении некоторые параметры используемых кодов могут быть оперативно изменены путем замены исходных данных в программах кодирования и декодирования, что существенно расширяет функциональные возможности устройства. It is also significant that in the proposed technical solution, some parameters of the codes used can be quickly changed by replacing the original data in encoding and decoding programs, which significantly expands the functionality of the device.

Оптимальное сочетание аппаратных и программных средств в устройстве позволило обеспечить высокую скорость обработки информации, составляющую в режиме кодирования около 1,66 и в режиме декодирования 2,23 команды на бит (в сумме 3,89 команды на бит), что свидетельствует о значительном выигрыше предлагаемых процедур кодирования и декодирования по сравнению с результатами, достигнутыми в [15], где скорость кодирования-декодирования только кода РС составляет 800 команд/бит. The optimal combination of hardware and software in the device made it possible to ensure a high information processing speed, which is about 1.66 in the encoding mode and 2.23 commands per bit in decoding mode (in the amount of 3.89 commands per bit), which indicates a significant gain of the proposed encoding and decoding procedures compared with the results achieved in [15], where the encoding-decoding speed of the PC code alone is 800 commands / bit.

Применение более высокоскоростных процессоров, например Intel 80386, позволит уменьшить время кодирования и декодирования не менее чем в 50 раз. The use of higher-speed processors, such as Intel 80386, will reduce the encoding and decoding time by at least 50 times.

Источники информации. Sources of information.

1. Авт. св. N 1275782, кл. H 03 M 13/02, 1986. 1. Auth. St. N 1275782, cl. H 03 M 13/02, 1986.

2. Авт. св. N 1309317, кл. H 03 M 13/02, 1987. 2. Auth. St. N 1309317, cl. H 03 M 13/02, 1987.

3. Авт. св. N 1481902, кл. H 03 M 13/00, 1988. 3. Auth. St. N 1481902, class H 03 M 13/00, 1988.

4. Авт. св. N 1635193, кл. H 06 M 15/31. 4. Auth. St. N 1635193, CL H 06 M 15/31.

5. Авт. св. N 1418913, кл. H 03 M 13/00, 1988 (прототип). 5. Auth. St. N 1418913, class H 03 M 13/00, 1988 (prototype).

6. Блейхут Р. Теория и практика кодов, контролирующих ошибки. М.: Мир, 1986. 6. Bleikhut R. Theory and practice of error control codes. M .: Mir, 1986.

7.Форни Д. Каскадные коды. М.: Мир, 1970. 7. Forney D. Cascading codes. M .: Mir, 1970.

8. Хвощ С.Т., Варлинский Н.Н., Попов Е.А. Микропроцессоры и микроЭВМ в системах автоматического управления. Справочник. Л.: Машиностроение, 1987. 8. Horsetail S.T., Varlinsky N.N., Popov E.A. Microprocessors and microcomputers in automatic control systems. Directory. L .: Engineering, 1987.

9. Цифровые и аналоговые интегральные микросхемы. Справочник. М.: Радио и связь, 1990. 9. Digital and analog integrated circuits. Directory. M .: Radio and communications, 1990.

10. Истомин Г. С., Парижская И.С. Об использовании микроЭВМ для реализации арифметических операций в полях Галуа. Техника средств связи, серия ТПС, вып. 2, 1978. 10. Istomin G.S., Parisian I.S. On the use of microcomputers for the implementation of arithmetic operations in Galois fields. Communication Technology, TPS Series, vol. 2, 1978.

11. В.О.Шварцман, Г.А. Емельянов. Теория передачи дискретной информации. М.: Связь, 1979, с. 318. 11. V.O. Shvartsman, G.A. Emelyanov. Theory of discrete information transmission. M .: Communication, 1979, p. 318.

12. Э. М. Габидулин, В.Б.Афанасьев. Кодирование в радиоэлектронике. М: Радио и связь, 1986. 12. E. M. Gabidulin, V. B. Afanasyev. Coding in electronics. M: Radio and communications, 1986.

13. Сигорский В.П. Математический аппарат инженера. Киев: Техника, 1977, с. 230. 13. Sigorsky V.P. Mathematical apparatus of an engineer. Kiev: Technique, 1977, p. 230.

14. Дж. Кларк, мл, Дж. Кейм. Кодирование с исправлением ошибок в системах цифровой связи. М.: Радио и связь, 1986. 14. J. Clark, Jr., J. Keym. Error correction coding in digital communication systems. M .: Radio and communications, 1986.

15. Микропроцессорные кодеры и декодеры. М.: Радио и связь, 1991, с. 86. 15. Microprocessor encoders and decoders. M .: Radio and communication, 1991, p. 86.

Claims (1)

Устройство кодирования-декодирования информации, содержащее блок ввода-вывода и блок памяти, подключенные к общей шине, а также блок сумматоров по модулю два, при этом последовательный информационный вход-выход и параллельные информационные входы-выходы блока ввода-вывода являются соответствующими информационными входами-выходами устройства, отличающееся тем, что в него введены три буферных регистра, умножитель, два узла задержки, коммутатор, три блока ключей и три элемента ИЛИ, при этом информационные входы первого буферного регистра, выходы первого, второго и третьего блока ключей и первые входы коммутатора соединены с общей шиной, выходы первого буферного регистра через умножитель подключены к входам первого блока ключей и к первым входам блока сумматоров по модулю два, выходы коммутатора через второй буферный регистр соединены с вторыми входами умножителя и с входами второго блока ключей, а через третий буферный регистр - с входами третьего блока ключей и вторыми входами блока сумматоров по модулю два, выходы которого соединены с вторыми входами коммутатора, первый, второй и третий управляющие выходы блока ввода-вывода подключены соответственно к управляющим входам первого, второго и третьего блоков ключей, четвертый - к входу записи первого буферного регистра, пятый - через первый элемент ИЛИ к входу записи второго буферного регистра, через третий элемент ИЛИ - к управляющему входу коммутатора, а через последовательно соединенные второй узел задержки и второй элемент ИЛИ - к входу записи третьего буферного регистра, шестой - к вторым входам второго и третьего элементов ИЛИ и через первый узел задержки - к второму входу первого элемента ИЛИ, а седьмой выход блока ввода-вывода подключен к вторым входам первого и второго узлов задержки, при этом управляющие входы-выходы, тактовый и пусковой входы блока ввода-выводы являются соответственно управляющими входами-выходами, тактовым и пусковым входами устройства. An information encoding-decoding device comprising an input-output unit and a memory unit connected to a common bus, as well as an adder unit modulo two, while the serial information input-output and parallel information inputs-outputs of the input-output unit are the corresponding information inputs - device outputs, characterized in that three buffer registers, a multiplier, two delay nodes, a switch, three key blocks and three OR elements are introduced into it, while the information inputs of the first buffer register , the outputs of the first, second and third block of keys and the first inputs of the switch are connected to a common bus, the outputs of the first buffer register through a multiplier are connected to the inputs of the first block of keys and to the first inputs of the block of adders modulo two, the outputs of the switch through the second buffer register are connected to the second inputs multiplier and with the inputs of the second block of keys, and through the third buffer register with the inputs of the third block of keys and the second inputs of the block of adders modulo two, the outputs of which are connected to the second inputs of the switch, the first the second, third and third control outputs of the input-output block are connected respectively to the control inputs of the first, second and third key blocks, the fourth to the recording input of the first buffer register, the fifth to the first input OR to the recording input of the second buffer register, through the third OR element - to the control input of the switch, and through the second delay node and the second OR element connected in series - to the recording input of the third buffer register, the sixth - to the second inputs of the second and third OR elements and through the first node ki - to the second input of the first OR element, and the seventh output of the input-output block is connected to the second inputs of the first and second delay nodes, while the control inputs and outputs, clock and start inputs of the input-output block are respectively control inputs and outputs, clock and trigger inputs of the device.
RU94039139A 1994-10-13 1994-10-13 Data coding-decoding device RU2115231C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU94039139A RU2115231C1 (en) 1994-10-13 1994-10-13 Data coding-decoding device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU94039139A RU2115231C1 (en) 1994-10-13 1994-10-13 Data coding-decoding device

Publications (2)

Publication Number Publication Date
RU94039139A RU94039139A (en) 1997-04-20
RU2115231C1 true RU2115231C1 (en) 1998-07-10

Family

ID=20161840

Family Applications (1)

Application Number Title Priority Date Filing Date
RU94039139A RU2115231C1 (en) 1994-10-13 1994-10-13 Data coding-decoding device

Country Status (1)

Country Link
RU (1) RU2115231C1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2504901C2 (en) * 2012-04-11 2014-01-20 Открытое акционерное общество "Российская корпорация ракетно-космического приборостроения и информационных систем" (ОАО "Российские космические системы") Apparatus for iterative decoding of block turbo codes and siso decoder for realising said method
RU2621971C1 (en) * 2016-03-14 2017-06-08 Акционерное общество "Калужский научно-исследовательский институт телемеханических устройств" Method of multi-block message communication in multi-unit data communication complexes

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SU, авторское с видетельство, 1309317, H 03 M 13/00, 1987. SU, авторское свидетельств о, 14 18913, H 03 M 13/00, 1988. *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2504901C2 (en) * 2012-04-11 2014-01-20 Открытое акционерное общество "Российская корпорация ракетно-космического приборостроения и информационных систем" (ОАО "Российские космические системы") Apparatus for iterative decoding of block turbo codes and siso decoder for realising said method
RU2621971C1 (en) * 2016-03-14 2017-06-08 Акционерное общество "Калужский научно-исследовательский институт телемеханических устройств" Method of multi-block message communication in multi-unit data communication complexes

Also Published As

Publication number Publication date
RU94039139A (en) 1997-04-20

Similar Documents

Publication Publication Date Title
US4649541A (en) Reed-Solomon decoder
US6385751B1 (en) Programmable, reconfigurable DSP implementation of a Reed-Solomon encoder/decoder
US5440570A (en) Real-time binary BCH decoder
US4873688A (en) High-speed real-time Reed-Solomon decoder
US4504948A (en) Syndrome processing unit for multibyte error correcting systems
EP0092960A2 (en) Apparatus for checking and correcting digital data
Wilhelm A new scalable VLSI architecture for Reed-Solomon decoders
EP0061345A2 (en) Processing circuits for operating on digital data words which are elements of a Galois field
Kwon et al. An area-efficient VLSI architecture of a Reed-Solomon decoder/encoder for digital VCRs
US7089276B2 (en) Modular Galois-field subfield-power integrated inverter-multiplier circuit for Galois-field division over GF(256)
US5983389A (en) Error correction decoding apparatus
JPH0728227B2 (en) Decoding device for BCH code
US5471485A (en) Reed-solomon decoder using discrete time delay in power sum computation
KR100258951B1 (en) Rs decoder having serial expansion architecture and method therefor
US6647529B2 (en) Chien&#39;s searching apparatus
JP2000004169A (en) Crc operating method and crc arithmetic circuit
EP0723342B1 (en) Error correction apparatus
RU2115231C1 (en) Data coding-decoding device
US5964826A (en) Division circuits based on power-sum circuit for finite field GF(2m)
US20030041300A1 (en) Universal device for processing Reed-Solomon forward error-correction encoded messages
EP0341851A2 (en) Method and apparatus for interleaved encoding
US5200961A (en) Error detection and/or correction device
US6704901B1 (en) Runtime programmable Reed-Solomon decoder
US6581084B1 (en) Circuit for multiplication in a Galois field
RU2037271C1 (en) Error-correcting device

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20071014