(57)【特許請求の範囲】
【請求項１】
エラー訂正デコーダを含むメモリコントローラを含むメモリシステムにおいて、
前記エラー訂正デコーダは、
データを受信し、該受信されたデータをデータの第１セットとデータの第２セットとにデマルチプレクスするデマルチプレクサと、
前記データの第１セットと前記データの第２セットとをそれぞれ保存するための第１バッファメモリ及び第２バッファメモリと、
エラー検出器と、
エラー訂正器と、
前記データの第１セットと前記データの第２セットとをマルチプレクスし、該マルチプレクスされたデータを前記エラー訂正器に出力するマルチプレクサと、を含み、
前記エラー訂正器が、前記データの第１セット内のエラーを訂正する間に、前記エラー検出器は、前記第２バッファメモリ内に保存された前記データの第２セット内のエラーを検出することを特徴とするメモリシステム。
【請求項２】
前記エラー訂正デコーダは、
ビタビデコーダであることを特徴とする請求項１に記載のメモリシステム。
【請求項３】
前記エラー検出器は、
前記エラー訂正器が、前記データの第１セット内のエラーを訂正する間に、前記データの第２セットに対するブランチマトリックスを計算することを特徴とする請求項２に記載のメモリシステム。
【請求項４】
前記エラー訂正デコーダは、
ＢＣＨデコーダ（Ｂｏｓｅ−Ｃｈａｕｄｈｕｒｉ−Ｈｏｃｑｕｅｎｇｈｅｍ  ｄｅｃｏｄｅｒ）であり、
前記メモリシステムは、前記データの第１セットと前記データの第２セット内のエラー位置を決定するためのエラー位置識別子（ｅｒｒｏｅ  ｌｏｃａｔｉｏｎ  ｉｄｅｎｔｉｆｉｅｒ）をさらに含むことを特徴とする請求項１に記載のメモリシステム。
【請求項５】
前記エラー位置識別子は、
キー方程式ソルバと、チェンサーチアルゴリズムブロックと、エラー評価器と、を含むことを特徴とする請求項４に記載のメモリシステム。
【請求項６】
前記チェンサーチアルゴリズムは、
前記データの第１セットと前記データの第２セットのそれぞれに対してバックワードチェンサーチを行うことを特徴とする請求項５に記載のメモリシステム。
【請求項７】
前記チェンサーチアルゴリズムは、
前記データの第１セットと前記データの第２セットのそれぞれに対してフォワードチェンサーチを行うことを特徴とする請求項５に記載のメモリシステム。
【請求項８】
前記エラー訂正デコーダは、
リードソロモンデコーダであり、
前記メモリシステムは、
前記データの第１セットと前記データの第２セット内のエラー位置を決定するためのエラー訂正識別子をさらに含むことを特徴とする請求項１に記載のメモリシステム。
【請求項９】
メモリシステムでメモリ装置から出力され、メモリコントローラによって受信されたデータ処理方法は、
前記メモリ装置からデータを受信する段階と、
受信されたデータをデータの第１セットとデータの第２セットとにデマルチプレクシングする段階と、
前記データの第１セットを第１バッファメモリに保存する段階と、
前記データの第２セットを第２バッファメモリに保存する間に、前記データの第１セットにエラーが含まれているか否かを決定する段階と、
前記第１バッファメモリからの前記データの第１セットと前記第２バッファメモリからの前記データの第２セットとをマルチプレクシングする段階と、
マルチプレクスされたデータをエラー訂正器に供給する段階と、
前記データの第２セットにエラーが含まれているか否かを決定する間に、前記エラー訂正器を使って前記データの第１セット内の一つまたはそれ以上のエラーを訂正する段階と、を含むことを特徴とするデータ処理方法。
【請求項１０】
前記データの第１セットにエラーが含まれているか否かを決定する段階は、
前記データの第１セットに対するシンドローム値を計算することを特徴とする請求項９に記載のデータ処理方法。
【請求項１１】
前記データ処理方法は、
前記データの第２セットにエラーが含まれているか否かを決定する間に、前記データの第１セット内のエラー位置を決定する段階をさらに含むことを特徴とする請求項９に記載のデータ処理方法。
【請求項１２】
前記データの第１セット内のエラー位置を決定する段階は、
前記データの第１セットに対するキー方程式を解く段階と、
前記データの第１セットに対してチェンサーチアルゴリズムを実行する段階と、
前記データの第１セット内のエラーを評価する段階と、を含むことを特徴とする請求項１１に記載のデータ処理方法。
【請求項１３】
前記チェンサーチアルゴリズムは、
前記データの第１セットに対してバックワードチェンサーチを行うことを特徴とする請求項１２に記載のデータ処理方法。
【請求項１４】
前記チェンサーチアルゴリズムは、
前記データの第１セットに対してフォワードチェンサーチを行うことを特徴とする請求項１２に記載のデータ処理方法。
【請求項１５】
前記データの第１セット内の一つまたはそれ以上のエラーを訂正する段階は、
前記データの第１セットに対してビタビデコーディングアルゴリズムを実行する段階を含むことを特徴とする請求項９に記載のデータ処理方法。
【請求項１６】
前記データの第１セットにエラーが含まれているか否かを決定する段階は、
前記データの第１セットに対してブランチマトリックスを計算することを特徴とする請求項１５に記載のデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリシステムに係り、特に、エラー訂正デコーダを含むメモリシステム及びメモリシステムのデータ処理方法に関する。
【背景技術】
【０００２】
多数のフラッシュメモリシステムで、マルチチャンネルエラー訂正コーダ（ｍｕｌｔｉ−ｃｈａｎｎｅｌ  Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ  ｃｏｄｅｒ；ＥＣＣ）構造は、ホストシステムからフラッシュメモリにデータをエンコーディング／デコーディングするためのバッファメモリを含む。
【０００３】
図１は、フラッシュメモリシステム１０のブロック図である。フラッシュメモリシステム１０は、フラッシュメモリコントローラ１００及びメモリブロック２００を含む。メモリコントローラ１００は、ホストインターフェース１１０、ユーザーデータバッファ１２０、システムデータバッファ１３０、ＮＡＮＤインターフェース１４０及び中央処理装置１５０を含み、すべての装置１１０〜１５０は、システムバス１６０によって互いに接続されている。
【０００４】
ＮＡＮＤインターフェース１４０は、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）コントローラ１４４及びエラー訂正コーダ（ｅｒｒｏｒ  ｃｏｒｒｅｃｔｉｏｎ  ｃｏｄｅｒ；ＥＣＣ）ブロック１４５を含む。ＥＣＣブロック１４５は、ＥＣＣモジュール１４１、１４２、及び１４３を含む多数（Ｎ個）のＥＣＣモジュールを含む。メモリブロック２００は、メモリ装置２１１、２１２、及び２１３を含む多数（Ｎ個）のＮＡＮＤメモリ装置を含む。前記多数のＥＣＣモジュール１４１、１４２、及び１４３のそれぞれと多数のメモリ装置２１１、２１２、及び２１３のそれぞれは、多数のチャンネルのうちから対応するチャンネル（例えば、ＣＨ  ０、ＣＨ  １、及びＣＨ  Ｎ）を介して互いに接続される。
【０００５】
図２は、フラッシュメモリシステム１０でＥＣＣブロック１４５とメモリ装置２１１、２１２、２１３との間の詳細な相互接続を表わす。図２に図示されたように、ＥＣＣモジュール１４１は、エンコーダ１６１及びデコーダブロック１６５を含み、デコーダブロック１６５は、検出器１６２及び訂正器１６３をさらに含みうる。同様に、ＥＣＣモジュール１４２は、エンコーダ１７１及びデコーダブロック１７５を含み、デコーダブロック１７５は、検出器１７２及び訂正器１７３をさらに含みうる。また、ＥＣＣモジュール１４３は、エンコーダ１８１及びデコーダブロック１８５を含み、デコーダブロック１８５は、検出器１８２及び訂正器１８３をさらに含みうる。
【０００６】
動作時に、メモリ装置２１１に保存されるように予定されてホスト装置（例えば、プロセッサ）から出力されたデータは、ＤＭＡコントローラ１４４によってＥＣＣモジュール１４１に伝送される。ＥＣＣモジュール１４１で、このデータは、エンコーダ１６１によって先にエンコーディングされ、エンコーディングされたデータは、チャンネルＣＨ  ０を介してメモリ装置２１１に伝送される。データがメモリ装置２１１から読出されてホスト装置に提供される時、データは、デコーダブロック１６５によって先にデコーディングされ、デコーディングされたデータは、ＤＭＡコントローラ１４４に供給される。デコーダブロック１６５で、検出器１６２は、メモリ装置２１１から受信されたデータ内にエラーが含まれているか否かを検出し、もし、受信されたデータ内にエラーが含まれている場合、訂正器１６３は、エラーを訂正する。
【０００７】
図３は、メモリ装置から受信されたデータをエラー訂正デコーディングするための図２のＥＣＣ１４１内のデコーダブロック１６５のようなデコーダブロックの一実施形態による従来のデコーディング動作を表わす。図３の実施形態において、エラー訂正デコーダは、ＢＣＨ（Ｂｏｓｅ−Ｃｈａｕｄｈｕｒｉ−Ｈｏｃｑｕｅｎｇｈｅｍ）デコーダである。特に、図３は、メモリ装置（例えば、メモリ装置２１１）から読出されたデータのそれぞれのセクタに対するデコーディング動作のタイミングを表わす、第１周期（Ｔ０−Ｔ１）で、メモリ装置２１１からＮ（Ｎは、自然数）番目のセクタのデータを受信するやいなや、３１０段階でデコーダ内のシンドローム計算ブロックは、受信されたデータ内のエラーの有無を決定するためにシンドローム（ｓｙｎｄｒｏｍｅ）を計算する。もし、多数のシンドローム値が“０”である場合、受信されたデータ内にエラーがないと判断する。
【０００８】
一方、第２周期（Ｔ１−Ｔ２）で、３２０段階でキー方程式ソルバ（Ｋｅｙ  Ｅｑｕａｔｉｏｎ  Ｓｏｌｖｅｒ；ＫＥＳ）ブロックはキー方程式を解いて、３３０段階でチェンサーチとエラー評価器（Ｃｈｉｅｎ  ｓｅａｒｃｈ  ａｎｄ  ｅｒｒｏｒ  ｅｖａｌｕａｔｏｒ；ＣＳＥＥ）ブロックは、エラー値とエラー位置とを決定する。最後に、第３周期（Ｔ２−Ｔ３）で、３５０段階でＥＣＣ１４１内のエラー訂正器（例えば、訂正器１６３）は、デコーダブロック１６５から読出されたデータのようにエラー位置／評価器バッファ３７０からのエラー値を使ってエラーを訂正する。ＥＣＣモジュール１４１は、（Ｎ＋１）番目のセクタに対して前述したような過程を反復的に行う。図３に図示された実施形態において、第１区間（Ｔ０−Ｔ１）は５２６クロックサイクルであり、第２区間（Ｔ１−Ｔ２）は３７２クロックサイクルであり、第３区間（Ｔ２−Ｔ３）は３００クロックサイクルである。
【０００９】
ロービット密度セル（ｌｏｗ  ｂｉｔ−ｄｅｎｓｉｔｙ  ｃｅｌｌｓ）を有する多数のメモリ装置を含むメモリシステムで、装置でのエラー率（ｅｒｒｏｒ  ｒａｔｅ）は相対的に低くなり、エラー検出及びエラー訂正は全体システム性能において重要ではない。しかし、ハイビット密度シングルビット／セル構造（ｈｉｇｈ  ｂｉｔ−ｄｅｎｓｉｔｙ  ｓｉｎｇｌｅ−ｂｉｔ／ｃｅｌｌ）またはマルチビット／セル構造を使うメモリ装置を有する多数のメモリ装置を含むメモリシステムで、多数のメモリ装置からデータを読出す時に発生するエラーがさらに大きく、検出及び訂正段階をさらに必要とすることによって、メモリシステムの読出性能が減少する。
【００１０】
したがって、効率的なエラー検出及びエラー訂正とともに向上した処理量（ｔｈｒｏｕｇｈｐｕｔ）を提供することができるメモリシステムが要求される。また。ハイビット密度シングルビット／セル構造またはマルチビット／セル構造を使うメモリ装置を使う時、高い読出性能を維持できるメモリシステムを提供することができる。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明が解決しようとする課題は、レイテンシを減らし、処理量を増加させうるデコーダとこのデコーダを含むメモリシステムでのデータ処理方法とを提供することである。
【課題を解決するための手段】
【００１２】
本発明の実施形態は、メモリシステム、及び前記メモリシステムのデータ処理方法に使われる。
【００１３】
本発明の実施形態によるメモリシステムは、エラー訂正デコーダを含むメモリコントローラを含む。前記エラー訂正デコーダは、デマルチプレクサ、第１バッファメモリ及び第２バッファメモリ、エラー検出器、エラー訂正器、及びマルチプレクサを含む。前記デマルチプレクサは、データを受信し、該受信されたデータをデータの第１セットとデータの第２セットとにデマルチプレクシングする。第１バッファメモリ及び第２バッファメモリは、前記データの第１セットと前記データの第２セットのそれぞれを保存する。前記マルチプレクサは、前記データの第１セットと前記データの第２セットとをマルチプレクスし、該マルチプレクスされたデータをエラー訂正器に出力する。前記エラー訂正器が、前記データの第１セット内のエラーを訂正する間に、前記エラー検出器は、前記第２バッファメモリに保存された前記データの第２セット内のエラーを検出する。
【００１４】
本発明の実施形態によるデータ処理方法は、メモリ装置からデータを受信する段階と、該受信されたデータをデータの第１セットとデータの第２セットとにデマルチプレクシングする段階と、前記データの第１セットを第１バッファメモリに保存する段階と、前記データの第２セットを第２バッファメモリに保存する間に、前記データの第１セットがエラーを含むか否かを決定する段階と、前記第１バッファメモリから前記データの第１セットと前記第２バッファメモリから前記データの第２セットとをマルチプレクスする段階と、該マルチプレクシングされたデータをエラー訂正器に伝送する段階と、前記データの第２セットがエラーを含むか否かを決定する間に、前記エラー訂正器に前記データの第１セットで少なくとも何れか一つのエラーを訂正する段階と、を含む。
【発明の効果】
【００１５】
本発明の実施形態によるメモリシステムは、レイテンシを減少させることができ、かつ処理量を増加させうる効果がある。
【発明を実施するための最良の形態】
【００１６】
以下、添付した図面を参照して、本発明を詳しく説明する。
図４は、パイプラインドモード（ｐｉｐｅｌｉｎｅｄ  ｍｏｄｅ）で動作することができるフラッシュメモリシステムのためのフラッシュメモリエラー訂正デコーダ４００の一実施形態を表わすブロック図を表わす。エラー訂正デコーダ４００は、デマルチプレクサ４５０、エラー検出器４６２、エラー訂正器４６３、第１バッファメモリ４７０、第２バッファメモリ４８０、及びマルチプレクサ４９０を含む。
【００１７】
デマルチプレクサ４５０は、メモリ装置からデータを受信し、該受信されたデータをデータの第１セットとデータの第２セットとにデマルチプレクス（ｄｅｍｕｌｔｉｐｌｅｘ）し、データの第１セットを第１バッファメモリ４７０に伝送し、データの第２セットを第２バッファメモリ４８０に伝送する。同様に、マルチプレクサ４９０は、第１バッファメモリ４７０と第２バッファメモリ４８０のそれぞれからデータの第１セットとデータの第２セットとをマルチプレクスし、該マルチプレクスされたデータをエラー訂正器４６３に出力する。デマルチプレクサ４５０、デュアルバッファ、すなわち、第１バッファメモリ４７０と第２バッファメモリ４８０、及びマルチプレクサ４９０は、エラー検出器４６２がデータの第２セット、すなわち、データの第１セットに連続した第２データセットに対するエラー検出動作を行う間に、エラー訂正器４６３をしてデータの第１セットに対してエラー訂正動作を行わせる。
【００１８】
一実施形態において、エラー訂正デコーダ４００は、コンボリューショナルデコーダ（ｃｏｎｖｏｌｕｔｉｏｎａｌ  ｄｅｃｏｄｅｒ）、例えば、ビタビデコーダ（ｖｉｔｅｂｉ  ｄｅｃｏｄｅｒ））として具現可能である。この場合、エラー検出器４６２は、エラー訂正器４６３がデータの第１セット内のエラーを訂正する間に、データの第２セットに対するブランチマトリックス（ｂｒａｎｃｈ  ｍｅｔｒｉｃｓ）を計算する。
【００１９】
他の実施形態において、エラー訂正デコーダ５００は、ＢＣＨ（Ｂｏｓｅ−Ｃｈａｕｄｈｕｒｉ−Ｈｏｃｑｕｅｎｇｈｅｍ）デコーダとして具現可能である。図５は、パイプラインドモードで動作することができるＢＣＨフラッシュメモリエラー訂正デコーダ５００の一実施形態を表わすブロック図である。エラー訂正デコーダ５００は、シンドローム計算ブロック５１０、キー方程式ソルバ（ＫＥＳ）ブロック５２０、チェンサーチ及びエラー評価器ブロック５３０、デコーダコントローラ５４０、デマルチプレクサ（または、データスイッチ）５５０、エラー訂正器５６３、第１バッファメモリ５７０、第２バッファメモリ５８０、及びマルチプレクサ（または、データスイッチ）５９０を含む。
【００２０】
動作時に、データの第１セット（例えば、Ｎ番目のセクタのデータ）は、デマルチプレクサ５５０を介して第１バッファメモリ５７０に受信され、シンドローム計算ブロック５１０は、データの第１セットのシンドロームを計算する。もし、シンドロームが、データの第１セット内で発生したエラーを表わす場合、デコーダコントローラ５４０は、最小レイテンシ遅延でエラー訂正器５６３を遅延させる間に、データの第１セット内の多数のエラーの位置を探すようにＫＥＳブロック５２０とチェンサーチ及びエラー評価ブロック５３０とを制御する。マルチプレクサ５９０は、エラー訂正のために第１バッファメモリ５７０からデータの第１セットをエラー訂正器５６３に伝送する。
【００２１】
データの第１セットに対するこのような動作と並列して、データの第２セット（例えば、（Ｎ＋１）番目のセクタのデータ）は、デマルチプレクサ５５０を介して第２バッファメモリ５８０に受信され、シンドローム計算ブロック５１０は、データの第２セットのシンドロームを計算する。
【００２２】
データの第１セットがデコーダ５００から出力された後、デコーダコントローラ５４０は、データの第２セット内のエラーの位置を探すためにＫＥＳブロック５２０とチェンサーチ及びエラー評価ブロック５３０とを制御し、マルチプレクサ５９０は、エラー訂正のために第２バッファメモリ５８０からデータの第２セットをエラー訂正器５６３に伝送する。この期間の間に、データの第３セットは、デマルチプレクサ５５０を介して第１バッファメモリ５７０に受信され、シンドローム計算ブロック５１０は、データの第３セットのシンドロームを計算する。このような過程は、データ（例えば、メモリ装置からのセクタ）のすべての順次なセットに対して連続的に行われる。
【００２３】
図６は、パイプラインモードで動作するフラッシュメモリデコーダのデコーディング動作を表わす。図６に図示されたＢＣＨデコーダは、特に、リードソロモン（Ｒｅｅｄ−Ｓｏｌｏｍｏｎ；ＲＳ）デコーダである。
【００２４】
図６で、第１周期（Ｔ０−Ｔ１）で、メモリ装置（例えば、メモリ装置２１１）からデータの第１セット（例えば、Ｎ番目のセクタのデータ）を受信するやいなや、６１０段階でシンドローム計算ブロック（例えば、シンドローム計算ブロック５１０）は、データの第１セット内にエラーが含まれているか否かを決定するためにデータの第１セットのシンドロームを計算する。もし、多数のシンドローム値が“０”である場合、受信されたデータの第１セットは、エラーを含まないと決定する。
【００２５】
一方、第２周期（Ｔ１−Ｔ２）で、６２０段階、６３０段階、及び６４０段階のユークリッドアルゴリズム（Ｅｕｃｌｉｄ  ａｌｇｏｒｉｔｈｍ）、チェンサーチ（Ｃｈｉｅｎ  ｓｅａｒｃｈ）、及びフォーニ（Ｆｏｒｎｅｙ）アルゴリズムは、データの第１セット内のエラー値とエラー位置とを決定するために実行される。６５０段階で、エラー訂正器（例えば、エラー訂正器５６３）は、エラー位置／評価器バッファ６７０からエラー値を使ってエラーを訂正し、該エラー訂正されたデータの第１セットは、エラー訂正デコーダによって読出される。
【００２６】
第２周期（Ｔ１−Ｔ２）で、メモリ装置からデータの第２セット（例えば、（Ｎ＋１）番目のセクタからのデータ）を受信するやいなや、シンドローム計算ブロックは、データの第２セット内に如何なるエラーが存在するかを決定するためにデータの第２セットのシンドロームを計算する。すなわち、第２周期（Ｔ１−Ｔ２）の間に、第１バッファメモリでデータの第１セット（例えば、Ｎ番目のセクターからのデータ）からエラーが探されて訂正される間に、シンドロームは、第２バッファメモリでデータの第２セット（例えば、（Ｎ＋１）番目のセクターデータ）内に如何なるエラーが存在するかを検出するように計算される。
【００２７】
第２周期（Ｔ１−Ｔ２）の次に、エラー訂正デコーダは、メモリ装置から（Ｎ＋２）番目のセクタの次のデータの第３セットに対するシンドロームを計算する間に、メモリ装置からデータの（Ｎ＋１）番目のセクタに対するデータの第２セット内のエラー値とエラー位置とを決定するために前述した６２０段階、６３０段階、及び６４０段階を反復的に行うことができる。図６に図示された実施形態において、第１周期（Ｔ０−Ｔ１）は５２８クロックサイクルを有し、第２周期（Ｔ１−Ｔ２）は５２８クロックサイクルを有し、それは５００クロックサイクルより少なく必要とする。図３に図示された例と図６に図示された例とを比べると、エラーはさらに大きい処理量でメモリ装置から受信されたデータセット内で検出されて訂正される。
【００２８】
図７は、受信されたデータのためのデュアルバッファを含むバックワード（ｂａｃｋｗａｒｄ）チェンサーチングを行うＢＣＨフラッシュメモリエラー訂正デコーダに対するパイプラインドデコーディング動作のタイミングチャート７００を表わす。
【００２９】
タイミングチャート７００の最初のラインは、入力データを受信するタイミングを表わす。図示されたように、最初の区間が終わる時点Ａで、第１コードワード（ｃｏｄｅｗａｒｄ）は、第１バッファメモリに受信されて保存される。そして、二番目の区間で第２コードワードは、第２バッファメモリに受信されて保存される。その後、休止区間（ｉｄｌｅ  ｔｉｍｅ  ｐｅｒｉｏｄ）は、三番目の区間が始まる前の時点Ｃ以前で、第１コードワードの訂正されたデータを読出すために維持される。第３コードワードは、メモリ装置から受信されて第１バッファメモリに保存される。
【００３０】
タイミングチャート７００の二番目のラインは、受信された多数のコードワードの多数のシンドロームを計算するタイミングを表わす。最初の区間で、第１コードワードに対するシンドロームが計算される。そして、二番目の区間で、第２コードワードに対するシンドロームが計算される。その後で、第３区間が始まる前まで休止区間が維持され、三番目の区間で、第３コードワードに対するシンドロームが計算される。
【００３１】
タイミングチャート７００の三番目のラインは、それぞれの受信されたコードワードに対するキー方程式を解くためのタイミングを表わす。図７から、エラー訂正デコーダは、第２コードワードのシンドロームを受信して計算する区間と同じ区間で第１コードワードに対するキー方程式を解く。第２コードワードに対するシンドロームを計算した後で、フラッシュメモリエラー訂正デコーダは、第２コードワードに対するキー方程式を解く。このような過程は、それぞれの受信されたコードワードごとに反復される。
【００３２】
タイミングチャート７００の四番目のラインは、受信されたコードワード内でエラーの位置を探すためのバックワードチェンサーチ（ｂａｃｋｗａｒｄ  ｃｈｉｅｎ−ｓｅａｒｃｈ）を行うタイミングを表わす。図７から、エラー訂正デコーダは、第２コードワードのシンドロームを受信して計算する区間と同じ区間で第１コードワードに対するバックワードチェンサーチを行う。第２コードワードに対するシンドロームを計算した後で、フラッシュメモリエラー訂正デコーダは、第２コードワードに対するバックワードチェンサーチを行う。このような過程は、それぞれの受信されたコードワードごとに反復される。
【００３３】
タイミングチャート７００の五番目のラインは、それぞれの受信されたコードワードに対するエラー訂正タイミングを表わす。図７から、エラー訂正デコーダは、第２コードワードのシンドロームを計算する区間と同じ区間で第１コードワードに対するエラーを訂正する。第２コードワードに対するシンドロームを計算した後で、フラッシュメモリエラー訂正デコーダは、前記第２コードワードに対するエラーを訂正する。このような過程は、それぞれの受信されたコードワードごとに反復される。
【００３４】
タイミングチャート７００の最後のラインは、デコーダから訂正されたデータを伝送するか出力するタイミングを表わす。図７で図示されたように、バックワードチェンサーチアルゴリズムが適用されるために、フラッシュメモリエラー訂正デコーダは、バックワードチェンサーチが完了するＢ時点まで訂正されたデータをエラー訂正デコーダから読出を始めることができない。訂正されたデータは、Ｃ時点まで前記エラー訂正デコーダによって完全に読出される。
【００３５】
したがって、図７に図示された実施形態において、最初のラインの休止区間は、最初のコードワードがフラッシュメモリエラー訂正デコーダに完全に書き込まれる時点Ａと訂正されたデータがフラッシュメモリエラー訂正デコーダから完全に読出される時点Ｃとの間のレイテンシを反映するために、新たな三番目のコードワードがフラッシュメモリエラー訂正デコーダに書き込まれる前に存在する。
【００３６】
図８は、受信されたデータのためにデュアルメモリバッファを含むフォワードチェンサーチングを適用したＢＣＨフラッシュメモリエラー訂正デコーダのためのパイプラインドデコーディング動作を表わすタイミングチャート８００である。
タイミングチャート８００でタイミング動作は、タイミングチャート７００の動作と類似しているので、説明の重複を避けるために相違点のみが説明される。
【００３７】
図８に図示された実施形態と図７に図示された実施形態との最も根本的な差は、タイミングチャート８００ではフォワードチェンサーチングアルゴリズムを使い、訂正されたデータはコードワード内のすべてのエラーが訂正される前にフラッシュメモリエラー訂正デコーダから読出されることができる。
【００３８】
したがって、タイミングチャート８００の頂点から五番目のラインに図示された最初のコードワードのエラー訂正（そして、タイミングチャート８００の頂点から四番目のラインに図示された最初のコードワードに対するフォワードチェンサーチングアルゴリズム）とタイミングチャート８００の底ラインに図示されたデコーダから訂正データの出力または伝送の間に時間上にオーバーラップされる時間がある。図８で、時点Ａは、最初のコードワードが第１バッファメモリに受信されて保存される時点を表わし、時点Ｂは、フォワードチェンサーチングアルゴリズムが最初のコードワードに始まる時点を表わし、時点Ｃは、デコーダが最初のコードワードに対する訂正データを前記デコーダ外部に読出し始める時点を表わす。時点Ａから時点Ｂまでのレイテンシは、データの幅、デコーダのクロックレート（ｃｌｏｃｋ  ｒａｔｅ）などのような多数の要素に依存する。
【００３９】
バックワードチェンサーチングについての図７のタイミングチャート７００とは対照的に、フォワードチェンサーチングについての図８のタイミングチャート８００で、データ伝送は時点Ｃで完了し、新たなコードワードを受信し、該受信されたコードワードのシンドロームを計算するための最初のラインの休止期間は要しない。
【００４０】
図９は、データの第２セットでエラーを検出する間に、データの第１セットでエラーを訂正するパイプラインドモードで動作するデコーダを含むメモリシステムの性能に備えて、図１のメモリシステムに対するセクターエラー率の性能と処理量との比較を表わす。図９からパイプラインモードで動作するメモリシステムのデコーダは、高いメモリセクタエラー率で増加した処理量の性能を表わす。
【００４１】
本発明は、図面に図示された一実施形態を参考にして説明されたが、これは例示的なものに過ぎず、当業者ならば、これより多様な変形及び均等な他実施形態が可能であるという点を理解できるであろう。したがって、本発明の真の技術的保護範囲は、特許請求の範囲の技術的思想によって決まるべきである。
【産業上の利用可能性】
【００４２】
本発明の実施形態は、メモリシステム、及びメモリシステムのデータ処理方法に使われる。
【図面の簡単な説明】
【００４３】
【図１】フラッシュメモリシステムのブロック図を表わす。
【図２】エラー訂正コーダ（ＥＣＣ）ブロックとメモリ装置との間の接続を表わす。
【図３】従来のフラッシュメモリエラー訂正デコーダのデコーディング動作を表わす。
【図４】パイプラインモードで動作することができるフラッシュメモリエラー訂正デコーダの一例を表わすブロック図である。
【図５】パイプラインモードで動作することができるフラッシュメモリエラー訂正デコーダの他の実施形態を表わす。
【図６】パイプラインモードで動作するフラッシュメモリエラー訂正デコーダのデコーディング動作を表わす。
【図７】バックワードチェンサーチングを適用したＢＣＨフラッシュメモリエラー訂正デコーダのパイプラインドデコーディング動作のタイミングチャートを表わす。
【図８】フォワードチェンサーチングを適用したＢＣＨフラッシュメモリエラー訂正デコーダのパイプラインドデコーディング動作のタイミングチャートを表わす。
【図９】データの第２セット内でエラーを検出する間に、データの第１セット内のエラーを訂正するパイプラインドモードで動作するデコーダを含むメモリシステムの性能に備えて、図１のメモリシステムに対するセクターエラー率の性能と処理量との比較を表わす。
【符号の説明】
【００４４】
１００：フラッシュメモリコントローラ
２００：メモリブロック
４００：エラー訂正デコーダ
４５０：デマルチプレクサ
４７０：第１バッファメモリ
４８０：第２バッファメモリ
４６２：エラー検出器
４６３：エラー訂正器
４９０：マルチプレクサ
【図１】
0005473275.tif 000002
【図２】
0005473275.tif 000003
【図３】
0005473275.tif 000004
【図４】
0005473275.tif 000005
【図５】
0005473275.tif 000006
【図６】
0005473275.tif 000007
【図７】
0005473275.tif 000008
【図８】
0005473275.tif 000009
【図９】
0005473275.tif 000010