(57)【要約】  複数のデータのブロックを複数の物理的に区別できる不揮発性メモリデバイスに格納する方法において、それぞれの不揮発性メモリデバイスは独立に書き込まれ又は読み出され、それぞれのデータのブロックは不揮発性メモリデバイスへ書き込める又は不揮発性メモリデバイスから読み出せるデータの最小量である、方法。方法は、複数のデータのブロックに基づいて１つ又はそれ以上のエラーチェックデータのブロックを生成する段階と、前記データの複数のブロックと１つ又はそれ以上のエラーチェックデータのブロックを複数の区別できる物理的な不揮発性メモリデバイスに、データのブロックを１つずつ異なった物理的メモリデバイスに入れて、格納する段階と、を含んでいる。【選択図】図３
2013542541.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータのブロックを複数の物理的に区別できる不揮発性メモリデバイスに格納する方法であって、それぞれの不揮発性メモリデバイスは独立に書き込まれ又は読み出され、それぞれのデータのブロックは前記不揮発性メモリデバイスへ書き込める又は前記不揮発性メモリデバイスから読み出せるデータの最小量である、方法において、
前記複数のデータのブロックに基づいて１つ又はそれ以上のエラーチェックデータのブロックを生成する段階と、
前記データの前記複数のブロックと前記１つ又はそれ以上のエラーチェックデータのブロックを前記複数の区別できる物理的な不揮発性メモリデバイスに、データのブロックを１つずつ異なった物理的メモリデバイスに入れて、格納する段階と、
前記複数のデータのブロックをアドレスマップ内でリンク付けする段階と、を備えている方法。
【請求項２】
前記生成する段階は、前記複数のデータのブロックに基づいてパリティデータのブロックを生成する段階を備えている、請求項１に記載の方法。
【請求項３】
前記リンク付けする段階は、更に、前記複数のデータのブロックと前記エラーチェックデータのブロックをリンク付けする段階を更に備えている、請求項１に記載の方法。
【請求項４】
前記複数のデータのブロック及びエラーチェックデータのブロックのそれぞれは、それぞれに関連付けられているアドレスを有しており、前記方法は、前記複数のデータのブロック及びエラーチェックデータのブロックの前記アドレスを、ブロックへの任意のエントリからその他のブロック全てを見つけることのできる循環リンクによって、互いに関連付ける段階を更に備えている、請求項３に記載の方法。
【請求項５】
前記アドレスは論理アドレスである、請求項４に記載の方法。
【請求項６】
前記アドレスは物理アドレスである、請求項４に記載の方法。
【請求項７】
複数のデータのブロックの、複数の物理的に区別できる不揮発性メモリデバイスへの格納を制御するためのメモリコントローラであって、それぞれの不揮発性メモリデバイスは独立に書き込まれ又は読み出され、それぞれのデータのブロックは前記不揮発性メモリデバイスへ書き込める又は前記不揮発性メモリデバイスから読み出せるデータの最小量である、メモリコントローラにおいて、
プロセッサと、
前記プロセッサに実行させるためのプログラミングコードであって、前記複数のデータのブロックに基づいて１つ又はそれ以上のエラーチェックデータのブロックを生成させるため、及び前記データの前記複数のブロックと前記１つ又はそれ以上のエラーチェックデータのブロックを前記複数の区別できる物理的なメモリデバイスに、データのブロックを１つずつ異なった物理的メモリデバイスに入れて、格納させるため、及び前記複数のデータのブロックをアドレスマップ内でリンク付けさせるため、のプログラミングコードを格納している不揮発性メモリと、を備えているメモリコントローラ。
【請求項８】
１つ又はそれ以上のエラーチェックデータのブロックを生成させるための前記プログラミングコードは、前記複数のデータのブロックに基づいてパリティデータのブロックを生成させる、請求項７に記載のメモリコントローラ。
【請求項９】
前記複数のデータのブロックの前記アドレスを、ブロックへの任意のエントリからその他のブロック全てを見つけることのできる循環リンクによって、互いに関連付けさせるためのプログラミングコードを更に備えている、請求項７に記載のメモリコントローラ。
【請求項１０】
前記アドレスをリンク付けさせるための前記プログラミングコードは、前記論理アドレスをリンク付けさせる、請求項９に記載のメモリコントローラ。
【請求項１１】
前記アドレスをリンク付けさせるための前記プログラミングコードは、前記物理アドレスをリンク付けさせる、請求項９に記載のメモリコントローラ。
【請求項１２】
プロセッサと前記不揮発性メモリは集積回路デバイスに形成されている、請求項７に記載のメモリコントローラ。
【請求項１３】
前記プロセッサに実行させるための前記プログラミングコードは、前記プロセッサに、所望アドレスの不揮発性メモリデバイスからのデータのブロックを読み出させ、前記読み出し段階からエラーが起きた場合は、前記プロセッサに、前記所望アドレスと関連付けられているアドレスを有する前記データのブロック及び１つ又はそれ以上のエラーチェックデータのブロックを読み出させ、前記所望アドレスを有する読み出されたデータブロックを、前記所望アドレスと関連付けられているアドレスを有する前記データのブロック及び１つ又はそれ以上のエラーチェックデータのブロックで訂正させるためのプログラミングコードを更に備えている、請求項７に記載のメモリコントローラ。
【請求項１４】
メモリシステムにおいて、
複数の不揮発性メモリデバイスであって、それぞれの不揮発性メモリデバイスは独立にデータのブロックを書き込め又は読み出せ、前記データのブロックは不揮発性メモリデバイスへ書き込める又は不揮発性メモリデバイスから読み出せるデータの最小量である、複数の不揮発性メモリデバイスと、
複数のデータのブロックの、前記複数の不揮発性メモリデバイスへの格納を制御するためのコントローラと、を備えており、前記コントローラは、
プロセッサと、
前記プロセッサに実行させるためのプログラミングコードであって、前記複数のデータのブロックに基づいて１つ又はそれ以上のエラーチェックデータのブロックを生成させるため、及び前記データの前記複数のブロックと前記１つ又はそれ以上のエラーチェックデータのブロックを前記複数の区別できる物理的なメモリデバイスに、データのブロックを１つずつ異なった物理的メモリデバイスに入れて、格納させるため、のプログラミングコード、及び前記複数のデータのブロックをアドレスマップ内でリンク付けさせるためのプログラミングコード、を格納している不揮発性メモリと、を備えている、メモリシステム。
【請求項１５】
１つ又はそれ以上のエラーチェックデータのブロックを生成させるための前記プログラミングコードは、前記複数のデータのブロックに基づいてパリティデータのブロックを生成させる、請求項１４に記載のメモリシステム。
【請求項１６】
前記プログラミングコードは、前記複数のデータのブロックの前記アドレスを、ブロックへの任意のエントリからその他のブロック全てを見つけることのできる循環リンクで、互いに関連付けさせる、請求項１４に記載のメモリシステム。
【請求項１７】
前記アドレスをリンク付けさせるための前記プログラミングコードは、前記論理アドレスをリンク付けさせる、請求項１６に記載のメモリシステム。
【請求項１８】
前記アドレスをリンク付けさせるための前記プログラミングコードは、前記物理アドレスをリンク付けさせる、請求項１６に記載のメモリシステム。
【請求項１９】
プロセッサと前記不揮発性メモリは集積回路デバイスに形成されている、請求項１４に記載のメモリシステム。
【請求項２０】
前記プロセッサに実行させるための前記プログラミングコードは、前記プロセッサに、所望アドレスの不揮発性メモリデバイスからのデータのブロックを読み出させ、前記読み出し段階からエラーが起きた場合は、前記プロセッサに、前記所望アドレスと関連付けられているアドレスを有する前記データのブロック及び前記１つ又はそれ以上のエラーチェックデータのブロックを読み出させ、前記所望アドレスを有する読み出されたデータブロックを、前記所望アドレスと関連付けられているアドレスを有する前記データのブロック及び１つ又はそれ以上のエラーチェックデータのブロックで訂正させるためのプログラミングコードを更に備えている、請求項１４に記載のメモリシステム。
【請求項２１】
複数の不揮発性メモリデバイスであって、それぞれの不揮発性メモリデバイスは独立にデータのブロックを書き込め又は読み出せ、前記データのブロックは不揮発性メモリデバイスへ書き込める又は不揮発性メモリデバイスから読み出せるデータの最小量である、複数の不揮発性メモリデバイスと、複数のデータのブロックの、前記複数の不揮発性メモリデバイスへの格納を制御するためのコントローラと、を有するメモリシステムを動作させる方法において、
前記メモリシステムへ書き込む段階であって、
前記複数のデータのブロックに基づいて１つ又はそれ以上のエラーチェックデータのブロックを生成する段階と、
前記複数のデータのブロックと前記１つ又はそれ以上のエラーチェックデータのブロックのアドレスを互いに関連付ける段階と、
前記データの前記複数のブロックと前記１つ又はそれ以上のエラーチェックデータのブロックを前記複数の区別できる物理的な不揮発性メモリデバイスに、データのブロックを１つずつ異なった物理的不揮発性メモリデバイスに入れて、格納する段階と、による書き込む段階と、
前記メモリシステムの所望アドレスから読み出す段階であって、
前記所望アドレスを有する不揮発性メモリデバイスからの前記データのブロックを読み出す段階と、
前記所望アドレスと関連付けられているアドレスを有する前記データのブロック及び１つ又はそれ以上のエラーチェックデータのブロックを読み出す段階と、
前記所望アドレスを有する読み出されたデータブロックを、前記所望アドレスと関連付けられているアドレスを有する前記データのブロック及び１つ又はそれ以上のエラーチェックデータのブロックで訂正する段階と、による読み出す段階と、を備えている方法。
【請求項２２】
前記生成する段階は、前記複数のデータのブロックに基づいてパリティデータのブロックを生成する段階を備えている、請求項２１に記載の方法。
【請求項２３】
前記関連付ける段階は、前記複数のデータのブロックの前記論理アドレスを互いに関連付ける、請求項２１に記載の方法。
【請求項２４】
前記関連付ける段階は、前記複数のデータのブロックの前記物理アドレスを互いに関連付ける、請求項２１に記載の方法。
【請求項２５】
前記データのブロック及び１つ又はそれ以上のエラーチェックデータのブロックを読み出す前記段階は、前記所望アドレスを有する不揮発性メモリデバイスからの前記データのブロックを読み出す前記段階がエラーを生じさせた場合に限って行われる、請求項２１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のデータのブロック、特にランダムであるそれらデータのブロックを、データのブロックがメモリデバイスから読み出せる又はメモリデバイスへ書き込めるデータの最小量とされている複数の独立に読み出し／書き込みできる不揮発性メモリデバイスの間で冗長的且つ効率的に格納するための方法に関する。方法は、複数のデータのブロックを当該複数のデータのブロックと関連付けられている１つ又はそれ以上のエラーチェックデータのブロックと共に、データのブロックそれぞれが別々の不揮発性メモリデバイスに格納されるようにして格納し、加えてブロックの格納をリンク付ける関連付けられたマップを作成させる。本発明は、更に、上記方法を実行するメモリコントローラ並びに当該方法を実行するメモリコントローラを備えたメモリシステムに関する。
【背景技術】
【０００２】
データのページの様なデータのブロックを一括して格納したり読み出したりする不揮発性メモリデバイスは当技術ではよく知られている。例えば、ＮＡＮＤメモリデバイスは、典型的に、読み出し／書き込み動作毎に、４キロバイトの様なデータのページをデバイスに格納することができる。データのブロックを一括して格納したり読み出したりする他の型式の不揮発性メモリデバイスには、カリフォルニア州サンタクララのＧｒｅｅｎｌｉａｎｔ  Ｓｙｓｔｅｍｓ，  Ｉｎｃ．から入手可能なＮＡＮＤｒｉｖｅメモリデバイスの様ないわゆる管理型ＮＡＮＤメモリデバイスが挙げられる。ＮＡＮＤｒｉｖｅメモリデバイスの様な管理型ＮＡＮＤメモリデバイスでは、コントローラが生の（未管理の）ＮＡＮＤメモリデバイスを制御し、ＳＡＴＡ（シリアルＡＴＡ）の様な標準インターフェースを使用してＮＡＮＤｒｉｖｅメモリデバイスとインターフェースできるようにする。ここでの使用に際し、「ＮＡＮＤメモリデバイス」という用語は、生と管理型の両方のＮＡＮＤメモリデバイスを指すものとする。
【０００３】
ＮＡＮＤメモリデバイスでは、不揮発性メモリデバイスは、データをブロック単位でのみ一括して書き込まれたり読み出されたりすることができる。ＮＡＮＤメモリデバイスは、データのブロックを一括して読み戻すことができる能力故に、大量のデータを格納するには有用である。
【０００４】
先行技術では、ＮＡＮＤメモリデバイスはエラーが起こり易いため、データはエラーチェックビットと共にＮＡＮＤメモリデバイスに格納されてきた。こうして、複数のデータビットから生成される１つのよく知られたエラーチェックビットにパリティビットがある。他の型式のエラービットには、リード・ソロモンエラービットや他のよく知られている型式が挙げられる。データビットとデータビットから生成されるエラービットは、複数のＮＡＮＤメモリデバイスへ供給される。１つの先行技術によるデータビットのブロックを格納する方法は、データのブロックを複数の等しいデータのサブブロックへ分解し、データのサブブロックのそれぞれを物理的に区別できる互いと異なるＮＡＮＤメモリデバイスへ供給するというものである。（複数のデータのサブブロックの）関連付けられているエラービットは、別の物理的に区別できるＮＡＮＤメモリデバイスへ供給される。こうして、データビットとエラービットのブロック全てが、物理的に区別できるＮＡＮＤメモリデバイスへ供給される。
【０００５】
それぞれの区別できるＮＡＮＤメモリデバイスへ供給されたデータのサブブロックは、２つのやり方のうちの１つにより格納される。１つ目として、データのサブブロックは、ＮＡＮＤメモリデバイスのバッファに受信されると、ＮＡＮＤメモリセルのストレージとしてのブロックに格納される。これは、ストレージのブロックがデータのサブブロック量しか収容しないため浪費的である。代わりのやり方として、データのサブブロックは、（異なったデータブロックからの）別のデータサブブロックが受信されるなどするまで、即ち１ブロックに等しいデータ量がバッファに受信されるまで、バッファ内に引き留められるものであり、その場合、バッファ内のデータのブロック全体（異なったデータブロックからの多くのサブブロックから成る）をストレージのブロックに格納させることができる。この代わりの方法も、データはバッファに引き留められ、バッファは通常揮発性メモリであることから電源が失陥すればデータが失われる可能性があるため、やはり最適ではない。
【０００６】
読み戻しでは、ストレージのブロックがＮＡＮＤメモリデバイスの１つから読み出されると、ストレージのブロックから読み出されたデータは選択されたデータのサブブロックを取り出すために解析されなくてはならない。選択されたブロックと関連付けられる複数のデータのサブブロック（並びに関連付けられるエラービット）が物理的に区別できるＮＡＮＤメモリデバイスから読み出される。データブロック全てからのデータがエラーブロックからのデータと比較されて、エラーが起こったかどうかが判定される。この方法を正しく動作させるために、先行技術では、データのブロックは複数のサブブロックへ分割されなくてはならず、それにエラービットのブロックが加わることになるので、格納され読み出されるデータのサイズは小さくなり、ひいては読み出し書き込み効率が下がる。例えば、データのブロックが４キロバイトであり、８つのＮＡＮＤデバイスを跨いで格納されるとしよう。データのサブブロックそれぞれは０．５キロバイトとなり、ＮＡＮＤデバイスのそれぞれのブロックに格納される。読み出し時、８データブロック即ち３２キロバイトが所望されたなら、８（８つの）ＮＡＮＤデバイスのそれぞれが８回読み出されなくてはならない。８（８つの）ＮＡＮＤデバイスの１つ１つからそれぞれのサブブロック（０．５キロバイト）からのデータ量を集めて４キロバイトのブロックにしなくてはならない。しかしながら、ＮＡＮＤデバイスを読み出すのに要する時間の量は、コマンド動作をセットアップするのに要する時間、不揮発性メモリセルのアレイを読み出すのに要する時間、及びそれぞれのＮＡＮＤデバイスからの０．５キロバイトの実際の伝送時間、が要因として背景にある。コマンド動作をセットアップするための時間の量とアレイを読み出すのに要する時間の量は、伝送されるデータの量に関係なく、事実上同じである。ＮＡＮＤデバイスのブロックサイズが増加してゆくと、データのブロックをサブブロックへ分割しサブブロックをＮＡＮＤデバイスのブロックに格納するという先行技術の方法を使用していては読み出し動作時により多くの時間を要する。
【０００７】
図１を参照すると、先行技術のメモリシステム１０の略ブロック図及び当該システムに付きまとう複数データブロック格納時の問題が示されている。図１は、「論理アドレス１」、「論理アドレス２」、「論理アドレス３」、など、を有する８（８つの）データのブロックを示している。メモリシステム１０は、更に、「デバイス１」、「デバイス２」、「デバイス３」、及び「デバイス８」としてそれぞれ示されている８つのＮＡＮＤメモリデバイス２０（ａ−ｈ）と、パリティビットを格納するための９番目のＮＡＮＤメモリデバイス２０ｉと、を有している。メモリコントローラ（図示せず）が、デバイス２０（ａ−ｈ）の動作を制御すると共に、データのブロックの様々なデバイス２０（ａ−ｈ）への方向決め、パリティビットの生成、及びパリティビットのデバイス２０ｉへの格納を制御している。先行技術では、論理アドレス１を有するデータブロックの様なデータのブロックが受信されると、メモリコントローラはデータのブロックを８つのサブブロックに分け、それぞれのサブブロックを異なったＮＡＮＤデバイス２０（ａ−ｈ）へ格納する。こうして、図１に示されている様に、論理アドレス１を有し物理アドレスＡを有するブロックは、８（８つの）サブブロックへ分けられ、それぞれのサブブロックが異なったメモリデバイス２０（ａ−ｈ）に格納される。メモリコントローラは、論理アドレス１からの８つのデータのサブブロックに基づいてパリティビットのサブブロックを生成し、パリティビットのサブブロックをデバイス９である２０ｉへ格納する。論理アドレス１を有するデータブロックからの８（８つの）データのサブブロック（パリティビットのサブブロックを含めれば９つ）全ては物理アドレスＡを有するＮＡＮＤデバイスのブロックに格納され、物理アドレスＡを有するブロックはどれも異なったメモリＮＡＮＤデバイス２０（ａ−ｈ）内にあるものの同じ物理アドレスを有する。論理アドレス２を有する第２のデータのブロックが同じ方式で格納される。データのブロックは、８（８つの）サブブロックへ分けられ、但しどれも物理アドレスＢを持ちながら、ＮＡＮＤデバイス２０（ａ−ｈ）に格納され、当該８（８つの）データのブロックへ関連付けられているパリティビットは、ＮＡＮＤデバイス２０（ｉ）に格納される。
【０００８】
読み出し時、論理アドレス３の論理アドレスを有するブロックを読み出すことが所望されたと仮定すると、メモリコントローラはＮＡＮＤメモリデバイス２０（ａ−ｈ）のそれぞれに、論理アドレス３と関連付けられている物理アドレスＣのデータのブロックを不揮発性メモリセルからＮＡＮＤメモリデバイス２０（ａ−ｈ）のそれぞれのメモリデバイス内の各バッファへ読み込ませる。その後、論理アドレス３の論理アドレスを有するデータのブロックは、読み出された８つのデータのサブブロックに基づいて組み立てられ、データはデバイス２０ｉからのパリティビットと比較されて、エラーが無いかどうかが確かめられる。加えて、デバイス（ａ−ｈ）のどれかがエラーを検出した場合、３の論理アドレスを有するデータブロックと関連付けられているパリティビットのブロックがＮＡＮＤメモリデバイス２０ｉから読み出され、同デバイスのバッファに格納される。次いで、エラーが訂正され、エラーのあったＮＡＮＤメモリデバイスへ書き戻されると共に訂正されたデータがメモリシステム１０から供給される。エラーが無ければ、論理アドレス３の論理アドレスを有するブロックからの訂正されていないデータがメモリシステム１０から供給される。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
先に論じられている様に、これらのデータのブロックの格納に係る問題は、ＮＡＮＤデバイス２０のデータ伝送速度が上がりストレージの読み出し待ち時間が短縮される中で、読み出しのオーバーヘッドがストレージシステムの性能を大きくおとしめる、ということである。このことは、多数の小データブロックを読むためのオーバーヘッド及び時間の増加の原因となっている。上記を例にとれば、（１−８）の論理アドレスを有する８（８つの）データブロックをメモリシステム１０から読み出すことが所望された場合、先述の論によれば、（全８（８つの）メモリデバイス２０（ａ−ｈ）が―パリティビット格納用ＮＡＮＤメモリデバイス２０（ｉ）を含め―同時に読み出されることができると仮定したとしても）それぞれのＮＡＮＤデバイス２０（ｘ）は８回読まれなくてはならないことに察しがつこう。８（８つの）小ブロック読み出し動作のそれぞれが、以上に論じられている様に、読み出し動作をセットアップするためのオーバーヘッド時間、アレイを読み出すための時間、そして最後にＮＡＮＤデバイス２０からデータを伝送するための時間を要する。このことは、ＮＡＮＤデバイスのアレイ読み出し待ち時間が増加し伝送時間が減少することで、いっそうボトルネックとなる。
【課題を解決するための手段】
【００１０】
故に、本発明では、複数のデータのブロックを複数の物理的に区別できる不揮発性メモリデバイスに格納する方法が開示されている。それぞれの物理的に区別できる不揮発性メモリデバイスは、独立に書き込み又は読み出しできるものであり、それぞれのデータのブロックは不揮発性メモリデバイスへ書き込める又は不揮発性メモリデバイスから読み出せるデータの最小量である。本発明の方法は、複数のデータのブロックに基づいて１つ又はそれ以上のエラーチェックデータのブロックを生成する段階を備えている。方法は、複数のデータのブロックと１つ又はそれ以上のエラーチェックデータのブロックを複数の区別できる物理的な不揮発性メモリデバイスに、データのブロックそれぞれを異なった物理的メモリデバイスに入れて、格納する段階を更に備えている。更に、複数のデータのブロックはアドレスマップ内でリンク付けされる。
【００１１】
本発明は、更に、複数の独立したメモリデバイスを制御するためのメモリコントローラに関する。メモリコントローラは、プロセッサと、上述の方法に従ってプロセッサに実行させるためのプログラミングコードを格納するための不揮発性メモリと、を有している。
【００１２】
最後に、本発明は、複数の独立したメモリデバイスと、複数のメモリデバイスを制御するための上述のメモリコントローラと、を有するメモリシステムに関する。
【図面の簡単な説明】
【００１３】
【図１】先行技術の方法により動作しているメモリシステムのブロックレベル図である。
【図２】本発明の方法を動作させるためのメモリコントローラ及びメモリシステムの略ブロック図である。
【図３】本発明の方法の好適な実施形態を実装するためのマッピング表の線図である。
【発明を実施するための形態】
【００１４】
図２を参照すると、本発明のメモリシステム５０が示されている。本発明のメモリシステム５０では、メモリコントローラ３０が、図１０に示されている先行技術のＮＡＮＤメモリデバイスと同じであってもよいとされる複数のＮＡＮＤメモリデバイス２０（ａ−ｉ）を制御している。メモリコントローラ３０は、プロセッサ３２と、プロセッサ３２に実行させるプログラミングコードを格納するための不揮発性メモリ、典型的にはＮＯＲメモリと、を備えている。ＮＯＲメモリ３４に格納されているプログラミングコードは、複数のＮＡＮＤメモリデバイス２０（ａ−ｉ）に格納される複数のデータのブロックの格納を制御する場合の本発明の方法をプロセッサ３２に遂行させる。メモリコントローラ３０は、プロセッサ３２とプロセッサ３２に実行させるプログラミングコードを保有する不揮発性メモリ３４の両方を保有する集積回路デバイスとすることができる。
【００１５】
図３を参照すると、本発明の方法ではメモリコントローラ３０によって保守されている、アドレスをマッピングする表が示されている。メモリシステム５０によって受信されたそれぞれのデータのブロックは、関連付けられている論理アドレスを有している。それぞれのデータのブロックがメモリシステム５０によって受信されると、メモリコントローラ３０は、物理アドレスを割り当てて論理アドレスと関連付けさせる。その結果、例えば、「ａ」の論理アドレスを有する第１のデータのブロックについて、メモリコントローラ３０は、当該データのブロックに「１」の物理アドレスを割り当てる。加えて、当該論理アドレスａには、「１」のＲＡＩＤグループが割り当てられる。別のデータのブロック、例えば「ｘ」の論理アドレスを有するデータのブロックが受信されると、それには「７」の物理アドレスが割り当てられる。当該ブロックへ割り当てられるＲＡＩＤグループは同様に「１」である。「ｒ」及び「ｑ」の論理アドレスを有するブロックが受信されると、それらには「１９」と「３」の物理アドレスがそれぞれ割り当てられ、同様に「１」のＲＡＩＤグループが割り当てられる。次に、「ａ」、「ｘ」、「ｒ」、及び「ｑ」の論理アドレスのブロックからのデータを使用して、パリティビットの様なエラー訂正ビットのブロックが生成されると、これらのブロックは、まとめて、次に物理的なＮＡＮＤデバイス２０（ａ−ｉ）へ書き込まれ、データのブロック（エラービットのブロックを含む）は１つずつ異なったデバイス２０（ａ−ｉ）へ書き込まれる。パリティデータブロックは、デバイス２０ｉのアドレスであって同様に「１」のＲＡＩＤグループが割り当てられている物理アドレスＡへ書き込まれる。同じＲＡＩＤグループ内のデータのブロックをグループ化するためのパラメータは、同じＲＡＩＤグループ内のデータのブロックの物理的アドレス（又は論理アドレス）であってどれもが異なったＮＡＮＤメモリデバイス２０を参照している物理的アドレス（又は論理アドレス）の様な、多数の因子に基づくことになろう。こうして、１、７、１９、３、及びＡの物理アドレスは、ＮＡＮＤメモリデバイス２０（ａ−ｉ）のそれぞれのデバイス内のアドレスを参照する。それぞれのデータ（又はエラーチェックデータ）のブロックは、自身のアドレス（論理アドレス又は物理アドレス）が同じＲＡＩＤグループ内のその他のデータのブロック全てにリンク付けられる。また、リンクは、アドレスマップ表への任意のエントリからその他のデータ（又はエラーチェックデータ）のブロック全てを突き止めることができる循環式である。循環式とは、１つのリンクが破断しても、エントリは全てなお確定され得るということを意味する。例えば、ｘの論理アドレスを有する（対応する物理アドレス７の）データのブロックにアクセスすることが所望されると、本発明の方法は、論理アドレスａ（対応する物理アドレス１）を有するブロックへのリンクを提供する。論理アドレスａから、他のブロックの論理アドレス（及び対応する物理アドレス）を求めることができる。しかしながら、前述の当該リンクが破断していたなら、論理アドレスｘ（及び物理アドレス７）から、論理アドレスｒ（及び物理アドレス１９）を有するブロックを見つけることができ、そこから残りの論理アドレス（及び対応する物理アドレス）を見つけることができる。こうして、ｘの論理アドレスを有するデータのブロックは、同じＲＡＩＤグループ内の論理アドレスａなどを有する別のデータのブロックを自動的に指す。無論、先に示唆されている様に、リンク付けは同様に物理アドレスに依ってもよい。
【００１６】
メモリシステム５０からの読み戻しでは、ｘの論理アドレスを有するデータのブロックを取り出すことが所望されていると仮定しよう。メモリコントローラ３０は、図３に示されているマッピング表を参照し、ブロック読み出し元のデバイスと物理アドレスを求めるが、読み出しブロックがより大きなサイズであるため、データのブロックをより効率的に読み出せる。読み出し動作中にエラーが起これば、メモリコントローラ３０は、何れも異なったデバイス２０（ａ−ｉ）を参照している物理アドレス１、７、１９、及びＡのデバイス２０（ａ−ｉ）でエラーのあるデバイスを除く全てについて、読み出し動作を開始するべきであると判断する。デバイス２０（ａ−ｉ）はどれも、各々の読み出し動作を互いに独立して行い、それら各々の物理アドレスの不揮発性メモリセルからデータが読み出され当該メモリデバイス２０（ａ−ｉ）のバッファに格納される。次いで物理アドレスＡのメモリ２０ｉからのパリティビットを使用して、ｘの論理アドレスを有するブロックである物理アドレス７のブロックからのデータにエラーがあるかどうかが判定される。エラーが無ければ、論理ブロックｘからのデータは、それが要求されているデータのブロックであるので、メモリシステム５０から供給される。エラーはあるが、但し論理アドレスｘを有するブロックではない場合には、論理アドレスｘからのデータがメモリシステム５０から供給される。加えて、メモリデバイス２０内のエラーを含んでいるバッファが訂正される。当該メモリデバイス２０は、自身のバッファ内の訂正されたデータをデバイス２０の不揮発性メモリセルアレイへ書き戻すように命令される。次いで図３のマッピング表が、デバイス２０内の訂正されたデータの物理アドレスで更新される。論理アドレスｘを有するブロックにエラーがあれば、論理アドレスｘからのデータは訂正され、次いで訂正されたデータがメモリシステム５０から供給される。加えて、論理アドレスｘのメモリデバイス２０のバッファが訂正される。当該メモリデバイス２０は、次に、自身のバッファ内の訂正されたデータをデバイス２０の不揮発性メモリセルアレイへ書き戻すように命令される。次いで、図３のマッピング表は、デバイス２０内の訂正されたデータの物理アドレスで更新される。
【００１７】
以上より、本発明の数々の利点があることが理解されよう。具体的には、独立に受信された複数のデータのブロックをＲＡＩＤグループへグループ化し、そこから１つ又はそれ以上のエラーチェックビットを形成させ、それらデータ及びエラーチェックデータのブロックをメモリデバイス２０に、異なったメモリデバイスそれぞれに１ブロックずつ、格納させるので、ＲＡＩＤコンセプトは継続され、その結果より正確なデータ読み出しがもたらされる。また、１回の読み出し動作で先行技術での様にデータのサブブロックではなしにデータのブロック全体が読み出されるので、特にＮＡＮＤメモリデバイスで記憶容量の増大が続きそれに伴ってエラー検出及び訂正も多くなる中で、ＮＡＮＤメモリデバイスのより効率的な読み出しが実施可能となる。
【符号の説明】
【００１８】
２０（ａ−ｉ）  ＮＡＮＤメモリデバイス
３０  メモリコントローラ
３２  プロセッサ
３４  不揮発性メモリ、ＮＯＲメモリ
５０  メモリシステム
【図１】
2013542541.tif 000003
【図２】
2013542541.tif 000004
【図３】
2013542541.tif 000005
【手続補正書】
【提出日】平成25年5月8日(2013.5.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のデータブロックを複数の物理的に区別できる不揮発性メモリデバイスに格納する方法であって、それぞれの不揮発性メモリデバイスは独立に書き込まれ又は読み出され、前記データブロックのそれぞれは前記データブロックのその他とは異なった論理アドレスを有している、方法において、
前記複数のデータブロックに基づいて１つ又はそれ以上のエラーチェックデータブロックを生成する段階と、
前記複数のデータブロックと前記１つ又はそれ以上のエラーチェックデータブロックを前記複数の物理的に区別できる不揮発性メモリデバイスに、前記データブロックのそれぞれを前記物理的に区別できる不揮発性メモリデバイスの各々異なったデバイスに入れて、格納する段階と、
前記複数のデータブロックと前記１つ又はそれ以上のエラーチェックデータブロックをアドレスマップ内でリンク付けする段階と、を備えている方法。
【請求項２】
前記生成する段階は、前記複数のデータブロックに基づいて１つ又はそれ以上のパリティデータブロックを生成する段階を備えている、請求項１に記載の方法。
【請求項３】
それぞれのデータブロックは、前記不揮発性メモリデバイスのそれぞれへ書き込める又は前記不揮発性メモリデバイスのそれぞれから読み出せるデータの最小量である、請求項１に記載の方法。
【請求項４】
前記リンク付けする段階は、前記複数のデータブロックと前記１つ又はそれ以上のエラーチェックデータブロックのアドレスを、前記データブロックの１つについての前記アドレスマップへの任意のエントリがその他のデータブロック全てへのリンクをもたらすことになる循環リンクによって、互いに関連付ける段階を更に備えている、請求項１に記載の方法。
【請求項５】
前記関連付けられているアドレスは前記論理アドレスを含んでいる、請求項４に記載の方法。
【請求項６】
前記関連付けられているアドレスは物理アドレスである、請求項４に記載の方法。
【請求項７】
複数のデータブロックの、複数の物理的に区別できる不揮発性メモリデバイスへの格納を制御するためのメモリコントローラであって、それぞれの不揮発性メモリデバイスは独立に書き込まれ又は読み出され、前記データブロックのそれぞれは前記データブロックのその他とは異なった論理アドレスを有している、メモリコントローラにおいて、
プロセッサと、
前記プロセッサに実行させるためのプログラミングコードであって、前記複数のデータブロックに基づいて１つ又はそれ以上のエラーチェックデータブロックを生成させるため、及び前記複数のデータブロックと前記１つ又はそれ以上のエラーチェックデータブロックを前記複数の物理的に区別できるメモリデバイスに、前記データブロックのそれぞれを前記物理的に区別できるメモリデバイスの各々異なったデバイスに入れて、格納させるため、及び前記複数のデータブロックと前記１つ又はそれ以上のエラーチェックデータブロックをアドレスマップ内でリンク付けさせるため、のプログラミングコードを格納しているメモリと、を備えているメモリコントローラ。
【請求項８】
前記１つ又はそれ以上のエラーチェックデータブロックを生成させる段階は、前記複数のデータブロックに基づいて１つ又はそれ以上のパリティデータブロックを生成させる段階を含んでいる、請求項７に記載のメモリコントローラ。
【請求項９】
前記リンク付けさせる段階は、前記データブロックの１つへの任意のエントリがその他のデータブロック全てへのリンクをもたらすことになる循環リンクを生成させる段階を含んでいる、請求項７に記載のメモリコントローラ。
【請求項１０】
前記循環リンクは、前記データブロックの前記論理アドレスをリンク付ける、請求項９に記載のメモリコントローラ。
【請求項１１】
前記循環リンクは、前記データブロックの物理アドレスをリンク付ける、請求項９に記載のメモリコントローラ。
【請求項１２】
プロセッサと前記メモリは集積回路デバイスに形成されている、請求項７に記載のメモリコントローラ。
【請求項１３】
前記プロセッサに実行させるための前記プログラミングコードは、前記プロセッサに、所望アドレスの前記不揮発性メモリデバイスの１つからの前記データブロックの１つを読み出させるか、又は前記データブロックの前記所望アドレスと関連付けられているアドレスを有する他のデータブロックを読み出させて前記所望アドレスに付属する前記１つのデータブロックを構築させる、ためのプログラミングコードを更に備えている、請求項７に記載のメモリコントローラ。
【請求項１４】
メモリシステムにおいて、
複数の物理的に区別できる不揮発性メモリデバイスであって、それぞれの物理的に区別できる不揮発性メモリデバイスは独立に書き込める又は読み出せる、複数の物理的に区別できる不揮発性メモリデバイスと、
複数のデータブロックの、前記複数の不揮発性メモリデバイスへの格納を制御するためのコントローラであって、前記データブロックのそれぞれは前記データブロックのその他とは異なった論理アドレスを有している、コントローラと、を備えており、前記コントローラは、
プロセッサと、
前記プロセッサに実行させるためのプログラミングコードであって、前記複数のデータブロックに基づいて１つ又はそれ以上のエラーチェックデータブロックを生成させるため、及び前記複数のデータブロックと前記１つ又はそれ以上のエラーチェックデータブロックを前記複数の物理的に区別できるメモリデバイスに、前記データブロックのそれぞれを前記物理的に区別できるメモリデバイスの各々異なったデバイスに入れて、格納させるため、及び前記複数のデータブロックと前記１つ又はそれ以上のエラーチェックデータブロックをアドレスマップ内でリンク付けさせるため、のプログラミングコードを格納しているメモリと、を備えている、メモリシステム。
【請求項１５】
前記１つ又はそれ以上のエラーチェックデータブロックを生成させる段階は、前記複数のデータブロックに基づいて１つ又はそれ以上のパリティデータブロックを生成させる段階を含んでいる、請求項１４に記載のメモリシステム。
【請求項１６】
前記リンク付けさせる段階は、前記データブロックの１つへの任意のエントリがその他のデータブロック全てへのリンクをもたらすことになる循環リンクを生成させる段階を含んでいる、請求項１４に記載のメモリシステム。
【請求項１７】
前記循環リンクは、前記データブロックの前記論理アドレスをリンク付ける、請求項１６に記載のメモリシステム。
【請求項１８】
前記循環リンクは、前記データブロックの物理アドレスをリンク付ける、請求項１６に記載のメモリシステム。
【請求項１９】
プロセッサと前記メモリは集積回路デバイスに形成されている、請求項１４に記載のメモリシステム。
【請求項２０】
前記プロセッサに実行させるための前記プログラミングコードは、前記プロセッサに、所望アドレスの前記不揮発性メモリデバイスの１つからの前記データブロックの１つを読み出させるか、又は前記データブロックの前記所望アドレスと関連付けられているアドレスを有する他のデータブロックを読み出させて前記所望アドレスに付属する前記１つのデータブロックを構築させる、ためのプログラミングコードを更に備えている、請求項１４に記載のメモリシステム。
【請求項２１】
複数の物理的に区別できる不揮発性メモリデバイスであって、それぞれの不揮発性メモリデバイスは独立に書き込める又は読み出せる、複数の物理的に区別できる不揮発性メモリデバイスと、複数のデータブロックの、前記複数の不揮発性メモリデバイスへの格納を制御するためのコントローラであって、前記データブロックのそれぞれは前記データブロックのその他とは異なった論理アドレスを有している、コントローラと、を有するメモリシステムを動作させる方法において、
前記メモリシステムへ書き込む段階であって、
前記複数のデータブロックに基づいて１つ又はそれ以上のエラーチェックデータブロックを生成する段階と、
前記複数のデータブロックと前記１つ又はそれ以上のエラーチェックデータブロックのアドレスを互いに関連付ける段階と、
前記複数のデータブロックと前記１つ又はそれ以上のエラーチェックデータブロックを前記複数の物理的に区別できる不揮発性メモリデバイスに、前記データブロックのそれぞれを前記物理的に区別できる不揮発性メモリデバイスの各々異なったデバイスに入れて、格納する段階と、による書き込む段階と、
前記メモリシステムの所望アドレスから読み出す段階であって、
前記所望アドレスを有する前記不揮発性メモリデバイスの１つからの前記データブロックの１つを読み出す段階と、
前記データブロックの前記所望アドレスと関連付けられているアドレスを有する他のデータブロックを読み出して前記所望アドレスに付属する前記１つのデータブロックを構築する段階と、による読み出す段階と、を備えている方法。
【請求項２２】
前記生成する段階は、前記複数のデータブロックに基づいて１つ又はそれ以上のパリティデータブロックを生成する段階を備えている、請求項２１に記載の方法。
【請求項２３】
前記関連付ける段階は、前記複数のデータブロックの前記論理アドレスを互いに関連付ける、請求項２１に記載の方法。
【請求項２４】
前記関連付ける段階は、前記複数のデータブロックの物理アドレスを互いに関連付ける、請求項２１に記載の方法。
【請求項２５】
前記データブロックの他のデータブロックを読み出す前記段階は、前記所望アドレスを有する不揮発性メモリデバイスからの前記データブロックを読み出す前記段階がエラーを生じさせた場合に限って行われる、請求項２１に記載の方法。
【請求項２６】
それぞれのデータブロックは、前記不揮発性メモリデバイスのそれぞれへ書き込める又は前記不揮発性メモリデバイスのそれぞれから読み出せるデータの最小量である、請求項２１に記載の方法。
【請求項２７】
それぞれのデータブロックは、前記不揮発性メモリデバイスのそれぞれへ書き込める又は前記不揮発性メモリデバイスのそれぞれから読み出せるデータの最小量である、請求項７に記載のメモリコントローラ。
【請求項２８】
それぞれのデータブロックは、前記不揮発性メモリデバイスのそれぞれへ書き込める又は前記不揮発性メモリデバイスのそれぞれから読み出せるデータの最小量である、請求項１４に記載のメモリシステム。
【請求項２９】
前記データブロックの他のデータブロックを読み出す前記段階は、前記所望アドレスの前記不揮発性メモリデバイスの１つからの前記１つのデータブロックを読み出す前記段階がエラーを生じさせた場合に限って行われる、請求項１３に記載の方法。
【請求項３０】
前記データブロックの他のデータブロックを読み出す前記段階は、前記所望アドレスの前記不揮発性メモリデバイスの１つからの前記１つのデータブロックを読み出す前記段階がエラーを生じさせた場合に限って行われる、請求項２０に記載の方法。
【国際調査報告】
2013542541.tif 000006