(57)【特許請求の範囲】
【請求項１】
少なくとも第１及び第２メモリデバイスと、
前記第１メモリデバイスとデータ通信を行うための第１通信チャンネルと前記第２メモリデバイスと通信を行うための第２通信チャンネルとを含むメモリコントローラと、を含み、
前記メモリコントローラは、
前記第１メモリデバイスから前記第１通信チャンネルを介して受信される第１データセットのエラーを検出する第１エラー検出器と、
前記第２メモリデバイスから前記第２通信チャンネルを介して受信される第２データセットのエラーを検出する第２エラー検出器と、
前記第１及び第２エラー検出器から第１及び第２エラー検出情報が同時に入力され、前記第１及び第２エラー検出情報を一つずつ順次出力するマルチプレクサと、
前記第１及び第２エラー検出情報が順次入力され、エラーを修正するエラー訂正器と、を含むことを特徴とするメモリシステム。
【請求項２】
前記メモリコントローラは、
前記第１通信チャンネルを介して受信される第１データセットを保存する第１バッファと、
前記第２通信チャンネルを介して受信される第２データセットを保存する第２バッファと、
前記マルチプレクサから順次出力された前記第１及び第２エラー検出情報を用いて、前記第１及び第２データセット内でのエラー位置を順次確認するエラー位置確認器と、をさらに含むことを特徴とする請求項１に記載のメモリシステム。
【請求項３】
前記エラー位置確認器は、
前記第１エラー検出情報に対するエラー位置確認が完了した後、連続して前記第２エラー検出情報に対するエラー位置確認を行うことを特徴とする請求項２に記載のメモリシステム。
【請求項４】
前記メモリシステムは、
前記第１データセットに続いて前記第１通信チャンネルを介して受信される第３データセットを保存する第３バッファと、
前記第２データセットに続いて前記第２通信チャンネルを介して受信される第４データセットを保存する第４バッファと、をさらに含み、
前記エラー位置確認器は、
前記第１及び第２エラー検出器が、前記第３及び第４データセットのそれぞれに対するエラーを検出する間に、前記第１及び第２データセット内でのエラー位置を確認することを特徴とする請求項２に記載のメモリシステム。
【請求項５】
前記メモリシステムは、
前記エラー位置確認器から受信される前記第１及び第２データセットに対するエラー位置確認情報をデマルチプレクシングするデマルチプレクサをさらに含むことを特徴とする請求項４に記載のメモリシステム。
【請求項６】
前記第１エラー検出器は、
前記第１通信チャンネルを介して受信される前記第１データセットの第１シンドローム値を計算し、
前記第２エラー検出器は、
前記第２通信チャンネルを介して受信される前記第２データセットの第２シンドローム値を計算することを特徴とする請求項１に記載のメモリシステム。
【請求項７】
前記マルチプレクサは、
前記第１及び第２シンドローム値をマルチプレクシングし、
前記メモリシステムは、前記第１及び第２データセット内でのエラー位置を確認し、前記エラー位置の情報を前記エラー訂正器に提供するエラー位置確認器をさらに含むことを特徴とする請求項６に記載のメモリシステム。
【請求項８】
前記エラー位置確認器は、
キー方程式ソルバ（ｋｅｙ  ｅｑｕａｔｉｏｎ  ｓｏｌｖｅｒ）と、
チェンサーチ（Ｃｈｉｅｎ−ｓｅａｒｃｈ）アルゴリズムブロックと、
エラー評価器（ｅｖａｌｕａｔｏｒ）と、を含むことを特徴とする請求項７に記載のメモリシステム。
【請求項９】
前記メモリシステムは、
第１ないし第４バッファをさらに含み、
前記エラー位置確認器は、前記第１バッファに保存された修正された第１データセットがホストに伝送され、前記第１通信チャンネルを介して受信される第３データセットが、前記第３バッファに保存され、前記第２通信チャンネルを介して受信される第４データセットが前記第４バッファに保存されると同時に、前記第２バッファに保存された第２データセットのエラーを確認して修正することを特徴とする請求項７に記載のメモリシステム。
【請求項１０】
前記第１エラー検出器は、
前記第１通信チャンネルを介して受信される前記第１データセットの第１ブランチマトリックスを計算し、
前記第２エラー検出器は、
前記第２通信チャンネルを介して受信される前記第２データセットの第２ブランチマトリックスを計算することを特徴とする請求項１に記載のメモリシステム。
【請求項１１】
前記マルチプレクサは、
前記第１及び第２ブランチマトリックスをマルチプレクシングし、前記マルチプレクシングされた第１及び第２ブランチマトリックスを前記エラー訂正器に提供することを特徴とする請求項１０に記載のメモリシステム。
【請求項１２】
前記エラー訂正器は、
ＡＣＳ（Ａｄｄ−Ｃｏｍｐａｒｅ−Ｓｅｌｅｃｔ）ブロックと、
ＳＭＭ（Ｓｔａｔｅ  Ｍｅｔｒｉｃｓ  Ｍｅｍｏｒｙ）と、
ＳＰＭ（Ｓｕｒｖｉｖｏｒ  Ｐａｔｈ  Ｍｅｍｏｒｙ）と、を含むことを特徴とする請求項１０に記載のメモリシステム。
【請求項１３】
第１通信チャンネルを介して第１メモリデバイスと通信するための第１入力ポートと、
第２通信チャンネルを介して第２メモリデバイスと通信するための第２入力ポートと、
前記第１及び第２通信チャンネルを介して受信されるデータをデコーディングするために、マルチプレクシングされるエラーデコーダを含むメモリコントローラと、を含み、
前記エラーデコーダは、
前記第１通信チャンネルを介して受信されるデータに対する第１シンドローム値を計算するための第１シンドローム計算ブロックと、
前記第２通信チャンネルを介して受信されるデータに対する第２シンドローム値を計算するための第２シンドローム計算ブロックと、
前記第１及び第２シンドローム値を用いて、前記第１及び第２通信チャンネルを介して受信されるデータ内でのエラー位置を確認するエラー位置確認器と、
二つの入力端子と一つの出力端子とを含み、前記入力端子は、前記第１及び第２シンドローム計算ブロックに接続され、前記出力端子は、前記エラー位置確認器の入力端子に接続されるマルチプレクサと、を含み、
前記第１シンドローム計算ブロックは、前記第２シンドローム計算ブロックが、前記第２通信チャンネルを介して受信されるデータの前記第２シンドローム値を計算する間に、前記第１通信チャンネルを介して受信されるデータの前記第１シンドローム値を計算し、
前記マルチプレクサは、前記第１及び第２シンドローム値が同時に入力され、前記第１及び第２シンドローム値を一つずつ順次前記エラー位置確認器の入力端子に出力することを特徴とするメモリシステム。
【請求項１４】
前記エラーデコーダは、
ブロックコードデコーダであることを特徴とする請求項１３に記載のメモリシステム。
【請求項１５】
前記メモリシステムは、
前記エラー位置確認器から受信される前記エラー位置の情報を用いて、前記第１及び第２通信チャンネルを介して受信されるデータに含まれたエラーを修正するエラー訂正器をさらに含むことを特徴とする請求項１３に記載のメモリシステム。
【請求項１６】
第１通信チャンネルを介して第１メモリデバイスと通信するための第１入力ポートと、
第２通信チャンネルを介して第２メモリデバイスと通信するための第２入力ポートと、
前記第１及び第２通信チャンネルを介して受信されるデータをデコーディングするために、マルチプレクシングされるエラーデコーダを含むメモリコントローラと、を含み、
前記エラーデコーダは、
前記第１通信チャンネルを介して受信されるデータに対するブランチマトリックスを計算するための第１ブランチマトリックス計算器と、
前記第２通信チャンネルを介して受信されるデータに対するブランチマトリックスを計算するための第２ブランチマトリックス計算器と、
前記第１及び第２通信チャンネルを介して受信されるデータに含まれたエラーを修正するためのエラー訂正器と、
二つの入力端子と一つの出力端子とを含み、前記入力端子は、前記第１及び第２ブランチマトリックス計算器に接続され、前記出力端子は、前記エラー訂正器の入力端子に接続されるマルチプレクサと、を含み、
前記第１ブランチマトリックス計算器は、前記第２ブランチマトリックス計算器が、前記第２通信チャンネルを介して受信されるデータのブランチマトリックスを計算する間に、前記第１通信チャンネルを介して受信されるデータのブランチマトリックスを計算し、
前記マルチプレクサは、前記第１及び第２ブランチマトリックス計算器から前記ブランチマトリックスが同時に入力され、前記ブランチマトリックスを一つずつ順次出力することを特徴とするメモリシステム。
【請求項１７】
前記エラーデコーダは、
コンボリューショナルデコーダであることを特徴とする請求項１６に記載のメモリシステム。
【請求項１８】
少なくとも二つのメモリデバイスから少なくとも二つの通信チャンネルを介して受信されるデータを処理する方法において、
前記データ処理方法は、
第２通信チャンネルを介して受信される第２データセットに含まれたエラーを検出する間に、第１通信チャンネルを介して受信される第１データセットに含まれたエラーを検出する段階と、
前記第１データセットに対する第１エラー検出情報及び第２データセットに対する第２エラー検出情報をマルチプレクサに同時に入力する段階と、
前記第１エラー検出情報を前記マルチプレクサから出力する段階と、
前記マルチプレクサから出力された前記第１エラー検出情報を用いて、前記第１データセット内でのエラーの位置を確認する段階と、
前記第２エラー検出情報を前記マルチプレクサから出力する段階と、
前記エラーの位置を確認された前記第１データセットのエラーを修正すると同時に、前記マルチプレクサから出力された前記第２エラー検出情報を用いて前記第２データセット内でのエラーの位置を確認する段階と、
前記エラーの位置を確認された前記第２データセットのエラーを修正する段階と、を含むことを特徴とするデータ処理方法。
【請求項１９】
前記データ処理方法は、
前記第２通信チャンネルを介して受信される第４データセットに含まれたエラーを検出し、前記第１データセットから検出されたエラーが修正される間に、前記第１通信チャンネルを介して受信される第３データセットに含まれたエラーを検出する段階をさらに含むことを特徴とする請求項１８に記載のデータ処理方法。
【請求項２０】
前記第１及び第２データセットからエラーを検出する段階は、
前記第１及び第２データセットに対するシンドローム値を検出する段階を含むことを特徴とする請求項１８に記載のデータ処理方法。
【請求項２１】
前記第１データセットのエラーの位置を確認する段階は、
前記第１データセットに対するキー方程式を解く段階と、
前記第１データセットに対するチエンサーチアルゴリズムを行う段階と、
前記第１データセットのエラーを評価する段階と、を含むことを特徴とする請求項２０に記載のデータ処理方法。
【請求項２２】
前記第１及び第２データセットに含まれたエラーを検出する段階は、
前記第１及び第２データセットのブランチマトリックスを計算する段階を含むことを特徴とする請求項１８に記載のデータ処理方法。
【請求項２３】
メモリデバイスのうち少なくとも一つのメモリから第１及び第２通信チャンネルのうち対応する通信チャンネルを介して受信されるデータセットのエラーを検出する第１及び第２エラー検出器と、
前記第１及び第２エラー検出器から第１及び第２エラー検出情報が同時に入力され、前記第１及び第２エラー検出情報を一つずつ順次出力するマルチプレクサと、
前記第１及び第２エラー検出情報が順次入力され、エラーを修正するエラー訂正器と、含むことを特徴とするエラーデコーダ。
【請求項２４】
前記エラーデコーダは、
前記第１通信チャンネルを介して受信される第１データセットを保存する第１バッファと、
前記第２通信チャンネルを介して受信される第２データセットを保存する第２バッファと、
前記マルチプレクサから順次出力された前記第１及び第２エラー検出情報を用いて、前記データセット内でのエラー位置を順次確認するエラー位置確認器と、をさらに含むことを特徴とする請求項２３に記載のエラーデコーダ。
【請求項２５】
前記エラー位置確認器は、
前記第１エラー検出情報に対するエラー位置確認が完了した後、連続して前記第２エラー検出情報に対するエラー位置確認を行うことを特徴とする請求項２４に記載のエラーデコーダ。
【請求項２６】
前記エラーデコーダは、
前記第１データセットに続いて前記第１通信チャンネルを介して受信される第３データセットを保存する第３バッファと、
前記第２データセットに続いて前記第２通信チャンネルを介して受信される第４データセットを保存する第４バッファと、をさらに含み、
前記エラー位置確認器は、
前記第１及び第２エラー検出器が、前記第３及び第４データセットのそれぞれに対するエラーを検出する間に、前記第１及び第２データセット内でのエラー位置を確認することを特徴とする請求項２４に記載のエラーデコーダ。
【請求項２７】
前記エラーデコーダは、
前記エラー位置確認器から受信される前記第１及び第２データセットに対するエラー位置確認情報をデマルチプレクシングするデマルチプレクサをさらに含むことを特徴とする請求項２６に記載のエラーデコーダ。
【請求項２８】
前記第１エラー検出器は、
前記第１通信チャンネルを介して受信される第１データセットの第１シンドローム値を計算し、
前記第２エラー検出器は、
前記第２通信チャンネルを介して受信される第２データセットの第２シンドローム値を計算することを特徴とする請求項２３に記載のエラーデコーダ。
【請求項２９】
前記マルチプレクサは、
前記第１及び第２シンドローム値をマルチプレクシングし、
前記エラーデコーダは、
前記第１及び第２データセット内でのエラー位置を確認し、前記エラー位置の情報を前記エラー訂正器に提供するエラー位置確認器をさらに含むことを特徴とする請求項２８に記載のエラーデコーダ。
【請求項３０】
前記エラー位置確認器は、
キー方程式ソルバと、
チェンサーチアルゴリズムブロックと、
エラー評価器と、を含むことを特徴とする請求項２９に記載のエラーデコーダ。
【請求項３１】
前記エラーデコーダは、
第１ないし第４バッファをさらに含み、
前記エラー位置確認器は、前記第１バッファに保存された修正された第１データセットがホストに伝送され、前記第１通信チャンネルを介して受信される第３データセットが前記第３バッファに保存され、前記第２通信チャンネルを介して受信される第４データセットが前記第４バッファに保存されると同時に、前記第２バッファに保存された第２データセットのエラーを確認して修正することを特徴とする請求項３０に記載のエラーデコーダ。
【請求項３２】
前記第１エラー検出器は、
前記第１通信チャンネルを介して受信される第１データセットの第１ブランチマトリックスを計算し、
前記第２エラー検出器は、
前記第２通信チャンネルを介して受信される第２データセットの第２ブランチマトリックスを計算することを特徴とする請求項２３に記載のエラーデコーダ。
【請求項３３】
前記マルチプレクサは、
前記第１及び第２ブランチマトリックスをマルチプレクシングし、前記マルチプレクシングされた第１及び第２ブランチマトリックスを前記エラー訂正器に提供することを特徴とする請求項３２に記載のエラーデコーダ。
【請求項３４】
前記エラー訂正器は、
ＡＣＳ（Ａｄｄ−Ｃｏｍｐａｒｅ−Ｓｅｌｅｃｔ）ブロックと、
ＳＭＭ（Ｓｔａｔｅ  Ｍｅｔｒｉｃｓ  Ｍｅｍｏｒｙ）と、
ＳＰＭ（Ｓｕｒｖｉｖｏｒ  Ｐａｔｈ  Ｍｅｍｏｒｙ）と、を含むことを特徴とする請求項３２に記載のエラーデコーダ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリシステムに係り、より詳細には、エラー訂正デコーディング機能を有するメモリシステムに関する。
【背景技術】
【０００２】
フラッシュメモリシステムでは、ホストシステムとフラッシュメモリとの間に送受信されるデータのエンコーディング／デコーディングのために、バッファメモリを含むマルチチャンネルエラー訂正コーダ構造が利用される。
【０００３】
図１は、フラッシュメモリシステム１０のブロック図を表わす。図１を参照すれば、フラッシュメモリシステム１０は、フラッシュメモリコントローラ１００及びメモリブロック２００を含む。メモリコントローラ１００は、ホストインターフェース１９０、ユーザーデータバッファ１２０、システムデータバッファ１３０、ＮＡＮＤインターフェース１４０、及び中央処理ユニット１５０を含み、これらはいずれもシステムバス１６０に連結される。
【０００４】
ＮＡＮＤインターフェース１４０は、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）コントローラ１４４及びＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ  Ｃｏｄｅｒ）  ブロック１４５を含む。ＥＣＣブロック１４５は、多数の（例えば、Ｎ個、Ｎは、２  以上の自然数）ＥＣＣモジュール１４１、１４２、及び１４３を含むことができ、多数のＥＣＣモジュール１４１、１４２、及び１４３のそれぞれは、多数のチャンネルＣＨ  ０、ＣＨ  １、及びＣＨ  Ｎによって多数のメモリデバイス２１１、２１２、及び２１３のうち対応するメモリデバイスと連結される。他の実施形態によるＮＡＮＤインターフェース１４０は、多数（例えば、Ｍ個、Ｍは、２以上の自然数）のＤＭＡコントローラ１４４を備えることができる。ここで、Ｍは、Ｎと同一であることもあり、同一でないこともある。
【０００５】
図２は、図１に図示されたＥＣＣブロック１４５とメモリデバイスとの間の連結関係をより詳しく表わすブロック図である。図２に図示されたように、ＥＣＣモジュール１４１は、エンコーダ１６１及び検出器１６２と訂正器１６３とを含むデコーダブロック１６５を含む。また、ＥＣＣモジュール１４２は、エンコーダ１７１及び検出器１７２と訂正器１７３とを含むデコーダブロック１７５を含む。ＥＣＣモジュール１４３は、エンコーダ１８１及び検出器１８２と訂正器１８３とを含むデコーダブロック１８５を含む。
【０００６】
メモリデバイス２１１にデータが記録される場合、ホストデバイス（例えば、プロセッサ）から受信されてメモリデバイス２１１に保存されるデータは、ＤＭＡコントローラ１４４によってＥＣＣモジュール１４１に伝送される。ＥＣＣモジュール１４１で、データは、先にエンコーダ１６１によってエンコーディングされた後、チャンネルＣＨ  ０を介してメモリデバイス２１１に伝送される。
【０００７】
メモリデバイス２１１から読み取られたデータがホストデバイスに伝送される場合、データは、先にデコーダ１６５によってデコーディングされた後、ＤＭＡコントローラ１４４に伝送される。デコーダ１６５で、検出器１６２は、メモリデバイス２１１から受信されるデータにエラーがあるか否かを検査し、もし、エラーがあれば、訂正器１６３は、そのエラーを修正する。
【０００８】
最近、半導体集積技術の発達につれてフラッシュメモリシステムの容量増加のために、それに含まれるメモリデバイスの数が次第に増加しており、メモリデバイス（例えば、ＮＡＮＤフラッシュメモリ）には、マルチレベルセル（ｍｕｌｔｉ−ｌｅｖｅｌ  ｃｅｌｌ）が適用されている。これにより、フラッシュメモリシステムは、次第にさらに多くのＥＣＣモジュールを必要とした。
【０００９】
しかし、さらに多くのＥＣＣモジュールを追加することは、メモリコントローラのサイズを増加させ、ＥＣＣ  ＩＰコアゲートの数を増加させ、フラッシュメモリシステムの複雑性とコストとを増加させる問題点を発生させる。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明が果たそうとする技術的な課題は、面積効率が高く、強力なエラー検出及び修正できるメモリシステム及びデータ処理方法を提供することである。
【課題を解決するための手段】
【００１１】
前記技術的課題を果たすためのメモリシステムは、少なくとも二つのメモリデバイスと、それぞれが、前記メモリデバイスのうち少なくとも一つとデータ通信を行うための第１及び第２通信チャンネルを含むメモリコントローラと、を含みうる。
【００１２】
前記メモリコントローラは、前記メモリデバイスから前記第１及び第２通信チャンネルを介して受信されるデータセットのエラーを検出する第１及び第２エラー検出器と、前記第１及び第２エラー検出器によって検出されたエラーを修正するエラー訂正器と、を含みうる。
【００１３】
前記技術的課題を解決するための他のメモリシステムは、第１通信チャンネルを介して第１メモリデバイスと通信するための第１入力ポートと、第２通信チャンネルを介して第２メモリデバイスと通信するための第２入力ポートと、前記第１及び第２通信チャンネルを介して受信されるデータをデコーディングするために、マルチプレクシングされるエラーデコーダを含むメモリコントローラと、を含みうる。
【００１４】
前記技術的課題を解決するための少なくても二つのメモリデバイスから少なくとも二つの通信チャンネルを介して受信されるデータを処理する方法は、第２通信チャンネルを介して受信される第２データセットに含まれたエラーを検出する間に、第１通信チャンネルを介して受信される第１データセットに含まれたエラーを検出する段階と、前記第１データから検出されたエラーを修正した後、順次に前記第２データから検出されたエラーを修正する段階と、を含みうる。
【００１５】
前記技術的課題を解決するためのエラーデコーダは、メモリデバイスのうち少なくとも一つのメモリから第１及び第２通信チャンネルのうち対応する通信チャンネルを介して受信されるデータセットのエラーを検出する第１及び第２エラー検出器と、前記第１及び第２エラー検出器によって検出されたエラーを修正するエラー訂正器と、を含みうる。
【発明の効果】
【００１６】
本発明によるメモリシステム及びデータ処理方法は、面積効率性を増加させることができ、結局製造コストを節減することができる。
【発明を実施するための最良の形態】
【００１７】
本発明と本発明の動作上の利点及び本発明の実施によって達成される目的を十分に理解するためには、本発明の望ましい実施形態を例示する添付図面及び添付図面に記載の内容を参照しなければならない。
【００１８】
以下、添付図面を参照して、本発明の望ましい実施形態を説明することによって、本発明を詳しく説明する。各図面に付された同一参照符号は、同一部材を表わす。
【００１９】
図３は、２チャンネルメモリシステムに適用される本発明の実施形態によるＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ  Ｃｏｄｅｒ）ブロック３００のブロック図を表わす。図３に図示されたＥＣＣブロック３００は、ＢＣＨ（Ｂｏｓｅ−Ｃｈａｕｄｈｕｒｉ−Ｈｏｃｑｕｅｎｇｈｅｍ）エラー訂正コーダである。ＥＣＣブロック３００は、それぞれが、第１及び第２通信チャンネルのうち対応する通信チャンネルに接続される二つのデータエンコーダ３６１を含む。
【００２０】
ＥＣＣブロック３００は、それぞれが、第１及び第２通信チャンネルのうち相応する通信チャンネルに接続される二つのシンドローム計算ブロック３１０ａ、及び３１０ｂをさらに含む。ＥＣＣブロック３００は、マルチプレクサ３１５（または、データスイッチ）、ＫＥＳ（Ｋｅｙ  Ｅｑｕａｔｉｏｎ  Ｓｏｌｖｅｒ）ブロック３２０、ＣＳ（Ｃｈｅｉｎ−Ｓｅａｒｃｈ）ブロック３３０、ＥＥ（Ｅｒｒｏｒ  Ｅｖａｌｕａｔｏｒ）ブロック３３５、及びデコーダコントローラ３４０を含む。
【００２１】
駆動時、ＥＣＣブロック３００は、同時に並列して動作する二つの通信チャンネルを介してメモリデバイスとデータ通信を行う。ホストデバイス（例えば、プロセッサ）から受信されたデータが、二つの通信チャンネルを介してメモリデバイスに書き込まれる場合、先にそれぞれの通信チャンネルに対して対応するエンコーダ３６１によってエンコーディングされる（例えば、ＢＣＨコードに）。その後、エンコーディングされたデータは、メモリデバイスに二つの通信チャンネルを介して並列して伝送される。
【００２２】
エンコーディングされたデータが、メモリデバイスから二つの通信チャンネルを介して読み取られる場合、エンコーディングされたデータは、ホストデバイス（例えば、プロセッサ）に伝送される前にデコーディングされる。したがって、シンドローム計算ブロック３１０ａは、他のシンドローム計算ブロック３１０ｂが、第２通信チャンネルを介して受信される第２データセット（例えば、メモリのＭ番目のセクタのデータ）のシンドロームを計算すると同時に、第１通信チャンネルを介して受信される第１データセット（例えば、メモリのＮ番目のセクタのデータ）のシンドロームを計算する。
【００２３】
もし、データセットのシンドローム値が０であれば、これは、データセットにエラーが含まれていないということを意味する。しかし、データセットに一つまたはそれ以上のエラーが含まれていれば、エラーは、位置が確認されて修正されなければならない。すなわち、シンドローム計算ブロック３１０ａ、及び３１０ｂは、データセットにエラーが含まれているか否かを検査する。
【００２４】
ＥＣＣブロック３００は、デコーダコントローラ３４０の統制下で二つの通信チャンネルが、ＫＥＳブロック３２０、ＣＳブロック３３０、及びＥＥブロック３３５を共有させるために、マルチプレクサ３１５を含む。すなわち、マルチプレクサ３１５は、メモリデバイスから通信チャンネルを介して受信されるデータに含まれたエラーの位置を表わす情報をマルチプレクシングするということを意味する。
【００２５】
一旦、データセットでのエラーの位置が確認されれば、エラーは、エラー訂正ブロック（例えば、論理的排他和（ｅＸｃｌｕｓｉｖｅ−ＯＲ、ＸＯＲ）回路、図示せず）によって修正され、デコーディングされたデータは、ホストデバイス（例えば、プロセッサ）に伝送される。
【００２６】
図４は、２チャンネルメモリシステムに適用される本発明の他の実施形態によるＥＣＣブロック４００のブロック図を表わす。図４に図示されたＥＣＣメモリブロック４００は、コンボリューショナル（ｃｏｎｖｏｌｕｔｉｏｎａｌ）エラー訂正コーダを表わす。特に、ＥＣＣブロック４００は、ビタビデコーダ（Ｖｉｔｅｒｖｉ  ｄｅｃｏｄｅｒ）を含む。
【００２７】
ＥＣＣブロック４００は、それぞれが、第１及び第２通信チャンネルのうち一つと接続される二つのデータエンコーダ４６１を含む。ＥＣＣブロック４００は、それぞれが、第１及び第２通信チャンネルのうち一つと接続される二つのブランチマトリックス計算器（ｂｒａｎｃｈ  ｍｅｔｒｉｃｓ  ｃａｌｕｌａｔｏｒ）４１０ａ、及び４１０ｂを含む。ＥＣＣブロック４００は、マルチプレクサ（または、データスイッチ）４１５、ＡＣＳ（Ａｄｄ−Ｃｏｍｐａｒｅ−Ｓｅｌｅｃｔ）ブロック４２０、ＳＭＭ（Ｓｔａｔｅ  Ｍｅｔｒｉｃｓ  Ｍｅｍｏｒｙ）ブロック４３０、ＳＰＭ（Ｓｕｒｖｉｖｏｒ  Ｐａｔｈ  Ｍｅｍｏｒｙ）ブロック４３５をさらに含む。
【００２８】
駆動時、ＥＣＣブロック４００は、並列して同時に駆動される二つの通信チャンネルを介してメモリデバイス（例えば、フラッシュメモリデバイス）と通信する。ホストデバイス（例えば、プロセッサ）から受信されたデータが、二つの通信チャンネルを介してメモリデバイスに書き込まれる場合、先にそれぞれの通信チャンネルに対して対応するエンコーダ４６１によってエンコーディングされる（例えば、コンボリューショナルコードに）。その後、エンコーディングされたデータは、メモリデバイスに二つの通信チャンネルを介して並列して伝送される。
【００２９】
エンコーディングされたデータが、メモリデバイスから二つの通信チャンネルを介して読み取られる場合、エンコーディングされたデータは、ホストデバイス（例えば、プロセッサ）に伝送される前にデコーディングされる。したがって、ブランチマトリックス計算器４１０ａは、他のブランチマトリックス計算器４１０ｂが、第２通信チャンネルを介して受信される第２データセット（例えば、メモリのＭ番目のセクタのデータ）のブランチマトリックスを計算すると同時に、第１通信チャンネルを介して受信される第１データセット（例えば、メモリのＮ番目のセクタのデータ）のブランチマトリックスを計算する。
【００３０】
ＥＣＣブロック４００は、二つの通信チャンネルが、ＡＣＳブロック４２０、ＳＭＭブロック４３０、及びＳＰＭブロック４３５を共有させるために、マルチプレクサ４１５を含む。すなわち、マルチプレクサ４１５は、メモリデバイスから通信チャンネルを介して受信されるデータに含まれたエラーの位置を表わす情報をマルチプレクシングするということを意味する。
【００３１】
図５は、パイプラインモードで動作する本発明の実施形態によるエラー訂正デコーダ５００（例えば、ＢＣＨフラッシュメモリエラー訂正デコーダ）のブロック図を表わす。デコーダ５００は、シンドローム計算ブロック５１０、ＫＥＳブロック５２０、ＣＳＥＥ（Ｃｈｅｉｎ−Ｓｅａｒｃｈ  ａｎｄ  Ｅｒｒｏｒ  Ｅｖａｌｕａｔｏｒ）ブロック５３０、デコーダコントローラ５４０、デマルチプレクサ（または、データスイッチ）５５５、エラー訂正器５６３、第１バッファメモリ５７０、第２バッファメモリ５８０、及びマルチプレクサ（または、データスイッチ）５９０を含む。
【００３２】
駆動時、第１データセット（Ｎ番目のセクターのデータ）は、デマルチプレクサ５５５を介して第１バッファメモリ５７０に受信され、シンドローム計算ブロック５１０は、第１データセットのシンドローム値を計算する。もし、シンドローム値が、第１データセットにエラーが含まれることを表わせば、デコーダコントローラ５４０は、エラー訂正器５６３でのレイテンシ遅延（ｌａｔｅｎｃｙ  ｄｅｌａｙ）が最小になるように試みると同時に、ＫＥＳブロック５２０及びＣＳＥＥブロック５３０が、第１データセットに含まれたエラーの位置を表わすように制御する。
【００３３】
マルチプレクサ５９０は、エラー訂正のために、第１データセットを第１バッファメモリ５７０からエラー訂正器５６３に伝送する。このような第１データセットに対する演算と並列して、第２データセット（（Ｎ＋１）番目のセクタのデータ）は、デマルチプレクサ５５５を介して第２バッファメモリ５８０に受信され、シンドローム計算ブロック５１０は、第２データセットのシンドローム値を計算する。
【００３４】
第１データセットが、デコーダ５００から出力された後、デコーダコントローラ５４０は、ＫＥＳブロック５２０及びＣＳＥＥブロック５３０が、第１データセットに含まれたエラーの位置を表わすように制御し、マルチプレクサ５９０は、第２データセットを第２バッファメモリ５８０からエラー訂正器５６３に伝送する。この区間の間に、デマルチプレクサ５５５を介して第３データセットが第１バッファメモリ５７０に伝送され、シンドローム計算ブロック５１０は、第３データセットのシンドローム値を計算する。このような方式の過程がすべての順次なデータセット（例えば、メモリデバイスのセクタ）に対して反復的に行われる。
【００３５】
図６は、バッファメモリ構造を有し、パイプラインモードで動作する２チャンネルフラッシュメモリシステム６０のブロック図を表わす。フラッシュメモリシステム６０は、フラッシュメモリコントローラ６００及びＮＡＮＤメモリデバイス６１１及び６１２を含む。フラッシュメモリコントローラ６００は、ＥＣＣブロック６４５及びホストインターフェース６９０を含む。
【００３６】
ＥＣＣブロック６４５は、それぞれが、第１及び第２通信チャンネルのうち対応する通信チャンネルに接続される二つのデータエンコーダ６６１を含む。
ＥＣＣブロック６４５は、それぞれが、第１及び第２通信チャンネルのうち対応する通信チャンネルに接続される二つのシンドローム計算ブロック６１０ａ及び６１０ｂをさらに含む。ＥＣＣブロック６４５は、マルチプレクサ６１５（または、データスイッチ）、デコーダブロック６３０、デマルチプレクサ６７５、第１及び第２バッファメモリ６７０及び６８０、第３及び第４バッファメモリ（図示せず）、及びエラー訂正ブロック６６３を含む。
【００３７】
駆動時、ＥＣＣブロック６４５は、同時に並列して動作する二つの通信チャンネルを介してメモリデバイスとデータ通信を行う。ホストデバイス（例えば、プロセッサ）から受信されたデータが、二つの通信チャンネルを介してメモリデバイスに書き込まれる場合、先にそれぞれの通信チャンネルに対して対応するエンコーダ６６１によってエンコーディングされる（例えば、ＢＣＨコードに）。その後、エンコーディングされたデータは、メモリデバイス６１１及び６１２に二つの通信チャンネルを介して並列して伝送される。
【００３８】
エンコーディングされたデータが、メモリデバイス６１１及び６１２から二つの通信チャンネルを介して読み取られる場合、エンコーディングされたデータは、ホストデバイス（例えば、プロセッサ）に伝送される前にデコーディングされる。したがって、シンドローム計算ブロック６１０ａは、他のシンドローム計算ブロック６１０ｂが、第２通信チャンネルを介して受信される第２データセット（例えば、メモリのＭ番目のセクタのデータ）のシンドロームを計算すると同時に、第１通信チャンネルを介して受信される第１データセット（例えば、メモリのＮ番目のセクタのデータ）のシンドロームを計算する。
【００３９】
もし、データセットのシンドローム値が０であれば、これは、データセットにエラーが含まれていないということを意味する。しかし、データセットに一つまたはそれ以上のエラーが含まれていれば、エラーは、位置が確認されて修正されなければならない。すなわち、シンドローム計算ブロック６１０ａ及び６１０ｂは、データセットにエラーが含まれているか否かを検査する。
【００４０】
ＥＣＣブロック６４５は、二つの通信チャンネルが一つのデコーダブロック６３０を共有させるために、マルチプレクサ６１５を含む。すなわち、マルチプレクサ６１５は、メモリデバイス６１１及び６１２から通信チャンネルを介して受信されるデータに含まれたエラーの位置を表わす情報をマルチプレクシングするということを意味する。一旦、データセットでのエラーの位置が確認されれば、エラーは、エラー訂正ブロック（例えば、論理的排他和（ＸＯＲ）回路）６６３によって修正され、デコーディングされたデータは、ホストデバイス（例えば、プロセッサ）に伝送される。
【００４１】
以下、ＥＣＣブロック６４５のパイプラインモードでの動作をさらに詳しく説明する。二つのメモリチップ６１１及び６１２からデータセットがメモリコントローラ６００に読み取られる場合、二つの通信チャンネルを介して受信されるデータセットに含まれたエラーは同時に検出される。これと同時に、エラー訂正及びホストへの伝送待機中であるデータセットは、バッファメモリ６７０及び６８０に保存される。
【００４２】
デコーダブロック６３０が、メモリデバイス６１１から読み取られる第１データセットに含まれたエラーの位置を計算した後、バッファメモリ６７０に保存された第１データセットは、修正されてホストデバイスに伝送される。第１バッファメモリ６７０に保存された第１データセットが、ホストデバイスに伝送される間に、デコーダブロック６３０は、メモリデバイス６１２から読み取られる第２データセットに含まれたエラーの位置を計算し、バッファメモリ６７０に保存された第１データセットは、修正されてホストデバイスに伝送される。
【００４３】
バッファメモリ６８０に保存された第２データセットが修正され、バッファメモリ６７０に保存された第１データセットがホストに伝送される間に、メモリデバイス６１１に保存された新たな第３データセットは、第３バッファメモリに保存され、メモリデバイス６１２に保存された新たな第４データセットは、第４バッファメモリに保存される。このような過程は反復的に行われる。
【００４４】
以下、このような過程を図７を参照して、さらに詳しく説明する。図７は、ＢＣＨ（Ｂｏｓｅ−Ｃｈａｕｄｈｕｒｉ−Ｈｏｃｑｕｅｎｇｈｅｍ）フラッシュメモリエラー訂正デコーダのパイプラインデコーディング動作のタイミング図７００を表わす。シンドローム計算ブロックは、第１及び第２通信チャンネルに接続されて第１及び第２バッファメモリからデータを読み出し、読み取られたデータにエラーが含まれていれば、エラー訂正過程が行われる。
【００４５】
パイプラインモードのエラー訂正は、第１通信チャンネルを介して受信されるデータセットのシンドローム値を用いて、データセットに含まれたエラーの位置を計算する過程に連続して第２通信チャンネルを介して受信されるデータセットに含まれたエラーの位置を計算する過程を通じて行われる。
【００４６】
データを読み取ってシンドローム値を計算する過程でバッファメモリが利用されるが、バッファメモリは、データに含まれたエラー位置及びそのパターンを計算する間に、データを保存し、エラーが修正されたデータをホストに伝送するのに利用される。このような機能を行うバッファメモリを利用することは、面積効率が高く、エラー訂正性能に優れたＥＣＣ  ＩＰ及びメモリシステムの具現に適する。
【００４７】
図７は、順方向チェンサーチ方式が利用された場合で、エラー検索／修正及びデータ伝送は同時に行われることができ、エラー訂正は、バッファメモリとホストインターフェースとの間に位置したメモリコントローラのローカルバスで行われうる。もし、逆方向チェンサーチ方式が利用されれば、エラー検索／修正は、データ伝送が可能である前に完了し、エラー訂正は、バッファメモリで行われうる。
【００４８】
タイミング図７００の上位二つのラインは、それぞれ第１及び第２通信チャンネルを介してデータセットが受信され、データセットのシンドローム値が計算されることを表わす。Ｔ０−Ｔ１区間では、第２バッファメモリに保存された第２データセットが、第２通信チャンネルを介して受信されると同時に、第１バッファメモリに保存された第１データセットが、第１通信チャンネルを介して受信される。
【００４９】
Ｔ１−Ｔ３区間では、第２バッファメモリに保存された第４データセットが、第２通信チャンネルを介して受信されると同時に、第１バッファメモリに保存された第３データセットが、第１通信チャンネルを介して受信される。タイミング図７００の上から三番目及び四番目のラインは、それぞれキー方程式を解いてチェンサーチ及びエラー評価（ｅｒｒｏｒ  ｅｖａｌｕａｔｉｏｎ）過程が行われるタイミングを表わす。エラーデコーディングと訂正は、シングルエラー訂正（ｓｉｎｇｌｅ  ｅｒｒｏｒ  ｃｏｒｒｅｃｔｉｏｎ）とバッファメモリとを用いてパイプラインモードで行われる。
【００５０】
したがって、第３及び第４データセットに対するシンドローム値が並列して計算される間に、第１データセットに含まれたエラーの位置が確認されてエラーが修正されることができる。また、図７を参照すれば、第２通信チャンネルを介して受信される第２データセットに含まれたエラーの位置が確認される間に、第１通信チャンネルを介して受信される第１データセットに含まれたエラーが修正されることができるということが分かる。
【００５１】
タイミング図７００の最も下のラインは、ＥＣＣブロックによってデータが出力されるタイミングを表わす。第１データセットに含まれたエラーが修正されたＴ２時点以後に第１データセットは、ＥＣＣブロックから読み出され始める。第１データセットの読出は、Ｔ３時点で完了する。
【００５２】
順次に、Ｔ３−Ｔ４区間では、新たなデータセットがＥＣＣブロックに入力され、データセットのシンドローム値が計算される間に、第２及び第３データセットがＥＣＣブロックから読み出される。このような過程は、ＥＣＣブロックに新たなデータセットが入力される間に反復的に行われる。
【００５３】
本発明は、図面に図示された一実施形態を参考にして説明されたが、これは例示的なものに過ぎず、当業者ならば、これより多様な変形及び均等な他実施形態が可能であるという点を理解できるであろう。したがって、本発明の真の技術的保護範囲は、特許請求の範囲の技術的思想によって決まるべきである。
【産業上の利用可能性】
【００５４】
本発明は、エラー訂正デコーディング機能を有するメモリシステム分野に適用可能である。
【図面の簡単な説明】
【００５５】
【図１】フラッシュメモリシステムのブロック図を表わす。
【図２】図１に図示されたＥＣＣブロックとメモリデバイスとの間の連結をより詳しく表わすブロック図である。
【図３】２チャンネルメモリシステムに適用される本発明の実施形態によるＥＣＣブロックのブロック図を表わす。
【図４】２チャンネルメモリシステムに適用される本発明の他の実施形態によるＥＣＣブロックのブロック図を表わす。
【図５】パイプラインモードで動作する本発明の実施形態によるエラー訂正デコーダのブロック図を表わす。
【図６】バッファメモリ構造を有し、パイプラインモードで動作する２チャンネルフラッシュメモリシステムのブロック図を表わす。
【図７】ＢＣＨフラッシュメモリエラー訂正デコーダのパイプラインデコーディング動作のタイミング図を表わす。
【符号の説明】
【００５６】
３００：ＥＣＣブロック
３１０ａ、３１０ｂ：シンドローム計算ブロック
３１５：マルチプレクサ
３２０：ＫＥＳブロック
３３０：ＣＳブロック
３３５：ＥＥブロック
３４０：デコーダコントローラ
３６１：エンコーダ
４００：ＥＣＣブロック
４１０ａ、４１０ｂ：ブランチマトリックス計算器
４１５：マルチプレクサ
４２０：ＡＣＳブロック
４３０：ＳＭＭブロック
４３５：ＳＰＭブロック
４６１：エンコーダ
５００：デコーダ
５１０：シンドローム計算ブロック
５２０：ＫＥＳブロック
５３０：ＣＳＥＥブロック
５４０：デコーダコントローラ
５５５：デマルチプレクサ
５６３：エラー訂正器
５７０：第１バッファメモリ
５８０：第２バッファメモリ
５９０：マルチプレクサ
６０：フラッシュメモリシステム
６００：フラッシュメモリコントローラ
６１０ａ、６１０ｂ：シンドローム計算ブロック
６１１、６１２：ＮＡＮＤメモリデバイス
６１５：マルチプレクサ
６３０：デコーダブロック
６４５：ＥＣＣブロック
６６１：エンコーダ
６６３：エラー訂正ブロック
６７０：第１バッファメモリ
６７５：デマルチプレクサ
６８０：第２バッファメモリ
６９０：ホストインターフェース
７００：タイミング図
【図１】
0005424596.tif 000002
【図２】
0005424596.tif 000003
【図３】
0005424596.tif 000004
【図４】
0005424596.tif 000005
【図５】
0005424596.tif 000006
【図６】
0005424596.tif 000007
【図７】
0005424596.tif 000008