JP2012195866A - 符号化器及び記憶装置 - Google Patents

符号化器及び記憶装置 Download PDF

Info

Publication number
JP2012195866A
JP2012195866A JP2011059721A JP2011059721A JP2012195866A JP 2012195866 A JP2012195866 A JP 2012195866A JP 2011059721 A JP2011059721 A JP 2011059721A JP 2011059721 A JP2011059721 A JP 2011059721A JP 2012195866 A JP2012195866 A JP 2012195866A
Authority
JP
Japan
Prior art keywords
matrix
row
cyclic
zero
rank
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2011059721A
Other languages
English (en)
Other versions
JP5269936B2 (ja
Inventor
Haruka Obata
晴香 小畑
Hironori Uchikawa
浩典 内川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2011059721A priority Critical patent/JP5269936B2/ja
Priority to US13/363,667 priority patent/US20120240008A1/en
Publication of JP2012195866A publication Critical patent/JP2012195866A/ja
Application granted granted Critical
Publication of JP5269936B2 publication Critical patent/JP5269936B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/11Error 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 using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/118Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
    • 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/611Specific encoding aspects, e.g. encoding by means of decoding

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

【課題】ランク落ちの検査行列に対応し、かつ、巡回行列部分を含む生成行列を用いて符号化を実行する。
【解決手段】実施形態によれば、符号化器101は、下三角行列を含み、かつ、1以上の巡回行列または零行列からなるランク落ちの検査行列のうち前記下三角行列と同一行を除いた部分検査行列に対応する生成行列を用いて準組織符号化を行う。生成行列は、1以上の巡回行列を含む巡回行列部分と、部分検査行列のランク落ち数と同じ行数の非巡回行列部分とを含む。
【選択図】図1

Description

実施形態は、誤り訂正符号化に関する。
ハードウェア実装などの簡易性から、複数の巡回行列を結合した疑似巡回行列(或いは、1つの巡回行列)を検査行列として利用する手法が注目されている。係る検査行列がフルランクであるならば、検査行列の右側部分行列の対角化を通じて、1以上の巡回行列を含む巡回行列部分を備える生成行列を導出することができる。
しかしながら、係る検査行列は必ずしもフルランクでなく、ランク落ち(rank deficient)であるかもしれない。検査行列がランク落ちである場合に、検査行列の右側部分行列の一部を対角化することは可能である。しかしながら、単なる対角化を通じて導出される生成行列は巡回行列部分を備えない。係る生成行列を用いる符号化は、符号化器のハードウェア実装を複雑化するので好ましくない。
また、生成行列は、非零要素が疎である(即ち、非零要素の数が少ない)ことが望まれる。非零要素が疎であるほど、符号化器における符号化(即ち、情報ベクトルと生成行列との乗算)の計算複雑性が低減する。
"Efficient Encoding of Quasi−Cyclic Low−Density Parity−Check Codes" Zong wang Li, Lei Chen, Lingqi Zeng, Shu Lin, and Wai H. Fong IEEE TRANSACTIONS ON COMMUNICATIONS, VOL. 54, NO. 1, JANUARY 2006
実施形態は、ランク落ちの検査行列に対応し、かつ、巡回行列部分を含む生成行列を用いて符号化を実行することを目的とする。
実施形態によれば、符号化器は、下三角行列を含み、かつ、1以上の巡回行列または零行列からなるランク落ちの検査行列のうち前記下三角行列と同一行を除いた部分検査行列に対応する生成行列を用いて準組織符号化を行う。生成行列は、1以上の巡回行列を含む巡回行列部分と、部分検査行列のランク落ち数と同じ行数の非巡回行列部分とを含む。
実施形態に係る符号化器を含む半導体メモリ装置を例示するブロック図。 ランク落ちの疑似巡回行列である検査行列を例示する図。 図2の検査行列の右側部分行列の一部を対角化することにより導出される行列を例示する図。 図3の行列から導出される行列を例示する図。 図4の行列に行基本変形を適用することにより導出される生成行列を例示する図。 3ランク落ちの疑似巡回行列である検査行列の右側部分行列の一部を対角化することにより導出される行列を例示する図。 図6の行列から導出される行列を例示する図。 図7の行列に行基本変形を適用することにより導出される生成行列を例示する図。
以下、図面を参照しながら実施形態についての説明が述べられる。尚、各実施形態の説明において、簡単化のために、シンボルは2元体上で定義される2元符号であるとする。即ち、以降の説明において、シンボルの取り得る非零要素は「1」のみであるとする。但し、各実施形態は、シンボルが多元体上で定義される多元符号にも適用可能である。
実施形態に係る符号化器は、例えば記憶装置などの記録再生系に組み込まれたり、送信装置などの通信系に組み込まれたりする。一般に、実施形態に係る符号化器は、誤り訂正符号化を必要とする任意の構成の機器に組み込まれてよい。例えば、実施形態に係る符号化器101は、図1に示される記憶装置103に組み込まれてもよい。
記憶装置103は、フラッシュメモリなどの不揮発性メモリである少なくとも1つの半導体メモリ部105と、半導体メモリ部105を制御するメモリコントローラ102とを含む。記憶装置103は、ホスト104(例えば、パーソナルコンピュータ、デジタルカメラなど)と接続し、ホスト104との間でデータを送受信する。例えば、ホスト104は、記憶装置103からデータを読み出したり、記憶装置103にデータを書き込んだりすることができる。
メモリコントローラ102は、ROM(Read Only Memory)107、CPU(Central Processing Unit)コア108、RAM(Random Access Memory)109、ホストI/F(インタフェース)110、誤り訂正部111及びメモリI/F112を含む。メモリコントローラ102の各要素は、バス106によって互いに接続されている。
CPUコア108は、ホストI/F110を介してホスト104との間でデータを送受信したり、メモリI/F112を介して半導体メモリ部105との間でデータを送受信したりする。即ち、CPUコア108は、半導体メモリ部105からデータを受ける読み出し部として機能したり、半導体メモリ部105にデータを送る書き込み部として機能したりする。また、CPUコア108上で実行されるFW(Firm Ware)は、書き換え回数の制限を含む半導体メモリ部105のアドレス管理を実現する。更に、FWは、ホスト104からのコマンド入力に応じた記憶装置103全体の制御も実現する。
ROM107には、記憶装置103の制御プログラムなどが記憶されている。RAM109には、アドレス管理において必要となるアドレス変換テーブル、異常回路の情報などが記憶される。
誤り訂正部111は、符号化器101及び復号器113を含む。符号化器101には、実施形態に係る符号化器が組み込まれる。符号化器101は、半導体メモリ部105に書き込まれるデータに誤り訂正符号を付加する。具体的には、後述されるように、符号化器101は、ランク落ちの検査行列に対応し、かつ、巡回行列部分を含む生成行列を用いて符号化を実行する。また、典型的には、この巡回行列部分は、非零要素の数が疎となるように(少なくとも、最も密とならないように)導出される。従って、符号化器101は、簡易なハードウェア実装を採用できると共に、符号化の計算複雑性が小さい。一方、復号器113は、上記検査行列を用いて、半導体メモリ部105からの読み出しデータに対する誤り訂正復号を行う。この検査行列は疑似巡回行列であるので、復号器113は簡易なハードウェア実装を採用できる。
(第1の実施形態)
以下、第1の実施形態に係る符号化器が用いる生成行列と、その導出手法とが述べられる。第1の実施形態に係る符号化器が用いる生成行列は、フルランクでない疑似巡回行列または巡回行列である検査行列に基づいて導出される。即ち、検査行列は、1以上の巡回行列からなり、ランク落ち(rank deficient)である。この生成行列は、1以上の巡回行列を含む巡回行列部分と、検査行列のランク落ち数と同じ行数の非巡回行列部分とを含む。
疑似巡回行列とは、b行×b列の巡回行列または零行列を複数配列したものを意味する。巡回行列とは、全ての行ベクトルが夫々1つ上の行ベクトルの要素を1つだけ右方向に巡回シフトさせたものである行列を意味する。零行列とは、全ての要素が零の行列を意味する。このb行×b列の巡回行列または零行列は、ブロックとも称される。一般に、疑似巡回行列である検査行列Hqcは、例えば下記の数式(1)で表すことができる。
Figure 2012195866
数式(1)において、Ai,jは1ブロックを表す(iは1以上c以下の整数、jは1以上t以下の整数)。検査行列Hqcによって定義される符号語の全長はt×bシンボルであり、その情報長は(t−c)×bシンボルであり、そのパリティ長はc×bシンボルである。また、符号語の全長、情報長及びパリティ長は、ブロックサイズbによって換算されてもよい。即ち、符号語の全長はtブロックであり、その情報長は(t−c)ブロックであり、そのパリティ長はcブロックである。
仮に、検査行列Hqcがフルランクであるならば、行基本変形を用いて当該検査行列Hqcの右側部分行列(具体的には、第t−c+1列から第t列まで)を完全に対角化することによって、下記の数式(2)が得られる。フルランクとは、行列の階数(rank)がその行列の行数と同じであることを意味する。即ち、フルランクとは、行列に含まれる1次独立な行ベクトルの最大個数が行数と同じであることを意味する。フルランクな行列は対角化可能である。
Figure 2012195866
以降の説明において、Iは単位行列を表し、0は零行列を表す。尚、右側部分行列の対角化のための行基本変形は数式(1)における左側部分行列に含まれる各ブロックAi,jにも影響するので、これら各ブロックAi,jは数式(2)に示されるようにA’i,jへと変形される。変形された各ブロックA’i,jもまた、巡回行列または零行列である。数式(2)のうち左側部分行列(具体的には、第1列から第t−c列)を下記の数式(3)で表すと、検査行列Hqcに基づく生成行列Gは下記の数式(4)で表すことができる。尚、以降の説明において、Tは転置を表す。
Figure 2012195866
Figure 2012195866
行列Aは前述の通り疑似巡回行列であるので、この転置行列Aもまた疑似巡回行列である。即ち、検査行列Hqcがフルランクの疑似巡回行列であるならば、当該検査行列Hqcの右側部分行列の対角化によって得られる疑似巡回行列Aの転置行列Aを単位行列Iの右端に結合することによって、巡回行列部分(A)を含む生成行列Gを導出することができる。巡回行列部分を含む生成行列を用いた符号化は、例えばシフトレジスタを用いて簡易に実装することができる。
情報シンボルを配列した情報ベクトルを生成行列に乗じると、符号語(ベクトル)が得られる。数式(4)の生成行列Gによって得られる符号語において、情報ベクトルに含まれる情報シンボルは全て維持されており、これらに後続してパリティシンボルが配列される。即ち、数式(4)の生成行列Gは組織符号化を実現する。
一方、検査行列Hqcがフルランクでない(即ち、ランク落ち)の疑似巡回行列であるならば、当該検査行列Hqcの右側部分行列を完全に対角化することはできない。ランク落ちとは、行列の階数がその行列の行数未満であることを意味する。即ち、ランク落ちとは、行列に含まれる1次独立な行ベクトルの最大個数が行数未満であることを意味する。尚、行列の行数とその行列の階数との間の差がXである場合に、その行列はXランク落ちの行列と称される。
図2に示される検査行列Hqcは、1ランク落ちの疑似巡回行列の一例である。図2の検査行列Hqcは、6行×6列の巡回行列を行方向に2個、列方向に4個配列したものである。即ち、図2の検査行列Hqcによって定義される符号語の全長は4ブロック(即ち、24(=4×6)シンボル)、その情報長は2(=4−2)ブロック(即ち、12(=2×6)シンボル)、そのパリティ長は2ブロック(即ち、12(=2×6)シンボル)と見積もることができる。但し、検査行列Hqcのランク落ちの数だけ符号語の真のパリティ長は削られる。従って、図2の検査行列Hqcによって定義される符号語の真のパリティ長は11(=12−1)シンボルであり、その真の情報長は13(=24−11)シンボルである。
前述のように、図2の検査行列Hqcの右側部分行列を完全に対角化することはできない。しかしながら、図3に示されるように、行基本変形を用いて図2の検査行列Hqcにおける右側部分行列の一部を対角化することは可能である。
図3の行列において、図2の検査行列Hqcのランク落ちに対応する行ベクトル20が含まれる。ランク落ちに対応する行ベクトル20のうち、図3の行列の右側部分行列(即ち、第13列から第24列まで)の対角成分(即ち、第1行第13列の要素)に一致する要素は「0」である。以降の説明において、係る要素は便宜的に対象要素と称される。対象要素は、ランク落ちに対応する行ベクトルの各々に1つだけ含まれる。
前述のフルランクな検査行列Hqcの右側部分行列の対角化を通じた生成行列の導出手法によれば、対角化された行列の残部である左側部分行列(即ち、前述の数式(3)の行列A)が抜き出される。同様に、図3の例についても、左側部分行列10(便宜的に、行列Bと称される)が抜き出される。更に、ランク落ちに対応する行ベクトル20に対して対象要素において交差する列ベクトル30が抜き出される。この列ベクトル30の対象要素が「1」に置換され、ベクトルQが形成される。行列Bの右端にベクトルQが結合され、12行×13列の行列[BQ]が作成される。
尚、ランク落ちに対応する行ベクトルの総数は、検査行列Hqcのランク落ち数と一致する。即ち、行ベクトルに対して対象要素において交差する列ベクトルの総数もまた、検査行列Hqcのランク落ち数と一致する。従って、検査行列Hqcのランク落ち数が2以上であるならば、後述のように、係る列ベクトルの対象要素を「1」に置換したものを列方向に結合して行列Qが形成される。
行列[BQ]は転置され、数式(3)と同様に、行列Bの列数と同じサイズの単位行列の右端に結合される。但し、単位行列と行列[BQ]の行数を揃えるために、単位行列の下端には零ベクトル(或いは、零行列)が結合される。係る一連の操作によって、下記の数式(5)に示される行列Gを導出できる。
Figure 2012195866
図3の行列に係る操作を適用すると、図4に示される行列が導出される。図4において、行列40は行列[BQ]に対応し、行列50は行列Bに対応する。
以降の説明では、図2の疑似巡回行列の構造に対応する2×2個のブロック51,52,53,54を巡回行列に変形するための手法が述べられる。尚、図4から明らかなように、ブロック51,52,53,54はいずれも巡回行列ではない。
具体的には、数式(5)のベクトルQ’(或いは、行列Q’に含まれる行ベクトル)の0個以上を用いた行基本変形によって行列G’に含まれる各ブロックを巡回行列に変形することができる。行列G’において、同じ行に配列される1以上のブロックを纏めたブロックグループが形成される。図4の例であれば、ブロック51,52からなるブロックグループとブロック53,54からなるブロックグループとが形成される。
ブロックグループ内の任意の一行を対象行として行基本変形が適用される。そして、ブロックグループ内の各ブロックが行基本変形された対象行の部分ベクトルを含む巡回行列となるように、ブロックグループ内の他の全ての行に行基本変形が適用される。図4の例であれば、第5行を対象行として第13行を加算する行基本変形を適用できる。そして、ブロック51,52が、行基本変形された第5行の部分ベクトル[100000],[001100]を含む巡回行列となるように、ブロックグループ内の他の全ての行に行基本変形が適用される。具体的には、第1,2,3,4,6行は無変形となる(即ち、0個の行ベクトルを用いた行基本変形が適用される)。
係る操作によれば、数式(6)に示されるように、行列G’の右側部分行列を疑似巡回行列に変形することができる。数式(6)において、G1,1,G1,2,G2,1,G2,2は、いずれも巡回行列である。数式(5)及び数式(6)に基づいて、数式(7)に示される生成行列G’qcを導出できる。
Figure 2012195866
Figure 2012195866
図4の行列に基づく生成行列G’qcの一例が図5に示されている。図5において、行列60は巡回行列部分を表し、行列70は非巡回行列部分を表す。巡回行列部分60は、前述のブロック51,52,53,54を巡回行列に変形したブロック61,62,63,64を含む。また行列80は、単位行列部分を含むものの、その最終列(即ち、第13列)を巡回行列部分60及び非巡回行列部分70と共有している。従って、係る生成行列によって得られる符号語において、第1番目から第12番目までの情報シンボルは維持されるものの、第13番目の情報シンボルは第1番目のパリティシンボルと混合される。即ち、数式(7)の生成行列G’qcは準組織符号化を実現する。数式(7)の生成行列G’qcによる準組織符号化において、検査行列のランク落ち数と同数の情報シンボルにパリティシンボルが混合される。本実施形態に係る符号化器は、数式(7)の生成行列G’qcを用いて符号化を実行する。
ここで、ブロック51,52,53,54を巡回行列に変形するための行基本変形には任意性が存在する。例えば、第5行を対象行として、これを無変形とすることもできる。そして、ブロック51,52が行基本変形された第5行の部分ベクトル[011111],[110011]を含む巡回行列となるように、ブロックグループ内の他の行に基本変形が行われる。具体的には、第1,2,3,4,6行に第13行が加算される。係る操作によっても、ブロック51,52を巡回行列に変形できる。
非巡回行列部分Q’に含まれる行ベクトルの0個以上を用いて対象行に適用可能な行基本変形の組み合わせは、係る行ベクトルの総数に応じて増大する。係る行ベクトルの総数がnであるならば、2通りの行基本変形(即ち、非巡回行列部分Q’に含まれるn個の行ベクトルの各々を対象行に加算する/しない)が存在する。
そこで、本実施形態に係る符号化器が用いる生成行列G’qcは、巡回行列部分に含まれる非零要素の数が疎となる(少なくなる)ように導出されるものとする。具体的には、対象行に適用可能な少なくとも2つの行基本変形のうち、行基本変形された対象行に含まれる非零要素の数が最大とならないものが適用される。換言すれば、導出された生成行列G’qcにおいて、非巡回行列部分に含まれる行ベクトルの0個以上を用いた少なくとも2つの行基本変形の中に巡回行列部分に含まれる任意の1行に適用すると非零要素の数を増大させるものが少なくとも1つ存在する。
例えば、(A)対象行に含まれる非零要素の数が最も少なくなる(即ち、最も疎になる)行基本変形を探索し、探索した行基本変形を対象行に適用してもよい。方針(A)によって導出された生成行列G’qcにおいて、非巡回行列部分に含まれる行ベクトルの0個以上を用いた少なくとも2つの行基本変形の中に巡回行列部分に含まれる任意の1行に適用すると非零要素の数を減少させるものが存在しない。或いは、(B)対象行について少なくも2つの行基本変形を試行し、非零の数が最大とならない(例えば、最小となる)行基本変形を選択し、選択した行基本変形を対象行に適用してもよい。或いは、(C)対象行とブロックグループ内の1または複数の他の行との中で非零要素の数を比較し、非零要素の数が最大でない(例えば、最小の)一行(対象行であってもよい)を選択する。更に、ブロックグループ内の各ブロックが選択された一行の部分ベクトルを含む巡回行列となるように、対象行に適用される行基本変形が探索されてよい。
係る種々の方針のいずれかによって巡回行列部分を導出すれば、本実施形態に係る符号化器が実行する符号化の計算複雑性を低減できる。
以上説明したように、第1の実施形態に係る符号化器は、ランク落ちの検査行列に対応し、かつ、巡回行列部分を含む生成行列を用いて準組織符号化を実行する。従って、本実施形態に係る符号化器によれば、簡易なハードウェア実装を採用できる。更に、第1の実施形態に係る符号化器は、巡回行列部分に含まれる非零要素の数が最大とならないように導出された生成行列を用いて準組織符号化を実行する。従って本実施形態に係る符号化器によれば、符号化の計算複雑性を低減できる。
尚、図2乃至図5を用いた説明では、簡単化のために、1ランク落ちの検査行列Hqcが例示された。しかしながら、以下に説明されるように、2以上ランク落ちの検査行列Hqcから巡回行列部分を含み、かつ、当該巡回行列部分に含まれる非零要素の数が最大とならないように生成行列を導出することができる。
ここで、検査行列Hqcは、10行×10列の巡回行列を行方向に4個、列方向に5個配列した3ランク落ちの疑似巡回行列であると仮定される。即ち、検査行列Hqcによって定義される符号語の全長は5ブロック(即ち、50(=5×10)シンボル)、その情報長は1(=5−4)ブロック(即ち、10=(=1×10)シンボル)、そのパリティ長は4ブロック(即ち、40(=4×10)シンボル)と見積もることができる。但し、検査行列Hqcのランク落ちの数だけ符号語の真のパリティ長は削られる。従って、検査行列Hqcによって定義される符号語の真のパリティ長は37(=40−3)シンボルであり、その真の情報長は13(=50−37)シンボルである。
前述のように、検査行列Hqcの右側部分行列を完全に対角化することはできない。しかしながら、図6に示されるように、行基本変形を用いて検査行列Hqcにおける右側部分行列の一部を対角化することが可能である。
図6の行列において、検査行列Hqcのランク落ちに対応する行ベクトル221,222,223が含まれる。前述のように、これら行ベクトル221,222,223は、1つの対象要素を夫々含んでいる。
図6の例についても、左側部分行列210が前述の行列Bとして抜き出される。更に、ランク落ちに対応する行ベクトル221,222,223に対して対象要素において交差する列ベクトル231,232,233が抜き出される。これら列ベクトル231,232,233の対象要素が「1」に置換され、列方向に結合されて前述の行列Qが形成される。行列Bの右端に行列Qが結合され、40行13列の行列[BQ]が作成される。
行列[BQ]は転置され、数式(3)と同様に、行列Bの列数と同じサイズの単位行列の右端に結合される。但し、単位行列と行列[BQ]の行数を揃えるために、単位行列の下端に零行列が結合される。係る一連の操作によって、上記の数式(6)に示される行列Gを導出できる。
図6の行列に係る操作を適用すると、図7に示される行列が導出される。図7において、行列240は行列[BQ]に対応し、行列250は行列Bに対応する。1×4個のブロック251,252,253,254は、巡回行列に夫々変形される。
具体的には、前述のように、数式(5)の行列Q’に含まれる行ベクトルの0個以上を用いた行基本変形によって行列G’に含まれる各ブロックを巡回行列に変形することができる。行列G’において、同じ行に配列される1以上のブロックを纏めたブロックグループが形成される。図7の例であれば、ブロック251,252,253,254からなるブロックグループが形成される。
ブロックグループ内の任意の一行を対象行として行基本変形が適用される。そして、ブロックグループ内の各ブロックが行基本変形された対象行の部分ベクトルを含む巡回行列となるように、ブロックグループ内の他の全ての行に行基本変形が適用される。図7の例であれば、第1行を対象行として第12行及び第13行を加算する行基本変形を適用できる。そして、ブロック251,252,253,254が、行基本変形された第1行の部分ベクトル[0100010000],[1100010000],[1000001010],[0011001000]を含む巡回行列となるように、ブロックグループ内の他の全ての行に行基本変形が適用される。結果的に、図8に示される生成行列G’qcが導出される。
図8において、行列260は巡回行列部分を表し、行列270は非巡回行列部分を表す。行列260は、前述のブロック251,252,253,254を巡回行列に変形したブロック261,262,263,264を含む。図8に示される生成行列G’qcもまた準組織符号化を実現する。即ち、図8の生成行列G’qcによって得られる符号語において、第1番目から第10番目までのシンボルは維持されるものの、第11番目のシンボルは第1番目のパリティシンボルと混合され、第12番目のシンボルは第11番目のパリティシンボルと混合され、第13番目のシンボルは第21番目のパリティシンボルと混合される。尚、図7の行列から導出可能な生成行列G’qcは図8に示されるものに限られないが、前述の通り巡回行列部分に含まれる非零要素が最大とならないように生成行列が導出されるものとする。
(第2の実施形態)
前述の第1の実施形態に係る符号化器は、ランク落ちの疑似巡回行列である検査行列に対応する生成行列を用いて符号化を実行する。第2の実施形態において、検査行列はR&U(Richardson and Urbanke)方式などの下三角行列部分を含むものである。尚、本実施形態の説明は具体化のためにR&U方式を中心に展開されるものの、本実施形態は下三角行列部分を含む検査行列に広く適用可能である。
R&U方式の検査行列Hqcは、下記の数式(8)で表すことができる。
Figure 2012195866
数式(8)において、6つの部分行列A,B,T,C,D,Eは1つまたは複数のb行×b列の巡回行列または零行列(即ち、ブロック)からなる。Aはc2ブロック行×tブロック列の巡回行列または零行列からなる行列を表し、Bはc2ブロック行×c1ブロック列の巡回行列または零行列からなる行列を表し、Tはc2ブロック行×c2ブロック列の巡回行列または零行列からなる下三角行列である。下三角行列とは、対角要素よりも右側或いは上側の全ての要素が零の行列を意味する。また、数式(8)において、Cはc1ブロック行×tブロック列の行列を表し、Dはc1ブロック行×c1ブロック列の行列を表し、Eはc1ブロック行×c2ブロック列の行列を表す。即ち、数式(8)の検査行列Hqcによって定義される符号語の全長はb・(t+c1+c2)シンボルであり、その情報長はb・tシンボルであり、そのパリティ長はb・(c1+c2)シンボルである。
部分行列Tは下三角行列なので、逆行列T−1が存在する。従って、下記の数式(9)に示されるように、適切な行列を検査行列Hqcの左側から乗算することによって、部分行列Eを零行列に変換できる。尚、以降の説明において、行列の右上に「−1」を付したものは、当該行列の逆行列を表す。
Figure 2012195866
数式(9)の検査行列H’qcによって定義される符号語ベクトルwに関して、H’qc=0が成立する。この符号語ベクトルwのうち、b・t個の情報シンボルからなる部分ベクトルをmで表し、後続するb・c1個のパリティシンボルからなる部分ベクトルをpで表し、後続するb・c2個のパリティシンボルからなる部分ベクトルをpで表すと、w=[mp]である。数式(9)及び符号語ベクトルwの定義によれば、部分ベクトルpに関して下記の数式(10)が成立する。また、部分ベクトルpに関して下記の数式(11)が成立する。尚、数式(10)のφは、下記の数式(12)によって定義される。
Figure 2012195866
Figure 2012195866
Figure 2012195866
数式(10)には、行列φの逆行列φ−1が含まれている。しかしながら、本実施形態において検査行列Hqcはランク落ちなので、行列φの逆行列φ−1は存在しない。そこで、数式(9)を参照し、部分ベクトルpに関する部分検査行列Hqc p1を下記の数式(13)によって定義することとする。
Figure 2012195866
数式(13)の部分検査行列Hqc p1は、ランク落ちの(疑似)巡回行列であるという点で前述の数式(1)の検査行列Hqcと共通している。従って、部分検査行列Hqc p1を数式(1)の検査行列Hqcとみなして前述の第1の実施形態と同様の手法を適用すれば、この部分検査行列Hqc p1に対応する部分生成行列を導出できる。この部分生成行列は、第1の実施形態に係る符号化器が用いる生成行列と同じく、巡回行列部分を含み、かつ、この巡回行列部分に含まれる非零の数が最大とならないように導出される。
一方、部分ベクトルpは、上記数式(11)によれば、部分ベクトルm及び部分ベクトルpから導出できる。尚、検査行列HqcがLDPC符号などを定義するものである場合には、部分行列A,Bは非常に疎であるため、部分ベクトルpを導出する演算量が小さく、符号化器の計算複雑性を低減できる。また、下三角行列である部分行列Tの逆行列T−1が存在することは前述の通りである。
以上説明したように、第2の実施形態に係る符号化器は、ランク落ちのR&U方式の検査行列のうち一部のパリティに関する部分検査行列に対応し、かつ、巡回行列部分を含む部分生成行列を用いて準組織符号化を実行する。従って、本実施形態に係る符号化器によれば、簡易なハードウェア実装を採用できる。更に、第2の実施形態に係る符号化器は、巡回行列部分に含まれる非零要素の数が最大とならないように導出された部分生成行列を用いて準組織符号化を実行する。従って、本実施形態に係る符号化器によれば、符号化の計算複雑性を低減できる。
上記各実施形態の処理は、汎用のコンピュータを基本ハードウェアとして用いることで実現可能である。上記各実施形態の処理を実現するプログラムは、コンピュータで読み取り可能な記憶媒体に格納して提供されてもよい。プログラムは、インストール可能な形式のファイルまたは実行可能な形式のファイルとして記憶媒体に記憶される。記憶媒体としては、磁気ディスク、光ディスク(CD−ROM、CD−R、DVD等)、光磁気ディスク(MO等)、半導体メモリなど、プログラムを記憶でき、かつ、コンピュータが読み取り可能な記憶媒体であれば、何れであってもよい。また、上記各実施形態の処理を実現するプログラムを、インターネットなどのネットワークに接続されたコンピュータ(サーバ)上に格納し、ネットワーク経由でコンピュータ(クライアント)にダウンロードさせてもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
101・・・符号化器
102・・・メモリコントローラ
103・・・記憶装置
104・・・ホスト
105・・・半導体メモリ部
106・・・バス
107・・・ROM
108・・・CPUコア
109・・・RAM
110・・・ホストI/F
111・・・誤り訂正部
112・・・メモリI/F
113・・・復号器

Claims (5)

  1. 下三角行列を含み、かつ、1以上の巡回行列または零行列からなるランク落ちの検査行列のうち前記下三角行列と同一行を除いた部分検査行列に対応する生成行列を用いて準組織符号化を行う符号化器において、
    前記生成行列は、1以上の巡回行列を含む巡回行列部分と、前記部分検査行列のランク落ち数と同じ行数の非巡回行列部分とを含む、
    符号化器。
  2. 前記非巡回行列部分に含まれる行ベクトルの0個以上を用いた少なくとも2つの行基本変形の中に前記巡回行列部分に含まれる任意の一行に適用すると非零要素の数を増大させるものが存在する、請求項1の符号化器。
  3. 1以上の巡回行列または零行列からなるランク落ちの検査行列に対応する生成行列を用いて準組織符号化を行う符号化器において、
    前記生成行列は、1以上の巡回行列を含む巡回行列部分と、前記検査行列のランク落ち数と同じ行数の非巡回行列部分とを含み、
    前記非巡回行列部分に含まれる行ベクトルの0個以上を用いた少なくとも2つの行基本変形の中に前記巡回行列部分に含まれる任意の一行に適用すると非零要素の数を増大させるものが存在する、
    符号化器。
  4. 前記非巡回行列部分に含まれる行ベクトルの0個以上を用いた少なくとも2つの行基本変形の中に前記巡回行列部分に含まれる任意の一行に適用すると非零要素の数を減少させるものが存在しない、請求項2または請求項3記載の符号化器。
  5. 半導体メモリ部と、
    前記生成行列を用いて符号語を生成する請求項1または請求項3記載の符号化器と、前記符号語を前記半導体メモリ部に送る書き込み部とを備えるコントローラと
    を具備する、記憶装置。
JP2011059721A 2011-03-17 2011-03-17 符号化器及び記憶装置 Expired - Fee Related JP5269936B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011059721A JP5269936B2 (ja) 2011-03-17 2011-03-17 符号化器及び記憶装置
US13/363,667 US20120240008A1 (en) 2011-03-17 2012-02-01 Encoder and storage apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011059721A JP5269936B2 (ja) 2011-03-17 2011-03-17 符号化器及び記憶装置

Publications (2)

Publication Number Publication Date
JP2012195866A true JP2012195866A (ja) 2012-10-11
JP5269936B2 JP5269936B2 (ja) 2013-08-21

Family

ID=46829469

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011059721A Expired - Fee Related JP5269936B2 (ja) 2011-03-17 2011-03-17 符号化器及び記憶装置

Country Status (2)

Country Link
US (1) US20120240008A1 (ja)
JP (1) JP5269936B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130044694A (ko) * 2011-10-24 2013-05-03 삼성전자주식회사 메모리 시스템 및 그 데이터 기록 재생 방법
RU2014104573A (ru) * 2014-02-10 2015-08-20 ЭлЭсАй Корпорейшн Системы и способы для кодирования неполного ранга
TWI602188B (zh) * 2017-01-03 2017-10-11 慧榮科技股份有限公司 用來於記憶裝置中進行資料管理之方法以及記憶裝置及其控制器
TWI651730B (zh) * 2017-01-03 2019-02-21 慧榮科技股份有限公司 用來於記憶裝置中進行資料管理之方法以及記憶裝置及其控制器
US11016844B2 (en) * 2019-03-15 2021-05-25 Toshiba Memory Corporation Error correction code structure

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008086008A (ja) * 2006-08-31 2008-04-10 Matsushita Electric Ind Co Ltd 符号化方法、符号化装置、及び送信装置
WO2008112625A1 (en) * 2007-03-09 2008-09-18 Qualcomm Incorporated Encoding and decoding of low density parity check (ldpc ) codes

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7162684B2 (en) * 2003-01-27 2007-01-09 Texas Instruments Incorporated Efficient encoder for low-density-parity-check codes
US7499490B2 (en) * 2005-06-24 2009-03-03 California Institute Of Technology Encoders for block-circulant LDPC codes
US8397125B2 (en) * 2008-12-31 2013-03-12 Stmicroelectronics, Inc. Encoding apparatus, system, and method using low density parity check (LDPC) codes
US8839069B2 (en) * 2011-04-08 2014-09-16 Micron Technology, Inc. Encoding and decoding techniques using low-density parity check codes

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008086008A (ja) * 2006-08-31 2008-04-10 Matsushita Electric Ind Co Ltd 符号化方法、符号化装置、及び送信装置
WO2008112625A1 (en) * 2007-03-09 2008-09-18 Qualcomm Incorporated Encoding and decoding of low density parity check (ldpc ) codes

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JPN6013002989; 小畑 晴香 外1名: 'フルランクでない検査行列で定義されるQuasi-Cyclic LDPC符号の符号化演算量の削減' 電子情報通信学会技術研究報告 , 201109, pp.35-40 *
JPN6013002990; Zongwang Li et al.: 'Efficient encoding of quasi-cyclic low-density parity-check codes' IEEE Transactions of Communications Vol.54, No.1, 200601, pp.71-81 *
JPN6013002994; Aaron E. Cohen et al.: 'A low-complexity hybrid LDPC code encoder for IEEE 802.3an (10GBase-T) Ethernet' IEEE Transactions on Signal Processing Vol.57, No.10, 200910, pp.4085-4094 *

Also Published As

Publication number Publication date
JP5269936B2 (ja) 2013-08-21
US20120240008A1 (en) 2012-09-20

Similar Documents

Publication Publication Date Title
KR101789959B1 (ko) 구조적 ldpc의 인코딩 방법, 디코딩 방법, 인코딩 장치 및 디코딩 장치
WO2016181980A1 (ja) 秘密分散方法、秘密分散システム、分散装置、およびプログラム
JP5112468B2 (ja) 誤り検出訂正回路、メモリコントローラ、および半導体メモリ装置
US8739005B2 (en) Error correction encoding apparatus, error correction decoding apparatus, nonvolatile semiconductor memory system, and parity check matrix generation method
JP5269936B2 (ja) 符号化器及び記憶装置
JP2012244305A (ja) メモリコントローラ、半導体メモリ装置、および復号方法
US8751895B2 (en) Semiconductor memory device and decoding method
WO2019246527A1 (en) Method and apparatus for improved data recovery in data storage systems
US10778251B2 (en) Method and apparatus for encoding quasi-cyclic low-density parity check codes
JP5918884B1 (ja) 復号装置、復号方法、およびプログラム
US9584158B2 (en) Unified H-encoder for a class of multi-rate LDPC codes
JP5665725B2 (ja) 符号化装置及びこれを用いた半導体メモリシステム
JP5488472B2 (ja) 復号装置、この復号装置を有するデータ通信装置およびデータ記憶装置
KR101923116B1 (ko) 분산 저장 시스템에서 부분접속 복구 부호를 이용하는 부호화/복호화 장치 및 방법
CN107534450B (zh) 矩阵应用装置、矩阵应用方法、以及存储介质
US11190220B2 (en) Apparatus and method for managing parity check matrix
US20140258807A1 (en) Decoding and Optimized Implementation of SECDED Codes over GF(q)
JP5510447B2 (ja) 復号装置および復号方法
CN115237662A (zh) 一种分布式存储节点纠错方法及系统
EP2951926B1 (en) Ldpc code design and encoding apparatus for their application
Yang et al. Hierarchical Hybrid Error Correction for Time-Sensitive Devices at the Edge
CN115549699A (zh) 译码的方法、装置、电子设备及计算机可读存储介质
CN113411087A (zh) 解码q元LDPC的方法、电路及包括其的接收机
JP2019057806A (ja) メモリシステム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130129

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130328

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130416

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130508

LAPS Cancellation because of no payment of annual fees