IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特開2022-161746情報処理プログラム、情報処理方法、および情報処理装置
<>
  • 特開-情報処理プログラム、情報処理方法、および情報処理装置 図1
  • 特開-情報処理プログラム、情報処理方法、および情報処理装置 図2
  • 特開-情報処理プログラム、情報処理方法、および情報処理装置 図3
  • 特開-情報処理プログラム、情報処理方法、および情報処理装置 図4
  • 特開-情報処理プログラム、情報処理方法、および情報処理装置 図5
  • 特開-情報処理プログラム、情報処理方法、および情報処理装置 図6
  • 特開-情報処理プログラム、情報処理方法、および情報処理装置 図7
  • 特開-情報処理プログラム、情報処理方法、および情報処理装置 図8
  • 特開-情報処理プログラム、情報処理方法、および情報処理装置 図9
  • 特開-情報処理プログラム、情報処理方法、および情報処理装置 図10
  • 特開-情報処理プログラム、情報処理方法、および情報処理装置 図11
  • 特開-情報処理プログラム、情報処理方法、および情報処理装置 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022161746
(43)【公開日】2022-10-21
(54)【発明の名称】情報処理プログラム、情報処理方法、および情報処理装置
(51)【国際特許分類】
   G06F 12/0804 20160101AFI20221014BHJP
【FI】
G06F12/0804 100
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2021066807
(22)【出願日】2021-04-09
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100104190
【弁理士】
【氏名又は名称】酒井 昭徳
(72)【発明者】
【氏名】岩田 聡
【テーマコード(参考)】
5B205
【Fターム(参考)】
5B205JJ11
5B205PP03
(57)【要約】      (修正有)
【課題】キャッシュ記憶領域と不揮発性記憶領域との間で行われる同期にかかる処理時間を低減する情報処理プログラム、情報処理装置及び方法を提供する。
【解決手段】情報処理装置100は、キャッシュ記憶領域110の第1領域111と不揮発性記憶領域120との間の同期にかかる第1処理時間を特定し、第2領域112と不揮発性記憶領域120との間の同期にかかる第2処理時間を特定し、複数の第1領域111のうち、データ更新がある第1領域111の量を特定し、特定した量と、特定した第1処理時間と、特定した第2処理時間とに基づいて、データ更新がある第1領域111について第1同期処理を実施するか又は第2領域112について第2同期処理を実施するかを決定する。
【選択図】図1
【特許請求の範囲】
【請求項1】
キャッシュ記憶領域に含まれ、不揮発性記憶領域との間でそれぞれ個別に同期可能な複数の第1領域のうち、データ更新がある第1領域の量を特定し、
特定した前記量と、前記第1領域と前記不揮発性記憶領域との間の同期にかかる第1処理時間と、前記不揮発性記憶領域との間で一括して同期可能な前記複数の第1領域で形成される第2領域と前記不揮発性記憶領域との間の同期にかかる第2処理時間とに基づいて、前記複数の第1領域のうち、前記データ更新がある第1領域を前記不揮発性記憶領域との間で個別に同期するか、または、前記第2領域を前記不揮発性記憶領域との間で一括して同期するかを決定する、
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
【請求項2】
前記特定する処理は、
前記複数の第1領域のそれぞれの第1領域に対するデータ更新の有無を示す情報を取得し、取得した前記情報に基づいて、前記複数の第1領域のうち、前記データ更新がある第1領域の量を特定する、ことを特徴とする請求項1に記載の情報処理プログラム。
【請求項3】
前記決定する処理は、
特定した前記量が、前記第1処理時間と前記第2処理時間とに基づく閾値未満である場合、前記複数の第1領域のうち、前記データ更新がある第1領域を前記不揮発性記憶領域との間で個別に同期すると決定し、特定した前記量が、前記第1処理時間と前記第2処理時間とに基づく前記閾値以上である場合、前記第2領域を前記不揮発性記憶領域との間で一括して同期すると決定する、ことを特徴とする請求項1または2に記載の情報処理プログラム。
【請求項4】
前記量は、前記データ更新がある第1領域の数であり、
前記決定する処理は、
前記データ更新がある第1領域の数に前記第1処理時間を乗算した値が、前記第2処理時間未満である場合、前記複数の第1領域のうち、前記データ更新がある第1領域を前記不揮発性記憶領域との間で個別に同期すると決定し、前記データ更新がある第1領域の数に前記第1処理時間を乗算した値が、前記第2処理時間以上である場合、前記第2領域を前記不揮発性記憶領域との間で一括して同期すると決定する、ことを特徴とする請求項1~3のいずれか一つに記載の情報処理プログラム。
【請求項5】
前記複数の第1領域のうち、前記データ更新がある第1領域を前記不揮発性記憶領域との間で個別に同期すると決定した場合、前記データ更新がある第1領域を前記不揮発性記憶領域との間で個別に同期する第1同期処理を実施し、
前記第2領域を前記不揮発性記憶領域との間で一括して同期すると決定した場合、前記第2領域を前記不揮発性記憶領域との間で一括して同期する第2同期処理を実施する、
処理を前記コンピュータに実行させることを特徴とする請求項1~4のいずれか一つに記載の情報処理プログラム。
【請求項6】
前記第1同期処理を実施した場合、前記第1同期処理にかかる所要時間に基づいて、前記第1処理時間を示す第1情報を更新し、
前記第2同期処理を実施した場合、前記第2同期処理にかかる所要時間に基づいて、前記第2処理時間を示す第2情報を更新する、
処理を前記コンピュータに実行させ、
前記決定する処理は、
特定した前記量と、前記第1情報が示す前記第1処理時間と、前記第2情報が示す前記第2処理時間とに基づいて、前記複数の第1領域のうち、前記データ更新がある第1領域を前記不揮発性記憶領域との間で個別に同期するか、または、前記第2領域を前記不揮発性記憶領域との間で一括して同期するかを決定する、ことを特徴とする請求項5に記載の情報処理プログラム。
【請求項7】
キャッシュ記憶領域に含まれ、不揮発性記憶領域との間でそれぞれ個別に同期可能な複数の第1領域のうち、データ更新がある第1領域の量を特定し、
特定した前記量と、前記第1領域と前記不揮発性記憶領域との間の同期にかかる第1処理時間と、前記不揮発性記憶領域との間で一括して同期可能な前記複数の第1領域で形成される第2領域と前記不揮発性記憶領域との間の同期にかかる第2処理時間とに基づいて、前記複数の第1領域のうち、前記データ更新がある第1領域を前記不揮発性記憶領域との間で個別に同期するか、または、前記第2領域を前記不揮発性記憶領域との間で一括して同期するかを決定する、
処理をコンピュータが実行することを特徴とする情報処理方法。
【請求項8】
キャッシュ記憶領域に含まれ、不揮発性記憶領域との間でそれぞれ個別に同期可能な複数の第1領域のうち、データ更新がある第1領域の量を特定し、
特定した前記量と、前記第1領域と前記不揮発性記憶領域との間の同期にかかる第1処理時間と、前記不揮発性記憶領域との間で一括して同期可能な前記複数の第1領域で形成される第2領域と前記不揮発性記憶領域との間の同期にかかる第2処理時間とに基づいて、前記複数の第1領域のうち、前記データ更新がある第1領域を前記不揮発性記憶領域との間で個別に同期するか、または、前記第2領域を前記不揮発性記憶領域との間で一括して同期するかを決定する、
制御部を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理プログラム、情報処理方法、および情報処理装置に関する。
【背景技術】
【0002】
従来、処理高速化のため、高価でアクセスが比較的高速な揮発性の記憶領域を、キャッシュに利用することがある。そして、電源断に備えて、キャッシュの記憶領域の記憶内容を、安価でアクセスが比較的低速な不揮発性の記憶領域に定期的に同期することがある。
【0003】
先行技術としては、例えば、キャッシュメモリに保持されるデータが所属する管理単位のアドレスの個数が所定の閾値を超えた場合に、キャッシュメモリから不揮発性半導体メモリへのデータ追い出し処理を実行するものがある。また、例えば、データのページがメインメモリに格納されていないとの判断に基づきページフォルトを開始する技術がある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2011-103144号公報
【特許文献2】特開2020-009492号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術では、同期にかかる処理時間が増大し易いという問題がある。例えば、キャッシュの記憶領域内の4KiB分の部分領域を、不揮発性の記憶領域に同期しようとする場合、キャッシュの記憶領域内の2MiB分の部分領域を、不揮発性の記憶領域に同期する場合と同等の処理時間がかかることがある。
【0006】
1つの側面では、本発明は、同期にかかる処理時間の低減化を図ることを目的とする。
【課題を解決するための手段】
【0007】
1つの実施態様によれば、キャッシュ記憶領域に含まれ、不揮発性記憶領域との間でそれぞれ個別に同期可能な複数の第1領域のうち、データ更新がある第1領域の量を特定し、特定した前記量と、前記第1領域と前記不揮発性記憶領域との間の同期にかかる第1処理時間と、前記不揮発性記憶領域との間で一括して同期可能な前記複数の第1領域で形成される第2領域と前記不揮発性記憶領域との間の同期にかかる第2処理時間とに基づいて、前記複数の第1領域のうち、前記データ更新がある第1領域を前記不揮発性記憶領域との間で個別に同期するか、または、前記第2領域を前記不揮発性記憶領域との間で一括して同期するかを決定する情報処理プログラム、情報処理方法、および情報処理装置が提案される。
【発明の効果】
【0008】
一態様によれば、同期にかかる処理時間の低減化を図ることが可能になる。
【図面の簡単な説明】
【0009】
図1図1は、実施の形態にかかる情報処理方法の一実施例を示す説明図である。
図2図2は、情報処理装置100のハードウェア構成例を示すブロック図である。
図3図3は、各種記憶領域の関係性の一例を示す説明図である。
図4図4は、ダーティ管理テーブル400の記憶内容の一例を示す説明図である。
図5図5は、情報処理装置100の機能的構成例を示すブロック図である。
図6図6は、パーシステントメモリ203のデータ構造の一例を示す説明図である。
図7図7は、ダーティを管理する一例を示す説明図である。
図8図8は、いずれの同期処理を実施するかを決定する一例を示す説明図である。
図9図9は、4KiB個別同期処理を実施する一例を示す説明図である。
図10図10は、2MiB一括同期処理を実施する一例を示す説明図である。
図11図11は、管理処理手順の一例を示すフローチャートである。
図12図12は、同期処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下に、図面を参照して、本発明にかかる情報処理プログラム、情報処理方法、および情報処理装置の実施の形態を詳細に説明する。
【0011】
(実施の形態にかかる情報処理方法の一実施例)
図1は、実施の形態にかかる情報処理方法の一実施例を示す説明図である。情報処理装置100は、キャッシュ記憶領域と不揮発性記憶領域との間で行われる同期処理にかかる処理時間の低減化を図るためのコンピュータである。情報処理装置100は、例えば、サーバ、または、PC(Personal Computer)などである。
【0012】
キャッシュ記憶領域は、例えば、比較的高速にアクセス可能であることが好ましく、高価でアクセスが比較的高速な揮発性記憶装置によって実現される傾向がある。一方で、不揮発性記憶領域は、例えば、安価で容量が比較的大きいことが好ましく、安価でアクセスが比較的低速な不揮発性記憶装置によって実現される傾向がある。近年では、不揮発性記憶領域は、永続性記憶装置によって実現されることがある。永続性記憶領域は、例えば、パーシステントメモリ(Persistent Memory)とも呼ばれる。
【0013】
同期処理は、キャッシュ記憶領域の記憶内容を、不揮発性記憶領域に同期する処理である。同期処理は、例えば、電源断に備えて、電源断により記憶内容が喪失し得るキャッシュ記憶領域の記憶内容を、不揮発性記憶領域に保存するために実施される。
【0014】
同期処理は、例えば、一定時間間隔ごとに実施される。同期処理は、例えば、キャッシュ記憶領域の空き領域の大きさが一定以下になり、キャッシュ記憶領域がひっ迫した際に実施されてもよい。同期処理は、例えば、アプリケーションの要求に応じて実施されてもよい。同期処理は、具体的には、アプリケーションがキャッシュ記憶領域に書き込んだデータが重要であると判断した場合に発行する要求に応じて実施されてもよい。同期処理は、処理遅延を防止するため、キャッシュ記憶領域の記憶内容が更新される都度、必ずしも実施されなくてよい。
【0015】
しかしながら、従来では、同期処理にかかる処理時間が増大し易いという問題がある。例えば、キャッシュ記憶領域内の4KiB分の部分領域を、不揮発性記憶領域に同期しようとする場合、キャッシュ記憶領域内の2MiB分の部分領域を、不揮発性記憶領域に同期する場合と同等の処理時間がかかることがある。4KiBの部分領域は、例えば、キャッシュ記憶領域のページである。具体的には、キャッシュ記憶領域内の4KiB分の部分領域を、不揮発性記憶領域に同期しようとする場合、処理時間が1.7ミリ秒になってしまうことがある。
【0016】
具体的には、アプリケーションが、キャッシュ記憶領域内の4KiB分の部分領域を、不揮発性記憶領域に同期することを、OS(Operating System)に要求する場合が考えられる。この場合、OSは、連続した不揮発性記憶領域内の部分領域を一度に更新することにより処理高速化を図ろうとして、キャッシュ記憶領域内の4KiB分の部分領域ではなく2MiB分の部分領域を、不揮発性記憶領域に同期しようとしてしまうことがある。結果として、同期処理にかかる処理時間が増大し易くなってしまう。
【0017】
そこで、本実施の形態では、キャッシュ記憶領域と不揮発性記憶領域との間で行われる同期処理にかかる処理時間の低減化を図ることができる情報処理方法について説明する。
【0018】
図1において、情報処理装置100は、キャッシュ記憶領域110と、不揮発性記憶領域120とを有する。キャッシュ記憶領域110のデータは、不揮発性記憶領域120に同期される。キャッシュ記憶領域110は、例えば、第1領域111単位で区分される。第1領域111は、例えば、ページと呼ばれる。キャッシュ記憶領域110には、複数の第1領域111で形成される第2領域112が存在する。
【0019】
第1領域111は、例えば、それぞれ、不揮発性記憶領域120との間でそれぞれ個別に同期可能である。第2領域112は、例えば、不揮発性記憶領域120との間で一括して同期可能である。情報処理装置100は、例えば、第1領域111を不揮発性記憶領域120との間で個別に同期する第1同期処理を実施可能である。情報処理装置100は、例えば、第2領域112を不揮発性記憶領域120との間で一括して同期する第2同期処理を実施可能である。
【0020】
(1-1)情報処理装置100は、第1領域111と不揮発性記憶領域120との間の同期にかかる第1処理時間を特定する。第1処理時間は、例えば、ユーザによって設定される。第1処理時間は、例えば、過去に第1領域111を不揮発性記憶領域120との間で個別に同期した際の所要時間に基づいて設定されてもよい。
【0021】
(1-2)情報処理装置100は、第2領域112と不揮発性記憶領域120との間の同期にかかる第2処理時間を特定する。第2処理時間は、例えば、ユーザによって設定される。第2処理時間は、例えば、過去に第2領域112を不揮発性記憶領域120との間で一括して同期した際の所要時間に基づいて設定されてもよい。
【0022】
(1-3)情報処理装置100は、複数の第1領域111のうち、データ更新がある第1領域111の量を特定する。データ更新は、例えば、アプリケーションに起因して行われる。情報処理装置100は、例えば、それぞれの第1領域111のデータ更新の有無を示す情報に基づいて、データ更新がある第1領域111の数を特定する。量は、例えば、割合によって表現されてもよい。
【0023】
(1-4)情報処理装置100は、特定した量と、特定した第1処理時間と、特定した第2処理時間とに基づいて、データ更新がある第1領域111について第1同期処理を実施するか、または、第2領域112について第2同期処理を実施するかを決定する。情報処理装置100は、例えば、処理時間の観点から、データ更新がある第1領域111について第1同期処理を実施する方が好ましいと判断すれば、データ更新がある第1領域111について第1同期処理を実施すると決定する。一方で、情報処理装置100は、処理時間の観点から、第2領域112について第2同期処理を実施する方が好ましいと判断すれば、第2領域112について第2同期処理を実施すると決定する。
【0024】
情報処理装置100は、例えば、特定した量分の第1領域111について第1処理時間で第1同期処理を実施した場合の全体処理時間が、第2処理時間以上であるか否かを判定する。ここで、情報処理装置100は、第2処理時間以上であれば、第2領域112について第2同期処理を実施すると決定する。一方で、情報処理装置100は、第2処理時間未満であれば、データ更新がある第1領域111について第1同期処理を実施すると決定する。
【0025】
情報処理装置100は、決定した結果に基づいて、データ更新がある第1領域111について第1同期処理を実施するか、または、第2領域112について第2同期処理を実施する。これにより、情報処理装置100は、キャッシュ記憶領域110と不揮発性記憶領域120との間で行われる同期処理にかかる処理時間の低減化を図ることができる。
【0026】
ここでは、情報処理装置100が、特定した量分の第1領域111について第1処理時間で第1同期処理を実施した場合の全体処理時間が、第2処理時間以上であるか否かを判定する場合について説明したが、これに限らない。例えば、情報処理装置100が、特定した量が、第1処理時間と第2処理時間とに基づく閾値以上であるか否かに基づいて、第1同期処理を実施するか、または、第2同期処理を実施するかを決定する場合があってもよい。
【0027】
ここでは、情報処理装置100が、キャッシュ記憶領域110と不揮発性記憶領域120とを有し、単独で動作する場合について説明したが、これに限らない。例えば、情報処理装置100が、キャッシュ記憶領域110と不揮発性記憶領域120とを有する他のコンピュータと通信可能であり、他のコンピュータで、第1同期処理を実施するか、または、第2同期処理を実施するかを決定する場合があってもよい。
【0028】
(情報処理装置100のハードウェア構成例)
次に、図2を用いて、情報処理装置100のハードウェア構成例について説明する。
【0029】
図2は、情報処理装置100のハードウェア構成例を示すブロック図である。図2において、情報処理装置100は、CPU(Central Processing Unit)201を有する。情報処理装置100は、さらに、CPUキャッシュ202と、パーシステントメモリ203と、DRAM(Dynamic Random Access Memory)204とを有する。情報処理装置100は、さらに、ネットワークI/F(Interface)205を有する。また、各構成部は、バス200によってそれぞれ接続される。
【0030】
ここで、CPU201は、情報処理装置100の全体の制御を司る。CPUキャッシュ202は、例えば、CPU201のワークエリアとして使用される。CPUキャッシュ202は、例えば、CPU201に内蔵されていてもよい。パーシステントメモリ203は、例えば、CPUキャッシュ202との間で同期されることにより、CPUキャッシュ202に記憶されたデータを保存する。DRAM204は、例えば、各種プログラムを記憶する。DRAM204に記憶されるプログラムは、CPU201にロードされることにより、コーディングされている処理をCPU201に実行させる。
【0031】
ネットワークI/F205は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータに接続される。そして、ネットワークI/F205は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークI/F205は、例えば、モデムやLAN(Local Area Network)アダプタなどである。
【0032】
情報処理装置100は、上述した構成部の他、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、情報処理装置100は、記録媒体I/Fおよび記録媒体を有していてもよい。記録媒体は、例えば、ディスク、半導体メモリ、USB(Universal Serial Bus)メモリなどである。記録媒体は、情報処理装置100から着脱可能であってもよい。
【0033】
(各種記憶領域の関係性の一例)
次に、図3を用いて、CPUキャッシュ202と、パーシステントメモリ203と、DRAM204との各種記憶領域の関係性の一例について説明する。
【0034】
図3は、各種記憶領域の関係性の一例を示す説明図である。図3において、CPUキャッシュ202と、パーシステントメモリ203とは、階層関係を有する。CPUキャッシュ202は、パーシステントメモリ203の上位である。
【0035】
情報処理装置100は、OS300を有する。情報処理装置100は、OS300上で、アプリケーション301を実行する。アプリケーション301は、CPUキャッシュ202の記憶内容を更新する。アプリケーション301は、例えば、CPUキャッシュ202のいずれかのページの記憶内容を更新する。ページは、例えば、4KiBである。
【0036】
OS300は、ページが更新された際、DRAM204を利用して、当該ページがダーティになったことを管理する。ダーティは、例えば、ページの記憶内容が更新されていることを示す。ダーティは、例えば、ページの記憶内容を、パーシステントメモリ203に同期することが好ましいことを示唆する。OS300は、例えば、DRAM204に用意された図4に後述するダーティ管理テーブル400を利用して、それぞれのページがダーティであるか否かを管理する。
【0037】
OS300は、CPUキャッシュ202と、パーシステントメモリ203との間で同期処理を実施するトリガーを検出する。OS300は、例えば、同期要求を、アプリケーション301から受信したことを、トリガーとして検出する。OS300は、例えば、一定時間間隔ごとに発生するタイマー信号を、トリガーとして検出する。OS300は、トリガーを検出すると、DRAM204を参照して、CPUキャッシュ202と、パーシステントメモリ203との間で同期処理を実施する。
【0038】
(ダーティ管理テーブル400の記憶内容)
次に、図4を用いて、ダーティ管理テーブル400の記憶内容の一例について説明する。ダーティ管理テーブル400は、例えば、図2に示した情報処理装置100のDRAM204などの記憶領域により実現される。
【0039】
図4は、ダーティ管理テーブル400の記憶内容の一例を示す説明図である。図4に示すように、ダーティ管理テーブル400は、アドレスと、ダーティとのフィールドを有する。ダーティ管理テーブル400は、ページごとに各フィールドに情報を設定することにより、ダーティ管理情報がレコード400-aとして記憶される。aは、任意の整数である。
【0040】
アドレスのフィールドには、ページに対応するパーシステントメモリ203の領域を特定可能にするアドレスが設定される。領域は、例えば、ページの同期先である。ダーティのフィールドには、上記ページがダーティであるか否かを示すフラグ情報が設定される。ダーティは、例えば、上記ページの記憶内容が更新されていることを示す。ダーティは、上記ページを、上記ページに対応するパーシステントメモリ203の領域に同期することが好ましいと示唆する。ダーティ管理テーブル400は、例えば、パーシステントメモリ203の2MiBごとに個別に生成されてもよい。
【0041】
(情報処理装置100の機能的構成例)
次に、図5を用いて、情報処理装置100の機能的構成例について説明する。
【0042】
図5は、情報処理装置100の機能的構成例を示すブロック図である。情報処理装置100は、記憶部500と、取得部501と、特定部502と、決定部503と、実施部504と、出力部505とを含む。
【0043】
記憶部500は、例えば、図2に示したDRAM204などの記憶領域によって実現される。以下では、記憶部500が、情報処理装置100に含まれる場合について説明するが、これに限らない。例えば、記憶部500が、情報処理装置100とは異なる装置に含まれ、記憶部500の記憶内容が情報処理装置100から参照可能である場合があってもよい。
【0044】
取得部501~出力部505は、制御部の一例として機能する。取得部501~出力部505は、具体的には、例えば、図2に示したDRAM204などの記憶領域に記憶されたプログラムをCPU201に実行させることにより、または、ネットワークI/F205により、その機能を実現する。取得部501~出力部505は、OS上で実現される。各機能部の処理結果は、例えば、図2に示したDRAM204などの記憶領域に記憶される。
【0045】
記憶部500は、各機能部の処理において参照され、または更新される各種情報を記憶する。記憶部500は、第1処理時間を示す第1情報を更新する。第1処理時間は、第1領域と不揮発性記憶領域との間で行われる第1同期処理にかかる処理時間である。第1領域は、キャッシュ記憶領域に含まれ、不揮発性記憶領域との間で個別に同期可能な領域である。キャッシュ記憶領域は、例えば、CPUキャッシュ202である。第1領域は、例えば、キャッシュ記憶領域に含まれるページである。第1領域は、例えば、4KiBである。不揮発性記憶領域は、例えば、パーシステントメモリ203である。第1情報は、例えば、第1処理時間を直接的に示す。第1情報は、例えば、第1処理時間を間接的に示してもよい。第1情報は、具体的には、第1処理時間を算出可能にする数式などである。
【0046】
記憶部500は、第2処理時間を示す第2情報を更新する。第2処理時間は、第2領域と不揮発性記憶領域との間で行われる第2同期処理にかかる処理時間である。第2領域は、不揮発性記憶領域との間で一括して同期可能な、複数の第1領域で形成される領域である。第2領域は、例えば、2MiBである。第2情報は、例えば、第2処理時間を直接的に示す。第2情報は、例えば、第2処理時間を間接的に示してもよい。第2情報は、具体的には、第2処理時間を算出可能にする数式などである。
【0047】
記憶部500は、データ更新がある第1領域の量を特定可能にする第3情報を記憶する。第3情報は、例えば、データ更新がある第1領域の量を直接的に示す。量は、例えば、数である。量は、例えば、割合であってもよい。第3情報は、例えば、データ更新がある第1領域の量を間接的に示してもよい。第3情報は、具体的には、複数の第1領域のそれぞれの第1領域に対するデータ更新の有無を示す情報である。データ更新の有無は、ダーティであるか否かに対応する。記憶部500は、例えば、ダーティ管理テーブル400を記憶する。
【0048】
取得部501は、各機能部の処理に用いられる各種情報を取得する。取得部501は、取得した各種情報を、記憶部500に記憶し、または、各機能部に出力する。また、取得部501は、記憶部500に記憶しておいた各種情報を、各機能部に出力してもよい。取得部501は、例えば、ユーザの操作入力に基づき、各種情報を取得する。取得部501は、例えば、情報処理装置100とは異なる装置から、各種情報を受信してもよい。
【0049】
取得部501は、第1情報を取得する。取得部501は、例えば、第1情報を、記憶部500から読み出すことにより取得する。取得部501は、例えば、第1情報を、他のコンピュータから受信することにより取得する。取得部501は、例えば、ユーザの操作入力に基づき、第1情報の入力を受け付けることにより、第1情報を取得する。
【0050】
取得部501は、第2情報を取得する。取得部501は、例えば、第2情報を、記憶部500から読み出すことにより取得する。取得部501は、例えば、第2情報を、他のコンピュータから受信することにより取得する。取得部501は、例えば、ユーザの操作入力に基づき、第2情報の入力を受け付けることにより、第2情報を取得する。
【0051】
取得部501は、第3情報を取得する。取得部501は、例えば、第3情報として、ダーティ管理テーブル400を取得する。取得部501は、具体的には、ダーティ管理テーブル400を、記憶部500から読み出すことにより取得する。取得部501は、具体的には、ダーティ管理テーブル400を、他のコンピュータから受信することにより取得する。取得部501は、例えば、データ更新がある第1領域の量を直接的に示す第3情報を取得してもよい。
【0052】
取得部501は、いずれかの機能部の処理を開始する開始トリガーを受け付けてもよい。開始トリガーは、例えば、ユーザによる所定の操作入力があったことである。開始トリガーは、例えば、他のコンピュータから、所定の情報を受信したことであってもよい。開始トリガーは、例えば、いずれかの機能部が所定の情報を出力したことであってもよい。
【0053】
取得部501は、例えば、キャッシュ記憶領域にアクセスするアプリケーションから、同期要求を受信したことを、特定部502と決定部503と実施部504との処理を開始する開始トリガーとして受け付ける。取得部501は、例えば、一定時間間隔ごとに発生するタイマー信号を検出したことを、特定部502と決定部503と実施部504との処理を開始する開始トリガーとして受け付ける。
【0054】
特定部502は、第1情報に基づいて、第1処理時間を特定する。特定部502は、例えば、第1情報が直接的に示す第1処理時間を特定する。特定部502は、例えば、第1情報である数式に基づいて、第1処理時間を算出することにより、第1処理時間を特定してもよい。これにより、特定部502は、第1同期処理を実施するか、または、第2同期処理を実施するかを決定する指針となる情報を得ることができ、決定部503で利用可能にすることができる。
【0055】
特定部502は、第2情報に基づいて、第2処理時間を特定する。特定部502は、例えば、第2情報が直接的に示す第2処理時間を特定する。特定部502は、例えば、第2情報である数式に基づいて、第2処理時間を算出することにより、第2処理時間を特定してもよい。これにより、特定部502は、第1同期処理を実施するか、または、第2同期処理を実施するかを決定する指針となる情報を得ることができ、決定部503で利用可能にすることができる。
【0056】
特定部502は、複数の第1領域のうち、データ更新がある第1領域の量を特定する。特定部502は、例えば、第2情報が直接的に示すデータ更新がある第1領域の量を特定する。特定部502は、例えば、第3情報に基づいて、複数の第1領域のうち、データ更新がある第1領域を計数することにより、データ更新がある第1領域の数を特定する。
【0057】
特定部502は、具体的には、ダーティ管理テーブル400に基づいて、複数の第1領域のうち、ダーティである第1領域を計数することにより、データ更新がある第1領域の数を特定する。これにより、特定部502は、第1同期処理を実施するか、または、第2同期処理を実施するかを決定する指針となる情報を得ることができ、決定部503で利用可能にすることができる。
【0058】
決定部503は、特定した量と、第1処理時間と、第2処理時間とに基づいて、複数の第1領域のうち、データ更新がある第1領域を不揮発性記憶領域との間で個別に同期するか、または、第2領域を不揮発性記憶領域との間で一括して同期するかを決定する。
【0059】
決定部503は、例えば、特定した量が、第1処理時間と第2処理時間とに基づく閾値未満である場合、複数の第1領域のうち、データ更新がある第1領域を不揮発性記憶領域との間で個別に同期すると決定する。一方で、決定部503は、例えば、特定した量が、第1処理時間と第2処理時間とに基づく閾値以上である場合、第2領域を不揮発性記憶領域との間で一括して同期すると決定する。
【0060】
決定部503は、具体的には、第2処理時間を、第1処理時間で除算した値を、閾値に設定する。そして、決定部503は、具体的には、特定した数が、設定した閾値未満である場合、複数の第1領域のうち、データ更新がある第1領域を不揮発性記憶領域との間で個別に同期すると決定する。一方で、決定部503は、具体的には、特定した数が、設定した閾値以上である場合、第2領域を不揮発性記憶領域との間で一括して同期すると決定する。これにより、決定部503は、同期にかかる処理時間の低減化を図ることができる。
【0061】
決定部503は、具体的には、特定した数に、第1処理時間を乗算した値が、第2処理時間以上であるか否かを判定してもよい。そして、決定部503は、具体的には、第2処理時間未満であれば、データ更新がある第1領域を不揮発性記憶領域との間で個別に同期すると決定する。一方で、決定部503は、具体的には、第2処理時間以上であれば、第2領域を不揮発性記憶領域との間で一括して同期すると決定する。これにより、決定部503は、同期にかかる処理時間の低減化を図ることができる。
【0062】
実施部504は、複数の第1領域のうち、データ更新がある第1領域を不揮発性記憶領域との間で個別に同期すると決定した場合、データ更新がある第1領域を不揮発性記憶領域との間で個別に同期する第1同期処理を実施する。これにより、実施部504は、適切に第1領域を不揮発性記憶領域との間で個別に同期することができ、第1領域の記憶内容を保護することができる。また、実施部504は、比較的短い処理時間で、第1領域を不揮発性記憶領域との間で個別に同期することができる。
【0063】
実施部504は、第2領域を不揮発性記憶領域との間で一括して同期すると決定した場合、第2領域を不揮発性記憶領域との間で一括して同期する第2同期処理を実施する。これにより、実施部504は、適切に第2領域を不揮発性記憶領域との間で個別に同期することができ、第2領域の記憶内容を保護することができる。また、実施部504は、比較的短い処理時間で、第2領域に含まれるデータ更新がある第1領域を不揮発性記憶領域との間で同期することができる。
【0064】
実施部504は、第1同期処理を実施した場合、第1同期処理にかかる所要時間に基づいて、第1処理時間を示す第1情報を更新する。実施部504は、例えば、第1同期処理を実施した場合、第1同期処理にかかった所要時間を計測する。そして、実施部504は、例えば、計測した所要時間を利用して、第1処理時間を統計的に算出し、第1処理時間を示す第1情報を作成または更新する。これにより、実施部504は、第1情報が第1処理時間を精度よく示すようにすることができ、決定部503の決定精度の向上を図ることができる。
【0065】
実施部504は、第2同期処理を実施した場合、第2同期処理にかかる所要時間に基づいて、第2処理時間を示す第2情報を更新する。実施部504は、例えば、第2同期処理を実施した場合、第2同期処理にかかった所要時間を計測する。そして、実施部504は、例えば、計測した所要時間を利用して、第2処理時間を統計的に算出し、第2処理時間を示す第2情報を作成または更新する。これにより、実施部504は、第2情報が第2処理時間を精度よく示すようにすることができ、決定部503の決定精度の向上を図ることができる。
【0066】
出力部505は、少なくともいずれかの機能部の処理結果を出力する。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークI/F205による外部装置への送信、または、DRAM204などの記憶領域への記憶である。これにより、出力部505は、少なくともいずれかの機能部の処理結果をユーザに通知可能にし、情報処理装置100の利便性の向上を図ることができる。出力部505は、例えば、第1同期処理を完了した通知を出力する。出力部505は、例えば、第2同期処理を完了した通知を出力する。
【0067】
(情報処理装置100の動作例)
次に、図6図10を用いて、情報処理装置100の動作例について説明する。まず、図6を用いて、パーシステントメモリ203のデータ構造の一例について説明する。
【0068】
図6は、パーシステントメモリ203のデータ構造の一例を示す説明図である。図6において、パーシステントメモリ203は、4KiBの領域601を512個含む2MiBの領域600を複数含む。領域601は、CPUキャッシュ202に含まれるページの記憶内容の保存先となり得る。領域600は、CPUキャッシュ202に含まれる最大512個のページの記憶内容の保存先となり得る。
【0069】
領域601は、4KiB個別同期処理により、CPUキャッシュ202に含まれるいずれかのページとの間で個別に同期可能である。領域600は、2MiB一括同期処理により、CPUキャッシュ202に含まれる512個のページとの間で一括して同期可能である。次に、図7を用いて、OS300が、ダーティを管理する一例について説明する。
【0070】
図7は、ダーティを管理する一例を示す説明図である。図7において、アプリケーション301は、CPUキャッシュ202のページ700の記憶内容を更新したとする。OS300は、CPUキャッシュ202のページ700の記憶内容が更新されたことを検出する。OS300は、例えば、更新通知をアプリケーション301から受信することにより、CPUキャッシュ202のページ700の記憶内容が更新されたことを検出する。
【0071】
OS300は、CPUキャッシュ202のページ700の記憶内容が更新されたことを検出すると、ページ700がダーティであることを示すフラグ情報を、ページ700に対応する領域601に対応付けて管理する。OS300は、例えば、ページ700に対応する領域601が、1番目の領域600の先頭から8KiB目に存在する領域601であれば、アドレス「8KiB」に、ページ700がダーティであることを示すフラグ情報「1」を対応付けて管理する。
【0072】
OS300は、具体的には、DRAM204に記憶された、1番目の領域600に対応するダーティ管理テーブル400において、アドレス「8KiB」に対応付けられたフラグ情報を「1」に更新する。これにより、OS300は、4KiB個別同期処理と2MiB一括同期処理とのいずれの同期処理を実施することが、処理時間の観点から好ましいかを判断する指針を記録しておくことができる。次に、図8を用いて、OS300が、4KiB個別同期処理と2MiB一括同期処理とのいずれの同期処理を実施するかを決定する一例について説明する。
【0073】
図8は、いずれの同期処理を実施するかを決定する一例を示す説明図である。図8において、OS300は、2MiB一括同期処理の処理時間Aと、4KiB個別同期処理の処理時間Bとに基づいて、領域600ごとに、4KiB個別同期処理と、2MiB一括同期処理とのいずれの同期処理を実施するかを決定する。処理時間Aは、例えば、処理時間Bの91倍である。処理時間Aは、具体的には、1.7ミリ秒である。処理時間Bは、具体的には、18マイクロ秒である。
【0074】
OS300は、例えば、領域600ごとに、当該領域600に対応するダーティ管理テーブル400における、フラグ情報「1」の数Num_dirtyを計数し、更新済みページ数Xに設定する。そして、OS300は、例えば、領域600ごとに、処理時間A≦処理時間B×更新済みページ数Xであるか否かを判定する。
【0075】
ここで、OS300は、例えば、いずれかの領域600について、処理時間A≦処理時間B×更新済みページ数Xであれば、当該領域600に対応する512個のページに対して、2MiB一括同期処理を実施すると決定する。一方で、OS300は、例えば、いずれかの領域600について、処理時間A≦処理時間B×更新済みページ数Xでなければ、当該領域600に対応する512個のページのうち、ダーティなそれぞれのページに対して、4KiB個別同期処理を実施すると決定する。
【0076】
これにより、OS300は、ダーティなページを領域600に同期する際にかかる処理時間の低減化を図ることができる。次に、図9を用いて、OS300が、いずれかの領域600に対応する512個のページのうち、ダーティなそれぞれのページに対して個別に、4KiB個別同期処理を実施する一例について説明する。
【0077】
図9は、4KiB個別同期処理を実施する一例を示す説明図である。図9において、OS300は、1番目の領域600に対応する512個のページのうち、ダーティなそれぞれのページに対して個別に、4KiB個別同期処理を実施すると決定したとする。
【0078】
OS300は、1番目の領域600に対応する512個のページのうち、ダーティなそれぞれのページに対して個別に、4KiB個別同期処理を実施することにより、当該ページの記憶内容を、領域600に保存する。ここで、OS300は、DRAM204に記憶された、1番目の領域600に対応するダーティ管理テーブル400において、記憶内容を保存済みのページのアドレスに対応付けられた、フラグ情報を「0」に初期化する。
【0079】
これにより、OS300は、処理時間の観点から、2MiB一括同期処理ではなく、4KiB個別同期処理を実施することが好ましい場合、4KiB個別同期処理を実施することができ、処理時間の低減化を図ることができる。OS300は、例えば、いずれかの領域600に対応する512個のページのうち、ダーティなページが1個であれば、512個のページに対して2MiB一括同期処理を実施する場合に比べて、91倍の高速化を図ることができる。次に、図10を用いて、OS300が、いずれかの領域600に対応する512個のページに対して、2MiB一括同期処理を実施する一例について説明する。
【0080】
図10は、2MiB一括同期処理を実施する一例を示す説明図である。図10において、OS300は、1番目の領域600に対応する512個のページに対して、2MiB一括同期処理を実施すると決定したとする。
【0081】
OS300は、1番目の領域600に対応する512個のページに対して、2MiB一括同期処理を実施することにより、512個のページの記憶内容を、領域600に保存する。ここで、OS300は、DRAM204に記憶された、1番目の領域600に対応するダーティ管理テーブル400において、記憶内容を保存済みのページのアドレスに対応付けられた、フラグ情報を「0」に初期化する。
【0082】
これにより、OS300は、処理時間の観点から、2MiB一括同期処理を実施することが好ましい場合、2MiB一括同期処理を実施することができ、処理時間の低減化を図ることができる。OS300は、例えば、いずれかの領域600に対応する512個のページのうち、ダーティなページが91個以上であれば、512個のページに対して4KiB個別同期処理を実施する場合に比べて、処理時間の低減化を図ることができる。
【0083】
ここでは、OS300が、いずれかの領域600に対応する512個のページのうち、ダーティなすべてのページに対して個別に、4KiB個別同期処理を実施する場合について説明したが、これに限らない。例えば、OS300が、いずれかの領域600に対応する512個のページのうち、ダーティな一部のページに対して個別に、4KiB個別同期処理を実施する場合があってもよい。
【0084】
(管理処理手順)
次に、図11を用いて、情報処理装置100が実行する、管理処理手順の一例について説明する。管理処理は、例えば、図2に示したCPU201と、DRAM204などの記憶領域と、ネットワークI/F205とによって実現される。
【0085】
図11は、管理処理手順の一例を示すフローチャートである。図11において、情報処理装置100は、アプリケーション301によるCPUキャッシュ202に含まれるいずれかのページに対するデータ更新を検出する(ステップS1101)。
【0086】
情報処理装置100は、ダーティ管理テーブル400を参照して、CPUキャッシュ202に含まれる上記データ更新があった更新対象のページがダーティであるか否かを判定する(ステップS1102)。ここで、ダーティではない場合(ステップS1102:No)、情報処理装置100は、ステップS1103の処理に移行する。一方で、ダーティである場合(ステップS1102:Yes)、情報処理装置100は、管理処理を終了する。
【0087】
ステップS1103では、情報処理装置100は、更新済みページ数Xをインクリメントする(ステップS1103)。次に、情報処理装置100は、ダーティ管理テーブル400を利用して、更新対象のページをダーティに設定する(ステップS1104)。そして、情報処理装置100は、管理処理を終了する。これにより、情報処理装置100は、ダーティなページを適切に管理することができる。
【0088】
(同期処理手順)
次に、図12を用いて、情報処理装置100が実行する、同期処理手順の一例について説明する。同期処理は、例えば、図2に示したCPU201と、DRAM204などの記憶領域と、ネットワークI/F205とによって実現される。
【0089】
図12は、同期処理手順の一例を示すフローチャートである。図12において、情報処理装置100は、データ同期のトリガーを検出する(ステップS1201)。次に、情報処理装置100は、更新済みページ数Xを取得する(ステップS1202)。
【0090】
そして、情報処理装置100は、A≦B×Xであるか否かを判定する(ステップS1203)。ここで、A≦B×Xである場合(ステップS1203:Yes)、情報処理装置100は、ステップS1204の処理に移行する。一方で、A≦B×Xではない場合(ステップS1203:No)、情報処理装置100は、ステップS1205の処理に移行する。
【0091】
ステップS1204では、情報処理装置100は、2MiB一括同期処理を実施する(ステップS1204)。そして、情報処理装置100は、同期処理を終了する。
【0092】
ステップS1205では、情報処理装置100は、4KiB個別同期処理を実施する(ステップS1205)。そして、情報処理装置100は、同期処理を終了する。これにより、情報処理装置100は、処理時間を低減化しつつ、CPUキャッシュ202に含まれるダーティなページを、パーシステントメモリ203との間で同期することができる。
【0093】
以上説明したように、情報処理装置100によれば、キャッシュ記憶領域に含まれ、不揮発性記憶領域との間でそれぞれ個別に同期可能な複数の第1領域のうち、データ更新がある第1領域の量を特定することができる。情報処理装置100によれば、第1領域と不揮発性記憶領域との間の同期にかかる第1処理時間を特定することができる。情報処理装置100によれば、不揮発性記憶領域との間で一括して同期可能な複数の第1領域で形成される第2領域と不揮発性記憶領域との間の同期にかかる第2処理時間とを特定することができる。情報処理装置100によれば、特定した量と、第1処理時間と、第2処理時間とに基づいて、データ更新がある第1領域を不揮発性記憶領域との間で個別に同期するか、または、第2領域を不揮発性記憶領域との間で一括して同期するかを決定することができる。これにより、情報処理装置100は、同期にかかる処理時間の低減化を図ることができる。
【0094】
情報処理装置100によれば、複数の第1領域のそれぞれの第1領域に対するデータ更新の有無を示す情報を取得することができる。情報処理装置100によれば、取得した情報に基づいて、複数の第1領域のうち、データ更新がある第1領域の量を特定することができる。これにより、情報処理装置100は、データ更新がある第1領域を適切に管理することができ、データ更新がある第1領域の量を特定可能にすることができる。
【0095】
情報処理装置100によれば、特定した量が、第1処理時間と第2処理時間とに基づく閾値未満である場合、複数の第1領域のうち、データ更新がある第1領域を不揮発性記憶領域との間で個別に同期すると決定することができる。情報処理装置100によれば、特定した量が、第1処理時間と第2処理時間とに基づく閾値以上である場合、第2領域を不揮発性記憶領域との間で一括して同期すると決定することができる。これにより、情報処理装置100は、同期にかかる処理時間を精度よく低減することができる。
【0096】
情報処理装置100によれば、データ更新がある第1領域の数に第1処理時間を乗算した値が、第2処理時間未満である場合、複数の第1領域のうち、データ更新がある第1領域を不揮発性記憶領域との間で個別に同期すると決定することができる。情報処理装置100によれば、データ更新がある第1領域の数に第1処理時間を乗算した値が、第2処理時間以上である場合、第2領域を不揮発性記憶領域との間で一括して同期すると決定することができる。これにより、情報処理装置100は、同期にかかる処理時間を精度よく見積もり、比較的短い処理時間で同期可能にすることができる。
【0097】
情報処理装置100によれば、複数の第1領域のうち、データ更新がある第1領域を不揮発性記憶領域との間で個別に同期すると決定した場合、データ更新がある第1領域を不揮発性記憶領域との間で個別に同期する第1同期処理を実施することができる。情報処理装置100によれば、第2領域を不揮発性記憶領域との間で一括して同期すると決定した場合、第2領域を不揮発性記憶領域との間で一括して同期する第2同期処理を実施することができる。これにより、情報処理装置100は、同期を実現することができる。
【0098】
情報処理装置100によれば、第1同期処理を実施した場合、第1同期処理にかかる所要時間に基づいて、第1処理時間を示す第1情報を更新することができる。情報処理装置100によれば、第2同期処理を実施した場合、第2同期処理にかかる所要時間に基づいて、第2処理時間を示す第2情報を更新することができる。これにより、情報処理装置100は、第1処理時間と、第2処理時間とを精度よく特定可能にすることができる。
【0099】
情報処理装置100によれば、特定する処理、決定する処理、および、実施する処理を、OS上で実行することができる。これにより、情報処理装置100は、適切に同期を制御可能にすることができる。
【0100】
情報処理装置100によれば、不揮発性記憶領域に、パーシステントメモリを採用することができる。これにより、情報処理装置100は、パーシステントメモリを含む場合に適用することができる。
【0101】
情報処理装置100によれば、第1領域に、キャッシュ記憶領域に含まれるページを採用することができる。これにより、情報処理装置100は、ページ単位で同期可能なシステムを実現することができる。
【0102】
なお、本実施の形態で説明した情報処理方法は、予め用意されたプログラムをPCやワークステーションなどのコンピュータで実行することにより実現することができる。本実施の形態で説明した情報処理プログラムは、コンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。記録媒体は、ハードディスク、フレキシブルディスク、CD(Compact Disc)-ROM、MO(Magneto Optical disc)、DVD(Digital Versatile Disc)などである。また、本実施の形態で説明した情報処理プログラムは、インターネットなどのネットワークを介して配布してもよい。
【0103】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0104】
(付記1)キャッシュ記憶領域に含まれ、不揮発性記憶領域との間でそれぞれ個別に同期可能な複数の第1領域のうち、データ更新がある第1領域の量を特定し、
特定した前記量と、前記第1領域と前記不揮発性記憶領域との間の同期にかかる第1処理時間と、前記不揮発性記憶領域との間で一括して同期可能な前記複数の第1領域で形成される第2領域と前記不揮発性記憶領域との間の同期にかかる第2処理時間とに基づいて、前記複数の第1領域のうち、前記データ更新がある第1領域を前記不揮発性記憶領域との間で個別に同期するか、または、前記第2領域を前記不揮発性記憶領域との間で一括して同期するかを決定する、
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
【0105】
(付記2)前記特定する処理は、
前記複数の第1領域のそれぞれの第1領域に対するデータ更新の有無を示す情報を取得し、取得した前記情報に基づいて、前記複数の第1領域のうち、前記データ更新がある第1領域の量を特定する、ことを特徴とする付記1に記載の情報処理プログラム。
【0106】
(付記3)前記決定する処理は、
特定した前記量が、前記第1処理時間と前記第2処理時間とに基づく閾値未満である場合、前記複数の第1領域のうち、前記データ更新がある第1領域を前記不揮発性記憶領域との間で個別に同期すると決定し、特定した前記量が、前記第1処理時間と前記第2処理時間とに基づく前記閾値以上である場合、前記第2領域を前記不揮発性記憶領域との間で一括して同期すると決定する、ことを特徴とする付記1または2に記載の情報処理プログラム。
【0107】
(付記4)前記量は、前記データ更新がある第1領域の数であり、
前記決定する処理は、
前記データ更新がある第1領域の数に前記第1処理時間を乗算した値が、前記第2処理時間未満である場合、前記複数の第1領域のうち、前記データ更新がある第1領域を前記不揮発性記憶領域との間で個別に同期すると決定し、前記データ更新がある第1領域の数に前記第1処理時間を乗算した値が、前記第2処理時間以上である場合、前記第2領域を前記不揮発性記憶領域との間で一括して同期すると決定する、ことを特徴とする付記1~3のいずれか一つに記載の情報処理プログラム。
【0108】
(付記5)前記複数の第1領域のうち、前記データ更新がある第1領域を前記不揮発性記憶領域との間で個別に同期すると決定した場合、前記データ更新がある第1領域を前記不揮発性記憶領域との間で個別に同期する第1同期処理を実施し、
前記第2領域を前記不揮発性記憶領域との間で一括して同期すると決定した場合、前記第2領域を前記不揮発性記憶領域との間で一括して同期する第2同期処理を実施する、
処理を前記コンピュータに実行させることを特徴とする付記1~4のいずれか一つに記載の情報処理プログラム。
【0109】
(付記6)前記第1同期処理を実施した場合、前記第1同期処理にかかる所要時間に基づいて、前記第1処理時間を示す第1情報を更新し、
前記第2同期処理を実施した場合、前記第2同期処理にかかる所要時間に基づいて、前記第2処理時間を示す第2情報を更新する、
処理を前記コンピュータに実行させ、
前記決定する処理は、
特定した前記量と、前記第1情報が示す前記第1処理時間と、前記第2情報が示す前記第2処理時間とに基づいて、前記複数の第1領域のうち、前記データ更新がある第1領域を前記不揮発性記憶領域との間で個別に同期するか、または、前記第2領域を前記不揮発性記憶領域との間で一括して同期するかを決定する、ことを特徴とする付記5に記載の情報処理プログラム。
【0110】
(付記7)前記特定する処理、および、前記決定する処理は、前記コンピュータが有するOperating System上で実行される、ことを特徴とする付記1~6のいずれか一つに記載の情報処理プログラム。
【0111】
(付記8)前記不揮発性記憶領域は、永続性記憶領域である、ことを特徴とする付記1~7のいずれか一つに記載の情報処理プログラム。
【0112】
(付記9)前記第1領域は、前記キャッシュ記憶領域に含まれるページである、ことを特徴とする付記1~8のいずれか一つに記載の情報処理プログラム。
【0113】
(付記10)キャッシュ記憶領域に含まれ、不揮発性記憶領域との間でそれぞれ個別に同期可能な複数の第1領域のうち、データ更新がある第1領域の量を特定し、
特定した前記量と、前記第1領域と前記不揮発性記憶領域との間の同期にかかる第1処理時間と、前記不揮発性記憶領域との間で一括して同期可能な前記複数の第1領域で形成される第2領域と前記不揮発性記憶領域との間の同期にかかる第2処理時間とに基づいて、前記複数の第1領域のうち、前記データ更新がある第1領域を前記不揮発性記憶領域との間で個別に同期するか、または、前記第2領域を前記不揮発性記憶領域との間で一括して同期するかを決定する、
処理をコンピュータが実行することを特徴とする情報処理方法。
【0114】
(付記11)キャッシュ記憶領域に含まれ、不揮発性記憶領域との間でそれぞれ個別に同期可能な複数の第1領域のうち、データ更新がある第1領域の量を特定し、
特定した前記量と、前記第1領域と前記不揮発性記憶領域との間の同期にかかる第1処理時間と、前記不揮発性記憶領域との間で一括して同期可能な前記複数の第1領域で形成される第2領域と前記不揮発性記憶領域との間の同期にかかる第2処理時間とに基づいて、前記複数の第1領域のうち、前記データ更新がある第1領域を前記不揮発性記憶領域との間で個別に同期するか、または、前記第2領域を前記不揮発性記憶領域との間で一括して同期するかを決定する、
制御部を有することを特徴とする情報処理装置。
【符号の説明】
【0115】
100 情報処理装置
110 キャッシュ記憶領域
111 第1領域
112 第2領域
120 不揮発性記憶領域
200 バス
201 CPU
202 CPUキャッシュ
203 パーシステントメモリ
204 DRAM
205 ネットワークI/F
210 ネットワーク
300 OS
301 アプリケーション
400 ダーティ管理テーブル
500 記憶部
501 取得部
502 特定部
503 決定部
504 実施部
505 出力部
600,601 領域
700 ページ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12