(57)【特許請求の範囲】
【請求項１】
メモリ装置であって、
複数のメモリバンクを含み、前記メモリバンクに対する書き込み操作または消去操作が、前記バンクに対する読み出し操作よりもかなり遅く、
前記メモリ装置は、前記バンクにおける主記憶場所が書き込み操作および消去操作の少なくとも１つを受けている際にデータの問い合わせに応じて前記主記憶場所に格納されたデータの代わりに冗長な記憶領域に格納されたデータを読み出すように構成され、前記メモリ装置が、前記複数のメモリバンクに格納されたデータに対して実質的に均一な読み出し待ち時間を含み、
前記問い合わせで要求された前記データが、前記複数のメモリバンクのうちの複数の全体にわたって分散され、
前記冗長な記憶領域に格納された前記データがパリティデータを含み、前記要求されたデータが、前記パリティデータ、及び前記複数のメモリバンクのうちの前記複数の全体にわたって分散されたデータの部分から導出される、メモリ装置。
【請求項２】
前記メモリバンクがフラッシュメモリからなる、請求項１に記載のメモリ装置。
【請求項３】
前記実質的に均一な読み出し待ち時間が、前記メモリバンクの前記主記憶場所の書き込み待ち時間および消去待ち時間の少なくとも１つよりかなり小さい、請求項１又は２に記載のメモリ装置。
【請求項４】
前記パリティデータ、及び前記複数のメモリバンクのうちの前記複数の全体にわたって分散されたデータの部分を用いて前記主記憶場所に格納された前記データに対応するデータを生成するように構成された再構成モジュールと、
前記主記憶場所に格納された前記データの代わりに前記再構成モジュールにより生成された前記データを使用するように構成された読み出しマルチプレクサとを更に含む、請求項１〜３の何れかに記載のメモリ装置。
【請求項５】
複数のメモリバンクからなるアレイにおいて実質的に均一な読み出し待ち時間を維持する方法であって、
データの問い合わせに応じて、前記メモリバンクの主記憶場所が書き込み操作および消去操作の少なくとも１つを現在受けているか否かを判定し、
前記主記憶場所が書き込み操作および消去操作の少なくとも１つを現在受けている場合に、前記主記憶場所に格納されたデータの代わりに冗長な記憶領域に格納されたデータを読み出すことを含み、
前記問い合わせされたデータが、前記複数のメモリバンクからなる前記アレイにおける複数のメモリバンクの個々のメモリバンク全体にわたって分散され、前記冗長な記憶領域に格納された前記データがパリティデータを含み、
前記方法が、前記主記憶場所に格納された前記データに対応するデータを、分散されたデータの部分および前記パリティデータから再構成することを更に含む、方法（900）。
【請求項６】
前記主記憶場所に格納された前記データの代わりに前記再構成されたデータを使用することにより、前記問い合わせされたデータを導出し、
前記問い合わせされたデータを外部読み出しプロセスに提供することを更に含む、請求項５に記載の方法。
【請求項７】
前記問い合わせされたデータが一時的な書き込みバッファに格納されているという判定に応じて、前記問い合わせされたデータを前記一時的な書き込みバッファから直接的に読み出すことを更に含む、請求項５又は６に記載の方法。
【請求項８】
複数のメモリバンクであって、前記メモリバンクに対する書き込み操作または消去操作が、前記メモリバンクに対する読み出し操作よりもかなり遅い、複数のメモリバンクと、
前記メモリバンクの主記憶場所が書き込み操作および消去操作の少なくとも１つを受けているという判定に応じて、前記メモリバンクの前記主記憶場所に格納されたデータを、前記複数のメモリバンクの全体にわたって分散された断片化データ、及び冗長な記憶領域に格納されたパリティデータから再構成するように構成された再構成モジュールと、
前記主記憶場所に格納された前記データの代わりに前記再構成されたデータを使用し、前記再構成されたデータ及び前記断片化データから導出される要求されたデータを提供するように構成された読み出しマルチプレクサとを含む、データ記憶システム。
【請求項９】
外部プロセスから同期して書き込みデータを受け取り、前記書き込みデータを格納すると同時に、互い違いの書き込みプロセスが前記書き込みデータを前記複数のメモリバンクに書き込むように構成された書き込みバッファを更に含む、請求項８に記載のデータ記憶システム。
【発明の詳細な説明】
【技術分野】
【０００１】
背景
半導体メモリは、データ記憶のために多くのコンピュータ及び電子デバイスにより使用されるデジタル記憶装置の一種である。ソリッドステート（半導体）回路のパッケージングは概して、磁気ディスクドライブよりも大きい耐久性かつ低い消費電力を半導体メモリに与える。半導体メモリデバイスの記憶容量の増加および半導体メモリの比較的安価なコストの増進になされてきた継続的な歩みと結びつけられたこれら特徴は、広範囲の用途に半導体メモリを使用することに寄与した。例えば、幾つかの用途において、不揮発性半導体メモリは、磁気ハードディスクに取って代わるために、又はプロセッサが電力供給されていない際に、それらの内容を保持するプロセッサのメモリ空間の領域に使用され得る。
【０００２】
フラッシュメモリを含む不揮発性半導体メモリの大抵のタイプにおいて、書き込み操作は、読み出し操作に比べて、完了するのにかなり長い量の時間を必要とする。更に、フラッシュメモリにおける書き込み操作の一方向特質の故に、データは一般に、大きなブロックで周期的にフラッシュメモリから消去されるだけである。このタイプの消去操作は、書き込み操作に比べて、完了するために更に多くの時間を必要とする。
【０００３】
添付図面は、本明細書で説明される原理の様々な実施形態を示し、本明細書の一部である。図示された実施形態は例に過ぎず、特許請求の範囲を制限しない。
【図面の簡単な説明】
【０００４】
【図１Ａ】本明細書で説明される原理の例示的な一実施形態による、均一な読み出し待ち時間を有する例示的なメモリ装置の図である。
【図１Ｂ】本明細書で説明される原理の例示的な一実施形態による、図１Ａの例示的なメモリ装置で実行される読み出し操作および書き込み操作の例示的なタイミングの図である。
【図２】本明細書で説明される原理の例示的な一実施形態による、均一な読み出し待ち時間を有する例示的なメモリ装置の図である。
【図３】本明細書で説明される原理の例示的な一実施形態による、均一な読み出し待ち時間を有する例示的なメモリ装置の図である。
【図４】本明細書で説明される原理の例示的な一実施形態による、図３の例示的なメモリ装置で実行される読み出し操作および書き込み操作の例示的なタイミングの図である。
【図５】本明細書で説明される原理の例示的な一実施形態による、均一な読み出し待ち時間を有する例示的なメモリ装置の図である。
【図６】本明細書で説明される原理の例示的な一実施形態による、均一な読み出し待ち時間を有する例示的なメモリ装置の図である。
【図７】本明細書で説明される原理の例示的な一実施形態による、均一な読み出し待ち時間を有する例示的なメモリ装置の図である。
【図８】本明細書で説明される原理の例示的な一実施形態による、均一な読み出し待ち時間を有する例示的なデータ記憶システムのブロック図である。
【図９Ａ】本明細書で説明される原理の例示的な一実施形態に従って、メモリバンクのアレイにおいて均一な読み出し待ち時間を維持する例示的な方法の流れ図である。
【図９Ｂ】本明細書で説明される原理の例示的な一実施形態に従って、メモリシステムからデータを読み出す例示的な方法の流れ図である。
【０００５】
図面の全体にわたって、同一の参照番号は、類似しているが必ずしも全く同一とは限らない要素を示す。
【０００６】
詳細な説明
上述したように、以下に限定されないが、フラッシュメモリ及び他の不揮発性半導体メモリを含むデジタル記憶装置の幾つかのタイプにおいて、データをメモリに書き込むために必要な時間量は、データをメモリから読み出すために必要な時間量よりも大幅に長い可能性がある。更に、消去操作は、書き込み操作または読み出し操作に比べて、完了するためのより長い時間量を必要とするかもしれない。
【０００７】
これらタイプのメモリの大部分に関して、読み出し操作は、同じメモリデバイスでの書き込み操作または消去操作と同時に行われることができず、それにより当該デバイスで現在実行されている任意の書き込み操作または消去操作が完了するまで、読み出し操作が遅延する必要がある。従って、係るメモリデバイスにおける最悪の場合の読み出し待ち時間は、当該デバイスでの消去操作により必要とされる時間によって左右されるかもしれない。
【０００８】
しかしながら、場合によっては、メモリデバイスが書き込み操作または消去操作を受けているか否かに関わらず、メモリデバイスに格納されたデータの読み出し待ち時間において均一性を維持することが望ましいかもしれない。更に、係るメモリデバイスにおいて読み出し待ち時間を最小限にすることも望ましいかもしれない。
【０００９】
上記および他の目標に鑑みて、本明細書は、実質的に均一な読み出し待ち時間を有するデジタル記憶の装置、システム及び方法を開示する。特に、本明細書は、主記憶場所における書き込み操作または消去操作中にそうでなければアクセスできないデータを重複して（冗長的に）格納するように構成された複数のメモリバンクを利用する装置、システム及び方法を開示する。主記憶場所が書き込み操作または消去操作を受けている際のデータの問い合わせに応じて、データが冗長な記憶領域から読み出される。
【００１０】
本明細書および添付の特許請求の範囲で使用される場合、用語「バンク」はアドレス指定可能な物理的なメモリモジュールを意味する。一例として、複数のバンクが単一のメモリシステム又はデバイスに組み込まれ、同時（並列）にアクセスされ得る。
【００１１】
本明細書および添付の特許請求の範囲で使用される場合、用語「読み出し待ち時間」は、メモリバンクのアドレスが問い合わされた時と、そのアドレスに格納されたデータが当該問い合わせプロセスに提供された時との間の経過時間量を意味する。
【００１２】
本明細書および添付の特許請求の範囲で使用される場合、用語「メモリシステム」は、データ記憶およびアクセスの任意のシステムを広く意味し、この場合、データは１つ又は複数の外部プロセスにより、システムに対して読み書きされ得る。メモリシステムは、以下に限定されないが、プロセッサメモリ、半導体ディスク等を含む。
【００１３】
以下の説明において、説明の目的で、多数の特定の細部が、本システム及び方法の完全な理解を提供するために記載される。しかしながら、当業者には明らかなように、本システム及び方法は、これら特定の細部なしに実施され得る。明細書における「実施形態」、「例」又は類似した用語への参照は、当該実施形態または例に関連して説明された特定の特徴、構造または特性が少なくともその１つの実施形態に含まれるが、必ずしも他の実施形態に含まれないことを意味する。明細書の様々な場所における語句「一実施形態において」又は類似した語句の様々なたとえは、必ずしも同じ実施形態を全て参照するわけではない。
【００１４】
さて、本明細書で開示された原理が、例示的なシステム及び例示的な方法に関して説明される。
【００１５】
例示的なシステム
さて、図１Ａを参照すると、例示的なメモリ装置（１００）が示される。説明のために、本明細書のシステム及び方法は、フラッシュメモリに関して主として説明される。しかしながら、理解されるように、本明細書のシステム及び方法は、任意のタイプのデジタル記憶装置で利用されることができ且つ利用されることが意図されており、この場合、少なくとも１つの書き込み操作または消去操作は、読み出し操作に比べて完了するためにかなり長い時間量を必要とする。本システム及び方法が適用され得るデジタル記憶装置の他のタイプの例は、以下に限定されないが、相変化メモリ（即ち、ＰＲＡＭ）、紫外線消去型メモリ、電気的消去可能ＲＯＭ（ＥＥＰＲＯＭ）、及び他のプログラム可能不揮発性半導体メモリタイプを含む。
【００１６】
本例は、本願明細書の原理の簡素な応用形態を示す。メモリデバイスのフラッシュメモリバンク（ｄ０、ｍ０）は、データの主記憶場所としての機能を果たす主フラッシュバンク（ｄ０）、及び主フラッシュバンク（ｄ０）に格納されたデータのコピーを重複して（redundantly：冗長的に）格納するミラーバンク（ｍ０）を含むことができる。従って、書き込み操作または消去操作は、主およびミラーバンク（ｄ０、ｍ０）のそれぞれが当該バンク（ｄ０、ｍ０）間のデータの一貫したミラーリングを維持するように更新されることを必要とする。フラッシュメモリバンクは一般に、書き込み又は消去操作が実行されている間に、外部の読み出し問い合わせ（クエリー）に対してアクセスできない。しかしながら、２つのフラッシュメモリバンク（ｄ０、ｍ０）が並行して書き込み操作または消去操作を絶対に受けないように書き込み操作又は消去操作を互い違いにすることにより、主データバンク（ｄ０）又はミラーデータバンク（ｍ０）の少なくとも１つが、バンク（ｄ０、ｍ０）に格納されたデータに対する外部の読み出し問い合わせに利用できる。本例において、ミラーフラッシュバンク（ｍ０）が読み出し問い合わせにサービスを提供しながら、主フラッシュバンク（ｄ０）に新しいデータが書き込まれていることが示される。逆に、ミラーフラッシュバンク（ｍ０）が書き込み操作又は消去操作を受けている間に、主フラッシュバンク（ｄ０）が外部の読み出し問い合わせにサービスを提供することができる。
【００１７】
特定の実施形態において、主フラッシュバンク（ｄ０）及びミラーフラッシュバンク（ｍ０）の双方が読み出し問い合わせにサービスを提供するために利用可能である場合、双方のフラッシュバンク（ｄ０、ｍ０）が当該問い合わせにサービスを提供することができる。代替の実施形態において、主フラッシュバンク（ｄ０）だけが、読み出し待ち時間の均一性を維持するために係る状況下で読み出し問い合わせにサービスを提供することができる。それにも関わらず、可能なすべての実施形態において、主およびミラーフラッシュバンク（ｄ０、ｍ０）に格納されたデータの最大の読み出し待ち時間は概して、２つのフラッシュバンク（ｄ０、ｍ０）のうちの（もしあれば）より遅い待ち時間に等しくなることができる。
【００１８】
さて、図１Ｂを参照すると、フラッシュバンク（ｄ０、ｍ０）における読み出し操作及び書き込み操作の例示的なタイミング（１５０）が示される。データのミラーリングを維持するために、主フラッシュバンク（ｄ０）に書き込まれるデータがミラーフラッシュバンク（ｍ０）にも書き込まれる必要があるので、完全な書き込みサイクル（１５５）は、最初に主フラッシュバンク（ｄ０）へ次いでミラーフラッシュバンク（ｍ０）へと重複データの互い違いの書き込みを含むことができる。かくして、図１Ａのメモリ装置（１００）に対する完全な書き込みサイクル（１５５）は、単一のフラッシュバンク（ｄ０、ｍ０）に対する書き込みサイクルが必要とする、完了するための時間量の２倍を必要とするであろう。
【００１９】
しかしながら、図１Ｂに示されるように、バンク（ｄ０、ｍ０）に格納されたデータは、書き込みサイクル（１５５）の全体にわたって常に読み出され得る。どのフラッシュバンク（ｄ０、ｍ０）が問い合わせ中の読み出しプロセスにデータを提供するかは、フラッシュバンク（ｄ０、ｍ０）のどれが書き込み操作を現在受けているかに依存するであろう。データの供給源が、問い合わせ中の読み出しプロセス（単数または複数）に無関係にすることができるとはいえ、フラッシュバンク（ｄ０、ｍ０）間の読み出し問い合わせのサービスを均衡させる限り、問い合わせ中のプロセス（単数または複数）に対して有効に不可視にすることができる。以下でより詳細に説明されるように、フラッシュバンク（ｄ０、ｍ０）が消去または書き込みサイクル（１５５）を受けているか否か、及び読み出し問い合わせが受け取られた消去または書き込みサイクル（１５５）のステージに依存して、データの適切な供給源へデータ読み出し問い合わせを送るために、この特徴の冗長なフラッシュメモリを組み込むメモリデバイスに、読み出しマルチプレクサが使用され得る。
【００２０】
さて、図２を参照すると、メモリ装置（２００）の別の例示的な実施形態が示される。上述した装置（１００、図１Ａ）と非常に類似して、本メモリ装置（２００）は、メモリバンク（ｄ０〜ｄ３、ｍ０〜ｍ３）を利用するフラッシュメモリデバイスに均一な読み出し待ち時間を可能にするように、データ記憶に冗長性を提供するためにデータミラーリングを利用する。
【００２１】
本例において、図１Ａ〜図１Ｂに記載されたミラーリングの原理は、一組の冗長なフラッシュバンクから多数の冗長なフラッシュバンク（ｄ０〜ｄ３、ｍ０〜ｍ３）に拡張される。複数の主フラッシュバンク（ｄ０〜ｄ３）が本例において存在し、主フラッシュバンク（ｄ０〜ｄ３）のそれぞれが、対応する主フラッシュバンク（ｄ０〜ｄ３）と同じデータを格納するように構成されたミラーフラッシュバンク（ｍ０〜ｍ３、それぞれ）と二つ一組にされる。前述したメモリ装置（１００、図１Ａ）に類似して、任意の主フラッシュバンク（ｄ２）に対する書き込み操作は、主フラッシュバンク（ｄ０〜ｄ３）及び対応するミラーフラッシュバンク（ｍ０〜ｍ３）の各組における少なくとも１つのフラッシュバンク（ｄ０〜ｄ３、ｍ０〜ｍ３）が任意の所与の時間において読み出しプロセスに利用可能であるように、その対応するミラーフラッシュバンク（ｍ２）に対する書き込み操作と互い違いにされる。従って、フラッシュバンク（ｄ０〜ｄ３、ｍ０〜ｍ３）に格納されたデータのすべては、１つ又は複数の書き込みプロセスがフラッシュバンク（ｄ０〜ｄ３、ｍ０〜ｍ３）で実行されているにも関わらず、任意の時間に外部の読み出し問い合わせに利用可能とすることができる。
【００２２】
特定の実施形態、特に複数のフラッシュバンク（ｄ０〜ｄ３、ｍ０〜ｍ３）が単一のデータワードを提供するために同時に読み出されるように構成された実施形態において、書き込みバッファがフラッシュバンク（ｄ０〜ｄ３、ｍ０〜ｍ３）と組み合わされ得る。書き込みバッファは、フラッシュバンク（ｄ０〜ｄ３、ｍ０〜ｍ３）に現在書き込まれている又は依然として書き込まれるべき書き込み操作に対するデータを格納することができる。このように、大部分の現在のデータは、外部読み出しプロセスに提供され得る。書き込みバッファは、本明細書で説明された任意の例示的な実施形態と共に使用されることができ、係る書き込みバッファの動作は、以下でより詳細に説明される。
【００２３】
本例は、４つの主フラッシュバンク（ｄ０〜ｄ３）及び４つの対応するミラーフラッシュバンク（ｍ０〜ｍ３）の組を示す。しかしながら、理解されるべきは、特定の応用形態に最も良く適合することができるように、本明細書で説明された原理に従って冗長なデータ記憶を生じさせるために、任意の適切な数のフラッシュバンク（ｄ０〜ｄ３、ｍ０〜ｍ３）が使用され得る。
【００２４】
さて、図３を参照すると、別の例示的なメモリ装置（３００）が示される。本例において、４つの主フラッシュバンク（ｄ０〜ｄ３）がデータの主記憶としての役割を果たす。先の例と同様に、本例におけるデータは、主フラッシュバンク（ｄ０〜ｄ３）の１つが書き込まれている又は消去されている場合でさえも、データの均一な読み出し待ち時間を提供するために重複して格納され得る。
【００２５】
しかしながら、先の例とは異なり、本メモリ装置（３００）は、各主フラッシュバンク（ｄ０〜ｄ３）に格納されたデータを対応するミラーフラッシュバンクに複製することによりデータの冗長性を提供しない。むしろ、本例は、主フラッシュバンク（ｄ０〜ｄ３）に格納されたデータのパリティデータを格納することができるパリティフラッシュバンク（ｐ）を組み込む。パリティフラッシュバンク（ｐ）に格納されたパリティデータは、主フラッシュバンク（ｄ０〜ｄ３）の任意の３つからの所与のアドレスにおいて読み出されたデータと連係して使用されて、残りの主フラッシュバンク（ｄ０〜ｄ３）で読み出し操作を実際に実行することなく、主フラッシュバンク（ｄ０〜ｄ３）の残りに格納されたデータを求めることができる。
【００２６】
例えば、図３に示されるように、要求されたデータを検索するために主フラッシュバンク（ｄ０〜ｄ３）のそれぞれの対応するアドレスに対して、読み出し操作が同時に且つ並行して実行されるように、主フラッシュバンク（ｄ０〜ｄ３）にわたって断片化データを分散させるために、データストライピングが使用され得る。要求されたデータの断片は、主フラッシュバンク（ｄ０〜ｄ３）のそれぞれから並行して受け取られ、完全な要求されたデータを問い合わせプロセスに提供するために組み立てられる。しかしながら、主フラッシュバンク（ｄ０〜ｄ３）の１つ（ｄ２）が書き込み操作を受けている場合、その主フラッシュバンク（ｄ２）は、書き込み操作中に読み出し操作を実行するために利用可能ではないであろう。しかしながら、主フラッシュバンク（ｄ０〜ｄ３）に格納された断片化データの読み出し待ち時間の均一性を維持するために、主フラッシュバンク（ｄ２）に主として格納された、要求されたデータの断片は、残りの主フラッシュバンク（ｄ０、ｄ２、ｄ３）からの検索されたデータの断片、及びパリティフラッシュバンク（ｐ）における対応アドレスからのパリティデータを用いて再構成され得る。
【００２７】
例えば、この再構成は、占領された主フラッシュバンク（ｄ２）に格納されたデータの断片を生成するために、アクセス可能なフラッシュバンク（ｄ０、ｄ２、ｄ３）から検索されたデータ部分に排他的論理和（ＥＸＯＲ）のビット演算を実行するように構成された論理ゲートを有する再構成モジュール（３０５）により実行され得る。次いで、再構成モジュール（３０５）の出力は、占領された主フラッシュバンク（ｄ２）の出力の代わりに使用されることができ、その結果、要求された完全なデータが外部読み出しプロセスに提供される。この代用は、以下でより詳細に説明されるように、読み出しマルチプレクサ（図示せず）により実行され得る。
【００２８】
本例において、完全なデータが外部読み出しプロセスに提供されるべきである時に、主フラッシュバンク（ｄ０〜ｄ３）の１つのみが、書き込み又は消去操作を受けることができる。代案として、複数のパリティフラッシュバンク（ｐ）が、主フラッシュバンク（ｄ０〜ｄ３）の全体にわたる並行した書き込み又は消去プロセスを可能にすることができる。
【００２９】
さて、図４を参照すると、図３の主フラッシュバンク（ｄ０〜ｄ３）及びパリティバンク（ｐ）における読み出し操作および書き込み操作の例示的なタイミング（４００）が示される。本例において、データが一度にフラッシュバンク（ｄ０〜ｄ３）の１つに対してのみ書き込まれる又は消去されることができるので、主およびパリティフラッシュバンク（ｄ０〜ｄ３、ｐ）のそれぞれに対する書き込み操作が互い違いにされる。かくして、主フラッシュバンク（ｄ０〜ｄ３）に格納されたデータの何れかは、フラッシュバンクの１つが書き込み又は消去操作を受けているにも関わらず、いつでも外部読み出しプロセスに利用可能とすることができる。これは、外部読み出しプロセスにより問い合わせされた任意のストライピングされたデータが、図示された５つのフラッシュバンク（ｄ０〜ｄ３、ｐ）の任意の４つから復元され得るからである。図４に示されるように、一時的にアクセスできない主フラッシュバンク（ｄ１）に格納された断片化データは、残りのアクセス可能な主フラッシュバンク（ｄ０、ｄ２、ｄ３）及びアクセス可能なパリティフラッシュバンク（ｐ）に格納された対応するデータから再構成され得る。
【００３０】
さて、図５を参照すると、別の例示的なメモリ装置（５００）が示される。図３〜図４の例と同様に、本例は、複数の主フラッシュバンク（ｄ０〜ｄ３）にわたる断片化データのストライピング分散を利用する。主フラッシュバンク（ｄ０〜ｄ３）と連係して単一のパリティフラッシュバンク（ｐ）を使用する先の例とは異なり、本例は、データの冗長性を実現するために、主フラッシュバンク（ｄ０〜ｄ３）と連係して２つのパリティフラッシュバンク（ｐ０、ｐ１）を利用する。
【００３１】
第１のパリティフラッシュバンク（ｐ０）は、第１の２つの主フラッシュバンク（ｄ０、ｄ１）の断片化データに対応するパリティデータを格納し、第２のパリティフラッシュバンク（ｐ１）は、残りの２つの主フラッシュバンク（ｄ２、ｄ３）のストライピングされたデータに対応するパリティデータを格納する。第１及び第２の再構成モジュール（５０５、５１０）はそれぞれ、第１のパリティフラッシュバンク（ｐ０）及び第２のパリティフラッシュバンク（ｐ１）から主フラッシュバンクデータを再構成するように構成される。複数のパリティフラッシュバンク（ｐ０、ｐ１）を利用することにより、フラッシュメモリバンク（ｄ０〜ｄ３、ｐ０、ｐ１）の書き込み処理能力は、第１のグループのフラッシュバンク（ｄ０、ｄ１、ｐ０）と第２のグループのフラッシュバンク（ｄ２、ｄ３、ｐ１）との間で書き込み操作または消去操作がそれぞれ互い違いにされることだけを必要とするという事実に起因して、増大されることができる。この特性により、グループのそれぞれが、そのフラッシュバンク（ｄ０〜ｄ３、ｐ０、ｐ１）の１つにおいて同時に起こる書き込み又は消去プロセスに対処することを可能にすると同時に、依然として主フラッシュバンク（ｄ０〜ｄ３）に格納されたデータの全てが外部読み出しプロセスに利用可能にされる。
【００３２】
本例において、第１のグループの主フラッシュバンク（ｄ１）が、書き込み操作を受けており、並行して第２のグループの主フラッシュバンク（ｄ２）も書き込み操作を受けていることが示される。外部読み出しプロセスに応答して、再構成モジュール（５０５、５１０）は、パリティフラッシュバンク（ｐ０、ｐ１、それぞれ）に格納されたパリティデータを、アクセス可能な主フラッシュバンク（ｄ０、ｄ３、それぞれ）からのデータと共に使用して、アクセスできないフラッシュバンク（ｄ１、ｄ２）に格納されたデータを復元し、そのデータを、アクセス可能なフラッシュバンク（ｄ１、ｄ２）からのデータと共に外部読み出しプロセスに提供する。
【００３３】
さて、図６を参照すると、別の例示的なメモリ装置（６００）が示される。図５の例と同様に、本例は、２つのパリティフラッシュバンク（ｐ０、ｐ１）と共に、主フラッシュバンク（ｄ０〜ｄ３）にわたるデータストライピング分散を通じて、主フラッシュバンク（ｄ０〜ｄ３）に格納されたデータの冗長性を実現する。
【００３４】
主フラッシュバンク（ｄ０〜ｄ３）の２つの独立したグループと連係して２つのパリティフラッシュバンク（ｐ０、ｐ１）を使用する先の例示的なメモリ装置（５００、図５）とは異なり、本例のパリティフラッシュバンク（ｐ０、ｐ１）は、全ての主フラッシュバンク（ｄ０〜ｄ３）の重複したパリティデータを格納する。言い換えれば、パリティフラッシュバンク（ｐ０、ｐ１）はミラーリングを使用し、そのためパリティフラッシュバンク（ｐ０、ｐ１）の１つが再構成モジュール（５０５）にパリティデータを提供するために常に利用可能であるようにされる。
【００３５】
さて、図７を参照すると、別の例示的なメモリ装置（７００）が示される。本例において、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）モジュール（７０５）として具現化された書き込みバッファが、主フラッシュメモリバンク（ｄ０〜ｄ７）に格納されたデータの冗長性を実現するために提供される。ＤＲＡＭモジュール（７０５）は、書き込み又は消去操作に起因してアクセスできない任意のフラッシュメモリバンク（ｄ０〜ｄ７）により格納されたデータがＤＲＡＭモジュール（７０５）により提供され得るように、主フラッシュメモリバンク（ｄ０〜ｄ７）の何れか又は全てに格納されたデータをミラーリングするように構成され得る。他の実施形態において、主フラッシュメモリバンク（ｄ０〜ｄ７）は、先の実施形態に関して上述されたように、フラッシュメモリバンク（ｄ０〜ｄ７）のパリティデータを格納するように構成されているＤＲＡＭモジュール（７０５）を用いて、ストライピングされたデータを格納するように構成され得る。更に又は代案として、１つ又は複数の書き込みバッファ（例えば、ＤＲＡＭモジュール（７０５））が、主フラッシュメモリバンク（ｄ０〜ｄ７）に対する互い違いの書き込み操作で書き込まれるべきデータを格納する働きをすることができる。
【００３６】
さて、図８を参照すると、均一な読み出し待ち時間を有する例示的なメモリシステム（８００）のブロック図が示される。例示的なメモリシステム（８００）は、本明細書で説明された原理の特定の応用形態に適合することができるように、例えば、デュアルインラインメモリモジュール（ＤＩＭＭ）で、又は任意の他のプロトコル及びパッケージングに従って実現され得る。
【００３７】
例示的なデータ記憶システム（８００）は、図３において前述されたものと類似した断片化データストライピング／パリティ冗長性構成で構成された複数のＮＯＲフラッシュメモリバンク（ｄ０〜ｄ７、ｐ）を含む。代案として、本明細書で説明されたような均一な読み出し待ち時間のためのデータ冗長性の原理と一致する、任意の他の適切なフラッシュメモリバンク（ｄ０〜ｄ７、ｐ）の構成が使用されてもよい。
【００３８】
フラッシュメモリバンクのそれぞれは、管理モジュール（８０５）に通信可能に結合されることができ、その管理モジュール（８０５）は、読み出しマルチプレクサ（８１０）、書き込みバッファ（８１５）、パリティ生成モジュール（８２０）、再構成モジュール（８２５）、及び制御回路（８３０）を含む。
【００３９】
システム（８００）は、アドレスポート（８３５）、制御ポート（８４０）、及びデータポート（８４５）として機能する入力／出力（Ｉ／Ｏ）ピンを介して外部プロセスと相互作用することができる。特定の実施形態において、マルチビットアドレス及びデータポート（８３５、８４５）は、並列データポートとすることができる。代案として、アドレス及びデータポート（８３５、８４５）は、データをシリアルに伝送することができる。制御回路（８３０）は、システム（８００）の他の構成要素の機能およびアクティビティを連係して働かせるマイクロコントローラ又は他のタイプのプロセッサ又は処理要素を含むことができる。
【００４０】
外部プロセスは、アドレスポート（８３５）におけるアドレスを提供し、制御ポート（８４０）における制御ビットを１に設定し、データポート（８４５）における書き込まれるべきデータを提供することにより、メモリシステム（８００）の特定のアドレスにデータを書き込むことができる。次のクロックサイクルにおいて、管理モジュール（８０５）の制御回路は、制御ポート（８４０）における制御ビットが１に設定されているかを判定し、アドレスポートにおけるアドレスを制御回路（８３０）のレジスタに格納し、一時的な書き込みバッファ（８１５）にデータを書き込むことができる。
【００４１】
一時的な書き込みバッファ（８１５）は、フラッシュバンク（ｄ０〜ｄ７、ｐ）が均一な読み出し待ち時間を維持するために互い違いの書き込みを必要とするかもしれないので、同期動作で役に立つことができる。書き込みバッファ（８１５）は、ＤＲＡＭ、又はデータが外部プロセスから同期して受け取られ且つＤＩＭＭプロトコルに従うことを可能にする別のタイプの同期メモリを含むことができる。
【００４２】
次いで、制御回路（８３０）は、書き込みバッファ（８１５）のデータを断片にパースし、データのアドレス及び特定の応用形態の断片化仕様に従って各断片をフラッシュバンク（ｄ０〜ｄ７）の１つに割り当てることにより、互い違いの書き込み要件に従って、一時的な書き込みバッファ（８１５）に格納されたデータをフラッシュバンク（ｄ０〜ｄ７、ｐ）に書き込むことができる。パリティ生成モジュール（８２０）が、主フラッシュバンク（ｄ０〜ｄ７）に新たに書き込まれたデータに対応する新たなパリティデータでパリティフラッシュバンク（ｐ）を更新することができる。
【００４３】
同様に、外部プロセスは、制御ポート（８４０）における制御ビットを０に設定して、問い合わせされているデータの、アドレスポート（８３５）におけるアドレスを管理モジュール（８０５）に提供することによりデータを読み出すことができる。管理モジュール（８０５）の制御回路（８３０）は、アドレスを受け取り、読み出しが外部プロセスから要求されていることを制御ビットから判定することができる。次いで、制御回路（８３０）は、外部プロセスにより要求されたアドレスにあるデータの断片を格納するフラッシュメモリバンク（ｄ０〜ｄ７）の部分に問い合わせを行うことができる。制御回路（８３０）が、外部プロセスにより要求されたアドレスが現在書き込まれているか又は書き込まれるように予定されていることを判定する場合、制御回路（８３０）は書き込みバッファ（８１５）に問い合わせを行い、要求されたデータを書き込みバッファ（８１５）から直接的に外部プロセスに提供することができる。しかしながら、データが書き込みバッファ（８１５）に存在しない場合、互い違いの書き込み又は消去プロセスがデータをフラッシュメモリバンク（ｄ０〜ｄ７、ｐ）に書き込むために発生しており、それにも関わらず、制御回路（８３０）が再構成モジュール（８２５）を使用して、アクセス可能な主フラッシュバンク（ｄ０〜ｄ７）及びパリティフラッシュバンク（ｐ）からのデータを用いて要求されたデータを再構成することができる。また、制御回路（８３０）は、アクセスできないフラッシュバンク（ｄ０〜ｄ７）の出力の代わりに再構成モジュール（８２５）の出力を、読み出しマルチプレクサ（８１０）が用いるように、読み出しマルチプレクサ（８１０）に制御信号を提供することもできる。読み出しマルチプレクサ（８１０）は、当該技術で知られた多重化原理と調和し、このタスクを実行するために複数の論理ゲートを利用することができる。
【００４４】
例示的な方法
さて、図９Ａを参照すると、メモリバンクのアレイにおいて均一な読み出し待ち時間を維持する例示的な方法（９００）の流れ図が示される。例えば、方法（９００）は、図８に関連して上述されたようなメモリシステム（８００、図８）において、管理モジュール（８０５）の制御下で行われることができ、この場合、データの少なくとも１つの主記憶場所は、書き込み操作又は消去操作を実行するために、読み出し操作よりも多くの時間を必要とする。
【００４５】
方法は、データの問い合わせを受け取ること（ステップ９１０）を含む。データの問い合わせは、外部プロセスから受け取られ得る。次いで、要求されたデータの少なくとも１つの主記憶場所が現在書き込み操作または消去操作を受けているか否かの評価が行われ得る（判断９１５）。そうである場合、要求されたデータの少なくとも一部が主記憶場所の代わりに冗長な記憶領域から読み出される（ステップ９３０）。問い合わせにおけるデータの主記憶場所が現在書き込み操作または消去操作を受けていない場合には、データが主記憶場所から読み出される（ステップ９２５）。最後に、データが問い合わせプロセスに提供される（ステップ９３５）。
【００４６】
さて、図９Ｂを参照すると、メモリシステムからデータを読み出す例示的な方法（９５０）の流れ図が示される。また、この方法（９５０）は、例えば図８に関連して上述されたようなメモリシステム（８００、図８）において、管理モジュール（８０５）の制御下で、メモリシステム（８００、図８）の実質的に均一な読み出し待ち時間を維持するために行われることができる。
【００４７】
方法（９５０）は、メモリシステムのアドレスポートにおける、問い合わせされているデータのアドレスを提供すること（９５５）を含むことができる。次いで、供給されたアドレスに対応する要求されたデータが書き込みバッファに現在格納されているか否か（例えば、要求されたデータが、読み出しの時間においてメモリシステムのその対応するメモリバンクに書き込まれているプロセスにある）が判定され得る（判断９６０）。そうである場合、要求されたデータが書き込みバッファからただ単に読み出され（ステップ９６５）、要求しているプロセスに提供される（ステップ９９０）。
【００４８】
外部プロセスにより提供されるアドレスに対応するデータが書き込みバッファにあると判定されない場合（判断９６０）、書き込み又は消去プロセスが要求されたデータを格納する少なくとも１つのメモリバンクで実行されているか否かの判定が行われ得る（判断９７０）。書き込み又は消去プロセスが要求されたデータを格納する少なくとも１つのメモリバンクで実行されていない場合、メモリの主記憶場所から直接的に読み出され（ステップ９８５）、要求するプロセスに提供される（ステップ９９０）べきデータについて、要求されたデータを格納するメモリバンクの全ては利用可能である。
【００４９】
書き込み又は消去プロセスが要求されたデータを格納する少なくとも１つのバンクで実行されている場合、データの断片が、あらゆる利用可能なメモリバンクから読み出され（９７５）、残りのデータの断片（単数または複数）が他の所に格納されたパリティデータを用いて再構成され得る（ステップ９８０）。次いで、再構成後、データは、要求されたデータを主メモリバンクから直接的に読み出した後に要求されたデータを提供する読み出し待ち時間と実質的に類似した読み出し待ち時間に従って、要求しているプロセスに提供され得る（ステップ９９０）。
【００５０】
前述の説明は、開示された原理の実施形態および例を例示および説明するためだけに提供されている。この説明は、網羅的に又はこれらの原理を開示された任意の全く同一の形態に制限することは意図されていない。上記の教示に鑑みて、多くの変更および変形が可能である。
【図１Ａ】
0005654480.tif 000002
【図１Ｂ】
0005654480.tif 000003
【図２】
0005654480.tif 000004
【図３】
0005654480.tif 000005
【図４】
0005654480.tif 000006
【図５】
0005654480.tif 000007
【図６】
0005654480.tif 000008
【図７】
0005654480.tif 000009
【図８】
0005654480.tif 000010
【図９Ａ】
0005654480.tif 000011
【図９Ｂ】
0005654480.tif 000012