JP5627754B2 - 仮想記憶管理装置及び記憶管理装置 - Google Patents

仮想記憶管理装置及び記憶管理装置 Download PDF

Info

Publication number
JP5627754B2
JP5627754B2 JP2013223055A JP2013223055A JP5627754B2 JP 5627754 B2 JP5627754 B2 JP 5627754B2 JP 2013223055 A JP2013223055 A JP 2013223055A JP 2013223055 A JP2013223055 A JP 2013223055A JP 5627754 B2 JP5627754 B2 JP 5627754B2
Authority
JP
Japan
Prior art keywords
page
storage unit
memory
volatile memory
primary storage
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
Application number
JP2013223055A
Other languages
English (en)
Other versions
JP2014041649A (ja
Inventor
吉田 英樹
英樹 吉田
金井 達徳
達徳 金井
昌也 樽家
昌也 樽家
山田 裕
裕 山田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2013223055A priority Critical patent/JP5627754B2/ja
Publication of JP2014041649A publication Critical patent/JP2014041649A/ja
Application granted granted Critical
Publication of JP5627754B2 publication Critical patent/JP5627754B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、仮想記憶管理装置及び記憶管理装置に関する。
近年、処理情報の増大に対応するために、計算機システムでは仮想記憶技術が採用されている。仮想記憶とは、二次記憶部と一次記憶部の間で必要に応じてデータを移動することで、大容量で、且つアクセス速度の速いメモリ(仮想メモリ)が存在するかのようにアプリケーションプログラムに見せかける技術である。これを実現するために、メモリアクセス速度が速く、且つ比較的小容量の揮発性メモリや不揮発性メモリなどから構成される一次記憶部(主メモリ)と、一次記憶部よりもメモリアクセス速度が低く、大容量のハードディスクなどから構成される二次記憶部(仮想メモリ空間)とが設けられる。仮想メモリ空間と実メモリ空間の置き換え制御、並びに仮想アドレスから実アドレスに変換制御に関する技術の一つとして、ページを単位としたページング技術がある。ページングによるアドレス変換は、仮想メモリ上の仮想ページと物理メモリ上の物理ページとが対応付けられる(例えば、特許文献1参照。)。
特開2008−158773号公報
しかしながら、特許文献1の発明では、仮想ページに、一次記憶部と二次記憶部とが同一内容であるcleanページと、一次記憶部の書き換えられたメモリ内容が二次記憶部に反映されていないdirtyページとが存在する。仮想記憶では、停電のときにcleanページのデータは消失しないが、dirtyページのデータは消失するという問題点がある。dirtyページのデータが消失すると、計算機の再起動時にページテーブルを再構築してもデータを回復することができない問題がある。
本発明は、停電時にdirtyページ及びcleanページの内容が消失しない仮想記憶管理装置を提供することにある。
本発明の一態様の仮想記憶管理装置は、一次記憶部と、前記一次記憶部よりもメモリアクセス速度が低く、前記一次記憶部よりも大容量のメモリから構成される二次記憶部とを有する仮想記憶装置において、前記一次記憶部に設けられ、前記二次記憶部に記憶されるデータと同一であるcleanページのデータを記憶する揮発性メモリと、前記一次記憶部に設けられ、前記二次記憶部に記憶されるデータとは異なるdirtyページのデータを記憶し、少なくともどのページが前記dirtyページであるかを示す情報を有するページテーブルが配置される不揮発性メモリと、前記揮発性メモリ上のcleanページに書き込むとき、前記cleanページのデータを前記不揮発性メモリへ移動するページ移動部とを具備する。
本発明によれば、停電時にdirtyページ及びcleanページの内容が消失しない仮想記憶管理装置を提供することができる。
本発明の実施例1に係る計算機の構成を示すブロック図。 本発明の実施例1に係る仮想記憶管理装置の構成を示すブロック図。 本発明の実施例1に係るページテーブルの配置を示す図。 本発明の実施例1に係るページテーブルの構成を示す図。 本発明の実施例1に係る仮想メモリの参照処理を示すフローチャート。 本発明の実施例1に係る不揮発性メモリへの移動処理を示すフローチャート。 本発明の実施例1に係るページ移動処理を示すフローチャート。 本発明の実施例1に係る再起動時の処理を示すフローチャート。 本発明の実施例2に係る仮想記憶管理装置の構成を示すブロック図。
以下本発明の実施例について図面を参照しながら説明する。
まず、本発明の実施例1に係る仮想記憶管理装置について、図面を参照して説明する。図1は計算機の構成を示すブロック図である。本実施例では、一次記憶部を、揮発性メモリと不揮発性メモリで構成する。そして、一次記憶部の揮発性メモリに仮想メモリのcleanページを配置し、一次記憶部の不揮発性メモリに仮想メモリのdirtyページを配置している。
図1に示すように、計算機80は、CPU(Central Processing Unit)1、MMU(Memory Management Unit)2、一次記憶部3(主メモリ)、及び二次記憶部4(例えば、大容量ディスクストレージ)などによって構成されている。
計算機80は、ページングによる仮想記憶に対応したオペレーティングシステムが動作する計算機である。ページングは、ページを単位とした仮想アドレスから実アドレスへ変換する技術である。ページングは、オペレーティングシステム及びMMU2により実行される。ページは、領域や単位をあらわす。各ページは、コード及びデータから構成され、仮想ページと物理ページがある。計算機80は、エンドユーザが事務処理等を実行するコンピュータである。なお、計算機80は、ネットワークを介してクライアントからの要求に対応処理するサーバ、或いは機器の制御を実行する組み込み計算機でもよい。
CPU1は、計算機80の全体を統括制御する。CPU1は、例えばオペレーティングシステムを主メモリから逐次読み込み、オペレーティングシステムに基づいてアプリケーションプログラムを実行する。
MMU2は、CPU1の指示に基づいて、仮想ページと物理ページの変換ワークを行い、実際の主メモリのアクセスを行う。
一次記憶部3(主メモリ)は、メモリアクセス速度が速く、且つランダムに書き込み可能である揮発性メモリ11及び不揮発性メモリ12によって構成されている。揮発性メモリ11は、記憶されているデータが電源オフ時に消失する。揮発性メモリ11には、SRAM(Static Random Access Memory)を用いているが、代わりにDRAM(Dynamic Random Access Memory)などを用いてもよい。不揮発性メモリ12は、記憶されているデータが電源をオフしても消失することはない。不揮発性メモリ12には、FeRAM(Ferroelectric Random Access Memory)を用いているが、代わりにMRAM(Magnetic Random Access Memory)やReRAM(Resistive Random Access Memory)などを用いてもよい。
二次記憶部4は、一次記憶部3よりも大容量である。二次記憶部4には、ハードディスクストレージを用いているが、代わりにフラッシュメモリなどを用いてもよい。CPU1は、一次記憶部3と二次記憶部4とをそれぞれ読み書きすることにより、一次記憶部3と二次記憶部4との間のデータ転送を実行する。なお、一次記憶部3と二次記憶部4との間にDMA(Direct Memory Access)コントローラを設け、CPU1を介さずに直接読み書きを実行してもよい。
図2は、実施形態に係る仮想記憶管理装置の構成を示すブロック図である。仮想記憶管理装置90は、計算機80内部に設けられ、仮想記憶管理を実行する。図2に示すように、仮想記憶管理装置90には、アプリケーションプログラム21、オペレーティングシステム22、揮発性メモリ11、及び不揮発性メモリ12が設けられる。
アプリケーションプログラム21は、オペレーティングシステム22に基づいてCPU1によって実行される。したがって、アプリケーションプログラム21のプログラムコード及びデータは、仮想メモリ上に設けられる。CPU1は、仮想アドレスを指定してアプリケーションプログラム21を読み書きして、実行する。
オペレーティングシステム22には、仮想記憶管理部23が設けられる。オペレーティングシステム22のプログラムコード及びデータは、不揮発性メモリ12に格納されている。なお、代わりに、オペレーティングシステム22のプログラムコード及びデータを二次記憶部4に格納しておき、起動時に揮発性メモリ11に読み込んでもよい。
仮想記憶管理部23には、ページ移動部25が設けられる。仮想記憶管理部23は、仮想記憶空間及び仮想アドレスを管理する。揮発性メモリ11は、複数のcleanページ27(例えば、cleanページ27a,27b,27c,‥)が設けられる。不揮発性メモリ12は、複数のdirtyページ28(例えば、dirtyページ28a,28b,28c,‥)とページテーブル記憶部51が設けられる。
ここで、dirtyページ28は、一次記憶部3の書き換えられたデータが二次記憶部4にまだ反映されていなく、一次記憶部3のデータと、それに対応する二次記憶部4に格納されているデータとが異なるページであることを示している。cleanページ27は、一次記憶部3のデータと、それに対応する二次記憶部4に格納されているデータとが同一であるページであることを示している。
ページ移動部25は、揮発性メモリ11と不揮発性メモリ12間のページの移動を実行する。例えば、物理ページの書き込みのときに、揮発性メモリ11上のcleanページ27のデータを不揮発性メモリ12に移動させる。また、不揮発性メモリ12上のdirtyページ28のデータを揮発性メモリ11に移動する。
不揮発性メモリ12のページテーブル記憶部51は、cleanページとdirtyページの管理を行うページテーブルが設けられる。ページテーブル記憶部51は、仮想記憶管理部23とcleanページ及びdirtyページの情報のやりとりを行う。
図3は、ページテーブルの配置を示す図である。図3に示すように、仮想記憶は、例えばページテーブル記憶部51に設けられるページテーブル31を使用したページングにより行われる。メモリアクセスに使用される仮想アドレス33は、ページとオフセットによって構成されている。仮想アドレス33のページ(例えば、ページA,B,C、‥)は、ページテーブルベースレジスタ32により、論理ページ番号毎にページテーブル31に配置される。MMU2は、ページテーブル31を参照して、仮想ページを物理ページに変換する。つまり、ページテーブル31に配置された仮想アドレス33のページは、MMU2により参照され、一次記憶部3をアクセスする物理アドレス34のブロックとして変換される。
なお、オペレーティングシステム22がページテーブル31を参照し、MMU2が一部のページのマッピングのみを格納するTLB(Translation Look−aside Buffer)を参照する方式でもよい。この場合、必要に応じてオペレーティングシステム22がページテーブル31を参照してTLBの内容を入れ替えることになる。いずれの場合でも、ページテーブル31の書き換えは、オペレーティングシステム22が実行する。
ページテーブル記憶部51に設けられるページテーブル31は、停電時に記憶データが消失しないように、例えば不揮発性メモリ12に設けられる。なお、揮発性メモリ11の物理ページを管理するページテーブルを分離して設けた場合、ページテーブル31は揮発性メモリ11に設け、不揮発性メモリ12の物理ページを管理するページテーブルは不揮発性メモリ12に設けてもよい(つまり、複数のページテーブルが不揮発性メモリ12と揮発性メモリ11に設けられる)。
仮想記憶では、物理ページの割り当てを行うとき、仮想記憶管理部23は、ページテーブル31を用いて未使用物理ページを管理する。なお、代わりに、別途未使用物理ページを連結し、連結リストを作成して管理してもよい。
未使用物理ページのリストは、すべて不揮発性メモリ12に設けている。なお、ページテーブル31の未使用物理ページだけを別に分離して、不揮発性メモリ12に設けてもよい。
ページテーブルには、少なくとも、論理ページ番号、物理ページ番号、ページがdirtyページかcleanページかを示す情報と、それに対応付けされた情報とが設けられる。
図4は、ページテーブル31の構成を示す図である。図4に示すように、例えば不揮発性メモリ12に設けられたページテーブル31は、ページテーブルベースレジスタ32で指定されるアドレスに配置される(図中の論理ページ0,1,2,3、‥がエントリに相当する)。各エントリは、論理ページ番号順に配置され、仮想メモリアドレスの論理ページ番号を添字として参照が行われる。各エントリは、例えば物理ページ番号のデータ、Presenceビット、Dirty/Cleanを示すビット、不揮発性メモリ/揮発性メモリを示すビット、Disk Addrを示すデータ、Protectionを示すデータなどから構成される。
Presenceビットは、論理ページ番号に対応する物理ページ番号がページテーブル31に存在する場合に“1”となり、存在しない場合に“0”となる。Dirty/Cleanビットは、論理ページ番号のページがdirtyページである場合は“1”となり、cleanページである場合は“0”となる。不揮発性メモリ/揮発性メモリビットは、論理ページ番号のページデータが不揮発性メモリ12にある場合は“1”となり、揮発性メモリ11にある場合は“0”となる。
Disk Addrのアドレスは、論理ページ番号に対応する二次記憶部4のディスクアドレスを示す。Protectionビットは、メモリ動作についての情報、例えばRead onlyなどを示す。
次に、仮想記憶管理装置の動作について、図5乃至図8を参照して説明する。図5は仮想メモリの参照処理を示すフローチャートである。
図5に示すように、仮想メモリの参照は、まず、仮想記憶管理装置90に設けられるアプリケーションプログラム21が論理アドレスを指定することで開始される。すると、仮想記憶管理装置90に設けられるオペレーティングシステム22は、アプリケーションプログラム21が指定した論理アドレスから論理ページ番号の計算を行う(ステップS11)。ここでは、論理アドレスの上位ビットが論理ページ番号となる。例えば、アドレス空間が32ビットで、ページサイズが1kBの場合、論理アドレスの上位22ビットが論理ページ番号となる。
次に、オペレーティングシステム22は、論理ページ番号を添字としてページテーブル31の情報を引くと、エントリが得られる(ステップS12)。
続いて、オペレーティングシステム22は、図3に示すページテーブル31の論理ページ番号で示すエントリのPresenceビットが“1”或いは“0”であるかの判定する(ステップS13)。Presenceビットが“1”の場合、オペレーティングシステム22は、当該エントリから物理アドレスを取得する(ステップS17)。一方、Presenceビットが“0”の場合、論理ページ番号の内容が一次記憶部3上にはなく、二次記憶部4に退避されている。したがって、Presenceビットが“0”の場合、オペレーティングシステム22は、揮発性メモリ11上の未使用物理ページを割り当てる(ステップS14)。
そして、オペレーティングシステム22は、論理ページ番号のページ内容を二次記憶部4から一次記憶部3のcleanページに読み出す(ステップS15)。次に、オペレーティングシステム22は、ページテーブル31のエントリ更新を行う。具体的には、一次記憶部3に割り当てた物理ページ番号をそのエントリに書き込み、presenceビットを“1”にし、dirtyビットを“0”に置き換える。この場合、書き込み時の不揮発性メモリ12への移動のためにページへの書き込みは禁止しておく(ステップS16)。
続いて、MMU2は論理アドレスから物理アドレスへの変換を行う。物理アドレスは、当該エントリから読み出された物理ページ番号を上位ビットとし、論理アドレスの下位オフセットを下位ビットとすることにより生成される。例えば、アドレス空間が32ビットでページサイズが1kBの場合、物理ページ番号を上位22ビットとし、論理アドレスのオフセットを下位10ビットとするアドレスを生成する(ステップS17)。
そして、MMU2は生成された物理アドレス34を用いて一次記憶部3をアクセスする(ステップS18)。
ここでは、1つのページテーブル31を用いて仮想メモリの参照を実行しているが、代わりに複数のページテーブルを用いて仮想メモリの参照を実行、或いはTLBを用いて仮想メモリの参照を実行してもよい。また、レベルの異なるページテーブルを複数設けて、仮想メモリの参照を実行してもよい。
図6は不揮発性メモリへの移動処理を示すフローチャートである。図6に示すように、cleanページへの書き込み時の不揮発性メモリ12への移動は、MMU2でのフォールト判断を契機とし、copy on write方式で行う。
まず、揮発性メモリ11に対応する論理ページをオペレーティングシステム22が読み出しのみ許可し、書き込みを禁止しておく。書き込みを実行した場合、フォールトが発生し、制御がオペレーティングシステム22の仮想記憶管理部23に移行する。仮想記憶管理部23は、不揮発性メモリ12上の未使用物理ページをページテーブル31或いは未使用物理ページリストから取り出す(ステップS21)。
次に、不揮発性メモリ12の未使用物理ページが不足しているかを仮想記憶管理部23が判断する(ステップS22)。不揮発性メモリ12の未使用物理ページが不足していない場合、不揮発性メモリ12へのコピーと進む。不揮発性メモリ12の未使用物理ページが不足している場合、二次記憶部4への反映により仮想記憶管理部23が未使用物理ページを増やす(ステップS23)。
続いて、揮発性メモリ11上の物理ページの内容を、取り出した不揮発性メモリ12上の物理ページに仮想記憶管理部23がコピーする(ステップS24)。
そして、仮想記憶管理部23がページテーブルエントリを書き換え、不揮発性メモリ12上の物理ページを仮想ページに対応する物理ページにする。また、仮想記憶管理部23は、仮想ページの書き込みを許可し、これ以降、書き込みが発生してもフォールトが発生しないようにする(ステップS25)。
次に、仮想記憶管理部23は、揮発性メモリ11上の物理ページを未使用物理ページに追加する(ステップS26)。
ここでは、二次記憶部4に退避されているページへの書き込みが発生した場合、一旦揮発性メモリ11へのページングを実行し、直後にフォールトが発生して不揮発性メモリ12への移動が実行される。代わりに、初めから不揮発性メモリ12を仮想記憶管理部23が割り当て、そこへページインすることによりページ移動の手順を省略してもよい。
次に、dirtyページの二次記憶部4への反映について説明する。仮想記憶管理部23は、書き込みのために多くの物理ページを不揮発性メモリ12へ移動する。不揮発性メモリ12の残量が少なくなった場合、仮想記憶管理部23は、不揮発性メモリ12上の一部の物理ページを選択してその内容を二次記憶部4へ反映する。ページの選択は、例えば最後の書き込みが実行されてから、時間が最も長いページを選択する。反映後、dirtyビットを仮想記憶管理部23が“0“に置き換える。
二次記憶部4への反映により、dirtyビットがcleanビットとして認識される。認識後、仮想記憶管理部23のページ移動部25は、物理ページを直ちに揮発性メモリ11へ移動する。この場合、物理ページに再度書き込みが発生したときに不揮発性メモリ12への移動処理の手順を省略してもよい。具体的には、物理ページを別の仮想ページに割り当てる必要が発生するまで、仮想記憶管理部23は実際のページ移動を遅延し、不揮発性メモリ12上に物理ページを残置してもよい。
図7はページ移動処理を示すフローチャートである。図7に示すように、ページ移動では、まず、揮発性メモリ11上の未使用物理ページを仮想記憶管理部23がページテーブル31或いは未使用物理ページリストから取り出す(ステップS31)。
次に、未使用物理ページが不足しているかの判断を仮想記憶管理部23が行う(ステップS32)。未使用物理ページが不足している場合、揮発性メモリ11上の物理ページを仮想記憶管理部23が選択し、選択された物理ページを未使用物理ページとして利用する。ページの選択は、例えば最後の読み出しが実行されてからの時間が最も長いページを仮想記憶管理部23が選択する。揮発性メモリ11上の物理ページの情報は、二次記憶部4に反映されているものであり、未使用物理ページにする場合新たに反映する必要がない(ステップS33)。
未使用物理ページが不足していない場合(或いは、物理ページの選択後)、仮想記憶管理部23は不揮発性メモリ12上の物理ページの情報を揮発性メモリ11上の物理ページにコピーする(ステップS34)。
続いて、仮想記憶管理部23は、ページテーブル31を書き換え、揮発性メモリ11上の物理ページを仮想ページに対応する物理ページとする。仮想記憶管理部23は、仮想ページの書き込みを禁止し、これ以降の書き込みが発生したときのフォールトが発生するようにする。仮想記憶管理部23は、不揮発性メモリ12上のページを未処理物理ページに追加する(ステップS35)。
本実施例では、オペレーティングシステム22は、不揮発性メモリ12或いは二次記憶部4上の特定アドレスの特定ビットに、再起動時後のページテーブル31の初期化が必要であるかを示すフラグを設ける。起動時に、オペレーティングシステム22はこの特定ビットを“0”に設定する。オペレーティングシステム22は、シャットダウン時に仮想メモリの継続使用が不要な場合、この特定ビットを“1”に置き換えてシャットダウンする。停電により計算機80が突然停止した場合、この特定ビットは“0”のままとなる。
図8は、再起動時の処理を示すフローチャートである。図8に示すように、再起動時の処理では、計算機80の再起動後、オペレーティングシステム22は、特定ビットを読み出す(ステップS41)。
次に、オペレーティングシステム22は、読み出された特定ビットが“1”か“0”かの判断を行う(ステップS42)。
読み出された特定ビットが“1”の場合、即ち初期化が要求されているときのみ、ページテーブル31の初期化をオペレーティングシステム22が実行する。具体的には、仮想メモリに対応する物理メモリが存在しない状態にする。或いは、仮想メモリに対応する物理メモリにすべて“0”が書き込まれた状態にする(ステップS43)。
読み出された特定ビットが“0”の場合、即ち、停電後に計算機80が再起動した場合、或いはオペレーティングシステム22のシャットダウン時に二次記憶部4への反映が省略された場合、オペレーティングシステム22は、不揮発性メモリ12に保存されたページテーブル31を再利用する(ステップS44)。
揮発性メモリ11上の物理ページを管理するページテーブルを分離して管理する場合、オペレーティングシステム22はこのページテーブルのみを常に初期化する。オペレーティングシステム22は、フラグが“1”の場合のみ、不揮発性メモリ12上の物理ページを管理するページテーブルを初期化する。
このような処理により、不揮発性メモリ12上の物理ページのページテーブル31と、不揮発性メモリ12上の物理ページの情報は、再起動後も保存される。なお、プログラムを継続して実行するために、プロセスのコンテキストなどの情報が停電時に消失しないようにするには、それらの情報を不揮発性メモリ12に別途格納する。そして、計算機80の再起動後にページテーブルと同様な方法を用いて再構築する必要がある。
上述したように、本実施例の仮想記憶管理装置では、計算機80に、CPU1、MMU2、一次記憶部3、及び二次記憶部4が設けられる。仮想記憶管理装置90は、計算機80内部に設けられ、アプリケーションプログラム21、オペレーティングシステム22、揮発性メモリ11、及び不揮発性メモリ12が設けられる。オペレーティングシステム22は、ページ移動部25を有する仮想記憶管理部23が設けられる。揮発性メモリ11は、複数のcleanページが設けられる。不揮発性メモリ12は、複数のdirtyページとページテーブル記憶部51が設けられる。ページ移動部25は、不揮発性メモリ12上のdirtyページのデータを二次記憶部4に反映させるとき、不揮発性メモリ12上のdirtyページのデータを揮発性メモリ11へ移動する。
このため、cleanページ及びdirtyページの情報は、停電時に消失しない。また、停電後に計算機80を再起動したとき、不揮発性メモリ12の情報に基づいて仮想記憶のページテーブルが再構築されるので、どの仮想ページがdirtyページかという情報と、dirtyページの仮想ページへの書き込み情報とは再起動後も保存される。また、書き込みを頻繁に二次記憶部4に反映する必要がなくなり、二次記憶部4と物理メモリ間の入出力が減少でき、計算機80の処理速度を向上できる。
次に、本発明の実施例2に係る仮想記憶管理装置について、図面を参照して説明する。図9は仮想記憶管理装置の構成を示すブロック図である。本実施例では、オペレーティングシステムに仮想記憶管理部とファイルシステム管理部を設け、物理メモリをページングとバッファキャッシュに適宜振り分けている。
以下、実施例1と同一構成部分には、同一符号を付してその部分の説明を省略し、異なる部分のみ説明する。
図9に示すように、仮想記憶管理装置91には、アプリケーションプログラム21a、オペレーティングシステム22a、揮発性メモリ11、及び不揮発性メモリ12が設けられる。仮想記憶管理装置91は、実施例1と同様に計算機内部に設けられ、仮想記憶管理を実行する装置である。
アプリケーションプログラム21aは、オペレーティングシステム22aに基づいてCPU1により実行される。したがって、アプリケーションプログラム21aのプログラムコード及びデータは、仮想メモリ上に設けられる。アプリケーションプログラム21aは、仮想アドレスを指定して読み書きを行う。CPU1は、仮想メモリを指定してアプリケーションプログラム21aを読み書きして、実行する。
オペレーティングシステム22aには、仮想記憶管理部23a、統合バッファキャッシュ管理部41、及びファイルシステム管理部42が設けられる。統合バッファキャッシュ管理部41には、ページ移動部25が設けられる。
図示しないバッファキャッシュは、物理メモリに設けられ、二次記憶部4のファイルデータの一部を物理メモリ上に保持する。バッファキャッシュは、ファイルの入出力の一部を物理メモリの参照のみで済ませて、二次記憶部4との入出力を減少し、処理を高速化する。
仮想記憶管理部23aは、仮想メモリへのアクセスを管理する。ファイルシステム管理部42は、ファイルへのアクセスを管理する。
統合バッファキャッシュ管理部41は、仮想メモリ及びファイルの処理を一元管理する。統合バッファキャッシュ管理部41は、ページテーブル記憶部51とcleanページ及びdirtyページの情報のやりとりを行う。統合バッファキャッシュ管理部41は、実施例1と同様な動作をし、アプリケーションプログラム21aからオペレーティングシステム22aへのファイル書き込み要求に対して処理を実行する。具体的には、統合バッファキャッシュ管理部41はアプリケーションプログラム21aがファイルへの書き込みを実行するときに、バッファキャッシュのページを揮発性メモリ11から不揮発性メモリ12に移動する。そして、統合バッファキャッシュ管理部41はバッファキャッシュの情報を二次記憶部4上のファイルへ反映させるときに、バッファキャッシュのページを不揮発性メモリ12から揮発性メモリ11へ移動する。ここでは、実施例1のMMU2によるアドレス変換やページフォールトの発生がなく、すべてオペレーティングシステム22aが処理を実行する。
本実施例では、統合バッファキャッシュ管理部41による一元管理により、物理メモリをページングとバッファキャッシュに必要に応じて柔軟に振り分けている。このため、物理メモリを有効に活用することができる。例えば、仮想メモリを大量に消費するアプリケーションプログラム21aを実行するとき、ページングによる仮想メモリへ多くの物理メモリが割り当てられ、残り少量の物理メモリをバッファキャッシュとして割り当てることができる。
上述したように、本実施例の仮想記憶管理装置では、アプリケーションプログラム21a、オペレーティングシステム22a、揮発性メモリ11、及び不揮発性メモリ12が設けられる。オペレーティングシステム22aには、仮想記憶管理部23a、統合バッファキャッシュ管理部41、及びファイルシステム管理部42が設けられる。統合バッファキャッシュ管理部41は、ページング及びバッファキャッシュを一元管理し、ページ移動部25が設けられる。揮発性メモリ11は、複数のcleanページが設けられる。不揮発性メモリ12は、複数のdirtyページとページテーブル記憶部51が設けられる。ページ移動部25は、不揮発性メモリ12上のdirtyページのデータを二次記憶部4に反映させるとき、不揮発性メモリ12上のdirtyページのデータを揮発性メモリ11へ移動する。
このため、実施例1と同様な効果の他に、物理メモリをページングとバッファキャッシュに必要に応じて柔軟に振り分けているので、実施例1よりも物理メモリを有効に活用することができる。
本発明は、上記実施例に限定されるものではなく、発明の趣旨を逸脱しない範囲で、種々、変更してもよい。
実施例の仮想記憶管理装置は、一次記憶部及び二次記憶部を有する計算機に適用しているが、一次記憶部及び二次記憶部を有し、情報処理を行う移動体機器などの情報処理装置にも適用することができる。
本発明によれば、例えば計算機や情報処理装置などに適用することができる。
1 CPU
2 MMU
3 一次記憶部
4 二次記憶部
11 揮発性メモリ
12 不揮発性メモリ
21、21a アプリケーションプログラム
22、22a オペレーティングシステム
23、23a 仮想記憶管理部
25 ページ移動部
27a〜27c cleanページ
28a〜28c dirtyページ
31 ページテーブル
32 ページテーブルベースレジスタ
33 仮想アドレス
34 物理アドレス
41 統合バッファキャッシュ管理部
42 ファイルシステム管理部
51 ページテーブル記憶部
80 計算機
90 仮想記憶管理装置

Claims (9)

  1. 一次記憶部と、前記一次記憶部よりもメモリアクセス速度が低く、前記一次記憶部よりも大容量のメモリから構成される二次記憶部とを有する仮想記憶装置において、
    前記一次記憶部に設けられ、前記二次記憶部に記憶されるデータと同一であるcleanページのデータを記憶する揮発性メモリと、
    前記一次記憶部に設けられ、前記二次記憶部に記憶されるデータとは異なるdirtyページのデータを記憶し、少なくともどのページが前記dirtyページであるかを示す情報を有するページテーブルが配置される不揮発性メモリと、
    前記揮発性メモリ上のcleanページへの書き込みのとき、前記cleanページのデータを前記不揮発性メモリへ移動するページ移動部と、
    を具備することを特徴とする仮想記憶管理装置。
  2. 一次記憶部と、前記一次記憶部よりもメモリアクセス速度が低く、前記一次記憶部よりも大容量のメモリから構成される二次記憶部とを有する仮想記憶装置において、
    前記一次記憶部に設けられ、前記二次記憶部に記憶されるデータと同一であるcleanページのデータを記憶する揮発性メモリと、
    前記一次記憶部に設けられ、前記二次記憶部に記憶されるデータとは異なるdirtyページのデータを記憶し、少なくともどのページが前記dirtyページであるかを示す情報を有するページテーブルが配置される不揮発性メモリと、
    仮想メモリへのアクセスを管理する仮想記憶管理部と、
    ファイルへのアクセスを管理するファイルシステム管理部と、
    前記揮発性メモリ上のcleanページへの書き込みのとき、前記cleanページのデータを前記不揮発性メモリへ移動するページ移動部を有し、物理メモリをページング及びバッファキャッシュに振り分ける統合バッファキャッシュ管理部と、
    を具備することを特徴とする仮想記憶管理装置。
  3. 前記揮発性メモリはSRAM或いはDRAMであり、前記不揮発性メモリはFeRAM、MRAM、或いはReRAMであることを特徴とする請求項1又は2に記載の仮想記憶管理装置。
  4. 一次記憶部と、前記一次記憶部よりもメモリアクセス速度が低く、前記一次記憶部よりも大容量のメモリから構成される二次記憶部とを有する記憶装置において、
    前記一次記憶部に設けられ、前記二次記憶部に記憶されるデータと同一であるcleanページのデータを記憶する揮発性メモリと、
    前記一次記憶部に設けられ、前記二次記憶部に記憶されるデータとは異なるdirtyページのデータを記憶し、少なくともどのページが前記dirtyページであるかを示す情報を有するページテーブルが配置される不揮発性メモリと、
    前記揮発性メモリ上のcleanページへの書き込みのとき、前記cleanページのデータを前記不揮発性メモリへ移動するページ移動部と、
    を具備することを特徴とする記憶管理装置。
  5. 一次記憶部と、前記一次記憶部よりもメモリアクセス速度が低く、前記一次記憶部よりも大容量のメモリから構成される二次記憶部とを有する記憶装置において、
    前記一次記憶部に設けられ、前記二次記憶部に記憶されるデータと同一であるcleanページのデータを記憶する揮発性メモリと、
    前記一次記憶部に設けられ、前記二次記憶部に記憶されるデータとは異なるdirtyページのデータを記憶し、少なくともどのページが前記dirtyページであるかを示す情報を有するページテーブルが配置される不揮発性メモリと、
    メモリへのアクセスを管理する記憶管理部と、
    ファイルへのアクセスを管理するファイルシステム管理部と、
    前記揮発性メモリ上のcleanページへの書き込みのとき、前記cleanページのデータを前記不揮発性メモリへ移動するページ移動部を有し、物理メモリをページング及びバッファキャッシュに振り分ける統合バッファキャッシュ管理部と、
    を具備することを特徴とする記憶管理装置。
  6. 前記揮発性メモリはSRAM或いはDRAMであり、前記不揮発性メモリはFeRAM、MRAM、或いはReRAMであることを特徴とする請求項4又は5に記載の記憶管理装置。
  7. 一次記憶部と、前記一次記憶部よりもメモリアクセス速度が低く、前記一次記憶部よりも大容量のメモリから構成される二次記憶部とを有する仮想記憶装置において、
    前記一次記憶部に設けられ、前記二次記憶部に記憶されるデータと同一であるcleanページのデータを記憶する揮発性メモリと、
    前記一次記憶部に設けられ、前記二次記憶部に記憶されるデータとは異なるdirtyページのデータを記憶し、少なくともどのページが前記dirtyページであるかを示す情報を有するページテーブルが配置される不揮発性メモリと、
    前記揮発性メモリ上のcleanページへの書き込みのとき、前記cleanページのデータを前記不揮発性メモリへ移動するページ移動部を有し、物理メモリをページング及びバッファキャッシュに振り分ける統合バッファキャッシュ管理部と、
    を具備することを特徴とする仮想記憶管理装置。
  8. 一次記憶部と、前記一次記憶部よりもメモリアクセス速度が低く、前記一次記憶部よりも大容量のメモリから構成される二次記憶部とを有する仮想記憶装置において、
    前記一次記憶部に設けられ、前記二次記憶部に記憶されるデータと同一であるcleanページのデータを記憶する揮発性メモリと、
    前記一次記憶部に設けられ、前記二次記憶部に記憶されるデータとは異なるdirtyページのデータを記憶し、少なくともどのページが前記dirtyページであるかを示す情報を有するページテーブルが配置される不揮発性メモリと、
    前記揮発性メモリ上のcleanページへの書き込みのとき、前記cleanページのデータを前記不揮発性メモリへ移動するページ移動部を有し、物理メモリをページング及びバッファキャッシュに割り当てる統合バッファキャッシュ管理部と、
    を具備することを特徴とする仮想記憶管理装置。
  9. 一次記憶部と、前記一次記憶部よりもメモリアクセス速度が低く、前記一次記憶部よりも大容量のメモリから構成される二次記憶部とを有する記憶装置において、
    前記一次記憶部に設けられ、前記二次記憶部に記憶されるデータと同一であるcleanページのデータを記憶する揮発性メモリと、
    前記一次記憶部に設けられ、前記二次記憶部に記憶されるデータとは異なるdirtyページのデータを記憶し、少なくともどのページが前記dirtyページであるかを示す情報を有するページテーブルが配置される不揮発性メモリと、
    前記揮発性メモリ上のcleanページへの書き込みのとき、前記cleanページのデータを前記不揮発性メモリへ移動するページ移動部を有し、物理メモリをページング及びバッファキャッシュに割り当てる統合バッファキャッシュ管理部と、
    を具備することを特徴とする記憶管理装置
JP2013223055A 2013-10-28 2013-10-28 仮想記憶管理装置及び記憶管理装置 Expired - Fee Related JP5627754B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013223055A JP5627754B2 (ja) 2013-10-28 2013-10-28 仮想記憶管理装置及び記憶管理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013223055A JP5627754B2 (ja) 2013-10-28 2013-10-28 仮想記憶管理装置及び記憶管理装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2011531671A Division JP5404798B2 (ja) 2009-09-21 2009-09-21 仮想記憶管理装置及び記憶管理装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2014194698A Division JP5795418B2 (ja) 2014-09-25 2014-09-25 キャッシュ装置、及び記憶システム

Publications (2)

Publication Number Publication Date
JP2014041649A JP2014041649A (ja) 2014-03-06
JP5627754B2 true JP5627754B2 (ja) 2014-11-19

Family

ID=50393783

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013223055A Expired - Fee Related JP5627754B2 (ja) 2013-10-28 2013-10-28 仮想記憶管理装置及び記憶管理装置

Country Status (1)

Country Link
JP (1) JP5627754B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6784033B2 (ja) * 2016-02-24 2020-11-11 日本電気株式会社 方法、キャッシュシステム及びデータ監視部

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0520196A (ja) * 1991-07-09 1993-01-29 Mitsubishi Electric Corp デイスク・キヤツシユ制御装置
US7644239B2 (en) * 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
US20060174067A1 (en) * 2005-02-03 2006-08-03 Craig Soules Method of caching data
US20060184736A1 (en) * 2005-02-17 2006-08-17 Benhase Michael T Apparatus, system, and method for storing modified data
JP2008158773A (ja) * 2006-12-22 2008-07-10 Toshiba Corp 情報処理装置およびメモリ管理方法
JP2010152747A (ja) * 2008-12-25 2010-07-08 Nec Corp ストレージシステム、ストレージのキャッシュ制御方法、及びキャッシュ制御プログラム

Also Published As

Publication number Publication date
JP2014041649A (ja) 2014-03-06

Similar Documents

Publication Publication Date Title
JP5404798B2 (ja) 仮想記憶管理装置及び記憶管理装置
JP5663060B2 (ja) フラッシュメモリシステムの高速起動を容易にする方法およびシステム
US8935484B2 (en) Write-absorbing buffer for non-volatile memory
US20100312955A1 (en) Memory system and method of managing the same
JP2017138852A (ja) 情報処理装置、記憶装置およびプログラム
KR20120058352A (ko) 하이브리드 메모리 시스템, 및 그 관리 방법
US20180150390A1 (en) Data Storage Device and Operating Method Therefor
TWI417724B (zh) 使用替代頁池管理直接記憶器存取寫入頁錯誤之電腦執行方法、裝置、及電腦程式產品
US10430346B2 (en) DDR storage adapter
JPWO2006107095A1 (ja) 計算機システム,メモリ管理方法,およびそのプログラム
US20150074336A1 (en) Memory system, controller and method of controlling memory system
US8892810B2 (en) Semiconductor device and memory protection method
JP2019133703A (ja) 記憶システム
JP2010066914A (ja) 統合メモリ管理装置及びメモリ管理方法
KR101190001B1 (ko) 비휘발성 메모리를 포함한 메인 메모리상에서 파일시스템의 접근을 지원하기 위한 가상 메모리 시스템
JP2016085677A (ja) メモリ管理方法、メモリ管理プログラム及び情報処理装置
JP5795418B2 (ja) キャッシュ装置、及び記憶システム
JP5627754B2 (ja) 仮想記憶管理装置及び記憶管理装置
JP2011186554A (ja) メモリ管理装置及び方法
JP2010026969A (ja) データ処理装置
JP7118827B2 (ja) 情報処理装置、メモリ制御方法およびプログラム
JP2013109404A (ja) 情報処理装置
JP6640940B2 (ja) メモリシステムの制御方法
US11941247B2 (en) Storage device, storage system, and method
US20230409472A1 (en) Snapshotting Pending Memory Writes Using Non-Volatile Memory

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140624

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140627

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140808

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: 20140905

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140930

R151 Written notification of patent or utility model registration

Ref document number: 5627754

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

LAPS Cancellation because of no payment of annual fees