JP2010134584A - メモリ管理装置、メモリ管理方法およびプログラム - Google Patents

メモリ管理装置、メモリ管理方法およびプログラム Download PDF

Info

Publication number
JP2010134584A
JP2010134584A JP2008308321A JP2008308321A JP2010134584A JP 2010134584 A JP2010134584 A JP 2010134584A JP 2008308321 A JP2008308321 A JP 2008308321A JP 2008308321 A JP2008308321 A JP 2008308321A JP 2010134584 A JP2010134584 A JP 2010134584A
Authority
JP
Japan
Prior art keywords
page
priority
storage unit
data
target data
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.)
Granted
Application number
JP2008308321A
Other languages
English (en)
Other versions
JP5077209B2 (ja
Inventor
Shotaro Kono
正太郎 河野
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2008308321A priority Critical patent/JP5077209B2/ja
Publication of JP2010134584A publication Critical patent/JP2010134584A/ja
Application granted granted Critical
Publication of JP5077209B2 publication Critical patent/JP5077209B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】 優先度が高い処理であっても、ページフォールト発生時のスワップ動作に時間がかかり、処理が遅延する場合がある。
【解決手段】 複数のページを含む第1の記憶部と複数のページを含む第2の記憶部とを含む階層化された記憶手段に対するアクセスにおいてページフォールトが発生した場合に、当該メモリアクセスの対象データが優先データであるか非優先データであるかを、対象データに対応する優先度と閾値とに基づいて判定し、対象データが優先データであると判定した場合に、クリーンページのいずれか一つを選択し、その識別情報を出力するページ選択部を有する。
【選択図】 図1

Description

本発明はメモリ管理装置、メモリ管理方法およびプログラムに関し、特に、階層構造のメモリを管理するメモリ管理装置、メモリ管理方法およびプログラムに関する。
仮想記憶あるいはキャッシュなど、複数のページを含む第1の記憶部と複数のページを含む第2の記憶部とを含む階層化された記憶手段を管理するメモリ管理の技術がある(例えば、非特許文献1)。
このようなメモリ管理の技術において、ページフォールト発生時にスワップアウトするページを選択する技術として、実記憶のページのうち最後に参照されてからの経過時間が最大のページを選択するLRU(Least Recently Used)、あるいは実記憶のページのうち最も古くから存在するページを選択するFIFO(First In First Out)などのページ置換アルゴリズムがある。
例えば、特許文献1記載のキャッシュ制御装置は、キャッシュ上のデータブロック毎に複数の状態情報を保持しており、これらの状態情報に基づいてリプレース(置換)するデータブロックを決定する。
また、特許文献2記載のオンデマンド・ページング方式は、優先度別に設けられた使用中主記憶管理テーブルエントリーキューを有し、メモリページを割り付けられたタスクの優先度に対応する使用中主記憶管理テーブルエントリーキューに、割り付けたメモリページに対応する主記憶管理テーブルを接続する。そして、このオンデマンド・ページング方式において、割り付け済みのページを空にする場合には、優先度の低い使用中主記憶管理テーブルエントリーキューに接続された主記憶管理テーブルに対応するページが空にするページとして選択される。
また、特許文献3記載の情報記憶装置は、キャッシュメモリブロックをクリーンデータであるかダーティデータであるかに基づいて障害後の復旧の優先度を決定する機能を有している。
さらに、特許文献4記載の先取りキャッシュ書戻しの方法と装置は、所定の時間間隔でキャッシュエントリをチェックし、汚れていて書き込みから一定時間以上経過しているキャッシュエントリを書き戻す機能を有している。
特許第3309425号公報 特開平05−035513号公報 特開平08−087450号公報 特開平10−232827号公報 坂井修一、「コンピュータアーキテクチャ」、2004年3月31日、5.キャッシュと仮想記憶 P70−P90
しかしながら、上述した特許文献1−4に記載された装置、方式および方法に基づく技術では、優先度が高い処理であるにもかかわらずページフォールト発生時のスワップ動作に時間がかかり、処理が遅延する場合があるという問題があった。
例えば、車載システムの警告画面を表示するアプリケーション処理などは、動作の頻度は低い一方優先度は高い。このような処理により参照されるデータは、参照頻度が低いために、スワップ領域にスワップアウトされた状態にあることが多い。このため、アプリケーションが警告画面を表示する場合に実メモリ上の他のデータをスワップアウトする動作を行わなければならない状況が頻繁に発生し、このスワップアウト動作におけるスワップ領域への書き戻し動作の実行に時間を要するためにアプリケーションの処理が頻繁に遅延するという問題がある。
本発明の目的は、上述した問題を解決するメモリ管理装置、メモリ管理方法およびプログラムを提供することにある。
本発明のメモリ管理装置は、複数のページを含む第1の記憶部と複数のページを含む第2の記憶部とを含む階層化された記憶手段に対するアクセスにおいてページフォールトが発生した場合に、
当該メモリアクセスの対象データが優先データであるか非優先データであるかを、前記対象データに予め割り当てられた優先度と予め定められた閾値とに基づいて判定し、前記対象データが前記優先データであると判定した場合に、前記第1の記憶部の複数のページの内、前記第2の記憶部の対応するページに格納されているデータと同一のデータを記憶したページのいずれか一つを選択し、
当該選択した前記第1の記憶部のページの識別情報を出力するページ選択部を有する。
本発明のメモリ管理方法は、複数のページを含む第1の記憶部と複数のページを含む第2の記憶部とを含む階層化された記憶手段に対するアクセスにおいてページフォールトが発生した場合に、
当該メモリアクセスの対象データが優先データであるか非優先データであるかを、前記対象データに予め割り当てられた優先度と予め定められた閾値とに基づいて判定し、前記対象データが前記優先データであると判定した場合に、前記第1の記憶部の複数のページの内、前記第2の記憶部の対応するページに格納されているデータと同一のデータを記憶したページのいずれか一つを選択し、
当該選択した前記第1の記憶部のページの識別情報を出力する。
本発明のプログラムは、複数のページを含む第1の記憶部と複数のページを含む第2の記憶部とを含む階層化された記憶手段に対するアクセスにおいてページフォールトが発生した場合に、
当該メモリアクセスの対象データが優先データであるか非優先データであるかを、前記対象データに予め割り当てられた優先度と予め定められた閾値とに基づいて判定し、前記対象データが前記優先データであると判定した場合に、前記第1の記憶部の複数のページの内、前記第2の記憶部の対応するページに格納されているデータと同一のデータを記憶したページのいずれか一つを選択し、
当該選択した前記第1の記憶部のページの識別情報を出力する。
本発明によれば、優先度が高い処理においてページフォールトが発生した時のスワップ動作を高速化することが可能になる。
次に、本発明の第1の実施の形態について図面を参照して詳細に説明する。
図1は、本実施の形態の構成を示すブロック図である。図1を参照すると、本実施の形態は、制御部100、物理メモリ200およびディスク装置300から構成されている。尚、制御部100は、メモリ管理装置とも呼ばれる。また、物理メモリ200およびディスク装置300は、それぞれ一般的に第1の記憶部および第2の記憶部とも呼ばれる。また、物理メモリ200とディスク装置300とは、以下に説明するように階層化された記憶手段として構成されている。
制御部100は、タスク管理テーブル110、ページテーブル120、メモリ管理部130、ページ選択部140、スワップ処理部150、スワップ領域管理部160およびディスク装置インタフェース部170を含む。
物理メモリ200は、所定サイズの物理ページを含む。物理メモリ200の物理ページは、一般的に第1の記憶手段のページとも呼ばれる。
ディスク装置300は、所定サイズの複数の仮想ページからなるスワップ領域310を含む。スワップ領域310は、物理メモリ200の容量が不足している場合に物理メモリ200上の物理ページのデータ内容を退避することができる、ディスク装置300上の領域である。ディスク装置300の仮想ページは、一般的に第2の記憶手段のページとも呼ばれる。
タスク管理テーブル110は、タスクの優先度を管理するためのテーブルであり、図3に示すようにタスクの識別子であるタスク識別子111および対応するタスク優先度112を含む少なくとも一つのタスクエントリ119からなる。
ページテーブル120は、図4に示すように物理ページ番号121、割当フラグ122、参照頻度123、変更フラグ124および仮想ページ番号125を含む複数のページエントリ129からなる。
物理ページ番号121は、物理メモリ200の物理ページそれぞれに付与され、物理ページそれぞれを一意に識別可能とする。尚、物理ページ番号121は一般的にページの識別情報とも呼ばれる。
割当フラグ122は、物理ページ番号121に対応する物理メモリ200の物理ページが、仮想ページに割り当て済みか否かを示すフラグであり、「1」で「割り当て済みである」ことを示し、「0」で「割り当て済みでない」ことを示す。
参照頻度123は、物理ページ番号121に対応する物理メモリ200の物理ページが参照された頻度を示す。参照頻度123は、相対的に値が大きいほど参照された頻度が高いことを、相対的に値が小さいほど参照された頻度が低いことを示す。
変更フラグ124は、物理ページ番号121に対応する物理メモリ200の物理ページの内容が変更されたか否かを示すフラグであり、「1」で「変更されている」ことを示し、「0」で「変更されていない」ことを示す。尚、物理ページ番号121に対応する物理メモリ200の物理ページの、内容が変更されていることは、物理メモリ200の物理ページに格納されているデータが、ディスク装置300のスワップ領域310内の対応する仮想ページに格納されているデータに対して変更されていることにも含まれる。
仮想ページ番号125は、スワップ領域310に含まれる仮想ページそれぞれに付与され、仮想ページそれぞれを一意に識別可能とする。そして、仮想ページ番号125は、物理ページ番号121に対応する物理メモリ200の物理ページが割り当てられている仮想ページの番号を示す。仮想ページ番号125は、対応する割当フラグ122が「1」の場合に有効な情報である。
メモリ管理部130は、プロセッサ(図示しない)あるいはDMA(Direct Memory Access)制御部(図示しない)の指示に基づいて、仮想ページの仮想アドレスを物理メモリ200の物理アドレスに変換し、物理メモリ200へのアクセスを処理する。また、メモリ管理部130は、アクセスしようとした仮想ページが物理メモリ200に存在しないこと即ちページフォールトを検出すると、ページフォールト発生通知を出力する。また、メモリ管理部130は、 例えばNFU(Not Frequently Used)アルゴリズムや、これを改良したエージングアルゴリズムを用いて、物理メモリ200の物理ページそれぞれが参照された頻度を算出する手段を有し、算出した参照された頻度をページテーブル120の参照頻度123に格納する。
ページ選択部140は、予め定められた閾値141を保持する手段を有し、ページフォールト発生通知の入力に対応してタスク管理テーブル110およびページテーブル120を参照し、スワップアウトする仮想ページを決定する。
スワップ処理部150は、スワップイン、およびページ選択部140が選択したページのスワップアウトを実行する。以下に、スワップインおよびスワップアウトの処理の具体的な実現手段の一例を説明する。
まず、スワップインの処理について説明する。スワップ処理部150は、仮想ページ番号125を入力に対応してページテーブル120を参照し、割当フラグ122が「0」であるページエントリ129の物理ページ番号121を取得する。
続けて、スワップ処理部150は、このページエントリ129の割当フラグ122を「1」に、参照頻度123を「0」に、変更フラグ124を「0」に設定し、さらにスワップイン対象のデータが格納されている仮想ページの仮想ページ番号125をこのページエントリ129に格納する。さらに続けて、スワップ処理部150は、仮想ページに格納されているスワップイン対象のデータを先に取得した物理ページ番号121に対応する物理メモリ200の物理ページに転送する要求を、メモリ管理部130とディスク装置インタフェース部170とに対して出力する。
この転送する要求を入力したメモリ管理部130とディスク装置インタフェース部170とは、物理メモリ200およびディスク装置300をそれぞれ制御してスワップイン対象のデータを転送する。尚、この転送の実現手段(図示しない)は、メモリ管理部130とディスク装置インタフェース部170とを経由するようにしてもよいし、物理メモリ200およびディスク装置300間で直接やり取りするようにしてもよい。
次に、スワップ処理部150は、メモリ管理部130から転送完了の通知を受け取りスワップインの処理を完了する。
次に、スワップアウトの処理について説明する。スワップ処理部150は、スワップアプト対象の物理メモリ200の物理ページを指定する物理ページ番号121の入力に対応して指定された物理ページ番号121を含むページテーブル120のページエントリ129を参照し、変更フラグ124を確認する。変更フラグ124が「0」の場合、この物理メモリ200の物理ページはクリーンページであるため、このページのデータを物理メモリ200からスワップ領域310の書き出す必要はない。そこで、スワップ処理部150は、スワップアウト対象のデータに対応するページエントリ129の割当フラグ122を「0」に設定し、スワップアウトの処理を完了する。
変更フラグ124が「1」の場合、この物理メモリ200の物理ページはダーティページであるため、このページのデータを物理メモリ200からスワップ領域310へ書き出す必要がある。そこで、スワップ処理部150は、指定された物理ページ番号121を含むページテーブル120のページエントリ129を参照し、対応する仮想ページ番号125を取得する。続けて、スワップ処理部150は、指定された物理ページ番号121に対応する物理メモリ200の物理ページに格納されているスワップアウト対象のデータを先に取得した仮想ページ番号125に対応する仮想ページに転送する要求を、メモリ管理部130とディスク装置インタフェース部170とに対して出力する。
この転送する要求を入力したメモリ管理部130とディスク装置インタフェース部170とは、物理メモリ200およびディスク装置300をそれぞれ制御して、スワップアウト対象のデータを転送する。尚、この転送の実現手段(図示しない)は、メモリ管理部130とディスク装置インタフェース部170とを経由するようにしてもよいし、物理メモリ200およびディスク装置300間で直接やり取りするようにしてもよい。
ディスク装置インタフェース部170から転送完了の通知を受け取るとスワップ処理部150は、スワップアウト対象のデータに対応するページエントリ129の割当フラグ122を「0」に設定し、スワップアウトの処理を完了する。
尚、スワップインおよびスワップアウトは、それぞれ一般的にページインおよびページアウトと呼ばれることもある。
スワップ領域管理部160は、定期的にページテーブル120を参照して、変更フラグ124が「1」であって、参照頻度123が最も低い物理メモリ200の物理ページを検出し、この検出した物理ページのデータをスワップ領域310へ退避する。
次に、本実施の形態の動作について、図を用いて詳細に説明する。
図5は、ページフォールトを検出した場合の動作を示すフローチャートである。
まず、メモリ管理部130が、アクセスしようとした仮想ページが物理メモリ200に存在しないこと、即ちページフォールトを検出したことを契機に、制御部100は本動作を開始する(S600)。メモリ管理部130は、ページフォールトを検出するとページ選択部140に対してページフォールト発生通知を出力する(S602)。
次に、ページ選択部140は、ページフォールト発生通知の入力に対応してページフォールトとなったタスク識別子111および仮想ページ番号125を図示しないオペレーティングシステムから取得し、タスク管理テーブル110を参照してこのページフォールトとなったタスクに対応するタスク優先度112を取得する(S604)。
次に、ページ選択部140は、ページテーブル120を参照し、参照頻度123が最も小さい物理ページ番号121を取得する(S606)。
次に、ページ選択部140は、S604で取得したタスク優先度112と閾値141とを比較する(S610)。そして、この比較の結果、S604で取得したタスク優先度112が閾値141より低い場合(S610でNO)、処理はS620へ進む。また、S604で取得したタスク優先度112が閾値141を超える場合(S610でYES)、処理はS614へ進む。
尚、タスク優先度112と閾値141とを比較することは、アクセスの対象データが優先データであるか非優先データであるかを、対象データに対応する優先度と予め定められた閾値とに基づいて判定することにも含まれる。
S614において、ページ選択部140は、S606および後述するS616で取得した物理ページ番号121に対応する変更フラグ124の状態を確認する(S614)。この確認の結果、変更フラグ124の状態が0の場合(S614でNO)、処理はS620へ進む。また、変更フラグ124の状態が1の場合(S614でYES)、処理はS616へ進む。
S616において、ページ選択部140は、ページテーブル120を参照し、ページエントリ129のうちS606あるいは本S616で既に取得済みである物理ページ番号121に対応するものを除いたページエントリ129のなかで、参照頻度123が最も小さいページエントリ129に対応する物理ページ番号121を取得する。全ての物理ページ番号121が取得済みの状態である場合は、全ての物理ページ番号121について取得済みの状態を解除し、全てのページエントリ129のうちから参照頻度123が最も小さい物理ページ番号121を取得する(S616)。そして、処理はS614へ戻る。尚、全ての物理ページ番号121が取得済みの状態である場合に、全ての物理ページ番号121について取得済みの状態を解除して、S614とS616との繰り返し処理を継続することで、後述するクリーン化処理により、変更フラグ124の状態が「0」となったページエントリ129を検出することができる。
次に、ページ選択部140は、取得した物理ページ番号121および仮想ページ番号125をスワップ処理部150に対して出力する(S620)。
次に、スワップ処理部150は、物理ページ番号121および仮想ページ番号125の入力に対応して、物理ページ番号121に対応する物理メモリ200の物理ページに格納されているデータを仮想ページ番号125に対応するスワップ領域310の仮想ページへスワップアウトする(S622)。尚、先に説明したように、スワップアウト対象のデータが格納されている物理メモリ200の物理ページがクリーンページの場合は、これがダーティページである場合と比較して、物理メモリ200からディスク装置300へのデータ転送が不要である分処理時間が短縮される。一方、タスク優先度112が所定の閾値141より高い場合は、S614において変更フラグ124の状態を確認して、スワップアプトする物理メモリ200の物理ページ番号121として変更フラグ124が「0」即ちクリーンページであるものを選択している。従って、タスク優先度112が所定の閾値141より高い場合は、処理時間が短縮されたスワップアウト処理が実行される。
次に、スワップ処理部150は、ステップ622で入力した仮想ページ番号125に対応する仮想ページのデータを、S622でスワップアウトした物理メモリ200の物理ページにスワップインする(S624)。
図6は、クリーン化処理の動作を示すフローチャートである。クリーン化処理とは、物理メモリ200のダーティページ(変更フラグ124が「1」)のデータをディスク装置300のスワップ領域310に転送し、対象の物理メモリ200の物理ページをクリーンページ(変更フラグ124が「0」)にする処理である。
まず、図示しない計時手段より、あらかじめ定められた時間間隔で出力されるクリーン化処理開始指示を契機に、制御部100は本動作を開始する(S700)。
スワップ領域管理部160は、クリーン化処理開始指示の入力に対応してページテーブル120を参照し、参照頻度123が最も小さいページエントリ129を検出する(S702)。
次に、スワップ領域管理部160は、検出したページエントリ129の変更フラグ124の状態を確認する(S704)。この確認の結果、変更フラグ124の状態が「1」の場合(S704でYES)、処理はS710へ進む。また、変更フラグ124の状態が「0」の場合(S704でNO)、処理はS706へ進む。
S706において、スワップ領域管理部160は、ページテーブル120のすべてのページエントリ129がS702あるいは後述するS708で既に検出済みであるか否かを確認する(S706)。この確認の結果、すべてのページエントリ129が既に検出済みである場合(S706でYES)、処理は終了する。また、未検出のページエントリ129がある場合(S706でNO)、処理はS708へ進む。尚、ページテーブル120のすべてのページエントリ129がS702あるいは後述するS708で既に検出済みであるということは、全ての物理ページがクリーンページの状態であることを意味する。
S708において、スワップ領域管理部160は、ページテーブル120を参照し、S702あるいは本S706で既に検出済みであるページエントリ129を除くページエントリ129のうちから参照頻度123が最も小さいページエントリ129を検出する(S708)。そして、処理はS704へ戻る。
次に、スワップ領域管理部160は、S704で変更フラグ124の状態が「1」であることを確認したページエントリ129の物理ページ番号121と仮想ページ番号125とを取得する。続けて、スワップ領域管理部160は、取得した物理ページ番号121に対応するクリーン化処理対象である物理ページに格納されているデータを、取得した仮想ページ番号125に対応する仮想ページに転送する要求を、メモリ管理部130とディスク装置インタフェース部170とに対して出力する(S710)。この転送する要求を入力したメモリ管理部130とディスク装置インタフェース部170とは、物理メモリ200およびディスク装置300をそれぞれ制御して対象のデータを転送する。尚、この転送の実現手段(図示しない)は、メモリ管理部130とディスク装置インタフェース部170とを経由するようにしてもよいし、物理メモリ200およびディスク装置300間で直接やり取りするようにしても良い。
ディスク装置インタフェース部170から転送完了の通知を受け取るとスワップ領域管理部160は、クリーン化処理対象のページに対応するページエントリ129の変更フラグ124を「0」に設定し、クリーン化処理を完了する(S712)。
図2は、本実施の形態の基本的な構成を示す。図2によれば、本発明の基本的な構成は、ページ選択部140を含むメモリ管理装置400を有する。ページ選択部140は、予め定められた閾値141を保持する。
ページ選択部140は、複数のページを含む第1の記憶部と複数のページを含む第2の記憶部とを含む階層化された記憶手段に対するメモリアクセスにおいてページフォールトが発生した場合に、当該メモリアクセスの対象データが優先データであるか非優先データであるかを、予め定められたそれぞれの対象データに対応する優先度と閾値141とに基づいて判定し、その対象データが優先データであると判定した場合に、第1の記憶部のページの内、第1の記憶部のページに格納されているデータが第2の記憶部の対応するページに格納されているデータと同一である第1の記憶部のページのいずれか一つを選択し、
この選択した第1の記憶部のページの識別情報を出力する。
上述した本実施の形態における第1の効果は、優先度が高い処理においてページフォールトが発生した時のスワップ動作を高速化することを可能にできることであり、特に優先度の高いタスクについて、このスワップ動作の処理を高速化することを可能にできる点である。
その理由は、第1の記憶部に対するアクセス時にページフォールトが発生した場合に、アクセスの対象データが優先データであるか非優先データであるかを、対象データを使用するタスクの優先度と予め定められた閾値とに基づいて判定し、対象データが優先データであると判定した場合に、クリーンページの物理ページ番号を出力するようにしたからである。
本実施の形態における第2の効果は、優先度が高い処理においてページフォールトが発生した時のスワップ動作を高速化できることであり、特にスワップ動作の処理において、割り当てる物理メモリの検索を高速化することが可能にできる点、および割り当てられた物理メモリに既に格納されているデータをスワップ領域に書き込む動作を削減することが可能にできる点である。
その理由は、予め定められたタイミング毎に、物理メモリ上のダーティページを参照頻度の値が小さい順に検出し、ダーティページに格納されているデータをスワップ領域に書き込むことで、クリーンページにするようにしたからである。
次に本発明の第2の実施の形態について図面を参照して詳細に説明する。
図7を参照すると、本発明の第2の実施の形態の構成は、制御部100にオブジェクト管理テーブル180とライブラリ管理テーブル190とを含む点が、第1の実施の形態と異なる。
図8は、オブジェクト管理テーブル180の構造を示す図である。オブジェクト管理テーブル180は、オブジェクトの優先度を管理するためのテーブルであり、オブジェクトの識別子であるオブジェクト識別子181および対応するオブジェクト優先度182を含む少なくとも一つのオブジェクトエントリ189からなる。尚、オブジェクト識別子181の内のいずれか一つ以上は、オブジェクト以外の要因に基づいた優先度による制御のために設けた擬似的なオブジェクト識別子181であってよい。この擬似的なオブジェクト識別子181は、図示しないオペレーティングシステムや図示しないアプリケーションが検出した優先度を上げるべきであると判断する要因あるいは下げるべきであると判断する要因に基づいて、優先度を示すために使用される。
図9は、ライブラリ管理テーブル190の構造を示す図である。ライブラリ管理テーブル190は、ライブラリの優先度を管理するためのテーブルであり、ライブラリの識別子であるライブラリ識別子191および対応するライブラリ優先度192を含む少なくとも一つのライブラリエントリ199からなる。尚、ライブラリ識別子191の内のいずれか一つ以上は、ライブラリ以外の要因に基づいた優先度による制御の為に設けた擬似的なライブラリ識別子191であってよい。この擬似的なオブジェクト識別子181は、図示しないオペレーティングシステムや図示しないアプリケーションが検出した優先度を上げるべきであると判断する要因あるいは下げるべきであると判断する要因に基づいて、優先度を示すために使用される。
また、本発明の第2の実施の形態は、ページ選択部140の動作が、第1の実施の形態と異なる。
本実施の形態のページ選択部140は、予め定められた閾値141を保持する手段を有し、ページフォールト発生通知の入力に対応してタスク管理テーブル110、オブジェクト管理テーブル180およびライブラリ管理テーブル190の内の少なくとも一つとページテーブル120とを参照し、スワップアウトする仮想ページを決定する。
本実施の形態におけるページフォールトを検出した場合の動作を示すフローチャートは、図5に示す第1の実施の形態と同様であるが、S604およびS610での動作が異なる。
本実施の形態のS604において、ページ選択部140は、ページフォールト発生通知の入力に対応して、タスク優先度112、オブジェクト優先度182およびライブラリ優先度192の内の少なくとも一つを取得する。タスク優先度112の取得については、第1の実施の形態で説明したとおりである。オブジェクト優先度182の取得について説明すると、ページ選択部140は、ページフォールトとなったオブジェクト識別子181および仮想ページ番号125を図示しないオペレーティングシステムから取得し、オブジェクト管理テーブル180を参照してこのページフォールトとなったオブジェクトに対応するオブジェクト優先度182を取得する。ライブラリ優先度192の取得について説明すると、ページ選択部140は、ページフォールトとなったライブラリ識別子191および仮想ページ番号125を図示しないオペレーティングシステムから取得し、ライブラリ管理テーブル190を参照してこのページフォールトとなったライブラリに対応するライブラリ優先度192を取得する。
本実施の形態のS610において、ページ選択部140は、S604で取得したタスク優先度112、オブジェクト優先度182およびライブラリ優先度192の内の少なくとも一つと閾値141とを比較し、ページフォールトとなった仮想ページに対応するデータが優先データであるか非優先データであるかを判定する。ページ選択部140は、例えば、タスク優先度112、オブジェクト優先度182およびライブラリ優先度192のいずれか一つを選択して比較した結果に基づいて判定するようにしてもよいし、タスク優先度112、オブジェクト優先度182およびライブラリ優先度192のいずれかふたつ以上を選択して比較した結果を組み合わせて判定するようにしてもよい。また、ページ選択部140は、例えば、タスク優先度112、オブジェクト優先度182およびライブラリ優先度192に対して演算を施して算出した平均値、合計値あるいは重み付けした値などを、閾値141との比較対象としてもよい。そしてまた、ページ選択部140は、例えば比較した結果を組み合わせて判定する場合に、論理和をとるようにしてもよいし、論理積をとるようにしてもよいし、その他の演算を施すようにしてもよい。そして、非優先データであると判定した場合(S610でNO)、処理はS620へ進む。また、優先データであると判定した場合(S610でYES)、処理はS614へ進む。
本実施の形態におけるクリーン化処理の動作を示すフローチャートは、図6に示す第1の実施の形態と同様である。
上述した本実施の形態における効果は、優先度が高い処理においてページフォールトが発生した時のスワップ動作を高速化できることであり、特にこのスワップ動作の処理を高速化する対象の精密かつ容易な選択を可能にできる点である。
その理由は、第1の記憶部に対するアクセス時にページフォールトが発生した場合に、アクセスの対象データが優先データであるか非優先データであるかの判定を、対象データであるオブジェクトの優先度および対象データを含むライブラリの優先度にも基づいて判定するようにしたからである。
以上の各実施の形態で説明した各構成要素は、たとえば、プログラムにより所定の処理をコンピュータに実行させてもよい。
以上の各実施の形態で説明した各構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個のモジュールとして実現されたり、一つの構成要素が複数のモジュールで実現されたり、ある構成要素が他の構成要素の一部であったり、ある構成要素の一部と他の構成要素の一部とが重複していたり、といったような構成であってもよい。
また、以上説明した各実施の形態では、複数の動作をフローチャートの形式で順番に記載してあるが、その記載の順番は複数の動作を実行する順番を限定するものではない。このため、各実施の形態を実施するときには、その複数の動作の順番は内容的に支障しない範囲で変更することができる。
さらに、以上説明した各実施の形態では、複数の動作は個々に相違するタイミングで実行されることに限定されない。例えば、ある動作の実行中に他の動作が発生したり、ある動作の実行タイミングと他の動作の実行タイミングとの一部乃至全部が重複していたりしていてもよい。
さらに、以上説明した各実施の形態では、ある動作が他の動作の契機になるように記載しているが、その記載はある動作と他の動作のすべての関係を限定するものではない。このため、各実施の形態を実施するときには、その複数の動作の関係は内容的に支障しない範囲で変更することができる。また各構成要素の各動作の具体的な記載は、各構成要素の各動作を限定するものではない。このため、各構成要素の具体的な各動作は、各実施の形態を実施する上で機能的、性能的、その他の特性に対して支障をきたさない範囲内で変更されて良い。
なお、以上説明した各実施の形態における各構成要素は、必要に応じ可能であれば、ハードウェアで実現されても良いし、ソフトウェアで実現されても良いし、ハードウェアとソフトウェアの混在により実現されても良い。
また、各構成要素の物理的な構成は、以上の実施の形態の記載に限定されることはなく、独立して存在しても良いし、組み合わされて存在しても良いしまたは分離して構成されても良い。
本発明は、各種情報処理装置および各種通信処理装置などのメモリ管理に適用できる。
本発明の第1の実施の形態の構成を示すブロック図である。 本発明の第1の実施の形態における基本的な構成を示すブロック図である。 本発明の第1および第2の実施の形態におけるタスク管理テーブルの構造を示す図である。 本発明の第1および第2の実施の形態におけるページテーブルの構造を示す図である。 本発明の第1および第2の実施の形態におけるページフォールトを検出した場合の動作を示すフローチャートである。 本発明の第1および第2の実施の形態におけるクリーン化処理の動作を示すフローチャートである。 本発明の第2の実施の形態の構成を示すブロック図である。 本発明の第2の実施の形態におけるオブジェクト管理テーブルの構造を示す図である。 本発明の第2の実施の形態におけるライブラリ管理テーブルの構造を示す図である。
符号の説明
100 制御部
110 タスク管理テーブル
111 タスク識別子
112 優先度
119 タスクエントリ
120 ページテーブル
121 物理ページ番号
122 割当フラグ
123 参照頻度
124 変更フラグ
125 仮想ページ番号
129 ページエントリ
130 メモリ管理部
140 ページ選択部
141 閾値
150 スワップ処理部
160 スワップ領域管理部
170 ディスク装置インタフェース部
180 オブジェクト管理テーブル
181 オブジェクト識別子
182 優先度
189 オブジェクトエントリ
190 ライブラリ管理テーブル
191 ライブラリ識別子
192 優先度
199 ライブラリエントリ
200 物理メモリ
300 ディスク装置
310 スワップ領域

Claims (15)

  1. 複数のページを含む第1の記憶部と複数のページを含む第2の記憶部とを含む階層化された記憶手段に対するメモリアクセスにおいてページフォールトが発生した場合に、
    当該メモリアクセスの対象データが優先データであるか非優先データであるかを、前記対象データに予め割り当てられた優先度と予め定められた閾値とに基づいて判定し、前記対象データが前記優先データであると判定した場合に、前記第1の記憶部の複数のページの内、前記第2の記憶部の対応するページに格納されているデータと同一のデータを記憶したページのいずれか一つを選択し、
    当該選択した前記第1の記憶部のページの識別情報を出力するページ選択部を有する
    ことを特徴とするメモリ管理装置。
  2. 予め定められたタイミング毎に、前記第1の記憶部の各ページについて該ページに対応する参照頻度の値が小さいものから順に、当該ページに格納されているデータと前記第2の記憶部の対応するページに格納されているデータとが異なっている前記第1の記憶部のページであるダーティページを検索し、
    前記ダーティページを検出した場合に当該ダーティページに格納されているデータを前記第2の記憶部の対応するページへ書き込む指示を出力するスワップ領域管理部を有する
    ことを特徴とする請求項1記載のメモリ管理装置。
  3. 前記ページ選択部は、前記優先度として少なくとも前記対象データを使用するタスクの優先度と前記閾値とに基づいて前記判定をする
    ことを特徴とする請求項1または2記載のメモリ管理装置。
  4. 前記ページ選択部は、前記優先度として少なくとも前記対象データであるオブジェクトの優先度と前記閾値とに基づいて前記判定をする
    ことを特徴とする請求項1乃至3のいずれかに記載のメモリ管理装置。
  5. 前記ページ選択部は、前記優先度として少なくとも前記対象データを含むライブラリの優先度と前記閾値とに基づいて前記判定をする
    ことを特徴とする請求項1乃至4のいずれかに記載のメモリ管理装置。
  6. 複数のページを含む第1の記憶部と複数のページを含む第2の記憶部とを含む階層化された記憶手段に対するメモリアクセスにおいてページフォールトが発生した場合に、
    当該メモリアクセスの対象データが優先データであるか非優先データであるかを、前記対象データに予め割り当てられた優先度と予め定められた閾値とに基づいて判定し、前記対象データが前記優先データであると判定した場合に、前記第1の記憶部の複数のページの内、前記第2の記憶部の対応するページに格納されているデータと同一のデータを記憶したページのいずれか一つを選択し、
    当該選択した前記第1の記憶部のページの識別情報を出力する
    ことを特徴とするメモリ管理方法。
  7. 予め定められたタイミング毎に、前記第1の記憶部の各ページについて該ページに対応する参照頻度の値が小さいものから順に、当該ページに格納されているデータと前記第2の記憶部の対応するページに格納されているデータとが異なっている前記第1の記憶部のページであるダーティページを検索し、
    前記ダーティページを検出した場合に当該ダーティページに格納されているデータを前記第2の記憶部の対応するページへ書き込む指示を出力する
    ことを特徴とする請求項6記載のメモリ管理方法。
  8. 前記判定を、前記優先度として少なくとも前記対象データを使用するタスクの優先度と前記閾値とに基づいて行う
    ことを特徴とする請求項6または7記載のメモリ管理方法。
  9. 前記判定を、前記優先度として少なくとも前記対象データであるオブジェクトの優先度と前記閾値とに基づいて行う
    ことを特徴とする請求項6乃至8のいずれかに記載のメモリ管理方法。
  10. 前記判定を、前記優先度として少なくとも前記対象データを含むライブラリの優先度と前記閾値とに基づいて行う
    ことを特徴とする請求項6乃至9のいずれかに記載のメモリ管理方法。
  11. 複数のページを含む第1の記憶部と複数のページを含む第2の記憶部とを含む階層化された記憶手段に対するメモリアクセスにおいてページフォールトが発生した場合に、
    当該メモリアクセスの対象データが優先データであるか非優先データであるかを、前記対象データに予め割り当てられた優先度と予め定められた閾値とに基づいて判定し、前記対象データが前記優先データであると判定した場合に、前記第1の記憶部の複数のページの内、前記第2の記憶部の対応するページに格納されているデータと同一のデータを記憶したページのいずれか一つを選択し、
    当該選択した前記第1の記憶部のページの識別情報を出力する処理
    をコンピュータに実行させることを特徴とするプログラム。
  12. 予め定められたタイミング毎に、前記第1の記憶部の各ページについて該ページに対応する参照頻度の値が小さいものから順に、当該ページに格納されているデータと前記第2の記憶部の対応するページに格納されているデータとが異なっている前記第1の記憶部のページであるダーティページを検索し、
    前記ダーティページを検出した場合に当該ダーティページに格納されているデータを前記第2の記憶部の対応するページへ書き込む指示を出力する処理
    をコンピュータに実行させることを特徴とする請求項11記載のプログラム。
  13. 前記判定を、前記優先度として少なくとも前記対象データを使用するタスクの優先度と前記閾値とに基づいて行う処理
    をコンピュータに実行させることを特徴とする請求項11または12記載のプログラム。
  14. 前記判定を、前記優先度として少なくとも前記対象データであるオブジェクトの優先度と前記閾値とに基づいて行う処理
    をコンピュータに実行させることを特徴とする請求項11乃至13のいずれかに記載のプログラム。
  15. 前記判定を、前記優先度として少なくとも前記対象データを含むライブラリの優先度と前記閾値とに基づいて行う処理
    をコンピュータに実行させることを特徴とする請求項11乃至14のいずれかに記載のプログラム。
JP2008308321A 2008-12-03 2008-12-03 メモリ管理装置、メモリ管理方法およびプログラム Expired - Fee Related JP5077209B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008308321A JP5077209B2 (ja) 2008-12-03 2008-12-03 メモリ管理装置、メモリ管理方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008308321A JP5077209B2 (ja) 2008-12-03 2008-12-03 メモリ管理装置、メモリ管理方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2010134584A true JP2010134584A (ja) 2010-06-17
JP5077209B2 JP5077209B2 (ja) 2012-11-21

Family

ID=42345843

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008308321A Expired - Fee Related JP5077209B2 (ja) 2008-12-03 2008-12-03 メモリ管理装置、メモリ管理方法およびプログラム

Country Status (1)

Country Link
JP (1) JP5077209B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150106144A (ko) * 2014-03-11 2015-09-21 삼성전자주식회사 메모리 스왑 오퍼레이션 제어 방법 및 이를 적용하는 데이터 처리 시스템
JP2017515242A (ja) * 2014-05-06 2017-06-08 華為技術有限公司Huawei Technologies Co.,Ltd. メモリ管理方法およびデバイス

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02163851A (ja) * 1988-12-16 1990-06-25 Nec Corp ディスクキャッシュの同期処理方式
JPH02270032A (ja) * 1989-04-12 1990-11-05 Nec Corp ローディング方式
JPH0535513A (ja) * 1991-07-30 1993-02-12 Shikoku Nippon Denki Software Kk バスアダプタ
JPH05324471A (ja) * 1992-05-22 1993-12-07 Matsushita Electric Ind Co Ltd キャッシュ制御装置
JPH06175927A (ja) * 1992-12-03 1994-06-24 Canon Inc メモリ管理方法及び装置
JPH0887450A (ja) * 1994-09-16 1996-04-02 Toshiba Corp 情報記憶装置
JPH10232827A (ja) * 1996-12-20 1998-09-02 Texas Instr Inc <Ti> 先取りキャッシュ書戻しの方法と装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02163851A (ja) * 1988-12-16 1990-06-25 Nec Corp ディスクキャッシュの同期処理方式
JPH02270032A (ja) * 1989-04-12 1990-11-05 Nec Corp ローディング方式
JPH0535513A (ja) * 1991-07-30 1993-02-12 Shikoku Nippon Denki Software Kk バスアダプタ
JPH05324471A (ja) * 1992-05-22 1993-12-07 Matsushita Electric Ind Co Ltd キャッシュ制御装置
JPH06175927A (ja) * 1992-12-03 1994-06-24 Canon Inc メモリ管理方法及び装置
JPH0887450A (ja) * 1994-09-16 1996-04-02 Toshiba Corp 情報記憶装置
JPH10232827A (ja) * 1996-12-20 1998-09-02 Texas Instr Inc <Ti> 先取りキャッシュ書戻しの方法と装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150106144A (ko) * 2014-03-11 2015-09-21 삼성전자주식회사 메모리 스왑 오퍼레이션 제어 방법 및 이를 적용하는 데이터 처리 시스템
KR102116984B1 (ko) * 2014-03-11 2020-05-29 삼성전자 주식회사 메모리 스왑 오퍼레이션 제어 방법 및 이를 적용하는 데이터 처리 시스템
JP2017515242A (ja) * 2014-05-06 2017-06-08 華為技術有限公司Huawei Technologies Co.,Ltd. メモリ管理方法およびデバイス
US10552337B2 (en) 2014-05-06 2020-02-04 Huawei Technologies Co., Ltd. Memory management and device

Also Published As

Publication number Publication date
JP5077209B2 (ja) 2012-11-21

Similar Documents

Publication Publication Date Title
KR102456085B1 (ko) 로우 버퍼 충돌을 감소시키기 위한 동적 메모리 재매핑
JP7340326B2 (ja) メンテナンス動作の実行
US9075721B2 (en) Computer readable recording medium having stored therein information processing program, information processing apparatus and information processing method
WO2018018896A1 (zh) 内存管理装置和方法
EP2889776B1 (en) Data arrangement control program, data arrangement control method and data arrangment control apparatus
US8645612B2 (en) Information processing device and information processing method
KR101056460B1 (ko) 캐쉬 제어기 및 캐쉬 블록 교체 방법
US8868835B2 (en) Cache control apparatus, and cache control method
US7734842B2 (en) Computer-implemented method, apparatus, and computer program product for managing DMA write page faults using a pool of substitute pages
JP2015505623A (ja) ステージング・エリアを管理するためのコンピュータ実施プロセス、コンピュータ・プログラム製品、装置
JP2007257028A (ja) マルチプロセッサシステムのメモリアクセス負荷分散装置および方法
US20120226832A1 (en) Data transfer device, ft server and data transfer method
US8819360B2 (en) Information processing apparatus, cache apparatus, and data processing method
JP5401903B2 (ja) 故障情報監視装置及び故障情報監視方法
US20150100663A1 (en) Computer system, cache management method, and computer
JP5831319B2 (ja) 制御装置、管理装置、情報処理システム、制御装置の動作方法、管理装置の動作方法、情報処理システムの動作方法およびプログラム
JP5077209B2 (ja) メモリ管理装置、メモリ管理方法およびプログラム
CN110647476B (zh) 一种固态硬盘写数据的方法、装置、设备及存储介质
CN105183398B (zh) 一种存储设备、电子设备及数据处理方法
JP5510562B2 (ja) メモリ管理方法、メモリ管理装置およびメモリ管理回路
US7512753B2 (en) Disk array control apparatus and method
US10169235B2 (en) Methods of overriding a resource retry
US10990543B1 (en) Apparatus and method for arbitrating access to a set of resources
JP4871921B2 (ja) データ処理システム及びプログラム開発システム
CN108475197B (zh) 用于嵌套抢占的高速缓存结构

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20110705

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120516

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120522

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120711

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120813

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150907

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5077209

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees