複数のデータのブロックを複数の物理的に区別できる不揮発性メモリデバイスに格納する方法であって、それぞれの不揮発性メモリデバイスは独立に書き込まれ又は読み出され、それぞれのデータのブロックは前記不揮発性メモリデバイスへ書き込める又は前記不揮発性メモリデバイスから読み出せるデータの最小量である、方法において、前記複数のデータのブロックに基づいて1つ又はそれ以上のエラーチェックデータのブロックを生成する段階と、前記データの前記複数のブロックと前記1つ又はそれ以上のエラーチェックデータのブロックを前記複数の区別できる物理的な不揮発性メモリデバイスに、データのブロックを1つずつ異なった物理的メモリデバイスに入れて、格納する段階と、前記複数のデータのブロックをアドレスマップ内でリンク付けする段階と、を備えている方法。前記生成する段階は、前記複数のデータのブロックに基づいてパリティデータのブロックを生成する段階を備えている、請求項1に記載の方法。前記リンク付けする段階は、更に、前記複数のデータのブロックと前記エラーチェックデータのブロックをリンク付けする段階を更に備えている、請求項1に記載の方法。前記複数のデータのブロック及びエラーチェックデータのブロックのそれぞれは、それぞれに関連付けられているアドレスを有しており、前記方法は、前記複数のデータのブロック及びエラーチェックデータのブロックの前記アドレスを、ブロックへの任意のエントリからその他のブロック全てを見つけることのできる循環リンクによって、互いに関連付ける段階を更に備えている、請求項3に記載の方法。前記アドレスは論理アドレスである、請求項4に記載の方法。前記アドレスは物理アドレスである、請求項4に記載の方法。複数のデータのブロックの、複数の物理的に区別できる不揮発性メモリデバイスへの格納を制御するためのメモリコントローラであって、それぞれの不揮発性メモリデバイスは独立に書き込まれ又は読み出され、それぞれのデータのブロックは前記不揮発性メモリデバイスへ書き込める又は前記不揮発性メモリデバイスから読み出せるデータの最小量である、メモリコントローラにおいて、プロセッサと、前記プロセッサに実行させるためのプログラミングコードであって、前記複数のデータのブロックに基づいて1つ又はそれ以上のエラーチェックデータのブロックを生成させるため、及び前記データの前記複数のブロックと前記1つ又はそれ以上のエラーチェックデータのブロックを前記複数の区別できる物理的なメモリデバイスに、データのブロックを1つずつ異なった物理的メモリデバイスに入れて、格納させるため、及び前記複数のデータのブロックをアドレスマップ内でリンク付けさせるため、のプログラミングコードを格納している不揮発性メモリと、を備えているメモリコントローラ。1つ又はそれ以上のエラーチェックデータのブロックを生成させるための前記プログラミングコードは、前記複数のデータのブロックに基づいてパリティデータのブロックを生成させる、請求項7に記載のメモリコントローラ。前記複数のデータのブロックの前記アドレスを、ブロックへの任意のエントリからその他のブロック全てを見つけることのできる循環リンクによって、互いに関連付けさせるためのプログラミングコードを更に備えている、請求項7に記載のメモリコントローラ。前記アドレスをリンク付けさせるための前記プログラミングコードは、前記論理アドレスをリンク付けさせる、請求項9に記載のメモリコントローラ。前記アドレスをリンク付けさせるための前記プログラミングコードは、前記物理アドレスをリンク付けさせる、請求項9に記載のメモリコントローラ。プロセッサと前記不揮発性メモリは集積回路デバイスに形成されている、請求項7に記載のメモリコントローラ。前記プロセッサに実行させるための前記プログラミングコードは、前記プロセッサに、所望アドレスの不揮発性メモリデバイスからのデータのブロックを読み出させ、前記読み出し段階からエラーが起きた場合は、前記プロセッサに、前記所望アドレスと関連付けられているアドレスを有する前記データのブロック及び1つ又はそれ以上のエラーチェックデータのブロックを読み出させ、前記所望アドレスを有する読み出されたデータブロックを、前記所望アドレスと関連付けられているアドレスを有する前記データのブロック及び1つ又はそれ以上のエラーチェックデータのブロックで訂正させるためのプログラミングコードを更に備えている、請求項7に記載のメモリコントローラ。メモリシステムにおいて、複数の不揮発性メモリデバイスであって、それぞれの不揮発性メモリデバイスは独立にデータのブロックを書き込め又は読み出せ、前記データのブロックは不揮発性メモリデバイスへ書き込める又は不揮発性メモリデバイスから読み出せるデータの最小量である、複数の不揮発性メモリデバイスと、複数のデータのブロックの、前記複数の不揮発性メモリデバイスへの格納を制御するためのコントローラと、を備えており、前記コントローラは、プロセッサと、前記プロセッサに実行させるためのプログラミングコードであって、前記複数のデータのブロックに基づいて1つ又はそれ以上のエラーチェックデータのブロックを生成させるため、及び前記データの前記複数のブロックと前記1つ又はそれ以上のエラーチェックデータのブロックを前記複数の区別できる物理的なメモリデバイスに、データのブロックを1つずつ異なった物理的メモリデバイスに入れて、格納させるため、のプログラミングコード、及び前記複数のデータのブロックをアドレスマップ内でリンク付けさせるためのプログラミングコード、を格納している不揮発性メモリと、を備えている、メモリシステム。1つ又はそれ以上のエラーチェックデータのブロックを生成させるための前記プログラミングコードは、前記複数のデータのブロックに基づいてパリティデータのブロックを生成させる、請求項14に記載のメモリシステム。前記プログラミングコードは、前記複数のデータのブロックの前記アドレスを、ブロックへの任意のエントリからその他のブロック全てを見つけることのできる循環リンクで、互いに関連付けさせる、請求項14に記載のメモリシステム。前記アドレスをリンク付けさせるための前記プログラミングコードは、前記論理アドレスをリンク付けさせる、請求項16に記載のメモリシステム。前記アドレスをリンク付けさせるための前記プログラミングコードは、前記物理アドレスをリンク付けさせる、請求項16に記載のメモリシステム。プロセッサと前記不揮発性メモリは集積回路デバイスに形成されている、請求項14に記載のメモリシステム。前記プロセッサに実行させるための前記プログラミングコードは、前記プロセッサに、所望アドレスの不揮発性メモリデバイスからのデータのブロックを読み出させ、前記読み出し段階からエラーが起きた場合は、前記プロセッサに、前記所望アドレスと関連付けられているアドレスを有する前記データのブロック及び前記1つ又はそれ以上のエラーチェックデータのブロックを読み出させ、前記所望アドレスを有する読み出されたデータブロックを、前記所望アドレスと関連付けられているアドレスを有する前記データのブロック及び1つ又はそれ以上のエラーチェックデータのブロックで訂正させるためのプログラミングコードを更に備えている、請求項14に記載のメモリシステム。複数の不揮発性メモリデバイスであって、それぞれの不揮発性メモリデバイスは独立にデータのブロックを書き込め又は読み出せ、前記データのブロックは不揮発性メモリデバイスへ書き込める又は不揮発性メモリデバイスから読み出せるデータの最小量である、複数の不揮発性メモリデバイスと、複数のデータのブロックの、前記複数の不揮発性メモリデバイスへの格納を制御するためのコントローラと、を有するメモリシステムを動作させる方法において、前記メモリシステムへ書き込む段階であって、前記複数のデータのブロックに基づいて1つ又はそれ以上のエラーチェックデータのブロックを生成する段階と、前記複数のデータのブロックと前記1つ又はそれ以上のエラーチェックデータのブロックのアドレスを互いに関連付ける段階と、前記データの前記複数のブロックと前記1つ又はそれ以上のエラーチェックデータのブロックを前記複数の区別できる物理的な不揮発性メモリデバイスに、データのブロックを1つずつ異なった物理的不揮発性メモリデバイスに入れて、格納する段階と、による書き込む段階と、前記メモリシステムの所望アドレスから読み出す段階であって、前記所望アドレスを有する不揮発性メモリデバイスからの前記データのブロックを読み出す段階と、前記所望アドレスと関連付けられているアドレスを有する前記データのブロック及び1つ又はそれ以上のエラーチェックデータのブロックを読み出す段階と、前記所望アドレスを有する読み出されたデータブロックを、前記所望アドレスと関連付けられているアドレスを有する前記データのブロック及び1つ又はそれ以上のエラーチェックデータのブロックで訂正する段階と、による読み出す段階と、を備えている方法。前記生成する段階は、前記複数のデータのブロックに基づいてパリティデータのブロックを生成する段階を備えている、請求項21に記載の方法。前記関連付ける段階は、前記複数のデータのブロックの前記論理アドレスを互いに関連付ける、請求項21に記載の方法。前記関連付ける段階は、前記複数のデータのブロックの前記物理アドレスを互いに関連付ける、請求項21に記載の方法。前記データのブロック及び1つ又はそれ以上のエラーチェックデータのブロックを読み出す前記段階は、前記所望アドレスを有する不揮発性メモリデバイスからの前記データのブロックを読み出す前記段階がエラーを生じさせた場合に限って行われる、請求項21に記載の方法。先に論じられている様に、これらのデータのブロックの格納に係る問題は、NANDデバイス20のデータ伝送速度が上がりストレージの読み出し待ち時間が短縮される中で、読み出しのオーバーヘッドがストレージシステムの性能を大きくおとしめる、ということである。このことは、多数の小データブロックを読むためのオーバーヘッド及び時間の増加の原因となっている。上記を例にとれば、1-8の論理アドレスを有する88つのデータブロックをメモリシステム10から読み出すことが所望された場合、先述の論によれば、全88つのメモリデバイス20a-hが―パリティビット格納用NANDメモリデバイス20iを含め―同時に読み出されることができると仮定したとしてもそれぞれのNANDデバイス20xは8回読まれなくてはならないことに察しがつこう。88つの小ブロック読み出し動作のそれぞれが、以上に論じられている様に、読み出し動作をセットアップするためのオーバーヘッド時間、アレイを読み出すための時間、そして最後にNANDデバイス20からデータを伝送するための時間を要する。このことは、NANDデバイスのアレイ読み出し待ち時間が増加し伝送時間が減少することで、いっそうボトルネックとなる。故に、本発明では、複数のデータのブロックを複数の物理的に区別できる不揮発性メモリデバイスに格納する方法が開示されている。それぞれの物理的に区別できる不揮発性メモリデバイスは、独立に書き込み又は読み出しできるものであり、それぞれのデータのブロックは不揮発性メモリデバイスへ書き込める又は不揮発性メモリデバイスから読み出せるデータの最小量である。本発明の方法は、複数のデータのブロックに基づいて1つ又はそれ以上のエラーチェックデータのブロックを生成する段階を備えている。方法は、複数のデータのブロックと1つ又はそれ以上のエラーチェックデータのブロックを複数の区別できる物理的な不揮発性メモリデバイスに、データのブロックそれぞれを異なった物理的メモリデバイスに入れて、格納する段階を更に備えている。更に、複数のデータのブロックはアドレスマップ内でリンク付けされる。本発明は、更に、複数の独立したメモリデバイスを制御するためのメモリコントローラに関する。メモリコントローラは、プロセッサと、上述の方法に従ってプロセッサに実行させるためのプログラミングコードを格納するための不揮発性メモリと、を有している。最後に、本発明は、複数の独立したメモリデバイスと、複数のメモリデバイスを制御するための上述のメモリコントローラと、を有するメモリシステムに関する。図2を参照すると、本発明のメモリシステム50が示されている。本発明のメモリシステム50では、メモリコントローラ30が、図10に示されている先行技術のNANDメモリデバイスと同じであってもよいとされる複数のNANDメモリデバイス20a-iを制御している。メモリコントローラ30は、プロセッサ32と、プロセッサ32に実行させるプログラミングコードを格納するための不揮発性メモリ、典型的にはNORメモリと、を備えている。NORメモリ34に格納されているプログラミングコードは、複数のNANDメモリデバイス20a-iに格納される複数のデータのブロックの格納を制御する場合の本発明の方法をプロセッサ32に遂行させる。メモリコントローラ30は、プロセッサ32とプロセッサ32に実行させるプログラミングコードを保有する不揮発性メモリ34の両方を保有する集積回路デバイスとすることができる。図3を参照すると、本発明の方法ではメモリコントローラ30によって保守されている、アドレスをマッピングする表が示されている。メモリシステム50によって受信されたそれぞれのデータのブロックは、関連付けられている論理アドレスを有している。それぞれのデータのブロックがメモリシステム50によって受信されると、メモリコントローラ30は、物理アドレスを割り当てて論理アドレスと関連付けさせる。その結果、例えば、aの論理アドレスを有する第1のデータのブロックについて、メモリコントローラ30は、当該データのブロックに1の物理アドレスを割り当てる。加えて、当該論理アドレスaには、1のRAIDグループが割り当てられる。別のデータのブロック、例えばxの論理アドレスを有するデータのブロックが受信されると、それには7の物理アドレスが割り当てられる。当該ブロックへ割り当てられるRAIDグループは同様に1である。r及びqの論理アドレスを有するブロックが受信されると、それらには19と3の物理アドレスがそれぞれ割り当てられ、同様に1のRAIDグループが割り当てられる。次に、a、x、r、及びqの論理アドレスのブロックからのデータを使用して、パリティビットの様なエラー訂正ビットのブロックが生成されると、これらのブロックは、まとめて、次に物理的なNANDデバイス20a-iへ書き込まれ、データのブロックエラービットのブロックを含むは1つずつ異なったデバイス20a-iへ書き込まれる。パリティデータブロックは、デバイス20iのアドレスであって同様に1のRAIDグループが割り当てられている物理アドレスAへ書き込まれる。同じRAIDグループ内のデータのブロックをグループ化するためのパラメータは、同じRAIDグループ内のデータのブロックの物理的アドレス又は論理アドレスであってどれもが異なったNANDメモリデバイス20を参照している物理的アドレス又は論理アドレスの様な、多数の因子に基づくことになろう。こうして、1、7、19、3、及びAの物理アドレスは、NANDメモリデバイス20a-iのそれぞれのデバイス内のアドレスを参照する。それぞれのデータ又はエラーチェックデータのブロックは、自身のアドレス論理アドレス又は物理アドレスが同じRAIDグループ内のその他のデータのブロック全てにリンク付けられる。また、リンクは、アドレスマップ表への任意のエントリからその他のデータ又はエラーチェックデータのブロック全てを突き止めることができる循環式である。循環式とは、1つのリンクが破断しても、エントリは全てなお確定され得るということを意味する。例えば、xの論理アドレスを有する対応する物理アドレス7のデータのブロックにアクセスすることが所望されると、本発明の方法は、論理アドレスa対応する物理アドレス1を有するブロックへのリンクを提供する。論理アドレスaから、他のブロックの論理アドレス及び対応する物理アドレスを求めることができる。しかしながら、前述の当該リンクが破断していたなら、論理アドレスx及び物理アドレス7から、論理アドレスr及び物理アドレス19を有するブロックを見つけることができ、そこから残りの論理アドレス及び対応する物理アドレスを見つけることができる。こうして、xの論理アドレスを有するデータのブロックは、同じRAIDグループ内の論理アドレスaなどを有する別のデータのブロックを自動的に指す。無論、先に示唆されている様に、リンク付けは同様に物理アドレスに依ってもよい。メモリシステム50からの読み戻しでは、xの論理アドレスを有するデータのブロックを取り出すことが所望されていると仮定しよう。メモリコントローラ30は、図3に示されているマッピング表を参照し、ブロック読み出し元のデバイスと物理アドレスを求めるが、読み出しブロックがより大きなサイズであるため、データのブロックをより効率的に読み出せる。読み出し動作中にエラーが起これば、メモリコントローラ30は、何れも異なったデバイス20a-iを参照している物理アドレス1、7、19、及びAのデバイス20a-iでエラーのあるデバイスを除く全てについて、読み出し動作を開始するべきであると判断する。デバイス20a-iはどれも、各々の読み出し動作を互いに独立して行い、それら各々の物理アドレスの不揮発性メモリセルからデータが読み出され当該メモリデバイス20a-iのバッファに格納される。次いで物理アドレスAのメモリ20iからのパリティビットを使用して、xの論理アドレスを有するブロックである物理アドレス7のブロックからのデータにエラーがあるかどうかが判定される。エラーが無ければ、論理ブロックxからのデータは、それが要求されているデータのブロックであるので、メモリシステム50から供給される。エラーはあるが、但し論理アドレスxを有するブロックではない場合には、論理アドレスxからのデータがメモリシステム50から供給される。加えて、メモリデバイス20内のエラーを含んでいるバッファが訂正される。当該メモリデバイス20は、自身のバッファ内の訂正されたデータをデバイス20の不揮発性メモリセルアレイへ書き戻すように命令される。次いで図3のマッピング表が、デバイス20内の訂正されたデータの物理アドレスで更新される。論理アドレスxを有するブロックにエラーがあれば、論理アドレスxからのデータは訂正され、次いで訂正されたデータがメモリシステム50から供給される。加えて、論理アドレスxのメモリデバイス20のバッファが訂正される。当該メモリデバイス20は、次に、自身のバッファ内の訂正されたデータをデバイス20の不揮発性メモリセルアレイへ書き戻すように命令される。次いで、図3のマッピング表は、デバイス20内の訂正されたデータの物理アドレスで更新される。以上より、本発明の数々の利点があることが理解されよう。具体的には、独立に受信された複数のデータのブロックをRAIDグループへグループ化し、そこから1つ又はそれ以上のエラーチェックビットを形成させ、それらデータ及びエラーチェックデータのブロックをメモリデバイス20に、異なったメモリデバイスそれぞれに1ブロックずつ、格納させるので、RAIDコンセプトは継続され、その結果より正確なデータ読み出しがもたらされる。また、1回の読み出し動作で先行技術での様にデータのサブブロックではなしにデータのブロック全体が読み出されるので、特にNANDメモリデバイスで記憶容量の増大が続きそれに伴ってエラー検出及び訂正も多くなる中で、NANDメモリデバイスのより効率的な読み出しが実施可能となる。