特許第5654480号(P5654480)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ヒューレット−パッカード デベロップメント カンパニー エル.ピー.の特許一覧

特許5654480均一な読み出し待ち時間のための冗長なデータ記憶
<>
  • 特許5654480-均一な読み出し待ち時間のための冗長なデータ記憶 図000002
  • 特許5654480-均一な読み出し待ち時間のための冗長なデータ記憶 図000003
  • 特許5654480-均一な読み出し待ち時間のための冗長なデータ記憶 図000004
  • 特許5654480-均一な読み出し待ち時間のための冗長なデータ記憶 図000005
  • 特許5654480-均一な読み出し待ち時間のための冗長なデータ記憶 図000006
  • 特許5654480-均一な読み出し待ち時間のための冗長なデータ記憶 図000007
  • 特許5654480-均一な読み出し待ち時間のための冗長なデータ記憶 図000008
  • 特許5654480-均一な読み出し待ち時間のための冗長なデータ記憶 図000009
  • 特許5654480-均一な読み出し待ち時間のための冗長なデータ記憶 図000010
  • 特許5654480-均一な読み出し待ち時間のための冗長なデータ記憶 図000011
  • 特許5654480-均一な読み出し待ち時間のための冗長なデータ記憶 図000012
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5654480
(24)【登録日】2014年11月28日
(45)【発行日】2015年1月14日
(54)【発明の名称】均一な読み出し待ち時間のための冗長なデータ記憶
(51)【国際特許分類】
   G06F 12/06 20060101AFI20141218BHJP
   G06F 12/00 20060101ALI20141218BHJP
【FI】
   G06F12/06 525B
   G06F12/00 597U
【請求項の数】9
【全頁数】15
(21)【出願番号】特願2011-542097(P2011-542097)
(86)(22)【出願日】2008年12月19日
(65)【公表番号】特表2012-513060(P2012-513060A)
(43)【公表日】2012年6月7日
(86)【国際出願番号】US2008087632
(87)【国際公開番号】WO2010071655
(87)【国際公開日】20100624
【審査請求日】2011年8月9日
(73)【特許権者】
【識別番号】511076424
【氏名又は名称】ヒューレット−パッカード デベロップメント カンパニー エル.ピー.
【氏名又は名称原語表記】Hewlett‐Packard Development Company, L.P.
(74)【代理人】
【識別番号】100087642
【弁理士】
【氏名又は名称】古谷 聡
(74)【代理人】
【識別番号】100076680
【弁理士】
【氏名又は名称】溝部 孝彦
(74)【代理人】
【識別番号】100121061
【弁理士】
【氏名又は名称】西山 清春
(72)【発明者】
【氏名】マクラーレン,モーレイ
(72)【発明者】
【氏名】アルゴロ,デ,オリベイラ,ディアス,エデュアルド,ジュニア
(72)【発明者】
【氏名】ファラボスチ,パオロ
【審査官】 滝谷 亮一
(56)【参考文献】
【文献】 特開平11−237959(JP,A)
【文献】 特開平11−265316(JP,A)
【文献】 特開平08−335186(JP,A)
【文献】 特表2006−505864(JP,A)
【文献】 国際公開第2008/070173(WO,A1)
【文献】 欧州特許出願公開第01400899(EP,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/06
G06F 12/00
(57)【特許請求の範囲】
【請求項1】
メモリ装置であって、
複数のメモリバンクを含み、前記メモリバンクに対する書き込み操作または消去操作が、前記バンクに対する読み出し操作よりもかなり遅く、
前記メモリ装置は、前記バンクにおける主記憶場所が書き込み操作および消去操作の少なくとも1つを受けている際にデータの問い合わせに応じて前記主記憶場所に格納されたデータの代わりに冗長な記憶領域に格納されたデータを読み出すように構成され、前記メモリ装置が、前記複数のメモリバンクに格納されたデータに対して実質的に均一な読み出し待ち時間を含み、
前記問い合わせで要求された前記データが、前記複数のメモリバンクのうちの複数の全体にわたって分散され、
前記冗長な記憶領域に格納された前記データがパリティデータを含み、前記要求されたデータが、前記パリティデータ、及び前記複数のメモリバンクのうちの前記複数の全体にわたって分散されたデータの部分から導出される、メモリ装置。
【請求項2】
前記メモリバンクがフラッシュメモリからなる、請求項1に記載のメモリ装置。
【請求項3】
前記実質的に均一な読み出し待ち時間が、前記メモリバンクの前記主記憶場所の書き込み待ち時間および消去待ち時間の少なくとも1つよりかなり小さい、請求項1又は2に記載のメモリ装置。
【請求項4】
前記パリティデータ、及び前記複数のメモリバンクのうちの前記複数の全体にわたって分散されたデータの部分を用いて前記主記憶場所に格納された前記データに対応するデータを生成するように構成された再構成モジュールと、
前記主記憶場所に格納された前記データの代わりに前記再構成モジュールにより生成された前記データを使用するように構成された読み出しマルチプレクサとを更に含む、請求項1〜3の何れかに記載のメモリ装置。
【請求項5】
複数のメモリバンクからなるアレイにおいて実質的に均一な読み出し待ち時間を維持する方法であって、
データの問い合わせに応じて、前記メモリバンクの主記憶場所が書き込み操作および消去操作の少なくとも1つを現在受けているか否かを判定し、
記主記憶場所が書き込み操作および消去操作の少なくとも1つを現在受けている場合に、前記主記憶場所に格納されたデータの代わりに冗長な記憶領域に格納されたデータを読み出すことを含
前記問い合わせされたデータが、前記複数のメモリバンクからなる前記アレイにおける複数のメモリバンクの個々のメモリバンク全体にわたって分散され、前記冗長な記憶領域に格納された前記データがパリティデータを含み、
前記方法が、前記主記憶場所に格納された前記データに対応するデータを、分散されたデータの部分および前記パリティデータから再構成することを更に含む、方法(900)。
【請求項6】
前記主記憶場所に格納された前記データの代わりに前記再構成されたデータを使用することにより、前記問い合わせされたデータを導出し、
前記問い合わせされたデータを外部読み出しプロセスに提供することを更に含む、請求項に記載の方法。
【請求項7】
前記問い合わせされたデータが一時的な書き込みバッファに格納されているという判定に応じて、前記問い合わせされたデータを前記一時的な書き込みバッファから直接的に読み出すことを更に含む、請求項5又は6に記載の方法。
【請求項8】
複数のメモリバンクであって、前記メモリバンクに対する書き込み操作または消去操作が、前記メモリバンクに対する読み出し操作よりもかなり遅い、複数のメモリバンクと
前記メモリバンクの主記憶場所が書き込み操作および消去操作の少なくとも1つを受けているという判定に応じて、前記メモリバンクの前記主記憶場所に格納されたデータを、前記複数のメモリバンクの全体にわたって分散された断片化データ、及び冗長な記憶領域に格納されたパリティデータから再構成するように構成された再構成モジュールと、
前記主記憶場所に格納された前記データの代わりに前記再構成されたデータを使用し、前記再構成されたデータ及び前記断片化データから導出される要求されたデータを提供するように構成された読み出しマルチプレクサとを含む、データ記憶システム。
【請求項9】
外部プロセスから同期して書き込みデータを受け取り、前記書き込みデータを格納すると同時に、互い違いの書き込みプロセスが前記書き込みデータを前記複数のメモリバンクに書き込むように構成された書き込みバッファを更に含む、請求項に記載のデータ記憶システム。
【発明の詳細な説明】
【技術分野】
【0001】
背景
半導体メモリは、データ記憶のために多くのコンピュータ及び電子デバイスにより使用されるデジタル記憶装置の一種である。ソリッドステート(半導体)回路のパッケージングは概して、磁気ディスクドライブよりも大きい耐久性かつ低い消費電力を半導体メモリに与える。半導体メモリデバイスの記憶容量の増加および半導体メモリの比較的安価なコストの増進になされてきた継続的な歩みと結びつけられたこれら特徴は、広範囲の用途に半導体メモリを使用することに寄与した。例えば、幾つかの用途において、不揮発性半導体メモリは、磁気ハードディスクに取って代わるために、又はプロセッサが電力供給されていない際に、それらの内容を保持するプロセッサのメモリ空間の領域に使用され得る。
【0002】
フラッシュメモリを含む不揮発性半導体メモリの大抵のタイプにおいて、書き込み操作は、読み出し操作に比べて、完了するのにかなり長い量の時間を必要とする。更に、フラッシュメモリにおける書き込み操作の一方向特質の故に、データは一般に、大きなブロックで周期的にフラッシュメモリから消去されるだけである。このタイプの消去操作は、書き込み操作に比べて、完了するために更に多くの時間を必要とする。
【0003】
添付図面は、本明細書で説明される原理の様々な実施形態を示し、本明細書の一部である。図示された実施形態は例に過ぎず、特許請求の範囲を制限しない。
【図面の簡単な説明】
【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】
前述の説明は、開示された原理の実施形態および例を例示および説明するためだけに提供されている。この説明は、網羅的に又はこれらの原理を開示された任意の全く同一の形態に制限することは意図されていない。上記の教示に鑑みて、多くの変更および変形が可能である。
図1A
図1B
図2
図3
図4
図5
図6
図7
図8
図9A
図9B