(57)【要約】【課題】  特定の諸実施形態において計算装置内の１つのメモリに対応する複数の論理メモリ・ブロックが割り振られる方法、システム、および製品を提供することにある。【解決手段】  少なくとも１つの論理メモリ・ブロックには１つの属性が関連付けられ、その属性は少なくとも１つの論理メモリ・ブロックがメモリからスワップ可能であるかどうかを示し、少なくとも１つの論理メモリ・ブロックに対応する複数の物理ブロックは連続している。【選択図】  図１
2005196793.tif 000002
【特許請求の範囲】
【請求項１】
計算装置内の１つのメモリに対応する複数の論理メモリ・ブロックを割り振るステップと、
少なくとも１つの論理メモリ・ブロックに１つの属性を関連付けるステップであって、前記少なくとも１つの論理メモリ・ブロックが前記メモリからスワップ可能であるかどうかを前記属性が示し、前記少なくとも１つの論理メモリ・ブロックに対応する複数の物理ブロックが連続しているステップと、
を有する方法。
【請求項２】
前記複数の論理メモリ・ブロックを割り振るステップと前記属性を関連付けるステップが、
前記複数の論理メモリ・ブロックのうち、どの論理メモリ・ブロックを予約論理メモリ・ブロックとして構成すべきかに関する情報を前記計算装置内のファームウェアが所有しているかどうかを判定するステップと、
前記複数の論理メモリ・ブロックのうち、どの論理メモリ・ブロックを予約論理メモリ・ブロックとして構成すべきかに関する情報を前記計算装置内の前記ファームウェアが所有していると判定したことに応答して、前記所有している情報に基づいて、前記少なくとも１つの論理メモリ・ブロックに関連する前記属性を設定するステップであって、前記属性が設定された場合、前記少なくとも１つの論理メモリ・ブロックが前記メモリからスワップ不能であることと、前記少なくとも１つの論理メモリ・ブロックが予約論理メモリ・ブロックであることを前記属性が示すステップと、
をさらに有する、請求項１に記載の方法。
【請求項３】
前記複数の論理メモリ・ブロックを割り振るステップと前記属性を関連付けるステップが、
前記複数の論理メモリ・ブロックのうち、どの論理メモリ・ブロックを予約論理メモリ・ブロックとして構成すべきかに関する情報を前記計算装置内のファームウェアが所有しているかどうかを判定するステップと、
前記複数の論理メモリ・ブロックのうち、どの論理メモリ・ブロックを予約論理メモリ・ブロックとして構成すべきかに関する情報を前記計算装置内の前記ファームウェアが所有していないと判定したことに応答して、メモリ予約アプリケーションに関連して、前記複数の論理メモリ・ブロックのうち、どの論理メモリ・ブロックを予約論理メモリ・ブロックとして構成すべきかを前記ファームウェアにより決定するステップと、
前記計算装置の初期プログラム・ロードの間に、前記複数の論理メモリ・ブロックのうち、どの論理メモリ・ブロックを予約メモリ・ブロックとして構成すべきかを前記ファームウェアにより保管するステップと、
をさらに有する、請求項１に記載の方法。
【請求項４】
前記少なくとも１つの論理メモリ・ブロックに１つの追加属性を関連付けるステップであって、前記追加属性が前記少なくとも１つの論理メモリ・ブロックのプロパティをさらに特徴付けるステップ
をさらに有する、請求項１に記載の方法。
【請求項５】
前記少なくとも１つの論理メモリ・ブロックに１つの追加属性を関連付けるステップであって、前記少なくとも１つの論理メモリ・ブロック内のデータが変更可能であるかどうかを前記追加属性が示すステップ
をさらに有する、請求項１に記載の方法。
【請求項６】
前記計算装置に結合された２次記憶装置に前記少なくとも１つの論理メモリ・ブロックをスワップするための命令を仮想メモリ・マネージャにより実行するステップと、
前記少なくとも１つの論理メモリ・ブロックが前記メモリからスワップ不能であることを前記論理メモリ・ブロックの前記関連属性が示しているかどうかを前記仮想メモリ・マネージャにより判定するステップと、
前記少なくとも１つの論理メモリ・ブロックが前記メモリからスワップ不能であることを前記論理メモリ・ブロックの前記関連属性が示していないと判定したことに応答して、前記少なくとも１つの論理メモリ・ブロックを前記メモリから前記２次記憶装置にスワップするステップと、
をさらに有する、請求項１に記載の方法。
【請求項７】
予約論理メモリ・ブロックのための第１のメモリ管理ポリシーを維持するステップと、
非予約論理メモリ・ブロックのための第２のメモリ管理ポリシーを維持するステップと、
前記少なくとも１つのメモリ・ブロックが予約論理メモリ・ブロックであるかどうかを判定するステップと、
前記少なくとも１つのメモリ・ブロックが予約論理メモリ・ブロックであると判定したことに応答して、前記第１のメモリ管理ポリシーに基づいて、前記少なくとも１つの論理メモリ・ブロックについてメモリ管理操作を実行するステップと、
をさらに有する、請求項１に記載の方法。
【請求項８】
前記複数の論理メモリ・ブロックを割り振るステップと前記属性を関連付けるステップが前記計算装置内のファームウェアによって実行され、前記計算装置が前記メモリからのスワッピングのために予約できるメモリの量に限界があるオペレーティング・システムを含み、前記複数の論理メモリ・ブロックを割り振るステップと前記属性を関連付けるステップにより、アプリケーションは予約できるメモリの量の前記限界を超えることができる、請求項１に記載の方法。
【請求項９】
前記複数の論理メモリ・ブロックを割り振るステップと前記属性を関連付けるステップが前記計算装置内のアプリケーションによって実行され、前記アプリケーションが前記計算装置内のオペレーティング・システムとは異なるものである、請求項１に記載の方法。
【請求項１０】
前記少なくとも１つの論理メモリ・ブロックが前記メモリからスワップ不能である場合に、前記少なくとも１つの論理メモリ・ブロックのために静的アドレス変換を実行するステップ
をさらに有する、請求項１に記載の方法。
【請求項１１】
計算装置と、
前記計算装置に結合された１つのメモリと、
前記計算装置内の前記メモリに対応する複数の論理メモリ・ブロックを割り振るための手段と、
少なくとも１つの論理メモリ・ブロックに１つの属性を関連付けるための手段であって、前記少なくとも１つの論理メモリ・ブロックが前記メモリからスワップ可能であるかどうかを前記属性が示し、前記少なくとも１つの論理メモリ・ブロックに対応する複数の物理ブロックが連続している該手段と、
を有するシステム。
【請求項１２】
前記計算装置内に実現されたファームウェアをさらに有し、前記複数の論理メモリ・ブロックを割り振るための手段と前記属性を関連付けるための手段が、
（ｉ）前記複数の論理メモリ・ブロックのうち、どの論理メモリ・ブロックを予約論理メモリ・ブロックとして構成すべきかに関する情報を前記ファームウェアが所有しているかどうかを判定するステップと、
（ｉｉ）前記複数の論理メモリ・ブロックのうち、どの論理メモリ・ブロックを予約論理メモリ・ブロックとして構成すべきかに関する情報を前記ファームウェアが所有していると判定したことに応答して、前記所有している情報に基づいて、前記少なくとも１つの論理メモリ・ブロックに関連する前記属性を設定するステップであって、前記属性が設定された場合、前記少なくとも１つの論理メモリ・ブロックが前記メモリからスワップ不能であることと、前記少なくとも１つの論理メモリ・ブロックが予約論理メモリ・ブロックであることを前記属性が示すステップと、
をさらに実行する、請求項１１に記載のシステム。
【請求項１３】
前記計算装置内に実現されたメモリ予約アプリケーションと、
前記計算装置内に実現されたファームウェアとをさらに有し、前記複数の論理メモリ・ブロックを割り振るための手段と前記属性を関連付けるための手段が、
（ｉ）前記複数の論理メモリ・ブロックのうち、どの論理メモリ・ブロックを予約論理メモリ・ブロックとして構成すべきかに関する情報を前記ファームウェアが所有しているかどうかを判定するステップと、
（ｉｉ）前記複数の論理メモリ・ブロックのうち、どの論理メモリ・ブロックを予約論理メモリ・ブロックとして構成すべきかに関する情報を前記計算装置内の前記ファームウェアが所有していないと判定したことに応答して、前記メモリ予約アプリケーションに関連して、前記複数の論理メモリ・ブロックのうち、どの論理メモリ・ブロックを予約論理メモリ・ブロックとして構成すべきかを前記ファームウェアにより決定するステップと、
（ｉｉｉ）前記計算装置の初期プログラム・ロードの間に、前記複数の論理メモリ・ブロックのうち、どの論理メモリ・ブロックを予約メモリ・ブロックとして構成すべきかを前記ファームウェアにより保管するステップと、
をさらに実行する、請求項１１に記載のシステム。
【請求項１４】
前記少なくとも１つの論理メモリ・ブロックに１つの追加属性を関連付けるための手段であって、前記追加属性が前記少なくとも１つの論理メモリ・ブロックのプロパティをさらに特徴付ける手段
をさらに有する、請求項１１に記載のシステム。
【請求項１５】
前記少なくとも１つの論理メモリ・ブロックに１つの追加属性を関連付けるための手段であって、前記少なくとも１つの論理メモリ・ブロック内のデータが変更可能であるかどうかを前記追加属性が示す手段
をさらに有する、請求項１１に記載のシステム。
【請求項１６】
前記計算装置に結合された仮想メモリ・マネージャと、
前記計算装置に結合された２次記憶装置と、
前記計算装置に結合された前記２次記憶装置に前記少なくとも１つの論理メモリ・ブロックをスワップするための命令を前記仮想メモリ・マネージャにより実行するための手段と、
前記少なくとも１つの論理メモリ・ブロックが前記メモリからスワップ不能であることを前記論理メモリ・ブロックの前記関連属性が示しているかどうかを前記仮想メモリ・マネージャにより判定するための手段と、
前記少なくとも１つの論理メモリ・ブロックが前記メモリからスワップ不能であることを前記論理メモリ・ブロックの前記関連属性が示していないと判定したことに応答して、前記少なくとも１つの論理メモリ・ブロックを前記メモリから前記２次記憶装置にスワップするための手段と、
をさらに有する、請求項１１に記載のシステム。
【請求項１７】
予約論理メモリ・ブロックのための第１のメモリ管理ポリシーと、
非予約論理メモリ・ブロックのための第２のメモリ管理ポリシーと、
予約論理メモリ・ブロックのための前記第１のメモリ管理ポリシーを維持するための手段と、
非予約論理メモリ・ブロックのための前記第２のメモリ管理ポリシーを維持するための手段と、
前記少なくとも１つのメモリ・ブロックが予約論理メモリ・ブロックであるかどうかを判定するための手段と、
前記少なくとも１つのメモリ・ブロックが予約論理メモリ・ブロックであると判定したことに応答して、前記第１のメモリ管理ポリシーに基づいて、前記少なくとも１つの論理メモリ・ブロックについてメモリ管理操作を実行するための手段と、
をさらに有する、請求項１１に記載のシステム。
【請求項１８】
前記計算装置内に実現されたアプリケーションと、
前記計算装置に結合されたオペレーティング・システムであって、前記メモリからのスワッピングのために予約できるメモリの量に限界があるオペレーティング・システムと、
前記計算装置内のファームウェアとをさらに有し、前記複数の論理メモリ・ブロックを割り振るための手段と前記属性を関連付けるための手段が前記ファームウェア内に実行され、前記複数の論理メモリ・ブロックを割り振るための手段と前記属性を関連付けるための手段により、前記アプリケーションは予約できるメモリの量の前記限界を超えることができる、請求項１１に記載のシステム。
【請求項１９】
前記計算装置に結合されたオペレーティング・システムと、
前記計算装置内に実現されたアプリケーションとをさらに有し、前記複数の論理メモリ・ブロックを割り振るための手段と前記属性を関連付けるための手段が前記アプリケーションによって実行され、前記アプリケーションが前記オペレーティング・システムとは異なるものである、請求項１１に記載のシステム。
【請求項２０】
前記少なくとも１つの論理メモリ・ブロックが前記メモリからスワップ不能である場合に、前記少なくとも１つの論理メモリ・ブロックのために静的アドレス変換を実行するための手段
をさらに有する、請求項１１に記載のシステム。
【請求項２１】
複数の操作を引き起こすことができる製品であって、前記操作が、
計算装置内の１つのメモリに対応する複数の論理メモリ・ブロックを割り振るステップと、
少なくとも１つの論理メモリ・ブロックに１つの属性を関連付けるステップであって、前記少なくとも１つの論理メモリ・ブロックが前記メモリからスワップ可能であるかどうかを前記属性が示し、前記少なくとも１つの論理メモリ・ブロックに対応する複数の物理ブロックが連続しているステップと、
を有する製品。
【請求項２２】
前記複数の論理メモリ・ブロックを割り振るステップと前記属性を関連付けるステップが、
前記複数の論理メモリ・ブロックのうち、どの論理メモリ・ブロックを予約論理メモリ・ブロックとして構成すべきかに関する情報を前記計算装置内のファームウェアが所有しているかどうかを判定するステップと、
前記複数の論理メモリ・ブロックのうち、どの論理メモリ・ブロックを予約論理メモリ・ブロックとして構成すべきかに関する情報を前記計算装置内の前記ファームウェアが所有していると判定したことに応答して、前記所有している情報に基づいて、前記少なくとも１つの論理メモリ・ブロックに関連する前記属性を設定するステップであって、前記属性が設定された場合、前記少なくとも１つの論理メモリ・ブロックが前記メモリからスワップ不能であることと、前記少なくとも１つの論理メモリ・ブロックが予約論理メモリ・ブロックであることを前記属性が示すステップと、
をさらに有する、請求項２１に記載の製品。
【請求項２３】
前記複数の論理メモリ・ブロックを割り振るステップと前記属性を関連付けるステップが、
前記複数の論理メモリ・ブロックのうち、どの論理メモリ・ブロックを予約論理メモリ・ブロックとして構成すべきかに関する情報を前記計算装置内のファームウェアが所有しているかどうかを判定するステップと、
前記複数の論理メモリ・ブロックのうち、どの論理メモリ・ブロックを予約論理メモリ・ブロックとして構成すべきかに関する情報を前記計算装置内の前記ファームウェアが所有していないと判定したことに応答して、メモリ予約アプリケーションに関連して、前記複数の論理メモリ・ブロックのうち、どの論理メモリ・ブロックを予約論理メモリ・ブロックとして構成すべきかを前記ファームウェアにより決定するステップと、
前記計算装置の初期プログラム・ロードの間に、前記複数の論理メモリ・ブロックのうち、どの論理メモリ・ブロックを予約メモリ・ブロックとして構成すべきかを前記ファームウェアにより保管するステップと、
をさらに有する、請求項２１に記載の製品。
【請求項２４】
前記操作が、
前記少なくとも１つの論理メモリ・ブロックに１つの追加属性を関連付けるステップであって、前記追加属性が前記少なくとも１つの論理メモリ・ブロックのプロパティをさらに特徴付けるステップ
をさらに有する、請求項２１に記載の製品。
【請求項２５】
前記操作が、
前記少なくとも１つの論理メモリ・ブロックに１つの追加属性を関連付けるステップであって、前記少なくとも１つの論理メモリ・ブロック内のデータが変更可能であるかどうかを前記追加属性が示すステップ
をさらに有する、請求項２１に記載の製品。
【請求項２６】
前記操作が、
前記計算装置に結合された２次記憶装置に前記少なくとも１つの論理メモリ・ブロックをスワップするための命令を仮想メモリ・マネージャにより実行するステップと、
前記少なくとも１つの論理メモリ・ブロックが前記メモリからスワップ不能であることを前記論理メモリ・ブロックの前記関連属性が示しているかどうかを前記仮想メモリ・マネージャにより判定するステップと、
前記少なくとも１つの論理メモリ・ブロックが前記メモリからスワップ不能であることを前記論理メモリ・ブロックの前記関連属性が示していないと判定したことに応答して、前記少なくとも１つの論理メモリ・ブロックを前記メモリから前記２次記憶装置にスワップするステップと、
をさらに有する、請求項２１に記載の製品。
【請求項２７】
前記操作が、
予約論理メモリ・ブロックのための第１のメモリ管理ポリシーを維持するステップと、
非予約論理メモリ・ブロックのための第２のメモリ管理ポリシーを維持するステップと、
前記少なくとも１つのメモリ・ブロックが予約論理メモリ・ブロックであるかどうかを判定するステップと、
前記少なくとも１つのメモリ・ブロックが予約論理メモリ・ブロックであると判定したことに応答して、前記第１のメモリ管理ポリシーに基づいて、前記少なくとも１つの論理メモリ・ブロックについてメモリ管理操作を実行するステップと、
をさらに有する、請求項２１に記載の製品。
【請求項２８】
前記複数の論理メモリ・ブロックを割り振るステップと前記属性を関連付けるステップが前記計算装置内のファームウェアによって実行され、前記計算装置が前記メモリからのスワッピングのために予約できるメモリの量に限界があるオペレーティング・システムを含み、前記複数の論理メモリ・ブロックを割り振るステップと前記属性を関連付けるステップにより、アプリケーションは予約できるメモリの量の前記限界を超えることができる、請求項２１に記載の製品。
【請求項２９】
前記複数の論理メモリ・ブロックを割り振るステップと前記属性を関連付けるステップが前記計算装置内のアプリケーションによって実行され、前記アプリケーションが前記計算装置内のオペレーティング・システムとは異なるものである、請求項２１に記載の製品。
【請求項３０】
前記操作が、
前記少なくとも１つの論理メモリ・ブロックが前記メモリからスワップ不能である場合に、前記少なくとも１つの論理メモリ・ブロックのために静的アドレス変換を実行するステップ
をさらに有する、請求項２１に記載の製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリを予約するための方法、システム、および製品（article of manufacture）に関する。
【背景技術】
【０００２】
多くの計算装置では、ディスク記憶装置などの２次記憶装置の記憶容量はランダム・アクセス・メモリなどのメイン・メモリの記憶容量より大きい可能性がある。特定の実現例では、仮想メモリ・マネージャは、計算装置内のアプリケーションにとって使用可能なアドレス可能記憶空間が計算装置内のメイン・メモリの記憶容量によって制限されないように仮想メモリを実現することができる。仮想メモリ・マネージャは、２次記憶装置を使用して追加のメイン・メモリをシミュレートすることにより、仮想メモリを実現することができる。
【０００３】
仮想メモリの実現例では、仮想メモリ・マネージャは、メイン・メモリに保管する必要があるデータおよび命令を収容するために、メイン・メモリから２次記憶装置にデータおよび命令をスワップすることができる。特定の実現例では、データおよび命令はページと呼ばれるデータ構造に保管することができ、仮想メモリ・マネージャは必要に応じてメイン・メモリから２次記憶装置にページをスワップすることができる。
【０００４】
オペレーティング・システムは、予約メモリがメイン・メモリから２次記憶装置にスワップされないように、特定の量のメモリをメイン・メモリ内に予約できるようにすることができる。特定のタイプの予約メモリはピン固定メモリ（pinnedmemory）または隠しメモリ（hidden memory）と呼ぶことができる。メイン・メモリに保管された命令およびデータは、２次記憶装置に保管された命令およびデータより高速でアクセスすることができる。リアルタイム・アプリケーションを伴う実現例などの特定の実現例では、命令のリアルタイム実行のためにこのようなメモリの予約が必要である可能性がある。特定の実現例では、このようなリアルタイム・アプリケーションはエンタープライズ・ストレージ・サーバ（EnterpriseStorage Server：ＥＳＳ）（インターナショナル・ビジネス・マシーンズ社の商標）システムで実行される可能性がある。また、特定の実現例では、リアルタイム・アプリケーションに加えて他のアプリケーションもメイン・メモリの一部を予約する可能性がある。
【０００５】
特定のオペレーティング・システムでは、予約できるメイン・メモリの総量に上限を設ける場合がある。たとえば、ＡＩＸ（インターナショナル・ビジネス・マシーンズ社の商標）オペレーティング・システムなどのＵＮＩＸ（オープン・グループの商標）オペレーティング・システムの多くのバージョンでは、予約できるメイン・メモリの総量は全メイン・メモリの８０％を超えることができない。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特定の諸実施形態において計算装置内の１つのメモリに対応する複数の論理メモリ・ブロックが割り振られる方法、システム、および製品が提供される。少なくとも１つの論理メモリ・ブロックには１つの属性が関連付けられ、その属性は少なくとも１つの論理メモリ・ブロックがメモリからスワップ可能であるかどうかを示し、少なくとも１つの論理メモリ・ブロックに対応する複数の物理ブロックは連続している。
【課題を解決するための手段】
【０００７】
追加の諸実施形態では、複数の論理メモリ・ブロックを割り振るステップと属性を関連付けるステップは、（ａ）複数の論理メモリ・ブロックのうち、どの論理メモリ・ブロックを予約論理メモリ・ブロックとして構成すべきかに関する情報を計算装置内のファームウェアが所有しているかどうかを判定するステップと、（ｂ）複数の論理メモリ・ブロックのうち、どの論理メモリ・ブロックを予約論理メモリ・ブロックとして構成すべきかに関する情報を計算装置内のファームウェアが所有していると判定したことに応答して、その所有している情報に基づいて、少なくとも１つの論理メモリ・ブロックに関連する属性を設定するステップであって、属性が設定された場合、少なくとも１つの論理メモリ・ブロックがメモリからスワップ不能であることと、少なくとも１つの論理メモリ・ブロックが予約論理メモリ・ブロックであることをその属性が示すステップとをさらに有する。
【０００８】
さらに他の諸実施形態では、複数の論理メモリ・ブロックを割り振るステップと属性を関連付けるステップは、（ａ）複数の論理メモリ・ブロックのうち、どの論理メモリ・ブロックを予約論理メモリ・ブロックとして構成すべきかに関する情報を計算装置内のファームウェアが所有しているかどうかを判定するステップと、（ｂ）複数の論理メモリ・ブロックのうち、どの論理メモリ・ブロックを予約論理メモリ・ブロックとして構成すべきかに関する情報を計算装置内のファームウェアが所有していないと判定したことに応答して、メモリ予約アプリケーションに関連して、複数の論理メモリ・ブロックのうち、どの論理メモリ・ブロックを予約論理メモリ・ブロックとして構成すべきかをファームウェアにより決定するステップと、（ｃ）計算装置の初期プログラム・ロードの間に、複数の論理メモリ・ブロックのうち、どの論理メモリ・ブロックを予約メモリ・ブロックとして構成すべきかをファームウェアにより保管するステップとをさらに有する。
【０００９】
追加の諸実施形態では、少なくとも１つの論理メモリ・ブロックには１つの追加属性が関連付けられ、その追加属性は少なくとも１つの論理メモリ・ブロックのプロパティをさらに特徴付ける。
【００１０】
さらに他の諸実施形態では、少なくとも１つの論理メモリ・ブロックには１つの追加属性が関連付けられ、その追加属性は、少なくとも１つの論理メモリ・ブロック内のデータが変更可能であるかどうかを示す。
【００１１】
さらに他の諸実施形態では、仮想メモリ・マネージャは、計算装置に結合された２次記憶装置に少なくとも１つの論理メモリ・ブロックをスワップするための命令を実行する。仮想メモリ・マネージャは、少なくとも１つの論理メモリ・ブロックがメモリからスワップ不能であることをその論理メモリ・ブロックの関連属性が示しているかどうかを判定する。少なくとも１つの論理メモリ・ブロックがメモリからスワップ不能であることをその論理メモリ・ブロックの関連属性が示していないと判定したことに応答して、少なくとも１つの論理メモリ・ブロックはメモリから２次記憶装置にスワップされる。
【００１２】
他の諸実施形態では、予約論理メモリ・ブロックのための第１のメモリ管理ポリシーが維持される。非予約論理メモリ・ブロックのための第２のメモリ管理ポリシーが維持される。少なくとも１つのメモリ・ブロックが予約論理メモリ・ブロックであるかどうかに関する判定が行われる。少なくとも１つのメモリ・ブロックが予約論理メモリ・ブロックであると判定したことに応答して、第１のメモリ管理ポリシーに基づいて、その少なくとも１つの論理メモリ・ブロックについてメモリ管理操作が実行される。
【００１３】
さらに他の諸実施形態では、複数の論理メモリ・ブロックを割り振るステップと属性を関連付けるステップは計算装置内のファームウェアによって実行され、その計算装置はメモリからのスワッピングのために予約できるメモリの量に限界があるオペレーティング・システムを含み、複数の論理メモリ・ブロックを割り振るステップと属性を関連付けるステップにより、アプリケーションは予約できるメモリの量の限界を超えることができる。
【００１４】
さらに他の諸実施形態では、複数の論理メモリ・ブロックを割り振るステップと属性を関連付けるステップは計算装置内のアプリケーションによって実行され、そのアプリケーションは計算装置内のオペレーティング・システムとは異なるものである。
【００１５】
さらに追加の諸実施形態では、少なくとも１つの論理メモリ・ブロックがメモリからスワップ不能である場合に、その少なくとも１つの論理メモリ・ブロックのために静的アドレス変換が実行される。
【００１６】
特定の実施形態では、その論理メモリ・ブロックが予約されており、メイン・メモリから２次記憶装置へのページングが許可されない可能性があることを示すために、各論理メモリ・ブロックごとに１つの属性を提供する。オペレーティング・システムはメモリを正規プールと予約プールに分割することができ、正規プールは予約されていないメモリに対応し、予約プールは予約されているメモリに対応する。オペレーティング・システムの仮想メモリ・マネージャは、正規プールと予約プールの両方についてアドレス変換を行うことができる。しかし、仮想メモリ・マネージャは、正規プールからのメモリしか２次記憶装置にページングすることができない。
【００１７】
次に添付図面を参照するが、図面全体を通して同様の参照番号は対応する部分を表している。
【発明を実施するための最良の形態】
【００１８】
以下の説明では、その一部を形成し、いくつかの実施形態を示す添付図面を参照する。他の諸実施形態を使用することができ、本諸実施形態の範囲を逸脱せずに構造および操作上の変更を行うことができることは言うまでもない。
【００１９】
図１は本発明の特定の諸実施形態によるコンピューティング環境のブロック図を示している。計算装置１００は２次記憶装置１０２に結合された状態で示されている。２次記憶装置１０２は計算装置１００の外部に示されているが、特定の諸実施形態では、２次記憶装置１０２は計算装置１００の内部にあってもよい。追加の諸実施形態では、計算装置１００に関する入出力（Ｉ／Ｏ）操作を実行するホスト・システムなどの追加の計算装置（図示せず）を実現することができる。
【００２０】
計算装置１００は、パーソナル・コンピュータ、ワークステーション、サーバ、メインフレーム、ハンドヘルド・コンピュータ、パームトップ・コンピュータ、電話装置、ネットワーク・アプライアンス、ブレード・コンピュータ（blade computer）、ストレージ・コントローラなどを含むことができる。２次記憶装置１０２は、ディスク、テープ、読取り／書込みＤＶＤ、読取り／書込みＣＤ−ＲＯＭ、新磁気ディスク制御機構（RedundantArray of Independent Disks：ＲＡＩＤ）、ジャスト・ア・バンチ・オブ・ディスクス（Just a Bunch of Disks：ＪＢＯＤ）などの直接アクセス記憶装置または任意のその他の記憶装置を含むことができる。計算装置１００と２次記憶装置１０２は、インターネット、イントラネット、ローカル・エリア・ネットワーク（ＬＡＮ）、ストレージ・エリア・ネットワーク（ＳＡＮ）、広域ネットワーク（ＷＡＮ）、ワイヤレス・ネットワークなどのネットワーク（図示せず）によって結合することができる。代わって、計算装置１００と２次記憶装置１０２は、直接回線、共通バス・システムなどによるなど、ネットワークなしで結合することもできる。
【００２１】
計算装置１００は、中央演算処理装置（ＣＰＵ）１０４と、メモリ１０６と、ファームウェア１０８と、オペレーティング・システム１１０と、メモリ予約アプリケーション１１２とを含むことができる。
【００２２】
ＣＰＵ１０４は、複雑命令セット・コンピューティング（ＣＩＳＣ）プロセッサ、縮小命令セット・コンピューティング（ＲＩＳＣ）プロセッサ、または任意のその他のプロセッサを含むことができる。単一のＣＰＵ１０４のみが示されているが、特定の諸実施形態では、計算装置１００は、マルチプロセッシング・システムを形成するために追加のＣＰＵを含むことができる。
【００２３】
メモリ１０６はランダム・アクセス・メモリ（ＲＡＭ）を含むことができる。また、メモリ１０６は物理メモリと呼ぶこともできる。特定の諸実施形態では、メモリ１０６は、計算装置１００内のバスに結合されたチップとして含めることができる。メモリ１０６は揮発性のものにすることができ、これは、メモリ１０６がメモリ１０６の内容を維持するために安定した電気の流れを必要とする可能性があることを意味する。電力がオフになったことに応答して、メモリ１０６内に存在していた可能性のあるデータは失われる可能性がある。メモリ１０６にロードされた命令はＣＰＵ１０４で実行することができる。メモリ１０６にロードされた命令は、その命令がＣＰＵ１０４内で実行されるときに、メモリ１０６内に存在するデータにアクセスすることができる。メモリ１０６の量は２次記憶装置１０２の量より少ない可能性がある。
【００２４】
ファームウェア１０８は、読取り専用メモリ（ＲＯＭ）、プログラマブル読取り専用メモリ（ＰＲＯＭ）、消去可能プログラマブル読取り専用メモリ（ＥＰＲＯＭ）などに書き込まれている可能性のあるプログラムまたはデータを含むことができる。ファームウェア１０８は、ハードウェアとソフトウェアの組合せにすることができる。
【００２５】
オペレーティング・システム１１０は、計算装置１００内で実行されるシステム・プログラムおよびアプリケーション・プログラムの実行を制御するソフトウェアである可能性がある。オペレーティング・システム１１０は、計算装置１００内で実行されるシステム・プログラムおよびアプリケーション・プログラムに様々なサービスを提供することができる。特定の諸実施形態では、オペレーティング・システム１１０は、ＵＮＩＸオペレーティング・システム、ＡＩＸオペレーティング・システム、または何らかのその他のオペレーティング・システムを含むことができる。オペレーティング・システム１１０は仮想メモリ・マネージャ１１４を含むことができ、仮想メモリ・マネージャ１１４はメモリ１０６から２次記憶装置１０２にデータをスワップすることができる。たとえば、メモリ１０６が一杯であるときに新しい命令またはデータをメモリ１０６に収容しなければならない場合、仮想メモリ・マネージャ１１４はメモリ１０６から２次記憶装置１０２に特定のページをスワップすることができる。
【００２６】
メモリ予約アプリケーション１１２は、計算装置１００内に実現されたアプリケーションである。メモリ予約アプリケーション１１２は、メモリ１０６内のどの論理メモリ・ブロックを予約メモリとして構成すべきかを決定することができる。メモリ予約アプリケーション１１２は、ソフトウェア、ハードウェア、またはファームウェアで実現することができる。特定の諸実施形態では、メモリ予約アプリケーション１１２は、メモリ１０６内に予約メモリを実現するようにファームウェア１０８に関連して機能することができる。
【００２７】
したがって、図１は、仮想メモリ・マネージャ１１４によって予約メモリが２次記憶装置１０２にスワップされないように、ファームウェア１０８に関連してメモリ予約アプリケーション１１２が特定の量のメモリ１０６を予約することができる特定の諸実施形態を示している。
【００２８】
図２は本発明の特定の諸実施形態により計算装置１００内に実現されたデータ構造のブロック図を示している。
【００２９】
メモリ１０６は、複数の論理メモリ・ブロック２００ａ・・・２００ｎによって表すことができる。論理メモリ・ブロック２００ａ・・・２００ｎに加えて追加の論理メモリ・ブロックも２次記憶装置１０２内に存在することができる。メモリ１０６内に存在する論理メモリ・ブロック２００ａ・・・２００ｎと、２次記憶装置１０２内に存在する論理メモリ・ブロックは相俟って、計算装置１００内で実行されるアプリケーションの仮想アドレス空間を形成することができる。論理メモリ・ブロック２００ａなどの論理メモリ・ブロックは、複数バイトのメモリを含むことができる。
【００３０】
複数の論理メモリ・ブロック２００ａ・・・２００ｎには複数の属性２０２ａ・・・２０２ｎが関連付けられている。たとえば、属性２０２ａは論理メモリ・ブロック２００ａに関連付けられ、属性２０２ｂは論理メモリ・ブロック２００ｂに関連付けられ、属性２０２ｎは論理メモリ・ブロック２００ｎが関連付けられている。特定の諸実施形態では、１つの属性は１つのメモリ・ブロックの１つまたは複数のプロパティを定義することができる。たとえば、ある属性は、メモリ・ブロックが予約メモリ・ブロックであるかどうか、すなわち、そのメモリ・ブロックがメモリ１０６からスワップ不能であるかどうかを示すことができる。特定の諸実施形態では、２次記憶装置１０２に含まれる論理メモリ・ブロックは、属性２０２ａ・・・２０２ｎに類似した属性も含むことができる。特定の諸実施形態では、論理メモリ・ブロックがメモリ１０６から２次記憶装置１０２にスワップされる場合、対応する属性も２次記憶装置にスワップすることができる。
【００３１】
図２では、属性２０２ａ・・・２０２ｎは論理メモリ・ブロックの外部に示されている。しかし、特定の諸実施形態では、属性２０２ａ・・・２０２ｎは論理メモリ・ブロック２００ａ・・・２００ｎの一部として実現することができる。
【００３２】
特定の諸実施形態では、属性２０２ａ・・・２０２ｎは、予約属性２０４ａ・・・２０４ｎと、１つまたは複数のその他の属性２０６ａ・・・２０６ｎを含むことができる。たとえば、属性２０２ａは予約属性２０４ａとその他の属性２０６ａを含むことができ、属性２０２ｂは予約属性２０４ｂとその他の属性２０６ｂを含むことができ、属性２０２ｎは予約属性２０４ｎとその他の属性２０６ｎを含むことができる。
【００３３】
予約属性２０４ａ・・・２０４ｎは、対応する論理メモリ・ブロック２００ａ・・・２００ｎが予約されているかどうかを示すことができる。たとえば、予約属性２０４ａがブール値「真」を有する場合、対応する論理メモリ・ブロック２００ａは予約メモリである可能性があり、すなわち、論理メモリ・ブロック２００ａは仮想メモリ・マネージャ１１４によって２次記憶装置１０２にスワップすることができない。
【００３４】
その他の属性２０６ａ・・・２０６ｎは予約属性に加えてその他の属性も含むことができ、その他の属性２０６ａ・・・２０６ｎは論理メモリ・ブロック２００ａ・・・２００ｎの追加の特性を定義する。たとえば、その他の属性２０６ａは、論理メモリ・ブロック２００ａがカスタマによって変更されたデータを含むかどうかを示すことができる。
【００３５】
したがって、図２は、メモリ１０６を構成する論理メモリ・ブロック２００ａ・・・２００ｎが対応する属性２０２ａ・・・２０２ｎを有する諸実施形態を示している。予約属性２０４ａ・・・２０４ｎなどの特定の属性は、対応する論理メモリ・ブロックが仮想メモリ・マネージャ１１４によってメモリ１０６からスワップ可能であるかどうかを示すことができる。
【００３６】
図３は本発明の特定の諸実施形態により計算装置１００内に実現された例示的な論理メモリ・ブロック２００ａ・・・２００ｎおよび例示的な属性２０２ａ・・・２０２ｎのブロック図を示している。
【００３７】
特定の諸実施形態では、例示的な論理メモリ・ブロック２００ａ・・・２００ｎは、スワップ可能データと、カスタマ未変更データと、カスタマ変更データとを含むことができる。他の諸実施形態では、論理メモリ・ブロックは、追加の特性または異なる特性を備えたデータを含むことができる。スワップ可能データは、メモリ１０６から２次記憶装置１０２にスワップ可能なデータを含むことができる。カスタマ変更データは、カスタマによって変更された可能性のあるデータを含むことができる。カスタマ未変更データは、カスタマによって変更されていない可能性のあるデータを含むことができる。計算装置１００がストレージ・コントローラである特定の諸実施形態では、カスタマ・データは、計算装置１００に結合されたホスト・システム上で実行されるアプリケーションによって計算装置１００に書き込むことができる。たとえば、論理メモリ・ブロック２００ａはカスタマ未変更データ２０８ａを含むことができ、論理メモリ・ブロック２００ｂはカスタマ変更データ２０８ｂを含むことができ、論理メモリ・ブロック２００ｎはスワップ可能データ２０８ｎを含むことができる。
【００３８】
例示的な論理メモリ・ブロック２００ａ・・・２００ｎに対応する属性２０２ａ・・・２０２ｎの例示的な値も図３に示されている。たとえば、論理メモリ・ブロック２００ａはカスタマ未変更データ２０８ａを含む。特定の諸実施形態では、変更か未変更かにかかわらず、カスタマ・データは仮想メモリ・マネージャ１１４によって２次記憶装置１０２にスワップされない。このような諸実施形態では、対応する予約属性２０４ａは「真」というブール値を有することができ、対応するその他の属性２０６ａは、論理メモリ・ブロック２００ａがカスタマ未変更データを含むことを示すことができる。
【００３９】
他の一例を示すため、論理メモリ・ブロック２００ｂはカスタマ変更データ２０８ｂを含む。対応する予約属性２０４ｂは「真」というブール値を有することができ、対応するその他の属性２０６ｂは、その論理メモリ・ブロックがカスタマ変更データを含むことを示すことができる。追加の一例を示すため、論理メモリ・ブロック２００ｎはスワップ可能データ２０８ｎを含むことができる。対応する予約属性２０４ｎは「偽」というブール値を有することができ、対応するその他の属性２０６ｎは「ヌル」になる可能性がある。
【００４０】
したがって、図３は、論理メモリ・ブロック２００ａ・・・２００ｎが予約メモリであるかどうかを属性２０２ａ・・・２０２ｎが示す特定の例示的な諸実施形態を記述している。属性２０２ａ・・・２０２ｎは、論理メモリ・ブロック２００ａ・・・２００ｎに関連する追加の特性をさらに示すことができる。
【００４１】
図４は本発明の特定の諸実施形態により計算装置１００に実現されたメモリを予約するためのロジックを示している。
【００４２】
制御はブロック４００から開始され、そこで計算装置１００は計算装置１００の初期プログラム・ロード（ＩＰＬ）または再初期化プログラム・ロード（再ＩＰＬ）を実行するが、再ＩＰＬは計算装置１００の第２のＩＰＬまたはその後のＩＰＬである。特定の諸実施形態では、ＩＰＬまたは再ＩＰＬにおいて、計算装置１００に対しブート・シーケンスが行われる可能性がある。たとえば、ＩＰＬまたは再ＩＰＬプロセスは、メモリ１０６をテストすることと、計算装置１００に常駐するオペレーティング・システム１００、デバイス・ドライバ、その他のアプリケーションをロードすることを含む可能性がある。
【００４３】
ファームウェア１０８は（ブロック４０２で）、メモリ２０６内の論理メモリ・ブロック２００ａ・・・２００ｎのうち、どの論理メモリ・ブロックを予約メモリとして構成すべきかに関する情報をファームウェア１０８が所有しているかどうかを判定する。特定の諸実施形態では、このような情報は計算装置１００内に存在するファイル内に存在する可能性があるか、あるいは前回のＩＰＬからファームウェア１０８によって保管されている可能性がある。
【００４４】
論理メモリ・ブロック２００ａ・・・２００ｎのうち、どの論理メモリ・ブロックを予約メモリとして構成すべきかに関する情報をファームウェア１０８が所有していないとファームウェア１０８が（ブロック４０２で）判定した場合、ファームウェア１０８は（ブロック４０４で）、すべての論理メモリ・ブロック２００ａ・・・２００ｎを正規メモリ、すなわち、２次記憶装置１０２にスワップ可能なメモリとして構成する。特定の諸実施形態では、すべての論理メモリ・ブロック２００ａ・・・２００ｎは、このような事例では、正規メモリ・プールに属すものと呼ぶことができる。予約属性２０４ａ・・・２０４ｎはブール値「偽」に設定することができる。
【００４５】
ファームウェア１０８は（ブロック４０６で）、メモリ予約アプリケーション１１２へのインターフェースをエクスポートして、どの論理メモリ・ブロックを予約メモリとして構成すべきかを決定する。ファームウェアは（ブロック４０８で）、メモリ予約アプリケーション１１２によって返された情報に基づいて、論理メモリ・ブロック２００ａ・・・２００ｎに関連する予約属性２０４ａ・・・２０４ｎを設定する。たとえば、論理メモリ・ブロック２００ａを予約メモリとして構成する場合、予約属性２０４ａはブール値「真」に設定することができる。メモリ予約アプリケーション１１２は、ユーザ指定入力、計算装置１００内の保管データ、計算装置１００内に保管されたポリシーなどから、どの論理メモリ・ブロックを予約メモリとして構成すべきかに関する情報を返してくる可能性がある。
【００４６】
ファームウェア１０８は（ブロック４１０で）、その後のＩＰＬのために予約メモリの範囲を保管する。どの論理メモリ・ブロックを予約メモリとして構成すべきかに関する情報をファームウェア１０８が所有しているので、ファームウェア１０８は、その後のＩＰＬ中に読み取られるファイルにその情報を保管することなどにより、当技術分野で既知の通り、その情報を保管することができる。制御はブロック４００に移行し、そこで計算装置１００は再ＩＰＬを実行する。したがって、予約メモリの範囲は、計算装置のＩＰＬの繰り返しの間、持続的なものになる可能性がある。
【００４７】
論理メモリ・ブロック２００ａ・・・２００ｎのうち、どの論理メモリ・ブロックを予約メモリとして構成すべきかに関する情報をファームウェア１０８が所有しているとファームウェア１０８が（ブロック４０２で）判定した場合、ファームウェア１０８は（ブロック４１２で）、所有している情報に基づいて、論理メモリ・ブロック２００ａ・・・２００ｎに対応する予約属性２０４ａ・・・２０４ｎを設定し、制御をブロック４００に返し、そこで計算装置１００が再ＩＰＬを実行する。
【００４８】
したがって、図４は、予約メモリが２次記憶装置１０２にスワップされないように、ファームウェア１０８がメモリ１０６の予約を実行する特定の諸実施形態を示している。特定の諸実施形態では、１つの論理メモリ・ブロックの内容は連続物理ブロック内に保持され、すなわち、１つの論理メモリ・ブロックの実際のデータ内容はメモリ１０６内の連続物理記憶域内に保持される。１つの論理メモリ・ブロックの実際のデータ内容がメモリ１０６内の連続物理記憶域内に保持される場合、その論理メモリ・ブロックの実際のデータ内容は、その論理メモリ・ブロックの実際のデータ内容が連続物理記憶域内に保持されていない場合の実際のデータ内容のアクセス時間に比べ、より高速でアクセスすることができる。
【００４９】
この諸実施形態をファームウェアで実現することにより、また、特定の諸実施形態ではＩＰＬでメモリ予約を実行することにより、オペレーティング・システムに存在する可能性のあるメモリ予約の限界を迂回することができる。たとえば、オペレーティング・システム１１０が、全メモリに比べ、予約メモリの量について８０％という上限を設定している場合でも、この諸実施形態により、予約メモリはオペレーティング・システム１１０によって課せられる８０％という上限を超えることができる。
【００５０】
図５は本発明の特定の諸実施形態により論理メモリ・ブロック２００ａ・・・２００ｎを２次記憶装置１０２にスワップするためのロジックを示している。このロジックは計算装置１００内に実現することができる。
【００５１】
制御はブロック５００から開始され、そこでオペレーティング・システム１１０の仮想メモリ・マネージャ１１４は、メモリ１０６から２次記憶装置１０２に論理メモリ・ブロックをスワップするための命令を実行する。
【００５２】
仮想メモリ・マネージャ１１４は、（ブロック５０２で）論理ブロックを検査し、（ブロック５０４で）検査した論理ブロックに対応する予約属性２０４ａ・・・２０４ｎがブール値「真」を有するかどうかを判定する。有する場合、仮想メモリ・マネージャ１１４は（ブロック５０６で）、検査したメモリ・ブロックをメモリ１０６から２次記憶装置１０２に移転しない。
【００５３】
仮想メモリ・マネージャ１１４は（ブロック５０８で）、もっと多くの論理メモリ・ブロックを２次記憶装置１０２にスワップしなければならないかどうかを判定する。そうである場合、仮想メモリ・マネージャ１１４は（ブロック５０２で）次の論理メモリ・ブロックを検査する。そうではない場合、プロセスは（ブロック５１０で）停止する。
【００５４】
検査した論理ブロックの予約属性２０４ａ・・・２０４ｎがブール値「真」ではないと仮想メモリ・マネージャ１１４が（ブロック５０４で）判定した場合、仮想メモリ・マネージャ１１４は（ブロック５１２で）、検査した論理メモリ・ブロックをメモリ１０６から２次記憶装置１０２に移転、すなわち、スワップすることができる。仮想メモリ・マネージャ１１４は（ブロック５０８で）、追加の論理メモリ・ブロックを２次記憶装置１０２にスワップしなければならないかどうかを判定する。
【００５５】
したがって、図５は、仮想メモリ・マネージャ１１４が予約されていないメモリのみを２次記憶装置１０２にページングできる特定の諸実施形態を示している。さらに、仮想メモリ・マネージャ１１４は、予約されているメモリと予約されていないメモリの両方についてアドレス変換を行うこともできる。
【００５６】
図６は本発明の特定の諸実施形態によりオペレーティング・システム１１０によって実現されたメモリ管理ポリシーのブロック図を示している。特定の諸実施形態では、オペレーティング・システム１１０は、予約されていないメモリを管理するための正規メモリ管理ポリシー６００と、予約されているメモリを管理するための予約メモリ管理ポリシー６０２とを有することができる。
【００５７】
たとえば、例示的な正規メモリ管理ポリシー６００は定期的ガーベッジ・コレクションを含む可能性があり、例示的な予約メモリ管理ポリシー６０２は特定の諸実施形態では定期的ガーベッジ・コレクションのための備えをまったく含まない可能性がある。
【００５８】
図７は本発明の特定の諸実施形態によりメモリ管理ポリシー６００、６０２を適用するためのロジックを示している。
【００５９】
制御はブロック７００から開始され、そこでオペレーティング・システム１１０は論理メモリ・ブロック２００ａ・・・２００ｎについてメモリ管理操作を実行する準備ができている。オペレーティング・システム１１０は（ブロック７０２で）、論理メモリ・ブロック２００ａ・・・２００ｎが予約メモリ・ブロックであることを論理メモリ・ブロック２００ａ・・・２００ｎの対応する予約属性２０４ａ・・・２０４ｎが示しているかどうかを判定する。示している場合、オペレーティング・システム１１０は（ブロック７０４で）、予約メモリ管理ポリシー６００によってメモリ管理操作を実行する。示していない場合、オペレーティング・システム１１０は（ブロック７０６で）、正規メモリ管理ポリシーによってメモリ管理操作を実行する。特定の追加の諸実施形態では、その他の属性２０６ａ・・・２０６ｎも使用して、特定のメモリ管理ポリシーを決定することができる。
【００６０】
したがって、図６および図７は、論理メモリ・ブロック２００ａ・・・２００ｎが予約メモリであるかまたは予約されていないメモリであるかに基づいて、論理メモリ・ブロック２００ａ・・・２００ｎに異なるメモリ管理ポリシーを適用できる特定の諸実施形態を示している。
【００６１】
この諸実施形態では、その論理メモリ・ブロックが予約されており、２次記憶装置１０２へのページングが許可されない可能性があることを示すために、各論理メモリ・ブロック２００ａ・・・２００ｎごとに１つの予約属性２０４ａ・・・２０４ｎを提供する。特定の諸実施形態では、オペレーティング・システム１１０は、メモリ１０６内の論理メモリ・ブロック２００ａ・・・２００ｎを正規プールと予約プールに分割することができる。オペレーティング・システム１１０の仮想メモリ・マネージャ１１４は、正規プールと予約プールの両方についてアドレス変換を行うことができる。しかし、仮想メモリ・マネージャ１１４は、正規プールからのメモリしか２次記憶装置１０２にページングすることができない。
【００６２】
特定の諸実施形態では、仮想メモリ・マネージャがカスタマ・データを２次記憶装置にページングしないように、予約メモリを使用してカスタマ・データをバッファリングすることができる。この諸実施形態では、オペレーティング・システムの既存のメモリ予約方式に対していかなる変更も必要ではない可能性がある。しかし、オペレーティング・システムによって予約することが許可される可能性があるメモリの量に限界がある場合、この諸実施形態により、アプリケーションがその限界を超えることができる。
【００６３】
諸実施形態のうちのいくつかでは、オペレーティング・システム１１０は、予約されていないメモリに比べ、予約メモリに対して異なる管理ポリシーを適用することができる。また、特定の諸実施形態では、オペレーティング・システム１１０は、他のアプリケーションが予約メモリにアクセスするために標準的な変換を行うことができる。特定の諸実施形態はさらに、より迅速なアドレス変換のために予約メモリを連続物理ブロックとして実現することができる。予約メモリは２次記憶装置にページングされない可能性があり、予約メモリのアドレス変換は静的なものになる可能性がある。特定の諸実施形態では、アプリケーションは、関連のページ・テーブル記入項目に照会せずにアドレス変換を計算することができる。さらに、予約メモリの範囲およびＩＤは、計算装置１００のＩＰＬの繰り返しの間、持続的なものになる可能性がある。
【００６４】
追加の実現例の詳細
上記の技法は、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組合せを作成するための標準的なプログラミングおよび／またはエンジニアリング技法を使用する方法、装置、または製品として実現することができる。本明細書で使用する「製品」という用語は、ハードウェア・ロジック（たとえば、集積回路チップ、プログラマブル・ゲート・アレイ（ＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）など、またはコンピュータ可読媒体（たとえば、ハードディスク・ドライブ、フレキシブル・ディスク、テープなどの磁気記憶媒体）、光学記憶装置（たとえば、ＣＤ−ＲＯＭ、光ディスクなど）、揮発性および不揮発性メモリ・デバイス（たとえば、ＥＥＰＲＯＭ、ＲＯＭ、ＰＲＯＭ、ＲＡＭ、ＤＲＡＭ、ＳＲＡＭ、ファームウェア、プログラマブル・ロジックなど）内に実現されたコードまたはロジックを指す。コンピュータ可読媒体内のコードはプロセッサによってアクセスされ、実行される。諸実施形態が作成されるコードはさらに、伝送媒体によりまたはネットワークを介してファイル・サーバからアクセス可能なものにすることができる。このようなケースでは、コードが実現される製品は、ネットワーク伝送回線、ワイヤレス伝送媒体、空間を伝搬する信号、電波、赤外線信号などの伝送媒体を含むことができる。当然のことながら、当業者は、諸実施形態の範囲を逸脱せずにこの構成に対して多くの変更が可能でることと、製品が当技術分野で既知の情報運搬媒体を含むことができることを認識するであろう。
【００６５】
図８は本発明の特定の諸態様が実現されたコンピュータ・アーキテクチャのブロック図を示している。図８は計算装置１００の一実現例を示している。計算装置１００は、プロセッサ８０２（たとえば、ＣＰＵ１０４）と、メモリ８０４（たとえば、メモリ１０６などの揮発性メモリ・デバイス）と、記憶装置８０６（たとえば、不揮発性記憶装置、磁気ディスク・ドライブ、光ディスク・ドライブ、テープ・ドライブなど）とを有するコンピュータ・アーキテクチャ８００を実現することができる。特定の諸実施形態では、記憶装置８０６は２次記憶装置１０２を含むことができる。記憶装置８０６は、内部記憶装置、付加記憶装置、またはネットワーク・アクセス可能記憶装置を含むことができる。記憶装置８０６内のプログラムは、当技術分野で既知の通り、メモリ８０４内にロードして、プロセッサ８０２によって実行することができる。このアーキテクチャは、ネットワークとの通信を可能にするためのネットワーク・カード８０８をさらに含むことができる。また、このアーキテクチャは、キーボード、タッチスクリーン、ペン、音声起動入力などの少なくとも１つの入力８１０と、表示装置、スピーカ、プリンタなどの少なくとも１つの出力８１２も含むことができる。
【００６６】
図４、図５、および図７のロジックは、特定の順序で行われる特定の操作を記述している。さらに、これらの操作は同時にまたは順次実行することができる。代替実施形態では、これらのロジック操作のいくつかは、異なる順序で実行するか、変更または除去することができ、それでも本発明の諸実施形態を実現することができる。その上、上記のロジックに複数ステップを追加することができ、それでも諸実施形態に合致することができる。さらに、複数ステップを単一プロセスで実行するかまたは複数分散プロセスで実行することができる。
【００６７】
ソフトウェアおよびハードウェア・コンポーネントの多くは、例示のために個別モジュールとして記載されている。このようなコンポーネントは、より少数のコンポーネントに統合するかまたはより多数のコンポーネントに分割することができる。さらに、特定のコンポーネントによって実行されるものとして記載されている特定の操作は他のコンポーネントによって実行することもできる。
【００６８】
したがって、諸実施形態の上記の説明は、例示および記述のために提示されたものである。網羅的なものではなく、開示された精密な形式に本発明を限定するものでもない。上記の教示を考慮すると、多くの変更および変形が可能である。本発明の範囲は、この詳細な説明によって制限されるわけではなく、むしろ特許請求の範囲によって制限されるものである。上記の仕様、例、およびデータは本発明の構成の製造および使用に関する完全な説明を示している。本発明の多くの諸実施形態は本発明の精神および範囲を逸脱せずに作成することができるので、本発明は特許請求の範囲に帰するものである。
【図面の簡単な説明】
【００６９】
【図１】本発明の特定の上記の諸実施形態によるコンピューティング環境のブロック図である。
【図２】本発明の特定の上記の諸実施形態によりコンピューティング環境で実現されたデータ構造のブロック図である。
【図３】本発明の特定の上記の諸実施形態によりコンピューティング環境で実現された例示的な論理メモリ・ブロックのブロック図である。
【図４】本発明の特定の上記の諸実施形態によりメモリを予約するためのロジックを示す図である。
【図５】本発明の特定の上記の諸実施形態によりメモリから２次記憶装置にスワップするためのロジックを示す図である。
【図６】本発明の特定の上記の諸実施形態によりコンピューティング環境で実現されたメモリ管理ポリシーのブロック図である。
【図７】本発明の特定の上記の諸実施形態によりメモリ管理ポリシーを適用するためのロジックを示す図である。
【図８】本発明の特定の上記の諸態様が実現されたコンピュータ・アーキテクチャのブロック図である
【符号の説明】
【００７０】
１００  計算装置
１０２  ２次記憶装置（たとえば、ディスク）
１０４  ＣＰＵ
１０６  メモリ
１０８  ファームウェア
１１０  オペレーティング・システム
１１２  メモリ予約アプリケーション
１１４  仮想メモリ・マネージャ
【図１】
2005196793.tif 000003
【図２】
2005196793.tif 000004
【図３】
2005196793.tif 000005
【図４】
2005196793.tif 000006
【図５】
2005196793.tif 000007
【図６】
2005196793.tif 000008
【図７】
2005196793.tif 000009
【図８】
2005196793.tif 000010