(57)【特許請求の範囲】
【請求項１】
共有仮想メモリ・ページの管理モードを決定するための方法であって、
前記共有仮想メモリ・ページに対するプロセスに基づいて行ったアクセスのアクセス特性を監視するステップと、
前記監視されるアクセス特性が第１の設定条件を満たし、前記共有仮想メモリ・ページの現在の管理モードが分散共有メモリ・モードである場合に、前記共有仮想メモリ・ページの前記管理モードを共有物理メモリ・モードに変更するステップと、
を含み、
前記第１の設定条件は、アクセス頻度が第１の閾値以下であること、アクセス・モードが読書きアクセスもしくは書込みアクセスであること、前記書込みアクセスの頻度が第３の閾値より大きいこと、または、前記書込みアクセスの割合が第４の閾値より大きいことを含む、
方法。
【請求項２】
前記監視されるアクセス特性が第２の設定条件を満たし、前記共有仮想メモリ・ページの前記現在の管理モードが共有物理メモリ・モードである場合、前記共有仮想メモリ・ページの前記管理モードを分散共有メモリ・モードに変更するステップをさらに含み、
前記第２の設定条件は、前記アクセス頻度が第２の閾値より大きいこと、前記アクセス・モードが読取専用アクセスであること、読取アクセスの頻度が第５の閾値より大きいこと、または、前記読取アクセスの割合が第６の閾値より大きいことを含み、前記第２の閾値が前記第１の閾値以上である、
請求項１に記載の方法。
【請求項３】
前記共有仮想メモリ・ページの前記管理モードを分散共有メモリ・モードに変更するステップは、
第１の物理メモリ空間において、第１の物理メモリ・ページを前記共有仮想メモリ・ページに割り当てるステップと、
第２の物理メモリ・ページに格納されたデータを前記第１の物理メモリ・ページにコピーするステップであって、前記第２の物理メモリ・ページは共有物理メモリ空間に属し、前記第２の物理メモリ・ページは、前記共有仮想メモリ・ページから現在マップされている物理メモリ・ページであるステップと、
前記共有仮想メモリ・ページと前記第１の物理メモリ・ページの間のマッピング関係を生成するステップと、
前記分散共有メモリ・モードを前記共有仮想メモリ・ページの前記管理モードとして記録するステップと、
を含む、請求項２に記載の方法。
【請求項４】
前記共有仮想メモリ・ページの前記管理モードを共有物理メモリ・モードに変更するステップは、
前記共有仮想メモリ・ページと第３の物理メモリ・ページの間のマッピング関係を生成するステップであって、前記第３の物理メモリ・ページは共有物理メモリ空間に属するステップと、
前記共有物理メモリ・モードを前記共有仮想メモリ・ページの前記管理モードとして記録するステップと、
を含む、請求項１乃至３の何れか１項に記載の方法。
【請求項５】
監視ユニットによって監視されるアクセス特性が第１の設定条件を満たし、前記共有仮想メモリ・ページの現在の管理モードが分散共有メモリ・モードである場合、第４の物理メモリ・ページに格納されたデータ内の変更されたデータを第３の物理メモリ・ページに同期するステップであって、前記第４の物理メモリ・ページは前記共有仮想メモリ・ページから以前にマップされた物理メモリ・ページであるステップをさらに含む、請求項４に記載の方法。
【請求項６】
前記共有仮想メモリ・ページに対するプロセスに基づいて行ったアクセスのアクセス特性を監視するステップは、前記共有仮想メモリ・ページにアクセスするための複数のプロセスごとにそれぞれ監視されるアクセス特性の平均、加重平均、総和、または加重和を、前記共有仮想メモリ・ページに対するプロセスに基づいて行ったアクセスのアクセス特性として使用するステップ、または、前記共有仮想メモリ・ページにアクセスするための前記複数のプロセスのうちの１つのプロセスについて監視されるアクセス特性を、前記共有仮想メモリ・ページに対するプロセスに基づいて行ったアクセスのアクセス特性として使用するステップを含み、
前記共有仮想メモリ・ページの前記管理モードを共有物理メモリ・モードに変更するステップは、前記監視されるアクセス特性が前記第１の設定条件を満たし、前記共有仮想メモリ・ページに対する前記複数のプロセスに対応する前記現在の管理モードが分散共有メモリ・モードである場合、前記共有仮想メモリ・ページに対する前記複数のプロセスに対応する前記管理モードを共有物理メモリ・モードに変更するステップを含む、請求項２に記載の方法。
【請求項７】
前記共有仮想メモリ・ページに対するプロセスに基づいて行ったアクセスのアクセス特性を監視するステップは、前記共有仮想メモリ・ページにアクセスするための複数のプロセスごとにそれぞれ監視されるアクセス特性の平均、加重平均、総和、または加重和を、前記共有仮想メモリ・ページに対するプロセスに基づいて行ったアクセスのアクセス特性として使用するステップ、または、前記共有仮想メモリ・ページにアクセスするための前記複数のプロセスのうちの１つのプロセスについて監視されるアクセス特性を、前記共有仮想メモリ・ページに対するプロセスに基づいて行ったアクセスのアクセス特性として使用するステップを含み、
前記共有仮想メモリ・ページの前記管理モードを分散共有メモリ・モードに変更するステップは、前記監視されるアクセス特性が前記第２の設定条件を満たし、前記共有仮想メモリ・ページに対する前記複数のプロセスに対応する前記現在の管理モードが共有物理メモリ・モードである場合、前記共有仮想メモリ・ページに対する前記複数のプロセスに対応する前記管理モードを分散共有メモリ・モードに変更するステップを含む、請求項２に記載の方法。
【請求項８】
共有仮想メモリ・ページの管理モードを決定するための装置であって、
前記共有仮想メモリ・ページに対するプロセスに基づいて行ったアクセスのアクセス特性を監視するように構成された監視ユニットと、
前記監視ユニットに接続され、前記監視ユニットにより監視される前記アクセス特性が第１の設定条件を満たし、前記共有仮想メモリ・ページの現在の管理モードが分散共有メモリ・モードである場合に、前記共有仮想メモリ・ページの前記管理モードを共有物理メモリ・モードに変更するように構成された、第１の再マッピング・ユニットと、
を備え、
前記第１の設定条件は、アクセス頻度が第１の閾値以下であること、アクセス・モードが読書きアクセスもしくは書込みアクセスであること、前記書込みアクセスの頻度が第３の閾値より大きいこと、または、前記書込みアクセスの割合が第４の閾値より大きいことを含む、
装置。
【請求項９】
前記監視ユニットに接続され、前記監視ユニットにより監視される前記アクセス特性が第２の設定条件を満たし、前記共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合に、前記共有仮想メモリ・ページの前記管理モードを分散共有メモリ・モードに変更するように構成された、第２の再マッピング・ユニットをさらに備え、
前記第２の設定条件は、前記アクセス頻度が第２の閾値より大きいこと、前記アクセス・モードが読取専用アクセスであること、読取アクセスの頻度が第５の閾値より大きいこと、または、前記読取アクセスの割合が第６の閾値より大きいことを含み、前記第２の閾値が前記第１の閾値以上である、
請求項８に記載の装置。
【請求項１０】
前記第２の再マッピング・ユニットは特に、前記監視ユニットにより監視される前記アクセス特性が前記第２の設定条件を満たし、前記共有仮想メモリ・ページの前記現在の管理モードが共有物理メモリ・モードである場合、第１の物理メモリ空間において、第１の物理メモリ・ページを前記共有仮想メモリ・ページに割り当て、第２の物理メモリ・ページに格納されたデータを前記第１の物理メモリ・ページにコピーし、前記共有仮想メモリ・ページと前記第１の物理メモリ・ページの間のマッピング関係を生成し、前記分散共有メモリ・モードを前記共有仮想メモリ・ページの前記管理モードとして記録するように構成され、前記第２の物理メモリ・ページは共有物理メモリ空間に属し、前記第２の物理メモリ・ページは、前記共有仮想メモリ・ページから現在マップされている物理メモリ・ページである、請求項９に記載の装置。
【請求項１１】
前記第１の再マッピング・ユニットは特に、前記監視ユニットにより監視される前記アクセス特性が第１の設定条件を満たし、前記共有仮想メモリ・ページの前記現在の管理モードが分散共有メモリ・モードである場合に、前記共有仮想メモリ・ページと第３の物理メモリ・ページの間のマッピング関係を生成し、前記共有物理メモリ・モードを前記共有仮想メモリ・ページの前記管理モードとして記録するように構成され、前記第３の物理メモリ・ページは共有物理メモリ空間に属する、請求項８乃至１０の何れか１項に記載の装置。
【請求項１２】
前記第１の再マッピング・ユニットはさらに、前記監視ユニットにより監視される前記アクセス特性が第１の設定条件を満たし、前記共有仮想メモリ・ページの前記現在の管理モードが分散共有メモリ・モードである場合に、第４の物理メモリ・ページに格納されたデータ内の変更されたデータを第３の物理メモリ・ページに同期するように構成され、前記第３の物理メモリ・ページは前記共有物理メモリ空間に属し、前記第４の物理メモリ・ページは前記共有仮想メモリ・ページから以前にマップされた物理メモリ・ページである、請求項１１に記載の装置。
【請求項１３】
前記共有仮想メモリ・ページに対するプロセスに基づいて行ったアクセスのアクセス特性を監視するように構成された監視ユニットは、前記共有仮想メモリ・ページにアクセスするための複数のプロセスごとにそれぞれ監視されるアクセス特性の平均、加重平均、総和、または加重和を、前記共有仮想メモリ・ページに対するプロセスに基づいて行ったアクセスのアクセス特性として使用するか、または、前記共有仮想メモリ・ページにアクセスするための前記複数のプロセスのうちの１つのプロセスについて監視されるアクセス特性を、前記共有仮想メモリ・ページに対するプロセスに基づいて行ったアクセスのアクセス特性として使用し、
前記共有仮想メモリ・ページの前記管理モードを共有物理メモリ・モードに変更するように構成された第１の再マッピング・ユニットは、前記監視されるアクセス特性が前記第１の設定条件を満たし、前記共有仮想メモリ・ページに対する前記複数のプロセスに対応する前記現在の管理モードが分散共有メモリ・モードである場合、前記共有仮想メモリ・ページに対する前記複数のプロセスに対応する前記管理モードを共有物理メモリ・モードに変更するように構成されている、請求項８または９に記載の装置。
【請求項１４】
前記共有仮想メモリ・ページに対するプロセスに基づいて行ったアクセスのアクセス特性を監視するように構成された監視ユニットは、前記共有仮想メモリ・ページにアクセスするための複数のプロセスごとにそれぞれ監視されるアクセス特性の平均、加重平均、総和、または加重和を、前記共有仮想メモリ・ページに対するプロセスに基づいて行ったアクセスのアクセス特性として使用するか、または、前記共有仮想メモリ・ページにアクセスするための前記複数のプロセスのうちの１つのプロセスについて監視されるアクセス特性を、前記共有仮想メモリ・ページに対するプロセスに基づいて行ったアクセスのアクセス特性として使用し、
前記共有仮想メモリ・ページの前記管理モードを分散共有メモリ・モードに変更するように構成された第２の再マッピング・ユニットは、前記監視されるアクセス特性が前記第２の設定条件を満たし、前記共有仮想メモリ・ページに対する前記複数のプロセスに対応する前記現在の管理モードが共有物理メモリ・モードである場合、前記共有仮想メモリ・ページに対する前記複数のプロセスに対応する前記管理モードを分散共有メモリ・モードに変更するように構成されている、請求項９に記載の装置。
【請求項１５】
バスと、
前記バスに接続されたプロセッサと、
前記バスに接続されたメモリと、
を備え、
前記プロセッサは前記バスを使用して、共有仮想メモリ・ページに対するプロセスに基づいて行ったアクセスのアクセス特性を監視し、前記監視されるアクセス特性が第１の設定条件を満たし、前記共有仮想メモリ・ページの現在の管理モードが分散共有メモリ・モードである場合に、前記共有仮想メモリ・ページの前記管理モードを共有物理メモリ・モードに変更するための前記メモリ内のコードを呼び出し、
前記第１の設定条件は、アクセス頻度が第１の閾値以下であること、アクセス・モードが読書きアクセスもしくは書込みアクセスであること、前記書込みアクセスの頻度が第３の閾値より大きいこと、または、前記書込みアクセスの割合が第４の閾値より大きいことを含む、
コンピュータ・システム。
【請求項１６】
バスと、
前記バスに接続されたプロセッサと、
前記バスに接続されたメモリと、
を備え、
前記プロセッサは前記バスを使用して、共有仮想メモリ・ページに対するプロセスに基づいて行ったアクセスのアクセス特性を監視し、前記監視されるアクセス特性が第２の設定条件を満たし、前記共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合には、前記共有仮想メモリ・ページの前記管理モードを分散共有メモリ・モードに変更するための前記メモリ内のコードを呼び出し、
前記第２の設定条件は、アクセス頻度が第２の閾値より大きいこと、アクセス・モードが読取専用アクセスであること、読取アクセスの頻度が第５の閾値より大きいこと、または、前記読取アクセスの割合が第６の閾値より大きいことを含む、
コンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ技術の分野に関し、特に、共有仮想メモリ・ページの管理モードを決定するための方法および関連装置に関する。
【背景技術】
【０００２】
Ｉｎｔｅｌ社の創始者の１人、ゴードン・ムーア（Ｇｏｒｄｏｎ  Ｍｏｏｒｅ）により提唱されたムーアの法則が、直近半世紀の半導体業界の発展と情報技術の進展速度を導いてきている。Ｉｎｔｅｌ社が開示しているように、ムーアの法則はこれから１０年、依然として有効であろう。２０２２年には１．０２４×１０１２個以上のトランジスタが単一のチップに集積されることが予測されている。
【０００３】
しかし、計算性能がクロック速度単体で高められる時期は過ぎ去っており、中央演算装置（ＣＰＵ、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の性能向上は今や電力消費、相互接続遅延、および設計の複雑度のような物理法則により妨げられている。物理法則の妨げに起因して、シングル・コアからマルチコア（Ｍｕｌｔｉ−ｃｏｒｅ、伝統的に８個より少ないコアを指す）への変更が不可避であり、または、メニーコア（Ｍａｎｙ−ｃｏｒｅ）への変更すら不可避であって、これらはムーアの法則と上記３つの物理法則の間の相互作用の結果である。メニーコアは将来のＣＰＵアーキテクチャの主要なトレンドであろう。
【０００４】
マルチコア／メニーコア・プロセッサのシナリオでは、キャッシュ・コヒーレンスを可能とする必要があり、これはソフトウェア・キャッシュ・コヒーレンス機構またはハードウェア・キャッシュ・コヒーレンス機構により解決することができる。当該ソフトウェア・キャッシュ・コヒーレンス機構は主に、２つの可能なモード、即ち、分散共有メモリ（ＤＳＭ、Ｄｉｓｔｒｉｂｕｔｅｄ  Ｓｈａｒｅｄ  Ｍｅｍｏｒｙ）モードと共有物理メモリ（ＳＰＭ、Ｓｈａｒｅｄ  Ｐｈｙｓｉｃａｌ  Ｍｅｍｏｒｙ）モードに関連する。ＤＳＭモード／ＳＰＭモードを、非キャッシュ・コヒーレント（ＮＣＣ、Ｎｏｎ−Ｃａｃｈｅ−Ｃｏｈｅｒｅｎｔ）メニーコア・システムで適用して、キャッシュ・コヒーレンス問題を解決することができる。Ｉｎｔｅｌ社により開発されたシングル・チップ・クラウド・コンピュータ（ＳＣＣ、Ｓｉｎｇｌｅ−ｃｈｉｐ  Ｃｌｏｕｄ  Ｃｏｍｐｕｔｅｒ）では、ソフトウェア管理キャッシュ・コヒーレンス（ＳＭＣ、Ｓｏｆｔｗａｒｅ  Ｍａｎａｇｅｄ  Ｃａｃｈｅ  Ｃｏｈｅｒｅｎｃｅ）プロトコルでＳＰＭモードが採用されている。
【０００５】
先行技術では、共有仮想メモリ・ページは、ＤＳＭモードまたはＳＰＭモードを固定的に使用している。研究と実践の過程において、発明者は、幾つかの適用シナリオにおいて、共有仮想メモリ・ページがＤＳＭモードをその管理モードとして固定的に使用する場合に、アクセス性能が現実の要件を良く満たすことができず、他の適用シナリオでは、当該共有仮想メモリ・ページがＳＰＭモードをその管理モードとして固定的に使用する場合にも、アクセス性能が現実の要件を良く満たすことができないことを発見した。
【発明の概要】
【課題を解決するための手段】
【０００６】
本発明の諸実施形態では、共有仮想メモリへのアクセス性能を高めることを目的として、共有仮想メモリ・ページの管理モードを決定するための方法および関連装置を提供する。
【０００７】
第１の態様では、本発明は、共有仮想メモリ・ページの管理モードを決定するための方法であって、当該共有仮想メモリ・ページに対してプロセスが行ったアクセスのアクセス特性を監視するステップと、当該監視されるアクセス特性が第１の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードが分散共有メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを共有物理メモリ・モードに変更するステップとを含む方法を提供する。
【０００８】
第１の態様を参照して、第１の可能な実装方式では、当該方法はさらに、当該監視されるアクセス特性が第２の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するステップを含む。
【０００９】
第１の態様または第１の態様の第１の可能な実装方式を参照して、第２の可能な実装方式では、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するステップは、第１の物理メモリ空間において、第１の物理メモリ・ページを当該共有仮想メモリ・ページに割り当てるステップと、第２の物理メモリ・ページに格納されたデータを第１の物理メモリ・ページにコピーするステップであって、第２の物理メモリ・ページは共有物理メモリ空間に属し、第２の物理メモリ・ページは、当該共有仮想メモリ・ページから現在マップされている物理メモリ・ページであるステップと、当該共有仮想メモリ・ページと第１の物理メモリ・ページの間のマッピング関係を生成するステップと、当該分散共有メモリ・モードを当該共有仮想メモリ・ページの管理モードとして記録するステップとを含む。
【００１０】
第１の態様、第１の態様の第１の可能な実装方式、または第１の態様の第２の可能な実装方式を参照して、第３の可能な実装方式では、第１の設定条件は、アクセス頻度が第１の閾値以下であること、アクセス・モードが読書きアクセスもしくは書込みアクセスであること、書込みアクセスの頻度が第３の閾値より大きいこと、または、書込みアクセスの割合が第４の閾値より大きいことを含む。
【００１１】
第１の態様、第１の態様の第１の可能な実装方式、第１の態様の第２の可能な実装方式、または第１の態様の第３の可能な実装方式を参照して、第４の可能な実装方式では、第２の設定条件は、当該アクセス頻度が第２の閾値より大きいこと、当該アクセス・モードが読取専用アクセスであること、読取アクセスの頻度が第５の閾値より大きいこと、または、読取アクセスの割合が第６の閾値より大きいことを含み、第２の閾値は第１の閾値以上である。
【００１２】
第１の態様、第１の態様の第１の可能な実装方式、第１の態様の第２の可能な実装方式、第１の態様の第３の可能な実装方式、または第１の態様の第４の可能な実装方式を参照して、第５の可能な実装方式では、当該共有仮想メモリ・ページの管理モードを共有物理メモリ・モードに変更するステップは、当該共有仮想メモリ・ページと第３の物理メモリ・ページの間のマッピング関係を生成するステップであって、第３の物理メモリ・ページは共有物理メモリ空間に属するステップと、当該共有物理メモリ・モードを当該共有仮想メモリ・ページの管理モードとして記録するステップであって、当該共有仮想メモリ・ページから以前にマップされた物理メモリ・ページに格納されたデータは不変のままであるステップとを含む。
【００１３】
第１の態様、第１の態様の第１の可能な実装方式、第１の態様の第２の可能な実装方式、第１の態様の第３の可能な実装方式、または第１の態様の第４の可能な実装方式を参照して、第６の可能な実装方式では、当該共有仮想メモリ・ページの管理モードを共有物理メモリ・モードに変更するステップは、第４の物理メモリ・ページに格納されたデータ内の変更されたデータを第３の物理メモリ・ページに同期するステップと、当該共有仮想メモリ・ページと第３の物理メモリ・ページの間のマッピング関係を生成するステップであって、第３の物理メモリ・ページは共有物理メモリ空間に属するステップと、当該共有物理メモリ・モードを当該共有仮想メモリ・ページの管理モードとして記録するステップであって、第４の物理メモリ・ページは当該共有仮想メモリ・ページから以前にマップされた物理メモリ・ページであるステップとを含む。
【００１４】
第１の態様または第１の態様の第１の可能な実装方式を参照して、第７の可能な実装方式では、当該プロセスが複数のプロセスを含むという条件で、監視されるアクセス特性が第１の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードが分散共有メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを共有物理メモリ・モードに変更するステップは、当該共有仮想メモリ・ページにアクセスする複数のプロセスごとにそれぞれ監視されるアクセス特性の平均、加重平均、総和、または加重和を、当該共有仮想メモリ・ページにアクセスする複数のプロセスの監視されるアクセス特性として使用するステップ、または、当該共有仮想メモリ・ページにアクセスする複数のプロセスのうち１つの監視されるアクセス特性を、当該共有仮想メモリ・ページにアクセスする複数のプロセスの監視されるアクセス特性として使用するステップと、当該共有仮想メモリ・ページに対する当該複数のプロセスにより行われたアクセスの監視されるアクセス特性が第１の条件を満たす場合、および、当該共有仮想メモリ・ページ上の当該複数のプロセスに対応する現在の管理モードが分散共有メモリ・モードである場合に、当該共有仮想メモリ・ページ上の当該複数のプロセスに対応する管理モードを共有物理メモリ・モードに変更するステップとを含む。
【００１５】
第１の態様の第１の可能な実装方式を参照して、第８の可能な実装方式では、当該プロセスが複数のプロセスを含むという条件で、当該監視されるアクセス特性が第２の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するステップは、当該共有仮想メモリ・ページにアクセスする複数のプロセスごとにそれぞれ監視されるアクセス特性の平均、加重平均、総和、または加重和を、当該共有仮想メモリ・ページにアクセスする複数のプロセスの監視されるアクセス特性として使用するステップ、または、当該共有仮想メモリ・ページにアクセスする複数のプロセスのうち１つの監視されるアクセス特性を、当該共有仮想メモリ・ページにアクセスする複数のプロセスの監視されるアクセス特性として使用するステップと、当該共有仮想メモリ・ページに対する当該複数のプロセスにより行われたアクセスの監視されるアクセス特性が第２の条件を満たす場合、および、当該共有仮想メモリ・ページ上の当該複数のプロセスに対応する現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページ上の当該複数のプロセスに対応する管理モードを分散共有メモリ・モードに変更するステップとを含む。
【００１６】
第２の態様では、本発明は、共有仮想メモリ・ページの管理モードを決定するための方法であって、当該共有仮想メモリ・ページに対してプロセスが行ったアクセスのアクセス特性を監視するステップと、当該監視されるアクセス特性が第２の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するステップとを含む方法を提供する。
【００１７】
第２の態様を参照して、第１の可能な実装方式では、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するステップは、第１の物理メモリ空間において、第１の物理メモリ・ページを当該共有仮想メモリ・ページに割り当てるステップと、第２の物理メモリ・ページに格納されたデータを第１の物理メモリ・ページにコピーするステップであって、第２の物理メモリ・ページは共有物理メモリ空間に属し、第２の物理メモリ・ページは、当該共有仮想メモリ・ページから現在マップされている物理メモリ・ページであるステップと、当該共有仮想メモリ・ページと第１の物理メモリ・ページの間のマッピング関係を生成するステップと、当該分散共有メモリ・モードを当該共有仮想メモリ・ページの管理モードとして記録するステップとを含む。
【００１８】
第２の態様を参照して、第２の可能な実装方式では、当該プロセスが複数のプロセスを含むという条件で、当該監視されるアクセス特性が第２の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するステップは、当該共有仮想メモリ・ページにアクセスする複数のプロセスごとにそれぞれ監視されるアクセス特性の平均、加重平均、総和、または加重和を、当該共有仮想メモリ・ページにアクセスする複数のプロセスの監視されるアクセス特性として使用するステップ、または、当該共有仮想メモリ・ページにアクセスする複数のプロセスのうち１つの監視されるアクセス特性を、当該共有仮想メモリ・ページにアクセスする複数のプロセスの監視されるアクセス特性として使用するステップと、当該共有仮想メモリ・ページに対する当該複数のプロセスにより行われたアクセスの監視されるアクセス特性が第２の条件を満たす場合、および、当該共有仮想メモリ・ページ上の当該複数のプロセスに対応する現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページ上の当該複数のプロセスに対応する管理モードを分散共有メモリ・モードに変更するステップとを含む。
【００１９】
第２の態様、第２の態様の第１の可能な実装方式、または第２の態様の第２の可能な実装方式を参照して、第３の可能な実装方式では、第２の設定条件は、アクセス頻度が第２の閾値より大きいこと、アクセス・モードが読取専用アクセスであること、読取アクセスの頻度が第５の閾値より大きいこと、または、読取アクセスの割合が第６の閾値より大きいことを含む。
【００２０】
第３の態様では、本発明は、共有仮想メモリ・ページの管理モードを決定するための装置であって、当該共有仮想メモリ・ページに対してプロセスが行ったアクセスのアクセス特性を監視するように構成された監視ユニットと、当該監視ユニットに接続され、当該監視ユニットにより監視されるアクセス特性が第１の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードが分散共有メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを共有物理メモリ・モードに変更するように構成された、第１の再マッピング・ユニットとを備えた装置を提供する。
【００２１】
第３の態様を参照して、第１の可能な実装方式では、当該装置はさらに、当該監視ユニットに接続され、当該監視ユニットにより監視されるアクセス特性が第２の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するように構成された、第２の再マッピング・ユニットを備える。
【００２２】
第３の態様の第１の可能な実装方式を参照して、第２の可能な実装方式では、当該第２の再マッピング・ユニットは特に、当該監視ユニットにより監視されるアクセス特性が第２の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合、第１の物理メモリ空間において、第１の物理メモリ・ページを当該共有仮想メモリ・ページに割り当て、第２の物理メモリ・ページに格納されたデータを第１の物理メモリ・ページにコピーし、当該共有仮想メモリ・ページと第１の物理メモリ・ページの間のマッピング関係を生成し、当該分散共有メモリ・モードを当該共有仮想メモリ・ページの管理モードとして記録するように構成される。第２の物理メモリ・ページは共有物理メモリ空間に属し、第２の物理メモリ・ページは、当該共有仮想メモリ・ページから現在マップされている物理メモリ・ページである。
【００２３】
第３の態様、第３の態様の第１の可能な実装方式、または第３の態様の第２の可能な実装方式を参照して、第３の可能な実装方式では、第１の設定条件は、アクセス頻度が第１の閾値以下であること、アクセス・モードが読書きアクセスもしくは書込みアクセスであること、書込みアクセスの頻度が第３の閾値より大きいこと、または、書込みアクセスの割合が第４の閾値より大きいことを含み、当該監視ユニットは特に、当該共有仮想メモリ・ページに対する当該プロセスにより行われたアクセスのアクセス頻度を監視するように構成され、当該第１の再マッピング・ユニットは特に、当該監視ユニットにより監視される、当該共有仮想メモリ・ページに対する当該プロセスにより行われたアクセスのアクセス頻度が第１の閾値以下である場合、および、当該共有仮想メモリ・ページの現在の管理モードが分散共有メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを共有物理メモリ・モードに変更するように構成され、または、当該監視ユニットは特に、当該共有仮想メモリ・ページに対する当該プロセスにより行われたアクセスのアクセス・モードを監視するように構成され、当該第１の再マッピング・ユニットは特に、当該監視ユニットにより監視される、当該共有仮想メモリ・ページに対する当該プロセスにより行われたアクセスのアクセス・モードが読書きアクセスもしくは書込みアクセスである場合、および、当該共有仮想メモリ・ページの現在の管理モードが分散共有メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを共有物理メモリ・モードに変更するように構成され、または、当該監視ユニットは特に、当該共有仮想メモリ・ページに対する当該プロセスにより行われた書込みアクセスの頻度を監視するように構成され、当該第１の再マッピング・ユニットは特に、当該監視ユニットにより監視される、当該共有仮想メモリ・ページに対する当該プロセスにより行われた書込みアクセスの頻度が当該第３の閾値より大きい場合、および、当該共有仮想メモリ・ページの現在の管理モードが分散共有メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを共有物理メモリ・モードに変更するように構成され、または、当該監視ユニットは特に、当該共有仮想メモリ・ページに対する当該プロセスにより行われた書込みアクセスの割合を監視するように構成され、当該第１の再マッピング・ユニットは特に、当該監視ユニットにより監視される、当該共有仮想メモリ・ページに対する当該プロセスにより行われた書込みアクセスの割合が第４の閾値より大きい場合、および、当該共有仮想メモリ・ページの現在の管理モードが分散共有メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを共有物理メモリ・モードに変更するように構成される。
【００２４】
第３の態様の第３の可能な実装方式を参照して、第４の可能な実装方式では、第２の設定条件は、当該アクセス頻度が第２の閾値より大きいこと、当該アクセス・モードが読取専用アクセスであること、読取アクセスの頻度が第５の閾値より大きいこと、または、読取アクセスの割合が第６の閾値より大きいことを含み、第２の閾値は第１の閾値以上であり、当該監視ユニットは特に、当該共有仮想メモリ・ページに対する当該プロセスにより行われたアクセスのアクセス頻度を監視するように構成され、当該第２の再マッピング・ユニットは特に、当該監視ユニットにより監視される当該アクセス頻度が第２の閾値より大きく、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するように構成され、または、当該監視ユニットは特に、当該共有仮想メモリ・ページに対する当該プロセスにより行われたアクセスのアクセス・モードを監視するように構成され、当該第２の再マッピング・ユニットは特に、当該監視ユニットにより監視される当該アクセス・モードが読取専用アクセスであり、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するように構成され、または、当該監視ユニットは特に、当該共有仮想メモリ・ページに対する当該プロセスにより行われたアクセスの読取アクセス頻度を監視するように構成され、当該第２の再マッピング・ユニットは特に、当該監視ユニットにより監視される読取アクセス頻度が第５の閾値より大きく、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するように構成され、または、当該監視ユニットは特に、当該共有仮想メモリ・ページに対する当該プロセスにより行われる読取アクセスの割合を監視するように構成され、当該第２の再マッピング・ユニットは特に、当該監視ユニットにより監視される読取アクセスの割合が第６の閾値より大きく、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するように構成される。
【００２５】
第３の態様、第３の態様の第１の可能な実装方式、第３の態様の第２の可能な実装方式、第３の態様の第３の可能な実装方式、または第３の態様の第４の可能な実装方式を参照して、第５の可能な実装方式では、当該第１の再マッピング・ユニットは特に、当該監視ユニットにより監視されるアクセス特性が第１の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードが分散共有メモリ・モードである場合に、当該共有仮想メモリ・ページと第３の物理メモリ・ページの間のマッピング関係を生成し、当該共有物理メモリ・モードを当該共有仮想メモリ・ページの管理モードとして記録するように構成される。第３の物理メモリ・ページは当該共有物理メモリ空間に属し、当該共有仮想メモリ・ページから以前にマップされた物理メモリ・ページに格納されたデータは不変のままである。
【００２６】
第３の態様、第３の態様の当該第１の可能な実装形態、第３の態様の第２の可能な実装方式、第３の態様の第３の可能な実装方式、または第３の態様の第４の可能な実装方式を参照して、第６の可能な実装方式では、当該第１の再マッピング・ユニットは特に、当該監視ユニットにより監視されるアクセス特性が第１の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードが分散共有メモリ・モードである場合に、第４の物理メモリ・ページに格納されたデータ内の変更されたデータを第３の物理メモリ・ページに同期し、当該共有仮想メモリ・ページと第３の物理メモリ・ページの間のマッピング関係を生成し、当該共有物理メモリ・モードを当該共有仮想メモリ・ページの管理モードとして記録するように構成される。第３の物理メモリ・ページは当該共有物理メモリ空間に属し、第４の物理メモリ・ページは当該共有仮想メモリ・ページから以前にマップされた物理メモリ・ページである。
【００２７】
第３の態様または第３の態様の第１の可能な実装方式を参照して、第７の可能な実装方式では、当該プロセスが複数のプロセスを含む場合に、当該第１の再マッピング・ユニットは特に、当該共有仮想メモリ・ページにアクセスする複数のプロセスごとに当該監視ユニットによりそれぞれ監視されるアクセス特性の平均、加重平均、総和、または加重和を、当該共有仮想メモリ・ページにアクセスする複数のプロセスの監視されるアクセス特性として使用するか、または、当該共有仮想メモリ・ページにアクセスする複数のプロセスの１つに対して当該監視ユニットにより監視されるアクセス特性を、当該共有仮想メモリ・ページにアクセスする複数のプロセスの監視されるアクセス特性として使用し、当該共有仮想メモリ・ページに対する当該プロセスにより行われたアクセスの監視されるアクセス特性が第１の条件を満たす場合、および、当該共有仮想メモリ・ページ上の当該複数のプロセスに対応する現在の管理モードが分散共有メモリ・モードである場合に、当該共有仮想メモリ・ページ上の当該複数のプロセスに対応する管理モードを共有物理メモリ・モードに変更するように構成される。
【００２８】
第３の態様の第１の可能な実装方式を参照して、第８の可能な実装方式では、当該プロセスが複数のプロセスを含む場合に、当該第２の再マッピング・ユニットは特に、当該共有仮想メモリ・ページにアクセスする複数のプロセスごとに当該監視ユニットによりそれぞれ監視されるアクセス特性の平均、加重平均、総和、または加重和を、当該共有仮想メモリ・ページにアクセスする複数のプロセスの監視されるアクセス特性として使用するか、または、当該共有仮想メモリ・ページにアクセスする複数のプロセスの１つに対して当該監視ユニットにより監視されるアクセス特性を、当該共有仮想メモリ・ページにアクセスする複数のプロセスの監視されるアクセス特性として使用し、当該共有仮想メモリ・ページに対する当該複数のプロセスにより行われたアクセスの監視されるアクセス特性が第２の条件を満たす場合、および、当該共有仮想メモリ・ページ上の当該複数のプロセスに対応する現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページ上の当該複数のプロセスに対応する管理モードを分散共有メモリ・モードに変更するように構成される。
【００２９】
第４の態様では、本発明は共有仮想メモリ・ページの管理モードを決定するための装置を提供する。当該装置は、当該共有仮想メモリ・ページに対してプロセスが行ったアクセスのアクセス特性を監視するように構成された監視ユニットと、当該監視ユニットに接続され、当該監視ユニットにより監視されるアクセス特性が第２の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するように構成された、第２の再マッピング・ユニットとを備えてもよい。
【００３０】
第４の態様を参照して、第１の可能な実装方式では、当該第２の再マッピング・ユニットは特に、当該監視ユニットにより監視されるアクセス特性が第２の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合、第１の物理メモリ空間において、第１の物理メモリ・ページを当該共有仮想メモリ・ページに割り当て、第２の物理メモリ・ページに格納されたデータを第１の物理メモリ・ページにコピーし、当該共有仮想メモリ・ページと第１の物理メモリ・ページの間のマッピング関係を生成し、当該分散共有メモリ・モードを当該共有仮想メモリ・ページの管理モードとして記録するように構成される。第２の物理メモリ・ページは共有物理メモリ空間に属し、第２の物理メモリ・ページは、当該共有仮想メモリ・ページから現在マップされている物理メモリ・ページである。
【００３１】
第４の態様または第４の態様の第１の可能な実装方式を参照して、第２の可能な実装方式では、第２の設定条件は、アクセス頻度が第２の閾値より大きいこと、アクセス・モードが読取専用アクセスであること、読取アクセスの頻度が第５の閾値より大きいこと、または、読取アクセスの割合が第６の閾値より大きいことを含み、当該監視ユニットは特に、当該共有仮想メモリ・ページに対する当該プロセスにより行われたアクセスのアクセス頻度を監視するように構成され、当該第２の再マッピング・ユニットは特に、当該監視ユニットにより監視される当該アクセス頻度が第２の閾値より大きく、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するように構成され、または、当該監視ユニットは特に、当該共有仮想メモリ・ページに対する当該プロセスにより行われたアクセスのアクセス・モードを監視するように構成され、当該第２の再マッピング・ユニットは特に、当該監視ユニットにより監視される当該アクセス・モードが読取専用アクセスであり、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するように構成され、または、当該監視ユニットは特に、当該共有仮想メモリ・ページに対する当該プロセスにより行われたアクセスの読取アクセス頻度を監視するように構成され、当該第２の再マッピング・ユニットは特に、当該監視ユニットにより監視される読取アクセス頻度が第５の閾値より大きく、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するように構成され、または、当該監視ユニットは特に、当該共有仮想メモリ・ページに対する当該プロセスにより行われる読取アクセスの割合を監視するように構成され、当該第２の再マッピング・ユニットは特に、当該監視ユニットにより監視される読取アクセスの割合が第６の閾値より大きく、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するように構成される。
【００３２】
第４の態様、第４の態様の第１の可能な実装方式、または第４の態様の第２の可能な実装方式を参照して、第３の可能な実装方式では、当該プロセスが複数のプロセスを含む場合に、当該第２の再マッピング・ユニットは特に、当該共有仮想メモリ・ページにアクセスする複数のプロセスごとに当該監視ユニットによりそれぞれ監視されるアクセス特性の平均、加重平均、総和、または加重和を、当該共有仮想メモリ・ページにアクセスする複数のプロセスの監視されるアクセス特性として使用するか、または、当該共有仮想メモリ・ページにアクセスする複数のプロセスの１つに対して当該監視ユニットにより監視されるアクセス特性を、当該共有仮想メモリ・ページにアクセスする複数のプロセスの監視されるアクセス特性として使用し、当該共有仮想メモリ・ページに対する当該複数のプロセスにより行われたアクセスの監視されるアクセス特性が第２の条件を満たす場合、および、当該共有仮想メモリ・ページ上の当該複数のプロセスに対応する現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページ上の当該複数のプロセスに対応する管理モードを分散共有メモリ・モードに変更するように構成される。
【００３３】
第５の態様では、本発明は、バスと、当該バスに接続されたプロセッサと、当該バスに接続されたメモリとを備え、当該プロセッサは当該バスを使用して、当該共有仮想メモリ・ページに対してプロセスが行ったアクセスのアクセス特性を監視し、当該監視されるアクセス特性が第１の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードが分散共有メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを共有物理メモリ・モードに変更するための当該メモリ内のコードを呼び出す、コンピュータ・システムを提供する。
【００３４】
第６の態様では、本発明は、バスと、当該バスに接続されたプロセッサと、当該バスに接続されたメモリとを備え、当該プロセッサは当該バスを使用して、当該共有仮想メモリ・ページに対してプロセスが行ったアクセスのアクセス特性を監視し、当該監視されるアクセス特性が第２の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合には、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するための当該メモリ内のコードを呼び出す、コンピュータ・システムを提供する。
【００３５】
分かるように、本発明では、共有仮想メモリ・ページのアクセス特性が監視され、当該監視されるアクセス特性が第１の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードが分散共有メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードが共有物理メモリ・モードに変更されるか、または、当該監視されるアクセス特性が第２の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードが分散共有メモリ・モードに変更される。当該アクセス特性の監視結果に従って、当該共有仮想メモリ・ページの管理モードを再設定する機構により、当該管理モードと当該アクセス特性の間の良好なマッチングが実現され、ＤＳＭモードまたはＳＰＭモードの利点がより良く活かされ、共有仮想メモリへのアクセス性能を高めるための機構基盤が提供される。
【００３６】
本発明の諸実施形態または先行技術における技術的解決策をより明確に説明するために、以下では当該諸実施形態または先行技術を説明するのに必要な添付図面を簡単に説明する。明らかに、以下の説明における添付図面は本発明の幾つかの諸実施形態を示すにすぎず、当業者は創造的作業なしに依然として他の図面をこれらの添付図面から導出することができる。
【図面の簡単な説明】
【００３７】
【図１】本発明の１実施形態に従う共有仮想メモリ・ページの管理モードを決定するための方法の略流れ図である。
【図２Ａ】本発明の１実施形態に従うＤＳＭモードでの共有仮想アドレス空間の略図である。
【図２Ｂ】本発明の１実施形態に従うＤＳＭモードでのプライベート物理メモリ空間の略図である。
【図３】本発明の１実施形態に従う共有仮想メモリ・ページの管理モードを決定するための別の方法の略流れ図である。
【図４】本発明の１実施形態に従う共有仮想メモリ・ページの管理モードを決定するための別の方法の略流れ図である。
【図５Ａ】本発明の１実施形態に従う共有仮想メモリ・ページの管理モードを決定するための装置の略図である。
【図５Ｂ】本発明の１実施形態に従う共有仮想メモリ・ページの管理モードを決定するための装置の略図である。
【図５Ｃ】本発明の１実施形態に従う共有仮想メモリ・ページの管理モードを決定するための装置の略図である。
【図６】本発明に従うコンピュータ・システムの略構造図である。
【図７】本発明の１実施形態に従う別のコンピュータ・システムの略図である。
【発明を実施するための形態】
【００３８】
本発明では、共有仮想メモリへのアクセス性能を高めることを目的として、共有仮想メモリ・ページの管理モードを決定するための方法および関連装置を提供する。
【００３９】
本発明の解決策を当業者がより理解できるようにするために、以下では本発明の諸実施形態の添付図面を参照して本発明の技術的解決策を明確かつ十分に説明する。明らかに、説明する諸実施形態は本発明の諸実施形態の全部ではなく一部にすぎない。以下で詳細な説明を与える。
【００４０】
本発明の明細書、特許請求の範囲、および添付図面では、「第１の」、「第２の」、「第３の」、「第４の」等（存在する場合）といった用語は、類似の対象物を区別するためのものであるが、特定の順序または並びを必ずしも示すものではない。かかる方法で呼称するデータは適切な状況において交換可能であり、その結果、本明細書で説明する本発明の諸実施形態を本明細書で図示または説明した順序と異なる順序で実施できることは理解されるべきである。さらに、「含む」、「備える」といった用語、およびそれらの任意の変形は非包括的な包含を網羅しようとするものである。例えば、一連のステップまたはユニットを含むプロセス、方法、システム、製品、または装置は、明示的に列挙したステップまたはユニットには限定されず、明示的に列挙されていないかまたは当該プロセス、方法、製品、または装置に内在する他のステップまたはユニットを含んでもよい。
【００４１】
本発明の１実施形態では、共有仮想メモリ・ページの管理モードを決定するための方法が、当該共有仮想メモリ・ページに対してプロセスが行ったアクセスのアクセス特性を監視するステップと、当該監視されるアクセス特性が第１の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードがＤＳＭモードである場合に、当該共有仮想メモリ・ページの管理モードをＳＰＭモードに変更するステップ、および／または、当該監視されるアクセス特性が第２の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードがＳＰＭモードである場合に、当該共有仮想メモリ・ページの管理モードをＤＳＭモードに変更するステップとを含んでもよい。
【００４２】
図１を参照されたい。図１は、本発明の１実施形態に従う共有仮想メモリ・ページの管理モードを決定するための方法の略流れ図である。図１に示すように、本発明の１実施形態に従う共有仮想メモリ・ページの管理モードを決定するための方法が以下の内容を含んでもよい。
【００４３】
１０１で、当該共有仮想メモリ・ページに対してプロセスが行ったアクセスのアクセス特性を監視する。本発明の幾つかの諸実施形態では、当該共有仮想メモリ・ページ（引用の都合上、以下では第１の共有仮想メモリ・ページと称する）に対するＮ個のプロセスにより行われたアクセスのアクセス特性を監視することができる。Ｎは正の整数である。例えば、Ｎが１に等しい場合、当該Ｎ個のプロセスが当該システムに現存する任意のプロセスまたは特定のプロセスを指してもよく、Ｎが１より大きい場合、当該Ｎ個のプロセスが、当該システムに現存するプロセスの一部または全部を指してもよい。例えば、当該Ｎ個のプロセスが、当該システムに現存し第１の共有仮想メモリ・ページにアクセスする可能性があるプロセスの一部または全部を指してもよい。本発明の幾つかの諸実施形態では、例えば、性能カウンタ（ｐｅｒｆｏｒｍａｎｃｅ  ｃｏｕｎｔｅｒｓ）または他のハードウェアまたはＣＰＵのプログラムを使用して当該共有仮想メモリ・ページのアクセス特性を監視してもよい。
【００４４】
本発明の幾つかの諸実施形態では、例えば、当該共有仮想メモリ・ページに対してプロセスにより行われたアクセスの様々なアクセス特性を監視してもよい。当該アクセス特性がアクセス頻度および／またはアクセス・モード等を含んでもよい。当該アクセス・モードが、読取専用アクセス、読書きアクセス（読書きアクセスとは、読取りと書込みの両方を必要とするアクセスのことをいう）、書込みアクセス等を含んでもよい。即ち、当該共有仮想メモリ・ページに対する当該プロセスにより行われたアクセスのアクセス頻度および／またはアクセス・モードのようなアクセス特性を監視することができる。
【００４５】
本発明の幾つかの諸実施形態では、第１の共有仮想メモリ・ページに対してプロセスにより行われたアクセスのアクセス頻度が、当該プロセスが単位時間に第１の共有仮想メモリ・ページにアクセスした回数を指してもよい。例えば、第１の共有仮想メモリ・ページに対してプロセスにより行われたアクセスのアクセス頻度が、当該プロセスが単位時間に第１の共有仮想メモリ・ページにアクセスした回数を指してもよい。同様に、第１の共有仮想メモリ・ページに対する複数のプロセスにより行われたアクセスのアクセス頻度が、当該複数のプロセスが単位時間に第１の共有仮想メモリ・ページにアクセスした回数を指してもよい。
【００４６】
本発明の他の諸実施形態では、第１の共有仮想メモリ・ページに対してプロセスにより行われたアクセスのアクセス頻度が、第１の共有仮想メモリ・ページに対して当該プロセスにより行われたアクセスの回数の、（単位時間のような）或る期間にＮ１個の共有仮想メモリ・ページに対して当該プロセスにより行われたアクセスの総数に対する割合を指してもよい。当該Ｎ１個の共有仮想メモリ・ページは第１の共有仮想メモリ・ページを含み、Ｎ１は１より大きい正の整数である。例えば、第１の共有仮想メモリ・ページに対してプロセスにより行われたアクセスのアクセス頻度が、第１の共有仮想メモリ・ページに対して当該プロセスにより行われたアクセスの回数の、或る期間にＮ１個の共有仮想メモリ・ページに対して当該プロセスにより行われたアクセスの総数に対する割合を指してもよく、第１の共有仮想メモリ・ページに対する複数のプロセスにより行われたアクセスのアクセス頻度が、第１の共有仮想メモリ・ページに対する複数のプロセスにより行われたアクセスの回数の、或る期間に当該Ｎ１個の共有仮想メモリ・ページに対する当該複数のプロセスにより行われたアクセスの総数に対する割合を指してもよい。
【００４７】
勿論、当該アクセス頻度を計算する方法は上述の例に限られず、自然法則に従う他の計算方法を必要に応じて定義してもよい。
【００４８】
１０２で、監視されるアクセス特性が第１の設定条件を満たし、第１の共有仮想メモリ・ページの現在の管理モードがＤＳＭモードである場合、第１の共有仮想メモリ・ページの管理モードをＳＰＭモードに変更し、かつ／または、当該監視されるアクセス特性が第２の設定条件を満たし、第１の共有仮想メモリ・ページの現在の管理モードがＳＰＭモードである場合、第１の共有仮想メモリ・ページの管理モードをＤＳＭモードに変更する。
【００４９】
第１の設定条件と第２の設定条件が、監視されるアクセス特性とともに変化してもよいことは分かる。例えば、当該監視されるアクセス特性がアクセス頻度である場合、第１の設定条件と第２の設定条件が当該アクセス頻度に関連する設定条件を含んでもよく、当該監視されるアクセス特性がアクセス・モードである場合、第１の設定条件と第２の設定条件が当該アクセス・モードに関連する設定条件を含んでもよく、当該監視されるアクセス特性がアクセス頻度とアクセス・モードを含む場合、第１の設定条件と第２の設定条件がアクセス頻度とアクセス・モードの両方に関連する設定条件を含んでもよい。
【００５０】
本発明の幾つかの諸実施形態では、監視されるアクセス特性が第１の共有仮想メモリ・ページに対してプロセスにより行われたアクセスのアクセス頻度を含む場合、第１の設定条件が、当該アクセス頻度が第１の閾値以下であることを含んでもよく（第１の閾値が毎秒１０００回、毎秒２０００回、毎秒５０００回、または別の頻度値であってもよい）、第２の設定条件が、当該アクセス頻度が第２の閾値より大きいことを含んでもよい。第１の閾値が第２の閾値以下であってもよく、第２の閾値が毎秒１０００回、毎秒２０００回、毎秒３０００回、毎秒５０００回、または別の頻度値であってもよい。第２の閾値は第１の閾値以上である。このシナリオでは、当該監視されるアクセス頻度が第１の閾値以下であり、第１の共有仮想メモリ・ページの現在の管理モードがＤＳＭモードである場合に、第１の共有仮想メモリ・ページの管理モードをＳＰＭモードに変更してもよく、かつ／または、当該監視されるアクセス頻度が第２の閾値より大きく、第１の共有仮想メモリ・ページの現在の管理モードがＳＰＭモードである場合に、第１の共有仮想メモリ・ページの管理モードをＤＳＭモードに変更してもよい。かかるポリシをアクセス・データに従う消費性選択ポリシとみなしてもよいことは分かる。
【００５１】
本発明の他の諸実施形態では、監視されるアクセス特性が、共有仮想メモリ・ページに対してプロセスにより行われたアクセスのアクセス・モードを含む場合に、第１の設定条件が、当該アクセス・モードが書込みアクセスまたは読書きアクセスである（または、書込みアクセスの割合が第４の閾値を超えるか、または、書込みアクセスの頻度が第３の閾値を超える）ことを含んでもよい。書込みアクセスのみが存在するシナリオを、書込みアクセスの回数の読書きアクセスの総数に対する割合が１００％であるという事実とみなしてもよく、第２の設定条件が、読取専用アクセスまたは読取アクセスの割合が第６の閾値を超えるか、または、読取アクセスの頻度が第５の閾値を超えることを含んでもよい。第４の閾値と第６の閾値の合計が１以上であってもよい。このシナリオでは、監視されるアクセス・モードが書込みアクセスまたは読書きアクセスであり（または、書込みアクセスの割合が第４の閾値を超えるか、または、書込みアクセスの頻度が第３の閾値を超える）、第１の共有仮想メモリ・ページの現在の管理モードがＤＳＭモードである場合に、第１の共有仮想メモリ・ページの管理モードをＳＰＭモードに変更してもよく、かつ／または、当該監視されるアクセス・モードが読取専用アクセスであり（または読取アクセスの割合が第６の閾値を超えるか、または、読取アクセスの頻度が第５の閾値を超える）、第１の共有仮想メモリ・ページの現在の管理モードがＳＰＭモードである場合に、第１の共有仮想メモリ・ページの管理モードをＤＳＭモードに変更してもよい。読取専用アクセスのシナリオを、読取アクセスの回数の読書きアクセスの総数に対する割合が１００％であるという事実とみなしてもよい。書込みアクセスの割合とは書込みアクセスの回数の読書きアクセスの総数に対する割合をいい、読取アクセスの割合とは読取アクセスの回数の読書きアクセスの総数に対する割合をいう。他の状況を同様に推論することができる。かかるポリシをアクセス同期に従う消費性選択ポリシとみなしてもよいことは分かる。
【００５２】
様々なマルチコア・システムまたはメニーコア・システムにおいて、第１の共有仮想メモリ・ページの管理モードを様々な方法でＤＳＭモードに変更してもよいことは分かる。
【００５３】
本発明の幾つかの諸実施形態では、第１の共有仮想メモリ・ページの管理モードをＤＳＭモードに変更するステップが、第１の物理メモリ空間において、第１の物理メモリ・ページを第１の共有仮想メモリ・ページに割り当てるステップと、第２の物理メモリ・ページに格納されたデータを第１の物理メモリ・ページにコピーするステップであって、第２の物理メモリ・ページは共有物理メモリ空間に属し（当該共有物理メモリ空間は幾つかのコアにより共有できる物理メモリ空間である）、第２の物理メモリ・ページは第１の共有仮想メモリ・ページから現在マップされている物理メモリ・ページであるステップと、第１の共有仮想メモリ・ページと第１の物理メモリ・ページの間のマッピング関係を生成するステップと、ＤＳＭモードを第１の共有仮想メモリ・ページの管理モードとして記録するステップとを含んでもよい。
【００５４】
本発明の幾つかの諸実施形態では、共有仮想メモリ・ページの管理モードをＳＰＭモードに変更するステップが、第１の共有仮想メモリ・ページと第３の物理メモリ・ページの間のマッピング関係を生成するステップであって、第３の物理メモリ・ページは共有物理メモリ空間に属する（当該共有物理メモリ空間は幾つかのコアにより共有できる物理メモリ空間である）ステップと、ＳＰＭモードを第１の共有仮想メモリ・ページの管理モードとして記録するステップであって、第１の共有仮想メモリ・ページから以前にマップされた物理メモリ・ページに格納されたデータは不変のままであるステップとを含んでもよい。
【００５５】
本発明の幾つかの諸実施形態では、共有仮想メモリ・ページの管理モードをＳＰＭモードに変更するステップが、第４の物理メモリ・ページに格納されたデータ内の変更されたデータを第３の物理メモリ・ページと同期するステップと、第１の共有仮想メモリ・ページと第３の物理メモリ・ページの間のマッピング関係を生成するステップであって、第３の物理メモリ・ページは共有物理メモリ空間に属する（当該共有物理メモリ空間は幾つかのコアにより共有できる物理メモリ空間である）ステップと、ＳＰＭモードを第１の共有仮想メモリ・ページの管理モードとして記録するステップであって、第４の物理メモリ・ページは第１の共有仮想メモリ・ページから以前にマップされた物理メモリ・ページであるステップとを含んでもよい。
【００５６】
第４の物理メモリ・ページに格納されたデータ内の変更されたデータ（当該データをプロセスにより変更してもよい）が、第４の物理メモリ・ページに格納された値が可変の変数を指してもよい。例えば、第３の物理メモリ・ページに格納された変数ｙ１、変数ｙ２、および変数ｙ３が第４の物理メモリ・ページにコピーされ、変数ｙ１、変数ｙ２、および変数ｙ３が第４の物理メモリ・ページに格納された後、変数ｙ１および変数ｙ３の値は不変のままであるが、変数ｙ２の値は元のコピーに対して０から１に変化し、したがって、第４の物理メモリ・ページに格納されたデータにおいて変更されたデータは変数ｙ２を含み、変数ｙ２は変更されたデータであり、他の状況を同様に推論することができる。
【００５７】
ＤＳＭモード／ＳＰＭモードを様々な方法で第１の共有仮想メモリ・ページの管理モードとして記録してもよい。例えば、管理モードのフラグ・ビットが第１の共有仮想メモリ・ページに対して設定され、当該管理モードのフラグ・ビットを、第１の共有仮想メモリ・ページの管理モードがＤＳＭモードであるかまたはＳＰＭモードであるかを識別するための異なる値に設定してもよい。あるいは、プロセス（または複数のプロセスもしくは全てのプロセス）のページ情報構造部に記録された第１の共有仮想メモリ・ページの管理モードをＤＳＭモードまたはＳＰＭモードとして記録してもよい。他の記録方法をここで徹底的に列挙することはしない。
【００５８】
本発明の幾つかの諸実施形態では、（ＤＳＭモードまたはＳＰＭモードのような）管理モードを（第１の共有仮想メモリ・ページのような）共有仮想メモリ・ページごとに設定してもよい。このシナリオでは、第１の共有仮想メモリ・ページにアクセスする全てのプロセスに対して、第１の共有仮想メモリ・ページの管理モードは同一である。勿論、各プロセスに対応する（ＤＳＭモードまたはＳＰＭモードのような）管理モードを（第１の共有仮想メモリ・ページのような）共有仮想メモリ・ページごとに設定してもよい。このシナリオでは、第１の共有仮想メモリ・ページにアクセスする全てのプロセスに対して、第１の共有仮想メモリ・ページの管理モードは同一であるかまたは異なる。例えば、プロセスＡおよびプロセスＢが存在すると仮定すると、第１の共有仮想メモリ・ページ上のプロセスＡに対応する管理モードがＤＳＭモードであってもよく、第１の共有仮想メモリ・ページ上のプロセスＢに対応する管理モードがＳＰＭモードであってもよい。
【００５９】
本発明の幾つかの諸実施形態では、第１の共有仮想メモリ・ページに対する第１のプロセスにより行われたアクセスのアクセス特性を監視してもよく、第１のプロセスがＭ１個のプロセスを含んでもよい。Ｍ１は正の整数である。当該監視されるアクセス特性が第１の設定条件を満たし、第１の共有仮想メモリ・ページ上の第１のプロセスに対応する現在の管理モードがＤＳＭモードである場合に、第１の共有仮想メモリ・ページ上の第１のプロセスに対応する管理モードをＳＰＭモードに変更してもよく、かつ／または、当該監視されるアクセス特性が第２の設定条件を満たし、第１の共有仮想メモリ・ページ上の第１のプロセスに対応する現在の管理モードがＳＰＭモードである場合に、第１の共有仮想メモリ・ページ上の第１のプロセスに対応する管理モードをＤＳＭモードに変更してもよい。このシナリオでは、第１のプロセスが複数のプロセスを含む場合、第１の共有仮想メモリ・ページ上の複数のプロセスに対応する管理モードは同一である（ＤＳＭモードまたはＳＰＭモード）。
【００６０】
さらに、第１の共有仮想メモリ・ページに対する第２のプロセスにより行われたアクセスのアクセス特性を監視してもよく、第２のプロセスはＭ２個のプロセスを含み、Ｍ２は正の整数であり、第２のプロセスは第１のプロセスとは異なる。第１の共有仮想メモリ・ページに対する第２のプロセスにより行われたアクセスの監視されるアクセス特性が第３の設定条件を満たし、第１の共有仮想メモリ・ページ上の第２のプロセスに対応する現在の管理モードがＤＳＭモードである場合に、第１の共有仮想メモリ・ページ上の第２のプロセスに対応する管理モードをＳＰＭモードに変更してもよく、かつ／または、第１の共有仮想メモリ・ページに対する第２のプロセスにより行われたアクセスの監視されるアクセス特性が第４の設定条件を満たし、第１の共有仮想メモリ・ページ上の第２のプロセスに対応する現在の管理モードがＳＰＭモードである場合に、第１の共有仮想メモリ・ページ上の第２のプロセスに対応する管理モードをＤＳＭモードに変更してもよく、第３の設定条件は第１の条件と同一であるかまたは異なり、第４の設定条件は第２の条件と同一であるかまたは異なる。
【００６１】
このシナリオでは、第１の共有仮想メモリ・ページ上の第１のプロセスに対応する管理モードが第１の共有仮想メモリ・ページ上の第２のプロセスに対応する管理モードと同一であるかまたは異なってもよい。即ち、同一の共有仮想メモリ・ページ上の異なるプロセスに対応する管理モードが同一であるかまたは異なってもよく、これは非同期マッピング・モードと呼ばれる。勿論、第２のプロセスでは、第１の共有仮想メモリ・ページの管理モードが、第１の共有仮想メモリ・ページに対する第１のプロセスにより行われたアクセスのアクセス特性を監視することによって直接決定される場合には、第１の共有仮想メモリ・ページに対する第２のプロセスにより行われたアクセスのアクセス特性を監視するステップを実装することは必要ではないが、第１の共有仮想メモリ・ページ上の第２のプロセスに対応する現在の管理モードを、第１の共有仮想メモリ・ページ上の第１のプロセスに対応する現在の管理モードと同一である管理モードに直接設定してもよい。例えば、第１の共有仮想メモリ・ページ上の第１のプロセスに対応する管理モードがＤＳＭモードであることが、第１の共有仮想メモリ・ページに対する第１のプロセスにより行われたアクセスのアクセス特性を監視した結果に従って判定された場合、第１の共有仮想メモリ・ページ上の第２のプロセスに対応する管理モードをＤＳＭモードに設定してもよい。他の状況を同様に推論することができる。
【００６２】
本発明の幾つかの諸実施形態では、第１の共有仮想メモリ・ページにアクセスする複数のプロセス（例えば、第１のプロセスまたは第２のプロセスが複数のプロセスを含む）のアクセス特性を監視するシナリオでは、第１の共有仮想メモリ・ページにアクセスする当該複数のプロセスのうち１つ（当該１つのプロセスが、当該複数のプロセスのうち任意のものであってもよく、または、当該複数のプロセスのうちアクセス特性のパラメータ値が最大であるプロセスであってもよい）の監視されるアクセス特性を、第１の共有仮想メモリ・ページに対して複数のプロセスにより行われたアクセスの監視されるアクセス特性として使用してもよい。あるいは、第１の共有仮想メモリ・ページに対して複数のプロセスにより行われたアクセスの監視される統合されたアクセス特性を第１の共有仮想メモリ・ページに対して複数のプロセスにより行われたアクセスの監視されるアクセス特性として使用してもよい。例えば、第１の共有仮想メモリ・ページにアクセスする複数のプロセスごとにそれぞれ監視されるアクセス特性（または他の形式の統合されたアクセス特性）の平均、加重平均、総和、または加重和を第１の共有仮想メモリ・ページに対する複数のプロセスにより行われたアクセスの監視されるアクセス特性として使用してもよい。特に、例えば、第１の共有仮想メモリ・ページにアクセスする複数のプロセスごとにそれぞれ監視されるアクセス頻度の平均、加重平均、総和、または加重和（または読取アクセスの頻度または読取アクセスの割合または書込みアクセスの頻度または書込みアクセスの割合）（各プロセスに対応する重み値を必要に応じて設定してもよく、全て１秒であってもよい）を、第１の共有仮想メモリ・ページに対する複数のプロセスにより行われたアクセスの監視されるアクセス特性として使用してもよい。第１のプロセスまたは第２のプロセスが複数のプロセスを含むシナリオでは、第１の共有仮想メモリ・ページに対して当該第１のプロセスまたは第２のプロセスにより行われたアクセスの監視されるアクセス特性を上の例示的な方式で決定してもよい。他の状況を同様に推論することができる。
【００６３】
以下では、ＤＳＭモードとＳＰＭモードの動作原理に関して簡単に説明する。ＤＳＭモードに基づいて、並列プログラムの全てのプロセスが同一の共有仮想アドレス空間を有してもよい。各プロセスは、当該共有仮想アドレス空間内の仮想メモリ・ページの一部または全部を、当該プロセスにより維持されるプライベート物理メモリ空間にマップする。ユーザ・レベルでは、各プロセスは、完全な共有仮想アドレス空間を見るが、当該共有仮想アドレス空間内の仮想メモリ・ページに含まれる共有データが実際に他のプロセスにより維持されるプライベート物理メモリ空間とは認識することはできない。
【００６４】
各プロセスは、当該共有仮想アドレス空間に対する任意のデータ操作を実施してもよい。ＤＳＭボトム・レイヤは、全てのプロセスがアクセスできるオンチップ・ネットワーク（Ｏｎ−ｃｈｉｐ  Ｎｅｔｗｏｒｋ）またはシステム共有物理メモリを用いることで、全てのプロセス間でデータを同期する。１つの並列プログラムの複数のプロセスがプロセッサ・コアで実行されることがあり、または、各プロセスが別々のプロセッサ・コアで実行される。
【００６５】
例えば、図２Ａに示すように、図２Ａ内の領域は、プログラムの共有仮想アドレス空間であり、４つのプロセスＰ０乃至Ｐ３が異なるプロセッサ・コアで実行されている。これらのプロセスは、共有データを格納するための均一な共有仮想アドレス空間を有する。当該仮想アドレス空間内の第１の領域はＰ０のプライベート物理メモリ空間にマップされ、第２の領域はＰ１のプライベート物理メモリ空間にマップされ、第３の領域はＰ２のプライベート物理メモリ空間にマップされ、第４の領域はＰ３のプライベート物理メモリ空間にマップされる。
【００６６】
例えば、図２Ｂに示すように、図２Ｂ内のホーム領域は各プロセスのプライベート物理アドレス空間であり、各プロセスは共有仮想アドレス空間からマップされた非重複の物理メモリ空間（図２Ｂで「ホーム」と示した部分）を維持する。当該共有仮想アドレス空間内のプロセス２により維持される物理メモリ領域内の変数ｚにプロセス１がアクセスした場合、ＤＳＭプロトコルは、プロセス２により維持される変数ｚを含む物理メモリ・ページをプロセス１の物理メモリにコピーする（図２ＢのＰ１の「キャッシュ」で示した部分を参照）。このように、プロセス１が変数ｚにアクセスすることができる。ＤＳＭプロトコルは、当該システム内の変数ｚの一貫性を維持して、プロセス１およびプロセス２が同じ変数ｚを見ることを保証する。
【００６７】
ＤＳＭモードは、共有仮想アドレス空間内の仮想メモリ・ページを、プロセスが維持するプライベート物理メモリ空間にマップする。当該プライベート物理メモリ空間のデータは一般に、Ｌ１キャッシュおよびＬ２キャッシュによりキャッシュされるとして構成される。したがって、ＣＰＵがデータを読み出すとき、当該キャッシュのヒット率（キャッシュ・ヒット）は非常に高く、ＣＰＵがデータを書き込むときも、キャッシュ・ヒット率は非常に高く、これはプログラム性能にとっては非常に好ましい。
【００６８】
ＳＰＭモードに基づいて、共有仮想アドレス空間が、同一の並列プログラムの全てのプロセスにおける共有物理アドレス空間にマップされ、ソフトウェア・キャッシュの一貫性が実現される。ＳＰＭモードは一般にＬ２キャッシュを無効にし、Ｌ１キャッシュは一般に、ライト・スルー（ＷＴ、Ｗｒｉｔｅ  Ｔｈｒｏｕｇｈ）ポリシを使用するように設定される。一般に、ＳＰＭモードに基づいて、メモリ・ページは一般に共有物理メモリ空間において１つのコピーのみを保持して、当該物理メモリ空間を節約する。
【００６９】
研究と実践によれば、ＤＳＭモードとＳＰＭモードにはそれぞれその利点と欠点があり、ＤＳＭモードとＳＰＭモードは異なるアクセス特性（例えば、異なるアクセス頻度、異なるアクセス・モード）に対して特定の優位性を有することが分かっている。したがって、本発明の当該実施形態の解決策では、共有仮想メモリ・ページに対してプロセスにより行われたアクセスのアクセス特性が監視され、当該監視されるアクセス特性が、当該共有仮想メモリ・ページの管理モードを再設定するかどうかを判定するための基礎として使用される。当該アクセス特性と当該管理モードの間のかかる適合的な機構は当該共有仮想メモリ・ページへのアクセス性能を高めるのに良く、したがって、対応するプログラムの性能とユーザ・エクスペリエンスを改善するのに良い。
【００７０】
分かるように、本発明の当該実施形態では、共有仮想メモリ・ページのアクセス特性が監視され、当該監視されるアクセス特性が第１の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードがＤＳＭモードである場合、当該共有仮想メモリ・ページの管理モードがＳＰＭモードに変更され、かつ／または、当該監視されるアクセス特性が第２の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードがＳＰＭモードである場合、当該共有仮想メモリ・ページの管理モードがＤＳＭモードに変更される。当該アクセス特性の監視結果に従って当該共有仮想メモリ・ページの管理モードを再設定する機構により、当該管理モードと当該アクセス特性の間の良好なマッチングが実現され、ＤＳＭモードまたはＳＰＭモードの利点がより良く活かされ、共有仮想メモリへのアクセス性能を高めるための機構基盤が提供される。
【００７１】
本発明の以上の解決策をより良く理解し実施するために、以下では例として幾つかの適用シナリオを説明する。
【００７２】
図３を参照されたい。図３は、本発明の１実施形態に従う共有仮想メモリ・ページの管理モードを決定するための別の方法の略流れ図である。図３に示すように、本発明の１実施形態に従う共有仮想メモリ・ページの管理モードを決定するための他の方法が以下の内容を含んでもよい。３０１では、共有仮想メモリ・ページＸに対するＮ個のプロセスにより行われたアクセスのアクセス特性を監視する。
【００７３】
Ｎは１より大きい正の整数である。例えば、当該Ｎ個のプロセスがシステムに現存するプロセスの一部または全部を指してもよい。例えば、当該Ｎ個のプロセスが、当該システムに現存し共有仮想メモリ・ページＸにアクセスする可能性があるプロセスの一部または全部を指してもよい。
【００７４】
本実施形態の共有仮想メモリ・ページＸが直前の実施形態の第１の共有仮想メモリ・ページに対応してもよいことは分かる。
【００７５】
本発明の幾つかの諸実施形態では、共有仮想メモリ・ページＸに対するＮ個のプロセスにより行われたアクセスの様々なアクセス特性を監視してもよく、本実施形態で与える例は共有仮想メモリ・ページＸに対するＮ個のプロセスにより行われたアクセスのアクセス頻度を検出することである。
【００７６】
本発明の幾つかの諸実施形態では、共有仮想メモリ・ページＸに対する当該Ｎ個のプロセスにより行われたアクセスのアクセス頻度が、当該プロセスが単位時間に共有仮想メモリ・ページＸにアクセスした回数を指してもよい。本発明の他の諸実施形態では、共有仮想メモリ・ページＸに対する当該Ｎ個のプロセスにより行われたアクセスのアクセス頻度が共有仮想メモリ・ページＸに対する当該Ｎ個のプロセスにより行われたアクセスの回数の、Ｎ１個の共有仮想メモリ・ページに対して（単位時間のような）或る期間に当該Ｎ個のプロセスにより行われたアクセスの総数に対する割合を指してもよい。当該Ｎ１個の共有仮想メモリ・ページは共有仮想メモリ・ページＸを含み、Ｎ１は１より大きい正の整数である。勿論、共有仮想メモリ・ページＸに対する当該Ｎ個のプロセスにより行われたアクセスのアクセス頻度を計算する方法は上述の例に限られず、自然法則に従う他の計算方法を必要に応じて定義してもよい。
【００７７】
３０２で、共有仮想メモリ・ページＸに対するＮ個のプロセスにより行われたアクセスの監視されるアクセス頻度が第１の閾値以下であるかどうかを判定し、そうである場合、ステップ３０３を実施し、そうでない場合、ステップ３０４を実施する。
【００７８】
３０３で、共有仮想メモリ・ページＸに対するＮ個のプロセスにより行われたアクセスの監視されるアクセス頻度が第１の閾値以下であり、共有仮想メモリ・ページＸ上の当該Ｎ個のプロセスに対応する現在の管理モードがＤＳＭモードである場合に、共有仮想メモリ・ページＸ上の当該Ｎ個のプロセスに対応する管理モードをＳＰＭモードに変更して、ステップ３０１に戻り、共有仮想メモリ・ページＸ上の当該Ｎ個のプロセスに対応する現在の管理モードがＳＰＭモードである場合に、ステップ３０１に戻る。
【００７９】
３０４では、共有仮想メモリ・ページＸに対する当該Ｎ個のプロセスにより行われたアクセスの監視されるアクセス頻度が第２の閾値より大きく、共有仮想メモリ・ページＸ上の当該Ｎ個のプロセスに対応する現在の管理モードがＳＰＭモードである場合に、共有仮想メモリ・ページＸ上の当該Ｎ個のプロセスに対応する管理モードをＤＳＭモードに変更して、ステップ３０１に戻り、共有仮想メモリ・ページＸ上の当該Ｎ個のプロセスに対応する現在の管理モードがＤＳＭモードである場合には、ステップ３０１に戻る。
【００８０】
本発明の幾つかの諸実施形態では、例えば、第１の閾値が毎秒１０００回、毎秒２０００回、毎秒５０００回、または別の頻度値であってもよく、第１の閾値が第２の閾値以下であってもよく、第２の閾値が毎秒１０００回、毎秒２０００回、毎秒３０００回、毎秒５０００回、または別の頻度値であってもよい。本発明の他の諸実施形態では、例えば、第１の閾値が２０％、２５％、３０％、３５％または別の割合であってもよく、第１の閾値が第２の閾値以下であってもよく、第２の閾値が２０％、２５％、３０％、３５％または別の割合であってもよい。かかるポリシをアクセス・データに従う消費性選択ポリシとみなしてもよいことは分かる。
【００８１】
様々なマルチコア・システムまたはメニーコア・システムにおいて、共有仮想メモリ・ページＸ上のＮ個のプロセスに対応する管理モードを様々な方法でＤＳＭモードに変更してもよいことは分かる。
【００８２】
本発明の幾つかの諸実施形態では、共有仮想メモリ・ページＸ上のＮ個のプロセスに対応する管理モードをＤＳＭモードに変更するステップが、第１の物理メモリ空間において、第１の物理メモリ・ページを第１の共有仮想メモリ・ページに割り当てるステップと、第２の物理メモリ・ページに格納されたデータを第１の物理メモリ・ページにコピーするステップであって、第２の物理メモリ・ページは共有物理メモリ空間に属し、第２の物理メモリ・ページは、共有仮想メモリ・ページＸから現在マップされている物理メモリ・ページであるステップと、共有仮想メモリ・ページＸと第１の物理メモリ・ページの間のマッピング関係を生成するステップと、ＤＳＭモードを共有仮想メモリ・ページＸ上の当該Ｎ個のプロセスに対応する管理モードとして記録するステップとを含んでもよい。例えば、当該Ｎ個のプロセスのページ情報構造部に記録された共有仮想メモリ・ページＸの管理モードを全てＤＳＭモードとして記録してもよい。
【００８３】
本発明の幾つかの諸実施形態では、共有仮想メモリ・ページＸ上の当該Ｎ個のプロセスに対応する管理モードをＳＰＭモードに変更するステップが、共有仮想メモリ・ページＸと第３の物理メモリ・ページの間のマッピング関係を生成するステップであって、第３の物理メモリ・ページは共有物理メモリ空間に属するステップと、ＳＰＭモードを共有仮想メモリ・ページＸ上の当該Ｎ個のプロセスに対応する管理モードと記録するステップとを含んでもよい。例えば、当該Ｎ個のプロセスのページ情報構造部に記録された共有仮想メモリ・ページＸの管理モードを全てＳＰＭモードとして記録してもよい。さらに、共有仮想メモリ・ページＸと第３の物理メモリ・ページの間のマッピング関係を生成する前に、当該方法がさらに、共有仮想メモリ・ページＸから以前にマップされた第４の物理メモリ・ページに格納されたデータ内の変更されたデータを第３の物理メモリ・ページに同期するステップを含んでもよい。勿論、共有仮想メモリ・ページＸから以前にマップされた第４の物理メモリ・ページに格納されたデータが不変のままである場合、当該データ同期ステップを省略してもよい。第４の物理メモリ・ページは共有仮想メモリ・ページＸから以前にマップされた物理メモリ・ページである。
【００８４】
ＤＳＭモードとＳＰＭモードは異なるアクセス頻度に対して特定の優位性を有する。したがって、本実施形態の解決策では、当該共有仮想メモリ・ページに対して当該Ｎ個のプロセスにより行われたアクセスのアクセス特性が監視され、当該監視されるアクセス特性は、当該共有仮想メモリ・ページ上の当該Ｎ個のプロセスに対応する管理モードを再設定するかどうかを判定するための基盤として使用される。当該アクセス特性と当該管理モードの間のかかる適合的な機構は当該共有仮想メモリ・ページへのアクセス性能を高めるのに良く、したがって、対応するプログラムの性能とユーザ・エクスペリエンスを改善するのに良い。
【００８５】
図４を参照されたい。図４は、本発明の１実施形態に従う共有仮想メモリ・ページの管理モードを決定するための別の方法の略流れ図である。本発明の１実施形態に従う、共有仮想メモリ・ページの管理モードを決定するための他の方法が以下の内容を含んでもよい。
【００８６】
４０１で、共有仮想メモリ・ページＸに対するプロセスＡおよびプロセスＢにより行われたアクセスのアクセス特性を監視する。
【００８７】
本発明の幾つかの諸実施形態では、共有仮想メモリ・ページＸに対するプロセスＡおよびプロセスＢにより行われたアクセスの様々なアクセス特性を監視してもよく、本実施形態で与えた例は、共有仮想メモリ・ページＸに対するプロセスＡおよびプロセスＢにより行われたアクセスのアクセス頻度を検出することである。
【００８８】
本実施形態の共有仮想メモリ・ページＸが、直前の実施形態の第１の共有仮想メモリ・ページに対応してもよいことは分かる。
【００８９】
本発明の幾つかの諸実施形態では、共有仮想メモリ・ページＸに対するプロセスＡおよびプロセスＢにより行われたアクセスの頻度が、プロセスＡおよびプロセスＢが単位時間に共有仮想メモリ・ページＸにアクセスした回数を指してもよい。
【００９０】
本発明の他の諸実施形態では、共有仮想メモリ・ページＸに対するプロセスＡおよびプロセスＢにより行われたアクセスの頻度が、プロセスＡおよびプロセスＢが共有仮想メモリ・ページＸにアクセスする回数の、プロセスＡおよびプロセスＢが（単位時間のような）或る期間にＮ１個の共有仮想メモリ・ページにアクセスする総数に対する割合を指してもよく、当該Ｎ１個の共有仮想メモリ・ページは共有仮想メモリ・ページＸを含み、Ｎ１は１より大きい正の整数である。
【００９１】
勿論、共有仮想メモリ・ページＸに対するプロセスＡおよびプロセスＢにより行われたアクセスの頻度を計算する方法は上述の例に限られず、自然法則に従う他の計算方法を必要に応じて定義してもよい。
【００９２】
４０２では、共有仮想メモリ・ページＸに対するプロセスＡにより行われたアクセスの監視される頻度が第１の閾値以下であるかどうかを判定し、そうである場合、ステップ４０３を実施し、そうでない場合、ステップ４０４を実施する。
【００９３】
４０３では、共有仮想メモリ・ページＸに対するプロセスＡにより行われたアクセスの監視される頻度が第１の閾値以下であり、共有仮想メモリ・ページＸ上のプロセスＡに対応する現在の管理モードがＤＳＭモードである場合に、共有仮想メモリ・ページＸ上のプロセスＡに対応する管理モードをＳＰＭモードに変更して、ステップ４０１に戻り、共有仮想メモリ・ページＸ上のプロセスＡに対応する現在の管理モードがＳＰＭモードである場合に、ステップ４０１に戻る。
【００９４】
４０４では、共有仮想メモリ・ページＸに対するプロセスＡにより行われたアクセスの監視される頻度が第２の閾値より大きく、共有仮想メモリ・ページＸ上のプロセスＡに対応する現在の管理モードがＳＰＭモードである場合に、共有仮想メモリ・ページＸ上のプロセスＡに対応する管理モードをＤＳＭモードに変更して、ステップ４０１に戻り、共有仮想メモリ・ページＸ上のプロセスＡに対応する現在の管理モードがＤＳＭモードである場合に、ステップ４０１に戻る。
【００９５】
４０５では、共有仮想メモリ・ページＸに対するプロセスＢにより行われたアクセスの監視される頻度が第１の閾値以下であるかどうかを判定し、そうである場合、ステップ４０６を実施し、そうでない場合、ステップ４０７を実施する。
【００９６】
４０６では、共有仮想メモリ・ページＸに対するプロセスＢにより行われたアクセスの監視される頻度が第１の閾値以下であり、共有仮想メモリ・ページＸ上のプロセスＢに対応する現在の管理モードがＤＳＭモードである場合に、共有仮想メモリ・ページＸ上のプロセスＢに対応する管理モードをＳＰＭモードに変更して、ステップ４０１に戻り、共有仮想メモリ・ページＸ上のプロセスＢに対応する現在の管理モードがＳＰＭモードである場合に、ステップ４０１に戻る。
【００９７】
４０７では、共有仮想メモリ・ページＸに対するプロセスＢにより行われたアクセスの監視される頻度が第２の閾値より大きく、共有仮想メモリ・ページＸ上のプロセスＢに対応する現在の管理モードがＳＰＭモードである場合、共有仮想メモリ・ページＸ上のプロセスＢに対応する管理モードをＤＳＭモードに変更して、ステップ４０１に戻り、共有仮想メモリ・ページＸ上のプロセスＢに対応する現在の管理モードがＤＳＭモードである場合に、ステップ４０１に戻る。
【００９８】
ステップ４０２乃至４０４およびステップ４０５乃至４０７は必ずしも一定の順序で行われず、同時または連続的に実施してもよいことは分かる。
【００９９】
本発明の幾つかの諸実施形態では、例えば、第１の閾値が毎秒１０００回、毎秒２０００回、毎秒５０００回、または別の頻度値であってもよく、第１の閾値が第２の閾値以下であってもよく、第２の閾値が毎秒１０００回、毎秒２０００回、毎秒３０００回、毎秒５０００回、または別の頻度値であってもよい。本発明の他の諸実施形態では、例えば、第１の閾値が２０％、２５％、３０％、３５％または別の割合であってもよく、第１の閾値が第２の閾値以下であってもよく、第２の閾値が２０％、２５％、３０％、３５％または別の割合であってもよい。かかるポリシをアクセス・データに従う消費性選択ポリシとみなしてもよいことは分かる。
【０１００】
様々なマルチコア・システムまたはメニーコア・システムにおいて、共有仮想メモリ・ページＸのプロセスＡ（またはプロセスＢ）に対応する管理モードを様々な方法でＤＳＭモードに変更してもよいことは分かる。
【０１０１】
本発明の幾つかの諸実施形態では、第１の共有仮想メモリ・ページのプロセスＡ（またはプロセスＢ）に対応する管理モードをＤＳＭモードに変更するステップが、第１の物理メモリ空間において、第１の物理メモリ・ページを共有仮想メモリ・ページＸに割り当てるステップと、第２の物理メモリ・ページに格納されたデータを第１の物理メモリ・ページにコピーするステップであって、第２の物理メモリ・ページは共有物理メモリ空間に属し、第２の物理メモリ・ページは、共有仮想メモリ・ページＸから現在マップされている物理メモリ・ページであるステップと、共有仮想メモリ・ページＸと第１の物理メモリ・ページの間のマッピング関係を生成するステップと、ＤＳＭモードを共有仮想メモリ・ページＸのプロセスＡ（またはプロセスＢ）に対応する管理モードとして記録するステップとを含んでもよい。例えば、プロセスＡ（またはプロセスＢ）のページ情報構造部に記録された共有仮想メモリ・ページＸの管理モードを全てＤＳＭモードとして記録してもよい。さらに、本発明の幾つかの諸実施形態では、第２の物理メモリ・ページが引き続いて有効となったままであってもよく、第２の物理メモリ・ページが、ＤＳＭモードを共有仮想メモリ・ページＸの管理モードとして使用するプロセス間の同期チャネル、または、ＳＰＭモードを共有仮想メモリ・ページＸの管理モードとして使用するプロセス間の同期チャネル、または、ＤＳＭモードを共有仮想メモリ・ページＸの管理モードとして使用するプロセスとＳＰＭモードを共有仮想メモリ・ページＸの管理モードとして使用するプロセスとの間の同期チャネルの役割を果たしてもよい。当該同期チャネルは共有仮想メモリ・ページＸに固有である。
【０１０２】
本発明の幾つかの諸実施形態では、共有仮想メモリ・ページＸのプロセスＡ（またはプロセスＢ）に対応する管理モードをＳＰＭモードに変更するステップが、共有仮想メモリ・ページＸと第３の物理メモリ・ページの間のマッピング関係を生成するステップであって、第３の物理メモリ・ページは共有物理メモリ空間に属するステップと、ＳＰＭモードを共有仮想メモリ・ページＸのプロセスＡ（またはプロセスＢ）に対応する管理モードとして記録するステップとを含んでもよい。例えば、プロセスＡ（またはプロセスＢ）のページ情報構造部に記録された共有仮想メモリ・ページＸの管理モードを全てＳＰＭモードとして記録してもよい。さらに、共有仮想メモリ・ページＸと第３の物理メモリ・ページの間のマッピング関係を生成する前に、当該方法がさらに、共有仮想メモリ・ページＸから以前にマップされた第４の物理メモリ・ページに格納されたデータ内の変更されたデータを第３の物理メモリ・ページに同期するステップを含んでもよい。
【０１０３】
勿論、共有仮想メモリ・ページＸから以前にマップされた第４の物理メモリ・ページに格納されたデータが不変のままである場合、当該データ同期ステップを省略してもよい。
【０１０４】
ＤＳＭモードとＳＰＭモードは異なるアクセス頻度に対して特定の優位性を有する。したがって、本実施形態の解決策では、共有仮想メモリ・ページに対するプロセスＡおよびプロセスＢにより行われたアクセスのアクセス特性をそれぞれ監視し、当該監視されるアクセス特性は、当該共有仮想メモリ・ページ上のプロセスＡおよびプロセスＢに対応する管理モードを再設定するかどうかをそれぞれ判定するための基盤として使用される。当該アクセス特性と当該管理モードの間のかかる適合的な機構は当該共有仮想メモリ・ページへのアクセス性能を高めるのに良く、したがって、対応するプログラムの性能とユーザ・エクスペリエンスを改善するのに良い。さらに、異なるプロセスのアクセス特性は、当該共有仮想メモリ・ページ上の各プロセスに対応する管理モードを再設定するかどうかを判定する基盤の役割を果たし、これは当該管理モードをより適合的にし、アクセス性能を高める。
【０１０５】
本発明の当該実施形態の上述の解決策をより良く実装できるようにするために、以下では上述の解決策を実装するための関連装置を説明する。
【０１０６】
図５Ａに示すように、本発明の１実施形態に従う共有仮想メモリ・ページの管理モードを決定するための装置５００が監視ユニット５１０および第１の再マッピング・ユニット５２０備えてもよい。監視ユニット５１０は、当該共有仮想メモリ・ページに対してプロセスが行ったアクセスのアクセス特性を監視するように構成される。
【０１０７】
監視ユニット５１０に接続された第１の再マッピング・ユニット５２０は、監視ユニット５１０により監視されるアクセス特性が第１の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードがＤＳＭモードである場合に、当該共有仮想メモリ・ページの管理モードをＳＰＭモードに変更するように構成される。
【０１０８】
図５Ｂに示すように、共有仮想メモリ・ページの管理モードを決定するための装置５００がさらに、監視ユニット５１０に接続され、監視ユニット５１０により監視されるアクセス特性が第２の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードがＳＰＭモードである場合に、当該共有仮想メモリ・ページの管理モードをＤＳＭモードに変更するように構成された第２の再マッピング・ユニット５３０を備えてもよい。
【０１０９】
図５Ｃに示すように、共有仮想メモリ・ページの管理モードを決定するための装置５００が、監視ユニット５１０に接続され、監視ユニット５１０により監視されるアクセス特性が第２の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードがＳＰＭモードである場合に、当該共有仮想メモリ・ページの管理モードをＤＳＭモードに変更するように構成された第２の再マッピング・ユニット５３０を備えてもよい。
【０１１０】
第１の設定条件と第２の設定条件が、監視されるアクセス特性とともに変化してもよいことは分かる。例えば、当該監視されるアクセス特性がアクセス頻度である場合、第１の設定条件と第２の設定条件が当該アクセス頻度に関連する設定条件を含んでもよく、当該監視されるアクセス特性がアクセス・モードである場合、第１の設定条件と第２の設定条件が当該アクセス・モードに関連する設定条件を含んでもよく、当該監視されるアクセス特性がアクセス頻度とアクセス・モードを含む場合、第１の設定条件と第２の設定条件がアクセス頻度とアクセス・モードの両方に関連する設定条件を含んでもよい。
【０１１１】
本発明の幾つかの諸実施形態では、当該監視されるアクセス特性が第１の共有仮想メモリ・ページに対して当該プロセスにより行われたアクセスのアクセス頻度を含む場合、第１の設定条件が、当該アクセス頻度が第１の閾値以下であることを含んでもよく（例えば、第１の閾値が毎秒１０００回、毎秒２０００回、毎秒５０００回、または別の頻度値であってもよい）、第２の設定条件が、当該アクセス頻度が第２の閾値より大きいことを含んでもよい。第１の閾値が第２の閾値以下であってもよく、第２の閾値が毎秒１０００回、毎秒２０００回、毎秒３０００回、毎秒５０００回、または別の頻度値であってもよい。第２の閾値は第１の閾値以上である。このシナリオでは、当該監視されるアクセス頻度が第１の閾値以下であり、第１の共有仮想メモリ・ページの現在の管理モードがＤＳＭモードである場合に、第１の共有仮想メモリ・ページの管理モードをＳＰＭモードに変更してもよく、かつ／または、当該監視されるアクセス頻度が第２の閾値より大きく、第１の共有仮想メモリ・ページの現在の管理モードがＳＰＭモードである場合に、第１の共有仮想メモリ・ページの管理モードをＤＳＭモードに変更してもよい。かかるポリシをアクセス・データに従う消費性選択ポリシとみなしてもよいことは分かる。
【０１１２】
本発明の他の諸実施形態では、監視されるアクセス特性が、共有仮想メモリ・ページに対するプロセスにより行われたアクセスのアクセス・モードを含む場合に、第１の設定条件が、当該アクセス・モードが書込みアクセスもしくは読書きアクセスである（または、書込みアクセスの割合が第４の閾値を超えるか、または、書込みアクセスの頻度が第３の閾値を超える）ことを含んでもよく、第２の設定条件が、読取専用アクセスまたは読取アクセスの割合が第６の閾値を超えることまたは読取アクセスの頻度が第５の閾値を超えることを含んでもよい。第４の閾値と第６の閾値の合計が１以上であってもよい。このシナリオでは、監視されるアクセス・モードが書込みアクセスまたは読書きアクセスであり（または、書込みアクセスの割合が第４の閾値を超えるか、または、書込みアクセスの頻度が第３の閾値を超える）、第１の共有仮想メモリ・ページの現在の管理モードがＤＳＭモードである場合に、第１の共有仮想メモリ・ページの管理モードをＳＰＭモードに変更してもよく、かつ／または、監視されるアクセス・モードが読取専用アクセスであり（または、読取アクセスの割合が第６の閾値を超えるか、または、読取アクセスの頻度が第５の閾値を超える）、第１の共有仮想メモリ・ページの現在の管理モードがＳＰＭモードである場合に、第１の共有仮想メモリ・ページの管理モードをＤＳＭモードに変更してもよい。他の状況を同様に推論してもよい。かかるポリシをアクセス同期に従う消費性選択ポリシとみなしてもよいことは分かる。
【０１１３】
本発明の幾つかの諸実施形態では、第１の設定条件が、アクセス頻度が第１の閾値以下であること、またはアクセス・モードが読書きアクセスもしくは書込みアクセスであること、または書込みアクセスの頻度が第３の閾値より大きいこと、または書込みアクセスの割合が第４の閾値より大きいことを含んでもよい。
【０１１４】
本発明の幾つかの諸実施形態では、監視ユニット５１０は特に、当該共有仮想メモリ・ページに対するプロセスにより行われたアクセスのアクセス頻度を監視するように構成される。
【０１１５】
第１の再マッピング・ユニット５２０を特に、監視ユニット５１０により監視されるアクセス頻度が第１の閾値以下であり、当該共有仮想メモリ・ページの現在の管理モードが分散共有メモリ・モードである場合、当該共有仮想メモリ・ページの管理モードを共有物理メモリ・モードに変更するように構成してもよい。
【０１１６】
あるいは、監視ユニット５１０は特に、共有仮想メモリ・ページに対するプロセスにより行われたアクセスのアクセス・モードを監視するように構成され、第１の再マッピング・ユニット５２０を特に、監視ユニット５１０により監視されるアクセス・モードが読書きアクセスまたは書込みアクセスである場合、および、当該共有仮想メモリ・ページの現在の管理モードが分散共有メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを共有物理メモリ・モードに変更するように構成してもよい。
【０１１７】
あるいは、監視ユニット５１０は特に、共有仮想メモリ・ページに対するプロセスにより行われた書込みアクセスの頻度を監視するように構成され、第１の再マッピング・ユニット５２０を特に、監視ユニット５１０により監視される書込みアクセスの頻度が第３の閾値より大きい場合、および、当該共有仮想メモリ・ページの現在の管理モードが分散共有メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを共有物理メモリ・モードに変更するように構成してもよい。
【０１１８】
あるいは、監視ユニット５１０は特に、共有仮想メモリ・ページに対するプロセスにより行われたアクセスの割合を監視するように構成され、第１の再マッピング・ユニット５２０を特に、監視ユニット５１０により監視される書込みアクセスの割合が第４の閾値より大きい場合、および、当該共有仮想メモリ・ページの現在の管理モードが分散共有メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを共有物理メモリ・モードに変更するように構成してもよい。
【０１１９】
本発明の幾つかの諸実施形態では、第２の設定条件は、アクセス頻度が第２の閾値より大きいこと、アクセス・モードが読取専用アクセスであること、読取アクセスの頻度が第５の閾値より大きいこと、または、読取アクセスの割合が第６の閾値より大きいことを含む。第２の閾値が第１の閾値以上であってもよい。
【０１２０】
監視ユニット５１０は特に、共有仮想メモリ・ページに対するプロセスにより行われたアクセスの頻度を監視するように構成され、第２の再マッピング・ユニット５３０を特に、監視ユニット５１０により監視されるアクセスの頻度が第２の閾値より大きい場合、および、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合に、該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するように構成してもよい。
【０１２１】
あるいは、監視ユニット５１０は特に、共有仮想メモリ・ページに対するプロセスにより行われたアクセスのモードを監視するように構成され、第２の再マッピング・ユニット５３０を特に、監視ユニット５１０により監視されるアクセスのモードが読取専用アクセスである場合、および、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するように構成してもよい。
【０１２２】
あるいは、監視ユニット５１０は特に、当該共有仮想メモリ・ページに対して当該プロセスにより行われた読取アクセスの頻度を監視するように構成され、第２の再マッピング・ユニット５３０を特に、監視ユニット５１０により監視される読取アクセスの頻度が第５の閾値より大きい場合、および、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するように構成してもよい。
【０１２３】
あるいは、監視ユニット５１０は特に、共有仮想メモリ・ページに対してプロセスにより行われた読取アクセスの割合を監視するように構成され、第２の再マッピング・ユニット５３０を特に、監視ユニット５１０により監視される読取アクセスの割合が第６の閾値より大きい場合、および、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更するように構成してもよい。
【０１２４】
本発明の幾つかの諸実施形態では、第１の再マッピング・ユニット５２０を特に、監視ユニット５１０により監視されるアクセス特性が第１の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードがＤＳＭモードである場合に、当該共有仮想メモリ・ページと第３の物理メモリ・ページの間のマッピング関係を生成し、ＳＰＭモードを当該共有仮想メモリ・ページの管理モードとして記録するように構成してもよい。第３の物理メモリ・ページは共有物理メモリ空間に属し、当該共有仮想メモリ・ページから以前にマップされた物理メモリ・ページに格納されたデータは不変のままである。
【０１２５】
本発明の幾つかの諸実施形態では、第１の再マッピング・ユニット５２０を特に、監視ユニット５１０により監視されるアクセス特性が第１の設定条件を満たし、共有仮想メモリ・ページの現在の管理モードがＤＳＭモードである場合に、第４の物理メモリ・ページに格納されたデータ内の変更されたデータを第３の物理メモリ・ページに同期し、当該共有仮想メモリ・ページと第３の物理メモリ・ページの間のマッピング関係を生成し、ＳＰＭモードを当該共有仮想メモリ・ページの管理モードとして記録するように構成してもよい。第３の物理メモリ・ページは共有物理メモリ空間に属し、第４の物理メモリ・ページは当該共有仮想メモリ・ページから以前にマップされた物理メモリ・ページであり、当該物理メモリ・ページに格納されたデータが変更される。
【０１２６】
本発明の幾つかの諸実施形態では、第２の再マッピング・ユニット５３０を特に、監視ユニット５１０により監視されるアクセス特性が第２の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードがＳＰＭモードである場合に、第１の物理メモリ空間において、第１の物理メモリ・ページを当該共有仮想メモリ・ページに割り当て、第２の物理メモリ・ページに格納されたデータを第１の物理メモリ・ページにコピーし、当該共有仮想メモリ・ページと第１の物理メモリ・ページの間のマッピング関係を生成し、ＤＳＭモードを当該共有仮想メモリ・ページの管理モードとして記録するように構成してもよい。第２の物理メモリ・ページは共有物理メモリ空間に属し、第２の物理メモリ・ページは、当該共有仮想メモリ・ページから現在マップされている物理メモリ・ページである。
【０１２７】
本発明の幾つかの諸実施形態では、監視ユニット５１０は特に、当該共有仮想メモリ・ページに対する第１のプロセスにより行われたアクセスのアクセス特性を監視するように構成される。第１のプロセスはＭ１個のプロセスを含み、Ｍ１は正の整数である。
【０１２８】
第１の再マッピング・ユニット５２０を特に、監視ユニット５１０により監視される共有仮想メモリ・ページに対する第１のプロセスにより行われたアクセスのアクセス特性、が第１の設定条件を満たす場合、および、当該共有仮想メモリ・ページ上の第１のプロセスに対応する現在の管理モードがＤＳＭモードである場合に、当該共有仮想メモリ・ページ上の第１のプロセスに対応する管理モードをＳＰＭモードに変更するように構成してもよい。
【０１２９】
第２の再マッピング・ユニット５３０を特に、監視ユニット５１０により監視される共有仮想メモリ・ページに対する第１のプロセスにより行われたアクセスのアクセス特性が第２の設定条件を満たす場合、および、当該共有仮想メモリ・ページ上の第１のプロセスに対応する現在の管理モードがＳＰＭモードである場合に、当該共有仮想メモリ・ページ上の第１のプロセスに対応する管理モードをＤＳＭモードに変更するように構成してもよい。
【０１３０】
本発明の幾つかの諸実施形態では、Ｍ１が１より大きい場合、共有仮想メモリ・ページに対する当該Ｍ１個のプロセスのうち１つにより行われたアクセスの監視されるアクセス特性を、当該共有仮想メモリ・ページに対する第１のプロセスにより行われたアクセスの監視されるアクセス特性として使用してもよい。あるいは、第１の共有仮想メモリ・ページに対する当該Ｍ１個のプロセスにより行われたアクセスの監視される統合されたアクセス特性を、当該共有仮想メモリ・ページに対する第１のプロセスにより行われたアクセスの監視されるアクセス特性として使用してもよい。例えば、当該共有仮想メモリ・ページにアクセスする当該Ｍ１個のプロセスごとにそれぞれ監視されるアクセス特性の平均、加重平均、総和、または加重和を、当該共有仮想メモリ・ページに対する第１のプロセスにより行われたアクセスの監視されるアクセス特性として使用してもよい。
【０１３１】
本発明の幾つかの諸実施形態では、監視ユニット５１０はさらに、当該共有仮想メモリ・ページに対する第２のプロセスにより行われたアクセスのアクセス特性を監視するように構成される。第２のプロセスはＭ２個のプロセスを含み、Ｍ２は正の整数であり、第２のプロセスは第１のプロセスとは異なる。
【０１３２】
第１の再マッピング・ユニット５２０をさらに、監視ユニット５１０により監視される共有仮想メモリ・ページに対する第２のプロセスにより行われたアクセスのアクセス特性が第１の設定条件を満たす場合、および、当該共有仮想メモリ・ページ上の第２のプロセスに対応する現在の管理モードがＤＳＭモードである場合、当該共有仮想メモリ・ページ上の第２のプロセスに対応する管理モードをＳＰＭモードに変更するように構成してもよい。
【０１３３】
第２の再マッピング・ユニット５３０は、監視ユニット５１０により監視される共有仮想メモリ・ページに対する第２のプロセスにより行われたアクセスのアクセス特性が第２の設定条件を満たす場合、および、当該共有仮想メモリ・ページ上の第２のプロセスに対応する現在の管理モードがＳＰＭモードである場合、当該共有仮想メモリ・ページ上の第２のプロセスに対応する管理モードをＤＳＭモードに変更するように構成される。
【０１３４】
本発明の幾つかの諸実施形態では、Ｍ２が１より大きい場合、共有仮想メモリ・ページに対するＭ２個のプロセスの１つにより行われたアクセスの監視されるアクセス特性を当該共有仮想メモリ・ページに対する第２のプロセスにより行われたアクセスの監視されるアクセス特性として使用してもよい。あるいは、第１の共有仮想メモリ・ページに対する当該Ｍ２個のプロセスにより行われたアクセスの監視される統合されたアクセス特性を、当該共有仮想メモリ・ページに対する第２のプロセスにより行われたアクセスの監視されるアクセス特性として使用してもよい。例えば、当該共有仮想メモリ・ページにアクセスする当該Ｍ２個のプロセスごとにそれぞれ監視されるアクセス特性の平均、加重平均、総和、または加重和を、当該共有仮想メモリ・ページに対する第２のプロセスにより行われたアクセスの監視されるアクセス特性として使用してもよい。
【０１３５】
例えば、第１のプロセス（または第２のプロセス）が複数のプロセスを含む場合、第１の再マッピング・ユニット５２０を特に、共有仮想メモリ・ページにアクセスする第１のプロセス（または第２のプロセス）内のプロセスごとにそれぞれ監視ユニット５１０により監視されるアクセス特性の平均、加重平均、総和、または加重和を、当該共有仮想メモリ・ページにアクセスする第１のプロセス（または第２のプロセス）の監視されるアクセス特性として使用するか、または、当該共有仮想メモリ・ページにアクセスする第１のプロセス（または第２のプロセス）内の或るプロセスに関して監視ユニット５１０により監視されるアクセス特性を、当該共有仮想メモリ・ページにアクセスする第１のプロセス（または第２のプロセス）の監視されるアクセス特性として使用し、当該共有仮想メモリ・ページに対するプロセスにより行われたアクセスの監視されるアクセス特性が第１の条件を満たす場合、および、当該共有仮想メモリ・ページ上の第１のプロセス（または第２のプロセス）に対応する現在の管理モードが分散共有メモリ・モードである場合に、当該共有仮想メモリ・ページ上の第１のプロセス（または第２のプロセス）に対応する管理モードを共有物理メモリ・モードに変更するように構成してもよい。
【０１３６】
別の例では、第１のプロセス（または第２のプロセス）が複数のプロセスを含む場合、第２の再マッピング・ユニット５３０を特に、共有仮想メモリ・ページにアクセスする第１のプロセス（または第２のプロセス）内のプロセスごとにそれぞれ監視ユニット５１０により監視されるアクセス特性の平均、加重平均、総和、または加重和を、当該共有仮想メモリ・ページにアクセスする第１のプロセス（または第２のプロセス）の監視されるアクセス特性として使用するか、または、当該共有仮想メモリ・ページにアクセスする第１のプロセス（または第２のプロセス）内の或るプロセスに関して監視ユニット５１０により監視されるアクセス特性を、当該共有仮想メモリ・ページにアクセスする第１のプロセス（または第２のプロセス）の監視されるアクセス特性として使用し、当該共有仮想メモリ・ページに対するプロセスにより行われたアクセスの監視されるアクセス特性が第２の条件を満たす場合、および、当該共有仮想メモリ・ページ上の第１のプロセス（または第２のプロセス）に対応する現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページ上の第１のプロセス（または第２のプロセス）に対応する管理モードを分散共有メモリ・モードに変更するように構成してもよい。
【０１３７】
共有仮想メモリ・ページの管理モードを決定するための装置５００を、アクセス・ネットワーク装置またはコアネットワーク装置またはルータまたは別の通信装置のような通信装置に展開してもよく、共有仮想メモリ・ページの管理モードを決定するための装置５００を、サーバまたはパーソナル・コンピュータまたは別のコンピュータ装置に展開してもよいことは分かる。
【０１３８】
本実施形態における共有仮想メモリ・ページの管理モードを決定するための装置５００における機能モジュールの機能を、当該方法の実施形態で説明した方法に従って実装してもよいことは分かる。当該装置の詳細な実装プロセスについては、当該方法の実施形態における関連説明を参照されたい。ここではさらに繰り返し説明することはしない。
【０１３９】
分かるように、本実施形態における共有仮想メモリ・ページの管理モードを決定するための装置５００は、当該共有仮想メモリ・ページのアクセス特性を監視し、当該監視されるアクセス特性が第１の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードが分散共有メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを共有物理メモリ・モードに変更するか、または、当該監視されるアクセス特性が第２の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページの管理モードを分散共有メモリ・モードに変更する。当該アクセス特性の監視結果に従って当該共有仮想メモリ・ページの管理モードを再設定する機構により、当該管理モードと当該アクセス特性の間の良好なマッチングが実現され、ＤＳＭモードまたはＳＰＭモードの利点がより良く活かされ、共有仮想メモリへのアクセス性能を高めるための機構基盤が提供される。
【０１４０】
図６は、本発明に従うコンピュータ・システムの略構造図である。図６に示すように、本実施形態のコンピュータ・システムは、少なくとも１つのバス６０１と、バス６０１に接続された少なくとも１つのプロセッサ６０２と、バス６０１に接続された少なくとも１つのメモリ６０３とを備える。
【０１４１】
プロセッサ６０２はバス６０１を使用して、当該共有仮想メモリ・ページのアクセス特性を監視し、当該監視されるアクセス特性が第１の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードがＤＳＭモードである場合に、当該共有仮想メモリ・ページの管理モードをＳＰＭモードに変更し、かつ／または、当該監視されるアクセス特性が第２の設定条件を満たし、当該共有仮想メモリ・ページの現在の管理モードがＳＰＭモードである場合に、当該共有仮想メモリ・ページの管理モードをＤＳＭモードに変更するためのメモリ６０３内のコードを呼び出す。
【０１４２】
本発明の幾つかの諸実施形態では、例えば、プロセッサ６０２が、共有仮想メモリ・ページ（引用の都合上、以下では第１の共有仮想メモリ・ページと称する）に対するＮ個のプロセスにより行われたアクセスのアクセス特性を監視することができる。Ｎは正の整数である。例えば、Ｎが１に等しい場合、当該Ｎ個のプロセスが当該システムに現存する任意のプロセスまたは特定のプロセスを指してもよく、Ｎが１より大きい場合、当該Ｎ個のプロセスが当該システムに現存するプロセスの一部または全部を指してもよい。例えば、当該Ｎ個のプロセスが、当該システムに現存し第１の共有仮想メモリ・ページにアクセスする可能性があるプロセスの一部または全部を指してもよい。本発明の幾つかの諸実施形態では、例えば、性能カウンタまたは他のハードウェアもしくはプログラムを使用して当該共有仮想メモリ・ページのアクセス特性を監視してもよい。
【０１４３】
本発明の幾つかの諸実施形態では、例えば、プロセッサ６０２が、共有仮想メモリ・ページに対するプロセスにより行われたアクセスの様々なアクセス特性を監視することができる。当該アクセス特性がアクセス頻度および／またはアクセス・モード等を含んでもよい。当該アクセス・モードが読取専用アクセス、読書きアクセス、書込みアクセス等を含んでもよい。即ち、プロセッサ６０２が、当該共有仮想メモリ・ページに対するプロセスにより行われたアクセスのアクセス頻度および／またはアクセス・モードのようなアクセス特性を監視することができる。
【０１４４】
第１の設定条件と第２の設定条件が、監視されるアクセス特性とともに変化してもよいことは分かる。例えば、当該監視されるアクセス特性がアクセス頻度である場合、第１の設定条件と第２の設定条件が当該アクセス頻度に関連する設定条件を含んでもよく、当該監視されるアクセス特性がアクセス・モードである場合、第１の設定条件と第２の設定条件が当該アクセス・モードに関連する設定条件を含んでもよく、当該監視されるアクセス特性がアクセス頻度とアクセス・モードを含む場合、第１の設定条件と第２の設定条件がアクセス頻度とアクセス・モードの両方に関連する設定条件を含んでもよい。
【０１４５】
本発明の幾つかの諸実施形態では、監視されるアクセス特性が第１の共有仮想メモリ・ページに対してプロセスにより行われたアクセスのアクセス頻度を含む場合、第１の設定条件が、当該アクセス頻度が第１の閾値以下であることを含んでもよく（例えば、第１の閾値が毎秒１０００回、毎秒２０００回、毎秒５０００回、または別の頻度値であってもよい）、第２の設定条件が、当該アクセス頻度が第２の閾値より大きいことを含んでもよい。第１の閾値が第２の閾値以下であってもよく、第２の閾値が毎秒１０００回、毎秒２０００回、毎秒３０００回、毎秒５０００回、または別の頻度値であってもよい。このシナリオでは、当該監視されるアクセス頻度が第１の閾値以下であり、第１の共有仮想メモリ・ページの現在の管理モードがＤＳＭモードである場合に、第１の共有仮想メモリ・ページの管理モードをＳＰＭモードに変更してもよく、かつ／または、当該監視されるアクセス頻度が第２の閾値より大きく、第１の共有仮想メモリ・ページの現在の管理モードがＳＰＭモードである場合に、第１の共有仮想メモリ・ページの管理モードをＤＳＭモードに変更してもよい。かかるポリシをアクセス・データに従う消費性選択ポリシとみなしてもよいことは分かる。
【０１４６】
本発明の他の諸実施形態では、監視されるアクセス特性が、共有仮想メモリ・ページに対するプロセスにより行われたアクセスのアクセス・モードを含む場合に、第１の設定条件が、当該アクセス・モードが書込みアクセスもしくは読書きアクセスである（または、書込みアクセスの割合が第４の閾値を超えるか、もしくは、書込みアクセスの頻度が第３の閾値を超える）ことを含んでもよく、第２の設定条件が、読取専用アクセスまたは読取アクセスの割合が第６の閾値を超えることまたは読取アクセスの頻度が第５の閾値を超えることを含んでもよい。第４の閾値と第６の閾値の合計が１以上であってもよい。このシナリオでは、プロセッサ６０２により監視されるアクセス・モードが書込みアクセスまたは読書きアクセスであり（または書込みアクセスの割合が第４の閾値を超えるか、もしくは、書込みアクセスの頻度が第３の閾値を超える）、第１の共有仮想メモリ・ページの現在の管理モードがＤＳＭモードである場合、プロセッサ６０２が第１の共有仮想メモリ・ページの管理モードをＳＰＭモードに変更してもよく、かつ／または、プロセッサ６０２により監視されるアクセス・モードが読取専用アクセス（または読取アクセスの割合が第６の閾値を超えるか、もしくは、読取アクセスの頻度が第５の閾値を超える）であり、第１の共有仮想メモリ・ページの現在の管理モードがＳＰＭモードである場合、プロセッサ６０２は第１の共有仮想メモリ・ページの管理モードをＤＳＭモードに変更してもよく、他の状況を同様に推論してもよい。
【０１４７】
本発明の幾つかの諸実施形態では、プロセッサ６０２により、第１の共有仮想メモリ・ページの管理モードをＤＳＭモードに変更するステップが、第１の物理メモリ空間において、第１の物理メモリ・ページを第１の共有仮想メモリ・ページに割り当てるステップと、第２の物理メモリ・ページに格納されたデータを第１の物理メモリ・ページにコピーするステップであって、第２の物理メモリ・ページは共有物理メモリ空間に属し（当該共有物理メモリ空間は幾つかのコアにより共有できる物理メモリ空間である）、第２の物理メモリ・ページは第１の共有仮想メモリ・ページから現在マップされている物理メモリ・ページであるステップと、第１の共有仮想メモリ・ページと第１の物理メモリ・ページの間のマッピング関係を生成するステップと、ＤＳＭモードを第１の共有仮想メモリ・ページの管理モードとして記録するステップとを含んでもよい。
【０１４８】
本発明の幾つかの諸実施形態では、プロセッサ６０２により、当該共有仮想メモリ・ページの管理モードをＳＰＭモードに変更するステップが、第１の共有仮想メモリ・ページと第３の物理メモリ・ページの間のマッピング関係を生成するステップであって、第３の物理メモリ・ページは共有物理メモリ空間に属する（当該共有物理メモリ空間は幾つかのコアにより共有できる物理メモリ空間である）ステップと、ＳＰＭモードを第１の共有仮想メモリ・ページの管理モードとして記録するステップであって、当該共有仮想メモリ・ページから以前にマップされた物理メモリ・ページに格納されたデータは不変のままであるステップとを含んでもよい。
【０１４９】
本発明の幾つかの諸実施形態では、プロセッサ６０２により、共有仮想メモリ・ページの管理モードをＳＰＭモードに変更するステップが、プロセッサ６０２により、第４の物理メモリ・ページに格納されたデータ内の変更されたデータを第３の物理メモリ・ページと同期するステップと、第１の共有仮想メモリ・ページと第３の物理メモリ・ページの間のマッピング関係を生成するステップであって、第３の物理メモリ・ページは共有物理メモリ空間に属する（当該共有物理メモリ空間は幾つかのコアにより共有できる物理メモリ空間である）ステップと、ＳＰＭモードを第１の共有仮想メモリ・ページの管理モードとして記録するステップであって、第４の物理メモリ・ページは当該共有仮想メモリ・ページから以前にマップされた物理メモリ・ページであり、当該物理メモリ・ページに格納されたデータが変更されているステップとを含んでもよい。
【０１５０】
プロセッサ６０２は、多様な方法でＤＳＭモード／ＳＰＭモードを第１の共有仮想メモリ・ページの管理モードとして記録してもよい。例えば、管理モードのフラグ・ビットが第１の共有仮想メモリ・ページに対して設定され、当該管理モードのフラグ・ビットを、第１の共有仮想メモリ・ページの管理モードがＤＳＭモードであるかまたはＳＰＭモードであるかを識別するための異なる値に設定してもよい。あるいは、プロセッサ６０２が、プロセス（または複数のプロセスもしくは全てのプロセス）のページ情報構造部に記録された第１の共有仮想メモリ・ページの管理モードをＤＳＭモードまたはＳＰＭモードとして記録してもよい。他の記録方法をここで徹底的に列挙することはしない。
【０１５１】
本発明の幾つかの諸実施形態では、プロセッサ６０２は、（ＤＳＭモードまたはＳＰＭモードのような）管理モードを（第１の共有仮想メモリ・ページのような）共有仮想メモリ・ページごとに設定してもよい。このシナリオでは、第１の共有仮想メモリ・ページにアクセスする全てのプロセスに対して、第１の共有仮想メモリ・ページの管理モードは同一である。勿論、各プロセスに対応する（ＤＳＭモードまたはＳＰＭモードのような）管理モードを（第１の共有仮想メモリ・ページのような）共有仮想メモリ・ページごとに設定してもよい。このシナリオでは、第１の共有仮想メモリ・ページにアクセスする全てのプロセスに対して、第１の共有仮想メモリ・ページの管理モードは同一であるかまたは異なる。例えば、プロセスＡおよびプロセスＢが存在すると仮定すると、第１の共有仮想メモリ・ページ上のプロセスＡに対応する管理モードがＤＳＭモードであってもよく、第１の共有仮想メモリ・ページ上のプロセスＢに対応する管理モードがＳＰＭモードであってもよい。
【０１５２】
本発明の幾つかの諸実施形態では、プロセッサ６０２が第１の共有仮想メモリ・ページに対する第１のプロセスにより行われたアクセスのアクセス特性を監視してもよい。第１のプロセスはＭ１個のプロセスを含み、Ｍ１は正の整数である。プロセッサ６０２は、当該監視されるアクセス特性が第１の設定条件を満たし、第１の共有仮想メモリ・ページ上の第１のプロセスに対応する現在の管理モードがＤＳＭモードである場合に、第１の共有仮想メモリ・ページ上の第１のプロセスに対応する管理モードをＳＰＭモードに変更し、かつ／または、プロセッサ６０２は、当該監視されるアクセス特性が第２の設定条件を満たし、第１の共有仮想メモリ・ページ上の第１のプロセスに対応する現在の管理モードがＳＰＭモードである場合に、第１の共有仮想メモリ・ページ上の第１のプロセスに対応する管理モードをＤＳＭモードに変更してもよい。
【０１５３】
本発明の幾つかの諸実施形態では、プロセッサ６０２がさらに、第１の共有仮想メモリ・ページに対する第２のプロセスにより行われたアクセスのアクセス特性を監視してもよい。第２のプロセスはＭ２個のプロセスを含み、Ｍ２は正の整数であり、第２のプロセスは第１のプロセスとは異なる。プロセッサ６０２が、第１の共有仮想メモリ・ページに対する第２のプロセスにより行われたアクセスの監視されるアクセス特性が第３の設定条件を満たし、第１の共有仮想メモリ・ページ上の第２のプロセスに対応する現在の管理モードがＤＳＭモードである場合に、第１の共有仮想メモリ・ページ上の第２のプロセスに対応する管理モードをＳＰＭモードに変更してもよく、かつ／または、プロセッサ６０２が、第１の共有仮想メモリ・ページに対する第２のプロセスにより行われたアクセスの監視されるアクセス特性が第４の設定条件を満たし、第１の共有仮想メモリ・ページ上の第２のプロセスに対応する現在の管理モードがＳＰＭモードである場合に、第１の共有仮想メモリ・ページ上の第２のプロセスに対応する管理モードをＤＳＭモードに変更してもよい。第３の設定条件は第１の条件と同一であるかまたは異なり、第４の設定条件は第２の条件と同一であるかまたは異なる。
【０１５４】
例えば、第１のプロセス（または第２のプロセス）が複数のプロセスを含む場合、プロセッサ６０２は、共有仮想メモリ・ページにアクセスする第１のプロセス（または第２のプロセス）内のプロセスごとにそれぞれ監視されるアクセス特性の平均、加重平均、総和、または加重和を、当該共有仮想メモリ・ページにアクセスする第１のプロセス（または第２のプロセス）の監視されるアクセス特性として使用するか、または、当該共有仮想メモリ・ページにアクセスする第１のプロセス（または第２のプロセス）内の或るプロセスに対して監視されるアクセス特性を、当該共有仮想メモリ・ページにアクセスする第１のプロセス（または第２のプロセス）の監視されるアクセス特性として使用し、当該共有仮想メモリ・ページに対するプロセスにより行われたアクセスの監視されるアクセス特性が第１の条件を満たす場合、および、当該共有仮想メモリ・ページ上の第１のプロセス（または第２のプロセス）に対応する現在の管理モードが分散共有メモリ・モードである場合に、当該共有仮想メモリ・ページ上の第１のプロセス（または第２のプロセス）に対応する管理モードを共有物理メモリ・モードに変更してもよい。
【０１５５】
別の例では、第１のプロセス（または第２のプロセス）が複数のプロセスを含む場合、プロセッサ６０２は、共有仮想メモリ・ページにアクセスする第１のプロセス（または第２のプロセス）内のプロセスごとにそれぞれ監視されるアクセス特性の平均、加重平均、総和、または加重和を当該共有仮想メモリ・ページにアクセスする第１のプロセス（または第２のプロセス）の監視されるアクセス特性として使用するか、または、当該共有仮想メモリ・ページにアクセスする第１のプロセス（または第２のプロセス）内の或るプロセスに対して監視されるアクセス特性を、当該共有仮想メモリ・ページにアクセスする第１のプロセス（または第２のプロセス）の監視されるアクセス特性として使用し、当該共有仮想メモリ・ページに対するプロセスにより行われたアクセスの監視されるアクセス特性が第２の条件を満たす場合、および、当該共有仮想メモリ・ページ上の第１のプロセス（または第２のプロセス）に対応する現在の管理モードが共有物理メモリ・モードである場合に、当該共有仮想メモリ・ページ上の第１のプロセス（または第２のプロセス）に対応する管理モードを分散共有メモリ・モードに変更してもよい。
【０１５６】
図７を参照されたい。図７は、本発明の１実施形態に従う別のコンピュータ・システム６００の略図である。コンピュータ・システム６００はさらに、入力装置６０４と出力装置６０５を備える。入力装置６０４と出力装置６０５はバス６０１に接続される。
【０１５７】
本実施形態で提供するコンピュータ・システムを使用して、図１乃至図４の任意の方法の実施形態の技術的解決策におけるコンピュータ・システムに対応する部分を実装することができる。この実装原理と技術的効果は同様であり、ここではこれ以上繰り返さない。図６または図７は、本発明で提供するコンピュータ・システムの略構造図にすぎず、その具体的な構造を実際の条件に従って調節してもよい。
【０１５８】
本実施形態のコンピュータ・システム６００が、アクセス・ネットワーク装置またはコアネットワーク装置またはルータまたは別の通信装置のような通信装置であってもよく、コンピュータ・システム６００がサーバまたはパーソナル・コンピュータまたは別のコンピュータ装置であってもよいことは分かる。
【０１５９】
本実施形態のコンピュータ・システム６００内の構成要素の機能を、上記方法の実施形態で説明した方法に従って実装できることは分かる。詳細な実装のプロセスに関しては、上記方法の実施形態における関連説明を参照することができ、ここではさらに繰り返し説明することはしない。
【０１６０】
本発明の１実施形態ではさらにコンピュータ記憶媒体を提供する。当該コンピュータ記憶媒体がプログラムを格納してもよい。当該プログラムを実行すると、当該プログラムは上記方法の実施形態で説明した共有仮想メモリ・ページの管理モードを決定するための方法のステップの一部または全部を実行することができる。
【０１６１】
簡単のため、上述の方法の諸実施形態は一連の動作として説明されていることに留意されたい。しかし、本発明によれば幾つかのステップが他の順序を使用するかまたは同時に実施されてもよいので、本発明は説明した動作順序に限定されないことは当業者には理解されるべきである。また、説明した諸実施形態の全ては好適な諸実施形態であり、関連する動作とモジュールは必ずしも本発明により必要とされないことは当業者には理解されるべきである。
【０１６２】
上述の諸実施形態では各実施形態の説明にはその重点があり、幾つかの実施形態は詳細に説明されていないかもしれない。他の諸実施形態の関連説明を参照することができる。
【０１６３】
本願で提供する幾つかの諸実施形態では、開示した装置を他の方式で実装してもよいことは理解される。例えば、説明した装置の実施形態は単に例示的なものである。例えば、ユニット分割は単なる論理的な機能分割であり、実際の実装では他の分割があってもよい。例えば、複数のユニットまたは構成要素を結合するかもしくは別のシステムに統合してもよく、または、幾つかの機能を無視するかまたは実施しなくともよい。さらに、表示または説明した相互接続、直接接続、または通信接続を、幾つかのインタフェースを介して実装してもよい。装置またはユニット間の間接接続または通信接続を、電気的な形態、機械的な形態、または他の形態で実装してもよい。
【０１６４】
別々の部分として説明したユニットが物理的に独立であってもなくてもよく、ユニットとして表示された部分が物理ユニットであってもなくてもよく、１つの位置に配置されてもよく、または、複数のネットワーク・ユニットに分散されてもよい。当該ユニットの一部または全部を、実際のニーズに従って実施形態の解決策の目的を達成するように選択してもよい。
【０１６５】
さらに、本発明の諸実施形態の機能ユニットを１つの処理ユニットに統合してもよく、または、当該ユニットの各々が物理的に単体で存在してもよく、または、２つもしくは複数のユニットを１つのユニットに統合してもよい。当該統合されたユニットをハードウェアの形態で実装してもよく、または、ソフトウェア機能ユニットの形態で実装してもよい。
【０１６６】
当該統合されたユニットをソフトウェア機能ユニットの形態で実装して独立な製品として販売または使用するとき、当該統合されたユニットをコンピュータ可読記憶媒体に格納してもよい。かかる理解のもと、本発明の技術的解決策を本質的に、先行技術に寄与する部分を、または当該技術的解決策の全部もしくは一部を、ソフトウェア製品の形態で提供してもよい。当該コンピュータソフトウェア製品は記憶媒体に格納され、コンピュータ装置（パーソナル・コンピュータ、サーバ、ネットワーク装置等であってもよい）が、本発明の諸実施形態で説明した方法のステップの全部または一部を実行できるようにするための幾つかの命令を含む。上述の記憶媒体には、ＵＳＢフラッシュ・ディスク、読取専用メモリ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ、ＲＯＭ）、ランダム・アクセスメモリ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ、ＲＡＭ）、取外し可能ハード・ディスク、磁気ディスク、または光ディスクのような、プログラム・コードを格納できる任意の媒体が含まれる。
【０１６７】
以上の諸実施形態は、本発明の技術的解決策を説明するために提供したものにすぎず、本発明を限定するものではない。以上の諸実施形態を参照して本発明を詳細に説明したが、本発明の諸実施形態の技術的解決策の趣旨と範囲を逸脱せずに、当業者が、上述の諸実施形態で説明した技術的解決策に修正を加えるか、または、その一部の技術的特徴に均等な置換えを行ってもよいことは当業者には理解されるべきである。
【符号の説明】
【０１６８】
５００  共有仮想メモリ・ページの管理モードを決定するための装置
５１０  監視ユニット
５２０  第１のマッピング・ユニット
５３０  第２のマッピング・ユニット
６００  コンピュータ・システム
６０２  プロセッサ
６０３  メモリ
６０４  入力装置
６０５  出力装置
【図１】
0006296304.tif 000002
【図２Ａ】
0006296304.tif 000003
【図２Ｂ】
0006296304.tif 000004
【図３】
0006296304.tif 000005
【図４】
0006296304.tif 000006
【図５Ａ】
0006296304.tif 000007
【図５Ｂ】
0006296304.tif 000008
【図５Ｃ】
0006296304.tif 000009
【図６】
0006296304.tif 000010
【図７】
0006296304.tif 000011