JP5664347B2 - 仮想メモリシステム、仮想メモリの制御方法、およびプログラム - Google Patents
仮想メモリシステム、仮想メモリの制御方法、およびプログラム Download PDFInfo
- Publication number
- JP5664347B2 JP5664347B2 JP2011047376A JP2011047376A JP5664347B2 JP 5664347 B2 JP5664347 B2 JP 5664347B2 JP 2011047376 A JP2011047376 A JP 2011047376A JP 2011047376 A JP2011047376 A JP 2011047376A JP 5664347 B2 JP5664347 B2 JP 5664347B2
- Authority
- JP
- Japan
- Prior art keywords
- virtual
- page
- physical
- address
- memory
- 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/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
このような構成を有する仮想メモリシステムは、揮発性メモリであるDRAMの物理メモリ空間を対象としたシステムとして、さまざまなシステムで使用されている。
仮想メモリシステムにおいては、必要とするメモリ容量のみ確保されるため、限られた物理メモリ容量を効率よく使用できるだけでなく、物理メモリ空間へのアクセスはアプリケーションごとに独立した仮想アドレス空間を使用してアクセスされる。
このため、仮想メモリシステムは、物理アドレス空間上で非連続な物理ページの並びであったとしても、仮想アドレス空間上においては、連続した仮想ページ空間としてアクセスできるメリットがある。
これらスワップアウト、スワップイン処理は発生時にストレージへのアクセス、メモリとストレージ間のデータ転送などが発生し、アプリケーションから見てシステムのパフォーマンスの一時的な低下を引き起こす。ただし、物理メモリ容量の制約を受けずにアプリケーションの実行を可能とするメリットもある。
この技術は、現状ではNANDフラッシュを代表とする不揮発性メモリを高速なストレージとして使用することで、コードやデータのロードや、上記スワップアウト、スワップインといったデマンドページングの処理を高速化し、システムパフォーマンスを改善する。
このような不揮発性ランダムアクセスメモリは、その不揮発性である特徴を活かし、NANDフラッシュよりも高速なストレージを構成する以外に、ワークメモリであるDRAMを置換えることで、低消費電力で高速なシステムを実現することができる。
揮発性メモリのように書換え回数に上限のないメモリを前提とした現在のシステムでは、不揮発性ランダムアクセスをそのままワークメモリとして使った場合、次のような不利益が生じる恐れがある。すなわち、不揮発性ランダムアクセスをそのままワークメモリとして使った場合、特定の領域に書換えが集中することによるデータエラーが発生し、システムの動作に致命的な影響を与える恐れが存在する。
仮想メモリシステムが不揮発性ランダムアクセスメモリにも対応することによって、デマンドページングのような現在のシステムで有用な機能を実現しつつ、不揮発性であることによる消費電力の削減効果を発揮することができる。
具体的には、不揮発性ランダムアクセスメモリであれば、アクセスしないアドレス領域のメモリデバイスへの電源供給を停止できる。これにより、不揮発性ランダムアクセスメモリは同容量の揮発性メモリより低消費電力であり、またシステムの起動時や終了時に、メモリの状態を保存、再現するためにストレージにアクセスする必要もないため、さらにシステムの瞬間起動、瞬間終了が可能となる。
その結果、現状の仮想メモリシステムは、物理ページの割り当てはアプリケーションからの要求による順番によって決定され、さらにデータの書込みが特定の物理ページに集中することを管理制御する手段を持っていない。
なお、説明は以下の順序で行う。
1.第1の実施形態(仮想メモリシステムの第1の構成例)
2.第2の実施形態(仮想メモリシステムの第2の構成例)
3.第3の実施形態(仮想メモリシステムの第3の構成例)
図1は、本第1の実施形態に係る不揮発性ランダムアクセスメモリ(NVRAM)を適用した仮想メモリシステムの構成を示す図である。
不揮発性ランダムアクセスメモリ40は、ランダムアクセス可能で、書換え回数に上限があり、その物理アドレス空間へのアクセスはCPU20の制御の下、仮想アドレス空間を介して行われる。
CPU20は、トランスレーションルックアサイドバッファ(Translation Look-aside Buffer;TLB)24、およびバスインタフェースユニット(Bus Interface Unit)25を有する。
本仮想メモリシステム10は、割り当てるメモリ領域に対して、アプリケーションからどれだけの書換え回数が発生するかを考慮してメモリ領域のアロケーションやサイズを決定する第1の機能を有する。
また、仮想メモリシステム10は、タイマーなどの内部イベント、あるいはOSやアプリケーションからの指示を受けて、割り当てた物理ページ間で書込み回数を平均化するためにデータを移動する第2の機能を有する。
また、仮想メモリシステム10は、仮想メモリ制御部としてのCPU20が不揮発性ランダムアクセスメモリ40の書換え回数の上限に関する情報をメモリコントローラから取得する。これにより、上記第1の機能および第2の機能を各不揮発性ランダムアクセスメモリの書換え回数の仕様に合わせて柔軟に対応することもできるように形成される。
CPU20内のプロセッサユニット21はバスインタフェースユニット25を介してシステムバス50に接続されている。
バスインタフェースユニット25にはMMU22とキャッシュメモリ23とMMU22が使用するページディレクトリテーブル(Page Directory Table)、ページテーブル(Page Table)のエントリ(Entry)をキャッシュするTLB24が接続されている。
なお、CPUとしては、キャッシュメモリ23やTLB24を命令用とデータ用で独立に持ったCPUや、L1、L2、L3など複数段のキャッシュメモリを持ったCPUも適用することが可能である。
本第1の実施形態において、メモリは不揮発性ランダムアクセスメモリである。ただし、後述するように、DRAM等の揮発性メモリを接続して、一般的な仮想メモリシステムとして構成することも可能である。
CPU20において、仮想メモリ制御は、基本的にMMU22と仮想メモリ制御ソフトウェアを中心に行われる。
仮想メモリ制御部はMMU22と仮想メモリ制御ソフトウェアによって、新しい物理ページを仮想ページに割り当てる機能と、仮想ページに割り当てられた物理ページを開放する機能を持つ。
仮想メモリ制御部は、未使用の物理ページが不足した場合に、MMU22が管理するすでに物理ページの割り当てられた仮想ページの中から、パフォーマンスに与える影響が少ないと判断した仮想ページを選択し、その仮想ページに割り当てられた物理ページのデータをストレージ上の専用の領域に書出すように制御する。
ここで、パフォーマンスに与える影響の少ないとは、たとえば最もアクセス頻度が低いと判断したページを選択することである。
仮想メモリ制御部は、上記物理ページのデータをストレージ上に退避した後、上記物理ページに割り当てられた仮想ページの管理テーブル上の属性に、その仮想ページが物理メモリ上に存在しないことを示すフラグをセットする。
仮想メモリ制御部は、ストレージ上の専用領域に書き出した物理ページのデータが再度必要となった場合に、空き物理ページにそのデータを読込むように制御し、そのときMMU22の管理する上記管理テーブル上の属性のメモリ上に存在しないことを示すフラグをリセットする。
なお、ストレージとしては、ハードディスク等を例示することができる。
MMU22は、物理アドレスと仮想アドレスをページ単位ごとにマッピングし、書換えが発生する仮想ページに対して、その仮想ページに対する書込み量に関する情報を基に、複数の物理ページを割り当てて管理することができる。
仮想メモリ制御部は、タイマーなどの内部イベントあるいは、OSやアプリケーションからの指示に従って、割り当てた物理ページ間でデータを移動し、書込み回数を平均化する機能を含む。
本実施形態において、仮想メモリシステム10は、仮想アドレスを物理アドレスに変換するための情報を含む2つの管理テーブルを有する。
第1の管理テーブルには、物理ページ管理情報として、仮想ページに割り当てて使用中か、未割り当てであり未使用かを示す情報と、その物理ページのこれまでの累積書込み容量に関する情報を含む(後述する図5)。
第2の管理テーブルには、アドレス変換情報として、仮想ページに割り当てられた物理ページアドレスを管理する情報を含み、この情報に、その物理ページが不揮発性メモリにあるか否かを示す情報と、上記決定した物理ページを拡張した容量に関する情報を含む。
これにより、電源投入時は、不揮発性ランダムアクセスメモリ40上からテーブル情報を読み取り、電源切断前の状態に復帰することが可能となっている。
現状の一般的なシステムにはメモリコントローラとしてDRAMコントローラを使用して揮発性メモリであるDRAMをワークメモリとして使用するシステムがもっとも多く存在する。
また近年ではCPUとワークメモリ間の転送効率を改善するために、DRAMコントローラをCPUに内蔵したデバイスも存在している。
このような現状のシステムではメモリがすべて揮発性であるため、システムの起動にはBIOSと呼ばれるROMを必要とする。
そして、BIOS内のブートローダ(Boot Loader)と呼ばれるプログラムを実行することでOS、さらにOSによってアプリケーションまで、その実行に必要とするプログラムコードとデータが、ハードディスクなどのストレージ上からワークメモリ上にロードされ、順次実行される。
ハードディスクのアクセス時間は数10msに対し、ワークメモリのDRAMは数10nsレベルと、そのアクセス時間のギャップは大きい。
NANDフラッシュを搭載したSSDの登場によりストレージのアクセス時間は数100μsまで改善されたが、いまだにDRAMとの間にはアクセス速度のギャップが存在しており、効率のよいCPUの動作を妨げる大きな要因となっている。
図2は、一般的な仮想アドレス空間と物理アドレス空間のマッピング例を示す図である。
一般的な仮想メモリシステムでは、使用するメモリはSRAMやDRAMのように書込み回数の上限を持たない揮発性メモリである。
仮想アドレス空間VASは、物理アドレス空間PASよりも大きなアドレス空間であり、ページPGと呼ばれる一般的には4Kbyteのサイズからなる単位領域ごとに仮想アドレスと物理アドレスがマッピングされる。1つの仮想ページVPGは1つの物理ページPPGに割り当てられ、そのサイズは一致している。
たとえば、図2のリード領域(Read Area)RA1は読出し専用の領域であり、ライト領域(Write Area)WA1、WA2は読出しと書込みを行う領域である。これら3つの領域では割り当てられた仮想ページVPGと物理ページPPGの数は一致している。
図3は、本実施形態の仮想アドレス空間と物理アドレス空間のマッピング例を示す図である。
ここで使用するメモリは不揮発性ランダムアクセスメモリであり、書換え回数の上限が存在するメモリである。
本実施形態の仮想メモリシステム10は、書換えが発生する仮想ページに対して、複数の物理ページを割り当てることにより、書換え回数の制限を回避することを特徴としている。
たとえば、図3のリード領域(Read Area)RA11は読出し専用の領域であり、ライト領域(Write Area)WA11は読出しと書込みを行う領域である。これら2つの領域では割り当てられた仮想ページVPGと物理ページPPGの数は一致している。
一方のライト領域(Write Area)WA12は仮想メモリ空間でのサイズが2ページであるのに対して、物理メモリ空間では4ページとなっている。
ライト領域(Write Area)WA11とライト領域(Write Area)WA12の違いは、その領域に発生する書込みデータの量の違いから来る書換え回数の違いである。ライト領域(Write Area)WA12はライト領域(Write Area)WA11の2倍の書換え回数が発生することを意味している。
本実施形態では、仮想ページVPGに対する書込み量を示す情報が仮想メモリシステム10に対して提供されており、その書込み量に関する情報に基づき、割り当てるべき物理ページPPGの数を算出し決定する機能を持っている。
図4は、仮想メモリシステムでの仮想アドレスから物理アドレスへの変換の過程を示す図である。
このアドレス変換には第2の管理テーブルとして、ページディレクトリテーブル(Page Directory Table)PDT11とページテーブル(Page Table)PT11の2つのテーブルが使用される。
ページディレクトリテーブルPDT11は仮想アドレスVAの上位ビット(Bit)UBTを参照値として、ページディレクトリテーブルPDT11のエントリ(Entry)PDTEを特定する。そして、その上位ビットUBTが指定する仮想アドレス領域に対する物理ページPPGのアドレスを管理するページテーブルPT11にアクセスする。
次に、仮想アドレスVAの中位MBTを参照値として、ページテーブルPT11のエントリ(Entry)PTEを特定し、該当する物理ページPPGのアドレスを取得する。残った下位ビットLBTが示すアドレスをオフセットとして、最終的なデータの物理アドレスPA(Physical Address)が決まる。
図5は、本実施形態に係る物理ページ管理情報テーブルの例を示す図である。
図6は、図5の比較例であって、一般的な物理ページ管理情報テーブルの例を示す図である。
第1の管理テーブルとして、各物理ページが仮想ページに割り当て使用中であるかの情報(使用状態フラグuflag)を持つ物理ページ管理情報テーブルPPGMT1を持つ。
仮想メモリ制御部が新たに物理ページPPGを割り当てる場合や、割り当てた物理ページPPGを解放する場合に、図5および図6に示すように、この物理ページ管理情報を元に、その対象となる物理ページの管理情報を変更し管理している。
一般的な揮発性メモリを搭載した仮想メモリシステムでは終了時にストレージ上にこれらの2つの管理テーブルを保存し、起動時に再び読み込むことで、終了前の状態を再現する。
本実施形態の物理ページ管理情報は、上記使用状態フラグuflagの他に、図5に示すように、現在までの書込み容量を示す情報(CWAM)を持つ。仮想メモリ制御部が新たに物理ページを割り当てる場合や、割り当てた物理ページを解放する場合に、この物理ページ管理情報を基に、使用状態フラグuflagと現在までの書込み容量CWAMを元に物理ページを選択し、それぞれの情報を更新管理している。使用状態フラグuflagは、たとえば未使用時は論理「0」に設定され、使用時は論理「1」に設定される。
本実施形態は不揮発性ランダムアクセスメモリ40を搭載するため、そのようなストレージへのアクセス、保存が不要となる。
図7は、一般的なページディレクトリテーブルのエントリ(Entry)の例を示す図である。
図7のページディレクトリテーブルエントリPDTE1は、仮想アドレスの上位ビットで指定された領域のページテーブルPT11が存在する先頭物理アドレスを示すページテーブルベースアドレス(Page Table Base Address)PTBAを含む。
ページディレクトリテーブルエントリPDTE1は、ページデーブルベースアドレスPTBAとその他の情報ビットにより形成される。
ページレベルキャッシュディセブル(Page Level Cache Disable)PCDビットは、このビットが1の場合に、このエントリ(Entry)が示す仮想アドレス領域は上記CPU20の持つキャッシュ(Cache)メモリ23に保存されないことを示す。
すなわち、ページレベルキャッシュライトスルーPCWTビットが1である場合は、このエントリ(Entry)の示す仮想アドレス領域への書込みはCPU20の持つキャッシュメモリ23に保存され、かつ仮想アドレス領域に対しても書き込まれることを示す。
つまり、この領域に対する書込みはキャッシュメモリ23に対して行われず直接このエントリ(Entry)が示したページテーブルPT11によって指示される物理ページ領域に書込まれることを示す。
PCWTビットが0であった場合には、ライトバック(Write Back)方式であることを示し、このエントリ(Entry)が示す仮想アドレス領域への書込みはCPU20の持つキャッシュメモリ23に対して行われることを示す。
R/Wビットは、そのビットが0であった場合には、リードオンリー(Read Only)であることを示している。
プレゼンスPビットが0であった場合には、そのデータはスワップアウトされストレージ上に保存されており、再利用するには新たな物理アドレス空間を割り当て、データをストレージから読み込むスワップインの処理が必要であることを示している。
図8は、一般的なページテーブルのエントリ(Entry)の例を示す図である。
図8のページテーブルエントリPTE1は、そのエントリ(Entry)の示す仮想ページに割り当てられた物理ページの先頭アドレスを示すページベースアドレス(Page Base Address)PBAとその他の情報ビットにより形成される。
ダーティビット(Dirty Bit)DBビットは、そのビットが1であった場合は、そのエントリ(Entry)の仮想ページVPGに割り当てられた物理ページPPGに対して書込みが発生したことを示す。
それ以外の情報ビットは図7のページディレクトリテーブルエントリPDTE1と同様である。
図9は、本実施形態に係るページディレクトリテーブルのエントリの例を示す図である。
図9のページディレクトリテーブルエントリPDTE11は、図7のエントリにNVM(Non-Volatile Memory)ビットが情報ビットとして付加されている。
NVMビットは、そのビット1である場合にはこのエントリ(Entry)が示すページテーブルPT11と仮想アドレス領域に割り当てられた物理ページPPGはすべて不揮発性ランダムアクセスメモリ40であり、書換え回数に上限を持つメモリによる物理ページ空間であることを示す。
図10(A)および(B)は、本実施形態に係るページテーブルのエントリの例およびその仮想アドレスから物理アドレスを生成する過程を示す図である。
図10(A)のページテーブルエントリPTE11は、図8のエントリに3つの情報ビットが付加されている。
ページテーブルエントリPTE11は、このエントリ(Entry)の示す仮想ページVPGに対して割り当てられた物理ページ数を示すページ数(Page Number)PNビットを有する。
さらに、ページテーブルエントリPTE11は、割り当てられた物理ページの中で、現在使用中のページを示すページ番号(Current Page Number)CPNビットを有し、ページベースアドレスPBAはページ番号CPNで示された物理ページのアドレスを示す。
さらに、ページテーブルエントリPTE11は、NVM(Non-Volatile Memory)ビットを有する。
上記PNビットおよびCPNビットの値は、NVMビットが1であるときに有効である。
また、このNVMビットが0である場合にはこの仮想ページに割り当てられたメモリが揮発性メモリであることを示す。
図11は、本実施形態の仮想メモリシステムが仮想ページに対して新たに物理ページを割り当てる際の処理を説明するためのフローチャートである。
第3のステップST3では、下記の計算式から要求された仮想ページ領域に必要となる物理ページ数を算出する。
本実施形態の仮想メモリシステム10は、総書込み容量TWAMと、不揮発性メモリの書換え回数の上限値ULWNと、新たに割り当てる物理ページの現在までの総書込み容量CWAMから必要な物理ページ数NPNを算出する。
第4のステップST4で、物理ページ数が、要求するページ数よりも大きくなった場合には、再度その割り当てが可能となる物理ページを探索する。
割り当て可能な物理ページが見つかれば、第5のステップST5でその物理ページ領域を未使用から使用状態に変更して物理ページ管理情報を更新する。第6のステップST6で、さらにその物理ページの先頭アドレスをページテーブルエントリ(Page Table Entry)に登録する。
仮想ページ、物理ページが4Kbyteとして、要求する仮想ページ数は2ページ(Page)、不揮発性メモリの書換え回数の上限が10000回とする。
割り当てようとする物理ページのCWAMがゼロであり、総書込み容量が80MByte以下であった場合には、上記式(1)から計算した結果(ただし、α=1)、10000回の書換えが発生することになる。その結果、割り当てに必要となる物理ページ数も要求サイズに等しい2ページとなる。
もし、総書込み容量が160MByteであった場合には、2ページ(Page)では書換え回数が上限である10000回を上回るため、4ページ(Page)を割り当てる必要があることになる。
たとえばライトバック方式のキャッシュを使用する場合には、ライトバック時以外の書込みはキャッシュで吸収されるため、書換え回数の増加は起こらず、前記の算出方法よりも少ない物理ページの割り当てで対応できる可能性を持っている。
また、書換え回数を平均化するために、割り当てた物理ページ間でデータを移動することによっても書込みが発生する。
そのため、上記式(1)においても係数αを定義することで、そのシステムのキャッシュメモリの容量、方式、ページサイズなどの仕様や、そのシステム上で動作するアプリケーションのメモリ使用量、さらに平均化のためのデータ移動の頻度などから適切な係数αを導き出して使用する。これにより、割り当てる物理ページ数を最適化していくことができる。
第2のステップST12でそのCPNビットの値がPNビットに一致した場合には、ステップST16でCPNビットを0に設定する。この場合、新しいCPNビットはこの仮想アドレスに割り当てられた物理ページの先頭のページを示す。
第3のステップでST13は、現在のページベースアドレスPBAで示される物理ページを新しいCPNビットが示す物理ページへコピーする。
第4のステップST14では、新しいCPNビットが示す物理ページアドレスを新たなページベースアドレスPBAとしてページテーブルエントリPTE11に登録する。
第5のステップST15では、第4のステップST14においてテーブルTBL上で変更したページテーブルエントリPTE11を不揮発性ランダムアクセスメモリ40上に存在するページテーブルPT11上に反映する処理を行っている。
また、データ移動の処理をCPUのソフトウェアによって実現すると、それらのデータがCPUの持つデータキャッシュメモリを占有するため、その後のアプリケーションの動作パフォーマンスにまで影響を与える可能性が高い。図12に示したデータ移動の処理はDMAを使って実現されることが望ましい。
そして、第2のステップST22で不揮発性ランダムアクセスメモリ40上のページテーブルPT11を更新し、第3のステップST23で解放された物理ページを未使用状態とし、さらに総書き込み容量TWAMを現書き込み容量CWAMに加算し、物理ページ管理情報を更新する。
このため、一般的な仮想メモリシステムのように終了処理において、現在の仮想メモリの状態を再現するために必要な情報を構成し、ストレージに保存する処理が不要である。
そして、起動処理においても、終了時にストレージに保存した情報を読込み仮想メモリの状態を再現する処理が不要であることから、システムの高速な終了と起動を可能とし、ストレージへのアクセスも削減できる。その結果、特に煩雑に電源の起動・終了を繰り返すシステムにおいては、消費電力の削減効果も大きくなることが期待される。
スワップアウト処理の場合には、その物理ページのデータをストレージ上の専用領域(スワップ領域)に書込んだ後、その物理ページをリリースして新しい仮想ページを割り当てる処理を行う。
スワップイン処理の場合には、空き物理ページを新しい仮想ページに割り当てる処理を行った後、ストレージ上のスワップ領域からその仮想ページに該当するデータの読込み処理を行う。
図14は、本第2の実施形態に係る不揮発性ランダムアクセスメモリ(NVRAM)を適用した仮想メモリシステムの構成を示す図である。
本仮想メモリシステム10Aでは、メモリコントローラ30Aに対して不揮発性ランダムアクセスメモリ40に加えて、DRAM等の揮発性ランダムアクセスメモリ40Aが接続されている。
これにより、第1および第2の本実施形態の仮想メモリシステム10,10Aが不揮発性ランダムアクセスメモリ40と、揮発性ランダムアクセスメモリ40Aの両方に対応可能である。
本第2の実施形態の仮想メモリシステム10Aでは、実際に揮発性ランダムアクセスメモリ40Aがメモリコントローラ10Aに接続され、不揮発性と揮発性のメモリに対応可能に構成されている。
なお、図14ではメモリコントローラが一つの場合を示しているが、不揮発性ランダムアクセスメモリ40と、揮発性ランダムアクセスメモリ40Aに個別に対応可能な複数のメモリコントローラを配置する構成を採用することも可能である。
また起動処理において、ページディレクトリテーブルエントリPDTE11、ページテーブルエントリPTE11でNVMビットが0のエントリ(Entry)は初期化されるが、NVMビットが1のエントリ(Entry)の情報はそのまま使用される。
書換え回数を強化するために、前記のように物理ページ単位で仮想ページよりも大きな容量にする以外の手法として次のような方法を採用可能である。
すなわち、ECCを保存する容量を追加し、物理ページ上のデータをECCによって保護することでデータ保持特性を改善し、結果として書換え回数を強化することもできる。
もしページテーブルの一部がNVM(Non-Volatile Memory)であった場合には、そのページテーブルエントリPTE11のNVMビットが1に設定される。ページベースアドレスPBAは図16(A)に示すページテーブルエントリPTE11から成るページテーブル(Page Table)を指す。
拡張サイズ(Extended Size)は登録された物理ページが、仮想ページよりも拡張されているサイズを示す値である。
したがって、ページベースアドレスPBAは、常にページ境界のアドレスにはならないため、図16(B)に示すように、物理アドレスPAの算出には加算器ADDが必要となる。
図18は、本第3の実施形態に係る不揮発性ランダムアクセスメモリ(NVRAM)を適用した仮想メモリシステムの構成を示す図である。
また、書込み時にはキャッシュメモリ23のデータがメモリコントローラ30を介して不揮発性ランダムアクセスメモリ40に転送されるが、ECCコードが追加して書込まれる。
本実施形態の仮想メモリシステムでは、割り当てるメモリ領域に対して、アプリケーションからどれだけの書換え回数が発生するかを考慮してメモリ領域のアロケーションやサイズを決定する機能を有する。
これにより、本実施形態によれば、書換え回数が大きいほど割り当てる容量を大きくすることで、書換え回数が不揮発性ランダムアクセスメモリの上限仕様内に収まるように割り当てることが可能となる。また、書換え回数の上限がある不揮発性ランダムアクセスメモリもアプリケーションからは書換え回数に上限のない不揮発性メモリとしてアクセスすることが可能となる。
また、タイマーなどの内部イベント、あるいはOSやアプリケーションからの指示を受けて割り当てた物理ページ間でデータを移動する機能により、上記割り当てた領域内で効率よく書換え回数が均一化されることで、書換え回数に従って大きくする容量を小さく抑え、メモリ使用効率の改善が可能となる。
また、本実施形態によれば、仮想メモリシステムに接続された不揮発性ランダムアクセスメモリの書換え回数の上限に関する情報をメモリコントローラから取得するように構成することも可能である。
これにより、書換え回数の上限の異なる不揮発性ランダムアクセスメモリを接続した場合にも、ある割当て要求に対して、それぞれの不揮発性ランダムアクセスメモリに最適な物理ページ数を割り当てることができる。また、要求される書換え回数と容量に従って、物理ページを確保する不揮発性ランダムアクセスメモリを選択することも可能となり、メモリ使用効率の改善も可能となる。
また、このようなプログラムは、半導体メモリ、磁気ディスク、光ディスク、フロッピー(登録商標)ディスク等の記録媒体、この記録媒体をセットしたコンピュータによりアクセスし上記プログラムを実行するように構成可能である。
(1)ランダムアクセス可能で、書換え回数に上限があり、物理アドレス空間へのアクセスが仮想アドレスを介して行われる不揮発性メモリと、
上記不揮発性メモリの物理アドレス空間をページ単位で管理し、物理アドレス空間と仮想アドレス空間をマッピングし、アクセスのあった仮想アドレスを物理アドレスに変換する機能を含む仮想メモリ制御部と、を有し、
上記仮想メモリ制御部は、
書換えが発生する仮想ページに割り当てる物理メモリ容量を拡張する機能を含む
仮想メモリシステム。
(2)上記仮想メモリ制御部は、
仮想ページに対して物理ページを割り当てる要求と、当該要求する領域に対するデータの書込み量に関する情報を受け取り、受け取った書込み量に関する情報を基に、仮想ページに割り当てる物理メモリ容量を拡張する
上記(1)記載の仮想メモリシステム。
(3)上記仮想メモリ制御部は、
物理アドレスと仮想アドレスをページ単位ごとにマッピングし、
書換えが発生する仮想ページに対して、当該仮想ページに対する書込み量に関する情報を基に、複数の物理ページを割り当てて物理メモリ容量を拡張する
上記(1)または上記(2)記載の仮想メモリシステム。
(4)上記仮想メモリ制御部は、
物理メモリ容量を拡張する容量を、データの書込み量に関する情報から、当該物理ページに発生する書換え回数を算出した結果によって決定する
上記(1)から上記(3)のいずれか一に記載の仮想メモリシステム。
(5)上記仮想メモリ制御部は、
タイマーなどの内部イベント、あるいはOSやアプリケーションからの指示によって割り当てた物理ページ間でデータを移動する機能を持つことで、書込み回数を平均化する機能を含む
上記(1)から上記(4)のいずれか一に記載の仮想メモリシステム。
(6)仮想メモリシステムは、
仮想アドレスを物理アドレスに変換するための情報を含むテーブルを有し、
上記テーブルの情報には、物理ページ管理情報として、仮想ページに割り当てて使用中か、未割り当てであり未使用かを示す情報と、当該物理ページのこれまでの累積書込み容量に関する情報を含む
上記(1)から上記(5)のいずれか一に記載の仮想メモリシステム。
(7)上記仮想メモリ制御部は、
物理メモリ容量を拡張する容量を、データの書込み量に関する情報から、当該物理ページに発生する書換え回数を算出した結果によって決定し、
上記テーブルの情報は、
仮想ページに割り当てられた物理ページアドレスを管理するテーブル情報を含み、当該テーブル情報に、当該物理ページが不揮発性メモリにあるか否かを示す情報と、上記決定した物理ページを拡張した容量に関する情報を含む
上記(6)記載の仮想メモリシステム。
(8)仮想メモリシステムは、
物理ページ毎に現在までに発生した書込み容量を示す情報を保持し、
上記仮想メモリ制御部は、
上記内部イベントあるいはOSやアプリケーションからの指示を受けて、物理ページ間でデータを移動する処理を行う
上記(7)記載の仮想メモリシステム。
(9)上記仮想メモリ制御部は、
物理ページを拡張した容量部分にアクセスするように制御する機能を有する
上記(8)記載の仮想メモリシステム。
(10)上記テーブルの情報は、上記不揮発性メモリに保存される
上記(6)から上記(9)のいずれか一に記載の仮想メモリシステム。
(11)上記仮想メモリ制御部は、
上記不揮発性メモリの物理アドレス空間をページ単位で管理し、物理アドレス空間と仮想アドレス空間をマッピングし、アクセスのあった仮想アドレスを物理アドレスに変換する機能を有し、さらに、新しい物理ページを仮想ページに割り当てた、仮想ページに割り当てられた物理ページを開放する機能を含む
上記(1)から上記(10)のいずれか一に記載の仮想メモリシステム。
(12)上記仮想メモリ制御部は、
仮想ページと物理ページの対応を管理テーブルにより管理し、
未使用の物理ページが不足した場合に、すでに仮想ページに割り当て済みの物理ページの中から、パフォーマンスに与える影響が少ないと判断した物理ページを選択し、当該選択した物理ページのデータをストレージ上の専用の領域に書出すように制御する機能を有し、
上記管理テーブル上のストレージ上に退避された物理ページが割り当てられた仮想ページの属性には、メモリ上に存在しないことを示すフラグをセットする
上記(11)記載の仮想メモリシステム。
(13)上記仮想メモリ制御部は、
上記ストレージ上の専用領域に書き出した物理ページのデータが再度必要となった場合に、空き物理ページにそのデータを読込むように制御する機能を有し、
上記管理テーブル上のメモリ上に存在しないことを示すフラグをリセットする
上記(12)記載の仮想メモリシステム。
(14)上記仮想メモリ制御部の制御処理に従って上記不揮発性メモリにアクセスするメモリコントローラを有し、
上記仮想メモリ制御部は、
上記不揮発性メモリの書換え回数の上限に関する情報を上記メモリコントローラから取得する
上記(1)から上記(13)のいずれか一に記載の仮想メモリシステム。
(15)ランダムアクセス可能で、書換え回数に上限があり、物理アドレス空間へのアクセスが仮想アドレスを介して行われる不揮発性メモリの物理アドレス空間をページ単位で管理し、物理アドレス空間と仮想アドレス空間をマッピングし、アクセスのあった仮想アドレスを物理アドレスに変換するに際し、
仮想ページに書換えが発生すると、当該仮想ページに対する書込み量に関する情報に応じて当該仮想ページに割り当てる物理メモリ容量を拡張する
仮想メモリの制御方法。
(16)ランダムアクセス可能で、書換え回数に上限があり、物理アドレス空間へのアクセスが仮想アドレスを介して行われる不揮発性メモリの物理アドレス空間をページ単位で管理し、物理アドレス空間と仮想アドレス空間をマッピングし、アクセスのあった仮想アドレスを物理アドレスに変換するに際し、
仮想ページに書換えが発生すると、当該仮想ページに対する書込み量に関する情報に応じて当該仮想ページに割り当てる物理メモリ容量を拡張する
仮想メモリの制御処理をコンピュータに実行させるプログラム。
Claims (16)
- ランダムアクセス可能で、書換え回数に上限があり、物理アドレス空間へのアクセスが仮想アドレスを介して行われる不揮発性メモリと、
上記不揮発性メモリの物理アドレス空間をページ単位で管理し、物理アドレス空間と仮想アドレス空間をマッピングした情報をテーブルとして保持し、そのテーブルを使用してアクセスのあった仮想アドレスを物理アドレスに変換する機能を含む仮想メモリ制御部と、を有し、
上記仮想メモリ制御部は、
書換えが発生する仮想ページに割り当てる物理メモリ容量を拡張する機能を含み、
物理アドレスと仮想アドレスをページ単位ごとにマッピングし、
書換えが発生する仮想ページに対して、当該仮想ページに対する書込み量に関する情報を基に、複数の物理ページを割り当てて物理メモリ容量を拡張し、
上記テーブルは、
仮想アドレスを物理アドレスに変換するための情報であって、仮想ページに割り当てられた物理ページアドレスを管理する情報を含み、
上記仮想メモリ制御部は、
仮想アドレスの第1の所定ビットを参照値として、ページディレクトリテーブルのエントリを特定し、当該第1の所定ビットが指定する仮想アドレス領域に対する物理ページのアドレスを管理するページテーブルにアクセスし、仮想アドレスの第2の所定ビットを参照値として、ページテーブルのエントリを特定し、該当する物理ページのアドレスを取得する
仮想メモリシステム。 - 上記仮想メモリ制御部は、
仮想アドレスの上位ビットを参照値として、ページディレクトリテーブルのエントリを特定し、当該上位ビットが指定する仮想アドレス領域に対する物理ページのアドレスを管理するページテーブルにアクセスし、仮想アドレスの中位ビットを参照値として、ページテーブルのエントリを特定し、該当する物理ページのアドレスを取得し、仮想アドレスの下位ビットが示すアドレスをオフセットとして、データの物理アドレスを決定する
請求項1記載の仮想メモリシステム。 - 上記仮想メモリ制御部は、
仮想ページに対して物理ページを割り当てる要求と、当該要求する領域に対するデータの書込み量に関する情報を受け取り、受け取った書込み量に関する情報を基に、仮想ページに割り当てる物理メモリ容量を拡張する
請求項1または2記載の仮想メモリシステム。 - 上記仮想メモリ制御部は、
物理メモリ容量を拡張する容量を、データの書込み量に関する情報から、当該物理ページに発生する書換え回数を算出した結果によって決定する
請求項1から3のいずれか一に記載の仮想メモリシステム。 - 上記仮想メモリ制御部は、
割り当てた物理ページ間の書込み回数を平均化する機能を含む
請求項1から4のいずれか一に記載の仮想メモリシステム。 - 上記テーブルの情報には、物理ページ管理情報として、仮想ページに割り当てて使用中か、未割り当てであり未使用かを示す情報と、当該物理ページのこれまでの累積書込み容量に関する情報を含む
請求項1から5のいずれか一に記載の仮想メモリシステム。 - 上記仮想メモリ制御部は、
物理メモリ容量を拡張する容量を、データの書込み量に関する情報から、当該物理ページに発生する書換え回数を算出した結果によって決定し、
上記テーブルの情報は、
仮想ページに割り当てられた物理ページアドレスを管理するテーブル情報に、当該物理ページが不揮発性メモリにあるか否かを示す情報と、上記決定した物理ページを拡張した容量に関する情報を含む
請求項6記載の仮想メモリシステム。 - 仮想メモリシステムは、
物理ページ毎に現在までに発生した書込み容量を示す情報を保持し、
上記仮想メモリ制御部は、
タイマーなどの内部イベント、あるいはOSやアプリケーションからの指示によって、割り当てた物理ページ間でデータを移動する処理を行う
請求項7記載の仮想メモリシステム。 - 上記仮想メモリ制御部は、
物理ページを拡張した容量部分にアクセスするように制御する機能を有する
請求項8記載の仮想メモリシステム。 - 上記テーブルの情報は、上記不揮発性メモリに保存される
請求項6から9のいずれか一に記載の仮想メモリシステム。 - 上記仮想メモリ制御部は、
上記不揮発性メモリの物理アドレス空間をページ単位で管理し、物理アドレス空間と仮想アドレス空間をマッピングし、アクセスのあった仮想アドレスを物理アドレスに変換する機能を有し、さらに、新しい物理ページを仮想ページに割り当て、仮想ページに割り当てられた物理ページを開放する機能を含む
請求項1から10のいずれか一に記載の仮想メモリシステム。 - 上記仮想メモリ制御部は、
仮想ページと物理ページの対応を管理テーブルにより管理し、
未使用の物理ページが不足した場合に、すでに仮想ページに割り当て済みの物理ページの中から、パフォーマンスに与える影響が少ないと判断した物理ページを選択し、当該選択した物理ページのデータをストレージ上の専用の領域に書出すように制御する機能を有し、
上記管理テーブル上のストレージ上に退避された物理ページが割り当てられた仮想ページの属性には、メモリ上に存在しないことを示すフラグをセットする
請求項11記載の仮想メモリシステム。 - 上記仮想メモリ制御部は、
上記ストレージ上の専用領域に書き出した物理ページのデータが再度必要となった場合に、空き物理ページにそのデータを読込むように制御する機能を有し、
上記管理テーブル上のメモリ上に存在しないことを示すフラグをリセットする
請求項12記載の仮想メモリシステム。 - 上記仮想メモリ制御部の制御処理に従って上記不揮発性メモリにアクセスするメモリコントローラを有し、
上記仮想メモリ制御部は、
上記不揮発性メモリの書換え回数の上限に関する情報を上記メモリコントローラから取得する
請求項1から13のいずれか一に記載の仮想メモリシステム。 - ランダムアクセス可能で、書換え回数に上限があり、物理アドレス空間へのアクセスが仮想アドレスを介して行われる不揮発性メモリの物理アドレス空間をページ単位で管理し、物理アドレス空間と仮想アドレス空間をマッピングした情報をテーブルとして保持し、その仮想アドレスを物理アドレスに変換するための情報であって、仮想ページに割り当てられた物理ページアドレスを管理する情報を含むテーブルを使用して、アクセスのあった仮想アドレスを物理アドレスに変換するに際し、
物理アドレスと仮想アドレスをページ単位ごとにマッピングし、
書換えが発生する仮想ページに対して、当該仮想ページに対する書込み量に関する情報を基に、複数の物理ページを割り当てて物理メモリ容量を拡張し、
仮想アドレスの第1の所定ビットを参照値として、ページディレクトリテーブルのエントリを特定し、当該第1の所定ビットが指定する仮想アドレス領域に対する物理ページのアドレスを管理するページテーブルにアクセスし、仮想アドレスの第2の所定ビットを参照値として、ページテーブルのエントリを特定し、該当する物理ページのアドレスを取得する
仮想メモリの制御方法。 - ランダムアクセス可能で、書換え回数に上限があり、物理アドレス空間へのアクセスが仮想アドレスを介して行われる不揮発性メモリの物理アドレス空間をページ単位で管理し、物理アドレス空間と仮想アドレス空間をマッピングした情報をテーブルとして保持し、その仮想アドレスを物理アドレスに変換するための情報であって、仮想ページに割り当てられた物理ページアドレスを管理する情報を含むテーブルを使用して、アクセスのあった仮想アドレスを物理アドレスに変換するに際し、
物理アドレスと仮想アドレスをページ単位ごとにマッピングし、
書換えが発生する仮想ページに対して、当該仮想ページに対する書込み量に関する情報を基に、複数の物理ページを割り当てて物理メモリ容量を拡張し、
仮想アドレスの第1の所定ビットを参照値として、ページディレクトリテーブルのエントリを特定し、当該第1の所定ビットが指定する仮想アドレス領域に対する物理ページのアドレスを管理するページテーブルにアクセスし、仮想アドレスの第2の所定ビットを参照値として、ページテーブルのエントリを特定し、該当する物理ページのアドレスを取得する
仮想メモリの制御処理をコンピュータに実行させるプログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011047376A JP5664347B2 (ja) | 2011-03-04 | 2011-03-04 | 仮想メモリシステム、仮想メモリの制御方法、およびプログラム |
US13/372,615 US9514056B2 (en) | 2011-03-04 | 2012-02-14 | Virtual memory system, virtual memory controlling method, and program |
CN201210043895.8A CN102707899B (zh) | 2011-03-04 | 2012-02-24 | 虚拟存储器系统、虚拟存储器控制方法和程序 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011047376A JP5664347B2 (ja) | 2011-03-04 | 2011-03-04 | 仮想メモリシステム、仮想メモリの制御方法、およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012185609A JP2012185609A (ja) | 2012-09-27 |
JP5664347B2 true JP5664347B2 (ja) | 2015-02-04 |
Family
ID=46754022
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011047376A Expired - Fee Related JP5664347B2 (ja) | 2011-03-04 | 2011-03-04 | 仮想メモリシステム、仮想メモリの制御方法、およびプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US9514056B2 (ja) |
JP (1) | JP5664347B2 (ja) |
CN (1) | CN102707899B (ja) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9274839B2 (en) * | 2012-09-27 | 2016-03-01 | Intel Corporation | Techniques for dynamic physical memory partitioning |
US9003223B2 (en) * | 2012-09-27 | 2015-04-07 | International Business Machines Corporation | Physical memory fault mitigation in a computing environment |
KR102055617B1 (ko) * | 2012-10-17 | 2019-12-13 | 한국전자통신연구원 | 운영 체제에서 수행되는 프로세스의 가상 주소 공간을 확장하는 방법 및 시스템 |
WO2014098839A1 (en) * | 2012-12-19 | 2014-06-26 | Hewlett-Packard Development Company | Nvram path selection |
JP6125300B2 (ja) * | 2013-04-08 | 2017-05-10 | 東芝メディカルシステムズ株式会社 | 医用画像表示装置及び医用画像提供システム |
US10114758B2 (en) * | 2013-09-13 | 2018-10-30 | Nvidia Corporation | Techniques for supporting for demand paging |
CN104516822B (zh) * | 2013-09-29 | 2018-01-23 | 华为技术有限公司 | 一种内存访问方法和设备 |
JP6194764B2 (ja) * | 2013-11-08 | 2017-09-13 | 富士通株式会社 | 情報処理装置、制御方法、および制御プログラム |
KR102211865B1 (ko) * | 2014-05-20 | 2021-02-04 | 삼성전자주식회사 | 불휘발성 메모리 시스템 및 메모리 컨트롤러의 동작 방법 |
EP4068067A1 (en) | 2014-06-24 | 2022-10-05 | Apple Inc. | Music now playing user interface |
JP6582367B2 (ja) | 2014-07-18 | 2019-10-02 | 富士通株式会社 | 情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム |
CN105487969B (zh) * | 2014-10-09 | 2018-08-14 | 上海华虹集成电路有限责任公司 | 智能卡仿真器 |
RU2580016C1 (ru) * | 2014-10-17 | 2016-04-10 | Закрытое акционерное общество "Лаборатория Касперского" | Способ передачи управления между областями памяти |
US9542333B2 (en) * | 2014-12-04 | 2017-01-10 | Qualcomm Incorporated | Systems and methods for providing improved latency in a non-uniform memory architecture |
US20160246715A1 (en) * | 2015-02-23 | 2016-08-25 | Advanced Micro Devices, Inc. | Memory module with volatile and non-volatile storage arrays |
CN104657153B (zh) * | 2015-03-19 | 2017-10-17 | 哈尔滨工业大学 | 一种基于签名技术的硬件事务内存系统 |
US10126985B2 (en) * | 2015-06-24 | 2018-11-13 | Intel Corporation | Application driven hardware cache management |
US20170220252A1 (en) * | 2016-01-29 | 2017-08-03 | Faraday&Future Inc. | Flash emulated eeprom wrapper |
US20180024938A1 (en) * | 2016-07-21 | 2018-01-25 | Advanced Micro Devices, Inc. | Allocating physical pages to sparse data sets in virtual memory without page faulting |
US10782908B2 (en) | 2018-02-05 | 2020-09-22 | Micron Technology, Inc. | Predictive data orchestration in multi-tier memory systems |
US11416395B2 (en) * | 2018-02-05 | 2022-08-16 | Micron Technology, Inc. | Memory virtualization for accessing heterogeneous memory components |
US11099789B2 (en) | 2018-02-05 | 2021-08-24 | Micron Technology, Inc. | Remote direct memory access in multi-tier memory systems |
DE102018205204A1 (de) * | 2018-04-06 | 2019-10-10 | Robert Bosch Gmbh | Verfahren zum Bereitstellen von Anwendungsdaten zumindest einer auf einem Steuergerät eines Fahrzeugs ausführbaren Anwendung, Verfahren zum Kalibrieren eines Steuergeräts, Steuergerät und Auswerteeinrichtung |
KR20200014964A (ko) * | 2018-08-02 | 2020-02-12 | 삼성전자주식회사 | 버츄얼 메모리 영역을 제공하는 스토리지 장치, 이를 포함하는 전자 시스템 및 전자 시스템의 동작 방법 |
KR20200022118A (ko) * | 2018-08-22 | 2020-03-03 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그 동작 방법 |
US11954026B1 (en) * | 2018-09-18 | 2024-04-09 | Advanced Micro Devices, Inc. | Paging hierarchies for extended page tables and extended page attributes |
CN109696878B (zh) * | 2019-01-03 | 2020-10-02 | 中电智能科技有限公司 | 基于多缓冲区的控制器 |
US10852949B2 (en) | 2019-04-15 | 2020-12-01 | Micron Technology, Inc. | Predictive data pre-fetching in a data storage device |
CN112148203B (zh) * | 2019-06-27 | 2023-12-05 | 龙芯中科技术股份有限公司 | 存储器管理方法、装置、电子设备及存储介质 |
CN111881062A (zh) * | 2020-06-12 | 2020-11-03 | 海光信息技术有限公司 | 内存页的分页方法、装置、cpu芯片及计算机 |
CN114218153B (zh) * | 2021-12-06 | 2023-11-14 | 海飞科(南京)信息技术有限公司 | 用于存储管理的方法、介质、程序产品、系统和装置 |
CN115757260B (zh) * | 2023-01-09 | 2023-04-14 | 摩尔线程智能科技(北京)有限责任公司 | 数据交互方法、图形处理器及图形处理系统 |
CN115934002B (zh) * | 2023-03-08 | 2023-08-04 | 阿里巴巴(中国)有限公司 | 固态硬盘的访问方法、固态硬盘、存储系统及云服务器 |
CN116010113B (zh) * | 2023-03-27 | 2023-08-15 | 紫光同芯微电子有限公司 | 用于管理智能卡内存的方法及智能卡 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69021143T2 (de) * | 1989-06-28 | 1996-02-29 | Ibm | Verfahren zur wirksamen Verwendung von auswechselbaren Aufzeichnungsmedien für Daten. |
JPH04218842A (ja) * | 1990-04-11 | 1992-08-10 | Hitachi Ltd | プログラムの再実行方法 |
JPH0812638B2 (ja) * | 1993-05-15 | 1996-02-07 | 日本電気株式会社 | ページテーブル非常駐化制御装置 |
US5802341A (en) * | 1993-12-13 | 1998-09-01 | Cray Research, Inc. | Method for the dynamic allocation of page sizes in virtual memory |
JPH10289153A (ja) * | 1997-04-11 | 1998-10-27 | Ricoh Co Ltd | 主記憶管理方法および装置 |
JP2004362464A (ja) * | 2003-06-06 | 2004-12-24 | Sony Corp | 不揮発メモリを利用したコンピュータシステム |
US7269708B2 (en) * | 2004-04-20 | 2007-09-11 | Rambus Inc. | Memory controller for non-homogenous memory system |
KR100772863B1 (ko) | 2006-01-13 | 2007-11-02 | 삼성전자주식회사 | 요구 페이징 기법을 적용한 시스템에서 페이지 교체 수행시간을 단축시키는 방법 및 장치 |
JP4863749B2 (ja) * | 2006-03-29 | 2012-01-25 | 株式会社日立製作所 | フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム |
CN100470506C (zh) * | 2007-06-08 | 2009-03-18 | 马彩艳 | 基于sector访问的flash存储器的存储管理方法 |
JP4867892B2 (ja) * | 2007-11-01 | 2012-02-01 | 日本電気株式会社 | メモリ制御装置、システム、プログラム、および、方法 |
JP2009301680A (ja) * | 2008-06-17 | 2009-12-24 | Panasonic Corp | 半導体記憶装置及びホスト装置 |
JP5302582B2 (ja) * | 2008-07-09 | 2013-10-02 | 株式会社日立製作所 | 上位装置から指定されるデバイスに関する記憶容量を変更するストレージシステム及び方法 |
CN102272742B (zh) * | 2009-01-29 | 2015-08-05 | Lsi公司 | 为卷提供动态存储分级的在线数据放置的写时分配快照机制 |
KR20100091544A (ko) * | 2009-02-10 | 2010-08-19 | 삼성전자주식회사 | 메모리 시스템 및 그 마모도 관리 방법 |
US8589700B2 (en) * | 2009-03-04 | 2013-11-19 | Apple Inc. | Data whitening for writing and reading data to and from a non-volatile memory |
-
2011
- 2011-03-04 JP JP2011047376A patent/JP5664347B2/ja not_active Expired - Fee Related
-
2012
- 2012-02-14 US US13/372,615 patent/US9514056B2/en active Active
- 2012-02-24 CN CN201210043895.8A patent/CN102707899B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN102707899B (zh) | 2017-06-30 |
US20120226850A1 (en) | 2012-09-06 |
CN102707899A (zh) | 2012-10-03 |
US9514056B2 (en) | 2016-12-06 |
JP2012185609A (ja) | 2012-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5664347B2 (ja) | 仮想メモリシステム、仮想メモリの制御方法、およびプログラム | |
JP7115899B2 (ja) | ハイブリッドメモリにおける書き込み及びフラッシュ支援のためのメモリモジュール及びその動作方法 | |
US9910602B2 (en) | Device and memory system for storing and recovering page table data upon power loss | |
US8612666B2 (en) | Method and system for managing a NAND flash memory by paging segments of a logical to physical address map to a non-volatile memory | |
KR101612922B1 (ko) | 메모리 시스템 및 메모리 시스템 관리 방법 | |
US8612692B2 (en) | Variable write back timing to nonvolatile semiconductor memory | |
KR101713051B1 (ko) | 하이브리드 메모리 시스템, 및 그 관리 방법 | |
JP6118285B2 (ja) | キャッシュメモリシステムおよびプロセッサシステム | |
CN107818052B (zh) | 内存访问方法及装置 | |
US20110161597A1 (en) | Combined Memory Including a Logical Partition in a Storage Memory Accessed Through an IO Controller | |
US20090235014A1 (en) | Storage device and computing system | |
JP2017138852A (ja) | 情報処理装置、記憶装置およびプログラム | |
US8645612B2 (en) | Information processing device and information processing method | |
US10031854B2 (en) | Memory system | |
JP2012033002A (ja) | メモリ管理装置およびメモリ管理方法 | |
CN108595349B (zh) | 大容量存储设备的地址转换方法与装置 | |
US10430346B2 (en) | DDR storage adapter | |
JP6027562B2 (ja) | キャッシュメモリシステムおよびプロセッサシステム | |
JP2016085677A (ja) | メモリ管理方法、メモリ管理プログラム及び情報処理装置 | |
JP2011186563A (ja) | メモリ管理装置およびメモリ管理方法 | |
JP2011186558A (ja) | メモリ管理装置及び方法 | |
JP2010191672A (ja) | データ記憶システム | |
JP7118827B2 (ja) | 情報処理装置、メモリ制御方法およびプログラム | |
JP2011186559A (ja) | メモリ管理装置 | |
JP2004355187A (ja) | 仮想メモリ・システム、仮想メモリのアドレス管理方法、並びにアドレス変換テーブル生成装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140127 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140731 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140819 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20141014 |
|
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: 20141111 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20141124 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5664347 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |