RU2605672C1 - Reconfigurable reed-solomon coder - Google Patents
Reconfigurable reed-solomon coder Download PDFInfo
- Publication number
- RU2605672C1 RU2605672C1 RU2015129662/08A RU2015129662A RU2605672C1 RU 2605672 C1 RU2605672 C1 RU 2605672C1 RU 2015129662/08 A RU2015129662/08 A RU 2015129662/08A RU 2015129662 A RU2015129662 A RU 2015129662A RU 2605672 C1 RU2605672 C1 RU 2605672C1
- Authority
- RU
- Russia
- Prior art keywords
- encoder
- output
- filters
- input
- circuit
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/1515—Reed-Solomon codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/158—Finite field arithmetic processing
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6508—Flexibility, adaptability, parametrability and configurability of the implementation
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6508—Flexibility, adaptability, parametrability and configurability of the implementation
- H03M13/6516—Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C19/00—Digital stores in which the information is moved stepwise, e.g. shift registers
- G11C19/28—Digital stores in which the information is moved stepwise, e.g. shift registers using semiconductor elements
- G11C19/287—Organisation of a multiplicity of shift registers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C27/00—Electric analogue stores, e.g. for storing instantaneous values
- G11C27/04—Shift registers
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03H—IMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
- H03H17/00—Networks using digital techniques
- H03H2017/0072—Theoretical filter design
- H03H2017/0081—Theoretical filter design of FIR filters
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03H—IMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
- H03H17/00—Networks using digital techniques
- H03H2017/0072—Theoretical filter design
- H03H2017/009—Theoretical filter design of IIR filters
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
Description
Изобретение относится к области цифровой обработки информации (сигналов), а именно к реконфигурируемым кодерам Рида-Соломона, и может применяться для помехоустойчивого кодирования информации с переменной корректирующей способностью в различных системах передачи/приема, а также хранения данных.The invention relates to the field of digital processing of information (signals), namely to reconfigurable Reed-Solomon encoders, and can be used for error-correcting coding of information with variable correcting ability in various transmission / reception systems, as well as data storage.
Коды PC (Рида-Соломона) относятся к блочному кодированию, и их широко используют в системах хранения и передачи информации. Данные коды позволяют исправлять множественные ошибки, а также пакеты ошибок в больших блоках данных.PC (Reed-Solomon) codes refer to block coding, and they are widely used in information storage and transmission systems. These codes allow you to correct multiple errors, as well as error packets in large data blocks.
В настоящее время данные коды массово используют в таких системах хранения информации, как жесткие диски, твердотельные накопители, флэш-память и др., а также в стандартах цифровой передачи данных, например цифрового телевидения DVB. Таким образом, ввиду различного применения в одном устройстве необходимо использование кодов с разной корректирующей способностью соответственно. Например, для того чтобы в блоке данных используемый код позволял исправлять до 16 ошибок, необходимо применение определенного порождающего полинома определенной длины. Однако, для того чтобы в этом же блоке данных код позволял исправлять например 12 ошибок, необходимо применение другого порождающего полинома с меньшей длиной. То есть для использования одного и того же устройства с разными накопителями необходимо применение разных порождающих полиномов и, как следствие, разных кодеров, это приводит к увеличению аппаратных ресурсов. Однако использование кодера с регулируемой корректирующей способностью (переменный порождающий полином) может также удовлетворить различные требования к корректирующей способности.Currently, these codes are widely used in such storage systems as hard drives, solid state drives, flash memory, etc., as well as in standards for digital data transmission, for example, digital television DVB. Thus, in view of the different applications in one device, it is necessary to use codes with different corrective powers, respectively. For example, in order for the code used in the data block to correct up to 16 errors, it is necessary to use a certain generating polynomial of a certain length. However, in order for the code to correct, for example, 12 errors in the same data block, it is necessary to use another generating polynomial with a shorter length. That is, to use the same device with different drives, it is necessary to use different generating polynomials and, as a result, different encoders, this leads to an increase in hardware resources. However, the use of an encoder with adjustable corrective power (variable generating polynomial) can also satisfy various requirements for corrective power.
Известен кодер Рида-Соломона, описанный в патенте US 6826723 В2, в котором в общем виде кодирование осуществляют путем деления информационных бит на порождающий полином, при этом используют регистр с линейной обратной связью (РЛОС). В этом кодере проблему настраиваемости кодера под различную корректирующую способность решают путем мультиплексирования и суммирования отводов обратной связи в общей цепи РЛОС. В этом кодере возможно использование трех различных полиномов.The known Reed-Solomon encoder described in US Pat. No. 6,826,723 B2, in which encoding is generally performed by dividing information bits by a generating polynomial, uses a linear feedback register (RLOS). In this encoder, the problem of the encoder being tuned to various corrective capabilities is solved by multiplexing and summing the feedback taps in the common RLO circuit. Three different polynomials can be used in this encoder.
Недостатком этого кодера является то, что его невозможно использовать в тех случаях, когда требуется более трех конфигураций порождающего полинома. К тому же в этом кодере используют многовходовые сумматоры, которые обладают низким быстродействием.The disadvantage of this encoder is that it cannot be used in cases where more than three configurations of the generating polynomial are required. In addition, this encoder uses multi-input adders, which have low speed.
Известен описанный в патенте ЕР 0608637 (А1) способ кодирования, который позволяет изменять корректирующую способность кода Рида-Соломона от максимально возможного количества исправляемых ошибок до 1.Known is the coding method described in patent EP 0608637 (A1), which allows you to change the correcting ability of the Reed-Solomon code from the maximum possible number of correctable errors to 1.
Недостаток данного способа заключается в том, что ввиду увеличенного критического пути из-за большого количества последовательно соединенных сумматоров и элементов «И» (равного удвоенному количеству исправляемых ошибок) он обладает низким быстродействием.The disadvantage of this method is that due to the increased critical path due to the large number of series-connected adders and "And" elements (equal to twice the number of correctable errors), it has low speed.
В патенте US 8151172 (В2) описан способ кодирования, примененный в описанном выше способе кодирования, выполненном согласно патенту ЕР 0608637 (А1), но с заменой длинной цепи сумматоров на каскадное суммирование с определенными сигналами разрешения.US 8151172 (B2) describes a coding method used in the coding method described above according to
Данное решение позволяет уменьшить критический путь и увеличить быстродействие по сравнению со способом, выполненном согласно патенту ЕР 0608637 (А1), однако существенным увеличением быстродействия не обладает, к тому же схема этого способа усложнена цепью обратной связи, охватывающей всю схему целиком. Также данное решение не является достаточно гибким со стороны корректирующей способности ввиду объединения сигналов разрешения определенных умножителей в кластеры, таким образом, лишая схему включать необходимое, а не кратное четырем, количество умножителей.This solution allows to reduce the critical path and increase speed in comparison with the method performed according to the patent EP 0608637 (A1), however, it does not have a significant increase in speed, moreover, the circuit of this method is complicated by a feedback circuit covering the entire circuit. Also, this solution is not flexible enough on the part of the corrective ability due to the combination of the resolution signals of certain multipliers in clusters, thus depriving the circuit to include the necessary, and not a multiple of four, number of multipliers.
Наиболее близким к заявленному изобретению является кодер БЧХ-кодов, описанный в патенте US 8464141 В2, в котором проблему настраиваемости кодера под различную корректирующую способность решают путем разбиения порождающего полинома на отдельные множители (по определению, порождающий полином состоит из произведения примитивных неприводимых полиномов). Кодирование осуществляют путем деления информационных бит на минимальные полиномы, при этом используют регистр с линейной обратной связью (РЛОС). В зависимости от применяемой корректирующей способности используют цепи умножителей и делителей на примитивные полиномы разной длины. Этот кодер БЧХ-кодов выбран в качестве прототипа заявленного изобретения.Closest to the claimed invention is the encoder BCH codes described in patent US 8464141 B2, in which the problem of adjusting the encoder for different corrective ability is solved by dividing the generating polynomial into separate factors (by definition, the generating polynomial consists of a product of primitive irreducible polynomials). Encoding is carried out by dividing the information bits into minimal polynomials, while using a linear feedback register (RLOS). Depending on the applied corrective ability, chains of multipliers and dividers into primitive polynomials of different lengths are used. This encoder BCH codes selected as a prototype of the claimed invention.
Недостатком кодера-прототипа является то, что он удовлетворяет требованию реконфигурируемости под различную корректирующую способность, однако может применяться только для двоичных кодов БЧХ, а не кодов Рида-Соломона, к тому же длинная цепь сумматоров этого кодера приводит к увеличению критического пути, что снижает быстродействие кодера.The disadvantage of the prototype encoder is that it satisfies the requirement of reconfigurability for various corrective capabilities, however, it can be used only for binary BCH codes, and not Reed-Solomon codes, in addition, the long adder chain of this encoder increases the critical path, which reduces performance encoder.
Задачей заявленного изобретения является создание реконфигурируемого кодера Рида-Соломона для помехоустойчивого кодирования данных с целью последующей их передачи или хранения, который позволяет кодировать под различные характеристики кодов Рида-Соломона (под различное количество исправляемых ошибок, длину данных и др.), позволяет настраивать корректирующую способность в зависимости от предназначения, а также обладает повышенной производительностью, быстродействием и невысокой аппаратной сложностью вследствие простоты конструкции и конвейерной структуры.The objective of the claimed invention is the creation of a reconfigurable Reed-Solomon encoder for error-correcting encoding of data for subsequent transmission or storage, which allows you to encode for different characteristics of the Reed-Solomon codes (for a different number of correctable errors, data length, etc.), allows you to configure the corrective ability depending on the purpose, and also has increased performance, speed and low hardware complexity due to the simplicity of the design AI and conveyor structure.
Поставленная задача решена путем создания реконфигурируемого кодера Рида-Соломона, содержащего массив элементов «И», цепь последовательно соединенных БИХ-фильтров первого порядка и цепь последовательно соединенных КИХ-фильтров первого порядка, причем по меньшей мере два БИХ-фильтра и по меньшей мере два КИХ-фильтра содержат управляющие элементы «И», при этом вход цепи БИХ-фильтров является входом кодера, а выход цепи БИХ-фильтров соединен с первым входом массива элементов «И», выход которого соединен со входом цепи КИХ-фильтров, выход которой является выходом кодера, а второй вход массива элементов «И» выполнен с возможностью получения сигналов разрешения или запрещения выдачи контрольных бит закодированных данных, при этом в течение первых k тактов работы кодера (k - количество информационных символов), при поданном на массив элементов «И» сигнале разрешения выдачи информационных данных, на выход кодера поступают данные с его входа, а в течение следующих 2t тактов работы кодера (2t - количество проверочных символов), при поданном на массив элементов «И» сигнале запрещения выдачи информационных данных, на выход кодера поступают сформированные кодером контрольные данные, причем вторые входы управляющих элементов «И» выполнены с возможностью получения сигналов разрешения, с помощью которых отключают фильтры с целью изменения корректирующей способности.The problem is solved by creating a reconfigurable Reed-Solomon encoder containing an array of "And" elements, a chain of series-connected IIR filters of the first order and a chain of series-connected FIR filters of the first order, with at least two IIR filters and at least two FIR filters contain “AND” control elements, while the input of the IIR filter circuit is the input of the encoder, and the output of the IIR filter circuit is connected to the first input of the array of “I” elements, the output of which is connected to the input of the FIR filter circuit, the output otor is the encoder output, and the second input of the "And" array of elements is configured to receive enable or disable the output of control bits of the encoded data, while during the first k clock cycles of the encoder (k is the number of information characters) when fed to the array of " And ”the permission signal for the issuance of information data, the encoder output receives data from its input, and during the next 2t clock cycles of the encoder (2t is the number of test characters), when the inhibit signal is sent to the array of“ And ”elements issuing information data encoder receives the output control data generated by the encoder, and the second inputs of the control elements "I" are configured to receive enable signals, using filters which cut off to change the error-correcting capability.
В предпочтительном варианте осуществления кодер конвейеризован дополнительными элементами задержки (регистрами), которые расположены в местах соединений соседних БИХ-фильтров или КИХ-фильтров цепи.In a preferred embodiment, the encoder is pipelined with additional delay elements (registers), which are located at the junctions of adjacent IIR filters or FIR filters of the circuit.
В предпочтительном варианте осуществления два первых БИХ-фильтра и два первых КИХ-фильтра в цепи содержат последовательно соединенные умножитель, сумматор и элемент задержки.In a preferred embodiment, the first two FIR filters and the first two FIR filters in the circuit comprise a multiplier, an adder, and a delay element connected in series.
В предпочтительном варианте осуществления по меньшей мере два последних БИХ-фильтра и два последних КИХ-фильтра в цепи содержат последовательно соединенные умножитель, управляющий элемент «И», сумматор и элемент задержки, при этом выход умножителя соединен с первым входом управляющего элемента «И», выход которого соединен со входом элемента задержки, а второй вход управляющего элемента «И» выполнен с возможностью получения сигнала разрешения, с помощью которого отключают фильтр.In a preferred embodiment, at least the last two IIR filters and the last two FIR filters in the circuit comprise a series-connected multiplier, an “And” control element, an adder and a delay element, while the output of the multiplier is connected to the first input of the “And” control element, the output of which is connected to the input of the delay element, and the second input of the control element "AND" is configured to receive a permission signal, with which the filter is turned off.
Для лучшего понимания заявленного изобретения далее приводится его подробное описание с соответствующими графическими материалами.For a better understanding of the claimed invention the following is a detailed description with the corresponding graphic materials.
Фиг. 1. Функциональная схема кодера систематического кода Рида-Соломона.FIG. 1. Functional diagram of the Reed-Solomon systematic code encoder.
Фиг. 2. Эквивалентная схема РЛОС с применением БИХ-фильтра.FIG. 2. Equivalent radar scheme using an IIR filter.
Фиг. 3. Эквивалентная схема РЛОС с применением БИХ и КИХ-фильтров.FIG. 3. Equivalent RLOS scheme using IIR and FIR filters.
Фиг. 4. Эквивалентная схема кодера Рида-Соломона с применением БИХ и КИХ-фильтров.FIG. 4. Equivalent Reed-Solomon encoder scheme using IIR and FIR filters.
Фиг. 5. Функциональная схема кодера Рида-Соломона с применением БИХ и КИХ-фильтров с коневейеризацией.FIG. 5. Functional diagram of the Reed-Solomon encoder using IIR and FIR filters with conveyorization.
Фиг. 6. Функциональная схема реконфигурируемого кодера Рида-Соломона с применением БИХ и КИХ-фильтров с коневейеризацией, выполненная согласно изобретению.FIG. 6. Functional diagram of a reconfigurable Reed-Solomon encoder using IIR and FIR filters with horse-moving, made according to the invention.
Фиг. 7. Структурная схема декодера Рида-Соломона.FIG. 7. Block diagram of the Reed-Solomon decoder.
Рассмотрим принцип функционирования кодера Рида-Соломона (Фиг. 1-7).Consider the principle of operation of the Reed-Solomon encoder (Fig. 1-7).
Согласно определению кодов PC, систематическое кодирование осуществляют следующим образом:According to the definition of PC codes, systematic coding is carried out as follows:
где m(х) - входные незакодированные данные,where m (x) is the input uncoded data,
g(x) - порождающий полином,g (x) is the generating polynomial,
t - количество исправляемых ошибок,t is the number of correctable errors,
q(x) - частное от деления,q (x) is the quotient of the division,
r(х) - остаток от делении на g(x).r (x) is the remainder of the division by g (x).
При этом результирующее кодовое слово (закодированные данные) в систематическом виде представляют какIn this case, the resulting codeword (encoded data) in a systematic form is represented as
где с(х) - кодовое слово.where c (x) is the code word.
Таким образом, данные на выходе кодера остаются неизменными, однако к ним добавляется контрольные данные r(х). Все математические операции осуществляются в поле Галуа GF(2p).Thus, the data at the output of the encoder remains unchanged, however, control data r (x) is added to them. All mathematical operations are carried out in the Galois field GF (2 p ).
Аппаратно выражение (2) реализуют при помощи регистра с линейной обратной связью (РЛОС). Первые k тактов (k - количество информационных символов) работы кодера данные проходят на выход кодера неизменными, при этом одновременно поступают на вход РЛОС (регистра с линейной обратной связью), где с учетом обратной связи происходит вычисление остатка r(x). После k тактов работы кодера в схеме РЛОС отключают обратную связь и значение остатка r(х) фиксируют в сдвиговом регистре. В течение последующих 2t тактов (2t - количество проверочных символов) из схемы РЛОС выгружают и подают на выход кодера значение остатка r(х).Hardware expression (2) is implemented using a linear feedback register (RLOS). The first k clock cycles (k is the number of information symbols) of the encoder operation, the data passes to the encoder output unchanged, while at the same time they go to the input of the RLOS (register with linear feedback), where, taking into account the feedback, the remainder r (x) is calculated. After k cycles of operation of the encoder in the RLOS scheme, feedback is turned off and the value of the remainder r (x) is fixed in the shift register. Over the next 2t cycles (2t is the number of check symbols), the remainder r (x) is unloaded from the RLO circuit and fed to the encoder output.
При необходимости изменения требований к корректирующей способности кода PC, изменяют порождающий полином g(x), что приводит к изменению схемы РЛОС. Заявленное изобретение включает в себя способ построения схемы деления на порождающий полином с возможностью минимальными затратами изменять порождающий полином в процессе работы.If necessary, change the requirements for the correcting ability of the PC code, change the generating polynomial g (x), which leads to a change in the radar scheme. The claimed invention includes a method for constructing a division scheme into a generating polynomial with the ability to change the generating polynomial in the course of work with minimal costs.
Для реализации выражения (2) применяют схему РЛОС, представленную на Фиг. 1.To implement expression (2), the RLOS scheme shown in FIG. one.
Когда переключатели P1, Р2 101, 102 находятся в положении 1, схема РЛОС принимает вид схемы БИХ-фильтра (фильтр с бесконечной импульсной характеристикой) с отличием в том, что выход кодера не совпадает с выходом БИХ-фильтра. А именно выходом РЛОС z(x) является выход сдвигового регистра 103, однако в БИХ-фильтре с подобной реализацией выходом данных y(х) является выход сумматора 104. Опишем математически работу схемы РЛОС при включенных переключателях P1, Р2 101, 102, а именно находящихся в положении 1. Выход y(х) БИХ-фильтра можно записать следующим образом:When the switches P1,
Однако выход z(x) РЛОС применительно для кодирования отличается, так как выведен до сумматора (104 или 201), а именно:However, the output z (x) of the RLOS with respect to coding is different, since it is output to the adder (104 or 201), namely:
Эквивалентная схема выражения (4) представлена на Фиг. 2. Домножив последнее слагаемое m(х) в выражении (4) на и разделив соответственно, получаемAn equivalent circuit of expression (4) is shown in FIG. 2. Multiplying the last term m (x) in expression (4) by and dividing accordingly, we get
Все математические операции осуществляют в поле Галуа GF(2p), поэтому вычитание заменяют суммированием. Эквивалентная схема выражения (5) представлена на Фиг. 3.All mathematical operations are carried out in the Galois field GF (2 p ), therefore, subtraction is replaced by summation. An equivalent circuit of expression (5) is shown in FIG. 3.
После включения переключателей P1, Р2 101, 102 в положение 2 в схеме кодера на Фиг. 1 отключают цепь обратной связи, а на вход кодера подают ноль. В эквивалентной схеме кодера на Фиг. 3 на вход КИХ-фильтра (фильтра с конечной импульсной характеристикой) вместо выхода БИХ-фильтра подают ноль. Так как первые k тактов работы кодера на его выход по определению систематического кодирования выдают данные без изменения, а последующие 2t тактов выдают данные, вычисленные кодером, то можно пренебречь сумматором 301 в схеме кодера на Фиг. 3, добавить переключатель Р3 401 и получить эквивалентную схему всего кодера, представленную на Фиг. 4. То есть первые k тактов работы кодера на его выход 402 поступают данные после БИХ 403 и КИХ 404 (фильтр с конечной импульсной характеристикой) фильтров, соединенных последовательно, а так как оба фильтра имеют один и тот же полином, данные на выход кодера будут поступать без изменений, что и требуется по определению кодера систематического кода Рида-Соломона. Однако в эту фазу выполняют вычисление и после k-го такта БИХ-фильтр 403 из цепи отключают с помощью переключателя Р3 (401) по сигналу data_ecc 405, после чего продолжает работать лишь КИХ-фильтр (404), который подает на выход (402) кодера значения контрольных символов.After turning on the switches P1,
Такое построение эквивалентной схемы (Фиг. 4) позволяет избежать общей цепи обратной связи 105, охватывающей всю схему РЛОС, как в схеме кодера на Фиг. 1. Порождающий полином g(x) для кодов Рида-Соломона представим в видеThis construction of an equivalent circuit (FIG. 4) avoids the
где а∈GF(2p) - примитивный элемент поля Галуа размерности р.where a ∈ GF (2 p ) is a primitive element of the Galois field of dimension p.
Таким образом, схемы БИХ- и КИХ-фильтров можно разбить на последовательно соединенные фильтры первого порядка 504 - БИХ, 505 - КИХ, как показано на Фиг. 5. Переключатель 401 при этом заменяют на побитовый элемент «И» (506). А так как в таком построении схемы отсутствует общая цепь обратной связи с выхода на вход кодера, для уменьшения критического пути через цепь последовательно соединенных сумматоров конвейеризуют схему дополнительными регистрами 501, 502, например pipe1 и pipe2 и так далее при необходимости, при этом сегментируют схему на меньшие участки по критическому пути. При этом латентность кодера увеличивается на число тактов, равное количеству дополнительных конвейерных регистров, зато быстродействие становится крайне высоким.Thus, the IIR and FIR filter circuits can be divided into series-connected first order filters 504 - IIR, 505 - FIR, as shown in FIG. 5. The
Наилучшее применение схемы на Фиг. 5 получается при использовании дополнительных сигналов (t=Tmax, t=Tmax-1, t=Tmax-2, …, t=1) разрешения определенных фильтров 603, как показано на Фиг. 6. На Фиг. 6 представлена функциональная схема варианта выполнения заявленного реконфигурируемого кодера PC с возможной конвейеризацией. Данная схема наделяет код корректирующей способностью от максимально возможного количества исправляемых ошибок Tmax до 1. Из выражения (6) известно, что для того, чтобы код позволял исправлять t ошибок, необходим порождающий полином степени 2t. Таким образом, схема заявленного реконфигурируемого кодера рассчитана на полином максимальной степени 2Tmax. При необходимости кодировать данные кодом с числом исправляемых ошибок меньше максимального Tmax, необходимо с помощью сигналов разрешения 603 отключить определенные фильтры (то есть часть множителей в полиноме (6) заменить на 1), и результирующий полином получают необходимой степени, а значит, с заданной корректирующей способностью. Например, для кода с максимальным количеством ошибок, которые могут быть исправлены равным t=Tmax-1, необходимо деактивировать по два крайних правых фильтра БИХ 604 и КИХ 605. Для кода с количеством исправляемых ошибок, равным t=Tmax-2, необходимо деактивировать по четыре крайних правых фильтра БИХ и КИХ.The best application of the circuit of FIG. 5 is obtained by using additional signals (t = Tmax, t = Tmax-1, t = Tmax-2, ..., t = 1) of the resolution of
Рассмотрим более подробно представленный на Фиг. 6 вариант выполнения заявленного реконфигурируемого кодера Рида-Соломона. Реконфигурируемый кодер Рида-Соломона содержит цепь последовательно соединенных БИХ-фильтров 604 первого порядка и цепь последовательно соединенных КИХ-фильтров 605 первого порядка, между которыми расположен массив элементов «И». Два БИХ-фильтра 604 и два КИХ-фильтра 605 содержат управляющие элементы «И». Вход цепи БИХ-фильтров 604 является входом кодера m(x), а выход цепи БИХ-фильтров 605 соединен с первым входом массива элементов «И», выход которого соединен со входом цепи КИХ-фильтров 605, выход которой является выходом кодера с(х). Второй вход массива элементов «И» выполнен с возможностью получения сигналов data_ecc разрешения или запрещения выдачи контрольных бит закодированных данных, при этом в течение первых k тактов работы кодера (k - количество информационных символов), при поданном на массив элементов «И» сигнале data_ecc разрешения выдачи информационных данных, на выход кодера поступают данные с его входа, а в течение следующих 2t тактов работы кодера (2t - количество проверочных символов), при поданном на массив элементов «И» сигнале запрещения выдачи информационных данных, на выход кодера с(х) поступают сформированные кодером контрольные данные. Вторые входы управляющих элементов «И» выполнены с возможностью получения сигналов разрешения (t=Tmax, t=Tmax-1, t=Tmax-2, …, t=1), с помощью которых отключают фильтры с целью изменения корректирующей способности.Let us consider in more detail presented in FIG. 6 embodiment of the claimed reconfigurable Reed-Solomon encoder. The reconfigurable Reed-Solomon encoder comprises a chain of series-connected first-order IIR filters 604 and a chain of series-connected first-order FIR filters 605, between which there is an array of AND elements. Two
Заявленный кодер конвейеризован дополнительными элементами задержки (регистрами) 506, которые расположены в местах соединений соседних БИХ-фильтров 604 или КИХ-фильтров 605 цепи.The claimed encoder is pipelined with additional delay elements (registers) 506, which are located at the junctions of adjacent IIR filters 604 or FIR filters 605 of the circuit.
Два первых БИХ-фильтра 604 и два первых КИХ-фильтра 605 в цепи содержат последовательно соединенные умножитель, сумматор и элемент задержки.The first two
Последующие (за первыми двумя) БИХ-фильтры 604 и КИХ-фильтры 605 в цепи содержат последовательно соединенные умножитель, управляющий элемент «И», сумматор и элемент задержки, при этом выход умножителя соединен с первым входом управляющего элемента «И», выход которого соединен со входом элемента задержки, а второй вход управляющего элемента «И» выполнен с возможностью получения сигнала разрешения (t=Tmax, t=Tmax-1, t=Tmax-2, …, t=1), с помощью которого отключают фильтр.The subsequent (after the first two) IIR filters 604 and
Декодирование кодов Рида-Соломона структурно показано на Фиг. 7. Принятые данные (с возможными ошибками) v(x) поступают в схему декодера, одновременно происходит запись этих данных в буфер FIFO. Декодирование поделено на четыре основных этапа. Сначала данные поступают в схему вычисления синдромов (признаки ошибок), первые n тактов, потому как кодовое слово стало длины n. Дальнейшие вычисления декодер проводит с вычисленными синдромами. Следующий этап - вычисление полинома локаторов ошибок. Например, в алгоритме Берлекэмпа - Мэсси (ВМА) без инверсии для данного этапа требуется 2t тактов (где t - количество исправляемых ошибок, с которым было закодировано переданное кодовое слово). Далее вычисленные коэффициенты уравнения поступают в схемы поиска позиций ошибок и в схему поиска значений ошибок. После вычисления полинома значений ошибок этот полином вместе с указателями позиций ошибок из схемы поиска позиций ошибок подают на схему составления вектора ошибок. Данная схема формирует маску е(х) для исправления искаженных данных v(x) при считывании из буфера FIFO. При фиксированном параметре m поля Галуа декодер, реконфигурируемый по количеству исправляемых ошибок, реализуют путем изменения количества тактов, необходимых для работы алгоритма ВМА и схемы поиска значений ошибок. Таким образом, при добавлении к схеме декодера управления в зависимости от параметра t (максимальное количество исправляемых ошибок) декодер становится реконфигурируемым в зависимости от корректирующей способности, с которой было закодировано кодовое слово.Reed-Solomon decoding is structurally shown in FIG. 7. The received data (with possible errors) v (x) goes to the decoder circuit; at the same time, this data is written to the FIFO buffer. Decoding is divided into four main stages. First, the data goes into the scheme for computing syndromes (signs of errors), the first n cycles, because the code word has become length n. The decoder conducts further calculations with the calculated syndromes. The next step is the calculation of the polynomial of error locators. For example, in the Berlekamp-Massey (VMA) algorithm without inversion, for this stage, 2t cycles are required (where t is the number of correctable errors with which the transmitted codeword was encoded). Further, the calculated coefficients of the equation go to the error position search circuit and the error value search circuit. After calculating the polynomial of error values, this polynomial together with the error position pointers from the error position search circuit are fed to the error vector compilation circuit. This scheme generates a mask e (x) to correct for distorted data v (x) when reading from the FIFO buffer. With a fixed parameter m of the Galois field, a decoder reconfigurable by the number of correctable errors is realized by changing the number of clock cycles required for the operation of the VMA algorithm and the scheme for searching error values. Thus, when a control is added to the circuit depending on the parameter t (maximum number of correctable errors), the decoder becomes reconfigurable depending on the correcting ability with which the code word was encoded.
Заявленный реконфигурируемый кодер Рида-Соломона содержит умножители в поле Галуа, фильтры БИХ первого порядка в количестве 2Tmax штук, фильтры КИХ первого порядка в количестве 2Tmax штук, управляющие элементы «И» включения/отключения фильтров в общую цепь, регистры для конвейеризации схемы кодера, сумматоры в поле Галуа, элементы «И» включения/отключения фильтров БИХ.The declared reconfigurable Reed-Solomon encoder contains multipliers in the Galois field, first-order IIR filters in the amount of 2T max pieces, first-order FIR filters in the amount of 2T max pieces, "And" control elements for switching filters on / off into the common circuit, registers for pipelining the encoder circuit , adders in the Galois field, “And” elements of turning on / off the IIR filters.
Заявленный реконфигурируемый кодер Рида-Соломона имеет следующие преимущества:The claimed reconfigurable Reed-Solomon encoder has the following advantages:
- обладает реконфигурируемостью под любое количество исправляемых ошибок от Tmax до 1, а также высоким быстродействием ввиду возможной конвейеризации;- It has reconfigurability for any number of correctable errors from T max to 1, as well as high speed due to possible pipelining;
- позволяет кодировать данные кодом Рида-Соломона с разной корректирующей способностью, то есть количеством исправляемых ошибок (символов) от Tmax до 1;- allows you to encode data with a Reed-Solomon code with different corrective ability, that is, the number of correctable errors (characters) from T max to 1;
- обладает крайне высоким быстродействием ввиду минимальных критических путей между тактируемыми регистрами из-за возможности вставки конвейерных регистров между фильтрами;- It has extremely high speed due to minimal critical paths between clock registers due to the possibility of inserting pipeline registers between filters;
- использует минимальные аппаратные ресурсы, сопоставимые с аналогичным нереконфигурируемым кодером;- uses minimal hardware resources comparable to a similar non-configurable encoder;
- предельно прост в управлении: если перед загрузкой данных инициализируют сигналы разрешения (например, t>Tmax-1 - для количества исправляемых ошибок, равного Tmax, или t>Tmax-3 - для количества исправляемых ошибок, равного Tmax-2) определенных фильтров, при этом включают те фильтры, которые необходимы для заданного количества исправляемых ошибок; первые k тактов работы кодера загружают данные, при этом сигнал data_ecc в состоянии «1», после чего обнуляют сигнал data_ecc и следующие 2t тактов происходит выгрузка контрольных символов данных.- extremely simple to control: if permission signals are initialized before loading data (for example, t> Tmax-1 for the number of correctable errors equal to Tmax, or t> Tmax-3 for the number of correctable errors equal to Tmax-2) of certain filters, this includes those filters that are necessary for a given number of correctable errors; the first k clock cycles of the encoder load the data, while the data_ecc signal is in the “1” state, then the data_ecc signal is reset and the next 2t clock cycles the data control characters are unloaded.
Заявленный кодер может быть реализован в одном из следующих устройств: контроллер жестких дисков, дисков SSD, контроллер NAND-flash памяти, IP-блок в составе СнК и др.The claimed encoder can be implemented in one of the following devices: controller of hard disks, SSD disks, NAND-flash memory controller, IP-block as part of SoC, etc.
Реконфигурируемый декодер кодов Рида-Соломона содержит схему вычисления синдромов; схему вычисления полинома локаторов ошибок (по алгоритму ВМА без инверсии); схему поиска значений ошибок; схему поиска позиций ошибок; схему составления вектора ошибок; буфер FIFO для хранения принятых, но неисправленных данных; схему исправления ошибок (XOR).The reconfigurable Reed-Solomon code decoder includes a syndrome calculation circuit; scheme for computing the polynomial of error locators (using the VMA algorithm without inversion); a search scheme for error values; scheme for finding error positions; error vector compilation scheme; FIFO buffer for storing received but not corrected data; error correction scheme (XOR).
Декодер кодов PC является реконфигурируемым по корректирующей способности. А именно декодер при фиксированном расширении m поля Галуа GF(2m) может исправлять количество ошибок от tmax до 1, в зависимости от конфигурации закодированного слова. Это осуществляют путем изменения количества тактов для работы алгоритма ВМА от 2tmax до 1, а также количества тактов для работы схемы поиска позиций ошибок от tmax до 1.The PC code decoder is reconfigurable for corrective ability. Namely, a decoder with a fixed expansion m of the Galois field GF (2 m ) can correct the number of errors from t max to 1, depending on the configuration of the encoded word. This is done by changing the number of ticks for the VMA algorithm from 2t max to 1, as well as the number of ticks for the operation of the error position search circuit from t max to 1.
Хотя описанный выше вариант выполнения изобретения был изложен с целью иллюстрации настоящего изобретения, специалистам ясно, что возможны разные модификации, добавления и замены, не выходящие из объема и смысла настоящего изобретения, раскрытого в прилагаемой формуле изобретения.Although the above-described embodiment of the invention has been set forth to illustrate the present invention, it is clear to those skilled in the art that various modifications, additions and substitutions are possible without departing from the scope and meaning of the present invention disclosed in the attached claims.
Claims (4)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2015129662/08A RU2605672C1 (en) | 2015-07-21 | 2015-07-21 | Reconfigurable reed-solomon coder |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2015129662/08A RU2605672C1 (en) | 2015-07-21 | 2015-07-21 | Reconfigurable reed-solomon coder |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2605672C1 true RU2605672C1 (en) | 2016-12-27 |
Family
ID=57793654
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2015129662/08A RU2605672C1 (en) | 2015-07-21 | 2015-07-21 | Reconfigurable reed-solomon coder |
Country Status (1)
Country | Link |
---|---|
RU (1) | RU2605672C1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU188390U1 (en) * | 2018-11-23 | 2019-04-09 | Акционерное общество Научно-производственный центр "Электронные вычислительно-информационные системы" (АО НПЦ "ЭЛВИС") | PARALLEL RECONFIGURABLE REED-SOLOMON CODER |
RU2713517C1 (en) * | 2018-11-23 | 2020-02-05 | Акционерное общество Научно-производственный центр "Электронные вычислительно-информационные системы" (АО НПЦ "ЭЛВИС") | Parallel reconfigurable reed-solomon coder |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SU610311A1 (en) * | 1975-06-20 | 1978-06-05 | Специализированное Опытно-Конструкторское Бюро Летно-Исследовательского Института | Device for coding reed-solomon code with odd simple base |
SU1716609A1 (en) * | 1989-06-06 | 1992-02-28 | Ленинградский Электротехнический Институт Связи Им.Проф.М.А.Бонч-Бруевича | Encoder of reed-solomon code |
US6826723B2 (en) * | 2001-05-09 | 2004-11-30 | Agere Systems Inc. | Multi-rate reed-solomon encoders |
US7082564B2 (en) * | 2002-09-23 | 2006-07-25 | Agere Systems Inc. | High throughput Reed-Solomon encoder |
US8151172B2 (en) * | 2008-07-10 | 2012-04-03 | Lsi Corporation | Adjustable error-correction for a reed solomon encoder/decoder |
-
2015
- 2015-07-21 RU RU2015129662/08A patent/RU2605672C1/en active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SU610311A1 (en) * | 1975-06-20 | 1978-06-05 | Специализированное Опытно-Конструкторское Бюро Летно-Исследовательского Института | Device for coding reed-solomon code with odd simple base |
SU1716609A1 (en) * | 1989-06-06 | 1992-02-28 | Ленинградский Электротехнический Институт Связи Им.Проф.М.А.Бонч-Бруевича | Encoder of reed-solomon code |
US6826723B2 (en) * | 2001-05-09 | 2004-11-30 | Agere Systems Inc. | Multi-rate reed-solomon encoders |
US7082564B2 (en) * | 2002-09-23 | 2006-07-25 | Agere Systems Inc. | High throughput Reed-Solomon encoder |
US8151172B2 (en) * | 2008-07-10 | 2012-04-03 | Lsi Corporation | Adjustable error-correction for a reed solomon encoder/decoder |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU188390U1 (en) * | 2018-11-23 | 2019-04-09 | Акционерное общество Научно-производственный центр "Электронные вычислительно-информационные системы" (АО НПЦ "ЭЛВИС") | PARALLEL RECONFIGURABLE REED-SOLOMON CODER |
RU2713517C1 (en) * | 2018-11-23 | 2020-02-05 | Акционерное общество Научно-производственный центр "Электронные вычислительно-информационные системы" (АО НПЦ "ЭЛВИС") | Parallel reconfigurable reed-solomon coder |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8464141B2 (en) | Programmable error correction capability for BCH codes | |
US4873688A (en) | High-speed real-time Reed-Solomon decoder | |
US7543212B2 (en) | Low-density parity-check (LDPC) encoder | |
US5535225A (en) | Time domain algebraic encoder/decoder | |
Freudenberger et al. | A configurable Bose–Chaudhuri–Hocquenghem codec architecture for flash controller applications | |
US8719678B2 (en) | Configurable encoder for cyclic error correction codes | |
RU2605672C1 (en) | Reconfigurable reed-solomon coder | |
US9337869B2 (en) | Encoding and syndrome computing co-design circuit for BCH code and method for deciding the same | |
JPH09505952A (en) | Programmable redundancy / syndrome generator | |
RU2314639C1 (en) | Device for decoding reed-solomon codes | |
KR20190003315A (en) | Encoding method of efficient generalized tensor product codes, and apparatus there-of | |
US6405339B1 (en) | Parallelized programmable encoder/syndrome generator | |
Mohammed et al. | Design and implementation of 2 bits BCH error correcting codes using FPGA | |
RU160960U1 (en) | RECONFIGURABLE REED-SOLOMON CODER | |
RU188390U1 (en) | PARALLEL RECONFIGURABLE REED-SOLOMON CODER | |
RU2713517C1 (en) | Parallel reconfigurable reed-solomon coder | |
Belyaev et al. | Reed-solomon encoder design by means of the digital filtration | |
KR101636406B1 (en) | Preprocessing apparatus and method for low latency of syndrome calculation in bch decoder | |
KR101619049B1 (en) | Parallel BCH decoder | |
RU157943U1 (en) | PARALLEL RECONFIGURABLE BCH CODES CODER | |
Tang et al. | An efficient parallel architecture for resource-shareable reed-solomon encoder | |
Mohammed et al. | FPGA implementation of 3 bits BCH error correcting codes | |
RU2601827C1 (en) | Reconfigurable encoder of bch codes | |
RU2591474C1 (en) | Parallel reconfigurable encoder of bch codes | |
RU160863U1 (en) | RECONFIGURABLE BCH CODES CODER |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PD4A | Correction of name of patent owner |