(57)【要約】【課題】  優先度が高い処理であっても、ページフォールト発生時のスワップ動作に時間がかかり、処理が遅延する場合がある。【解決手段】  複数のページを含む第１の記憶部と複数のページを含む第２の記憶部とを含む階層化された記憶手段に対するアクセスにおいてページフォールトが発生した場合に、当該メモリアクセスの対象データが優先データであるか非優先データであるかを、対象データに対応する優先度と閾値とに基づいて判定し、対象データが優先データであると判定した場合に、クリーンページのいずれか一つを選択し、その識別情報を出力するページ選択部を有する。【選択図】      図１
2010134584.tif 000002
【特許請求の範囲】
【請求項１】
複数のページを含む第１の記憶部と複数のページを含む第２の記憶部とを含む階層化された記憶手段に対するメモリアクセスにおいてページフォールトが発生した場合に、
当該メモリアクセスの対象データが優先データであるか非優先データであるかを、前記対象データに予め割り当てられた優先度と予め定められた閾値とに基づいて判定し、前記対象データが前記優先データであると判定した場合に、前記第１の記憶部の複数のページの内、前記第２の記憶部の対応するページに格納されているデータと同一のデータを記憶したページのいずれか一つを選択し、
当該選択した前記第１の記憶部のページの識別情報を出力するページ選択部を有する
ことを特徴とするメモリ管理装置。
【請求項２】
予め定められたタイミング毎に、前記第１の記憶部の各ページについて該ページに対応する参照頻度の値が小さいものから順に、当該ページに格納されているデータと前記第２の記憶部の対応するページに格納されているデータとが異なっている前記第１の記憶部のページであるダーティページを検索し、
前記ダーティページを検出した場合に当該ダーティページに格納されているデータを前記第２の記憶部の対応するページへ書き込む指示を出力するスワップ領域管理部を有する
ことを特徴とする請求項１記載のメモリ管理装置。
【請求項３】
前記ページ選択部は、前記優先度として少なくとも前記対象データを使用するタスクの優先度と前記閾値とに基づいて前記判定をする
ことを特徴とする請求項１または２記載のメモリ管理装置。
【請求項４】
前記ページ選択部は、前記優先度として少なくとも前記対象データであるオブジェクトの優先度と前記閾値とに基づいて前記判定をする
ことを特徴とする請求項１乃至３のいずれかに記載のメモリ管理装置。
【請求項５】
前記ページ選択部は、前記優先度として少なくとも前記対象データを含むライブラリの優先度と前記閾値とに基づいて前記判定をする
ことを特徴とする請求項１乃至４のいずれかに記載のメモリ管理装置。
【請求項６】
複数のページを含む第１の記憶部と複数のページを含む第２の記憶部とを含む階層化された記憶手段に対するメモリアクセスにおいてページフォールトが発生した場合に、
当該メモリアクセスの対象データが優先データであるか非優先データであるかを、前記対象データに予め割り当てられた優先度と予め定められた閾値とに基づいて判定し、前記対象データが前記優先データであると判定した場合に、前記第１の記憶部の複数のページの内、前記第２の記憶部の対応するページに格納されているデータと同一のデータを記憶したページのいずれか一つを選択し、
当該選択した前記第１の記憶部のページの識別情報を出力する
ことを特徴とするメモリ管理方法。
【請求項７】
予め定められたタイミング毎に、前記第１の記憶部の各ページについて該ページに対応する参照頻度の値が小さいものから順に、当該ページに格納されているデータと前記第２の記憶部の対応するページに格納されているデータとが異なっている前記第１の記憶部のページであるダーティページを検索し、
前記ダーティページを検出した場合に当該ダーティページに格納されているデータを前記第２の記憶部の対応するページへ書き込む指示を出力する
ことを特徴とする請求項６記載のメモリ管理方法。
【請求項８】
前記判定を、前記優先度として少なくとも前記対象データを使用するタスクの優先度と前記閾値とに基づいて行う
ことを特徴とする請求項６または７記載のメモリ管理方法。
【請求項９】
前記判定を、前記優先度として少なくとも前記対象データであるオブジェクトの優先度と前記閾値とに基づいて行う
ことを特徴とする請求項６乃至８のいずれかに記載のメモリ管理方法。
【請求項１０】
前記判定を、前記優先度として少なくとも前記対象データを含むライブラリの優先度と前記閾値とに基づいて行う
ことを特徴とする請求項６乃至９のいずれかに記載のメモリ管理方法。
【請求項１１】
複数のページを含む第１の記憶部と複数のページを含む第２の記憶部とを含む階層化された記憶手段に対するメモリアクセスにおいてページフォールトが発生した場合に、
当該メモリアクセスの対象データが優先データであるか非優先データであるかを、前記対象データに予め割り当てられた優先度と予め定められた閾値とに基づいて判定し、前記対象データが前記優先データであると判定した場合に、前記第１の記憶部の複数のページの内、前記第２の記憶部の対応するページに格納されているデータと同一のデータを記憶したページのいずれか一つを選択し、
当該選択した前記第１の記憶部のページの識別情報を出力する処理
をコンピュータに実行させることを特徴とするプログラム。
【請求項１２】
予め定められたタイミング毎に、前記第１の記憶部の各ページについて該ページに対応する参照頻度の値が小さいものから順に、当該ページに格納されているデータと前記第２の記憶部の対応するページに格納されているデータとが異なっている前記第１の記憶部のページであるダーティページを検索し、
前記ダーティページを検出した場合に当該ダーティページに格納されているデータを前記第２の記憶部の対応するページへ書き込む指示を出力する処理
をコンピュータに実行させることを特徴とする請求項１１記載のプログラム。
【請求項１３】
前記判定を、前記優先度として少なくとも前記対象データを使用するタスクの優先度と前記閾値とに基づいて行う処理
をコンピュータに実行させることを特徴とする請求項１１または１２記載のプログラム。
【請求項１４】
前記判定を、前記優先度として少なくとも前記対象データであるオブジェクトの優先度と前記閾値とに基づいて行う処理
をコンピュータに実行させることを特徴とする請求項１１乃至１３のいずれかに記載のプログラム。
【請求項１５】
前記判定を、前記優先度として少なくとも前記対象データを含むライブラリの優先度と前記閾値とに基づいて行う処理
をコンピュータに実行させることを特徴とする請求項１１乃至１４のいずれかに記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はメモリ管理装置、メモリ管理方法およびプログラムに関し、特に、階層構造のメモリを管理するメモリ管理装置、メモリ管理方法およびプログラムに関する。
【背景技術】
【０００２】
仮想記憶あるいはキャッシュなど、複数のページを含む第１の記憶部と複数のページを含む第２の記憶部とを含む階層化された記憶手段を管理するメモリ管理の技術がある（例えば、非特許文献１）。
【０００３】
このようなメモリ管理の技術において、ページフォールト発生時にスワップアウトするページを選択する技術として、実記憶のページのうち最後に参照されてからの経過時間が最大のページを選択するＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）、あるいは実記憶のページのうち最も古くから存在するページを選択するＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）などのページ置換アルゴリズムがある。
【０００４】
例えば、特許文献１記載のキャッシュ制御装置は、キャッシュ上のデータブロック毎に複数の状態情報を保持しており、これらの状態情報に基づいてリプレース（置換）するデータブロックを決定する。
【０００５】
また、特許文献２記載のオンデマンド・ページング方式は、優先度別に設けられた使用中主記憶管理テーブルエントリーキューを有し、メモリページを割り付けられたタスクの優先度に対応する使用中主記憶管理テーブルエントリーキューに、割り付けたメモリページに対応する主記憶管理テーブルを接続する。そして、このオンデマンド・ページング方式において、割り付け済みのページを空にする場合には、優先度の低い使用中主記憶管理テーブルエントリーキューに接続された主記憶管理テーブルに対応するページが空にするページとして選択される。
【０００６】
また、特許文献３記載の情報記憶装置は、キャッシュメモリブロックをクリーンデータであるかダーティデータであるかに基づいて障害後の復旧の優先度を決定する機能を有している。
【０００７】
さらに、特許文献４記載の先取りキャッシュ書戻しの方法と装置は、所定の時間間隔でキャッシュエントリをチェックし、汚れていて書き込みから一定時間以上経過しているキャッシュエントリを書き戻す機能を有している。
【０００８】
【特許文献１】特許第３３０９４２５号公報
【特許文献２】特開平０５−０３５５１３号公報
【特許文献３】特開平０８−０８７４５０号公報
【特許文献４】特開平１０−２３２８２７号公報
【非特許文献１】坂井修一、「コンピュータアーキテクチャ」、２００４年３月３１日、５．キャッシュと仮想記憶  Ｐ７０−Ｐ９０
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述した特許文献１−４に記載された装置、方式および方法に基づく技術では、優先度が高い処理であるにもかかわらずページフォールト発生時のスワップ動作に時間がかかり、処理が遅延する場合があるという問題があった。
【００１０】
例えば、車載システムの警告画面を表示するアプリケーション処理などは、動作の頻度は低い一方優先度は高い。このような処理により参照されるデータは、参照頻度が低いために、スワップ領域にスワップアウトされた状態にあることが多い。このため、アプリケーションが警告画面を表示する場合に実メモリ上の他のデータをスワップアウトする動作を行わなければならない状況が頻繁に発生し、このスワップアウト動作におけるスワップ領域への書き戻し動作の実行に時間を要するためにアプリケーションの処理が頻繁に遅延するという問題がある。
【００１１】
本発明の目的は、上述した問題を解決するメモリ管理装置、メモリ管理方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００１２】
本発明のメモリ管理装置は、複数のページを含む第１の記憶部と複数のページを含む第２の記憶部とを含む階層化された記憶手段に対するアクセスにおいてページフォールトが発生した場合に、
当該メモリアクセスの対象データが優先データであるか非優先データであるかを、前記対象データに予め割り当てられた優先度と予め定められた閾値とに基づいて判定し、前記対象データが前記優先データであると判定した場合に、前記第１の記憶部の複数のページの内、前記第２の記憶部の対応するページに格納されているデータと同一のデータを記憶したページのいずれか一つを選択し、
当該選択した前記第１の記憶部のページの識別情報を出力するページ選択部を有する。
【００１３】
本発明のメモリ管理方法は、複数のページを含む第１の記憶部と複数のページを含む第２の記憶部とを含む階層化された記憶手段に対するアクセスにおいてページフォールトが発生した場合に、
当該メモリアクセスの対象データが優先データであるか非優先データであるかを、前記対象データに予め割り当てられた優先度と予め定められた閾値とに基づいて判定し、前記対象データが前記優先データであると判定した場合に、前記第１の記憶部の複数のページの内、前記第２の記憶部の対応するページに格納されているデータと同一のデータを記憶したページのいずれか一つを選択し、
当該選択した前記第１の記憶部のページの識別情報を出力する。
【００１４】
本発明のプログラムは、複数のページを含む第１の記憶部と複数のページを含む第２の記憶部とを含む階層化された記憶手段に対するアクセスにおいてページフォールトが発生した場合に、
当該メモリアクセスの対象データが優先データであるか非優先データであるかを、前記対象データに予め割り当てられた優先度と予め定められた閾値とに基づいて判定し、前記対象データが前記優先データであると判定した場合に、前記第１の記憶部の複数のページの内、前記第２の記憶部の対応するページに格納されているデータと同一のデータを記憶したページのいずれか一つを選択し、
当該選択した前記第１の記憶部のページの識別情報を出力する。
【発明の効果】
【００１５】
本発明によれば、優先度が高い処理においてページフォールトが発生した時のスワップ動作を高速化することが可能になる。
【発明を実施するための最良の形態】
【００１６】
次に、本発明の第１の実施の形態について図面を参照して詳細に説明する。
【００１７】
図１は、本実施の形態の構成を示すブロック図である。図１を参照すると、本実施の形態は、制御部１００、物理メモリ２００およびディスク装置３００から構成されている。尚、制御部１００は、メモリ管理装置とも呼ばれる。また、物理メモリ２００およびディスク装置３００は、それぞれ一般的に第１の記憶部および第２の記憶部とも呼ばれる。また、物理メモリ２００とディスク装置３００とは、以下に説明するように階層化された記憶手段として構成されている。
【００１８】
制御部１００は、タスク管理テーブル１１０、ページテーブル１２０、メモリ管理部１３０、ページ選択部１４０、スワップ処理部１５０、スワップ領域管理部１６０およびディスク装置インタフェース部１７０を含む。
【００１９】
物理メモリ２００は、所定サイズの物理ページを含む。物理メモリ２００の物理ページは、一般的に第１の記憶手段のページとも呼ばれる。
【００２０】
ディスク装置３００は、所定サイズの複数の仮想ページからなるスワップ領域３１０を含む。スワップ領域３１０は、物理メモリ２００の容量が不足している場合に物理メモリ２００上の物理ページのデータ内容を退避することができる、ディスク装置３００上の領域である。ディスク装置３００の仮想ページは、一般的に第２の記憶手段のページとも呼ばれる。
【００２１】
タスク管理テーブル１１０は、タスクの優先度を管理するためのテーブルであり、図３に示すようにタスクの識別子であるタスク識別子１１１および対応するタスク優先度１１２を含む少なくとも一つのタスクエントリ１１９からなる。
【００２２】
ページテーブル１２０は、図４に示すように物理ページ番号１２１、割当フラグ１２２、参照頻度１２３、変更フラグ１２４および仮想ページ番号１２５を含む複数のページエントリ１２９からなる。
【００２３】
物理ページ番号１２１は、物理メモリ２００の物理ページそれぞれに付与され、物理ページそれぞれを一意に識別可能とする。尚、物理ページ番号１２１は一般的にページの識別情報とも呼ばれる。
【００２４】
割当フラグ１２２は、物理ページ番号１２１に対応する物理メモリ２００の物理ページが、仮想ページに割り当て済みか否かを示すフラグであり、「１」で「割り当て済みである」ことを示し、「０」で「割り当て済みでない」ことを示す。
【００２５】
参照頻度１２３は、物理ページ番号１２１に対応する物理メモリ２００の物理ページが参照された頻度を示す。参照頻度１２３は、相対的に値が大きいほど参照された頻度が高いことを、相対的に値が小さいほど参照された頻度が低いことを示す。
【００２６】
変更フラグ１２４は、物理ページ番号１２１に対応する物理メモリ２００の物理ページの内容が変更されたか否かを示すフラグであり、「１」で「変更されている」ことを示し、「０」で「変更されていない」ことを示す。尚、物理ページ番号１２１に対応する物理メモリ２００の物理ページの、内容が変更されていることは、物理メモリ２００の物理ページに格納されているデータが、ディスク装置３００のスワップ領域３１０内の対応する仮想ページに格納されているデータに対して変更されていることにも含まれる。
【００２７】
仮想ページ番号１２５は、スワップ領域３１０に含まれる仮想ページそれぞれに付与され、仮想ページそれぞれを一意に識別可能とする。そして、仮想ページ番号１２５は、物理ページ番号１２１に対応する物理メモリ２００の物理ページが割り当てられている仮想ページの番号を示す。仮想ページ番号１２５は、対応する割当フラグ１２２が「１」の場合に有効な情報である。
【００２８】
メモリ管理部１３０は、プロセッサ（図示しない）あるいはＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）制御部（図示しない）の指示に基づいて、仮想ページの仮想アドレスを物理メモリ２００の物理アドレスに変換し、物理メモリ２００へのアクセスを処理する。また、メモリ管理部１３０は、アクセスしようとした仮想ページが物理メモリ２００に存在しないこと即ちページフォールトを検出すると、ページフォールト発生通知を出力する。また、メモリ管理部１３０は、 例えばＮＦＵ（Ｎｏｔ  Ｆｒｅｑｕｅｎｔｌｙ  Ｕｓｅｄ）アルゴリズムや、これを改良したエージングアルゴリズムを用いて、物理メモリ２００の物理ページそれぞれが参照された頻度を算出する手段を有し、算出した参照された頻度をページテーブル１２０の参照頻度１２３に格納する。
【００２９】
ページ選択部１４０は、予め定められた閾値１４１を保持する手段を有し、ページフォールト発生通知の入力に対応してタスク管理テーブル１１０およびページテーブル１２０を参照し、スワップアウトする仮想ページを決定する。
【００３０】
スワップ処理部１５０は、スワップイン、およびページ選択部１４０が選択したページのスワップアウトを実行する。以下に、スワップインおよびスワップアウトの処理の具体的な実現手段の一例を説明する。
【００３１】
まず、スワップインの処理について説明する。スワップ処理部１５０は、仮想ページ番号１２５を入力に対応してページテーブル１２０を参照し、割当フラグ１２２が「０」であるページエントリ１２９の物理ページ番号１２１を取得する。
【００３２】
続けて、スワップ処理部１５０は、このページエントリ１２９の割当フラグ１２２を「１」に、参照頻度１２３を「０」に、変更フラグ１２４を「０」に設定し、さらにスワップイン対象のデータが格納されている仮想ページの仮想ページ番号１２５をこのページエントリ１２９に格納する。さらに続けて、スワップ処理部１５０は、仮想ページに格納されているスワップイン対象のデータを先に取得した物理ページ番号１２１に対応する物理メモリ２００の物理ページに転送する要求を、メモリ管理部１３０とディスク装置インタフェース部１７０とに対して出力する。
【００３３】
この転送する要求を入力したメモリ管理部１３０とディスク装置インタフェース部１７０とは、物理メモリ２００およびディスク装置３００をそれぞれ制御してスワップイン対象のデータを転送する。尚、この転送の実現手段（図示しない）は、メモリ管理部１３０とディスク装置インタフェース部１７０とを経由するようにしてもよいし、物理メモリ２００およびディスク装置３００間で直接やり取りするようにしてもよい。
【００３４】
次に、スワップ処理部１５０は、メモリ管理部１３０から転送完了の通知を受け取りスワップインの処理を完了する。
【００３５】
次に、スワップアウトの処理について説明する。スワップ処理部１５０は、スワップアプト対象の物理メモリ２００の物理ページを指定する物理ページ番号１２１の入力に対応して指定された物理ページ番号１２１を含むページテーブル１２０のページエントリ１２９を参照し、変更フラグ１２４を確認する。変更フラグ１２４が「０」の場合、この物理メモリ２００の物理ページはクリーンページであるため、このページのデータを物理メモリ２００からスワップ領域３１０の書き出す必要はない。そこで、スワップ処理部１５０は、スワップアウト対象のデータに対応するページエントリ１２９の割当フラグ１２２を「０」に設定し、スワップアウトの処理を完了する。
【００３６】
変更フラグ１２４が「１」の場合、この物理メモリ２００の物理ページはダーティページであるため、このページのデータを物理メモリ２００からスワップ領域３１０へ書き出す必要がある。そこで、スワップ処理部１５０は、指定された物理ページ番号１２１を含むページテーブル１２０のページエントリ１２９を参照し、対応する仮想ページ番号１２５を取得する。続けて、スワップ処理部１５０は、指定された物理ページ番号１２１に対応する物理メモリ２００の物理ページに格納されているスワップアウト対象のデータを先に取得した仮想ページ番号１２５に対応する仮想ページに転送する要求を、メモリ管理部１３０とディスク装置インタフェース部１７０とに対して出力する。
【００３７】
この転送する要求を入力したメモリ管理部１３０とディスク装置インタフェース部１７０とは、物理メモリ２００およびディスク装置３００をそれぞれ制御して、スワップアウト対象のデータを転送する。尚、この転送の実現手段（図示しない）は、メモリ管理部１３０とディスク装置インタフェース部１７０とを経由するようにしてもよいし、物理メモリ２００およびディスク装置３００間で直接やり取りするようにしてもよい。
【００３８】
ディスク装置インタフェース部１７０から転送完了の通知を受け取るとスワップ処理部１５０は、スワップアウト対象のデータに対応するページエントリ１２９の割当フラグ１２２を「０」に設定し、スワップアウトの処理を完了する。
【００３９】
尚、スワップインおよびスワップアウトは、それぞれ一般的にページインおよびページアウトと呼ばれることもある。
【００４０】
スワップ領域管理部１６０は、定期的にページテーブル１２０を参照して、変更フラグ１２４が「１」であって、参照頻度１２３が最も低い物理メモリ２００の物理ページを検出し、この検出した物理ページのデータをスワップ領域３１０へ退避する。
【００４１】
次に、本実施の形態の動作について、図を用いて詳細に説明する。
【００４２】
図５は、ページフォールトを検出した場合の動作を示すフローチャートである。
【００４３】
まず、メモリ管理部１３０が、アクセスしようとした仮想ページが物理メモリ２００に存在しないこと、即ちページフォールトを検出したことを契機に、制御部１００は本動作を開始する（Ｓ６００）。メモリ管理部１３０は、ページフォールトを検出するとページ選択部１４０に対してページフォールト発生通知を出力する（Ｓ６０２）。
【００４４】
次に、ページ選択部１４０は、ページフォールト発生通知の入力に対応してページフォールトとなったタスク識別子１１１および仮想ページ番号１２５を図示しないオペレーティングシステムから取得し、タスク管理テーブル１１０を参照してこのページフォールトとなったタスクに対応するタスク優先度１１２を取得する（Ｓ６０４）。
【００４５】
次に、ページ選択部１４０は、ページテーブル１２０を参照し、参照頻度１２３が最も小さい物理ページ番号１２１を取得する（Ｓ６０６）。
【００４６】
次に、ページ選択部１４０は、Ｓ６０４で取得したタスク優先度１１２と閾値１４１とを比較する（Ｓ６１０）。そして、この比較の結果、Ｓ６０４で取得したタスク優先度１１２が閾値１４１より低い場合（Ｓ６１０でＮＯ）、処理はＳ６２０へ進む。また、Ｓ６０４で取得したタスク優先度１１２が閾値１４１を超える場合（Ｓ６１０でＹＥＳ）、処理はＳ６１４へ進む。
【００４７】
尚、タスク優先度１１２と閾値１４１とを比較することは、アクセスの対象データが優先データであるか非優先データであるかを、対象データに対応する優先度と予め定められた閾値とに基づいて判定することにも含まれる。
【００４８】
Ｓ６１４において、ページ選択部１４０は、Ｓ６０６および後述するＳ６１６で取得した物理ページ番号１２１に対応する変更フラグ１２４の状態を確認する（Ｓ６１４）。この確認の結果、変更フラグ１２４の状態が０の場合（Ｓ６１４でＮＯ）、処理はＳ６２０へ進む。また、変更フラグ１２４の状態が１の場合（Ｓ６１４でＹＥＳ）、処理はＳ６１６へ進む。
【００４９】
Ｓ６１６において、ページ選択部１４０は、ページテーブル１２０を参照し、ページエントリ１２９のうちＳ６０６あるいは本Ｓ６１６で既に取得済みである物理ページ番号１２１に対応するものを除いたページエントリ１２９のなかで、参照頻度１２３が最も小さいページエントリ１２９に対応する物理ページ番号１２１を取得する。全ての物理ページ番号１２１が取得済みの状態である場合は、全ての物理ページ番号１２１について取得済みの状態を解除し、全てのページエントリ１２９のうちから参照頻度１２３が最も小さい物理ページ番号１２１を取得する（Ｓ６１６）。そして、処理はＳ６１４へ戻る。尚、全ての物理ページ番号１２１が取得済みの状態である場合に、全ての物理ページ番号１２１について取得済みの状態を解除して、Ｓ６１４とＳ６１６との繰り返し処理を継続することで、後述するクリーン化処理により、変更フラグ１２４の状態が「０」となったページエントリ１２９を検出することができる。
【００５０】
次に、ページ選択部１４０は、取得した物理ページ番号１２１および仮想ページ番号１２５をスワップ処理部１５０に対して出力する（Ｓ６２０）。
【００５１】
次に、スワップ処理部１５０は、物理ページ番号１２１および仮想ページ番号１２５の入力に対応して、物理ページ番号１２１に対応する物理メモリ２００の物理ページに格納されているデータを仮想ページ番号１２５に対応するスワップ領域３１０の仮想ページへスワップアウトする（Ｓ６２２）。尚、先に説明したように、スワップアウト対象のデータが格納されている物理メモリ２００の物理ページがクリーンページの場合は、これがダーティページである場合と比較して、物理メモリ２００からディスク装置３００へのデータ転送が不要である分処理時間が短縮される。一方、タスク優先度１１２が所定の閾値１４１より高い場合は、Ｓ６１４において変更フラグ１２４の状態を確認して、スワップアプトする物理メモリ２００の物理ページ番号１２１として変更フラグ１２４が「０」即ちクリーンページであるものを選択している。従って、タスク優先度１１２が所定の閾値１４１より高い場合は、処理時間が短縮されたスワップアウト処理が実行される。
【００５２】
次に、スワップ処理部１５０は、ステップ６２２で入力した仮想ページ番号１２５に対応する仮想ページのデータを、Ｓ６２２でスワップアウトした物理メモリ２００の物理ページにスワップインする（Ｓ６２４）。
【００５３】
図６は、クリーン化処理の動作を示すフローチャートである。クリーン化処理とは、物理メモリ２００のダーティページ（変更フラグ１２４が「１」）のデータをディスク装置３００のスワップ領域３１０に転送し、対象の物理メモリ２００の物理ページをクリーンページ（変更フラグ１２４が「０」）にする処理である。
【００５４】
まず、図示しない計時手段より、あらかじめ定められた時間間隔で出力されるクリーン化処理開始指示を契機に、制御部１００は本動作を開始する（Ｓ７００）。
【００５５】
スワップ領域管理部１６０は、クリーン化処理開始指示の入力に対応してページテーブル１２０を参照し、参照頻度１２３が最も小さいページエントリ１２９を検出する（Ｓ７０２）。
【００５６】
次に、スワップ領域管理部１６０は、検出したページエントリ１２９の変更フラグ１２４の状態を確認する（Ｓ７０４）。この確認の結果、変更フラグ１２４の状態が「１」の場合（Ｓ７０４でＹＥＳ）、処理はＳ７１０へ進む。また、変更フラグ１２４の状態が「０」の場合（Ｓ７０４でＮＯ）、処理はＳ７０６へ進む。
【００５７】
Ｓ７０６において、スワップ領域管理部１６０は、ページテーブル１２０のすべてのページエントリ１２９がＳ７０２あるいは後述するＳ７０８で既に検出済みであるか否かを確認する（Ｓ７０６）。この確認の結果、すべてのページエントリ１２９が既に検出済みである場合（Ｓ７０６でＹＥＳ）、処理は終了する。また、未検出のページエントリ１２９がある場合（Ｓ７０６でＮＯ）、処理はＳ７０８へ進む。尚、ページテーブル１２０のすべてのページエントリ１２９がＳ７０２あるいは後述するＳ７０８で既に検出済みであるということは、全ての物理ページがクリーンページの状態であることを意味する。
【００５８】
Ｓ７０８において、スワップ領域管理部１６０は、ページテーブル１２０を参照し、Ｓ７０２あるいは本Ｓ７０６で既に検出済みであるページエントリ１２９を除くページエントリ１２９のうちから参照頻度１２３が最も小さいページエントリ１２９を検出する（Ｓ７０８）。そして、処理はＳ７０４へ戻る。
【００５９】
次に、スワップ領域管理部１６０は、Ｓ７０４で変更フラグ１２４の状態が「１」であることを確認したページエントリ１２９の物理ページ番号１２１と仮想ページ番号１２５とを取得する。続けて、スワップ領域管理部１６０は、取得した物理ページ番号１２１に対応するクリーン化処理対象である物理ページに格納されているデータを、取得した仮想ページ番号１２５に対応する仮想ページに転送する要求を、メモリ管理部１３０とディスク装置インタフェース部１７０とに対して出力する（Ｓ７１０）。この転送する要求を入力したメモリ管理部１３０とディスク装置インタフェース部１７０とは、物理メモリ２００およびディスク装置３００をそれぞれ制御して対象のデータを転送する。尚、この転送の実現手段（図示しない）は、メモリ管理部１３０とディスク装置インタフェース部１７０とを経由するようにしてもよいし、物理メモリ２００およびディスク装置３００間で直接やり取りするようにしても良い。
【００６０】
ディスク装置インタフェース部１７０から転送完了の通知を受け取るとスワップ領域管理部１６０は、クリーン化処理対象のページに対応するページエントリ１２９の変更フラグ１２４を「０」に設定し、クリーン化処理を完了する（Ｓ７１２）。
【００６１】
図２は、本実施の形態の基本的な構成を示す。図２によれば、本発明の基本的な構成は、ページ選択部１４０を含むメモリ管理装置４００を有する。ページ選択部１４０は、予め定められた閾値１４１を保持する。
【００６２】
ページ選択部１４０は、複数のページを含む第１の記憶部と複数のページを含む第２の記憶部とを含む階層化された記憶手段に対するメモリアクセスにおいてページフォールトが発生した場合に、当該メモリアクセスの対象データが優先データであるか非優先データであるかを、予め定められたそれぞれの対象データに対応する優先度と閾値１４１とに基づいて判定し、その対象データが優先データであると判定した場合に、第１の記憶部のページの内、第１の記憶部のページに格納されているデータが第２の記憶部の対応するページに格納されているデータと同一である第１の記憶部のページのいずれか一つを選択し、
この選択した第１の記憶部のページの識別情報を出力する。
【００６３】
上述した本実施の形態における第１の効果は、優先度が高い処理においてページフォールトが発生した時のスワップ動作を高速化することを可能にできることであり、特に優先度の高いタスクについて、このスワップ動作の処理を高速化することを可能にできる点である。
【００６４】
その理由は、第１の記憶部に対するアクセス時にページフォールトが発生した場合に、アクセスの対象データが優先データであるか非優先データであるかを、対象データを使用するタスクの優先度と予め定められた閾値とに基づいて判定し、対象データが優先データであると判定した場合に、クリーンページの物理ページ番号を出力するようにしたからである。
【００６５】
本実施の形態における第２の効果は、優先度が高い処理においてページフォールトが発生した時のスワップ動作を高速化できることであり、特にスワップ動作の処理において、割り当てる物理メモリの検索を高速化することが可能にできる点、および割り当てられた物理メモリに既に格納されているデータをスワップ領域に書き込む動作を削減することが可能にできる点である。
【００６６】
その理由は、予め定められたタイミング毎に、物理メモリ上のダーティページを参照頻度の値が小さい順に検出し、ダーティページに格納されているデータをスワップ領域に書き込むことで、クリーンページにするようにしたからである。
【００６７】
次に本発明の第２の実施の形態について図面を参照して詳細に説明する。
【００６８】
図７を参照すると、本発明の第２の実施の形態の構成は、制御部１００にオブジェクト管理テーブル１８０とライブラリ管理テーブル１９０とを含む点が、第１の実施の形態と異なる。
【００６９】
図８は、オブジェクト管理テーブル１８０の構造を示す図である。オブジェクト管理テーブル１８０は、オブジェクトの優先度を管理するためのテーブルであり、オブジェクトの識別子であるオブジェクト識別子１８１および対応するオブジェクト優先度１８２を含む少なくとも一つのオブジェクトエントリ１８９からなる。尚、オブジェクト識別子１８１の内のいずれか一つ以上は、オブジェクト以外の要因に基づいた優先度による制御のために設けた擬似的なオブジェクト識別子１８１であってよい。この擬似的なオブジェクト識別子１８１は、図示しないオペレーティングシステムや図示しないアプリケーションが検出した優先度を上げるべきであると判断する要因あるいは下げるべきであると判断する要因に基づいて、優先度を示すために使用される。
【００７０】
図９は、ライブラリ管理テーブル１９０の構造を示す図である。ライブラリ管理テーブル１９０は、ライブラリの優先度を管理するためのテーブルであり、ライブラリの識別子であるライブラリ識別子１９１および対応するライブラリ優先度１９２を含む少なくとも一つのライブラリエントリ１９９からなる。尚、ライブラリ識別子１９１の内のいずれか一つ以上は、ライブラリ以外の要因に基づいた優先度による制御の為に設けた擬似的なライブラリ識別子１９１であってよい。この擬似的なオブジェクト識別子１８１は、図示しないオペレーティングシステムや図示しないアプリケーションが検出した優先度を上げるべきであると判断する要因あるいは下げるべきであると判断する要因に基づいて、優先度を示すために使用される。
【００７１】
また、本発明の第２の実施の形態は、ページ選択部１４０の動作が、第１の実施の形態と異なる。
【００７２】
本実施の形態のページ選択部１４０は、予め定められた閾値１４１を保持する手段を有し、ページフォールト発生通知の入力に対応してタスク管理テーブル１１０、オブジェクト管理テーブル１８０およびライブラリ管理テーブル１９０の内の少なくとも一つとページテーブル１２０とを参照し、スワップアウトする仮想ページを決定する。
【００７３】
本実施の形態におけるページフォールトを検出した場合の動作を示すフローチャートは、図５に示す第１の実施の形態と同様であるが、Ｓ６０４およびＳ６１０での動作が異なる。
【００７４】
本実施の形態のＳ６０４において、ページ選択部１４０は、ページフォールト発生通知の入力に対応して、タスク優先度１１２、オブジェクト優先度１８２およびライブラリ優先度１９２の内の少なくとも一つを取得する。タスク優先度１１２の取得については、第１の実施の形態で説明したとおりである。オブジェクト優先度１８２の取得について説明すると、ページ選択部１４０は、ページフォールトとなったオブジェクト識別子１８１および仮想ページ番号１２５を図示しないオペレーティングシステムから取得し、オブジェクト管理テーブル１８０を参照してこのページフォールトとなったオブジェクトに対応するオブジェクト優先度１８２を取得する。ライブラリ優先度１９２の取得について説明すると、ページ選択部１４０は、ページフォールトとなったライブラリ識別子１９１および仮想ページ番号１２５を図示しないオペレーティングシステムから取得し、ライブラリ管理テーブル１９０を参照してこのページフォールトとなったライブラリに対応するライブラリ優先度１９２を取得する。
【００７５】
本実施の形態のＳ６１０において、ページ選択部１４０は、Ｓ６０４で取得したタスク優先度１１２、オブジェクト優先度１８２およびライブラリ優先度１９２の内の少なくとも一つと閾値１４１とを比較し、ページフォールトとなった仮想ページに対応するデータが優先データであるか非優先データであるかを判定する。ページ選択部１４０は、例えば、タスク優先度１１２、オブジェクト優先度１８２およびライブラリ優先度１９２のいずれか一つを選択して比較した結果に基づいて判定するようにしてもよいし、タスク優先度１１２、オブジェクト優先度１８２およびライブラリ優先度１９２のいずれかふたつ以上を選択して比較した結果を組み合わせて判定するようにしてもよい。また、ページ選択部１４０は、例えば、タスク優先度１１２、オブジェクト優先度１８２およびライブラリ優先度１９２に対して演算を施して算出した平均値、合計値あるいは重み付けした値などを、閾値１４１との比較対象としてもよい。そしてまた、ページ選択部１４０は、例えば比較した結果を組み合わせて判定する場合に、論理和をとるようにしてもよいし、論理積をとるようにしてもよいし、その他の演算を施すようにしてもよい。そして、非優先データであると判定した場合（Ｓ６１０でＮＯ）、処理はＳ６２０へ進む。また、優先データであると判定した場合（Ｓ６１０でＹＥＳ）、処理はＳ６１４へ進む。
【００７６】
本実施の形態におけるクリーン化処理の動作を示すフローチャートは、図６に示す第１の実施の形態と同様である。
【００７７】
上述した本実施の形態における効果は、優先度が高い処理においてページフォールトが発生した時のスワップ動作を高速化できることであり、特にこのスワップ動作の処理を高速化する対象の精密かつ容易な選択を可能にできる点である。
【００７８】
その理由は、第１の記憶部に対するアクセス時にページフォールトが発生した場合に、アクセスの対象データが優先データであるか非優先データであるかの判定を、対象データであるオブジェクトの優先度および対象データを含むライブラリの優先度にも基づいて判定するようにしたからである。
【００７９】
以上の各実施の形態で説明した各構成要素は、たとえば、プログラムにより所定の処理をコンピュータに実行させてもよい。
【００８０】
以上の各実施の形態で説明した各構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個のモジュールとして実現されたり、一つの構成要素が複数のモジュールで実現されたり、ある構成要素が他の構成要素の一部であったり、ある構成要素の一部と他の構成要素の一部とが重複していたり、といったような構成であってもよい。
【００８１】
また、以上説明した各実施の形態では、複数の動作をフローチャートの形式で順番に記載してあるが、その記載の順番は複数の動作を実行する順番を限定するものではない。このため、各実施の形態を実施するときには、その複数の動作の順番は内容的に支障しない範囲で変更することができる。
【００８２】
さらに、以上説明した各実施の形態では、複数の動作は個々に相違するタイミングで実行されることに限定されない。例えば、ある動作の実行中に他の動作が発生したり、ある動作の実行タイミングと他の動作の実行タイミングとの一部乃至全部が重複していたりしていてもよい。
【００８３】
さらに、以上説明した各実施の形態では、ある動作が他の動作の契機になるように記載しているが、その記載はある動作と他の動作のすべての関係を限定するものではない。このため、各実施の形態を実施するときには、その複数の動作の関係は内容的に支障しない範囲で変更することができる。また各構成要素の各動作の具体的な記載は、各構成要素の各動作を限定するものではない。このため、各構成要素の具体的な各動作は、各実施の形態を実施する上で機能的、性能的、その他の特性に対して支障をきたさない範囲内で変更されて良い。
【００８４】
なお、以上説明した各実施の形態における各構成要素は、必要に応じ可能であれば、ハードウェアで実現されても良いし、ソフトウェアで実現されても良いし、ハードウェアとソフトウェアの混在により実現されても良い。
【００８５】
また、各構成要素の物理的な構成は、以上の実施の形態の記載に限定されることはなく、独立して存在しても良いし、組み合わされて存在しても良いしまたは分離して構成されても良い。
【産業上の利用可能性】
【００８６】
本発明は、各種情報処理装置および各種通信処理装置などのメモリ管理に適用できる。
【図面の簡単な説明】
【００８７】
【図１】本発明の第１の実施の形態の構成を示すブロック図である。
【図２】本発明の第１の実施の形態における基本的な構成を示すブロック図である。
【図３】本発明の第１および第２の実施の形態におけるタスク管理テーブルの構造を示す図である。
【図４】本発明の第１および第２の実施の形態におけるページテーブルの構造を示す図である。
【図５】本発明の第１および第２の実施の形態におけるページフォールトを検出した場合の動作を示すフローチャートである。
【図６】本発明の第１および第２の実施の形態におけるクリーン化処理の動作を示すフローチャートである。
【図７】本発明の第２の実施の形態の構成を示すブロック図である。
【図８】本発明の第２の実施の形態におけるオブジェクト管理テーブルの構造を示す図である。
【図９】本発明の第２の実施の形態におけるライブラリ管理テーブルの構造を示す図である。
【符号の説明】
【００８８】
１００    制御部
１１０    タスク管理テーブル
１１１    タスク識別子
１１２    優先度
１１９    タスクエントリ
１２０    ページテーブル
１２１    物理ページ番号
１２２    割当フラグ
１２３    参照頻度
１２４    変更フラグ
１２５    仮想ページ番号
１２９    ページエントリ
１３０    メモリ管理部
１４０    ページ選択部
１４１    閾値
１５０    スワップ処理部
１６０    スワップ領域管理部
１７０    ディスク装置インタフェース部
１８０    オブジェクト管理テーブル
１８１    オブジェクト識別子
１８２    優先度
１８９    オブジェクトエントリ
１９０    ライブラリ管理テーブル
１９１    ライブラリ識別子
１９２    優先度
１９９    ライブラリエントリ
２００    物理メモリ
３００    ディスク装置
３１０    スワップ領域
【図１】
2010134584.tif 000003
【図２】
2010134584.tif 000004
【図３】
2010134584.tif 000005
【図４】
2010134584.tif 000006
【図５】
2010134584.tif 000007
【図６】
2010134584.tif 000008
【図７】
2010134584.tif 000009
【図８】
2010134584.tif 000010
【図９】
2010134584.tif 000011