(57)【特許請求の範囲】
【請求項１】
メモリ割当て方法であって、前記方法はコンピュータ・システムに適用され、前記コンピュータ・システムはメモリ・リソース、基本入出力システム（ＢＩＯＳ）、およびオペレーティング・システム（ＯＳ）を備え、前記メモリ・リソースは初期のミラー化されたメモリを備え、前記オペレーティング・システムを実行したとき、前記方法は、
メモリ割当てを要求するデータがミラー識別子を運搬するかどうかを検出するステップであって、前記ミラー識別子がカーネル・データおよびクリティカルなユーザ・データにおいて設定され、前記クリティカルなユーザ・データは、ユーザ・データにおける、ミラー化された記憶を要求するユーザ指定のデータである、ステップと、
前記メモリ割当てを要求するデータが前記ミラー識別子を運搬すると検出したとき、前記初期のミラー化されたメモリの未占有部分を前記メモリ割当てを要求するデータに割り当てるステップであって、前記初期のミラー化されたメモリは、前記ＯＳの初期化中に前記ＢＩＯＳにより前記ＯＳに提供されたミラー化されたメモリのアドレス範囲により示される、ステップと、
を含み、
前記メモリ割当てを要求するデータが前記クリティカルなユーザ・データであるとき、同一のプロセスのデータが前記初期のミラー化されたメモリに格納されているかどうかを判定するステップであって、前記同一のプロセスの前記データは、前記クリティカルなユーザ・データを生成する前記同一のプロセスにより前記クリティカルなユーザ・データの前に生成されたデータである、ステップと、
前記同一のプロセスの前記データが元のミラー化されたメモリに格納されていない場合、前記同一のプロセスの前記データを前記初期のミラー化されたメモリにマイグレートするステップと、
をさらに含む、方法。
【請求項２】
前記初期のミラー化されたメモリの未占有部分を、前記メモリ割当てを要求するデータに割り当てるステップは、
前記メモリ割当てを要求するデータが属する予め計画されたメモリ・リソース領域を決定するステップであって、前記予め計画されたメモリ・リソース領域は前記初期のミラー化されたメモリの１つまたは複数のセグメントに対応する、ステップと、
前記１つまたは複数のセグメントの未占有部分を前記ミラー化されたメモリに格納されるべき前記データに割り当てるステップと
を含む、請求項１に記載の方法。
【請求項３】
前記割り当てられたミラー化されたメモリのアドレス範囲に対して占有フラグを設定するステップをさらに含む、請求項１または２に記載の方法。
【請求項４】
前記方法は特に、
前記メモリ割当てを要求するデータに対応するノードを決定し、前記メモリ割当てを要求するデータに、前記ノードのミラー化されたメモリの未占有部分を割り当てるステップであって、各ノードは前記初期のミラー化されたメモリの１つまたは複数のセグメントを含む、ステップ
を含む、請求項２に記載の方法。
【請求項５】
全てのノードは不均一メモリ・アクセス（ＮＵＭＡ）アーキテクチャに従って計画される、請求項４に記載の方法。
【請求項６】
メモリ割当て装置であって、前記装置はコンピュータ・システムに適用され、前記コンピュータ・システムはメモリ・リソース、基本入出力システム（ＢＩＯＳ）、およびオペレーティング・システム（ＯＳ）を備え、前記メモリ・リソースは初期のミラー化されたメモリを備え、前記装置は、
メモリ割当てを要求するデータがミラー識別子を運搬するかどうかを検出するように構成された検出ユニットであって、前記ミラー識別子がカーネル・データおよびクリティカルなユーザ・データにおいて設定され、前記クリティカルなユーザ・データは、ユーザ・データにおける、ミラー化された記憶を要求するユーザ指定のデータである、検出ユニットと、
前記メモリ割当てを要求するデータが前記ミラー識別子を運搬することが検出されたとき、前記初期のミラー化されたメモリの未占有部分を、前記メモリ割当てを要求するデータに割り当てるように構成された割当てユニットであって、前記初期のミラー化されたメモリは、前記ＯＳの初期化中に前記ＢＩＯＳにより前記ＯＳに提供されたミラー化されたメモリのアドレス範囲により示される、割当てユニットと、
を備え、
前記メモリ割当てを要求するデータが前記クリティカルなユーザ・データであるとき、同一のプロセスのデータが前記初期のミラー化されたメモリに格納されるかどうかを判定するように構成された判定ユニットであって、前記同一のプロセスの前記データは、前記クリティカルなユーザ・データを生成する前記同一のプロセスにより前記クリティカルなユーザ・データの前に生成されたデータである、判定ユニットと、
前記判定ユニットが、前記同一のプロセスの前記データが前記ミラー化されたメモリに格納されていないと判定したとき、前記同一のプロセスの前記データを前記初期のミラー化されたメモリにマイグレートするように構成されたマイグレーション・ユニットと、
をさらに備える、装置。
【請求項７】
前記割当てユニットは、
前記メモリ割当てを要求するデータに対応する予め計画されたメモリ・リソース領域を決定するように構成された決定サブユニットであって、前記予め計画されたメモリ・リソース領域は前記初期のミラー化されたメモリの１つまたは複数のセグメントに対応する、決定サブユニットと、
前記１つまたは複数のセグメントの未占有部分を前記ミラー化されたメモリに格納されるべき前記データに割り当てるように構成された割当てサブユニットと、
を備える、請求項６に記載の装置。
【請求項８】
前記割り当てられたミラー化されたメモリのアドレス範囲に対して占有フラグを設定するように構成された第２の設定ユニットをさらに備える、請求項６または７に記載の装置。
【請求項９】
前記決定サブユニットは特に、前記メモリ割当てを要求するデータに対応するノードを決定するように構成され、
前記割当てサブユニットは、前記メモリ割当てを要求するデータに、前記ノードのミラー化されたメモリの未占有部分を割り当てるように構成され、各ノードは前記初期のミラー化されたメモリの１つまたは複数のセグメントを含む、
請求項７に記載の装置。
【請求項１０】
全てのノードは不均一メモリ・アクセス（ＮＵＭＡ）アーキテクチャに従って計画される、請求項９に記載の装置。
【請求項１１】
コンピュータ可読命令を格納するように構成されたメモリであって、前記メモリはミラー化されたメモリを備え、前記ミラー化されたメモリは、基本入出力システム（ＢＩＯＳ）によりオペレーティング・システム（ＯＳ）に前記ＯＳの初期化中に提供される、ミラー化されたメモリのアドレス範囲により示される、メモリと、
請求項１から５のいずれか一項に記載の方法を実施するように、前記コンピュータ可読命令を前記メモリから読み出すように構成されたプロセッサと、
を備える、コンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータ技術の分野に関し、特にメモリ割当て方法および装置に関する。
【背景技術】
【０００２】
メモリ信頼性はコンピュータ・システムの信頼性に大きな影響を及ぼす。したがって、メモリ信頼性を改善する必要がある。今日、メモリ・ミラーリングは一般にメモリ信頼性を改善するために先行技術で使用される。
【０００３】
メモリ・ミラーリング技術の動作原理は以下の通りである。即ち、２つのメモリ領域はハードウェアで計画される。一方はプライマリ・メモリとして使用され、他方はミラー化されたメモリとして使用される。実行されると、オペレーティング・システムはメモリ内にデータの２つのコピーを作成し、これらはそれぞれ当該プライマリ・メモリおよび当該ミラー化されたメモリに格納される。したがって、当該メモリ内のデータに対して、２組の完全なバックアップ・データがある。完全なメモリ・ミラーリングは、メモリ内の全てのデータに対してコピーが存在することを要求する。サーバ・システムが正常に実行するとき、オリジナルが使用される。１つのコピーのホストが故障すると、他のコピーが代わりに使用される。このように、メモリ・チャネルの故障により生ずるデータ・ロスが効果的に回避され、サーバの信頼性が大幅に向上する。しかし、この機能を実装するために二重の物理メモリが必要とされ、実際の容量利用は５０％にすぎない。非常に高いコストのために、実際に、完全なメモリ・ミラーリングを使用する製品は殆どない。
【０００４】
先行技術では、部分的なメモリ・ミラーリング技術が出現している。当該技術が、コンピュータ・システム内のメモリの一部（例えば、メモリ・アドレスのセグメントまたは幾つかのセグメントの領域）をミラー化されたメモリとして使用してもよい。しかし、先行技術では、当該ミラー化されたメモリはハードウェア層のみに存在し、当該オペレーティング・システムは当該ハードェア層を認識しない。当該ハードェア層内の当該ミラー化されたメモリが変化すると、当該ミラー化されたメモリを当該オペレーティング・システムにおいて正確に発見できず、結果として、データを正確に当該ミラー化されたメモリに格納することができない。さらに、当該ミラー化されたメモリのサイズが制限される。当該ミラー化されたメモリをデータに割り当てるとき、当該コンピュータ・システムは当該ミラー化されたメモリを、最初に生成されたデータにのみ割り当てる。当該ミラー化されたメモリが完全に占有された後、ミラー化されたメモリを、ミラー化されたメモリを割り当てる必要がある他のデータに割り当てることができない。
【発明の概要】
【課題を解決するための手段】
【０００５】
オペレーティング・システムがミラー化されたメモリの変化を認識できず当該ミラー化されたメモリのサイズが制限されている場合に当該ミラー化されたメモリが割り当てられる必要があるデータに当該ミラー化されたメモリを割り当てることができない先行技術と比較すると、本発明の１実施形態により提供されるメモリ割当て方法は、ミラー化されたメモリを正確に発見でき、当該ミラー化されたメモリに格納する必要があるデータに当該ミラー化されたメモリを割り当てることができる。当該方法は、当該制限されたミラー化されたメモリの高い利用を保証し、システム信頼性を高める。本発明の１実施形態では対応する装置をさらに提供する。
【０００６】
本発明の第１の態様ではメモリ割当て方法を提供する。当該方法はコンピュータ・システムに適用され、当該コンピュータ・システムは、メモリ・リソース、基本入出力システム（ＢＩＯＳ）、およびオペレーティング・システム（ＯＳ）を備える。当該メモリ・リソースは初期のミラー化されたメモリを含み、当該オペレーティング・システムを実行したとき、当該方法は、
当該初期のミラー化されたメモリ内の未占有のミラー化されたメモリを取得するステップであって、当該初期のミラー化されたメモリは、ＯＳの初期化中にＢＩＯＳによりＯＳに提供されたミラー化されたメモリのアドレス範囲により示されたミラー化されたメモリである、ステップと、
メモリ割当てを要求するデータに検出を実施するステップと、
当該データがミラー化されたメモリに格納すべきデータであると検出したとき、当該未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるステップと
を含む。
【０００７】
第１の態様を参照すると、第１の可能な実装方式では、前記メモリ割当てを要求するデータに検出を実施するステップの前に、当該方法はさらに、
ミラー識別子をカーネル・データおよびクリティカルなユーザ・データに対して設定するステップであって、当該クリティカルなユーザ・データはミラー化された記憶を要求するユーザ指定のデータである、ステップ
を含み、
メモリ割当てを要求するデータに検出を実施するステップは、
当該メモリ割当てを要求するデータが当該ミラー識別子を運搬するかどうかを検出するステップを含み、
当該データがミラー化されたメモリに格納すべきデータであると検出したとき、未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるステップは、
当該メモリ割当てを要求するデータが当該ミラー識別子を運搬すると検出したとき、当該メモリ割当てを要求するデータがカーネル・データまたはクリティカルなユーザ・データであると判定し、当該未占有のミラー化されたメモリから、当該ミラー化されたメモリをカーネル・データまたはクリティカルなユーザ・データに割り当てるステップを含む。
【０００８】
第１の態様の第１の可能な実装方式を参照すると、第２の可能な実装方式では、当該方法はさらに、
当該メモリ割当てを要求するデータがクリティカルなユーザ・データであるとき、同一のプロセスのデータが当該初期のミラー化されたメモリに格納されるかどうかを判定するステップであって、当該同一のプロセスのデータは、当該クリティカルなユーザ・データを生成する同一のプロセスにより当該クリティカルなユーザ・データの前に生成されたデータである、ステップと、
当該同一のプロセスのデータが元のミラー化されたメモリに格納されていない場合、当該同一のプロセスのデータを当該初期のミラー化されたメモリにマイグレートするステップと
を含む。
【０００９】
第１の態様または第１の態様の第１のまたは第２の可能な実装方式を参照すると、第３の可能な実装方式では、当該未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるステップは、
当該ミラー化されたメモリに格納されるべきデータが属する予め計画されたメモリ・リソース領域を決定するステップと、
当該データが属する当該予め計画されたメモリ・リソース領域の未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるステップと
を含む。
【００１０】
第１の態様または第１の態様の第１のまたは第２の可能な実装方式を参照すると、第４の可能な実装方式では、当該未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるステップの後、当該方法はさらに、
当該ミラー化されたメモリに格納されるべきデータに割り当てられた当該ミラー化されたメモリのアドレス範囲に占有フラグを設定するステップを含む。
【００１１】
本発明の第２の態様ではメモリ割当て装置を提供する。当該装置はコンピュータ・システムに適用され、当該コンピュータ・システムは、メモリ・リソース、基本入出力システム（ＢＩＯＳ）、およびオペレーティング・システム（ＯＳ）を備える。当該メモリ・リソースは初期のミラー化されたメモリを含み、当該オペレーティング・システムを実行したとき、当該装置は、
当該初期のミラー化されたメモリ内の未占有のミラー化されたメモリを取得するように構成された取得ユニットであって、当該初期のミラー化されたメモリは、ＯＳの初期化中にＢＩＯＳによりＯＳに提供されたミラー化されたメモリのアドレス範囲により示されたミラー化されたメモリである、取得ユニットと、
メモリ割当てを要求するデータに検出を実施するように構成された検出ユニットと、
当該取得ユニットにより取得された未占有のミラー化されたメモリから、当該データがミラー化されたメモリに格納すべきデータであると当該検出ユニットが判定したとき、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるように構成された割当てユニットと、
を備える。
【００１２】
第２の態様を参照すると、第１の可能な実装方式では、当該装置はさらに、
当該検出ユニットが、当該メモリ割当てを要求するデータに検出を実施する前にミラー識別子をカーネル・データおよびクリティカルなユーザ・データに設定するように構成された第１の設定ユニットであって、当該クリティカルなユーザ・データはミラー化された記憶を要求するユーザ指定のデータである、第１の設定ユニット
を備え、
当該検出ユニットは、当該メモリ割当てを要求するデータが第１の設定ユニットにより設定されたミラー識別子を運搬するかどうかを検出するように構成され、
当該割当てユニットは、当該メモリ割当てを要求するデータが当該ミラー識別子を運搬すると当該検出ユニットが検出したとき、当該メモリ割当てを要求するデータがカーネル・データまたはクリティカルなユーザ・データであると判定し、当該未占有のミラー化されたメモリから、当該ミラー化されたメモリをカーネル・データまたはクリティカルなユーザ・データに割り当てるように構成される。
【００１３】
第２の態様の第１の可能な実装方式を参照すると、第２の可能な実装方式では、当該装置はさらに、
当該メモリ割当てを要求するデータがクリティカルなユーザ・データであるとき、同一のプロセスのデータが当該初期のミラー化されたメモリに格納されるかどうかを判定するように構成された判定ユニットであって、当該同一のプロセスのデータは、当該クリティカルなユーザ・データを生成する同一のプロセスにより当該クリティカルなユーザ・データの前に生成されたデータである、判定ユニットと、
当該判定ユニットが、当該同一のプロセスのデータが当該ミラー化されたメモリに格納されていないと判定したとき、当該同一のプロセスのデータを当該初期のミラー化されたメモリにマイグレートするように構成されたマイグレーション・ユニットと
を備える。
【００１４】
第２の態様または第２の態様の第１のまたは第２の可能な実装方式を参照すると、第３の可能な実装方式では、当該割当てユニットは、
当該ミラー化されたメモリに格納されるべきデータが属する予め計画されたメモリ・リソース領域を決定するように構成された決定サブユニットと、
当該決定サブユニットにより決定された当該データが属する当該予め計画されたメモリ・リソース領域の未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるように構成された割当てサブユニットと
を備える。
【００１５】
第２の態様または第２の態様の第１のまたは第２の可能な実装方式を参照すると、第４の可能な実装方式では、当該装置はさらに、当該割当てユニットが当該ミラー化されたメモリを割り当てた後、当該ミラー化されたメモリに格納されるべきデータに割り当てられた当該ミラー化されたメモリのアドレス範囲に占有フラグを設定するように構成された第２の設定ユニットを備える。
【００１６】
本発明の１実施形態ではメモリ割当て方法を提供する。当該方法はコンピュータ・システムに適用され、当該コンピュータ・システムは、メモリ・リソース、基本入出力システム（ＢＩＯＳ）、およびオペレーティング・システム（ＯＳ）を備える。当該メモリ・リソースは初期のミラー化されたメモリを含む。当該オペレーティング・システムを実行したとき、当該方法は、当該初期のミラー化されたメモリ内の未占有のミラー化されたメモリを取得するステップであって、当該初期のミラー化されたメモリは、ＯＳの初期化中にＢＩＯＳによりＯＳに提供されたミラー化されたメモリのアドレス範囲により示されたミラー化されたメモリである、ステップと、メモリ割当てを要求するデータに検出を実施するステップと、当該データがミラー化されたメモリに格納すべきデータであると検出したとき、当該未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるステップとを含む。オペレーティング・システムがメモリの変化を認識できず、当該ミラー化されたメモリのサイズが制限されている場合に当該ミラー化されたメモリが割り当てられる必要があるデータに当該ミラー化されたメモリを割り当てることができない先行技術と比較すると、本発明の当該実施形態により提供されたメモリ割当て方法では、ＢＩＯＳでは、当該ミラー化されたメモリのアドレス範囲をＯＳに提供するので、当該方法は当該ミラー化されたメモリを正確に発見し、当該ミラー化されたメモリに格納する必要があるデータに当該ミラー化されたメモリを割り当てることができる。したがって、当該方法は、当該制限されたミラー化されたメモリの利用効率を保証し、システム信頼性を高める。
【００１７】
本発明の実施形態または先行技術における実施形態の技術的解決策をより明確に説明するために、以下では、当該実施形態または先行技術を説明するのに必要な添付図面を簡単に説明する。明らかに、以下の説明における添付図面は本発明の幾つかの実施形態を示すにすぎず、当業者は創造的努力なしにこれらの添付図面から他の図面を依然として導出することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の１実施形態に従うコンピュータ・システムのアーキテクチャの略図である。
【図２】本発明の１実施形態に従うメモリ割当て方法の略図である。
【図３】本発明の１実施形態に従うメモリ割当て装置の略図である。
【図４】本発明の別の実施形態に従うメモリ割当て装置の略図である。
【図５】本発明の別の実施形態に従うメモリ割当て装置の略図である。
【図６】本発明の別の実施形態に従うメモリ割当て装置の略図である。
【図７】本発明の別の実施形態に従うメモリ割当て装置の略図である。
【図８】本発明の１実施形態に従うメモリ割当て装置の略図である。
【発明を実施するための形態】
【００１９】
本発明の１実施形態ではメモリ割当て方法を提供する。当該方法はミラー化されたメモリを正確に発見でき、当該ミラー化されたメモリに格納する必要があるデータに当該ミラー化されたメモリを割り当てることができる。したがって、当該方法は、当該制限されたミラー化されたメモリの利用効率を保証し、システム信頼性を高める。本発明の１実施形態ではさらに、対応する装置とシステムを提供する。詳細な説明を以降別々に提供する。
【００２０】
本発明の技術的解決策を当業者により良く理解させるために、以下では、本発明の実施形態における添付図面を参照して、本発明の実施形態の技術的解決策を明確かつ十分に説明する。明らかに、説明する実施形態は本発明の実施形態の全部ではなく一部にすぎない。当業者が創造的努力なしに本発明の実施形態に基づいて取得した他の全ての実施形態は本発明の保護範囲に入るものとする。
【００２１】
図１を参照すると、本発明の１実施形態により提供されるコンピュータ・システムのアーキテクチャは、ハードウェア・リソース層、基本入出力システム（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ、ＢＩＯＳ）、オペレーティング・システム（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ、ＯＳ）、およびユーザ・アプリケーション層を含んでもよい。当該ハードウェア・リソース層は、プロセッサ、メモリ、および入出力システムのようなハードウェア・リソースを含んでもよい。当該ユーザ・アプリケーション層は、様々なサービス・アプリケーションを含んでもよい。本発明の当該実施形態におけるオペレーティング・システムがＬｉｎｕｘ（登録商標）システムであってもよい。
【００２２】
当該メモリがミラー化されたメモリを含んでもよい。オペレーティング・システムの初期化の間、ＢＩＯＳはメモリ情報をＯＳに報告する。当該メモリ情報は、ミラー化されたメモリのアドレス範囲を含む、様々なタイプのメモリのアドレス範囲であってもよい。例えば、以下の情報が含まれてもよく、ｅ８２０マップの形で表されてもよい。即ち、
ｅ８２０：ＢＩＯＳで提供された物理ＲＡＭマップ：
[mem 0x0000000000000000-0x000000000009a7ff] 使用可
[mem 0x000000000009a800-0x000000000009ffff] 予約済み
[mem 0x00000000000e4b60-0x00000000000fffff] 予約済み
[mem 0x0000000000100000-0x000000003fffffff] ミラー   （１ＭＢ乃至１ＧＢ）
[mem 0x0000000040000000-0x00000000bf78ffff] 使用可   （１ＧＢ乃至３０６３ＭＢ）
[mem 0x00000000bf790000-0x00000000bf79dfff] ACPIデータ
[mem 0x00000000bf79e000-0x00000000bf7cffff] ACPI NVS
[mem 0x00000000bf7d0000-0x00000000bf7dffff] 予約済み
[mem 0x00000000bf7ec000-0x00000000bfffffff] 予約済み
[mem 0x00000000e0000000-0x00000000efffffff] 予約済み
[mem 0x00000000fee00000-0x00000000fee00fff] 予約済み
[mem 0x00000000fff00000-0x00000000ffffffff] 予約済み
[mem 0x0000000100000000-0x00000002ffffffff] 使用可   （４ＧＢ乃至１２ＧＢ）
[mem 0x0000000300000000-0x000000033fffffff] ミラー   （１２ＧＢ乃至１３ＧＢ）
[mem 0x0000000340000000-0x00000005ffffffff] 使用可   （１３ＧＢ乃至２４ＧＢ）
[mem 0x0000000600000000-0x000000063fffffff] ミラー   （２４ＧＢ乃至２５ＧＢ）
[mem 0x0000000640000000-0x0000000bffffffff] 使用可   （２５ＧＢ乃至３６ＧＢ）
[mem 0x0000000900000000-0x000000093fffffff] ミラー   （３６ＧＢ乃至３７ＧＢ）
[mem 0x0000000940000000-0x0000000c3fffffff] 使用可   （３７ＧＢ乃至４８ＧＢ）・・・
【００２３】
ミラーとマークされたアドレス範囲に対応するメモリがミラー化されたメモリである。本発明の当該実施形態では、当該ミラー化されたメモリのアドレス範囲は（１ＭＢ乃至１ＧＢ）、（１２ＧＢ乃至１３ＧＢ）、（２４ＧＢ乃至２５ＧＢ）、および（３６ＧＢ乃至３７ＧＢ）である。
【００２４】
オペレーティング・システムが、ＢＩＯＳにより報告されたメモリ情報に従って、ミラー化されたメモリ管理ゾーンＭＩＲＲＯＲ  ＺＯＮＥを生成してもよい。ＭＩＲＲＯＲ  ＺＯＮＥはミラー化されたメモリ領域を追跡し管理するために使用され、その編成方式は正常なメモリ管理ゾーンと同じである。複数のＭＩＲＲＯＲ  ＺＯＮＥがあってもよく、当該複数のＭＩＲＲＯＲ  ＺＯＮＥがＺＯＮＥ  Ｌｉｓｔを構成する。例えば、本発明の当該実施形態におけるミラー化されたメモリに対して、４つのＭＩＲＲＯＲ  ＺＯＮＥ、即ち、（１ＭＢ乃至１ＧＢ）、（１２ＧＢ乃至１３ＧＢ）、（２４ＧＢ乃至２５ＧＢ）、および（３６ＧＢ乃至３７ＧＢ）があってもよく、ＭＩＲＲＯＲ＿ＺＯＮＥ１、ＭＩＲＲＯＲ＿ＺＯＮＥ２、ＭＩＲＲＯＲ＿ＺＯＮＥ３、およびＭＩＲＲＯＲ＿ＺＯＮＥ４と順番に採番してもよい。不均一メモリ・アクセス（Ｎｏｎ  Ｕｎｉｆｏｒｍ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ａｒｃｈｉｔｅｃｔｕｒｅ、ＮＵＭＡ）アーキテクチャによれば、４８Ｇのメモリを、４つのノード、即ち、（０ＭＢ乃至１２ＧＢ）、（１３ＧＢ乃至２４ＧＢ）、（２５ＧＢ乃至３６ＧＢ）、および（３７ＧＢ乃至４８ＧＢ）に分割してもよい。当該４つのＭＩＲＲＯＲ  ＺＯＮＥはそれぞれ当該４つのノードに属する。ミラー化されたメモリの割当ての間、ローカル・ノードのミラー化されたメモリが優先的に割り当てられ、その結果、ノード間メモリ・アクセスに起因する長いレイテンシが回避される。
【００２５】
メモリがカーネル・データに割り当てられると、ｎｅｗ＿＿ＧＦＰ＿ｍｉｒｒｏｒ識別子を、ミラー化されたメモリをカーネルに優先的に割り当てるための識別子として使用してもよい。メモリがユーザ・データに割り当てられると、＿＿ＧＦＰ＿ｍｉｒｒｏｒ識別子を、ミラー化されたメモリを優先的に割り当てるために指定してもよく、または、当該設定が、ミラー化されたメモリがデフォルトでカーネル・データに優先的に割り当てられるというものであってもよい。例えば、ＧＦＰ＿ＫＥＲＮＥＬのデフォルト値が変化し、その結果、ミラー化されたメモリがデフォルトで優先的に割り当てられる。即ち、
#define GFP_KERNEL  (__GFP_WAIT | __GFP_IO | __GFP_FS | __GFP_mirror)
である。
【００２６】
ミラー化されたメモリをカーネル・データに優先的に割り当てるプロセスは以下の通りである。
【００２７】
（１）開始されたとき、ＯＳが、ミラー化されたメモリを優先的に割り当てる機能がサポートされるかどうかを判定する（ＢＩＯＳが報告したメモリ分布図内にＭＩＲＲＯＲタイプのメモリがある場合、これは当該機能がサポートされることを示す）。
【００２８】
（２）当該機能がサポートされる場合、ＯＳは、ＢＩＯＳにより報告されたメモリ情報に従って１つまたは複数のＭＩＲＲＯＲ  ＺＯＮＥを生成し、当該１つまたは複数のＭＩＲＲＯＲ  ＺＯＮＥを全てのノードのＺＯＮＥリストに追加し、その結果、各ノードはＭＩＲＲＯＲ  ＺＯＮＥ内のメモリ割当てを実施することを選択することができる。
【００２９】
（３）ａｌｌｏｃ＿ｐａｇｅｓ（）は、最も基本的なページ割り当て器であり、全てのメモリ割当ては最終的に当該ページ割り当て器により完了される。当該ページ割り当て器は、指定されたページ・ゾーン（ＺＯＮＥ）内の１つまたは複数（２の整数乗）の連続ページを割り当てる役割を担う。例えば、＿＿ＧＦＰ＿ｍｉｒｒｏｒ識別子が設定される場合、メモリがＭＩＲＲＯＲ  ＺＯＮＥから優先的に割り当てられる。
【００３０】
（４）メモリ割当ての間、メモリがＭＩＲＲＯＲ  ＺＯＮＥから優先的に割り当てられる。ＭＩＲＲＯＲタイプのメモリが不十分である場合、メモリが正常なゾーンから割り当てられる。
【００３１】
（５）当該システム内のミラー化されたメモリの量が全てのカーネル・データを格納するには過度に少なく不十分である場合、ミラー化されたメモリを割り当てる設定をデフォルトで無効化してもよく、ミラー化されたメモリの手動での割当てに変更してもよい。例えば、より高い信頼性要件を有する幾つかの重要なドライバに対して、＿＿ＧＦＰ＿ｍｉｒｒｏｒ識別子をメモリ割当て中に手動で指定してもよい。
【００３２】
（６）使用後に解放されると、当該ミラー化されたメモリが、対応するＭＩＲＲＯＲ  ＺＯＮＥに解放される。
【００３３】
本発明の当該実施形態では、当該機能を、ａｌｌｏｃ＿ｐａｇｅｓ（）のようなメモリ割当て関数のインタフェースと使用方式を変更せずに、かつ、多数の既存のドライバを修正せずに、使用することができる。
【００３４】
ミラー化されたメモリのユーザ・プロセスのデータへの優先的な割り当て
【００３５】
新たなプロセスに対して、
【００３６】
（１）プロセスが生成される。
【００３７】
（２）プロセス記述子が修正され、ミラー化されたメモリ割当て識別子ＭＩＲＲＯＲ＿ＦＩＲＳＴが当該プロセッサ記述子内で設定される。本発明では、当該識別子を、システム・コールまたはユーザ・モード・コマンドを用いることにより設定してもよい。
【００３８】
（３）メモリ割当ての間に、ＭＩＲＲＯＲ＿ＦＩＲＳＴが設定される場合、ミラー化されたメモリが優先的に使用され、メモリが優先的にＭＩＲＲＯＲ  ＺＯＮＥから割り当てられる。そうでなければ、正常なメモリが使用され、メモリがＮＯＲＭＡＬ  ＺＯＮＥから割り当てられる。ミラー化されたメモリが不十分である場合、正常なメモリが割り当てられる。
【００３９】
（４）サブプロセスが生成されると、ＭＩＲＲＯＲ＿ＦＩＲＳＴ識別子の設定がデフォルトで継承される。
【００４０】
プロセスの実行に対して、
【００４１】
（１）当該プロセスのＭＩＲＲＯＲ＿ＦＩＲＳＴ識別子は／ｐｒｏｃインタフェースまたはシステム・コールを用いることによって設定され、その結果、当該プロセスのメモリ割当ての間に、ミラー化されたメモリが優先的に割り当てられる。
【００４２】
（２）一方、以前に割り当てられた正常なメモリ内のデータが当該ミラー化されたメモリにマイグレートされる。
【００４３】
図２を参照すると、本発明の１実施形態ではメモリ割当て方法を提供する。
【００４４】
当該方法はコンピュータ・システムに適用され、当該コンピュータ・システムは、メモリ・リソース、基本入出力システム（ＢＩＯＳ）、およびオペレーティング・システム（ＯＳ）を備える。当該メモリ・リソースは初期のミラー化されたメモリを含む。オペレーティング・システムを実行したとき、当該方法は以下を含む。
【００４５】
１０１．当該初期のミラー化されたメモリ内の未占有のミラー化されたメモリを取得する。当該初期のミラー化されたメモリは、ＯＳの初期化中にＢＩＯＳによりＯＳに提供されたミラー化されたメモリのアドレス範囲により示されたミラー化されたメモリである。
【００４６】
１０２．メモリ割当てを要求するデータに検出を実施する。
【００４７】
１０３．当該データがミラー化されたメモリに格納すべきデータであると検出したとき、当該未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てる。
【００４８】
本発明の当該実施形態ではメモリ割当て方法を提供する。当該方法はコンピュータ・システムに適用され、当該コンピュータ・システムは、メモリ・リソース、基本入出力システム（ＢＩＯＳ）、およびオペレーティング・システム（ＯＳ）を含む。当該メモリ・リソースは、初期のミラー化されたメモリを含む。オペレーティング・システムを実行したとき、当該方法は、当該初期のミラー化されたメモリ内の未占有のミラー化されたメモリを取得するステップであって、当該初期のミラー化されたメモリは、ＯＳの初期化中にＢＩＯＳによりＯＳに提供されたミラー化されたメモリのアドレス範囲により示されたミラー化されたメモリである、ステップと、メモリ割当てを要求するデータに検出を実施するステップと、当該データがミラー化されたメモリに格納すべきデータであると検出したとき、当該未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるステップとを含む。オペレーティング・システムがメモリの変化を認識できず、当該ミラー化されたメモリのサイズが制限されている場合に当該ミラー化されたメモリが割り当てられる必要があるデータに当該ミラー化されたメモリを割り当てることができない先行技術と比較すると、本発明の当該実施形態により提供されたメモリ割当て方法では、ＢＩＯＳでは、当該ミラー化されたメモリのアドレス範囲をＯＳに提供するので、当該方法は当該ミラー化されたメモリを正確に発見し、当該ミラー化されたメモリに格納する必要があるデータに当該ミラー化されたメモリを割り当てることができる。したがって、当該方法は、当該制限されたミラー化されたメモリの利用効率を保証し、システム信頼性を高める。
【００４９】
任意選択で、図２に対応する実施形態に基づいて、本発明の当該実施形態により提供されたメモリ割当て方法の第１の任意選択の実装方式では、メモリ割当てを要求するデータに検出を実施するステップの前に、当該方法がさらに、ミラー識別子をカーネル・データおよびクリティカルなユーザ・データに対して設定するステップであって、当該クリティカルなユーザ・データはミラー化された記憶を要求するユーザ指定のデータである、ステップを含んでもよく、
メモリ割当てを要求するデータに検出を実施するステップが、当該メモリ割当てを要求するデータが当該ミラー識別子を運搬するかどうかを検出するステップを含んでもよく、
当該データがミラー化されたメモリに格納すべきデータであると検出したとき、当該未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるステップが、
当該メモリ割当てを要求するデータが当該ミラー識別子を運搬すると検出したとき、当該メモリ割当てを要求するデータがカーネル・データまたはクリティカルなユーザ・データであると判定し、当該未占有のミラー化されたメモリから、当該ミラー化されたメモリをカーネル・データまたはクリティカルなユーザ・データに割り当てるステップを含んでもよい。
【００５０】
本発明の当該実施形態では、ミラー化されたメモリが全てのカーネル・データに割り当てられる。ユーザ・データに対して、設定をユーザの要件に従って実施してもよい。特定のタイプのデータがクリティカルなユーザ・データであるとユーザが指定する場合、ミラー識別子がこの種のデータに対して設定され、ミラー化されたメモリがこの種のデータに割り当てられる。
【００５１】
任意選択で、第１の任意選択の実装方式に基づいて、本発明の当該実施形態により提供されたメモリ割当て方法の第２の任意選択の実装方式では、当該方法がさらに、
当該メモリ割当てを要求するデータがクリティカルなユーザ・データであるとき、同一のプロセスのデータが当該初期のミラー化されたメモリに格納されるかどうかを判定するステップであって、当該同一のプロセスのデータは、当該クリティカルなユーザ・データを生成する同一のプロセスにより当該クリティカルなユーザ・データの前に生成されたデータである、ステップと、
当該同一のプロセスのデータが元のミラー化されたメモリに格納されていない場合、当該同一のプロセスのデータを当該初期のミラー化されたメモリにマイグレートするステップと、
を含んでもよい。
【００５２】
本発明の当該実施形態は、ミラー・フラグが進行中のプロセスに対して設定されるケースに対するものである。例えば、ユーザがＷｏｒｄドキュメントを編集している。当該ドキュメントの一部が編集された後、ユーザは、当該Ｗｏｒｄドキュメントがクリティカルなユーザ・データであると指定する。したがって、当該Ｗｏｒｄドキュメント内のデータの編集された部分に対して、正常なメモリが割り当てられる。当該Ｗｏｒｄドキュメントがクリティカルなユーザ・データであるとユーザが指定した後の編集された部分に対して、ミラー化されたメモリが割り当てられる。このように、当該正常なメモリ内の以前のデータを当該ミラー化されたメモリにマイグレートしてもよい。
【００５３】
任意選択で、図２に対応する実施形態または任意の任意選択の実装方式に基づいて、本発明の当該実施形態により提供されたメモリ割当て方法の第３の任意選択の実装方式では、当該未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるステップは、
当該ミラー化されたメモリに格納されるべきデータが属する予め計画されたメモリ・リソース領域を決定するステップと、
当該データが属する当該予め計画されたメモリ・リソース領域の未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるステップと
を含んでもよい。
【００５４】
本発明の当該実施形態は、ミラー化されたメモリが異なるＮＵＭＡノード上に分配されるケースに対するものである。ミラー化されたメモリはローカル・ノード内部で割り当てられ、その結果、ノード間メモリ・アクセスに起因する長いレイテンシを回避することができる。
【００５５】
任意選択で、図２に対応する実施形態または任意の任意選択の実装方式に基づいて、本発明の当該実施形態により提供されたメモリ割当て方法の第４の任意選択の実装方式では、当該未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるステップの後、当該方法がさらに、当該ミラー化されたメモリに格納されるべきデータに割り当てられた当該ミラー化されたメモリのアドレス範囲に占有フラグを設定するステップを含んでもよい。
【００５６】
本発明の当該実施形態では、当該ミラー化されたメモリが占有された後、フラグが当該占有されたミラー化されたメモリのアドレス範囲に対して設定される。このように、メモリ割当てが実施されるとき、未占有のミラー化されたメモリを迅速に発見することができる。
【００５７】
図３を参照すると、本発明の１実施形態ではメモリ割当て装置２０を提供する。当該装置はコンピュータ・システムに適用され、当該コンピュータ・システムは、メモリ・リソース、基本入出力システム（ＢＩＯＳ）、およびオペレーティング・システム（ＯＳ）を備える。当該メモリ・リソースは初期のミラー化されたメモリを含む。オペレーティング・システムを実行したとき、装置２０は、当該初期のミラー化されたメモリ内の未占有のミラー化されたメモリを取得するように構成された取得ユニット２０１であって、当該初期のミラー化されたメモリは、ＯＳの初期化中にＢＩＯＳによりＯＳに提供されたミラー化されたメモリのアドレス範囲により示されたミラー化されたメモリである、取得ユニット２０１と、メモリ割当てを要求するデータに検出を実施するように構成された検出ユニット２０２と、当該データがミラー化されたメモリに格納すべきデータであると検出ユニット２０２が検出したとき、取得ユニット２０１により取得された未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるように構成された割当てユニット２０３とを備える。
【００５８】
本発明の当該実施形態ではメモリ割当て装置を提供する。当該装置はコンピュータ・システムに適用され、当該コンピュータ・システムは、メモリ・リソース、基本入出力システム（ＢＩＯＳ）、およびオペレーティング・システム（ＯＳ）を備える。当該メモリ・リソースは初期のミラー化されたメモリを含む。オペレーティング・システムを実行したとき、装置２０は、取得ユニット２０１が当該初期のミラー化されたメモリ内の未占有のミラー化されたメモリを取得し、当該初期のミラー化されたメモリは、ＯＳの初期化中にＢＩＯＳによりＯＳに提供されたミラー化されたメモリのアドレス範囲により示されたミラー化されたメモリであり、検出ユニット２０２がメモリ割当てを要求するデータに検出を実施し、当該データがミラー化されたメモリに格納すべきデータであると検出ユニット２０２が検出したとき、割当てユニット２０３が、取得ユニット２０１により取得された未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てることを含む。オペレーティング・システムがメモリの変化を認識できず、当該ミラー化されたメモリのサイズが制限されている場合に当該ミラー化されたメモリが割り当てられる必要があるデータに当該ミラー化されたメモリを割り当てることができない先行技術と比較すると、本発明の当該実施形態により提供するメモリ割当て装置では、ＢＩＯＳが当該ミラー化されたメモリのアドレス範囲をＯＳに提供するので、当該装置は当該ミラー化されたメモリを正確に発見し、当該ミラー化されたメモリに格納する必要があるデータに当該ミラー化されたメモリを割り当てることができる。したがって、当該方法は、当該制限されたミラー化されたメモリの利用効率を保証し、システム信頼性を高める。
【００５９】
任意選択で、図３に対応する実施形態に基づいて、図４を参照すると、本発明の当該実施形態により提供するメモリ割当て装置の別の実装方式では、装置２０はさらに、
検出ユニット２０２が当該メモリ割当てを要求するデータに検出を実施する前にミラー識別子をカーネル・データおよびクリティカルなユーザ・データに設定するように構成された第１の設定ユニット２０４であって、当該クリティカルなユーザ・データはミラー化された記憶を要求するユーザ指定のデータである、第１の設定ユニット２０４
を備え、
検出ユニット２０２は、当該メモリ割当てを要求するデータが第１の設定ユニット２０４により設定されたミラー識別子を運搬するかどうかを検出するように構成され、
割当てユニット２０３は、検出ユニット２０２が、当該メモリ割当てを要求するデータが当該ミラー識別子を運搬することを検出したとき、当該メモリ割当てを要求するデータがカーネル・データまたはクリティカルなユーザ・データであると判定し、当該未占有のミラー化されたメモリから、当該ミラー化されたメモリをカーネル・データまたはクリティカルなユーザ・データに割り当てるように構成される。
【００６０】
任意選択で、図４に対応する実施形態に基づいて、図５を参照すると、本発明の当該実施形態により提供するメモリ割当て装置の別の実装方式では、装置２０はさらに、
当該メモリ割当てを要求するデータが第１の設定ユニット２０４により設定されたクリティカルなユーザ・データであるとき、同一のプロセスのデータが当該初期のミラー化されたメモリに格納されるかどうかを判定するように構成された判定ユニット２０５であって、当該同一のプロセスのデータは、当該クリティカルなユーザ・データを生成する同一のプロセスにより当該クリティカルなユーザ・データの前に生成されたデータである、判定ユニット２０５と、
判定ユニット２０５が、当該同一のプロセスのデータが当該ミラー化されたメモリに格納されていないと判定したとき、当該同一のプロセスのデータを当該初期のミラー化されたメモリにマイグレートするように構成されたマイグレーション・ユニット２０６と、
を備える。
【００６１】
任意選択で、図３に対応する実施形態に基づいて、図６を参照すると、本発明の当該実施形態により提供するメモリ割当て装置の別の実装方式では、割当てユニット２０３は、
当該ミラー化されたメモリに格納されるべきデータが属する予め計画されたメモリ・リソース領域を決定するように構成された決定サブユニット２０３１と、
決定サブユニット２０３１により決定され当該データが属する当該予め計画されたメモリ・リソース領域の未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるように構成された割当てサブユニット２０３２と
を備える。
【００６２】
任意選択で、図３に対応する実施形態に基づいて、図７を参照すると、本発明の当該実施形態により提供するメモリ割当て装置の別の実装方式では、装置２０はさらに、割当てユニット２０３が当該ミラー化されたメモリを割り当てた後に、当該ミラー化されたメモリに格納されるべきデータに割り当てられた当該ミラー化されたメモリのアドレス範囲に占有フラグを設定するように構成された第２の設定ユニット２０７を備える。
【００６３】
図８は、本発明の１実施形態に従うメモリ割当て装置４０の略構造図である。メモリ割当て装置４０は、入出力装置４１０、プロセッサ４３０、およびメモリ４４０を備えてもよい。
【００６４】
メモリ４４０は、読取専用メモリおよびランダム・アクセス・メモリを含み、命令およびデータをプロセッサ４３０に提供してもよい。メモリ４４０の一部がさらに、不揮発性ランダム・アクセス・メモリ（ＮＶＲＡＭ）を含んでもよい。
【００６５】
メモリ４４０は、以下の要素、実行可能モジュールまたはデータ構造、またはそのサブセット、またはその拡張セット、即ち、様々な動作を実施するために使用される様々な動作命令を含む動作命令と、様々な基本サービスを実装しハードウェア・ベースのタスクを処理するために使用される様々なシステム・プログラムを含むオペレーティング・システムを格納する。
【００６６】
当該メモリ割当て装置はコンピュータ・システムに適用され、当該コンピュータ・システムは、メモリ・リソース、基本入出力システム（ＢＩＯＳ）、およびオペレーティング・システム（ＯＳ）を備える。当該メモリ・リソースは初期のミラー化されたメモリを含む。本発明の当該実施形態では、オペレーティング・システムを実行したとき、プロセッサ４３０は、メモリ４４０に格納された動作命令を起動することによって以下の動作、即ち、当該初期のミラー化されたメモリ内の未占有のミラー化されたメモリを取得するステップであって、当該初期のミラー化されたメモリは、ＯＳの初期化中にＢＩＯＳによりＯＳに提供されたミラー化されたメモリのアドレス範囲により示されたミラー化されたメモリである、ステップと、
メモリ割当てを要求するデータに検出を実施するステップと、
当該データがミラー化されたメモリに格納すべきデータであると検出したとき、当該未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるステップと
を実施する（当該動作命令をオペレーティング・システムに格納してもよい）。
【００６７】
本発明の当該実施形態では、メモリ割当て装置４０のＢＩＯＳは、ミラー化されたメモリを正確に発見できるように、ミラー化されたメモリのアドレス範囲をＯＳに提供する。さらに、ミラー化されたメモリが当該ミラー化されたメモリに格納する必要があるデータに割り当てられ、その結果、当該制限されたミラー化されたメモリの利用効率が保証され、そのシステム信頼性が改善される。
【００６８】
プロセッサ４３０はメモリ割当て装置４０の動作を制御する。プロセッサ４３０をＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央演算装置）と称してもよい。メモリ４４０は、読取専用メモリおよびランダム・アクセス・メモリを含み、命令およびデータをプロセッサ４３０に提供してもよい。メモリ４４０の一部がさらに、不揮発性ランダム・アクセス・メモリ（ＮＶＲＡＭ）を含んでもよい。具体的な適用では、メモリ割当て装置４０のコンポーネントは、バス・システム４５０を用いることによって一緒に接続される。バス・システム４５０がさらに、データ・バスに加えて、電力バス、制御バス、ステータス信号バス等を含んでもよい。しかし、明確な説明のため、図面における様々なバスをバス・システム４５０として示してある。
【００６９】
本発明の上述の実施形態により開示された方法をプロセッサ４３０に適用するか、または、プロセッサ４３０により実装してもよい。プロセッサ４３０が、集積回路チップであってもよく、信号処理能力を有してもよい。実装プロセスにおいて、上述の方法の各ステップを、プロセッサ４３０内のハードウェアの集積論理回路またはソフトウェアの形態での命令を用いることによって完了してもよい。プロセッサ４３０が、汎用目的プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールド・プログラム可能ゲート・アレイ（ＦＰＧＡ）、または別のプログラム可能論理装置、離散ゲートまたはトランジスタ論理装置、または離散ハードウェア・コンポーネントであってもよい。当該プロセッサが、本発明の実施形態で開示した方法、ステップおよび論理ブロック図を実装または実行してもよい。当該汎用目的プロセッサがマイクロプロセッサであってもよく、または、当該プロセッサが任意の従来のプロセッサ等であってもよい。本発明の当該実施形態を参照して開示された方法のステップをハードウェア復号化プロセッサにより直接実行し完了するか、または、復号化プロセッサ内のハードウェアおよびソフトウェア・モジュールの組合せを用いることによって実行し完了してもよい。当該ソフトウェア・モジュールを、ランダム・アクセス・メモリ、フラッシュ・メモリ、読取専用メモリ、プログラム可能読取専用メモリ、電気的消去可能プログラム可能メモリ、またはレジスタのような当業界の成熟した記憶媒体に配置してもよい。当該記憶媒体はメモリ４４０に配置され、プロセッサ４３０はメモリ４４０内の情報を読み取り、当該プロセッサのハードウェアとの組合せで上述の方法におけるステップを完了する。
【００７０】
任意選択で、プロセッサ４３０はさらに、ミラー識別子をカーネル・データおよびクリティカルなユーザ・データに設定し、当該メモリ割当てを要求するデータが当該ミラー識別子を運搬するかどうかを検出し、当該メモリ割当てを要求するデータが当該ミラー識別子を運搬すると検出したとき、当該メモリ割当てを要求するデータがカーネル・データまたはクリティカルなユーザ・データであると判定し、当該未占有のミラー化されたメモリから、当該ミラー化されたメモリをカーネル・データまたはクリティカルなユーザ・データに割り当てるように構成される。当該クリティカルなユーザ・データはミラー化された記憶を要求するユーザ指定のデータである。
【００７１】
任意選択で、プロセッサ４３０はさらに、当該メモリ割当てを要求するデータがクリティカルなユーザ・データであるとき、同一のプロセスのデータが当該初期のミラー化されたメモリに格納されるかどうかを判定し、当該同一のプロセスのデータが当該ミラー化されたメモリに格納されていない場合、当該同一のプロセスのデータを元のミラー化されたメモリにマイグレートするように構成される。当該同一のプロセスのデータは、当該クリティカルなユーザ・データを生成する同一のプロセスにより当該クリティカルなユーザ・データの前に生成されたデータである。
【００７２】
任意選択で、プロセッサ４３０は特に、当該ミラー化されたメモリに格納されるべきデータが属する予め計画されたメモリ・リソース領域を決定し、当該データが属する当該予め計画されたメモリ・リソース領域の未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるように構成される。
【００７３】
任意選択で、プロセッサ４３０はさらに、当該ミラー化されたメモリが当該未占有のミラー化されたメモリから当該ミラー化されたメモリに格納されるべきデータに割り当てられた後、当該ミラー化されたメモリに格納されるべきデータに割り当てられた当該ミラー化されたメモリのアドレス範囲に占有フラグを設定するように構成される。
【００７４】
当業者は、当該実施形態における方法のステップの全部または一部を、（プロセッサのような）関連ハードウェアに指示するプログラムにより実装してもよいことを理解しうる。当該プログラムをコンピュータ可読記憶媒体に格納してもよい。当該記憶媒体は、ＲＯＭ、ＲＡＭ、磁気ディスク、または光ディスクを含んでもよい。
【００７５】
本発明の実施形態により提供されたメモリ割当て方法および装置を上で詳細に説明した。本発明の原理および実装方式は、特定の例を通じて本明細書で説明されている。当該実施形態に関する説明は本発明の方法と中心的な思想の理解を支援するために提供されているにすぎない。さらに、当業者は、本発明の思想に従う特定の実装方式と適用範囲の点で本発明に変形と修正を行うことができる。したがって、本明細書の内容は本発明への限定として解釈されるべきではない。
【符号の説明】
【００７６】
２０  メモリ割当て装置
２０１  取得ユニット
２０２  検出ユニット
２０３  割当てユニット
２０３１  決定サブユニット
２０３２  割当てサブユニット
２０４  第１の設定ユニット
２０５  判定ユニット
２０６  マイグレーション・ユニット
２０７  第２の設定ユニット
４１０  入出力装置
４３０  プロセッサ
４４０  メモリ
４５０  バス
【図１】
0006478430.tif 000002
【図２】
0006478430.tif 000003
【図３】
0006478430.tif 000004
【図４】
0006478430.tif 000005
【図５】
0006478430.tif 000006
【図６】
0006478430.tif 000007
【図７】
0006478430.tif 000008
【図８】
0006478430.tif 000009