JP5712451B2 - メモリ移行を実施するための方法およびデバイス - Google Patents

メモリ移行を実施するための方法およびデバイス Download PDF

Info

Publication number
JP5712451B2
JP5712451B2 JP2014501397A JP2014501397A JP5712451B2 JP 5712451 B2 JP5712451 B2 JP 5712451B2 JP 2014501397 A JP2014501397 A JP 2014501397A JP 2014501397 A JP2014501397 A JP 2014501397A JP 5712451 B2 JP5712451 B2 JP 5712451B2
Authority
JP
Japan
Prior art keywords
memory
physical address
operating system
migrated
mapping relationship
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.)
Active
Application number
JP2014501397A
Other languages
English (en)
Other versions
JP2014509763A (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 JP2014509763A publication Critical patent/JP2014509763A/ja
Application granted granted Critical
Publication of JP5712451B2 publication Critical patent/JP5712451B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • 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/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1456Hardware arrangements for backup
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/254Distributed memory
    • G06F2212/2542Non-uniform memory access [NUMA] architecture

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Description

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

Claims (22)

  1. メモリ移行を実施するための方法であって、
    移行が行われるべきメモリの移行が行われる際、コンピュータの基本入出力システムによる、移行が行われるべき前記メモリの中のデータを前記コンピュータのオペレーティングシステムの第1の使用不能なメモリに移行させるステップであって、前記第1の使用不能なメモリは、前記オペレーティングシステムのために確保されたメモリセットである前記オペレーティングシステムの元の使用可能なメモリから前もって変換されており、さらに前記オペレーティングシステムによって変更不能であるとともに、前記オペレーティングシステムがアクセスできない、ステップと、
    前記基本入出力システムによる、移行が行われるべき前記メモリの物理アドレスと前記第1の使用不能なメモリの物理アドレスの間のマッピング関係を格納するステップと、
    を含み、
    前記基本入出力システムによる、移行が行われるべき前記メモリの物理アドレスと前記第1の使用不能なメモリの物理アドレスの間のマッピング関係を格納する前記ステップは、
    前記基本入出力システムによる、移行が行われるべき前記メモリの前記物理アドレスに関してメモリページ整列を実行して、第1の物理アドレスを得るステップと、
    前記基本入出力システムによる、前記第1の物理アドレスと前記第1の使用不能なメモリの前記物理アドレスの間のマッピング関係を格納するステップと、
    を含むことを特徴とするメモリ移行を実施するための方法。
  2. 前記オペレーティングシステムが目標の物理アドレスにアクセスする際、前記コンピュータの中に格納された前記マッピング関係の中に、前記目標の物理アドレスが対応するマッピング関係が存在するかどうかを判定するステップと、
    前記目標の物理アドレスが対応するマッピング関係が存在する場合に、前記オペレーティングシステムによる、前記目標の物理アドレスが対応する前記マッピング関係に従って前記第1の使用不能なメモリの中のデータにアクセスするステップと、
    をさらに含む請求項1に記載のメモリ移行を実施するための方法。
  3. 前記コンピュータの中に格納された前記マッピング関係の中に、前記目標の物理アドレスが対応するマッピング関係が存在するかどうかを判定するステップに先立って、
    前記目標の物理アドレスが属する前記メモリが、ユーザモードメモリであるか、またはカーネルモードメモリであるかを判定するステップをさらに含み、
    前記コンピュータの中に格納された前記マッピング関係の中に、前記目標の物理アドレスが対応するマッピング関係が存在するかどうかを判定する前記ステップは、
    前記目標の物理アドレスが属する前記メモリが前記カーネルモードメモリである場合に、前記コンピュータの中に格納された前記マッピング関係の中に、前記目標の物理アドレスが対応するマッピング関係が存在するかどうかを判定するステップである、
    請求項2に記載のメモリ移行を実施するための方法。
  4. 前記オペレーティングシステムによる、前記目標の物理アドレスが対応する前記マッピング関係に従って前記第1の使用不能なメモリの中のデータにアクセスする前記ステップは、
    前記オペレーティングシステムによる、前記目標の物理アドレスのページ内オフセットを得るステップと、
    前記オペレーティングシステムによる、前記目標の物理アドレスが対応する前記マッピング関係に従って、前記目標の物理アドレスが対応する前記第1の使用不能なメモリの第2の物理アドレスを得るステップと、
    前記オペレーティングシステムによる、前記ページ内オフセットおよび前記第2の物理アドレスの合計に従って前記第1の使用不能なメモリの中のデータにアクセスするステップと、
    を含む請求項2に記載のメモリ移行を実施するための方法。
  5. 移行が行われるべき前記メモリが、一様でないメモリアクセスアーキテクチャの下のノードメモリである場合、
    目標のノードがホットアドされる際、前記基本入出力システムによる、前記目標のノードが対応する物理アドレスを得るよう前記目標のノードに対してメモリアドレス指定を実行するステップと、
    前記基本入出力システムによる、前記コンピュータの中に格納された前記マッピング関係の中に、前記目標のノードが対応する物理アドレスが存在するかどうかを調べるステップと、
    前記基本入出力システムによる、前記コンピュータの中に格納された前記マッピング関係の中に、前記目標のノードが対応する前記物理アドレスが存在する場合に、前記マッピング関係に従って、前記目標のノードが対応する前記物理アドレスに対応する第1の使用不能なメモリの第3の物理アドレスを得るステップと、
    前記基本入出力システムによる、前記第3の物理アドレスが属する前記メモリの中のデータを、前記目標のノードに対応する前記物理アドレスが属する前記メモリに移行させるステップと、
    前記基本入出力システムによる、前記コンピュータの中に格納された前記マッピング関係から、前記目標のノードが対応する前記物理アドレスの前記マッピング関係を削除するステップと、
    をさらに含む請求項1から4のいずれか一項に記載のメモリ移行を実施するための方法。
  6. メモリ移行を実施するための方法であって、
    移行が行われるべきメモリの移行が行われる際、コンピュータの基本入出力システムによる、移行が行われるべき前記メモリの中のデータを前記コンピュータのオペレーティングシステムの第1の使用不能なメモリに移行させるステップであって、前記第1の使用不能なメモリは、前記オペレーティングシステムのために確保されたメモリセットである前記オペレーティングシステムの元の使用可能なメモリから前もって変換されており、さらに前記オペレーティングシステムによって変更不能であるとともに、前記オペレーティングシステムがアクセスできない、ステップと、
    前記基本入出力システムによる、移行が行われるべき前記メモリの物理アドレスと前記第1の使用不能なメモリの物理アドレスの間のマッピング関係を格納するステップと、
    を含み、
    コンピュータの基本入出力システムによる、移行が行われるべき前記メモリの中のデータを前記コンピュータのオペレーティングシステムの第1の使用不能なメモリに移行させる前記ステップに先立って、
    前記コンピュータの前記オペレーティングシステムによる、移行が行われるべき前記メモリの中の、前記オペレーティングシステムによって移行が行われることが可能なメモリの中のデータを前記コンピュータの第1のアイドルなメモリに移行させるステップをさらに含み、
    コンピュータの基本入出力システムによる、移行が行われるべき前記メモリの中のデータを前記コンピュータのオペレーティングシステムの第1の使用不能なメモリに移行させる前記ステップは、前記コンピュータの前記基本入出力システムによる、残りのメモリの中のデータを前記コンピュータの前記オペレーティングシステムの第2の使用不能なメモリに移行させるステップであって、前記残りのメモリは、前記オペレーティングシステムによって移行が行われることが可能な前記メモリを除いた、移行が行われるべき前記メモリの中のメモリであり、前記第2の使用不能なメモリは、前記第1の使用不能なメモリの一部分である、
    ことを特徴とするメモリ移行を実施するための方法。
  7. 前記コンピュータの前記オペレーティングシステムによる、移行が行われるべき前記メモリの中の、前記オペレーティングシステムによって移行が行われることが可能なメモリの中のデータを前記コンピュータの第1のアイドルなメモリに移行させる前記ステップは、
    前記オペレーティングシステムによる、移行が行われるべき前記メモリから、前記オペレーティングシステムによって移行がサポートされる、前記オペレーティングシステムによって移行が行われることが可能な前記メモリを得るステップと、
    前記オペレーティングシステムによる、前記オペレーティングシステムによって移行が行われることが可能な前記メモリを参照するすべてのプロセスに対してスリープ動作を実行するステップと、
    前記オペレーティングシステムによる、前記コンピュータの占有されていないメモリの中の前記第1のアイドルなメモリを割り当てるステップと、
    前記オペレーティングシステムによる、前記オペレーティングシステムによって移行が行われることが可能な前記メモリの中のデータを前記第1のアイドルなメモリにコピーするステップと、
    前記オペレーティングシステムによる、前記オペレーティングシステムによって移行が行われることが可能な前記メモリが対応するすべてのページテーブルエントリを削除するステップと、
    前記オペレーティングシステムによる、前記オペレーティングシステムによって移行が行われることが可能な前記メモリを参照するすべてのプロセスのページテーブルエントリを更新して、前記更新されたページテーブルエントリが前記第1のアイドルなメモリに向けられるようにするステップと、
    前記オペレーティングシステムによる、前記スリープ動作を受けた前記プロセスを起動するステップと、
    を含む請求項6に記載のメモリ移行を実施するための方法。
  8. 前記オペレーティングシステムが目標の物理アドレスにアクセスする際、前記コンピュータの中に格納された前記マッピング関係の中に、前記目標の物理アドレスが対応するマッピング関係が存在するかどうかを判定するステップと、
    前記目標の物理アドレスが対応するマッピング関係が存在する場合に、前記オペレーティングシステムによる、前記目標の物理アドレスが対応する前記マッピング関係に従って前記第1の使用不能なメモリの中のデータにアクセスするステップと、
    をさらに含む請求項6または7に記載のメモリ移行を実施するための方法。
  9. 前記コンピュータの中に格納された前記マッピング関係の中に、前記目標の物理アドレスが対応するマッピング関係が存在するかどうかを判定するステップに先立って、
    前記目標の物理アドレスが属する前記メモリが、ユーザモードメモリであるか、またはカーネルモードメモリであるかを判定するステップをさらに含み、
    前記コンピュータの中に格納された前記マッピング関係の中に、前記目標の物理アドレスが対応するマッピング関係が存在するかどうかを判定する前記ステップは、
    前記目標の物理アドレスが属する前記メモリが前記カーネルモードメモリである場合に、前記コンピュータの中に格納された前記マッピング関係の中に、前記目標の物理アドレスが対応するマッピング関係が存在するかどうかを判定するステップである、
    請求項8に記載のメモリ移行を実施するための方法。
  10. 前記オペレーティングシステムによる、前記目標の物理アドレスが対応する前記マッピング関係に従って前記第1の使用不能なメモリの中のデータにアクセスする前記ステップは、
    前記オペレーティングシステムによる、前記目標の物理アドレスのページ内オフセットを得るステップと、
    前記オペレーティングシステムによる、前記目標の物理アドレスが対応する前記マッピング関係に従って、前記目標の物理アドレスが対応する前記第1の使用不能なメモリの第2の物理アドレスを得るステップと、
    前記オペレーティングシステムによる、前記ページ内オフセットおよび前記第2の物理アドレスの合計に従って前記第1の使用不能なメモリの中のデータにアクセスするステップと、
    を含む請求項8に記載のメモリ移行を実施するための方法。
  11. 移行が行われるべき前記メモリが、一様でないメモリアクセスアーキテクチャの下のノードメモリである場合、
    目標のノードがホットアドされる際、前記基本入出力システムによる、前記目標のノードが対応する物理アドレスを得るよう前記目標のノードに対してメモリアドレス指定を実行するステップと、
    前記基本入出力システムによる、前記コンピュータの中に格納された前記マッピング関係の中に、前記目標のノードが対応する物理アドレスが存在するかどうかを調べるステップと、
    前記基本入出力システムによる、前記コンピュータの中に格納された前記マッピング関係の中に、前記目標のノードが対応する前記物理アドレスが存在する場合に、前記マッピング関係に従って、前記目標のノードが対応する前記物理アドレスに対応する第1の使用不能なメモリの第3の物理アドレスを得るステップと、
    前記基本入出力システムによる、前記第3の物理アドレスが属する前記メモリの中のデータを、前記目標のノードに対応する前記物理アドレスが属する前記メモリに移行させるステップと、
    前記基本入出力システムによる、前記コンピュータの中に格納された前記マッピング関係から、前記目標のノードが対応する前記物理アドレスの前記マッピング関係を削除するステップと、
    をさらに含む請求項6から10のいずれか一項に記載のメモリ移行を実施するための方法。
  12. メモリ移行を実施するためのデバイスであって、
    移行が行われるべきメモリの移行が行われる際、コンピュータの基本入出力システムによって、移行が行われるべき前記メモリの中のデータを前記コンピュータのオペレーティングシステムの第1の使用不能なメモリに移行させるように構成された第1の移行モジュールであって、前記第1の使用不能なメモリは、前記オペレーティングシステムのために確保されたメモリセットである前記オペレーティングシステムの元の使用可能なメモリから前もって変換されており、さらに前記オペレーティングシステムによって変更不能であるとともに、前記オペレーティングシステムがアクセスできない、第1の移行モジュールと、
    前記基本入出力システムによって、移行が行われるべき前記メモリの物理アドレスと前記第1の使用不能なメモリの物理アドレスの間のマッピング関係を格納するように構成された格納モジュールと、
    を備え
    前記格納モジュールは、
    前記基本入出力システムによって、移行が行われるべき前記メモリの前記物理アドレスに関してメモリページ整列を実行して、第1の物理アドレスを得るように構成されたメモリページ整列サブモジュールと、
    前記基本入出力システムによって、前記第1の物理アドレスと前記第1の使用不能なメモリの前記物理アドレスの間のマッピング関係を格納するように構成された格納サブモジュールと、
    を備えることを特徴とするメモリ移行を実施するためのデバイス。
  13. 前記オペレーティングシステムが目標の物理アドレスにアクセスする際、前記コンピュータの中に格納された前記マッピング関係の中に、前記目標の物理アドレスが対応するマッピング関係が存在するかどうかを判定するように構成された制御モジュールと、
    前記目標の物理アドレスが対応するマッピング関係が存在する場合に、前記オペレーティングシステムによって、前記目標の物理アドレスが対応する前記マッピング関係に従って前記第1の使用不能なメモリの中のデータにアクセスするように構成されたアクセスモジュールと、
    をさらに備える請求項12に記載のメモリ移行を実施するためのデバイス。
  14. 前記目標の物理アドレスが属する前記メモリが、ユーザモードメモリであるか、またはカーネルモードメモリであるかを判定するように構成されたメモリ判定モジュールをさらに備え、
    前記制御モジュールは、前記目標の物理アドレスが属する前記メモリが前記カーネルモードメモリである場合に、前記コンピュータの中に格納された前記マッピング関係の中に、前記目標の物理アドレスが対応するマッピング関係が存在するかどうかを判定するように構成されている、
    請求項13に記載のメモリ移行を実施するためのデバイス。
  15. 前記アクセスモジュールは、
    前記オペレーティングシステムによって、前記目標の物理アドレスのページ内オフセットを得るように構成されたオフセット獲得サブモジュールと、
    前記オペレーティングシステムによって、前記目標の物理アドレスが対応する前記マッピング関係に従って、前記目標の物理アドレスが対応する前記第1の使用不能なメモリの第2の物理アドレスを得るように構成された第2の物理アドレス獲得サブモジュールと、
    前記オペレーティングシステムによって、前記ページ内オフセットと前記第2の物理アドレスの合計に従って前記第1の使用不能なメモリの中のデータにアクセスするように構成されたアクセスサブモジュールと、
    を備える請求項13に記載のメモリ移行を実施するためのデバイス。
  16. 移行が行われるべき前記メモリが、一様でないメモリアクセスアーキテクチャの下のノードメモリである場合、
    目標のノードがホットアドされる際、前記基本入出力システムによって、前記目標のノードが対応する物理アドレスを得るよう前記目標のノードに対してメモリアドレス指定を実行するように構成されたアドレス獲得モジュールと、
    前記基本入出力システムによって、前記コンピュータの中に格納された前記マッピング関係の中に、前記目標のノードが対応する物理アドレスが存在するかどうかを調べるように構成されたアドレス検査モジュールと、
    前記基本入出力システムによって、前記コンピュータの中に格納された前記マッピング関係の中に、前記目標のノードが対応する前記物理アドレスが存在する場合に、前記マッピング関係に従って、前記目標のノードが対応する前記物理アドレスに対応する第1の使用不能なメモリの第3の物理アドレスを得るように構成された第3の物理アドレス獲得モジュールと、
    前記基本入出力システムによって、前記第3の物理アドレスが属する前記メモリの中のデータを、前記目標のノードに対応する前記物理アドレスが属する前記メモリに移行させるように構成された第3の移行モジュールと、
    前記基本入出力システムによって、前記コンピュータの中に格納された前記マッピング関係から、前記目標のノードが対応する前記物理アドレスの前記マッピング関係を削除するように構成されたマッピング関係削除モジュールと、
    をさらに備える請求項12から15のいずれか一項に記載のメモリ移行を実施するためのデバイス。
  17. メモリ移行を実施するためのデバイスであって、
    移行が行われるべきメモリの移行が行われる際、コンピュータの基本入出力システムによって、移行が行われるべき前記メモリの中のデータを前記コンピュータのオペレーティングシステムの第1の使用不能なメモリに移行させるように構成された第1の移行モジュールであって、前記第1の使用不能なメモリは、前記オペレーティングシステムのために確保されたメモリセットである前記オペレーティングシステムの元の使用可能なメモリから前もって変換されており、さらに前記オペレーティングシステムによって変更不能であるとともに、前記オペレーティングシステムがアクセスできない、第1の移行モジュールと、
    前記基本入出力システムによって、移行が行われるべき前記メモリの物理アドレスと前記第1の使用不能なメモリの物理アドレスの間のマッピング関係を格納するように構成された格納モジュールと、
    を備え、
    前記コンピュータの前記オペレーティングシステムによって、移行が行われるべき前記メモリの中の、前記オペレーティングシステムによって移行が行われることが可能なメモリの中のデータを前記コンピュータの第1のアイドルなメモリに移行させるように構成された第2の移行モジュールをさらに備え、
    前記第1の移行モジュールは、前記コンピュータの前記基本入出力システムによって、残りのメモリの中のデータを第2の使用不能なメモリに移行させるように構成され、前記残りのメモリは、前記オペレーティングシステムによって移行が行われることが可能な前記メモリを除いた、移行が行われるべき前記メモリの中のメモリであり、前記第2の使用不能なメモリは、前記第1の使用不能なメモリの一部分である、
    ことを特徴とするメモリ移行を実施するためのデバイス。
  18. 前記第2の移行モジュールは、
    前記オペレーティングシステムによって、移行が行われるべき前記メモリから、前記オペレーティングシステムによって移行がサポートされる、前記オペレーティングシステムによって移行が行われることが可能な前記メモリを得るように構成された第2のメモリ獲得サブモジュールと、
    前記オペレーティングシステムによって、前記オペレーティングシステムによって移行が行われることが可能な前記メモリを参照するすべてのプロセスに対してスリープ動作を実行するように構成されたスリープ動作サブモジュールと、
    前記オペレーティングシステムによって、前記コンピュータの占有されていないメモリの中の前記第1のアイドルなメモリを割り当てるように構成されたメモリ割り当てサブモジュールと、
    前記オペレーティングシステムによって、前記オペレーティングシステムによって移行が行われることが可能な前記メモリの中のデータを前記第1のアイドルなメモリにコピーするように構成されたメモリコピーサブモジュールと、
    前記オペレーティングシステムによって、前記オペレーティングシステムによって移行が行われることが可能な前記メモリが対応するすべてのページテーブルエントリを削除するように構成されたページテーブルエントリ削除サブモジュールと、
    前記オペレーティングシステムによって、前記オペレーティングシステムによって移行が行われることが可能な前記メモリを参照するすべてのプロセスのページテーブルエントリを更新して、前記更新されたページテーブルエントリが前記第1のアイドルなメモリに向けられるようにするように構成されたページテーブルエントリ更新サブモジュールと、
    前記オペレーティングシステムによって、前記スリープ動作を受けた前記プロセスを起動するように構成された起動サブモジュールと、
    を備える請求項17に記載のメモリ移行を実施するためのデバイス。
  19. 前記オペレーティングシステムが目標の物理アドレスにアクセスする際、前記コンピュータの中に格納された前記マッピング関係の中に、前記目標の物理アドレスが対応するマッピング関係が存在するかどうかを判定するように構成された制御モジュールと、
    前記目標の物理アドレスが対応するマッピング関係が存在する場合に、前記オペレーティングシステムによって、前記目標の物理アドレスが対応する前記マッピング関係に従って前記第1の使用不能なメモリの中のデータにアクセスするように構成されたアクセスモジュールと、
    をさらに備える請求項17または18に記載のメモリ移行を実施するためのデバイス。
  20. 前記目標の物理アドレスが属する前記メモリが、ユーザモードメモリであるか、またはカーネルモードメモリであるかを判定するように構成されたメモリ判定モジュールをさらに備え、
    前記制御モジュールは、前記目標の物理アドレスが属する前記メモリが前記カーネルモードメモリである場合に、前記コンピュータの中に格納された前記マッピング関係の中に、前記目標の物理アドレスが対応するマッピング関係が存在するかどうかを判定するように構成されている、
    請求項19に記載のメモリ移行を実施するためのデバイス。
  21. 前記アクセスモジュールは、
    前記オペレーティングシステムによって、前記目標の物理アドレスのページ内オフセットを得るように構成されたオフセット獲得サブモジュールと、
    前記オペレーティングシステムによって、前記目標の物理アドレスが対応する前記マッピング関係に従って、前記目標の物理アドレスが対応する前記第1の使用不能なメモリの第2の物理アドレスを得るように構成された第2の物理アドレス獲得サブモジュールと、
    前記オペレーティングシステムによって、前記ページ内オフセットと前記第2の物理アドレスの合計に従って前記第1の使用不能なメモリの中のデータにアクセスするように構成されたアクセスサブモジュールと、
    を備える請求項19に記載のメモリ移行を実施するためのデバイス。
  22. 移行が行われるべき前記メモリが、一様でないメモリアクセスアーキテクチャの下のノードメモリである場合、
    目標のノードがホットアドされる際、前記基本入出力システムによって、前記目標のノードが対応する物理アドレスを得るよう前記目標のノードに対してメモリアドレス指定を実行するように構成されたアドレス獲得モジュールと、
    前記基本入出力システムによって、前記コンピュータの中に格納された前記マッピング関係の中に、前記目標のノードが対応する物理アドレスが存在するかどうかを調べるように構成されたアドレス検査モジュールと、
    前記基本入出力システムによって、前記コンピュータの中に格納された前記マッピング関係の中に、前記目標のノードが対応する前記物理アドレスが存在する場合に、前記マッピング関係に従って、前記目標のノードが対応する前記物理アドレスに対応する第1の使用不能なメモリの第3の物理アドレスを得るように構成された第3の物理アドレス獲得モジュールと、
    前記基本入出力システムによって、前記第3の物理アドレスが属する前記メモリの中のデータを、前記目標のノードに対応する前記物理アドレスが属する前記メモリに移行させるように構成された第3の移行モジュールと、
    前記基本入出力システムによって、前記コンピュータの中に格納された前記マッピング関係から、前記目標のノードが対応する前記物理アドレスの前記マッピング関係を削除するように構成されたマッピング関係削除モジュールと、
    をさらに備える請求項17から21のいずれか一項に記載のメモリ移行を実施するためのデバイス。
JP2014501397A 2011-07-28 2011-07-28 メモリ移行を実施するための方法およびデバイス Active JP5712451B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2011/077748 WO2012083695A1 (zh) 2011-07-28 2011-07-28 内存迁移的实现方法和装置

Publications (2)

Publication Number Publication Date
JP2014509763A JP2014509763A (ja) 2014-04-21
JP5712451B2 true JP5712451B2 (ja) 2015-05-07

Family

ID=45453086

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014501397A Active JP5712451B2 (ja) 2011-07-28 2011-07-28 メモリ移行を実施するための方法およびデバイス

Country Status (8)

Country Link
US (1) US9600202B2 (ja)
EP (1) EP2664990A4 (ja)
JP (1) JP5712451B2 (ja)
KR (1) KR101534540B1 (ja)
CN (1) CN102326149B (ja)
AU (1) AU2011348835B2 (ja)
BR (1) BR112013021548A2 (ja)
WO (1) WO2012083695A1 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014059613A1 (zh) * 2012-10-17 2014-04-24 华为技术有限公司 降低内存系统功耗的方法和内存控制器
US9497266B2 (en) * 2013-02-22 2016-11-15 International Business Machines Corporation Disk mirroring for personal storage
JP5439620B1 (ja) * 2013-05-07 2014-03-12 株式会社 ディー・エヌ・エー 電子コンテンツを推奨するシステム
CN103455372B (zh) 2013-08-31 2017-05-10 华为技术有限公司 一种服务器中内存模块的数据迁移方法及服务器
US9854036B2 (en) * 2013-09-30 2017-12-26 Huawei Technologies Co., Ltd. Method for migrating memory data of virtual machine, and related apparatus and cluster system
WO2015074232A1 (zh) * 2013-11-22 2015-05-28 华为技术有限公司 一种内存数据的迁移方法、计算机和装置
CN105353980B (zh) * 2013-11-22 2019-10-22 华为技术有限公司 一种内存数据的迁移方法、计算机和装置
EP2913754B1 (en) * 2013-11-22 2016-11-09 Huawei Technologies Co., Ltd. Memory data migration computer and method
CN104917784B (zh) * 2014-03-10 2018-06-05 华为技术有限公司 一种数据迁移方法、装置及计算机系统
CN103914403B (zh) * 2014-04-28 2016-11-02 中国科学院微电子研究所 一种混合内存访问情况的记录方法及其系统
CN103927233A (zh) * 2014-04-30 2014-07-16 无锡云动科技发展有限公司 多节点内存互联装置及一种大规模计算机集群
CN104156322B (zh) * 2014-08-05 2017-10-17 华为技术有限公司 一种缓存管理方法及缓存管理装置
CN105468538B (zh) 2014-09-12 2018-11-06 华为技术有限公司 一种内存迁移方法及设备
CN104375899B (zh) * 2014-11-21 2016-03-30 北京应用物理与计算数学研究所 高性能计算机numa感知的线程和内存资源优化方法与系统
US10430221B2 (en) * 2015-09-28 2019-10-01 Red Hat Israel, Ltd. Post-copy virtual machine migration with assigned devices
CN105260321B (zh) * 2015-11-11 2018-07-20 浪潮(北京)电子信息产业有限公司 一种改进型内存域划分方法
US20170161203A1 (en) * 2015-12-03 2017-06-08 Intel Corporation Increased memory capacity
US10069697B2 (en) * 2016-01-29 2018-09-04 Microsoft Technology Licensing, Llc Routing actions to user devices based on a user graph
KR20180027656A (ko) * 2016-09-05 2018-03-15 에스케이하이닉스 주식회사 반도체장치 및 반도체시스템
CN106713462A (zh) * 2016-12-26 2017-05-24 郑州云海信息技术有限公司 一种网络数据包处理方法和装置
US10365824B2 (en) * 2017-04-24 2019-07-30 Advanced Micro Devices, Inc. Silent active page migration faults
CN109299021B (zh) * 2017-07-24 2023-06-16 阿里巴巴集团控股有限公司 页迁移方法、装置和中央处理器
CN109240816B (zh) * 2018-08-30 2020-11-10 世纪龙信息网络有限责任公司 系统方案切换方法、装置、计算机设备和存储介质
CN109117416B (zh) * 2018-09-27 2020-05-26 贵州华芯通半导体技术有限公司 插槽间的数据迁移或交换的方法和装置以及多处理器系统
CN109388629B (zh) * 2018-09-29 2021-04-27 武汉斗鱼网络科技有限公司 一种数组规整方法、装置、终端及可读介质
CN113868151A (zh) 2019-05-16 2021-12-31 华为技术有限公司 配置镜像内存的方法、装置及计算机存储介质

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5862314A (en) * 1996-11-01 1999-01-19 Micron Electronics, Inc. System and method for remapping defective memory locations
US6397349B2 (en) * 1998-10-13 2002-05-28 Agere Systems Guardian Corp. Built-in self-test and self-repair methods and devices for computer memories comprising a reconfiguration memory device
US7103728B2 (en) 2002-07-23 2006-09-05 Hewlett-Packard Development Company, L.P. System and method for memory migration in distributed-memory multi-processor systems
JP4096660B2 (ja) * 2002-08-22 2008-06-04 カシオ計算機株式会社 データ記録制御装置及びプログラム
US7047438B2 (en) * 2002-11-21 2006-05-16 Hitachi Global Storage Technologies Netherlands B.V. Accommodation of media defect growth on a data storage medium through dynamic remapping
US7032053B2 (en) * 2003-08-14 2006-04-18 International Business Machines Corporation System and method for loading, executing, and adapting a portable running operation system from a removable module to multiple computer systems
US7321990B2 (en) * 2003-12-30 2008-01-22 Intel Corporation System software to self-migrate from a faulty memory location to a safe memory location
US8806103B2 (en) * 2004-04-28 2014-08-12 Hewlett-Packard Development Company, L.P. System and method for interleaving memory
US7529903B2 (en) * 2005-07-05 2009-05-05 International Business Machines Corporation Systems and methods for memory migration
US7478268B2 (en) 2005-09-13 2009-01-13 International Business Machines Corporation Deallocation of memory in a logically-partitioned computer
JP2007122259A (ja) * 2005-10-26 2007-05-17 Toshiba Corp 情報処理装置、およびそのメモリ制御方法
US7549034B2 (en) 2005-11-10 2009-06-16 International Business Machines Corporation Redistribution of memory to reduce computer system power consumption
JP2008033588A (ja) 2006-07-28 2008-02-14 Hitachi Ltd 情報処理装置
CN101819542B (zh) * 2009-02-26 2012-07-25 佛山市顺德区汉达精密电子科技有限公司 硬盘开机扇区异常时的开机方法与使用该方法之电脑装置
CN102081552A (zh) * 2009-12-01 2011-06-01 华为技术有限公司 一种物理机到虚拟机的在线迁移方法、装置和系统
US8219851B2 (en) * 2009-12-29 2012-07-10 Intel Corporation System RAS protection for UMA style memory
CN101818542A (zh) 2010-04-07 2010-09-01 湖南大学 一种内置空间桁架钢骨的混凝土梁

Also Published As

Publication number Publication date
AU2011348835B2 (en) 2016-03-24
AU2011348835A1 (en) 2013-09-05
BR112013021548A2 (pt) 2016-11-01
US20140052948A1 (en) 2014-02-20
CN102326149A (zh) 2012-01-18
WO2012083695A1 (zh) 2012-06-28
US9600202B2 (en) 2017-03-21
CN102326149B (zh) 2013-09-25
KR101534540B1 (ko) 2015-07-07
JP2014509763A (ja) 2014-04-21
KR20130127511A (ko) 2013-11-22
EP2664990A4 (en) 2014-01-22
EP2664990A1 (en) 2013-11-20

Similar Documents

Publication Publication Date Title
JP5712451B2 (ja) メモリ移行を実施するための方法およびデバイス
US10719393B2 (en) Memory system for controlling nonvolatile memory
TWI689817B (zh) 記憶體系統及控制方法
US10592409B2 (en) Memory system and method for controlling nonvolatile memory
JP7159069B2 (ja) メモリシステムおよび制御方法
WO2016082196A1 (zh) 文件访问方法、装置及存储设备
US11176032B2 (en) Memory system and method of controlling nonvolatile memory
JP7358594B2 (ja) メモリシステム
JP2017515242A (ja) メモリ管理方法およびデバイス
JP7143232B2 (ja) メモリシステムおよび制御方法
US11650760B2 (en) Memory system and method of controlling nonvolatile memory with checking a total size indicative of a sum of data length specified by a write command
US11151064B2 (en) Information processing apparatus and storage device access control method
JP2023010765A (ja) メモリシステム
JP7077151B2 (ja) メモリシステム
JP7167295B2 (ja) メモリシステムおよび制御方法
US11687359B2 (en) Hybrid memory management apparatus and method for many-to-one virtualization environment
JP7204020B2 (ja) 制御方法
JP2022179798A (ja) メモリシステムおよび制御方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140624

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140924

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: 20150210

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150219

R150 Certificate of patent or registration of utility model

Ref document number: 5712451

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

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250