JP5510562B2 - メモリ管理方法、メモリ管理装置およびメモリ管理回路 - Google Patents

メモリ管理方法、メモリ管理装置およびメモリ管理回路 Download PDF

Info

Publication number
JP5510562B2
JP5510562B2 JP2012553486A JP2012553486A JP5510562B2 JP 5510562 B2 JP5510562 B2 JP 5510562B2 JP 2012553486 A JP2012553486 A JP 2012553486A JP 2012553486 A JP2012553486 A JP 2012553486A JP 5510562 B2 JP5510562 B2 JP 5510562B2
Authority
JP
Japan
Prior art keywords
storage area
physical address
memory
address
dimm
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.)
Expired - Fee Related
Application number
JP2012553486A
Other languages
English (en)
Other versions
JPWO2012098633A1 (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Application granted granted Critical
Publication of JP5510562B2 publication Critical patent/JP5510562B2/ja
Publication of JPWO2012098633A1 publication Critical patent/JPWO2012098633A1/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、メモリ管理方法、メモリ管理装置およびメモリ管理回路に関する。
従来、複数のメモリモジュールを有する物理計算機上で複数の仮想計算機を動作させる仮想計算機システムが知られている。このような仮想計算機システムは、複数のメモリモジュールが有する全ての記憶領域を複数の記憶領域に分割し、分割した記憶領域を各仮想計算機に割当てるハイパーバイザを動作させている。
図13は、仮想計算機システムを説明するための図である。図13に示す例では、仮想計算機システム30は、CPU(Central Processing Unit)31、メモリコントローラ32、複数のメモリモジュール#1〜#3を有するメモリ33を有する。また、ハイパーバイザ34は、CPU31によって実行されるプログラムであり、各メモリモジュールが有する記憶領域を分割し、分割した記憶領域を複数の仮想計算機に割当てている。
このような仮想計算機システム30のメモリコントローラ32は、メモリアドレス変換テーブルを有する。メモリアドレス変換テーブルには、CPU31およびハイパーバイザ34がメモリ33の記憶領域を一意に識別するための物理アドレスと、メモリコントローラ32がメモリ33の記憶領域を一意に識別するためのメモリアドレスとが対応付けられている。
そして、メモリコントローラ32は、CPU31から物理アドレスとともにデータのリード要求を取得した場合には、取得した物理アドレスに対応付けられたメモリアドレスをメモリアドレス変換テーブルから抽出する。その後、メモリコントローラ32は、抽出したメモリドレスに格納されたデータを取得し、取得したデータをCPU31へ送信する。
メモリコントローラ32は、取得したデータから訂正不能なエラー(UE:Un Correctable Error)を検出する場合がある。このような場合には、メモリコントローラ32は、UEを検出した旨をハイパーバイザ34に通知する。
ここで、UEが検出されたデータを記憶していたメモリモジュールには、将来的に障害が発生する可能性が高い。このため、ハイパーバイザ34は、メモリコントローラ32からUEが発生した旨を通知された場合には、UEが発生したメモリモジュールのデータを他のメモリモジュールに移動させる。
以下、図14を用いて、ハイパーバイザがデータを移動させる処理について説明する。図14は、ハイパーバイザが実行する処理の一例を説明するための図である。図14に示す例では、ハイパーバイザ34は、性能管理プログラム、障害管理プログラム、オペレータ等から、移動させるデータが格納された対象LPAR(Logical Partition)とデータの移動要求との通知を受け付ける(ステップS1)。
次に、ハイパーバイザ34は、通知された対象LPARをCPU31のディスパッチ対象から除外する(ステップS2)。つまり、ハイパーバイザ34は、対象LPARに格納されたデータを利用する仮想計算機を停止させる。そして、ハイパーバイザ34は、対象LPARに格納されたデータを他のメモリモジュールに移動させ(ステップS3)、データを移動する前の物理アドレスと新たにデータを格納したメモリアドレスとを対応付けてメモリ管理テーブルを更新する(ステップS4)。
その後、ハイパーバイザ34は、更新したメモリ管理テーブルに基づいて、対象LPARのアドレス変換テーブルを更新し(ステップS5)、対象LPARをCPUのディスパッチ対象に戻す(ステップS6)。
特開2009−059121号公報
しかしながら、上述したハイパーバイザがデータの移動を行う技術では、ハイパーバイザ自身が格納されたメモリモジュールでUEが発生した場合には、メモリの移動処理を行う事ができないので、耐故障性が悪化するという問題があった。
つまり、データを他のメモリモジュールへ移動させるためには、ハイパーバイザ自身が動作する必要がある。このため、ハイパーバイザは、ハイパーバイザ自身のデータが格納された対象LPARをディスパッチ対象から除外することができないので、ハイパーバイザのデータが格納されたメモリモジュールでUEが発生した場合には、データの移動処理を行う事ができない。結果として、耐故障性が悪化する。
本願に開示の技術は、上述した問題に鑑みてなされたものであって、耐故障性を向上させる。
開示の技術は、一つの側面では、メモリ管理装置によって実行されるメモリ管理方法である。ここで、メモリ管理装置は、複数のメモリモジュールが有する記憶領域を情報処理装置が一意に識別するための物理アドレスと、前記記憶領域をメモリ管理装置が一意に識別するためのメモリアドレスとを対応付けた変換テーブルを有する。また、メモリ管理装置は、エラーが検出されたメモリモジュールの記憶領域を示す物理アドレスのうちエラーが検出された記憶領域以外の記憶領域を示す物理アドレスを変換テーブルから抽出する。また、メモリ管理装置は、エラーの発生によって削除される情報が格納されている記憶領域を示す物理アドレスを情報処理装置から取得し、取得した物理アドレスに対応付けられたメモリアドレスを変換テーブルから抽出する。そして、メモリ管理装置は、変換テーブルを、抽出したメモリアドレスと抽出した物理アドレスとを新たに対応付けた変換テーブルに更新する。また、メモリ管理装置は、抽出した物理アドレスが示す記憶領域に格納されている情報を抽出したメモリアドレスが示す記憶領域に移動する。
本願に開示の技術は、一つの態様によれば、耐故障性を向上させる。
図1は、実施例1に係る仮想計算機システムを説明するための図である。 図2は、ハイパーバイザが管理する物理アドレス変換テーブルの一例を説明するための図である。 図3は、各エントリに割当てられた物理アドレスの一例を説明するための図である。 図4は、削除するエントリを説明するための図である。 図5は、物理アドレス変換テーブルから削除するエントリと物理アドレスとの関係を説明するための図である。 図6は、DIMMアドレス変換テーブルの一例を説明するための図である。 図7は、DIMMアドレス変換テーブルから検出される物理アドレスとDIMMアドレスを説明するための図である。 図8は、データ移動制御回路がDIMMアドレス変換テーブル11を更新する処理を説明するための図である。 図9は、メモリコントローラとハイパーバイザが実行する処理の流れを説明するためのフローチャートである。 図10は、実施例2に係る仮想計算機システムを説明するための図である。 図11は、実施例2に係るハイパーバイザが実行する無効化領域判定の流れについて説明するための図である。 図12は、実施例3に係るハイパーバイザが実行する無効化領域判定の一例を説明するための図である。 図13は、仮想計算機システムを説明するための図である。 図14は、ハイパーバイザが実行する処理の一例を説明するための図である。
以下に添付図面を参照して本願に係るメモリ管理方法、メモリ管理装置およびメモリ管理回路について説明する。
以下の実施例1では、図1を用いて、メモリ管理方法を実行するメモリコントローラを有する仮想計算機システムの一例を説明する。図1は、実施例1に係る仮想計算機システムを説明するための図である。
図1に示すように、実施例1に係る仮想計算機システム1は、CPU(Central Processing Unit)2、メモリコントローラ10、メモリ4を有する。ここで、メモリ4は、複数のDIMM(Dual Inline Memory Module)#1〜#3を有する。メモリコントローラ10は、DIMMアドレス変換テーブル11、移動先DIMMアドレス検出回路12、移動元DIMMアドレス検出回路13、データ移動制御回路14、エラーチェッカー15を有する。
以下の説明ではCPU2およびCPU2が実行するプログラムであるハイパーバイザ3について説明し、続けてメモリコントローラ10が有する各部11〜15が実行する処理について説明する。
まず、CPU2およびハイパーバイザ3について説明する。CPU2は、ハイパーバイザ3を動作させる情報処理装置である。CPU2は、メモリ4が有するDIMM#1〜#3のいずれかに格納されたデータの読出しを行う場合には、データが格納された物理アドレスとともに、リード要求をメモリコントローラ10へ送信する。ここで、物理アドレスとは、メモリ2が有する全ての記憶領域を一意に示すアドレスである。また、CPU2は、メモリ4に格納されているデータをメモリコントローラ10からリードデータとして受信する。
ハイパーバイザ3は、メモリ4が有する記憶領域を複数の仮想計算機(VM:Virtual Machine)に割当てるプログラムであり、CPU2によって実行されている。そして、ハイパーバイザ3は、後述するメモリコントローラ10から訂正不能なエラー(UE:Uncorrectable Error)を検出した旨の通知を受けつける。このような場合には、ハイパーバイザ3は、UEが検出されたDIMMに格納されているデータを他のDIMMに移動させる処理をメモリコントローラ10に実行させる。
具体的には、ハイパーバイザ3は、VMの仮想アドレスと物理アドレスとを対応付けた物理アドレス変換テーブル5を管理する。また、ハイパーバイザ3は、後述するメモリコントローラ10からUEが発生した旨の通知を受け付けた場合には、UEが発生した記憶領域を利用していたVMを終了させる。また、ハイパーバイザ3は、物理アドレス変換テーブル5を用いて、終了させたVMに割当てられていたエントリ番号を検出する。
そして、ハイパーバイザ3は、検出したエントリ番号に対応付けらていた物理アドレスを物理アドレス変換テーブル5から抽出し、抽出した物理アドレスをメモリコントローラ10に通知する。後述するように、メモリコントローラ10は、ハイパーバイザ3から通知された物理アドレスが示す記憶領域に格納されているデータを削除する。このため、ハイパーバイザ3は、メモリコントローラ10に対して、削除するデータが格納された物理アドレスを通知することとなる。
また、ハイパーバイザ3は、物理アドレス変換テーブル5から抽出した物理アドレスをメモリコントローラ10に通知した場合には、変換テーブル内のエントリのうち、抽出した物理アドレスと対応付けられたエントリを削除し、物理アドレス変換テーブル5を更新する。その後、ハイパーバイザ3は、更新した物理アドレス変換テーブル5を用いて、メモリ4の記憶領域を複数のVMに割当てる。
図2は、ハイパーバイザが管理する物理アドレス変換テーブル5の一例を説明するための図である。ハイパーバイザ3は、図2に示す例では、エントリ番号、VM番号、仮想アドレス、物理アドレス、サイズを対応付けた物理アドレス変換テーブル5を管理する。
ここで、エントリ番号とは、VMに対して割当てられる記憶領域を示す番号である。また、VM番号とは、記憶領域が割当てられた仮想計算機を一意に示す番号である。また、仮想アドレスとは、仮想計算機が記憶領域を示すために用いるメモリアドレスである。また、物理アドレスとは、メモリ4が有する全ての記憶領域をハイパーバイザ3が識別するためのメモリアドレスである。サイズとは、VMに対して割当てられた記憶領域のブロック数を示す情報である。
図2に示す例では、エントリ#1として、VM#0が用いる仮想アドレス「0〜9」に物理アドレス「60〜69」が示す10ブロックの記憶領域が割当てられていることを示す。また、エントリ#8として、VM#1が用いる仮想アドレス「10〜29」に物理アドレス「130〜149」が示す20ブロックの記憶領域が割当てられていることを示す。また、エントリ#9として、VM#2が用いる仮想アドレス「0〜9」に物理アドレス「80〜89」が示す10ブロックの記憶領域が割当てられていることを示す。
ハイパーバイザ3は、図2に例示した物理アドレス変換テーブル5に基づいて、各エントリと各物理アドレスとを図3に示すように対応付けている。図3は、各エントリに割当てられた物理アドレスの一例を説明するための図である。
図3に示す例では、エントリ#1、#7、#9に物理アドレス「60〜89」が割当てられており、エントリ#2、#8、#10に物理アドレス「110〜159」が割当てられている。また、エントリ#3に物理アドレス「210〜219」が割当てられており、エントリ#13、#11に物理アドレス「230〜249」が割当てられている。
次に、図を用いて、ハイパーバイザ3が実行する処理の一例について説明する。以下では、ハイパーバイザ3が、メモリコントローラ10から物理アドレス「240〜249」が示す記憶領域に格納されたデータにUEが発生した旨の通知を取得した例について説明する。
まず、図4は、削除するエントリを説明するための図である。図4に示す例では、ハイパーバイザ3は、メモリコントローラ10から物理アドレス「240〜249」が示す記憶領域にUEが発生した旨の通知を受ける。このような場合には、ハイパーバイザ3は、物理アドレス変換テーブル5に基づいて、物理アドレス「240〜249」が割当てられたVM「#2」を特定する。
そして、ハイパーバイザ3は、図4中の斜線で示すように、VM「#2」に割当てられた物理アドレス「80〜89」、「150〜159」、「240〜249」を物理アドレス変換テーブル5から検出する。そして、ハイパーバイザ3は、検出した物理アドレス「80〜89」、「150〜159」、「240〜249」をメモリコントローラ10に通知する。つまり、ハイパーバイザ3は、VM「#2」に割り当てられた記憶領域に格納されているデータにUEが発生した場合には、VM「#2」の継続利用ができなくなるため、VM「#2」に割り当てられた記憶領域に格納されているデータを削除対象とする。そして、ハイパーバイザ3は、削除対象のデータが格納された記憶領域の物理アドレスをメモリコントローラ10に通知する。
また、ハイパーバイザ3は、物理アドレス変換テーブル5の、エントリ#9〜11と対応付けられたVM番号、仮想アドレス、物理アドレス、サイズの各情報を削除して、物理アドレス変換テーブル5を更新する。そして、ハイパーバイザ3は、更新した物理アドレス変換テーブル5を用いて、VM#0、#1にメモリ4の記憶領域を割当てる処理を継続する。
ここで、図5は、物理アドレス変換テーブルから削除するエントリと物理アドレスとの関係を説明するための図である。図5中の斜線で示す様に、VM#2と対応付けられたエントリ#9、#10、#11を物理アドレス変換テーブル5から削除する。このため、ハイパーバイザ3は、新たな物理アドレスを設定せずとも、動作を継続することができるので、ハイパーバイザ3が起動した際に設定した物理アドレスの枯渇を防止することができる。
続いて、メモリコントローラ10が有する各部11〜15について説明する。DIMM変換アドレステーブル記憶部11は、物理アドレスと、各DIMM#1〜#3が有する記憶領域をメモリコントローラ10が識別するためのDIMMアドレスとを対応付けたDIMMアドレス変換テーブル11を記憶する。
図6は、DIMMアドレス変換テーブル11の一例を説明するための図である。具体的には、図6に示すように、DIMMアドレス変換テーブル11には、物理アドレスと、DIMMを一意に示すDIMM番号と、各DIMMが有する記憶領域を示すDIMMアドレスとが対応付けて記憶される。つまり、DIMMアドレス変換テーブル11は、物理アドレスを用いてアクセスされるデータがどこに格納されているかを示す。
図6に示す例では、DIMMアドレス変換テーブル11は、物理アドレス「110〜119」を用いてアクセスされるデータがDIMM「#1」のDIMMアドレス「10〜19」に格納されていることを示す。また、DIMMアドレス変換テーブル11は、物理アドレス「120〜129」を用いてアクセスされるデータがDIMM「#1」のDIMMアドレス「20〜29」に格納されていることを示す。
図1に戻って、移動先DIMMアドレス検出回路12は、ハイパーバイザ3から、UEの発生によって削除される情報が格納された記憶領域を示す物理アドレスの通知を取得する。このような場合には、移動先DIMMアドレス検出回路12は、DIMMアドレス変換テーブル11を参照し、通知された物理アドレスに対応付けられたDIMMアドレスを抽出する。そして、移動先DIMMアドレス検出回路12は、抽出したDIMMアドレスをデータ移動制御回路14に通知する。
図7は、DIMMアドレス変換テーブル11から検出される物理アドレスとDIMMアドレスを説明するための図である。例えば、移動先DIMMアドレス検出回路12は、ハイパーバイザ3から物理アドレス「80〜89」、「150〜159」、「240〜249」を通知されたものとする。このような場合には、移動先DIMMアドレス検出回路12は、図7中αに示すように、DIMMアドレス変換テーブル11から、ハイパーバイザ3から通知された物理アドレス「80〜89」、「150〜159」、「240〜249」を検索する。
そして、移動先DIMMアドレス検出回路12は、検索した物理アドレス「80〜89」と対応付けられたDIMM番号「#0」とDIMMアドレス「80〜89」を抽出する。その後、移動先DIMMアドレス検出回路12は、抽出したDIMM番号「#0」とDIMMアドレス「80〜89」をデータ移動制御回路14に通知する。
また、移動先DIMMアドレス検出回路12は、検索した物理アドレス「150〜159」と対応付けられたDIMM番号「#1」とDIMMアドレス「50〜59」を抽出する。その後、移動先DIMMアドレス検出回路12は、抽出したDIMM番号「#1」とDIMMアドレス「50〜59」をデータ移動制御回路14に通知する。
また、移動先DIMMアドレス検出回路12は、検索した物理アドレス「240〜249」と対応付けられたDIMM番号「#2」とDIMMアドレス「40〜49」を抽出する。その後、移動先DIMMアドレス検出回路12は、DIMM番号「#2」とDIMMアドレス「40〜49」をデータ移動制御回路14に通知する。
つまり、移動先DIMMアドレス検出回路12は、図7中αに示す範囲の物理アドレスが示す記憶領域を、後述するデータ移動制御回路14がデータを移動させる移動先の記憶領域であると判別する。そして、移動先DIMMアドレス検出回路12は、判別した移動先の記憶領域を示すDIMMアドレスを抽出し、抽出したDIMMアドレスをデータ移動制御回路14に通知する。
図1に戻って、移動元DIMMアドレス検出回路13は、メモリ4が有するDIMM#1〜#3のいずれかにおいてUEが検出された場合には、UEが検出されたDIMMが有する記憶領域を示す物理アドレスをDIMMアドレス変換テーブル11から抽出する。
移動元DIMMアドレス検出回路13は、後述するエラーチェッカー15からUEが発生したDIMMのDIMM番号とDIMMアドレスの通知を受けたものとする。このような場合には、移動元DIMMアドレス検出回路13は、DIMMアドレス変換テーブル11を参照し、通知されたDIMM番号と対応付けられた物理アドレスを検出する。
そして、移動元DIMMアドレス検出回路13は、検出した物理アドレスのうちエラーチェッカー15から通知されたDIMMアドレスと対応付けられていない物理アドレスを抽出する。その後、移動元DIMMアドレス検出回路13は、抽出した物理アドレスと、抽出した物理アドレスに対応付けられたDIMM番号およびDIMMアドレスとをデータ移動制御回路14に通知する。
図7に示す例では、移動元DIMMアドレス検出回路13は、エラーチェッカー15からUEが発生したDIMM番号「#2」とDIMMアドレス「40〜49」との通知を受けたものとする。このような場合には、移動元DIMMアドレス検出回路13は、DIMMアドレス変換テーブル11を参照し、エラーチェッカー15から通知されたDIMM番号「#2」と対応付けられた物理アドレス「210〜219」、「230〜239」、「240〜249」を検出する。
そして、移動元DIMMアドレス検出回路13は、エラーチェッカー15から通知されたDIMMアドレス「40〜49」と対応付けられていない物理アドレス「210〜219」、「230〜239」をDIMMアドレス変換テーブル11から抽出する。その後、移動元DIMMアドレス検出回路13は、抽出した物理アドレス「210〜219」と対応付けられたDIMM番号「#2」およびDIMMアドレス「10〜19」をデータ移動制御回路14に通知する。また、移動元DIMMアドレス検出回路13は、抽出した物理アドレス「240〜249」と対応付けられたDIMM番号「#2」およびDIMMアドレス「30〜39」をデータ移動制御回路14に通知する。
つまり、移動元DIMMアドレス検出回路13は、図7中βに示すように、UEが発生したDIMM#2に格納されたデータのうち、UEが発生した格納領域以外の格納領域に移動対象となるデータが格納されていると判別する。このため、移動元DIMMアドレス検出回路13は、移動対象となるデータが格納されたDIMMアドレスを移動元DIMMアドレスとしてデータ移動制御回路14に通知する。
図1に戻って、データ移動制御回路14は、移動先DIMMアドレス検出回路12から通知されたDIMMアドレスと移動元DIMMアドレス検出回路13によって通知された物理アドレスとを対応付けて、DIMMアドレス変換テーブル11を更新する。また、データ移動制御回路14は、移動元DIMMアドレス検出回路13によって通知された物理アドレスが示す記憶領域に格納されていた情報を、移動先DIMMアドレス検出回路12から通知されたDIMMアドレスが示す記憶領域に移動させる。
具体的には、データ移動制御回路14は、移動先DIMMアドレス検出回路12からDIMM番号およびDIMMアドレスの通知を受ける。また、データ移動制御回路14は、移動元DIMMアドレス検出回路13から物理アドレス、DIMM番号およびDIMMアドレスの通知を受ける。
このような場合には、データ移動制御回路14は、移動元DIMMアドレス検出回路13から通知されたDIMM番号のDIMMアドレスに格納されたデータを、移動先DIMMアドレス検出回路12から通知されたDIMM番号のDIMMアドレスに移動させる。例えば、データ移動制御回路14は、図1に示す様に、ハイパーバイザ3の制御から独立して、UEが発生したDIMM#1の斜線で示す記憶領域に格納されていたデータをDIMM#2の斜線で示す記憶領域へ移動させる。
また、データ移動制御回路14は、DIMMアドレス変換テーブル11にアクセスする。そして、データ移動制御回路14は、移動元DIMMアドレス検出回路13から通知されたDIMM番号と対応付けてDIMMアドレス変換テーブル11に記憶されたDIMMアドレスを削除する。また、データ移動制御回路14は、移動元DIMMアドレス検出回路13から通知された物理アドレスと移動先DIMMアドレス検出回路12から通知されたDIMM番号およびDIMMアドレスとを新たに対応付けて、DIMMアドレス変換テーブル11を更新する。
以下、データ移動制御回路14がデータを移動させる処理の一例を説明する。まず、データ移動制御回路14は、移動先DIMMアドレス検出回路12からDIMM番号「#0」とDIMMアドレス「80〜89」、および、DIMM番号「#1」とDIMMアドレス「50〜59」の通知を受ける。また、データ移動制御回路14は、移動元DIMMアドレス検出回路13から、物理アドレス「210〜219」とDIMM番号「#2」とDIMMアドレス「10〜19」の組の通知を受ける。また、データ移動制御回路14は、物理アドレス「230〜239」とDIMM番号「#2」とDIMMアドレス「30〜39」の組の通知を受ける。
すると、データ移動制御回路14は、移動元DIMMアドレス検出回路13から通知されたDIMM「#2」のDIMMアドレス「10〜19」に格納されていた情報を、移動先DIMMアドレス検出回路12から通知されたDIMM「#0」のDIMMアドレス「80〜89」に移動させる。また、データ移動制御回路14は、移動元DIMMアドレス検出回路13から通知されたDIMM「#2」のDIMMアドレス「30〜39」に格納されていた情報を、移動先DIMMアドレス検出回路12から通知されたDIMM「#1」のDIMMアドレス「50〜59」に移動させる。
次に、図8を用いて、データ移動制御回路14が、DIMMアドレス変換テーブル11を更新する処理の一例を説明する。図8は、データ移動制御回路がDIMMアドレス変換テーブル11を更新する処理を説明するための図である。まず、データ移動制御回路14は、DIMMアドレス変換テーブル11にアクセスし、移動元DIMMアドレス検出回路13から通知されたDIMM番号「#2」と対応付けられたDIMMアドレスを削除する。
また、データ移動制御回路14は、図8中γに示すように、物理アドレス「80〜89」に対応付けられている、移動先DIMMアドレス検出回路12から通知されたDIMM番号「#0」とDIMMアドレス「80〜89」の組をDIMMアドレス変換テーブル11から削除する。また、データ移動制御回路14は、図8中γに示すように、物理アドレス「150〜159」に対応付けられている、移動先DIMMアドレス検出回路12から通知されたDIMM番号「#1」とDIMMアドレス「50〜59」の組をDIMMアドレス変換テーブル11から削除する。
また、図8中δに示すように、データ移動制御回路14は、物理アドレス「210〜219」とDIMM番号「#0」およびDIMMアドレス「80〜89」の組とを対応付けてDIMMアドレス変換テーブル11に格納する。また、データ移動制御回路14は、物理アドレス「230〜239」と、DIMM番号「#1」およびDIMMアドレス「50〜59」の組とを対応付けてDIMMアドレス変換テーブル11に格納する。
このように、実施例1に係るハイパーバイザ3は、UEが発生したDIMMのデータを他のDIMMに移動させず、削除するデータが格納された物理アドレスをメモリコントローラ10に通知する。そして、メモリコントローラ10が、ハイパーバイザ3から通知された物理アドレスと、UEが発生したDIMM番号およびDIMMアドレスとに基づいて、UEが発生したDIMMのデータを他のDIMMに移動させる。つまり、メモリコントローラ10は、ハイパーバイザ3による制御から独立して、データの移動を行う。
このため、メモリコントローラ10は、UEが発生したDIMMに格納されたデータがハイパーバイザ3のデータであっても適切に移動させることができる。結果として、メモリコントローラ10は、仮想計算機システム1全体の耐故障性を向上させることができる。
図1に戻って、エラーチェッカー15は、メモリ4が有する各DIMM#1〜#3において発生するUEを検出する。具体的には、エラーチェッカー15は、CPU2によってリード要求されたデータを取得し、取得したデータにUEが発生しているか否かを判別する。
そして、エラーチェッカー15は、取得したデータにUEが発生していると判別した場合には、取得したデータが格納されていたDIMM番号およびDIMMアドレスを移動元DIMMアドレス検出回路13に通知する。また、エラーチェッカー15は、取得したデータが格納されていたDIMM番号およびDIMMアドレスと対応付けられた物理アドレスをDIMMアドレス変換テーブル11から抽出し、抽出した物理アドレスをハイパーバイザ3に対して通知する。
例えば、エラーチェッカー15は、DIMM番号「#2」のDIMMアドレス「40〜49」に格納されたデータを取得する。エラーチェッカー15は、取得したデータにUEが発生していると判別した場合には、取得したデータを格納していたDIMM番号「#2」とDIMMアドレス「40〜49」の組を移動元DIMMアドレス検出回路13に通知する。また、エラーチェッカー15は、DIMMアドレス変換テーブル11からDIMM番号「#2」とDIMMアドレス「40〜49」に対応付けられた物理アドレス「240〜249」を抽出し、抽出した物理アドレスをハイパーバイザ3に通知する。
例えば、移動先DIMMアドレス検出回路12、移動元DIMMアドレス検出回路13、データ移動制御回路14、エラーチェッカー15は、電子回路である。ここで、電子回路の例として、ASIC(Application Specific Integrated Circuit)やFPGA (Field Programmable Gate Array)などの集積回路、またはCPU(Central Processing Unit)やMPU(Micro Processing Unit)などを適用する。
また、DIMMアドレス変換テーブル11は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ (flash memory)などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。
図9は、メモリコントローラとハイパーバイザが実行する処理の流れを説明するためのフローチャートである。以下の説明では、読出しを行ったデータが格納されたDIMMにおいて、UEが発生した場合について説明する。
まず、メモリコントローラ10は、CPU2から通知された物理アドレスが示す記憶領域に格納されたデータの読出しを行う(ステップS101)。そして、メモリコントローラ10は、読み出したデータをチェックし、読み出したデータからDIMMにUEが発生したと判断する(ステップS102)。
すると、メモリコントローラ10のエラーチェッカー15は、UEが発生したDIMMのDIMM番号を移動元DIMMアドレス検出回路13に通知する(ステップS103)。移動元DIMMアドレス検出回路13は、通知されたDIMM番号に基づいて、データの移動元となるDIMMアドレスを抽出する(ステップS104)。
また、ハイパーバイザ3は、メモリコントローラ10から通知された物理アドレスに基づいて、削除するデータが格納された記憶領域の物理アドレスを抽出し、抽出した物理アドレスをメモリコントローラ10に通知する(ステップS105)。そして、ハイパーバイザ3は、物理アドレス変換テーブル5を更新し(ステップS106)、処理を終了する。つまり、ハイパーバイザ3は、データの移動処理を実行せずに、処理を終了する。
続いて、メモリコントローラ10の移動先DIMMアドレス検出回路12は、ハイパーバイザ3から通知された物理アドレスに基づいて、データの移動先となるDIMMアドレスを抽出する(ステップS107)。そして、データ移動制御回路14は、移動元となるDIMMアドレスが示す記憶領域に格納されたデータを移動先となるDIMMアドレスが示す記憶領域に移動させる(ステップS108)。
その後、データ移動制御回路14は、DIMMアドレス変換テーブル11を更新し(ステップS109)、その後、処理を終了する。
[実施例1の効果]
上述したように、実施例1に係るメモリコントローラ10は、物理アドレスとDIMMアドレスとを対応付けたDIMMアドレス変換テーブル11を有する。また、メモリコントローラ10は、UEが発生したことによって削除されるデータが格納されている記憶領域の物理アドレスをハイパーバイザ3から通知される。このような場合には、メモリコントローラ10は、通知された物理アドレスと対応付けられたDIMMアドレスをDIMMアドレス変換テーブル11から抽出する。そして、メモリコントローラ10は、UEが発生したDIMMのデータを、抽出したDIMMアドレスが示す記憶領域へ移動させる。
このため、メモリコントローラ10は、UEが発生したDIMMにハイパーバイザ3のデータが格納されていた場合にも、データを他のDIMMに移動させることができる。つまり、メモリコントローラ10は、VMが利用するデータだけではなく、最も耐故障性が求められるハイパーバイザ3のデータをUEが発生したDIMMから他のDIMMへと移動させることができる。結果として、メモリコントローラ10は、仮想計算機システム1の耐故障性を改善することができる。
また、メモリコントローラ10は、データの移動を行うだけではなく、移動先の記憶領域を示すDIMMアドレスと移動元の記憶領域を示す物理アドレスとを新たに対応付けて、DIMMアドレス変換テーブル11を更新する。つまり、メモリコントローラ10は、データの移動に合わせて、DIMMアドレス変換テーブル11を動的に更新する。このため、メモリコントローラ10は、ハイパーバイザ3が用いる物理アドレス変換テーブル5をデータの移動に合わせて更新せずとも、適切にメモリアクセスを継続することができる。
また、上述したように、メモリコントローラ10は、ハイパーバイザ3から通知された物理アドレスが示す記憶領域をデータの移動先としてデータの移動処理を行うので、別途新たな改良を行わずとも、より適切なデータの移動処理を行う事ができる。つまり、メモリコントローラ10は、データの移動先を抽出する処理をハイパーバイザ3に実行させるので、ハイパーバイザ3の改良を行うだけで、より適切なデータの移動処理を行わせることができる。
実施例2では、移動先の記憶容量と移動元の記憶容量とが一致しない場合に備えて、移動先の記憶容量を変更する機能を備えたハイパーバイザが、移動先の記憶領域を示す物理アドレスをメモリコントローラに通知する例について説明する。
図10は、実施例2に係る仮想計算機システムを説明するための図である。図10に示す例では、仮想計算機システム1aは、CPU2a、メモリコントローラ10、メモリ4を有する。CPU2aは、実施例2に係るハイパーバイザ3aを動作させており、他の機能は実施例1において説明したCPU2と同様の機能を発揮する。また、メモリ4、メモリコントローラ10は、実施例1において説明したメモリ4およびメモリコントローラ10と同様の機能を発揮するものとし、詳しい説明を省略する。
ハイパーバイザ3aは、実施例1のハイパーバイザ3が実行する処理に加えて、終了させたVMに割当てられた記憶領域の容量と、UEが発生したDIMMの記憶容量とを比較する。そして、ハイパーバイザ3aは、データの移動先となる記憶領域の容量が、UEが発生したDIMMの記憶容量よりも多いか否かに基づいて、メモリコントローラ10に通知する物理アドレスを変更する無効化領域判定処理を実行する。
その後、ハイパーバイザ3aは、無効化領域判定処理によって抽出された物理アドレス、つまり、削除対象となるデータが格納された記憶領域を示す物理アドレスを移動先DIMMアドレス検出回路12に通知する。
図11は、実施例2に係るハイパーバイザが実行する無効化領域判定の流れについて説明するための図である。図11に示す例では、ハイパーバイザ3aは、UEが発生した記憶領域を利用していたVMを終了させたことをトリガとして、無効化領域判定処理を開始する。
まず、ハイパーバイザ3aは、停止させるVMが利用していた記憶領域を示す物理アドレス、つまり、削除するデータが格納された記憶領域を示す物理アドレスを検索する(ステップS201)。なお、削除するデータが格納された記憶領域を示す物理アドレスとは、メモリコントローラ10aがデータを移動する際に、データの移動先となる記憶領域を示す物理アドレスである。そこで、以下の説明では、削除するデータが格納された記憶領域を示す物理アドレスを、移動先物理アドレスとする。
次に、ハイパーバイザ3aは、移動先物理アドレスが示す記憶領域が、UEが発生したDIMMの記憶容量よりも大きいか否かを判別する(ステップS202)。つまり、ハイパーバイザ3aは、移動するデータが格納されている領域よりも、移動先物理アドレスが示す記憶領域の方が大きいか否かを判別する。
ハイパーバイザ3aは、UEが発生したDIMMの記憶容量よりも、移動先物理アドレスが示す記憶領域の容量が大きいと判別した場合は(ステップS202肯定)、移動先物理アドレスが示す記憶領域を削減できるか否か判別する(ステップS203)。そして、ハイパーバイザ3aは、移動先物理アドレスが示す記憶領域を削減できると判別した場合には(ステップS203肯定)、移動先物理アドレスが示す記憶領域のうち、UEが発生したDIMMの記憶容量と同じ容量の記憶領域を選択する。つまり、ハイパーバイザ3aは、移動先物理アドレスを、UEが発生したDIMMの記憶容量に応じて削減する(ステップS204)。
ここで、移動先物理アドレスが示す記憶領域から、移動するデータが格納された記憶領域と同じ容量の記憶領域を選択する方法については、任意の方法を用いることができる。例えば、ハイパーバイザ3aは、近接する物理アドレスが割当てられた記憶領域を選択する方法や、ランダムに記憶領域を選択する方法等を用いる。
一方、ハイパーバイザ3aは、移動先物理アドレスを削減できないと判別した場合には(ステップS203否定)、移動先物理アドレスの削減を行わない(ステップS205)。また、ハイパーバイザ3aは、移動先物理アドレスが示す記憶領域の容量よりも、UEが発生したDIMMの記憶容量が大きいと判別した場合には(ステップS202否定)、VMに割当てられていない物理アドレスがあるか否かを判別する(ステップS206)。
そして、ハイパーバイザ3aは、VMに割当てられていない物理アドレスがあると判別した場合には(ステップS206肯定)、VMに割当てられていない物理アドレスを移動先物理アドレスに追加する(ステップS207)。その後、ハイパーバイザ3aは、移動先物理アドレスをメモリコントローラ10aの移動先DIMMアドレス検出回路12へ送信する(ステップS208)。
一方、ハイパーバイザ3aは、VMに割当てられていない物理アドレスが無い場合は(ステップS206否定)、移動先物理アドレスの削減および追加を行わず(ステップS205)、メモリコントローラ10に移動先物理アドレスを通知する(ステップS208)。その後、ハイパーバイザ3aは、自装置が管理する物理アドレス変換テーブル5を更新し、処理を終了する。
[実施例2の効果]
上述したように、ハイパーバイザ3aは、エラーが発生したDIMMの記憶容量と、削除される情報が格納された記憶領域の容量とを比較する。つまり、ハイパーバイザ3aは、データの移動先となる記憶領域の容量と、UEが発生したDIMMの記憶容量とを比較する。そして、ハイパーバイザ3aは、UEが発生したDIMMの記憶容量がデータの移動先となる記憶領域の容量よりも少ない場合には、データの移動先となる記憶領域から、UEが発生したDIMMの記憶容量と同じ容量の記憶領域を選択する。そして、ハイパーバイザ3aは、選択した記憶領域を示す物理アドレスをメモリコントローラ10に通知する。
このため、メモリコントローラ10は、物理アドレスを無駄にすることなく、耐故障性を向上させることができる。例えば、メモリコントローラ10は、ハイパーバイザ3aから通知された物理アドレスと対応付けられたDIMMアドレスをDIMMアドレス変換テーブルから削除する。つまり、メモリコントローラ10は、通知された移動先物理アドレスを利用対象から削除することとなる。
ここで、ハイパーバイザ3aは、UEが発生した際に移動させるデータの量と移動先となる記憶領域の容量とを比較し、移動させるデータの量と同容量の記憶領域を示す移動先物理アドレスをメモリコントローラ10に通知する。このため、メモリコントローラ10は、耐故障性を向上させたままで、余計な物理アドレスを利用対象から削除することなく、DIMMを有効に利用することができる。
また、ハイパーバイザ3aは、UEが発生したDIMMの記憶容量がデータの移動先となる記憶領域の容量よりも多い場合には、VMに割当てられていない物理アドレスを検出する。そして、ハイパーバイザ3aは、検出した物理アドレスとデータの移動先となる記憶領域の物理アドレスとを移動先物理アドレスとしてメモリコントローラ10に送信する。つまり、ハイパーバイザ3aは、移動させるデータ容量が移動先となる記憶領域の容量よりも大きい場合には、移動先となる記憶領域の物理アドレスとVMが利用していない記憶領域を示す物理アドレスとをメモリコントローラ10に通知する。
このため、メモリコントローラ10は、移動させるデータの容量が移動先となる記憶領域の容量よりも大きい場合にも、適切にデータの移動を行う事ができる結果、耐故障性を向上させることができる。
また、実施例2に係るメモリコントローラ10は、ハイパーバイザ3aから通知された物理アドレスに応じて、データの移動を行う。このため、メモリコントローラ10は、新たな機能を付さずとも、プログラムであるハイパーバイザ3aの修正を行うだけで、メモリ4が有する各DIMM#1〜#3の記憶容量や構成によらず、適切なデータの移動処理を行う事ができる。
これまで本発明の実施例について説明したが実施例は、上述した実施例以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では実施例3として他の実施例を説明する。
(1)ハイパーバイザが実行する無効化領域判定について
上述したハイパーバイザ3aは、UEが発生したDIMMの記憶容量と停止させたVMが利用していた記憶領域の容量とに基づいて、メモリコントローラ10に通知する移動先物理アドレスの削減および追加を行っていた。しかし、実施例は、これに限定されるものではなく、例えば、実施例3に係るハイパーバイザ3bは、移動先物理アドレスの追加が行えない場合には、メモリコントローラ10にデータの移動処理を行わせないこととしてもよい。
図12は、実施例3に係るハイパーバイザが実行する無効化領域判定の一例を説明するための図である。なお、図12に示す各ステップS301〜308は、図11に示す各ステップS201〜208と同一の処理であるため、説明を省略する。
図12に示すように、ハイパーバイザ3bは、UEが発生したDIMMの記憶容量が停止させたVMが利用していた記憶領域の容量よりも大きい場合には(ステップS302否定)、VMに割当てられていない物理アドレスを検索する(ステップS306)。ここで、ハイパーバイザ3bは、VMに割当てられていない物理アドレスが無い場合、つまり、データの移動先となる記憶領域を追加することができない場合には(ステップS306否定)、メモリコントローラ10に移動先物理アドレスを通知せず、移動先の記憶領域が不足している旨を通知する(ステップS309)。
つまり、ハイパーバイザ3bは、UEがいずれかのDIMMで発生した際に、他のDIMMにデータを移動させるだけの空きが無い場合には、メモリコントローラ10に移動先物理アドレスを通知せず、データの移動処理を行わせない。そして、このような場合には、メモリコントローラ10は、データの移動処理を行わず、UEが発生したDIMMのメモリアドレスを削除する。
このため、メモリコントローラ10は、データの移動先となる記憶容量がデータの量よりも小さい場合には、データの移動を行わないので、記憶容量の不足によるデータ移動処理の失敗を防ぐことができる。結果、メモリコントローラ10は、適切なデータの移動処理を行うことができる。
また、上述した処理以外にも、ハイパーバイザ3bは、状況に応じて様々な情報を用いて、移動先物理アドレスの削減および追加を行うこととしてもよい。例えば、ハイパーバイザ3bは、メモリコントローラ10から移動させるデータが格納された物理アドレスの通知を受け、通知された物理アドレスに基づいて移動させるデータの容量を算出する。
そして、ハイパーバイザ3bは、終了させたVMに割当てられていた記憶領域の容量と算出した容量とを比較した結果に基づいて、メモリコントローラに通知する移動先物理アドレスの追加および削除を行っても良い。つまり、仮想計算機システムが有するメモリが少ない場合には、UEが発生したDIMM全体の記憶領域ではなく、UEが発生したDIMMに格納されたデータの量と停止したVMに割当てられていた記憶領域の容量とを比較することとしてもよい。
このように、メモリコントローラは、自装置の改良を行わずとも、ソフトウエアであるハイパーバイザの改良を行うだけで、より適切なデータの移動処理を行うことができる。
(2)DIMMについて
上述したメモリ4は、複数のDIMM#1〜#3を有していた。しかし、実施例はこれに限定されるものではなく、任意の数のDIMMを有していてもよい。また、各DIMMの記憶容量はそれぞれ同一でも良いし異なっていてもよい。また、DIMMだけではなく、例えば、SSD(Solid State Drive)やその他の半導体メモリ等でもよい。
1 仮想計算機システム
1a 仮想計算機システム
2 CPU
2a CPU
3 ハイパーバイザ
3a ハイパーバイザ
4 メモリ
5 物理アドレス変換テーブル
10 メモリコントローラ
11 DIMMアドレス変換テーブル
12 移動先DIMMアドレス検出回路
13 移動元DIMMアドレス検出回路
14 データ移動制御回路
15 エラーチェッカー

Claims (6)

  1. 複数のメモリモジュールが有する記憶領域を情報処理装置が一意に識別するための物理アドレスと、前記記憶領域をメモリ管理装置が一意に識別するためのメモリアドレスとを対応付けた変換テーブルを有するメモリ管理装置によって実行されるメモリ管理方法であって、
    エラーが検出されたメモリモジュールの記憶領域を示す物理アドレスのうちエラーが検出された記憶領域以外の記憶領域を示す物理アドレスを前記変換テーブルから抽出し、
    検出されたエラーの発生によって削除される情報が格納されている記憶領域を示す物理アドレスを情報処理装置から取得すると、当該取得した物理アドレスに対応付けられた前記メモリアドレスを前記変換テーブルから抽出し、
    前記変換テーブルを、前記抽出したメモリアドレスと前記抽出した物理アドレスとを対応付けた変換テーブルに更新し、
    前記抽出した物理アドレスが示す記憶領域に格納されている情報を前記抽出したメモリアドレスが示す記憶領域に移動させる
    ことを特徴とするメモリ管理方法。
  2. 前記情報処理装置は、
    前記エラーが発生したメモリモジュールが有する記憶領域の容量と、前記エラーの発生によって削除される情報が格納されている記憶領域の容量とを比較し、前記エラーが発生したメモリモジュールが有する記憶領域の容量が前記エラーの発生によって削除される情報が格納されている記憶領域の容量よりも少ない場合には、前記エラーの発生によって削除される情報が格納されている記憶領域のうち、前記エラーが発生したメモリモジュールが有する記憶領域と同容量の記憶領域を選択し、当該選択した記憶領域を示す物理アドレスを前記メモリ管理装置に通知することを特徴とする請求項1に記載のメモリ管理方法。
  3. 前記情報処理装置は、
    前記エラーが発生したメモリモジュールが有する記憶領域の容量と、前記エラーの発生によって削除される情報が格納されている記憶領域の容量とを比較し、前記エラーが発生したメモリモジュールが有する記憶領域の容量が前記エラーの発生によって削除される情報が格納されている記憶領域の容量よりも多い場合には、利用されていない記憶領域の物理アドレスを検出し、前記エラーの発生によって削除される情報が格納されている記憶領域を示す物理アドレスとともに該検出した物理アドレスを前記メモリ管理装置に通知することを特徴とする請求項1または2に記載のメモリ管理方法。
  4. 前記情報処理装置は、
    前記エラーが発生したメモリモジュールが有する記憶領域の容量が前記エラーの発生によって削除される情報が格納されている記憶領域の容量よりも多い場合には、利用されていない記憶領域の物理アドレスを検出し、当該検出した物理アドレスが示す記憶領域の容量と前記エラーの発生によって削除される情報が格納されている記憶領域の容量との和が前記エラーが発生したメモリモジュールが有する記憶領域の容量よりも少ない場合には、記憶領域が不足している旨を前記メモリ管理装置に通知し、
    前記メモリ管理装置は、
    前記情報処理装置から記憶領域が不足している旨を通知された場合には、情報の移動を行わず、前記変換テーブルから、前記抽出した物理アドレスに対応付けられたメモリアドレスを削除することを特徴とする請求項3に記載のメモリ管理方法。
  5. 複数のメモリモジュールが有する記憶領域を情報処理装置が一意に識別するための物理アドレスと、前記記憶領域をメモリ管理装置が一意に識別するためのメモリアドレスとを対応付けた変換テーブルを記憶する記憶部と、
    エラーが検出されたメモリモジュールの記憶領域を示す物理アドレスのうちエラーが検出された記憶領域以外の記憶領域を示す物理アドレスを前記変換テーブルら抽出する第一抽出部と、
    エラーの発生によって削除される情報が格納されている記憶領域を示す物理アドレスを情報処理装置から取得すると、当該取得した物理アドレスに対応付けられた前記メモリアドレスを前記変換テーブルら抽出する第二抽出部と、
    前記記憶部に記憶された変換テーブルを、前記第二抽出部が抽出したメモリアドレスと前記第一抽出部が抽出した物理アドレスとを対応付けた変換テーブルに更新する更新部と、
    前記第一抽出部が抽出した物理アドレスが示す記憶領域に格納されている情報を前記第二抽出部が抽出したメモリアドレスが示す記憶領域に移動させる移動部と
    を有することを特徴とするメモリ管理装置。
  6. ハイパーバイザが動作する回路とメモリモジュールとの間の通信経路上に設置されるメモリ管理回路であって、
    複数のメモリモジュールが有する記憶領域を情報処理装置が一意に識別するための物理アドレスと、前記記憶領域をメモリ管理装置が一意に識別するためのメモリアドレスとを対応付けた変換テーブルを記憶する記憶部と、
    エラーが検出されたメモリモジュールの記憶領域を示す物理アドレスのうちエラーが検出された記憶領域以外の記憶領域を示す物理アドレスを前記変換テーブルら抽出する第一抽出部と、
    エラーの発生によって削除される情報が格納されている記憶領域を示す物理アドレスを情報処理装置から取得すると、当該取得した物理アドレスに対応付けられた前記メモリアドレスを前記変換テーブルら抽出する第二抽出部と、
    前記記憶部に記憶された変換テーブルを、前記第二抽出部が抽出したメモリアドレスと前記第一抽出部が抽出した物理アドレスとを対応付けた変換テーブルに更新する更新部と、
    前記第一抽出部が抽出した物理アドレスが示す記憶領域に格納されている情報を前記第二抽出部が抽出したメモリアドレスが示す記憶領域に移動させる移動部と
    を有することを特徴とするメモリ管理回路。
JP2012553486A 2011-01-17 2011-01-17 メモリ管理方法、メモリ管理装置およびメモリ管理回路 Expired - Fee Related JP5510562B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/050666 WO2012098633A1 (ja) 2011-01-17 2011-01-17 メモリ管理方法、メモリ管理装置およびメモリ管理回路

Publications (2)

Publication Number Publication Date
JP5510562B2 true JP5510562B2 (ja) 2014-06-04
JPWO2012098633A1 JPWO2012098633A1 (ja) 2014-06-09

Family

ID=46515286

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012553486A Expired - Fee Related JP5510562B2 (ja) 2011-01-17 2011-01-17 メモリ管理方法、メモリ管理装置およびメモリ管理回路

Country Status (4)

Country Link
US (1) US20130305007A1 (ja)
EP (1) EP2667309A1 (ja)
JP (1) JP5510562B2 (ja)
WO (1) WO2012098633A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6083136B2 (ja) * 2012-06-22 2017-02-22 富士通株式会社 メモリダンプ機能を有する情報処理装置、メモリダンプ方法、およびメモリダンププログラム
US10229043B2 (en) 2013-07-23 2019-03-12 Intel Business Machines Corporation Requesting memory spaces and resources using a memory controller
US9710381B2 (en) 2014-06-18 2017-07-18 International Business Machines Corporation Method and apparatus for cache memory data processing
US11169870B2 (en) 2020-01-15 2021-11-09 Vmware, Inc. Managing the migration of virtual machines in the presence of uncorrectable memory errors

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06231049A (ja) * 1993-02-03 1994-08-19 Nec Corp 半導体ディスク装置
JPH07311661A (ja) * 1994-05-18 1995-11-28 Fujitsu Ltd 半導体ディスク装置
JP2007323142A (ja) * 2006-05-30 2007-12-13 Toshiba Corp 情報処理装置およびその制御方法
JP2009059121A (ja) * 2007-08-31 2009-03-19 Hitachi Ltd 仮想計算機の制御方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012129729A1 (en) * 2011-03-31 2012-10-04 Intel Corporation Memory mirroring and redundancy generation for high availability

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06231049A (ja) * 1993-02-03 1994-08-19 Nec Corp 半導体ディスク装置
JPH07311661A (ja) * 1994-05-18 1995-11-28 Fujitsu Ltd 半導体ディスク装置
JP2007323142A (ja) * 2006-05-30 2007-12-13 Toshiba Corp 情報処理装置およびその制御方法
JP2009059121A (ja) * 2007-08-31 2009-03-19 Hitachi Ltd 仮想計算機の制御方法

Also Published As

Publication number Publication date
EP2667309A1 (en) 2013-11-27
WO2012098633A1 (ja) 2012-07-26
JPWO2012098633A1 (ja) 2014-06-09
US20130305007A1 (en) 2013-11-14

Similar Documents

Publication Publication Date Title
US9747221B2 (en) Dynamic pinning of virtual pages shared between different type processors of a heterogeneous computing platform
KR102152238B1 (ko) 단편화를 해결하는 메모리 세그먼트 재매핑
TWI470426B (zh) Memory management device and memory management method
US10789019B2 (en) Storage device capable of managing jobs without intervention of a processor
US8255614B2 (en) Information processing device that accesses memory, processor and memory management method
US9811465B2 (en) Computer system and cache control method
US9015203B2 (en) Balloon object feedback for Java Virtual Machines
US9535628B2 (en) Memory system with shared file system
US20150127889A1 (en) Nonvolatile memory system
JP6130971B2 (ja) データをフラッシュメモリ装置に書き込む方法、フラッシュメモリ装置及び記憶システム
JP5786955B2 (ja) メモリ縮退方法及び情報処理装置
JP5510562B2 (ja) メモリ管理方法、メモリ管理装置およびメモリ管理回路
US20180004409A1 (en) Method and apparatus for managing storage device
US8103849B2 (en) Reducing memory usage of kernel memory management structures
US9658775B2 (en) Adjusting page sharing scan rates based on estimation of page sharing opportunities within large pages
JP2010122805A (ja) 仮想サーバシステム並びに物理cpu及び物理メモリの割り当て方法
US20090031100A1 (en) Memory reallocation in a computing environment
CN110119245B (zh) 用于操作nand闪存物理空间以扩展存储器容量的方法和系统
WO2015161804A1 (zh) 一种Cache分区的方法及装置
CN113961302A (zh) 资源分配方法、装置、电子设备及存储介质
CN107515723B (zh) 用于管理存储系统中的存储器的方法和系统
TWI836181B (zh) 進行動態磨損平衡及負載重定向之方法及固態驅動機系統
JP2006260395A (ja) プログラムローディング方法及びその装置
JP2014157476A (ja) 計測装置及び計測方法
TW201520780A (zh) 電腦裝置及其記憶體管理方法

Legal Events

Date Code Title Description
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: 20140225

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140310

R150 Certificate of patent or registration of utility model

Ref document number: 5510562

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees