JP2017531252A - メモリ割当て方法および装置 - Google Patents

メモリ割当て方法および装置 Download PDF

Info

Publication number
JP2017531252A
JP2017531252A JP2017512349A JP2017512349A JP2017531252A JP 2017531252 A JP2017531252 A JP 2017531252A JP 2017512349 A JP2017512349 A JP 2017512349A JP 2017512349 A JP2017512349 A JP 2017512349A JP 2017531252 A JP2017531252 A JP 2017531252A
Authority
JP
Japan
Prior art keywords
memory
data
mirrored
allocation
mirrored memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017512349A
Other languages
English (en)
Other versions
JP6478430B2 (ja
Inventor
秀奇 ▲謝▼
秀奇 ▲謝▼
稀石 裘
稀石 裘
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2017531252A publication Critical patent/JP2017531252A/ja
Application granted granted Critical
Publication of JP6478430B2 publication Critical patent/JP6478430B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Hardware Redundancy (AREA)

Abstract

メモリ割当て方法が開示される。前記方法はコンピュータ・システムに適用され、前記コンピュータ・システムはメモリ・リソース、BOIS、およびOSを備え、前記メモリ・リソースは初期のミラー化されたメモリを備える。前記オペレーティング・システムを実行したとき、前記方法は、前記初期のミラー化されたメモリ内の未占有のミラー化されたメモリを取得するステップであって、前記初期のミラー化されたメモリは、前記OSの初期化中に前記BOISにより前記OSに提供されたミラー化されたメモリのアドレス範囲により示されたミラー化されたメモリである、ステップ(101)と、メモリ割当てを要求するデータに検出を実施するステップ(102)と、前記データがミラー化されたメモリに格納すべきデータであると検出したとき、前記未占有のミラー化されたメモリから、前記ミラー化されたメモリを前記ミラー化されたメモリに格納されるべき前記データに割り当てるステップ(103)を含む。前記メモリ割当て方法は、前記ミラー化されたメモリを正確に発見し、前記ミラー化されたメモリを前記ミラー化されたメモリに格納する必要がある前記データに割り当てることができる。したがって、当該方法は、当該制限されたミラー化されたメモリの利用効率を保証する。

Description

本発明はコンピュータ技術の分野に関し、特にメモリ割当て方法および装置に関する。
メモリ信頼性はコンピュータ・システムの信頼性に大きな影響を及ぼす。したがって、メモリ信頼性を改善する必要がある。今日、メモリ・ミラーリングは一般にメモリ信頼性を改善するために先行技術で使用される。
メモリ・ミラーリング(Mirroring Memory)技術の動作原理は以下の通りである。即ち、2つのメモリ領域はハードウェアで計画される。一方はプライマリ・メモリとして使用され、他方はミラー化されたメモリとして使用される。実行されると、オペレーティング・システムはメモリ内にデータの2つのコピーを作成し、これらはそれぞれ当該プライマリ・メモリおよび当該ミラー化されたメモリに格納される。したがって、当該メモリ内のデータに対して、2組の完全なバックアップ・データがある。完全なメモリ・ミラーリングは、メモリ内の全てのデータに対してコピーが存在することを要求する。サーバ・システムが正常に実行するとき、オリジナルが使用される。1つのコピーのホストが故障すると、他のコピーが代わりに使用される。このように、メモリ・チャネルの故障により生ずるデータ・ロスが効果的に回避され、サーバの信頼性が大幅に向上する。しかし、この機能を実装するために二重の物理メモリが必要とされ、実際の容量利用は50%にすぎない。非常に高いコストのために、実際に、完全なメモリ・ミラーリングを使用する製品は殆どない。
先行技術では、部分的なメモリ・ミラーリング技術が出現している。当該技術が、コンピュータ・システム内のメモリの一部(例えば、メモリ・アドレスのセグメントまたは幾つかのセグメントの領域)をミラー化されたメモリとして使用してもよい。しかし、先行技術では、当該ミラー化されたメモリはハードウェア層のみに存在し、当該オペレーティング・システムは当該ハードェア層を認識しない。当該ハードェア層内の当該ミラー化されたメモリが変化すると、当該ミラー化されたメモリを当該オペレーティング・システムにおいて正確に発見できず、結果として、データを正確に当該ミラー化されたメモリに格納することができない。さらに、当該ミラー化されたメモリのサイズが制限される。当該ミラー化されたメモリをデータに割り当てるとき、当該コンピュータ・システムは当該ミラー化されたメモリを、最初に生成されたデータにのみ割り当てる。当該ミラー化されたメモリが完全に占有された後、ミラー化されたメモリを、ミラー化されたメモリを割り当てる必要がある他のデータに割り当てることができない。
オペレーティング・システムがミラー化されたメモリの変化を認識できず当該ミラー化されたメモリのサイズが制限されている場合に当該ミラー化されたメモリが割り当てられる必要があるデータに当該ミラー化されたメモリを割り当てることができない先行技術と比較すると、本発明の1実施形態により提供されるメモリ割当て方法は、ミラー化されたメモリを正確に発見でき、当該ミラー化されたメモリに格納する必要があるデータに当該ミラー化されたメモリを割り当てることができる。当該方法は、当該制限されたミラー化されたメモリの利用効率を保証し、システム信頼性を高める。本発明の1実施形態では対応する装置をさらに提供する。
本発明の第1の態様ではメモリ割当て方法を提供する。当該方法はコンピュータ・システムに適用され、当該コンピュータ・システムは、メモリ・リソース、基本入出力システムBOIS、およびオペレーティング・システムOSを備える。当該メモリ・リソースは初期のミラー化されたメモリを含み、当該オペレーティング・システムを実行したとき、当該方法は、
当該初期のミラー化されたメモリ内の未占有のミラー化されたメモリを取得するステップであって、当該初期のミラー化されたメモリは、OSの初期化中にBOISによりOSに提供されたミラー化されたメモリのアドレス範囲により示されたミラー化されたメモリである、ステップと、
メモリ割当てを要求するデータに検出を実施するステップと、
当該データがミラー化されたメモリに格納すべきデータであると検出したとき、当該未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるステップと
を含む。
第1の態様を参照すると、第1の可能な実装方式では、前記メモリ割当てを要求するデータに検出を実施するステップの前に、当該方法はさらに、
ミラー識別子をカーネル・データおよびクリティカルなユーザ・データに対して設定するステップであって、当該クリティカルなユーザ・データはミラー化された記憶を要求するユーザ指定のデータである、ステップ
を含み、
メモリ割当てを要求するデータに検出を実施するステップは、
当該メモリ割当てを要求するデータが当該ミラー識別子を運搬するかどうかを検出するステップを含み、
当該データがミラー化されたメモリに格納すべきデータであると検出したとき、未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるステップは、
当該メモリ割当てを要求するデータが当該ミラー識別子を運搬すると検出したとき、当該メモリ割当てを要求するデータがカーネル・データまたはクリティカルなユーザ・データであると判定し、当該未占有のミラー化されたメモリから、当該ミラー化されたメモリをカーネル・データまたはクリティカルなユーザ・データに割り当てるステップを含む。
第1の態様の第1の可能な実装方式を参照すると、第2の可能な実装方式では、当該方法はさらに、
当該メモリ割当てを要求するデータがクリティカルなユーザ・データであるとき、同一のプロセスのデータが当該初期のミラー化されたメモリに格納されるかどうかを判定するステップであって、当該同一のプロセスのデータは、当該クリティカルなユーザ・データを生成する同一のプロセスにより当該クリティカルなユーザ・データの前に生成されたデータである、ステップと、
当該同一のプロセスのデータが当該ミラー化されたメモリに格納されていない場合、当該同一のプロセスのデータを当該初期のミラー化されたメモリにマイグレートするステップと
を含む。
第1の態様または第1の態様の第1のまたは第2の可能な実装方式を参照すると、第3の可能な実装方式では、当該未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるステップは、
当該ミラー化されたメモリに格納されるべきデータが属する予め計画されたメモリ・リソース領域を決定するステップと、
当該データが属する当該予め計画されたメモリ・リソース領域の未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるステップと
を含む。
第1の態様または第1の態様の第1のまたは第2の可能な実装方式を参照すると、第4の可能な実装方式では、当該未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるステップの後、当該方法はさらに、
当該ミラー化されたメモリに格納されるべきデータに割り当てられた当該ミラー化されたメモリのアドレス範囲に占有フラグを設定するステップを含む。
本発明の第2の態様ではメモリ割当て装置を提供する。当該装置はコンピュータ・システムに適用され、当該コンピュータ・システムは、メモリ・リソース、基本入出力システムBOIS、およびオペレーティング・システムOSを備える。当該メモリ・リソースは初期のミラー化されたメモリを含み、当該オペレーティング・システムを実行したとき、当該装置は、
当該初期のミラー化されたメモリ内の未占有のミラー化されたメモリを取得するように構成された取得ユニットであって、当該初期のミラー化されたメモリは、OSの初期化中にBOISによりOSに提供されたミラー化されたメモリのアドレス範囲により示されたミラー化されたメモリである、取得ユニットと、
メモリ割当てを要求するデータに検出を実施するように構成された検出ユニットと、
当該取得ユニットにより取得された未占有のミラー化されたメモリから、当該データがミラー化されたメモリに格納すべきデータであると当該検出ユニットが判定したとき、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるように構成された割当てユニットと、
を備える。
第2の態様を参照すると、第1の可能な実装方式では、当該装置はさらに、
当該検出ユニットが、当該メモリ割当てを要求するデータに検出を実施する前にミラー識別子をカーネル・データおよびクリティカルなユーザ・データに設定するように構成された第1の設定ユニットであって、当該クリティカルなユーザ・データはミラー化された記憶を要求するユーザ指定のデータである、第1の設定ユニット
を備え、
当該検出ユニットは、当該メモリ割当てを要求するデータが第1の設定ユニットにより設定されたミラー識別子を運搬するかどうかを検出するように構成され、
当該割当てユニットは、当該メモリ割当てを要求するデータが当該ミラー識別子を運搬すると当該検出ユニットが検出したとき、当該メモリ割当てを要求するデータがカーネル・データまたはクリティカルなユーザ・データであると判定し、当該未占有のミラー化されたメモリから、当該ミラー化されたメモリをカーネル・データまたはクリティカルなユーザ・データに割り当てるように構成される。
第2の態様の第1の可能な実装方式を参照すると、第2の可能な実装方式では、当該装置はさらに、
当該メモリ割当てを要求するデータがクリティカルなユーザ・データであるとき、同一のプロセスのデータが当該初期のミラー化されたメモリに格納されるかどうかを判定するように構成された判定ユニットであって、当該同一のプロセスのデータは、当該クリティカルなユーザ・データを生成する同一のプロセスにより当該クリティカルなユーザ・データの前に生成されたデータである、判定ユニットと、
当該判定ユニットが、当該同一のプロセスのデータが当該ミラー化されたメモリに格納されていないと判定したとき、当該同一のプロセスのデータを当該初期のミラー化されたメモリにマイグレートするように構成されたマイグレーション・ユニットと
を備える。
第2の態様または第2の態様の第1のまたは第2の可能な実装方式を参照すると、第3の可能な実装方式では、当該割当てユニットは、
当該ミラー化されたメモリに格納されるべきデータが属する予め計画されたメモリ・リソース領域を決定するように構成された決定サブユニットと、
当該決定サブユニットにより決定された当該データが属する当該予め計画されたメモリ・リソース領域の未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるように構成された割当てサブユニットと
を備える。
第2の態様または第2の態様の第1のまたは第2の可能な実装方式を参照すると、第4の可能な実装方式では、当該装置はさらに、当該割当てユニットが当該ミラー化されたメモリを割り当てた後、当該ミラー化されたメモリに格納されるべきデータに割り当てられた当該ミラー化されたメモリのアドレス範囲に占有フラグを設定するように構成された第2の設定ユニットを備える。
本発明の1実施形態ではメモリ割当て方法を提供する。当該方法はコンピュータ・システムに適用され、当該コンピュータ・システムは、メモリ・リソース、基本入出力システムBOIS、およびオペレーティング・システムOSを備える。当該メモリ・リソースは初期のミラー化されたメモリを含む。当該オペレーティング・システムを実行したとき、当該方法は、当該初期のミラー化されたメモリ内の未占有のミラー化されたメモリを取得するステップであって、当該初期のミラー化されたメモリは、OSの初期化中にBOISによりOSに提供されたミラー化されたメモリのアドレス範囲により示されたミラー化されたメモリである、ステップと、メモリ割当てを要求するデータに検出を実施するステップと、当該データがミラー化されたメモリに格納すべきデータであると検出したとき、当該未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるステップとを含む。オペレーティング・システムがメモリの変化を認識できず、当該ミラー化されたメモリのサイズが制限されている場合に当該ミラー化されたメモリが割り当てられる必要があるデータに当該ミラー化されたメモリを割り当てることができない先行技術と比較すると、本発明の当該実施形態により提供されたメモリ割当て方法では、BOISでは、当該ミラー化されたメモリのアドレス範囲をOSに提供するので、当該方法は当該ミラー化されたメモリを正確に発見し、当該ミラー化されたメモリに格納する必要があるデータに当該ミラー化されたメモリを割り当てることができる。したがって、当該方法は、当該制限されたミラー化されたメモリの利用効率を保証し、システム信頼性を高める。
本発明の実施形態または先行技術における実施形態の技術的解決策をより明確に説明するために、以下では、当該実施形態または先行技術を説明するのに必要な添付図面を簡単に説明する。明らかに、以下の説明における添付図面は本発明の幾つかの実施形態を示すにすぎず、当業者は創造的努力なしにこれらの添付図面から他の図面を依然として導出することができる。
本発明の1実施形態に従うコンピュータ・システムのアーキテクチャの略図である。 本発明の1実施形態に従うメモリ割当て方法の略図である。 本発明の1実施形態に従うメモリ割当て装置の略図である。 本発明の別の実施形態に従うメモリ割当て装置の略図である。 本発明の別の実施形態に従うメモリ割当て装置の略図である。 本発明の別の実施形態に従うメモリ割当て装置の略図である。 本発明の別の実施形態に従うメモリ割当て装置の略図である。 本発明の1実施形態に従うメモリ割当て装置の略図である。
本発明の1実施形態ではメモリ割当て方法を提供する。当該方法はミラー化されたメモリを正確に発見でき、当該ミラー化されたメモリに格納する必要があるデータに当該ミラー化されたメモリを割り当てることができる。したがって、当該方法は、当該制限されたミラー化されたメモリの利用効率を保証し、システム信頼性を高める。本発明の1実施形態ではさらに、対応する装置とシステムを提供する。詳細な説明を以降別々に提供する。
本発明の技術的解決策を当業者により良く理解させるために、以下では、本発明の実施形態における添付図面を参照して、本発明の実施形態の技術的解決策を明確かつ十分に説明する。明らかに、説明する実施形態は本発明の実施形態の全部ではなく一部にすぎない。当業者が創造的努力なしに本発明の実施形態に基づいて取得した他の全ての実施形態は本発明の保護範囲に入るものとする。
図1を参照すると、本発明の1実施形態により提供されるコンピュータ・システムのアーキテクチャは、ハードウェア・リソース層、基本入出力システム(Basic Input Output System、BOIS)、オペレーティング・システム(Operation System、OS)、およびユーザ・アプリケーション層を含んでもよい。当該ハードウェア・リソース層は、プロセッサ、メモリ、および入出力システムのようなハードウェア・リソースを含んでもよい。当該ユーザ・アプリケーション層は、様々なサービス・アプリケーションを含んでもよい。本発明の当該実施形態におけるオペレーティング・システムがLinux(登録商標)システムであってもよい。
当該メモリがミラー化されたメモリを含んでもよい。オペレーティング・システムの初期化の間、BOISはメモリ情報をOSに報告する。当該メモリ情報は、ミラー化されたメモリのアドレス範囲を含む、様々なタイプのメモリのアドレス範囲であってもよい。例えば、以下の情報が含まれてもよく、e820マップの形で表されてもよい。即ち、
e820:BIOSで提供された物理RAMマップ:
[mem 0x0000000000000000-0x000000000009a7ff] 使用可
[mem 0x000000000009a800-0x000000000009ffff] 予約済み
[mem 0x00000000000e4b60-0x00000000000fffff] 予約済み
[mem 0x0000000000100000-0x000000003fffffff] ミラー (1M乃至1G)
[mem 0x0000000040000000-0x00000000bf78ffff] 使用可 (1G乃至3063M)
[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] 使用可 (4G乃至12G)
[mem 0x0000000300000000-0x000000033fffffff] ミラー (12G乃至13G)
[mem 0x0000000340000000-0x00000005ffffffff] 使用可 (13G乃至24G)
[mem 0x0000000600000000-0x000000063fffffff] ミラー (24G乃至25G)
[mem 0x0000000640000000-0x0000000bffffffff] 使用可 (25G乃至36G)
[mem 0x0000000900000000-0x000000093fffffff] ミラー (36G乃至37G)
[mem 0x0000000940000000-0x0000000c3fffffff] 使用可 (37G乃至48G)・・・
ミラーとマークされたアドレス範囲に対応するメモリがミラー化されたメモリである。本発明の当該実施形態では、当該ミラー化されたメモリのアドレス範囲は(1M乃至1G)、(12G乃至13G)、(24G乃至25G)、および(36G乃至37G)である。
オペレーティング・システムが、BIOSにより報告されたメモリ情報に従って、ミラー化されたメモリ管理ゾーンMIRROR ZONEを生成してもよい。MIRROR ZONEはミラー化されたメモリ領域を追跡し管理するために使用され、その編成方式は正常なメモリ管理ゾーンと同じである。複数のMIRROR ZONEがあってもよく、当該複数のMIRROR ZONEがZONE Listを構成する。例えば、本発明の当該実施形態におけるミラー化されたメモリに対して、4つのMIRROR ZONE、即ち、(1M乃至1G)、(12G乃至13G)、(24G乃至25G)、および(36G乃至37G)があってもよく、MIRROR_ZONE1、MIRROR_ZONE2、MIRROR_ZONE3、およびMIRROR_ZONE4と順番に採番してもよい。不均一メモリ・アクセス(Non Uniform Memory Access Architecture、NUMA)アーキテクチャによれば、48Gのメモリを、4つのノード、即ち、(0M乃至12G)、(13G乃至24G)、(25G乃至36G)、および(37G乃至48G)に分割してもよい。当該4つのMIRROR ZONEはそれぞれ当該4つのノードに属する。ミラー化されたメモリの割当ての間、ローカル・ノードのミラー化されたメモリが優先的に割り当てられ、その結果、ノード間メモリ・アクセスに起因する長いレイテンシが回避される。
メモリがカーネル・データに割り当てられると、new__GFP_mirror識別子を、ミラー化されたメモリをカーネルに優先的に割り当てるための識別子として使用してもよい。メモリがユーザ・データに割り当てられると、__GFP_mirror識別子を、ミラー化されたメモリを優先的に割り当てるために指定してもよく、または、当該カーネルを、ミラー化されたメモリがデフォルトで当該カーネルに優先的に割り当てられると設定してもよい。例えば、GFP_KERNELのデフォルト値が変化し、その結果、ミラー化されたメモリがデフォルトで優先的に割り当てられる。即ち、
#define GFP_KERNEL (__GFP_WAIT | __GFP_IO | __GFP_FS | __GFP_mirror)
である。
ミラー化されたメモリをカーネル・データに優先的に割り当てるプロセスは以下の通りである。
(1)開始されたとき、OSが、ミラー化されたメモリを優先的に割り当てる機能がサポートされるかどうかを判定する(BIOSが報告したメモリ分布図内にMIRRORタイプのメモリがある場合、これは当該機能がサポートされることを示す)。
(2)当該機能がサポートされる場合、OSは、BIOSにより報告されたメモリ情報に従って1つまたは複数のMIRROR ZONEを生成し、当該1つまたは複数のMIRROR ZONEを全てのノードのZONEリストに追加し、その結果、各ノードはMIRROR ZONE内のメモリ割当てを実施することを選択することができる。
(3)alloc_pages()は、最も基本的なページ割り当て器であり、全てのメモリ割当ては最終的に当該ページ割り当て器により完了される。当該ページ割り当て器は、指定されたページ・ゾーン(ZONE)内の1つまたは複数(2の整数乗)の連続ページを割り当てる役割を担う。例えば、__GFP_mirror識別子が設定される場合、メモリがMIRROR ZONEから優先的に割り当てられる。
(4)メモリ割当ての間、メモリがMIRROR ZONEから優先的に割り当てられる。MIRRORタイプのメモリが不十分である場合、メモリが正常なゾーンから割り当てられる。
(5)当該システム内のミラー化されたメモリの量が全てのカーネル・データを格納するには過度に少なく不十分である場合、ミラー化されたメモリを割り当てる設定をデフォルトで無効化してもよく、ミラー化されたメモリの手動での割当てに変更してもよい。例えば、より高い信頼性要件を有する幾つかの重要なドライバに対して、__GFP_mirror識別子をメモリ割当て中に手動で指定してもよい。
(6)使用後に解放されると、当該ミラー化されたメモリが、対応するMIRROR ZONEに解放される。
本発明の当該実施形態では、当該機能を、alloc_pages()のようなメモリ割当て関数のインタフェースと使用方式を変更せずに、かつ、多数の既存のドライバを修正せずに、使用することができる。
ミラー化されたメモリのユーザ・プロセスのデータへの優先的な割り当て
新たなプロセスに対して、
(1)プロセスが生成される。
(2)プロセス記述子が修正され、ミラー化されたメモリ割当て識別子MIRROR_FIRSTが当該プロセッサ記述子内で設定される。本発明では、当該識別子を、システム・コールまたはユーザ・モード・コマンドを用いることにより設定してもよい。
(3)メモリ割当ての間に、MIRROR_FIRSTが設定される場合、ミラー化されたメモリが優先的に使用され、メモリが優先的にMIRROR ZONEから割り当てられる。そうでなければ、正常なメモリが使用され、メモリがNORMAL ZONEから割り当てられる。ミラー化されたメモリが不十分である場合、正常なメモリが割り当てられる。
(4)サブプロセスが生成されると、MIRROR_FIRST識別子の設定がデフォルトで継承される。
プロセスの実行に対して、
(1)当該プロセスのMIRROR_FIRST識別子は/procインタフェースまたはシステム・コールを用いることによって設定され、その結果、当該プロセスのメモリ割当ての間に、ミラー化されたメモリが優先的に割り当てられる。
(2)一方、以前に割り当てられた正常なメモリ内のデータが当該ミラー化されたメモリにマイグレートされる。
図2を参照すると、本発明の1実施形態ではメモリ割当て方法を提供する。
当該方法はコンピュータ・システムに適用され、当該コンピュータ・システムは、メモリ・リソース、基本入出力システムBOIS、およびオペレーティング・システムOSを備える。当該メモリ・リソースは初期のミラー化されたメモリを含む。オペレーティング・システムを実行したとき、当該方法は以下を含む。
101.当該初期のミラー化されたメモリ内の未占有のミラー化されたメモリを取得する。当該初期のミラー化されたメモリは、OSの初期化中にBOISによりOSに提供されたミラー化されたメモリのアドレス範囲により示されたミラー化されたメモリである。
102.メモリ割当てを要求するデータに検出を実施する。
103.当該データがミラー化されたメモリに格納すべきデータであると検出したとき、当該未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てる。
本発明の当該実施形態ではメモリ割当て方法を提供する。当該方法はコンピュータ・システムに適用され、当該コンピュータ・システムは、メモリ・リソース、基本入出力システムBOIS、およびオペレーティング・システムOSを含む。当該メモリ・リソースは、初期のミラー化されたメモリを含む。オペレーティング・システムを実行したとき、当該方法は、当該初期のミラー化されたメモリ内の未占有のミラー化されたメモリを取得するステップであって、当該初期のミラー化されたメモリは、OSの初期化中にBOISによりOSに提供されたミラー化されたメモリのアドレス範囲により示されたミラー化されたメモリである、ステップと、メモリ割当てを要求するデータに検出を実施するステップと、当該データがミラー化されたメモリに格納すべきデータであると検出したとき、当該未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるステップとを含む。オペレーティング・システムがメモリの変化を認識できず、当該ミラー化されたメモリのサイズが制限されている場合に当該ミラー化されたメモリが割り当てられる必要があるデータに当該ミラー化されたメモリを割り当てることができない先行技術と比較すると、本発明の当該実施形態により提供されたメモリ割当て方法では、BOISでは、当該ミラー化されたメモリのアドレス範囲をOSに提供するので、当該方法は当該ミラー化されたメモリを正確に発見し、当該ミラー化されたメモリに格納する必要があるデータに当該ミラー化されたメモリを割り当てることができる。したがって、当該方法は、当該制限されたミラー化されたメモリの利用効率を保証し、システム信頼性を高める。
任意選択で、図2に対応する実施形態に基づいて、本発明の当該実施形態により提供されたメモリ割当て方法の第1の任意選択の実装方式では、メモリ割当てを要求するデータに検出を実施するステップの前に、当該方法がさらに、ミラー識別子をカーネル・データおよびクリティカルなユーザ・データに対して設定するステップであって、当該クリティカルなユーザ・データはミラー化された記憶を要求するユーザ指定のデータである、ステップを含んでもよく、
メモリ割当てを要求するデータに検出を実施するステップが、当該メモリ割当てを要求するデータが当該ミラー識別子を運搬するかどうかを検出するステップを含んでもよく、
当該データがミラー化されたメモリに格納すべきデータであると検出したとき、当該未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるステップが、
当該メモリ割当てを要求するデータが当該ミラー識別子を運搬すると検出したとき、当該メモリ割当てを要求するデータがカーネル・データまたはクリティカルなユーザ・データであると判定し、当該未占有のミラー化されたメモリから、当該ミラー化されたメモリをカーネル・データまたはクリティカルなユーザ・データに割り当てるステップを含んでもよい。
本発明の当該実施形態では、ミラー化されたメモリが全てのカーネル・データに割り当てられる。ユーザ・データに対して、設定をユーザの要件に従って実施してもよい。特定のタイプのデータがクリティカルなユーザ・データであるとユーザが指定する場合、ミラー識別子がこの種のデータに対して設定され、ミラー化されたメモリがこの種のデータに割り当てられる。
任意選択で、第1の任意選択の実装方式に基づいて、本発明の当該実施形態により提供されたメモリ割当て方法の第2の任意選択の実装方式では、当該方法がさらに、
当該メモリ割当てを要求するデータがクリティカルなユーザ・データであるとき、同一のプロセスのデータが当該初期のミラー化されたメモリに格納されるかどうかを判定するステップであって、当該同一のプロセスのデータは、当該クリティカルなユーザ・データを生成する同一のプロセスにより当該クリティカルなユーザ・データの前に生成されたデータである、ステップと、
当該同一のプロセスのデータが当該ミラー化されたメモリに格納されていない場合、当該同一のプロセスのデータを当該初期のミラー化されたメモリにマイグレートするステップと、
を含んでもよい。
本発明の当該実施形態は、ミラー・フラグが進行中のプロセスに対して設定されるケースに対するものである。例えば、ユーザがWordドキュメントを編集している。当該ドキュメントの一部が編集された後、ユーザは、当該Wordドキュメントがクリティカルなユーザ・データであると指定する。したがって、当該Wordドキュメント内のデータの編集された部分に対して、正常なメモリが割り当てられる。当該Wordドキュメントがクリティカルなユーザ・データであるとユーザが指定した後の編集された部分に対して、ミラー化されたメモリが割り当てられる。このように、当該正常なメモリ内の以前のデータを当該ミラー化されたメモリにマイグレートしてもよい。
任意選択で、図2に対応する実施形態または任意の任意選択の実装方式に基づいて、本発明の当該実施形態により提供されたメモリ割当て方法の第3の任意選択の実装方式では、当該未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるステップは、
当該ミラー化されたメモリに格納されるべきデータが属する予め計画されたメモリ・リソース領域を決定するステップと、
当該データが属する当該予め計画されたメモリ・リソース領域の未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるステップと
を含んでもよい。
本発明の当該実施形態は、ミラー化されたメモリが異なるNUMAノード上に分配されるケースに対するものである。ミラー化されたメモリはローカル・ノード内部で割り当てられ、その結果、ノード間メモリ・アクセスに起因する長いレイテンシを回避することができる。
任意選択で、図2に対応する実施形態または任意の任意選択の実装方式に基づいて、本発明の当該実施形態により提供されたメモリ割当て方法の第4の任意選択の実装方式では、当該未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるステップの後、当該方法がさらに、当該ミラー化されたメモリに格納されるべきデータに割り当てられた当該ミラー化されたメモリのアドレス範囲に占有フラグを設定するステップを含んでもよい。
本発明の当該実施形態では、当該ミラー化されたメモリが占有された後、フラグが当該占有されたミラー化されたメモリのアドレス範囲に対して設定される。このように、メモリ割当てが実施されるとき、未占有のミラー化されたメモリを迅速に発見することができる。
図3を参照すると、本発明の1実施形態ではメモリ割当て装置20を提供する。当該装置はコンピュータ・システムに適用され、当該コンピュータ・システムは、メモリ・リソース、基本入出力システムBOIS、およびオペレーティング・システムOSを備える。当該メモリ・リソースは初期のミラー化されたメモリを含む。オペレーティング・システムを実行したとき、装置20は、当該初期のミラー化されたメモリ内の未占有のミラー化されたメモリを取得するように構成された取得ユニット201であって、当該初期のミラー化されたメモリは、OSの初期化中にBOISによりOSに提供されたミラー化されたメモリのアドレス範囲により示されたミラー化されたメモリである、取得ユニット201と、メモリ割当てを要求するデータに検出を実施するように構成された検出ユニット202と、当該データがミラー化されたメモリに格納すべきデータであると検出ユニット202が検出したとき、取得ユニット201により取得された未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるように構成された割当てユニット203とを備える。
本発明の当該実施形態ではメモリ割当て装置を提供する。当該装置はコンピュータ・システムに適用され、当該コンピュータ・システムは、メモリ・リソース、基本入出力システムBOIS、およびオペレーティング・システムOSを備える。当該メモリ・リソースは初期のミラー化されたメモリを含む。オペレーティング・システムを実行したとき、装置20は、取得ユニット201が当該初期のミラー化されたメモリ内の未占有のミラー化されたメモリを取得し、当該初期のミラー化されたメモリは、OSの初期化中にBOISによりOSに提供されたミラー化されたメモリのアドレス範囲により示されたミラー化されたメモリであり、検出ユニット202がメモリ割当てを要求するデータに検出を実施し、当該データがミラー化されたメモリに格納すべきデータであると検出ユニット202が検出したとき、割当てユニット203が、取得ユニット201により取得された未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てることを含む。オペレーティング・システムがメモリの変化を認識できず、当該ミラー化されたメモリのサイズが制限されている場合に当該ミラー化されたメモリが割り当てられる必要があるデータに当該ミラー化されたメモリを割り当てることができない先行技術と比較すると、本発明の当該実施形態により提供するメモリ割当て装置では、BOISが当該ミラー化されたメモリのアドレス範囲をOSに提供するので、当該装置は当該ミラー化されたメモリを正確に発見し、当該ミラー化されたメモリに格納する必要があるデータに当該ミラー化されたメモリを割り当てることができる。したがって、当該方法は、当該制限されたミラー化されたメモリの利用効率を保証し、システム信頼性を高める。
任意選択で、図3に対応する実施形態に基づいて、図4を参照すると、本発明の当該実施形態により提供するメモリ割当て装置の別の実装方式では、装置20はさらに、
検出ユニット202が当該メモリ割当てを要求するデータに検出を実施する前にミラー識別子をカーネル・データおよびクリティカルなユーザ・データに設定するように構成された第1の設定ユニット204であって、当該クリティカルなユーザ・データはミラー化された記憶を要求するユーザ指定のデータである、第1の設定ユニット204
を備え、
検出ユニット202は、当該メモリ割当てを要求するデータが第1の設定ユニット204により設定されたミラー識別子を運搬するかどうかを検出するように構成され、
割当てユニット203は、検出ユニット202が、当該メモリ割当てを要求するデータが当該ミラー識別子を運搬することを検出したとき、当該メモリ割当てを要求するデータがカーネル・データまたはクリティカルなユーザ・データであると判定し、当該未占有のミラー化されたメモリから、当該ミラー化されたメモリをカーネル・データまたはクリティカルなユーザ・データに割り当てるように構成される。
任意選択で、図4に対応する実施形態に基づいて、図5を参照すると、本発明の当該実施形態により提供するメモリ割当て装置の別の実装方式では、装置20はさらに、
当該メモリ割当てを要求するデータが設定ユニット204により設定されたクリティカルなユーザ・データであるとき、同一のプロセスのデータが当該初期のミラー化されたメモリに格納されるかどうかを判定するように構成された判定ユニット205であって、当該同一のプロセスのデータは、当該クリティカルなユーザ・データを生成する同一のプロセスにより当該クリティカルなユーザ・データの前に生成されたデータである、判定ユニット205と、
判定ユニット205が、当該同一のプロセスのデータが当該ミラー化されたメモリに格納されていないと判定したとき、当該同一のプロセスのデータを当該初期のミラー化されたメモリにマイグレートするように構成されたマイグレーション・ユニット206と、
を備える。
任意選択で、図3に対応する実施形態に基づいて、図6を参照すると、本発明の当該実施形態により提供するメモリ割当て装置の別の実装方式では、割当てユニット203は、
当該ミラー化されたメモリに格納されるべきデータが属する予め計画されたメモリ・リソース領域を決定するように構成された決定サブユニット2031と、
決定サブユニット2021により決定され当該データが属する当該予め計画されたメモリ・リソース領域の未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるように構成された割当てサブユニット2032と
を備える。
任意選択で、図3に対応する実施形態に基づいて、図7を参照すると、本発明の当該実施形態により提供するメモリ割当て装置の別の実装方式では、装置20はさらに、割当てユニット203が当該ミラー化されたメモリを割り当てた後に、当該ミラー化されたメモリに格納されるべきデータに割り当てられた当該ミラー化されたメモリのアドレス範囲に占有フラグを設定するように構成された第2の設定ユニット207を備える。
図8は、本発明の1実施形態に従うメモリ割当て装置40の略構造図である。メモリ割当て装置40は、入出力装置410、プロセッサ430、およびメモリ440を備えてもよい。
メモリ440は、読取専用メモリおよびランダム・アクセス・メモリを含み、命令およびデータをプロセッサ430に提供してもよい。メモリ440の一部がさらに、不揮発性ランダム・アクセス・メモリ(NVRAM)を含んでもよい。
メモリ440は、以下の要素、実行可能モジュールまたはデータ構造、またはそのサブセット、またはその拡張セット、即ち、様々な動作を実施するために使用される様々な動作命令を含む動作命令と、様々な基本サービスを実装しハードウェア・ベースのタスクを処理するために使用される様々なシステム・プログラムを含むオペレーティング・システムを格納する。
当該メモリ割当て装置はコンピュータ・システムに適用され、当該コンピュータ・システムは、メモリ・リソース、基本入出力システムBOIS、およびオペレーティング・システムOSを備える。当該メモリ・リソースは初期のミラー化されたメモリを含む。本発明の当該実施形態では、オペレーティング・システムを実行したとき、プロセッサ430は、メモリ440に格納された動作命令を起動することによって以下の動作、即ち、当該初期のミラー化されたメモリ内の未占有のミラー化されたメモリを取得するステップであって、当該初期のミラー化されたメモリは、OSの初期化中にBOISによりOSに提供されたミラー化されたメモリのアドレス範囲により示されたミラー化されたメモリである、ステップと、
メモリ割当てを要求するデータに検出を実施するステップと、
当該データがミラー化されたメモリに格納すべきデータであると検出したとき、当該未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるステップと
を実施する(当該動作命令をオペレーティング・システムに格納してもよい)。
本発明の当該実施形態では、メモリ割当て装置40のBOISは、ミラー化されたメモリを正確に発見できるように、ミラー化されたメモリのアドレス範囲をOSに提供する。さらに、ミラー化されたメモリが当該ミラー化されたメモリに格納する必要があるデータに割り当てられ、その結果、当該制限されたミラー化されたメモリの利用効率が保証され、そのシステム信頼性が改善される。
プロセッサ430はメモリ割当て装置40の動作を制御する。プロセッサ430をCPU(Central Processing Unit、中央演算装置)と称してもよい。メモリ440は、読取専用メモリおよびランダム・アクセス・メモリを含み、命令およびデータをプロセッサ430に提供してもよい。メモリ440の一部がさらに、不揮発性ランダム・アクセス・メモリ(NVRAM)を含んでもよい。具体的な適用では、メモリ割当て装置40のコンポーネントは、バス・システム450を用いることによって一緒に接続される。バス・システム450がさらに、データ・バスに加えて、電力バス、制御バス、ステータス信号バス等を含んでもよい。しかし、明確な説明のため、図面における様々なバスをバス・システム450として示してある。
本発明の上述の実施形態により開示された方法をプロセッサ430に適用するか、または、プロセッサ430により実装してもよい。プロセッサ430が、集積回路チップであってもよく、信号処理能力を有してもよい。実装プロセスにおいて、上述の方法の各ステップを、プロセッサ430内のハードウェアの集積論理回路またはソフトウェアの形態での命令を用いることによって完了してもよい。プロセッサ430が、汎用目的プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールド・プログラム可能ゲート・アレイ(FPGA)、または別のプログラム可能論理装置、離散ゲートまたはトランジスタ論理装置、または離散ハードウェア・コンポーネントであってもよい。当該プロセッサが、本発明の実施形態で開示した方法、ステップおよび論理ブロック図を実装または実行してもよい。当該汎用目的プロセッサがマイクロプロセッサであってもよく、または、当該プロセッサが任意の従来のプロセッサ等であってもよい。本発明の当該実施形態を参照して開示された方法のステップをハードウェア復号化プロセッサにより直接実行し完了するか、または、復号化プロセッサ内のハードウェアおよびソフトウェア・モジュールの組合せを用いることによって実行し完了してもよい。当該ソフトウェア・モジュールを、ランダム・アクセス・メモリ、フラッシュ・メモリ、読取専用メモリ、プログラム可能読取専用メモリ、電気的消去可能プログラム可能メモリ、またはレジスタのような当業界の成熟した記憶媒体に配置してもよい。当該記憶媒体はメモリ440に配置され、プロセッサ430はメモリ440内の情報を読み取り、当該プロセッサのハードウェアとの組合せで上述の方法におけるステップを完了する。
任意選択で、プロセッサ430はさらに、ミラー識別子をカーネル・データおよびクリティカルなユーザ・データに設定し、当該メモリ割当てを要求するデータが当該ミラー識別子を運搬するかどうかを検出し、当該メモリ割当てを要求するデータが当該ミラー識別子を運搬すると検出したとき、当該メモリ割当てを要求するデータがカーネル・データまたはクリティカルなユーザ・データであると判定し、当該未占有のミラー化されたメモリから、当該ミラー化されたメモリをカーネル・データまたはクリティカルなユーザ・データに割り当てるように構成される。当該クリティカルなユーザ・データはミラー化された記憶を要求するユーザ指定のデータである。
任意選択で、プロセッサ430はさらに、当該メモリ割当てを要求するデータがクリティカルなユーザ・データであるとき、同一のプロセスのデータが当該初期のミラー化されたメモリに格納されるかどうかを判定し、当該同一のプロセスのデータが当該ミラー化されたメモリに格納されていない場合、当該同一のプロセスのデータを当該初期のミラー化されたメモリにマイグレートするように構成される。当該同一のプロセスのデータは、当該クリティカルなユーザ・データを生成する同一のプロセスにより当該クリティカルなユーザ・データの前に生成されたデータである。
任意選択で、プロセッサ430は特に、当該ミラー化されたメモリに格納されるべきデータが属する予め計画されたメモリ・リソース領域を決定し、当該データが属する当該予め計画されたメモリ・リソース領域の未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるように構成される。
任意選択で、プロセッサ430はさらに、当該ミラー化されたメモリが当該未占有のミラー化されたメモリから当該ミラー化されたメモリに格納されるべきデータに割り当てられた後、当該ミラー化されたメモリに格納されるべきデータに割り当てられた当該ミラー化されたメモリのアドレス範囲に占有フラグを設定するように構成される。
当業者は、当該実施形態における方法のステップの全部または一部を、(プロセッサのような)関連ハードウェアに指示するプログラムにより実装してもよいことを理解しうる。当該プログラムをコンピュータ可読記憶媒体に格納してもよい。当該記憶媒体は、ROM、RAM、磁気ディスク、または光ディスクを含んでもよい。
本発明の実施形態により提供された媒体ストリーム情報更新方法、装置、およびシステムを上で詳細に説明した。本発明の原理および実装方式は、特定の例を通じて本明細書で説明されている。当該実施形態に関する説明は本発明の方法と中心的な思想の理解を支援するために提供されているにすぎない。さらに、当業者は、本発明の思想に従う特定の実装方式と適用範囲の点で本発明に変形と修正を行うことができる。したがって、本明細書の内容は本発明への限定として解釈されるべきではない。
20 メモリ割当て装置
201 取得ユニット
202 検出ユニット
203 割当てユニット
2031 決定サブユニット
2032 割当てサブユニット
204 第1の設定ユニット
205 判定ユニット
206 マイグレーション・ユニット
207 第2の設定ユニット
410 入出力装置
430 プロセッサ
440 メモリ
450 バス
メモリ・ミラーリング技術の動作原理は以下の通りである。即ち、2つのメモリ領域はハードウェアで計画される。一方はプライマリ・メモリとして使用され、他方はミラー化されたメモリとして使用される。実行されると、オペレーティング・システムはメモリ内にデータの2つのコピーを作成し、これらはそれぞれ当該プライマリ・メモリおよび当該ミラー化されたメモリに格納される。したがって、当該メモリ内のデータに対して、2組の完全なバックアップ・データがある。完全なメモリ・ミラーリングは、メモリ内の全てのデータに対してコピーが存在することを要求する。サーバ・システムが正常に実行するとき、オリジナルが使用される。1つのコピーのホストが故障すると、他のコピーが代わりに使用される。このように、メモリ・チャネルの故障により生ずるデータ・ロスが効果的に回避され、サーバの信頼性が大幅に向上する。しかし、この機能を実装するために二重の物理メモリが必要とされ、実際の容量利用は50%にすぎない。非常に高いコストのために、実際に、完全なメモリ・ミラーリングを使用する製品は殆どない。
オペレーティング・システムがミラー化されたメモリの変化を認識できず当該ミラー化されたメモリのサイズが制限されている場合に当該ミラー化されたメモリが割り当てられる必要があるデータに当該ミラー化されたメモリを割り当てることができない先行技術と比較すると、本発明の1実施形態により提供されるメモリ割当て方法は、ミラー化されたメモリを正確に発見でき、当該ミラー化されたメモリに格納する必要があるデータに当該ミラー化されたメモリを割り当てることができる。当該方法は、当該制限されたミラー化されたメモリの高い利用を保証し、システム信頼性を高める。本発明の1実施形態では対応する装置をさらに提供する。
本発明の第1の態様ではメモリ割当て方法を提供する。当該方法はコンピュータ・システムに適用され、当該コンピュータ・システムは、メモリ・リソース、基本入出力システム(BIOS)、およびオペレーティング・システムOSを備える。当該メモリ・リソースは初期のミラー化されたメモリを含み、当該オペレーティング・システムを実行したとき、当該方法は、
当該初期のミラー化されたメモリ内の未占有のミラー化されたメモリを取得するステップであって、当該初期のミラー化されたメモリは、OSの初期化中にBIOSによりOSに提供されたミラー化されたメモリのアドレス範囲により示されたミラー化されたメモリである、ステップと、
メモリ割当てを要求するデータに検出を実施するステップと、
当該データがミラー化されたメモリに格納すべきデータであると検出したとき、当該未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるステップと
を含む。
第1の態様の第1の可能な実装方式を参照すると、第2の可能な実装方式では、当該方法はさらに、
当該メモリ割当てを要求するデータがクリティカルなユーザ・データであるとき、同一のプロセスのデータが当該初期のミラー化されたメモリに格納されるかどうかを判定するステップであって、当該同一のプロセスのデータは、当該クリティカルなユーザ・データを生成する同一のプロセスにより当該クリティカルなユーザ・データの前に生成されたデータである、ステップと、
当該同一のプロセスのデータが元のミラー化されたメモリに格納されていない場合、当該同一のプロセスのデータを当該初期のミラー化されたメモリにマイグレートするステップと
を含む。
本発明の第2の態様ではメモリ割当て装置を提供する。当該装置はコンピュータ・システムに適用され、当該コンピュータ・システムは、メモリ・リソース、基本入出力システム(BIOS)、およびオペレーティング・システムOSを備える。当該メモリ・リソースは初期のミラー化されたメモリを含み、当該オペレーティング・システムを実行したとき、当該装置は、
当該初期のミラー化されたメモリ内の未占有のミラー化されたメモリを取得するように構成された取得ユニットであって、当該初期のミラー化されたメモリは、OSの初期化中にBIOSによりOSに提供されたミラー化されたメモリのアドレス範囲により示されたミラー化されたメモリである、取得ユニットと、
メモリ割当てを要求するデータに検出を実施するように構成された検出ユニットと、
当該取得ユニットにより取得された未占有のミラー化されたメモリから、当該データがミラー化されたメモリに格納すべきデータであると当該検出ユニットが判定したとき、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるように構成された割当てユニットと、
を備える。
本発明の1実施形態ではメモリ割当て方法を提供する。当該方法はコンピュータ・システムに適用され、当該コンピュータ・システムは、メモリ・リソース、基本入出力システム(BIOS)、およびオペレーティング・システムOSを備える。当該メモリ・リソースは初期のミラー化されたメモリを含む。当該オペレーティング・システムを実行したとき、当該方法は、当該初期のミラー化されたメモリ内の未占有のミラー化されたメモリを取得するステップであって、当該初期のミラー化されたメモリは、OSの初期化中にBIOSによりOSに提供されたミラー化されたメモリのアドレス範囲により示されたミラー化されたメモリである、ステップと、メモリ割当てを要求するデータに検出を実施するステップと、当該データがミラー化されたメモリに格納すべきデータであると検出したとき、当該未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるステップとを含む。オペレーティング・システムがメモリの変化を認識できず、当該ミラー化されたメモリのサイズが制限されている場合に当該ミラー化されたメモリが割り当てられる必要があるデータに当該ミラー化されたメモリを割り当てることができない先行技術と比較すると、本発明の当該実施形態により提供されたメモリ割当て方法では、BIOSでは、当該ミラー化されたメモリのアドレス範囲をOSに提供するので、当該方法は当該ミラー化されたメモリを正確に発見し、当該ミラー化されたメモリに格納する必要があるデータに当該ミラー化されたメモリを割り当てることができる。したがって、当該方法は、当該制限されたミラー化されたメモリの利用効率を保証し、システム信頼性を高める。
図1を参照すると、本発明の1実施形態により提供されるコンピュータ・システムのアーキテクチャは、ハードウェア・リソース層、基本入出力システム(Basic Input Output System、BIOS)、オペレーティング・システム(Operating System、OS)、およびユーザ・アプリケーション層を含んでもよい。当該ハードウェア・リソース層は、プロセッサ、メモリ、および入出力システムのようなハードウェア・リソースを含んでもよい。当該ユーザ・アプリケーション層は、様々なサービス・アプリケーションを含んでもよい。本発明の当該実施形態におけるオペレーティング・システムがLinux(登録商標)システムであってもよい。
当該メモリがミラー化されたメモリを含んでもよい。オペレーティング・システムの初期化の間、BIOSはメモリ情報をOSに報告する。当該メモリ情報は、ミラー化されたメモリのアドレス範囲を含む、様々なタイプのメモリのアドレス範囲であってもよい。例えば、以下の情報が含まれてもよく、e820マップの形で表されてもよい。即ち、
e820:BIOSで提供された物理RAMマップ:
[mem 0x0000000000000000-0x000000000009a7ff] 使用可
[mem 0x000000000009a800-0x000000000009ffff] 予約済み
[mem 0x00000000000e4b60-0x00000000000fffff] 予約済み
[mem 0x0000000000100000-0x000000003fffffff] ミラー (1M乃至1G
[mem 0x0000000040000000-0x00000000bf78ffff] 使用可 (1G乃至3063M
[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] 使用可 (4G乃至12G
[mem 0x0000000300000000-0x000000033fffffff] ミラー (12G乃至13G
[mem 0x0000000340000000-0x00000005ffffffff] 使用可 (13G乃至24G
[mem 0x0000000600000000-0x000000063fffffff] ミラー (24G乃至25G
[mem 0x0000000640000000-0x0000000bffffffff] 使用可 (25G乃至36G
[mem 0x0000000900000000-0x000000093fffffff] ミラー (36G乃至37G
[mem 0x0000000940000000-0x0000000c3fffffff] 使用可 (37G乃至48G)・・・
ミラーとマークされたアドレス範囲に対応するメモリがミラー化されたメモリである。本発明の当該実施形態では、当該ミラー化されたメモリのアドレス範囲は(1M乃至1G)、(12G乃至13G)、(24G乃至25G)、および(36G乃至37G)である。
オペレーティング・システムが、BIOSにより報告されたメモリ情報に従って、ミラー化されたメモリ管理ゾーンMIRROR ZONEを生成してもよい。MIRROR ZONEはミラー化されたメモリ領域を追跡し管理するために使用され、その編成方式は正常なメモリ管理ゾーンと同じである。複数のMIRROR ZONEがあってもよく、当該複数のMIRROR ZONEがZONE Listを構成する。例えば、本発明の当該実施形態におけるミラー化されたメモリに対して、4つのMIRROR ZONE、即ち、(1M乃至1G)、(12G乃至13G)、(24G乃至25G)、および(36G乃至37G)があってもよく、MIRROR_ZONE1、MIRROR_ZONE2、MIRROR_ZONE3、およびMIRROR_ZONE4と順番に採番してもよい。不均一メモリ・アクセス(Non Uniform Memory Access Architecture、NUMA)アーキテクチャによれば、48Gのメモリを、4つのノード、即ち、(0M乃至12G)、(13G乃至24G)、(25G乃至36G)、および(37G乃至48G)に分割してもよい。当該4つのMIRROR ZONEはそれぞれ当該4つのノードに属する。ミラー化されたメモリの割当ての間、ローカル・ノードのミラー化されたメモリが優先的に割り当てられ、その結果、ノード間メモリ・アクセスに起因する長いレイテンシが回避される。
メモリがカーネル・データに割り当てられると、new__GFP_mirror識別子を、ミラー化されたメモリをカーネルに優先的に割り当てるための識別子として使用してもよい。メモリがユーザ・データに割り当てられると、__GFP_mirror識別子を、ミラー化されたメモリを優先的に割り当てるために指定してもよく、または、当該設定が、ミラー化されたメモリがデフォルトでカーネル・データに優先的に割り当てられるというものであってもよい。例えば、GFP_KERNELのデフォルト値が変化し、その結果、ミラー化されたメモリがデフォルトで優先的に割り当てられる。即ち、
#define GFP_KERNEL (__GFP_WAIT | __GFP_IO | __GFP_FS | __GFP_mirror)
である。
当該方法はコンピュータ・システムに適用され、当該コンピュータ・システムは、メモリ・リソース、基本入出力システム(BIOS)、およびオペレーティング・システムOSを備える。当該メモリ・リソースは初期のミラー化されたメモリを含む。オペレーティング・システムを実行したとき、当該方法は以下を含む。
101.当該初期のミラー化されたメモリ内の未占有のミラー化されたメモリを取得する。当該初期のミラー化されたメモリは、OSの初期化中にBIOSによりOSに提供されたミラー化されたメモリのアドレス範囲により示されたミラー化されたメモリである。
本発明の当該実施形態ではメモリ割当て方法を提供する。当該方法はコンピュータ・システムに適用され、当該コンピュータ・システムは、メモリ・リソース、基本入出力システム(BIOS)、およびオペレーティング・システムOSを含む。当該メモリ・リソースは、初期のミラー化されたメモリを含む。オペレーティング・システムを実行したとき、当該方法は、当該初期のミラー化されたメモリ内の未占有のミラー化されたメモリを取得するステップであって、当該初期のミラー化されたメモリは、OSの初期化中にBIOSによりOSに提供されたミラー化されたメモリのアドレス範囲により示されたミラー化されたメモリである、ステップと、メモリ割当てを要求するデータに検出を実施するステップと、当該データがミラー化されたメモリに格納すべきデータであると検出したとき、当該未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるステップとを含む。オペレーティング・システムがメモリの変化を認識できず、当該ミラー化されたメモリのサイズが制限されている場合に当該ミラー化されたメモリが割り当てられる必要があるデータに当該ミラー化されたメモリを割り当てることができない先行技術と比較すると、本発明の当該実施形態により提供されたメモリ割当て方法では、BIOSでは、当該ミラー化されたメモリのアドレス範囲をOSに提供するので、当該方法は当該ミラー化されたメモリを正確に発見し、当該ミラー化されたメモリに格納する必要があるデータに当該ミラー化されたメモリを割り当てることができる。したがって、当該方法は、当該制限されたミラー化されたメモリの利用効率を保証し、システム信頼性を高める。
任意選択で、第1の任意選択の実装方式に基づいて、本発明の当該実施形態により提供されたメモリ割当て方法の第2の任意選択の実装方式では、当該方法がさらに、
当該メモリ割当てを要求するデータがクリティカルなユーザ・データであるとき、同一のプロセスのデータが当該初期のミラー化されたメモリに格納されるかどうかを判定するステップであって、当該同一のプロセスのデータは、当該クリティカルなユーザ・データを生成する同一のプロセスにより当該クリティカルなユーザ・データの前に生成されたデータである、ステップと、
当該同一のプロセスのデータが元のミラー化されたメモリに格納されていない場合、当該同一のプロセスのデータを当該初期のミラー化されたメモリにマイグレートするステップと、
を含んでもよい。
図3を参照すると、本発明の1実施形態ではメモリ割当て装置20を提供する。当該装置はコンピュータ・システムに適用され、当該コンピュータ・システムは、メモリ・リソース、基本入出力システム(BIOS)、およびオペレーティング・システムOSを備える。当該メモリ・リソースは初期のミラー化されたメモリを含む。オペレーティング・システムを実行したとき、装置20は、当該初期のミラー化されたメモリ内の未占有のミラー化されたメモリを取得するように構成された取得ユニット201であって、当該初期のミラー化されたメモリは、OSの初期化中にBIOSによりOSに提供されたミラー化されたメモリのアドレス範囲により示されたミラー化されたメモリである、取得ユニット201と、メモリ割当てを要求するデータに検出を実施するように構成された検出ユニット202と、当該データがミラー化されたメモリに格納すべきデータであると検出ユニット202が検出したとき、取得ユニット201により取得された未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるように構成された割当てユニット203とを備える。
本発明の当該実施形態ではメモリ割当て装置を提供する。当該装置はコンピュータ・システムに適用され、当該コンピュータ・システムは、メモリ・リソース、基本入出力システム(BIOS)、およびオペレーティング・システムOSを備える。当該メモリ・リソースは初期のミラー化されたメモリを含む。オペレーティング・システムを実行したとき、装置20は、取得ユニット201が当該初期のミラー化されたメモリ内の未占有のミラー化されたメモリを取得し、当該初期のミラー化されたメモリは、OSの初期化中にBIOSによりOSに提供されたミラー化されたメモリのアドレス範囲により示されたミラー化されたメモリであり、検出ユニット202がメモリ割当てを要求するデータに検出を実施し、当該データがミラー化されたメモリに格納すべきデータであると検出ユニット202が検出したとき、割当てユニット203が、取得ユニット201により取得された未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てることを含む。オペレーティング・システムがメモリの変化を認識できず、当該ミラー化されたメモリのサイズが制限されている場合に当該ミラー化されたメモリが割り当てられる必要があるデータに当該ミラー化されたメモリを割り当てることができない先行技術と比較すると、本発明の当該実施形態により提供するメモリ割当て装置では、BIOSが当該ミラー化されたメモリのアドレス範囲をOSに提供するので、当該装置は当該ミラー化されたメモリを正確に発見し、当該ミラー化されたメモリに格納する必要があるデータに当該ミラー化されたメモリを割り当てることができる。したがって、当該方法は、当該制限されたミラー化されたメモリの利用効率を保証し、システム信頼性を高める。
任意選択で、図4に対応する実施形態に基づいて、図5を参照すると、本発明の当該実施形態により提供するメモリ割当て装置の別の実装方式では、装置20はさらに、
当該メモリ割当てを要求するデータが第1の設定ユニット204により設定されたクリティカルなユーザ・データであるとき、同一のプロセスのデータが当該初期のミラー化されたメモリに格納されるかどうかを判定するように構成された判定ユニット205であって、当該同一のプロセスのデータは、当該クリティカルなユーザ・データを生成する同一のプロセスにより当該クリティカルなユーザ・データの前に生成されたデータである、判定ユニット205と、
判定ユニット205が、当該同一のプロセスのデータが当該ミラー化されたメモリに格納されていないと判定したとき、当該同一のプロセスのデータを当該初期のミラー化されたメモリにマイグレートするように構成されたマイグレーション・ユニット206と、
を備える。
任意選択で、図3に対応する実施形態に基づいて、図6を参照すると、本発明の当該実施形態により提供するメモリ割当て装置の別の実装方式では、割当てユニット203は、
当該ミラー化されたメモリに格納されるべきデータが属する予め計画されたメモリ・リソース領域を決定するように構成された決定サブユニット2031と、
決定サブユニット2031により決定され当該データが属する当該予め計画されたメモリ・リソース領域の未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるように構成された割当てサブユニット2032と
を備える。
当該メモリ割当て装置はコンピュータ・システムに適用され、当該コンピュータ・システムは、メモリ・リソース、基本入出力システム(BIOS)、およびオペレーティング・システムOSを備える。当該メモリ・リソースは初期のミラー化されたメモリを含む。本発明の当該実施形態では、オペレーティング・システムを実行したとき、プロセッサ430は、メモリ440に格納された動作命令を起動することによって以下の動作、即ち、当該初期のミラー化されたメモリ内の未占有のミラー化されたメモリを取得するステップであって、当該初期のミラー化されたメモリは、OSの初期化中にBIOSによりOSに提供されたミラー化されたメモリのアドレス範囲により示されたミラー化されたメモリである、ステップと、
メモリ割当てを要求するデータに検出を実施するステップと、
当該データがミラー化されたメモリに格納すべきデータであると検出したとき、当該未占有のミラー化されたメモリから、当該ミラー化されたメモリに格納されるべきデータに当該ミラー化されたメモリを割り当てるステップと
を実施する(当該動作命令をオペレーティング・システムに格納してもよい)。
本発明の当該実施形態では、メモリ割当て装置40のBIOSは、ミラー化されたメモリを正確に発見できるように、ミラー化されたメモリのアドレス範囲をOSに提供する。さらに、ミラー化されたメモリが当該ミラー化されたメモリに格納する必要があるデータに割り当てられ、その結果、当該制限されたミラー化されたメモリの利用効率が保証され、そのシステム信頼性が改善される。
任意選択で、プロセッサ430はさらに、当該メモリ割当てを要求するデータがクリティカルなユーザ・データであるとき、同一のプロセスのデータが当該初期のミラー化されたメモリに格納されるかどうかを判定し、当該同一のプロセスのデータが当該ミラー化されたメモリに格納されていない場合、当該同一のプロセスのデータを元のミラー化されたメモリにマイグレートするように構成される。当該同一のプロセスのデータは、当該クリティカルなユーザ・データを生成する同一のプロセスにより当該クリティカルなユーザ・データの前に生成されたデータである。
本発明の実施形態により提供されたメモリ割当て方法および装置を上で詳細に説明した。本発明の原理および実装方式は、特定の例を通じて本明細書で説明されている。当該実施形態に関する説明は本発明の方法と中心的な思想の理解を支援するために提供されているにすぎない。さらに、当業者は、本発明の思想に従う特定の実装方式と適用範囲の点で本発明に変形と修正を行うことができる。したがって、本明細書の内容は本発明への限定として解釈されるべきではない。

Claims (15)

  1. メモリ割当て方法であって、前記方法はコンピュータ・システムに適用され、前記コンピュータ・システムはメモリ・リソース、基本入出力システムBOIS、およびオペレーティング・システムOSを備え、前記メモリ・リソースは初期のミラー化されたメモリを備え、前記オペレーティング・システムを実行したとき、前記方法は、
    メモリ割当てを要求するデータがミラー識別子を運搬するかどうかを検出するステップであって、前記ミラー識別子がカーネル・データおよびクリティカルなユーザ・データにおいて設定され、前記クリティカルなユーザ・データは、ユーザ・データにおける、ミラー化された記憶を要求するユーザ指定のデータである、ステップと、
    前記メモリ割当てを要求するデータが前記ミラー識別子を運搬すると検出したとき、ミラー化されたメモリの未占有部分から、前記メモリ割当てを要求するデータにメモリを割り当てるステップであって、前記ミラー化されたメモリは、前記OSの初期化中に前記BOISにより前記OSに提供されたミラー化されたメモリのアドレス範囲により示されたミラー化されたメモリである、ステップと、
    を含む、方法。
  2. 前記メモリ割当てを要求するデータが前記クリティカルなユーザ・データであるとき、同一のプロセスのデータが前記ミラー化されたメモリに格納されているかどうかを判定するステップであって、前記同一のプロセスの前記データは、前記クリティカルなユーザ・データを生成する前記同一のプロセスにより前記クリティカルなユーザ・データの前に生成されたデータである、ステップと、
    前記同一のプロセスの前記データが前記ミラー化されたメモリに格納されていない場合、前記同一のプロセスの前記データを前記ミラー化されたメモリにマイグレートするステップと
    をさらに含む、請求項1に記載の方法。
  3. 前記ミラー化されたメモリの未占有部分から、前記メモリ割当てを要求するデータにメモリを割り当てるステップは、
    前記メモリ割当てを要求するデータが属する予め計画されたメモリ・リソース領域を決定するステップであって、各領域はミラー化されたメモリの1つまたは複数のセグメントに対応する、ステップと、
    前記メモリ割当てを要求するデータが属する前記予め計画されたメモリ・リソース領域に対応するミラー化されたメモリの未占有部分から、ミラー化されたメモリを前記ミラー化されたメモリに格納されるべき前記データに割り当てるステップと
    を含む、請求項1または2に記載の方法。
  4. 前記割り当てられたミラー化されたメモリのアドレス範囲に対して占有フラグを設定するステップをさらに含む、請求項1乃至3の何れか1項に記載の方法。
  5. メモリ割当て装置であって、前記装置はコンピュータ・システムに適用され、前記コンピュータ・システムはメモリ・リソース、基本入出力システムBOIS、およびオペレーティング・システムOSを備え、前記メモリ・リソースは初期のミラー化されたメモリを備え、前記装置は、
    メモリ割当てを要求するデータがミラー識別子を運搬するかどうかを検出するように構成された検出ユニットであって、前記ミラー識別子がカーネル・データおよびクリティカルなユーザ・データにおいて設定され、前記クリティカルなユーザ・データは、ユーザ・データにおける、ミラー化された記憶を要求するユーザ指定のデータである、検出ユニットと、
    ミラー化されたメモリの未占有部分から、前記メモリ割当てを要求するデータが前記ミラー識別子を運搬することが検出されたとき、前記メモリ割当てを要求するデータにメモリを割り当てるように構成された割当てユニットであって、前記ミラー化されたメモリは、前記OSの初期化中に前記BOISにより前記OSに提供されたミラー化されたメモリのアドレス範囲により示されたミラー化されたメモリである、割当てユニットと、
    を備える、装置。
  6. 前記メモリ割当てを要求するデータが前記クリティカルなユーザ・データであるとき、同一のプロセスのデータが前記初期のミラー化されたメモリに格納されるかどうかを判定するように構成された判定ユニットであって、前記同一のプロセスの前記データは、前記クリティカルなユーザ・データを生成する前記同一のプロセスにより前記クリティカルなユーザ・データの前に生成されたデータである、判定ユニットと、
    前記判定ユニットが、前記同一のプロセスの前記データが前記ミラー化されたメモリに格納されていないと判定したとき、前記同一のプロセスの前記データを前記初期のミラー化されたメモリにマイグレートするように構成されたマイグレーション・ユニットと、
    をさらに備える、請求項5に記載の装置。
  7. 前記割当てユニットは、
    前記メモリ割当てを要求するデータが前記ミラー識別子を運搬することが検出されたとき、前記メモリ割当てを要求するデータに対応する予め計画されたメモリ・リソース領域を決定するように構成された決定サブユニットであって、各領域はミラー化されたメモリの1つまたは複数のセグメントに対応する、決定サブユニットと、
    前記メモリ割当てを要求するデータが属する前記予め計画されたメモリ・リソース領域に対応するミラー化されたメモリの未占有部分から、ミラー化されたメモリを前記ミラー化されたメモリに格納されるべき前記データに割り当てるように構成された割当てサブユニットと、
    を備える、請求項5または6に記載の装置。
  8. 前記割り当てられたミラー化されたメモリのアドレス範囲に対して占有フラグを設定するように構成された第2の設定ユニットをさらに備える、請求項5乃至7の何れか1項に記載の装置。
  9. メモリ割当て方法であって、前記方法はコンピュータ・システムに適用され、前記コンピュータ・システムはメモリ・リソース、基本入出力システムBOIS、およびオペレーティング・システムOSを備え、前記メモリ・リソースは初期のミラー化されたメモリを備え、前記オペレーティング・システムを実行したとき、前記方法は、
    メモリ割当てを要求するデータに検出を実施するステップと、前記メモリ割当てを要求するデータがミラー化されたメモリに格納すべきデータであると検出したとき、前記メモリ割当てを要求するデータに対応する予め計画されたメモリ領域を決定し、前記メモリ割当てを要求するデータが属する前記予め計画されたメモリ領域に対応するミラー化されたメモリの1つまたは複数のセグメントの未占有部分から、前記ミラー化されたメモリを前記ミラー化されたメモリに格納されるべき前記データに割り当てるステップであって、前記ミラー化されたメモリは、前記OSの初期化中に前記BOISにより前記OSに提供されたミラー化されたメモリのアドレス範囲により示されたミラー化されたメモリである、ステップと、
    を含む、方法。
  10. 前記メモリ割当てを要求するデータに対応する予め計画されたメモリ領域を決定し、前記メモリ割当てを要求するデータが属する前記予め計画されたメモリ領域に対応するミラー化されたメモリの1つまたは複数のセグメントの未占有部分から、前記ミラー化されたメモリを前記ミラー化されたメモリに格納されるべき前記データに割り当てるステップは、
    前記メモリ割当てを要求するデータに対応するノードを決定し、前記メモリ割当てを要求するデータに対応する前記ノードのミラー化されたメモリの未占有部分から、前記メモリ割当てを要求するデータに前記ミラー化されたメモリを割り当てるステップと、
    を含む、請求項9に記載の方法。
  11. 全てのノードは不均一メモリ・アクセスNUMAアーキテクチャに従って計画され、各ノードはミラー化されたメモリの1つまたは複数のセグメントを含む、請求項10に記載の方法。
  12. メモリ割当て装置であって、前記装置はコンピュータ・システムに適用され、前記コンピュータ・システムはメモリ・リソース、基本入出力システムBOIS、およびオペレーティング・システムOSを備え、前記メモリ・リソースは初期のミラー化されたメモリを備え、前記装置は、
    メモリ割当てを要求するデータに検出を実施するように構成されたユニットと、
    前記メモリ割当てを要求するデータがミラー化されたメモリに格納すべきデータであることが検出されたとき、前記メモリ割当てを要求するデータに対応する予め計画されたメモリ領域を決定し、前記メモリ割当てを要求するデータが属する前記予め計画されたメモリ領域に対応するミラー化されたメモリの1つまたは複数のセグメントの未占有部分から、前記ミラー化されたメモリを前記ミラー化されたメモリに格納されるべき前記データに割り当てるように構成されたユニットであって、前記ミラー化されたメモリは、前記OSの初期化中に前記BOISにより前記OSに提供されたミラー化されたメモリのアドレス範囲により示されたミラー化されたメモリである、ユニットと
    を備える、装置。
  13. 前記メモリ割当てを要求するデータがミラー化されたメモリに格納すべきデータであることが検出されたとき、前記メモリ割当てを要求するデータに対応する予め計画されたメモリ領域を決定し、前記メモリ割当てを要求するデータが属する前記予め計画されたメモリ領域に対応するミラー化されたメモリの1つまたは複数のセグメントの未占有部分から、前記ミラー化されたメモリを前記ミラー化されたメモリに格納されるべき前記データに割り当てるように構成された前記ユニットは、前記メモリ割当てを要求するデータに対応するノードを決定し、前記メモリ割当てを要求するデータに対応する前記ノードのミラー化されたメモリの未占有部分から、前記メモリ割当てを要求するデータに前記ミラー化されたメモリを割り当てるように構成される、請求項12に記載の方法。
  14. 全てのノードは不均一メモリ・アクセスNUMAアーキテクチャに従って計画され、各ノードはミラー化されたメモリの1つまたは複数のセグメントを含む、請求項13に記載の方法。
  15. ミラー化されたメモリの各セグメントはミラー化されたメモリ管理ゾーンMIRROR ZONEにより追跡および管理され、各ノードは1つまたは複数のMIRROR ZONEに対応する、請求項14に記載の方法。
JP2017512349A 2014-09-16 2015-09-16 メモリ割当て方法および装置 Active JP6478430B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201410471145.XA CN104252419B (zh) 2014-09-16 2014-09-16 一种内存分配的方法及装置
CN201410471145.X 2014-09-16
PCT/CN2015/089796 WO2016041501A1 (zh) 2014-09-16 2015-09-16 一种内存分配的方法及装置

Publications (2)

Publication Number Publication Date
JP2017531252A true JP2017531252A (ja) 2017-10-19
JP6478430B2 JP6478430B2 (ja) 2019-03-06

Family

ID=52187342

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017512349A Active JP6478430B2 (ja) 2014-09-16 2015-09-16 メモリ割当て方法および装置

Country Status (6)

Country Link
US (2) US10353609B2 (ja)
EP (1) EP3171276B1 (ja)
JP (1) JP6478430B2 (ja)
KR (1) KR101996975B1 (ja)
CN (1) CN104252419B (ja)
WO (1) WO2016041501A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220156378A1 (en) * 2020-11-18 2022-05-19 Canon Kabushiki Kaisha Information processing apparatus, control method of information processing apparatus, and storage medium

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104252419B (zh) * 2014-09-16 2017-09-19 华为技术有限公司 一种内存分配的方法及装置
CN106648938B (zh) * 2016-12-30 2021-01-12 苏州浪潮智能科技有限公司 一种Linux系统应用程序内存管理方法及系统
CN107704399B (zh) * 2017-08-16 2021-01-29 华为技术有限公司 一种存储数据的方法和装置
CN113868151A (zh) * 2019-05-16 2021-12-31 华为技术有限公司 配置镜像内存的方法、装置及计算机存储介质
US11294692B2 (en) * 2020-07-27 2022-04-05 Dell Products L.P. Basic input output system (BIOS)—identified memory size and node address range mirroring system
CN114090223A (zh) * 2020-08-24 2022-02-25 北京百度网讯科技有限公司 访存请求调度方法、装置、设备以及存储介质
US11734176B2 (en) * 2021-10-27 2023-08-22 Dell Products L.P. Sub-NUMA clustering fault resilient memory system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009199478A (ja) * 2008-02-25 2009-09-03 Hitachi Ltd メモリミラーリング自動構成制御方式
JP2011186563A (ja) * 2010-03-04 2011-09-22 Toshiba Corp メモリ管理装置およびメモリ管理方法
JP2012043246A (ja) * 2010-08-20 2012-03-01 Canon Inc 情報処理装置、情報処理装置の制御方法、及び、プログラム

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5651133A (en) * 1995-02-01 1997-07-22 Hewlett-Packard Company Methods for avoiding over-commitment of virtual capacity in a redundant hierarchic data storage system
US6546472B2 (en) * 2000-12-29 2003-04-08 Hewlett-Packard Development Company, L.P. Fast suspend to disk
US7028215B2 (en) * 2002-05-03 2006-04-11 Hewlett-Packard Development Company, L.P. Hot mirroring in a computer system with redundant memory subsystems
US20050216552A1 (en) * 2004-03-24 2005-09-29 Samuel Fineberg Communication-link-attached persistent memory system
US20070214333A1 (en) * 2006-03-10 2007-09-13 Dell Products L.P. Modifying node descriptors to reflect memory migration in an information handling system with non-uniform memory access
US9262284B2 (en) * 2006-12-07 2016-02-16 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Single channel memory mirror
US20090006793A1 (en) * 2007-06-30 2009-01-01 Koichi Yamada Method And Apparatus To Enable Runtime Memory Migration With Operating System Assistance
CN101470667A (zh) 2007-12-28 2009-07-01 英业达股份有限公司 Linux系统平台上指定地址范围分配物理内存的方法
US8151138B2 (en) * 2008-10-31 2012-04-03 Dell Products L.P. Redundant memory architecture management methods and systems
CN101937400B (zh) * 2009-06-29 2012-07-25 联想(北京)有限公司 管理热备份内存的方法和电子设备
CN101604263A (zh) 2009-07-13 2009-12-16 浪潮电子信息产业股份有限公司 一种实现操作系统核心代码段多副本运行的方法
KR20120068765A (ko) 2009-07-17 2012-06-27 가부시끼가이샤 도시바 메모리 관리 장치
US8090977B2 (en) * 2009-12-21 2012-01-03 Intel Corporation Performing redundant memory hopping
US8335908B2 (en) * 2010-07-01 2012-12-18 Arm Limited Data processing apparatus for storing address translations
CN101901174B (zh) 2010-07-28 2012-07-18 西安交通大学 基于代码段多副本对比机制提高程序可靠性方法
US8601310B2 (en) * 2010-08-26 2013-12-03 Cisco Technology, Inc. Partial memory mirroring and error containment
CN102203737B (zh) 2011-05-20 2013-09-11 华为技术有限公司 多线程访问多副本的方法和装置
US8898408B2 (en) * 2011-12-12 2014-11-25 Dell Products L.P. Memory controller-independent memory mirroring
US9037903B2 (en) 2012-12-28 2015-05-19 Intel Corporation Apparatus and method for partial memory mirroring
CN103136110B (zh) 2013-02-18 2016-03-30 华为技术有限公司 内存管理方法、内存管理装置及numa系统
CN103198028B (zh) 2013-03-18 2015-12-23 华为技术有限公司 一种内存数据迁移方法、装置及系统
CN103324582A (zh) * 2013-06-17 2013-09-25 华为技术有限公司 一种内存迁移方法、装置及设备
CN103389884A (zh) * 2013-07-29 2013-11-13 华为技术有限公司 处理输入/输出请求的方法、宿主机、服务器和虚拟机
CN103530241B (zh) * 2013-09-24 2016-04-13 创新科存储技术(深圳)有限公司 一种用户态的双控内存镜像实现方法
US9411695B2 (en) * 2013-12-04 2016-08-09 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Provisioning memory in a memory system for mirroring
CN104252419B (zh) 2014-09-16 2017-09-19 华为技术有限公司 一种内存分配的方法及装置
US9753662B1 (en) * 2016-09-26 2017-09-05 International Business Machines Corporation Using mirror indicators to determine whether to mirror tracks in a data set in a primary volume mirrored to a secondary volume

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009199478A (ja) * 2008-02-25 2009-09-03 Hitachi Ltd メモリミラーリング自動構成制御方式
JP2011186563A (ja) * 2010-03-04 2011-09-22 Toshiba Corp メモリ管理装置およびメモリ管理方法
JP2012043246A (ja) * 2010-08-20 2012-03-01 Canon Inc 情報処理装置、情報処理装置の制御方法、及び、プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220156378A1 (en) * 2020-11-18 2022-05-19 Canon Kabushiki Kaisha Information processing apparatus, control method of information processing apparatus, and storage medium
US11928217B2 (en) * 2020-11-18 2024-03-12 Canon Kabushiki Kaisha Information processing apparatus, control method of information processing apparatus, and storage medium

Also Published As

Publication number Publication date
US20170185340A1 (en) 2017-06-29
EP3171276A1 (en) 2017-05-24
EP3171276B1 (en) 2020-12-16
KR20170031230A (ko) 2017-03-20
JP6478430B2 (ja) 2019-03-06
CN104252419B (zh) 2017-09-19
KR101996975B1 (ko) 2019-07-05
US20190278499A1 (en) 2019-09-12
WO2016041501A1 (zh) 2016-03-24
EP3171276A4 (en) 2017-08-23
BR112017001965A2 (pt) 2017-11-21
US10990303B2 (en) 2021-04-27
US10353609B2 (en) 2019-07-16
CN104252419A (zh) 2014-12-31

Similar Documents

Publication Publication Date Title
JP6478430B2 (ja) メモリ割当て方法および装置
WO2018010654A1 (zh) 一种虚拟机热迁移的方法、装置及系统
KR101952795B1 (ko) 자원 프로세싱 방법, 운영체제, 및 장치
US10025503B2 (en) Autonomous dynamic optimization of platform resources
WO2016023390A1 (zh) 虚拟机存储资源部署方法和装置
US20160266923A1 (en) Information processing system and method for controlling information processing system
JP6111181B2 (ja) 計算機の制御方法及び計算機
US11740810B2 (en) Mirrored memory configuration method and apparatus, and computer storage medium
EP3304294A1 (en) Method and system for allocating resources for virtual hosts
JP2013246582A (ja) ストレージ装置およびストレージ装置の制御方法
CN113515483A (zh) 一种数据传输方法及装置
US20170277632A1 (en) Virtual computer system control method and virtual computer system
US20190050240A1 (en) Bios startup method and apparatus
US20150293841A1 (en) Efficient reclamation of pre-allocated direct memory access (dma) memory
US10061528B2 (en) Disk assignment for multiple distributed computing clusters in a virtualized computing environment
JP2015148921A (ja) 半導体装置、プロセッサシステム、及びその制御方法
US9697123B2 (en) Information processing device, control method of information processing device and control program of information processing device
CN113760457A (zh) 一种虚拟机资源分配方法、装置、电子设备及存储介质
CN107329798B (zh) 数据复制的方法、装置和虚拟化系统
JP2013140596A (ja) メニーコアシステムのためのオペレーティングシステム動的再構成装置及び方法
US10228859B2 (en) Efficiency in active memory sharing
WO2015161804A1 (zh) 一种Cache分区的方法及装置
BR112017001965B1 (pt) Método de alocação de memória, aparelho e sistema de computador
CN117742962A (zh) 一种虚拟机资源的管理方法、装置、设备及存储介质
CN111837104A (zh) 一种在多个处理器之间调度软件任务的方法和装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180320

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20180620

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180925

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181225

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190108

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190204

R150 Certificate of patent or registration of utility model

Ref document number: 6478430

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250