(58)【調査した分野】(Int.Cl.,DB名)
外部プロセスから同期して書き込みデータを受け取り、前記書き込みデータを格納すると同時に、互い違いの書き込みプロセスが前記書き込みデータを前記複数のメモリバンクに書き込むように構成された書き込みバッファを更に含む、請求項8に記載のデータ記憶システム。
【図面の簡単な説明】
【0004】
【
図1A】本明細書で説明される原理の例示的な一実施形態による、均一な読み出し待ち時間を有する例示的なメモリ装置の図である。
【
図1B】本明細書で説明される原理の例示的な一実施形態による、
図1Aの例示的なメモリ装置で実行される読み出し操作および書き込み操作の例示的なタイミングの図である。
【
図2】本明細書で説明される原理の例示的な一実施形態による、均一な読み出し待ち時間を有する例示的なメモリ装置の図である。
【
図3】本明細書で説明される原理の例示的な一実施形態による、均一な読み出し待ち時間を有する例示的なメモリ装置の図である。
【
図4】本明細書で説明される原理の例示的な一実施形態による、
図3の例示的なメモリ装置で実行される読み出し操作および書き込み操作の例示的なタイミングの図である。
【
図5】本明細書で説明される原理の例示的な一実施形態による、均一な読み出し待ち時間を有する例示的なメモリ装置の図である。
【
図6】本明細書で説明される原理の例示的な一実施形態による、均一な読み出し待ち時間を有する例示的なメモリ装置の図である。
【
図7】本明細書で説明される原理の例示的な一実施形態による、均一な読み出し待ち時間を有する例示的なメモリ装置の図である。
【
図8】本明細書で説明される原理の例示的な一実施形態による、均一な読み出し待ち時間を有する例示的なデータ記憶システムのブロック図である。
【
図9A】本明細書で説明される原理の例示的な一実施形態に従って、メモリバンクのアレイにおいて均一な読み出し待ち時間を維持する例示的な方法の流れ図である。
【
図9B】本明細書で説明される原理の例示的な一実施形態に従って、メモリシステムからデータを読み出す例示的な方法の流れ図である。
【0005】
図面の全体にわたって、同一の参照番号は、類似しているが必ずしも全く同一とは限らない要素を示す。
【0006】
詳細な説明
上述したように、以下に限定されないが、フラッシュメモリ及び他の不揮発性半導体メモリを含むデジタル記憶装置の幾つかのタイプにおいて、データをメモリに書き込むために必要な時間量は、データをメモリから読み出すために必要な時間量よりも大幅に長い可能性がある。更に、消去操作は、書き込み操作または読み出し操作に比べて、完了するためのより長い時間量を必要とするかもしれない。
【0007】
これらタイプのメモリの大部分に関して、読み出し操作は、同じメモリデバイスでの書き込み操作または消去操作と同時に行われることができず、それにより当該デバイスで現在実行されている任意の書き込み操作または消去操作が完了するまで、読み出し操作が遅延する必要がある。従って、係るメモリデバイスにおける最悪の場合の読み出し待ち時間は、当該デバイスでの消去操作により必要とされる時間によって左右されるかもしれない。
【0008】
しかしながら、場合によっては、メモリデバイスが書き込み操作または消去操作を受けているか否かに関わらず、メモリデバイスに格納されたデータの読み出し待ち時間において均一性を維持することが望ましいかもしれない。更に、係るメモリデバイスにおいて読み出し待ち時間を最小限にすることも望ましいかもしれない。
【0009】
上記および他の目標に鑑みて、本明細書は、実質的に均一な読み出し待ち時間を有するデジタル記憶の装置、システム及び方法を開示する。特に、本明細書は、主記憶場所における書き込み操作または消去操作中にそうでなければアクセスできないデータを重複して(冗長的に)格納するように構成された複数のメモリバンクを利用する装置、システム及び方法を開示する。主記憶場所が書き込み操作または消去操作を受けている際のデータの問い合わせに応じて、データが冗長な記憶領域から読み出される。
【0010】
本明細書および添付の特許請求の範囲で使用される場合、用語「バンク」はアドレス指定可能な物理的なメモリモジュールを意味する。一例として、複数のバンクが単一のメモリシステム又はデバイスに組み込まれ、同時(並列)にアクセスされ得る。
【0011】
本明細書および添付の特許請求の範囲で使用される場合、用語「読み出し待ち時間」は、メモリバンクのアドレスが問い合わされた時と、そのアドレスに格納されたデータが当該問い合わせプロセスに提供された時との間の経過時間量を意味する。
【0012】
本明細書および添付の特許請求の範囲で使用される場合、用語「メモリシステム」は、データ記憶およびアクセスの任意のシステムを広く意味し、この場合、データは1つ又は複数の外部プロセスにより、システムに対して読み書きされ得る。メモリシステムは、以下に限定されないが、プロセッサメモリ、半導体ディスク等を含む。
【0013】
以下の説明において、説明の目的で、多数の特定の細部が、本システム及び方法の完全な理解を提供するために記載される。しかしながら、当業者には明らかなように、本システム及び方法は、これら特定の細部なしに実施され得る。明細書における「実施形態」、「例」又は類似した用語への参照は、当該実施形態または例に関連して説明された特定の特徴、構造または特性が少なくともその1つの実施形態に含まれるが、必ずしも他の実施形態に含まれないことを意味する。明細書の様々な場所における語句「一実施形態において」又は類似した語句の様々なたとえは、必ずしも同じ実施形態を全て参照するわけではない。
【0014】
さて、本明細書で開示された原理が、例示的なシステム及び例示的な方法に関して説明される。
【0015】
例示的なシステム
さて、
図1Aを参照すると、例示的なメモリ装置(100)が示される。説明のために、本明細書のシステム及び方法は、フラッシュメモリに関して主として説明される。しかしながら、理解されるように、本明細書のシステム及び方法は、任意のタイプのデジタル記憶装置で利用されることができ且つ利用されることが意図されており、この場合、少なくとも1つの書き込み操作または消去操作は、読み出し操作に比べて完了するためにかなり長い時間量を必要とする。本システム及び方法が適用され得るデジタル記憶装置の他のタイプの例は、以下に限定されないが、相変化メモリ(即ち、PRAM)、紫外線消去型メモリ、電気的消去可能ROM(EEPROM)、及び他のプログラム可能不揮発性半導体メモリタイプを含む。
【0016】
本例は、本願明細書の原理の簡素な応用形態を示す。メモリデバイスのフラッシュメモリバンク(d0、m0)は、データの主記憶場所としての機能を果たす主フラッシュバンク(d0)、及び主フラッシュバンク(d0)に格納されたデータのコピーを重複して(redundantly:冗長的に)格納するミラーバンク(m0)を含むことができる。従って、書き込み操作または消去操作は、主およびミラーバンク(d0、m0)のそれぞれが当該バンク(d0、m0)間のデータの一貫したミラーリングを維持するように更新されることを必要とする。フラッシュメモリバンクは一般に、書き込み又は消去操作が実行されている間に、外部の読み出し問い合わせ(クエリー)に対してアクセスできない。しかしながら、2つのフラッシュメモリバンク(d0、m0)が並行して書き込み操作または消去操作を絶対に受けないように書き込み操作又は消去操作を互い違いにすることにより、主データバンク(d0)又はミラーデータバンク(m0)の少なくとも1つが、バンク(d0、m0)に格納されたデータに対する外部の読み出し問い合わせに利用できる。本例において、ミラーフラッシュバンク(m0)が読み出し問い合わせにサービスを提供しながら、主フラッシュバンク(d0)に新しいデータが書き込まれていることが示される。逆に、ミラーフラッシュバンク(m0)が書き込み操作又は消去操作を受けている間に、主フラッシュバンク(d0)が外部の読み出し問い合わせにサービスを提供することができる。
【0017】
特定の実施形態において、主フラッシュバンク(d0)及びミラーフラッシュバンク(m0)の双方が読み出し問い合わせにサービスを提供するために利用可能である場合、双方のフラッシュバンク(d0、m0)が当該問い合わせにサービスを提供することができる。代替の実施形態において、主フラッシュバンク(d0)だけが、読み出し待ち時間の均一性を維持するために係る状況下で読み出し問い合わせにサービスを提供することができる。それにも関わらず、可能なすべての実施形態において、主およびミラーフラッシュバンク(d0、m0)に格納されたデータの最大の読み出し待ち時間は概して、2つのフラッシュバンク(d0、m0)のうちの(もしあれば)より遅い待ち時間に等しくなることができる。
【0018】
さて、
図1Bを参照すると、フラッシュバンク(d0、m0)における読み出し操作及び書き込み操作の例示的なタイミング(150)が示される。データのミラーリングを維持するために、主フラッシュバンク(d0)に書き込まれるデータがミラーフラッシュバンク(m0)にも書き込まれる必要があるので、完全な書き込みサイクル(155)は、最初に主フラッシュバンク(d0)へ次いでミラーフラッシュバンク(m0)へと重複データの互い違いの書き込みを含むことができる。かくして、
図1Aのメモリ装置(100)に対する完全な書き込みサイクル(155)は、単一のフラッシュバンク(d0、m0)に対する書き込みサイクルが必要とする、完了するための時間量の2倍を必要とするであろう。
【0019】
しかしながら、
図1Bに示されるように、バンク(d0、m0)に格納されたデータは、書き込みサイクル(155)の全体にわたって常に読み出され得る。どのフラッシュバンク(d0、m0)が問い合わせ中の読み出しプロセスにデータを提供するかは、フラッシュバンク(d0、m0)のどれが書き込み操作を現在受けているかに依存するであろう。データの供給源が、問い合わせ中の読み出しプロセス(単数または複数)に無関係にすることができるとはいえ、フラッシュバンク(d0、m0)間の読み出し問い合わせのサービスを均衡させる限り、問い合わせ中のプロセス(単数または複数)に対して有効に不可視にすることができる。以下でより詳細に説明されるように、フラッシュバンク(d0、m0)が消去または書き込みサイクル(155)を受けているか否か、及び読み出し問い合わせが受け取られた消去または書き込みサイクル(155)のステージに依存して、データの適切な供給源へデータ読み出し問い合わせを送るために、この特徴の冗長なフラッシュメモリを組み込むメモリデバイスに、読み出しマルチプレクサが使用され得る。
【0020】
さて、
図2を参照すると、メモリ装置(200)の別の例示的な実施形態が示される。上述した装置(100、
図1A)と非常に類似して、本メモリ装置(200)は、メモリバンク(d0〜d3、m0〜m3)を利用するフラッシュメモリデバイスに均一な読み出し待ち時間を可能にするように、データ記憶に冗長性を提供するためにデータミラーリングを利用する。
【0021】
本例において、
図1A〜
図1Bに記載されたミラーリングの原理は、一組の冗長なフラッシュバンクから多数の冗長なフラッシュバンク(d0〜d3、m0〜m3)に拡張される。複数の主フラッシュバンク(d0〜d3)が本例において存在し、主フラッシュバンク(d0〜d3)のそれぞれが、対応する主フラッシュバンク(d0〜d3)と同じデータを格納するように構成されたミラーフラッシュバンク(m0〜m3、それぞれ)と二つ一組にされる。前述したメモリ装置(100、
図1A)に類似して、任意の主フラッシュバンク(d2)に対する書き込み操作は、主フラッシュバンク(d0〜d3)及び対応するミラーフラッシュバンク(m0〜m3)の各組における少なくとも1つのフラッシュバンク(d0〜d3、m0〜m3)が任意の所与の時間において読み出しプロセスに利用可能であるように、その対応するミラーフラッシュバンク(m2)に対する書き込み操作と互い違いにされる。従って、フラッシュバンク(d0〜d3、m0〜m3)に格納されたデータのすべては、1つ又は複数の書き込みプロセスがフラッシュバンク(d0〜d3、m0〜m3)で実行されているにも関わらず、任意の時間に外部の読み出し問い合わせに利用可能とすることができる。
【0022】
特定の実施形態、特に複数のフラッシュバンク(d0〜d3、m0〜m3)が単一のデータワードを提供するために同時に読み出されるように構成された実施形態において、書き込みバッファがフラッシュバンク(d0〜d3、m0〜m3)と組み合わされ得る。書き込みバッファは、フラッシュバンク(d0〜d3、m0〜m3)に現在書き込まれている又は依然として書き込まれるべき書き込み操作に対するデータを格納することができる。このように、大部分の現在のデータは、外部読み出しプロセスに提供され得る。書き込みバッファは、本明細書で説明された任意の例示的な実施形態と共に使用されることができ、係る書き込みバッファの動作は、以下でより詳細に説明される。
【0023】
本例は、4つの主フラッシュバンク(d0〜d3)及び4つの対応するミラーフラッシュバンク(m0〜m3)の組を示す。しかしながら、理解されるべきは、特定の応用形態に最も良く適合することができるように、本明細書で説明された原理に従って冗長なデータ記憶を生じさせるために、任意の適切な数のフラッシュバンク(d0〜d3、m0〜m3)が使用され得る。
【0024】
さて、
図3を参照すると、別の例示的なメモリ装置(300)が示される。本例において、4つの主フラッシュバンク(d0〜d3)がデータの主記憶としての役割を果たす。先の例と同様に、本例におけるデータは、主フラッシュバンク(d0〜d3)の1つが書き込まれている又は消去されている場合でさえも、データの均一な読み出し待ち時間を提供するために重複して格納され得る。
【0025】
しかしながら、先の例とは異なり、本メモリ装置(300)は、各主フラッシュバンク(d0〜d3)に格納されたデータを対応するミラーフラッシュバンクに複製することによりデータの冗長性を提供しない。むしろ、本例は、主フラッシュバンク(d0〜d3)に格納されたデータのパリティデータを格納することができるパリティフラッシュバンク(p)を組み込む。パリティフラッシュバンク(p)に格納されたパリティデータは、主フラッシュバンク(d0〜d3)の任意の3つからの所与のアドレスにおいて読み出されたデータと連係して使用されて、残りの主フラッシュバンク(d0〜d3)で読み出し操作を実際に実行することなく、主フラッシュバンク(d0〜d3)の残りに格納されたデータを求めることができる。
【0026】
例えば、
図3に示されるように、要求されたデータを検索するために主フラッシュバンク(d0〜d3)のそれぞれの対応するアドレスに対して、読み出し操作が同時に且つ並行して実行されるように、主フラッシュバンク(d0〜d3)にわたって断片化データを分散させるために、データストライピングが使用され得る。要求されたデータの断片は、主フラッシュバンク(d0〜d3)のそれぞれから並行して受け取られ、完全な要求されたデータを問い合わせプロセスに提供するために組み立てられる。しかしながら、主フラッシュバンク(d0〜d3)の1つ(d2)が書き込み操作を受けている場合、その主フラッシュバンク(d2)は、書き込み操作中に読み出し操作を実行するために利用可能ではないであろう。しかしながら、主フラッシュバンク(d0〜d3)に格納された断片化データの読み出し待ち時間の均一性を維持するために、主フラッシュバンク(d2)に主として格納された、要求されたデータの断片は、残りの主フラッシュバンク(d0、d2、d3)からの検索されたデータの断片、及びパリティフラッシュバンク(p)における対応アドレスからのパリティデータを用いて再構成され得る。
【0027】
例えば、この再構成は、占領された主フラッシュバンク(d2)に格納されたデータの断片を生成するために、アクセス可能なフラッシュバンク(d0、d2、d3)から検索されたデータ部分に排他的論理和(EXOR)のビット演算を実行するように構成された論理ゲートを有する再構成モジュール(305)により実行され得る。次いで、再構成モジュール(305)の出力は、占領された主フラッシュバンク(d2)の出力の代わりに使用されることができ、その結果、要求された完全なデータが外部読み出しプロセスに提供される。この代用は、以下でより詳細に説明されるように、読み出しマルチプレクサ(図示せず)により実行され得る。
【0028】
本例において、完全なデータが外部読み出しプロセスに提供されるべきである時に、主フラッシュバンク(d0〜d3)の1つのみが、書き込み又は消去操作を受けることができる。代案として、複数のパリティフラッシュバンク(p)が、主フラッシュバンク(d0〜d3)の全体にわたる並行した書き込み又は消去プロセスを可能にすることができる。
【0029】
さて、
図4を参照すると、
図3の主フラッシュバンク(d0〜d3)及びパリティバンク(p)における読み出し操作および書き込み操作の例示的なタイミング(400)が示される。本例において、データが一度にフラッシュバンク(d0〜d3)の1つに対してのみ書き込まれる又は消去されることができるので、主およびパリティフラッシュバンク(d0〜d3、p)のそれぞれに対する書き込み操作が互い違いにされる。かくして、主フラッシュバンク(d0〜d3)に格納されたデータの何れかは、フラッシュバンクの1つが書き込み又は消去操作を受けているにも関わらず、いつでも外部読み出しプロセスに利用可能とすることができる。これは、外部読み出しプロセスにより問い合わせされた任意のストライピングされたデータが、図示された5つのフラッシュバンク(d0〜d3、p)の任意の4つから復元され得るからである。
図4に示されるように、一時的にアクセスできない主フラッシュバンク(d1)に格納された断片化データは、残りのアクセス可能な主フラッシュバンク(d0、d2、d3)及びアクセス可能なパリティフラッシュバンク(p)に格納された対応するデータから再構成され得る。
【0030】
さて、
図5を参照すると、別の例示的なメモリ装置(500)が示される。
図3〜
図4の例と同様に、本例は、複数の主フラッシュバンク(d0〜d3)にわたる断片化データのストライピング分散を利用する。主フラッシュバンク(d0〜d3)と連係して単一のパリティフラッシュバンク(p)を使用する先の例とは異なり、本例は、データの冗長性を実現するために、主フラッシュバンク(d0〜d3)と連係して2つのパリティフラッシュバンク(p0、p1)を利用する。
【0031】
第1のパリティフラッシュバンク(p0)は、第1の2つの主フラッシュバンク(d0、d1)の断片化データに対応するパリティデータを格納し、第2のパリティフラッシュバンク(p1)は、残りの2つの主フラッシュバンク(d2、d3)のストライピングされたデータに対応するパリティデータを格納する。第1及び第2の再構成モジュール(505、510)はそれぞれ、第1のパリティフラッシュバンク(p0)及び第2のパリティフラッシュバンク(p1)から主フラッシュバンクデータを再構成するように構成される。複数のパリティフラッシュバンク(p0、p1)を利用することにより、フラッシュメモリバンク(d0〜d3、p0、p1)の書き込み処理能力は、第1のグループのフラッシュバンク(d0、d1、p0)と第2のグループのフラッシュバンク(d2、d3、p1)との間で書き込み操作または消去操作がそれぞれ互い違いにされることだけを必要とするという事実に起因して、増大されることができる。この特性により、グループのそれぞれが、そのフラッシュバンク(d0〜d3、p0、p1)の1つにおいて同時に起こる書き込み又は消去プロセスに対処することを可能にすると同時に、依然として主フラッシュバンク(d0〜d3)に格納されたデータの全てが外部読み出しプロセスに利用可能にされる。
【0032】
本例において、第1のグループの主フラッシュバンク(d1)が、書き込み操作を受けており、並行して第2のグループの主フラッシュバンク(d2)も書き込み操作を受けていることが示される。外部読み出しプロセスに応答して、再構成モジュール(505、510)は、パリティフラッシュバンク(p0、p1、それぞれ)に格納されたパリティデータを、アクセス可能な主フラッシュバンク(d0、d3、それぞれ)からのデータと共に使用して、アクセスできないフラッシュバンク(d1、d2)に格納されたデータを復元し、そのデータを、アクセス可能なフラッシュバンク(d1、d2)からのデータと共に外部読み出しプロセスに提供する。
【0033】
さて、
図6を参照すると、別の例示的なメモリ装置(600)が示される。
図5の例と同様に、本例は、2つのパリティフラッシュバンク(p0、p1)と共に、主フラッシュバンク(d0〜d3)にわたるデータストライピング分散を通じて、主フラッシュバンク(d0〜d3)に格納されたデータの冗長性を実現する。
【0034】
主フラッシュバンク(d0〜d3)の2つの独立したグループと連係して2つのパリティフラッシュバンク(p0、p1)を使用する先の例示的なメモリ装置(500、
図5)とは異なり、本例のパリティフラッシュバンク(p0、p1)は、全ての主フラッシュバンク(d0〜d3)の重複したパリティデータを格納する。言い換えれば、パリティフラッシュバンク(p0、p1)はミラーリングを使用し、そのためパリティフラッシュバンク(p0、p1)の1つが再構成モジュール(505)にパリティデータを提供するために常に利用可能であるようにされる。
【0035】
さて、
図7を参照すると、別の例示的なメモリ装置(700)が示される。本例において、ダイナミックランダムアクセスメモリ(DRAM)モジュール(705)として具現化された書き込みバッファが、主フラッシュメモリバンク(d0〜d7)に格納されたデータの冗長性を実現するために提供される。DRAMモジュール(705)は、書き込み又は消去操作に起因してアクセスできない任意のフラッシュメモリバンク(d0〜d7)により格納されたデータがDRAMモジュール(705)により提供され得るように、主フラッシュメモリバンク(d0〜d7)の何れか又は全てに格納されたデータをミラーリングするように構成され得る。他の実施形態において、主フラッシュメモリバンク(d0〜d7)は、先の実施形態に関して上述されたように、フラッシュメモリバンク(d0〜d7)のパリティデータを格納するように構成されているDRAMモジュール(705)を用いて、ストライピングされたデータを格納するように構成され得る。更に又は代案として、1つ又は複数の書き込みバッファ(例えば、DRAMモジュール(705))が、主フラッシュメモリバンク(d0〜d7)に対する互い違いの書き込み操作で書き込まれるべきデータを格納する働きをすることができる。
【0036】
さて、
図8を参照すると、均一な読み出し待ち時間を有する例示的なメモリシステム(800)のブロック図が示される。例示的なメモリシステム(800)は、本明細書で説明された原理の特定の応用形態に適合することができるように、例えば、デュアルインラインメモリモジュール(DIMM)で、又は任意の他のプロトコル及びパッケージングに従って実現され得る。
【0037】
例示的なデータ記憶システム(800)は、
図3において前述されたものと類似した断片化データストライピング/パリティ冗長性構成で構成された複数のNORフラッシュメモリバンク(d0〜d7、p)を含む。代案として、本明細書で説明されたような均一な読み出し待ち時間のためのデータ冗長性の原理と一致する、任意の他の適切なフラッシュメモリバンク(d0〜d7、p)の構成が使用されてもよい。
【0038】
フラッシュメモリバンクのそれぞれは、管理モジュール(805)に通信可能に結合されることができ、その管理モジュール(805)は、読み出しマルチプレクサ(810)、書き込みバッファ(815)、パリティ生成モジュール(820)、再構成モジュール(825)、及び制御回路(830)を含む。
【0039】
システム(800)は、アドレスポート(835)、制御ポート(840)、及びデータポート(845)として機能する入力/出力(I/O)ピンを介して外部プロセスと相互作用することができる。特定の実施形態において、マルチビットアドレス及びデータポート(835、845)は、並列データポートとすることができる。代案として、アドレス及びデータポート(835、845)は、データをシリアルに伝送することができる。制御回路(830)は、システム(800)の他の構成要素の機能およびアクティビティを連係して働かせるマイクロコントローラ又は他のタイプのプロセッサ又は処理要素を含むことができる。
【0040】
外部プロセスは、アドレスポート(835)におけるアドレスを提供し、制御ポート(840)における制御ビットを1に設定し、データポート(845)における書き込まれるべきデータを提供することにより、メモリシステム(800)の特定のアドレスにデータを書き込むことができる。次のクロックサイクルにおいて、管理モジュール(805)の制御回路は、制御ポート(840)における制御ビットが1に設定されているかを判定し、アドレスポートにおけるアドレスを制御回路(830)のレジスタに格納し、一時的な書き込みバッファ(815)にデータを書き込むことができる。
【0041】
一時的な書き込みバッファ(815)は、フラッシュバンク(d0〜d7、p)が均一な読み出し待ち時間を維持するために互い違いの書き込みを必要とするかもしれないので、同期動作で役に立つことができる。書き込みバッファ(815)は、DRAM、又はデータが外部プロセスから同期して受け取られ且つDIMMプロトコルに従うことを可能にする別のタイプの同期メモリを含むことができる。
【0042】
次いで、制御回路(830)は、書き込みバッファ(815)のデータを断片にパースし、データのアドレス及び特定の応用形態の断片化仕様に従って各断片をフラッシュバンク(d0〜d7)の1つに割り当てることにより、互い違いの書き込み要件に従って、一時的な書き込みバッファ(815)に格納されたデータをフラッシュバンク(d0〜d7、p)に書き込むことができる。パリティ生成モジュール(820)が、主フラッシュバンク(d0〜d7)に新たに書き込まれたデータに対応する新たなパリティデータでパリティフラッシュバンク(p)を更新することができる。
【0043】
同様に、外部プロセスは、制御ポート(840)における制御ビットを0に設定して、問い合わせされているデータの、アドレスポート(835)におけるアドレスを管理モジュール(805)に提供することによりデータを読み出すことができる。管理モジュール(805)の制御回路(830)は、アドレスを受け取り、読み出しが外部プロセスから要求されていることを制御ビットから判定することができる。次いで、制御回路(830)は、外部プロセスにより要求されたアドレスにあるデータの断片を格納するフラッシュメモリバンク(d0〜d7)の部分に問い合わせを行うことができる。制御回路(830)が、外部プロセスにより要求されたアドレスが現在書き込まれているか又は書き込まれるように予定されていることを判定する場合、制御回路(830)は書き込みバッファ(815)に問い合わせを行い、要求されたデータを書き込みバッファ(815)から直接的に外部プロセスに提供することができる。しかしながら、データが書き込みバッファ(815)に存在しない場合、互い違いの書き込み又は消去プロセスがデータをフラッシュメモリバンク(d0〜d7、p)に書き込むために発生しており、それにも関わらず、制御回路(830)が再構成モジュール(825)を使用して、アクセス可能な主フラッシュバンク(d0〜d7)及びパリティフラッシュバンク(p)からのデータを用いて要求されたデータを再構成することができる。また、制御回路(830)は、アクセスできないフラッシュバンク(d0〜d7)の出力の代わりに再構成モジュール(825)の出力を、読み出しマルチプレクサ(810)が用いるように、読み出しマルチプレクサ(810)に制御信号を提供することもできる。読み出しマルチプレクサ(810)は、当該技術で知られた多重化原理と調和し、このタスクを実行するために複数の論理ゲートを利用することができる。
【0044】
例示的な方法
さて、
図9Aを参照すると、メモリバンクのアレイにおいて均一な読み出し待ち時間を維持する例示的な方法(900)の流れ図が示される。例えば、方法(900)は、
図8に関連して上述されたようなメモリシステム(800、
図8)において、管理モジュール(805)の制御下で行われることができ、この場合、データの少なくとも1つの主記憶場所は、書き込み操作又は消去操作を実行するために、読み出し操作よりも多くの時間を必要とする。
【0045】
方法は、データの問い合わせを受け取ること(ステップ910)を含む。データの問い合わせは、外部プロセスから受け取られ得る。次いで、要求されたデータの少なくとも1つの主記憶場所が現在書き込み操作または消去操作を受けているか否かの評価が行われ得る(判断915)。そうである場合、要求されたデータの少なくとも一部が主記憶場所の代わりに冗長な記憶領域から読み出される(ステップ930)。問い合わせにおけるデータの主記憶場所が現在書き込み操作または消去操作を受けていない場合には、データが主記憶場所から読み出される(ステップ925)。最後に、データが問い合わせプロセスに提供される(ステップ935)。
【0046】
さて、
図9Bを参照すると、メモリシステムからデータを読み出す例示的な方法(950)の流れ図が示される。また、この方法(950)は、例えば
図8に関連して上述されたようなメモリシステム(800、
図8)において、管理モジュール(805)の制御下で、メモリシステム(800、
図8)の実質的に均一な読み出し待ち時間を維持するために行われることができる。
【0047】
方法(950)は、メモリシステムのアドレスポートにおける、問い合わせされているデータのアドレスを提供すること(955)を含むことができる。次いで、供給されたアドレスに対応する要求されたデータが書き込みバッファに現在格納されているか否か(例えば、要求されたデータが、読み出しの時間においてメモリシステムのその対応するメモリバンクに書き込まれているプロセスにある)が判定され得る(判断960)。そうである場合、要求されたデータが書き込みバッファからただ単に読み出され(ステップ965)、要求しているプロセスに提供される(ステップ990)。
【0048】
外部プロセスにより提供されるアドレスに対応するデータが書き込みバッファにあると判定されない場合(判断960)、書き込み又は消去プロセスが要求されたデータを格納する少なくとも1つのメモリバンクで実行されているか否かの判定が行われ得る(判断970)。書き込み又は消去プロセスが要求されたデータを格納する少なくとも1つのメモリバンクで実行されていない場合、メモリの主記憶場所から直接的に読み出され(ステップ985)、要求するプロセスに提供される(ステップ990)べきデータについて、要求されたデータを格納するメモリバンクの全ては利用可能である。
【0049】
書き込み又は消去プロセスが要求されたデータを格納する少なくとも1つのバンクで実行されている場合、データの断片が、あらゆる利用可能なメモリバンクから読み出され(975)、残りのデータの断片(単数または複数)が他の所に格納されたパリティデータを用いて再構成され得る(ステップ980)。次いで、再構成後、データは、要求されたデータを主メモリバンクから直接的に読み出した後に要求されたデータを提供する読み出し待ち時間と実質的に類似した読み出し待ち時間に従って、要求しているプロセスに提供され得る(ステップ990)。
【0050】
前述の説明は、開示された原理の実施形態および例を例示および説明するためだけに提供されている。この説明は、網羅的に又はこれらの原理を開示された任意の全く同一の形態に制限することは意図されていない。上記の教示に鑑みて、多くの変更および変形が可能である。