(57)【要約】      （修正有）【課題】エラー訂正回路、その方法及び前記回路を備える半導体メモリ装置を提供する。【解決手段】部分シンドローム生成器、第１及び第２エラー位置検出器、係数算出器及び判断部を備える。部分シンドローム生成器は、符号データを用いて二つ以上の部分シンドロームを算出し、第１エラー位置検出器は、部分シンドロームのうち一部のみを用いて第１エラー位置を算出し、係数算出器は、二つ以上の部分シンドロームを用いてエラー位置方程式の係数を算出する。判断部は、算出された係数に基づいて、エラー類型を判断する。そして、第２エラー位置検出器は、エラー類型に基づいて、選択的に第２エラー位置を算出する。【選択図】図３
2008052743.tif 000002
【特許請求の範囲】
【請求項１】
並列的に動作可能であり、エラー位置を算出する時間が相異なる少なくとも二つのエラー位置検出器と、
エラー類型を判断する判断部と、
前記少なくとも二つのエラー位置検出器及び前記判断部に接続され、前記少なくとも二つのエラー位置検出器からの出力及び前記エラー類型に基づいて最終エラー位置を決定するメイン制御部と、
を備えることを特徴とするエラー訂正回路。
【請求項２】
前記エラー訂正回路は、
エラー訂正コーディングされた符号データを用いて二つ以上の部分シンドロームを算出する部分シンドローム生成器と、
前記部分シンドローム生成器に接続され、前記二つ以上の部分シンドロームを用いてエラー位置方程式の係数を算出する係数算出器と、をさらに備え、
前記少なくとも二つのエラー位置検出器は、
前記部分シンドローム生成器に接続され、前記部分シンドロームのうち一部を用いて第１エラー位置を算出する第１エラー検出器と、
前記係数算出器に接続され、前記エラー類型に基づいて、選択的に第２エラー位置を算出する第２エラー位置検出器と、を備えることを特徴とする請求項１に記載のエラー訂正回路。
【請求項３】
前記エラー類型は、第１エラー類型と第２エラー類型とのうちの一つであり、
前記判断部は、前記算出されたエラー位置方程式の係数に基づいて、前記エラー類型を判断することを特徴とする請求項２に記載のエラー訂正回路。
【請求項４】
前記第１エラー位置検出器は、
前記部分シンドロームのうち一つの部分シンドロームを用いて前記符号データのうち１ビットのエラー位置を算出し、
前記第２エラー位置検出器は、
前記エラー類型が前記第２エラー類型である場合、前記符号データのうち２ビット以上のエラー位置を算出することを特徴とする請求項３に記載のエラー訂正回路。
【請求項５】
前記第１エラー位置検出器は、
前記符号データのうち２ビット以下のエラー位置を算出し、
前記第２エラー位置検出器は、
前記エラー類型が前記第２エラー類型である場合、前記符号データのうち３ビット以上のエラー位置を算出することを特徴と請求項３に記載のエラー訂正回路。
【請求項６】
前記エラー訂正回路は、
前記メイン制御部に接続され、前記算出された第１エラー位置と前記算出された第２エラー位置とのうち一つに基づいて、前記符号データを訂正するエラー訂正器をさらに備えることを特徴とする請求項３に記載のエラー訂正回路。
【請求項７】
前記エラー類型が前記第１エラー類型である場合、
前記第２エラー位置検出器は動作せず、
前記エラー訂正器は、前記第１エラー位置検出器から算出された第１エラー位置に基づいて前記符号データを訂正することを特徴とする請求項６に記載のエラー訂正回路。
【請求項８】
前記エラー類型が前記第２エラー類型である場合、
前記エラー訂正器は、前記第２エラー位置検出器から算出された第２エラー位置に基づいて前記符号データを訂正することを特徴とする請求項６に記載のエラー訂正回路。
【請求項９】
前記第１エラー位置検出器及び前記係数算出器は、
並列的に動作するように構成されることを特徴とする請求項３に記載のエラー訂正回路。
【請求項１０】
請求項２に記載のエラー訂正回路を備える半導体メモリ装置において、
情報データに基づいてシンドロームデータを発生させ、前記情報データに前記シンドロームデータを追加して前記符号データを生成させるＥＣＣエンコーダと、
前記ＥＣＣエンコーダに接続され、前記符号データを保存するメモリコアと、をさらに備えることを特徴とする半導体メモリ装置。
【請求項１１】
前記メモリコアは、
電気的に消去及びプログラムが可能なメモリセルを含むことを特徴とする請求項１０に記載の半導体メモリ装置。
【請求項１２】
前記半導体メモリ装置は、
前記メイン制御部と前記ＥＣＣエンコーダとに接続され、前記メモリコアから読出された前記符号データ及びエラー位置データをホストに伝送するホストインターフェース及びロジック部をさらに備え、
前記ホストは、前記エラー位置データに基づいて前記符号データを訂正することを特徴とする請求項１０に記載の半導体メモリ装置。
【請求項１３】
符号データを読出す段階と、
前記符号データを用いて複数の部分シンドロームを算出する段階と、
前記複数の部分シンドロームの一部を用いて第１エラービット位置データを算出する段階と、
前記複数の部分シンドロームを用いて複数のエラー位置方程式係数を算出する段階と、を備えることを特徴とするエラー訂正方法。
【請求項１４】
前記第１エラービット位置データを算出する段階は、
前記複数のエラー位置方程式係数を算出する段階と少なくとも部分的に同時に実行されることを特徴とする請求項１３に記載のエラー訂正方法。
【請求項１５】
前記方法は、
前記複数のエラー位置方程式係数に基づいてエラー類型が第１エラー類型であるか第２エラー類型であるか判断する段階をさらに備えることを特徴とする請求項１４に記載のエラー訂正方法。
【請求項１６】
前記第１エラー類型は、単一ビットエラーを有するエラーであり、前記第２類型は、マルチプルビットエラーを有するエラーであることを特徴とする請求項１５に記載のエラー訂正方法。
【請求項１７】
前記第１エラー類型は、二つ以下のビットエラーを有するエラーであり、前記第２類型は、三つ以上のビットエラーを有するエラーであることを特徴とする請求項１５に記載のエラー訂正方法。
【請求項１８】
前記エラー訂正方法は、
前記エラー類型が前記第１エラー類型である場合、第１エラービット位置データに基づいて前記符号データを訂正する段階をさらに備えることを特徴とする請求項１５に記載のエラー訂正方法。
【請求項１９】
前記エラー訂正方法は、
前記エラー類型が前記第２エラー類型である場合、前記複数のエラー位置方程式係数に基づいて第２エラービット位置データを算出する段階をさらに備えることを特徴とする請求項１５に記載のエラー訂正方法。
【請求項２０】
前記エラー訂正方法は、
前記第２エラービット位置データに基づいて前記符号データを訂正する段階をさらに備えることを特徴とする請求項１９に記載のエラー訂正方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エラー訂正に係り、より詳細には、エラー訂正回路（ＥＣＣ：Ｅｒｒｏｒ  Ｃｈｅｃｋ／Ｃｏｒｒｅｃｔｉｏｎ  Ｃｉｒｃｕｉｔ）、エラー訂正方法及び前記エラー訂正回路を備える半導体メモリ装置に関する。
【背景技術】
【０００２】
半導体メモリ装置のメモリ容量の増加につれて、欠陥メモリセルのエラーを復旧できるエラー訂正回路を使う必要がある。通常のエラー訂正回路は、リダンダンシーメモリセル方式のエラー訂正回路とＥＣＣ方式のエラー訂正回路とに分類されうる。
【０００３】
リダンダンシーメモリセル方式のエラー訂正回路を有する半導体メモリ装置は、ノーマル（正常）メモリセル及びリダンダンシー（予備）メモリセルを有する。この方式を使う半導体メモリ装置は、欠陥（エラー）が存在するメモリセルをリダンダンシーメモリセルで取り替えてデータを書込み／読出す。この方式は、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）においてよく使われる。
【０００４】
一方、ＥＣＣ方式のエラー訂正回路を有する半導体メモリ装置は、データビット以外にリダンダンシーデータ（パリティーデータあるいはシンドロームデータと称する）を生成させて保存し、このリダンダンシーデータを用いてエラー発生有無を判断してエラーを訂正する。
【０００５】
ＥＣＣ方式のエラー訂正回路は、読み取り専用メモリ（ＲＯＭ）方式の半導体メモリ装置においてよく使われる。ＥＣＣ方式のエラー訂正回路は、特に、電気的に消去及びプログラムが可能なメモリセル（ＥＥＰＲＯＭセル）を有するフラッシュメモリ装置において多く使われる。
【０００６】
図１は、通常のＥＣＣ回路を備えるメモリ装置の概略的な構成ブロック図である。図１を参照すれば、半導体メモリ装置は、メモリコア１１０、ＥＣＣ回路１２０、ホストインターフェース及びロジック部１３０を備える。
【０００７】
メモリコア１１０は、データを保存するためのメモリセルアレイを備えるブロックである。ＥＣＣ回路１２０は、ＥＣＣエンコーダ１２１およびＥＣＣデコーダ１２３を備える。
【０００８】
ホストインターフェース及びロジック部１３０は、ホスト２００（例えば、モバイル機器のコントローラ）とメモリコア１１０との間のデータインターフェースを実行する。ホストインターフェース及びロジック部１３０は、ホスト２００とｄ（２以上の整数）ビットの並列データを送受信できる。
【０００９】
ＥＣＣエンコーダ１２１は、ホストインターフェース及びロジック部１３０を介してｋビットのデータを受信し、該受信されたｋビットのデータを用いて（ｎ−ｋ）ビットで構成されるシンドロームデータ（ｓｙｎｄｒｏｍｅ  ｄａｔａ）を生成してｋビットのデータに追加する。したがって、ｋビットの受信データ及び（ｎ−ｋ）ビットのシンドロームデータで構成されるｎビットの符号データ（ＥＣＣワードと称する）がメモリコア１１０に入力される。
【００１０】
メモリコア１１０に保存されたデータを外部に出力する場合には、先ず、メモリコア１１０から、ｋビットのデータ及び（ｎ−ｋ）ビットのシンドロームデータを含むＥＣＣワードが読出される。ＥＣＣデコーダ１２３は、ＥＣＣワードを所定パターンデータに分けてシンドロームデータを発生させ、シンドロームデータを用いてエラー発生有無を判断する。
【００１１】
ＥＣＣデコーダ１２３は、エラーが発生した場合にはエラー位置（エラーが発生したビットの位置）を検出して、エラービットを訂正させる。エラービットの訂正は、メモリ半導体装置の内部、例えば、ホストインターフェース及びロジック部１３０のエラー訂正器（図示せず）でなされることもあり、ホスト２００でなされることもある。
【００１２】
図２は、通常のエラー訂正過程を概略的に表わすタイミング図である。図２を参照すれば、エラー訂正は、データ読出及びシンドローム計算過程Ｔ０〜Ｔ１、Ｔｔ、係数算出過程Ｔ１〜Ｔ２、Ｔｃｏｅｆｆ及びエラー位置計算過程Ｔ２〜Ｔ３、Ｔｃｓｅを必要とする。
【００１３】
データ読出及びシンドローム計算過程は、メモリセルアレイからＥＣＣワード（情報データ及びシンドロームデータ）を読出して部分シンドロームＳ０，Ｓ１，Ｓ２，．．．，Ｓ２ｎ−１を計算する過程であって、所定の読出時間Ｔｔを必要とする。次に係数算出過程は、エラー位置方程式を構成するための係数σ０，σ１，σ２，．．．，σｎを算出する過程であって、所定の係数算出時間Ｔｃｏｅｆｆを必要とする。エラー位置計算過程は、エラー位置方程式を解いてエラー位置方程式の解を求めることでエラー位置を捜し出す過程である。この過程も所定のエラー位置計算時間Ｔｃｓｅを必要とする。
【００１４】
したがって、エラー訂正サイクル（ＥＣＣ  ｃｙｃｌｅ）は、前記時間をすべて合計した時間（Ｔｔ＋Ｔｃｏｅｆｆ＋Ｔｃｓｅ）であって、エラービット数に構わずにほぼ一定である。
【００１５】
マルチビットＥＣＣのための知られた回路と方法は、多くの短所を有する。例えば、通常のＥＣＣデコーダは、訂正可能な最大エラービット数に基づいて設計されて具現される。通常のマルチビットＥＣＣデコーダは、単一ビットＥＣＣデコーダに比べてさらに多い処理時間を必要とする。その上、エラー訂正サイクルは、ホストが半導体メモリ装置（例えば、フラッシュメモリ装置）からデータを読み取る時間であるデータアクセス時間と直接的に関連がある。したがって、通常のマルチビットＥＣＣ回路及び方法は、メモリ装置の読出時間を著しく短縮させる結果をもたらす。これにより、より高速のマルチビットＥＣＣ回路及び方法が要求される。
【発明の開示】
【発明が解決しようとする課題】
【００１６】
本発明の技術的課題は、検出されたエラービット数によってエラー位置算出を選択的に異ならせることによって、データ読出時間及び性能を改善しうるエラー訂正回路、その方法及び前記回路を備える半導体メモリ装置を提供することである。
【課題を解決するための手段】
【００１７】
前記のような目的を果たすための本発明の一実施形態は、並列的に動作可能であり、エラー位置を算出する時間が相異なる少なくとも二つのエラー位置検出器と、エラー類型を判断する判断部と、前記少なくとも二つのエラー位置検出器及び前記判断部に接続され、前記少なくとも二つのエラー位置検出器からの出力及び前記エラー類型に基づいて最終エラー位置を決定するメイン制御部と、を備えるエラー訂正回路を提供する。
【００１８】
本発明の他の実施形態は、前記エラー訂正回路を備える半導体メモリ装置を提供する。前記半導体メモリ装置は、情報データに基づいてシンドロームデータを発生させ、前記情報データに前記シンドロームデータを追加して前記符号データを生成させるＥＣＣエンコーダと、前記ＥＣＣエンコーダに接続され、前記符号データを保存するメモリコアと、をさらに備えられうる。
【００１９】
本発明のまた他の実施形態は、符号データを読出す段階と、前記符号データを用いて複数の部分シンドロームを算出する段階と、前記複数の部分シンドロームの一部を用いて第１エラービット位置データを算出する段階と、前記複数の部分シンドロームを用いて複数のビット位置方程式係数を算出する段階と、を備えるエラー訂正方法を提供する。
【発明の効果】
【００２０】
本発明によれば、追加パリティーデータなしにマルチビットＥＣＣ性能は維持されることができ、所定ビット数（例えば、１ビットまたは２ビット）以下のエラーに対するＥＣＣは早く実行されうる。その結果、平均的なＥＣＣサイクルは減少し、データ読出速度は向上する。
【発明を実施するための最良の形態】
【００２１】
以下、添付した図面を参照して、本発明の望ましい実施形態を説明することによって、本発明を詳しく説明する。各図面に付された同一の参照符号は、同一の構成要素を表わす。
【００２２】
図３は、本発明の一実施形態としての半導体メモリ装置の構成ブロック図である。これを参照すれば、本発明の一実施形態としての半導体メモリ装置は、メモリコア３１０、ＥＣＣ回路３２０、ホストインターフェース及びロジック部３３０を備える。ＥＣＣ回路３２０は、メモリコア３１０とホストインターフェース及びロジック部３３０との間に接続される。
【００２３】
メモリコア３１０は、データを保存するためのメモリセルアレイを備えるブロックである。メモリセルアレイは、フローティングゲートを有する電気的に消去及びプログラムが可能なメモリセル（ＥＥＰＲＯＭセル）で構成されうるが、これに限定されるものではない。
【００２４】
ホストインターフェース及びロジック部３３０は、ホスト２００（例えば、モバイル機器のコントローラ、コンピュータ装置のコントローラなど）とＥＣＣ回路３２０との間のインターフェースのための制御及びバッファリング役割を実行する。ホストインターフェース及びロジック部３３０は、後述するＥＣＣ回路３２０のエラービットのエラー検出結果、すなわち、エラー位置情報に基づいて、符号データのうちエラーが発生したビットのエラーを訂正するエラー訂正器（図示せず）を含みうる。
【００２５】
ホストインターフェース及びロジック部３３０は、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ、図示せず）のようなメモリを含みうる。この場合には、ホスト２００がＳＲＡＭにデータを書込めば、そのデータはＥＣＣ回路３２０によって符号化されてメモリコア３１０（例えば、フラッシュメモリコア）に記録され、メモリコア３１０から読出されたデータはＥＣＣ回路３２０によってエラーが検出されて訂正されてＳＲＡＭ（図示せず）に保存され、ホスト２００はＳＲＡＭ（図示せず）に保存されたエラー訂正されたデータを読出す。
【００２６】
ホストインターフェース及びロジック部３３０は、ホスト２００とｄ（２以上の整数）ビットの並列データを送受信できる。
【００２７】
ＥＣＣ回路３２０は、ＥＣＣエンコーダ４２０、ＥＣＣデコーダ４３０及びＥＣＣエンコーダ４２０とＥＣＣデコーダ４３０とに接続されるＥＣＣラッパー４１０を備える。
【００２８】
ＥＣＣラッパー（ＥＣＣ  ｗｒａｐｐｅｒ）４１０は、ホストインターフェース及びロジック部３３０からｋ（２以上の整数、例えば、４０９６）ビットの情報データを受信する。次に、ＥＣＣラッパー４１０は、ｋビットの情報データに対して、各ビットが所定ロジック値（例えば、“０”）を有するｎ−ｋ（１以上の整数、例えば、５３）ビットのダミーデータを追加して、合計でｎ（例えば、４０９６＋５３＝４１４９）ビットのデータを直列または並列に出力する。ｎビットのデータは、ＥＣＣエンコーダ４２０に入力される。
【００２９】
図４は、図３に図示されたＥＣＣエンコーダ４２０の動作を表わす論理図（ｌｏｇｉｃ  ｄｉａｇｒａｍ）である。図４を参照すれば、ＥＣＣエンコーダ４２０は、シンドローム生成器４２１及び排他的論理和（ｅｘｃｌｕｓｉｖｅ−ＯＲ、ＸＯＲ）演算器４２３を含む。
【００３０】
シンドローム生成器４２１は、ＥＣＣラッパー４１０からｎビットデータ（すなわち、ｋビット＋（ｎ−ｋ）個の”０”ビット）を受信し、該受信されたデータを特定データで割ってｎ−ｋビットの余り（ｒｅｍａｉｎｄｅｒ）データ（あるいは、シンドロームデータ）を生成する。特定データは、一般に生成多項式（ｇｅｎｅｒａｔｏｒ  ｐｏｌｙｎｏｍｉａｌ、Ｇ（ｘ））と呼ばれる。整数（ｎ−ｋ）は、訂正可能な最大エラービット数及び／又は検出可能な最大エラービット数によって決定される。
【００３１】
ＸＯＲ（ｅｘｃｌｕｓｉｖｅ−ＯＲ）演算器４２３は、ＥＣＣラッパー４１０から受信されるｎビットデータとシンドロームデータとの排他的論理和（ＸＯＲ）を演算してｎビットの符号データ（ｃｏｄｅｄ  ｄａｔａ）を生成する。情報データ、シンドロームデータ及び符号データをそれぞれＩ（ｘ）、Ｓ（ｘ）、Ｃ（ｘ）とすれば、これらデータ間の関係は、次の数式１のように表現される。
【００３２】
Ｓ（ｘ）＝ｘ（ｎ−ｋ）Ｉ（ｘ）％  Ｇ（ｘ）、
Ｃ（ｘ）＝ｘ（ｎ−ｋ）Ｉ（ｘ）＋Ｓ（ｘ）＝Ｑ（ｘ）Ｇ（ｘ）
・・・（数式１）
ここで、ｘ（ｎ−ｋ）Ｉ（ｘ）は、ｋビットの情報データＩ（ｘ）を（ｎ−ｋ）ビットだけＭＳＢ（ｍｏｓｔ  ｓｉｇｎｉｆｉｃａｎｔ  ｂｉｔ）方向にシフトさせた値であり、％Ｇ（ｘ）は、モジュロ（ｍｏｄｕｌｏ）−Ｇ（ｘ）演算を意味し、Ｑ（ｘ）は、Ｃ（ｘ）をＧ（ｘ）で割った商である。（ｎ−ｋ）が５３である場合、Ｇ（ｘ）は、５３次多項式、Ｓ（ｘ）は、５２次多項式である。
【００３３】
ｎビット符号データ（これをＥＣＣワードと称する）は、メモリコア３１０に入力される。メモリコア３１０のセルアレイ領域は、情報データを保存するための領域と、シンドロームデータを保存するための領域に区分されることもある。または情報データ領域とシンドロームデータ領域とを区分せず、ｎビットの符号データがメモリセルアレイに保存されることもある。
【００３４】
メモリコア３１０に保存された符号データを外部に出力する場合には、メモリコア３１０からｋビットの情報データ及びｎ−ｋビットのパリティーデータを含むｎビットの符号データが読出されてＥＣＣラッパー４１０に入力される。このとき、ＥＣＣラッパー４１０は、ｎビットの符号データをバッファリングして、ＥＣＣデコーダ４３０にｎビット符号データを出力しうる。
【００３５】
ＥＣＣデコーダ４３０は、ＥＣＣラッパー４１０を介して受信される符号データにエラービットが発生したか否かを判断し、エラービットが発生した場合にエラー位置（エラービットの位置）を検出する。また、ＥＣＣデコーダ４３０は、算出されたエラー位置に基づいて符号データのうちエラービットを訂正することもできる。すなわち、前述したエラー訂正器がＥＣＣデコーダ４３０内に含まれることもできる。
【００３６】
本実施形態では、ＥＣＣデコーダ４３０は、第１ないし第４部分シンドローム生成器（ｐａｒｔｉａｌ  ｓｙｎｄｒｏｍｅ  ｇｅｎｅｒａｔｏｒ）４３１、４３３、４３５、４３７、係数計算器４４１、１ビットエラー位置検出器４５１、マルチビットエラー位置検出器４５２、エラー判断部４４２及びメイン制御部４４３を備える。ＥＣＣデコーダ４３０は、また図３に図示されたように、パリティーチェッカー４４４を備えられうる。パリティーチェッカー４４４は、偶数パリティーチェッカー（ｅｖｅｎ  ｐａｒｉｔｙ  ｃｈｅｃｋｅｒ）であり、奇数パリティーチェッカー（ｏｄｄ  ｐａｒｉｔｙ  ｃｈｅｃｋｅｒ）であり得る。
【００３７】
第１ないし第４部分シンドローム生成器４３１、４３３、４３５、４３７は、係数計算器４４１に接続される。１ビットエラー位置検出器４５１は、第１部分シンドローム生成器４３１及びメイン制御部４４３に接続される。マルチビットエラー位置検出器４５２及びエラー判断部４４２は、それぞれ係数計算器４４１及びメイン制御部４４３に接続される。第１ないし第４部分シンドローム生成器４３１、４３３、４３５、４３７は、別途の構成要素として記述されるが、複数の部分シンドローム出力を有する単一部分シンドローム生成器として具現されることもある。
【００３８】
第１ないし第４部分シンドローム生成器４３１、４３３、４３５、４３７は、メモリコア３１０から出力されたｎビット符号データをそれぞれ自身の特定データで割って部分シンドロームＳ１、Ｓ３、Ｓ５、Ｓ７を生成する。
【００３９】
メモリコア３１０から出力されたｎビット符号データをＲ（ｘ）とし、各部分シンドローム生成器４３１、４３３、４３５、４３７の特定データ、すなわち、部分生成多項式をそれぞれｍ１（ｘ）、ｍ３（ｘ）、ｍ５（ｘ）、ｍ７（ｘ）とすれば、これらデータ間の関係は、次の数式２のように表現される。
【００４０】
Ｓ１（ｘ）＝Ｒ（ｘ）％  ｍ１（ｘ）、
Ｓ３（ｘ）＝ｆ｛Ｒ（ｘ）％  ｍ３（ｘ）｝、
Ｓ５（ｘ）＝ｆ｛Ｒ（ｘ）％  ｍ５（ｘ）｝、
Ｓ７（ｘ）＝ｆ｛Ｒ（ｘ）％  ｍ７（ｘ）｝
・・・（数式２）
ここで、Ｓ１（ｘ）、Ｓ３（ｘ）、Ｓ５（ｘ）及びＳ７（ｘ）は、それぞれ第１ないし第４部分シンドローム生成器４３１、４３３、４３５、４３７から生成される部分シンドロームＳ１、Ｓ３、Ｓ５、Ｓ７であり、％は、モジュロ演算を意味する。数式２から分かるように、Ｓ１（ｘ）は、Ｒ（ｘ）％  ｍ１（ｘ）から直接的に算出されうるが、Ｓ３（ｘ）、Ｓ５（ｘ）及びＳ７（ｘ）は、それぞれＲ（ｘ）％  ｍ３（ｘ）、Ｒ（ｘ）％  ｍ５（ｘ）及びＲ（ｘ）％ｍ７（ｘ）を用いて算出されうる。
【００４１】
そして、ＥＣＣエンコーダ４２０のシンドローム生成器４２１の生成多項式Ｇ（ｘ）と第１ないし第４部分シンドローム生成器４３１、４３３、４３５、４３７の部分生成多項式ｍ１（ｘ）、ｍ３（ｘ）、ｍ５（ｘ）、ｍ７（ｘ）の関係は、次の数式３のように決定されうる。
【００４２】
Ｇ（ｘ）＝ｍ１（ｘ）＊  ｍ３（ｘ）＊  ｍ５（ｘ）＊  ｍ７（ｘ）  ・・・（数式３）
ここで、＊は、ガロア体乗算を意味する。
【００４３】
Ｇ（ｘ）が５３次多項式であり、Ｓ（ｘ）が５２次多項式である場合、ｍ１（ｘ）、ｍ３（ｘ）、ｍ５（ｘ）、ｍ７（ｘ）は、それぞれ１３次多項式であり、Ｓ１（ｘ）、Ｓ３（ｘ）、Ｓ５（ｘ）及びＳ７（ｘ）は、それぞれ１２次多項式である。
【００４４】
第１ないし第４部分シンドロームＳ１、Ｓ３、Ｓ５、Ｓ７がすべてゼロ（０）であれば、それは符号データにエラーがないことを意味する。そうではない場合、すなわち、第１ないし第４部分シンドロームＳ１、Ｓ３、Ｓ５、Ｓ７のうち少なくとも一つが０でなければ、符号データのうち少なくとも一つのビットにエラーが発生したことを意味する。
【００４５】
エラーが発生した場合には、係数計算器（ｃｏｅｆｆｉｃｉｅｎｔ  ｃａｌｃｕｌａｔｏｒ）４４１は、部分シンドロームＳ１、Ｓ３、Ｓ５、Ｓ７を用いてエラー位置方程式の係数を算出し始める。これと同時に、１ビットエラー位置検出器４５１は、部分シンドロームＳ１、Ｓ３、Ｓ５、Ｓ７のうち一部（例えば、第１部分シンドロームＳ１）のみを用いて１ビットエラーの位置を計算し始める。１ビットエラー位置検出器４５１は、非常に簡単な回路として構成されうるので、マルチビットエラー位置検出器４５２がマルチビットエラー位置計算を完了する前にその計算を完了できる。１ビットエラー位置検出器４５１は、係数計算器４４１より先に動作を完了できるが、その構成要素は実質的に同時に動作を始めるので並列的に動作すると記述される。
【００４６】
エラー位置方程式は、エラービットの逆数を根にする方程式である。エラー位置方程式の係数σ１、σ２、σ３、σ４と部分シンドロームＳ１、Ｓ３、Ｓ５、Ｓ７との関係は、多様なアルゴリズムを通じて求められることができ、次の数式４ないし数式５は、その求められた関係式の一例を表わしたものである。
【００４７】
先ず、１ビットエラー訂正のためのエラー位置方程式の一例は、次の数式４のようである。
【００４８】
σ１  ｘ＋１＝０  ・・・（数式４）
ここで、σ１＝Ｓ１であり、数式４の１次方程式を満足する根の逆数が１ビットエラー位置を表わす。
【００４９】
２ビットエラー訂正のためのエラー位置方程式の一例は、次の数式５のようである。
【００５０】
σ２  ｘ２＋σ１  ｘ＋１＝０  ・・・（数式５）
ここで、σ１＝Ｓ１、σ２＝（Ｓ１３＋Ｓ３）／Ｓ１であり、数式５の２次方程式を満足する根の逆数が２ビットエラー位置を表わす。
【００５１】
３ビット以上のエラー訂正の場合にも、前述したところと類似してエラー位置方程式の係数が算出されうる。
【００５２】
本実施形態では、係数計算器４４１は、最大４ビットエラーを訂正できるエラー位置方程式による係数σ１、σ２、σ３、σ４を算出する。
【００５３】
エラー判断部４４２は、係数算出器４４１から算出された係数σ１、σ２、σ３、σ４に基づいて、エラー類型を判断する。さらに具体的には、エラー判断部４４２は、係数σ１、σ２、σ３、σ４に基づいて、検出されたエラーが１ビットエラー（第１エラー類型）であるか２ビット以上のマルチビットエラー（第２エラー類型）であるかを判断する。
【００５４】
エラー位置方程式の係数が算出されれば、何ビットのエラーが発生したかが分かる。例えば、１次係数σ１は０ではなく、残りの次数の係数σ２、σ３、σ４がすべて０であれば、エラー位置方程式は１次方程式であり、エラービット数は１である。もし、２次係数σ２が０ではなく、３次係数σ３と４次係数σ４がすべて０であれば、エラー位置方程式は２次方程式であり、エラービット数は２である。
【００５５】
エラー判断部４４２の判断結果、１ビットエラーである場合には、１ビットエラー位置検出器４５１によってエラービットの位置が決定される。したがって、この場合には、マルチビットエラー位置検出器４５２が動作しないことが望ましい。１ビットエラー位置検出器４５１によって算出された１ビットエラー位置を第１エラー位置と称する。
【００５６】
一方、エラー判断部４４２の判断結果、２ビット以上のマルチビットエラーである場合には、マルチビットエラー位置検出器４５２によってエラービットの位置が決定される。マルチビットエラー位置検出器４５２によって算出されたマルチビットエラー位置を第２エラー位置と称する。
【００５７】
１ビットエラー位置検出器４５１とマルチビットエラー位置検出器４５２は、エラー位置方程式に基づいて、エラービットの位置を検出できる。
【００５８】
１ビットエラー位置検出器４５１は、１−ビットＥＣＣに最適化された高速のエラー位置計算器としての１ビットエラー検出専用回路である。１ビットエラー位置検出器４５１は、例えば、数式４の１次エラー位置方程式に基づいてｎビット符号データのうちエラーが発生した１ビットの位置を検出する。
【００５９】
１次エラー位置方程式の係数σ１は、第１部分シンドロームＳ１と同一なので、１次エラー位置方程式は、係数計算器４４１の計算結果に構わずに第１部分シンドローム発生器４３１から第１部分シンドロームＳ１が発生すれば、直ちに決定されうる。したがって、１ビットエラー位置検出器４５１は、第１部分シンドロームＳ１が発生すると同時に係数計算器４４１と共に並列的に動作を開始できる。
【００６０】
マルチビットエラー位置検出器４５２は、係数計算器４４１から算出された係数σ１、σ２、σ３、σ４を用いて、２ビット以上のエラービットの位置を検出する。本実施形態では、マルチビットエラー位置検出器４５２は、２ビット以上４ビット以下のエラービットの位置を検出できるエラー位置計算器である。
【００６１】
マルチビットエラー位置検出器４５２は、エラー位置方程式を用いてエラー位置を検出できる。この場合、各エラーの個数によってｉ（例えば、ｉ＝１、２、３、または４）次エラー位置方程式を解かなければならない。
【００６２】
４次エラー位置方程式の一般解を求めることは難しいので、チェンサーチ（Ｃｈｉｅｎ  Ｓｅａｒｃｈ）アルゴリズムが多項式の根（ｒｏｏｔ）を求めるために使われうる。チェンサーチアルゴリズムは、その根が原始元素の冪（ｐｏｗｅｒ  ｏｆ  ｐｒｉｍｉｔｉｖｅ  ｅｌｅｍｅｎｔ）であるという事実を利用する。テスト根は、ｊ＝０ないしｊ＝（ｎ−１）の範囲に対してα−ｊと表現されうる。すなわち、α−０，α−１，α−２，α−３，．．．，α−（ｎ−１）と表現されうる。α−ｊがエラー位置方程式を満足すれば、０であればｊ番目のビットにエラーがあると判断される。この過程は、ｎ大きさの各コードに対してなされうる。すなわち、各コードに対してｊを０からｎ−１までｎ回変更して反復的にエラー位置方程式に代入して方程式を満足するか否かを検査する。
【００６３】
メイン制御部４４３は、１ビットエラー位置検出器４５１の検出結果（第１エラー位置）、またはマルチビットエラー位置検出器４５２の検出結果（第２エラー位置）に基づいて最終エラービットの位置を決定する。このとき、メイン制御部４４３は、エラー判断部４４２の判断結果、第１エラー類型である場合には、第１エラー位置によって最終エラービットの位置を決定し、第２エラー類型である場合には、１ビットエラー位置検出器４５１の検出結果（第１エラー位置）は無視して第２エラー位置によって最終エラービットの位置を決定できる。
【００６４】
また、メイン制御部４４３は、エラー有無及びエラー位置のより正確な判断のために、パリティーチェッカー４４４の出力信号をさらに参照できる。
【００６５】
メイン制御部４４３によってエラービット（ら）の位置が最終決定されれば、その決定されたエラー位置情報は、ホストインターフェース及びロジック部１３０に提供される。ホストインターフェース及びロジック部１３０は、メイン制御部４４３から提供されたエラー位置情報に基づいて符号データのうちエラーが発生したビットのロジック値を反転させてエラーを訂正できる。またはホストインターフェース及びロジック部１３０は、メイン制御部４４３から提供されたエラー位置情報をメモリコア３１０から読出されたｎビット符号データ（あるいは、ｋビット情報データのみ）と共にホスト２００に伝送できる。この場合、エラー訂正は、ホスト２００からなされうる。すなわち、ホスト２００がメイン制御部４４３から提供されたエラー位置情報に基づいて符号データ（あるいは、情報データ）のうちエラーが発生したビットのロジック値を反転させてエラーを訂正できる。
【００６６】
図５は、本発明の一実施形態としてのエラー訂正方法を表わすフローチャートである。発明の一実施形態としてのエラー訂正方法は、図３に図示された本発明の一実施形態によるＥＣＣ回路３２０によって実行されうる。
【００６７】
図３ないし図５を参照して、本発明の一実施形態としてのエラー訂正方法を説明する。
【００６８】
先ず、６１０段階の前に、シンドロームデータと情報データとを結合して符号データを生成され、該生成された符号データがメモリコア３１０に保存される。
【００６９】
メモリコアから符号データを読出し（６１０）、該読出された符号データを用いて第１ないし第４部分シンドロームＳ１、Ｓ３、Ｓ５、Ｓ７を生成する（６２０）。６２０段階の計算は、第１ないし第４部分シンドローム生成器４３１、４３３、４３５、及び４３７で実行されうる。
【００７０】
１ビットエラー訂正（１−ｂｉｔ  ＥＣＣ）の場合、第１部分シンドロームＳ１のみあれば、そのエラー位置をすぐに捜し出すことができるので、第１部分シンドロームＳ１が計算された後ですぐ１−ビットＥＣＣに最適化された高速のエラー位置計算器である１ビットエラー位置検出器４５１を動作させてエラー位置の計算を始める（６２１）。
【００７１】
このとき、２ビット以上のエラーが発生した場合のために係数計算器４４１も１ビットエラー位置検出器４５１と同時に動作させ、エラー位置方程式の係数を算出する（６２２）。６２１及び６２２段階は、同時に（すなわち、並列的に）実行されうる。
【００７２】
係数計算器４４１によってエラー位置方程式の係数計算が終われば、算出された係数に基づいてエラー類型を判別できる（６３０）。エラー類型を判断した結果、１ビットエラー（第１エラー類型）である場合には、１ビットエラー位置検出器４５１によって既に計算された１ビットエラー位置情報に基づいて１ビットエラーを訂正する（６４０）。
【００７３】
エラー類型を判断した結果、２ビット以上のマルチビットエラー（第２エラー類型）である場合には、マルチビットエラー位置検出器４５２を継続して動作させてマルチビットエラー位置を算出し（６５０）、該算出されたマルチビットエラー位置情報に基づいてマルチビットエラーを訂正する（６６０）。ホストインターフェース及びロジック部３３０及び／またはホスト２００が６４０及び６６０段階を実行しうる。
【００７４】
図５に図示された方法は、図３に図示された構成要素を参照して記述されたが、デザイン選択によって他の構成要素の結合が前記方法を実行するのに使われうる。その上に、図５に図示された方法は、ソフトウェアまたはハードウェア及びソフトウェアの結合として具現可能である。これと同様に、図３の半導体メモリ装置３００を参照して記述された一つ以上の機能的な構成要素もソフトウェアとして具現可能である。
【００７５】
図６は、本発明の一実施形態としての時間領域でのエラー訂正過程を概略的に表わすタイミング図である。
【００７６】
本発明の一実施形態としてのエラー訂正過程もデータ読出及びシンドローム計算過程、係数算出過程及びエラー位置計算過程を必要とする。
【００７７】
データ読出及びシンドローム計算過程Ｔ０〜Ｔ１は、メモリセルアレイからＥＣＣワード（情報データ及びシンドロームデータ）を読出して部分シンドロームＳ０，Ｓ１，Ｓ２，．．．，Ｓ２ｎ−１を計算する過程であって、従来技術と同様に所定の読出時間Ｔｔを必要とする。
【００７８】
ところが、本発明の一実施形態によるエラー訂正方法では、部分シンドロームＳ０，Ｓ１，Ｓ２，．．．，Ｓ２ｎ−１が算出された時点Ｔ１で係数算出過程と１ビットエラー位置計算過程とが同時に並列的に実行される。
【００７９】
係数算出過程によって算出された係数σ０，σ１，σ２，．．．，σｎに基づいてエラー類型を判断した結果、１ビットエラーである場合には、２ビット以上のエラー位置計算過程は省略される。
【００８０】
したがって、１ビットエラーである場合には、Ｔ４時点にエラー訂正サイクル（ＥＣＣ  ｃｙｃｌｅ）が終了されうる。このときのエラー訂正サイクルは、データ読出及びシンドローム計算時間と１ビットエラー位置計算時間とを合わせた時間（Ｔｔ＋Ｔｃｓ１）であって、２ビット以上のエラーが発生した場合に比べて遥かに短い。
【００８１】
２以上のマルチビットエラーである場合のエラー訂正サイクル（ＥＣＣ  ｃｙｃｌｅ）は、（Ｔｔ＋Ｔｃｏｅｆｆ＋Ｔｃｓｅ）になる。
【００８２】
しかし、１ビットエラー発生の場合のエラー訂正サイクルは従来技術に比べて相当に短くなるので、１ビットエラーとマルチビットエラーとの組合わせ（ｃｏｍｂｉｎａｔｉｏｎ）がある場合、平均的なエラー訂正サイクルは著しく減少する。
【００８３】
前述した本発明の一実施形態では、１−ビットエラー専用エラー位置計算器が追加されたＥＣＣ回路を中心に記述した。すなわち、前述した本発明の一実施形態では、エラー類型を１ビットエラーと２ビット以上のエラーとに区分する。
【００８４】
本発明の他の実施形態では、２ビット以下エラーを第１エラー類型に、３ビット以上のエラーを第２エラー類型に区分できる。この実施形態では、２ビット以下のエラーが発生した場合、それらのエラー位置は、数式５に基づいた２−ビットエラー位置計算器によって高速に検出されうる。３ビット以上のエラーが発生した場合には、マルチビットエラー位置検出器４５２のようなマルチビットエラー位置検出器によってエラー位置を検出できる。
【００８５】
本発明の更に他の実施形態では、エラー類型を３種類以上（例えば、第１、第２及び第３エラー類型）に区分し、各エラー類型に対応するエラー位置検出器を備えて、第１エラー類型に対しては最も高速にエラー位置を検出し、第２エラー類型に対しては第１エラー類型に次いで高速にエラー位置を検出するように具現されることもある。各エラー類型に対応するエラー位置検出器は、並列的に動作可能であり、エラー位置を検出する時間が相異なり得る。
【００８６】
本発明は、図面に図示された実施形態を参考にして説明されたが、これは例示的なものに過ぎず、当業者ならば、これより多様な変形及び均等な他実施形態が可能であるという点を理解できるであろう。したがって、本発明の真の保護範囲は、特許請求の範囲によって決まるべきである。
【産業上の利用可能性】
【００８７】
本発明は、エラー訂正回路、エラー訂正方法及び前記エラー訂正回路を備える半導体メモリ装置関連の技術分野に適用可能である。
【図面の簡単な説明】
【００８８】
【図１】通常のＥＣＣ回路を備えるメモリ装置の概略的な構成ブロック図である。
【図２】通常のエラー訂正過程を概略的に表わすタイミング図である。
【図３】本発明の一実施形態としての半導体メモリ装置の構成ブロック図である。
【図４】図３に図示されたＥＣＣエンコーダの動作を表わす論理図である。
【図５】本発明の一実施形態としてのエラー訂正方法を表わすフローチャートである。
【図６】本発明の一実施形態としての時間領域でのエラー訂正過程を概略的に表わすタイミング図である。
【符号の説明】
【００８９】
２００：ホスト
３１０：メモリコア
３２０：ＥＣＣ回路
３３０：ホストインターフェース及びロジック部
４１０：ＥＣＣラッパー
４２０：ＥＣＣエンコーダ
４２１：シンドローム生成器
４２３：排他的論理和演算器
４３０：ＥＣＣデコーダ
４３１、４３３、４３５、４３７：第１ないし第４部分シンドローム生成器
４４１：係数計算器
４４２：エラー判断部
４４３：メイン制御部
４４４：パリティーチェッカー
４５１：１ビットエラー位置検出器
４５２：マルチビットエラー位置検出器
【図１】
2008052743.tif 000003
【図２】
2008052743.tif 000004
【図３】
2008052743.tif 000005
【図４】
2008052743.tif 000006
【図５】
2008052743.tif 000007
【図６】
2008052743.tif 000008