RU160960U1 - Реконфигурируемый кодер рида-соломона - Google Patents

Реконфигурируемый кодер рида-соломона Download PDF

Info

Publication number
RU160960U1
RU160960U1 RU2015129664/08U RU2015129664U RU160960U1 RU 160960 U1 RU160960 U1 RU 160960U1 RU 2015129664/08 U RU2015129664/08 U RU 2015129664/08U RU 2015129664 U RU2015129664 U RU 2015129664U RU 160960 U1 RU160960 U1 RU 160960U1
Authority
RU
Russia
Prior art keywords
encoder
filters
output
elements
input
Prior art date
Application number
RU2015129664/08U
Other languages
English (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 RU2015129664/08U priority Critical patent/RU160960U1/ru
Application granted granted Critical
Publication of RU160960U1 publication Critical patent/RU160960U1/ru

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic 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/1515Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic 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/158Finite field arithmetic processing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6516Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C19/00Digital stores in which the information is moved stepwise, e.g. shift registers
    • G11C19/28Digital stores in which the information is moved stepwise, e.g. shift registers using semiconductor elements
    • G11C19/287Organisation of a multiplicity of shift registers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C27/00Electric analogue stores, e.g. for storing instantaneous values
    • G11C27/04Shift registers
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H2017/0072Theoretical filter design
    • H03H2017/0081Theoretical filter design of FIR filters
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H2017/0072Theoretical filter design
    • H03H2017/009Theoretical 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)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)

Abstract

1. Реконфигурируемый кодер Рида-Соломона, содержащий массив элементов «И», цепь последовательно соединенных БИХ-фильтров первого порядка и цепь последовательно соединенных КИХ-фильтров первого порядка, причем, по меньшей мере, два БИХ-фильтра и, по меньшей мере, два КИХ-фильтра содержат управляющие элементы «И», при этом вход цепи БИХ-фильтров является входом кодера, а выход цепи БИХ-фильтров соединен с первым входом массива элементов «И», выход которого соединен со входом цепи КИХ-фильтров, выход которой является выходом кодера, а второй вход массива элементов «И» выполнен с возможностью получения сигналов разрешения или запрещения выдачи контрольных бит закодированных данных, при этом в течение первых k тактов работы кодера (k - количество информационных символов), при поданном на массив элементов «И» сигнале разрешения выдачи информационных данных, на выход кодера поступают данные с его входа, а в течение следующих 2t тактов работы кодера (2t - количество проверочных символов), при поданном на массив элементов «И» сигнале запрещения выдачи информационных данных, на выход кодера поступают сформированные кодером контрольные данные, причем вторые входы управляющих элементов «И» выполнены с возможностью получения сигналов разрешения, с помощью которых отключают фильтры.2. Кодер по п. 1, отличающийся тем, что он конвейеризован дополнительными элементами задержки (регистрами), которые расположены в местах соединений соседних БИХ-фильтров или КИХ-фильтров цепи.3. Кодер по п. 1, отличающийся тем, что два первых БИХ-фильтра и два первых КИХ-фильтра в цепи содержат последовательно соединенные умножитель, сумматор и элемент задержки.4. Кодер по п. 1, отличающийся тем, чт

Description

Полезная модель относится к области цифровой обработки информации (сигналов), а именно к реконфигурируемым кодерам Рида-Соломона, и может применяться для помехоустойчивого кодирования информации с переменной корректирующей способностью в различных системах передачи\приема, а также хранения данных.
Коды PC (Рида - Соломона) относятся к блочному кодированию, и их широко используют в системах хранения и передачи информации. Данные коды позволяют исправлять множественные ошибки а также пакеты ошибок в больших блоках данных.
В настоящее время данные коды массово используют в таких системах хранения информации как жесткие диски, твердотельные накопители, флэш-память и др., а также в стандартах цифровой передачи данных, например цифрового телевидения DVB. Таким образом, ввиду различного применения в одном устройстве, необходимо использование кодов с разной корректирующей способностью соответственно. Например, для того чтобы в блоке данных используемый код позволял исправлять до 16 ошибок, необходимо применение определенного порождающего полинома определенной длины. Однако, для того чтобы в этом же блоке данных код позволял исправлять например 12 ошибок, необходимо применение другого порождающего полинома с меньшей длиной. То есть, для использования одного и того же устройства с разными накопителями необходимо применение разных порождающих полиномов и, как следствие, разных кодеров, это приводит к увеличению аппаратных ресурсов. Однако, использование кодера с регулируемой корректирующей способностью (переменный порождающий полином) может также удовлетворить различные требования к корректирующей способности.
Известен кодер Рида-Соломона, описанный в патенте US 6826723 B2, в котором в общем виде кодирование осуществляют путем деления информационных бит на порождающий полином, при этом используют регистр с линейной обратной связью (РЛОС). В этом кодере проблему настраиваемости кодера под различную корректирующую способность решают путем мультиплексирования и суммирования отводов обратной связи в общей цепи РЛОС. В этом кодере возможно использования трех различных полиномов.
Недостатком этого кодера является то, что его невозможно использовать в тех случаях, когда требуется более трех конфигураций порождающего полинома. К тому же в этом кодере используют многовходовые сумматоры, которые обладают низки быстродействием.
Известен, описанный в патенте EP 0608637 (A1), способ кодирования, который позволяет изменять корректирующую способность кода Рида-Соломона от максимально возможного количества исправляемых ошибок до 1.
Недостатком данного способа заключается в том, что ввиду увеличенного критического пути из-за большого количества последовательно-соединенных сумматоров и элементов «И» (равного удвоенному количеству исправляемых ошибок) он обладает низким быстродействием.
В патенте US 8151172 (B2) описан способ кодирования, примененный в описанном выше способе кодирования, выполненном согласно патенту EP 0608637 (A1), но с заменой длинной цепи сумматоров на каскадное суммирование с определенными сигналами разрешения.
Данное решение позволяет уменьшить критический путь и увеличить быстродействие по сравнению со способом, выполненном согласно патенту EP 0608637 (A1), однако существенным увеличением быстродействия не обладает, к тому же схема этого способа усложнена цепью обратной связи, охватывающей всю схему целиком. Также данное решения не является достаточно гибким со стороны корректирующей способности, ввиду объединения сигналов разрешения определенных умножителей в кластеры, таким образом, лишая схему включать необходимое, а не кратное четырем, количество умножителей.
Наиболее близким к заявленной полезной модели является кодер БЧХ-кодов, описанный в патенте US 8464141 B2, в котором проблему настраиваемости кодера под различную корректирующую способность решают путем разбиения порождающего полинома на отдельные множители (по определению, порождающий полином состоит из произведения примитивных неприводимых полиномов). Кодирование осуществляют путем деления информационных бит на минимальные полиномы, при этом используют регистр с линейной обратной связью (РЛОС). В зависимости от применяемой корректирующей способности, используют цепи умножителей и делителей на примитивные полиномы разной длины. Этот кодер БЧХ кодов выбран в качестве прототипа заявленной полезной модели.
Недостатком кодера-прототипа является то, что он удовлетворяет требованию реконфигурируемости под различную корректирующую способность, однако может применяться только для двоичных кодов БЧХ, а не кодов Рида-Соломона, к тому же длинная цепь сумматоров этого кодера приводит к увеличению критического пути, что снижает быстродействие кодера.
Задачей заявленной полезной модели является создание реконфигурируемого кодера Рида-Соломона для помехоустойчивого кодирования данных с целью последующей их передачи или хранения, который позволяет кодировать под различные характеристики кодов Рида-Соломона (под различное количество исправляемых ошибок, длину данных и др.), позволяет настраивать корректирующую способность в зависимости от предназначения, а также обладает повышенной производительностью, быстродействием и невысокой аппаратной сложностью вследствие простоты конструкции и конвейерной структуры.
Поставленная задача решена путем создания реконфигурируемого кодера Рида-Соломона, содержащего массив элементов «И», цепь последовательно соединенных БИХ-фильтров первого порядка и цепь последовательно соединенных КИХ-фильтров первого порядка, причем, по меньшей мере, два БИХ-фильтра и, по меньшей мере, два КИХ-фильтра содержат управляющие элементы «И», при этом вход цепи БИХ-фильтров является входом кодера, а выход цепи БИХ- фильтров соединен с первым входом массива элементов «И», выход которого соединен со входом цепи КИХ-фильтров, выход которой является выходом кодера, а второй вход массива элементов «И» выполнен с возможностью получения сигналов разрешения или запрещения выдачи контрольных бит закодированных данных, при этом в течение первых k тактов работы кодера (k - количество информационных символов), при поданном на массив элементов «И» сигнале разрешения выдачи информационных данных, на выход кодера поступают данные с его входа, а в течение следующих 2t тактов работы кодера (2t - количество проверочных символов), при поданном на массив элементов «И» сигнале запрещения выдачи информационных данных, на выход кодера поступают сформированные кодером контрольные данные, причем вторые входы управляющих элементов «И» выполнены с возможностью получения сигналов разрешения, с помощью которых отключают фильтры с целью изменения корректирующей способности.
В предпочтительном варианте осуществления кодер конвейеризован дополнительными элементами задержки (регистрами), которые расположены в местах соединений соседних БИХ-фильтров или КИХ-фильтров цепи.
В предпочтительном варианте осуществления два первых БИХ-фильтра и два первых КИХ-фильтра в цепи содержат последовательно соединенные умножитель, сумматор и элемент задержки.
В предпочтительном варианте осуществления по меньшей мере, два последних БИХ-фильтра и два последних КИХ-фильтра в цепи содержат последовательно соединенные умножитель, управляющий элемент «И», сумматор и элемент задержки, при этом выход умножителя соединен с первым входом управляющего элемента «И», выход которого соединен со входом элемента задержки, а второй вход управляющего элемента «И» выполнен с возможностью получения сигнала разрешения, с помощью которого отключают фильтр.
Для лучшего понимания заявленной полезной модели далее приводится его подробное описание с соответствующими графическими материалами.
Фиг. 1. Функциональная схема кодера систематического кода Рида-Соломона.
Фиг. 2. Эквивалентная схема РЛОС с применением БИХ-фильтра.
Фиг. 3. Эквивалентная схема РЛОС с применением БИХ и КИХ-фильтров.
Фиг. 4. Эквивалентная схема кодера Рида-Соломона с применением БИХ и КИХ-фильтров.
Фиг. 5. Функциональная схема кодера Рида-Соломона с применением БИХ и КИХ-фильтров с коневейеризацией.
Фиг. 6. Функциональная схема реконфигурируемого кодера Рида-Соломона с применением БИХ и КИХ-фильтров с коневейеризацией, выполненная согласно полезной модели.
Фиг. 7. Структурная схема декодера Рида-Соломона.
Рассмотрим принцип функционирования кодера Рида-Соломона (Фиг. 1-7).
Согласно определению кодов PC, систематическое кодирование осуществляют следующим образом:
Figure 00000002
где m(x) - входные незакодированные данные,
g(x) - порождающий полином,
t - количество исправляемых ошибок,
q(x) - частное от деления,
r(x) - остаток от делении на g(x).
При этом, результирующее кодовое слово (закодированные данные) в систематическом виде представляют как:
Figure 00000003
где c(x) - кодовое слово.
Таким образом, данные на выходе кодера остаются неизменными, однако к ним добавляется контрольные данные r(x). Все математические операции осуществляются в поле Галуа GF(2P).
Аппаратно выражение (2) реализуют при помощи регистра с линейной обратной связью (РЛОС). Первые k тактов (k - количество информационных символов) работы кодера данные проходят на выход кодера неизменными, при этом одновременно поступают на вход РЛОС (регистра с линейной обратной связью), где с учетом обратной связи происходит вычисление остатка r(x). После k тактов работы кодера в схеме РЛОС отключают обратную связь, и значение остатка r(x) фиксируют в сдвиговом регистре. В течение последующих 2t тактов (2t - количество проверочных символов) из схемы РОЛС выгружают и подают на выход кодера значение остатка r(x).
При необходимости изменения требований к корректирующей способности кода PC, изменяют порождающий полином g(x), что приводит к изменению схемы РЛОС. Заявленная полезная модель включает в себя способ построения схемы деления на порождающий полином с возможностью минимальными затратами изменять порождающий полином в процессе работы.
Для реализации выражения (2) применяют схему РЛОС, представленную на Фиг. 1.
Когда переключатели P1, P2 101, 102 находятся в положении 1, схема РЛОС принимает вид схемы БИХ-фильтра (фильтр с бесконечной импульсной характеристикой), с отличием в том, что выход кодера не совпадает с выходом БИХ-фильтра. А именно выходом РЛОС z(x) является выход сдвигового регистра 103, однако в БИХ-фильтре с подобной реализацией выходом данных y(x) является выход сумматора 104. Опишем математически работу схемы РЛОС, при включенных переключателях P1, P2 101, 102, а именно находящихся в положении 1. Выход y(x) БИХ-фильтра можно записать следующим образом:
Figure 00000004
Однако выход z(x) РЛОС, применительно для кодирования отличается, так как выведен до сумматора (104 или 201), а именно:
Figure 00000005
Эквивалентная схема выражения (4) представлена на Фиг. 2. Домножив последнее слагаемое m(x) в выражении (4) на
Figure 00000006
, и разделив соответственно, получаем:
Figure 00000007
Все математические операции осуществляют в поле Галуа GF(2P), поэтому вычитание заменяют суммированием. Эквивалентная схема выражения (5) представлена на Фиг. 3.
После включения переключателей P1, P2 101, 102 в положение 2, в схеме кодера на Фиг. 1 отключают цепь обратной связи, а на вход кодера подают ноль. В эквивалентной схеме кодера на Фиг. 3, на вход КИХ-фильтра (фильтра с конечной импульсной характеристикой) вместо выхода БИХ-фильтра подают ноль. Так как первые к тактов работы кодера на его выход по определению систематического кодирования выдают данные без изменения, а последующие 2t тактов выдают данные, вычисленные кодером, то можно пренебречь сумматором 301 в схеме кодера на Фиг. 3, добавить переключатель Р3 401 и получить эквивалентную схему всего кодера, представленную на Фиг. 4. То есть, первые к тактов работы кодера на его выход 402 поступают данные после БИХ 403 и КИХ 404 (фильтр с конечной импульсной характеристикой) фильтров соединенных последовательно, а так как оба фильтра имеют один и тот же полином, данные на выход кодера будут поступать без изменений, что и требуется по определению кодера систематического кода Рида-Соломона. Однако, в эту фазу выполняют вычисление, и после k-го такта БИХ фильтр 403 из цепи отключают с помощью переключателя P3 (401) по сигналу data_enc 405, после чего продолжает работать лишь КИХ-фильтр (404), который подает на выход (402) кодера значения контрольных символов.
Такое построение эквивалентной схемы (Фиг. 4) позволяет избежать общей цепи обратной связи 105 охватывающей всю схему РЛОС как в схеме кодера на Фиг. 1. Порождающий полином g(x) для кодов Рида-Соломона представим в виде:
Figure 00000008
где a∈GF(2p) - примитивный элемент поля Галуа размерности p.
Таким образом, схемы БИХ и КИХ фильтров можно разбить на последовательно соединенные фильтры первого порядка 504-БИХ, 505-КИХ, как показано на Фиг. 5. Переключатель 401 при этом заменяют на побитовый элемент «И» (506). А, так как в таком построении схемы отсутствует общая цепь обратной связи с выхода на вход кодера, для уменьшения критического пути через цепь последовательно соединенных сумматоров конвейеризуют схему дополнительными регистрами 501, 502, например pipe1 и pipe2 и так далее при необходимости, при этом сегментируют схему на меньшие участки по критическому пути. При этом латентность кодера увеличивается на число тактов равное количеству дополнительных конвейерных регистров, зато быстродействие становится крайне высоким.
Наилучшее применение схемы на Фиг. 5 получается при использовании дополнительных сигналов (t=Tmax, t=Tmax-1, t=Tmax-2, …, t=1) разрешения определенных фильтров 603, как показано на Фиг.6. На Фиг. 6 представлена функциональная схема варианта выполнения заявленного реконфигурируемого кодера PC с возможной конвейеризацией. Данная схема наделяет код корректирующей способностью от максимально возможного количества исправляемых ошибок Tmax до 1. Из выражения (6) известно, что для того, чтобы код позволял исправлять t ошибок, необходим порождающий полином степени 2t. Таким образом, схема заявленного реконфигурируемого кодера рассчитана на полином максимальной степени 2Тmax. При необходимости кодировать данные кодом с числом исправляемых ошибок меньше максимального Tmax, необходимо с помощью сигналов разрешения 603 отключить определенные фильтры (то есть часть множителей в полиноме (6) заменить на 1) и результирующий полином получают необходимой степени, а значит, с заданной корректирующей способностью. Например, для кода с максимальным количеством ошибок, которые могут быть исправлены равным t=Tmax-1, необходимо деактивировать по два крайних правых фильтра БИХ 604 и КИХ 605. Для кода с количеством исправляемых ошибок равным t=Tmax-2, необходимо деактивировать по четыре крайних правых фильтра БИХ и КИХ.
Рассмотрим более подробно представленный на Фиг. 6 вариант выполнения заявленного реконфигурируемого кодера Рида-Соломона. Реконфигурируемый кодер Рида-Соломона содержит цепь последовательно соединенных БИХ-фильтров 604 первого порядка и цепь последовательно соединенных КИХ-фильтров 605 первого порядка, между которыми расположен массив элементов «И». Два БИХ-фильтра 604 и два КИХ-фильтра 605 содержат управляющие элементы «И». Вход цепи БИХ-фильтров 604 является входом кодера m(x), а выход цепи БИХ- фильтров 605 соединен с первым входом массива элементов «И», выход которого соединен со входом цепи КИХ-фильтров 605, выход которой является выходом кодера c(x). Второй вход массива элементов «И» выполнен с возможностью получения сигналов data_ecc разрешения или запрещения выдачи контрольных бит закодированных данных, при этом в течение первых k тактов работы кодера (k - количество информационных символов), при поданном на массив элементов «И» сигнале data_ecc разрешения выдачи информационных данных, на выход кодера поступают данные с его входа, а в течение следующих 2t тактов работы кодера (2t - количество проверочных символов), при поданном на массив элементов «И» сигнале запрещения выдачи информационных данных, на выход кодера c(x) поступают сформированные кодером контрольные данные. Вторые входы управляющих элементов «И» выполнены с возможностью получения сигналов разрешения (t=Tmax, t=Tmax-1, t=Tmax-2, …, t=1), с помощью которых отключают фильтры с целью изменения корректирующей способности.
Заявленный кодер конвейеризован дополнительными элементами задержки (регистрами) 506, которые расположены в местах соединений соседних БИХ-фильтров 604 или КИХ-фильтров 605 цепи.
Два первых БИХ-фильтра 604 и два первых КИХ-фильтра 605 в цепи содержат последовательно соединенные умножитель, сумматор и элемент задержки.
Последующие (за первыми двумя) БИХ-фильтры 604 и КИХ-фильтры 605 в цепи содержат последовательно соединенные умножитель, управляющий элемент «И», сумматор и элемент задержки, при этом выход умножителя соединен с первым входом управляющего элемента «И», выход которого соединен со входом элемента задержки, а второй вход управляющего элемента «И» выполнен с возможностью получения сигнала разрешения (t=Tmax, t=Tmax-1, t=Tmax-2, …, t=1), с помощью которого отключают фильтр.
Декодирование кодов Рида-Соломона структурно показано на Фиг. 7. Принятые данные (с возможными ошибками) v(x) поступают в схему декодера, одновременно происходит запись этих данных в буфер FIFO. Декодирование поделено на четыре основных этапа. Сначала данные поступают в схему вычисления синдромов (признаки ошибок), первые n тактов, потому как кодовое слово стало длины n. Дальнейшие вычисления декодер проводит с вычисленными синдромами. Следующий этап - вычисление полинома локаторов ошибок. Например, в алгоритме Берлекэмпа - Мэсси (ВМА) без инверсии для данного этапа требуется 2t тактов (где t - количество исправляемых ошибок, с которым было закодировано переданное кодовое слово). Далее вычисленные коэффициенты уравнения поступают в схемы поиска позиций ошибок, и в схему поиска значений ошибок. После вычисления полинома значений ошибок этот полином вместе с указателями позиций ошибок из схемы поиска позиций ошибок подают на схему составления вектора ошибок. Данная схема формирует маску e(x) для исправления искаженных данных v(x) при считывании из буфера FIFO. При фиксированном параметре m поля Галуа, декодер, реконфигурируемый по количеству исправляемых ошибок, реализуют путем изменения количества тактов необходимых для работы алгоритма ВМА и схемы поиска значений ошибок. Таким образом, при добавлении к схеме декодера управления в зависимости от параметра t (максимальное количество исправляемых ошибок), декодер становится реконфигурируемым в зависимости от корректирующей способности, с которой было закодировано кодовое слово.
Заявленный реконфигурируемый кодер Рида-Соломона содержит умножители в поле Галуа, фильтры БИХ первого порядка в количестве 2 Tmax штук, фильтры КИХ первого порядка в количестве 2 Tmax штук, управляющие элементы «И» включения\отключения фильтров в общую цепь, регистры для конвейеризации схемы кодера, сумматоры в поле Галуа, элементы «И» включения\отключения фильтров БИХ.
Заявленный реконфигурируемый кодер Рида-Соломона имеет следующие преимущества:
- обладает реконфигурируемостью под любое количество исправляемых ошибок от Tmax до 1, а также высоким быстродействием ввиду возможной конвейеризации;
- позволяет кодировать данные кодом Рида-Соломона с разной корректирующей способностью, то есть количеством исправляемых ошибок (символов) от Tmax до 1;
- обладает крайне высоким быстродействием ввиду минимальных критических путей между тактируемыми регистрами из-за возможности вставки конвейерных регистров между фильтрами;
- использует минимальные аппаратные ресурсы, сопоставимые с аналогичным нереконфигурируемым кодером;
- предельно прост в управлении: если перед загрузкой данных инициализируют сигналы разрешения (например t>Tmax-1 - для количества исправляемых ошибок равное Tmax, или t>Tmax-3 - для количества исправляемых ошибок равное Tmax-2) определенных фильтров, при этом включают те фильтры, которые необходимы для заданного количества исправляемых ошибок; первые к тактов работы кодера загружают данные, при этом сигнал data_enc в состоянии «1», после чего обнуляют сигнал data_enc и следующие 2t тактов происходит выгрузка контрольных символов данных.
Заявленный кодер может быть реализован в одном из следующих устройств: контроллер жестких дисков, дисков SSD, контроллер NAND-flash памяти, IP-блок в составе СнК и др.
Реконфигурируемый декодер кодов Рида-Соломона содержит схему вычисления синдромов; схему вычисления полинома локаторов ошибок (по алгоритму ВМА без инверсии), схему поиска значений ошибок, схему поиска позиций ошибок; схему составления вектора ошибок, буфер FIFO для хранения принятых, но неисправленных данных, схему исправления ошибок (XOR).
Декодер кодов PC является реконфигурируемым по корректирующей способности. А именно, декодер при фиксированном расширении m поля Галуа GF(2m), может исправлять количество ошибок от tmax до 1, в зависимости от конфигурации закодированного слова. Это осуществляют путем изменения количества тактов для работы алгоритма ВМА от 2 tmax до 1, а также количества тактов для работы схемы поиска позиций ошибок от tmax до 1.
Хотя описанный выше вариант выполнения полезной модели был изложен с целью иллюстрации настоящей полезной модели, специалистам ясно, что возможны разные модификации, добавления и замены, не выходящие из объема и смысла настоящей полезной модели, раскрытого в прилагаемой формуле полезной модели.

Claims (4)

1. Реконфигурируемый кодер Рида-Соломона, содержащий массив элементов «И», цепь последовательно соединенных БИХ-фильтров первого порядка и цепь последовательно соединенных КИХ-фильтров первого порядка, причем, по меньшей мере, два БИХ-фильтра и, по меньшей мере, два КИХ-фильтра содержат управляющие элементы «И», при этом вход цепи БИХ-фильтров является входом кодера, а выход цепи БИХ-фильтров соединен с первым входом массива элементов «И», выход которого соединен со входом цепи КИХ-фильтров, выход которой является выходом кодера, а второй вход массива элементов «И» выполнен с возможностью получения сигналов разрешения или запрещения выдачи контрольных бит закодированных данных, при этом в течение первых k тактов работы кодера (k - количество информационных символов), при поданном на массив элементов «И» сигнале разрешения выдачи информационных данных, на выход кодера поступают данные с его входа, а в течение следующих 2t тактов работы кодера (2t - количество проверочных символов), при поданном на массив элементов «И» сигнале запрещения выдачи информационных данных, на выход кодера поступают сформированные кодером контрольные данные, причем вторые входы управляющих элементов «И» выполнены с возможностью получения сигналов разрешения, с помощью которых отключают фильтры.
2. Кодер по п. 1, отличающийся тем, что он конвейеризован дополнительными элементами задержки (регистрами), которые расположены в местах соединений соседних БИХ-фильтров или КИХ-фильтров цепи.
3. Кодер по п. 1, отличающийся тем, что два первых БИХ-фильтра и два первых КИХ-фильтра в цепи содержат последовательно соединенные умножитель, сумматор и элемент задержки.
4. Кодер по п. 1, отличающийся тем, что по меньшей мере, два последних БИХ-фильтра и два последних КИХ-фильтра в цепи содержат последовательно соединенные умножитель, управляющий элемент «И», элемент задержки и сумматор, при этом выход умножителя соединен с первым входом управляющего элемента «И», выход которого соединен со входом элемента задержки, а второй вход управляющего элемента «И» выполнен с возможностью получения сигнала разрешения, с помощью которого отключают фильтр.
Figure 00000001
RU2015129664/08U 2015-07-21 2015-07-21 Реконфигурируемый кодер рида-соломона RU160960U1 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2015129664/08U RU160960U1 (ru) 2015-07-21 2015-07-21 Реконфигурируемый кодер рида-соломона

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2015129664/08U RU160960U1 (ru) 2015-07-21 2015-07-21 Реконфигурируемый кодер рида-соломона

Publications (1)

Publication Number Publication Date
RU160960U1 true RU160960U1 (ru) 2016-04-10

Family

ID=55659785

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2015129664/08U RU160960U1 (ru) 2015-07-21 2015-07-21 Реконфигурируемый кодер рида-соломона

Country Status (1)

Country Link
RU (1) RU160960U1 (ru)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2777527C1 (ru) * 2021-07-23 2022-08-05 Акционерное общество Научно-производственный центр «Электронные вычислительно-информационные системы» (АО НПЦ «ЭЛВИС») Параллельный кодер бчх с реконфигурируемой корректирующей способностью

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2777527C1 (ru) * 2021-07-23 2022-08-05 Акционерное общество Научно-производственный центр «Электронные вычислительно-информационные системы» (АО НПЦ «ЭЛВИС») Параллельный кодер бчх с реконфигурируемой корректирующей способностью

Similar Documents

Publication Publication Date Title
US4649541A (en) Reed-Solomon decoder
US8464141B2 (en) Programmable error correction capability for BCH codes
US4873688A (en) High-speed real-time Reed-Solomon decoder
US5535225A (en) Time domain algebraic encoder/decoder
Freudenberger et al. A configurable Bose–Chaudhuri–Hocquenghem codec architecture for flash controller applications
Wilhelm A new scalable VLSI architecture for Reed-Solomon decoders
US8719678B2 (en) Configurable encoder for cyclic error correction codes
US9065482B1 (en) Circuit for forward error correction encoding of data blocks
US9337869B2 (en) Encoding and syndrome computing co-design circuit for BCH code and method for deciding the same
RU2605672C1 (ru) Реконфигурируемый кодер рида-соломона
JPH09505952A (ja) プログラム可能な冗長/シンドローム生成装置
RU2314639C1 (ru) Устройство декодирования кодов рида-соломона
KR20190003315A (ko) 일반화된 텐서곱(gtp) 코드의 효율적인 인코딩 방법 및 그 장치
US6405339B1 (en) Parallelized programmable encoder/syndrome generator
RU160960U1 (ru) Реконфигурируемый кодер рида-соломона
Mohammed et al. Design and implementation of 2 bits BCH error correcting codes using FPGA
KR101619049B1 (ko) 병렬 bch 디코더
RU188390U1 (ru) Параллельный реконфигурируемый кодер рида-соломона
KR101636406B1 (ko) 저지연 신드롬 계산을 위한 bch 디코더의 전처리 장치 및 방법
JPH0476540B2 (ru)
RU157943U1 (ru) Параллельный реконфигурируемый кодер бчх кодов
WO2006120691A1 (en) Galois field arithmetic unit for error detection and correction in processors
Belyaev et al. Reed-solomon encoder design by means of the digital filtration
RU2713517C1 (ru) Параллельный реконфигурируемый кодер рида-соломона
RU2591474C1 (ru) Параллельный реконфигурируемый кодер бчх кодов

Legal Events

Date Code Title Description
MG1K Anticipatory lapse of a utility model patent in case of granting an identical utility model

Ref document number: 2015129662

Country of ref document: RU

Effective date: 20161227