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

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

Info

Publication number
WO2012098633A1
WO2012098633A1 PCT/JP2011/050666 JP2011050666W WO2012098633A1 WO 2012098633 A1 WO2012098633 A1 WO 2012098633A1 JP 2011050666 W JP2011050666 W JP 2011050666W WO 2012098633 A1 WO2012098633 A1 WO 2012098633A1
Authority
WO
WIPO (PCT)
Prior art keywords
storage area
physical address
address
memory
dimm
Prior art date
Application number
PCT/JP2011/050666
Other languages
English (en)
French (fr)
Inventor
博司 川野
文武 菅野
秋保 晋
Original Assignee
富士通株式会社
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 富士通株式会社 filed Critical 富士通株式会社
Priority to PCT/JP2011/050666 priority Critical patent/WO2012098633A1/ja
Priority to EP11856476.4A priority patent/EP2667309A1/en
Priority to JP2012553486A priority patent/JP5510562B2/ja
Publication of WO2012098633A1 publication Critical patent/WO2012098633A1/ja
Priority to US13/941,593 priority patent/US20130305007A1/en

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
    • 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
    • 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
    • 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

Definitions

  • the present invention relates to a memory management method, a memory management device, and a memory management circuit.
  • a virtual computer system for operating a plurality of virtual computers on a physical computer having a plurality of memory modules.
  • Such a virtual computer system operates a hypervisor that divides all storage areas of a plurality of memory modules into a plurality of storage areas and allocates the divided storage areas to the respective virtual machines.
  • FIG. 13 is a diagram for explaining the virtual machine system.
  • the virtual machine system 30 has a CPU (Central Processing Unit) 31, a memory controller 32, and a memory 33 having a plurality of memory modules # 1 to # 3.
  • the hypervisor 34 is a program executed by the CPU 31, divides a storage area of each memory module, and allocates the divided storage areas to a plurality of virtual machines.
  • the memory controller 32 of the virtual machine system 30 has a memory address conversion table.
  • a physical address for the CPU 31 and the hypervisor 34 to uniquely identify the storage area of the memory 33 and a memory address for the memory controller 32 to uniquely identify the storage area of the memory 33 correspond to each other. It is attached.
  • the memory controller 32 When the memory controller 32 acquires a data read request from the CPU 31 together with the physical address, the memory controller 32 extracts a memory address associated with the acquired physical address from the memory address conversion table. Thereafter, the memory controller 32 acquires the data stored in the extracted memory address, and transmits the acquired data to the CPU 31.
  • the memory controller 32 may detect an uncorrectable error (UE: Un Correctable Error) from the acquired data. In such a case, the memory controller 32 notifies the hypervisor 34 that the UE has been detected.
  • UE Un Correctable Error
  • the hypervisor 34 moves the data of the memory module in which the UE has occurred to another memory module.
  • FIG. 14 is a diagram for explaining an example of processing executed by the hypervisor.
  • the hypervisor 34 receives notification of a target LPAR (Logical Partition) storing data to be moved and a data movement request from a performance management program, a failure management program, an operator, or the like (step S1). ).
  • LPAR Logical Partition
  • the hypervisor 34 excludes the notified target LPAR from the dispatch target of the CPU 31 (step S2). That is, the hypervisor 34 stops the virtual machine that uses the data stored in the target LPAR. Then, the hypervisor 34 moves the data stored in the target LPAR to another memory module (step S3), and associates the physical address before the data is moved with the memory address where the data is newly stored in the memory.
  • the management table is updated (step S4).
  • the hypervisor 34 updates the address conversion table of the target LPAR based on the updated memory management table (step S5), and returns the target LPAR to the CPU dispatch target (step S6).
  • the hypervisor in order to move data to another memory module, the hypervisor itself needs to operate. For this reason, since the hypervisor cannot exclude the target LPAR in which the hypervisor's own data is stored from the dispatch target, if a UE occurs in the memory module in which the hypervisor's data is stored, Cannot move. As a result, fault tolerance deteriorates.
  • the disclosed technology is a memory management method executed by a memory management device.
  • the memory management device associates a physical address for the information processing device to uniquely identify the storage area of the plurality of memory modules and a memory address for the memory management device to uniquely identify the storage region. It has a conversion table attached. Further, the memory management device extracts a physical address indicating the storage area of the memory module in which the error is detected from the conversion table. In addition, the memory management device acquires from the information processing device a physical address indicating a storage area in which information to be deleted due to an error is stored, and extracts a memory address associated with the acquired physical address from the conversion table. To do.
  • the memory management device updates the conversion table to a conversion table in which the extracted memory address and the extracted physical address are newly associated.
  • the memory management device moves to the storage area indicated by the extracted memory address from the information stored in the storage area indicated by the extracted physical address.
  • the technology disclosed in the present application improves fault tolerance.
  • FIG. 1 is a diagram for explaining the virtual machine system according to the first embodiment.
  • FIG. 2 is a diagram for explaining an example of a physical address conversion table managed by the hypervisor.
  • FIG. 3 is a diagram for explaining an example of a physical address assigned to each entry.
  • FIG. 4 is a diagram for explaining an entry to be deleted.
  • FIG. 5 is a diagram for explaining the relationship between entries to be deleted from the physical address conversion table and physical addresses.
  • FIG. 6 is a diagram for explaining an example of the DIMM address conversion table.
  • FIG. 7 is a diagram for explaining a physical address and a DIMM address detected from the DIMM address conversion table.
  • FIG. 8 is a diagram for explaining processing in which the data movement control circuit updates the DIMM address conversion table 11.
  • FIG. 8 is a diagram for explaining processing in which the data movement control circuit updates the DIMM address conversion table 11.
  • FIG. 9 is a flowchart for explaining the flow of processing executed by the memory controller and the hypervisor.
  • FIG. 10 is a diagram for explaining the virtual machine system according to the second embodiment.
  • FIG. 11 is a diagram for explaining a flow of invalidation area determination performed by the hypervisor according to the second embodiment.
  • FIG. 12 is a schematic diagram illustrating an example of invalidation area determination performed by the hypervisor according to the third embodiment.
  • FIG. 13 is a diagram for explaining the virtual machine system.
  • FIG. 14 is a diagram for explaining an example of processing executed by the hypervisor.
  • FIG. 1 is a diagram for explaining the virtual machine system according to the first embodiment.
  • the virtual machine system 1 includes a CPU (Central Processing Unit) 2, a memory controller 10, and a memory 4.
  • the memory 4 has a plurality of DIMMs (Dual Inline Memory Modules) # 1 to # 3.
  • the memory controller 10 includes a DIMM address conversion table 11, a migration destination DIMM address detection circuit 12, a migration source DIMM address detection circuit 13, a data movement control circuit 14, and an error checker 15.
  • the CPU 2 is an information processing device that operates the hypervisor 3.
  • the CPU 2 transmits a read request to the memory controller 10 together with the physical address where the data is stored.
  • the physical address is an address that uniquely indicates all storage areas of the memory 2.
  • the CPU 2 receives data stored in the memory 4 from the memory controller 10 as read data.
  • the hypervisor 3 is a program that allocates a storage area of the memory 4 to a plurality of virtual machines (VMs), and is executed by the CPU 2. Then, the hypervisor 3 receives a notification that an uncorrectable error (UE: Uncorrectable Error) has been detected from the memory controller 10 described later. In such a case, the hypervisor 3 causes the memory controller 10 to execute a process of moving data stored in the DIMM in which the UE is detected to another DIMM.
  • UE Uncorrectable Error
  • the hypervisor 3 manages the physical address conversion table 5 in which the virtual address and the physical address of the VM are associated with each other.
  • the hypervisor 3 receives a notification that a UE has occurred from the memory controller 10 described later, the hypervisor 3 terminates the VM that has used the storage area in which the UE has occurred. Further, the hypervisor 3 uses the physical address conversion table 5 to detect the entry number assigned to the terminated VM.
  • the hypervisor 3 extracts the physical address associated with the detected entry number from the physical address conversion table 5 and notifies the memory controller 10 of the extracted physical address. As will be described later, the memory controller 10 deletes the data stored in the storage area indicated by the physical address notified from the hypervisor 3. For this reason, the hypervisor 3 notifies the memory controller 10 of the physical address where the data to be deleted is stored.
  • the hypervisor 3 When the hypervisor 3 notifies the memory controller 10 of the physical address extracted from the physical address conversion table 5, the hypervisor 3 deletes the entry associated with the extracted physical address from the entries in the conversion table, The physical address conversion table 5 is updated. Thereafter, the hypervisor 3 allocates the storage area of the memory 4 to a plurality of VMs using the updated physical address conversion table 5.
  • FIG. 2 is a diagram for explaining an example of the physical address conversion table 5 managed by the hypervisor.
  • the hypervisor 3 manages the physical address conversion table 5 in which entry numbers, VM numbers, virtual addresses, physical addresses, and sizes are associated with each other.
  • the entry number is a number indicating a storage area allocated to the VM.
  • the VM number is a number that uniquely indicates a virtual machine to which a storage area is allocated.
  • the virtual address is a memory address used by the virtual computer to indicate a storage area.
  • the physical address is a memory address for the hypervisor 3 to identify all storage areas of the memory 4.
  • the size is information indicating the number of blocks in the storage area allocated to the VM.
  • the entry # 1 indicates that the 10-block storage area indicated by the physical address “60-69” is allocated to the virtual address “0-9” used by the VM # 0.
  • the entry # 8 indicates that the 20-block storage area indicated by the physical address “130 to 149” is allocated to the virtual address “10 to 29” used by the VM # 1.
  • an entry # 9 it indicates that the storage area of 10 blocks indicated by the physical address “80-89” is allocated to the virtual address “0-9” used by the VM # 2.
  • the hypervisor 3 associates each entry with each physical address as shown in FIG. 3 based on the physical address conversion table 5 illustrated in FIG.
  • FIG. 3 is a diagram for explaining an example of a physical address assigned to each entry.
  • the hypervisor 3 obtains notification from the memory controller 10 that a UE has occurred in the data stored in the storage area indicated by the physical address “240 to 249”.
  • FIG. 4 is a diagram for explaining an entry to be deleted.
  • the hypervisor 3 receives a notification from the memory controller 10 that a UE has occurred in the storage area indicated by the physical addresses “240 to 249”.
  • the hypervisor 3 identifies the VM “# 2” to which the physical address “240 to 249” is assigned based on the physical address conversion table 5.
  • the hypervisor 3 stores the physical addresses “80 to 89”, “150 to 159”, and “240 to 249” assigned to the VM “# 2” in the physical address conversion table. 5 is detected. Then, the hypervisor 3 notifies the memory controller 10 of the detected physical addresses “80 to 89”, “150 to 159”, and “240 to 249”. That is, when the UE occurs in the data stored in the storage area assigned to the VM “# 2”, the hypervisor 3 cannot continuously use the VM “# 2”. The data stored in the storage area allocated to " Then, the hypervisor 3 notifies the memory controller 10 of the physical address of the storage area in which the data to be deleted is stored.
  • the hypervisor 3 deletes the VM number, virtual address, physical address, and size information associated with the entries # 9 to 11 in the physical address conversion table 5 and updates the physical address conversion table 5. . Then, the hypervisor 3 continues the process of assigning the storage area of the memory 4 to the VMs # 0 and # 1 using the updated physical address conversion table 5.
  • FIG. 5 is a diagram for explaining the relationship between the entry to be deleted from the physical address conversion table and the physical address.
  • entries # 9, # 10, and # 11 associated with VM # 2 are deleted from physical address conversion table 5. For this reason, since the hypervisor 3 can continue the operation without setting a new physical address, the physical address set when the hypervisor 3 is activated can be prevented from being depleted.
  • the DIMM conversion address table storage unit 11 stores a DIMM address conversion table 11 in which a physical address is associated with a DIMM address for the memory controller 10 to identify storage areas of the DIMMs # 1 to # 3.
  • FIG. 6 is a diagram for explaining an example of the DIMM address conversion table 11. Specifically, as shown in FIG. 6, the DIMM address conversion table 11 stores a physical address, a DIMM number that uniquely indicates a DIMM, and a DIMM address that indicates a storage area of each DIMM in association with each other. The That is, the DIMM address conversion table 11 indicates where data accessed using a physical address is stored.
  • the DIMM address conversion table 11 indicates that data accessed using the physical address “110 to 119” is stored in the DIMM address “10 to 19” of the DIMM “# 1”. .
  • the DIMM address conversion table 11 indicates that data accessed using the physical address “120 to 129” is stored in the DIMM address “20 to 29” of the DIMM “# 1”.
  • the destination DIMM address detection circuit 12 acquires a notification of a physical address indicating a storage area in which information to be deleted by the occurrence of the UE is stored from the hypervisor 3. In such a case, the migration destination DIMM address detection circuit 12 refers to the DIMM address conversion table 11 and extracts a DIMM address associated with the notified physical address. Then, the migration destination DIMM address detection circuit 12 notifies the data migration control circuit 14 of the extracted DIMM address.
  • FIG. 7 is a diagram for explaining a physical address and a DIMM address detected from the DIMM address conversion table 11.
  • the destination DIMM address detection circuit 12 is notified of the physical addresses “80 to 89”, “150 to 159”, and “240 to 249” from the hypervisor 3.
  • the destination DIMM address detection circuit 12 receives the physical addresses “80 to 89” and “150 to 150” notified from the hypervisor 3 from the DIMM address conversion table 11 as indicated by ⁇ in FIG. 159 ”and“ 240-249 ”.
  • the destination DIMM address detection circuit 12 extracts the DIMM number “# 0” and the DIMM address “80 to 89” associated with the searched physical address “80 to 89”. Thereafter, the migration destination DIMM address detection circuit 12 notifies the data migration control circuit 14 of the extracted DIMM number “# 0” and the DIMM address “80 to 89”.
  • the destination DIMM address detection circuit 12 extracts the DIMM number “# 1” and the DIMM address “50 to 59” associated with the searched physical address “150 to 159”. Thereafter, the migration destination DIMM address detection circuit 12 notifies the data migration control circuit 14 of the extracted DIMM number “# 1” and the DIMM address “50 to 59”.
  • the destination DIMM address detection circuit 12 extracts the DIMM number “# 2” and the DIMM address “40 to 49” associated with the searched physical address “240 to 249”. Thereafter, the migration destination DIMM address detection circuit 12 notifies the data migration control circuit 14 of the DIMM number “# 2” and the DIMM addresses “40 to 49”.
  • the destination DIMM address detection circuit 12 determines that the storage area indicated by the physical address in the range indicated by ⁇ in FIG. 7 is the destination storage area to which the data movement control circuit 14 described later moves data. Then, the migration destination DIMM address detection circuit 12 extracts the DIMM address indicating the determined migration destination storage area, and notifies the data migration control circuit 14 of the extracted DIMM address.
  • the source DIMM address detection circuit 13 indicates a storage area included in the DIMM in which the UE is detected.
  • the physical address is extracted from the DIMM address conversion table 11.
  • the move source DIMM address detection circuit 13 has received a notification of the DIMM number and DIMM address of the DIMM generated by the UE from the error checker 15 described later.
  • the source DIMM address detection circuit 13 refers to the DIMM address conversion table 11 and detects a physical address associated with the notified DIMM number.
  • the source DIMM address detection circuit 13 extracts a physical address that is not associated with the DIMM address notified from the error checker 15 from the detected physical addresses. Thereafter, the migration source DIMM address detection circuit 13 notifies the data movement control circuit 14 of the extracted physical address and the DIMM number and DIMM address associated with the extracted physical address.
  • the source DIMM address detection circuit 13 has received a notification from the error checker 15 of the DIMM number “# 2” generated by the UE and the DIMM addresses “40 to 49”.
  • the source DIMM address detection circuit 13 refers to the DIMM address conversion table 11 and refers to the physical address “210 to 219” associated with the DIMM number “# 2” notified from the error checker 15. , “230-239”, “240-249” are detected.
  • the migration source DIMM address detection circuit 13 converts the physical addresses “210 to 219” and “230 to 239” not associated with the DIMM addresses “40 to 49” notified from the error checker 15 into the DIMM address conversion table 11. Extract from Thereafter, the migration source DIMM address detection circuit 13 notifies the data movement control circuit 14 of the DIMM number “# 2” and the DIMM address “10-19” associated with the extracted physical address “210-219”. Further, the migration source DIMM address detection circuit 13 notifies the data movement control circuit 14 of the DIMM number “# 2” and the DIMM address “30 to 39” associated with the extracted physical address “240 to 249”.
  • the migration source DIMM address detection circuit 13 becomes a migration target to a storage area other than the storage area where the UE has occurred among the data stored in the DIMM # 2 where the UE has occurred, as indicated by ⁇ in FIG. Determine that data is stored. Therefore, the migration source DIMM address detection circuit 13 notifies the data migration control circuit 14 of the DIMM address in which the data to be migrated is stored as the migration source DIMM address.
  • the data movement control circuit 14 associates the DIMM address notified from the movement destination DIMM address detection circuit 12 with the physical address notified from the movement source DIMM address detection circuit 13, and associates the DIMM address conversion table. 11 is updated. Further, the data movement control circuit 14 stores the information stored in the storage area indicated by the physical address notified by the movement source DIMM address detection circuit 13 by the DIMM address notified from the movement destination DIMM address detection circuit 12. Move to area.
  • the data movement control circuit 14 receives a notification of the DIMM number and the DIMM address from the movement destination DIMM address detection circuit 12. Further, the data movement control circuit 14 receives a notification of a physical address, a DIMM number, and a DIMM address from the movement source DIMM address detection circuit 13.
  • the data movement control circuit 14 uses the data stored in the DIMM address of the DIMM number notified from the movement source DIMM address detection circuit 13 as the DIMM number notified from the movement destination DIMM address detection circuit 12. To the DIMM address. For example, as shown in FIG. 1, the data movement control circuit 14 converts the data stored in the storage area indicated by the diagonal lines of the DIMM # 1 generated by the UE into the DIMM # 2 independently of the control of the hypervisor 3. Move to the storage area indicated by the diagonal lines.
  • the data movement control circuit 14 accesses the DIMM address conversion table 11. Then, the data movement control circuit 14 deletes the DIMM address stored in the DIMM address conversion table 11 in association with the DIMM number notified from the movement source DIMM address detection circuit 13. Further, the data movement control circuit 14 newly associates the physical address notified from the movement source DIMM address detection circuit 13 with the DIMM number and the DIMM address notified from the movement destination DIMM address detection circuit 12, and converts the DIMM address. Update the table 11.
  • the data movement control circuit 14 notifies the migration destination DIMM address detection circuit 12 of the DIMM number “# 0” and the DIMM address “80 to 89”, and the DIMM number “# 1” and the DIMM address “50 to 59”. Receive. Further, the data movement control circuit 14 receives a notification of a set of a physical address “210 to 219”, a DIMM number “# 2”, and a DIMM address “10 to 19” from the movement source DIMM address detection circuit 13. Further, the data movement control circuit 14 receives a notification of a set of the physical address “230 to 239”, the DIMM number “# 2”, and the DIMM address “30 to 39”.
  • the data movement control circuit 14 notifies the information stored in the DIMM addresses “10 to 19” of the DIMM “# 2” notified from the movement source DIMM address detection circuit 13 from the movement destination DIMM address detection circuit 12. To the DIMM address “80 to 89” of the DIMM “# 0”. Further, the data movement control circuit 14 notifies the information stored in the DIMM addresses “30 to 39” of the DIMM “# 2” notified from the movement source DIMM address detection circuit 13 from the movement destination DIMM address detection circuit 12. Moved to the DIMM address “50 to 59” of the DIMM “# 1”.
  • FIG. 8 is a diagram for explaining processing in which the data movement control circuit updates the DIMM address conversion table 11.
  • the data movement control circuit 14 accesses the DIMM address conversion table 11 and deletes the DIMM address associated with the DIMM number “# 2” notified from the movement source DIMM address detection circuit 13.
  • the data movement control circuit 14 receives the DIMM number “# 0” notified from the movement destination DIMM address detection circuit 12 associated with the physical address “80 to 89”.
  • the set of DIMM addresses “80 to 89” is deleted from the DIMM address conversion table 11.
  • the data movement control circuit 14 is associated with the DIMM number “# 1” notified from the movement destination DIMM address detection circuit 12 associated with the physical address “150 to 159”.
  • the set of DIMM addresses “50 to 59” is deleted from the DIMM address conversion table 11.
  • the data movement control circuit 14 associates the physical address “210 to 219” with the set of the DIMM number “# 0” and the DIMM address “80 to 89” to convert the DIMM address. Store in table 11. Further, the data movement control circuit 14 stores the physical address “230 to 239” in association with the set of the DIMM number “# 1” and the DIMM address “50 to 59” in the DIMM address conversion table 11.
  • the hypervisor 3 notifies the memory controller 10 of the physical address in which the data to be deleted is stored without moving the data of the DIMM generated by the UE to another DIMM. Then, the memory controller 10 moves the data of the DIMM generated by the UE to another DIMM based on the physical address notified from the hypervisor 3 and the DIMM number and DIMM address generated by the UE. That is, the memory controller 10 performs data movement independently of the control by the hypervisor 3.
  • the memory controller 10 can be appropriately moved even if the data stored in the DIMM generated by the UE is the data of the hypervisor 3. As a result, the memory controller 10 can improve the fault tolerance of the entire virtual computer system 1.
  • the error checker 15 detects UEs that occur in the DIMMs # 1 to # 3 included in the memory 4. Specifically, the error checker 15 acquires data requested to be read by the CPU 2 and determines whether or not a UE has occurred in the acquired data.
  • the error checker 15 determines that a UE has occurred in the acquired data, the error checker 15 notifies the source DIMM address detection circuit 13 of the DIMM number and DIMM address in which the acquired data is stored. Further, the error checker 15 extracts the DIMM address and the physical address associated with the DIMM address in which the acquired data is stored from the DIMM address conversion table 11 and notifies the hypervisor 3 of the extracted physical address. .
  • the error checker 15 acquires data stored in the DIMM address “40 to 49” of the DIMM number “# 2”. If the error checker 15 determines that the UE has occurred in the acquired data, the error checker 15 uses the pair of the DIMM number “# 2” and the DIMM address “40 to 49” storing the acquired data as the migration source DIMM. This is notified to the address detection circuit 13. Further, the error checker 15 extracts the physical address “240 to 249” associated with the DIMM number “# 2” and the DIMM address “40 to 49” from the DIMM address conversion table 11, and uses the extracted physical address as a hypervisor. 3 is notified.
  • the migration destination DIMM address detection circuit 12, the migration source DIMM address detection circuit 13, the data movement control circuit 14, and the error checker 15 are electronic circuits.
  • an integrated circuit such as ASIC (Application Specific Integrated Circuit) or FPGA (Field Programmable Gate Array), CPU (Central Processing Unit), MPU (Micro Processing Unit), or the like is applied.
  • the DIMM address conversion table 11 is a semiconductor memory device such as a RAM (Random Access Memory), a ROM (Read Only Memory), a flash memory, or a storage device such as a hard disk or an optical disk.
  • a RAM Random Access Memory
  • ROM Read Only Memory
  • flash memory or a storage device such as a hard disk or an optical disk.
  • FIG. 9 is a flowchart for explaining the flow of processing executed by the memory controller and the hypervisor. In the following description, a case where a UE has occurred in a DIMM in which read data is stored will be described.
  • the memory controller 10 reads data stored in the storage area indicated by the physical address notified from the CPU 2 (step S101). Then, the memory controller 10 checks the read data and determines that a UE has occurred in the DIMM from the read data (step S102).
  • the error checker 15 of the memory controller 10 notifies the migration source DIMM address detection circuit 13 of the DIMM number of the DIMM generated by the UE (step S103).
  • the migration source DIMM address detection circuit 13 extracts a DIMM address from which data is migrated based on the notified DIMM number (step S104).
  • the hypervisor 3 extracts the physical address of the storage area storing the data to be deleted based on the physical address notified from the memory controller 10, and notifies the extracted physical address to the memory controller 10 (step S105). ). Then, the hypervisor 3 updates the physical address conversion table 5 (step S106) and ends the process. That is, the hypervisor 3 ends the process without executing the data movement process.
  • the migration destination DIMM address detection circuit 12 of the memory controller 10 extracts a DIMM address as a data migration destination based on the physical address notified from the hypervisor 3 (step S107). Then, the data movement control circuit 14 moves the data stored in the storage area indicated by the migration source DIMM address to the storage area indicated by the migration destination DIMM address (step S108).
  • the data movement control circuit 14 updates the DIMM address conversion table 11 (step S109), and thereafter ends the process.
  • the memory controller 10 includes the DIMM address conversion table 11 that associates physical addresses with DIMM addresses. Further, the memory controller 10 is notified from the hypervisor 3 of the physical address of the storage area in which data to be deleted due to the occurrence of the UE is stored. In such a case, the memory controller 10 extracts the DIMM address associated with the notified physical address from the DIMM address conversion table 11. Then, the memory controller 10 moves the DIMM data generated by the UE to the storage area indicated by the extracted DIMM address.
  • the memory controller 10 can move the data to another DIMM even when the data of the hypervisor 3 is stored in the DIMM generated by the UE. That is, the memory controller 10 can move not only the data used by the VM but also the data of the hypervisor 3 that is most required to have fault tolerance from the DIMM in which the UE has been generated to another DIMM. As a result, the memory controller 10 can improve the fault tolerance of the virtual machine system 1.
  • the memory controller 10 not only moves the data, but also updates the DIMM address conversion table 11 by newly associating the DIMM address indicating the destination storage area and the physical address indicating the source storage area. To do. That is, the memory controller 10 dynamically updates the DIMM address conversion table 11 in accordance with data movement. For this reason, the memory controller 10 can continue the memory access appropriately without updating the physical address conversion table 5 used by the hypervisor 3 in accordance with the movement of data.
  • the memory controller 10 performs the data movement process using the storage area indicated by the physical address notified from the hypervisor 3 as the data movement destination, so that it is more appropriate without performing another new improvement. It is possible to perform the data movement process. In other words, the memory controller 10 causes the hypervisor 3 to execute a process of extracting the data movement destination, and therefore it is possible to perform a more appropriate data movement process simply by improving the hypervisor 3.
  • the hypervisor having the function of changing the storage capacity of the migration destination has a physical address indicating the migration destination storage area. An example of notifying the memory controller will be described.
  • FIG. 10 is a diagram for explaining the virtual machine system according to the second embodiment.
  • the virtual machine system 1 a includes a CPU 2 a, a memory controller 10, and a memory 4.
  • the CPU 2a operates the hypervisor 3a according to the second embodiment, and other functions exhibit the same functions as the CPU 2 described in the first embodiment.
  • the memory 4 and the memory controller 10 exhibit the same functions as the memory 4 and the memory controller 10 described in the first embodiment, and detailed description thereof is omitted.
  • the hypervisor 3a compares the capacity of the storage area allocated to the terminated VM with the storage capacity of the DIMM generated by the UE. Then, the hypervisor 3a invalidates the physical address to be notified to the memory controller 10 based on whether or not the capacity of the storage area to which the data is moved is larger than the storage capacity of the DIMM generated by the UE. Execute area determination processing.
  • the hypervisor 3a notifies the destination DIMM address detection circuit 12 of the physical address extracted by the invalidation area determination process, that is, the physical address indicating the storage area where the data to be deleted is stored.
  • FIG. 11 is a diagram for explaining the flow of invalidation area determination executed by the hypervisor according to the second embodiment.
  • the hypervisor 3a starts the invalidation area determination process using the VM that has used the storage area generated by the UE as a trigger.
  • the hypervisor 3a searches for a physical address indicating a storage area used by the VM to be stopped, that is, a physical address indicating a storage area in which data to be deleted is stored (step S201).
  • the physical address indicating the storage area where the data to be deleted is stored is a physical address indicating the storage area to which the data is to be moved when the memory controller 10a moves the data. Therefore, in the following description, a physical address indicating a storage area in which data to be deleted is stored is referred to as a movement destination physical address.
  • the hypervisor 3a determines whether or not the storage area indicated by the destination physical address is larger than the storage capacity of the DIMM generated by the UE (step S202). That is, the hypervisor 3a determines whether or not the storage area indicated by the movement destination physical address is larger than the area where the data to be moved is stored.
  • the hypervisor 3a determines that the storage area indicated by the destination physical address is larger than the storage capacity of the DIMM generated by the UE (Yes in step S202), the hypervisor 3a can reduce the storage area indicated by the destination physical address. Whether or not (step S203).
  • the hypervisor 3a determines that the storage area indicated by the movement destination physical address can be reduced (Yes at Step S203)
  • the storage capacity of the DIMM generated by the UE in the storage area indicated by the movement destination physical address is determined. Select storage areas of the same capacity. That is, the hypervisor 3a reduces the destination physical address according to the storage capacity of the DIMM generated by the UE (step S204).
  • any method can be used for selecting a storage area having the same capacity as the storage area storing the data to be moved from the storage area indicated by the destination physical address.
  • the hypervisor 3a uses a method of selecting a storage area to which an adjacent physical address is assigned, a method of selecting a storage area at random, or the like.
  • the hypervisor 3a determines that the destination physical address cannot be reduced (No at Step S203)
  • the hypervisor 3a does not reduce the destination physical address (Step S205). If the hypervisor 3a determines that the storage capacity of the DIMM generated by the UE is larger than the capacity of the storage area indicated by the destination physical address (No at Step S202), the physical address not assigned to the VM It is determined whether or not there is (step S206).
  • the hypervisor 3a determines that there is a physical address that is not assigned to the VM (Yes at Step S206)
  • the hypervisor 3a adds the physical address that is not assigned to the VM to the destination physical address (Step S207). Thereafter, the hypervisor 3a transmits the destination physical address to the destination DIMM address detection circuit 12 of the memory controller 10a (step S208).
  • Step S206 if there is no physical address that is not assigned to the VM (No at Step S206), the hypervisor 3a does not reduce or add the movement destination physical address (Step S205), and sends the movement destination physical address to the memory controller 10. Notification is made (step S208). Thereafter, the hypervisor 3a updates the physical address conversion table 5 managed by the own device, and ends the process.
  • the hypervisor 3a compares the storage capacity of the DIMM in which the error has occurred with the capacity of the storage area in which the information to be deleted is stored. That is, the hypervisor 3a compares the capacity of the storage area to which data is moved with the storage capacity of the DIMM generated by the UE. When the storage capacity of the DIMM generated by the UE is less than the capacity of the storage area to which the data is moved, the hypervisor 3a stores the DIMM generated by the UE from the storage area to which the data is transferred. Select a storage area with the same capacity. Then, the hypervisor 3a notifies the memory controller 10 of a physical address indicating the selected storage area.
  • the memory controller 10 can improve fault tolerance without wasting physical addresses. For example, the memory controller 10 deletes the DIMM address associated with the physical address notified from the hypervisor 3a from the DIMM address conversion table. That is, the memory controller 10 deletes the notified destination physical address from the use target.
  • the hypervisor 3a compares the amount of data to be moved when the UE is generated with the capacity of the storage area serving as the movement destination, and the movement destination physical address indicating the storage area having the same capacity as the amount of data to be moved. Is sent to the memory controller 10. For this reason, the memory controller 10 can effectively use the DIMM without deleting an extra physical address from the utilization target while improving the fault tolerance.
  • the hypervisor 3a detects a physical address that is not allocated to the VM. Then, the hypervisor 3a transmits the detected physical address and the physical address of the storage area to which the data is moved to the memory controller 10 as the movement destination physical address. In other words, when the data capacity to be moved is larger than the capacity of the storage area to be moved, the hypervisor 3a has a physical address of the storage area to be moved and a physical address indicating a storage area not used by the VM. Is sent to the memory controller 10.
  • the memory controller 10 can improve the fault tolerance as a result of being able to move the data appropriately even when the capacity of the data to be moved is larger than the capacity of the storage area to be moved.
  • the memory controller 10 moves data according to the physical address notified from the hypervisor 3a. Therefore, the memory controller 10 only corrects the hypervisor 3a as a program without adding a new function, and does not depend on the storage capacity or configuration of each of the DIMMs # 1 to # 3 included in the memory 4. Appropriate data movement processing can be performed.
  • the hypervisor 3a described above is based on the memory capacity of the DIMM generated by the UE and the capacity of the storage area used by the stopped VM.
  • the destination physical address to be notified to is reduced and added.
  • the embodiment is not limited to this.
  • the hypervisor 3b according to the third embodiment cannot add a destination physical address, the hypervisor 3b performs a data movement process on the memory controller 10. It is also possible not to let it.
  • FIG. 12 is a schematic diagram illustrating an example of invalidation area determination performed by the hypervisor according to the third embodiment. Note that steps S301 to S308 shown in FIG. 12 are the same as steps S201 to S208 shown in FIG.
  • the hypervisor 3b is assigned to a VM when the storage capacity of the DIMM generated by the UE is larger than the capacity of the storage area used by the stopped VM (No in step S302).
  • a physical address that has not been searched is searched (step S306).
  • the hypervisor 3b moves to the memory controller 10 when there is no physical address not assigned to the VM, that is, when the storage area to which the data is to be moved cannot be added (No in step S306).
  • the destination physical address is not notified, and a notification is made that the destination storage area is insufficient (step S309).
  • the hypervisor 3b does not notify the destination physical address to the memory controller 10 when the UE is generated in one of the DIMMs, and there is no space to move the data to another DIMM, and the data Do not perform the move process.
  • the memory controller 10 deletes the memory address of the DIMM generated by the UE without performing the data movement process.
  • the memory controller 10 does not move the data when the storage capacity to which the data is moved is smaller than the amount of data, so that the failure of the data movement process due to the shortage of the storage capacity can be prevented. .
  • the memory controller 10 can perform an appropriate data movement process.
  • the hypervisor 3b may perform reduction and addition of the movement destination physical address using various information depending on the situation. For example, the hypervisor 3b receives a notification of the physical address where the data to be moved is stored from the memory controller 10, and calculates the capacity of the data to be moved based on the notified physical address.
  • the hypervisor 3b may add or delete the destination physical address to be notified to the memory controller based on the result of comparing the capacity of the storage area allocated to the terminated VM with the calculated capacity. good. In other words, when the virtual computer system has a small amount of memory, the amount of data stored in the DIMM generated by the UE and the storage area allocated to the stopped VM are not the storage area of the entire DIMM generated by the UE. It is good also as comparing with capacity.
  • the memory controller can perform more appropriate data movement processing only by improving the hypervisor, which is software, without improving its own device.
  • DIMM The memory 4 described above has a plurality of DIMMs # 1 to # 3. However, the embodiment is not limited to this, and may have any number of DIMMs. Further, the storage capacity of each DIMM may be the same or different. In addition to the DIMM, for example, an SSD (Solid State Drive) or other semiconductor memory may be used.
  • SSD Solid State Drive
  • Virtual computer system 1a Virtual computer system 2 CPU 2a CPU 3 Hypervisor 3a Hypervisor 4 Memory 5 Physical address conversion table 10 Memory controller 11 DIMM address conversion table 12 Destination DIMM address detection circuit 13 Source DIMM address detection circuit 14 Data movement control circuit 15 Error checker

Abstract

 メモリコントローラ(10)は、メモリ4が有する記憶領域をハイパーバイザ(3)が一意に識別するための物理アドレスと、メモリコントローラ(10)が一意に識別するためのメモリアドレスとが対応付けて記憶するDIMMアドレス変換テーブルを有する。メモリコントローラ(10)は、エラーが検出されたDIMMの記憶領域を示す物理アドレスをDIMMアドレス変換テーブル(11)から抽出する。また、メモリコントローラ(10)は、エラーの発生によって削除される情報が格納されている記憶領域を示す物理アドレスをハイパーバイザ(3)から取得し、取得した物理アドレスに対応付けられたメモリアドレスをDIMMアドレス変換テーブル(11)から抽出する。そして、メモリコントローラ(10)は、抽出した物理アドレスが示す記憶領域に格納されていた情報を抽出したメモリアドレスが示す記憶領域に移動する。

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.  複数のメモリモジュールが有する記憶領域を情報処理装置が一意に識別するための物理アドレスと、前記記憶領域をメモリ管理装置が一意に識別するためのメモリアドレスとを対応付けた変換テーブルを記憶する記憶部と、
     エラーが検出されたメモリモジュールの記憶領域を示す物理アドレスを前記変換テーブル部から抽出する第一抽出部と、
     エラーの発生によって削除される情報が格納されている記憶領域を示す物理アドレスを情報処理装置から取得すると、当該取得した物理アドレスに対応付けられた前記メモリアドレスを前記変換テーブル部から抽出する第二抽出部と、
     前記記憶部に記憶された変換テーブルを、前記第二抽出部が抽出したメモリアドレスと前記第一抽出部が抽出した物理アドレスとを対応付けた変換テーブルに更新する更新部と、
     前記第一抽出部が抽出した物理アドレスが示す記憶領域に格納されている情報を前記第二抽出部が抽出したメモリアドレスが示す記憶領域に移動させる移動部と
     ことを特徴とするメモリ管理回路。
PCT/JP2011/050666 2011-01-17 2011-01-17 メモリ管理方法、メモリ管理装置およびメモリ管理回路 WO2012098633A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
PCT/JP2011/050666 WO2012098633A1 (ja) 2011-01-17 2011-01-17 メモリ管理方法、メモリ管理装置およびメモリ管理回路
EP11856476.4A EP2667309A1 (en) 2011-01-17 2011-01-17 Memory management method, memory management device and memory management circuit
JP2012553486A JP5510562B2 (ja) 2011-01-17 2011-01-17 メモリ管理方法、メモリ管理装置およびメモリ管理回路
US13/941,593 US20130305007A1 (en) 2011-01-17 2013-07-15 Memory management method, memory management device, memory management circuit

Applications Claiming Priority (1)

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

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/941,593 Continuation US20130305007A1 (en) 2011-01-17 2013-07-15 Memory management method, memory management device, memory management circuit

Publications (1)

Publication Number Publication Date
WO2012098633A1 true WO2012098633A1 (ja) 2012-07-26

Family

ID=46515286

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/050666 WO2012098633A1 (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
US9336036B2 (en) * 2011-03-31 2016-05-10 Intel Corporation System method for memory virtualization control logic for translating virtual memory in space of guest memory based on translated codes in response to memory failure

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
JP5510562B2 (ja) 2014-06-04
US20130305007A1 (en) 2013-11-14
JPWO2012098633A1 (ja) 2014-06-09
EP2667309A1 (en) 2013-11-27

Similar Documents

Publication Publication Date Title
US9747221B2 (en) Dynamic pinning of virtual pages shared between different type processors of a heterogeneous computing platform
US10007609B2 (en) Method, apparatus and computer programs providing cluster-wide page management
US20190250837A1 (en) Paging of external memory
US10789019B2 (en) Storage device capable of managing jobs without intervention of a processor
KR102152238B1 (ko) 단편화를 해결하는 메모리 세그먼트 재매핑
US8171236B2 (en) Managing migration of a shared memory logical partition from a source system to a target system
TWI470426B (zh) Memory management device and memory management method
US9811465B2 (en) Computer system and cache control method
EP2664990A1 (en) Method and device for implementing memory migration
EP2581828B1 (en) Method for creating virtual machine, virtual machine monitor and virtual machine system
EP3108367A1 (en) Kernel masking of dram defects
US20140164827A1 (en) Method and device for managing hardware errors in a multi-core environment
JP5786955B2 (ja) メモリ縮退方法及び情報処理装置
US9645903B2 (en) Managing failed memory modules
JP6130971B2 (ja) データをフラッシュメモリ装置に書き込む方法、フラッシュメモリ装置及び記憶システム
US20160062805A1 (en) Management of memory pages
US8103849B2 (en) Reducing memory usage of kernel memory management structures
WO2023098192A1 (zh) 固态硬盘异常掉电处理方法、装置、电子设备及介质
JP5510562B2 (ja) メモリ管理方法、メモリ管理装置およびメモリ管理回路
US20230008874A1 (en) External memory as an extension to virtualization instance memory
JP2010122805A (ja) 仮想サーバシステム並びに物理cpu及び物理メモリの割り当て方法
CN110119245B (zh) 用于操作nand闪存物理空间以扩展存储器容量的方法和系统
US20090031100A1 (en) Memory reallocation in a computing environment
CN113961302A (zh) 资源分配方法、装置、电子设备及存储介质
CN107515723B (zh) 用于管理存储系统中的存储器的方法和系统

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11856476

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2012553486

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2011856476

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE