JP5221332B2 - メモリシステム - Google Patents
メモリシステム Download PDFInfo
- Publication number
- JP5221332B2 JP5221332B2 JP2008335568A JP2008335568A JP5221332B2 JP 5221332 B2 JP5221332 B2 JP 5221332B2 JP 2008335568 A JP2008335568 A JP 2008335568A JP 2008335568 A JP2008335568 A JP 2008335568A JP 5221332 B2 JP5221332 B2 JP 5221332B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- cache memory
- memory
- track
- threshold
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Description
・物理ページ:NAND型フラッシュメモリ内部において一括して書き込み/読み出しが可能な単位のこと。
・論理ページ:SSD内部で設定される書き込み/読み出し単位であり、1以上の物理ページを組み合わせて構成される。
・物理ブロック:NAND型フラッシュメモリ内部において独立して消去可能な最小単位のことであり、複数の物理ページから構成される。
・論理ブロック:SSD内部で設定される消去単位であり、1以上の物理ブロックを組み合わせて構成される。論理ブロックは、複数の論理ページから構成される。
・セクタ:ホストからの最小アクセス単位のこと。セクタサイズは、例えば512B。
・クラスタ:SSD内部で「小さなデータ」を管理する管理単位。クラスタサイズはセクタサイズ以上であり、ホストのOSが採用するファイルシステムのデータ管理単位、または、論理ページサイズと等しくなるように定められる。例えば、クラスタサイズの2以上の自然数倍が論理ページサイズとなるように定められてもよい。
・トラック:SSD内部で「大きなデータ」を管理する管理単位。クラスタサイズの2以上の自然数倍がトラックサイズとなるように定められる。例えば、トラックサイズが論理ブロックサイズと等しくなるように定められてもよい。
・フリーブロック(FB):内部に有効データを含まない、用途未割り当ての論理ブロックのこと。以下の、CFB、FFBの2種類がある。
・コンプリートフリーブロック(CFB):再利用のために消去動作を行う必要があるFBのこと。消去動作の実行後は、論理ブロックの先頭に位置する論理ページから書き込むことが可能である。
・フラグメントフリーブロック(FFB):未書き込みの論理ページが残っており、消去動作を実行することなく再利用が可能なFBのこと。残りの未書き込み状態のままの論理ページに書き込むことが可能である。
・バッドブロック(BB):NAND型フラッシュメモリ上の、誤りが多いなど記憶領域として使用できない物理ブロックのこと。例えば、消去動作が正常に終了しなかった物理ブロックがバッドブロックBBとして登録される。
・書き込み効率:所定期間内における、ホストから書き込んだデータ量に対する、論理ブロックの消去量の統計値のこと。小さいほどNAND型フラッシュメモリの消耗度が小さい。
・有効クラスタ:論理アドレスに対応するクラスタサイズの最新データ。
・無効クラスタ:同一論理アドレスのデータが他の場所に書きこまれ、参照されることがなくなったクラスタサイズのデータ。
・有効トラック:論理アドレスに対応するトラックサイズの最新データ。
・無効トラック:同一論理アドレスのデータが他の場所に書きこまれ、参照されることがなくなったトラックサイズのデータ。
・MLC(Multi Level Cell)モード:多値記憶が可能なNAND型フラッシュメモリにおいて、通常通り、上位ページおよび下位ページを使用して書き込みを行うモード。MLCモードで使用する1以上の物理ブロックを組み合わせて、MLCモードの論理ブロックが構成される。
・擬似SLC(Single Level Cell)モード:多値記憶が可能なNAND型フラッシュメモリにおいて、下位ページのみを使用して書き込みを行うモード。擬似SLCモードで使用する1以上の物理ブロックを組み合わせて、擬似SLCモードの論理ブロックが構成される。一度擬似SLCモードで使用した物理ブロックであっても、消去動作後はMLCモードで使用することが可能である。
[第1の実施形態]
RC22は、ホスト1からのRead要求に対して、NANDメモリ10(FS12、IS13、MS11)からのReadデータを一時的に保存するための領域である。ホスト1へのデータ転送は、基本的に、RC22から行う。なお、WC21からNANDメモリ10へのデータの書き込みを行う際には、同一論理アドレスのR22上のデータを無効にする。
WC21は、ホスト1からのWrite要求に対して、ホスト1からのWriteデータを一時的に保存するための領域である。WC21上のデータは、クラスタ単位で管理し、書き込みと有効データの管理はセクタ単位で行う。WC21のリソースが不足した場合、WC21の記憶データをNAND10に追い出す。ホスト1からRC22上のデータと同一の論理アドレスに対する書き込みが行われた場合、その最新データはWC21上に保存される。そのため、同一の論理アドレスに対応するデータが、WC21、RC22、NANDメモリ10上にある場合には、データの新しさは、WC21、RC22、NANDメモリ10の順となるため、ホスト1に返すデータもWC21上のデータを優先する。
MS11はトラック単位でデータの管理が行われ、ほとんどのユーザデータが格納される。WC21上で有効クラスタの多いトラック(高密度トラック)は、WC12から直接MS11に書き込まれる。その他、MS11には、FS12、IS13で管理しきれなくなったデータが入力される。MS11に入力されたトラックと同一LBAのトラックについては、論理ブロック内で無効化し、この論理ブロックを解放する。MS11に入力されたトラックと同一LBAのトラックに属するクラスタついては、論理ブロック内で無効化し、論理ブロック内の全クラスタが無効になった論理ブロックは解放する。MS11は、MLCモードの複数の論理ブロックで構成される。この実施の形態では、トラックと論理ブロックのサイズは同じとしているので、FS12やIS13で行われる追記処理や、IS13で行われるコンパクション(有効クラスタのみを集めて新しい論理ブロックを作り、無効なクラスタ部分を解放する処理)は不要となる。もしトラックサイズが論理ブロックサイズよりも小さい場合は、FS12やIS13で行われる追記処理や、IS13で行われるコンパクションを適用してもよい。
FS12はクラスタ単位でデータを管理されるFIFO構造のバッファであり、入力は複数のクラスタをまとめた論理ページ単位で行われる。FS12には、WC21上で有効クラスタ数の少ないトラック(低密度トラック)が最初に書き込まれる。データの書き込み順序で論理ブロックが並んだFIFO構造となっている。FS12に存在するクラスタと同一LBAのクラスタがFS12に入力された場合、FS12内のクラスタを無効化するだけでよく、書き換え動作を伴わない。FS12に入力されたクラスタと同一LBAのクラスタについては、論理ブロック内で無効化し、論理ブロック内の全クラスタが無効になった論理ブロックは解放する。FS11のFIFO構造の最後まで到達した論理ブロックに格納されたクラスタは、ホスト1から再書き込みされる可能性の低いクラスタとみなし、論理ブロックごとIS13の管理下に移動する。FS12は、この実施の形態では、書き込みの高速化を図るため擬似SLCモードの複数の論理ブロックで構成される。なお、FS12は、MLCモードの複数の論理ブロックで構成されてもよい。更新頻度の高いデータはFS12を通過している最中に無効化され、更新頻度の低いデータだけがFS12から溢れていくため、更新頻度の高いデータと低いデータとをFS12で選り分けることができる。これにより、後段のIS13でコンパクションが頻繁に発生する可能性を低減させることが可能である。
IS13は、再書き込みされる可能性の低いクラスタを格納するためのバッファであり、FS13と同様にクラスタ単位でデータの管理が行われる。IS13に存在するクラスタと同一LBAのクラスタがFS12、IS13に入力された場合、IS13内のクラスタを無効化するだけでよく、書き換え動作を伴わない。IS13においては、FS12と同様、データの書き込まれた順序(FS12から移動された順序)が古い論理ブロックから並んだリスト構造をとるが、コンパクションを行う点がFS12と異なる。IS13の容量や管理テーブルの都合で飽和した場合は、コンパクション(IS13から有効クラスタを集めてIS13へ書き戻すこと)やデフラグ(FS12およびIS13のクラスタをトラックに統合して、MS11へ追い出すこと)を行う。IS13は、この実施の形態では、MLCモードの論理ブロックと擬似SLCモードの論理ブロックの混在で構成される。すなわち、FS12からIS13に移動されるブロックは擬似SLCモードの論理ブロックであるが、IS13内でコンパクションする際に、MLCモードの論理ブロックに書き直す。なお、FS12がMLCモードの論理ブロックで構成される場合は、IS13もMLCモードの論理ブロックのみで構成されることになる。
RC管理テーブル23は、NANDメモリ10からRC22に転送されたデータを管理するためのものである。
WC21上に記憶されたデータに関するWCトラック情報をLBAからルックアップするためのハッシュテーブルであり、LBAのトラックアドレスのLSB数ビットをインデックスとし、インデックス毎に複数のエントリ(タグ)を有する。各タグには、LBAトラックアドレスと該トラックアドレスに対応するWCトラック情報へのポインタが記憶されている。
WCトラック情報テーブル25には、アクセスのあったWCトラック情報の新旧の順序をLRU(Least Recently used)で双方向リストで管理するためのWCトラックLRU情報テーブル25aと、空いているWCトラック情報の番号を管理するWCトラック空き情報テーブル25bとがある。WC21からNANDにデータを追い出すときに、WCトラックLRU情報テーブル25aを用いて最も古くにアクセスされたトラックを取り出す。
WCトラック情報には、
(1)WC21内に存在するトラックアドレス、トラック内のWC21上の有効クラスタの個数、各クラスタが有効であるかどうかの情報、各クラスタがWC21のどこに存在するかを示すWC内クラスタ位置情報、
(2)1クラスタに含まれる複数のセクタのうちのどのセクタに有効なデータを保持しているかを示す情報(セクタビットマップ)、
(3)トラックの状態情報(有効、無効、ATAからのデータ転送中、NANDに書き込み中など)
などが含まれている。なお、上記のWCトラック情報では、有効クラスタが存在する記憶位置で自トラック内に存在するクラスタアドレスのLSB(t)ビットを管理するようにしたが、クラスタアドレスの管理方法は任意であり、例えば、自トラック内に存在するクラスタアドレスのLSB(t)ビット自体を管理するようにしてもよい(図6参照)。
MS11に書き込むことになる高密度(トラック内で有効クラスタ数が所定パーセント以上)のトラック情報を管理するためのもので、高密度トラックに関するWCトラック情報とその個数を管理している。
FS12に書き込むことになる低密度(トラック内で有効クラスタ数が所定パーセント未満)のトラック情報を管理するためのもので、低密度トラックのクラスタ数の合計を管理している。
LBAのトラックアドレスからトラック情報を取得するためのテーブルである。トラック情報としては、
(1)論理ブロックアドレス(トラックのデータが記憶されている論理ブロックを示す情報である)
(2)クラスタディレクトリ番号(トラック内のデータの少なくとも一部がFS12またはIS13に記憶されている場合に有効となる情報であり、トラック内のデータがFS12またはIS13に記憶されている場合に、トラック毎に存在するクラスタディレクトリテーブルのテーブル番号を示す情報である)
(3)FS/ISクラスタ数(このトラック内のクラスタが、いくつFS12またはIS13に記憶されているかを示す情報であり、デフラグするかどうかを決めるために使用する)。
トラック内のデータがFS12またはIS13に記憶されている場合に、その論理ブロックまでたどるための中間的なテーブルであり、トラック別に備えられている。各クラスタディレクトリテーブル31に登録されるクラスタディレクトリ情報は、クラスタテーブル32のテーブル番号を示す情報(クラスタテーブル番号情報)の配列からなる。LBAのクラスタアドレスのLSB(t)ビット中の上位数ビットで、1つのクラスタディレクトリテーブル31中に配列されている複数のクラスタテーブル番号情報からひとつの情報を選択する。
クラスタディレクトリテーブル31と関連し、トラック内のデータがFS12またはIS13に記憶されている場合に、どの論理ブロックのどのクラスタ位置にデータが記憶されているかを管理するテーブルである。トラックテーブル30からクラスタディレクトリテーブル31を経由して間接参照される。実体は、複数クラスタ分の論理ブロックアドレス+クラスタ位置の配列である。LBAのクラスタアドレスのLSB(t)ビット中の下位数ビットで、1つのクラスタテーブル32中に配列されている複数の(論理ブロックアドレス+クラスタ位置)からひとつの情報を選択する。後述のクラスタブロック情報の番号とその中のクラスタ位置の情報も配列としてもつ。
クラスタブロックとは、論理ブロックのうちクラスタ単位でデータを記憶するものをいう。クラスタブロック情報は、FS12、IS13の論理ブロックを管理するための情報であり、論理ブロック内にどのようなクラスタが入っているかを示す情報である。クラスタブロック情報同士を双方向リストとしてFS12、IS13内のFIFOの順序で連結される。
クラスタブロック情報は、
(1)論理ブロックアドレス
(2)有効クラスタ数
(3)当該論理ブロックに含まれるクラスタのLBA
を有する。
クラスタブロック情報テーブル33は、使われていないクラスタブロック情報を管理する空き情報管理用のクラスタブロック情報テーブル33a、FS12に含まれるクラスタブロック情報を管理するFS用のクラスタブロック情報テーブル33b、IS13に含まれるクラスタブロック情報を管理するIS用のクラスタブロック情報テーブル33cを有し、各テーブル33a〜33cは、双方向リストとして管理されている。逆引きアドレス変換の主な用途はIS13のコンパクションであり、コンパクション対象の論理ブロックにどのようなクラスタが記憶されているかを調べ、データを他の場所へ書き直すために使用する。よって、本実施の形態では、逆引きアドレス変換はクラスタ単位でデータを記憶しているFS12、IS13のみを対象としている。
論物変換テーブル40は、論理ブロックアドレスと物理ブロックアドレスとの変換、寿命に関する情報を管理するためのテーブルである。論理ブロックアドレス毎に、当該論理ブロックに所属する複数の物理ブロックアドレスを示す情報、当該論理ブロックアドレスの消去回数を示す消去回数情報、クラスタブロック情報の番号などの情報を有している。あるLBAのデータを他の場所に書き直すには、元のクラスタブロック内のLBAを無効にする必要があり、LBAからクラスタブロックをたどる必要がある。そのために、論物変換テーブル40で管理する論理ブロックの管理情報に、クラスタブロック情報の識別子を記憶している。
上記各管理テーブルで管理される管理情報によって、ホスト1で使用されるLBAと、SSD100で使用される論理NANDアドレス(論理ブロックアドレス+オフセット)と、NANDメモリ10で使用される物理NANDアドレス(物理ブロックアドレス+オフセット)との間を対応付けることができ、ホスト1とNANDメモリ10との間のデータのやり取りを行うことが可能となる。
つぎに、読み出し処理の概要について説明する。ATAコマンド処理部121から、Readコマンドおよび読み出しアドレスとしてのLBAが入力されると、データ管理部120は、RC管理テーブル23とWCトラックテーブル24を検索することで、WC21またはRC22にLBAに対応するデータが存在しているか否かを探査し、キャッシュヒットの場合は、該当LBAに対応するWC21またはRC22のデータを読み出して、ATAコマンド処理部121に送る。
(WC21での処理)
つぎに、書き込み処理の概要について説明する。書き込み処理では、ATAコマンド処理部121からWriteコマンドおよび書き込みアドレスとしてのLBAが入力されると、LBAで指定されたデータをWC21に書き込む。WC21に空き領域がない場合は、DRAM管理用の各種管理テーブルを参照してWC21からデータを追い出して、NANDメモリ10に書き込み、空き領域を作成する。トラック内の有効クラスタ数が所定パーセント未満のトラックは低密度トラックとし、クラスタサイズデータとしてFS12を追い出し先とする。FS12が追い出し先の場合は、トラック内の有効クラスタを論理ページ単位で書き込む。
MS11への書き込みは、図9に示すように、次の手順で実行される。
1.DRAM20上にトラックのデータイメージを作成(穴埋め処理)する。すなわち、WC21に存在しないクラスタ、WC21に全セクタを保持していないクラスタに関しては、NANDメモリ10から読み出して、WC21のデータと統合する。
2.MS11用に、論理ブロック(トラックブロック)をCFBから確保する。トラックブロックとは、論理ブロックのうちトラック単位でデータを記憶するものをいう。
3.作成したトラックのデータイメージを確保した論理ブロックに書き込む。
4.トラックのLBAからトラック情報を調べ、トラック情報と書き込んだ論理ブロックに対応する論理ブロックアドレスとを関連付け、NAND管理用の所要のテーブルに登録する。
5.WC21,NANDメモリ10の古いデータを無効化する。
FS12への書き込みは、DRAM20上にクラスタのデータイメージを作成(穴埋め処理)し、新たに確保する論理ブロック(クラスタブロック)に対し論理ページ単位の書き込みを、擬似SLCモードを使用して行う。確保する論理ブロックは、書き込むデータイメージ以上の書き込み可能な論理ページをもつフラグメントフリーブロック(FFB)を優先し、ない場合はコンプリートフリーブロック(CFB)を使用する。FS12への書き込みは、図10に示すように、以下の手順で実行する。
1.WC21から入力された低密度トラック内の総データ量が小さい場合、すなわち有効クラスタ数が所定の閾値よりも少ない場合には、それを書き込めるFFBを確保し、FSIBとする。
2.WC21から渡された低密度トラック内の総データ量が大きい場合、すなわち有効クラスタ数が所定の閾値以上の場合には、CFBを確保し、FSIBとする。このとき、並列で書き込むことが出来る複数の論理ブロックを確保し、FSIBとする。
3.DRAM20上で、書き込むクラスタのデータイメージを作成する。すなわち、WC21に全セクタを保持していないクラスタに関しては、WC21上に存在しないセクタのデータをNANDメモリ10から読み出し、WC21上のセクタのデータと統合する。
4.WC21上のクラスタと、作業領域上に作ったクラスタイメージをFSIBに書き込む。
5.FSIBをFS12のリストに追加する。
6.書き込んだトラックを、クラスタディレクトリLRUテーブル31aの末尾に挿入しなおす。
FS12管理下の論理ブロック数が所定の最大論理ブロック数を越えている場合は、図11に示すように、FS12から溢れた論理ブロックをそのままIS13に移動する。一度の処理単位で移動する論理ブロック数は、溢れた論理ブロック内の有効クラスタ数に応じて、以下のルールで決定する。
・溢れた論理ブロック内のクラスタ数がMLCモードの1論理ブロック分の境界に近くなるように、FS12の最も古い論理ブロックから移動する論理ブロックを追加する。MLCモードの1論理ブロック分の境界に近くするのは、コンパクション後の論理ブロックに、なるべく多くの有効クラスタを収容することを目的とする。
・クラスタ数がIS13で同時にコンパクションできるクラスタ数を超える場合は、IS13で同時にコンパクションできるクラスタ数以下になるようなブロック数とする。
・移動ブロック数には、上限値を設ける。
IS13では、IS管理下の論理ブロック数が最大論理ブロック数を越えた場合に、MS11へのデータ移動(デフラグ処理)と、コンパクション処理によって、管理下の論理ブロック数を最大数以下に抑える。データの消去単位(論理ブロック)と、データの管理単位(クラスタ)が異なる場合、NANDメモリ10の書き換えが進むと、無効なデータによって、論理ブロックは穴あき状態になる。このような穴あき状態の論理ブロックが増えると、実質的に使用可能な論理ブロックが少なくなり、NANDメモリ10の記憶領域を有効利用できないので、有効クラスタを集めて、違う論理ブロックに書き直すことをコンパクションという。デフラグ処理とは、FS12,IS13のクラスタをトラックに統合して、MS11に追い出す処理をいう。
(1)WC21内に存在するトラック内の有効クラスタ数を示す情報、フルのクラスタ数(セクタデータが満杯のクラスタの個数)を示す情報、
(2)LBAのLSB側の数ビット部分であるクラスタ内オフセットに基づいて作成される情報であり、1クラスタに含まれる複数のセクタのうちのどのセクタに有効なデータを保持しているかを示す情報(セクタビットマップ)、
(3)トラックの状態情報(有効、無効、ATAからのデータ転送中、NANDに書き込み中など)、
(4)トラック単位にオール0のデータが含まれるか否かを識別する情報
(5)クラスタ位置情報:(図13に示すように、LBAのトラック内クラスタインデックス(tビット)に対応するクラスタ領域番号をインデックスとした((2t−1)個)のクラスタ領域が確保され、各クラスタ領域には、当該クラスタデータがWC21のどこに存在するかを示すクラスタ位置情報が格納される。空きのクラスタに対応するクラスタ領域番号のクラスタ領域には、無効値が格納される。)
などが含まれている。
FS12に書き込むことになる低密度のトラック情報を管理するためのもので、低密度トラックのクラスタ数の合計値を管理している。この低密度トラックのクラスタ数の合計値α5は、WC21の追い出しをトリガするための1つのパラメータ(WCリソース使用量)となる。
・WCクラスタ領域(クラスタ領域の総空き数)α3
・バンク毎の高密度トラック情報の個数(MS行きトラック数)α4
・低密度トラックのクラスタ数の合計値(FS行きクラスタ数あるいはFS行きクラスタデータ量)α5
・WCトラック情報の個数(WCトラック情報空き数)α2
・WCトラックテーブルのインデックス毎の使用エントリ数(または空きエントリ数)α1
・フルのトラック数α6
がある。これらWC21の追い出しをトリガするための複数のパラメータα1〜α6をWCリソース使用量とも呼ぶ。
Tflmax(固定値)=Ta(=4×1回の書き込み所要時間(固定値)×書き込み回数(u1))+Tb(=1回の書き込み所要時間(固定値)×書き込み回数(u2))+Tc(固定値)
から、書き込み回数u1,u2を求めることができる。
NAND整理部212が行うNANDメモリ10の整理について説明する。NANDの整理とは、
・FS12,IS13管理下の論理ブロック数を所定の閾値以下にするためのコンパクション/デフラグ処理
・NAND管理用テーブル(クラスタディレクトリテーブル31、クラスタテーブル32など)のエントリ数を所定の閾値以下にするためのデフラグ処理
などを含む。
これらFS12,IS13管理下の論理ブロック数、NAND管理用テーブルのエントリ数などNANDの整理の際に考慮するパラメータを総称してNANDリソース使用量と呼ぶ。NAND整理部212は、各NANDリソース使用量が閾値を越えているときには、NANDメモリ10の整理を実行し、現在処理を実行中である旨を示すNAND整理状態信号をWC書き込み制御部210およびWC追い出し制御部211に送る。
コンパクション処理とは、IS13で行われる処理であり、IS管理下の論理ブロックが所定の閾値を越えた際に、有効な最新のクラスタデータを集めて、違う論理ブロックに書き直し、無効クラスタを解放することをいう。なお、この実施の形態では、トラックサイズと論理ブロックサイズを同じにしているために、MS11ではコンパクションは発生しないが、トラックサイズと論理ブロックサイズが異なる場合は、MS11でもコンパクションが発生する。このような場合は、MS11でのコンパクションを含めてNANDメモリ10の整理を行う必要がある。また、FS11においても、コンパクションを実行するようにしてもよく、その場合は、FS12でのコンパクションを含めてNANDメモリ10の整理を行う必要がある。
デフラグ処理とは、FS12,IS13管理下の論理ブロック数を所定の閾値を越えた際、あるいはクラスタディレクトリテーブル31、クラスタテーブル32などのFS12,IS13管理用のテーブルのエントリ数が所定の閾値を越えた際に、FS12あるいはIS13のクラスタデータをトラックに統合して、MS11に追い出す処理をいう。
まず、ホスト1からのWC21へのデータ書き込み終了後、WCリソース使用量が上限値Clmtを越えていた場合の処理について説明する。WC追い出し制御部211は、ホスト1からのデータ書き込み終了後、WCリソース使用量α1〜α6の状態を判断し、WCリソース使用量α1〜α6の何れかが上限値Clmtを越えていた場合であって、ホスト1からつぎのWrite要求が来ていない場合は、つぎのような処理を実行する。WC追い出し制御部211は、NAND整理状態信号によってNANDメモリ10の整理状態を確認し、NANDメモリ10の整理が終了している場合は、上限値Clmtを越えている要因となっているWC21のデータをMS11またはFS12の何れかまたは両方に追い出して、全てのWCリソース使用量α1〜α6を上限値Clmt以下とする。追い出し対象のトラックは、LRUで古いトラックの順から優先的に選択するとか、上限値Clmt以下にWCリソース使用量を抑えるための処理速度を優先して追い出しトラックを選択するとかして決定する。
つぎに、ホスト1からのWC21へのデータ書き込み終了後、WCリソース使用量が上限値Clmtを越えていないが、AF閾値Cafを越えていた場合の処理について説明する。WC追い出し制御部211は、ホスト1からのデータ書き込み終了後、WCリソース使用量α1〜α6の何れかがAF閾値Cafを越えていた場合に、ホスト1からのつぎのWrite要求が来ている場合は、そのままAuto Flush処理を実行せず、ホスト1からのつぎのWrite要求を受け付ける。
上記では、まず、ホスト1からのWC21へのデータ書き込み終了後、WCリソース使用量α1〜α6が上限値Clmtを越えていた場合であって、かつホスト1からつぎのWrite要求が来ている場合であって、さらにNANDメモリ10の整理が終了していない場合は、ホスト1からのつぎのWrite要求を待たせてNANDメモリの整理を行い、NANDメモリ10の整理の終了後、追い出し処理を実行するようにしたが、つぎのような制御も可能である。すなわち、上記の条件が成立した場合、ホスト1のつぎのWrite要求を受け付けてもWCリソース使用量α1〜α6が最大値maxを越えない場合は、ホスト1のつぎのWrite要求を受け付けて、WC21にデータを書き込ませ、リソース使用量α1〜α6が最大値maxを越える場合は、ホスト1のつぎのWrite要求を待たせて、追い出し処理を行って全てのWCリソース使用量α1〜α6が上限値Clmt以下になるようにする。
図17は、SSD100を搭載したパーソナルコンピュータ1200の一例を示す斜視図である。パーソナルコンピュータ1200は、本体1201、及び表示ユニット1202を備えている。表示ユニット1202は、ディスプレイハウジング1203と、このディスプレイハウジング1203に収容された表示装置1204とを備えている。
Claims (4)
- キャッシュメモリと、
前記キャッシュメモリを介してデータが書き込まれる不揮発性半導体メモリと、
前記不揮発性半導体メモリのリソース使用量が所定値を越えている場合に、前記不揮発性半導体メモリのデータを整理してリソースを増加させる整理部と、
前記キャッシュメモリへのデータ書き込み処理の実行後、書き込み要求を待たせていない場合に、前記キャッシュメモリのリソース使用量が第1の閾値を越えかつ第1の閾値より大きい第2の閾値より小さい場合で、かつ前記整理部による整理が終了している場合は、
前記キャッシュメモリのリソース使用量が前記第1の閾値以下になるまで、前記キャッシュメモリのデータを前記不揮発性半導体メモリに追い出す第1の追い出し処理を実行し、
前記キャッシュメモリへのデータ書き込み処理の実行後、書き込み要求を待たせている場合に、前記キャッシュメモリのリソース使用量が第1の閾値を越えかつ第1の閾値より大きい第2の閾値より小さい場合は、前記第1の追い出し処理を実行せず、書き込み要求を受け付ける第1の追い出し制御部と、
前記キャッシュメモリへのデータ書き込み処理の実行後、書き込み要求を待たせていない場合に、前記キャッシュメモリのリソース使用量が前記第2の閾値を越える場合は、
前記整理部による整理が終了しているときは、前記キャッシュメモリのリソース使用量が前記第2の閾値以下になるまで、前記キャッシュメモリのデータを前記不揮発性半導体メモリに追い出し、前記整理部による整理が終了していないときは、前記整理部による整理が終了した後、前記キャッシュメモリのリソース使用量が前記第2の閾値以下になるまで、前記キャッシュメモリのデータを前記不揮発性半導体メモリに追い出す第2の追い出し処理を実行し、
前記キャッシュメモリへのデータ書き込み処理の実行後、書き込み要求を待たせている場合に、前記キャッシュメモリのリソース使用量が前記第2の閾値を越えている場合は、書き込み要求を受け付けるよりも前に、前記第2の追い出し処理を実行する第2の追い出し制御部と、
を備えるメモリシステム。 - 前記第1の追い出し制御部は、
前記第2の追い出し制御部による前記第2の追い出し処理の実行後、書き込み要求を待たせていない場合に、前記第1の追い出し処理を実行する
ことを特徴とする請求項1に記載のメモリシステム。 - キャッシュメモリと、
前記キャッシュメモリを介してデータが書き込まれる不揮発性半導体メモリと、
前記不揮発性半導体メモリのリソース使用量が所定値を越えている場合に、前記不揮発性半導体メモリのデータを整理してリソースを増加させる整理部と、
前記キャッシュメモリのリソース使用量が第1の閾値を越えかつ第1の閾値より大きい第2の閾値より小さい場合であって、かつ前記整理部による整理が終了している場合は、前記キャッシュメモリでのリソース使用量が前記第1の閾値以下になるまで、前記キャッシュメモリのデータを前記不揮発性半導体メモリに追い出す第1の追い出し制御部と、
前記キャッシュメモリのリソース使用量が前記第2の閾値を越え、かつ前記整理部による整理が終了している場合は、前記キャッシュメモリのリソース使用量が前記第2の閾値以下になるまで、前記キャッシュメモリのデータを前記不揮発性半導体メモリに追い出す第1の処理を実行し、
前記キャッシュメモリのリソース使用量が前記第2の閾値を越え、かつ前記整理部による整理が終了していない場合であって、さらに書き込み要求を処理しても前記キャッシュメモリのリソース使用量が前記第2の閾値より大きい許容限度としての最大値を越えない場合は、前記キャッシュメモリのデータを前記不揮発性半導体メモリに追い出すことなく前記キャッシュメモリヘのデータ書き込みを行う第2の処理を実行し、
前記キャッシュメモリのリソース使用量が前記第2の閾値を越え、かつ前記整理部による整理が終了していない場合であって、さらに書き込み要求を処理すると前記最大値を越える場合は、前記整理部による整理が終了し、前記キャッシュメモリのデータを前記不揮発性半導体メモリに追い出した後、前記キャッシュメモリヘのデータ書き込みを行う第3の処理を実行する、
第2の追い出し制御手段と、
を備えることを特徴とするメモリシステム。 - 前記第1および第2の閾値が設定される、前記キャッシュメモリのデータを前記不揮発性半導体メモリに追い出すためのトリガとなるパラメータが、複数存在することを特徴とする請求項1乃至3の何れか一つに記載のメモリシステム。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008335568A JP5221332B2 (ja) | 2008-12-27 | 2008-12-27 | メモリシステム |
EP09835127A EP2350835A4 (en) | 2008-12-27 | 2009-12-28 | MEMORY SYSTEM, MEMORY SYSTEM CONTROL METHOD, AND INFORMATION PROCESSING DEVICE |
CN200980135254.1A CN102150140B (zh) | 2008-12-27 | 2009-12-28 | 存储器系统、控制存储器系统的方法和信息处理装置 |
TW098145327A TWI428745B (zh) | 2008-12-27 | 2009-12-28 | 記憶體系統、控制記憶體系統的方法及資訊處理裝置 |
KR1020117005595A KR101200240B1 (ko) | 2008-12-27 | 2009-12-28 | 메모리 시스템, 메모리 시스템의 제어 방법, 및 정보 처리 장치 |
US13/063,210 US8868842B2 (en) | 2008-12-27 | 2009-12-28 | Memory system, method of controlling memory system, and information processing apparatus |
PCT/JP2009/071918 WO2010074352A1 (en) | 2008-12-27 | 2009-12-28 | Memory system, method of controlling memory system, and information processing apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008335568A JP5221332B2 (ja) | 2008-12-27 | 2008-12-27 | メモリシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010157142A JP2010157142A (ja) | 2010-07-15 |
JP5221332B2 true JP5221332B2 (ja) | 2013-06-26 |
Family
ID=42287929
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008335568A Expired - Fee Related JP5221332B2 (ja) | 2008-12-27 | 2008-12-27 | メモリシステム |
Country Status (7)
Country | Link |
---|---|
US (1) | US8868842B2 (ja) |
EP (1) | EP2350835A4 (ja) |
JP (1) | JP5221332B2 (ja) |
KR (1) | KR101200240B1 (ja) |
CN (1) | CN102150140B (ja) |
TW (1) | TWI428745B (ja) |
WO (1) | WO2010074352A1 (ja) |
Families Citing this family (89)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ITMI20071012A1 (it) * | 2007-05-18 | 2008-11-19 | St Microelectronics Srl | Dispositivo di memoria migliorato a veloce programmazione |
JP2009211233A (ja) * | 2008-03-01 | 2009-09-17 | Toshiba Corp | メモリシステム |
JP5032371B2 (ja) | 2008-03-01 | 2012-09-26 | 株式会社東芝 | メモリシステム |
US10430338B2 (en) | 2008-09-19 | 2019-10-01 | Oracle International Corporation | Selectively reading data from cache and primary storage based on whether cache is overloaded |
US8868831B2 (en) | 2009-09-14 | 2014-10-21 | Oracle International Corporation | Caching data between a database server and a storage system |
JP2011128998A (ja) | 2009-12-18 | 2011-06-30 | Toshiba Corp | 半導体記憶装置 |
JP5279785B2 (ja) * | 2010-09-17 | 2013-09-04 | 株式会社東芝 | コントローラ、記憶装置、およびプログラム |
JP5066241B2 (ja) | 2010-09-24 | 2012-11-07 | 株式会社東芝 | メモリシステム |
IL208641A0 (en) * | 2010-10-12 | 2010-12-30 | Eci Telecom Ltd | Method for accelerating start up of a computerized system |
US8516194B2 (en) * | 2010-11-22 | 2013-08-20 | Micron Technology, Inc. | Systems and methods for caching data with a nonvolatile memory cache |
JP2012128643A (ja) | 2010-12-15 | 2012-07-05 | Toshiba Corp | メモリシステム |
JP5535128B2 (ja) | 2010-12-16 | 2014-07-02 | 株式会社東芝 | メモリシステム |
JP2012141946A (ja) * | 2010-12-16 | 2012-07-26 | Toshiba Corp | 半導体記憶装置 |
JP2012128816A (ja) | 2010-12-17 | 2012-07-05 | Toshiba Corp | メモリシステム |
JP2012128815A (ja) * | 2010-12-17 | 2012-07-05 | Toshiba Corp | メモリシステム |
CN102065146B (zh) * | 2011-01-05 | 2014-06-18 | 上海聚欣网络科技有限公司 | 用于优化嵌入式终端在p2p应用中的存储效率的方法与设备 |
JP5295286B2 (ja) * | 2011-02-23 | 2013-09-18 | 株式会社日立製作所 | 記憶装置およびそれを搭載した計算機 |
WO2013005343A1 (en) * | 2011-07-01 | 2013-01-10 | Renesas Electronics Corporation | Apparatus and method for a marker guided data transfer between a single memory and an array of memories with unevenly distributed data amount in an simd processor system |
US8463948B1 (en) * | 2011-07-01 | 2013-06-11 | Intel Corporation | Method, apparatus and system for determining an identifier of a volume of memory |
TWI467372B (zh) * | 2011-07-06 | 2015-01-01 | Phison Electronics Corp | 指令執行方法、記憶體控制器與記憶體儲存裝置 |
JP2013065150A (ja) * | 2011-09-16 | 2013-04-11 | Toshiba Corp | キャッシュメモリ装置、プロセッサ、および情報処理装置 |
US10592416B2 (en) | 2011-09-30 | 2020-03-17 | Oracle International Corporation | Write-back storage cache based on fast persistent memory |
CN103999067A (zh) * | 2011-12-21 | 2014-08-20 | 英特尔公司 | 以多个非易失性存储器为特征的高性能存储结构和系统 |
JP2013137674A (ja) * | 2011-12-28 | 2013-07-11 | Toshiba Corp | メモリシステム |
US9251055B2 (en) | 2012-02-23 | 2016-02-02 | Kabushiki Kaisha Toshiba | Memory system and control method of memory system |
US8924636B2 (en) | 2012-02-23 | 2014-12-30 | Kabushiki Kaisha Toshiba | Management information generating method, logical block constructing method, and semiconductor memory device |
US8990477B2 (en) | 2012-04-19 | 2015-03-24 | Sandisk Technologies Inc. | System and method for limiting fragmentation |
TWI459201B (zh) * | 2012-04-27 | 2014-11-01 | Toshiba Kk | Information processing device |
JP5914148B2 (ja) * | 2012-05-07 | 2016-05-11 | 株式会社バッファローメモリ | Ssd(ソリッドステートドライブ)装置 |
US8392428B1 (en) * | 2012-09-12 | 2013-03-05 | DSSD, Inc. | Method and system for hash fragment representation |
JP6056453B2 (ja) * | 2012-12-20 | 2017-01-11 | 富士通株式会社 | プログラム、データ管理方法および情報処理装置 |
KR20140099737A (ko) | 2013-02-04 | 2014-08-13 | 삼성전자주식회사 | 존-기반 조각모음 방법 및 그것을 이용한 유저 장치 |
US8990458B2 (en) | 2013-02-28 | 2015-03-24 | Kabushiki Kaisha Toshiba | Controller, semiconductor storage device and method of controlling data writing |
US20140250277A1 (en) * | 2013-03-04 | 2014-09-04 | Kabushiki Kaisha Toshiba | Memory system |
US20140281194A1 (en) * | 2013-03-15 | 2014-09-18 | Seagate Technology Llc | Dynamically-sizeable granule storage |
US9588886B2 (en) | 2013-03-15 | 2017-03-07 | Seagate Technology Llc | Staging sorted data in intermediate storage |
EP2979187B1 (en) * | 2013-03-28 | 2019-07-31 | Hewlett-Packard Enterprise Development LP | Data flush of group table |
US9703701B2 (en) | 2013-03-28 | 2017-07-11 | Hewlett Packard Enterprise Development Lp | Address range transfer from first node to second node |
TWI537734B (zh) * | 2013-06-18 | 2016-06-11 | 群聯電子股份有限公司 | 資料保護方法、記憶體控制器與記憶體儲存裝置 |
JP6021759B2 (ja) | 2013-08-07 | 2016-11-09 | 株式会社東芝 | メモリシステムおよび情報処理装置 |
US10229161B2 (en) | 2013-09-20 | 2019-03-12 | Oracle International Corporation | Automatic caching of scan and random access data in computing systems |
US9798655B2 (en) * | 2013-09-20 | 2017-10-24 | Oracle International Corporation | Managing a cache on storage devices supporting compression |
JP2015130135A (ja) * | 2014-01-09 | 2015-07-16 | 株式会社東芝 | データ配信装置、及びデータ配信方法 |
JP6248808B2 (ja) * | 2014-05-22 | 2017-12-20 | 富士通株式会社 | 情報処理装置、情報処理システム、情報処理装置の制御方法、及び、情報処理装置の制御プログラム |
US9239757B2 (en) * | 2014-05-30 | 2016-01-19 | Sandisk Technologies Inc. | Method and apparatus for relocating data in non-volatile memory |
CN105320621A (zh) * | 2014-08-04 | 2016-02-10 | 株式会社东芝 | 存储器系统以及信息处理装置 |
US20160093397A1 (en) * | 2014-09-30 | 2016-03-31 | Emc Corporation | Method and system for improving flash storage utilization using read-threshold tables |
US9690655B2 (en) * | 2014-09-30 | 2017-06-27 | EMC IP Holding Company LLC | Method and system for improving flash storage utilization by predicting bad m-pages |
US10691531B2 (en) | 2014-12-04 | 2020-06-23 | Western Digital Technologies, Inc. | Systems and methods for multi-zone data tiering for endurance extension in solid state drives |
TWI512461B (zh) * | 2014-12-25 | 2015-12-11 | Prophetstor Data Services Inc | 用於混合式儲存設備的固態硬碟快取系統 |
CN104731674B (zh) * | 2015-02-02 | 2020-09-01 | 北京忆恒创源科技有限公司 | 使用mlc nvm存储电子系统固件的方法与设备 |
US9414079B1 (en) * | 2015-03-23 | 2016-08-09 | Kyocera Document Solutions Inc. | Interleaving encoding |
CN104980680B (zh) * | 2015-06-30 | 2017-11-03 | 银江股份有限公司 | 一种视频数据存取的方法 |
JP6757128B2 (ja) * | 2015-09-25 | 2020-09-16 | 富士通デバイス株式会社 | 遊技機用記憶装置 |
US9747041B2 (en) | 2015-12-23 | 2017-08-29 | Intel Corporation | Apparatus and method for a non-power-of-2 size cache in a first level memory device to cache data present in a second level memory device |
KR20180011376A (ko) * | 2016-07-21 | 2018-02-01 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
JP2018041204A (ja) * | 2016-09-06 | 2018-03-15 | 東芝メモリ株式会社 | メモリ装置及び情報処理システム |
US10133667B2 (en) | 2016-09-06 | 2018-11-20 | Orcle International Corporation | Efficient data storage and retrieval using a heterogeneous main memory |
CN107870872B (zh) * | 2016-09-23 | 2021-04-02 | 伊姆西Ip控股有限责任公司 | 用于管理高速缓存的方法和设备 |
US10331573B2 (en) | 2016-11-04 | 2019-06-25 | Oracle International Corporation | Detection of avoidable cache thrashing for OLTP and DW workloads |
US10198203B2 (en) * | 2016-11-15 | 2019-02-05 | Samsung Electronics Co., Ltd. | Method of operating memory device using pseudo-random functions, memory device using the same and memory system including the device |
US10095417B1 (en) | 2016-12-13 | 2018-10-09 | EMC IP Holding Company LLC | Method and system for improving flash storage read performance in partially programmed blocks |
US10002086B1 (en) * | 2016-12-20 | 2018-06-19 | Sandisk Technologies Llc | Multi-channel memory operations based on bit error rates |
US10338983B2 (en) | 2016-12-30 | 2019-07-02 | EMC IP Holding Company LLC | Method and system for online program/erase count estimation |
US11069418B1 (en) | 2016-12-30 | 2021-07-20 | EMC IP Holding Company LLC | Method and system for offline program/erase count estimation |
US10289550B1 (en) | 2016-12-30 | 2019-05-14 | EMC IP Holding Company LLC | Method and system for dynamic write-back cache sizing in solid state memory storage |
KR20180093153A (ko) * | 2017-02-09 | 2018-08-21 | 에스케이하이닉스 주식회사 | 데이터 저장 장치의 동작 방법 |
US10403366B1 (en) | 2017-04-28 | 2019-09-03 | EMC IP Holding Company LLC | Method and system for adapting solid state memory write parameters to satisfy performance goals based on degree of read errors |
US10290331B1 (en) | 2017-04-28 | 2019-05-14 | EMC IP Holding Company LLC | Method and system for modulating read operations to support error correction in solid state memory |
US10803039B2 (en) | 2017-05-26 | 2020-10-13 | Oracle International Corporation | Method for efficient primary key based queries using atomic RDMA reads on cache friendly in-memory hash index |
KR101974731B1 (ko) * | 2017-08-14 | 2019-05-02 | 성균관대학교산학협력단 | 플래시 스토리지 장치 및 플래시 스토리지 장치에 데이터를 기록하는 방법 |
US10719446B2 (en) | 2017-08-31 | 2020-07-21 | Oracle International Corporation | Directly mapped buffer cache on non-volatile memory |
US11086876B2 (en) | 2017-09-29 | 2021-08-10 | Oracle International Corporation | Storing derived summaries on persistent memory of a storage device |
US10802766B2 (en) | 2017-09-29 | 2020-10-13 | Oracle International Corporation | Database with NVDIMM as persistent storage |
US10956335B2 (en) | 2017-09-29 | 2021-03-23 | Oracle International Corporation | Non-volatile cache access using RDMA |
US10732836B2 (en) | 2017-09-29 | 2020-08-04 | Oracle International Corporation | Remote one-sided persistent writes |
KR20190088790A (ko) | 2018-01-19 | 2019-07-29 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
US11099789B2 (en) | 2018-02-05 | 2021-08-24 | Micron Technology, Inc. | Remote direct memory access in multi-tier memory systems |
US11416395B2 (en) | 2018-02-05 | 2022-08-16 | Micron Technology, Inc. | Memory virtualization for accessing heterogeneous memory components |
US10782908B2 (en) | 2018-02-05 | 2020-09-22 | Micron Technology, Inc. | Predictive data orchestration in multi-tier memory systems |
US20190243787A1 (en) * | 2018-02-05 | 2019-08-08 | Micron Technology, Inc. | Memory Systems having Controllers Embedded in Packages of Integrated Circuit Memory |
US10880401B2 (en) | 2018-02-12 | 2020-12-29 | Micron Technology, Inc. | Optimization of data access and communication in memory systems |
US10877892B2 (en) | 2018-07-11 | 2020-12-29 | Micron Technology, Inc. | Predictive paging to accelerate memory access |
US10929139B2 (en) * | 2018-09-27 | 2021-02-23 | Qualcomm Incorporated | Providing predictive instruction dispatch throttling to prevent resource overflows in out-of-order processor (OOP)-based devices |
US10852949B2 (en) | 2019-04-15 | 2020-12-01 | Micron Technology, Inc. | Predictive data pre-fetching in a data storage device |
KR20210016188A (ko) | 2019-08-01 | 2021-02-15 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
KR20210027563A (ko) * | 2019-08-28 | 2021-03-11 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
US11914482B2 (en) * | 2020-11-20 | 2024-02-27 | Pelatro Pte. Ltd. | System and method for robust, efficient, adaptive streaming replication application protocol with dancing recovery for high-volume distributed live subscriber datasets |
US11929121B2 (en) | 2022-03-09 | 2024-03-12 | Micron Technology, Inc. | Storing one data value by programming a first memory cell and a second memory cell |
Family Cites Families (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR970008188B1 (ko) * | 1993-04-08 | 1997-05-21 | 가부시끼가이샤 히다찌세이사꾸쇼 | 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치 |
JPH07146820A (ja) * | 1993-04-08 | 1995-06-06 | Hitachi Ltd | フラッシュメモリの制御方法及び、それを用いた情報処理装置 |
US5542066A (en) * | 1993-12-23 | 1996-07-30 | International Business Machines Corporation | Destaging modified data blocks from cache memory |
JP2000089983A (ja) * | 1998-09-10 | 2000-03-31 | Casio Comput Co Ltd | データ保存装置及びデータ保存方法 |
GB2361836B (en) * | 1998-11-24 | 2004-03-24 | Niksun Inc | Apparatus and method for collecting and analyzing communications data |
JPH11288387A (ja) * | 1998-12-11 | 1999-10-19 | Fujitsu Ltd | ディスクキャッシュ装置 |
US7173863B2 (en) | 2004-03-08 | 2007-02-06 | Sandisk Corporation | Flash controller cache architecture |
US7590803B2 (en) * | 2004-09-23 | 2009-09-15 | Sap Ag | Cache eviction |
JP5162846B2 (ja) * | 2005-07-29 | 2013-03-13 | ソニー株式会社 | 記憶装置、コンピュータシステム、および記憶システム |
JP2007199905A (ja) * | 2006-01-25 | 2007-08-09 | Toshiba Corp | 半導体記憶装置の制御方法 |
JP4768504B2 (ja) * | 2006-04-28 | 2011-09-07 | 株式会社東芝 | 不揮発性フラッシュメモリを用いる記憶装置 |
JP2008152464A (ja) * | 2006-12-15 | 2008-07-03 | Toshiba Corp | 記憶装置 |
US7657701B2 (en) * | 2007-01-03 | 2010-02-02 | The General Electric Company | System and method of flash memory wear leveling using distributed write cycles |
US7783839B2 (en) * | 2007-01-08 | 2010-08-24 | International Business Machines Corporation | Using different algorithms to destage different types of data from cache |
KR100823171B1 (ko) * | 2007-02-01 | 2008-04-18 | 삼성전자주식회사 | 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법 |
JP5026102B2 (ja) * | 2007-02-07 | 2012-09-12 | 株式会社日立製作所 | ストレージ制御装置及びデータ管理方法 |
JP2008299441A (ja) * | 2007-05-29 | 2008-12-11 | Hitachi Ltd | ストレージシステム及びこれを用いたデータの管理方法 |
JP4564520B2 (ja) | 2007-08-31 | 2010-10-20 | 株式会社東芝 | 半導体記憶装置およびその制御方法 |
JP4538034B2 (ja) | 2007-09-26 | 2010-09-08 | 株式会社東芝 | 半導体記憶装置、及びその制御方法 |
US8200904B2 (en) * | 2007-12-12 | 2012-06-12 | Sandisk Il Ltd. | System and method for clearing data from a cache |
JP4461170B2 (ja) * | 2007-12-28 | 2010-05-12 | 株式会社東芝 | メモリシステム |
JP4533968B2 (ja) * | 2007-12-28 | 2010-09-01 | 株式会社東芝 | 半導体記憶装置及びその制御方法、コントローラ、情報処理装置 |
US7865658B2 (en) * | 2007-12-31 | 2011-01-04 | Sandisk Il Ltd. | Method and system for balancing host write operations and cache flushing |
JP4489127B2 (ja) * | 2008-02-29 | 2010-06-23 | 株式会社東芝 | 半導体記憶装置 |
JP4675984B2 (ja) * | 2008-02-29 | 2011-04-27 | 株式会社東芝 | メモリシステム |
JP2009211234A (ja) * | 2008-03-01 | 2009-09-17 | Toshiba Corp | メモリシステム |
US8276043B2 (en) * | 2008-03-01 | 2012-09-25 | Kabushiki Kaisha Toshiba | Memory system |
JP4498426B2 (ja) * | 2008-03-01 | 2010-07-07 | 株式会社東芝 | メモリシステム |
US8706950B2 (en) * | 2008-03-01 | 2014-04-22 | Kabushiki Kaisha Toshiba | Memory system |
JP4643667B2 (ja) * | 2008-03-01 | 2011-03-02 | 株式会社東芝 | メモリシステム |
KR101067457B1 (ko) * | 2008-03-01 | 2011-09-27 | 가부시끼가이샤 도시바 | 메모리 시스템 |
JP4551940B2 (ja) * | 2008-03-01 | 2010-09-29 | 株式会社東芝 | メモリシステム |
JP4691123B2 (ja) * | 2008-03-01 | 2011-06-01 | 株式会社東芝 | メモリシステム |
JP2009211215A (ja) * | 2008-03-01 | 2009-09-17 | Toshiba Corp | メモリシステム |
JP4745356B2 (ja) * | 2008-03-01 | 2011-08-10 | 株式会社東芝 | メモリシステム |
JP4653817B2 (ja) * | 2008-03-01 | 2011-03-16 | 株式会社東芝 | メモリシステム |
JP4675985B2 (ja) * | 2008-03-01 | 2011-04-27 | 株式会社東芝 | メモリシステム |
EP2118756A4 (en) * | 2008-03-01 | 2010-12-15 | Toshiba Kk | MEMORY SYSTEM |
JP5010505B2 (ja) * | 2008-03-01 | 2012-08-29 | 株式会社東芝 | メモリシステム |
US8484432B2 (en) * | 2008-03-11 | 2013-07-09 | Kabushiki Kaisha Toshiba | Memory system |
JP4762261B2 (ja) | 2008-03-12 | 2011-08-31 | 株式会社東芝 | メモリシステム |
JP4439569B2 (ja) * | 2008-04-24 | 2010-03-24 | 株式会社東芝 | メモリシステム |
JP2010176646A (ja) * | 2009-02-02 | 2010-08-12 | Toshiba Information Systems (Japan) Corp | メモリシステムおよびメモリシステムのインターリーブ制御方法 |
-
2008
- 2008-12-27 JP JP2008335568A patent/JP5221332B2/ja not_active Expired - Fee Related
-
2009
- 2009-12-28 WO PCT/JP2009/071918 patent/WO2010074352A1/en active Application Filing
- 2009-12-28 TW TW098145327A patent/TWI428745B/zh not_active IP Right Cessation
- 2009-12-28 US US13/063,210 patent/US8868842B2/en not_active Expired - Fee Related
- 2009-12-28 EP EP09835127A patent/EP2350835A4/en not_active Withdrawn
- 2009-12-28 KR KR1020117005595A patent/KR101200240B1/ko not_active IP Right Cessation
- 2009-12-28 CN CN200980135254.1A patent/CN102150140B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20110238899A1 (en) | 2011-09-29 |
TWI428745B (zh) | 2014-03-01 |
JP2010157142A (ja) | 2010-07-15 |
EP2350835A4 (en) | 2012-09-05 |
KR20110050505A (ko) | 2011-05-13 |
KR101200240B1 (ko) | 2012-11-09 |
CN102150140A (zh) | 2011-08-10 |
TW201102816A (en) | 2011-01-16 |
WO2010074352A1 (en) | 2010-07-01 |
US8868842B2 (en) | 2014-10-21 |
CN102150140B (zh) | 2014-07-23 |
EP2350835A1 (en) | 2011-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5221332B2 (ja) | メモリシステム | |
JP5317689B2 (ja) | メモリシステム | |
JP5198245B2 (ja) | メモリシステム | |
JP5317690B2 (ja) | メモリシステム | |
JP5010505B2 (ja) | メモリシステム | |
US8225047B2 (en) | Memory system with pre-fetch operation | |
JP4691122B2 (ja) | メモリシステム | |
KR101066937B1 (ko) | 메모리 시스템 및 그 데이터 소거 방법 | |
JP4653817B2 (ja) | メモリシステム | |
KR101067457B1 (ko) | 메모리 시스템 | |
JP4691123B2 (ja) | メモリシステム | |
US20140189420A1 (en) | Memory system | |
JP2012008651A (ja) | 半導体記憶装置、その制御方法および情報処理装置 | |
JP2009211233A (ja) | メモリシステム | |
US11675512B2 (en) | Storage system and method for using read and write buffers in a memory | |
JP5178857B2 (ja) | メモリシステム | |
JP2009211224A (ja) | メモリシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110318 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120918 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121116 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121211 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130123 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130212 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130307 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160315 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160315 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |