(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023067398
(43)【公開日】2023-05-16
(54)【発明の名称】キャッシュ制御装置、情報処理装置、キャッシュ制御方法、プログラム及び記録媒体
(51)【国際特許分類】
G06F 16/172 20190101AFI20230509BHJP
G06F 12/0888 20160101ALI20230509BHJP
【FI】
G06F16/172
G06F12/0888 102
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2021178591
(22)【出願日】2021-11-01
(71)【出願人】
【識別番号】000232092
【氏名又は名称】NECソリューションイノベータ株式会社
(74)【代理人】
【識別番号】100115255
【弁理士】
【氏名又は名称】辻丸 光一郎
(74)【代理人】
【識別番号】100201732
【弁理士】
【氏名又は名称】松縄 正登
(74)【代理人】
【識別番号】100154081
【弁理士】
【氏名又は名称】伊佐治 創
(72)【発明者】
【氏名】深沢 俊貴
【テーマコード(参考)】
5B205
【Fターム(参考)】
5B205MM01
5B205NN95
5B205QQ02
5B205VV03
(57)【要約】 (修正有)
【課題】不揮発性メモリデバイスを備える情報処理装置において、キャッシュメモリへの書き込みを動的に制御可能なキャッシュ制御装置を提供する。
【解決手段】キャッシュ制御装置は、アクセス要求情報を取得するアクセス要求情報取得部、アクセス要求情報及びアクセス管理テーブルに基づいて、アクセス要求されたデータのキャッシュメモリへの書き込みを制御するキャッシュメモリ制御部及びアクセス要求情報に基づいてアクセス管理テーブルを更新するアクセス管理テーブル更新部を含む。アクセス要求情報は、演算処理装置がアクセスしたメインメモリ上の区間情報及びアクセスの種類情報を含む。キャッシュメモリ制御部の制御対象は、メインメモリとして不揮発性メモリデバイスを備える情報処理装置のキャッシュメモリである。アクセス管理テーブルは、アクセスされた区間とアクセスの種類とが紐づけられた情報であるアクセス頻度情報を含む。
【選択図】
図1
【特許請求の範囲】
【請求項1】
アクセス要求情報取得部、キャッシュメモリ制御部、およびアクセス管理テーブル更新部を含み、
前記アクセス要求情報取得部は、演算処理装置によるメインメモリへのアクセス要求情報を取得し、
前記アクセス要求情報は、演算処理装置がアクセスしたメインメモリ上の区間情報およびアクセスの種類情報を含み、
前記キャッシュメモリ制御部の制御対象は、メインメモリとして不揮発性メモリデバイスを備える情報処理装置のキャッシュメモリであり、
前記キャッシュメモリ制御部は、前記アクセス要求情報およびアクセス管理テーブルに基づいて、前記演算処理装置によりアクセス要求されたデータの前記キャッシュメモリへの書き込みを制御し、
前記アクセス管理テーブルは、アクセス頻度情報を含み、
前記アクセス頻度情報は、演算処理装置によりアクセスされた区間とアクセスの種類とが紐づけられた情報であり、
前記アクセス管理テーブル更新部は、前記アクセス要求情報に基づいて、前記アクセス管理テーブルを更新する、情報処理装置のキャッシュ制御装置。
【請求項2】
前記キャッシュメモリ制御部は、前記アクセス要求情報に基づき、前記アクセスの種類が書き込みアクセスであるかを判定し、
前記アクセスの種類が書き込みアクセスである場合、前記アクセス管理テーブルを参照し、前記データが格納されたメインメモリ上の区間へのアクセス頻度が閾値以上かを判定し、
前記アクセス頻度が前記閾値以上の場合、前記データをキャッシュメモリに書き込み、
前記アクセス頻度が前記閾値未満の場合、前記データをメインメモリに書き込む、請求項1記載のキャッシュ制御装置。
【請求項3】
前記キャッシュメモリ制御部は、
前記アクセスの種類が読み込みアクセスである場合、キャッシュメモリから読み込みを行うように演算処理装置を制御する、請求項1または2記載のキャッシュ制御装置。
【請求項4】
前記アクセス管理テーブルは、インターバルツリー構造である、請求項1から3のいずれか一項に記載のキャッシュ制御装置。
【請求項5】
キャッシュ制御部と、メインメモリとを含み、
前記メインメモリが、不揮発性メモリデバイスを含み、
前記キャッシュ制御部は、請求項1から4のいずれか一項に記載のキャッシュ制御装置である、情報処理装置。
【請求項6】
アクセス要求情報取得工程、キャッシュメモリ制御工程、およびアクセス管理テーブル更新工程を含み、
前記アクセス要求情報取得工程は、演算処理装置によるメインメモリへのアクセス要求情報を取得し、
前記アクセス要求情報は、演算処理装置がアクセスしたメインメモリ上の区間情報およびアクセスの種類情報を含み、
前記キャッシュメモリ制御工程の制御対象は、メインメモリとして不揮発性メモリデバイスを備える情報処理装置のキャッシュメモリであり、
前記キャッシュメモリ制御工程は、前記アクセス要求情報およびアクセス管理テーブルに基づいて、前記演算処理装置によりアクセス要求されたデータの前記キャッシュメモリへの書き込みを制御し、
前記アクセス管理テーブルは、アクセス頻度情報を含み、
前記アクセス頻度情報は、演算処理装置によりアクセスされた区間とアクセスの種類とが紐づけられた情報であり、
前記アクセス管理テーブル更新工程は、前記アクセス要求情報に基づいて、前記アクセス管理テーブルを更新する、情報処理装置のキャッシュ制御方法。
【請求項7】
前記キャッシュメモリ制御工程は、前記アクセス要求情報に基づき、前記アクセスの種類が書き込みアクセスであるかを判定し、
前記アクセスの種類が書き込みアクセスである場合、前記アクセス管理テーブルを参照し、前記データが格納されたメインメモリ上の区間へのアクセス頻度が閾値以上かを判定し、
前記アクセス頻度が前記閾値以上の場合、前記データをキャッシュメモリに書き込み、
前記アクセス頻度が前記閾値未満の場合、前記データをメインメモリに書き込む、請求項6記載のキャッシュ制御方法。
【請求項8】
前記キャッシュメモリ制御工程は、
前記アクセスの種類が読み込みアクセスである場合、キャッシュメモリから読み込みを行うように演算処理装置を制御する、請求項6または7記載のキャッシュ制御方法。
【請求項9】
コンピュータに、アクセス要求情報取得手順、キャッシュメモリ制御手順、およびアクセス管理テーブル更新手順を実行させるためのプログラムであって、
前記アクセス要求情報取得手順は、演算処理装置によるメインメモリへのアクセス要求情報を取得し、
前記アクセス要求情報は、演算処理装置がアクセスしたメインメモリ上の区間情報およびアクセスの種類情報を含み、
前記キャッシュメモリ制御手順の制御対象は、メインメモリとして不揮発性メモリデバイスを備える情報処理装置のキャッシュメモリであり、
前記キャッシュメモリ制御手順は、前記アクセス要求情報およびアクセス管理テーブルに基づいて、前記演算処理装置によりアクセス要求されたデータの前記キャッシュメモリへの書き込みを制御し、
前記アクセス管理テーブルは、アクセス頻度情報を含み、
前記アクセス頻度情報は、演算処理装置によりアクセスされた区間とアクセスの種類とが紐づけられた情報であり、
前記アクセス管理テーブル更新手順は、前記アクセス要求情報に基づいて、前記アクセス管理テーブルを更新する、プログラム。
【請求項10】
請求項9記載のプログラムを記録しているコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、キャッシュ制御装置、情報処理装置、キャッシュ制御方法、プログラム及び記録媒体に関する。
【背景技術】
【0002】
情報処理装置のメインメモリとしては、一般に、DRAM等の揮発性メモリが使用されている。他方、近年、電源を喪失しても保持した情報が失われない(不揮発性を有する)不揮発性のメモリデバイスをメインメモリとして使用する情報処理装置が知られている(特許文献1、2等)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特表2021-520021号公報
【特許文献2】特開2015-095001号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
前述のように、不揮発性メモリデバイスは、DRAM等の通常のRAMと同様にメインメモリとして利用可能であり、電源を落としても保持した情報が揮発しない(不揮発性)という特性がある。しかしながら、CPU等に搭載されたキャッシュメモリは揮発性であるため、不揮発性メモリデバイスに書き戻していない(キャッシュフラッシュしていない)、キャッシュメモリ上の情報については、電源の喪失とともに揮発してしまうという課題がある。
【0005】
これに対し、non-temporal store命令により、データをキャッシュメモリに保存しないように制御することが知られている。しかしながら、non-temporal store命令は動的に制御できないため、予めアクセス頻度が低いことがわかっているデータ(例えば、ログ・ダンプ等)でなければ使用できないという問題がある。
【0006】
そこで本発明は、不揮発性メモリデバイスを備える情報処理装置において、キャッシュメモリへの書き込みを動的に制御可能なキャッシュ制御装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
前記目的を達成するために、本発明の情報処理装置のキャッシュ制御装置は、
アクセス要求情報取得部、キャッシュメモリ制御部、およびアクセス管理テーブル更新部を含み、
前記アクセス要求情報取得部は、演算処理装置によるメインメモリへのアクセス要求情報を取得し、
前記アクセス要求情報は、演算処理装置がアクセスしたメインメモリ上の区間情報およびアクセスの種類情報を含み、
前記キャッシュメモリ制御部の制御対象は、メインメモリとして不揮発性メモリデバイスを備える情報処理装置のキャッシュメモリであり、
前記キャッシュメモリ制御部は、前記アクセス要求情報およびアクセス管理テーブルに基づいて、前記演算処理装置によりアクセス要求されたデータの前記キャッシュメモリへの書き込みを制御し、
前記アクセス管理テーブルは、アクセス頻度情報を含み、
前記アクセス頻度情報は、演算処理装置によりアクセスされた区間とアクセスの種類とが紐づけられた情報であり、
前記アクセス管理テーブル更新部は、前記アクセス要求情報に基づいて、前記アクセス管理テーブルを更新する。
【0008】
本発明の情報処理装置のキャッシュ制御方法は、
アクセス要求情報取得工程、キャッシュメモリ制御工程、およびアクセス管理テーブル更新工程を含み、
前記アクセス要求情報取得工程は、演算処理装置によるメインメモリへのアクセス要求情報を取得し、
前記アクセス要求情報は、演算処理装置がアクセスしたメインメモリ上の区間情報およびアクセスの種類情報を含み、
前記キャッシュメモリ制御工程の制御対象は、メインメモリとして不揮発性メモリデバイスを備える情報処理装置のキャッシュメモリであり、
前記キャッシュメモリ制御工程は、前記アクセス要求情報およびアクセス管理テーブルに基づいて、前記演算処理装置によりアクセス要求されたデータの前記キャッシュメモリへの書き込みを制御し、
前記アクセス管理テーブルは、アクセス頻度情報を含み、
前記アクセス頻度情報は、演算処理装置によりアクセスされた区間とアクセスの種類とが紐づけられた情報であり、
前記アクセス管理テーブル更新工程は、前記アクセス要求情報に基づいて、前記アクセス管理テーブルを更新する。
【0009】
本発明のプログラムは、コンピュータに、アクセス要求情報取得手順、キャッシュメモリ制御手順、およびアクセス管理テーブル更新手順を実行させるためのプログラムであって、
前記アクセス要求情報取得手順は、演算処理装置によるメインメモリへのアクセス要求情報を取得し、
前記アクセス要求情報は、演算処理装置がアクセスしたメインメモリ上の区間情報およびアクセスの種類情報を含み、
前記キャッシュメモリ制御手順の制御対象は、メインメモリとして不揮発性メモリデバイスを備える情報処理装置のキャッシュメモリであり、
前記キャッシュメモリ制御手順は、前記アクセス要求情報およびアクセス管理テーブルに基づいて、前記演算処理装置によりアクセス要求されたデータの前記キャッシュメモリへの書き込みを制御し、
前記アクセス管理テーブルは、アクセス頻度情報を含み、
前記アクセス頻度情報は、演算処理装置によりアクセスされた区間とアクセスの種類とが紐づけられた情報であり、
前記アクセス管理テーブル更新手順は、前記アクセス要求情報に基づいて、前記アクセス管理テーブルを更新する、プログラムである。
【発明の効果】
【0010】
本発明によれば、不揮発性メモリデバイスを備える情報処理装置において、キャッシュメモリへの書き込みを動的に制御できる。
【図面の簡単な説明】
【0011】
【
図1】
図1は、実施形態1のキャッシュ制御装置を含む情報処理装置の一例の構成を示すブロック図である。
【
図2】
図2は、実施形態1のキャッシュ制御装置を含む情報処理装置のハードウェア構成の一例を示すブロック図である。
【
図3】
図3は、実施形態1のキャッシュ制御装置における処理の一例を示すフローチャートである。
【
図4】
図4は、インターバルツリー構造の一例を示す模式図である。
【
図5】
図5は、アクセス管理テーブルの作成方法の一例を示す模式図である。
【発明を実施するための形態】
【0012】
本発明において、不揮発性メモリデバイス(non-volatile memory、不揮発メモリともいう)とは、例えば、不揮発性の記憶装置のうち、メインメモリとして使用可能なものを意味する。前記メインメモリとして使用可能な不揮発性メモリデバイスの具体例としては、例えば、インテル株式会社のインテル(登録商標) Optane(商標)パーシステント・メモリー(Intel Optane Persistent Memory)等があげられる。
【0013】
本発明において、キャッシュメモリは、例えば、演算処理装置が備えるキャッシュメモリであれば特に制限されず、L1キャッシュ、L2キャッシュ、L3キャッシュ等のCPUキャッシュメモリでもよいし、GPUキャッシュメモリでもよく、さらにその他の演算処理装置が備えるキャッシュメモリでもよい。
【0014】
本発明の実施形態について図を用いて説明する。本発明は、以下の実施形態には限定されない。以下の各図において、同一部分には、同一符号を付している。また、各実施形態の説明は、特に言及がない限り、互いの説明を援用でき、各実施形態の構成は、特に言及がない限り、組合せ可能である。
【0015】
[実施形態1]
図1は、本実施形態のキャッシュ制御装置10を含む情報処理装置100の一例の構成を示すブロック図である。
図1に示すように、情報処理装置100は、例えば、キャッシュ制御部(キャッシュ制御装置)10とメインメモリ(
図1では図示せず)とを含み、前記メインメモリは、前記不揮発性メモリデバイスを含む。図示していないが、情報処理装置100は、例えば、記憶部を含んでもよい。キャッシュ制御装置10は、アクセス要求情報取得部11、キャッシュメモリ制御12、アクセス管理テーブル更新部13を含む。
【0016】
情報処理装置100は、メインメモリとして不揮発性メモリデバイスを備える情報処理装置である。本実施形態において、キャッシュ制御装置10は、情報処理装置100と一体の装置であるが、例えば、キャッシュ制御装置10と情報処理装置100とは、それぞれ別個の装置でもよい。後者の場合、キャッシュ制御装置10と情報処理装置100とは、例えば、通信により接続可能であり、その接続方法は、有線でも無線でもよい。
【0017】
情報処理装置100は、例えば、前記各部を含む1つの装置でもよいし、前記各部が、通信回線網を介して接続可能な装置でもよい。また、情報処理装置100は、前記通信回線網を介して、後述する外部装置と接続可能である。前記通信回線網は、特に制限されず、公知のネットワークを使用でき、例えば、有線でも無線でもよい。前記通信回線網は、例えば、インターネット回線、WWW(World Wide Web)、電話回線、LAN(Local Area Network)、SAN(Storage Area Network)、DTN(Delay Tolerant Networking)、LPWA(Low Power Wide Area)、L5G(ローカル5G)、等があげられる。無線通信としては、例えば、Wi-Fi(登録商標)、Bluetooth(登録商標)、ローカル5G、LPWA等が挙げられる。前記無線通信としては、各装置が直接通信する形態(Ad Hoc通信)、インフラストラクチャ(infrastructure通信)、アクセスポイントを介した間接通信等であってもよい。情報処理装置100は、例えば、システムとしてサーバに組み込まれていてもよい。また、情報処理装置100は、例えば、本発明のプログラムがインストールされたパーソナルコンピュータ(PC、例えば、デスクトップ型、ノート型)、スマートフォン、タブレット端末等であってもよい。情報処理装置100は、例えば、前記各部のうち少なくとも一つがサーバ上にあり、その他の前記各部が端末上にあるような、クラウドコンピューティングやエッジコンピューティング等の形態であってもよい。
【0018】
図2に、キャッシュ制御装置10を含む情報処理装置100のハードウェア構成のブロック図を例示する。情報処理装置100は、例えば、CPU101、メモリ102、バス103、記憶装置104、入力装置106、ディスプレイ(表示装置)107、通信デバイス(通信部)108、キャッシュ制御部10等を含む。情報処理装置100の各部は、それぞれのインタフェース(I/F)により、バス103を介して相互に接続されている。
【0019】
CPU101は、例えば、コントローラ(システムコントローラ、I/Oコントローラ等)等により、他の構成と連携動作し、情報処理装置100の全体の制御を担う。
図2に示すように、CPU101は、キャッシュメモリ1011を含む。
図2において、CPU101が有するキャッシュメモリ1011は一つであるが、本発明はこれには制限されず、CPU101は、キャッシュメモリ1011を複数含んでもよい(図示せず)。情報処理装置100において、CPU101により、例えば、本発明のプログラム105やその他のプログラムが実行され、また、各種情報の読み込みや書き込みが行われる。具体的には、例えば、CPU101が、ターゲットとなるターゲットソフトウェアのプログラムを読み込み、ターゲットソフトウェアとして機能する。情報処理装置100は、演算装置として、CPUを含むが、GPU(Graphics Processing Unit)、APU(Accelerated Processing Unit)等の他の演算装置を備えてもよいし、CPUとこれらとの組合せを備えてもよい。
【0020】
バス103は、例えば、外部装置とも接続できる。前記外部装置は、例えば、外部記憶装置(外部データベース等)、プリンター、外部入力装置、外部表示装置、外部撮像装置等があげられる。情報処理装置100は、例えば、バス103に接続された通信デバイス107により、外部ネットワーク(前記通信回線網)に接続でき、外部ネットワークを介して、他の装置と接続することもできる。
【0021】
メモリ102は、例えば、メインメモリ(主記憶装置)が挙げられる。前記メインメモリは、例えば、前述の不揮発性メモリデバイスである。CPU101が処理を行う際には、メモリ102に記憶されているターゲットソフトウェア等のプログラム等をCPU101が読み取り、プログラムを実行できる。なお、本発明はこれには制限されず、例えば、CPU101が処理を行う際に、後述する記憶装置104に記憶されている本発明のプログラム105等の種々の動作プログラムを、メモリ102が読み込み、CPU101は、メモリ102からデータを受け取って、プログラムを実行してもよい。
【0022】
記憶装置104は、例えば、前記メインメモリ(主記憶装置)に対して、いわゆる補助記憶装置ともいう。前述のように、記憶装置104には、本発明のプログラムを含む動作プログラムが格納されている。記憶装置104は、例えば、記録媒体と、記録媒体に読み書きするドライブとの組合せであってもよい。前記記録媒体は、特に制限されず、例えば、内蔵型でも外付け型でもよく、HD(ハードディスク)、CD-ROM、CD-R、CD-RW、MO、DVD、フラッシュメモリー、メモリーカード等が挙げられる。記憶装置104は、例えば、記録媒体とドライブとが一体化されたハードディスクドライブ(HDD)、及びソリッドステートドライブ(SSD)であってもよい。
【0023】
情報処理装置100において、メモリ102及び記憶装置104は、ログ情報、外部データベース(図示せず)や外部の装置から取得した情報、情報処理装置100によって生成した情報、情報処理装置100が処理を実行する際に用いる情報等の種々の情報を記憶することも可能である。なお、少なくとも一部の情報は、例えば、メモリ102及び記憶装置104以外の外部サーバに記憶されていてもよいし、複数の端末にブロックチェーン技術等を用いて分散して記憶されていてもよい。
【0024】
情報処理装置100は、例えば、さらに、入力装置106、ディスプレイ107を含む。入力装置106は、例えば、タッチパネル、トラックパッド、マウス等のポインティングデバイス;キーボード;カメラ、スキャナ等の撮像手段;ICカードリーダ、磁気カードリーダ等のカードリーダ;マイク等の音声入力手段;等があげられる。ディスプレイ107は、例えば、LEDディスプレイ、液晶ディスプレイ等の表示装置があげられる。本実施形態1において、入力装置106とディスプレイ107とは、別個に構成されているが、入力装置106とディスプレイ107とは、タッチパネルディスプレイのように、一体として構成されてもよい。
【0025】
つぎに、本実施形態のキャッシュ制御方法の一例を、
図3のフローチャートに基づき説明する。本実施形態のキャッシュ制御方法は、例えば、
図1又は
図2のキャッシュ制御装置10を用いて、次のように実施する。なお、本実施形態のキャッシュ制御方法は、
図1又は
図2のキャッシュ制御装置10の使用には限定されない。
【0026】
まず、キャッシュ制御装置10による処理に先立ち、アクセス管理テーブルを用意する。前記アクセス管理テーブルは、アクセス頻度情報を含む。前記アクセス頻度情報は、演算処理装置に(CPU101)よりアクセスされたメインメモリ(メモリ102)上の区間とアクセスの種類とが紐づけられた情報であり、例えば、区間の始点および終点と、アクセスの種類が書き込み(writeアクセス)か、読み込み(readアクセス)かの情報が紐づけられている。アクセス管理テーブルは、例えば、任意のデータ構造で作成でき、具体例として、インターバルツリー(区間木)構造、リスト構造、B木構造、赤黒木構造等のデータ構造があげられる。アクセス管理テーブルは、例えば、データの区間を保持するテーブルであるため、区間を扱うことができるインターバルツリー(区間木)構造で作成することが好ましい。また、アクセス管理テーブルがインターバルツリー構造である場合、例えば、後述するキャッシュメモリ制御部12により、演算処理装置によりアクセス要求された区間のアクセス頻度の探索が早くなるため好ましい。前記アクセス管理テーブルがリスト構造である場合、例えば、エントリに存在するアドレス範囲と、新しくアクセスするアドレス範囲が部分的に重複する場合に、エントリを更新してもよい。このようにリスト構造を構築することにより、例えば、アクセス管理テーブルの探索コストを下げることができる。
【0027】
インターバルツリー構造について、
図4を用いて説明する。インターバルツリー構造は、例えば、
図4において破線xで示すように、メインメモリ上の全区間が含まれる範囲の中央点xを特定する。これにより、メインメモリ上の全区間は、中央点xを含む区間群(
図4最上段のノードにおいて、黒塗で示す区間群)をCenter、中央点xよりも小さい範囲内にある区間群(
図4最上段のノードにおいて、左側の白塗で示す区間群)をLeft、中央点xよりも大きい範囲内にある区間群(
図4最上段のノードにおいて、右側の白塗で示す区間群)をRightの3種類に分類できる。つぎに、
図4中段のノードおよび
図4下段のノードに示すように、前記Leftおよび前記Rightの区間群についても同様に分割していき、全区間がCenterとなるまで分割する。これにより、Centerに属する区間群は、ツリーの各ノードにリンクされた2つのリスト、すなわち区間群を始点でソートしたリストと、区間群を終点でソートしたリストに含めることができる。これにより、インターバルツリーの各ノードには、中央点xの位置、Leftノードへのポインタ、Rightノードへのポインタ、中央点xを含む区間群(Center)を始点でソートしたリスト、中央点xを含む区間(Center)を終点でソートしたリスト、等のデータが格納される。
【0028】
つぎに、
図5を用いて、インターバルツリー構造のアクセス管理テーブルの構築の一例について説明する。まず、前記アクセス頻度情報から、演算処理装置(CPU101)によりアクセスされた区間の始点および終点と、アクセスがwriteかreadかを示す情報を、インターバル構造体(struct interval)の配列として用意し、前記配列内のインターバル構造体のポインタを用いて、インターバルツリーを構築する。このようにしてアクセス管理テーブルを構築することにより、例えば、区間ごとにインターバル構造体を管理でき、所定時間が経過した区間については削除することが可能となる。なお、インターバル構造体の削除基準は、これには限定されず、例えば、インターバル構造体配列のためにメモリ領域を割り当てておき、前記メモリ領域からオーバーフローしたインターバル構造体を削除してもよいし、インターバル構造体同士をLRU(Least Recently Used)リストでつなぎ、リストでつなげられたインターバル構造体の数が閾値を超えたときに、古いインターバル構造体(すなわち、最も過去にアクセスがあった区間)について削除してもよい。
【0029】
キャッシュ制御装置10は、情報処理装置100のCPU101(演算処理装置)によるメインメモリ102へのアクセス要求を検知すると、アクセス要求情報取得部11により、情報処理装置100のCPU101(演算処理装置)によるメインメモリ102へのアクセス要求情報を取得する(S1、アクセス要求情報取得工程)。前記アクセス要求情報は、演算処理装置がアクセスしたメインメモリ上の区間情報およびアクセスの種類情報を含む。前記区間情報は、演算処理装置がアクセスしたメインメモリ上の位置を特定する情報であり、例えば、アクセス区間の始点および終点の情報を含む。前記アクセスの種類情報は、例えば、CPU101によるアクセスが書き込み(write)アクセスであるのか、読み込み(read)アクセスであるのかの情報である。
【0030】
つぎに、キャッシュメモリ制御部12により、前記アクセス要求情報およびアクセス管理テーブルに基づいて、前記演算処理装置によりアクセス要求されたデータのキャッシュメモリへの書き込みを制御する(S2、キャッシュメモリ制御工程)。前述のように、キャッシュメモリ制御部12の制御対象は、メインメモリとして不揮発性メモリデバイスを備える情報処理装置100のキャッシュメモリである。
【0031】
具体的に、例えば、キャッシュメモリ制御部12は、まず、アクセス要求情報に基づき、演算処理装置によるアクセスの種類が書き込みアクセスであるかを判定する(S2A)。前記アクセスが書き込みアクセスでない場合(例えば、読み込みアクセスである場合)(S2A、No)、キャッシュメモリ制御部12は、例えば、処理を終了してもよいし、キャッシュメモリから読み込みを行う(S2E)ように演算処理装置を制御してもよい。また、例えば、キャッシュメモリに目的のデータがない場合(キャッシュミスの場合)は、さらに、メインメモリから読み込みを行うように演算処理装置を制御してもよい。
【0032】
そして、アクセス管理テーブル更新部13により、前記アクセス要求情報に基づいて、アクセス管理テーブルを更新し(S3、アクセス管理テーブル更新工程)、キャッシュ制御装置10による処理を終了する(END)。アクセス管理テーブル更新部13は、例えば、前記アクセス要求情報に基づき、演算処理装置からアクセス要求があった区間の始点と終点とを特定し、さらに、アクセスの種類を前記区間情報に紐づけて前記アクセス管理テーブルに追加することで、前記アクセス管理テーブルを更新できる。
【0033】
前記アクセスの種類が書き込みアクセスである場合(S2A、Yes)、キャッシュメモリ制御部12は、前記アクセス管理テーブルを参照し(S2B)、前記データが格納されたメインメモリ上の区間へのアクセス頻度が閾値以上かを判定する(S2C)。キャッシュメモリ制御部12は、例えば、前記区間への読み込みアクセス頻度および書き込みアクセス頻度の少なくとも一方の頻度が、閾値以上かを判定すればよく、いずれか一方を判定してもよいし、両方を判定してもよい。前記閾値は、特に制限されず、任意の値が設定でき、書き込みアクセスと読み込みアクセスとで異なる値を設定してもよいし、同じ値を設定してもよい。前記閾値は、例えば、プログラム実行環境のワークロードにあわせて適した値を任意に設定できる。具体例として、前記書き込みアクセスの閾値は、キャッシュサイズの50%に設定でき、前記読み込みアクセスの閾値は、キャッシュサイズの50%に設定できる。キャッシュメモリ制御部12は、前記アクセス頻度が前記閾値以上の場合(S2C、Yes)、前記データをキャッシュメモリに書き込み(S2D)、前記アクセス頻度が前記閾値未満の場合(S2C、No)、前記データをメインメモリに書き込む(S2F)。また、前記閾値が読み込みアクセスと書き込みアクセスとで異なる値が設定されている場合、キャッシュメモリ制御部12は、例えば、演算処理装置からのアクセス要求があったアクセスの種類に対応した閾値を利用して前記アクセス頻度を判定できる。
【0034】
前記S2について、さらに具体的に説明する。まず、キャッシュメモリ制御部12は、例えば、前記アクセス要求情報に基づいて、演算処理装置がアクセスしようとしているメインメモリ上のアクセス要求区間を特定する。そして、前記アクセス管理テーブルを参照して、前記アクセス要求区間の始点または終点を含む区間が、前記アクセス頻度情報として記録されているかを探索する。キャッシュメモリ制御部12は、例えば、前記アクセス要求区間の始点または終点を含む区間が前記アクセス頻度情報として記録されている場合、その区間については、過去にアクセスがあった区間であるとして、アクセス回数をカウントする。つぎに、キャッシュメモリ制御部12は、前記アクセス要求区間が完全に含まれる区間を探索する。キャッシュメモリ制御部12は、例えば、アクセス要求区間内の任意の点pと、アクセス管理テーブルの中央点xとを比較する。キャッシュメモリ制御部12は、点pが中央点xより小さい場合、始点が点pよりも小さい区間を探索し、点pが中央点xより大きい場合は、終点がpよりも大きい区間を探索し、これらの区間がアクセス頻度情報として記録されている場合、これらの区間については、過去にアクセスがあった区間であるとして、アクセス回数をカウントする。また、キャッシュメモリ制御部12は、点pが中央点xと同一の点である場合、そのノード内の区間群すべてを、過去にアクセスがあった区間であるとして、アクセス回数をカウントする。そして、キャッシュメモリ制御部12は、前記アクセス回数の合計が、前記閾値を超えるか否かを判定することにより、前記アクセス要求区間のアクセス頻度が閾値を超えるか否かを判定することができる。
【0035】
つぎに、アクセス管理テーブル更新部13により、前記アクセス要求情報に基づいて、アクセス管理テーブルを更新し(S3、アクセス管理テーブル更新工程)、キャッシュ制御装置10による処理を終了する(END)。アクセス管理テーブル更新部13による処理は、例えば、前述の通りである。
【0036】
なお、アクセス管理テーブル更新部13は、所定の時間経過後に、アクセス管理テーブルをリビルド(再構築)してもよい。前記アクセス管理テーブルが、例えば、インターバルツリー構造である場合、ツリーに区間を追加し続けると、各ノードにおける中心点xが実態とあわなくなるため、定期的に追加済みの区間を利用してツリーを再構築することが望ましい。
【0037】
本実施形態のキャッシュ制御装置10によれば、例えば、演算処理装置から書き込みアクセス要求があった場合、キャッシュメモリ制御部12により、アクセス管理テーブルに含まれる当該区間のアクセス頻度に基づいて、キャッシュメモリへ書き込みを行うか、メインメモリに書き込みを行うかを動的に制御できる。このため、本発明のキャッシュ制御装置によれば、アクセス頻度の低いデータをキャッシュメモリに書き込むことを回避できるため、例えば、キャッシュフラッシュのオーバーヘッド削減、キャッシュメモリの温存、アクセス時のCPUキャッシュメモリ探索の回避等の効果が得られる。
【0038】
[実施形態2]
本実施形態のプログラムは、前述のキャッシュ制御方法の各工程を、コンピュータに実行させるためのプログラムである。具体的に、本実施形態のプログラムは、コンピュータに、アクセス要求情報取得手順、キャッシュメモリ制御手順、およびアクセス管理テーブル更新手順を実行させるためのプログラムである。
【0039】
前記アクセス要求情報取得手順は、演算処理装置によるメインメモリへのアクセス要求情報を取得し、
前記アクセス要求情報は、演算処理装置がアクセスしたメインメモリ上の区間情報およびアクセスの種類情報を含み、
前記キャッシュメモリ制御手順の制御対象は、メインメモリとして不揮発性メモリデバイスを備える情報処理装置のキャッシュメモリであり、
前記キャッシュメモリ制御手順は、前記アクセス要求情報およびアクセス管理テーブルに基づいて、前記演算処理装置によりアクセス要求されたデータの前記キャッシュメモリへの書き込みを制御し、
前記アクセス管理テーブルは、アクセス頻度情報を含み、
前記アクセス頻度情報は、演算処理装置によりアクセスされた区間とアクセスの種類とが紐づけられた情報であり、
前記アクセス管理テーブル更新手順は、前記アクセス要求情報に基づいて、前記アクセス管理テーブルを更新する。
【0040】
また、本実施形態のプログラムは、コンピュータを、アクセス要求情報取得手順、キャッシュメモリ制御手順、およびアクセス管理テーブル更新手順として機能させるプログラムということもできる。
【0041】
本実施形態のプログラムは、前記本発明のキャッシュ制御装置およびキャッシュ制御方法における記載を援用できる。前記各手順は、例えば、「手順」を「処理」と読み替え可能である。また、本実施形態のプログラムは、例えば、コンピュータ読み取り可能な記録媒体に記録されてもよい。前記記録媒体は、例えば、非一時的なコンピュータ可読記録媒体(non-transitory computer-readable storage medium)である。前記記録媒体は、特に制限されず、例えば、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、ハードディスク(HD)、光ディスク、フロッピー(登録商標)ディスク(FD)等があげられる。
【0042】
以上、実施形態を参照して本発明を説明したが、本発明は、上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をできる。
【0043】
<付記>
上記の実施形態の一部または全部は、以下の付記のように記載されうるが、以下には限られない。
(付記1)
アクセス要求情報取得部、キャッシュメモリ制御部、およびアクセス管理テーブル更新部を含み、
前記アクセス要求情報取得部は、演算処理装置によるメインメモリへのアクセス要求情報を取得し、
前記アクセス要求情報は、演算処理装置がアクセスしたメインメモリ上の区間情報およびアクセスの種類情報を含み、
前記キャッシュメモリ制御部の制御対象は、メインメモリとして不揮発性メモリデバイスを備える情報処理装置のキャッシュメモリであり、
前記キャッシュメモリ制御部は、前記アクセス要求情報およびアクセス管理テーブルに基づいて、前記演算処理装置によりアクセス要求されたデータの前記キャッシュメモリへの書き込みを制御し、
前記アクセス管理テーブルは、アクセス頻度情報を含み、
前記アクセス頻度情報は、演算処理装置によりアクセスされた区間とアクセスの種類とが紐づけられた情報であり、
前記アクセス管理テーブル更新部は、前記アクセス要求情報に基づいて、前記アクセス管理テーブルを更新する、情報処理装置のキャッシュ制御装置。
(付記2)
前記キャッシュメモリ制御部は、前記アクセス要求情報に基づき、前記アクセスの種類が書き込みアクセスであるかを判定し、
前記アクセスの種類が書き込みアクセスである場合、前記アクセス管理テーブルを参照し、前記データが格納されたメインメモリ上の区間へのアクセス頻度が閾値以上かを判定し、
前記アクセス頻度が前記閾値以上の場合、前記データをキャッシュメモリに書き込み、
前記アクセス頻度が前記閾値未満の場合、前記データをメインメモリに書き込む、付記1記載のキャッシュ制御装置。
(付記3)
前記キャッシュメモリ制御部は、
前記アクセスの種類が読み込みアクセスである場合、キャッシュメモリから読み込みを行うように演算処理装置を制御する、付記1または2記載のキャッシュ制御装置。
(付記4)
前記アクセス管理テーブルは、インターバルツリー構造である、付記1から3のいずれかに記載のキャッシュ制御装置。
(付記5)
キャッシュ制御部と、メインメモリとを含み、
前記メインメモリが、不揮発性メモリデバイスを含み、
前記キャッシュ制御部は、付記1から4のいずれかに記載のキャッシュ制御装置である、情報処理装置。
(付記6)
アクセス要求情報取得工程、キャッシュメモリ制御工程、およびアクセス管理テーブル更新工程を含み、
前記アクセス要求情報取得工程は、演算処理装置によるメインメモリへのアクセス要求情報を取得し、
前記アクセス要求情報は、演算処理装置がアクセスしたメインメモリ上の区間情報およびアクセスの種類情報を含み、
前記キャッシュメモリ制御工程の制御対象は、メインメモリとして不揮発性メモリデバイスを備える情報処理装置のキャッシュメモリであり、
前記キャッシュメモリ制御工程は、前記アクセス要求情報およびアクセス管理テーブルに基づいて、前記演算処理装置によりアクセス要求されたデータの前記キャッシュメモリへの書き込みを制御し、
前記アクセス管理テーブルは、アクセス頻度情報を含み、
前記アクセス頻度情報は、演算処理装置によりアクセスされた区間とアクセスの種類とが紐づけられた情報であり、
前記アクセス管理テーブル更新工程は、前記アクセス要求情報に基づいて、前記アクセス管理テーブルを更新する、情報処理装置のキャッシュ制御方法。
(付記7)
前記キャッシュメモリ制御工程は、前記アクセス要求情報に基づき、前記アクセスの種類が書き込みアクセスであるかを判定し、
前記アクセスの種類が書き込みアクセスである場合、前記アクセス管理テーブルを参照し、前記データが格納されたメインメモリ上の区間へのアクセス頻度が閾値以上かを判定し、
前記アクセス頻度が前記閾値以上の場合、前記データをキャッシュメモリに書き込み、
前記アクセス頻度が前記閾値未満の場合、前記データをメインメモリに書き込む、付記6記載のキャッシュ制御方法。
(付記8)
前記キャッシュメモリ制御工程は、
前記アクセスの種類が読み込みアクセスである場合、キャッシュメモリから読み込みを行うように演算処理装置を制御する、付記6または7記載のキャッシュ制御方法。
(付記9)
前記アクセス管理テーブルは、インターバルツリー構造である、付記6から7のいずれかに記載のキャッシュ制御方法。
(付記10)
コンピュータに、アクセス要求情報取得手順、キャッシュメモリ制御手順、およびアクセス管理テーブル更新手順を実行させるためのプログラムであって、
前記アクセス要求情報取得手順は、演算処理装置によるメインメモリへのアクセス要求情報を取得し、
前記アクセス要求情報は、演算処理装置がアクセスしたメインメモリ上の区間情報およびアクセスの種類情報を含み、
前記キャッシュメモリ制御手順の制御対象は、メインメモリとして不揮発性メモリデバイスを備える情報処理装置のキャッシュメモリであり、
前記キャッシュメモリ制御手順は、前記アクセス要求情報およびアクセス管理テーブルに基づいて、前記演算処理装置によりアクセス要求されたデータの前記キャッシュメモリへの書き込みを制御し、
前記アクセス管理テーブルは、アクセス頻度情報を含み、
前記アクセス頻度情報は、演算処理装置によりアクセスされた区間とアクセスの種類とが紐づけられた情報であり、
前記アクセス管理テーブル更新手順は、前記アクセス要求情報に基づいて、前記アクセス管理テーブルを更新する、プログラム。
(付記11)
前記キャッシュメモリ制御手順は、前記アクセス要求情報に基づき、前記アクセスの種類が書き込みアクセスであるかを判定し、
前記アクセスの種類が書き込みアクセスである場合、前記アクセス管理テーブルを参照し、前記データが格納されたメインメモリ上の区間へのアクセス頻度が閾値以上かを判定し、
前記アクセス頻度が前記閾値以上の場合、前記データをキャッシュメモリに書き込み、
前記アクセス頻度が前記閾値未満の場合、前記データをメインメモリに書き込む、付記10記載のプログラム。
(付記12)
前記キャッシュメモリ制御手順は、
前記アクセスの種類が読み込みアクセスである場合、キャッシュメモリから読み込みを行うように演算処理装置を制御する付記10または11記載のプログラム。
(付記13)
前記アクセス管理テーブルは、インターバルツリー構造である、付記10から12のいずれかに記載のプログラム。
(付記14)
付記10から13のいずれかに記載のプログラムを記録しているコンピュータ読み取り可能な記録媒体。
【産業上の利用可能性】
【0044】
本発明によれば、メインメモリとして不揮発性メモリデバイスを備える情報処理装置において、キャッシュメモリへの書き込みを動的に制御できる。このため、本発明は、例えば、情報処理装置を利用する様々な分野において有用である。
【符号の説明】
【0045】
100 情報処理装置
10 キャッシュ制御装置(キャッシュ制御部)
11 アクセス要求情報取得部
12 アクセス管理テーブル作成部
13 キャッシュメモリ制御部
101 CPU
102 メモリ
103 バス
104 記憶装置
105 プログラム
106 入力装置
107 表示装置
108 通信デバイス