(57)【要約】      （修正有）【課題】効率が良く、かつ信頼性の高いエラー訂正回路を実現する。【解決手段】エラー訂正回路３は、ＥＣＣフレームが、第２のエラー訂正回路３Ｂの符号化器７Ａによる符号化時に複数のデータ列の第１のパリティデータを縮退処理後に分割した分割共有パリティデータを保持し、復号時に第２のエラー訂正回路３Ｂの復号器８Ａによる分割共有パリティデータを合成した合成共有パリティデータと、復号されたＥＣＣフレームから符号化器７Ａが再生成した再生成共有パリティデータとを比較して、復号器８Ａの誤訂正をチェックする。【選択図】図１
2010033181.tif 000002
【特許請求の範囲】
【請求項１】
第１のエラー訂正回路と、共有パリティ処理回路と、第２のエラー訂正回路と、エラー訂正チェック回路とを有し、
符号化時に、
前記第１のエラー訂正回路は、Ｎ個（但し、Ｎは２以上の整数）の所定長のデータ列に対し、それぞれの第１のパリティデータを生成し、
前記共有パリティ処理回路は、Ｎ個の前記第１のパリティデータを縮退処理し共有パリティデータを生成し、
前記共有パリティデータをＮ個に分割し、分割した前記共有パリティデータをそれぞれの前記データ列に付与し、Ｎ個の第１のＥＣＣフレームを生成し、
前記第２のエラー訂正回路は、前記Ｎ個の第１のＥＣＣフレームに対し、それぞれの第２のパリティデータを生成し付与し、Ｎ個の第２のＥＣＣフレームを生成し、
復号時に、
前記第２のエラー訂正回路は、前記Ｎ個の第２のＥＣＣフレームを復号し、
前記第２のエラー訂正回路が復号した、前記Ｎ個の第２のＥＣＣフレームのそれぞれに付加されている分割された前記共有パリティデータを合成し合成共有パリティデータを生成し、
前記第１のエラー訂正回路は、前記第２のエラー訂正回路が復号した前記Ｎ個の第２のＥＣＣフレームのデータ列から、第１のパリティデータを再生成し、
前記共有パリティ処理回路は、再生成したＮ個の前記第１のパリティデータを縮退処理し、再生成共有パリティデータを生成し、
前記エラー訂正チェック回路は、前記合成共有パリティデータと前記再生成共有パリティデータとを比較し、前記第２のエラー訂正回路の前記復号の誤りを検出することを特徴とするエラー訂正回路。
【請求項２】
復号時に、
一の前記第２のＥＣＣフレームがエラーフレームの場合、前記第１のエラー訂正回路は、前記一のエラーフレームの前記データ列からは前記第１のパリティデータを再生成せず
前記共有パリティ処理回路は、前記合成共有パリティデータと、前記第１のエラー訂正回路が前記エラーフレームを除く前記データ列から再生成した前記第１のパリティデータと、から前記縮退処理の逆演算により、前記エラーフレームの第１のパリティデータを再生成し、
第１のエラー訂正回路は、第１のパリティデータにより、前記エラーフレームの復号を行うことを特徴とするエラー訂正回路。
【請求項３】
前記縮退処理が、ビット単位で排他的論理和をとるガロア体の加算処理であることを特徴とする請求項１または請求項２に記載のエラー訂正回路。
【請求項４】
前記第１のエラー訂正回路がＢＣＨ符号によるエラー訂正回路であり、前記第２のエラー訂正回路がＬＤＰＣ符号によるエラー訂正回路であることを特徴とする請求項１から請求項３のいずれか１項に記載のエラー訂正回路。
【請求項５】
請求項１から請求項４のいずれか１項に記載のエラー訂正回路と、ＮＡＮＤ型フラッシュメモリからなるメモリアレイと、を有することを特徴とする半導体メモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの符号化および復号を行うエラー訂正回路、およびエラー訂正回路を有する半導体メモリシステムに関し、特にパリティデータを縮退処理するエラー訂正回路、およびパリティデータを縮退処理するエラー訂正回路を有する半導体メモリシステムに関する。
【背景技術】
【０００２】
移動体通信やＷＬＡＮ等の通信分野、地上波または衛星デジタル放送等の放送分野における高速データ送受信および半導体メモリ等のストレージ分野での高密度記録のために、デジタルデータのエラー訂正符号化および復号の効率化に関する開発が盛んに行われている。
【０００３】
ここで、多数の種類がある訂正符号は、ブロック型と非ブロック型に大別することができる。ブロック型はコードの符号化および復号を行うデータのサイズが固定なのに対して、非ブロック型ではサイズが固定ではない。さらに、ブロック型訂正符号は、パリティデータ部とユーザーデータ部が分かれている組織型符号と、分かれていない非組織型符号に分類できる。ここで、ブロック型訂正符号を用いたエラー訂正方式において、符号化および復号を行うデータの単位を、ＥＣＣ（Error Correcting Code）フレームとよぶ。
【０００４】
これらの訂正符号の中で、古くから知られる符号化方法である低密度パリティ検査符号(Low Density Parity Check codes)（以下、「ＬＤＰＣ符号」という。）が、近年、特に注目されている。
【０００５】
ＬＤＰＣ符号は、R. G. Gallagerにより、１９６３年に最初に提案されたものであるが、その後、符号長を長くしていくにしたがって、符号性能の理論的限界である、いわゆるシャノンの通信路符号化定理によって与えられるシャノン限界に迫る優れた性能が報告されている。
【０００６】
ここで、従来から広く実用化されているＢＣＨ符号やリードソロモン  （ＲＳ：Reed-Solomon）符号といった代数系のエラー訂正方式は、訂正できるビットエラー率を高くするためには、パリティ部の増大や訂正回路の増大といった問題点が伴うものの、所定数以下の誤りであれば確実に訂正可能なことが数学的に証明されている。
【０００７】
これに対して、確率に基づく反復計算によるエラー訂正方式であるＬＤＰＣ符号やターボ符号は、その訂正能力自体を明確に定義することが難しく、ビット誤りが、それ程多くないＥＣＣフレームに対してもエラー訂正ができないこと、すなわちエラーフレームの出現がまれに存在する。このように、エラー訂正が失敗する比率を、フレームエラー率とよんでいる。確率に基づく反復計算によるエラー訂正方式によるデータの符号化および復号においては、フレームエラー率を小さくすることは可能であるが、フレームエラー率をゼロとすることおよびフレームエラー率を数学的に証明することは非常に困難である。
【０００８】
前述のように、確率に基づく反復計算によるエラー訂正方式であるＬＤＰＣ符号のフレームエラー率は、解析的に予測することが困難であるため、その確認には主として計算機シミュレーションまたは実機評価により行われている。しかし、例えば、ＬＤＰＣ符号は通常の用途においても、フレームエラー率として１０のマイナス１０乗以下を求められることもあり、フレームエラー率を計算機シミュレーションで求めようとすると膨大な時間を要することから、ＬＤＰＣ符号の設計およびその検証は非常に困難となっていた。
【０００９】
このＬＤＰＣ符号の問題点に対して、ＬＤＰＣ符号とＢＣＨ符号とを併用したエラー訂正回路（以下、「誤り訂正回路」ともいう。）が知られている。例えば、電波法（昭和二十五年法律第百三十一号）第三十八条の規定に基づく、標準テレビジョン放送等のうちデジタル放送に関する送信の標準方式、別表第三十九号 高度狭帯域伝送デジタル放送のエラー訂正方式（第４９条第３項関係）には、エラー訂正外符号としてＢＣＨ符号、エラー訂正内符号としてＬＤＰＣ符号を用いたＬＤＰＣ符号とＢＣＨ符号を併用したエラー訂正回路が定められている。
【００１０】
しかし、ＬＤＰＣ符号とＢＣＨ符号とを単純に併用したエラー訂正回路では、ＬＤＰＣ符号と同じデータフレームに対してＢＣＨ符号を用いているため、ＢＣＨパリティデータの量が増大し効率が良くはないエラー訂正回路であった。
【００１１】
また、ＬＤＰＣ符号とＢＣＨ符号とを併用したエラー訂正回路は、ＬＤＰＣ符号のみを用いたエラー訂正回路に比べて、ＢＣＨ符号のためのエラー訂正回路が付加されるため、回路規模が大きくなってしまっていた。
【非特許文献１】、電波法（昭和二十五年法律第百三十一号）第三十八条の規定に基づく標準テレビジョン放送等のうちデジタル放送に関する送信の標準方式、別表第三十九号。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
上記事情に鑑みて、本発明はなされたものであり、本発明は、効率が良く、かつ信頼性の高いエラー訂正回路を実現することを目的とする。
【課題を解決するための手段】
【００１３】
本願発明の一態様のエラー訂正回路は、第１のエラー訂正回路と、共有パリティ処理回路と、第２のエラー訂正回路と、エラー訂正チェック回路とを有し、符号化時に、第１のエラー訂正回路は、Ｎ個（但し、Ｎは２以上の整数）の所定長のデータ列に対し、それぞれの第１のパリティデータを生成し、共有パリティ処理回路は、Ｎ個の第１のパリティデータを縮退処理し共有パリティデータを生成し、共有パリティデータをＮ個に分割し、分割した共有パリティデータをそれぞれのデータ列に付与し、Ｎ個の第１のＥＣＣフレームを生成し、第２のエラー訂正回路は、Ｎ個の第１のＥＣＣフレームに対し、それぞれの第２のパリティデータを生成し付与し、Ｎ個の第２のＥＣＣフレームを生成し、復号時に、第２のエラー訂正回路は、Ｎ個の第２のＥＣＣフレームを復号し、第２のエラー訂正回路が復号した、Ｎ個の第２のＥＣＣフレームのそれぞれに付加されている分割された共有パリティデータを合成し合成共有パリティデータを生成し、第１のエラー訂正回路は、第２のエラー訂正回路が復号したＮ個の第２のＥＣＣフレームのデータ列から、第１のパリティデータを再生成し、共有パリティ処理回路は、再生成したＮ個の第１のパリティデータを縮退処理し、再生成共有パリティデータを生成し、エラー訂正チェック回路は、合成共有パリティデータと再生成共有パリティデータとを比較し、第２のエラー訂正回路の復号の誤りを検出することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、効率が良く、かつ信頼性の高いエラー訂正回路を提供することができる。
【発明を実施するための最良の形態】
【００１５】
＜第１の実施の形態＞  
以下、図面を参照して本発明の第１の実施の形態のエラー訂正回路３、およびエラー訂正回路３を有する半導体メモリシステム１について説明する。  
最初に、図１を用いて本実施の形態のエラー訂正回路３を有する半導体メモリシステム１の概略の構成を説明する。図１は、本実施の形態の半導体メモリシステム１の概略の構成を示す構成図である。半導体メモリシステム１は、パソコンまたはデジタルカメラ等のホスト１１から受信したデータを記憶し、記憶したデータをホスト１１に送信するシステムであり、例えば、ＮＡＮＤ型フラッシュメモリ記憶装置であり、または、ホスト１１の内部に組み込まれた、いわゆるエンベット型のＮＡＮＤ型フラッシュメモリシステムである。
【００１６】
図１に示すように、半導体メモリシステム１は、メモリアレイ４と半導体メモリコントローラ２とから構成されている。そして、半導体メモリコントローラ２は、ＣＰＵ６の制御に従い、ホストインターフェイス（Ｉ／Ｆ）５を介してホスト１１とのデータ送受信を、メモリインターフェイス（Ｉ／Ｆ）１０を介してメモリアレイ４とのデータ送受信を行う。そして、半導体メモリコントローラ２内のエラー訂正回路３は、符号化器７Ａと復号器８Ａとを有する第１のエラー訂正回路３Ａと、共有パリティ処理器９と、符号化器７Ｂと復号器８Ｂとを有する第２のエラー訂正回路３Ｂと、復号器８Ｂの誤訂正をチェックするエラー訂正チェック回路６Ａと、を有する。なお、図１において、エラー訂正チェック回路６Ａは、エラー訂正回路３の中の回路として表示しているが、半導体メモリコントローラ２内の回路であればエラー訂正回路３ではなく、例えば、ＣＰＵ６等が誤訂正チェックを行ってもよい。
【００１７】
そして、半導体メモリコントローラ２は、データを一時的に記憶する図示しない一時メモリも有している。また、共有パリティ処理器９は、第１のエラー訂正回路３Ａとは別個の独立した回路でなく、第１のエラー訂正回路３Ａの一部であってもよい。また、本明細書において、「パリティデータ」、または、単に「パリティ」とは、「パリティ検査ビット」と同意である。
【００１８】
次に、図２および図３を用いて、エラー訂正回路３の符号化時の処理を、より詳細に説明する。図２は、本実施の形態のエラー訂正回路の符号化時の処理の流れを説明するためのフローチャートであり、図３は、本実施の形態のエラー訂正回路３の符号化時の処理の流れを説明するための説明図である。以下、図２のフローチャートに従い、説明する。
【００１９】
＜ステップＳ１０＞  
第１のエラー訂正回路３Ａの符号化器７Ａは、ホスト１１からのユーザーデータを所定長のデータ列、例えば１ＫＢのデータ列として処理する。なお、ここで、データ列とは単にあるデータの集団を意味し、前述のユーザーデータと同意である。そして、例えば図３（Ａ）に示すように、１ＫＢのデータ列に対して第１のパリティデータを生成する。ここで、第１のエラー訂正回路３Ａは、代数系の計算によるエラー訂正回路であり、例えば、ＢＣＨ符号を用いるエラー訂正回路である。
【００２０】
＜ステップＳ１１＞  
図３（Ｂ）に示すように、共有パリティ処理器９は、Ｎ個（但し、Ｎは２以上の整数）の所定長のデータ列を、１つの処理単位とする。なお、Ｎは２以上の整数であるが、ここではＮ＝８の例を示している。
【００２１】
＜ステップＳ１２＞  
図３（Ｃ）に示すように、共有パリティ処理器９は、８個の第１のパリティデータを縮退処理し、１個の共有パリティデータ（以下、「ＣＰ」ともいう。）を生成する。この共有パリティデータは、８個のＥＣＣフレームの復号に用いることができるパリティデータである。後述するように、共有パリティデータは、８分割して８個のＥＣＣフレームに付加され、共有されるため、共有パリティデータとよんでいる。
【００２２】
第１のパリティデータを縮退処理する方法は種々の公知の方法を使用することができる。例えば、ビット単位で排他的論理和をとるガロア体の加算処理により、第１のパリティデータの縮退処理を行うことができる。なお、図３（Ｃ）において、○（円）の中に＋（加算記号）を書いた演算子はExclusive  OR（エクスクルーシブ・オア）、すなわち排他的論理和演算を示している。排他的論理和演算は、基本的な論理演算の１つで、入力が「真」と「偽」の組み合わせならば出力は「真」、それ以外なら出力は「偽」となる演算である。
【００２３】
＜ステップＳ１３＞  
図３（Ｄ）に示すように、共有パリティ処理器９は、共有パリティデータを同じサイズの８個の分割共有パリティデータに分割する。なお、分割共有パリティデータと１ＫＢのデータ列と合わせたサイズのデータが第２のＥＣＣフレームで扱えれば良いので、分割の仕方は必ずしも等分割でなくても良い。
【００２４】
＜ステップＳ１４＞  
図３（Ｅ）に示すように、共有パリティ処理器９は、８個の分割共有パリティデータを、１個ずつ８個の１ＫＢのデータ列のそれぞれに付与し、８個の第１のＥＣＣフレームを生成する。なお、どの分割共有パリティデータを、どのデータ列に付与してもよい。
【００２５】
＜ステップＳ１５＞  
図３（Ｆ）に示すように、第２のエラー訂正回路３Ｂの符号化器７Ａは、８個の第１のＥＣＣフレームに対して、それぞれの第２のパリティデータを生成し、それぞれの第１のＥＣＣフレームにそれぞれの第２のパリティデータを、さらに付与して、８個の第２のＥＣＣフレームを生成する。ここで、第２のエラー訂正回路３Ｂは、確率に基づく反復計算によるエラー訂正回路であり、例えばＬＤＰＣ符号を用いるエラー訂正回路である。
【００２６】
＜ステップＳ１６＞  
図３（Ｇ）に示すように、第２のエラー訂正回路３Ｂの符号化器７Ａは、８個の第２のＥＣＣフレームを、メモリインターフェイス１０に送信する。ユーザーデータは、第２のＥＣＣフレームとして、メモリアレイ４に記憶される。
【００２７】
ここで、図４は、エラー訂正回路における符号時、言い換えれば、符号化モードときのデータの流れを説明するための説明図である。すでに説明したように、入力されたユーザーデータは、フレーム単位で符号化器７Ａにて第１のパリティが生成され、第１のパリティは、順に共有パリティ処理器９にて縮退処理され、共有パリティが生成される。なお、図４にはエラー訂正チェック回路６Ａは図示していない。
【００２８】
次に、図５および図６を用いて、エラー訂正回路３の復号時、言い換えれば、復号モードのときの処理を説明する。図５は、エラー訂正回路３の復号時の処理の流れを説明するためのフローチャートであり、図６は、エラー訂正回路３の復号時の処理の流れを説明するための説明図である。以下、図５のフローチャートに従い、説明する。なお、図５は、エラーフレームがない場合のフローチャートである。図５における（Ｉ）、（ＩＩ）、（ＩＩＩ）は、エラーフレームがあった場合の処理に関するものであり、図８等にて詳述する。
【００２９】
＜ステップＳ２０＞  
図６（Ａ）に示すように、第２のエラー訂正回路３Ｂの復号器８Ｂは、８個の第２のＥＣＣフレームデータを、メモリインターフェイス１０を介してメモリアレイ４から順に受信する。なお、図６では、８個の第２のＥＣＣフレームデータを全て処理した後の状態を図示しているが、エラー訂正回路３は、受信した８個の第２のＥＣＣフレームを１個ずつ順に処理する。
【００３０】
＜ステップＳ２１＞  
エラー訂正回路３は、フレーム番号Ｎの初期値を０に設定する。
【００３１】
＜ステップＳ２２＞  
図６（Ｂ）に示すように、復号器８Ｂは、フレーム番号Ｎの第２のＥＣＣフレームを第２のパリティを用いて復号し、第１のＥＣＣフレームを生成する。
【００３２】
＜ステップＳ２３＞  
図６（Ｃ）および図６（Ｄ）に示すように、復号された第１のフレームの分割共有パリティは、順に合成され、言い換えれば、再構成され、合成ＣＰが生成されていく。
【００３３】
＜ステップＳ２４、ステップＳ２５＞  
エラー訂正回路３は、８個の第２のＥＣＣフレームの処理が完了するまで、処理を繰り返す。
【００３４】
＜ステップＳ２６＞  
図６（Ｃ）および図６（Ｅ）に示すように、第１のエラー訂正回路３Ａの符号化器７Ａは、復号器８Ｂが復号した第１のＥＣＣフレームのユーザーデータを、順に、符号化し、再生成第１のパリティデータを生成する。
【００３５】
＜ステップＳ２７＞  
共有パリティ処理器９は、再生成第１のパリティデータを、順に累積加算、すなわち、縮退処理し、再生成ＣＰを生成する。
【００３６】
＜ステップＳ２８〜ステップＳ３０＞  
図６（Ｆ）に示すように、エラー訂正チェック回路６Ａは、生成された合成ＣＰおよび再生成ＣＰを比較する。
【００３７】
＜ステップＳ３１〜ステップＳ３３＞  
合成ＣＰと再生成ＣＰとが一致していた場合（Ｙｅｓ）には、復号されたユーザーデータが、ホスト１１にステップＳ３２において送信される。これに対して、合成ＣＰと再生成ＣＰとが一致していなかった場合（Ｎｏ）には、誤訂正があった旨のエラーコードがステップＳ３３において送信される。
【００３８】
ここで、図７は、上記で説明したエラー訂正回路３の復号のときのタイミングチャートである。なお、タイミングチャートにおいては、簡略化するために各フレームの処理時間等を全て同じに図示している。
【００３９】
次に、図８および図９を用いて、復号器８Ｂの復号において、エラーフレームがあった場合のエラー訂正回路３の処理について説明する。図８は、エラーフレームがあった場合のエラー訂正回路３の復号時の処理の流れを説明するためのフローチャートであり、図９は、エラーフレームがあった場合のエラー訂正回路３の復号時の処理の流れを説明するための説明図である。以下、図８のフローチャートに従い、説明する。
【００４０】
＜ステップＳ４０＞  
図５のステップＳ２４が完了すると、復号器８Ｂからエラーフレームの有無が第１の誤り訂正回路３Ａに送信される。エラーフレームがなかった場合（Ｎｏ）には、図５のステップＳ２６からの処理が行われる。エラーフレームがあった場合（Ｙｅｓ）には、ステップＳ４１でエラーフレームの個数が確認される。
【００４１】
＜ステップＳ４１＞  
エラー訂正回路３は、Ｎ個の第２のＥＣＣフレームのうち、エラーフレームが１個だけの場合（Ｙｅｓ）は、Ｎの数によらず、後述するエラーフレームを復号するための訂正用パリティデータを再生成できる。図９では、エラーフレームがフレーム７の場合を例に説明する。エラーフレームが２個以上あった場合（Ｎｏ）には、エラー訂正回路３は、ステップＳ５６にて、エラーコードを送信し処理を終了する。
【００４２】
＜ステップＳ４２〜ステップＳ４４＞  
エラーフレームの番号Ｍを取得した第１の誤り訂正回路３Ａは、再び、８個の第２のＥＣＣフレームを順に読み込む。
【００４３】
＜ステップＳ４５〜ステップＳ４８＞  
図９（Ｅ）に示すように、第１のエラー訂正回路３Ａの符号化器７Ａは、エラーフレーム以外の第２のＥＣＣフレームからは、再び第１のパリティデータを生成する。共有パリティ処理器９は、再生成された第１のパリティデータを累積加算する。
【００４４】
＜ステップＳ４５、ステップＳ４８＞  
第１のエラー訂正回路３Ａは、エラーフレームであるＭ番目の第２のＥＣＣフレームの場合には、動作モードを符号化モードから復号モードに切り替え、復号器８Ａによる復号処理、言い換えれば、シンドローム生成処理を開始する。すなわち、復号器８Ａは、復号器８Ｂが復号できなかった第２のＥＣＣフレームのユーザーデータの処理を開始する。
【００４５】
＜ステップＳ４９、ステップＳ５０＞  
エラー訂正回路３は、８個の第２のＥＣＣフレームの処理が完了するまで、Ｓ４４からの処理を継続する。
【００４６】
＜ステップＳ４９、ステップＳ５１、ステップＳ５２＞  
図９（Ｆ）に示すように、共有パリティ処理器９は、合成共有パリティデータと、７個の再生成第１のパリティデータとの、縮退処理の逆演算を行い、エラーフレームであるＭ番目の第２のＥＣＣフレームの訂正用の第１のパリティデータを生成する。
【００４７】
＜ステップＳ５３＞  
第１のエラー訂正回路３Ａの復号器８Ａは、訂正用の第１のパリティデータにより、Ｍ番目の第２のＥＣＣフレームのユーザーデータを復号する。
【００４８】
＜ステップＳ５４〜ステップＳ５６＞  
訂正用の第１のパリティデータを用いて、エラーフレームを復号することができた場合（Ｙｅｓ）は、エラー訂正回路３は、ステップＳ５５において、復号された８ＫＢのユーザーデータ（データ列）を、ホストインターフェイス５を介して、ホストに送信する。なお、訂正用の第１のパリティデータを用いても、第１のＥＣＣフレーム７を復号することができないことは極めてまれであるが、その場合（Ｎｏ）は、エラー訂正回路３は、ステップＳ５６において、エラーコードを出力する。
【００４９】
以上の説明のように、本実施の形態のエラー訂正回路３は、効率の良いエラー訂正回路である。すなわち、従来のＬＤＰＣ／ＢＣＨ併用エラー訂正回路では、ＢＣＨエラー訂正回路のＥＣＣフレームサイズは、ＬＤＰＣエラー訂正回路のＥＣＣフレーム数個分の大きさになるが、本実施の形態のエラー訂正回路３では、ＢＣＨエラー訂正回路のＥＣＣフレームサイズは、ＬＤＰＣエラー訂正回路のＥＣＣフレームと同じサイズで構成できる。なお、ＢＣＨエラー訂正回路のサイズも、このＥＣＣフレームのサイズに比例するため、本実施の形態のエラー訂正回路３のＢＣＨエラー訂正回路のサイズは、従来のＬＤＰＣ／ＢＣＨ併用エラー訂正回路のＢＣＨエラー訂正回路のサイズに比べて小さい。
【００５０】
また、本実施の形態のエラー訂正回路３のＢＣＨパリティデータ格納サイズは、縮退処理を行わないで、全ての第１のパリティをそのまま保持するエラー訂正回路に比べて、縮小することができる。
【００５１】
さらに、エラー訂正チェック回路６Ａが、合成共有パリティデータと再生成共有パリティデータとを比較することで、第２のエラー訂正回路の前記復号の誤りを検出することができるために、エラー訂正回路３は信頼性の高い復号が可能である。すなわち、エラー訂正回路３は、処理効率が良く、かつ信頼性の高いエラー訂正回路である。
【００５２】
また、エラー訂正回路３とＮＡＮＤ型フラッシュメモリとを有する半導体メモリシステム１は、電気的にデータの書き換えが可能で、かつ電源を切った状態でもデータを保持することができる不揮発性のメモリシステムであり、データ処理効率が良くかつ信頼性の高い半導体メモリシステムである。
【００５３】
ここで、図１０は、本実施の形態のエラー訂正回路における復号のタイミングチャートであり、図１１は、本実施の形態のエラー訂正回路３におけるエラーフレーム出現時の復号動作を説明するための説明図を示す。
【００５４】
＜第２の実施の形態＞  
次に、図１２から図１６を参照して本発明の第２の実施の形態のエラー訂正回路１０３、およびエラー訂正回路１０３を有する半導体メモリシステム１０１について説明する。図１２は本実施の形態のエラー訂正回路における復号のタイミングチャートであり、図１３および図１４は、本実施の形態のエラー訂正回路の復号時の処理の流れを説明するためのフローチャートである。なお、半導体メモリシステム１０１の基本的構成は、図１に示した半導体メモリシステム１と同じであり、エラー訂正回路１０３はエラー訂正回路３と類似しているため、同じ構成要素には同じ符号を付し説明は省略する。
【００５５】
図１０に示したように、第１の実施の形態のエラー訂正回路３では、第２のエラー訂正回路３Ｂによる復号時にエラーフレームが出現したというフレームエラー情報Ａが、第１のエラー訂正回路３Ａに送信されるのは、８個の第２のＥＣＣフレームを全て復号した後であった。このため、この時点では、符号化器７Ａにより再生成された第１のパリティは、第２のエラー訂正回路３Ｂの復号誤り検出を行うために、共有パリティ処理器９により処理が行われ、再生成共有パリティとなっている。しかし、この再生成共有パリティは誤りのあるため、破棄される。このため、半導体メモリシステム１では、第１のエラー訂正回路３Ａの符号化器７Ａは、８個の第２のフレームデータを再び読み込み、順に、それぞれの第１のパリティデータを再び生成し、共有パリティ処理器９に送信する必要があった。
【００５６】
これに対して、図１２に示すように、本実施の形態のエラー訂正回路１０３では、第２のエラー訂正回路３Ｂの復号器８Ｂが一の第２のＥＣＣフレームを復号したときに、当該第２のＥＣＣフレームがエラーフレームであった場合には、直ちに、第１のエラー訂正回路３Ａにエラーフレームであったというフレームエラー情報Ｂが送信される。なお、図１０および図１２では２番目のフレーム１がエラーフレームの場合を示している。
【００５７】
そして、第１のエラー訂正回路３Ａは、エラーフレームであった第２のＥＣＣフレームに対しては、符号化器７Ａによる第１のパリティデータの再生成処理を行わず、復号器８Ａによる復号を開始する。このため、エラー訂正回路１０３では、エラーフレームの訂正用パリティによる復号が高速に行われる。
【００５８】
以下、図１３および図１４を用いて、エラー訂正回路１０３の処理の流れを説明する
＜ステップＳ６０＞
エラー訂正回路１０３は、フレーム番号Ｎの初期値を０に設定する。
【００５９】
＜ステップＳ６１＞  
第２のエラー訂正回路３Ｂの復号器８Ｂは、８個の第２のＥＣＣフレームデータを、メモリインターフェイス１０を介してメモリアレイ４から受信する。
【００６０】
＜ステップＳ６２＞  
復号器８Ｂは、フレーム番号Ｎの第２のＥＣＣフレームを第２のパリティを用いて復号し、第１のＥＣＣフレームを生成する。
【００６１】
＜ステップＳ６３＞  
復号器８Ｂが、全ての第２のＥＣＣフレームを正常に復号できた（Ｙｅｓ）場合の処理の流れ（ステップＳ６４〜ステップＳ７４）は、図５に示した第１の実施の形態の誤り訂正回路３と同じである。
【００６２】
これに対して、復号器８Ｂが、Ｎ番目の第２のＥＣＣフレームを正常に復号できなかった場合、すなわち、エラーフレームであった（Ｙｅｓ）場合には、（ＩＶ）からの図１４に示す処理が行われる。
【００６３】
＜ステップＳ８０＞  
エラーフレームであっても、その分割共有パリティは、合成ＣＰの生成に用いられる。
【００６４】
＜ステップＳ８１＞  
エラーフレームの場合、第１の誤り訂正回路３Ａは、符号化モードから復号モードに切り替わる。そして、復号器８Ａはエラーフレームの復号を開始する。すなわち、復号器８Ａは、エラーフレームのユーザーデータ、言い換えれば、復号器８Ｂが復号できなかったユーザーデータを取得する。この段階では復号器８Ａの処理は完了していない。
【００６５】
＜ステップＳ８２〜Ｓ８５＞  
復号器８Ｂによる、第２のＥＣＣフレームの復号において、２個目のエラーフレームが出現した場合（Ｓ８５、Ｙｅｓ）には、誤り訂正回路３はステップＳ９５でエラーコードを送信する。
【００６６】
＜ステップＳ８６〜Ｓ９１＞  
エラーフレームが１個だけだった場合には、共有パリティ処理器９は、合成共有パリティデータと、７個の再生成第１のパリティデータとを用い、エラーフレームの訂正用の第１のパリティデータを生成する。
【００６７】
＜ステップＳ９２＞  
第１のエラー訂正回路３Ａの復号器８Ａは、ステップ８１で行った復号の残りの処理を行い、訂正用の第１のパリティデータを用いて、エラーフレームのユーザーデータを復号する。
【００６８】
＜ステップＳ９３〜ステップＳ９５＞  
訂正用の第１のパリティデータを用いて、エラーフレームを復号することができた場合（Ｙｅｓ）は、エラー訂正回路１０３は、ステップＳ９４において、復号された８ＫＢのユーザーデータ（データ列）を、ホストインターフェイス５を介して、ホストに送信する。なお、訂正用の第１のパリティデータを用いても、第１のＥＣＣフレーム７を復号することができないことは極めてまれであるが、その場合（Ｎｏ）は、エラー訂正回路１０３は、ステップＳ９５において、エラーコードを出力する。
【００６９】
ここで、図１５および図１６は、本実施の形態のエラー訂正回路の処理の流れを説明するための説明図であり、図１５はエラーフレームが出現しなかったときを、図１６はエラーフレームが出現したときの説明図である。
【００７０】
エラー訂正回路１０３では、第２のエラー訂正回路３Ｂの復号器８Ｂが正常に復号できないエラーフレームがあっても、第１のエラー訂正回路３Ａは、８個の第２のＥＣＣフレームデータを、再読み込みをする必要がない。このため、エラー訂正回路１０３は、エラー訂正回路３が有する効果に加えて、エラー訂正回路３よりも、高速に効率良く処理が可能である。
【００７１】
また、エラー訂正回路１０３を有する半導体メモリシステム１０１は、データ処理効率が良くかつ信頼性の高い半導体メモリシステムである。
【００７２】
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
【図面の簡単な説明】
【００７３】
【図１】第１の実施の形態の半導体メモリシステムの概略の構成を示す構成図である。
【図２】第１の実施の形態のエラー訂正回路の符号化時の処理の流れを説明するためのフローチャートである。
【図３】第１の実施の形態のエラー訂正回路の符号化時の処理の流れを説明するための説明図である。
【図４】第１の実施の形態のエラー訂正回路の符号化時の処理の流れを説明するための説明図である。
【図５】第１の実施の形態のエラー訂正回路の復号時の処理の流れを説明するためのフローチャートである。
【図６】第１の実施の形態のエラー訂正回路の復号時の処理の流れを説明するための説明図である。
【図７】第１の実施の形態のエラー訂正回路の復号のタイミングチャートである。
【図８】エラーフレームがあった場合の第１の実施の形態のエラー訂正回路の復号時の処理の流れを説明するためのフローチャートである。
【図９】エラーフレームがあった場合の第１の実施の形態のエラー訂正回路の復号時の処理の流れを説明するための説明図である。
【図１０】第１の実施の形態のエラー訂正回路における復号のタイミングチャートである。
【図１１】第１の形態のエラー訂正回路における復号動作を説明するための説明図を示す。
【図１２】第２の実施の形態のエラー訂正回路における復号のタイミングチャートである。
【図１３】第２の実施の形態のエラー訂正回路の復号時の処理の流れを説明するためのフローチャートである。
【図１４】第２の実施の形態のエラー訂正回路の復号時の処理の流れを説明するためのフローチャートである。
【図１５】第２の実施の形態のエラー訂正回路の復号時の処理の流れを説明するための説明図である。
【図１６】第２の実施の形態のエラー訂正回路の復号時の処理の流れを説明するための説明図である。
【符号の説明】
【００７４】
１…半導体メモリシステム、２…半導体メモリコントローラ、３Ａ…第１のエラー訂正回路、３Ｂ…第２のエラー訂正回路、４…メモリアレイ、５…ホストインターフェイス、６Ａ…エラー訂正チェック回路、７Ａ…第１の符号化器、７Ｂ…第２の符号化器、８Ａ…第１の復号器、８Ｂ…第２の復号器、９…共有パリティ処理器、１０…メモリインターフェイス、１０１…半導体メモリシステム、１０３…エラー訂正回路
【図１】
2010033181.tif 000003
【図２】
2010033181.tif 000004
【図３】
2010033181.tif 000005
【図４】
2010033181.tif 000006
【図５】
2010033181.tif 000007
【図６】
2010033181.tif 000008
【図７】
2010033181.tif 000009
【図８】
2010033181.tif 000010
【図９】
2010033181.tif 000011
【図１０】
2010033181.tif 000012
【図１１】
2010033181.tif 000013
【図１２】
2010033181.tif 000014
【図１３】
2010033181.tif 000015
【図１４】
2010033181.tif 000016
【図１５】
2010033181.tif 000017
【図１６】
2010033181.tif 000018