(57)【特許請求の範囲】
【請求項１】
メモリ移行を実施するための方法であって、
移行が行われるべきメモリの移行が行われる際、コンピュータの基本入出力システムによる、移行が行われるべき前記メモリの中のデータを前記コンピュータのオペレーティングシステムの第1の使用不能なメモリに移行させるステップであって、前記第1の使用不能なメモリは、前記オペレーティングシステムのために確保されたメモリセットである前記オペレーティングシステムの元の使用可能なメモリから前もって変換されており、さらに前記オペレーティングシステムによって変更不能であるとともに、前記オペレーティングシステムがアクセスできない、ステップと、
前記基本入出力システムによる、移行が行われるべき前記メモリの物理アドレスと前記第1の使用不能なメモリの物理アドレスの間のマッピング関係を格納するステップと、
を含み、
前記基本入出力システムによる、移行が行われるべき前記メモリの物理アドレスと前記第1の使用不能なメモリの物理アドレスの間のマッピング関係を格納する前記ステップは、
前記基本入出力システムによる、移行が行われるべき前記メモリの前記物理アドレスに関してメモリページ整列を実行して、第1の物理アドレスを得るステップと、
前記基本入出力システムによる、前記第1の物理アドレスと前記第1の使用不能なメモリの前記物理アドレスの間のマッピング関係を格納するステップと、
を含むことを特徴とするメモリ移行を実施するための方法。
【請求項２】
前記オペレーティングシステムが目標の物理アドレスにアクセスする際、前記コンピュータの中に格納された前記マッピング関係の中に、前記目標の物理アドレスが対応するマッピング関係が存在するかどうかを判定するステップと、
前記目標の物理アドレスが対応するマッピング関係が存在する場合に、前記オペレーティングシステムによる、前記目標の物理アドレスが対応する前記マッピング関係に従って前記第1の使用不能なメモリの中のデータにアクセスするステップと、
をさらに含む請求項1に記載のメモリ移行を実施するための方法。
【請求項３】
前記コンピュータの中に格納された前記マッピング関係の中に、前記目標の物理アドレスが対応するマッピング関係が存在するかどうかを判定するステップに先立って、
前記目標の物理アドレスが属する前記メモリが、ユーザモードメモリであるか、またはカーネルモードメモリであるかを判定するステップをさらに含み、
前記コンピュータの中に格納された前記マッピング関係の中に、前記目標の物理アドレスが対応するマッピング関係が存在するかどうかを判定する前記ステップは、
前記目標の物理アドレスが属する前記メモリが前記カーネルモードメモリである場合に、前記コンピュータの中に格納された前記マッピング関係の中に、前記目標の物理アドレスが対応するマッピング関係が存在するかどうかを判定するステップである、
請求項2に記載のメモリ移行を実施するための方法。
【請求項４】
前記オペレーティングシステムによる、前記目標の物理アドレスが対応する前記マッピング関係に従って前記第1の使用不能なメモリの中のデータにアクセスする前記ステップは、
前記オペレーティングシステムによる、前記目標の物理アドレスのページ内オフセットを得るステップと、
前記オペレーティングシステムによる、前記目標の物理アドレスが対応する前記マッピング関係に従って、前記目標の物理アドレスが対応する前記第1の使用不能なメモリの第2の物理アドレスを得るステップと、
前記オペレーティングシステムによる、前記ページ内オフセットおよび前記第2の物理アドレスの合計に従って前記第1の使用不能なメモリの中のデータにアクセスするステップと、
を含む請求項2に記載のメモリ移行を実施するための方法。
【請求項５】
移行が行われるべき前記メモリが、一様でないメモリアクセスアーキテクチャの下のノードメモリである場合、
目標のノードがホットアドされる際、前記基本入出力システムによる、前記目標のノードが対応する物理アドレスを得るよう前記目標のノードに対してメモリアドレス指定を実行するステップと、
前記基本入出力システムによる、前記コンピュータの中に格納された前記マッピング関係の中に、前記目標のノードが対応する物理アドレスが存在するかどうかを調べるステップと、
前記基本入出力システムによる、前記コンピュータの中に格納された前記マッピング関係の中に、前記目標のノードが対応する前記物理アドレスが存在する場合に、前記マッピング関係に従って、前記目標のノードが対応する前記物理アドレスに対応する第1の使用不能なメモリの第3の物理アドレスを得るステップと、
前記基本入出力システムによる、前記第3の物理アドレスが属する前記メモリの中のデータを、前記目標のノードに対応する前記物理アドレスが属する前記メモリに移行させるステップと、
前記基本入出力システムによる、前記コンピュータの中に格納された前記マッピング関係から、前記目標のノードが対応する前記物理アドレスの前記マッピング関係を削除するステップと、
をさらに含む請求項1から4のいずれか一項に記載のメモリ移行を実施するための方法。
【請求項６】
メモリ移行を実施するための方法であって、
移行が行われるべきメモリの移行が行われる際、コンピュータの基本入出力システムによる、移行が行われるべき前記メモリの中のデータを前記コンピュータのオペレーティングシステムの第1の使用不能なメモリに移行させるステップであって、前記第1の使用不能なメモリは、前記オペレーティングシステムのために確保されたメモリセットである前記オペレーティングシステムの元の使用可能なメモリから前もって変換されており、さらに前記オペレーティングシステムによって変更不能であるとともに、前記オペレーティングシステムがアクセスできない、ステップと、
前記基本入出力システムによる、移行が行われるべき前記メモリの物理アドレスと前記第1の使用不能なメモリの物理アドレスの間のマッピング関係を格納するステップと、
を含み、
コンピュータの基本入出力システムによる、移行が行われるべき前記メモリの中のデータを前記コンピュータのオペレーティングシステムの第1の使用不能なメモリに移行させる前記ステップに先立って、
前記コンピュータの前記オペレーティングシステムによる、移行が行われるべき前記メモリの中の、前記オペレーティングシステムによって移行が行われることが可能なメモリの中のデータを前記コンピュータの第1のアイドルなメモリに移行させるステップをさらに含み、
コンピュータの基本入出力システムによる、移行が行われるべき前記メモリの中のデータを前記コンピュータのオペレーティングシステムの第1の使用不能なメモリに移行させる前記ステップは、前記コンピュータの前記基本入出力システムによる、残りのメモリの中のデータを前記コンピュータの前記オペレーティングシステムの第2の使用不能なメモリに移行させるステップであって、前記残りのメモリは、前記オペレーティングシステムによって移行が行われることが可能な前記メモリを除いた、移行が行われるべき前記メモリの中のメモリであり、前記第2の使用不能なメモリは、前記第1の使用不能なメモリの一部分である、
ことを特徴とするメモリ移行を実施するための方法。
【請求項７】
前記コンピュータの前記オペレーティングシステムによる、移行が行われるべき前記メモリの中の、前記オペレーティングシステムによって移行が行われることが可能なメモリの中のデータを前記コンピュータの第1のアイドルなメモリに移行させる前記ステップは、
前記オペレーティングシステムによる、移行が行われるべき前記メモリから、前記オペレーティングシステムによって移行がサポートされる、前記オペレーティングシステムによって移行が行われることが可能な前記メモリを得るステップと、
前記オペレーティングシステムによる、前記オペレーティングシステムによって移行が行われることが可能な前記メモリを参照するすべてのプロセスに対してスリープ動作を実行するステップと、
前記オペレーティングシステムによる、前記コンピュータの占有されていないメモリの中の前記第1のアイドルなメモリを割り当てるステップと、
前記オペレーティングシステムによる、前記オペレーティングシステムによって移行が行われることが可能な前記メモリの中のデータを前記第1のアイドルなメモリにコピーするステップと、
前記オペレーティングシステムによる、前記オペレーティングシステムによって移行が行われることが可能な前記メモリが対応するすべてのページテーブルエントリを削除するステップと、
前記オペレーティングシステムによる、前記オペレーティングシステムによって移行が行われることが可能な前記メモリを参照するすべてのプロセスのページテーブルエントリを更新して、前記更新されたページテーブルエントリが前記第1のアイドルなメモリに向けられるようにするステップと、
前記オペレーティングシステムによる、前記スリープ動作を受けた前記プロセスを起動するステップと、
を含む請求項6に記載のメモリ移行を実施するための方法。
【請求項８】
前記オペレーティングシステムが目標の物理アドレスにアクセスする際、前記コンピュータの中に格納された前記マッピング関係の中に、前記目標の物理アドレスが対応するマッピング関係が存在するかどうかを判定するステップと、
前記目標の物理アドレスが対応するマッピング関係が存在する場合に、前記オペレーティングシステムによる、前記目標の物理アドレスが対応する前記マッピング関係に従って前記第1の使用不能なメモリの中のデータにアクセスするステップと、
をさらに含む請求項6または7に記載のメモリ移行を実施するための方法。
【請求項９】
前記コンピュータの中に格納された前記マッピング関係の中に、前記目標の物理アドレスが対応するマッピング関係が存在するかどうかを判定するステップに先立って、
前記目標の物理アドレスが属する前記メモリが、ユーザモードメモリであるか、またはカーネルモードメモリであるかを判定するステップをさらに含み、
前記コンピュータの中に格納された前記マッピング関係の中に、前記目標の物理アドレスが対応するマッピング関係が存在するかどうかを判定する前記ステップは、
前記目標の物理アドレスが属する前記メモリが前記カーネルモードメモリである場合に、前記コンピュータの中に格納された前記マッピング関係の中に、前記目標の物理アドレスが対応するマッピング関係が存在するかどうかを判定するステップである、
請求項8に記載のメモリ移行を実施するための方法。
【請求項１０】
前記オペレーティングシステムによる、前記目標の物理アドレスが対応する前記マッピング関係に従って前記第1の使用不能なメモリの中のデータにアクセスする前記ステップは、
前記オペレーティングシステムによる、前記目標の物理アドレスのページ内オフセットを得るステップと、
前記オペレーティングシステムによる、前記目標の物理アドレスが対応する前記マッピング関係に従って、前記目標の物理アドレスが対応する前記第1の使用不能なメモリの第2の物理アドレスを得るステップと、
前記オペレーティングシステムによる、前記ページ内オフセットおよび前記第2の物理アドレスの合計に従って前記第1の使用不能なメモリの中のデータにアクセスするステップと、
を含む請求項8に記載のメモリ移行を実施するための方法。
【請求項１１】
移行が行われるべき前記メモリが、一様でないメモリアクセスアーキテクチャの下のノードメモリである場合、
目標のノードがホットアドされる際、前記基本入出力システムによる、前記目標のノードが対応する物理アドレスを得るよう前記目標のノードに対してメモリアドレス指定を実行するステップと、
前記基本入出力システムによる、前記コンピュータの中に格納された前記マッピング関係の中に、前記目標のノードが対応する物理アドレスが存在するかどうかを調べるステップと、
前記基本入出力システムによる、前記コンピュータの中に格納された前記マッピング関係の中に、前記目標のノードが対応する前記物理アドレスが存在する場合に、前記マッピング関係に従って、前記目標のノードが対応する前記物理アドレスに対応する第1の使用不能なメモリの第3の物理アドレスを得るステップと、
前記基本入出力システムによる、前記第3の物理アドレスが属する前記メモリの中のデータを、前記目標のノードに対応する前記物理アドレスが属する前記メモリに移行させるステップと、
前記基本入出力システムによる、前記コンピュータの中に格納された前記マッピング関係から、前記目標のノードが対応する前記物理アドレスの前記マッピング関係を削除するステップと、
をさらに含む請求項6から10のいずれか一項に記載のメモリ移行を実施するための方法。
【請求項１２】
メモリ移行を実施するためのデバイスであって、
移行が行われるべきメモリの移行が行われる際、コンピュータの基本入出力システムによって、移行が行われるべき前記メモリの中のデータを前記コンピュータのオペレーティングシステムの第1の使用不能なメモリに移行させるように構成された第1の移行モジュールであって、前記第1の使用不能なメモリは、前記オペレーティングシステムのために確保されたメモリセットである前記オペレーティングシステムの元の使用可能なメモリから前もって変換されており、さらに前記オペレーティングシステムによって変更不能であるとともに、前記オペレーティングシステムがアクセスできない、第1の移行モジュールと、
前記基本入出力システムによって、移行が行われるべき前記メモリの物理アドレスと前記第1の使用不能なメモリの物理アドレスの間のマッピング関係を格納するように構成された格納モジュールと、
を備え、
前記格納モジュールは、
前記基本入出力システムによって、移行が行われるべき前記メモリの前記物理アドレスに関してメモリページ整列を実行して、第1の物理アドレスを得るように構成されたメモリページ整列サブモジュールと、
前記基本入出力システムによって、前記第1の物理アドレスと前記第1の使用不能なメモリの前記物理アドレスの間のマッピング関係を格納するように構成された格納サブモジュールと、
を備えることを特徴とするメモリ移行を実施するためのデバイス。
【請求項１３】
前記オペレーティングシステムが目標の物理アドレスにアクセスする際、前記コンピュータの中に格納された前記マッピング関係の中に、前記目標の物理アドレスが対応するマッピング関係が存在するかどうかを判定するように構成された制御モジュールと、
前記目標の物理アドレスが対応するマッピング関係が存在する場合に、前記オペレーティングシステムによって、前記目標の物理アドレスが対応する前記マッピング関係に従って前記第1の使用不能なメモリの中のデータにアクセスするように構成されたアクセスモジュールと、
をさらに備える請求項12に記載のメモリ移行を実施するためのデバイス。
【請求項１４】
前記目標の物理アドレスが属する前記メモリが、ユーザモードメモリであるか、またはカーネルモードメモリであるかを判定するように構成されたメモリ判定モジュールをさらに備え、
前記制御モジュールは、前記目標の物理アドレスが属する前記メモリが前記カーネルモードメモリである場合に、前記コンピュータの中に格納された前記マッピング関係の中に、前記目標の物理アドレスが対応するマッピング関係が存在するかどうかを判定するように構成されている、
請求項13に記載のメモリ移行を実施するためのデバイス。
【請求項１５】
前記アクセスモジュールは、
前記オペレーティングシステムによって、前記目標の物理アドレスのページ内オフセットを得るように構成されたオフセット獲得サブモジュールと、
前記オペレーティングシステムによって、前記目標の物理アドレスが対応する前記マッピング関係に従って、前記目標の物理アドレスが対応する前記第1の使用不能なメモリの第2の物理アドレスを得るように構成された第2の物理アドレス獲得サブモジュールと、
前記オペレーティングシステムによって、前記ページ内オフセットと前記第2の物理アドレスの合計に従って前記第1の使用不能なメモリの中のデータにアクセスするように構成されたアクセスサブモジュールと、
を備える請求項13に記載のメモリ移行を実施するためのデバイス。
【請求項１６】
移行が行われるべき前記メモリが、一様でないメモリアクセスアーキテクチャの下のノードメモリである場合、
目標のノードがホットアドされる際、前記基本入出力システムによって、前記目標のノードが対応する物理アドレスを得るよう前記目標のノードに対してメモリアドレス指定を実行するように構成されたアドレス獲得モジュールと、
前記基本入出力システムによって、前記コンピュータの中に格納された前記マッピング関係の中に、前記目標のノードが対応する物理アドレスが存在するかどうかを調べるように構成されたアドレス検査モジュールと、
前記基本入出力システムによって、前記コンピュータの中に格納された前記マッピング関係の中に、前記目標のノードが対応する前記物理アドレスが存在する場合に、前記マッピング関係に従って、前記目標のノードが対応する前記物理アドレスに対応する第1の使用不能なメモリの第3の物理アドレスを得るように構成された第3の物理アドレス獲得モジュールと、
前記基本入出力システムによって、前記第3の物理アドレスが属する前記メモリの中のデータを、前記目標のノードに対応する前記物理アドレスが属する前記メモリに移行させるように構成された第3の移行モジュールと、
前記基本入出力システムによって、前記コンピュータの中に格納された前記マッピング関係から、前記目標のノードが対応する前記物理アドレスの前記マッピング関係を削除するように構成されたマッピング関係削除モジュールと、
をさらに備える請求項12から15のいずれか一項に記載のメモリ移行を実施するためのデバイス。
【請求項１７】
メモリ移行を実施するためのデバイスであって、
移行が行われるべきメモリの移行が行われる際、コンピュータの基本入出力システムによって、移行が行われるべき前記メモリの中のデータを前記コンピュータのオペレーティングシステムの第1の使用不能なメモリに移行させるように構成された第1の移行モジュールであって、前記第1の使用不能なメモリは、前記オペレーティングシステムのために確保されたメモリセットである前記オペレーティングシステムの元の使用可能なメモリから前もって変換されており、さらに前記オペレーティングシステムによって変更不能であるとともに、前記オペレーティングシステムがアクセスできない、第1の移行モジュールと、
前記基本入出力システムによって、移行が行われるべき前記メモリの物理アドレスと前記第1の使用不能なメモリの物理アドレスの間のマッピング関係を格納するように構成された格納モジュールと、
を備え、
前記コンピュータの前記オペレーティングシステムによって、移行が行われるべき前記メモリの中の、前記オペレーティングシステムによって移行が行われることが可能なメモリの中のデータを前記コンピュータの第1のアイドルなメモリに移行させるように構成された第2の移行モジュールをさらに備え、
前記第1の移行モジュールは、前記コンピュータの前記基本入出力システムによって、残りのメモリの中のデータを第2の使用不能なメモリに移行させるように構成され、前記残りのメモリは、前記オペレーティングシステムによって移行が行われることが可能な前記メモリを除いた、移行が行われるべき前記メモリの中のメモリであり、前記第2の使用不能なメモリは、前記第1の使用不能なメモリの一部分である、
ことを特徴とするメモリ移行を実施するためのデバイス。
【請求項１８】
前記第2の移行モジュールは、
前記オペレーティングシステムによって、移行が行われるべき前記メモリから、前記オペレーティングシステムによって移行がサポートされる、前記オペレーティングシステムによって移行が行われることが可能な前記メモリを得るように構成された第2のメモリ獲得サブモジュールと、
前記オペレーティングシステムによって、前記オペレーティングシステムによって移行が行われることが可能な前記メモリを参照するすべてのプロセスに対してスリープ動作を実行するように構成されたスリープ動作サブモジュールと、
前記オペレーティングシステムによって、前記コンピュータの占有されていないメモリの中の前記第1のアイドルなメモリを割り当てるように構成されたメモリ割り当てサブモジュールと、
前記オペレーティングシステムによって、前記オペレーティングシステムによって移行が行われることが可能な前記メモリの中のデータを前記第1のアイドルなメモリにコピーするように構成されたメモリコピーサブモジュールと、
前記オペレーティングシステムによって、前記オペレーティングシステムによって移行が行われることが可能な前記メモリが対応するすべてのページテーブルエントリを削除するように構成されたページテーブルエントリ削除サブモジュールと、
前記オペレーティングシステムによって、前記オペレーティングシステムによって移行が行われることが可能な前記メモリを参照するすべてのプロセスのページテーブルエントリを更新して、前記更新されたページテーブルエントリが前記第1のアイドルなメモリに向けられるようにするように構成されたページテーブルエントリ更新サブモジュールと、
前記オペレーティングシステムによって、前記スリープ動作を受けた前記プロセスを起動するように構成された起動サブモジュールと、
を備える請求項17に記載のメモリ移行を実施するためのデバイス。
【請求項１９】
前記オペレーティングシステムが目標の物理アドレスにアクセスする際、前記コンピュータの中に格納された前記マッピング関係の中に、前記目標の物理アドレスが対応するマッピング関係が存在するかどうかを判定するように構成された制御モジュールと、
前記目標の物理アドレスが対応するマッピング関係が存在する場合に、前記オペレーティングシステムによって、前記目標の物理アドレスが対応する前記マッピング関係に従って前記第1の使用不能なメモリの中のデータにアクセスするように構成されたアクセスモジュールと、
をさらに備える請求項17または18に記載のメモリ移行を実施するためのデバイス。
【請求項２０】
前記目標の物理アドレスが属する前記メモリが、ユーザモードメモリであるか、またはカーネルモードメモリであるかを判定するように構成されたメモリ判定モジュールをさらに備え、
前記制御モジュールは、前記目標の物理アドレスが属する前記メモリが前記カーネルモードメモリである場合に、前記コンピュータの中に格納された前記マッピング関係の中に、前記目標の物理アドレスが対応するマッピング関係が存在するかどうかを判定するように構成されている、
請求項19に記載のメモリ移行を実施するためのデバイス。
【請求項２１】
前記アクセスモジュールは、
前記オペレーティングシステムによって、前記目標の物理アドレスのページ内オフセットを得るように構成されたオフセット獲得サブモジュールと、
前記オペレーティングシステムによって、前記目標の物理アドレスが対応する前記マッピング関係に従って、前記目標の物理アドレスが対応する前記第1の使用不能なメモリの第2の物理アドレスを得るように構成された第2の物理アドレス獲得サブモジュールと、
前記オペレーティングシステムによって、前記ページ内オフセットと前記第2の物理アドレスの合計に従って前記第1の使用不能なメモリの中のデータにアクセスするように構成されたアクセスサブモジュールと、
を備える請求項19に記載のメモリ移行を実施するためのデバイス。
【請求項２２】
移行が行われるべき前記メモリが、一様でないメモリアクセスアーキテクチャの下のノードメモリである場合、
目標のノードがホットアドされる際、前記基本入出力システムによって、前記目標のノードが対応する物理アドレスを得るよう前記目標のノードに対してメモリアドレス指定を実行するように構成されたアドレス獲得モジュールと、
前記基本入出力システムによって、前記コンピュータの中に格納された前記マッピング関係の中に、前記目標のノードが対応する物理アドレスが存在するかどうかを調べるように構成されたアドレス検査モジュールと、
前記基本入出力システムによって、前記コンピュータの中に格納された前記マッピング関係の中に、前記目標のノードが対応する前記物理アドレスが存在する場合に、前記マッピング関係に従って、前記目標のノードが対応する前記物理アドレスに対応する第1の使用不能なメモリの第3の物理アドレスを得るように構成された第3の物理アドレス獲得モジュールと、
前記基本入出力システムによって、前記第3の物理アドレスが属する前記メモリの中のデータを、前記目標のノードに対応する前記物理アドレスが属する前記メモリに移行させるように構成された第3の移行モジュールと、
前記基本入出力システムによって、前記コンピュータの中に格納された前記マッピング関係から、前記目標のノードが対応する前記物理アドレスの前記マッピング関係を削除するように構成されたマッピング関係削除モジュールと、
をさらに備える請求項17から21のいずれか一項に記載のメモリ移行を実施するためのデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ技術に関し、より詳細には、メモリ移行(メモリマイグレーション：migration)を実施するための方法およびデバイスに関する。
【背景技術】
【０００２】
コンピュータの重要な構成部分のうちの1つとして、メモリは、そのパフォーマンスによってコンピュータに大きく影響を及ぼす。サーバメモリの容量の急速な増加とともに、メモリの誤り率もまた大幅に増加している。メモリの誤りは、サービスの中断、またはシステムのダウンタイムを生じさせ、さらに回復できない損失をユーザにもたらす。システムの誤り許容率を向上させるために、誤りが繰り返し生じるメモリ領域を移行させ、さらに隔離することが可能であり、さらにこの事例は、通常、1つまたは複数のメモリページの粒度サイズでの移行である。また、メモリ移行は、システムの電力消費量を低減することも可能であり、さらにこの事例は、通常、一般にデュアルインラインメモリモジュール(Dual-Inline-Memory-Modules; DIMM)のレベルに達する大きい粒度での移行である。
【０００３】
従来技術において、メモリ移行を実施するための特定のプロセスは、以下のステップを含む：すなわち、オペレーティングシステム(Operating System; OS)における管理プログラムによって送られたメモリ移行命令を受け取ると、システムの関係のあるコントローラが、バックアップメモリを初期化して、バックアップメモリと移行が行われるべきメモリが同一のアドレスバスを使用するようにバックアップメモリのアドレス空間と移行が行われるべきメモリのアドレス空間をアドレス変更し、基本入出力システム(Basic Input Output System; BIOS)が、移行が行われるべきメモリの中のデータをバックアップメモリにコピーし、コピーすることが完了すると、移行が行われるべきメモリを使用することが停止されるとともに、バックアップメモリを使用することが開始され、したがって、OSが移行が行われるべきメモリに再びアクセスすると、バックアップメモリの中に格納されたデータが、移行が行われるべき元のメモリの物理アドレスを介して直接にアクセスされ得る。
【０００４】
従来技術において、メモリの移行が行われるたびにバックアップメモリを初期化することが必要であり、したがって、メモリ移行の運用プロセスは、比較的複雑である。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の実施形態は、単純な運用プロセスを介してメモリ移行を実施するようにする、メモリ移行を実施するための方法およびデバイスを提供する。
【課題を解決するための手段】
【０００６】
一態様によれば、メモリ移行を実施するための方法が提供され、この方法は、移行が行われるべきメモリの移行が行われる際、コンピュータの基本入出力システムによって、移行が行われるべきメモリの中のデータをコンピュータのオペレーティングシステムの第1の使用不能なメモリに移行させるステップであって、第1の使用不能なメモリは、オペレーティングシステムのために確保されたメモリセットであるオペレーティングシステムの元の使用可能なメモリから前もって変換されており、さらにオペレーティングシステムによって変更不能であるとともに、オペレーティングシステムがアクセスできない、ステップと、基本入出力システムによって、移行が行われるべきメモリの物理アドレスと第1の使用不能なメモリの物理アドレスの間のマッピング関係を格納するステップとを含む。
【０００７】
別の態様によれば、メモリ移行を実施するためのデバイスが提供され、このデバイスは、
移行が行われるべきメモリの移行が行われる際、コンピュータの基本入出力システムによって、移行が行われるべきメモリの中のデータをコンピュータのオペレーティングシステムの第1の使用不能なメモリに移行させるように構成された第1の移行モジュールであって、第1の使用不能なメモリは、オペレーティングシステムのために確保されたメモリセットであるオペレーティングシステムの元の使用可能なメモリから前もって変換されており、さらにオペレーティングシステムによって変更不能であるとともに、オペレーティングシステムがアクセスできない、第1の移行モジュールと、
基本入出力システムによって、移行が行われるべきメモリの物理アドレスと第1の使用不能なメモリの物理アドレスの間のマッピング関係を格納するように構成された格納モジュールと
を備える。
【０００８】
本発明のこれらの実施形態によって提供されるメモリ移行を実施するための方法およびデバイスによって、移行が行われるべきメモリの移行が行われる際、基本入出力システムによって、移行が行われるべきメモリの中のデータが第1の使用不能なメモリに移行させられ、さらに移行が行われるべきメモリの物理アドレスと第1の使用不能なメモリの物理アドレスの間のマッピング関係が格納され、その結果、メモリ移行が実施される。第1の使用不能なメモリは、前もって変換されるので、第1の使用不能なメモリを初期化するプロセスは、本発明のこれらの実施形態によって提供される技術的解決策においてメモリ移行が実行される際、省かれ、このため、従来技術における問題、すなわち、メモリ移行運用プロセスが比較的複雑であることが解決される。
【０００９】
本発明の実施形態の技術的解決策、または従来技術の技術的解決策の説明をより明瞭にするように、それらの実施形態の説明、または従来技術の説明において使用される必要がある添付の図面を、以下に簡単に説明する。明らかに、以下に説明される添付の図面は、本発明の一部の実施形態を対象とするに過ぎず、創造的な取り組みなしに、当業者がこれらの図面から他の図面を導き出すことが可能である。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態1によって提供されるメモリ移行を実施するための方法を示す流れ図である。
【図２】本発明の実施形態2によって提供されるメモリ移行を実施するための方法を示す流れ図である。
【図３】本発明の実施形態3によって提供されるメモリ移行を実施するための方法を示す流れ図である。
【図４】本発明の実施形態4によって提供されるメモリ移行を実施するための方法を示す流れ図である。
【図５】本発明の実施形態5によって提供されるメモリ移行を実施するための方法を示す流れ図である。
【図６】本発明の実施形態6によって提供されるメモリ移行を実施するための方法を示す流れ図である。
【図７】本発明の実施形態7によって提供されるメモリ移行を実施するための方法を示す第1の流れ図である。
【図８】本発明の実施形態7によって提供されるメモリ移行を実施するための方法を示す第2の流れ図である。
【図９】本発明の実施形態8によって提供されるメモリ移行を実施するための方法を示す流れ図である。
【図１０】本発明の実施形態9によって提供されるメモリ移行を実施するための方法を示す流れ図である。
【図１１】本発明の実施形態10によって提供されるメモリ移行を実施するための方法を示す第1の流れ図である。
【図１２】本発明の実施形態10によって提供される4つのノードを有するNUMAアーキテクチャシステムの構造を示す概略図である。
【図１３】本発明の実施形態10によって提供されるメモリ移行を実施するための方法を示す第2の流れ図である。
【図１４】本発明の実施形態10によって提供されるメモリ移行を実施するための方法を示す第3の流れ図である。
【図１５】本発明の実施形態11によって提供されるメモリ移行を実施するためのデバイスの構造を示す第1の概略図である。
【図１６】本発明の実施形態11によって提供されるメモリ移行を実施するためのデバイスの構造を示す第2の概略図である。
【図１７】図15に示されるメモリ移行を実施するためのデバイス内の第1の移行モジュールの構造を示す概略図である。
【図１８】図15に示されるメモリ移行を実施するためのデバイス内の格納モジュールの構造を示す概略図である。
【図１９】本発明の実施形態11によって提供されるメモリ移行を実施するためのデバイスの構造を示す第3の概略図である。
【図２０】図19に示されるメモリ移行を実施するためのデバイス内の第2の移行モジュールの構造を示す概略図である。
【図２１】本発明の実施形態11によって提供されるメモリ移行を実施するためのデバイスの構造を示す第4の概略図である。
【図２２】本発明の実施形態11によって提供されるメモリ移行を実施するためのデバイスの構造を示す第5の概略図である。
【図２３】図21に示されるメモリ移行を実施するためのデバイス内のアクセスモジュールの構造を示す概略図である。
【図２４】本発明の実施形態11によって提供されるメモリ移行を実施するためのデバイスの構造を示す第6の概略図である。
【発明を実施するための形態】
【００１１】
本発明の実施形態による技術的解決策は、本発明の実施形態における添付の図面を参照して、後段で明確に、完全に説明される。明らかに、後段で説明される実施形態は、本発明のすべての実施形態ではなく、一部の実施形態であるに過ぎない。本発明のこれらの実施形態を基礎として、創造的な取り組みなしに当業者によって得られることが可能な他のすべての実施形態は、本発明の保護範囲に含まれるべきものとする。
【００１２】
従来技術における問題、すなわち、メモリ移行(メモリマイグレーション：memory migration)運用プロセスが比較的複雑であることを解決するために、本発明の実施形態は、メモリ移行を実施するための方法およびデバイスを提供する。
【００１３】
図1に示されるように、本発明の実施形態1によって提供されるメモリ移行を実施するための方法は、以下のステップを含む。
【００１４】
ステップ101  -  移行が行われるべきメモリの移行が行われる際、コンピュータの基本入出力システムによる、移行が行われるべきメモリの中のデータを、コンピュータのオペレーティングシステムの第1の使用不能なメモリに移行させること。
【００１５】
この実施形態において、ステップ101を介して、移行が行われるべきメモリの中のデータを、コンピュータのオペレーティングシステム(Operating System; OS)の第1の使用不能なメモリに移行させるプロセスにおいて、移行が行われるべきメモリの中のデータは、第1の使用不能なメモリなどにコピーされ得るが、制限は全く行われない。第1の使用不能なメモリは、OSの元の使用可能なメモリ(original usable memory)から前もって変換され、さらにOSのために確保されているものとして設定され、さらにOSによって変更不能であるとともに、OSにアクセスできないメモリであることが可能である。システムが起動して、e820マップを生成するようにメモリにアドレス指定すると、BIOSが、メモリに一様にアドレス指定して、メモリの一部分をOSのために使用可能にするとともに、メモリの別の部分をOSのために使用不能にする。
【００１６】
この実施形態において、コンピュータのOSの元の使用不能なメモリは、通常、コンピュータの元のプロセスによって占有されているので、ステップ101におけるOSの第1の使用不能なメモリは、OSの元の使用可能なメモリから前もって変換されたメモリの一部分であることが可能であり、さらに本明細書で逐次、冗長に説明することはしない、他の手段でOSによって新たに構成されたメモリの一部分であることも可能である。すなわち、移行が行われるべきメモリの中のデータをOSの第1の使用不能なメモリに移行させることは、移行が行われるべきメモリの中のデータを、元の使用可能なメモリから前もって変換されたメモリの中の任意の位置に移行させることであることが可能であり、さらに残りのメモリの中のデータを、元の使用可能なメモリから前もって変換されたメモリに、元の使用可能なメモリから前もって変換されたメモリの物理アドレスの順序に従って、順次に移行させることであることも可能であるが、詳細を、本明細書で逐次、冗長に説明することはしない。
【００１７】
この実施形態において、ステップ101で移行が行われるべきメモリは、繰り返しの誤りがOSの管理プログラムによって或るメモリの中で生じることが見出されており、さらに、その結果、移行および隔離を必要としている小さい粒度のメモリであることが可能であり、さらに一様でないメモリアクセス(Non Uniform Memory Access Architecture; NUMA)アーキテクチャにおいてシステムの電力消費量を低減するためにホットリムーバルを必要とするノードメモリであることも可能である。ステップ101で移行が行われるべきメモリは、他の状況下で移行が行われるべきメモリであることも可能であり、このことを、本明細書で逐次、冗長に説明することはしない。
【００１８】
ステップ102  -  基本入出力システムによる、移行が行われるべきメモリの物理アドレスと第1の使用不能なメモリの物理アドレスの間のマッピング関係を格納すること。
【００１９】
この実施形態において、ステップ102における移行が行われるべきメモリの物理アドレスと第1の使用不能なメモリの物理アドレスの間のマッピング関係は、移行が行われるべきメモリの、メモリページ整列後の物理アドレスと、第1の使用不能なメモリの、メモリページ整列後の物理アドレスの間のマッピング関係などであり得るが、本明細書で逐次、冗長に説明することはしない。このマッピング関係は、コンピュータの任意の位置に格納されることが可能であり、さらにマッピング関係のために別個に提供されるフラッシュメモリなどのストレージデバイスの中に格納されることも可能である。また、本明細書で逐次、冗長に説明することはしない、他の手段によってこのマッピング関係を格納することも可能である。
【００２０】
この実施形態によって提供されるメモリ移行を実施するための方法は、基本入出力システム(Basic Input Output System; BIOS)を対応するコンピュータハードウェアと組み合わせることによって実施されることが可能であり、さらに詳細を、本明細書で逐次、冗長に説明することはしない。
【００２１】
本発明の実施形態によって提供されるメモリ移行を実施するための方法において、移行が行われるべきメモリの移行が行われる際、基本入出力システムによって、移行が行われるべきメモリの中のデータが第1の使用不能なメモリに移行させられ、さらに移行が行われるべきメモリの物理アドレスと第1の使用不能なメモリの物理アドレスの間のマッピング関係が格納されて、その結果、メモリ移行が実施される。第1の使用不能なメモリは、前もって変換されるので、第1の使用不能なメモリを初期化するプロセスは、本発明のこれらの実施形態によって提供される技術的解決策においてメモリ移行が実行される際、省かれ、このため、従来技術における問題、すなわち、メモリ移行運用プロセスが比較的複雑であることが解決される。
【００２２】
図2に示されるように、本発明の実施形態2によって提供されるメモリ移行を実施するための方法は、以下のステップを含む。
【００２３】
ステップ201  -  基本入出力システムによる、コンピュータのメモリを初期化して、コンピュータの元の使用可能なメモリの一部のメモリがオペレーティングシステムの使用不能なメモリに変換されるようにすること。
【００２４】
この実施形態において、メモリ移行運用プロセスを単純化するために、ステップ201を介してコンピュータのメモリを初期化するプロセスが、コンピュータシステムの起動中に実行され得る。ステップ201を介してコンピュータのメモリを初期化するプロセスは、e820マップを生成するようにメモリにアドレス指定することによって実施されることが可能であり、さらに、本明細書で逐次、冗長に説明することはしない、他の手段によって実施されることも可能である。ステップ201でコンピュータのメモリを初期化することは、コンピュータの元の使用可能なメモリの一部のメモリをOSのために使用不能なメモリに変換することを備え得るだけでなく、OSの使用不能なメモリのサイズなどを設定することも備え得るが、制限は全く行われない。OSの使用不能なメモリのサイズを設定することは、OSの使用不能なメモリを固定サイズのメモリとして設定することであり得るだけでなく、OSの使用不能なメモリを調整可能なサイズのメモリとして設定することでもあり得る、すなわち、OSの使用不能なメモリのサイズは、システムメモリのサイズに従ってBIOSにおいて設定される。
【００２５】
ステップ202からステップ203  -  移行が行われるべきメモリを、コンピュータの基本入出力システムによって移行させること、および移行が行われるべきメモリの物理アドレスと第1の使用不能なメモリの物理アドレスの間のマッピング関係を格納すること。
【００２６】
この実施形態において、ステップ202からステップ203における第1の使用不能なメモリは、ステップ201における変換によって得られる使用不能なメモリの一部分であることが可能であり、さらにこのことを、本明細書で冗長に説明することはしない。ステップ202からステップ203の特定のプロセスは、詳細を、本明細書で逐次、冗長に説明することはしないが、図1に示されるステップ101からステップ102を参照して見ることができる。
【００２７】
この実施形態によって提供されるメモリ移行を実施するための方法は、BIOSを対応するコンピュータハードウェアと組み合わせることによって実施されることが可能であり、さらに詳細を、本明細書で逐次、冗長に説明することはしない。
【００２８】
本発明のこれらの実施形態によって提供されるメモリ移行を実施するための方法において、移行が行われるべきメモリの移行が行われる際、基本入出力システムによって、移行が行われるべきメモリの中のデータが第1の使用不能なメモリに移行させられ、さらに移行が行われるべきメモリの物理アドレスと第1の使用不能なメモリの物理アドレスの間のマッピング関係が格納されて、その結果、メモリ移行が実施される。第1の使用不能なメモリは、前もって変換されるので、第1の使用不能なメモリを初期化するプロセスは、本発明のこれらの実施形態によって提供される技術的解決策においてメモリ移行が実行される際、省かれ、このため、従来技術における問題、すなわち、メモリ移行運用プロセスが比較的複雑であることが解決される。
【００２９】
図3に示されるように、本発明の実施形態3によって提供されるメモリ移行を実施するための方法は、以下のステップを含む。
【００３０】
ステップ301  -  基本入出力システムによる、コンピュータのメモリを初期化すること。ステップ301の特定のプロセスは、図2に示されるステップ201を参照して見ることができるが、詳細を、本明細書で逐次、冗長に説明することはしない。
【００３１】
ステップ302  -  基本入出力システムによる、オペレーティングシステムの使用不能なメモリから第1の使用不能なメモリを得ること。
【００３２】
この実施形態において、ステップ302を介して、その使用不能なメモリから第1の使用不能なメモリを得ることは、BIOSが、その使用不能なメモリの物理アドレスの順序に従って、移行が行われるべきメモリとしてサイズ設定された第1の使用不能なメモリを、その使用不能なメモリから順次に得ることであり得る。
【００３３】
ステップ303  -  基本入出力システムによる、移行が行われるべきメモリの中のデータを第1の使用不能なメモリに移行させること。
【００３４】
この実施形態において、ステップ303を介して、移行が行われるべきメモリの中のデータを第1の使用不能なメモリに移行させるプロセスは、移行が行われるべきメモリの中のデータを第1の使用不能なメモリなどにコピーすることであり得るが、制限は全く行われない。
【００３５】
ステップ304  -  基本入出力システムによる、移行が行われるべきメモリの物理アドレスと第1の使用不能なメモリの物理アドレスの間のマッピング関係を格納すること。ステップ304の特定のプロセスは、図1に示されるステップ102を参照して見ることができるが、詳細を、本明細書で逐次、冗長に説明することはしない。
【００３６】
この実施形態によって提供されるメモリ移行を実施するための方法は、BIOSを対応するコンピュータハードウェアと組み合わせることによって実施されることが可能であり、さらに詳細を、本明細書で逐次、冗長に説明することはしない。
【００３７】
本発明のこれらの実施形態によって提供されるメモリ移行を実施するための方法において、移行が行われるべきメモリの移行が行われる際、基本入出力システムによって、移行が行われるべきメモリの中のデータが第1の使用不能なメモリに移行させられ、さらに移行が行われるべきメモリの物理アドレスと第1の使用不能なメモリの物理アドレスの間のマッピング関係が格納されて、その結果、メモリ移行が実施される。第1の使用不能なメモリは、前もって変換されるので、第1の使用不能なメモリを初期化するプロセスは、本発明のこれらの実施形態によって提供される技術的解決策においてメモリ移行が実行される際、省かれ、このため、従来技術における問題、すなわち、メモリ移行運用プロセスが比較的複雑であることが解決される。
【００３８】
図4に示されるように、本発明の実施形態4によって提供されるメモリ移行を実施するための方法は、以下のステップを含む。
【００３９】
ステップ401  -  コンピュータの基本入出力システムによる、移行が行われるべきメモリの中のデータを第1の使用不能なメモリに移行させること。ステップ401の特定のプロセスは、図1に示されるステップ101を参照して見ることができるが、詳細を、本明細書で逐次、冗長に説明することはしない。
【００４０】
ステップ402  -  基本入出力システムによる、移行が行われるべきメモリの物理アドレスに関するメモリページ整列を実行して、第1の物理アドレスを得ること。
【００４１】
ステップ403  -  基本入出力システムによる、第1の物理アドレスと第1の使用不能なメモリの物理アドレスの間のマッピング関係を格納すること。
【００４２】
この実施形態において、OSが残りのメモリの中のデータをその後に使用するのを円滑にするため、ステップ402を介して、最初に、移行が行われるべきメモリの物理アドレスを整列させ、次に、ステップ403を介して、整列された残りのメモリの物理アドレスと第1の使用不能なメモリの物理アドレスの間のマッピング関係を格納することが可能である。
【００４３】
この実施形態によって提供されるメモリ移行を実施するための方法は、BIOSを対応するコンピュータハードウェアと組み合わせることによって実施されることが可能であり、さらに詳細を、本明細書で逐次、冗長に説明することはしない。
【００４４】
本発明のこれらの実施形態によって提供されるメモリ移行を実施するための方法において、移行が行われるべきメモリの移行が行われる際、基本入出力システムによって、移行が行われるべきメモリの中のデータが第1の使用不能なメモリに移行させられ、さらに移行が行われるべきメモリの物理アドレスと第1の使用不能なメモリの物理アドレスの間のマッピング関係が格納されて、その結果、メモリ移行が実施される。第1の使用不能なメモリは、前もって変換されるので、第1の使用不能なメモリを初期化するプロセスは、本発明のこれらの実施形態によって提供される技術的解決策においてメモリ移行が実行される際、省かれ、このため、従来技術における問題、すなわち、メモリ移行運用プロセスが比較的複雑であることが解決される。
【００４５】
図5に示されるように、本発明の実施形態5によって提供されるメモリ移行を実施するための方法は、以下のステップを含む。
【００４６】
ステップ501  -  コンピュータのオペレーティングシステムによる、移行が行われるべきメモリの中のオペレーティングシステムによって移行させられることが可能なメモリの中のデータを、コンピュータの第1のアイドルなメモリに移行させること。
【００４７】
この実施形態において、OSは、一部のメモリの移行を実施することができるが、ほとんどのカーネルモードメモリの移行を実施することはできないので、ステップ501でオペレーティングシステムによって移行させられることが可能なメモリは、多量のユーザモードメモリおよび/またはいくつかのカーネルモードメモリを備え得る。
【００４８】
この実施形態において、ステップ501における第1のアイドルなメモリは、コンピュータによって現在、占有されているメモリの一部分であることが可能であり、すなわち、OSによって移行させられることが可能なメモリの中のデータを第1のアイドルなメモリに移行させることは、OSによって移行させられることが可能なメモリの中のデータを、コンピュータによって現在、占有されていないメモリの中の任意の位置に移行させることであることが可能であり、さらにOSによって移行させられることが可能なメモリの中のデータを、コンピュータによって現在、占有されていないメモリの物理アドレスの順序に従って、コンピュータによって現在、占有されていないメモリに順次に移行させることであることも可能であるが、詳細を、本明細書で逐次、冗長に説明することはしない。
【００４９】
この実施形態において、ステップ501でOSによって移行させられることが可能なメモリの中のデータを第1のアイドルなメモリに移行させることは、第1に、OSによる、OSによって移行させられることが可能なメモリを参照するすべてのプロセスに対してスリープ動作を実行すること、第2に、コンピュータによって現在、占有されていないメモリの中のメモリの一部分、すなわち、第1のアイドルなメモリを割り当て、さらにOSによって移行させられることが可能なメモリの中のデータを第1のアイドルなメモリに移行させ、その後、OSによる、OSによって移行させられることが可能なメモリに対応するページテーブルエントリを削除し、さらにOSによって移行させられることが可能なメモリを参照するすべてのプロセスの中のページテーブルエントリを更新して、それらのエントリが第1のアイドルなメモリに向けられるようにし、さらに最後に、OSによる、スリープ状態にあるプロセスを起動することを備え得る。ステップ501で、OSによって移行させられることが可能なメモリの中のデータが、他の手段によって第1のアイドルなメモリに移行させられることも可能であるが、制限は全く行われない。コンピュータによって現在、占有されていないメモリの中のOSによって割り当てられたメモリは、固定サイズの事前設定されたメモリ、またはOSによって移行させられることが可能なメモリのサイズに従って割り当てられるメモリ、または他の手段によって割り当てられるメモリであることが可能であり、このことを、本明細書で逐次、冗長に説明することはしない。
【００５０】
この実施形態において、ステップ501を介して、OSによって移行させられることが可能なメモリの中のデータを第1のアイドルなメモリに移行させることは、OSによって移行させられることが可能なメモリの中のデータを第1のアイドルなメモリに直接に移行させることであり得るだけでなく、最初に、OSによって移行させられることが可能なメモリが、現在、使用中であるかどうかのクエリを行い、さらに使用中である場合、OSによって移行させられることが可能なメモリの中のデータを第1のアイドルなメモリに移行させることでもあり得る。また、他の手段によって、OSによって移行させられることが可能なメモリの中のデータを第1のアイドルなメモリに移行させることも可能であり、このことを、本明細書で逐次、冗長に説明することはしない。
【００５１】
この実施形態において、ステップ501で移行が行われるべきメモリは、繰り返しの誤りがOSの管理プログラムによって或るメモリの中で生じることが見出されており、さらに、このため、移行および隔離を必要としている小さい粒度のメモリであることが可能であり、さらにNUMAアーキテクチャにおいてシステムの電力消費量を低減するためにホットリムーバルを必要とするノードメモリであることも可能である。ステップ501で移行が行われるべきメモリは、他の状況下で移行が行われるべきメモリであることも可能であり、このことを、本明細書で逐次、冗長に説明することはしない。
【００５２】
ステップ502  -  コンピュータの基本入出力システムによる、残りのメモリの中のデータを第2の使用不能なメモリに移行させること。
【００５３】
この実施形態において、ステップ501でOSによって移行させられることが可能なメモリの中のデータを第1のアイドルなメモリに移行させることは、OSによって実施されるのに対して、ステップ502で残りのメモリの中のデータを第2の使用不能なメモリに移行させることは、BIOSによって実施される。OSからBIOSにコンピュータシステムの制御権を移転するために、OSをスリープさせることによって、または他の手段によってこの移転を実施することが可能であり、このことを、本明細書で逐次、冗長に説明することはしない。ステップ502における残りのメモリは、OSによって移行させられることが可能なメモリを除いた、移行が行われるべきメモリの中のメモリであり得る。
【００５４】
この実施形態において、ステップ502を介して、残りのメモリの中のデータを第2の使用不能なメモリに移行させるプロセスは、残りのメモリの中のデータを第2の使用不能なメモリなどにコピーすることであり得るが、制限は全く行われない。第2の使用不能なメモリは、第1の使用不能なメモリの一部分であり得る。
【００５５】
ステップ503  -  基本入出力システムによる、残りのメモリの物理アドレスと第2の使用不能なメモリの物理アドレスの間のマッピング関係を格納すること。
【００５６】
この実施形態において、ステップ503を介して残りのメモリの物理アドレスと第2の使用不能なメモリの物理アドレスの間のマッピング関係を格納するプロセスは、図1に示されるステップ102を参照して見ることができるが、詳細を、本明細書で逐次、冗長に説明することはしない。
【００５７】
この実施形態によって提供されるメモリ移行を実施するための方法は、BIOSを対応するコンピュータハードウェアと組み合わせることによって実施されることが可能であり、さらに詳細を、本明細書で逐次、冗長に説明することはしない。
【００５８】
本発明のこれらの実施形態によって提供されるメモリ移行を実施するための方法は、コンピュータのBIOSと組み合わせたOSを介してメモリ移行を実施し、さらにメモリ移行の柔軟性を高める。
【００５９】
本発明のこれらの実施形態によって提供されるメモリ移行を実施するための方法において、移行が行われるべきメモリの移行が行われる際、基本入出力システムによって、移行が行われるべきメモリの中のデータが第1の使用不能なメモリに移行させられ、さらに移行が行われるべきメモリの物理アドレスと第1の使用不能なメモリの物理アドレスの間のマッピング関係が格納されて、その結果、メモリ移行が実施される。第1の使用不能なメモリは、前もって変換されるので、第1の使用不能なメモリを初期化するプロセスは、本発明のこれらの実施形態によって提供される技術的解決策においてメモリ移行が実行される際、省かれ、このため、従来技術における問題、すなわち、メモリ移行運用プロセスが比較的複雑であることが解決される。
【００６０】
図6に示されるように、本発明の実施形態6によって提供されるメモリ移行を実施するための方法は、以下のステップを含む。
【００６１】
ステップ601  -  移行が行われるべきメモリの移行が行われる際、オペレーティングシステムによる、移行が行われるべきメモリから、オペレーティングシステムによって移行がサポートされる、オペレーティングシステムによって移行させられることが可能なメモリを得ること。
【００６２】
この実施形態において、OSは、一部のメモリの移行を実施することができるが、ほとんどのカーネルモードメモリの移行を実施することはできないので、ステップ601でOSによって移行させられることが可能なメモリは、ユーザモードメモリを主に備えることが可能であり、さらにいくつかのカーネルモードメモリを備えることも可能である。
【００６３】
この実施形態において、ステップ601を介して、移行が行われるべきメモリから、OSによって移行がサポートされる、OSによって移行させられることが可能なメモリを得ることは、OSが、移行が行われるべきメモリから、OSによって移行させられることが可能なメモリを直接に得ることであり得るだけでなく、OSが最初に、移行が行われるべきメモリを特定し、次に、特定結果に従って、移行が行われるべきメモリから、OSによって移行させられることが可能なメモリを得ることでもあり得る。他の手段によって、OSが、移行が行われるべきメモリから、OSによって移行させられることが可能なメモリを得ることも可能であり、このことを、本明細書で逐次、冗長に説明することはしない。
【００６４】
ステップ602  -  オペレーティングシステムによる、オペレーティングシステムによって移行させられることが可能なメモリを参照するすべてのプロセスに対してスリープ動作を実行すること。
【００６５】
ステップ603  -  オペレーティングシステムによる、コンピュータの占有されていないメモリの中の第1のアイドルなメモリを割り当てること。
【００６６】
この実施形態において、ステップ603でコンピュータの占有されていないメモリの中の第1のアイドルなメモリを割り当てることは、コンピュータの占有されていないメモリの任意の位置に第1のアイドルなメモリを割り当てることであり得るだけでなく、コンピュータの占有されていないメモリの物理アドレスの順序に従って、第1のアイドルなメモリを順次に割り当てることでもあり得るが、詳細を、本明細書で逐次、冗長に説明することはしない。
【００６７】
ステップ604  -  オペレーティングシステムによる、移行させられることが可能なメモリの中のデータを第1のアイドルなメモリにコピーすること。
【００６８】
ステップ605  -  オペレーティングシステムによる、オペレーティングシステムによって移行させられることが可能なメモリが対応するすべてのページテーブルエントリを削除すること。
【００６９】
ステップ606  -  オペレーティングシステムによる、オペレーティングシステムによって移行させられることが可能なメモリを参照するすべてのプロセスのページテーブルエントリを更新して、更新されたページテーブルエントリが第1のアイドルなメモリに向けられるようにすること。
【００７０】
ステップ607  -  オペレーティングシステムによる、スリープ動作を受けたプロセスを起動すること。
【００７１】
この実施形態において、ステップ602でスリープ動作を受けたプロセスは、これらのプロセスが妥当な動作を実行しつづけることができるように、ステップ607を介して起動され得る。
【００７２】
ステップ608からステップ609  -  基本入出力システムによる、残りのメモリの中のデータを第1の使用不能なメモリに移行させ、さらに残りのメモリの物理アドレスと第1の使用不能なメモリの物理アドレスの間のマッピング関係を格納すること。ステップ608からステップ609の特定のプロセスは、図5のステップ502からステップ503を参照して見ることができるが、詳細を、本明細書で逐次、冗長に説明することはしない。
【００７３】
この実施形態によって提供されるメモリ移行を実施するための方法は、BIOSを対応するコンピュータハードウェアと組み合わせることによって実施されることが可能であり、さらに詳細を、本明細書で逐次、冗長に説明することはしない。
【００７４】
本発明のこれらの実施形態によって提供されるメモリ移行を実施するための方法において、移行が行われるべきメモリの移行が行われる際、基本入出力システムによって、移行が行われるべきメモリの中のデータが第1の使用不能なメモリに移行させられ、さらに移行が行われるべきメモリの物理アドレスと第1の使用不能なメモリの物理アドレスの間のマッピング関係が格納されて、その結果、メモリ移行が実施される。第1の使用不能なメモリは、前もって変換されるので、第1の使用不能なメモリを初期化するプロセスは、本発明のこれらの実施形態によって提供される技術的解決策においてメモリ移行が実行される際、省かれ、このため、従来技術における問題、すなわち、メモリ移行運用プロセスが比較的複雑であることが解決される。
【００７５】
図7に示されるように、本発明の実施形態7によって提供されるメモリ移行を実施するための方法は、以下のステップを含む。
【００７６】
ステップ701からステップ702  -  移行が行われるべきメモリの移行が行われる際、基本入出力システムによる、移行が行われるべきメモリの中のデータを第1の使用不能なメモリに移行させること、および移行が行われるべきメモリの物理アドレスと第1の使用不能なメモリの物理アドレスの間のマッピング関係を格納すること。ステップ701から702の特定のプロセスは、図1のステップ101からステップ102を参照して見ることができるが、詳細を、本明細書で逐次、冗長に説明することはしない。
【００７７】
ステップ703  -  オペレーティングシステムが目標の物理アドレスにアクセスする際、コンピュータの中に格納されたマッピング関係の中に、その目標の物理アドレスが対応するマッピング関係が存在するかどうかを判定すること。
【００７８】
この実施形態において、ステップ702を介して、移行が行われるべきメモリの物理アドレスと第1の使用不能なメモリの物理アドレスの間のマッピング関係が格納される際、コンピュータの中に格納された内容が、移行が行われるべきメモリの元の物理アドレスと第1の使用不能なメモリの元の物理アドレスの間のマッピング関係である場合、ステップ703を介して、コンピュータの中に格納されたマッピング関係の中に、その目標の物理アドレスが対応するマッピング関係が存在するかどうかを判定するプロセスは、最初に、コンピュータの中に格納されたマッピング関係に関してそれぞれメモリページ整列を実行し、その後、第1の使用不能なメモリの物理アドレスに関してメモリページ整列を実行し、さらに最後に、コンピュータの中に格納されたマッピング関係に関してメモリページ整列を実行することによって得られたマッピング関係の中に、第1の使用不能なメモリの物理アドレスに関してメモリページ整列を実行することによって得られた物理アドレスが存在するかどうかを判定することを備え得る。コンピュータの中に格納された内容が、移行が行われるべきメモリの、メモリページ整列後の物理アドレスと、第1の使用不能なメモリの、メモリページ整列後の物理アドレスの間のマッピング関係である場合、ステップ703を介して、コンピュータの中に格納されたマッピング関係の中に、その目標の物理アドレスが対応するマッピング関係が存在するかどうかを判定するプロセスは、最初に、目標の物理アドレスに関してメモリページ整列を実行し、その後、コンピュータの中に格納されたマッピング関係の中に、その目標の物理アドレスに関してメモリページ整列を実行した後に得られた物理アドレスが存在するかどうかを判定することを備え得る。ステップ703で、コンピュータの中に格納されたマッピング関係の中に、目標の物理アドレスが対応するマッピング関係が存在するかどうかを判定することは、他の手段によって実行されることも可能であり、このことを、本明細書で逐次、冗長に説明することはしない。
【００７９】
この実施形態において、ステップ703を介して、コンピュータの中に格納されたマッピング関係の中に、目標の物理アドレスが対応するマッピング関係が存在しない、すなわち、アドレス変換を実行する必要がないと判定された場合、OSは、目標の物理アドレスが属するメモリに直接にアクセスすることができ、コンピュータの中に格納されたマッピング関係の中に、目標の物理アドレスが対応するマッピング関係が存在する場合、OSは、ステップ704を介して、目標の物理アドレスの変換の後、メモリにアクセスすることができる。
【００８０】
ステップ704  -  目標の物理アドレスが対応するマッピング関係が存在する場合に、オペレーティングシステムによる、目標の物理アドレスが対応するマッピング関係に従って第1の使用不能なメモリの中のデータにアクセスすること。
【００８１】
この実施形態において、ステップ703を介して、コンピュータの中に格納されたマッピング関係の中に、目標の物理アドレスが対応するマッピング関係が存在するかどうかが判定される際、コンピュータの中に格納されたマッピング関係が、残りのメモリの元の物理アドレスと第1の使用不能なメモリの元の物理アドレスの間のマッピング関係である場合、ステップ704を介して、目標の物理アドレスが対応するマッピング関係に従って第1の使用不能なメモリの中のデータにアクセスする特定のプロセスは、最初に、移行が行われるべきメモリの元の物理アドレスに関してメモリページ整列を実行して、移行が行われるべきメモリのオフセットを得ること、その後、オペレーティングシステムによる、目標の物理アドレスが対応するマッピング関係に従って、目標の物理アドレスに対応する第1の使用不能なメモリの第2の物理アドレスを得ること、およびオペレーティングシステムによる、そのオフセットと第2の物理アドレスの合計に従って、第1の使用不能なメモリの中のデータにアクセスすることを備え得る。コンピュータの中に格納されたマッピング関係が、残りのメモリの、メモリページ整列の後の物理アドレスと、第1の使用不能なメモリの、メモリページ整列の後の物理アドレスの間のマッピング関係である場合、ステップ704を介する、目標の物理アドレスが対応するマッピング関係に従って第1の使用不能なメモリの中のデータにアクセスする特定のプロセスは、最初に、OSによる、目標の物理メモリのオフセットを得ること、その後、OSによる、目標の物理アドレスが対応するマッピング関係に従って、目標の物理アドレスに対応する第1の使用不能なメモリの第2の物理アドレスを得ること、およびOSによる、そのオフセットと第2の物理アドレスの合計に従って第1の使用不能なメモリの中のデータにアクセスすることを含み得る。
【００８２】
さらに、ステップ703における、コンピュータの中に格納されたマッピング関係の中に、目標の物理アドレスが対応するマッピング関係が存在するかどうかを判定するプロセスを最適化するため、この実施形態によって提供されるメモリ移行を実施するための方法は、図8に示されるように、以下のステップをさらに含み得る。
【００８３】
ステップ705  -  目標の物理アドレスが属するメモリがユーザモードメモリであるか、またはカーネルモードメモリであるかを判定すること。
【００８４】
この実施形態において、ユーザモードメモリは、OSによって移行させられることが可能であるのに対して、カーネルモードメモリは、OSによって移行させられることが可能でないので、カーネルモードメモリは、BIOSだけによって移行させられることが可能であり、さらにカーネルモードメモリの移行がBOISによって行われた後、カーネルモードメモリに再びアクセスが行われる際、マッピング関係テーブルの中のマッピング関係を介して、移行させられたカーネルモードメモリのメモリ位置を得ることが必要であり得る一方で、OSによって移行が行われたユーザモードメモリの場合、ユーザモードメモリは、更新されたページテーブルエントリを介して直接にアクセスされ得る。したがって、ステップ703における判定プロセスを単純化するため、最初に、ステップ705を介して、目標の物理アドレスが属するメモリがユーザモードメモリであるか、またはカーネルモードメモリであるかを判定し、さらに目標の物理アドレスが属するメモリがユーザモードメモリである場合、ページテーブルエントリを介して直接にアクセスすることが可能である一方で、目標の物理アドレスが属するメモリがカーネルモードメモリである場合、ステップ703を介して、マッピング関係テーブルの中に、目標の物理アドレスがメモリページ整列を受けた後のアドレスに関するマッピング関係が存在するかどうかが再び判定される。
【００８５】
この場合、ステップ703は、目標の物理アドレスが属するメモリがカーネルモードメモリである場合に、コンピュータの中に格納されたマッピング関係の中に、目標の物理アドレスが対応するマッピング関係が存在するかどうかを判定することである。
【００８６】
この実施形態によって提供されるメモリ移行を実施するための方法は、BIOSを対応するコンピュータハードウェアと組み合わせることによって実施されることが可能であり、さらに詳細を、本明細書で逐次、冗長に説明することはしない。
【００８７】
本発明のこれらの実施形態によって提供されるメモリ移行を実施するための方法において、移行が行われるべきメモリの移行が行われる際、基本入出力システムによって、移行が行われるべきメモリの中のデータが第1の使用不能なメモリに移行させられ、さらに移行が行われるべきメモリの物理アドレスと第1の使用不能なメモリの物理アドレスの間のマッピング関係が格納されて、その結果、メモリ移行が実施される。第1の使用不能なメモリは、前もって変換されるので、第1の使用不能なメモリを初期化するプロセスは、本発明のこれらの実施形態によって提供される技術的解決策においてメモリ移行が実行される際、省かれ、このため、従来技術における問題、すなわち、メモリ移行運用プロセスが比較的複雑であることが解決される。
【００８８】
図9に示されるように、本発明の実施形態8によって提供されるメモリ移行を実施するための方法は、以下のステップを含む。
【００８９】
ステップ901からステップ902  -  移行が行われるべきメモリの移行が行われる際、基本入出力システムによる、移行が行われるべきメモリの中のデータを第1の使用不能なメモリに移行させること、および移行が行われるべきメモリの物理アドレスと第1の使用不能なメモリの物理アドレスの間のマッピング関係を格納すること。ステップ901から902の特定のプロセスは、図1のステップ101からステップ102を参照して見ることができるが、詳細を、本明細書で逐次、冗長に説明することはしない。
【００９０】
ステップ903  -  目標のノードがホットアドされる際、基本入出力システムによる、目標のノードが対応する物理アドレスを得るよう目標のノードに対してメモリアドレス指定を実行すること。
【００９１】
この実施形態において、ステップ903で目標のノードに対してメモリアドレス指定を実行することは、目標のノードが最初にホットリムーバルが行われたノードである場合に、目標のノードに対応する物理アドレスがそのままであることを可能にし、目標のノードが最初にホットリムーバルが行われたノードではない場合に、目標のノードの物理アドレスが、元の各ノードのアドレス空間の背後に位置付けられ得る。
【００９２】
ステップ904  -  基本入出力システムによる、コンピュータの中に格納されたマッピング関係の中に、目標のノードが対応する物理アドレスが存在するかどうかを調べること。
【００９３】
この実施形態において、ステップ904を介して、コンピュータの中に格納されたマッピング関係の中に、目標のノードが対応する物理アドレスが存在するかどうかを調べることは、コンピュータの中に格納されたマッピング関係の中に、目標のノードが対応する物理アドレスが存在しない場合に、目標のノードを直接にホットアドすることを可能にし、コンピュータの中に格納されたマッピング関係の中に、目標のノードが対応する物理アドレスが存在する場合に、目標のノードは、ステップ905を介してホットアドされる。
【００９４】
ステップ905  -  基本入出力システムによる、コンピュータの中に格納されたマッピング関係の中に、目標のノードが対応する物理アドレスが存在する場合に、そのマッピング関係に従って、目標のノードが対応する物理アドレスに対応する第1の使用不能なメモリの第3の物理アドレスを得ること。
【００９５】
ステップ906  -  基本入出力システムによる、第3の物理アドレスが属するメモリの中のデータを、目標のノードに対応する物理アドレスが属するメモリに移行させること。
【００９６】
ステップ907  -  基本入出力システムによる、コンピュータの中に格納されたマッピング関係から、目標のノードが対応する物理アドレスのマッピング関係を削除すること。
【００９７】
この実施形態によって提供されるメモリ移行を実施するための方法は、BIOSを対応するコンピュータハードウェアと組み合わせることによって実施されることが可能であり、さらに詳細を、本明細書で逐次、冗長に説明することはしない。
【００９８】
本発明のこれらの実施形態によって提供されるメモリ移行を実施するための方法において、移行が行われるべきメモリの移行が行われる際、基本入出力システムによって、移行が行われるべきメモリの中のデータが第1の使用不能なメモリに移行させられ、さらに移行が行われるべきメモリの物理アドレスと第1の使用不能なメモリの物理アドレスの間のマッピング関係が格納されて、その結果、メモリ移行が実施される。第1の使用不能なメモリは、前もって変換されるので、第1の使用不能なメモリを初期化するプロセスは、本発明のこれらの実施形態によって提供される技術的解決策においてメモリ移行が実行される際、省かれ、このため、従来技術における問題、すなわち、メモリ移行運用プロセスが比較的複雑であることが解決される。
【００９９】
本発明のこれらの実施形態によって提供されるメモリ移行を実施するための方法およびデバイスを当業者が実施することができるようにするために、本発明のこれらの実施形態によって提供されるメモリ移行を実施するための方法およびデバイスを特に説明する具体的な例が、以下に与えられる。
【０１００】
図10に示されるように、本発明の実施形態9によって提供されるメモリ移行を実施するための方法は、以下のステップを含む。
【０１０１】
以下において、繰り返しの誤りがOSの管理プログラムによって或るメモリの中で生じることが見出されており、さらに、このため、移行および隔離を必要としている小さい粒度のメモリの例に関して、説明が行われる。
【０１０２】
ステップ1001  -  基本入出力システムによる、コンピュータのメモリを初期化して、コンピュータの元の使用可能なメモリの一部のメモリがオペレーティングシステムの使用不能なメモリに変換されるようにすること。
【０１０３】
この実施形態において、メモリ移行運用プロセスを単純化するために、ステップ1001を介してコンピュータのメモリを初期化するプロセスが、コンピュータシステムの起動中に実行され得る。ステップ1001を介してコンピュータのメモリを初期化するプロセスは、e820マップを生成するようにメモリにアドレス指定することによって実施されることが可能であり、さらに、本明細書で逐次、冗長に説明することはしない、他の手段によって実施されることも可能である。ステップ1001でコンピュータのメモリを初期化することは、コンピュータの元の使用可能なメモリの一部のメモリをOSのために使用不能なメモリに変換することを備え得るだけでなく、OSの使用不能なメモリのサイズなどを設定することも備え得るが、制限は全く行われない。OSの使用不能なメモリのサイズを設定することは、OSの使用不能なメモリを固定サイズのメモリとして設定することであり得るだけでなく、OSの使用不能なメモリを調整可能なサイズのメモリとして設定することでもあり得る、すなわち、OSの使用不能なメモリのサイズは、システムメモリのサイズに従ってBIOSにおいて設定される。
【０１０４】
この実施形態において、OSは、メモリページ単位でメモリを管理するので、OSの使用不能なメモリのサイズは、メモリページの倍数でなければならず、さらにメモリの移行は、メモリ移行中、メモリページ単位で行われなければならない。
【０１０５】
ステップ1002  -  移行が行われるべきメモリの移行が行われる際、オペレーティングシステムによる、移行が行われるべきメモリがアイドルであるかどうかを判定すること。
【０１０６】
この実施形態において、ステップ1002を介して、移行が行われるべきメモリがアイドルであると判定された場合、システムは、直接に戻ることができ、すなわち、移行が行われるべきメモリの移行を行うことは必要なく、ステップ1002を介して、移行が行われるべきメモリが使用されていると判定された場合、移行が行われるべきメモリは、ステップ1003を介して処理され得る。
【０１０７】
ステップ1003  -  移行が行われるべきメモリが使用されている場合、オペレーティングシステムによる、オペレーティングシステムが、移行が行われるべきメモリのタイプのメモリの移行をサポートするかどうかを判定すること。
【０１０８】
この実施形態において、ステップ1003を介して、OSが、移行が行われるべきメモリのタイプのメモリの以降をサポートするかどうかが判定され、サポートしない場合、システムは、直接に戻ることが可能であり、サポートする場合、ステップ1004を介して、OSによって移行させられることが可能なメモリが得られる。
【０１０９】
ステップ1004  -  オペレーティングシステムが、移行が行われるべきメモリのタイプのメモリをサポートする場合、移行が行われるべきメモリから、オペレーティングシステムによって移行がサポートされる、オペレーティングシステムによって移行させられることが可能なメモリを得ること。
【０１１０】
この実施形態において、OSは、一部のメモリの移行を実施することができるが、ほとんどのカーネルモードメモリの移行は実施することができないので、ステップ1004においてOSによって移行させられることが可能なメモリは、ユーザモードメモリを主に備え、さらにいくつかのカーネルモードメモリを備えることも可能である。
【０１１１】
この実施形態において、ステップ1004を介して、移行が行われるべきメモリから、OSによって移行がサポートされる、OSによって移行させられることが可能なメモリを得ることは、OSが、移行が行われるべきメモリから、OSによって移行させられることが可能なメモリを直接に得ることであり得るだけでなく、OSが、最初に、移行が行われるべきメモリを特定し、次に、その特定結果に従って、移行が行われるべきメモリから、OSによって移行させられることが可能なメモリを得ることでもあり得る。また、本明細書で逐次、冗長に説明することはしない、他の手段によって、OSが、移行が行われるべきメモリから、OSによって移行させられることが可能なメモリを得ることも可能である。
【０１１２】
ステップ1005  -  オペレーティングシステムによる、オペレーティングシステムによって移行させられることが可能なメモリを参照するすべてのプロセスに対してスリープ動作を実行すること。
【０１１３】
ステップ1006  -  オペレーティングシステムによる、コンピュータの占有されていないメモリの中の第1のアイドルなメモリを割り当てること。
【０１１４】
この実施形態において、ステップ1006でコンピュータの占有されていないメモリの中の第1のアイドルなメモリを割り当てることは、コンピュータの占有されていないメモリの任意の位置に第1のアイドルなメモリを割り当てることだけでなく、コンピュータの占有されていないメモリの物理アドレスの順序に従って、第1のアイドルなメモリを順次に割り当てることでもあり得るが、詳細を、本明細書で逐次、冗長に説明することはしない。
【０１１５】
ステップ1007  -  オペレーティングシステムによる、移行させられることが可能なメモリの中のデータを第1のアイドルなメモリにコピーすること。
【０１１６】
ステップ1008  -  オペレーティングシステムによる、オペレーティングシステムによって移行させられることが可能なメモリが対応するすべてのページテーブルエントリを削除すること。
【０１１７】
ステップ1009  -  オペレーティングシステムによる、オペレーティングシステムによって移行させられることが可能なメモリを参照するすべてのプロセスのページテーブルエントリを更新して、更新されたページテーブルエントリが第1のアイドルメモリに向けられるようにすること。
【０１１８】
ステップ1010  -  オペレーティングシステムによる、スリープ動作を受けたプロセスを起動すること。
【０１１９】
ステップ1011  -  オペレーティングシステムによる、移行が行われるべきメモリの移行が成功したかどうかを判定すること。
【０１２０】
この実施形態において、ステップ1011における、移行が行われるべきメモリの移行の成功とは、移行が行われるべきメモリがシステムの他のメモリに完全にコピーされることを意味する。一部だけのメモリがコピーされた場合、このことは、移行が行われるべきメモリの移行が失敗したことを示す。ステップ1011を介して、移行が行われるべきメモリの移行が成功したと判定された場合、システムは、直接に戻り、移行が行われるべきメモリの移行が失敗した場合、ステップ1012を介して、コンピュータシステムの制御権は、OSからBIOSに委任される。
【０１２１】
ステップ1012  -  オペレーティングシステムをスリープさせ、さらに制御権をBIOSに移すこと。
【０１２２】
ステップ1013  -  基本入出力システムによる、使用不能なメモリから第1の使用不能なメモリを得ること。
【０１２３】
この実施形態において、ステップ1013を介して、OSの使用不能なメモリから第1の使用不能なメモリを得ることは、BIOSが、OSの使用不能なメモリの物理アドレスの順序に従って、OSの使用不能なメモリから、移行が行われるべきメモリとしてサイズ設定された第1の使用不能なメモリを順次に得ることであり得る。
【０１２４】
この実施形態において、第1の使用不能なメモリは、ステップ1013を介してOSの使用不能なメモリから得られ、得ることに失敗した場合、すなわち、OSの使用不能なメモリが使い果たされている場合、BIOSは、メモリの移行が失敗したことをユーザに示し、得ることに成功した場合、ステップ1014を介して、移行が行われるべきメモリの中のデータが第1の使用不能なメモリに移行させられる。
【０１２５】
ステップ1014  -  基本入出力システムによる、移行が行われるべきメモリの中のデータを第1の使用不能なメモリに移行させること。
【０１２６】
この実施形態において、ステップ1014を介して、移行が行われるべきメモリの中のデータを第1の使用不能なメモリに移行させるプロセスは、移行が行われるべきメモリの中のデータを第1の使用不能なメモリなどにコピーすることであり得るが、制限は全く行われない。
【０１２７】
ステップ1015  -  基本入出力システムによる、移行が行われるべきメモリの物理アドレスに関してメモリページ整列を実行して、第1の物理アドレスを得ること。
【０１２８】
この実施形態において、ステップ1015における移行が行われるべきメモリの物理アドレスは、コンピュータのストレージデバイスの中に記録されることが可能であり、さらにコンピュータの他の位置に記録されることも可能であるが、詳細を、本明細書で逐次、冗長に説明することはしない。
【０１２９】
ステップ1016  -  基本入出力システムによる、第1の物理アドレスと第1の使用不能なメモリの物理アドレスの間のマッピング関係を格納すること。
【０１３０】
この実施形態において、OSが、残りのメモリの中のデータをその後に使用することを円滑にするために、最初に、ステップ1015を介して、移行が行われるべきメモリの物理アドレスを整列させ、次に、ステップ1016を介して、整列された残りのメモリの物理アドレスと第1の使用不能なメモリの物理アドレスの間のマッピング関係を格納することが可能である。
【０１３１】
ステップ1017  -  移行が行われるべきメモリの移行が終了すると、基本入出力システムによる、システムの制御権をオペレーティングシステムに再び移すこと。
【０１３２】
ステップ1018  -  オペレーティングシステムによる、目標の物理アドレスにアクセスしている間、コンピュータの中に格納されたマッピング関係の中に、目標の物理アドレスが対応するマッピング関係が存在するかどうかを判定すること。
【０１３３】
この実施形態において、ステップ1018を介して、コンピュータの中に格納されたマッピング関係の中に、目標の物理アドレスが対応するマッピング関係が存在しないと判定された場合、システムは、アドレス変換を実行することなしに、目標の物理アドレスが属するメモリの内容に直接にアクセスすることが可能であり、存在する場合、ステップ1019を介して、目標の物理アドレスのオフセットが得られることが可能である。
【０１３４】
ステップ1019  -  オペレーティングシステムによる、目標の物理アドレスのオフセットを得ること。
【０１３５】
ステップ1020  -  オペレーティングシステムによる、目標の物理アドレスが対応するマッピング関係に従って、目標の物理アドレスが対応する第1の使用不能なメモリの第2の物理アドレスを得ること。
【０１３６】
ステップ1021  -  オペレーティングシステムによる、オフセットと第2の物理アドレスの合計に従って、第1の使用不能なメモリの中のデータにアクセスすること。
【０１３７】
この実施形態において、移行が行われるべきメモリは、OSの管理プログラムによって送られたコマンドの中の物理アドレスが属する、移行が行われるべきメモリであることが可能であり、さらにユーザによって手動で入力された仮想アドレスに従って得られる、移行が行われるべき対応するメモリであることも可能である。移行が行われるべきメモリは、1メモリページを単位とすることが普通である。
【０１３８】
この実施形態によって提供されるメモリ移行を実施するための方法は、BIOSを対応するコンピュータハードウェアと組み合わせることによって実施されることが可能であり、さらに詳細を、本明細書で逐次、冗長に説明することはしない。
【０１３９】
本発明のこれらの実施形態によって提供されるメモリ移行を実施するための方法において、移行が行われるべきメモリの移行が行われる際、基本入出力システムによって、移行が行われるべきメモリの中のデータが第1の使用不能なメモリに移行させられ、さらに移行が行われるべきメモリの物理アドレスと第1の使用不能なメモリの物理アドレスの間のマッピング関係が格納されて、その結果、メモリ移行が実施される。第1の使用不能なメモリは、前もって変換されるので、第1の使用不能なメモリを初期化するプロセスは、本発明のこれらの実施形態によって提供される技術的解決策においてメモリ移行が実行される際、省かれ、このため、従来技術における問題、すなわち、メモリ移行運用プロセスが比較的複雑であることが解決される。
【０１４０】
図11に示されるように、本発明の実施形態10によって提供されるメモリ移行を実施するための方法は、以下のステップを含む。
【０１４１】
以下において、移行が行われるべきメモリがNUMAアーキテクチャのものである事例においてシステムの電力消費量を減らすために、ノードメモリがホットリムーバルを必要とする例に関して、説明が行われる。
【０１４２】
ステップ1101  -  基本入出力システムによる、コンピュータのメモリを初期化して、オペレーティングシステムの元の使用可能なメモリの一部のメモリがオペレーティングシステムの使用不能なメモリに変換されるようにすること。
【０１４３】
この実施形態において、図12に示されるように、4つのノードを有するNUMAアーキテクチャが、説明のために例とされる。NUMAアーキテクチャにおける各ノードは、中央プロセッサと、入出力デバイスと、メモリとを備える。ノード0が、通常、システム全体のOSを実行するメインノードとして設定されるので、ノード0には、ホットリムーバルが行われ得ない。ステップ1101を介して、元の使用可能なメモリの一部のメモリをオペレーティングシステムの使用不能なメモリに変換することは、ノード1におけるメモリを、OSの使用不能なメモリとして設定することが可能である。他のノードが、ノード1に移行させられたデータを検索することを容易にするために、ノード1のメモリが、ノード2およびノード3におけるOSによって移行させられることが可能でないメモリにそれぞれが対応する、2つの部分に分割され得る。
【０１４４】
ステップ1102  -  オペレーティングシステムによる、移行が行われるべきメモリの中の、オペレーティングシステムによって移行させられることが可能なメモリの中のデータを、コンピュータの第1のアイドルなメモリに移行させること。
【０１４５】
この実施形態において、ステップ1102における第1のアイドルなメモリは、ホットリムーバルが行われたノードを除いた、比較的負荷の軽い他の任意のノードであり得る。ステップ1102における、OSによって移行させられることが可能なメモリの中のデータを第1のアイドルなメモリに移行させるステップは、図5におけるステップ501を参照して見ることができるが、詳細を、本明細書で逐次、冗長に説明することはしない。
【０１４６】
ステップ1103  -  BIOSによる、残りのメモリの中のデータを第2の使用不能なメモリに移行させること。ステップ1103の特定のプロセスは、図5のステップ502を参照して見ることができるが、詳細を、本明細書で逐次、冗長に説明することはしない。
【０１４７】
ステップ1104  -  残りのメモリの物理アドレスと第2の使用不能なメモリの物理アドレスの間のマッピング関係を格納すること。ステップ1104の特定のプロセスは、図5のステップ503を参照して見ることができるが、詳細を、本明細書で逐次、冗長に説明することはしない。
【０１４８】
ステップ1105  -  移行が行われるべきメモリの移行が完了すると、移行が行われるべきメモリが属するノードにおける他のデバイスにホットリムーバルを行うこと。
【０１４９】
さらに、この実施形態によって提供されるメモリ移行を実施するための方法は、図13に示されるように、ホットアドを行うことも可能であり、さらに以下のステップを含む。
【０１５０】
ステップ1301  -  目標のノードがホットアドされると、基本入出力システムによる、目標のノードが対応する物理アドレスを得るよう目標のノードに対してメモリアドレス指定を実行すること。
【０１５１】
この実施形態において、ステップ1301で目標のノードに対してメモリアドレス指定を実行することは、目標のノードが最初にホットリムーバルが行われたノードである場合に、目標のノードに対応する物理アドレスがそのままであることを可能にし、目標のノードが最初にホットリムーバルが行われたノードではない場合に、目標のノードの物理アドレスが、元の各ノードのアドレス空間の背後に位置付けられ得る。
【０１５２】
ステップ1302  -  基本入出力システムによる、コンピュータの中に格納されたマッピング関係の中に、目標のノードが対応する物理アドレスが存在するかどうかを調べること。
【０１５３】
この実施形態において、ステップ1302を介して、コンピュータの中に格納されたマッピング関係の中に、目標のノードが対応する物理アドレスが存在するかどうかを調べることは、コンピュータの中に格納されたマッピング関係の中に、目標のノードが対応する物理アドレスが存在しない場合に、目標のノードを直接にホットアドすることを可能にし、コンピュータの中に格納されたマッピング関係の中に、目標のノードが対応する物理アドレスが存在する場合に、ステップ905を介して、目標のノードがホットアドされる。
【０１５４】
ステップ1303  -  基本入出力システムによる、コンピュータの中に格納されたマッピング関係の中に、目標のノードが対応する物理アドレスが存在する場合に、そのマッピング関係に従って、目標のノードが対応する物理アドレスに対応する第1の使用不能なメモリの第3の物理アドレスを得ること。
【０１５５】
ステップ1304  -  基本入出力システムによる、第3の物理アドレスが属するメモリの中のデータを、目標のノードに対応する物理アドレスが属するメモリに移行させること。
【０１５６】
ステップ1305  -  基本入出力システムによる、コンピュータの中に格納されたマッピング関係から、目標のノードが対応する物理アドレスのマッピング関係を削除すること。
【０１５７】
さらに、この実施形態によって提供されるメモリ移行を実施するための方法は、図14に示されるように、相互ノードアクセスを行うことも可能であり、さらに以下のステップを含む。
【０１５８】
以下において、ノード0における中央プロセッサがノード2におけるメモリにアクセスすることの例に関して説明が行われるが、他の相互ノードアクセスプロセスも以下のプロセスと同様であり、このため、本明細書で逐次、冗長に説明することはしない。
【０１５９】
ステップ1401  -  ノード0による、ノード2にアクセスすることを要求するアドレス信号をノード2に送信すること。
【０１６０】
ステップ1402  -  このアドレス信号に従ってノード2にホットリムーバルが行われているかどうかを判定すること。
【０１６１】
この実施形態において、ステップ1402を介して、ノード2にホットリムーバルが行われていないと判定された場合、ノード0が、ノード2におけるメモリに直接にアクセスすることが可能であり、ノード2にホットリムーバルが行われていると判定された場合、ステップ1403を介して、コンピュータの中に格納されたマッピング関係が得られる。
【０１６２】
ステップ1403  -  コンピュータの中に格納されたマッピング関係を得ること。
【０１６３】
ステップ1404  -  コンピュータの中に格納されたマッピング関係に従って、アドレス信号のアドレス変換の後にノード2におけるメモリにアクセスすること。
【０１６４】
この実施形態において、現在のノードの中央プロセッサが現在のノードのメモリにアクセスすることになる場合、システムは、直接にアクセスすることができるが、このことの冗長な説明をここで行うことはしない。
【０１６５】
この実施形態によって提供されるメモリ移行を実施するための方法は、BIOSを対応するコンピュータハードウェアと組み合わせることによって実施されることが可能であり、さらに詳細を、本明細書で逐次、冗長に説明することはしない。
【０１６６】
本発明のこれらの実施形態によって提供されるメモリ移行を実施するための方法において、移行が行われるべきメモリの移行が行われる際、基本入出力システムによって、移行が行われるべきメモリの中のデータが第1の使用不能なメモリに移行させられ、さらに移行が行われるべきメモリの物理アドレスと第1の使用不能なメモリの物理アドレスの間のマッピング関係が格納されて、その結果、メモリ移行が実施される。第1の使用不能なメモリは、前もって変換されるので、第1の使用不能なメモリを初期化するプロセスは、本発明のこれらの実施形態によって提供される技術的解決策においてメモリ移行が実行される際、省かれ、このため、従来技術における問題、すなわち、メモリ移行運用プロセスが比較的複雑であることが解決される。
【０１６７】
図15に示されるように、本発明の実施形態11によって提供されるメモリ移行を実施するためのデバイスは、以下を備える。
【０１６８】
移行が行われるべきメモリの移行が行われる際、コンピュータの基本入出力システムによって、移行が行われるべきメモリの中のデータをコンピュータのオペレーティングシステムの第1の使用不能なメモリに移行させるように構成された第1の移行モジュール1501であって、第1の使用不能なメモリは、オペレーティングシステムのために確保されたメモリセットである、オペレーティングシステムの元の使用可能なメモリから前もって変換されており、さらにオペレーティングシステムによって変更不能であるとともに、オペレーティングシステムがアクセスできない、第1の移行モジュール1501。
【０１６９】
この実施形態において、第1の移行モジュール1501を介して、移行が行われるべきメモリの中のデータを、コンピュータのOSの第1の使用不能なメモリに移行させるプロセスは、移行が行われるべきメモリの中のデータを第1の使用不能なメモリなどにコピーすることであり得るが、制限は全く行われない。第1の使用不能なメモリは、元の使用可能なメモリから前もって変換され得る。BIOSが、システム起動中にe820マップを生成するようにメモリにアドレス指定している間、メモリに一様にアドレス指定して、メモリの一部分をOSのために使用可能にするとともに、メモリの別の部分をOSのために使用不能にする。
【０１７０】
この実施形態において、コンピュータの元の使用不能なメモリは、通常、コンピュータの元のプロセスによって占有されているので、第1の移行モジュール1501における第1の使用不能なメモリは、元の使用可能なメモリから前もって変換されたメモリの一部分であることが可能であり、さらに本明細書で逐次、冗長に説明することはしない、他の手段でOSによって新たに構成されたメモリの一部分であることも可能である。すなわち、移行が行われるべきメモリの中のデータを第1の使用不能なメモリに移行させることは、移行が行われるべきメモリの中のデータを、元の使用可能なメモリから前もって変換されたメモリの中の任意の位置に移行させることであることが可能であり、さらに残りのメモリの中のデータを、元の使用可能なメモリから前もって変換されたメモリに、元の使用可能なメモリから前もって変換されたメモリの物理アドレスの順序に従って、順次に移行させることであることも可能であるが、詳細を、本明細書で逐次、冗長に説明することはしない。
【０１７１】
この実施形態において、第1の移行モジュール1501における移行が行われるべきメモリは、繰り返しの誤りがOSの管理プログラムによって或るメモリの中で生じることが見出されており、さらに、このため、移行および隔離を必要としている小さい粒度のメモリであることが可能であり、さらにNUMAアーキテクチャにおいてシステムの電力消費量を低減するためにホットリムーバルを必要とするノードメモリであることも可能である。第1の移行モジュール1501における移行が行われるべきメモリは、他の状況下で移行が行われるべきメモリであることも可能であり、このことを、本明細書で逐次、冗長に説明することはしない。
【０１７２】
格納モジュール1502が、基本入出力システムによって、移行が行われるべきメモリの物理アドレスと第1の使用不能なメモリの物理アドレスの間のマッピング関係を格納するように構成されている。
【０１７３】
この実施形態において、格納モジュール1502における移行が行われるべきメモリの物理アドレスと第1の使用不能なメモリの物理アドレスの間のマッピング関係は、移行が行われるべきメモリの、メモリページ整列後の物理アドレスと、第1の使用不能なメモリの、メモリページ整列後の物理アドレスの間のマッピング関係などであり得るが、本明細書で逐次、冗長に説明することはしない。このマッピング関係は、コンピュータの任意の位置に格納されることが可能であり、さらにマッピング関係のために別個に提供されるフラッシュメモリなどのストレージデバイスの中に格納されることも可能である。また、本明細書で逐次、冗長に説明することはしない、他の手段によってこのマッピング関係を格納することも可能である。
【０１７４】
さらに、図16に示されるように、この実施形態におけるメモリ移行を実施するためのデバイスは、以下を備えることも可能である。
【０１７５】
初期化モジュール1500が、基本入出力システムによって、コンピュータのメモリを初期化して、コンピュータの元の使用可能なメモリの一部のメモリが、オペレーティングシステムの使用不能なメモリに変換されるようにするように構成されている。
【０１７６】
この実施形態において、メモリ移行運用プロセスを単純化するために、初期化モジュール1500を介してコンピュータのメモリを初期化するプロセスが、コンピュータシステムの起動中に実行され得る。初期化モジュール1500を介してコンピュータのメモリを初期化するプロセスは、e820マップを生成するようにメモリにアドレス指定することによって実施されることが可能であり、さらに、本明細書で逐次、冗長に説明することはしない、他の手段によって実施されることも可能である。初期化モジュール1500においてコンピュータのメモリを初期化することは、コンピュータの元の使用可能なメモリの一部のメモリをOSのために使用不能なメモリに変換することを備え得るだけでなく、OSの使用不能なメモリのサイズなどを設定することも備え得るが、制限は全く行われない。OSの使用不能なメモリのサイズを設定することは、OSの使用不能なメモリを固定サイズのメモリとして設定することであり得るだけでなく、OSの使用不能なメモリを調整可能なサイズのメモリとして設定することでもあり得る、すなわち、OSの使用不能なメモリのサイズは、システムメモリのサイズに従ってBIOSにおいて設定される。
【０１７７】
この事例において、図17に示されるように、この実施形態における第1の移行モジュール1501は、以下を備え得る。
【０１７８】
第1のメモリ獲得サブモジュール15011が、基本入出力システムによって、オペレーティングシステムの使用不能なメモリから第1の使用不能なメモリを獲得するように構成されている。
【０１７９】
この実施形態において、第1のメモリ獲得サブモジュール15011を介してOSの使用不能なメモリから第1の使用不能なメモリを得ることは、BIOSが、OSの使用不能なメモリの物理アドレスの順序に従って、OSの使用不能なメモリから、移行が行われるべきメモリとしてサイズ設定された第1の使用不能なメモリを順次に得ることであり得る。
【０１８０】
移行サブモジュール15012が、基本入出力システムによって、移行が行われるべきメモリの中のデータを第1の使用不能なメモリに移行させるように構成されている。
【０１８１】
この実施形態において、移行サブモジュール15012を介して移行が行われるべきメモリの中のデータを第1の使用不能なメモリに移行させるプロセスは、移行が行われるべきメモリの中のデータを第1の使用不能なメモリにコピーすることであり得るが、制限は全く行われない。
【０１８２】
さらに、図18に示されるように、この実施形態における格納モジュール1502は、以下を備え得る。
【０１８３】
メモリページ整列サブモジュール15021が、基本入出力システムによって、移行が行われるべきメモリの物理アドレスに関するメモリページ整列を実行して、第1の物理アドレスを得るように構成されている。
【０１８４】
格納サブモジュール15022が、基本入出力システムによって、第1の物理アドレスと第1の使用不能なメモリの物理アドレスの間のマッピング関係を格納するように構成されている。
【０１８５】
この実施形態において、OSが、残りのメモリの中のデータをその後に使用することを円滑にするために、最初に、メモリページ整列サブモジュール15021を介して、移行が行われるべきメモリの物理アドレスを整列させ、次に、格納サブモジュール15022を介して、整列された残りのメモリの物理アドレスと第1の使用不能なメモリの物理アドレスの間のマッピング関係を格納することが可能である。
【０１８６】
さらに、図19に示されるように、この実施形態においてメモリ移行を実施するためのデバイスは、以下を備えることも可能である。
【０１８７】
第2の移行モジュール1503が、コンピュータのオペレーティングシステムによって、移行が行われるべきメモリの中の、オペレーティングシステムによって移行させられることが可能なメモリの中のデータを、コンピュータの第1のアイドルなメモリに移行させるように構成されている。
【０１８８】
この実施形態において、OSは、一部のメモリの移行を実施することができるが、ほとんどのカーネルモードメモリの移行は実施することができないので、第2の移行モジュール1503においてOSによって移行させられることが可能なメモリは、多量のユーザモードメモリおよび/またはいくつかのカーネルモードメモリを備え得る。
【０１８９】
この実施形態において、第2の移行モジュール1503における第1のアイドルなメモリは、コンピュータによって現在、占有されているメモリの一部分であることが可能であり、すなわち、OSによって移行させられることが可能なメモリの中のデータを第1のアイドルなメモリに移行させることは、OSによって移行させられることが可能なメモリの中のデータを、コンピュータによって現在、占有されていないメモリの中の任意の位置に移行させることであることが可能であり、さらにOSによって移行させられることが可能なメモリの中のデータを、コンピュータによって現在、占有されていないメモリの物理アドレスの順序に従って、コンピュータによって現在、占有されていないメモリに順次に移行させることであることも可能であるが、詳細を、本明細書で逐次、冗長に説明することはしない。
【０１９０】
この実施形態において、OSによって移行させられることが可能なメモリの中のデータを第2の移行モジュール1503における第1のアイドルなメモリに移行させることは、第1に、OSによる、OSによって移行させられることが可能なメモリを参照するすべてのプロセスに対してスリープ動作を実行すること、第2に、コンピュータによって現在、占有されていないメモリの中のメモリの一部分、すなわち、第1のアイドルなメモリを割り当て、さらにOSによって移行させられることが可能なメモリの中のデータを第1のアイドルなメモリに移行させ、その後、OSによる、OSによって移行させられることが可能なメモリに対応するページテーブルエントリを削除し、さらにOSによって移行させられることが可能なメモリを参照するすべてのプロセスの中のページテーブルエントリを更新して、それらのエントリが第1のアイドルなメモリに向けられるようにし、さらに最後に、OSによる、スリープ状態にあるプロセスを起動することを備え得る。第2の移行モジュール1503は、OSによって移行させられることが可能なメモリの中のデータを、他の手段によって第1のアイドルなメモリに移行させることも可能であるが、制限は全く行われない。コンピュータによって現在、占有されていないメモリの中のOSによって割り当てられたメモリは、固定サイズの事前設定されたメモリ、またはOSによって移行させられることが可能なメモリのサイズに従って割り当てられるメモリ、または他の手段によって割り当てられるメモリであることが可能であり、このことを、本明細書で逐次、冗長に説明することはしない。
【０１９１】
この実施形態において、第2の移行モジュール1503を介して、OSによって移行させられることが可能なメモリの中のデータを第1のアイドルなメモリに移行させることは、OSによって移行させられることが可能なメモリの中のデータを第1のアイドルなメモリに直接に移行させることであり得るだけでなく、最初に、OSによって移行させられることが可能なメモリが、現在、使用中であるかどうかのクエリを行い、さらに使用中である場合、OSによって移行させられることが可能なメモリの中のデータを第1のアイドルなメモリに移行させることでもあり得る。また、他の手段によって、OSによって移行させられることが可能なメモリの中のデータを第1のアイドルなメモリに移行させることも可能であり、このことを、本明細書で逐次、冗長に説明することはしない。
【０１９２】
この事例において、第1の移行モジュール1501は、コンピュータの基本入出力システムによって、残りのメモリの中のデータを第2の使用不能なメモリに移行させるように構成され、残りのメモリは、OSによって移行させられることが可能なメモリを除いた、移行が行われるべきメモリの中のメモリであり得る。
【０１９３】
図20に示されるように、第2の移行モジュール1503は、以下を備える。
【０１９４】
第2のメモリ獲得サブモジュール15031が、オペレーティングシステムによって、移行が行われるべきメモリから、オペレーティングシステムによって移行がサポートされる、オペレーティングシステムよって移行させられることが可能なメモリを得るように構成されている。
【０１９５】
この実施形態において、OSは、一部のメモリの移行を実施することができるが、ほとんどのカーネルモードメモリの移行は実施することができないので、第2のメモリ獲得サブモジュール15031においてOSによって移行させられることが可能なメモリは、ユーザモードメモリを主に備え、さらにいくつかのカーネルモードメモリを備えることも可能である。
【０１９６】
この実施形態において、第2のメモリ獲得サブモジュール15031を介して、移行が行われるべきメモリから、OSによって移行がサポートされる、OSによって移行させられることが可能なメモリを得ることは、OSが、移行が行われるべきメモリから、OSによって移行させられることが可能なメモリを直接に得ることであり得るだけでなく、OSが、最初に、移行が行われるべきメモリを特定し、次に、その特定結果に従って、移行が行われるべきメモリから、OSによって移行させられることが可能なメモリを得ることでもあり得る。また、本明細書で逐次、冗長に説明することはしない、他の手段によって、OSが、移行が行われるべきメモリから、OSによって移行させられることが可能なメモリを得ることも可能である。
【０１９７】
スリープ動作サブモジュール15032が、オペレーティングシステムによって、オペレーティングシステムによって移行させられることが可能なメモリを参照するすべてのプロセスに対してスリープ動作を実行するように構成されている。
【０１９８】
メモリ割り当てサブモジュール15033が、オペレーティングシステムによって、コンピュータの占有されていないメモリの中の第1のアイドルなメモリを割り当てるように構成されている。
【０１９９】
この実施形態において、メモリ割り当てサブモジュール15033を介して、コンピュータの占有されていないメモリの中の第1のアイドルなメモリを割り当てることは、コンピュータの占有されていないメモリの任意の位置に第1のアイドルなメモリを割り当てることだけでなく、コンピュータの占有されていないメモリの物理アドレスの順序に従って、第1のアイドルなメモリを順次に割り当てることでもあり得るが、詳細を、本明細書で逐次、冗長に説明することはしない。
【０２００】
メモリコピーサブモジュール15034が、オペレーティングシステムによって、オペレーティングシステムによって移行させられることが可能なメモリの中のデータを第1のアイドルなメモリにコピーするように構成されている。
【０２０１】
ページテーブルエントリ削除サブモジュール15035が、オペレーティングシステムによって、オペレーティングシステムによって移行させられることが可能なメモリが対応するすべてのページテーブルエントリを削除するように構成されている。
【０２０２】
ページテーブルエントリ更新サブモジュール15036が、オペレーティングシステムによって、オペレーティングシステムによって移行させられることが可能なメモリを参照するすべてのプロセスのページテーブルエントリを更新して、更新されたページテーブルエントリが第1のアイドルメモリに向けられるようにするように構成されている。
【０２０３】
起動サブモジュール15037が、オペレーティングシステムによって、スリープ動作を受けたプロセスを起動するように構成されている。
【０２０４】
さらに、図21に示されるように、この実施形態におけるメモリ移行を実施するためのデバイスは、以下を備えることも可能である。
【０２０５】
制御モジュール1504が、オペレーティングシステムが目標の物理アドレスにアクセスすると、コンピュータの中に格納されたマッピング関係の中に、目標の物理アドレスが対応するマッピング関係が存在するかどうかを判定するように構成されている。
【０２０６】
この実施形態において、格納モジュール1502を介して、移行が行われるべきメモリの物理アドレスと第1の使用不能なメモリの物理アドレスの間のマッピング関係が格納される際、コンピュータの中に格納された内容が、移行が行われるべきメモリの元の物理アドレスと第1の使用不能なメモリの元の物理アドレスの間のマッピング関係である場合、制御モジュール1504を介して、コンピュータの中に格納されたマッピング関係の中に、その目標の物理アドレスが対応するマッピング関係が存在するかどうかを判定するプロセスは、最初に、コンピュータの中に格納されたマッピング関係に関してそれぞれメモリページ整列を実行し、その後、第1の使用不能なメモリの物理アドレスに関してメモリページ整列を実行し、さらに最後に、コンピュータの中に格納されたマッピング関係に関してメモリページ整列を実行することによって得られたマッピング関係の中に、第1の使用不能なメモリの物理アドレスに関してメモリページ整列を実行することによって得られた物理アドレスが存在するかどうかを判定することを備え得る。コンピュータの中に格納された内容が、移行が行われるべきメモリの、メモリページ整列後の物理アドレスと、第1の使用不能なメモリの、メモリページ整列後の物理アドレスの間のマッピング関係である場合、制御モジュール1504を介して、コンピュータの中に格納されたマッピング関係の中に、その目標の物理アドレスが対応するマッピング関係が存在するかどうかを判定するプロセスは、最初に、目標の物理アドレスに関してメモリページ整列を実行し、その後、コンピュータの中に格納されたマッピング関係の中に、その目標の物理アドレスに関してメモリページ整列を実行した後に得られた物理アドレスが存在するかどうかを判定することを備え得る。制御モジュール1504は、本明細書で逐次、冗長に説明することはしない、他の手段によって、コンピュータの中に格納されたマッピング関係の中に、目標の物理アドレスが対応するマッピング関係が存在するかどうかを判定することも可能である。
【０２０７】
この実施形態において、制御モジュール1504を介して、コンピュータの中に格納されたマッピング関係の中に、目標の物理アドレスが対応するマッピング関係が存在しない、すなわち、アドレス変換を実行する必要がないと判定された場合、OSは、目標の物理アドレスが属するメモリに直接にアクセスすることができ、コンピュータの中に格納されたマッピング関係の中に、目標の物理アドレスが対応するマッピング関係が存在する場合、OSは、アクセスモジュール1505を介して、目標の物理アドレスの変換の後、メモリにアクセスすることができる。
【０２０８】
アクセスモジュール1505は、目標の物理アドレスが対応するマッピング関係が存在する場合に、オペレーティングシステムによって、目標の物理アドレスが対応するマッピング関係に従って第1の使用不能なメモリの中のデータにアクセスするように構成されている。
【０２０９】
この実施形態において、制御モジュール1504を介して、コンピュータの中に格納されたマッピング関係の中に、目標の物理アドレスが対応するマッピング関係が存在するかどうかが判定される際、コンピュータの中に格納されたマッピング関係が、残りのメモリの元の物理アドレスと第1の使用不能なメモリの元の物理アドレスの間のマッピング関係である場合、アクセスモジュール1505を介して、目標の物理アドレスが対応するマッピング関係に従って第1の使用不能なメモリの中のデータにアクセスする特定のプロセスは、最初に、移行が行われるべきメモリの元の物理アドレスに関してメモリページ整列を実行して、移行が行われるべきメモリのオフセットを得ること、その後、オペレーティングシステムによる、目標の物理アドレスが対応するマッピング関係に従って、目標の物理アドレスに対応する第1の使用不能なメモリの第2の物理アドレスを得ること、およびオペレーティングシステムによる、そのオフセットと第2の物理アドレスの合計に従って、第1の使用不能なメモリの中のデータにアクセスすることを備え得る。コンピュータの中に格納されたマッピング関係が、残りのメモリの、メモリページ整列の後の物理アドレスと、第1の使用不能なメモリの、メモリページ整列の後の物理アドレスの間のマッピング関係である場合、アクセスモジュール1505を介する、目標の物理アドレスが対応するマッピング関係に従って第1の使用不能なメモリの中のデータにアクセスする特定のプロセスは、最初に、OSによる、目標の物理メモリのオフセットを得ること、その後、OSによる、目標の物理アドレスが対応するマッピング関係に従って、目標の物理アドレスに対応する第1の使用不能なメモリの第2の物理アドレスを得ること、およびOSによる、そのオフセットと第2の物理アドレスの合計に従って第1の使用不能なメモリの中のデータにアクセスすることを備え得る。
【０２１０】
この事例において、図22に示されるように、メモリ移行を実施するためのデバイスは、以下を備えることも可能である。
【０２１１】
メモリ判定モジュール1506が、目標の物理アドレスが属するメモリがユーザモードメモリであるか、またはカーネルモードメモリであるかを判定するように構成されている。
【０２１２】
この実施形態において、ユーザモードメモリは、OSによって移行させられることが可能であるのに対して、カーネルモードメモリは、OSによって移行させられることが可能でないので、カーネルモードメモリは、BIOSだけによって移行させられることが可能であり、さらにカーネルモードメモリの移行がBOISによって行われた後、カーネルモードメモリに再びアクセスが行われる際、マッピング関係テーブルの中のマッピング関係を介して、移行させられたカーネルモードメモリのメモリ位置を得ることが必要であり得る一方で、OSによって移行が行われたユーザモードメモリの場合、ユーザモードメモリは、更新されたページテーブルエントリを介して直接にアクセスされ得る。したがって、制御モジュール1504における判定プロセスを単純化するため、最初に、メモリ判定モジュール1506を介して、目標の物理アドレスが属するメモリがユーザモードメモリであるか、またはカーネルモードメモリであるかを判定し、さらに目標の物理アドレスが属するメモリがユーザモードメモリである場合、ページテーブルエントリを介して直接にアクセスすることが可能である一方で、目標の物理アドレスが属するメモリがカーネルモードメモリである場合、メモリ判定モジュール1506を介して、マッピング関係テーブルの中に、目標の物理アドレスがメモリページ整列を受けた後のアドレスに関するマッピング関係が存在するかどうかが再び判定される。
【０２１３】
制御モジュール1504は、目標の物理アドレスが属するメモリがカーネルモードメモリである場合に、コンピュータの中に格納されたマッピング関係の中に、目標の物理アドレスが対応するマッピング関係が存在するかどうかを判定するように構成されている。
【０２１４】
この事例において、図23に示されるように、アクセスモジュール1505は、以下を備え得る。
【０２１５】
オフセット獲得サブモジュール15051が、オペレーティングシステムによって、目標の物理アドレスのオフセットを得るように構成されている。
【０２１６】
第2の物理アドレス獲得サブモジュール15052が、オペレーティングシステムによって、目標の物理アドレスが対応するマッピング関係に従って、目標の物理アドレスが対応する第1の使用不能なメモリの第2の物理アドレスを得るように構成されている。
【０２１７】
アクセスサブモジュール15053が、オペレーティングシステムによって、そのオフセットと第2の物理アドレスの合計に従って、第1の使用不能なメモリの中のデータにアクセスするように構成されている。
【０２１８】
さらに、図24に示されるように、この実施形態におけるメモリ移行を実施するためのデバイスは、以下をさらに備え得る。
【０２１９】
アドレス獲得モジュール1507が、目標のノードがホットアドされる際、基本入出力システムによって、目標のノードが対応する物理アドレスを得るよう目標のノードに対してメモリアドレス指定を実行するように構成されている。
【０２２０】
この実施形態において、アドレス獲得モジュール1507を介して目標のノードに対してメモリアドレス指定を実行することは、目標のノードが最初にホットリムーバルが行われたノードである場合に、目標のノードに対応する物理アドレスがそのままであることを可能にし、目標のノードが最初にホットリムーバルが行われたノードではない場合に、目標のノードに対応する物理アドレスが、元の各ノードのアドレス空間の背後に位置付けられ得る。
【０２２１】
アドレス検査モジュール1508が、基本入出力システムによって、コンピュータの中に格納されたマッピング関係の中に、目標のノードが対応する物理アドレスが存在するかどうかを調べるように構成されている。
【０２２２】
この実施形態において、アドレス検査モジュール1508を介して、コンピュータの中に格納されたマッピング関係の中に、目標のノードが対応する物理アドレスが存在するかどうかを調べることは、コンピュータの中に格納されたマッピング関係の中に、目標のノードが対応する物理アドレスが存在しない場合に、目標のノードを直接にホットアドすることを可能にし、コンピュータの中に格納されたマッピング関係の中に、目標のノードが対応する物理アドレスが存在する場合に、目標のノードは、アドレス検査モジュール1508を介してホットアドされる。
【０２２３】
第3の物理アドレス獲得モジュール1509が、基本入出力システムによって、コンピュータの中に格納されたマッピング関係の中に、目標のノードが対応する物理アドレスが存在する場合に、そのマッピング関係に従って、目標のノードが対応する物理アドレスに対応する第1の使用不能なメモリの第3の物理アドレスを得るように構成されている。
【０２２４】
第3の移行モジュール1510が、基本入出力システムによって、第3の物理アドレスが属するメモリの中のデータを、目標のノードに対応する物理アドレスが属するメモリに移行させるように構成されている。
【０２２５】
マッピング関係削除モジュール1511が、基本入出力システムによって、目標のノードが対応する物理アドレスのマッピング関係を、コンピュータに格納されたマッピング関係から削除するように構成されている。
【０２２６】
この実施形態によって提供されるメモリ移行を実施するためのデバイスは、BIOSを対応するコンピュータハードウェアと組み合わせることによって実施されることが可能であり、さらに詳細を、本明細書で逐次、冗長に説明することはしない。
【０２２７】
本発明のこれらの実施形態によって提供されるメモリ移行を実施するための方法において、移行が行われるべきメモリの移行が行われる際、基本入出力システムによって、移行が行われるべきメモリの中のデータが第1の使用不能なメモリに移行させられ、さらに移行が行われるべきメモリの物理アドレスと第1の使用不能なメモリの物理アドレスの間のマッピング関係が格納されて、その結果、メモリ移行が実施される。第1の使用不能なメモリは、前もって変換されるので、第1の使用不能なメモリを初期化するプロセスは、本発明のこれらの実施形態によって提供される技術的解決策においてメモリ移行が実行される際、省かれ、このため、従来技術における問題、すなわち、メモリ移行運用プロセスが比較的複雑であることが解決される。
【０２２８】
本発明のこれらの実施形態によって提供されるメモリ移行を実施するための方法およびデバイスは、一般的なコンピュータシステム、およびNUMAアーキテクチャの下のコンピュータシステムに適用可能である。
【０２２９】
この脈絡で開示されるこれらの実施形態との組合せで説明される方法またはアルゴリズムのステップは、ハードウェアによって直接に、またはハードウェアとプロセッサによって実行されるソフトウェアモジュールの組合せによって実施され得る。それらのソフトウェアモジュールは、ランダムアクセスメモリ(RAM)、メモリ、読取り専用メモリ(ROM)、電子的にプログラミング可能なROM、電子的に消去とプログラミングが可能なROM、レジスタ、ハードディスク、可動の磁気ディスク、CD-ROM、または当技術分野で一般に知られている任意の形態の記憶媒体の中に配置され得る。
【０２３０】
以上は、本発明の特定の実施形態を対象としているに過ぎないが、本発明において開示される技術範囲に含まれる当業者が容易に考えつくことができるいずれの変形形態または代替形態も、本発明の保護範囲に含まれるものとされるので、本発明の保護範囲は、これらの実施形態に限定されない。したがって、本発明の保護範囲は、特許請求の範囲の保護範囲に基づくものとする。
【符号の説明】
【０２３１】
1500  初期化モジュール
1501  第1の移行モジュール
1502  格納モジュール
1503  第2の移行モジュール
1504  制御モジュール
1505  アクセスモジュール
1506  メモリ判定モジュール
1507  アドレス獲得モジュール
1508  アドレス検査モジュール
1509  第3の物理アドレス獲得モジュール
1510  第3の移行モジュール
1511  マッピング関係削除モジュール
15011  第1のメモリ獲得サブモジュール
15012  移行サブモジュール
15021  メモリページ整列サブモジュール
15022  格納サブモジュール
15031  第2のメモリ獲得サブモジュール
15032  スリープ動作サブモジュール
15033  メモリ割り当てサブモジュール
15034  メモリコピーサブモジュール
15035  ページテーブルエントリ削除サブモジュール
15036  ページテーブルエントリ更新サブモジュール
15037  起動サブモジュール
15051  オフセット獲得サブモジュール
15052  第2の物理アドレス獲得サブモジュール
15053  アクセスサブモジュール
【図１】
0005712451.tif 000002
【図２】
0005712451.tif 000003
【図３】
0005712451.tif 000004
【図４】
0005712451.tif 000005
【図５】
0005712451.tif 000006
【図６】
0005712451.tif 000007
【図７】
0005712451.tif 000008
【図８】
0005712451.tif 000009
【図９】
0005712451.tif 000010
【図１０】
0005712451.tif 000011
【図１１】
0005712451.tif 000012
【図１２】
0005712451.tif 000013
【図１３】
0005712451.tif 000014
【図１４】
0005712451.tif 000015
【図１５】
0005712451.tif 000016
【図１６】
0005712451.tif 000017
【図１７】
0005712451.tif 000018
【図１８】
0005712451.tif 000019
【図１９】
0005712451.tif 000020
【図２０】
0005712451.tif 000021
【図２１】
0005712451.tif 000022
【図２２】
0005712451.tif 000023
【図２３】
0005712451.tif 000024
【図２４】
0005712451.tif 000025