(57)【特許請求の範囲】
【請求項１】
メモリアレイでエラーを訂正する方法であって、
（ａ）標準サイズを有する訂正可能なメモリセルグループで第１のビット誤り率までエラーを訂正するエラー訂正アルゴリズムを提供するステップと、
（ｂ）標準サイズより大きい第１のサイズを有する第１のメモリセルグループに対応する情報を有する第１のＥＣＣビットセットを生成するステップと、
（ｃ）第２のメモリセルグループに対応する情報を有する第２のＥＣＣビットセットを生成するステップであって、前記第２のメモリセルグループは前記第１のメモリセルグループから規定され、かつ前記第１のサイズより小さい第２のサイズを有するので、前記第２のメモリセルグループが前記第１のメモリセルグループの一部分をなすステップと、
（ｄ）前記第１のＥＣＣビットセットに基づき前記第１のメモリセルグループでエラーを訂正するために前記エラー訂正アルゴリズムを適用するステップと、
（ｅ）前記第１のＥＣＣビットセットに基づき前記第１のメモリセルグループでエラーを訂正するための前記エラー訂正アルゴリズムがステップ（ｄ）で失敗するか否かを判断するステップと、
（ｆ）前記エラー訂正アルゴリズムがステップ（ｄ）で失敗した場合に、前記第２のＥＣＣビットセットに基づき前記第２のメモリセルグループでエラーを訂正するために前記エラー訂正アルゴリズムを適用するステップと、
を含む方法。
【請求項２】
請求項１記載の方法において、
（ｇ）前記第１のＥＣＣビットセットに基づき前記第１のメモリセルグループを訂正するステップをさらに含む方法。
【請求項３】
請求項１記載の方法において、
（ｇ）前記第２のＥＣＣビットセットに基づき前記第２のメモリセルグループを訂正するステップをさらに含む方法。
【請求項４】
請求項１記載の方法において、
（ｇ）ステップ（ｄ）に先立ち、さらなるメモリセルグループに対応する情報を有するさらなるＥＣＣビットセットを生成するステップをさらに含み、前記さらなるメモリセルグループは前記第２のサイズより小さい第３のサイズを有し、かつ前記第２のメモリセルグループの一部分をなす方法。
【請求項５】
請求項４記載の方法において、
（ｈ）前記第２のＥＣＣビットセットに基づき前記第２のメモリセルグループでエラーを訂正するために前記エラー訂正アルゴリズムがステップ（ｆ）で失敗した場合に、前記さらなるＥＣＣビットセットに基づき前記さらなるメモリセルグループでエラーを訂正するために前記エラー訂正アルゴリズムを適用するステップをさらに含む方法。
【請求項６】
請求項５記載の方法において、
（ｉ）前記さらなるＥＣＣビットセットに基づき前記さらなるメモリセルグループを訂正するステップをさらに含む方法。
【請求項７】
請求項１記載の方法において、
前記第１のメモリセルグループで第２のビット誤り率までエラーを訂正するためにステップ（ｅ）が適用され、前記第２のビット誤り率は第１のビット誤り率より大きい方法。
【請求項８】
メモリアレイでエラーを訂正するコンピュータシステムであって、
標準サイズを有する訂正可能なメモリセルグループで第１のビット誤り率までエラーを訂正できるエラー訂正アルゴリズムと、
第１のメモリセルグループに対応する情報を有する第１のＥＣＣビットセットを格納し、かつ第２のメモリセルグループに対応する情報を有する第２のＥＣＣビットセットを格納するべく機能するメモリであって、前記第１のメモリセルグループは標準サイズより大きい第１のサイズを有し、前記第２のメモリセルグループは前記第１のメモリセルグループから規定され、かつ前記第１のサイズより小さい第２のサイズを有するので、前記第２のメモリセルグループが前記第１のメモリセルグループの一部分をなす、メモリと、を備え、
前記第１のＥＣＣビットセットに基づき前記第１のメモリセルグループに適用された前記エラー訂正アルゴリズムが失敗した場合に、前記エラー訂正アルゴリズムは前記第２のＥＣＣビットセットに基づき前記第２のメモリセルグループでエラーを訂正するべく機能するコンピュータシステム。
【請求項９】
請求項８記載のコンピュータシステムにおいて、
前記メモリは、フラッシュメモリであるコンピュータシステム。
【請求項１０】
請求項８記載のコンピュータシステムにおいて、
前記エラー訂正アルゴリズムはまた、前記第１のＥＣＣビットセットに基づき前記第１のメモリセルグループを訂正するべく機能するコンピュータシステム。
【請求項１１】
請求項８記載のコンピュータシステムにおいて、
前記エラー訂正アルゴリズムはまた、前記第２のＥＣＣビットセットに基づき前記第２のメモリセルグループを訂正するべく機能するコンピュータシステム。
【請求項１２】
請求項８記載のコンピュータシステムにおいて、
前記メモリは、さらなるメモリセルグループに対応する情報を有するさらなるＥＣＣビットセットを格納するべく機能し、前記さらなるメモリセルグループは前記第２のサイズより小さい第３のサイズを有し、かつ前記第２のメモリセルグループの一部分をなすコンピュータシステム。
【請求項１３】
請求項１２記載のコンピュータシステムにおいて、
前記第２のＥＣＣビットセットに基づき前記第２のメモリセルグループに適用された前記エラー訂正アルゴリズムが失敗した場合に、前記エラー訂正アルゴリズムは、前記さらなるＥＣＣビットセットに基づき前記さらなるメモリセルグループに適用されるようにさらに機能するコンピュータシステム。
【請求項１４】
請求項１３記載のコンピュータシステムにおいて、
前記エラー訂正アルゴリズムはまた、前記さらなるＥＣＣビットセットに基づき前記さらなるメモリセルグループを訂正するべく機能するコンピュータシステム。
【請求項１５】
請求項８記載のコンピュータシステムにおいて、
前記第１のメモリセルグループで第２のビット誤り率までエラーを訂正するために前記エラー訂正アルゴリズムが適用され、前記第２のビット誤り率は第１のビット誤り率より大きいコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリでエラーを訂正するエラー訂正符号（ＥＣＣ）に関する。
【背景技術】
【０００２】
不揮発性メモリ装置、特にソリッドステートメモリ装置は、時間の経過にともない劣化する傾向がある。かかる劣化の主たる結果として、格納データにエラーが生じる。業界で一般に許容されている装置の信頼性は装置の種類によって異なり、例えば使用する技術や達成し得る製造工程公差に左右される。フラッシュコントローラには、標準サイズ（例えば、２５６バイト）の訂正可能なメモリセルグループで第１の（「ウィーク」）ビット誤り率まで（例えば、５１２バイト当たり６ビットまで）エラーを訂正できるように設計されるものや、より強固な保護を得るために第１のビット誤り率より高い第２のビット誤り率（例えば、５１２バイト当たり８ビットまで）を要するものもある。
【０００３】
当該技術分野においてはこれまでウィークエラー処理方式を用いて強固なビット誤り率保護を提供するエラー処理方式がいくつか考案されてきた。一つの解決策では、メモリセルからなるグループをサブグループ（訂正可能なグループ）に分割し、既存のウィークエラー訂正方式をそれぞれのサブグループに別々に適用する。この場合は、それぞれのサブグループがウィークビット誤り率により個別に保護される。しかし、そのようなエラー訂正方式ではサブグループごとにエラー訂正操作が必要となるため、全体的な性能が落ちてしまう。
これとは別に所望のビット誤り率までエラーを訂正することが可能な、強固なエラー訂正方式を新たに設計する取り組みも広くなされている。新たに設計されたシステムには高いコスト効果と設計に時間がかかるという難点がある。
先行技術のエラー処理方式は欠陥メモリ位置に対してある程度の保護を提供するが、いずれも完璧ではない。エラー処理方式には過大な資源と開発時間を要するものもあれば、システム全体の読み取り性能を低下させるものもある。また、保護が不十分なものもある。
【発明の概要】
【０００４】
本発明は、メモリアレイでエラーを訂正するエラー訂正アルゴリズムを有するコンピュータシステムとその方法として具現化される。メモリセルは対応するＥＣＣビットに関連してメモリアレイに格納される。ＥＣＣビットは次のとおりに生成される。１セットのＥＣＣビットは第１のメモリセルグループに対応する情報を含み（第１のグループは、例えば２５６バイトの標準サイズ以上の第１のサイズを有する）、第２のＥＣＣビットセットは第２のメモリセルグループに対応する情報を含み（第２のグループは第１のグループ内に含まれる）、第３のＥＣＣビットセットは第３のメモリセルグループに対応する情報を含み（第３のグループは第２のグループ内に含まれる）、以下同様である。このようにＥＣＣビットを生成することでメモリアレイにエラー訂正を施しながら、最良の全体性能を達成する。
【０００５】
前述したアプローチの一実施形態において、メモリアレイでエラーを訂正する方法は、訂正可能なメモリセルグループで第１のビット誤り率までエラーを訂正することが可能なエラー訂正アルゴリズムを提供するステップを含むことができる。訂正可能なグループは標準サイズを有する。方法はまた、第１のメモリセルグループに対応する情報を有する第１のＥＣＣビットセットを生成するステップと、第２のメモリセルグループに対応する情報を有する第２のＥＣＣビットセットを生成するステップと、第１のＥＣＣビットセットに基づき第１のグループでエラーを訂正するためにエラー訂正アルゴリズムを適用するステップと、を含む。第１のグループは標準サイズより大きい第１のサイズを有する。第２のグループは第１のサイズより小さい第２のサイズを有し、かつ第１のグループの一部分をなす。方法はまた、第１のＥＣＣビットセットに基づきエラー訂正アルゴリズムが失敗した場合に、第２のＥＣＣビットセットに基づき第２のグループでエラーを訂正するためにエラー訂正アルゴリズムを適用することを含む。方法はまた、第１のＥＣＣビットセットに基づき第１のグループを訂正することを含む。方法はまた、第２のＥＣＣビットセットに基づき第２のグループを訂正することを含む。
【０００６】
方法はまた、さらなるメモリセルグループに対応する情報を有するさらなるＥＣＣビットセットを生成することを含む。さらなるＥＣＣビットセットは、エラー訂正アルゴリズムの適用に先立ち生成できる。さらなるグループは第２のサイズより小さい第３のサイズを有し、かつ第２のグループの一部分をなす。方法はまた、第２のＥＣＣビットセットに基づきエラー訂正アルゴリズムが失敗した場合に、さらなるＥＣＣビットセットに基づきさらなるグループでエラーを訂正するためにエラー訂正アルゴリズムを適用することを含む。方法は、さらなるＥＣＣビットセットに基づきさらなるグループを訂正することを含む。第１のグループで第２のビット誤り率までエラーを訂正するためにエラー訂正アルゴリズムが適用され、ここで第２のビット誤り率は第１のビット誤り率より大きい。
【０００７】
前述したアプローチの別の実施形態において、メモリアレイでエラーを訂正するコンピュータシステムは、訂正可能なメモリセルグループで第１のビット誤り率までエラーを訂正できるエラー訂正アルゴリズムを含む。訂正可能なグループは標準サイズを有する。メモリは、第１のメモリセルグループに対応する情報を有する第１のＥＣＣビットセットを格納し、かつ第２のメモリセルグループに対応する情報を有する第２のＥＣＣビットセットを格納するべく機能する。第１のグループは標準サイズより大きい第１のサイズを有し、第２のグループは第１のサイズより小さい第２のサイズを有し、かつ第１のグループの一部分をなす。第１のＥＣＣビットセットに基づき第１のグループに適用されたエラー訂正アルゴリズムが失敗した場合に、エラー訂正アルゴリズムは第２のＥＣＣビットセットに基づき第２のグループでエラーを訂正するべく機能する。
【０００８】
メモリはフラッシュメモリであってよい。エラー訂正アルゴリズムはまた、第１のＥＣＣビットセットに基づき第１のグループを訂正するべく機能し得る。エラー訂正アルゴリズムはまた、第２のＥＣＣビットセットに基づき第２のグループを訂正するべく機能し得る。
メモリは、さらなるメモリセルグループに対応する情報を有するさらなるＥＣＣビットセットを格納するべく機能し得る。さらなるグループは第２のサイズより小さい第３のサイズを有し、かつ第２のグループの一部分をなす。エラー訂正アルゴリズムはさらに、第２のＥＣＣビットグループに基づき第２のグループに適用され失敗した場合に、さらなるＥＣＣビットセットに基づきさらなるグループに適用されるように機能し得る。エラー訂正アルゴリズムは、さらなるＥＣＣビットセットに基づきさらなるグループを訂正するべく機能し得る。第１のグループで第２のビット誤り率までエラーを訂正するためにエラー訂正アルゴリズムを適用することができ、ここで第２のビット誤り率は第１のビット誤り率より大きい。
【０００９】
以下の図面と説明から前述した実施形態のさらなる特徴、利点、変形例が明らかとなる。
これらの実施形態に関して本発明をより良く理解するため、添付の図面を参照する。添付の図面で同様の数字は一致する部分または要素を指す。
【図面の簡単な説明】
【００１０】
【図１Ａ】メモリアレイでエラーを訂正するコンピュータシステムの一実施形態のブロック図である。
【図１Ｂ】図１Ａのメモリアレイのブロック図であり、この図において各データ単位につき３セットのＥＣＣビットを生成するようにエラー訂正アルゴリズムが実施される。
【図２】典型的な実施形態に従いメモリアレイにデータを書き込むフローチャートである。
【図３】典型的な実施形態に従いメモリアレイからデータを読み取るフローチャートである。
【発明を実施するための形態】
【００１１】
添付の特許請求の範囲によって規定される本発明は、典型的かつ好適な実施形態の詳細な説明を参照することにより、より良く理解される。この説明は特許請求の範囲を制限することを意図するものではなく、かかる実施形態の例を提供するものである。したがって、以下の論述で提示される典型的な実施形態は、メモリアレイでエラーを訂正するコンピュータシステムとその方法を含む。
【００１２】
コンピュータシステムの一実施形態では、エラー訂正アルゴリズムを用いてメモリアレイのエラーを訂正する。このメモリアレイは２つ以上のメモリセルグループを含み、小さいメモリセルグループの中には最も小さいメモリセルグループが含まれ、大きいグループの中には小さいメモリセルグループが含まれ、以下同様である。それぞれのメモリセルグループは、当該グループの幅と長さに相当する１セットのＥＣＣビットに関連してメモリアレイに格納される。１セットのＥＣＣビットは第１のメモリセルグループに対応する情報を含み、別セットのＥＣＣビットは第２のメモリセルグループに対応する情報を含み、以下同様である。このようにＥＣＣビットを生成することでメモリアレイにエラー訂正を施しながら、最良の全体性能を達成する。
【００１３】
このエラー訂正アルゴリズムは、標準サイズ（例えば、２５６バイト）の訂正可能なメモリセルグループで第１のビット誤り率まで（例えば、５１２バイト当たり６ビットまで）エラーを訂正できる。まずは大きいメモリセルグループを訂正するためにこのグループの対応するＥＣＣビットを用いてエラー訂正アルゴリズムが適用され、この訂正措置が失敗すると、小さいメモリセルグループを訂正するためにエラー訂正アルゴリズムが適用される。この小さいグループに失敗すると、このグループ内に含まれるさらに小さいメモリセルグループを訂正するためにエラー訂正アルゴリズムをさらに適用できる。この訂正措置は、訂正に成功するまで対応するＥＣＣビットに基づきより小さいメモリセルグループに対して繰り返し適用できる。成功すると、この過程で相互に関係する全メモリセルグループのデータが訂正される。
【００１４】
図１Ａは、メモリアレイ１４でエラーを訂正するエラー訂正アルゴリズム１２を有するコンピュータシステム１０の典型的な実施形態である。メモリアレイ１４はフラッシュメモリであってよい。エラー訂正アルゴリズム１２は標準サイズ（例えば、２５６バイト）の訂正可能なメモリセルグループ（例えば、ＭＣ１）で第１のビット誤り率まで（例えば、５１２バイト当たり６ビットまで）エラーを訂正できる。メモリアレイ１４にデータを書き込み、かつメモリアレイ１４からデータを読み取るため、コントローラ１８が設けてある。
【００１５】
メモリアレイ１４は複数のデータ単位１６を含む。データ単位のバイト数はいくらでもよく、２５６バイトや５１２バイト等を含むが、これらに限定されない。この例では各データ単位１６につき２セットのＥＣＣビットを生成するようにエラー訂正アルゴリズム１２を実施する。第１のＥＣＣビットセットＥＣＣ１−２は、第１のメモリセルグループＭＣ１およびＭＣ２に対応する情報を有し、第２のＥＣＣビットセットＥＣＣ１は、第２のメモリセルグループＭＣ１に対応する情報を有する（代替的に、第２のＥＣＣビットセットはメモリセルグループＭＣ２に対応する情報を有することもある）。第１のメモリセルグループＭＣ１およびＭＣ２は、標準サイズより大きい第１のサイズ（例えば、５１２バイト）を有する。第２のメモリセルグループＭＣ１は、第１のサイズより小さい第２のサイズ（例えば、２５６バイト）を有する。第２のメモリセルグループＭＣ１は第１のグループＭＣ１およびＭＣ２の一部分をなす。第１のＥＣＣビットセットＥＣＣ１−２と第２のＥＣＣビットセットＥＣＣ１は、それぞれのデータ単位１６に関連してメモリアレイ１４に格納される。
【００１６】
エラー訂正アルゴリズム１２は、第１のＥＣＣビットセットＥＣＣ１−２に基づき第１のグループＭＣ１およびＭＣ２でエラーを訂正するべく機能する。このプロセスに失敗すると（例えば、第１のグループＭＣ１およびＭＣ２にエラーが７つ以上あると）、エラー訂正アルゴリズム１２は第２のＥＣＣビットセットＥＣＣ１に基づき第２のグループＭＣ１でエラーを訂正するべく機能する。換言すると、第１のＥＣＣビットセットＥＣＣ１−２に基づき第１のグループＭＣ１およびＭＣ２に適用されたエラー訂正アルゴリズム１２が失敗した場合に、エラー訂正アルゴリズム１２は第２のＥＣＣビットセットＥＣＣ１に基づき第２のグループＭＣ１でエラーを訂正するべく機能する。したがって、第１のグループＭＣ１およびＭＣ２で、第１のビット誤り率より大きい第２のビット誤り率、例えば５１２バイト当たり８ビットまでエラーを訂正するため、エラー訂正アルゴリズム１２（当初６ビット誤り率まで訂正するために実施される）を使用する。
【００１７】
種々の実施例には様々なメモリ構成を使用でき、図に示された特定の実施例は、この実施例に限定するものとして解釈すべきではないことを理解するべきである。例えば、ＥＣＣビットセットはメモリセルに隣接してよく、その配置はデータ単位以外でもよく、および／または様々なタイプのエラー訂正アルゴリズムを提供できる。エラー訂正アルゴリズムはさらに２セットのＥＣＣビット、３セットのＥＣＣビット（図１Ｂ参照）、あるいは４セット以上のＥＣＣビットを生成するように適用でき、メモリアレイは、２セットのＥＣＣビット、３セットのＥＣＣビット、あるいは４セット以上のＥＣＣビットを格納するように実装できる。
【００１８】
エラー訂正アルゴリズム１２はまた、第１のＥＣＣビットセットＥＣＣ１−２に基づき第１のグループＭＣ１およびＭＣ２を訂正するべく機能し得る。前述したものの代わりに、そうでなければ前述したものに加えて、エラー訂正アルゴリズム１２は、第２のＥＣＣビットセットＥＣＣ１に基づき第２のグループＭＣ１を訂正するべく機能し得る。メモリアレイ１４は、さらなるメモリセルグループに対応する情報を有するさらなるＥＣＣビットセットを格納するべく機能でき、このさらなるメモリセルグループは第２のサイズより小さい第３のサイズを有し、第２のグループＭＣ１の一部分をなす。この場合、第２のＥＣＣビットグループＥＣＣ１に基づき第２のグループＭＣ１に適用されたエラー訂正アルゴリズム１２が失敗した場合に、エラー訂正アルゴリズム１２はさらなるＥＣＣビットセットに基づきさらなるメモリセルグループに適用される（図１Ｂ参照）。エラー訂正アルゴリズム１２はまた、さらなるＥＣＣビットセットに基づきさらなるメモリセルグループを訂正するべく機能する。
【００１９】
図１Ｂは図１Ａのメモリアレイ１４の典型的な実施形態であり、この図において各データ単位１６につき３セットのＥＣＣビットを生成するようにエラー訂正アルゴリズム１２を実施する。この例では、各データ単位１６につき３セットのＥＣＣビットを生成するようにエラー訂正アルゴリズム１２を実施する。第１のＥＣＣビットセットＥＣＣ’１−３は第１のメモリセルグループＭＣ’１、ＭＣ’２、およびＭＣ’３に対応する情報を有し、第２のＥＣＣビットセットＥＣＣ’１−２は第２のメモリセルグループＭＣ’１およびＭＣ’２に対応する情報を有し、第３のＥＣＣビットセットＥＣＣ’１は第３のメモリセルグループＭＣ’１に対応する情報を有する。第１のメモリセルグループＭＣ’１、ＭＣ’２、およびＭＣ’３は標準サイズより大きい第１のサイズ（例えば、６４０バイト）を有する。第２のメモリセルグループＭＣ’１およびＭＣ’２は第１のサイズより小さい第２のサイズを有する。第２のメモリセルグループＭＣ’１およびＭＣ’２は第１のグループＭＣ’１、ＭＣ’２、およびＭＣ’３の一部分をなす。第３のメモリセルグループＭＣ’１は第２のサイズより小さい第３のサイズを有する。第３のメモリセルグループＭＣ’１は第２のグループＭＣ’１およびＭＣ’２の一部分をなす。第１のＥＣＣビットセットＥＣＣ’１−３と、第２のＥＣＣビットセットＥＣＣ’１−２と、第３のＥＣＣビットセットＥＣＣ’１は、それぞれのデータ単位１６に関連してメモリアレイ１４に格納される。
【００２０】
エラー訂正アルゴリズム１２は、第１のＥＣＣビットセットＥＣＣ’１−３に基づき第１のグループＭＣ’１、ＭＣ’２、およびＭＣ’３でエラーを訂正するべく機能する。このプロセスに失敗すると（例えば、第１のグループＭＣ’１、ＭＣ’２、およびＭＣ’３にエラーが７つ以上あると）、エラー訂正アルゴリズム１２は第２のＥＣＣビットセットＥＣＣ’１−２に基づき第２のグループＭＣ’１およびＭＣ’２でエラーを訂正するべく機能する。この第２のプロセスに失敗した場合に限り（例えば、第２のグループＭＣ’１およびＭＣ’２にエラーが７つ以上あると）、エラー訂正アルゴリズム１２は第３のＥＣＣビットセットＥＣＣ’１に基づき第３のグループＭＣ’１でエラーを訂正するべく機能する。
【００２１】
図２は、典型的な実施形態に従い、エラー訂正アルゴリズム１２を有するコンピュータシステム１０のメモリアレイにデータを書き込む方法のフローチャート３０である。３２ではメモリアレイにデータを書き込む。エラー訂正アルゴリズムは、標準サイズ（例えば、２５６バイト）の訂正可能なメモリセルグループで第１のビット誤り率までエラーを訂正できる。この例では、各データ単位１６につき３セットのＥＣＣビットを生成するようにエラー訂正アルゴリズム１２を実施する。
【００２２】
３４では、書き込まれたデータのため、第１のＥＣＣビットセットＥＣＣ’１−３を生成する。第１のＥＣＣビットセットは第１のメモリセルグループＭＣ’１、ＭＣ’２、およびＭＣ’３に対応する情報を有する。第１のグループは標準サイズより大きい第１のサイズ（例えば、５１２バイト）を有する。
３６では、書き込まれたデータのため、第２のＥＣＣビットセットＥＣＣ’１−２を生成する。第２のＥＣＣビットセットは第２のメモリセルグループＭＣ’１およびＭＣ’２に対応する情報を有する。第２のグループは第１のサイズより小さい第２のサイズを有し、第１のメモリセルグループの一部分をなす。
３８では、書き込まれたデータのため、さらなるＥＣＣビットセット（この例では、第３のセットＥＣＣ’１）を生成する。さらなるＥＣＣビットセットはさらなるメモリセルグループ（この例では、第３のグループＭＣ’１）に対応する情報を有する。第３のメモリセルグループは第２のサイズより小さい第３のサイズを有し、第２のメモリセルグループの一部分をなす。３９では全てのＥＣＣビットセットがメモリアレイに書き込まれる。
【００２３】
一部の実施形態および／または一部の符号では、第１、第２、および第３のＥＣＣビットセットの生成が単一のステップとして適用される。別の実施形態では、第１のＥＣＣビットセットと、第２のＥＣＣビットセットと、第３のＥＣＣビットセットとを生成する別個のステップが少なくとも２つあってよい。
【００２４】
図３は、典型的な実施形態に従い、メモリアレイからデータを読み取る方法のフローチャート５０である。５２ではデータとこれに対応するＥＣＣビットをメモリアレイから読み取り、第１のＥＣＣビットセットに基づき第１のメモリセルグループでエラーを訂正するべくエラー訂正アルゴリズム（図２のもの）を適用する。
【００２５】
第１のＥＣＣビットセットに基づきエラー訂正アルゴリズムが成功した場合に（５４）、第１のＥＣＣビットセットＥＣＣ’１−３に基づき第１のメモリセルグループＭＣ’１、ＭＣ’２、およびＭＣ’３が訂正され、成功信号がアサートされる（ステップ５６）。  第１のＥＣＣビットセットに基づきエラー訂正アルゴリズムが失敗した場合に（５４）、第２のＥＣＣビットセットＥＣＣ’１−２に基づき第２のメモリセルグループＭＣ’１およびＭＣ’２が訂正される。第２のＥＣＣビットセットに基づきエラー訂正アルゴリズムが成功した場合に（６０）、第２のＥＣＣビットセットＥＣＣ’１−２に基づき第２のメモリセルグループＭＣ’１およびＭＣ’２が訂正され、次に第１のＥＣＣビットセットＥＣＣ’１−３に基づき第１のメモリセルグループＭＣ’１、ＭＣ’２、およびＭＣ’３が訂正される。そして、成功信号がアサートされる（ステップ５６）。第２のＥＣＣビットセットに基づきエラー訂正アルゴリズムが失敗した場合に（６０）、さらなるＥＣＣビットセットＥＣＣ’１に基づきさらなるメモリセルグループＭＣ’１が訂正される（６２）。このステップ（６２）では、さらなるＥＣＣビットセットＥＣＣ’１に基づきさらなるメモリセルグループＭＣ’１が訂正され、次に第２のＥＣＣビットセットＥＣＣ’１−２に基づき第２のメモリセルグループＭＣ’１およびＭＣ’２が訂正され、次に第１のＥＣＣビットセットＥＣＣ’１−３に基づき第１のメモリセルグループＭＣ’１、ＭＣ’２、およびＭＣ’３が訂正される。そして、成功信号がアサートされる（ステップ５６）。
【００２６】
ここでは、２つまたは３つのＥＣＣビットセットを生成するために適用されるエラー訂正アルゴリズムと、これらのＥＣＣビットセットを格納するように実施されるメモリアレイとでコンピュータシステムが構成されているが、４セット以上のＥＣＣビットを生成し、４セット以上のＥＣＣビットを格納するようにコンピュータシステムおよび方法を適用することもできることを理解するべきである。また、大容量記憶装置への接続ポートとなるハブはどんなタイプのものでもよい。
【００２７】
これまでシステムおよび方法の様々な実施形態を説明してきたが、当業者であれば今後さらなる修正を思い付き、かかる修正は添付の特許請求の範囲内にあるものとして扱われるため、この説明が制限を意図するものではないことを理解するべきである。
【図１Ａ】
0005529751.tif 000002
【図１Ｂ】
0005529751.tif 000003
【図２】
0005529751.tif 000004
【図３】
0005529751.tif 000005