(57)【要約】【課題】論理パーティション内のオペレーティング・システムに対して透過に動作する、動的論理パーティショニングによるコンピュータ内のコンピュータ・メモリの管理を提供すること。【解決手段】論理パーティション（「ＬＰＡＲ」）の１つの論理メモリ・ブロック（「ＬＭＢ」）内のページ・フレームからそのＬＭＢの外にあるページ・フレームに、該ＬＰＡＲ内のオペレーティング・システムのためのページ・テーブルにページ・フレーム番号を有するページ・フレームの内容をハイパーバイザによってコピーすることを含む、動的論理パーティショニングによりコンピュータ内のコンピュータ・メモリを管理する例示的方法、システム、および製品が記載される。実施形態は、典型的には、新しいページ・フレーム番号をページ・テーブルに格納することを含み、これは、内容がコピーされるページ・フレームごとに、内容がコピーされる先のページ・フレームを識別する新しいページ・フレーム番号をハイパーバイザによって格納することを含む。典型的な実施形態では、ページ・フレームの内容をコピーすることと、新しいページ・フレーム番号を格納することは、オペレーティング・システムに対して透過に行われる。【選択図】図１
2008541214.tif 000002
【特許請求の範囲】
【請求項１】
動的論理パーティショニングによりコンピュータ内のコンピュータ・メモリを管理する方法であって、
論理パーティション（「ＬＰＡＲ」）の１つの論理メモリ・ブロック（「ＬＭＢ」）内のページ・フレームから前記ＬＭＢの外のページ・フレームに、前記ＬＰＡＲ内のオペレーティング・システムのためのページ・テーブルにページ・フレーム番号を有するページ・フレームの内容をハイパーバイザによってコピーすることと、
前記ページ・テーブルに新しいページ・フレーム番号を格納することであって、内容がコピーされるページ・フレームごとに、内容がコピーされる先のページ・フレームを識別する新しいページ・フレーム番号を前記ハイパーバイザによって格納することを含むこととを備え、
ページ・フレームの内容をコピーすることと、新しいページ・フレーム番号を格納することは、前記オペレーティング・システムに対して透過に行われる方法。
【請求項２】
前記ページ・テーブルにあるすべてのページ・フレームのリストを前記ハイパーバイザによって作成することと、
前記ハイパーバイザがページ・フレームの内容をコピーし、新しいページ・フレーム番号を格納する間、前記ページ・テーブルにページ・フレームを追加する、前記ハイパーバイザへの前記オペレーティング・システムからの呼び出しを前記ハイパーバイザによって監視することと、
前記ページ・テーブルに追加されたページ・フレームを前記リストに追加することとをさらに備え、
ページ・フレームの内容をコピーすることは、前記リストにあるページ・フレームの内容をコピーすることをさらに備える請求項１に記載の方法。
【請求項３】
２つ以上のサイズのメモリ・ページが前記ＬＭＢの前記ページ・フレームにマッピングされ、前記方法はさらに、
メモリ管理割り込みを前記オペレーティング・システムから前記ハイパーバイザにベクトルすることと、
前記オペレーティング・システムのためのメモリ管理動作を、前記オペレーティング・システムの前記ページ・テーブルから一時的な代替ページ・テーブルに切り替えることとを備え、
ページ・フレームの内容をコピーすることは、前記ＬＭＢのページ・フレームにマッピングされたページの中で最も小さいページと同じサイズのセグメント単位でページ・フレームの内容をコピーすることをさらに備える請求項１または２に記載の方法。
【請求項４】
ページ・フレームの内容をコピーすることはさらに、
前記オペレーティング・システムの前記ページ・テーブルにもあるページ・フレームを前記一時的な代替ページ・テーブルから削除することと、
そのような削除されたページ・フレームの状態ビットを、前記オペレーティング・システムの前記ページ・テーブルに格納することとを備える請求項３に記載の方法。
【請求項５】
前記ＬＭＢの前記ページ・フレームの少なくとも１つは、ダイレクト・メモリ・アクセス（「ＤＭＡ」）のためにマッピングされ、ページ・フレームの内容をコピーすることはさらに、
ＤＭＡのためにマッピングされたページ・フレームの内容をコピーする間、前記ハイパーバイザによりＤＭＡ動作を阻止することと、
内容がコピーされる先のページ・フレームを識別する新しいページ・フレーム番号を、ＤＭＡのためにマッピングされた前記ＬＭＢの各ページ・フレーム用のＤＭＡマップ・テーブルに格納することとを備える請求項１ないし４のいずれか一項に記載の方法。
【請求項６】
ＬＭＢよりも大きく、かつページ・テーブルを収容するのに十分な大きさの連続した空きメモリのセグメントを作成することをさらに備える請求項１ないし５のいずれか一項に記載の方法。
【請求項７】
連続した空きメモリのセグメントを作成することは、２つ以上の連続したＬＭＢについて、前記ハイパーバイザにより、
該ＬＭＢ内のページ・フレームから該ＬＭＢの外のページ・フレームに、前記ＬＰＡＲ内のオペレーティング・システムのためのページ・テーブルにある該ＬＭＢのページ・フレームの内容を前記ハイパーバイザによってコピーするステップと、
新しいページ・フレーム番号を前記ページ・テーブルに格納するステップであって、内容がコピーされるページ・フレームごとに、内容がコピーされる先のページ・フレームを識別する新しいページ・フレーム番号を前記ハイパーバイザによって格納することを含むステップと、
空きメモリ・リストに該ＬＭＢを追加するステップと
を繰り返し実行することをさらに備える請求項６に記載の方法。
【請求項８】
プロセッサに対するＬＭＢのアフィニティを向上させることをさらに備え、
前記ＬＭＢのページ・フレームの内容をコピーすることはさらに、
前記ＬＭＢのページ・フレームの内容を、前記ＬＭＢの外にある暫定ページ・フレームにコピーし、
第２のＬＭＢのページ・フレームの内容を前記ＬＭＢのページ・フレームにコピーし、
前記暫定ページ・フレームの内容を前記第２のＬＭＢのページ・フレームにコピーすることを備え、
新しいページ・フレーム番号を格納することはさらに、前記ＬＭＢの内容と前記第２のＬＭＢの内容の両方について、内容がコピーされる先のページ・フレームを識別する新しいページ・フレーム番号を格納することを備える請求項１ないし７のいずれか一項に記載の方法。
【請求項９】
動的論理パーティショニングによりコンピュータ内のコンピュータ・メモリを管理する装置であって、前記装置は、コンピュータ・プロセッサと、前記コンピュータ・プロセッサに動作可能に結合されたコンピュータ・メモリとを備え、前記コンピュータ・メモリには、
論理パーティション（「ＬＰＡＲ」）の１つの論理メモリ・ブロック（「ＬＭＢ」）内のページ・フレームから前記ＬＭＢの外のページ・フレームに、前記ＬＰＡＲ内のオペレーティング・システムのためのページ・テーブルにページ・フレーム番号を有するページ・フレームの内容をハイパーバイザによってコピーすることと、
前記ページ・テーブルに新しいページ・フレーム番号を格納することであって、内容がコピーされるページ・フレームごとに、内容がコピーされる先のページ・フレームを識別する新しいページ・フレーム番号を前記ハイパーバイザによって格納することを含むことと
が可能なコンピュータ・プログラム命令が配置され、
前記コンピュータ・プログラム命令はさらに、前記オペレーティング・システムに対して透過に、ページ・フレームの内容をコピーすることと、新しいページ・フレーム番号を格納することとが可能である装置。
【請求項１０】
前記ページ・テーブルにあるすべてのページ・フレームのリストを前記ハイパーバイザによって作成することと、
前記ハイパーバイザがページ・フレームの内容をコピーし、新しいページ・フレーム番号を格納する間、前記ページ・テーブルにページ・フレームを追加する、前記ハイパーバイザへの前記オペレーティング・システムからの呼び出しを前記ハイパーバイザによって監視することと、
前記ページ・テーブルに追加されたページ・フレームを前記リストに追加することと
が可能なコンピュータ・プログラム命令をさらに備え、
ページ・フレームの内容をコピーすることは、前記リストにあるページ・フレームの内容をコピーすることをさらに備える請求項９に記載の装置。
【請求項１１】
２つ以上のサイズのメモリ・ページが前記ＬＭＢの前記ページ・フレームにマッピングされ、前記装置はさらに、
メモリ管理割り込みを前記オペレーティング・システムから前記ハイパーバイザにベクトルすることと、
前記オペレーティング・システムのためのメモリ管理動作を、前記オペレーティング・システムの前記ページ・テーブルから一時的な代替ページ・テーブルに切り替えることと
が可能なコンピュータ・プログラム命令を備え、
ページ・フレームの内容をコピーすることは、前記ＬＭＢのページ・フレームにマッピングされたページの中で最も小さいページと同じサイズのセグメント単位でページ・フレームの内容をコピーすることをさらに備える請求項９または１０に記載の装置。
【請求項１２】
ページ・フレームの内容をコピーすることはさらに、
前記オペレーティング・システムの前記ページ・テーブルにもあるページ・フレームを前記一時的な代替ページ・テーブルから削除することと、
そのような削除されたページ・フレームの状態ビットを、前記オペレーティング・システムの前記ページ・テーブルに格納することとを備える請求項１１に記載の装置。
【請求項１３】
前記ＬＭＢの前記ページ・フレームの少なくとも１つは、ダイレクト・メモリ・アクセス（「ＤＭＡ」）のためにマッピングされ、ページ・フレームの内容をコピーすることはさらに、
ＤＭＡのためにマッピングされたページ・フレームの内容をコピーする間、前記ハイパーバイザによりＤＭＡ動作を阻止することと、
内容がコピーされる先のページ・フレームを識別する新しいページ・フレーム番号を、ＤＭＡのためにマッピングされた前記ＬＭＢの各ページ・フレーム用のＤＭＡマップ・テーブルに格納することとを備える請求項９ないし１２のいずれか一項に記載の装置。
【請求項１４】
ＬＭＢよりも大きく、かつページ・テーブルを収容するのに十分な大きさの連続した空きメモリのセグメントを作成することが可能なコンピュータ・プログラム命令をさらに備える請求項９ないし１３のいずれか一項に記載の装置。
【請求項１５】
連続した空きメモリのセグメントを作成することは、２つ以上の連続したＬＭＢについて、前記ハイパーバイザにより、
該ＬＭＢ内のページ・フレームから該ＬＭＢの外のページ・フレームに、前記ＬＰＡＲ内のオペレーティング・システムのためのページ・テーブルにある該ＬＭＢのページ・フレームの内容を前記ハイパーバイザによってコピーするステップと、
新しいページ・フレーム番号を前記ページ・テーブルに格納するステップであって、内容がコピーされるページ・フレームごとに、内容がコピーされる先のページ・フレームを識別する新しいページ・フレーム番号を前記ハイパーバイザによって格納することを含むステップと、
空きメモリ・リストに該ＬＭＢを追加するステップと
を繰り返し実行することをさらに備える請求項１４に記載の装置。
【請求項１６】
プロセッサに対するＬＭＢのアフィニティを向上させることが可能なコンピュータ・プログラム命令をさらに備え、
前記ＬＭＢのページ・フレームの内容をコピーすることはさらに、
前記ＬＭＢのページ・フレームの内容を、前記ＬＭＢの外にある暫定ページ・フレームにコピーし、
第２のＬＭＢのページ・フレームの内容を前記ＬＭＢのページ・フレームにコピーし、
前記暫定ページ・フレームの内容を前記第２のＬＭＢのページ・フレームにコピーすることを備え、
新しいページ・フレーム番号を格納することはさらに、前記ＬＭＢの内容と前記第２のＬＭＢの内容の両方について、内容がコピーされる先のページ・フレームを識別する新しいページ・フレーム番号を格納することを備える請求項９ないし１５のいずれか一項に記載の装置。
【請求項１７】
動的論理パーティショニングによりコンピュータ内のコンピュータ・メモリを管理するコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品は、信号担持媒体に配置され、前記コンピュータ・プログラム製品は、
論理パーティション（「ＬＰＡＲ」）の１つの論理メモリ・ブロック（「ＬＭＢ」）内のページ・フレームから前記ＬＭＢの外のページ・フレームに、前記ＬＰＡＲ内のオペレーティング・システムのためのページ・テーブルにページ・フレーム番号を有するページ・フレームの内容をハイパーバイザによってコピーすることと、
前記ページ・テーブルに新しいページ・フレーム番号を格納することであって、内容がコピーされるページ・フレームごとに、内容がコピーされる先のページ・フレームを識別する新しいページ・フレーム番号を前記ハイパーバイザによって格納することを含むことと
が可能なコンピュータ・プログラム命令を備え、
ページ・フレームの内容をコピーすることと、新しいページ・フレーム番号を格納することは、前記オペレーティング・システムに対して透過に行われるコンピュータ・プログラム製品。
【請求項１８】
前記ページ・テーブルにあるすべてのページ・フレームのリストを前記ハイパーバイザによって作成することと、
前記ハイパーバイザがページ・フレームの内容をコピーし、新しいページ・フレーム番号を格納する間、前記ページ・テーブルにページ・フレームを追加する、前記ハイパーバイザへの前記オペレーティング・システムからの呼び出しを前記ハイパーバイザによって監視することと、
前記ページ・テーブルに追加されたページ・フレームを前記リストに追加することと
が可能なコンピュータ・プログラム命令をさらに備え、
ページ・フレームの内容をコピーすることは、前記リストにあるページ・フレームの内容をコピーすることをさらに備える請求項１７に記載のコンピュータ・プログラム製品。
【請求項１９】
２つ以上のサイズのメモリ・ページが前記ＬＭＢの前記ページ・フレームにマッピングされ、前記コンピュータ・プログラム製品はさらに、
メモリ管理割り込みを前記オペレーティング・システムから前記ハイパーバイザにベクトルすることと、
前記オペレーティング・システムのためのメモリ管理動作を、前記オペレーティング・システムの前記ページ・テーブルから一時的な代替ページ・テーブルに切り替えることと
が可能なコンピュータ・プログラム命令を備え、
ページ・フレームの内容をコピーすることは、前記ＬＭＢのページ・フレームにマッピングされたページの中で最も小さいページと同じサイズのセグメント単位でページ・フレームの内容をコピーすることをさらに備える請求項１７または１８に記載のコンピュータ・プログラム製品。
【請求項２０】
ページ・フレームの内容をコピーすることはさらに、
前記オペレーティング・システムの前記ページ・テーブルにもあるページ・フレームを前記一時的な代替ページ・テーブルから削除することと、
そのような削除されたページ・フレームの状態ビットを、前記オペレーティング・システムの前記ページ・テーブルに格納することとを備える請求項１９に記載のコンピュータ・プログラム製品。
【請求項２１】
前記ＬＭＢの前記ページ・フレームの少なくとも１つは、ダイレクト・メモリ・アクセス（「ＤＭＡ」）のためにマッピングされ、ページ・フレームの内容をコピーすることはさらに、
ＤＭＡのためにマッピングされたページ・フレームの内容をコピーする間、前記ハイパーバイザによりＤＭＡ動作を阻止することと、
内容がコピーされる先のページ・フレームを識別する新しいページ・フレーム番号を、ＤＭＡのためにマッピングされた前記ＬＭＢの各ページ・フレーム用のＤＭＡマップ・テーブルに格納することとを備える請求項１７ないし２０のいずれか一項に記載のコンピュータ・プログラム製品。
【請求項２２】
ＬＭＢよりも大きく、かつページ・テーブルを収容するのに十分な大きさの連続した空きメモリのセグメントを作成することが可能なコンピュータ・プログラム命令をさらに備える請求項１７ないし２１のいずれか一項に記載のコンピュータ・プログラム製品。
【請求項２３】
連続した空きメモリのセグメントを作成することは、２つ以上の連続したＬＭＢについて、前記ハイパーバイザにより、
該ＬＭＢ内のページ・フレームから該ＬＭＢの外のページ・フレームに、前記ＬＰＡＲ内のオペレーティング・システムのためのページ・テーブルにある該ＬＭＢのページ・フレームの内容を前記ハイパーバイザによってコピーするステップと、
新しいページ・フレーム番号を前記ページ・テーブルに格納するステップであって、内容がコピーされるページ・フレームごとに、内容がコピーされる先のページ・フレームを識別する新しいページ・フレーム番号を前記ハイパーバイザによって格納することを含むステップと、
空きメモリ・リストに該ＬＭＢを追加するステップと
を繰り返し実行することをさらに備える請求項２２に記載のコンピュータ・プログラム製品。
【請求項２４】
プロセッサに対するＬＭＢのアフィニティを向上させることが可能なコンピュータ・プログラム命令をさらに備え、
前記ＬＭＢのページ・フレームの内容をコピーすることはさらに、
前記ＬＭＢのページ・フレームの内容を、前記ＬＭＢの外にある暫定ページ・フレームにコピーし、
第２のＬＭＢのページ・フレームの内容を前記ＬＭＢのページ・フレームにコピーし、
前記暫定ページ・フレームの内容を前記第２のＬＭＢのページ・フレームにコピーすることを備え、
新しいページ・フレーム番号を格納することはさらに、前記ＬＭＢの内容と前記第２のＬＭＢの内容の両方について、内容がコピーされる先のページ・フレームを識別する新しいページ・フレーム番号を格納することを備える請求項１７ないし２３のいずれか一項に記載のコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理に関し、より詳細には、動的論理パーティショニングによりコンピュータ内でコンピュータ・メモリを管理する方法、システム、および製品に関する。
【背景技術】
【０００２】
１９４８年のＥＤＶＡＣコンピュータ・システムの開発は、しばしばコンピュータ時代の幕開けとして引用される。それ以来、コンピュータ・システムは、極めて複雑な機器へと発展してきた。今日のコンピュータは、ＥＤＶＡＣのような初期のシステムに比べてはるかに高度化している。コンピュータ・システムは通例、ハードウェア構成要素およびソフトウェア構成要素、アプリケーション・プログラム、オペレーティング・システム、プロセッサ、バス、メモリ、入出力装置等の組合せを備える。半導体処理とコンピュータ・アーキテクチャの進歩によりコンピュータの性能がますます高まるのに伴い、向上したハードウェアの性能を活用すべくより高度なコンピュータ・ソフトウェアが発展し、その結果、わずか数年前に比べてもはるかに高性能な現在のコンピュータ・システムがもたらされた。
【０００３】
現在、プロセッサの数、入出力（「Ｉ／Ｏ」）スロットの数、およびメモリ・サイズの点で次第に大規模化しつつあるシステムを開発する傾向が見られる。コンピュータ・ハードウェア設計の進歩により、こうした物理資源の規模が急速に増大し続けているが、一部の主要アプリケーションおよびサブシステムは、スケーラビリティの点で遅れをとっている。そのため、基礎となるコンピュータ・システム自体が機能の粒度を提供するように、物理パーティションまたは論理パーティションによるパーティショニングを備えたシステムを提供する傾向が見られる。物理パーティションは、通例は比較的粗いパーティショニングの粒度を提供する。これは、パーティショニングが、マルチチップ・モジュール（「ＭＣＭ」）、バックプレーン、ドータ・ボード、マザー・ボード、あるいはその他のシステム・ボード等の物理的境界で行われるためである。論理的にパーティショニングされたシステムでは、１つのＣＰＵ、さらには１つのＣＰＵを分割した単位（ｆｒａｃｔｉｏｎ）、小さなメモリ・ブロック、またはＩ／Ｏバス全体ではなく１つのＩ／Ｏスロット等、パーティショニングの粒度は、物理パーティションに比べてはるかに細かい。論理パーティショニングでは、所与のコンピュータ資源のセットを物理パーティションに比べて多くの論理パーティションに再分割することができる。
【０００４】
論理パーティションＬＰＡＲ（「ＬＰＡＲ」）は、オペレーティング・システム（「Ｏ／Ｓ」）のインスタンスをホストすることが可能なコンピュータ資源のサブセットである。ＬＰＡＲは、特殊なハードウェア・レジスタと、ハイパーバイザと称される信頼できるファームウェア・コンポーネントを通じて実装される。これらのコンポーネントは連携して、各論理パーティションの周囲に強固なアーキテクチャ上の“ボックス”を構築し、そのパーティションに割り当てられたプロセッサ、メモリ、およびＩ／Ｏ資源の排他的なセットにパーティション動作を制限する。現在、コンピュータ・システムがますます大規模になるのに伴い、各Ｏ／Ｓインスタンスとそのサブシステムが良好にスケーリングあるいは機能し、ハードウェアの最適な使用を支援し、結果としてコスト節減につながるように、所与のハードウェア・システム上で数個のオペレーティング・システム・インスタンスを実行できることが、    。静的パーティショニングは、全体的なシステム性能を調整する助けとなるが、現在の論理的にパーティションされたシステムは、リブートを必要とせずに、ハードウェア資源、プロセッサ、メモリ、Ｉ／Ｏスロット等をＬＰＡＲに、またはＬＰＡＲから移動する、あるいは１つのＬＰＡＲから別のＬＰＡＲに移動することを可能にする、「動的再構成」機能も提供することができる。動的再構成は、作業量の需要に合わせて、必要とするＯ／Ｓにハードウェア資源を適時に動的に移動する能力を提供することにより、改良された解決を可能にする。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、現在の一般的な動的再構成ツールは、ＬＰＡＲ内でのハイパーバイザとオペレーティング・システムの協調あるいは連携に依拠しており、これは、いくつかの欠点を持つコンピュータ動作のパターンである。例えば、メモリを動的に再構成する際に、Ｏ／Ｓが固定された（ｂｏｌｔｅｄ  ｏｒ  ｐｉｎｎｅｄ）ページ・フレームを保持し、それを解放しない場合がある。同一のシステム上で、多種のオペレーティング・システムが同時に別個のＬＰＡＲで動作することが可能である。例えば、ＩＢＭのＰＯＷＥＲ（商標）ハイパーバイザは、３つの異なるオペレーティング・システムをサポートする。サポートされるオペレーティング・システムの１つまたは複数が、そのようなハイパーバイザとの協調に必要とされる機能に単に対応しない場合がある。また、協調方式では、逸脱したあるいは悪意のあるＯ／Ｓインスタンスが、全く協働しない場合があるだけでなく、実際に効率的なコンピュータ資源管理にとって害になる形で動作する可能性があるため、メモリの管理がはるかに複雑になる。
【課題を解決するための手段】
【０００６】
論理パーティション内のオペレーティング・システムに対して透過に動作する、動的論理パーティショニングによりコンピュータ内のコンピュータ・メモリを管理する方法、システム、および製品が提供される。論理パーティション（「ＬＰＡＲ」）の１つの論理メモリ・ブロック（「ＬＭＢ」）内のページ・フレームからそのＬＭＢの外にあるページ・フレームに、該ＬＰＡＲ内のオペレーティング・システムのためのページ・テーブルにページ・フレーム番号を有するページ・フレームの内容をハイパーバイザによってコピーすることを含む、動的論理パーティショニングによりコンピュータ内のコンピュータ・メモリを管理する例示的方法、システム、および製品が記載される。
【０００７】
本発明の実施形態は、典型的には、新しいページ・フレーム番号をページ・テーブルに格納することを含み、これは、内容がコピーされるページ・フレームごとに、内容がコピーされる先のページ・フレームを識別する新しいページ・フレーム番号をハイパーバイザによって格納することを含む。典型的な実施形態では、ページ・フレームの内容をコピーすることと、新しいページ・フレーム番号を格納することは、オペレーティング・システムに対して透過に行われる。
【０００８】
典型的な実施形態は、ページ・テーブルにあるすべてのページ・フレームのリストをハイパーバイザによって作成することと、ハイパーバイザがページ・フレームの内容をコピーし、新しいページ・フレーム番号を格納する間、ページ・テーブルにページ・フレームを追加する、ハイパーバイザへのオペレーティング・システムからの呼び出しをハイパーバイザによって監視することと、ページ・テーブルに追加されたページ・フレームをリストに追加することとも含み、ページ・フレームの内容をコピーすることは、リストにあるページ・フレームの内容をコピーすることによって行われる。
【０００９】
一部の実施形態では、２つ以上のサイズのメモリ・ページが、１つのＬＭＢのページ・フレームにマッピングされる。そのような実施形態は典型的には、メモリ管理割り込みをオペレーティング・システムからハイパーバイザにベクトルすることと、オペレーティング・システムのためのメモリ管理動作を、オペレーティング・システムのページ・テーブルから一時的な代替ページ・テーブルに切り替えることを含む。そのような実施形態では、ページ・フレームの内容をコピーすることは、典型的には、ＬＭＢのページ・フレームにマッピングされたページの中で最も小さいページと同じサイズのセグメント単位でページ・フレームの内容をコピーすることによって行われる。そのような実施形態におけるページ・フレームの内容をコピーすることは、オペレーティング・システムのページ・テーブルにもあるページ・フレームを一時的な代替ページ・テーブルから削除し、そのような削除されたページ・フレームの状態ビットを、オペレーティング・システムのページ・テーブルに格納することによって行われることができる。
【００１０】
一部の実施形態では、ＬＭＢのページ・フレームは、ダイレクト・メモリ・アクセス（「ＤＭＡ」）のためにマッピングされる場合がある。そのような実施形態におけるページ・フレームの内容をコピーすることは、ＤＭＡのためにマッピングされたページ・フレームの内容をコピーする間、ハイパーバイザによりＤＭＡ動作を阻止することと、内容がコピーされる先のページ・フレームを識別する新しいページ・フレーム番号を、ＤＭＡのためにマッピングされたＬＭＢの各ページ・フレーム用のＤＭＡマップ・テーブルに格納することとを含むことができる。
【００１１】
実施形態は、ＬＭＢよりも大きく、かつページ・テーブルを収容するのに十分な大きさの連続した空きメモリのセグメントを作成することを含むことができる。連続した空きメモリのセグメントを作成することは、２つ以上の連続したＬＭＢについて、以下のステップをハイパーバイザにより繰り返し実行することによって達成されることができる：該ＬＭＢ内のページ・フレームから該ＬＭＢの外のページ・フレームに、ＬＰＡＲ内のオペレーティング・システムのためのページ・テーブルにある該ＬＭＢのページ・フレームの内容をハイパーバイザによってコピーするステップと、新しいページ・フレーム番号をページ・テーブルに格納するステップであって、内容がコピーされるページ・フレームごとに、内容がコピーされる先のページ・フレームを識別する新しいページ・フレーム番号をハイパーバイザによって格納することを含むステップと、システムの空きメモリ・リストに該ＬＭＢを追加するステップ。
【００１２】
実施形態は、プロセッサに対するＬＭＢのアフィニティを向上させることも含むことができる。そのような実施形態では、ＬＭＢのページ・フレームの内容をコピーすることは、ＬＭＢのページ・フレームの内容を、該ＬＭＢの外にある暫定ページ・フレームにコピーすることと、第２のＬＭＢのページ・フレームの内容を該ＬＭＢのページ・フレームにコピーすることと、暫定ページ・フレームの内容を第２のＬＭＢのページ・フレームにコピーすることを含むことができる。そのような実施形態では、新しいページ・フレーム番号を格納することは、ＬＭＢの内容と第２のＬＭＢの内容の両方について、内容がコピーされる先のページ・フレームを識別する新しいページ・フレーム番号を格納することを含むことができる。
【００１３】
本発明の前述の特徴およびその他の特徴と効果は、添付図面に図示される、以下の本発明の例示的実施形態のより詳細な説明から明らかになろう。（添付図面では、同様の参照符号は、概ね、本発明の例示的実施形態の同様の部分を表す。）
【発明を実施するための最良の形態】
【００１４】
本発明の実施形態に係る、動的論理パーティショニングによりコンピュータ内でコンピュータ・メモリを管理する例示的方法、システム、および製品について、添付図面を図１から参照して説明する。本発明による、動的論理パーティショニングによるコンピュータ内のコンピュータ・メモリの管理は、一般に、自動計算機、すなわちコンピュータを用いて実施される。したがって、さらに説明するために、図１に、本発明の実施形態に係る、動的論理パーティショニングによりコンピュータ・メモリを管理するための例示的コンピュータ（１５２）を備える、自動計算機のブロック図を示す。図１のコンピュータ（１５２）は、少なくとも１つのコンピュータ・プロセッサ（１５６）あるいは「ＣＰＵ」と、システム・バス（１６０）を通じてプロセッサ（１５６）および他のコンピュータ構成要素に接続されたランダム・アクセス・メモリ（１６８）（「ＲＡＭ」）とを備える。実際的事項として、本発明の実施形態に係る動的論理パーティショニングによりコンピュータ内でコンピュータ・メモリを管理するシステムは、通例、２つ以上のコンピュータ・プロセッサを備える。図１の例におけるＲＡＭ（１６８）は、論理メモリ・ブロックあるいは「ＬＭＢ」（１０１〜１１０）と呼ばれるセグメントで管理される。
【００１５】
ＲＡＭ（１６８）には、実行のスレッドを実装するユーザレベルのデータ処理のためのコンピュータ・プログラム命令であるアプリケーション・プログラム（１５８）が格納される。ＲＡＭ（１６８）には、本発明の実施形態に係る、動的論理パーティショニングによりコンピュータ内でコンピュータ・メモリを管理するために改良されたＬＰＡＲで資源を管理するためのコンピュータ・プログラム命令のセットである、ハイパーバイザ（１０２）も格納される。ＲＡＭ（１６８）には、オペレーティング・システム（１５４）も格納される。本発明の実施形態に係るコンピュータで有用なオペレーティング・システムには、Ｕｎｉｘ（登録商標）（Ｒ）、Ｌｉｎｕｘ（商標）、Ｍｉｃｒｏｓｏｆｔ  ＮＴ（商標）、ＡＩＸ（商標）、ＩＢＭのｉ５／ＯＳ（商標）、および当業者が着想するその他のオペレーティング・システムがある。オペレーティング・システム（１５４）およびアプリケーション・プログラム（１５８）は、ＬＰＡＲ（４５０）に配置される。図１の例のオペレーティング・システム（１５４）、アプリケーション・プログラム（１５８）、およびハイパーバイザ（１０２）はＲＡＭ（１６８）の中に図示するが、読者は、このようなソフトウェアのコンポーネントは、不揮発性メモリ（１６６）に格納してもよいことを理解されよう。
【００１６】
図１のシステムは、動的論理パーティショニングをサポートし、一般には、ある論理パーティション（「ＬＰＡＲ」）の１つの論理メモリ・ブロック（「ＬＭＢ」）にあるページ・フレームからそのＬＭＢの外にあるページ・フレームに、該ＬＰＡＲ内のオペレーティング・システム用のページ・テーブルにページ・フレーム番号を有するページ・フレームの内容をハイパーバイザ（１０２）によってコピーし、そのページ・テーブルに新しいページ・フレーム番号を格納することにより、コンピュータ・メモリを管理するように動作することが可能であり、格納することは、内容がコピーされるページ・フレームごとに、内容がコピーされる先のページ・フレームを識別する新しいページ・フレーム番号をハイパーバイザによって格納することを含む。図１のシステムでは、ページ・フレームの内容のコピーと、新しいページ・フレーム番号の格納は、オペレーティング・システム（１５４）に対して透過に実施されることができる。
【００１７】
図１のコンピュータ（１５２）は、システム・バス（１６０）を通じてプロセッサ（１５６）およびコンピュータ（１５２）の他の構成要素と結合された不揮発性コンピュータ・メモリ（１６６）を備える。不揮発性コンピュータ・メモリ（１６６）は、ハード・ディスク・ドライブ（１７０）、光ディスク・ドライブ（１７２）、電気的に消去可能なプログラム可能読み取り専用メモリ空間（いわゆる「ＥＥＰＲＯＭ」あるいは「Ｆｌａｓｈ」メモリ）（１７４）、ＲＡＭドライブ（図示せず）、あるいは当業者が着想する任意の他種のコンピュータ・メモリとして実装されることが可能である。
【００１８】
図１の例示的コンピュータは、１つまたは複数のＩ／Ｏインタフェース・アダプタ（１７８）を備える。コンピュータ内の入出力インタフェース・アダプタは、例えば、コンピュータ・ディスプレイ画面等の表示装置（１８０）への出力、ならびにキーボードやマウス等のユーザ入力装置（１８１）からのユーザ入力を制御するソフトウェア・ドライバおよびコンピュータ・ハードウェアを通じて、ユーザ対象の入出力を実装する。Ｉ／Ｏアダプタと連携して入出力を実装するＩ／Ｏハードウェア資源を本明細書では一般に「Ｉ／Ｏスロット」と称する。
【００１９】
図１の例示的コンピュータ（１５２）は、データ通信を実装するための通信アダプタ（１６７）を備える。そのようなデータ通信は、ＲＳ−２３２接続、ＵＳＢ等の外部バス、ＩＰネットワーク等のデータ通信ネットワークを通じて、また当業者に着想される他の方式でシリアルに実施されることができる。通信アダプタは、１台のコンピュータが別のコンピュータに、直接またはネットワークを通じてデータ通信を送信するためのハードウェア・レベルのデータ通信を実装する。本発明の実施形態に係る通信先の可用性を判定するのに有用な通信アダプタの例には、有線のダイヤルアップ通信用のモデム、有線ネットワーク通信用のEthernet(登録商標）（Ｒ）（ＩＥＥＥ８０２．３）アダプタ、および無線ネットワーク通信用の８０２．１１ｂアダプタがある。
【００２０】
さらに説明するために、図２に、本発明の実施形態に係る動的論理パーティショニングによりコンピュータ・メモリを管理するためのさらなる例示的コンピュータ（１５２）のブロック図を示す。図２は、本発明の実施形態に係る、動的論理パーティショニングによりコンピュータ内のコンピュータ・メモリを管理するシステムにおける物理メモリの管理をさらに説明する構成となっている。図２のシステムの物理メモリは、マルチチップ・モジュール（「ＭＣＭ」）（２０２）内のメモリ・チップ（２０４）にプロセッサ・チップとともに配置されている。そして、ＭＣＭは、バックプレーン（２０６、２０８）に実装され、バックプレーンは、システム・バス（１６０）を通じてデータ通信のために結合されている。バックプレーンのＭＣＭは、バックプレーン・バス（２１２）を通じてデータ通信のために結合され、ＭＣＭのプロセッサ・チップとメモリ・チップは、ＭＣＭ（２２２）（ＭＣＭ（２２１）の図示を拡大したもの）に参照符号（２１０）で示すＭＣＭバスを通じてデータ通信のために結合されている。
【００２１】
マルチチップ・モジュールあるいは「ＭＣＭ」は、１つの基板に組み立てられた２つ以上のベア集積回路（ベア・ダイ）または「チップサイズ・パッケージ」を備える電子システムまたは電子サブシステムである。図２の例では、ＭＣＭにあるチップは、コンピュータ・プロセッサとコンピュータ・メモリである。基板は、例えば、プリント回路基板、相互接続パターンを備えた厚膜または薄膜セラミックまたはシリコンである。基板は、ＭＣＭパッケージの一体部分であっても、またはＭＣＭパッケージの中に実装してもよい。ＭＣＭは、特定用途向け集積回路（「ＡＳＩＣ」）とプリント回路基板の間のパッケージ・レベルを表すため、コンピュータ・ハードウェア・アーキテクチャにおいて有用である。
【００２２】
図２のＭＣＭは、ハードウェア・メモリの分離あるいは「アフィニティ（ａｆｆｉｎｉｔｙ）」のレベルを表す。ＭＣＭ（２２２）のプロセッサ（２１４）は、以下の場所にある物理メモリにアクセスすることができる。
・メモリ・チップにアクセスするプロセッサ（２１４）と同じＭＣＭにあるメモリ・チップ（２１６）
・同じバックプレーン（２０８）の別のＭＣＭにあるメモリ・チップ（２１８）、または
・別のバックプレーン（２０６）の別のＭＣＭにあるメモリ・チップ（２２０）。
【００２３】
ＭＣＭ外のメモリへのアクセスは、プロセッサと同じＭＣＭにあるメモリにアクセスするのに比べて時間がかかる。これは、そのようなメモリにアクセスし、そのようなメモリからデータを返すためのコンピュータ命令が、それ自体が現在の計算速度における問題点となるバス・ランドと導線の長さは無論のこと、より多くのコンピュータ・ハードウェア、メモリ管理ユニット、バス・ドライバを経由しなければならないからである。同じバックプレーン外のメモリにアクセスすることも、同じ理由でさらに長い時間がかかる。したがって、それにアクセスするプロセッサと同じＭＣＭにあるメモリは、そのＭＣＭ外のメモリよりも近いアフィニティを有すると言え、また、それにアクセスするプロセッサと同じバックプレーンにあるメモリは、別のバックプレーンにあるメモリよりも近いアフィニティを持つと言える。上記のように説明したコンピュータ・アーキテクチャは、説明のためであり、コンピュータ・メモリを制限するものではない。例えば、プリント回路基板に数個のＭＣＭを装着し、そのプリント回路基板をバックプレーンに接続することにより、図２には示さないさらなるアフィニティ・レベルを作り出すことができる。当業者に着想されるコンピュータ・アーキテクチャの他の態様が、プロセッサとメモリのアフィニティに影響を与える可能性があり、そのような態様はすべて、本発明の実施形態に係る動的論理パーティショニングによるメモリ管理の範囲に包含される。
【００２４】
さらなる説明のために、図３に、本発明の実施形態に係る、コンピュータ・メモリを管理する、動的論理パーティショニングを用いたさらなる例示的コンピュータ・システムのブロック図を示す。上述のように、論理パーティショニングは、１台のコンピュータで複数の独立したオペレーティング・システム・イメージを同時に実行できるようにすることにより、柔軟性を提供するコンピュータ設計機能である。
【００２５】
図３のシステムは、ハイパーバイザ（１０２）、ならびに、ＬＰＡＲ（４５０、４５２、４５４）でアプリケーション・ソフトウェアの複数の実行スレッド（３０２）を実行することができる３つのプロセッサ（１５６）および３つのオペレーティング・システム（１５４）を備える。３つの例の使用は説明のためであり、制限ではない。実際、当業者は、ここで説明するようなシステムは、任意数のＬＰＡＲ、オペレーティング・システム、プロセッサ、およびスレッドを動作させることが可能であり、その数はシステム内の物理資源の実際の量のみによって制限されることを認識されよう。スレッド（３０２）は、仮想アドレス空間に編成された仮想メモリ・アドレスで動作する。プロセッサ（１５６）は、実アドレス空間に編成された物理メモリにアクセスする。
【００２６】
各オペレーティング・システム・イメージ（１５４）は、実アドレス指定モードでアクセスすることが可能なある範囲のメモリを必要とする。このモードでは、仮想アドレス変換は行われず、アドレスはアドレス０から開始する。オペレーティング・システムは通例、起動カーネル・コード、固定カーネル構造、および割り込みベクトルにこのアドレス範囲を用いる。物理アドレス０の同じメモリ範囲を複数のパーティションが共有することは許可できないので、各ＬＰＡＲは、それ自身の実モード・アドレス指定範囲を持たなければならない。
【００２７】
ハイパーバイザは、各ＬＰＡＲに、一意の実モード・アドレス・オフセットと範囲値を割り当て、次いでパーティションの各プロセッサのレジスタにそれらのオフセット値と範囲値を設定する。これらの値は、そのパーティションに排他的に割り当てられた物理メモリのアドレス範囲に対応する。パーティション・プログラムが実アドレス指定モードで命令およびデータにアクセスすると、ハードウェアは自動的に、実モードのオフセット値を各アドレスに足してから、物理メモリにアクセスする。このようにして、各論理パーティション・プログラミング・モデルは、アドレスが別のアドレス範囲に透過にリダイレクトされているにも関わらず、物理アドレス０へのアクセス権を有するように見える。ハードウェア論理が、それらのパーティションで実行されているオペレーティング・システム・コードによるそれらレジスタの変更を阻止する。割り当てられた範囲の外の実アドレスにアクセスしようとすると、必ずアドレス指定例外割り込みが発生し、この割り込みは、そのパーティションのオペレーティング・システムの例外ハンドラによって処理される。
【００２８】
オペレーティング・システムは、別のタイプのアドレス指定である仮想アドレス指定を用いて、システム内に設置された物理メモリの量を上回る有効アドレス空間をユーザ・アプリケーションのスレッドに与える。オペレーティング・システムは、使用頻度の低いプログラムおよびデータをメモリからディスクにページングし、要求時にそれらを物理メモリに戻すことによってこれを行う。
【００２９】
アプリケーションが仮想アドレス指定モードで命令およびデータにアクセスする際、アプリケーションは、それら命令およびデータのアドレスが、ページ変換テーブル（４１６）を使用して仮想メモリ管理によって変換されていることを意識しない。本明細書では一般に「ページ・テーブル」と称するこのテーブルは、システム・メモリに常駐し、各パーティションは、パーティションに代わってハイパーバイザによって管理される、独自の排他的なページ・テーブルを有する。プロセッサは、（ハイパーバイザへの呼び出しを介して）このテーブルを用いて、プログラムの仮想アドレス（４２４）を、そのページが物理メモリにマッピングされている物理アドレス（４２２）に透過に変換する。スレッドがメモリのページにアクセスする時に、そのページ・フレームが物理メモリからディスクに移動されていた場合、オペレーティング・システムは、ページ・フォルトを受け取る。
【００３０】
非ＬＰＡＲ動作では、オペレーティング・システムが直接ページ・テーブル・エントリを作成および維持し、実モード・アドレス指定を用いてそのテーブルにアクセスする。論理パーティショニング動作では、ページ変換テーブルは、ハイパーバイザからのみアクセス可能な、確保された物理メモリ領域に置かれる。すなわち、あるパーティションのページ・テーブルは、そのパーティションの実モード・アドレス範囲の外に置かれる。そのプロセッサのページ・テーブルの物理アドレスをプロセッサに提供するレジスタは、ハイパーバイザのみによって変更されることができる。
【００３１】
仮想アドレスは、仮想ページ番号（４２４）と仮想ページ内のオフセットの組合せとして実装される。実アドレスは、実メモリのページを識別するページ・フレーム番号（４２２）とそのページ内のオフセットの組合せとして実装される。仮想アドレスのオフセットは、その仮想アドレスがマッピングされた実アドレスのオフセットでもある。ページ・テーブルは、仮想アドレスを実アドレスにマッピングするが、オフセットが等しいため、ページ・テーブルは、仮想ページ番号とそれに対応するページ・フレーム番号のみでマッピングする。オフセットは、ページ・テーブルには含まれない。
【００３２】
オペレーティング・システム（１５４）は、ページ変換マッピングを作成する必要があるとき、プロセッサ（１５６）でハイパーバイザ（１０２）への呼び出しを実行し、プロセッサ（１５６）がハイパーバイザに実行を転送する。ハイパーバイザは、そのパーティションのためにページ・テーブル・エントリを作成し、そのエントリをページ・テーブルに格納する。スレッドも、ハイパーバイザ呼び出しを行って、既存のページ・テーブル・エントリを修正または削除することができる。ページ・テーブル・エントリは、論理メモリ・ブロックあるいは「ＬＢＭ」と称される専用の物理メモリ領域のみにマッピングされ、ＬＭＢは、粗いセグメントで各ＬＭＢに割り当てられる。このＬＭＢは、ＬＰＡＲの仮想ページ・アドレス空間をバックアップする物理メモリを提供する。したがって、ＬＰＡＲのメモリは、一般には、物理メモリ内に任意の順序で任意の場所から割り当てることが可能なＬＭＢから構成される。
【００３３】
Ｉ／Ｏハードウェアは、ダイレクト・メモリ・アクセス（「ＤＭＡ」）動作を用いて、Ｉ／Ｏスロット（４０７）のＩ／Ｏアダプタと、システム・メモリのページ・フレーム（４０６）の間でデータを移動する。ＤＭＡ動作は、ページ・テーブルと同様のアドレス再配置の仕組みを用いる。Ｉ／Ｏハードウェアは、Ｉ／Ｏスロット内のＩ／Ｏデバイスによって生成されたアドレス（４２５）を物理メモリ・アドレスに変換する。Ｉ／Ｏハードウェアは、変換制御エントリ（「ＴＣＥ」）テーブルと称されることもある、物理メモリに格納されたＤＭＡマップ（６５０）を用いてこの変換を行う。ページ・テーブルと同様に、ＤＭＡマップは、パーティションからはアクセスできず、ハイパーバイザからのみアクセス可能なシステム・メモリの物理アドレス領域に常駐する。パーティション・プログラムは、ハイパーバイザ・サービスを呼び出すことにより、そのパーティションに割り当てられたＩ／Ｏスロット用のＤＭＡマップ・エントリを作成、修正、または削除することができる。Ｉ／ＯハードウェアがＩ／ＯアダプタのＤＭＡアドレスを物理メモリに変換すると、その変換の結果得られるアドレスは、そのパーティションに割り当てられた物理メモリ空間内にある。
【００３４】
さらに説明するために、図４に、ページ・テーブルにあるすべてのページ・フレームのリスト（４３６）をハイパーバイザにより作成する（４２６）ことを含む、本発明の実施形態に係る動的論理パーティショニングによりコンピュータ内のコンピュータ・メモリを管理する例示的方法を説明するフロー・チャートを示す。本発明の実施形態に係る有利なメモリ管理機能の実行は、比較的迅速に行われて、過剰なメモリ・フォルトを発生させる危険性と、ユーザ・アプリケーションにおける実行スレッドの視点から見た遅延を低減させる。マッピングされたページを探して大きなデータ構造であるページ・テーブルを探索することは、時間を要する。実際のメモリ管理動作を行うときには、迅速にアクセス可能な構造で記憶された、影響を受けるページ・フレームの簡潔なリストがあることが望ましい。そのようなリストは、リストが生成（ａｓｓｅｍｂｌｅ）されるまで、例えばバックグラウンドで別個に実行されるハイパーバイザ・プロセスによって構築されることができる。したがって、図４の方法は、ハイパーバイザがページ・フレームの内容をコピーし、新しいページ・フレーム番号を格納する間、ページ・テーブル（４１６）にページ・フレームを追加する、ハイパーバイザへのオペレーティング・システムからの呼び出しをハイパーバイザによって監視する（４２８）ことを有利に含む。図４の方法は、ページ・テーブルに追加されたページ・フレームをリスト（４３６）に追加する（４３０）ことも含む。
【００３５】
図４の方法は、ＬＰＡＲの１つのＬＭＢ（４０２）にあるページ・フレーム（４０６）からそのＬＭＢ（４０２）の外にあるページ・フレーム（４１２）に、該ＬＰＡＲ（４５０）内のオペレーティング・システム（４３２）用のページ・テーブル（４１６）にページ・フレーム番号（４２２）を有するページ・フレームの内容を、ハイパーバイザによってコピーする（４０８）ことを含む。ＬＭＢ（４０４）を点線の輪郭で示しているのは、影響を受けるすべてのページ・フレームはＬＭＢで編成されているが、メモリ管理動作の対象となるＬＭＢ（４０２）の外にあるページ・フレーム（４１２）の場所は、対象ＬＭＢ（４０２）にない限り問題にならないことを強調するためである。図４の方法では、上述のように、ページ・フレームの内容のコピー（４０８）は、リスト（４３６）にあるページ・フレームの内容をコピーする（４３４）ことによって実行される。図４の方法は、新しいページ・フレーム番号をページ・テーブル（４１８）に格納する（４１０）ことも含み、これは、内容がコピーされるページ・フレームごとに、内容がコピーされる先のページ・フレームを識別する新しいページ・フレーム番号をハイパーバイザによって格納することを含む。
【００３６】
こうしたメモリ管理動作の効果がページ・テーブル（４１６、４１８）で示される。ページ・テーブル（４１６、４１８）は、図４の方法によるメモリ管理動作の前（４１６）と後（４１８）とが図示される同じページ・テーブルである。メモリ管理動作の前、ページ・テーブルは、仮想ページ番号３４６、３４７、３４８を、ＬＭＢ（４０２）に配置されたページ・フレーム５９２、５９３、５９４にマッピングしている。図４の例におけるメモリ管理動作の後、ページ・テーブルは、仮想ページ番号３４６、３４７、３４８を、ＬＭＢ（４０２）の外に配置されたページ・フレーム５９２、５９３、５９４にマッピングしている。ページ・フレーム５９２、５９３、５９４の内容が、ページ・フレーム７４３、７４４、７４５に、移動されるのではなくコピーされたので、ページ・フレーム５９２、５９３、５９４の内容は影響を受けない。しかし、以前にそれらのページ・フレームにマッピングされていた仮想ページは、現在はいずれか他のページ・フレームにマッピングされている。これは、ＬＭＢ（４０２）のページ・フレームを他の用途のために実質上解放する。それらのページ・フレームは、空きページ・フレームとしてリストされる、新しいＬＰＡＲ用の大きなページ・テーブルをインストールするために用いる、プロセッサとメモリとのアフィニティを向上するために用いる、あるいは当業者に着想される他の形で用いることができる。
【００３７】
図４の方法では、ページ・フレームの内容のコピーと、新しいページ・フレーム番号の格納は、オペレーティング・システムに対して透過に行われる。オペレーティング・システムが再マッピングされた仮想ページの１つに次回アクセスした時にメモリ・フォルトが発生すると、ＬＭＢ（４０４）の新しいページ・フレームにある物理メモリの内容は、図４の方法のメモリ管理動作が適用される前と同じ内容になる。図４の方法を実行するとき、ハイパーバイザは、資源の解放を要求してオペレーティング・システム（４３２）への呼び出しを行うことはなく、オペレーティング・システムは、ページ・テーブル・エントリが影響を受けたことを全く意識しない。
【００３８】
さらに説明するために、図５に、本発明の実施形態に係る動的論理パーティショニングによりコンピュータ内のコンピュータ・メモリを管理するさらなる例示的方法を説明するフロー・チャートを示し、この方法では、２つ以上のサイズのメモリ・ページが、ＬＭＢ（４０２）のページ・フレーム（４０６）にマッピングされる。上述のように、ＬＰＡＲは２種以上のオペレーティング・システムをサポートすることができ、各タイプのオペレーティング・システムは、異なるページ・サイズをサポートする場合があり、また各オペレーティング・システムは、２つ以上のページ・サイズをサポートする場合がある。本発明の実施形態に係るメモリ管理機能の有利な実行は、比較的迅速に行われて、過剰なメモリ・フォルトを発生させる危険性と、ユーザ・アプリケーションにおける実行スレッドの視点から見た遅延を低減させる。小さなメモリ・ページの内容のコピーは、大きなページの内容をコピーするのに比べて高速である。したがって、図５の方法は、対象となるオペレーティング・システムが２つ以上のページ・サイズを使用するときには、小さなページ・サイズを用いてメモリのコピー動作を行う方式を有利に提供する。
【００３９】
図５の方法は、オペレーティング・システム（４３２）からハイパーバイザにメモリ管理割り込みをベクトルする（５０２）ことを含む。ハイパーバイザは、メモリ管理割り込みがハイパーバイザの割り込みベクトルに誘導されるように、プロセッサ・レジスタにビットを設定することにより、オペレーティング・システムからハイパーバイザにメモリ管理割り込みをベクトルする。この仕組みにより、ページ・フレームでコピー動作が進行中の時に、ハイパーバイザが、ハイパーバイザ内でプロセッサをブロックすることが可能になる。割り込みは、ハイパーバイザのレジスタ資源を用いてハイパーバイザに提示されるので、メモリ・フォルトは、オペレーティング・システムには透過である。
【００４０】
図５の例では、小さなページ・サイズを４ＫＢとすると、オペレーティング・システム（４３２）は、２つのページ・サイズ、４ＫＢと１６ＫＢを使用するものと示される。この事は、ページ・テーブル（４１６）では、１６ＫＢの仮想ページである仮想メモリ・ページ３４６が、４つの４ＫＢのページ・フレーム、ページ・フレーム５９２、５９３、５９４、５９５にマッピングされていることで示される。他の４ＫＢの仮想ページ３４７、３４８、３４９は、それぞれ一対一で４ＫＢのページ・フレーム５９６、５９７、５９８にマッピングされる。図５の方法は、オペレーティング・システムのためのメモリ管理動作を、オペレーティング・システムのためのページ・テーブル（４１６）から一時的な代替ページ・テーブル（５１２）に切り替え（５０４）て、４ＫＢのページ・フレームでのコピー動作のみをサポートし、ページ・テーブル（４１６）に存在するオペレーティング・システムからの大きなページの指示はすべて無視することを含む。図５の方法では、ページ・フレームの内容をコピーする（４０８）ことは、ＬＭＢのページ・フレームにマッピングされたページの中で最も小さいページと同じサイズのセグメント単位でページ・フレームの内容をコピーする（５０６）ことを含む。すなわち、ハイパーバイザは、４ＫＢのセグメント単位でのみコピー動作を行い、これは４ＫＢのページ・フレーム×４ＫＢページ・フレームである。
【００４１】
メモリ管理割り込みが発生すると、ハイパーバイザは、オペレーティング・システムの実ページ・テーブルを参照して、そのパーティションの実ページ・テーブルが使用中であったならそのメモリ管理割り込みが発生したかどうかを調べる。発生した場合、ハイパーバイザは、メモリ管理割り込みベクトル      ＯＳに制御権を渡す。そうでない場合は、一時的な代替ページ・テーブルにページ・フレーム・エントリが挿入される（コピー動作が進行中でなければ）。
【００４２】
図５の方法では、ページ・フレームの内容をコピーする（４０８）ことは、オペレーティング・システムのページ・テーブルにもあるページ・フレームを、一時的な代替ページ・テーブル（５１２）から削除する（５０８）ことも含む。図５の方法では、ページ・フレームの内容をコピーする（４０８）ことは、そのような削除されたページ・フレームの状態ビットを、オペレーティング・システム（４３２）のページ・テーブル（４１６）に格納する（５１０）ことも含む。そのような削除されたページ・フレームの状態は、参照ビット（メモリ・フォルトにおけるＬＲＵ動作のため）および変更ビット（ページが書き込まれており、キャッシュから削除される時にディスクに再度保存しなければならないことを示す）によって示される。
【００４３】
さらに説明するために、図６に、本発明の実施形態に係る動的論理パーティショニングによりコンピュータ内のコンピュータ・メモリを管理するさらなる例示的方法を説明するフロー・チャートを示し、この方法では、ＬＭＢ（４０２）のページ・フレーム（４０６）のうち少なくとも１つが、ダイレクト・メモリ・アクセス（「ＤＭＡ」）のためにマッピングされる。図６の方法で、ページ・フレームの内容をコピーする（４０８）ことは、ＤＭＡのためにマッピングされたページ・フレーム（４２３）の内容をコピーする（６６０）間、ＤＭＡ動作をハイパーバイザ（図示せず）によって阻止する（６５８）ことを含む。
【００４４】
図６の方法では、システムＲＡＭ（１６８）中のページ・フレームを通るＤＭＡチャンネル（６５４）を通じて、データ・ストア（６５６）のためにディスクＩ／Ｏを実装するＩ／Ｏアダプタ（図示せず）を含むＩ／Ｏスロット（４０７）によってＤＭＡ動作が表される。システムＲＡＭのページ・フレームは、ＤＭＡマップ（６５０）を通じてＩ／Ｏアドレスにマッピングされる。図６の方法で、ページ・フレームの内容をコピーする（４０８）ことは、ＤＭＡのためにマッピングされたページ・フレーム５５０を、ＬＭＢ（４０２）の外のページ・フレーム（４１２）にコピーし（６６０）、内容がコピーされる先のページ・フレームを識別する新しいページ・フレーム番号を、ＤＭＡのためにマッピングされたＬＭＢの各ページ・フレーム用のＤＭＡマップ・テーブル（６５２）に格納する（６６２）ことを含む。
【００４５】
ＤＭＡマップ（６５０、６５２）は、図６の方法によるメモリ管理動作の効果を示す。ＤＭＡマップは、変換エントリ・テーブルあるいは「ＴＣＥテーブル」とも呼ばれるデータ構造であり、ＤＭＡマップの各エントリは、Ｉ／Ｏアドレス空間のアドレスを、システム物理メモリのページ・フレームにマッピングする。Ｉ／Ｏアドレス空間のアドレスは、例えば、Ｉ／ＯアダプタまたはＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バス・アダプタのアドレス空間内のアドレスである。図６で、ＤＭＡマップ（６５０、６５２）は、それぞれ、図６の方法によるメモリ管理動作の前（６５０）と後（６５２）とで同じＤＭＡマップである。図６の例では、Ｉ／Ｏアドレス（４２５）１２４は、初め、ページ・フレーム５５０にマッピングされている。図６の方法によりこのページに対するＤＭＡ動作を阻止し、ＤＭＡのためにマッピングされたページ・フレームをコピーし、新しいページ・フレーム番号をマップに格納した後、ＤＭＡマップ（６５２）は、ページ・フレーム７２５にマッピングされたＩ／Ｏアドレス１２４を示す。これは、ＬＭＢ（４０２）のページ・フレーム５５０を他の用途のために実質上解放する。このページ・フレームは、空きページ・フレームとしてリストされる、新しいＬＰＡＲ用の大きなページ・テーブルをインストールするために他のページ・フレームまたは他のＬＭＢとともに用いられる、プロセッサとメモリのアフィニティを向上するために用いられる、あるいは当業者に着想される他の形で用いられることができる。
【００４６】
ページ・テーブルは通例、多くの場合ＬＭＢよりかなり大きい、大きなデータ構造である。システム管理者が、動的に（リブートせずに）新しいＬＰＡＲを作成しようとする時、新しいＬＰＡＲのためのページ・テーブルに利用できる連続したメモリが十分にない場合がある。したがって、本発明の実施形態に係る動的論理パーティショニングによるコンピュータ内のコンピュータ・メモリの管理は、ＬＢＭより大きく、かつページ・テーブルを収容するのに十分な大きさの連続した空きメモリのセグメントを作成することを有利に含むことができる。
【００４７】
さらなる説明のために、図７に、連続した空きメモリのセグメントを作成する例示的方法を説明するフロー・チャートを示し、この方法は、連続したＬＭＢ（４０１、４０２）内のページ・フレーム（４０６）からそれら連続したＬＭＢの外のページ・フレーム（４１２）に、ＬＰＡＲ（４５０）内のオペレーティング・システム（４３２）のためのページ・テーブル（４１６）にある該連続したＬＭＢのページ・フレームの内容を、ハイパーバイザによってコピーする（６０２）ことを含む。図７の方法は、新しいページ・フレーム番号をページ・テーブル（４１８）に格納する（６０４）ことを含み、これは、内容がコピーされるページ・フレームごとに、内容がコピーされる先のページ・フレームを識別する新しいページ・フレーム番号をハイパーバイザによって格納することを含む。
【００４８】
図７の方法は、ＬＰＡＲ（４５０）用の空きメモリのリスト（６０８）に該ＬＭＢを追加する（６０６）ことも含む。図７の例で、ＬＰＡＲ用の空きメモリのリスト（６０８）にＬＭＢを追加すること（６０６）は、解放されたページ・フレームのページ・フレーム番号をフリー・リスト（６０８）に入れることによって行われる。あるいは、ＬＭＢ内の先頭のページ・フレームのページ・フレーム番号をフリー・リストに掲載して、そのＬＭＢ全体が空いていることを示してもよい。解放されたメモリを示す他の方式は、当業者に着想されることができ、そのような方式はすべて本発明の範囲に包含される。
【００４９】
しばしば、ページ・テーブルの空間を作るために３つ以上の連続したＬＭＢが解放されなければならないことがある。このため、図７の方法は、所定の必要なセグメント・サイズ（６１０）を参照して、解放されたメモリ・セグメントがページ・テーブルを格納するのに十分な大きさであるか、または空きメモリのための他の要件を満たすかどうかを判定する（６０９）ことを有利に含む。解放されたセグメントの大きさが十分でない場合、解放されたセグメントが十分な大きさになるまで、連続したＬＭＢのページ・フレームの内容をそれら連続したＬＭＢの外にあるページ・フレーム（４１２）にコピーし（６０２）、新しいページ・フレーム番号をページ・テーブル（４１８）に格納し（６０４）、ＬＰＡＲの空きメモリのリスト（６０８）にそのＬＭＢを追加する（６０６）ステップを繰り返す（６１２）ことによって処理が進行する。
【００５０】
アクセス元のプロセッサに対する、アクセスされるメモリのアフィニティが低下するのに従い、全体的なシステム性能が劣化する。このため、本発明の実施形態に係る動的論理パーティショニングによりコンピュータ内のコンピュータ・メモリを管理することは、プロセッサに対するＬＭＢのアフィニティを向上させることを有利に含むことができる。さらなる説明のために、図８に、プロセッサに対するＬＭＢのアフィニティを向上させる例示的方法を説明するフロー・チャートを示す。図８の方法は、２つのＬＭＢ（４０２、４０３）についてのプロセッサとメモリのアフィニティに影響する。ＬＭＢ（４０２、４０３）は、互いから離れて位置し、ＬＭＢ（４０２）はＭＣＭ７０４に、ＬＭＢ（４０３）はＭＣＭ（７０５）にある。上記のように、各ＭＣＭは、プロセッサとメモリを含んでいる。図８の方法は、ハイパーバイザ内で実行される。各ＭＣＭのプロセッサとメモリは、ＬＰＡＲ（図８には図示せず）のオペレーティング・システムにハイパーバイザによって割り当てられる。
【００５１】
図８の例では、プロセッサ（１５６）は、同じＭＣＭ（７０４）にあるＬＭＢ（４０２）に近いアフィニティを有し、別のＭＣＭ（７０５）にある、プロセッサ（１５６）に対して離れて位置するＬＭＢ（４０３）に対してはそれより少ないアフィニティを有する。同様に図８の例で、プロセッサ（１５７）は、同じＭＣＭ（７０５）にあるＬＭＢ（４０３）に近いアフィニティを有し、別のＭＣＭ（７０４）にある、プロセッサ（１５７）に対して離れて位置するＬＭＢ（４０２）に対してはそれより少ないアフィニティを有する。ＬＭＢ（４０２）は、番号６００〜６９９のページ・フレームを含み、ＬＭＢ（４０３）は、ページ・フレーム８００〜８９９を含む。ＬＭＢにおけるページ・フレームの割り当ては、説明のためであり、制限ではない。読者は、実際的事項として、ＬＭＢは、１００をゆうに超えるページ・フレームを含むことを認識されよう。ＭＣＭ（７０５）とＭＣＭ（７０４）は、図ではシステム・バス（１６０）を通じて結合されているが、読者は、このアーキテクチャは単にアフィニティを説明するためのものであり、本発明の制限ではないことを認識されよう。実際、離れたアフィニティは、別々のプリント回路基板を通じて、接続を通じて、バックプレーンまたはドータ・ボードを通じて、また当業者に着想される他の方式で実装することができる。
【００５２】
ＭＣＭ（７０４、７０５）にある２つのパーティションのページ・テーブル・エントリがそれぞれ、ページ・テーブル（４１６、４１８、４１７、４１９）に示される。ページ・テーブル（４１６、４１８）はそれぞれ、アフィニティ向上の動作の前（４１６）と後（４１８）のＭＣＭ（７０５）のページ・テーブル・エントリを示す。同様に、ページ・テーブル（４１７、４１９）はそれぞれ、アフィニティ向上動作の前（４１７）と後（４１９）のＭＣＭ（７０４）のページ・テーブル・エントリを示す。ページ・テーブル（４１６）は、ＭＣＭ（７０５）のプロセッサ（１５７）で実行中のスレッドで使用されている仮想ページ番号５６７、５６８、５６９が、プロセッサ（１５７）に対して離れたアフィニティを有するＭＣＭ（７０４）のＬＭＢ（４０２）に物理的に位置するページ・フレーム６６６、６６７、６６８にマッピングされていることを示す。同様に、ページ・テーブル（４１７）は、ＭＣＭ（７０４）のプロセッサ（１５６）で実行中のスレッドで使用されている仮想ページ番号４４４、４４５、４４６が、プロセッサ（１５６）に対して離れたアフィニティを有するＭＣＭ（７０５）のＬＭＢ（４０３）に物理的に位置するページ・フレーム８５３、８５４、８５５にマッピングされていることを示す。例えば、プロセッサで使用されている仮想ページにマッピングされたページ・フレームを、そのプロセッサと同じＭＣＭにある物理メモリに配置または移動することができれば、全体的なプロセッサとメモリのアフィニティとメモリ管理の効率を向上させることができる。また、ＬＰＡＲは、複数のＭＣＭにある複数のプロセッサとともに実装されることもでき、そのようなＬＰＡＲは、複数のページ・テーブルも持つことができ、例えば各ＭＣＭに１つのページ・テーブルを有することができる。本発明の実施形態によるプロセッサに対するＬＭＢのアフィニティの向上は、複数のページ・テーブルと複数のＭＣＭにある複数のプロセッサとを備えるそのようなＬＰＡＲにも有用である。
【００５３】
図８の方法は、ページ・フレーム（４０８）の内容をコピーすることを含み、これは、基本的には本明細書で上述したように動作するプロセスである。しかし、図８の方法では、アフィニティを向上させるために、ＬＭＢのページ・フレームの内容をコピーする（４０８）ことは、ＬＭＢ（４０２）のページ・フレーム（４０６）の内容を、ＬＭＢ（４０２）の外の暫定ページ・フレーム（７０２）にコピーすることを有利に含む。図８の方法でページ・フレームの内容をコピーする（４０８）ことは、ＬＭＢ（４０３）のページ・フレーム（４０９）の内容をＬＭＢ（４０２）のページ・フレーム（４０６）にコピーし（８０４）、暫定ページ・フレーム（７０２）の内容をＬＭＢ（７０５）のページ・フレーム（４０９）にコピーする（８０６）ことも含む。図８の方法は、新しいページ・フレーム番号を格納する（４１０）ことも含み、これは概ね上記のように動作するが、ここで、ＬＭＢ（４０２）の内容と第２のＬＭＢ（４０３）の内容（４０９）の両方について、内容がコピーされる先のページ・フレームを識別する新しいページ・フレーム番号を格納する（８０８）ことを含む。
【００５４】
ページ・テーブル（４１８、４１９）は、こうしたアフィニティ向上動作の効果を示す。ページ・テーブル（４１８）は、ＭＣＭ（７０５）のプロセッサ（１５７）で実行中のスレッドで使用されている仮想ページ番号５６７、５６８、５６９が、同じＭＣＭにあるプロセッサ（１５７）に対して近いアフィニティを持つようになった、ＭＣＭ（７０５）のＬＭＢ（４０３）に物理的に位置するページ・フレーム８５３、８５４、８５５に現在マッピングされていることを示す。同様に、ページ・テーブル（４１９）は、ＭＣＭ（７０４）のプロセッサ（１５６）で実行中のスレッドで使用されている仮想ページ番号４４４、４４５、４４６が、同じＭＣＭのプロセッサ（１５６）に対して近いアフィニティを有する、ＭＣＭ（７０４）のＬＭＢ（４０２）に物理的に位置するページ・フレーム６６６、６６７、６６８に現在マッピングされていることを示す。
【００５５】
本発明の例示的実施形態について、主に、動的論理パーティショニングによりコンピュータ内のコンピュータ・メモリを管理する、全機能コンピュータ・システムに関連して説明した。ただし、当業者の読者は、本発明は、任意の適切なデータ処理システムで用いる信号担持媒体に配置されたコンピュータ・プログラム製品に実施することも可能であることを認識されよう。そのような信号担持媒体は、磁気媒体、光学媒体、あるいは他の適切な媒体を含む、機械可読の情報用の伝送媒体または記録可能媒体であってよい。記録可能媒体の例には、ハード・ドライブ内の磁気ディスクまたはディスケット、光学ドライブ用のコンパクト・ディスク、磁気テープ、および当業者に着想される他の媒体が含まれる。伝送媒体の例には、音声通信のための電話網、および、例えばイーサネット（登録商標）（Ｒ）やインターネット・プロトコルとワールド・ワイド・ウェブを用いて通信するネットワークなどのデジタル・データ通信ネットワークが含まれる。当業者は、適切なプログラミング手段を有するコンピュータ・システムであれば、プログラム製品に実施された本発明の方法のステップを実行することが可能であることを即座に認識されよう。当業者は、本明細書に記載される例示的実施形態の一部は、コンピュータ・ハードウェアにインストールされ、コンピュータ・ハードウェア上で実行されるソフトウェアを対象とするが、ファームウェアまたはハードウェアとして実施された代替の実施形態が、本発明の範囲に十分包含されることを即座に認識されよう。
【００５６】
前述の説明から、本発明の範囲内で、上記の本発明の例示的実施形態に様々な変更を加えることが可能であることが理解されよう。
【図面の簡単な説明】
【００５７】
【図１】本発明の実施形態に係る、動的論理パーティショニングによりコンピュータ・メモリを管理するための例示的コンピュータを備える自動計算機のブロック図である。
【図２】本発明の実施形態に係る、動的論理パーティショニングによりコンピュータ・メモリを管理するさらなる例示的コンピュータのブロック図である。
【図３】本発明の実施形態に係る、コンピュータ・メモリを管理する、動的論理パーティショニングによるさらなる例示的コンピュータ・システムのブロック図である。
【図４】本発明の実施形態に係る、動的論理パーティショニングによりコンピュータ内のコンピュータ・メモリを管理する例示的方法を説明するフロー・チャートである。
【図５】動的論理パーティショニングによりコンピュータ内のコンピュータ・メモリを管理するさらなる例示的方法を説明するフロー・チャートである。
【図６】動的論理パーティショニングによりコンピュータ内のコンピュータ・メモリを管理するさらなる例示的方法を説明するフロー・チャートである。
【図７】連続した空きメモリのセグメントを作成する例示的方法を説明するフロー・チャートである。
【図８】プロセッサに対するＬＭＢのアフィニティを向上する例示的方法を説明するフロー・チャートである。
【図１】
2008541214.tif 000003
【図２】
2008541214.tif 000004
【図３】
2008541214.tif 000005
【図４】
2008541214.tif 000006
【図５】
2008541214.tif 000007
【図６】
2008541214.tif 000008
【図７】
2008541214.tif 000009
【図８】
2008541214.tif 000010
【国際調査報告】
2008541214.tif 000011
2008541214.tif 000012