図面 (/)

技術 仮想記憶管理装置及び記憶管理装置

出願人 株式会社東芝
発明者 吉田英樹金井達徳樽家昌也山田裕
出願日 2013年10月28日 (4年9ヶ月経過) 出願番号 2013-223055
公開日 2014年3月6日 (4年5ヶ月経過) 公開番号 2014-041649
状態 特許登録済
技術分野 階層構造のメモリシステム
主要キーワード 実メモリ空間 記憶管理装置 移動体機器 未処理物 メモリアクセス速度 ファイル書き込み要求 仮想メモリアドレス 仮想記憶装置

この技術の活用可能性のある市場・分野

関連する未来課題
重要な関連分野

後で読みたい技術情報を見つけたら、ブックマークしておきましょう!

ページの右上にあるブックマークボタンからこのページをブックマークできます。
あなたがブックマークした技術情報は、いつでもマイページのリストから閲覧することが出来ます。

この項目の情報は公開日時点(2014年3月6日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (10)

課題

停電時にdirtyページ及びcleanページの内容が消失しない仮想記憶管理装置を提供する。

解決手段

仮想記憶管理装置90は、計算機内部に設けられ、アプリケーションプログラム21、オペレーティングシステム22、揮発性メモリ11、及び不揮発性メモリ12が設けられる。揮発性メモリ11は複数のcleanページが設けられる。不揮発性メモリ12は複数のdirtyページとページテーブル記憶部51が設けられる。オペレーティングシステム22は、ページ移動部25を有する仮想記憶管理部23が設けられる。

概要

背景

近年、処理情報の増大に対応するために、計算機システムでは仮想記憶技術が採用されている。仮想記憶とは、二次記憶部と一次記憶部の間で必要に応じてデータを移動することで、大容量で、且つアクセス速度の速いメモリ仮想メモリ)が存在するかのようにアプリケーションプログラム見せかける技術である。これを実現するために、メモリアクセス速度が速く、且つ比較的小容量の揮発性メモリ不揮発性メモリなどから構成される一次記憶部(主メモリ)と、一次記憶部よりもメモリアクセス速度が低く、大容量のハードディスクなどから構成される二次記憶部(仮想メモリ空間)とが設けられる。仮想メモリ空間と実メモリ空間の置き換え制御、並びに仮想アドレスから実アドレス変換制御に関する技術の一つとして、ページを単位としたページング技術がある。ページングによるアドレス変換は、仮想メモリ上の仮想ページ物理メモリ上の物理ページとが対応付けられる(例えば、特許文献1参照。)。

概要

停電時にdirtyページ及びcleanページの内容が消失しない仮想記憶管理装置を提供する。仮想記憶管理装置90は、計算機内部に設けられ、アプリケーションプログラム21、オペレーティングシステム22、揮発性メモリ11、及び不揮発性メモリ12が設けられる。揮発性メモリ11は複数のcleanページが設けられる。不揮発性メモリ12は複数のdirtyページとページテーブル記憶部51が設けられる。オペレーティングシステム22は、ページ移動部25を有する仮想記憶管理部23が設けられる。

目的

本発明は、停電時にdirtyページ及びcleanページの内容が消失しない仮想記憶管理装置を提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項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ページのデータを前記不揮発性メモリへ移動するページ移動部と、を具備することを特徴とする記憶管理装置。

請求項8

一次記憶部と、前記一次記憶部よりもメモリアクセス速度が低く、前記一次記憶部よりも大容量のメモリから構成される二次記憶部とを有する記憶装置において、前記一次記憶部に設けられ、前記二次記憶部に記憶されるデータと同一であるcleanページのデータを記憶する揮発性メモリと、前記一次記憶部に設けられ、前記二次記憶部に記憶されるデータとは異なるdirtyページのデータを記憶し、少なくともどのページが前記dirtyページであるかを示す情報を有するページテーブルが配置される不揮発性メモリと、前記不揮発性メモリ上のdirtyページのデータを前記二次記憶部に反映させるとき、前記dirtyページのデータを前記揮発性メモリへ移動するページ移動部と、を具備することを特徴とする記憶管理装置。

請求項9

前記揮発性メモリはSRAM或いはDRAMであり、前記不揮発性メモリはFeRAM、MRAM、或いはReRAMであることを特徴とする請求項7又は8に記載の記憶管理装置。

技術分野

0001

本発明は、仮想記憶管理装置及び記憶管理装置に関する。

背景技術

0002

近年、処理情報の増大に対応するために、計算機システムでは仮想記憶技術が採用されている。仮想記憶とは、二次記憶部と一次記憶部の間で必要に応じてデータを移動することで、大容量で、且つアクセス速度の速いメモリ仮想メモリ)が存在するかのようにアプリケーションプログラム見せかける技術である。これを実現するために、メモリアクセス速度が速く、且つ比較的小容量の揮発性メモリ不揮発性メモリなどから構成される一次記憶部(主メモリ)と、一次記憶部よりもメモリアクセス速度が低く、大容量のハードディスクなどから構成される二次記憶部(仮想メモリ空間)とが設けられる。仮想メモリ空間と実メモリ空間の置き換え制御、並びに仮想アドレスから実アドレス変換制御に関する技術の一つとして、ページを単位としたページング技術がある。ページングによるアドレス変換は、仮想メモリ上の仮想ページ物理メモリ上の物理ページとが対応付けられる(例えば、特許文献1参照。)。

先行技術

0003

特開2008−158773号公報

発明が解決しようとする課題

0004

しかしながら、特許文献1の発明では、仮想ページに、一次記憶部と二次記憶部とが同一内容であるcleanページと、一次記憶部の書き換えられたメモリ内容が二次記憶部に反映されていないdirtyページとが存在する。仮想記憶では、停電のときにcleanページのデータは消失しないが、dirtyページのデータは消失するという問題点がある。dirtyページのデータが消失すると、計算機再起動時にページテーブル再構築してもデータを回復することができない問題がある。

0005

本発明は、停電時にdirtyページ及びcleanページの内容が消失しない仮想記憶管理装置を提供することにある。

課題を解決するための手段

0006

本発明の一態様の仮想記憶管理装置は、一次記憶部と、前記一次記憶部よりもメモリアクセス速度が低く、前記一次記憶部よりも大容量のメモリから構成される二次記憶部とを有する仮想記憶装置において、前記一次記憶部に設けられ、前記二次記憶部に記憶されるデータと同一であるcleanページのデータを記憶する揮発性メモリと、前記一次記憶部に設けられ、前記二次記憶部に記憶されるデータとは異なるdirtyページのデータを記憶し、少なくともどのページが前記dirtyページであるかを示す情報を有するページテーブルが配置される不揮発性メモリと、前記揮発性メモリ上のcleanページに書き込むとき、前記cleanページのデータを前記不揮発性メモリへ移動するページ移動部とを具備する。

発明の効果

0007

本発明によれば、停電時にdirtyページ及びcleanページの内容が消失しない仮想記憶管理装置を提供することができる。

図面の簡単な説明

0008

本発明の実施例1に係る計算機の構成を示すブロック図。
本発明の実施例1に係る仮想記憶管理装置の構成を示すブロック図。
本発明の実施例1に係るページテーブルの配置を示す図。
本発明の実施例1に係るページテーブルの構成を示す図。
本発明の実施例1に係る仮想メモリの参照処理を示すフローチャート
本発明の実施例1に係る不揮発性メモリへの移動処理を示すフローチャート。
本発明の実施例1に係るページ移動処理を示すフローチャート。
本発明の実施例1に係る再起動時の処理を示すフローチャート。
本発明の実施例2に係る仮想記憶管理装置の構成を示すブロック図。

0009

以下本発明の実施例について図面を参照しながら説明する。

0010

まず、本発明の実施例1に係る仮想記憶管理装置について、図面を参照して説明する。図1は計算機の構成を示すブロック図である。本実施例では、一次記憶部を、揮発性メモリと不揮発性メモリで構成する。そして、一次記憶部の揮発性メモリに仮想メモリのcleanページを配置し、一次記憶部の不揮発性メモリに仮想メモリのdirtyページを配置している。

0011

図1に示すように、計算機80は、CPU(Central Processing Unit)1、MMU(Memory Management Unit)2、一次記憶部3(主メモリ)、及び二次記憶部4(例えば、大容量ディスクストレージ)などによって構成されている。

0012

計算機80は、ページングによる仮想記憶に対応したオペレーティングシステムが動作する計算機である。ページングは、ページを単位とした仮想アドレスから実アドレスへ変換する技術である。ページングは、オペレーティングシステム及びMMU2により実行される。ページは、領域や単位をあらわす。各ページは、コード及びデータから構成され、仮想ページと物理ページがある。計算機80は、エンドユーザ事務処理等を実行するコンピュータである。なお、計算機80は、ネットワークを介してクライアントからの要求に対応処理するサーバ、或いは機器の制御を実行する組み込み計算機でもよい。

0013

CPU1は、計算機80の全体を統括制御する。CPU1は、例えばオペレーティングシステムを主メモリから逐次読み込み、オペレーティングシステムに基づいてアプリケーションプログラムを実行する。

0014

MMU2は、CPU1の指示に基づいて、仮想ページと物理ページの変換ワークを行い、実際の主メモリのアクセスを行う。

0015

一次記憶部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)などを用いてもよい。

0016

二次記憶部4は、一次記憶部3よりも大容量である。二次記憶部4には、ハードディスクストレージを用いているが、代わりにフラッシュメモリなどを用いてもよい。CPU1は、一次記憶部3と二次記憶部4とをそれぞれ読み書きすることにより、一次記憶部3と二次記憶部4との間のデータ転送を実行する。なお、一次記憶部3と二次記憶部4との間にDMA(Direct Memory Access)コントローラを設け、CPU1を介さずに直接読み書きを実行してもよい。

0017

図2は、実施形態に係る仮想記憶管理装置の構成を示すブロック図である。仮想記憶管理装置90は、計算機80内部に設けられ、仮想記憶管理を実行する。図2に示すように、仮想記憶管理装置90には、アプリケーションプログラム21、オペレーティングシステム22、揮発性メモリ11、及び不揮発性メモリ12が設けられる。

0018

アプリケーションプログラム21は、オペレーティングシステム22に基づいてCPU1によって実行される。したがって、アプリケーションプログラム21のプログラムコード及びデータは、仮想メモリ上に設けられる。CPU1は、仮想アドレスを指定してアプリケーションプログラム21を読み書きして、実行する。

0019

オペレーティングシステム22には、仮想記憶管理部23が設けられる。オペレーティングシステム22のプログラムコード及びデータは、不揮発性メモリ12に格納されている。なお、代わりに、オペレーティングシステム22のプログラムコード及びデータを二次記憶部4に格納しておき、起動時に揮発性メモリ11に読み込んでもよい。

0020

仮想記憶管理部23には、ページ移動部25が設けられる。仮想記憶管理部23は、仮想記憶空間及び仮想アドレスを管理する。揮発性メモリ11は、複数のcleanページ27(例えば、cleanページ27a,27b,27c,‥)が設けられる。不揮発性メモリ12は、複数のdirtyページ28(例えば、dirtyページ28a,28b,28c,‥)とページテーブル記憶部51が設けられる。

0021

ここで、dirtyページ28は、一次記憶部3の書き換えられたデータが二次記憶部4にまだ反映されていなく、一次記憶部3のデータと、それに対応する二次記憶部4に格納されているデータとが異なるページであることを示している。cleanページ27は、一次記憶部3のデータと、それに対応する二次記憶部4に格納されているデータとが同一であるページであることを示している。

0022

ページ移動部25は、揮発性メモリ11と不揮発性メモリ12間のページの移動を実行する。例えば、物理ページの書き込みのときに、揮発性メモリ11上のcleanページ27のデータを不揮発性メモリ12に移動させる。また、不揮発性メモリ12上のdirtyページ28のデータを揮発性メモリ11に移動する。

0023

不揮発性メモリ12のページテーブル記憶部51は、cleanページとdirtyページの管理を行うページテーブルが設けられる。ページテーブル記憶部51は、仮想記憶管理部23とcleanページ及びdirtyページの情報のやりとりを行う。

0024

図3は、ページテーブルの配置を示す図である。図3に示すように、仮想記憶は、例えばページテーブル記憶部51に設けられるページテーブル31を使用したページングにより行われる。メモリアクセスに使用される仮想アドレス33は、ページとオフセットによって構成されている。仮想アドレス33のページ(例えば、ページA,B,C、‥)は、ページテーブルベースレジスタ32により、論理ページ番号毎にページテーブル31に配置される。MMU2は、ページテーブル31を参照して、仮想ページを物理ページに変換する。つまり、ページテーブル31に配置された仮想アドレス33のページは、MMU2により参照され、一次記憶部3をアクセスする物理アドレス34のブロックとして変換される。

0025

なお、オペレーティングシステム22がページテーブル31を参照し、MMU2が一部のページのマッピングのみを格納するTLB(Translation Look−aside Buffer)を参照する方式でもよい。この場合、必要に応じてオペレーティングシステム22がページテーブル31を参照してTLBの内容を入れ替えることになる。いずれの場合でも、ページテーブル31の書き換えは、オペレーティングシステム22が実行する。

0026

ページテーブル記憶部51に設けられるページテーブル31は、停電時に記憶データが消失しないように、例えば不揮発性メモリ12に設けられる。なお、揮発性メモリ11の物理ページを管理するページテーブルを分離して設けた場合、ページテーブル31は揮発性メモリ11に設け、不揮発性メモリ12の物理ページを管理するページテーブルは不揮発性メモリ12に設けてもよい(つまり、複数のページテーブルが不揮発性メモリ12と揮発性メモリ11に設けられる)。

0027

仮想記憶では、物理ページの割り当てを行うとき、仮想記憶管理部23は、ページテーブル31を用いて未使用物理ページを管理する。なお、代わりに、別途未使用物理ページを連結し、連結リストを作成して管理してもよい。

0028

未使用物理ページのリストは、すべて不揮発性メモリ12に設けている。なお、ページテーブル31の未使用物理ページだけを別に分離して、不揮発性メモリ12に設けてもよい。

0029

ページテーブルには、少なくとも、論理ページ番号、物理ページ番号、ページがdirtyページかcleanページかを示す情報と、それに対応付けされた情報とが設けられる。

0030

図4は、ページテーブル31の構成を示す図である。図4に示すように、例えば不揮発性メモリ12に設けられたページテーブル31は、ページテーブルベースレジスタ32で指定されるアドレスに配置される(図中の論理ページ0,1,2,3、‥がエントリに相当する)。各エントリは、論理ページ番号順に配置され、仮想メモリアドレスの論理ページ番号を添字として参照が行われる。各エントリは、例えば物理ページ番号のデータ、Presenceビット、Dirty/Cleanを示すビット、不揮発性メモリ/揮発性メモリを示すビット、Disk Addrを示すデータ、Protectionを示すデータなどから構成される。

0031

Presenceビットは、論理ページ番号に対応する物理ページ番号がページテーブル31に存在する場合に“1”となり、存在しない場合に“0”となる。Dirty/Cleanビットは、論理ページ番号のページがdirtyページである場合は“1”となり、cleanページである場合は“0”となる。不揮発性メモリ/揮発性メモリビットは、論理ページ番号のページデータが不揮発性メモリ12にある場合は“1”となり、揮発性メモリ11にある場合は“0”となる。

0032

Disk Addrのアドレスは、論理ページ番号に対応する二次記憶部4のディスクアドレスを示す。Protectionビットは、メモリ動作についての情報、例えばRead onlyなどを示す。

0033

次に、仮想記憶管理装置の動作について、図5乃至図8を参照して説明する。図5は仮想メモリの参照処理を示すフローチャートである。

0034

図5に示すように、仮想メモリの参照は、まず、仮想記憶管理装置90に設けられるアプリケーションプログラム21が論理アドレスを指定することで開始される。すると、仮想記憶管理装置90に設けられるオペレーティングシステム22は、アプリケーションプログラム21が指定した論理アドレスから論理ページ番号の計算を行う(ステップS11)。ここでは、論理アドレスの上位ビットが論理ページ番号となる。例えば、アドレス空間が32ビットで、ページサイズが1kBの場合、論理アドレスの上位22ビットが論理ページ番号となる。

0035

次に、オペレーティングシステム22は、論理ページ番号を添字としてページテーブル31の情報を引くと、エントリが得られる(ステップS12)。

0036

続いて、オペレーティングシステム22は、図3に示すページテーブル31の論理ページ番号で示すエントリのPresenceビットが“1”或いは“0”であるかの判定する(ステップS13)。Presenceビットが“1”の場合、オペレーティングシステム22は、当該エントリから物理アドレスを取得する(ステップS17)。一方、Presenceビットが“0”の場合、論理ページ番号の内容が一次記憶部3上にはなく、二次記憶部4に退避されている。したがって、Presenceビットが“0”の場合、オペレーティングシステム22は、揮発性メモリ11上の未使用物理ページを割り当てる(ステップS14)。

0037

そして、オペレーティングシステム22は、論理ページ番号のページ内容を二次記憶部4から一次記憶部3のcleanページに読み出す(ステップS15)。次に、オペレーティングシステム22は、ページテーブル31のエントリ更新を行う。具体的には、一次記憶部3に割り当てた物理ページ番号をそのエントリに書き込み、presenceビットを“1”にし、dirtyビットを“0”に置き換える。この場合、書き込み時の不揮発性メモリ12への移動のためにページへの書き込みは禁止しておく(ステップS16)。

0038

続いて、MMU2は論理アドレスから物理アドレスへの変換を行う。物理アドレスは、当該エントリから読み出された物理ページ番号を上位ビットとし、論理アドレスの下位オフセットを下位ビットとすることにより生成される。例えば、アドレス空間が32ビットでページサイズが1kBの場合、物理ページ番号を上位22ビットとし、論理アドレスのオフセットを下位10ビットとするアドレスを生成する(ステップS17)。

0039

そして、MMU2は生成された物理アドレス34を用いて一次記憶部3をアクセスする(ステップS18)。

0040

ここでは、1つのページテーブル31を用いて仮想メモリの参照を実行しているが、代わりに複数のページテーブルを用いて仮想メモリの参照を実行、或いはTLBを用いて仮想メモリの参照を実行してもよい。また、レベルの異なるページテーブルを複数設けて、仮想メモリの参照を実行してもよい。

0041

図6は不揮発性メモリへの移動処理を示すフローチャートである。図6に示すように、cleanページへの書き込み時の不揮発性メモリ12への移動は、MMU2でのフォールト判断を契機とし、copy on write方式で行う。

0042

まず、揮発性メモリ11に対応する論理ページをオペレーティングシステム22が読み出しのみ許可し、書き込みを禁止しておく。書き込みを実行した場合、フォールトが発生し、制御がオペレーティングシステム22の仮想記憶管理部23に移行する。仮想記憶管理部23は、不揮発性メモリ12上の未使用物理ページをページテーブル31或いは未使用物理ページリストから取り出す(ステップS21)。

0043

次に、不揮発性メモリ12の未使用物理ページが不足しているかを仮想記憶管理部23が判断する(ステップS22)。不揮発性メモリ12の未使用物理ページが不足していない場合、不揮発性メモリ12へのコピーと進む。不揮発性メモリ12の未使用物理ページが不足している場合、二次記憶部4への反映により仮想記憶管理部23が未使用物理ページを増やす(ステップS23)。

0044

続いて、揮発性メモリ11上の物理ページの内容を、取り出した不揮発性メモリ12上の物理ページに仮想記憶管理部23がコピーする(ステップS24)。

0045

そして、仮想記憶管理部23がページテーブルエントリを書き換え、不揮発性メモリ12上の物理ページを仮想ページに対応する物理ページにする。また、仮想記憶管理部23は、仮想ページの書き込みを許可し、これ以降、書き込みが発生してもフォールトが発生しないようにする(ステップS25)。

0046

次に、仮想記憶管理部23は、揮発性メモリ11上の物理ページを未使用物理ページに追加する(ステップS26)。

0047

ここでは、二次記憶部4に退避されているページへの書き込みが発生した場合、一旦揮発性メモリ11へのページングを実行し、直後にフォールトが発生して不揮発性メモリ12への移動が実行される。代わりに、初めから不揮発性メモリ12を仮想記憶管理部23が割り当て、そこへページインすることによりページ移動の手順を省略してもよい。

0048

次に、dirtyページの二次記憶部4への反映について説明する。仮想記憶管理部23は、書き込みのために多くの物理ページを不揮発性メモリ12へ移動する。不揮発性メモリ12の残量が少なくなった場合、仮想記憶管理部23は、不揮発性メモリ12上の一部の物理ページを選択してその内容を二次記憶部4へ反映する。ページの選択は、例えば最後の書き込みが実行されてから、時間が最も長いページを選択する。反映後、dirtyビットを仮想記憶管理部23が“0“に置き換える。

0049

二次記憶部4への反映により、dirtyビットがcleanビットとして認識される。認識後、仮想記憶管理部23のページ移動部25は、物理ページを直ちに揮発性メモリ11へ移動する。この場合、物理ページに再度書き込みが発生したときに不揮発性メモリ12への移動処理の手順を省略してもよい。具体的には、物理ページを別の仮想ページに割り当てる必要が発生するまで、仮想記憶管理部23は実際のページ移動を遅延し、不揮発性メモリ12上に物理ページを残置してもよい。

0050

図7はページ移動処理を示すフローチャートである。図7に示すように、ページ移動では、まず、揮発性メモリ11上の未使用物理ページを仮想記憶管理部23がページテーブル31或いは未使用物理ページリストから取り出す(ステップS31)。

0051

次に、未使用物理ページが不足しているかの判断を仮想記憶管理部23が行う(ステップS32)。未使用物理ページが不足している場合、揮発性メモリ11上の物理ページを仮想記憶管理部23が選択し、選択された物理ページを未使用物理ページとして利用する。ページの選択は、例えば最後の読み出しが実行されてからの時間が最も長いページを仮想記憶管理部23が選択する。揮発性メモリ11上の物理ページの情報は、二次記憶部4に反映されているものであり、未使用物理ページにする場合新たに反映する必要がない(ステップS33)。

0052

未使用物理ページが不足していない場合(或いは、物理ページの選択後)、仮想記憶管理部23は不揮発性メモリ12上の物理ページの情報を揮発性メモリ11上の物理ページにコピーする(ステップS34)。

0053

続いて、仮想記憶管理部23は、ページテーブル31を書き換え、揮発性メモリ11上の物理ページを仮想ページに対応する物理ページとする。仮想記憶管理部23は、仮想ページの書き込みを禁止し、これ以降の書き込みが発生したときのフォールトが発生するようにする。仮想記憶管理部23は、不揮発性メモリ12上のページを未処理物理ページに追加する(ステップS35)。

0054

本実施例では、オペレーティングシステム22は、不揮発性メモリ12或いは二次記憶部4上の特定アドレス特定ビットに、再起動時後のページテーブル31の初期化が必要であるかを示すフラグを設ける。起動時に、オペレーティングシステム22はこの特定ビットを“0”に設定する。オペレーティングシステム22は、シャットダウン時に仮想メモリの継続使用が不要な場合、この特定ビットを“1”に置き換えてシャットダウンする。停電により計算機80が突然停止した場合、この特定ビットは“0”のままとなる。

0055

図8は、再起動時の処理を示すフローチャートである。図8に示すように、再起動時の処理では、計算機80の再起動後、オペレーティングシステム22は、特定ビットを読み出す(ステップS41)。

0056

次に、オペレーティングシステム22は、読み出された特定ビットが“1”か“0”かの判断を行う(ステップS42)。

0057

読み出された特定ビットが“1”の場合、即ち初期化が要求されているときのみ、ページテーブル31の初期化をオペレーティングシステム22が実行する。具体的には、仮想メモリに対応する物理メモリが存在しない状態にする。或いは、仮想メモリに対応する物理メモリにすべて“0”が書き込まれた状態にする(ステップS43)。

0058

読み出された特定ビットが“0”の場合、即ち、停電後に計算機80が再起動した場合、或いはオペレーティングシステム22のシャットダウン時に二次記憶部4への反映が省略された場合、オペレーティングシステム22は、不揮発性メモリ12に保存されたページテーブル31を再利用する(ステップS44)。

0059

揮発性メモリ11上の物理ページを管理するページテーブルを分離して管理する場合、オペレーティングシステム22はこのページテーブルのみを常に初期化する。オペレーティングシステム22は、フラグが“1”の場合のみ、不揮発性メモリ12上の物理ページを管理するページテーブルを初期化する。

0060

このような処理により、不揮発性メモリ12上の物理ページのページテーブル31と、不揮発性メモリ12上の物理ページの情報は、再起動後も保存される。なお、プログラムを継続して実行するために、プロセスのコンテキストなどの情報が停電時に消失しないようにするには、それらの情報を不揮発性メモリ12に別途格納する。そして、計算機80の再起動後にページテーブルと同様な方法を用いて再構築する必要がある。

0061

上述したように、本実施例の仮想記憶管理装置では、計算機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へ移動する。

0062

このため、cleanページ及びdirtyページの情報は、停電時に消失しない。また、停電後に計算機80を再起動したとき、不揮発性メモリ12の情報に基づいて仮想記憶のページテーブルが再構築されるので、どの仮想ページがdirtyページかという情報と、dirtyページの仮想ページへの書き込み情報とは再起動後も保存される。また、書き込みを頻繁に二次記憶部4に反映する必要がなくなり、二次記憶部4と物理メモリ間の入出力が減少でき、計算機80の処理速度を向上できる。

0063

次に、本発明の実施例2に係る仮想記憶管理装置について、図面を参照して説明する。図9は仮想記憶管理装置の構成を示すブロック図である。本実施例では、オペレーティングシステムに仮想記憶管理部とファイルシステム管理部を設け、物理メモリをページングとバッファキャッシュに適宜振り分けている。

0064

以下、実施例1と同一構成部分には、同一符号を付してその部分の説明を省略し、異なる部分のみ説明する。

0065

図9に示すように、仮想記憶管理装置91には、アプリケーションプログラム21a、オペレーティングシステム22a、揮発性メモリ11、及び不揮発性メモリ12が設けられる。仮想記憶管理装置91は、実施例1と同様に計算機内部に設けられ、仮想記憶管理を実行する装置である。

0066

アプリケーションプログラム21aは、オペレーティングシステム22aに基づいてCPU1により実行される。したがって、アプリケーションプログラム21aのプログラムコード及びデータは、仮想メモリ上に設けられる。アプリケーションプログラム21aは、仮想アドレスを指定して読み書きを行う。CPU1は、仮想メモリを指定してアプリケーションプログラム21aを読み書きして、実行する。

0067

オペレーティングシステム22aには、仮想記憶管理部23a、統合バッファキャッシュ管理部41、及びファイルシステム管理部42が設けられる。統合バッファキャッシュ管理部41には、ページ移動部25が設けられる。

0068

図示しないバッファキャッシュは、物理メモリに設けられ、二次記憶部4のファイルデータの一部を物理メモリ上に保持する。バッファキャッシュは、ファイルの入出力の一部を物理メモリの参照のみで済ませて、二次記憶部4との入出力を減少し、処理を高速化する。

0069

仮想記憶管理部23aは、仮想メモリへのアクセスを管理する。ファイルシステム管理部42は、ファイルへのアクセスを管理する。

0070

統合バッファキャッシュ管理部41は、仮想メモリ及びファイルの処理を一元管理する。統合バッファキャッシュ管理部41は、ページテーブル記憶部51とcleanページ及びdirtyページの情報のやりとりを行う。統合バッファキャッシュ管理部41は、実施例1と同様な動作をし、アプリケーションプログラム21aからオペレーティングシステム22aへのファイル書き込み要求に対して処理を実行する。具体的には、統合バッファキャッシュ管理部41はアプリケーションプログラム21aがファイルへの書き込みを実行するときに、バッファキャッシュのページを揮発性メモリ11から不揮発性メモリ12に移動する。そして、統合バッファキャッシュ管理部41はバッファキャッシュの情報を二次記憶部4上のファイルへ反映させるときに、バッファキャッシュのページを不揮発性メモリ12から揮発性メモリ11へ移動する。ここでは、実施例1のMMU2によるアドレス変換やページフォールトの発生がなく、すべてオペレーティングシステム22aが処理を実行する。

0071

本実施例では、統合バッファキャッシュ管理部41による一元管理により、物理メモリをページングとバッファキャッシュに必要に応じて柔軟に振り分けている。このため、物理メモリを有効に活用することができる。例えば、仮想メモリを大量に消費するアプリケーションプログラム21aを実行するとき、ページングによる仮想メモリへ多くの物理メモリが割り当てられ、残り少量の物理メモリをバッファキャッシュとして割り当てることができる。

0072

上述したように、本実施例の仮想記憶管理装置では、アプリケーションプログラム21a、オペレーティングシステム22a、揮発性メモリ11、及び不揮発性メモリ12が設けられる。オペレーティングシステム22aには、仮想記憶管理部23a、統合バッファキャッシュ管理部41、及びファイルシステム管理部42が設けられる。統合バッファキャッシュ管理部41は、ページング及びバッファキャッシュを一元管理し、ページ移動部25が設けられる。揮発性メモリ11は、複数のcleanページが設けられる。不揮発性メモリ12は、複数のdirtyページとページテーブル記憶部51が設けられる。ページ移動部25は、不揮発性メモリ12上のdirtyページのデータを二次記憶部4に反映させるとき、不揮発性メモリ12上のdirtyページのデータを揮発性メモリ11へ移動する。

0073

このため、実施例1と同様な効果の他に、物理メモリをページングとバッファキャッシュに必要に応じて柔軟に振り分けているので、実施例1よりも物理メモリを有効に活用することができる。

0074

本発明は、上記実施例に限定されるものではなく、発明の趣旨を逸脱しない範囲で、種々、変更してもよい。

実施例

0075

実施例の仮想記憶管理装置は、一次記憶部及び二次記憶部を有する計算機に適用しているが、一次記憶部及び二次記憶部を有し、情報処理を行う移動体機器などの情報処理装置にも適用することができる。

0076

本発明によれば、例えば計算機や情報処理装置などに適用することができる。

0077

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 仮想記憶管理装置

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

新着 最近公開された関連が強い技術

この技術と関連性が強い技術

関連性が強い技術一覧

この技術と関連性が強い人物

関連性が強い人物一覧

この技術と関連する挑戦したい社会課題

関連する挑戦したい社会課題一覧

この技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ