JP2013069377A - 復号方法、復号装置および記憶装置 - Google Patents
復号方法、復号装置および記憶装置 Download PDFInfo
- Publication number
- JP2013069377A JP2013069377A JP2011208038A JP2011208038A JP2013069377A JP 2013069377 A JP2013069377 A JP 2013069377A JP 2011208038 A JP2011208038 A JP 2011208038A JP 2011208038 A JP2011208038 A JP 2011208038A JP 2013069377 A JP2013069377 A JP 2013069377A
- Authority
- JP
- Japan
- Prior art keywords
- error
- unit
- calculation
- data
- syndrome
- 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.)
- Withdrawn
Links
Images
Landscapes
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
【課題】回路規模を削減した復号装置を得ること。
【解決手段】データと誤り検出符号と最大訂正能力をTビットとする誤り訂正符号とで構成される符号語に基づいて誤り訂正処理を行う復号装置であって、符号語に基づいて前記符号語に基づいて、少なくとも一部の処理でJ(Jは1以上T未満の整数)ビット誤りまでに対応可能な演算器を用いた誤り訂正処理を行う誤り訂正処理部と、誤り訂正処理の開始時に誤り数期待値を初期値I(Iは1以上T未満の整数)とし、設定した誤り数期待値に対応する演算を行うよう誤り訂正処理部を制御し、誤り検出符号に基づき誤り検出部により誤り訂正後のデータに誤りが検出されなかった場合処理を終了し、誤り訂正後のデータに誤りが検出された場合、誤り数期待値を増加させて演算を行うよう誤り訂正処理部を制御する動作を、誤り検出部により誤りが検出されなくなるまでまたは誤り数期待値がTビットとなるまで繰り返す。
【選択図】図1
【解決手段】データと誤り検出符号と最大訂正能力をTビットとする誤り訂正符号とで構成される符号語に基づいて誤り訂正処理を行う復号装置であって、符号語に基づいて前記符号語に基づいて、少なくとも一部の処理でJ(Jは1以上T未満の整数)ビット誤りまでに対応可能な演算器を用いた誤り訂正処理を行う誤り訂正処理部と、誤り訂正処理の開始時に誤り数期待値を初期値I(Iは1以上T未満の整数)とし、設定した誤り数期待値に対応する演算を行うよう誤り訂正処理部を制御し、誤り検出符号に基づき誤り検出部により誤り訂正後のデータに誤りが検出されなかった場合処理を終了し、誤り訂正後のデータに誤りが検出された場合、誤り数期待値を増加させて演算を行うよう誤り訂正処理部を制御する動作を、誤り検出部により誤りが検出されなくなるまでまたは誤り数期待値がTビットとなるまで繰り返す。
【選択図】図1
Description
本発明の実施形態は、復号方法、復号装置および記憶装置に関する。
半導体メモリの微細化に伴い高い誤り訂正能力がメモリシステムに対して求められている。従来、BCH符号等の誤り訂正符号を復号する復号器を実装する場合には、システムで規定した最大の誤り訂正ビット数に対応する回路を実装している。
本実施形態は、少ない回路資源を用いて誤りビット数に応じた訂正処理を実行することが可能な復号方法、復号装置および記憶装置を提供する。
本願発明の一態様によれば、データと誤り検出符号と最大訂正能力をTビットとする誤り訂正符号とで構成される符号語に基づいて誤り訂正処理を行う復号装置であって、前記符号語に基づいて、少なくとも一部の誤り訂正処理でJ(Jは1以上T未満の整数)ビット誤りまでに対応可能な演算器を用いた誤り訂正処理を行う誤り訂正処理部と、誤り訂正処理の開始時に誤り数期待値を初期値I(Iは1以上T未満の整数)とし、設定した誤り数期待値に対応する演算を行うよう誤り訂正処理部を制御し、誤り検出符号に基づき誤り検出部により誤り訂正後のデータに誤りが検出されなかった場合処理を終了し、誤り訂正後のデータに誤りが検出された場合、誤り数期待値を増加させて演算を行うよう誤り訂正処理部を制御する動作を、誤り検出部により誤りが検出されなくなるまでまたは誤り数期待値がTビットとなるまで繰り返す。
従来技術では、システムで規定した最大の誤り訂正ビット数に対応する回路を実装しているため、復号器がメモリシステムの制御回路の大部分を占めている。しかし、符号語内に存在する誤りビット数は平均的にはシステムで規定した最大の誤りビット数よりも非常に少ないため、復号器の大部分の回路が有効に活用されていない。
以下に添付図面を参照して、実施形態にかかる復号方法、復号装置および記憶装置を詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。
(第1の実施の形態)
図1は、第1の実施の形態にかかる半導体記憶装置(記憶装置)1の構成例を示すブロック図である。本実施の形態の半導体記憶装置1は、メモリコントローラ(メモリ制御装置)2と、NAND型記憶セルを備える半導体メモリ部(メモリ部)3と、で構成される。半導体記憶装置1は、通信インタフェースを介してホスト4に接続され、ホスト4に対する外部記憶媒体として機能する。ホスト4の例としては、パーソナルコンピュータやCPU(Central Processing Unit)コア等があげられる。
図1は、第1の実施の形態にかかる半導体記憶装置(記憶装置)1の構成例を示すブロック図である。本実施の形態の半導体記憶装置1は、メモリコントローラ(メモリ制御装置)2と、NAND型記憶セルを備える半導体メモリ部(メモリ部)3と、で構成される。半導体記憶装置1は、通信インタフェースを介してホスト4に接続され、ホスト4に対する外部記憶媒体として機能する。ホスト4の例としては、パーソナルコンピュータやCPU(Central Processing Unit)コア等があげられる。
メモリ部3は、例えばNAND型フラッシュメモリ等の不揮発性半導体メモリにより構成される。メモリ部3が備えるメモリチップは単数であってよいし、複数で合ってもよい。メモリ部3が複数のメモリチップを備える場合、複数のメモリチップを並列駆動してもよい。また、個々の記憶セルは1ビットを記憶する(SLC:Single Level Cell)ものであってもよいし、2ビット以上を記憶する(MLC:Multi Level Cell)ものであってもよい。メモリ部3がNAND型フラッシュメモリにより構成される場合、メモリチップ内部でのデータの書き込み及び読出しはページ単位で実行され、データの消去は複数のページをまとめたブロック単位で実行される。また、同一ページへのデータの再書き込みは、当該ページを含むブロック内のデータ全体を消去した後でなければ許可されない。
メモリコントローラ2は、内部バス20と、HostI/F(インタフェース)21と、NANDI/F(メモリ制御部)22と、制御部23と、符号化/復号化処理部24と、で構成される。符号化/復号化処理部24は、符号化部25と、復号化部26と、で構成される。
HostI/F21は、ホスト4から受信した命令、データなどを内部バス20に出力する。また、HostI/F21は、内部バス20経由で入力されたデータ、制御部23からの応答通知(命令の実行完了を示す通知など)などをホスト4へ送信する。HostI/F21は、例えば、SATA(Serial Advanced Technology Attachment)、SAS(Serial Attached SCSI)、PCI(Peripheral Component Interconnect) Express等の通信インタフェース規格に準拠している。
制御部23は、半導体記憶装置1の各構成要素を統括的に制御する制御部であり、CPUコア、RAM(Random Access Memory)、ROM(Read Only Memory)、DMA(Direct Memory Access)コントローラなどで構成される。制御部23は、ホスト4からHostI/F21および内部バス20経由で命令を受けた場合に、その命令に従った制御を行う。例えば、制御部23は、ホスト4からの命令に従って、半導体メモリ部3へのデータの書き込み、半導体メモリ部3からのデータの読み出しなどをNANDI/F22へ指示する。また、制御部23は、符号化/復号化処理部24へ誤り訂正符号化処理または復号化処理の実施を指示する。
符号化/復号化処理部24は、制御部23の指示に基づいて、ホスト4から受信したデータに対して誤り訂正符号化処理を行い、NANDI/F22へ出力し、NANDI/F22から入力されるデータに対して復号化処理を行う。NANDI/F22は、制御部23の指示に基づいて半導体メモリ部3の読み書き等を行なう。
なお、図1に示した半導体記憶装置1の構成は一例であり、半導体メモリとその半導体メモリの読み書きを制御するコントローラを備え、ホスト4と通信が可能な構成であれば、図1に示した構成に限らずどのような構成でもよい。また、半導体メモリ部3の代わりに半導体メモリ以外の記憶手段を用いてもよい。
次に、本実施の形態の半導体メモリ部3への書き込み動作について説明する。まず、制御部23は、ホスト4からデータの書き込みを指示されると、符号化/復号化処理部24に符号化の実施を指示するとともに、NANDI/F22へ半導体メモリ部3への書き込みを指示する。ホスト4から送信される書き込み対象のデータは、半導体記憶装置1内の図示しないバッファメモリに書き込まれる。符号化/復号化処理部24の符号化部25は、バッファメモリから入力されるデータに対して誤り検出符号および誤り訂正符号を生成し、生成した符号をNANDI/F22へ出力する。NANDI/F22は、バッファメモリから入力されるデータと、符号化部25が生成した符号と、を半導体メモリ部3へ書き込む。
本実施の形態では、符号化部25は、符号化処理として、誤り検出符号および誤り訂正符号を生成する。図2は、本実施の形態の符号化部25の構成例を示す図である。なお、ここでは、符号化部25が、誤り検出符号としてCRCを生成する例を説明するが、誤り検出符号はCRCに限定されない。図2に示すように、符号化部25は、所定のサイズの書き込みデータに基づいてCRC(Cyclic Redundancy Check)を生成する誤り検出符号エンコーダ(誤り検出符号化部)251と、所定のサイズの書き込みデータと当該データに対応するCRCとに基づいて誤り訂正符号を生成する誤り訂正符号エンコーダ252と、を備える。また、誤り訂正符号としてはどのような符号を用いてもよいが、例えばBCH符号やRS(Reed−Solomon)符号等を用いることができる。以下BCH符号を例にとって説明する。
図3は、半導体メモリ部3へ書き込まれるデータと符号の関係と誤り検出および訂正の対象範囲の概念を示す図である。また、図4乃至7は誤り検出符号および誤り訂正符号のエンコード/デコードのイメージを示す図である。図4に示すように、所定のサイズの書き込みデータ(図4ではデータと記載)に基づいてCRCが生成され、図5に示すように所定のサイズの書き込みデータと対応するCRCとを誤り訂正符号化対象として誤り訂正符号が生成される。なお、図6に示すように誤り訂正処理を行う際には、書込み時に生成したデータとデータに対応するCRCおよび誤り訂正符号を用いて誤り訂正処理を行う。
また、同様に、図7に示すように誤り検出処理を行う際には、書込み時に生成したデータとデータに対応するCRCから誤り検出処理を行う。なお、図3では、1組のデータとCRCに対して1つの誤り訂正符号が生成される例を示しているが、データとCRCの複数組に対して1つの誤り訂正符号を生成するようにしてもよい。
次に、本実施の形態の半導体メモリ部3からの読出し動作について説明する。制御部23は、ホスト4からデータの読み出しを指示されると、符号化/復号化処理部24に復号化の実施を指示するとともに、NANDI/F22へ半導体メモリ部3からの読み出しを指示する。NANDI/F22は、制御部23からの指示に基づいて半導体メモリ部3からデータと対応する誤り検出符号および誤り訂正符号とを読み出し、読み出したデータと対応する誤り検出符号および誤り訂正符号を符号化/復号化処理部24へ出力する。符号化/復号化処理部24の復号化部26は、読み出したデータと誤り検出符号および誤り訂正符号とに基づいて復号処理を行い、読み出したデータに誤りが有ると判断した場合には、誤り訂正を実施する。HostI/F21は、誤り訂正後のデータ(誤りの無い場合には、半導体メモリ部3から読み出したデータ)をホスト4に送信する。
以下、本実施の形態の復号処理について説明する。図8は、本実施の形態の復号化部26の構成例を示す図である。復号化部(復号装置)26は、図8に示すように、シンドローム計算部261と、誤り位置多項式演算部262と、チェンサーチ部(誤り位置計算部)263と、誤り検出符号デコーダ(誤り検出部)264と、復号制御部265と、を備える。シンドローム計算部261、誤り位置多項式演算部262およびチェンサーチ部263は、誤り訂正処理を行う誤り訂正処理部(誤り訂正処理デコーダ)を構成する。
本実施の形態では、符号語の訂正可能な最大の誤り訂正ビット数(以下、最大訂正ビット数という)に比べ、実際の復号(誤り訂正復号)対象の符号語に含まれる誤りビット数が平均的には低いことに着目し、最大訂正ビット数より少ないビットを誤り数期待値として設定して復号処理を行い、正しく復号できたかどうかを誤り検出符号デコーダ264でチェックし、この復号処理で正しく訂正されなかった場合に、誤り数期待値を増やして再度計算する。さらにこの復号処理で正しく訂正されなかった場合に、誤り数期待値を増やしてシンドローム計算から誤り検出符号デコードまでを再度計算する。このように誤り数期待値の設定と復号処理と復号結果のチェックをデータが正しく訂正されるまで繰り返し、誤り数期待値を最大訂正ビット数に設定しても正しく訂正されなかった場合には訂正不可と判定する。
本実施の形態では、このような処理を行うことにより、1回の誤り数期待値の増加量と復号処理で使用する演算器量を平均的な誤りビット数に合わせて備えることで、最大訂正ビット数に対応した演算器を備える場合とくらべて回路規模を削減しつつ訂正処理にかかる平均的な時間を同程度に抑えることができる。
本実施の形態では、符号語の誤り訂正能力として誤り数期待値Xを設定してデータが正しく訂正されたと誤り検出符号デコーダが判断した場合に処理を打ち切るため、最大訂正ビット数を設定してシンドローム計算から誤り検出符号デコーダまでの処理を繰り返し実行した時間よりも早く処理を打ち切ることが可能になる。特に符号語中に含まれる誤りビット数が復号化部内に備える演算器の数以下である場合にはシンドローム計算から誤り検出符号デコーダまでの処理を1回の処理で完了できるため、最大訂正ビット数に応じた演算器を備える場合と同じ計算時間になる。一般に平均誤り数は最大訂正ビット数より低いため、誤り数期待値Xの更新方法等を適切に実施すれば平均的には処理速度は向上する。
図9は、本実施の形態の復号処理手順の一例を示すフローチャートである。なお、復号処理中の誤り位置多項式の計算は、BM(Berlekamp−Massey)法、ユークリッド互除法、ピーターソン法等どのような方法を用いてもよいが、以下の説明では、BM法を用いることを想定して説明する。なお、符号化部25は最大訂正ビット数であるTビットの誤り訂正符号を生成しているとする。
制御部23は、HostI/F21経由でホスト4からデータの読み出し要求を受け取ると、読み出し対象のデータを読み出すようNANDI/F22へ指示し、NAND I/F22は読み出し対象のデータを対応するCRCおよび誤り訂正符号とともに読み出し、復号化部26へ渡す。復号化部26では、NANDI/F22から読み出し対象のデータを受け取ると復号処理を開始する。
復号処理を開始すると、復号制御部265は、誤り数期待値XをA(A<T)ビット単位で更新する(ステップS1)。具体的には、処理の開始後、最初(1サイクル目)のステップS1ではX=Aと設定し、2回目(2サイクル目)のステップS1ではXにAを加算する。なお、後述のように、本実施の形態では、設定した誤り数期待値Xで誤り訂正が正しく行えなかった場合には、ステップS1に戻って誤り数期待値Xを更新して再度演算を行うが、これらの1回の誤り数期待値Xの設定を1サイクルと表記する。なお、誤り数期待値Xを増加させる変数であるAは平均誤り数以上の値を設定することが望ましい。平均誤り数と同じ値を用いた場合、平均的なサイクル数を1に押さえることができる。
次に、復号制御部265は、シンドローム計算を実施する(ステップS2,S3)。図10は、シンドローム計算部261の構成例とシンドローム計算の概念を示す図である。シンドローム計算部261は、例えば、加算器51−1〜51−N(Nは、1以上の整数)、乗算器(演算器)52−1〜52−N、レジスタ53−1〜53−Nおよびシンドローム記憶部54を備える。乗算器52−1〜52−Nに設定される係数は、後述するように計算する項に応じて復号制御部265により設定される。入力されるデータに基づいて加算器51−i(i=1,2,…,N)と乗算器52−iにより演算がなされ、演算結果はレジスタ53−iに入力される。そしてレジスタ53−1〜53−Nに格納された演算結果は、それぞれシンドローム記憶部54に格納される。なお、乗算器と加算器の個数を表すNは、平均誤り数に応じて設定することが望ましい。これは平均的な誤り数が発生した時に高速に訂正ができる必要があるためである。また、Zビットの訂正を行う場合にはZ×2個のシンドロームが必要になる。このためこれ以降の説明では、平均誤り数をAビットとし、N=A×2として説明する。
図10では、加算器および乗算器の演算幅がKビットであるとしている。この場合、シンドローム記憶部54は、Kビット×最大訂正ビット数T×2以上の領域を有する。なお、演算幅のKビットはガロア体の次数で決まる。
ステップS3では、シンドローム計算部261は、上記の2×A組の加算器、乗算器およびレジスタを用いて、それぞれシンドロームS(α1),S(α2),S(α3),…,S(α2X)を求める。具体的には、例えばA=4とし2サイクル目の誤り数期待値X=8でシンドロームの計算をするとした場合、8×2=16個のシンドロームをN=2×A=8個の演算器で計算をする。
図11は、本実施の形態のシンドローム計算手順の一例を示すフローチャートである。まず、シンドローム計算を開始すると、復号制御部265は、誤り数期待値Xと計算済みのシンドローム数とに基づいて2×A個の乗算器の係数を設定する(ステップS21)。そして、2×A個の乗算器によりシンドローム計算を実施して計算結果をシンドローム記憶部54へ格納し(ステップS22)、当該サイクル内で計算済みのシンドローム数を更新する(ステップS23)。当該サイクル内で計算済みのシンドローム数とは、ステップS1で誤り数期待値が設定され、次のステップS1を実施するまでの1サイクルのなかで、計算済みのシンドローム数であり、誤り数期待値が更新されて次のサイクルのシンドローム計算が開始される際には初期化(計算済みのシンドローム数は0)されるとする。
そして、復号制御部265は、計算済みのシンドローム数がX個となったか否かを判断し(ステップS24)、X個となった場合(ステップS24 Yes)には処理を終了し、X個未満の場合(ステップS24 No)、ステップS21へ戻る。
例えば、A=4とし、2サイクル(図9のステップS1で更新されるサイクル)目に相当する誤り数期待値X=8でシンドロームの計算をするとした場合、シンドローム計算部261は8個(2×A個)の演算回路を有し、1サイクル目のシンドローム計算では、はじめ(1周目)のステップS21では、S(α1),S(α2),S(α3),…,S(α8)を求めるよう係数が設定される。このS(α1),S(α2),S(α3),…,S(α8)は、シンドローム記憶部54へ格納され、2周目のステップS21では、S(α9),S(α10),S(α11),…,S(α16)を求めるよう係数が設定され、2周目のステップS24でX個のシンドロームを計算したと判定されてそのサイクルのシンドローム計算を終了する。なお、ここでは、シンドローム計算部261は、2×A個の乗算器を有することとしたが、2×B個(A≠B)の乗算器を有するように構成してもよい。この場合、ステップS21では2×B個の係数を計算してステップS22では2×B個のシンドロームを求めることになる。
シンドローム計算部261は、以上の処理により2×X個のシンドロームの計算が終了すると、シンドローム記憶部54に格納されている2×X個のシンドロームを誤り位置多項式演算部262へ渡す。
図9の説明に戻り、ステップS3を実施した後、復号制御部265は、誤り位置多項式演算部262に計算済みのシンドローム計算結果を用いて誤り数期待値Xに対応する処理を行うよう指示し、誤り位置多項式演算部262が誤り位置多項式演算を実施する(ステップS4)。
誤り位置多項式演算は、誤り位置多項式をσ(z)とするとき、σ(z)=1+σ1z1+σ2z2+…の係数σ1,σ2,…をシンドロームの値から計算する処理である。具体的な方法としては、Berlekamp−Massey(BM)法、ユークリッド互除法、ピーターソン法等がある。ピーターソン法は、行列計算で係数σとシンドロームの間に成り立つ連立方程式を解く方法であり、BM法およびユークリッド互助法は多項式を使って係数σとシンドロームの連立方程式を逐次的に計算する方法である。
図12は、誤り位置多項式演算部262の演算器の構成例とBM法およびユークリッド互助法で用いる多項式演算の概念を示す図である。誤り位置多項式演算部262は、平均的な誤り数に合わせた数のガロア体計算回路(演算器)61−1〜61−Mと、ガロア体演算回路62と、を備える。なお、図7では誤り数期待値を増加させる数に合わせてM=Aとしている。
誤り位置多項式演算部262では、シンドローム記憶部54へ格納されたシンドロームを用いて、例えば、図12に示すように、ガロア体計算回路61−1〜61−Mが、多項式x0z0,x1z1,…に定数を乗算するようなガロア体の乗算等の演算を各項ごとに各々行い、演算結果をメモリ上に保持し、多項式の全ての項の計算が終わっていない場合には、残りの項の演算をガロア体計算回路の個数単位で計算をする。
なお、誤り位置多項式は、ユークリッド互除法やBM法等の計算アルゴリズムによって計算方法が異なるため具体的な計算方法については省略するが、いずれの場合もM個のガロア体計算回路を用いて、誤り数期待値Xビットに対応する多項式の計算を時分割で実行し、係数σを導出する。
図13は、誤り位置多項式演算の一例を示すフローチャートである。誤り位置多項式演算部262は、シンドローム計算部261からシンドロームの計算結果を取得すると、誤り多項式の項数iを1に設定する(ステップS31)。そして、σ(z)や評価式等の計算を行う(ステップS32)。ステップS32の演算内容は、ユークリッド互除法やBM法等の計算アルゴリズムに依存するが、一般にはガロア体計算回路を、誤り位置多項式の項の数であるi個備えて演算を行う。そして、ガロア体計算回路の結果に基づいてガロア体演算回路62により、評価式の計算等を実施する。本実施の形態では、ガロア体計算回路の個数をM(=A)としているため、iがMより大きい場合には、時分割で計算を行う。
図14は、ステップS32の計算手順の一例を示すフローチャートである。まず、復号制御部265は、A個のガロア体計算回路61−1〜61−M(=A)の係数を指定し(ステップS35)、演算を実行する(ステップS36)。そして、演算により求めた計算結果を復号制御部265へ出力する(ステップS37)。復号制御部265は、i個の多項式の全ての項を計算したか否かを判断し(ステップS38)、計算した場合(ステップS38 Yes)処理を終了して、図13のステップS33へ進む。i個の多項式のうち計算していない項がある場合(ステップS38 No)、ステップS35へ戻り残りの項を計算する。
図13の説明に戻り、ステップS32の演算の後、復号制御部265は、i=Xであるか否かを判断する(ステップS33)。i=Xの場合(ステップS33 Yes)は、処理を終了して、図9のステップS5へ進む。i=Xでない場合(ステップS33 No)は、i=i+1とし(ステップS34)、ステップS32へ戻る。なお、上述の例では、M=AとしてA個ずつの演算を行っているが、M=Aでない場合には、M個ずつの演算を行えばよい。また、実際の誤り数iがXよりも少ないことがステップS32の評価式の結果により判明した場合などにはi=Xになっていなくても終了する動作を行ってよい。
次に、誤り位置多項式演算部262は、演算結果に基づいて、誤り位置多項式演算におけるエラーを検出したか否かを判断し、エラーを検出した場合は復号制御部265へ通知する(ステップS5)。例えば、評価関数を用いて導出した係数σが正しいかどうかを判断する計算アルゴリズムでは、評価関数を計算した結果が正しいかどうかで判断する。なお、評価関数が定義されない誤り位置多項式の計算アルゴリズムを用いる場合等には、ステップS5を行わなくてもよい。
エラーを検出しなかった場合(ステップS5 No)、復号制御部265は、チェンサーチ部263の乗算器71−1〜71−Lに誤り位置多項式の計算で導出した係数σを設定し、チェンサーチ部263は係数σから誤り位置の特定を実施する(ステップS6)。チェンサーチは、誤り位置多項式σ(z)に順次値を代入しσ(z)=0となる値である誤りロケータ(誤り位置)を探索する手法である。
図15は、チェンサーチ部263の構成例とチェンサーチの概念を示す図である。チェンサーチ部263は、乗算回路(演算器)71−1〜71−Lと、加算器72と、レジスタ73と、を備える。なお、Lは1以上の整数であれば良いが、シンドロームや誤り位置多項式の演算器の決定方法と同じ理由で、図15ではL=Aとしている。加算器72は、レジスタに格納されている値を読み出して読み出した値と乗算回路71−1〜71−Lの各々乗算結果とのそれぞれ累積ExOR演算を行い、レジスタ73に演算結果を保持する。レジスタ73の初期値は0が設定される。
図16は、一般的なチェンサーチの計算手順を示す概念図である。一般的なチェンサーチでは、最大訂正能力の個数分の演算器と演算器に対応するレジスタを備る。レジスタには、誤り位置多項式の計算で求めたσ1,σ2,…,σTを初期値として設定し、レジスタの内容と対応する演算器で定数α1,α2,α3…,αTTの演算をそれぞれ行い、演算結果をレジスタに格納すると共に、それぞれの演算結果のExOR演算を行う。
図17は、本実施の形態のチェンサーチの計算手順を示す概念図である。図17では、誤り数期待値Xに対応するチェンサーチで実施するガロア体演算を、L(=A)個の乗算回路71−1〜71−Lを用いて演算する場合の概念を示している。例えば、A=4とし、2サイクル目の計算の場合、誤り位置多項式演算では、σ1〜σ8の8個の係数が算出され、これらは乗算回路71−1〜71−L内のレジスタに格納されているとする。復号制御部265は、加算用レジスタであるレジスタ73を初期化する。
次に、復号制御部265は、σ1〜σ4のレジスタを選択し、乗算回路71−1〜71−Lにそれぞれ係数を設定する。乗算回路71−1〜71−Lは、σ1〜σ4と係数とに基づいてガロア体演算を行い、乗算結果を乗算回路71−1〜71−L内のレジスタへ格納する。そして、全ての乗算回路71−1〜71−Lの乗算結果とレジスタ73の内容とを加算し、加算結果をレジスタ73へ格納する。次に、σ5〜σ8のレジスタ(乗算回路71−1〜71−L内のレジスタ)を選択し、乗算回路71−1〜71−Lにそれぞれ係数を設定する。乗算回路71−1〜71−Lは、σ5〜σ8と係数とに基づいてガロア体演算を行い、乗算結果をレジスタへ格納する。全ての乗算回路71−1〜71−Lの乗算結果とレジスタ73の内容とを加算し、加算結果をレジスタ73へ格納する。そして、レジスタ73の内容が0ならば誤りロケータとする。
図18は、本実施の形態のチェンサーチ手順の一例を示すフローチャートである。上述した図17のガロア体演算は、図18のステップS41〜S44を2周実施した例に対応する。まず、チェンサーチを開始すると、レジスタ73の値を初期化し(ステップS41)、誤り位置多項式の計算結果(あるいは計算途中の結果)に対応する乗算回路71−1〜71−Lの係数を設定する(ステップS42)。そして、チェンサーチ部263のL個の乗算回路71−1〜71−Lによる係数とレジスタ内データとの演算を実行して乗算結果を再びレジスタ内に書き戻す(ステップS43)、加算器72が乗算回路71−1〜71−Lの乗算結果とレジスタ73との値に基づいて累積ExORを求め、求めた結果をレジスタ73に格納する(ステップS44)。そして、復号制御部265は、当該サイクルで設定された誤り数期待値Xに対応する計算が終了したか否かを判断する(ステップS45)。
当該サイクルで設定された誤り数期待値Xに対応する計算が終了した場合(ステップS45 Yes)、復号制御部265は、累積ExORの結果が0であるか否かを判断する(ステップS46)。累積ExORの結果が0の場合(ステップS46 Yes)、代入したαiに対応するビットを誤り位置として決定し(ステップS47)、符号語に含まれる全てのビットを検査したか否かを判断し(ステップS48)、全てのビットを検査した場合(ステップS48 Yes)、処理を終了する。全てのビットを検査済みでない場合(ステップS48 No)、ステップS41へ戻り、αiのiの値を変えて次のビットについて検査を行う。なお、詳細は割愛するが符号語のビット数がガロア体の空間で利用可能なビット数よりも少ない場合には、チェンサーチを開始する位置を計算する処理を加えてもよい。
ステップS45で誤り数期待値Xに対応する計算が終了していないと判断した場合(ステップS45 No)は、ステップS42へ戻る。また、ステップS46で累積ExORの結果が0でないと判断した場合(ステップS46 No)、ステップS48へ進む。
復号制御部265は、ExOR演算の結果が0であれば、対応するビットに誤りがあると判定し、当該ビットを反転させる。復号制御部265は、チェンサーチによって誤りがあると判定したビットの数と対応する誤り位置を保持しておく。
図9の説明に戻り、チェンサーチの終了後、誤り位置多項式の計算で導出した多項式の項の数とチェンサーチにより導出した誤りロケータの数とが不一致であるか否かを判断する(ステップS7)。解の個数が一致した場合(ステップS7 No)、復号制御部265は、誤り位置が誤り訂正対象として設定されている範囲外であるか否かを判断する(ステップS8)。誤り位置が誤り訂正対象として設定されている範囲外でないと判断した場合(ステップS8 No)、復号制御部265は、誤りロケータが指す誤り位置のビットを実際に反転し、誤り検出符号デコーダ264へ誤り検出処理の開始を指示し、誤り検出符号デコーダ264は誤り検出処理(CRC計算)を実施する(ステップS9)。具体的には、誤り検出符号デコーダ264は、誤り訂正後のデータおよび対応するCRCを用いて誤り訂正後のデータに誤りがあるか否かを判定する。
誤り検出処理の実施後、復号制御部265は、誤り検出符号デコーダ264が実施した誤り検出処理の結果に誤りが無いか否かに基づいて、正しく誤り訂正ができたか否かを判断する(ステップS10)。正しく誤り訂正ができたと判断した場合(ステップS10 Yes)、処理を終了する。
一方、ステップS5でエラーを検出した場合(ステップS5 Yes)、ステップS7で解の個数が不一致であると判断した場合(ステップS7 Yes)、ステップS8で誤り位置が誤り訂正対象として設定されている範囲外であると判断した場合(ステップS8 Yes)には、復号制御部265は、誤り数期待値が最大値(すなわちX=T)であるか否かを判断する(ステップS11)。誤り数期待値が最大値である場合(ステップS11 Yes)は、復号制御部265は、誤り訂正不可と判定して処理を終了する。誤り数期待値が最大値でない場合(ステップS11 No)は、ステップS1へ戻る。ステップS11を経由してステップS1へ戻ると、次のサイクルの処理が開始される。
以上の処理により、最大訂正ビット数に対応した演算回路を備えなくても、復号処理を行うことができる。また、例えば、最大訂正ビット数を20ビットとし、A=4とした場合に、実際の誤りの発生数が4ビット以下であれば、1サイクル目で計算が終了することになり、処理速度が向上する。
以上述べた誤り数期待値の更新方法は一例であり、例えば、処理の開始後、最初のステップS1ではX=A´(A´<A)と設定して、以降はXにAを加算していく方法等、サイクルごとに誤り数期待値を増やしていく方法であればどのような方法でもよい。
なお、本実施の形態では、シンドローム計算部261と誤り位置多項式演算部262とチェンサーチ部263では、演算の係数の設定等が異なるものの、乗算等演算自体が共通するものもある。従って、シンドローム計算部261、誤り位置多項式演算部262およびチェンサーチ部263で一部の演算器を共用してもよい。例えば、シンドローム計算部261の乗算器52−1〜52−Nと、誤り位置多項式演算部262のガロア体計算回路61−1〜61−Mと、で同一の演算器を用いてもよい。このような構成にするとさらに演算回路を削減することができる。
また、シンドローム計算部261、誤り位置多項式演算部262およびチェンサーチ部263が備える各演算器の個数N,M,Lはそれぞれ異なる値であってもよく、N/2(すなわちシンドローム計算部261が対応可能な訂正ビット数),M,Lのうち少なくとも1つがT未満の数であればよい。すなわちN/2,M,Lのうちの最小値をJとするとき、JがT未満であればよい。
以上のように、本実施の形態では、最大訂正ビット数より小さいビット数に対応する演算回路を用いて、初期値として誤り数期待値を所定の値に設定し、誤り数期待値に対応したシンドローム計算、誤り位置多項式演算およびチェンサーチにより誤り訂正処理を行い、誤り訂正処理後のデータとCRCとに基づいて正しく誤り訂正ができなかったと判断した場合に、誤り数期待値を増加させて直前の誤り訂正処理からの増分の処理を次のサイクルの誤り訂正処理として実施するようにした。そして、正しく誤り訂正ができたか、または誤り数期待値を最大訂正ビット数として設定するまで、誤り数期待値を更新して誤り訂正処理を繰り返すようにした。このため、復号化部の回路を最大訂正ビット数分の演算回路を備える場合に比べて大幅に削減することができる。また、平均的な復号処理の速度を向上させることができる。
(第2の実施の形態)
第1の実施の形態では、2サイクル目以降の処理を行う場合、1サイクル目の計算結果とは独立に演算を行っていた。例えば、A=4とし、2サイクル目のシンドローム計算では、S(α1),S(α2),S(α3),…,S(α8)と8つのシンドロームを求めていた。一方、第1の実施の形態で述べた処理のうち一部の処理では、前のサイクルの計算過程で求めた結果(以下、再利用情報という)を用いることにより、次のサイクルの計算を減らすことができる。
第1の実施の形態では、2サイクル目以降の処理を行う場合、1サイクル目の計算結果とは独立に演算を行っていた。例えば、A=4とし、2サイクル目のシンドローム計算では、S(α1),S(α2),S(α3),…,S(α8)と8つのシンドロームを求めていた。一方、第1の実施の形態で述べた処理のうち一部の処理では、前のサイクルの計算過程で求めた結果(以下、再利用情報という)を用いることにより、次のサイクルの計算を減らすことができる。
例えば、A=4とする場合、シンドローム計算では、2サイクル目で求めるS(α1),S(α2),S(α3),…,S(α8)のうち、S(α1),S(α2),S(α3),S(α4)は、1サイクル目で求めた値と同一である。従って、シンドローム計算では、各サイクルで計算した値を復号化部26内の記憶部(復号化部26外の記憶部としてもよい)に保持しておき、次のサイクルの計算では、前のサイクルまでで計算されていない部分(差分)のみを計算することができる。例えば、A=4とする場合、2サイクル目ではS(α5),…,S(α8)を計算し、S(α1),S(α2),S(α3),S(α4)については、保持している前のサイクルまでの計算結果を再利用情報として用いればよい。
誤り位置多項式演算においては、差分のみを計算することはできないが、前のサイクルの計算過程で算出された値の一部を次のサイクルに用いることができるため、次のサイクルの計算に必要な情報を再利用情報として保持しておくようにすれば、次サイクルの計算の一部を簡略化することができる。
図19は、計算結果の再利用を行う場合の誤り位置多項式演算手順の一例を示す図である。まず、はじめに、前のサイクルの誤り数期待値(old_X)までの計算した内容(前のサイクルで計算して保存した次のサイクルの計算で用いる情報、以降、再利用情報という)を復号化部26内の記憶部(復号化部26外の記憶部としてもよい)から読み出す(ステップS51)。そして、誤り位置多項式の項の数iを1+old_Xとする(ステップS52)。なお、1サイクル目では、ステップS51を実施せず、ステップS52ではold_X=0とする。
そして、再利用情報を用いて同様にσ(z)や評価式等の演算を行う(ステップS53)。次に、復号制御部265は、i=Xであるか否かを判断する(ステップS54)。i=Xの場合(ステップS54 Yes)は、再利用情報(σ(z)等)を記憶部へ保存し(ステップS56)て、処理を終了する。i=Xでない場合(ステップS54 No)は、i=i+1とし(ステップS55)、ステップS53へ戻る。なお、ステップS53では、iよりガロア体計算回路61−1〜61−Mの個数(M)が少ない場合は、第1の実施の形態と同様にM個ずつ時分割で処理を行う。以上述べた以外の本実施の形態の動作は、第1の実施の形態と同様である。
以上のように、本実施の形態では、シンドローム計算や誤り位置多項式演算において、次のサイクルの計算で用いることができる情報を再利用情報として保持しておき、次のサイクルでは再利用情報を用いて演算を行うようにした。これにより、第1の実施の形態と同様の効果が得られるとともに、第1の実施の形態に比べ演算量を削減することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 半導体記憶装置、2 メモリコントローラ、3 半導体メモリ部、24 符号化/復号化処理部、25 符号化部、26 復号化部、251 誤り検出符号エンコーダ、252 誤り訂正符号エンコーダ、261 シンドローム計算部 、262 誤り位置多項式演算部、263 チェンサーチ部、264 誤り検出符号デコーダ、265 復号制御部。
Claims (24)
- データと、前記データに対する誤り検出符号と、前記データおよび前記誤り検出符号とに基づいて生成された最大訂正能力をTビットとする誤り訂正符号と、で構成される符号語に基づいて前記データの誤り訂正処理を行う復号装置における復号方法であって、
前記復号装置は、
前記符号語に基づいて、Tビット以下である誤り数期待値Xビットまでを上限とした誤り訂正処理を行う誤り訂正処理部と、
前記誤り訂正処理により訂正された前記データと前記誤り検出符号とに基づいて誤り訂正後の前記データの誤りを検出する誤り検出部と、
前記誤り訂正処理部と前記誤り検出部を制御する復号制御部と、
を備え、
前記復号制御部が、前記誤り数期待値Xに1以上T未満の整数であるIを代入する第1のステップと、
前記誤り訂正処理部が、前記誤り数期待値Xまでの前記符号語の訂正処理を実行する第2のステップと、
前記誤り検出部が、前記訂正処理後の前記データおよび前記誤り検出符号の誤りを検出する第3のステップと、
前記誤り検出部が、誤り訂正後の前記データおよび誤り検出符号に誤りが検出されなかった場合は誤り訂正処理を終了し、誤りが検出された場合は前記誤り数期待値Xに1以上T未満の整数であるAを加える第4のステップと、
を含み、
前記第2、3および4のステップを1サイクルとし、前記第4のステップの後に次のサイクルの前記第2、3および4のステップを実行することを、前記誤り検出部により誤りが検出されなくなるまでまたは誤り数期待値がTビットとなるまで繰り返す
ことを特徴とする復号方法。 - 前記第2のステップは、
N(Nは1以上2×T未満の整数)個以下の演算器を用いてシンドロームを計算するシンドローム計算ステップと、
前記符号語と前記シンドロームに基づいてM(Mは1以上T未満の整数)個以下の演算器を用いて誤り位置多項式演算を行う誤り位置多項式演算ステップと、
前記誤り位置多項式演算の結果に基づいてL(Lは1以上T未満の整数)個以下の演算器を用いて前記データの誤り位置を求める誤り位置計算ステップと、
を含むことを特徴とする請求項1に記載の復号方法。 - 前記誤り位置多項式演算が正常に終了できないと判定された場合に、実行中のサイクルの後続の処理を実施せずに次のサイクルの処理へ移行する、ことを特徴とする請求項2に記載の復号方法。
- 前記誤り位置計算ステップにより特定された誤り位置が前記符号語に対応する位置でない場合に、実行中のサイクルの後続の処理を実施せずに次のサイクルの処理へ移行する、ことを特徴とする請求項2または3に記載の復号方法。
- 前記誤り位置多項式計算ステップで計算した解の個数と前記誤り位置計算ステップで特定された誤り位置の個数とが一致しない場合に、実行中のサイクルの後続の処理を実施せずに次のサイクルの処理へ移行する、ことを特徴とする請求項2、3または4に記載の復号方法。
- 前記シンドローム計算ステップでは、計算したシンドロームをシンドローム記憶部に記憶し、同一の前記データに対応する2回目以降のシンドローム計算では、前記シンドローム記憶部に記憶されたシンドロームを用いる、ことを特徴とする請求項2乃至5のいずれか1つに記載の復号方法。
- 前記誤り位置多項式演算ステップでは、前記誤り位置多項式演算の演算過程で求めた次のサイクルで使用可能な情報を再利用情報として記憶部に記憶し、同一の前記データに対応する2回目以降の前記誤り位置多項式演算では、前記記憶部に記憶された前記再利用情報を用いて前記誤り位置多項式演算を行う、ことを特徴とする請求項2乃至5のいずれか1つに記載の複合訂正方法。
- 前記シンドローム計算ステップと前記誤り位置多項式演算ステップと前記誤り位置計算ステップとのうち2つ以上のステップで演算器を共有する、ことを特徴とする請求項2乃至6のいずれか1つに記載の復号方法。
- データと、前記データに対する誤り検出符号と、前記データおよび前記誤り検出符号とに基づいて生成された最大訂正能力をTビットとする誤り訂正符号と、で構成される符号語に基づいて前記データの誤り訂正処理を行う復号装置であって、
前記符号語に基づいて、Tビット以下である誤り数期待値Xビットまでを上限とした誤り訂正処理を行う誤り訂正処理部と、
前記誤り訂正処理により訂正された前記データと前記誤り検出符号とに基づいて誤り訂正後の前記データの誤りを検出する誤り検出部と、
前記誤り訂正処理部と前記誤り検出部を制御する復号制御部と、
を備え、
前記復号制御部は、
前記誤り数期待値Xに1以上T未満の整数であるIを代入する第1の処理と、前記誤り訂正処理部に対して、前記誤り数期待値Xまでの前記符号語の訂正処理を実行するよう制御する第2の処理と、前記誤り検出部に対して、前記訂正処理後の前記データおよび前記誤り検出符号の誤りを検出するよう制御する第3の処理と、前記誤り検出部により誤り訂正後の前記データおよび誤り検出符号に誤りが検出されなかった場合は誤り訂正処理を終了し、誤りが検出された場合は前記誤り数期待値Xに1以上T未満の整数であるAを加える第4の処理と、を実行し、前記第2、3および4の処理を1サイクルとし、前記第4の処理の後に次のサイクルの前記第2、3および4の処理を実行することを、前記誤り検出部により誤りが検出されなくなるまでまたは誤り数期待値がTビットとなるまで繰り返す、
ことを特徴とする復号装置。 - 前記誤り訂正処理部は、
N(Nは1以上2×T未満の整数)個以下の演算器を用いてシンドロームを計算するシンドローム計算部と、
前記符号語と前記シンドロームに基づいてM(Mは1以上T未満の整数)個以下の演算器を用いて誤り位置多項式演算を行うことが可能な誤り位置多項式演算部と、
前記誤り位置多項式演算の結果に基づいてL(Lは1以上T未満の整数)個以下の演算器を用いて前記データの誤り位置を求める誤り位置計算部と、
を備えることを特徴とする請求項9に記載の復号装置。 - 前記誤り位置多項式演算部により前記誤り位置多項式演算が正常に終了できないと判定された場合に、実行中のサイクルの後続の処理を実施せずに次のサイクルの処理へ移行する、ことを特徴とする請求項10に記載の復号装置。
- 前記復号制御部により前記誤り位置計算部により特定された誤り位置が前記符号語に対応する位置でないと判定された場合に、実行中のサイクルの後続の処理を実施せずに次のサイクルの処理へ移行する、ことを特徴とする請求項9または10に記載の復号装置。
- 前記復号制御部により前記誤り位置多項式で計算した解の個数と前記誤り位置計算部により特定された誤り位置の個数とが一致しないと判定された場合に、実行中のサイクルの後続の処理を実施せずに次のサイクルの処理へ移行する、ことを特徴とする請求項9、10または11に記載の復号装置。
- 前記シンドローム計算部は、シンドローム記憶部を備え、計算したシンドロームを前記シンドローム記憶部に記憶し、同一の前記データに対応する2回目以降のシンドローム計算では、前記シンドローム記憶部に記憶されたシンドロームを用いる、ことを特徴とする請求項9乃至12のいずれか1つに記載の復号装置。
- 前記誤り位置多項式演算部は、記憶部を備え、前記誤り位置多項式演算の演算過程で求めた次のサイクルで使用可能な情報を再利用情報として前記記憶部に記憶し、同一の前記データに対応する2回目以降の前記誤り位置多項式演算では、前記記憶部に記憶された前記再利用情報を用いて前記誤り位置多項式演算を行う、ことを特徴とする請求項9乃至12のいずれか1つに記載の復号装置。
- 前記シンドローム計算部と前記誤り位置多項式演算部と前記誤り位置計算部とのうち2つ以上で演算器を共有する、ことを特徴とする請求項9乃至12のいずれか1つに記載の復号装置。
- メモリ部と、
前記記憶部に書き込むデータに基づいて誤り検出符号を生成し、前記データと当該データに対応する前記誤り検出符号とに基づいて誤り訂正符号を生成する符号化部と、
前記データと前記誤り検出符号と前記誤り訂正符号とを前記記憶部へ書き込み、前記記憶部に書き込まれたデータと当該データに対応する前記誤り検出符号および前記誤り訂正符号とを読み出すメモリ制御部と、
前記記憶部から読み出されたデータと当該データに対応する前記誤り検出符号および前記誤り訂正符号とで構成される符号語を復号する復号化部と、
を備え、
前記復号化部は、
前記符号語に基づいて、Tビット以下である誤り数期待値Xビットまでを上限とした誤り訂正処理を行う誤り訂正処理部と、
前記誤り訂正処理により訂正された前記データと前記誤り検出符号とに基づいて誤り訂正後の前記データの誤りを検出する誤り検出部と、
前記誤り訂正処理部と前記誤り検出部を制御する復号制御部と、
を備え、
前記復号制御部は、
前記誤り数期待値Xに1以上T未満の整数であるIを代入する第1の処理と、前記誤り訂正処理部に対して、前記誤り数期待値Xまでの前記符号語の訂正処理を実行するよう制御する第2の処理と、前記誤り検出部に対して、前記訂正処理後の前記データおよび前記誤り検出符号の誤りを検出するよう制御する第3の処理と、前記誤り検出部により誤り訂正後の前記データおよび誤り検出符号に誤りが検出されなかった場合は誤り訂正処理を終了し、誤りが検出された場合は前記誤り数期待値Xに1以上T未満の整数であるAを加える第4の処理と、を実行し、前記第2、3および4の処理を1サイクルとし、前記第4の処理の後に次のサイクルの前記第2、3および4の処理を実行することを、前記誤り検出部により誤りが検出されなくなるまでまたは誤り数期待値がTビットとなるまで繰り返す
ことを特徴とする記憶装置。 - 前記誤り訂正処理部は、
N(Nは1以上2×T未満の整数)個以下の演算器を用いてシンドロームを計算するシンドローム計算部と、
前記符号語と前記シンドロームに基づいてM(Mは1以上T未満の整数)個以下の演算器を用いて誤り位置多項式演算を行うことが可能な誤り位置多項式演算部と、
前記誤り位置多項式演算の結果に基づいてL(Lは1以上T未満の整数)個以下の演算器を用いて前記データの誤り位置を求める誤り位置計算部と、
を備えることを特徴とする請求項17に記載の記憶装置。 - 前記誤り位置多項式演算部により前記誤り位置多項式演算が正常に終了できないと判定された場合に、実行中のサイクルの後続の処理を実施せずに次のサイクルの処理へ移行する、ことを特徴とする請求項18に記載の記憶装置。
- 前記復号制御部により前記誤り位置計算部により特定された誤り位置が前記符号語に対応する位置でないと判定された場合に、実行中のサイクルの後続の処理を実施せずに次のサイクルの処理へ移行する、ことを特徴とする請求項18または19に記載の記憶装置。
- 前記復号制御部により前記誤り位置多項式で計算した解の個数と前記誤り位置計算部により特定された誤り位置の個数とが一致しないと判定された場合に、実行中のサイクルの後続の処理を実施せずに次のサイクルの処理へ移行する、ことを特徴とする請求項18、19または20に記載の記憶装置。
- 前記シンドローム計算部は、シンドローム記憶部を備え、計算したシンドロームを前記シンドローム記憶部に記憶し、同一の前記データに対応する2回目以降のシンドローム計算では、前記シンドローム記憶部に記憶されたシンドロームを用いる、ことを特徴とする請求項18乃至21のいずれか1つに記載の記憶装置。
- 前記誤り位置多項式演算部は、記憶部を備え、前記誤り位置多項式演算の演算過程で求めた次のサイクルで使用可能な情報を再利用情報として前記記憶部に記憶し、同一の前記データに対応する2回目以降の前記誤り位置多項式演算では、前記記憶部に記憶された前記再利用情報を用いて前記誤り位置多項式演算を行う、ことを特徴とする請求項18乃至21のいずれか1つに記載の記憶装置。
- 前記シンドローム計算部と前記誤り位置多項式演算部と前記誤り位置計算部とのうち2つ以上で演算器を共有する、ことを特徴とする請求項18乃至22のいずれか1つに記載の記憶装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011208038A JP2013069377A (ja) | 2011-09-22 | 2011-09-22 | 復号方法、復号装置および記憶装置 |
US13/601,707 US8640013B2 (en) | 2011-09-22 | 2012-08-31 | Storage device |
US14/141,246 US9075739B2 (en) | 2011-09-22 | 2013-12-26 | Storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011208038A JP2013069377A (ja) | 2011-09-22 | 2011-09-22 | 復号方法、復号装置および記憶装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013069377A true JP2013069377A (ja) | 2013-04-18 |
Family
ID=48474894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011208038A Withdrawn JP2013069377A (ja) | 2011-09-22 | 2011-09-22 | 復号方法、復号装置および記憶装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2013069377A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9883404B2 (en) | 2013-06-11 | 2018-01-30 | Qualcomm Incorporated | LTE/LTE—A uplink carrier aggregation using unlicensed spectrum |
-
2011
- 2011-09-22 JP JP2011208038A patent/JP2013069377A/ja not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9883404B2 (en) | 2013-06-11 | 2018-01-30 | Qualcomm Incorporated | LTE/LTE—A uplink carrier aggregation using unlicensed spectrum |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9075739B2 (en) | Storage device | |
JP5043562B2 (ja) | エラー訂正回路、その方法及び前記回路を備える半導体メモリ装置 | |
US10467091B2 (en) | Memory module, memory system including the same, and error correcting method thereof | |
US10848184B2 (en) | Method for controlling storage device with aid of error correction and associated apparatus | |
JP6540703B2 (ja) | メモリコントローラおよびメモリコントローラの制御方法 | |
US10291258B2 (en) | Error correcting code for correcting single symbol errors and detecting double bit errors | |
US20140040699A1 (en) | Error check and correction circuit, method, and memory device | |
US9431132B2 (en) | Data managing method, memory control circuit unit and memory storage apparatus | |
US9960788B2 (en) | Memory controller, semiconductor memory device, and control method for semiconductor memory device | |
US10523240B2 (en) | Methods and apparatus to determine and apply polarity-based error correction code | |
US20090106634A1 (en) | Error detecting and correcting circuit using chien search, semiconductor memory controller including error detecting and correcting circuit, semiconductor memory system including error detecting and correcting circuit, and error detecting and correcting method using chien search | |
JP2012173933A (ja) | データ記憶装置及び誤り検出訂正方法 | |
KR20230132697A (ko) | 일반 연결 코드 코드워드를 디코딩하는 장치, 저장 시스템 및 그 제어 방법 | |
JP2014033364A (ja) | 誤り検出訂正回路、及びメモリ装置 | |
JP2013069377A (ja) | 復号方法、復号装置および記憶装置 | |
US11115055B2 (en) | Method and apparatus for encoding and decoding data in memory system | |
US20150155885A1 (en) | Error correcting apparatus, error correcting method, and program | |
KR101154923B1 (ko) | 비씨에이치 디코더, 이를 포함하는 메모리 시스템 및 비씨에이치 디코딩 방법 | |
JP2013201503A (ja) | チェンサーチ回路、復号器、記憶装置およびチェンサーチ方法 | |
JP7182373B2 (ja) | 半導体集積回路、記憶装置及びエラー訂正方法 | |
CN111966524B (zh) | 一种Flash数据写入方法及装置 | |
KR102719067B1 (ko) | 메모리 시스템에서 데이터를 인코딩하고 디코딩하기 위한 방법 및 장치 | |
JP2013201482A (ja) | チェンサーチ回路、復号器、記憶装置およびチェンサーチ方法 | |
CN114237969A (zh) | 并行bch纠错译码的方法及装置 | |
JP2014116659A (ja) | 誤り検出訂正回路、及び半導体記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20141202 |