特許第6296304号(P6296304)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ ▲ホア▼▲ウェイ▼技術有限公司の特許一覧

特許6296304共有仮想メモリ・ページの管理モードを決定するための方法および関連装置
<>
  • 特許6296304-共有仮想メモリ・ページの管理モードを決定するための方法および関連装置 図000002
  • 特許6296304-共有仮想メモリ・ページの管理モードを決定するための方法および関連装置 図000003
  • 特許6296304-共有仮想メモリ・ページの管理モードを決定するための方法および関連装置 図000004
  • 特許6296304-共有仮想メモリ・ページの管理モードを決定するための方法および関連装置 図000005
  • 特許6296304-共有仮想メモリ・ページの管理モードを決定するための方法および関連装置 図000006
  • 特許6296304-共有仮想メモリ・ページの管理モードを決定するための方法および関連装置 図000007
  • 特許6296304-共有仮想メモリ・ページの管理モードを決定するための方法および関連装置 図000008
  • 特許6296304-共有仮想メモリ・ページの管理モードを決定するための方法および関連装置 図000009
  • 特許6296304-共有仮想メモリ・ページの管理モードを決定するための方法および関連装置 図000010
  • 特許6296304-共有仮想メモリ・ページの管理モードを決定するための方法および関連装置 図000011
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6296304
(24)【登録日】2018年3月2日
(45)【発行日】2018年3月20日
(54)【発明の名称】共有仮想メモリ・ページの管理モードを決定するための方法および関連装置
(51)【国際特許分類】
   G06F 15/173 20060101AFI20180312BHJP
   G06F 12/08 20160101ALI20180312BHJP
   G06F 12/10 20160101ALI20180312BHJP
【FI】
   G06F15/173 665Z
   G06F12/08 551C
   G06F12/10 557
   G06F12/08 543B
【請求項の数】16
【全頁数】38
(21)【出願番号】特願2015-549953(P2015-549953)
(86)(22)【出願日】2013年8月6日
(65)【公表番号】特表2016-502213(P2016-502213A)
(43)【公表日】2016年1月21日
(86)【国際出願番号】CN2013080863
(87)【国際公開番号】WO2014101423
(87)【国際公開日】20140703
【審査請求日】2015年8月18日
(31)【優先権主張番号】201210572056.5
(32)【優先日】2012年12月25日
(33)【優先権主張国】CN
(73)【特許権者】
【識別番号】504277388
【氏名又は名称】▲ホア▼▲ウェイ▼技術有限公司
【氏名又は名称原語表記】HUAWEI TECHNOLOGIES CO.,LTD.
(74)【代理人】
【識別番号】100146835
【弁理士】
【氏名又は名称】佐伯 義文
(74)【代理人】
【識別番号】100140534
【弁理士】
【氏名又は名称】木内 敬二
(72)【発明者】
【氏名】林 ▲キン▼天
(72)【発明者】
【氏名】朱 望▲ビン▼
(72)【発明者】
【氏名】▲顔▼ 友▲リアン▼
(72)【発明者】
【氏名】王 卓立
(72)【発明者】
【氏名】史 ▲ジン▼浩
【審査官】 清木 泰
(56)【参考文献】
【文献】 特開平10−320272(JP,A)
【文献】 特開平09−185550(JP,A)
【文献】 特開2001−175619(JP,A)
【文献】 特表2009−500705(JP,A)
【文献】 特開2011−065650(JP,A)
【文献】 中国特許出願公開第1149736(CN,A)
【文献】 建部修見,外2名,PCクラスタにおけるTDLを用いたOpenMPコンパイラ,情報処理学会研究報告,日本,社団法人情報処理学会,2001年 7月27日,第2001巻,第77号,(2001-HPC-87),Pages:123〜128
【文献】 大石幸雄,外3名,NUMAマルチプロセッサにおけるメモリ管理を考慮した2レベルスケジューリング,情報処理学会研究報告,日本,社団法人情報処理学会,1995年 8月23日,第95巻,第79号,(95-OS-70),Pages:97〜104
(58)【調査した分野】(Int.Cl.,DB名)
G06F15/16−15/177
G06F12/08−12/128
G06F12/00−12/06
G06F13/16−13/18
(57)【特許請求の範囲】
【請求項1】
共有仮想メモリ・ページの管理モードを決定するための方法であって、
前記共有仮想メモリ・ページに対するプロセスに基づいて行ったアクセスのアクセス特性を監視するステップと、
前記監視されるアクセス特性が第1の設定条件を満たし、前記共有仮想メモリ・ページの現在の管理モードが分散共有メモリ・モードである場合に、前記共有仮想メモリ・ページの前記管理モードを共有物理メモリ・モードに変更するステップと、
を含み、
前記第1の設定条件は、アクセス頻度が第1の閾値以下であること、アクセス・モードが読書きアクセスもしくは書込みアクセスであること、前記書込みアクセスの頻度が第3の閾値より大きいこと、または、前記書込みアクセスの割合が第4の閾値より大きいことを含む、
方法。
【請求項2】
前記監視されるアクセス特性が第2の設定条件を満たし、前記共有仮想メモリ・ページの前記現在の管理モードが共有物理メモリ・モードである場合、前記共有仮想メモリ・ページの前記管理モードを分散共有メモリ・モードに変更するステップをさらに含み、
前記第2の設定条件は、前記アクセス頻度が第2の閾値より大きいこと、前記アクセス・モードが読取専用アクセスであること、読取アクセスの頻度が第5の閾値より大きいこと、または、前記読取アクセスの割合が第6の閾値より大きいことを含み、前記第2の閾値が前記第1の閾値以上である、
請求項1に記載の方法。
【請求項3】
前記共有仮想メモリ・ページの前記管理モードを分散共有メモリ・モードに変更するステップは、
第1の物理メモリ空間において、第1の物理メモリ・ページを前記共有仮想メモリ・ページに割り当てるステップと、
第2の物理メモリ・ページに格納されたデータを前記第1の物理メモリ・ページにコピーするステップであって、前記第2の物理メモリ・ページは共有物理メモリ空間に属し、前記第2の物理メモリ・ページは、前記共有仮想メモリ・ページから現在マップされている物理メモリ・ページであるステップと、
前記共有仮想メモリ・ページと前記第1の物理メモリ・ページの間のマッピング関係を生成するステップと、
前記分散共有メモリ・モードを前記共有仮想メモリ・ページの前記管理モードとして記録するステップと、
を含む、請求項2に記載の方法。
【請求項4】
前記共有仮想メモリ・ページの前記管理モードを共有物理メモリ・モードに変更するステップは、
前記共有仮想メモリ・ページと第3の物理メモリ・ページの間のマッピング関係を生成するステップであって、前記第3の物理メモリ・ページは共有物理メモリ空間に属するステップと、
前記共有物理メモリ・モードを前記共有仮想メモリ・ページの前記管理モードとして記録するステップと、
を含む、請求項1乃至3の何れか1項に記載の方法。
【請求項5】
監視ユニットによって監視されるアクセス特性が第1の設定条件を満たし、前記共有仮想メモリ・ページの現在の管理モードが分散共有メモリ・モードである場合、第4の物理メモリ・ページに格納されたデータ内の変更されたデータを第3の物理メモリ・ページに同期するステップであって、前記第4の物理メモリ・ページは前記共有仮想メモリ・ページから以前にマップされた物理メモリ・ページであるステップをさらに含む、請求項4に記載の方法。
【請求項6】
前記共有仮想メモリ・ページに対するプロセスに基づいて行ったアクセスのアクセス特性を監視するステップは、前記共有仮想メモリ・ページにアクセスするための複数のプロセスごとにそれぞれ監視されるアクセス特性の平均、加重平均、総和、または加重和を、前記共有仮想メモリ・ページに対するプロセスに基づいて行ったアクセスのアクセス特性として使用するステップ、または、前記共有仮想メモリ・ページにアクセスするための前記複数のプロセスのうちの1つのプロセスについて監視されるアクセス特性を、前記共有仮想メモリ・ページに対するプロセスに基づいて行ったアクセスのアクセス特性として使用するステップを含み、
前記共有仮想メモリ・ページの前記管理モードを共有物理メモリ・モードに変更するステップは、前記監視されるアクセス特性が前記第1の設定条件を満たし、前記共有仮想メモリ・ページに対する前記複数のプロセスに対応する前記現在の管理モードが分散共有メモリ・モードである場合、前記共有仮想メモリ・ページに対する前記複数のプロセスに対応する前記管理モードを共有物理メモリ・モードに変更するステップを含む、請求項2に記載の方法。
【請求項7】
前記共有仮想メモリ・ページに対するプロセスに基づいて行ったアクセスのアクセス特性を監視するステップは、前記共有仮想メモリ・ページにアクセスするための複数のプロセスごとにそれぞれ監視されるアクセス特性の平均、加重平均、総和、または加重和を、前記共有仮想メモリ・ページに対するプロセスに基づいて行ったアクセスのアクセス特性として使用するステップ、または、前記共有仮想メモリ・ページにアクセスするための前記複数のプロセスのうちの1つのプロセスについて監視されるアクセス特性を、前記共有仮想メモリ・ページに対するプロセスに基づいて行ったアクセスのアクセス特性として使用するステップを含み、
前記共有仮想メモリ・ページの前記管理モードを分散共有メモリ・モードに変更するステップは、前記監視されるアクセス特性が前記第2の設定条件を満たし、前記共有仮想メモリ・ページに対する前記複数のプロセスに対応する前記現在の管理モードが共有物理メモリ・モードである場合、前記共有仮想メモリ・ページに対する前記複数のプロセスに対応する前記管理モードを分散共有メモリ・モードに変更するステップを含む、請求項2に記載の方法。
【請求項8】
共有仮想メモリ・ページの管理モードを決定するための装置であって、
前記共有仮想メモリ・ページに対するプロセスに基づいて行ったアクセスのアクセス特性を監視するように構成された監視ユニットと、
前記監視ユニットに接続され、前記監視ユニットにより監視される前記アクセス特性が第1の設定条件を満たし、前記共有仮想メモリ・ページの現在の管理モードが分散共有メモリ・モードである場合に、前記共有仮想メモリ・ページの前記管理モードを共有物理メモリ・モードに変更するように構成された、第1の再マッピング・ユニットと、
を備え、
前記第1の設定条件は、アクセス頻度が第1の閾値以下であること、アクセス・モードが読書きアクセスもしくは書込みアクセスであること、前記書込みアクセスの頻度が第3の閾値より大きいこと、または、前記書込みアクセスの割合が第4の閾値より大きいことを含む、
装置。
【請求項9】
前記監視ユニットに接続され、前記監視ユニットにより監視される前記アクセス特性が第2の設定条件を満たし、前記共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合に、前記共有仮想メモリ・ページの前記管理モードを分散共有メモリ・モードに変更するように構成された、第2の再マッピング・ユニットをさらに備え、
前記第2の設定条件は、前記アクセス頻度が第2の閾値より大きいこと、前記アクセス・モードが読取専用アクセスであること、読取アクセスの頻度が第5の閾値より大きいこと、または、前記読取アクセスの割合が第6の閾値より大きいことを含み、前記第2の閾値が前記第1の閾値以上である、
請求項8に記載の装置。
【請求項10】
前記第2の再マッピング・ユニットは特に、前記監視ユニットにより監視される前記アクセス特性が前記第2の設定条件を満たし、前記共有仮想メモリ・ページの前記現在の管理モードが共有物理メモリ・モードである場合、第1の物理メモリ空間において、第1の物理メモリ・ページを前記共有仮想メモリ・ページに割り当て、第2の物理メモリ・ページに格納されたデータを前記第1の物理メモリ・ページにコピーし、前記共有仮想メモリ・ページと前記第1の物理メモリ・ページの間のマッピング関係を生成し、前記分散共有メモリ・モードを前記共有仮想メモリ・ページの前記管理モードとして記録するように構成され、前記第2の物理メモリ・ページは共有物理メモリ空間に属し、前記第2の物理メモリ・ページは、前記共有仮想メモリ・ページから現在マップされている物理メモリ・ページである、請求項9に記載の装置。
【請求項11】
前記第1の再マッピング・ユニットは特に、前記監視ユニットにより監視される前記アクセス特性が第1の設定条件を満たし、前記共有仮想メモリ・ページの前記現在の管理モードが分散共有メモリ・モードである場合に、前記共有仮想メモリ・ページと第3の物理メモリ・ページの間のマッピング関係を生成し、前記共有物理メモリ・モードを前記共有仮想メモリ・ページの前記管理モードとして記録するように構成され、前記第3の物理メモリ・ページは共有物理メモリ空間に属する、請求項8乃至10の何れか1項に記載の装置。
【請求項12】
前記第1の再マッピング・ユニットはさらに、前記監視ユニットにより監視される前記アクセス特性が第1の設定条件を満たし、前記共有仮想メモリ・ページの前記現在の管理モードが分散共有メモリ・モードである場合に、第4の物理メモリ・ページに格納されたデータ内の変更されたデータを第3の物理メモリ・ページに同期するように構成され、前記第3の物理メモリ・ページは前記共有物理メモリ空間に属し、前記第4の物理メモリ・ページは前記共有仮想メモリ・ページから以前にマップされた物理メモリ・ページである、請求項11に記載の装置。
【請求項13】
前記共有仮想メモリ・ページに対するプロセスに基づいて行ったアクセスのアクセス特性を監視するように構成された監視ユニットは、前記共有仮想メモリ・ページにアクセスするための複数のプロセスごとにそれぞれ監視されるアクセス特性の平均、加重平均、総和、または加重和を、前記共有仮想メモリ・ページに対するプロセスに基づいて行ったアクセスのアクセス特性として使用するか、または、前記共有仮想メモリ・ページにアクセスするための前記複数のプロセスのうちの1つのプロセスについて監視されるアクセス特性を、前記共有仮想メモリ・ページに対するプロセスに基づいて行ったアクセスのアクセス特性として使用し、
前記共有仮想メモリ・ページの前記管理モードを共有物理メモリ・モードに変更するように構成された第1の再マッピング・ユニットは、前記監視されるアクセス特性が前記第1の設定条件を満たし、前記共有仮想メモリ・ページに対する前記複数のプロセスに対応する前記現在の管理モードが分散共有メモリ・モードである場合、前記共有仮想メモリ・ページに対する前記複数のプロセスに対応する前記管理モードを共有物理メモリ・モードに変更するように構成されている、請求項8または9に記載の装置。
【請求項14】
前記共有仮想メモリ・ページに対するプロセスに基づいて行ったアクセスのアクセス特性を監視するように構成された監視ユニットは、前記共有仮想メモリ・ページにアクセスするための複数のプロセスごとにそれぞれ監視されるアクセス特性の平均、加重平均、総和、または加重和を、前記共有仮想メモリ・ページに対するプロセスに基づいて行ったアクセスのアクセス特性として使用するか、または、前記共有仮想メモリ・ページにアクセスするための前記複数のプロセスのうちの1つのプロセスについて監視されるアクセス特性を、前記共有仮想メモリ・ページに対するプロセスに基づいて行ったアクセスのアクセス特性として使用し、
前記共有仮想メモリ・ページの前記管理モードを分散共有メモリ・モードに変更するように構成された第2の再マッピング・ユニットは、前記監視されるアクセス特性が前記第2の設定条件を満たし、前記共有仮想メモリ・ページに対する前記複数のプロセスに対応する前記現在の管理モードが共有物理メモリ・モードである場合、前記共有仮想メモリ・ページに対する前記複数のプロセスに対応する前記管理モードを分散共有メモリ・モードに変更するように構成されている、請求項9に記載の装置。
【請求項15】
バスと、
前記バスに接続されたプロセッサと、
前記バスに接続されたメモリと、
を備え、
前記プロセッサは前記バスを使用して、共有仮想メモリ・ページに対するプロセスに基づいて行ったアクセスのアクセス特性を監視し、前記監視されるアクセス特性が第1の設定条件を満たし、前記共有仮想メモリ・ページの現在の管理モードが分散共有メモリ・モードである場合に、前記共有仮想メモリ・ページの前記管理モードを共有物理メモリ・モードに変更するための前記メモリ内のコードを呼び出し、
前記第1の設定条件は、アクセス頻度が第1の閾値以下であること、アクセス・モードが読書きアクセスもしくは書込みアクセスであること、前記書込みアクセスの頻度が第3の閾値より大きいこと、または、前記書込みアクセスの割合が第4の閾値より大きいことを含む、
コンピュータ・システム。
【請求項16】
バスと、
前記バスに接続されたプロセッサと、
前記バスに接続されたメモリと、
を備え、
前記プロセッサは前記バスを使用して、共有仮想メモリ・ページに対するプロセスに基づいて行ったアクセスのアクセス特性を監視し、前記監視されるアクセス特性が第2の設定条件を満たし、前記共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合には、前記共有仮想メモリ・ページの前記管理モードを分散共有メモリ・モードに変更するための前記メモリ内のコードを呼び出し、
前記第2の設定条件は、アクセス頻度が第2の閾値より大きいこと、アクセス・モードが読取専用アクセスであること、読取アクセスの頻度が第5の閾値より大きいこと、または、前記読取アクセスの割合が第6の閾値より大きいことを含む、
コンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータ技術の分野に関し、特に、共有仮想メモリ・ページの管理モードを決定するための方法および関連装置に関する。
【背景技術】
【0002】
Intel社の創始者の1人、ゴードン・ムーア(Gordon Moore)により提唱されたムーアの法則が、直近半世紀の半導体業界の発展と情報技術の進展速度を導いてきている。Intel社が開示しているように、ムーアの法則はこれから10年、依然として有効であろう。2022年には1.024×1012個以上のトランジスタが単一のチップに集積されることが予測されている。
【0003】
しかし、計算性能がクロック速度単体で高められる時期は過ぎ去っており、中央演算装置(CPU、Central Processing Unit)の性能向上は今や電力消費、相互接続遅延、および設計の複雑度のような物理法則により妨げられている。物理法則の妨げに起因して、シングル・コアからマルチコア(Multi−core、伝統的に8個より少ないコアを指す)への変更が不可避であり、または、メニーコア(Many−core)への変更すら不可避であって、これらはムーアの法則と上記3つの物理法則の間の相互作用の結果である。メニーコアは将来のCPUアーキテクチャの主要なトレンドであろう。
【0004】
マルチコア/メニーコア・プロセッサのシナリオでは、キャッシュ・コヒーレンスを可能とする必要があり、これはソフトウェア・キャッシュ・コヒーレンス機構またはハードウェア・キャッシュ・コヒーレンス機構により解決することができる。当該ソフトウェア・キャッシュ・コヒーレンス機構は主に、2つの可能なモード、即ち、分散共有メモリ(DSM、Distributed Shared Memory)モードと共有物理メモリ(SPM、Shared Physical Memory)モードに関連する。DSMモード/SPMモードを、非キャッシュ・コヒーレント(NCC、Non−Cache−Coherent)メニーコア・システムで適用して、キャッシュ・コヒーレンス問題を解決することができる。Intel社により開発されたシングル・チップ・クラウド・コンピュータ(SCC、Single−chip Cloud Computer)では、ソフトウェア管理キャッシュ・コヒーレンス(SMC、Software Managed Cache Coherence)プロトコルでSPMモードが採用されている。
【0005】
先行技術では、共有仮想メモリ・ページは、DSMモードまたはSPMモードを固定的に使用している。研究と実践の過程において、発明者は、幾つかの適用シナリオにおいて、共有仮想メモリ・ページがDSMモードをその管理モードとして固定的に使用する場合に、アクセス性能が現実の要件を良く満たすことができず、他の適用シナリオでは、当該共有仮想メモリ・ページがSPMモードをその管理モードとして固定的に使用する場合にも、アクセス性能が現実の要件を良く満たすことができないことを発見した。
【発明の概要】
【課題を解決するための手段】
【0006】
本発明の諸実施形態では、共有仮想メモリへのアクセス性能を高めることを目的として、共有仮想メモリ・ページの管理モードを決定するための方法および関連装置を提供する。
【0007】
第1の態様では、本発明は、共有仮想メモリ・ページの管理モードを決定するための方法であって、当該共有仮想メモリ・ページに対してプロセスが行ったアクセスのアクセス特性を監視するステップと、当該監視されるアクセス特性が第1の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードが分散共有メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを共有物理メモリ・モードに変更するステップとを含む方法を提供する。
【0008】
第1の態様を参照して、第1の可能な実装方式では、当該方法はさらに、当該監視されるアクセス特性が第2の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するステップを含む。
【0009】
第1の態様または第1の態様の第1の可能な実装方式を参照して、第2の可能な実装方式では、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するステップは、第1の物理メモリ空間において、第1の物理メモリ・ページを当該共有仮想メモリ・ページに割り当てるステップと、第2の物理メモリ・ページに格納されたデータを第1の物理メモリ・ページにコピーするステップであって、第2の物理メモリ・ページは共有物理メモリ空間に属し、第2の物理メモリ・ページは、当該共有仮想メモリ・ページから現在マップされている物理メモリ・ページであるステップと、当該共有仮想メモリ・ページと第1の物理メモリ・ページの間のマッピング関係を生成するステップと、当該分散共有メモリ・モードを当該共有仮想メモリ・ページの管理モードとして記録するステップとを含む。
【0010】
第1の態様、第1の態様の第1の可能な実装方式、または第1の態様の第2の可能な実装方式を参照して、第3の可能な実装方式では、第1の設定条件は、アクセス頻度が第1の閾値以下であること、アクセス・モードが読書きアクセスもしくは書込みアクセスであること、書込みアクセスの頻度が第3の閾値より大きいこと、または、書込みアクセスの割合が第4の閾値より大きいことを含む。
【0011】
第1の態様、第1の態様の第1の可能な実装方式、第1の態様の第2の可能な実装方式、または第1の態様の第3の可能な実装方式を参照して、第4の可能な実装方式では、第2の設定条件は、当該アクセス頻度が第2の閾値より大きいこと、当該アクセス・モードが読取専用アクセスであること、読取アクセスの頻度が第5の閾値より大きいこと、または、読取アクセスの割合が第6の閾値より大きいことを含み、第2の閾値は第1の閾値以上である。
【0012】
第1の態様、第1の態様の第1の可能な実装方式、第1の態様の第2の可能な実装方式、第1の態様の第3の可能な実装方式、または第1の態様の第4の可能な実装方式を参照して、第5の可能な実装方式では、当該共有仮想メモリ・ページの管理モードを共有物理メモリ・モードに変更するステップは、当該共有仮想メモリ・ページと第3の物理メモリ・ページの間のマッピング関係を生成するステップであって、第3の物理メモリ・ページは共有物理メモリ空間に属するステップと、当該共有物理メモリ・モードを当該共有仮想メモリ・ページの管理モードとして記録するステップであって、当該共有仮想メモリ・ページから以前にマップされた物理メモリ・ページに格納されたデータは不変のままであるステップとを含む。
【0013】
第1の態様、第1の態様の第1の可能な実装方式、第1の態様の第2の可能な実装方式、第1の態様の第3の可能な実装方式、または第1の態様の第4の可能な実装方式を参照して、第6の可能な実装方式では、当該共有仮想メモリ・ページの管理モードを共有物理メモリ・モードに変更するステップは、第4の物理メモリ・ページに格納されたデータ内の変更されたデータを第3の物理メモリ・ページに同期するステップと、当該共有仮想メモリ・ページと第3の物理メモリ・ページの間のマッピング関係を生成するステップであって、第3の物理メモリ・ページは共有物理メモリ空間に属するステップと、当該共有物理メモリ・モードを当該共有仮想メモリ・ページの管理モードとして記録するステップであって、第4の物理メモリ・ページは当該共有仮想メモリ・ページから以前にマップされた物理メモリ・ページであるステップとを含む。
【0014】
第1の態様または第1の態様の第1の可能な実装方式を参照して、第7の可能な実装方式では、当該プロセスが複数のプロセスを含むという条件で、監視されるアクセス特性が第1の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードが分散共有メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを共有物理メモリ・モードに変更するステップは、当該共有仮想メモリ・ページにアクセスする複数のプロセスごとにそれぞれ監視されるアクセス特性の平均、加重平均、総和、または加重和を、当該共有仮想メモリ・ページにアクセスする複数のプロセスの監視されるアクセス特性として使用するステップ、または、当該共有仮想メモリ・ページにアクセスする複数のプロセスのうち1つの監視されるアクセス特性を、当該共有仮想メモリ・ページにアクセスする複数のプロセスの監視されるアクセス特性として使用するステップと、当該共有仮想メモリ・ページに対する当該複数のプロセスにより行われたアクセスの監視されるアクセス特性が第1の条件を満たす場合、および、当該共有仮想メモリ・ページ上の当該複数のプロセスに対応する現在の管理モードが分散共有メモリ・モードである場合に、当該共有仮想メモリ・ページ上の当該複数のプロセスに対応する管理モードを共有物理メモリ・モードに変更するステップとを含む。
【0015】
第1の態様の第1の可能な実装方式を参照して、第8の可能な実装方式では、当該プロセスが複数のプロセスを含むという条件で、当該監視されるアクセス特性が第2の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するステップは、当該共有仮想メモリ・ページにアクセスする複数のプロセスごとにそれぞれ監視されるアクセス特性の平均、加重平均、総和、または加重和を、当該共有仮想メモリ・ページにアクセスする複数のプロセスの監視されるアクセス特性として使用するステップ、または、当該共有仮想メモリ・ページにアクセスする複数のプロセスのうち1つの監視されるアクセス特性を、当該共有仮想メモリ・ページにアクセスする複数のプロセスの監視されるアクセス特性として使用するステップと、当該共有仮想メモリ・ページに対する当該複数のプロセスにより行われたアクセスの監視されるアクセス特性が第2の条件を満たす場合、および、当該共有仮想メモリ・ページ上の当該複数のプロセスに対応する現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページ上の当該複数のプロセスに対応する管理モードを分散共有メモリ・モードに変更するステップとを含む。
【0016】
第2の態様では、本発明は、共有仮想メモリ・ページの管理モードを決定するための方法であって、当該共有仮想メモリ・ページに対してプロセスが行ったアクセスのアクセス特性を監視するステップと、当該監視されるアクセス特性が第2の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するステップとを含む方法を提供する。
【0017】
第2の態様を参照して、第1の可能な実装方式では、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するステップは、第1の物理メモリ空間において、第1の物理メモリ・ページを当該共有仮想メモリ・ページに割り当てるステップと、第2の物理メモリ・ページに格納されたデータを第1の物理メモリ・ページにコピーするステップであって、第2の物理メモリ・ページは共有物理メモリ空間に属し、第2の物理メモリ・ページは、当該共有仮想メモリ・ページから現在マップされている物理メモリ・ページであるステップと、当該共有仮想メモリ・ページと第1の物理メモリ・ページの間のマッピング関係を生成するステップと、当該分散共有メモリ・モードを当該共有仮想メモリ・ページの管理モードとして記録するステップとを含む。
【0018】
第2の態様を参照して、第2の可能な実装方式では、当該プロセスが複数のプロセスを含むという条件で、当該監視されるアクセス特性が第2の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するステップは、当該共有仮想メモリ・ページにアクセスする複数のプロセスごとにそれぞれ監視されるアクセス特性の平均、加重平均、総和、または加重和を、当該共有仮想メモリ・ページにアクセスする複数のプロセスの監視されるアクセス特性として使用するステップ、または、当該共有仮想メモリ・ページにアクセスする複数のプロセスのうち1つの監視されるアクセス特性を、当該共有仮想メモリ・ページにアクセスする複数のプロセスの監視されるアクセス特性として使用するステップと、当該共有仮想メモリ・ページに対する当該複数のプロセスにより行われたアクセスの監視されるアクセス特性が第2の条件を満たす場合、および、当該共有仮想メモリ・ページ上の当該複数のプロセスに対応する現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページ上の当該複数のプロセスに対応する管理モードを分散共有メモリ・モードに変更するステップとを含む。
【0019】
第2の態様、第2の態様の第1の可能な実装方式、または第2の態様の第2の可能な実装方式を参照して、第3の可能な実装方式では、第2の設定条件は、アクセス頻度が第2の閾値より大きいこと、アクセス・モードが読取専用アクセスであること、読取アクセスの頻度が第5の閾値より大きいこと、または、読取アクセスの割合が第6の閾値より大きいことを含む。
【0020】
第3の態様では、本発明は、共有仮想メモリ・ページの管理モードを決定するための装置であって、当該共有仮想メモリ・ページに対してプロセスが行ったアクセスのアクセス特性を監視するように構成された監視ユニットと、当該監視ユニットに接続され、当該監視ユニットにより監視されるアクセス特性が第1の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードが分散共有メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを共有物理メモリ・モードに変更するように構成された、第1の再マッピング・ユニットとを備えた装置を提供する。
【0021】
第3の態様を参照して、第1の可能な実装方式では、当該装置はさらに、当該監視ユニットに接続され、当該監視ユニットにより監視されるアクセス特性が第2の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するように構成された、第2の再マッピング・ユニットを備える。
【0022】
第3の態様の第1の可能な実装方式を参照して、第2の可能な実装方式では、当該第2の再マッピング・ユニットは特に、当該監視ユニットにより監視されるアクセス特性が第2の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合、第1の物理メモリ空間において、第1の物理メモリ・ページを当該共有仮想メモリ・ページに割り当て、第2の物理メモリ・ページに格納されたデータを第1の物理メモリ・ページにコピーし、当該共有仮想メモリ・ページと第1の物理メモリ・ページの間のマッピング関係を生成し、当該分散共有メモリ・モードを当該共有仮想メモリ・ページの管理モードとして記録するように構成される。第2の物理メモリ・ページは共有物理メモリ空間に属し、第2の物理メモリ・ページは、当該共有仮想メモリ・ページから現在マップされている物理メモリ・ページである。
【0023】
第3の態様、第3の態様の第1の可能な実装方式、または第3の態様の第2の可能な実装方式を参照して、第3の可能な実装方式では、第1の設定条件は、アクセス頻度が第1の閾値以下であること、アクセス・モードが読書きアクセスもしくは書込みアクセスであること、書込みアクセスの頻度が第3の閾値より大きいこと、または、書込みアクセスの割合が第4の閾値より大きいことを含み、当該監視ユニットは特に、当該共有仮想メモリ・ページに対する当該プロセスにより行われたアクセスのアクセス頻度を監視するように構成され、当該第1の再マッピング・ユニットは特に、当該監視ユニットにより監視される、当該共有仮想メモリ・ページに対する当該プロセスにより行われたアクセスのアクセス頻度が第1の閾値以下である場合、および、当該共有仮想メモリ・ページの現在の管理モードが分散共有メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを共有物理メモリ・モードに変更するように構成され、または、当該監視ユニットは特に、当該共有仮想メモリ・ページに対する当該プロセスにより行われたアクセスのアクセス・モードを監視するように構成され、当該第1の再マッピング・ユニットは特に、当該監視ユニットにより監視される、当該共有仮想メモリ・ページに対する当該プロセスにより行われたアクセスのアクセス・モードが読書きアクセスもしくは書込みアクセスである場合、および、当該共有仮想メモリ・ページの現在の管理モードが分散共有メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを共有物理メモリ・モードに変更するように構成され、または、当該監視ユニットは特に、当該共有仮想メモリ・ページに対する当該プロセスにより行われた書込みアクセスの頻度を監視するように構成され、当該第1の再マッピング・ユニットは特に、当該監視ユニットにより監視される、当該共有仮想メモリ・ページに対する当該プロセスにより行われた書込みアクセスの頻度が当該第3の閾値より大きい場合、および、当該共有仮想メモリ・ページの現在の管理モードが分散共有メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを共有物理メモリ・モードに変更するように構成され、または、当該監視ユニットは特に、当該共有仮想メモリ・ページに対する当該プロセスにより行われた書込みアクセスの割合を監視するように構成され、当該第1の再マッピング・ユニットは特に、当該監視ユニットにより監視される、当該共有仮想メモリ・ページに対する当該プロセスにより行われた書込みアクセスの割合が第4の閾値より大きい場合、および、当該共有仮想メモリ・ページの現在の管理モードが分散共有メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを共有物理メモリ・モードに変更するように構成される。
【0024】
第3の態様の第3の可能な実装方式を参照して、第4の可能な実装方式では、第2の設定条件は、当該アクセス頻度が第2の閾値より大きいこと、当該アクセス・モードが読取専用アクセスであること、読取アクセスの頻度が第5の閾値より大きいこと、または、読取アクセスの割合が第6の閾値より大きいことを含み、第2の閾値は第1の閾値以上であり、当該監視ユニットは特に、当該共有仮想メモリ・ページに対する当該プロセスにより行われたアクセスのアクセス頻度を監視するように構成され、当該第2の再マッピング・ユニットは特に、当該監視ユニットにより監視される当該アクセス頻度が第2の閾値より大きく、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するように構成され、または、当該監視ユニットは特に、当該共有仮想メモリ・ページに対する当該プロセスにより行われたアクセスのアクセス・モードを監視するように構成され、当該第2の再マッピング・ユニットは特に、当該監視ユニットにより監視される当該アクセス・モードが読取専用アクセスであり、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するように構成され、または、当該監視ユニットは特に、当該共有仮想メモリ・ページに対する当該プロセスにより行われたアクセスの読取アクセス頻度を監視するように構成され、当該第2の再マッピング・ユニットは特に、当該監視ユニットにより監視される読取アクセス頻度が第5の閾値より大きく、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するように構成され、または、当該監視ユニットは特に、当該共有仮想メモリ・ページに対する当該プロセスにより行われる読取アクセスの割合を監視するように構成され、当該第2の再マッピング・ユニットは特に、当該監視ユニットにより監視される読取アクセスの割合が第6の閾値より大きく、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するように構成される。
【0025】
第3の態様、第3の態様の第1の可能な実装方式、第3の態様の第2の可能な実装方式、第3の態様の第3の可能な実装方式、または第3の態様の第4の可能な実装方式を参照して、第5の可能な実装方式では、当該第1の再マッピング・ユニットは特に、当該監視ユニットにより監視されるアクセス特性が第1の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードが分散共有メモリ・モードである場合に、当該共有仮想メモリ・ページと第3の物理メモリ・ページの間のマッピング関係を生成し、当該共有物理メモリ・モードを当該共有仮想メモリ・ページの管理モードとして記録するように構成される。第3の物理メモリ・ページは当該共有物理メモリ空間に属し、当該共有仮想メモリ・ページから以前にマップされた物理メモリ・ページに格納されたデータは不変のままである。
【0026】
第3の態様、第3の態様の当該第1の可能な実装形態、第3の態様の第2の可能な実装方式、第3の態様の第3の可能な実装方式、または第3の態様の第4の可能な実装方式を参照して、第6の可能な実装方式では、当該第1の再マッピング・ユニットは特に、当該監視ユニットにより監視されるアクセス特性が第1の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードが分散共有メモリ・モードである場合に、第4の物理メモリ・ページに格納されたデータ内の変更されたデータを第3の物理メモリ・ページに同期し、当該共有仮想メモリ・ページと第3の物理メモリ・ページの間のマッピング関係を生成し、当該共有物理メモリ・モードを当該共有仮想メモリ・ページの管理モードとして記録するように構成される。第3の物理メモリ・ページは当該共有物理メモリ空間に属し、第4の物理メモリ・ページは当該共有仮想メモリ・ページから以前にマップされた物理メモリ・ページである。
【0027】
第3の態様または第3の態様の第1の可能な実装方式を参照して、第7の可能な実装方式では、当該プロセスが複数のプロセスを含む場合に、当該第1の再マッピング・ユニットは特に、当該共有仮想メモリ・ページにアクセスする複数のプロセスごとに当該監視ユニットによりそれぞれ監視されるアクセス特性の平均、加重平均、総和、または加重和を、当該共有仮想メモリ・ページにアクセスする複数のプロセスの監視されるアクセス特性として使用するか、または、当該共有仮想メモリ・ページにアクセスする複数のプロセスの1つに対して当該監視ユニットにより監視されるアクセス特性を、当該共有仮想メモリ・ページにアクセスする複数のプロセスの監視されるアクセス特性として使用し、当該共有仮想メモリ・ページに対する当該プロセスにより行われたアクセスの監視されるアクセス特性が第1の条件を満たす場合、および、当該共有仮想メモリ・ページ上の当該複数のプロセスに対応する現在の管理モードが分散共有メモリ・モードである場合に、当該共有仮想メモリ・ページ上の当該複数のプロセスに対応する管理モードを共有物理メモリ・モードに変更するように構成される。
【0028】
第3の態様の第1の可能な実装方式を参照して、第8の可能な実装方式では、当該プロセスが複数のプロセスを含む場合に、当該第2の再マッピング・ユニットは特に、当該共有仮想メモリ・ページにアクセスする複数のプロセスごとに当該監視ユニットによりそれぞれ監視されるアクセス特性の平均、加重平均、総和、または加重和を、当該共有仮想メモリ・ページにアクセスする複数のプロセスの監視されるアクセス特性として使用するか、または、当該共有仮想メモリ・ページにアクセスする複数のプロセスの1つに対して当該監視ユニットにより監視されるアクセス特性を、当該共有仮想メモリ・ページにアクセスする複数のプロセスの監視されるアクセス特性として使用し、当該共有仮想メモリ・ページに対する当該複数のプロセスにより行われたアクセスの監視されるアクセス特性が第2の条件を満たす場合、および、当該共有仮想メモリ・ページ上の当該複数のプロセスに対応する現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページ上の当該複数のプロセスに対応する管理モードを分散共有メモリ・モードに変更するように構成される。
【0029】
第4の態様では、本発明は共有仮想メモリ・ページの管理モードを決定するための装置を提供する。当該装置は、当該共有仮想メモリ・ページに対してプロセスが行ったアクセスのアクセス特性を監視するように構成された監視ユニットと、当該監視ユニットに接続され、当該監視ユニットにより監視されるアクセス特性が第2の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するように構成された、第2の再マッピング・ユニットとを備えてもよい。
【0030】
第4の態様を参照して、第1の可能な実装方式では、当該第2の再マッピング・ユニットは特に、当該監視ユニットにより監視されるアクセス特性が第2の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合、第1の物理メモリ空間において、第1の物理メモリ・ページを当該共有仮想メモリ・ページに割り当て、第2の物理メモリ・ページに格納されたデータを第1の物理メモリ・ページにコピーし、当該共有仮想メモリ・ページと第1の物理メモリ・ページの間のマッピング関係を生成し、当該分散共有メモリ・モードを当該共有仮想メモリ・ページの管理モードとして記録するように構成される。第2の物理メモリ・ページは共有物理メモリ空間に属し、第2の物理メモリ・ページは、当該共有仮想メモリ・ページから現在マップされている物理メモリ・ページである。
【0031】
第4の態様または第4の態様の第1の可能な実装方式を参照して、第2の可能な実装方式では、第2の設定条件は、アクセス頻度が第2の閾値より大きいこと、アクセス・モードが読取専用アクセスであること、読取アクセスの頻度が第5の閾値より大きいこと、または、読取アクセスの割合が第6の閾値より大きいことを含み、当該監視ユニットは特に、当該共有仮想メモリ・ページに対する当該プロセスにより行われたアクセスのアクセス頻度を監視するように構成され、当該第2の再マッピング・ユニットは特に、当該監視ユニットにより監視される当該アクセス頻度が第2の閾値より大きく、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するように構成され、または、当該監視ユニットは特に、当該共有仮想メモリ・ページに対する当該プロセスにより行われたアクセスのアクセス・モードを監視するように構成され、当該第2の再マッピング・ユニットは特に、当該監視ユニットにより監視される当該アクセス・モードが読取専用アクセスであり、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するように構成され、または、当該監視ユニットは特に、当該共有仮想メモリ・ページに対する当該プロセスにより行われたアクセスの読取アクセス頻度を監視するように構成され、当該第2の再マッピング・ユニットは特に、当該監視ユニットにより監視される読取アクセス頻度が第5の閾値より大きく、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するように構成され、または、当該監視ユニットは特に、当該共有仮想メモリ・ページに対する当該プロセスにより行われる読取アクセスの割合を監視するように構成され、当該第2の再マッピング・ユニットは特に、当該監視ユニットにより監視される読取アクセスの割合が第6の閾値より大きく、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するように構成される。
【0032】
第4の態様、第4の態様の第1の可能な実装方式、または第4の態様の第2の可能な実装方式を参照して、第3の可能な実装方式では、当該プロセスが複数のプロセスを含む場合に、当該第2の再マッピング・ユニットは特に、当該共有仮想メモリ・ページにアクセスする複数のプロセスごとに当該監視ユニットによりそれぞれ監視されるアクセス特性の平均、加重平均、総和、または加重和を、当該共有仮想メモリ・ページにアクセスする複数のプロセスの監視されるアクセス特性として使用するか、または、当該共有仮想メモリ・ページにアクセスする複数のプロセスの1つに対して当該監視ユニットにより監視されるアクセス特性を、当該共有仮想メモリ・ページにアクセスする複数のプロセスの監視されるアクセス特性として使用し、当該共有仮想メモリ・ページに対する当該複数のプロセスにより行われたアクセスの監視されるアクセス特性が第2の条件を満たす場合、および、当該共有仮想メモリ・ページ上の当該複数のプロセスに対応する現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページ上の当該複数のプロセスに対応する管理モードを分散共有メモリ・モードに変更するように構成される。
【0033】
第5の態様では、本発明は、バスと、当該バスに接続されたプロセッサと、当該バスに接続されたメモリとを備え、当該プロセッサは当該バスを使用して、当該共有仮想メモリ・ページに対してプロセスが行ったアクセスのアクセス特性を監視し、当該監視されるアクセス特性が第1の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードが分散共有メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを共有物理メモリ・モードに変更するための当該メモリ内のコードを呼び出す、コンピュータ・システムを提供する。
【0034】
第6の態様では、本発明は、バスと、当該バスに接続されたプロセッサと、当該バスに接続されたメモリとを備え、当該プロセッサは当該バスを使用して、当該共有仮想メモリ・ページに対してプロセスが行ったアクセスのアクセス特性を監視し、当該監視されるアクセス特性が第2の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合には、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するための当該メモリ内のコードを呼び出す、コンピュータ・システムを提供する。
【0035】
分かるように、本発明では、共有仮想メモリ・ページのアクセス特性が監視され、当該監視されるアクセス特性が第1の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードが分散共有メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードが共有物理メモリ・モードに変更されるか、または、当該監視されるアクセス特性が第2の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードが分散共有メモリ・モードに変更される。当該アクセス特性の監視結果に従って、当該共有仮想メモリ・ページの管理モードを再設定する機構により、当該管理モードと当該アクセス特性の間の良好なマッチングが実現され、DSMモードまたはSPMモードの利点がより良く活かされ、共有仮想メモリへのアクセス性能を高めるための機構基盤が提供される。
【0036】
本発明の諸実施形態または先行技術における技術的解決策をより明確に説明するために、以下では当該諸実施形態または先行技術を説明するのに必要な添付図面を簡単に説明する。明らかに、以下の説明における添付図面は本発明の幾つかの諸実施形態を示すにすぎず、当業者は創造的作業なしに依然として他の図面をこれらの添付図面から導出することができる。
【図面の簡単な説明】
【0037】
図1】本発明の1実施形態に従う共有仮想メモリ・ページの管理モードを決定するための方法の略流れ図である。
図2A】本発明の1実施形態に従うDSMモードでの共有仮想アドレス空間の略図である。
図2B】本発明の1実施形態に従うDSMモードでのプライベート物理メモリ空間の略図である。
図3】本発明の1実施形態に従う共有仮想メモリ・ページの管理モードを決定するための別の方法の略流れ図である。
図4】本発明の1実施形態に従う共有仮想メモリ・ページの管理モードを決定するための別の方法の略流れ図である。
図5A】本発明の1実施形態に従う共有仮想メモリ・ページの管理モードを決定するための装置の略図である。
図5B】本発明の1実施形態に従う共有仮想メモリ・ページの管理モードを決定するための装置の略図である。
図5C】本発明の1実施形態に従う共有仮想メモリ・ページの管理モードを決定するための装置の略図である。
図6】本発明に従うコンピュータ・システムの略構造図である。
図7】本発明の1実施形態に従う別のコンピュータ・システムの略図である。
【発明を実施するための形態】
【0038】
本発明では、共有仮想メモリへのアクセス性能を高めることを目的として、共有仮想メモリ・ページの管理モードを決定するための方法および関連装置を提供する。
【0039】
本発明の解決策を当業者がより理解できるようにするために、以下では本発明の諸実施形態の添付図面を参照して本発明の技術的解決策を明確かつ十分に説明する。明らかに、説明する諸実施形態は本発明の諸実施形態の全部ではなく一部にすぎない。以下で詳細な説明を与える。
【0040】
本発明の明細書、特許請求の範囲、および添付図面では、「第1の」、「第2の」、「第3の」、「第4の」等(存在する場合)といった用語は、類似の対象物を区別するためのものであるが、特定の順序または並びを必ずしも示すものではない。かかる方法で呼称するデータは適切な状況において交換可能であり、その結果、本明細書で説明する本発明の諸実施形態を本明細書で図示または説明した順序と異なる順序で実施できることは理解されるべきである。さらに、「含む」、「備える」といった用語、およびそれらの任意の変形は非包括的な包含を網羅しようとするものである。例えば、一連のステップまたはユニットを含むプロセス、方法、システム、製品、または装置は、明示的に列挙したステップまたはユニットには限定されず、明示的に列挙されていないかまたは当該プロセス、方法、製品、または装置に内在する他のステップまたはユニットを含んでもよい。
【0041】
本発明の1実施形態では、共有仮想メモリ・ページの管理モードを決定するための方法が、当該共有仮想メモリ・ページに対してプロセスが行ったアクセスのアクセス特性を監視するステップと、当該監視されるアクセス特性が第1の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードがDSMモードである場合に、当該共有仮想メモリ・ページの管理モードをSPMモードに変更するステップ、および/または、当該監視されるアクセス特性が第2の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードがSPMモードである場合に、当該共有仮想メモリ・ページの管理モードをDSMモードに変更するステップとを含んでもよい。
【0042】
図1を参照されたい。図1は、本発明の1実施形態に従う共有仮想メモリ・ページの管理モードを決定するための方法の略流れ図である。図1に示すように、本発明の1実施形態に従う共有仮想メモリ・ページの管理モードを決定するための方法が以下の内容を含んでもよい。
【0043】
101で、当該共有仮想メモリ・ページに対してプロセスが行ったアクセスのアクセス特性を監視する。本発明の幾つかの諸実施形態では、当該共有仮想メモリ・ページ(引用の都合上、以下では第1の共有仮想メモリ・ページと称する)に対するN個のプロセスにより行われたアクセスのアクセス特性を監視することができる。Nは正の整数である。例えば、Nが1に等しい場合、当該N個のプロセスが当該システムに現存する任意のプロセスまたは特定のプロセスを指してもよく、Nが1より大きい場合、当該N個のプロセスが、当該システムに現存するプロセスの一部または全部を指してもよい。例えば、当該N個のプロセスが、当該システムに現存し第1の共有仮想メモリ・ページにアクセスする可能性があるプロセスの一部または全部を指してもよい。本発明の幾つかの諸実施形態では、例えば、性能カウンタ(performance counters)または他のハードウェアまたはCPUのプログラムを使用して当該共有仮想メモリ・ページのアクセス特性を監視してもよい。
【0044】
本発明の幾つかの諸実施形態では、例えば、当該共有仮想メモリ・ページに対してプロセスにより行われたアクセスの様々なアクセス特性を監視してもよい。当該アクセス特性がアクセス頻度および/またはアクセス・モード等を含んでもよい。当該アクセス・モードが、読取専用アクセス、読書きアクセス(読書きアクセスとは、読取りと書込みの両方を必要とするアクセスのことをいう)、書込みアクセス等を含んでもよい。即ち、当該共有仮想メモリ・ページに対する当該プロセスにより行われたアクセスのアクセス頻度および/またはアクセス・モードのようなアクセス特性を監視することができる。
【0045】
本発明の幾つかの諸実施形態では、第1の共有仮想メモリ・ページに対してプロセスにより行われたアクセスのアクセス頻度が、当該プロセスが単位時間に第1の共有仮想メモリ・ページにアクセスした回数を指してもよい。例えば、第1の共有仮想メモリ・ページに対してプロセスにより行われたアクセスのアクセス頻度が、当該プロセスが単位時間に第1の共有仮想メモリ・ページにアクセスした回数を指してもよい。同様に、第1の共有仮想メモリ・ページに対する複数のプロセスにより行われたアクセスのアクセス頻度が、当該複数のプロセスが単位時間に第1の共有仮想メモリ・ページにアクセスした回数を指してもよい。
【0046】
本発明の他の諸実施形態では、第1の共有仮想メモリ・ページに対してプロセスにより行われたアクセスのアクセス頻度が、第1の共有仮想メモリ・ページに対して当該プロセスにより行われたアクセスの回数の、(単位時間のような)或る期間にN1個の共有仮想メモリ・ページに対して当該プロセスにより行われたアクセスの総数に対する割合を指してもよい。当該N1個の共有仮想メモリ・ページは第1の共有仮想メモリ・ページを含み、N1は1より大きい正の整数である。例えば、第1の共有仮想メモリ・ページに対してプロセスにより行われたアクセスのアクセス頻度が、第1の共有仮想メモリ・ページに対して当該プロセスにより行われたアクセスの回数の、或る期間にN1個の共有仮想メモリ・ページに対して当該プロセスにより行われたアクセスの総数に対する割合を指してもよく、第1の共有仮想メモリ・ページに対する複数のプロセスにより行われたアクセスのアクセス頻度が、第1の共有仮想メモリ・ページに対する複数のプロセスにより行われたアクセスの回数の、或る期間に当該N1個の共有仮想メモリ・ページに対する当該複数のプロセスにより行われたアクセスの総数に対する割合を指してもよい。
【0047】
勿論、当該アクセス頻度を計算する方法は上述の例に限られず、自然法則に従う他の計算方法を必要に応じて定義してもよい。
【0048】
102で、監視されるアクセス特性が第1の設定条件を満たし、第1の共有仮想メモリ・ページの現在の管理モードがDSMモードである場合、第1の共有仮想メモリ・ページの管理モードをSPMモードに変更し、かつ/または、当該監視されるアクセス特性が第2の設定条件を満たし、第1の共有仮想メモリ・ページの現在の管理モードがSPMモードである場合、第1の共有仮想メモリ・ページの管理モードをDSMモードに変更する。
【0049】
第1の設定条件と第2の設定条件が、監視されるアクセス特性とともに変化してもよいことは分かる。例えば、当該監視されるアクセス特性がアクセス頻度である場合、第1の設定条件と第2の設定条件が当該アクセス頻度に関連する設定条件を含んでもよく、当該監視されるアクセス特性がアクセス・モードである場合、第1の設定条件と第2の設定条件が当該アクセス・モードに関連する設定条件を含んでもよく、当該監視されるアクセス特性がアクセス頻度とアクセス・モードを含む場合、第1の設定条件と第2の設定条件がアクセス頻度とアクセス・モードの両方に関連する設定条件を含んでもよい。
【0050】
本発明の幾つかの諸実施形態では、監視されるアクセス特性が第1の共有仮想メモリ・ページに対してプロセスにより行われたアクセスのアクセス頻度を含む場合、第1の設定条件が、当該アクセス頻度が第1の閾値以下であることを含んでもよく(第1の閾値が毎秒1000回、毎秒2000回、毎秒5000回、または別の頻度値であってもよい)、第2の設定条件が、当該アクセス頻度が第2の閾値より大きいことを含んでもよい。第1の閾値が第2の閾値以下であってもよく、第2の閾値が毎秒1000回、毎秒2000回、毎秒3000回、毎秒5000回、または別の頻度値であってもよい。第2の閾値は第1の閾値以上である。このシナリオでは、当該監視されるアクセス頻度が第1の閾値以下であり、第1の共有仮想メモリ・ページの現在の管理モードがDSMモードである場合に、第1の共有仮想メモリ・ページの管理モードをSPMモードに変更してもよく、かつ/または、当該監視されるアクセス頻度が第2の閾値より大きく、第1の共有仮想メモリ・ページの現在の管理モードがSPMモードである場合に、第1の共有仮想メモリ・ページの管理モードをDSMモードに変更してもよい。かかるポリシをアクセス・データに従う消費性選択ポリシとみなしてもよいことは分かる。
【0051】
本発明の他の諸実施形態では、監視されるアクセス特性が、共有仮想メモリ・ページに対してプロセスにより行われたアクセスのアクセス・モードを含む場合に、第1の設定条件が、当該アクセス・モードが書込みアクセスまたは読書きアクセスである(または、書込みアクセスの割合が第4の閾値を超えるか、または、書込みアクセスの頻度が第3の閾値を超える)ことを含んでもよい。書込みアクセスのみが存在するシナリオを、書込みアクセスの回数の読書きアクセスの総数に対する割合が100%であるという事実とみなしてもよく、第2の設定条件が、読取専用アクセスまたは読取アクセスの割合が第6の閾値を超えるか、または、読取アクセスの頻度が第5の閾値を超えることを含んでもよい。第4の閾値と第6の閾値の合計が1以上であってもよい。このシナリオでは、監視されるアクセス・モードが書込みアクセスまたは読書きアクセスであり(または、書込みアクセスの割合が第4の閾値を超えるか、または、書込みアクセスの頻度が第3の閾値を超える)、第1の共有仮想メモリ・ページの現在の管理モードがDSMモードである場合に、第1の共有仮想メモリ・ページの管理モードをSPMモードに変更してもよく、かつ/または、当該監視されるアクセス・モードが読取専用アクセスであり(または読取アクセスの割合が第6の閾値を超えるか、または、読取アクセスの頻度が第5の閾値を超える)、第1の共有仮想メモリ・ページの現在の管理モードがSPMモードである場合に、第1の共有仮想メモリ・ページの管理モードをDSMモードに変更してもよい。読取専用アクセスのシナリオを、読取アクセスの回数の読書きアクセスの総数に対する割合が100%であるという事実とみなしてもよい。書込みアクセスの割合とは書込みアクセスの回数の読書きアクセスの総数に対する割合をいい、読取アクセスの割合とは読取アクセスの回数の読書きアクセスの総数に対する割合をいう。他の状況を同様に推論することができる。かかるポリシをアクセス同期に従う消費性選択ポリシとみなしてもよいことは分かる。
【0052】
様々なマルチコア・システムまたはメニーコア・システムにおいて、第1の共有仮想メモリ・ページの管理モードを様々な方法でDSMモードに変更してもよいことは分かる。
【0053】
本発明の幾つかの諸実施形態では、第1の共有仮想メモリ・ページの管理モードをDSMモードに変更するステップが、第1の物理メモリ空間において、第1の物理メモリ・ページを第1の共有仮想メモリ・ページに割り当てるステップと、第2の物理メモリ・ページに格納されたデータを第1の物理メモリ・ページにコピーするステップであって、第2の物理メモリ・ページは共有物理メモリ空間に属し(当該共有物理メモリ空間は幾つかのコアにより共有できる物理メモリ空間である)、第2の物理メモリ・ページは第1の共有仮想メモリ・ページから現在マップされている物理メモリ・ページであるステップと、第1の共有仮想メモリ・ページと第1の物理メモリ・ページの間のマッピング関係を生成するステップと、DSMモードを第1の共有仮想メモリ・ページの管理モードとして記録するステップとを含んでもよい。
【0054】
本発明の幾つかの諸実施形態では、共有仮想メモリ・ページの管理モードをSPMモードに変更するステップが、第1の共有仮想メモリ・ページと第3の物理メモリ・ページの間のマッピング関係を生成するステップであって、第3の物理メモリ・ページは共有物理メモリ空間に属する(当該共有物理メモリ空間は幾つかのコアにより共有できる物理メモリ空間である)ステップと、SPMモードを第1の共有仮想メモリ・ページの管理モードとして記録するステップであって、第1の共有仮想メモリ・ページから以前にマップされた物理メモリ・ページに格納されたデータは不変のままであるステップとを含んでもよい。
【0055】
本発明の幾つかの諸実施形態では、共有仮想メモリ・ページの管理モードをSPMモードに変更するステップが、第4の物理メモリ・ページに格納されたデータ内の変更されたデータを第3の物理メモリ・ページと同期するステップと、第1の共有仮想メモリ・ページと第3の物理メモリ・ページの間のマッピング関係を生成するステップであって、第3の物理メモリ・ページは共有物理メモリ空間に属する(当該共有物理メモリ空間は幾つかのコアにより共有できる物理メモリ空間である)ステップと、SPMモードを第1の共有仮想メモリ・ページの管理モードとして記録するステップであって、第4の物理メモリ・ページは第1の共有仮想メモリ・ページから以前にマップされた物理メモリ・ページであるステップとを含んでもよい。
【0056】
第4の物理メモリ・ページに格納されたデータ内の変更されたデータ(当該データをプロセスにより変更してもよい)が、第4の物理メモリ・ページに格納された値が可変の変数を指してもよい。例えば、第3の物理メモリ・ページに格納された変数y1、変数y2、および変数y3が第4の物理メモリ・ページにコピーされ、変数y1、変数y2、および変数y3が第4の物理メモリ・ページに格納された後、変数y1および変数y3の値は不変のままであるが、変数y2の値は元のコピーに対して0から1に変化し、したがって、第4の物理メモリ・ページに格納されたデータにおいて変更されたデータは変数y2を含み、変数y2は変更されたデータであり、他の状況を同様に推論することができる。
【0057】
DSMモード/SPMモードを様々な方法で第1の共有仮想メモリ・ページの管理モードとして記録してもよい。例えば、管理モードのフラグ・ビットが第1の共有仮想メモリ・ページに対して設定され、当該管理モードのフラグ・ビットを、第1の共有仮想メモリ・ページの管理モードがDSMモードであるかまたはSPMモードであるかを識別するための異なる値に設定してもよい。あるいは、プロセス(または複数のプロセスもしくは全てのプロセス)のページ情報構造部に記録された第1の共有仮想メモリ・ページの管理モードをDSMモードまたはSPMモードとして記録してもよい。他の記録方法をここで徹底的に列挙することはしない。
【0058】
本発明の幾つかの諸実施形態では、(DSMモードまたはSPMモードのような)管理モードを(第1の共有仮想メモリ・ページのような)共有仮想メモリ・ページごとに設定してもよい。このシナリオでは、第1の共有仮想メモリ・ページにアクセスする全てのプロセスに対して、第1の共有仮想メモリ・ページの管理モードは同一である。勿論、各プロセスに対応する(DSMモードまたはSPMモードのような)管理モードを(第1の共有仮想メモリ・ページのような)共有仮想メモリ・ページごとに設定してもよい。このシナリオでは、第1の共有仮想メモリ・ページにアクセスする全てのプロセスに対して、第1の共有仮想メモリ・ページの管理モードは同一であるかまたは異なる。例えば、プロセスAおよびプロセスBが存在すると仮定すると、第1の共有仮想メモリ・ページ上のプロセスAに対応する管理モードがDSMモードであってもよく、第1の共有仮想メモリ・ページ上のプロセスBに対応する管理モードがSPMモードであってもよい。
【0059】
本発明の幾つかの諸実施形態では、第1の共有仮想メモリ・ページに対する第1のプロセスにより行われたアクセスのアクセス特性を監視してもよく、第1のプロセスがM1個のプロセスを含んでもよい。M1は正の整数である。当該監視されるアクセス特性が第1の設定条件を満たし、第1の共有仮想メモリ・ページ上の第1のプロセスに対応する現在の管理モードがDSMモードである場合に、第1の共有仮想メモリ・ページ上の第1のプロセスに対応する管理モードをSPMモードに変更してもよく、かつ/または、当該監視されるアクセス特性が第2の設定条件を満たし、第1の共有仮想メモリ・ページ上の第1のプロセスに対応する現在の管理モードがSPMモードである場合に、第1の共有仮想メモリ・ページ上の第1のプロセスに対応する管理モードをDSMモードに変更してもよい。このシナリオでは、第1のプロセスが複数のプロセスを含む場合、第1の共有仮想メモリ・ページ上の複数のプロセスに対応する管理モードは同一である(DSMモードまたはSPMモード)。
【0060】
さらに、第1の共有仮想メモリ・ページに対する第2のプロセスにより行われたアクセスのアクセス特性を監視してもよく、第2のプロセスはM2個のプロセスを含み、M2は正の整数であり、第2のプロセスは第1のプロセスとは異なる。第1の共有仮想メモリ・ページに対する第2のプロセスにより行われたアクセスの監視されるアクセス特性が第3の設定条件を満たし、第1の共有仮想メモリ・ページ上の第2のプロセスに対応する現在の管理モードがDSMモードである場合に、第1の共有仮想メモリ・ページ上の第2のプロセスに対応する管理モードをSPMモードに変更してもよく、かつ/または、第1の共有仮想メモリ・ページに対する第2のプロセスにより行われたアクセスの監視されるアクセス特性が第4の設定条件を満たし、第1の共有仮想メモリ・ページ上の第2のプロセスに対応する現在の管理モードがSPMモードである場合に、第1の共有仮想メモリ・ページ上の第2のプロセスに対応する管理モードをDSMモードに変更してもよく、第3の設定条件は第1の条件と同一であるかまたは異なり、第4の設定条件は第2の条件と同一であるかまたは異なる。
【0061】
このシナリオでは、第1の共有仮想メモリ・ページ上の第1のプロセスに対応する管理モードが第1の共有仮想メモリ・ページ上の第2のプロセスに対応する管理モードと同一であるかまたは異なってもよい。即ち、同一の共有仮想メモリ・ページ上の異なるプロセスに対応する管理モードが同一であるかまたは異なってもよく、これは非同期マッピング・モードと呼ばれる。勿論、第2のプロセスでは、第1の共有仮想メモリ・ページの管理モードが、第1の共有仮想メモリ・ページに対する第1のプロセスにより行われたアクセスのアクセス特性を監視することによって直接決定される場合には、第1の共有仮想メモリ・ページに対する第2のプロセスにより行われたアクセスのアクセス特性を監視するステップを実装することは必要ではないが、第1の共有仮想メモリ・ページ上の第2のプロセスに対応する現在の管理モードを、第1の共有仮想メモリ・ページ上の第1のプロセスに対応する現在の管理モードと同一である管理モードに直接設定してもよい。例えば、第1の共有仮想メモリ・ページ上の第1のプロセスに対応する管理モードがDSMモードであることが、第1の共有仮想メモリ・ページに対する第1のプロセスにより行われたアクセスのアクセス特性を監視した結果に従って判定された場合、第1の共有仮想メモリ・ページ上の第2のプロセスに対応する管理モードをDSMモードに設定してもよい。他の状況を同様に推論することができる。
【0062】
本発明の幾つかの諸実施形態では、第1の共有仮想メモリ・ページにアクセスする複数のプロセス(例えば、第1のプロセスまたは第2のプロセスが複数のプロセスを含む)のアクセス特性を監視するシナリオでは、第1の共有仮想メモリ・ページにアクセスする当該複数のプロセスのうち1つ(当該1つのプロセスが、当該複数のプロセスのうち任意のものであってもよく、または、当該複数のプロセスのうちアクセス特性のパラメータ値が最大であるプロセスであってもよい)の監視されるアクセス特性を、第1の共有仮想メモリ・ページに対して複数のプロセスにより行われたアクセスの監視されるアクセス特性として使用してもよい。あるいは、第1の共有仮想メモリ・ページに対して複数のプロセスにより行われたアクセスの監視される統合されたアクセス特性を第1の共有仮想メモリ・ページに対して複数のプロセスにより行われたアクセスの監視されるアクセス特性として使用してもよい。例えば、第1の共有仮想メモリ・ページにアクセスする複数のプロセスごとにそれぞれ監視されるアクセス特性(または他の形式の統合されたアクセス特性)の平均、加重平均、総和、または加重和を第1の共有仮想メモリ・ページに対する複数のプロセスにより行われたアクセスの監視されるアクセス特性として使用してもよい。特に、例えば、第1の共有仮想メモリ・ページにアクセスする複数のプロセスごとにそれぞれ監視されるアクセス頻度の平均、加重平均、総和、または加重和(または読取アクセスの頻度または読取アクセスの割合または書込みアクセスの頻度または書込みアクセスの割合)(各プロセスに対応する重み値を必要に応じて設定してもよく、全て1秒であってもよい)を、第1の共有仮想メモリ・ページに対する複数のプロセスにより行われたアクセスの監視されるアクセス特性として使用してもよい。第1のプロセスまたは第2のプロセスが複数のプロセスを含むシナリオでは、第1の共有仮想メモリ・ページに対して当該第1のプロセスまたは第2のプロセスにより行われたアクセスの監視されるアクセス特性を上の例示的な方式で決定してもよい。他の状況を同様に推論することができる。
【0063】
以下では、DSMモードとSPMモードの動作原理に関して簡単に説明する。DSMモードに基づいて、並列プログラムの全てのプロセスが同一の共有仮想アドレス空間を有してもよい。各プロセスは、当該共有仮想アドレス空間内の仮想メモリ・ページの一部または全部を、当該プロセスにより維持されるプライベート物理メモリ空間にマップする。ユーザ・レベルでは、各プロセスは、完全な共有仮想アドレス空間を見るが、当該共有仮想アドレス空間内の仮想メモリ・ページに含まれる共有データが実際に他のプロセスにより維持されるプライベート物理メモリ空間とは認識することはできない。
【0064】
各プロセスは、当該共有仮想アドレス空間に対する任意のデータ操作を実施してもよい。DSMボトム・レイヤは、全てのプロセスがアクセスできるオンチップ・ネットワーク(On−chip Network)またはシステム共有物理メモリを用いることで、全てのプロセス間でデータを同期する。1つの並列プログラムの複数のプロセスがプロセッサ・コアで実行されることがあり、または、各プロセスが別々のプロセッサ・コアで実行される。
【0065】
例えば、図2Aに示すように、図2A内の領域は、プログラムの共有仮想アドレス空間であり、4つのプロセスP0乃至P3が異なるプロセッサ・コアで実行されている。これらのプロセスは、共有データを格納するための均一な共有仮想アドレス空間を有する。当該仮想アドレス空間内の第1の領域はP0のプライベート物理メモリ空間にマップされ、第2の領域はP1のプライベート物理メモリ空間にマップされ、第3の領域はP2のプライベート物理メモリ空間にマップされ、第4の領域はP3のプライベート物理メモリ空間にマップされる。
【0066】
例えば、図2Bに示すように、図2B内のホーム領域は各プロセスのプライベート物理アドレス空間であり、各プロセスは共有仮想アドレス空間からマップされた非重複の物理メモリ空間(図2Bで「ホーム」と示した部分)を維持する。当該共有仮想アドレス空間内のプロセス2により維持される物理メモリ領域内の変数zにプロセス1がアクセスした場合、DSMプロトコルは、プロセス2により維持される変数zを含む物理メモリ・ページをプロセス1の物理メモリにコピーする(図2BのP1の「キャッシュ」で示した部分を参照)。このように、プロセス1が変数zにアクセスすることができる。DSMプロトコルは、当該システム内の変数zの一貫性を維持して、プロセス1およびプロセス2が同じ変数zを見ることを保証する。
【0067】
DSMモードは、共有仮想アドレス空間内の仮想メモリ・ページを、プロセスが維持するプライベート物理メモリ空間にマップする。当該プライベート物理メモリ空間のデータは一般に、L1キャッシュおよびL2キャッシュによりキャッシュされるとして構成される。したがって、CPUがデータを読み出すとき、当該キャッシュのヒット率(キャッシュ・ヒット)は非常に高く、CPUがデータを書き込むときも、キャッシュ・ヒット率は非常に高く、これはプログラム性能にとっては非常に好ましい。
【0068】
SPMモードに基づいて、共有仮想アドレス空間が、同一の並列プログラムの全てのプロセスにおける共有物理アドレス空間にマップされ、ソフトウェア・キャッシュの一貫性が実現される。SPMモードは一般にL2キャッシュを無効にし、L1キャッシュは一般に、ライト・スルー(WT、Write Through)ポリシを使用するように設定される。一般に、SPMモードに基づいて、メモリ・ページは一般に共有物理メモリ空間において1つのコピーのみを保持して、当該物理メモリ空間を節約する。
【0069】
研究と実践によれば、DSMモードとSPMモードにはそれぞれその利点と欠点があり、DSMモードとSPMモードは異なるアクセス特性(例えば、異なるアクセス頻度、異なるアクセス・モード)に対して特定の優位性を有することが分かっている。したがって、本発明の当該実施形態の解決策では、共有仮想メモリ・ページに対してプロセスにより行われたアクセスのアクセス特性が監視され、当該監視されるアクセス特性が、当該共有仮想メモリ・ページの管理モードを再設定するかどうかを判定するための基礎として使用される。当該アクセス特性と当該管理モードの間のかかる適合的な機構は当該共有仮想メモリ・ページへのアクセス性能を高めるのに良く、したがって、対応するプログラムの性能とユーザ・エクスペリエンスを改善するのに良い。
【0070】
分かるように、本発明の当該実施形態では、共有仮想メモリ・ページのアクセス特性が監視され、当該監視されるアクセス特性が第1の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードがDSMモードである場合、当該共有仮想メモリ・ページの管理モードがSPMモードに変更され、かつ/または、当該監視されるアクセス特性が第2の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードがSPMモードである場合、当該共有仮想メモリ・ページの管理モードがDSMモードに変更される。当該アクセス特性の監視結果に従って当該共有仮想メモリ・ページの管理モードを再設定する機構により、当該管理モードと当該アクセス特性の間の良好なマッチングが実現され、DSMモードまたはSPMモードの利点がより良く活かされ、共有仮想メモリへのアクセス性能を高めるための機構基盤が提供される。
【0071】
本発明の以上の解決策をより良く理解し実施するために、以下では例として幾つかの適用シナリオを説明する。
【0072】
図3を参照されたい。図3は、本発明の1実施形態に従う共有仮想メモリ・ページの管理モードを決定するための別の方法の略流れ図である。図3に示すように、本発明の1実施形態に従う共有仮想メモリ・ページの管理モードを決定するための他の方法が以下の内容を含んでもよい。301では、共有仮想メモリ・ページXに対するN個のプロセスにより行われたアクセスのアクセス特性を監視する。
【0073】
Nは1より大きい正の整数である。例えば、当該N個のプロセスがシステムに現存するプロセスの一部または全部を指してもよい。例えば、当該N個のプロセスが、当該システムに現存し共有仮想メモリ・ページXにアクセスする可能性があるプロセスの一部または全部を指してもよい。
【0074】
本実施形態の共有仮想メモリ・ページXが直前の実施形態の第1の共有仮想メモリ・ページに対応してもよいことは分かる。
【0075】
本発明の幾つかの諸実施形態では、共有仮想メモリ・ページXに対するN個のプロセスにより行われたアクセスの様々なアクセス特性を監視してもよく、本実施形態で与える例は共有仮想メモリ・ページXに対するN個のプロセスにより行われたアクセスのアクセス頻度を検出することである。
【0076】
本発明の幾つかの諸実施形態では、共有仮想メモリ・ページXに対する当該N個のプロセスにより行われたアクセスのアクセス頻度が、当該プロセスが単位時間に共有仮想メモリ・ページXにアクセスした回数を指してもよい。本発明の他の諸実施形態では、共有仮想メモリ・ページXに対する当該N個のプロセスにより行われたアクセスのアクセス頻度が共有仮想メモリ・ページXに対する当該N個のプロセスにより行われたアクセスの回数の、N1個の共有仮想メモリ・ページに対して(単位時間のような)或る期間に当該N個のプロセスにより行われたアクセスの総数に対する割合を指してもよい。当該N1個の共有仮想メモリ・ページは共有仮想メモリ・ページXを含み、N1は1より大きい正の整数である。勿論、共有仮想メモリ・ページXに対する当該N個のプロセスにより行われたアクセスのアクセス頻度を計算する方法は上述の例に限られず、自然法則に従う他の計算方法を必要に応じて定義してもよい。
【0077】
302で、共有仮想メモリ・ページXに対するN個のプロセスにより行われたアクセスの監視されるアクセス頻度が第1の閾値以下であるかどうかを判定し、そうである場合、ステップ303を実施し、そうでない場合、ステップ304を実施する。
【0078】
303で、共有仮想メモリ・ページXに対するN個のプロセスにより行われたアクセスの監視されるアクセス頻度が第1の閾値以下であり、共有仮想メモリ・ページX上の当該N個のプロセスに対応する現在の管理モードがDSMモードである場合に、共有仮想メモリ・ページX上の当該N個のプロセスに対応する管理モードをSPMモードに変更して、ステップ301に戻り、共有仮想メモリ・ページX上の当該N個のプロセスに対応する現在の管理モードがSPMモードである場合に、ステップ301に戻る。
【0079】
304では、共有仮想メモリ・ページXに対する当該N個のプロセスにより行われたアクセスの監視されるアクセス頻度が第2の閾値より大きく、共有仮想メモリ・ページX上の当該N個のプロセスに対応する現在の管理モードがSPMモードである場合に、共有仮想メモリ・ページX上の当該N個のプロセスに対応する管理モードをDSMモードに変更して、ステップ301に戻り、共有仮想メモリ・ページX上の当該N個のプロセスに対応する現在の管理モードがDSMモードである場合には、ステップ301に戻る。
【0080】
本発明の幾つかの諸実施形態では、例えば、第1の閾値が毎秒1000回、毎秒2000回、毎秒5000回、または別の頻度値であってもよく、第1の閾値が第2の閾値以下であってもよく、第2の閾値が毎秒1000回、毎秒2000回、毎秒3000回、毎秒5000回、または別の頻度値であってもよい。本発明の他の諸実施形態では、例えば、第1の閾値が20%、25%、30%、35%または別の割合であってもよく、第1の閾値が第2の閾値以下であってもよく、第2の閾値が20%、25%、30%、35%または別の割合であってもよい。かかるポリシをアクセス・データに従う消費性選択ポリシとみなしてもよいことは分かる。
【0081】
様々なマルチコア・システムまたはメニーコア・システムにおいて、共有仮想メモリ・ページX上のN個のプロセスに対応する管理モードを様々な方法でDSMモードに変更してもよいことは分かる。
【0082】
本発明の幾つかの諸実施形態では、共有仮想メモリ・ページX上のN個のプロセスに対応する管理モードをDSMモードに変更するステップが、第1の物理メモリ空間において、第1の物理メモリ・ページを第1の共有仮想メモリ・ページに割り当てるステップと、第2の物理メモリ・ページに格納されたデータを第1の物理メモリ・ページにコピーするステップであって、第2の物理メモリ・ページは共有物理メモリ空間に属し、第2の物理メモリ・ページは、共有仮想メモリ・ページXから現在マップされている物理メモリ・ページであるステップと、共有仮想メモリ・ページXと第1の物理メモリ・ページの間のマッピング関係を生成するステップと、DSMモードを共有仮想メモリ・ページX上の当該N個のプロセスに対応する管理モードとして記録するステップとを含んでもよい。例えば、当該N個のプロセスのページ情報構造部に記録された共有仮想メモリ・ページXの管理モードを全てDSMモードとして記録してもよい。
【0083】
本発明の幾つかの諸実施形態では、共有仮想メモリ・ページX上の当該N個のプロセスに対応する管理モードをSPMモードに変更するステップが、共有仮想メモリ・ページXと第3の物理メモリ・ページの間のマッピング関係を生成するステップであって、第3の物理メモリ・ページは共有物理メモリ空間に属するステップと、SPMモードを共有仮想メモリ・ページX上の当該N個のプロセスに対応する管理モードと記録するステップとを含んでもよい。例えば、当該N個のプロセスのページ情報構造部に記録された共有仮想メモリ・ページXの管理モードを全てSPMモードとして記録してもよい。さらに、共有仮想メモリ・ページXと第3の物理メモリ・ページの間のマッピング関係を生成する前に、当該方法がさらに、共有仮想メモリ・ページXから以前にマップされた第4の物理メモリ・ページに格納されたデータ内の変更されたデータを第3の物理メモリ・ページに同期するステップを含んでもよい。勿論、共有仮想メモリ・ページXから以前にマップされた第4の物理メモリ・ページに格納されたデータが不変のままである場合、当該データ同期ステップを省略してもよい。第4の物理メモリ・ページは共有仮想メモリ・ページXから以前にマップされた物理メモリ・ページである。
【0084】
DSMモードとSPMモードは異なるアクセス頻度に対して特定の優位性を有する。したがって、本実施形態の解決策では、当該共有仮想メモリ・ページに対して当該N個のプロセスにより行われたアクセスのアクセス特性が監視され、当該監視されるアクセス特性は、当該共有仮想メモリ・ページ上の当該N個のプロセスに対応する管理モードを再設定するかどうかを判定するための基盤として使用される。当該アクセス特性と当該管理モードの間のかかる適合的な機構は当該共有仮想メモリ・ページへのアクセス性能を高めるのに良く、したがって、対応するプログラムの性能とユーザ・エクスペリエンスを改善するのに良い。
【0085】
図4を参照されたい。図4は、本発明の1実施形態に従う共有仮想メモリ・ページの管理モードを決定するための別の方法の略流れ図である。本発明の1実施形態に従う、共有仮想メモリ・ページの管理モードを決定するための他の方法が以下の内容を含んでもよい。
【0086】
401で、共有仮想メモリ・ページXに対するプロセスAおよびプロセスBにより行われたアクセスのアクセス特性を監視する。
【0087】
本発明の幾つかの諸実施形態では、共有仮想メモリ・ページXに対するプロセスAおよびプロセスBにより行われたアクセスの様々なアクセス特性を監視してもよく、本実施形態で与えた例は、共有仮想メモリ・ページXに対するプロセスAおよびプロセスBにより行われたアクセスのアクセス頻度を検出することである。
【0088】
本実施形態の共有仮想メモリ・ページXが、直前の実施形態の第1の共有仮想メモリ・ページに対応してもよいことは分かる。
【0089】
本発明の幾つかの諸実施形態では、共有仮想メモリ・ページXに対するプロセスAおよびプロセスBにより行われたアクセスの頻度が、プロセスAおよびプロセスBが単位時間に共有仮想メモリ・ページXにアクセスした回数を指してもよい。
【0090】
本発明の他の諸実施形態では、共有仮想メモリ・ページXに対するプロセスAおよびプロセスBにより行われたアクセスの頻度が、プロセスAおよびプロセスBが共有仮想メモリ・ページXにアクセスする回数の、プロセスAおよびプロセスBが(単位時間のような)或る期間にN1個の共有仮想メモリ・ページにアクセスする総数に対する割合を指してもよく、当該N1個の共有仮想メモリ・ページは共有仮想メモリ・ページXを含み、N1は1より大きい正の整数である。
【0091】
勿論、共有仮想メモリ・ページXに対するプロセスAおよびプロセスBにより行われたアクセスの頻度を計算する方法は上述の例に限られず、自然法則に従う他の計算方法を必要に応じて定義してもよい。
【0092】
402では、共有仮想メモリ・ページXに対するプロセスAにより行われたアクセスの監視される頻度が第1の閾値以下であるかどうかを判定し、そうである場合、ステップ403を実施し、そうでない場合、ステップ404を実施する。
【0093】
403では、共有仮想メモリ・ページXに対するプロセスAにより行われたアクセスの監視される頻度が第1の閾値以下であり、共有仮想メモリ・ページX上のプロセスAに対応する現在の管理モードがDSMモードである場合に、共有仮想メモリ・ページX上のプロセスAに対応する管理モードをSPMモードに変更して、ステップ401に戻り、共有仮想メモリ・ページX上のプロセスAに対応する現在の管理モードがSPMモードである場合に、ステップ401に戻る。
【0094】
404では、共有仮想メモリ・ページXに対するプロセスAにより行われたアクセスの監視される頻度が第2の閾値より大きく、共有仮想メモリ・ページX上のプロセスAに対応する現在の管理モードがSPMモードである場合に、共有仮想メモリ・ページX上のプロセスAに対応する管理モードをDSMモードに変更して、ステップ401に戻り、共有仮想メモリ・ページX上のプロセスAに対応する現在の管理モードがDSMモードである場合に、ステップ401に戻る。
【0095】
405では、共有仮想メモリ・ページXに対するプロセスBにより行われたアクセスの監視される頻度が第1の閾値以下であるかどうかを判定し、そうである場合、ステップ406を実施し、そうでない場合、ステップ407を実施する。
【0096】
406では、共有仮想メモリ・ページXに対するプロセスBにより行われたアクセスの監視される頻度が第1の閾値以下であり、共有仮想メモリ・ページX上のプロセスBに対応する現在の管理モードがDSMモードである場合に、共有仮想メモリ・ページX上のプロセスBに対応する管理モードをSPMモードに変更して、ステップ401に戻り、共有仮想メモリ・ページX上のプロセスBに対応する現在の管理モードがSPMモードである場合に、ステップ401に戻る。
【0097】
407では、共有仮想メモリ・ページXに対するプロセスBにより行われたアクセスの監視される頻度が第2の閾値より大きく、共有仮想メモリ・ページX上のプロセスBに対応する現在の管理モードがSPMモードである場合、共有仮想メモリ・ページX上のプロセスBに対応する管理モードをDSMモードに変更して、ステップ401に戻り、共有仮想メモリ・ページX上のプロセスBに対応する現在の管理モードがDSMモードである場合に、ステップ401に戻る。
【0098】
ステップ402乃至404およびステップ405乃至407は必ずしも一定の順序で行われず、同時または連続的に実施してもよいことは分かる。
【0099】
本発明の幾つかの諸実施形態では、例えば、第1の閾値が毎秒1000回、毎秒2000回、毎秒5000回、または別の頻度値であってもよく、第1の閾値が第2の閾値以下であってもよく、第2の閾値が毎秒1000回、毎秒2000回、毎秒3000回、毎秒5000回、または別の頻度値であってもよい。本発明の他の諸実施形態では、例えば、第1の閾値が20%、25%、30%、35%または別の割合であってもよく、第1の閾値が第2の閾値以下であってもよく、第2の閾値が20%、25%、30%、35%または別の割合であってもよい。かかるポリシをアクセス・データに従う消費性選択ポリシとみなしてもよいことは分かる。
【0100】
様々なマルチコア・システムまたはメニーコア・システムにおいて、共有仮想メモリ・ページXのプロセスA(またはプロセスB)に対応する管理モードを様々な方法でDSMモードに変更してもよいことは分かる。
【0101】
本発明の幾つかの諸実施形態では、第1の共有仮想メモリ・ページのプロセスA(またはプロセスB)に対応する管理モードをDSMモードに変更するステップが、第1の物理メモリ空間において、第1の物理メモリ・ページを共有仮想メモリ・ページXに割り当てるステップと、第2の物理メモリ・ページに格納されたデータを第1の物理メモリ・ページにコピーするステップであって、第2の物理メモリ・ページは共有物理メモリ空間に属し、第2の物理メモリ・ページは、共有仮想メモリ・ページXから現在マップされている物理メモリ・ページであるステップと、共有仮想メモリ・ページXと第1の物理メモリ・ページの間のマッピング関係を生成するステップと、DSMモードを共有仮想メモリ・ページXのプロセスA(またはプロセスB)に対応する管理モードとして記録するステップとを含んでもよい。例えば、プロセスA(またはプロセスB)のページ情報構造部に記録された共有仮想メモリ・ページXの管理モードを全てDSMモードとして記録してもよい。さらに、本発明の幾つかの諸実施形態では、第2の物理メモリ・ページが引き続いて有効となったままであってもよく、第2の物理メモリ・ページが、DSMモードを共有仮想メモリ・ページXの管理モードとして使用するプロセス間の同期チャネル、または、SPMモードを共有仮想メモリ・ページXの管理モードとして使用するプロセス間の同期チャネル、または、DSMモードを共有仮想メモリ・ページXの管理モードとして使用するプロセスとSPMモードを共有仮想メモリ・ページXの管理モードとして使用するプロセスとの間の同期チャネルの役割を果たしてもよい。当該同期チャネルは共有仮想メモリ・ページXに固有である。
【0102】
本発明の幾つかの諸実施形態では、共有仮想メモリ・ページXのプロセスA(またはプロセスB)に対応する管理モードをSPMモードに変更するステップが、共有仮想メモリ・ページXと第3の物理メモリ・ページの間のマッピング関係を生成するステップであって、第3の物理メモリ・ページは共有物理メモリ空間に属するステップと、SPMモードを共有仮想メモリ・ページXのプロセスA(またはプロセスB)に対応する管理モードとして記録するステップとを含んでもよい。例えば、プロセスA(またはプロセスB)のページ情報構造部に記録された共有仮想メモリ・ページXの管理モードを全てSPMモードとして記録してもよい。さらに、共有仮想メモリ・ページXと第3の物理メモリ・ページの間のマッピング関係を生成する前に、当該方法がさらに、共有仮想メモリ・ページXから以前にマップされた第4の物理メモリ・ページに格納されたデータ内の変更されたデータを第3の物理メモリ・ページに同期するステップを含んでもよい。
【0103】
勿論、共有仮想メモリ・ページXから以前にマップされた第4の物理メモリ・ページに格納されたデータが不変のままである場合、当該データ同期ステップを省略してもよい。
【0104】
DSMモードとSPMモードは異なるアクセス頻度に対して特定の優位性を有する。したがって、本実施形態の解決策では、共有仮想メモリ・ページに対するプロセスAおよびプロセスBにより行われたアクセスのアクセス特性をそれぞれ監視し、当該監視されるアクセス特性は、当該共有仮想メモリ・ページ上のプロセスAおよびプロセスBに対応する管理モードを再設定するかどうかをそれぞれ判定するための基盤として使用される。当該アクセス特性と当該管理モードの間のかかる適合的な機構は当該共有仮想メモリ・ページへのアクセス性能を高めるのに良く、したがって、対応するプログラムの性能とユーザ・エクスペリエンスを改善するのに良い。さらに、異なるプロセスのアクセス特性は、当該共有仮想メモリ・ページ上の各プロセスに対応する管理モードを再設定するかどうかを判定する基盤の役割を果たし、これは当該管理モードをより適合的にし、アクセス性能を高める。
【0105】
本発明の当該実施形態の上述の解決策をより良く実装できるようにするために、以下では上述の解決策を実装するための関連装置を説明する。
【0106】
図5Aに示すように、本発明の1実施形態に従う共有仮想メモリ・ページの管理モードを決定するための装置500が監視ユニット510および第1の再マッピング・ユニット520備えてもよい。監視ユニット510は、当該共有仮想メモリ・ページに対してプロセスが行ったアクセスのアクセス特性を監視するように構成される。
【0107】
監視ユニット510に接続された第1の再マッピング・ユニット520は、監視ユニット510により監視されるアクセス特性が第1の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードがDSMモードである場合に、当該共有仮想メモリ・ページの管理モードをSPMモードに変更するように構成される。
【0108】
図5Bに示すように、共有仮想メモリ・ページの管理モードを決定するための装置500がさらに、監視ユニット510に接続され、監視ユニット510により監視されるアクセス特性が第2の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードがSPMモードである場合に、当該共有仮想メモリ・ページの管理モードをDSMモードに変更するように構成された第2の再マッピング・ユニット530を備えてもよい。
【0109】
図5Cに示すように、共有仮想メモリ・ページの管理モードを決定するための装置500が、監視ユニット510に接続され、監視ユニット510により監視されるアクセス特性が第2の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードがSPMモードである場合に、当該共有仮想メモリ・ページの管理モードをDSMモードに変更するように構成された第2の再マッピング・ユニット530を備えてもよい。
【0110】
第1の設定条件と第2の設定条件が、監視されるアクセス特性とともに変化してもよいことは分かる。例えば、当該監視されるアクセス特性がアクセス頻度である場合、第1の設定条件と第2の設定条件が当該アクセス頻度に関連する設定条件を含んでもよく、当該監視されるアクセス特性がアクセス・モードである場合、第1の設定条件と第2の設定条件が当該アクセス・モードに関連する設定条件を含んでもよく、当該監視されるアクセス特性がアクセス頻度とアクセス・モードを含む場合、第1の設定条件と第2の設定条件がアクセス頻度とアクセス・モードの両方に関連する設定条件を含んでもよい。
【0111】
本発明の幾つかの諸実施形態では、当該監視されるアクセス特性が第1の共有仮想メモリ・ページに対して当該プロセスにより行われたアクセスのアクセス頻度を含む場合、第1の設定条件が、当該アクセス頻度が第1の閾値以下であることを含んでもよく(例えば、第1の閾値が毎秒1000回、毎秒2000回、毎秒5000回、または別の頻度値であってもよい)、第2の設定条件が、当該アクセス頻度が第2の閾値より大きいことを含んでもよい。第1の閾値が第2の閾値以下であってもよく、第2の閾値が毎秒1000回、毎秒2000回、毎秒3000回、毎秒5000回、または別の頻度値であってもよい。第2の閾値は第1の閾値以上である。このシナリオでは、当該監視されるアクセス頻度が第1の閾値以下であり、第1の共有仮想メモリ・ページの現在の管理モードがDSMモードである場合に、第1の共有仮想メモリ・ページの管理モードをSPMモードに変更してもよく、かつ/または、当該監視されるアクセス頻度が第2の閾値より大きく、第1の共有仮想メモリ・ページの現在の管理モードがSPMモードである場合に、第1の共有仮想メモリ・ページの管理モードをDSMモードに変更してもよい。かかるポリシをアクセス・データに従う消費性選択ポリシとみなしてもよいことは分かる。
【0112】
本発明の他の諸実施形態では、監視されるアクセス特性が、共有仮想メモリ・ページに対するプロセスにより行われたアクセスのアクセス・モードを含む場合に、第1の設定条件が、当該アクセス・モードが書込みアクセスもしくは読書きアクセスである(または、書込みアクセスの割合が第4の閾値を超えるか、または、書込みアクセスの頻度が第3の閾値を超える)ことを含んでもよく、第2の設定条件が、読取専用アクセスまたは読取アクセスの割合が第6の閾値を超えることまたは読取アクセスの頻度が第5の閾値を超えることを含んでもよい。第4の閾値と第6の閾値の合計が1以上であってもよい。このシナリオでは、監視されるアクセス・モードが書込みアクセスまたは読書きアクセスであり(または、書込みアクセスの割合が第4の閾値を超えるか、または、書込みアクセスの頻度が第3の閾値を超える)、第1の共有仮想メモリ・ページの現在の管理モードがDSMモードである場合に、第1の共有仮想メモリ・ページの管理モードをSPMモードに変更してもよく、かつ/または、監視されるアクセス・モードが読取専用アクセスであり(または、読取アクセスの割合が第6の閾値を超えるか、または、読取アクセスの頻度が第5の閾値を超える)、第1の共有仮想メモリ・ページの現在の管理モードがSPMモードである場合に、第1の共有仮想メモリ・ページの管理モードをDSMモードに変更してもよい。他の状況を同様に推論してもよい。かかるポリシをアクセス同期に従う消費性選択ポリシとみなしてもよいことは分かる。
【0113】
本発明の幾つかの諸実施形態では、第1の設定条件が、アクセス頻度が第1の閾値以下であること、またはアクセス・モードが読書きアクセスもしくは書込みアクセスであること、または書込みアクセスの頻度が第3の閾値より大きいこと、または書込みアクセスの割合が第4の閾値より大きいことを含んでもよい。
【0114】
本発明の幾つかの諸実施形態では、監視ユニット510は特に、当該共有仮想メモリ・ページに対するプロセスにより行われたアクセスのアクセス頻度を監視するように構成される。
【0115】
第1の再マッピング・ユニット520を特に、監視ユニット510により監視されるアクセス頻度が第1の閾値以下であり、当該共有仮想メモリ・ページの現在の管理モードが分散共有メモリ・モードである場合、当該共有仮想メモリ・ページの管理モードを共有物理メモリ・モードに変更するように構成してもよい。
【0116】
あるいは、監視ユニット510は特に、共有仮想メモリ・ページに対するプロセスにより行われたアクセスのアクセス・モードを監視するように構成され、第1の再マッピング・ユニット520を特に、監視ユニット510により監視されるアクセス・モードが読書きアクセスまたは書込みアクセスである場合、および、当該共有仮想メモリ・ページの現在の管理モードが分散共有メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを共有物理メモリ・モードに変更するように構成してもよい。
【0117】
あるいは、監視ユニット510は特に、共有仮想メモリ・ページに対するプロセスにより行われた書込みアクセスの頻度を監視するように構成され、第1の再マッピング・ユニット520を特に、監視ユニット510により監視される書込みアクセスの頻度が第3の閾値より大きい場合、および、当該共有仮想メモリ・ページの現在の管理モードが分散共有メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを共有物理メモリ・モードに変更するように構成してもよい。
【0118】
あるいは、監視ユニット510は特に、共有仮想メモリ・ページに対するプロセスにより行われたアクセスの割合を監視するように構成され、第1の再マッピング・ユニット520を特に、監視ユニット510により監視される書込みアクセスの割合が第4の閾値より大きい場合、および、当該共有仮想メモリ・ページの現在の管理モードが分散共有メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを共有物理メモリ・モードに変更するように構成してもよい。
【0119】
本発明の幾つかの諸実施形態では、第2の設定条件は、アクセス頻度が第2の閾値より大きいこと、アクセス・モードが読取専用アクセスであること、読取アクセスの頻度が第5の閾値より大きいこと、または、読取アクセスの割合が第6の閾値より大きいことを含む。第2の閾値が第1の閾値以上であってもよい。
【0120】
監視ユニット510は特に、共有仮想メモリ・ページに対するプロセスにより行われたアクセスの頻度を監視するように構成され、第2の再マッピング・ユニット530を特に、監視ユニット510により監視されるアクセスの頻度が第2の閾値より大きい場合、および、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合に、該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するように構成してもよい。
【0121】
あるいは、監視ユニット510は特に、共有仮想メモリ・ページに対するプロセスにより行われたアクセスのモードを監視するように構成され、第2の再マッピング・ユニット530を特に、監視ユニット510により監視されるアクセスのモードが読取専用アクセスである場合、および、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するように構成してもよい。
【0122】
あるいは、監視ユニット510は特に、当該共有仮想メモリ・ページに対して当該プロセスにより行われた読取アクセスの頻度を監視するように構成され、第2の再マッピング・ユニット530を特に、監視ユニット510により監視される読取アクセスの頻度が第5の閾値より大きい場合、および、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するように構成してもよい。
【0123】
あるいは、監視ユニット510は特に、共有仮想メモリ・ページに対してプロセスにより行われた読取アクセスの割合を監視するように構成され、第2の再マッピング・ユニット530を特に、監視ユニット510により監視される読取アクセスの割合が第6の閾値より大きい場合、および、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するように構成してもよい。
【0124】
本発明の幾つかの諸実施形態では、第1の再マッピング・ユニット520を特に、監視ユニット510により監視されるアクセス特性が第1の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードがDSMモードである場合に、当該共有仮想メモリ・ページと第3の物理メモリ・ページの間のマッピング関係を生成し、SPMモードを当該共有仮想メモリ・ページの管理モードとして記録するように構成してもよい。第3の物理メモリ・ページは共有物理メモリ空間に属し、当該共有仮想メモリ・ページから以前にマップされた物理メモリ・ページに格納されたデータは不変のままである。
【0125】
本発明の幾つかの諸実施形態では、第1の再マッピング・ユニット520を特に、監視ユニット510により監視されるアクセス特性が第1の設定条件を満たし、共有仮想メモリ・ページの現在の管理モードがDSMモードである場合に、第4の物理メモリ・ページに格納されたデータ内の変更されたデータを第3の物理メモリ・ページに同期し、当該共有仮想メモリ・ページと第3の物理メモリ・ページの間のマッピング関係を生成し、SPMモードを当該共有仮想メモリ・ページの管理モードとして記録するように構成してもよい。第3の物理メモリ・ページは共有物理メモリ空間に属し、第4の物理メモリ・ページは当該共有仮想メモリ・ページから以前にマップされた物理メモリ・ページであり、当該物理メモリ・ページに格納されたデータが変更される。
【0126】
本発明の幾つかの諸実施形態では、第2の再マッピング・ユニット530を特に、監視ユニット510により監視されるアクセス特性が第2の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードがSPMモードである場合に、第1の物理メモリ空間において、第1の物理メモリ・ページを当該共有仮想メモリ・ページに割り当て、第2の物理メモリ・ページに格納されたデータを第1の物理メモリ・ページにコピーし、当該共有仮想メモリ・ページと第1の物理メモリ・ページの間のマッピング関係を生成し、DSMモードを当該共有仮想メモリ・ページの管理モードとして記録するように構成してもよい。第2の物理メモリ・ページは共有物理メモリ空間に属し、第2の物理メモリ・ページは、当該共有仮想メモリ・ページから現在マップされている物理メモリ・ページである。
【0127】
本発明の幾つかの諸実施形態では、監視ユニット510は特に、当該共有仮想メモリ・ページに対する第1のプロセスにより行われたアクセスのアクセス特性を監視するように構成される。第1のプロセスはM1個のプロセスを含み、M1は正の整数である。
【0128】
第1の再マッピング・ユニット520を特に、監視ユニット510により監視される共有仮想メモリ・ページに対する第1のプロセスにより行われたアクセスのアクセス特性、が第1の設定条件を満たす場合、および、当該共有仮想メモリ・ページ上の第1のプロセスに対応する現在の管理モードがDSMモードである場合に、当該共有仮想メモリ・ページ上の第1のプロセスに対応する管理モードをSPMモードに変更するように構成してもよい。
【0129】
第2の再マッピング・ユニット530を特に、監視ユニット510により監視される共有仮想メモリ・ページに対する第1のプロセスにより行われたアクセスのアクセス特性が第2の設定条件を満たす場合、および、当該共有仮想メモリ・ページ上の第1のプロセスに対応する現在の管理モードがSPMモードである場合に、当該共有仮想メモリ・ページ上の第1のプロセスに対応する管理モードをDSMモードに変更するように構成してもよい。
【0130】
本発明の幾つかの諸実施形態では、M1が1より大きい場合、共有仮想メモリ・ページに対する当該M1個のプロセスのうち1つにより行われたアクセスの監視されるアクセス特性を、当該共有仮想メモリ・ページに対する第1のプロセスにより行われたアクセスの監視されるアクセス特性として使用してもよい。あるいは、第1の共有仮想メモリ・ページに対する当該M1個のプロセスにより行われたアクセスの監視される統合されたアクセス特性を、当該共有仮想メモリ・ページに対する第1のプロセスにより行われたアクセスの監視されるアクセス特性として使用してもよい。例えば、当該共有仮想メモリ・ページにアクセスする当該M1個のプロセスごとにそれぞれ監視されるアクセス特性の平均、加重平均、総和、または加重和を、当該共有仮想メモリ・ページに対する第1のプロセスにより行われたアクセスの監視されるアクセス特性として使用してもよい。
【0131】
本発明の幾つかの諸実施形態では、監視ユニット510はさらに、当該共有仮想メモリ・ページに対する第2のプロセスにより行われたアクセスのアクセス特性を監視するように構成される。第2のプロセスはM2個のプロセスを含み、M2は正の整数であり、第2のプロセスは第1のプロセスとは異なる。
【0132】
第1の再マッピング・ユニット520をさらに、監視ユニット510により監視される共有仮想メモリ・ページに対する第2のプロセスにより行われたアクセスのアクセス特性が第1の設定条件を満たす場合、および、当該共有仮想メモリ・ページ上の第2のプロセスに対応する現在の管理モードがDSMモードである場合、当該共有仮想メモリ・ページ上の第2のプロセスに対応する管理モードをSPMモードに変更するように構成してもよい。
【0133】
第2の再マッピング・ユニット530は、監視ユニット510により監視される共有仮想メモリ・ページに対する第2のプロセスにより行われたアクセスのアクセス特性が第2の設定条件を満たす場合、および、当該共有仮想メモリ・ページ上の第2のプロセスに対応する現在の管理モードがSPMモードである場合、当該共有仮想メモリ・ページ上の第2のプロセスに対応する管理モードをDSMモードに変更するように構成される。
【0134】
本発明の幾つかの諸実施形態では、M2が1より大きい場合、共有仮想メモリ・ページに対するM2個のプロセスの1つにより行われたアクセスの監視されるアクセス特性を当該共有仮想メモリ・ページに対する第2のプロセスにより行われたアクセスの監視されるアクセス特性として使用してもよい。あるいは、第1の共有仮想メモリ・ページに対する当該M2個のプロセスにより行われたアクセスの監視される統合されたアクセス特性を、当該共有仮想メモリ・ページに対する第2のプロセスにより行われたアクセスの監視されるアクセス特性として使用してもよい。例えば、当該共有仮想メモリ・ページにアクセスする当該M2個のプロセスごとにそれぞれ監視されるアクセス特性の平均、加重平均、総和、または加重和を、当該共有仮想メモリ・ページに対する第のプロセスにより行われたアクセスの監視されるアクセス特性として使用してもよい。
【0135】
例えば、第1のプロセス(または第2のプロセス)が複数のプロセスを含む場合、第1の再マッピング・ユニット520を特に、共有仮想メモリ・ページにアクセスする第1のプロセス(または第2のプロセス)内のプロセスごとにそれぞれ監視ユニット510により監視されるアクセス特性の平均、加重平均、総和、または加重和を、当該共有仮想メモリ・ページにアクセスする第1のプロセス(または第2のプロセス)の監視されるアクセス特性として使用するか、または、当該共有仮想メモリ・ページにアクセスする第1のプロセス(または第2のプロセス)内の或るプロセスに関して監視ユニット510により監視されるアクセス特性を、当該共有仮想メモリ・ページにアクセスする第1のプロセス(または第2のプロセス)の監視されるアクセス特性として使用し、当該共有仮想メモリ・ページに対するプロセスにより行われたアクセスの監視されるアクセス特性が第1の条件を満たす場合、および、当該共有仮想メモリ・ページ上の第1のプロセス(または第2のプロセス)に対応する現在の管理モードが分散共有メモリ・モードである場合に、当該共有仮想メモリ・ページ上の第1のプロセス(または第2のプロセス)に対応する管理モードを共有物理メモリ・モードに変更するように構成してもよい。
【0136】
別の例では、第1のプロセス(または第2のプロセス)が複数のプロセスを含む場合、第2の再マッピング・ユニット530を特に、共有仮想メモリ・ページにアクセスする第1のプロセス(または第2のプロセス)内のプロセスごとにそれぞれ監視ユニット510により監視されるアクセス特性の平均、加重平均、総和、または加重和を、当該共有仮想メモリ・ページにアクセスする第1のプロセス(または第2のプロセス)の監視されるアクセス特性として使用するか、または、当該共有仮想メモリ・ページにアクセスする第1のプロセス(または第2のプロセス)内の或るプロセスに関して監視ユニット510により監視されるアクセス特性を、当該共有仮想メモリ・ページにアクセスする第1のプロセス(または第2のプロセス)の監視されるアクセス特性として使用し、当該共有仮想メモリ・ページに対するプロセスにより行われたアクセスの監視されるアクセス特性が第2の条件を満たす場合、および、当該共有仮想メモリ・ページ上の第1のプロセス(または第2のプロセス)に対応する現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページ上の第1のプロセス(または第2のプロセス)に対応する管理モードを分散共有メモリ・モードに変更するように構成してもよい。
【0137】
共有仮想メモリ・ページの管理モードを決定するための装置500を、アクセス・ネットワーク装置またはコアネットワーク装置またはルータまたは別の通信装置のような通信装置に展開してもよく、共有仮想メモリ・ページの管理モードを決定するための装置500を、サーバまたはパーソナル・コンピュータまたは別のコンピュータ装置に展開してもよいことは分かる。
【0138】
本実施形態における共有仮想メモリ・ページの管理モードを決定するための装置500における機能モジュールの機能を、当該方法の実施形態で説明した方法に従って実装してもよいことは分かる。当該装置の詳細な実装プロセスについては、当該方法の実施形態における関連説明を参照されたい。ここではさらに繰り返し説明することはしない。
【0139】
分かるように、本実施形態における共有仮想メモリ・ページの管理モードを決定するための装置500は、当該共有仮想メモリ・ページのアクセス特性を監視し、当該監視されるアクセス特性が第1の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードが分散共有メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを共有物理メモリ・モードに変更するか、または、当該監視されるアクセス特性が第2の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更する。当該アクセス特性の監視結果に従って当該共有仮想メモリ・ページの管理モードを再設定する機構により、当該管理モードと当該アクセス特性の間の良好なマッチングが実現され、DSMモードまたはSPMモードの利点がより良く活かされ、共有仮想メモリへのアクセス性能を高めるための機構基盤が提供される。
【0140】
図6は、本発明に従うコンピュータ・システムの略構造図である。図6に示すように、本実施形態のコンピュータ・システムは、少なくとも1つのバス601と、バス601に接続された少なくとも1つのプロセッサ602と、バス601に接続された少なくとも1つのメモリ603とを備える。
【0141】
プロセッサ602はバス601を使用して、当該共有仮想メモリ・ページのアクセス特性を監視し、当該監視されるアクセス特性が第1の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードがDSMモードである場合に、当該共有仮想メモリ・ページの管理モードをSPMモードに変更し、かつ/または、当該監視されるアクセス特性が第2の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードがSPMモードである場合に、当該共有仮想メモリ・ページの管理モードをDSMモードに変更するためのメモリ603内のコードを呼び出す。
【0142】
本発明の幾つかの諸実施形態では、例えば、プロセッサ602が、共有仮想メモリ・ページ(引用の都合上、以下では第1の共有仮想メモリ・ページと称する)に対するN個のプロセスにより行われたアクセスのアクセス特性を監視することができる。Nは正の整数である。例えば、Nが1に等しい場合、当該N個のプロセスが当該システムに現存する任意のプロセスまたは特定のプロセスを指してもよく、Nが1より大きい場合、当該N個のプロセスが当該システムに現存するプロセスの一部または全部を指してもよい。例えば、当該N個のプロセスが、当該システムに現存し第1の共有仮想メモリ・ページにアクセスする可能性があるプロセスの一部または全部を指してもよい。本発明の幾つかの諸実施形態では、例えば、性能カウンタまたは他のハードウェアもしくはプログラムを使用して当該共有仮想メモリ・ページのアクセス特性を監視してもよい。
【0143】
本発明の幾つかの諸実施形態では、例えば、プロセッサ602が、共有仮想メモリ・ページに対するプロセスにより行われたアクセスの様々なアクセス特性を監視することができる。当該アクセス特性がアクセス頻度および/またはアクセス・モード等を含んでもよい。当該アクセス・モードが読取専用アクセス、読書きアクセス、書込みアクセス等を含んでもよい。即ち、プロセッサ602が、当該共有仮想メモリ・ページに対するプロセスにより行われたアクセスのアクセス頻度および/またはアクセス・モードのようなアクセス特性を監視することができる。
【0144】
第1の設定条件と第2の設定条件が、監視されるアクセス特性とともに変化してもよいことは分かる。例えば、当該監視されるアクセス特性がアクセス頻度である場合、第1の設定条件と第2の設定条件が当該アクセス頻度に関連する設定条件を含んでもよく、当該監視されるアクセス特性がアクセス・モードである場合、第1の設定条件と第2の設定条件が当該アクセス・モードに関連する設定条件を含んでもよく、当該監視されるアクセス特性がアクセス頻度とアクセス・モードを含む場合、第1の設定条件と第2の設定条件がアクセス頻度とアクセス・モードの両方に関連する設定条件を含んでもよい。
【0145】
本発明の幾つかの諸実施形態では、監視されるアクセス特性が第1の共有仮想メモリ・ページに対してプロセスにより行われたアクセスのアクセス頻度を含む場合、第1の設定条件が、当該アクセス頻度が第1の閾値以下であることを含んでもよく(例えば、第1の閾値が毎秒1000回、毎秒2000回、毎秒5000回、または別の頻度値であってもよい)、第2の設定条件が、当該アクセス頻度が第2の閾値より大きいことを含んでもよい。第1の閾値が第2の閾値以下であってもよく、第2の閾値が毎秒1000回、毎秒2000回、毎秒3000回、毎秒5000回、または別の頻度値であってもよい。このシナリオでは、当該監視されるアクセス頻度が第1の閾値以下であり、第1の共有仮想メモリ・ページの現在の管理モードがDSMモードである場合に、第1の共有仮想メモリ・ページの管理モードをSPMモードに変更してもよく、かつ/または、当該監視されるアクセス頻度が第2の閾値より大きく、第1の共有仮想メモリ・ページの現在の管理モードがSPMモードである場合に、第1の共有仮想メモリ・ページの管理モードをDSMモードに変更してもよい。かかるポリシをアクセス・データに従う消費性選択ポリシとみなしてもよいことは分かる。
【0146】
本発明の他の諸実施形態では、監視されるアクセス特性が、共有仮想メモリ・ページに対するプロセスにより行われたアクセスのアクセス・モードを含む場合に、第1の設定条件が、当該アクセス・モードが書込みアクセスもしくは読書きアクセスである(または、書込みアクセスの割合が第4の閾値を超えるか、もしくは、書込みアクセスの頻度が第3の閾値を超える)ことを含んでもよく、第2の設定条件が、読取専用アクセスまたは読取アクセスの割合が第6の閾値を超えることまたは読取アクセスの頻度が第5の閾値を超えることを含んでもよい。第4の閾値と第6の閾値の合計が1以上であってもよい。このシナリオでは、プロセッサ602により監視されるアクセス・モードが書込みアクセスまたは読書きアクセスであり(または書込みアクセスの割合が第4の閾値を超えるか、もしくは、書込みアクセスの頻度が第3の閾値を超える)、第1の共有仮想メモリ・ページの現在の管理モードがDSMモードである場合、プロセッサ602が第1の共有仮想メモリ・ページの管理モードをSPMモードに変更してもよく、かつ/または、プロセッサ602により監視されるアクセス・モードが読取専用アクセス(または読取アクセスの割合が第6の閾値を超えるか、もしくは、読取アクセスの頻度が第5の閾値を超える)であり、第1の共有仮想メモリ・ページの現在の管理モードがSPMモードである場合、プロセッサ602は第1の共有仮想メモリ・ページの管理モードをDSMモードに変更してもよく、他の状況を同様に推論してもよい。
【0147】
本発明の幾つかの諸実施形態では、プロセッサ602により、第1の共有仮想メモリ・ページの管理モードをDSMモードに変更するステップが、第1の物理メモリ空間において、第1の物理メモリ・ページを第1の共有仮想メモリ・ページに割り当てるステップと、第2の物理メモリ・ページに格納されたデータを第1の物理メモリ・ページにコピーするステップであって、第2の物理メモリ・ページは共有物理メモリ空間に属し(当該共有物理メモリ空間は幾つかのコアにより共有できる物理メモリ空間である)、第2の物理メモリ・ページは第1の共有仮想メモリ・ページから現在マップされている物理メモリ・ページであるステップと、第1の共有仮想メモリ・ページと第1の物理メモリ・ページの間のマッピング関係を生成するステップと、DSMモードを第1の共有仮想メモリ・ページの管理モードとして記録するステップとを含んでもよい。
【0148】
本発明の幾つかの諸実施形態では、プロセッサ602により、当該共有仮想メモリ・ページの管理モードをSPMモードに変更するステップが、第1の共有仮想メモリ・ページと第3の物理メモリ・ページの間のマッピング関係を生成するステップであって、第3の物理メモリ・ページは共有物理メモリ空間に属する(当該共有物理メモリ空間は幾つかのコアにより共有できる物理メモリ空間である)ステップと、SPMモードを第1の共有仮想メモリ・ページの管理モードとして記録するステップであって、当該共有仮想メモリ・ページから以前にマップされた物理メモリ・ページに格納されたデータは不変のままであるステップとを含んでもよい。
【0149】
本発明の幾つかの諸実施形態では、プロセッサ602により、共有仮想メモリ・ページの管理モードをSPMモードに変更するステップが、プロセッサ602により、第4の物理メモリ・ページに格納されたデータ内の変更されたデータを第3の物理メモリ・ページと同期するステップと、第1の共有仮想メモリ・ページと第3の物理メモリ・ページの間のマッピング関係を生成するステップであって、第3の物理メモリ・ページは共有物理メモリ空間に属する(当該共有物理メモリ空間は幾つかのコアにより共有できる物理メモリ空間である)ステップと、SPMモードを第1の共有仮想メモリ・ページの管理モードとして記録するステップであって、第4の物理メモリ・ページは当該共有仮想メモリ・ページから以前にマップされた物理メモリ・ページであり、当該物理メモリ・ページに格納されたデータが変更されているステップとを含んでもよい。
【0150】
プロセッサ602は、多様な方法でDSMモード/SPMモードを第1の共有仮想メモリ・ページの管理モードとして記録してもよい。例えば、管理モードのフラグ・ビットが第1の共有仮想メモリ・ページに対して設定され、当該管理モードのフラグ・ビットを、第1の共有仮想メモリ・ページの管理モードがDSMモードであるかまたはSPMモードであるかを識別するための異なる値に設定してもよい。あるいは、プロセッサ602が、プロセス(または複数のプロセスもしくは全てのプロセス)のページ情報構造部に記録された第1の共有仮想メモリ・ページの管理モードをDSMモードまたはSPMモードとして記録してもよい。他の記録方法をここで徹底的に列挙することはしない。
【0151】
本発明の幾つかの諸実施形態では、プロセッサ602は、(DSMモードまたはSPMモードのような)管理モードを(第1の共有仮想メモリ・ページのような)共有仮想メモリ・ページごとに設定してもよい。このシナリオでは、第1の共有仮想メモリ・ページにアクセスする全てのプロセスに対して、第1の共有仮想メモリ・ページの管理モードは同一である。勿論、各プロセスに対応する(DSMモードまたはSPMモードのような)管理モードを(第1の共有仮想メモリ・ページのような)共有仮想メモリ・ページごとに設定してもよい。このシナリオでは、第1の共有仮想メモリ・ページにアクセスする全てのプロセスに対して、第1の共有仮想メモリ・ページの管理モードは同一であるかまたは異なる。例えば、プロセスAおよびプロセスBが存在すると仮定すると、第1の共有仮想メモリ・ページ上のプロセスAに対応する管理モードがDSMモードであってもよく、第1の共有仮想メモリ・ページ上のプロセスBに対応する管理モードがSPMモードであってもよい。
【0152】
本発明の幾つかの諸実施形態では、プロセッサ602が第1の共有仮想メモリ・ページに対する第1のプロセスにより行われたアクセスのアクセス特性を監視してもよい。第1のプロセスはM1個のプロセスを含み、M1は正の整数である。プロセッサ602は、当該監視されるアクセス特性が第1の設定条件を満たし、第1の共有仮想メモリ・ページ上の第1のプロセスに対応する現在の管理モードがDSMモードである場合に、第1の共有仮想メモリ・ページ上の第1のプロセスに対応する管理モードをSPMモードに変更し、かつ/または、プロセッサ602は、当該監視されるアクセス特性が第2の設定条件を満たし、第1の共有仮想メモリ・ページ上の第1のプロセスに対応する現在の管理モードがSPMモードである場合に、第1の共有仮想メモリ・ページ上の第1のプロセスに対応する管理モードをDSMモードに変更してもよい。
【0153】
本発明の幾つかの諸実施形態では、プロセッサ602がさらに、第1の共有仮想メモリ・ページに対する第2のプロセスにより行われたアクセスのアクセス特性を監視してもよい。第2のプロセスはM2個のプロセスを含み、M2は正の整数であり、第2のプロセスは第1のプロセスとは異なる。プロセッサ602が、第1の共有仮想メモリ・ページに対する第2のプロセスにより行われたアクセスの監視されるアクセス特性が第3の設定条件を満たし、第1の共有仮想メモリ・ページ上の第2のプロセスに対応する現在の管理モードがDSMモードである場合に、第1の共有仮想メモリ・ページ上の第2のプロセスに対応する管理モードをSPMモードに変更してもよく、かつ/または、プロセッサ602が、第1の共有仮想メモリ・ページに対する第2のプロセスにより行われたアクセスの監視されるアクセス特性が第4の設定条件を満たし、第1の共有仮想メモリ・ページ上の第2のプロセスに対応する現在の管理モードがSPMモードである場合に、第1の共有仮想メモリ・ページ上の第2のプロセスに対応する管理モードをDSMモードに変更してもよい。第3の設定条件は第1の条件と同一であるかまたは異なり、第4の設定条件は第2の条件と同一であるかまたは異なる。
【0154】
例えば、第1のプロセス(または第2のプロセス)が複数のプロセスを含む場合、プロセッサ602は、共有仮想メモリ・ページにアクセスする第1のプロセス(または第2のプロセス)内のプロセスごとにそれぞれ監視されるアクセス特性の平均、加重平均、総和、または加重和を、当該共有仮想メモリ・ページにアクセスする第1のプロセス(または第2のプロセス)の監視されるアクセス特性として使用するか、または、当該共有仮想メモリ・ページにアクセスする第1のプロセス(または第2のプロセス)内の或るプロセスに対して監視されるアクセス特性を、当該共有仮想メモリ・ページにアクセスする第1のプロセス(または第2のプロセス)の監視されるアクセス特性として使用し、当該共有仮想メモリ・ページに対するプロセスにより行われたアクセスの監視されるアクセス特性が第1の条件を満たす場合、および、当該共有仮想メモリ・ページ上の第1のプロセス(または第2のプロセス)に対応する現在の管理モードが分散共有メモリ・モードである場合に、当該共有仮想メモリ・ページ上の第1のプロセス(または第2のプロセス)に対応する管理モードを共有物理メモリ・モードに変更してもよい。
【0155】
別の例では、第1のプロセス(または第2のプロセス)が複数のプロセスを含む場合、プロセッサ602は、共有仮想メモリ・ページにアクセスする第1のプロセス(または第2のプロセス)内のプロセスごとにそれぞれ監視されるアクセス特性の平均、加重平均、総和、または加重和を当該共有仮想メモリ・ページにアクセスする第1のプロセス(または第2のプロセス)の監視されるアクセス特性として使用するか、または、当該共有仮想メモリ・ページにアクセスする第1のプロセス(または第2のプロセス)内の或るプロセスに対して監視されるアクセス特性を、当該共有仮想メモリ・ページにアクセスする第1のプロセス(または第2のプロセス)の監視されるアクセス特性として使用し、当該共有仮想メモリ・ページに対するプロセスにより行われたアクセスの監視されるアクセス特性が第2の条件を満たす場合、および、当該共有仮想メモリ・ページ上の第1のプロセス(または第2のプロセス)に対応する現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページ上の第1のプロセス(または第2のプロセス)に対応する管理モードを分散共有メモリ・モードに変更してもよい。
【0156】
図7を参照されたい。図7は、本発明の1実施形態に従う別のコンピュータ・システム600の略図である。コンピュータ・システム600はさらに、入力装置604と出力装置605を備える。入力装置604と出力装置605はバス601に接続される。
【0157】
本実施形態で提供するコンピュータ・システムを使用して、図1乃至図4の任意の方法の実施形態の技術的解決策におけるコンピュータ・システムに対応する部分を実装することができる。この実装原理と技術的効果は同様であり、ここではこれ以上繰り返さない。図6または図7は、本発明で提供するコンピュータ・システムの略構造図にすぎず、その具体的な構造を実際の条件に従って調節してもよい。
【0158】
本実施形態のコンピュータ・システム600が、アクセス・ネットワーク装置またはコアネットワーク装置またはルータまたは別の通信装置のような通信装置であってもよく、コンピュータ・システム600がサーバまたはパーソナル・コンピュータまたは別のコンピュータ装置であってもよいことは分かる。
【0159】
本実施形態のコンピュータ・システム600内の構成要素の機能を、上記方法の実施形態で説明した方法に従って実装できることは分かる。詳細な実装のプロセスに関しては、上記方法の実施形態における関連説明を参照することができ、ここではさらに繰り返し説明することはしない。
【0160】
本発明の1実施形態ではさらにコンピュータ記憶媒体を提供する。当該コンピュータ記憶媒体がプログラムを格納してもよい。当該プログラムを実行すると、当該プログラムは上記方法の実施形態で説明した共有仮想メモリ・ページの管理モードを決定するための方法のステップの一部または全部を実行することができる。
【0161】
簡単のため、上述の方法の諸実施形態は一連の動作として説明されていることに留意されたい。しかし、本発明によれば幾つかのステップが他の順序を使用するかまたは同時に実施されてもよいので、本発明は説明した動作順序に限定されないことは当業者には理解されるべきである。また、説明した諸実施形態の全ては好適な諸実施形態であり、関連する動作とモジュールは必ずしも本発明により必要とされないことは当業者には理解されるべきである。
【0162】
上述の諸実施形態では各実施形態の説明にはその重点があり、幾つかの実施形態は詳細に説明されていないかもしれない。他の諸実施形態の関連説明を参照することができる。
【0163】
本願で提供する幾つかの諸実施形態では、開示した装置を他の方式で実装してもよいことは理解される。例えば、説明した装置の実施形態は単に例示的なものである。例えば、ユニット分割は単なる論理的な機能分割であり、実際の実装では他の分割があってもよい。例えば、複数のユニットまたは構成要素を結合するかもしくは別のシステムに統合してもよく、または、幾つかの機能を無視するかまたは実施しなくともよい。さらに、表示または説明した相互接続、直接接続、または通信接続を、幾つかのインタフェースを介して実装してもよい。装置またはユニット間の間接接続または通信接続を、電気的な形態、機械的な形態、または他の形態で実装してもよい。
【0164】
別々の部分として説明したユニットが物理的に独立であってもなくてもよく、ユニットとして表示された部分が物理ユニットであってもなくてもよく、1つの位置に配置されてもよく、または、複数のネットワーク・ユニットに分散されてもよい。当該ユニットの一部または全部を、実際のニーズに従って実施形態の解決策の目的を達成するように選択してもよい。
【0165】
さらに、本発明の諸実施形態の機能ユニットを1つの処理ユニットに統合してもよく、または、当該ユニットの各々が物理的に単体で存在してもよく、または、2つもしくは複数のユニットを1つのユニットに統合してもよい。当該統合されたユニットをハードウェアの形態で実装してもよく、または、ソフトウェア機能ユニットの形態で実装してもよい。
【0166】
当該統合されたユニットをソフトウェア機能ユニットの形態で実装して独立な製品として販売または使用するとき、当該統合されたユニットをコンピュータ可読記憶媒体に格納してもよい。かかる理解のもと、本発明の技術的解決策を本質的に、先行技術に寄与する部分を、または当該技術的解決策の全部もしくは一部を、ソフトウェア製品の形態で提供してもよい。当該コンピュータソフトウェア製品は記憶媒体に格納され、コンピュータ装置(パーソナル・コンピュータ、サーバ、ネットワーク装置等であってもよい)が、本発明の諸実施形態で説明した方法のステップの全部または一部を実行できるようにするための幾つかの命令を含む。上述の記憶媒体には、USBフラッシュ・ディスク、読取専用メモリ(Read−Only Memory、ROM)、ランダム・アクセスメモリ(Random Access Memory、RAM)、取外し可能ハード・ディスク、磁気ディスク、または光ディスクのような、プログラム・コードを格納できる任意の媒体が含まれる。
【0167】
以上の諸実施形態は、本発明の技術的解決策を説明するために提供したものにすぎず、本発明を限定するものではない。以上の諸実施形態を参照して本発明を詳細に説明したが、本発明の諸実施形態の技術的解決策の趣旨と範囲を逸脱せずに、当業者が、上述の諸実施形態で説明した技術的解決策に修正を加えるか、または、その一部の技術的特徴に均等な置換えを行ってもよいことは当業者には理解されるべきである。
【符号の説明】
【0168】
500 共有仮想メモリ・ページの管理モードを決定するための装置
510 監視ユニット
520 第1のマッピング・ユニット
530 第2のマッピング・ユニット
600 コンピュータ・システム
602 プロセッサ
603 メモリ
604 入力装置
605 出力装置
図1
図2A
図2B
図3
図4
図5A
図5B
図5C
図6
図7