WO2010109537A1 - 情報処理装置、メモリ制御方法、及びメモリ制御装置 - Google Patents

情報処理装置、メモリ制御方法、及びメモリ制御装置 Download PDF

Info

Publication number
WO2010109537A1
WO2010109537A1 PCT/JP2009/001381 JP2009001381W WO2010109537A1 WO 2010109537 A1 WO2010109537 A1 WO 2010109537A1 JP 2009001381 W JP2009001381 W JP 2009001381W WO 2010109537 A1 WO2010109537 A1 WO 2010109537A1
Authority
WO
WIPO (PCT)
Prior art keywords
memory
data
group
storage area
storage
Prior art date
Application number
PCT/JP2009/001381
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/JP2009/001381 priority Critical patent/WO2010109537A1/ja
Priority to JP2011505668A priority patent/JP5590028B2/ja
Publication of WO2010109537A1 publication Critical patent/WO2010109537A1/ja
Priority to US13/240,255 priority patent/US8762673B2/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
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2087Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring with a common controller

Definitions

  • the present invention relates to an information processing device, a memory control method, and a memory control device.
  • a server as an information processing apparatus may have a redundant memory. As a result, even if an error occurs in any of the redundant memories, the server can continue to execute processing using another normally operating memory.
  • Some servers perform memory access using an interleave function in order to speed up memory access. That is, when data is written to the memory, data at consecutive addresses is divided and arranged in an interleave block for each way, which is a divided area of the memory. When reading the written data, the memory access speed is increased by reading the data of consecutive addresses arranged in the interleave block for each way in parallel.
  • the interleaving when the memory is divided into two interleave blocks is referred to as 2-way interleaving
  • the interleaving when the memory is divided into four interleaving blocks is referred to as 4-way interleaving.
  • the server stores data on the memory based on the 2-Way interleave setting and then changes the 2-Way interleave to the 4-Way interleave setting, for example, the write address and the read address Does not match. Therefore, inconsistency occurs between the data written in the memory and the data read from the memory. Therefore, for example, when it becomes necessary to change the interleave setting of the server by adding a memory, the interleave setting is changed after the server is restarted after the server operation is stopped.
  • the server according to the present invention realizes a redundant configuration of memory and data management when the memory is added.
  • an information processing apparatus having a redundant memory has a plurality of storage areas, a first memory having a variable storage capacity, and a plurality of storage areas.
  • the storage capacity is variable
  • the second memory is made redundant with the first memory
  • the data stored in each storage area of the first memory is stored in association with each storage area of the second memory
  • the data stored in the second memory is respectively changed to the storage areas after the change corresponding to the change of the storage capacity of the first memory.
  • the first memory having a plurality of storage areas and having a variable storage capacity and the second memory are made redundant.
  • the storage of the first memory and the second memory When there is a change in capacity, the data stored in the second memory is written to a new storage area corresponding to the change of the storage area of the first memory, and written to the new storage area of the first memory.
  • the written data is respectively written into new storage areas corresponding to the change in the storage capacity of the second memory.
  • the first memory group that stores data divided into a plurality of first memories and the data divided into a plurality of second memories are redundant.
  • the data is read and written by being connected to the first memory group, and a third memory is added to or deleted from the first memory group.
  • the third memory reads out the stored data divided into the first memory group after addition or deletion.
  • the first memory control circuit is connected to the second memory group to read and write data, and a third memory is added to or deleted from the first memory group, and a fourth memory is added to the second memory group.
  • Memory is added or removed
  • the data read from the first memory group after the addition or deletion by the first memory control circuit is transferred to the second memory group after the fourth memory is added or deleted. It has the 2nd memory control circuit which memorizes and memorizes.
  • the first memory group that stores data divided into a plurality of first memories and the data divided into a plurality of second memories are redundant.
  • a first memory control circuit connected to the first memory group for reading and writing data, and connected to the second memory group for reading and writing data.
  • the step of deleting the step of reading out the data stored in the first memory control circuit by dividing the third memory into the first memory group after addition or deletion
  • the second memory Memory control A path divides the data read from the first memory group after the addition or deletion by the first memory control circuit into a second memory group after the fourth memory is added or deleted. And storing the data.
  • the server 100 according to the present embodiment can optimally change the interleave setting associated with the memory addition without restarting.
  • the server 100 according to the present embodiment is a server that has memory groups A112 and 113 made redundant to each other and performs data access by interleaving each of the memory groups A112 and 113.
  • the operation of the server according to the present embodiment will be described with reference to FIG.
  • FIG. 1 is a hardware block diagram of the server 100 according to the present embodiment.
  • the server 100 includes a CPU (Central Processing Unit) 101, an I / O (Input / Output) device 102, a memory controller 103, memories 104, 105, 106, and 107, a register 108, a duplexing control circuit 109, and access control circuits 110 and 111.
  • ROM Read Only Memory
  • the memory 104 and the memory 105 form a memory group A112, and the memory 106 and the memory 107 form a memory group B113.
  • the access control circuit 110 and the memory group A 112 form a storage circuit group A (Side A) 114
  • the access control circuit 111 and the memory group B 113 form a storage circuit group B (Side B) 115.
  • the memory circuit group A114 and the B surface 115 have a mirroring structure. That is, the server 103 has a redundant memory group A 112 and memory group B 113.
  • the server 100 is duplicated between the memory group A 112 and the memory group B 113 in order to achieve high reliability, and when the memory is newly added to or reduced from one memory group.
  • the other memory group is added or reduced symmetrically so as to keep the duplication.
  • the server 100 stores continuous address data in the memory group A112 by write control using interleaving. Similarly, the server 100 stores the data of the same continuous address redundantly in the memory group B 113 by the write control using interleaving. More specifically, the access control circuit 110 performs data access by writing data at successive addresses in the memory 104 and the memory 105 using interleave control or reading data using interleave control.
  • interleaving means that the memory controller 103 divides data having consecutive addresses into ways that are fixed division units (for example, memory banks), and writes the divided data to or reads from the way. That is. In other words, consecutive memory addresses are assigned to the memory 104 and the memory 105.
  • the memory controller 103 performs data access to consecutive addresses that cross the boundary between the memory 104 and the memory 105.
  • the access control circuit 111 performs data access by writing data at consecutive addresses in the memory 106 and the memory 107 using interleave control or reading data using interleave control. That is, continuous memory addresses are assigned to the memory 106 and the memory 107, and the memory controller 103 performs data access to continuous addresses that cross the boundary between the memory 106 and the memory 107.
  • the memory group A 112 and the memory group B are duplexed by mirroring, and the server 100 stores the same data in the memory circuit group A and the memory 106 in the memory circuit group B, respectively. The same data is stored in each of the memory 105 and the memory 107 of the storage circuit group B.
  • the operation and function of each unit included in the server 100 will be described, and the interleaving resetting procedure executed by the server 100 will be described.
  • a CPU 101 as an arithmetic processing device performs arithmetic processing in the server 100.
  • the operations executed by the server 100 include reading from the memory, writing to the memory, and the like in response to a command held by the program executed by the CPU 101, a request from a client device connected to the server 100, and the like.
  • the server 100 exchanges data with an external apparatus such as a client apparatus via an I / O device 102 such as a network controller.
  • the CPU 101 accesses the memory via the memory controller 103, and the memory controller 103 reads data from the memories 104 to 107 and writes data to the memories 104 to 107.
  • the CPU 101 controls the memory controller 103 to stop data processing using the memories 104 to 107 when changing the interleave setting. Specifically, the CPU 101 sets the server 100 to a sleep mode and stops a transaction such as a memory access by the OS (Operating System) 201 shown in FIG.
  • the driver 202 shown in FIG. 2 is software having a function of stopping the transaction of the OS 201, and the driver 202 stops the transaction of the OS 201.
  • the transaction is a process in which several sessions executed by the server 100 are grouped.
  • a session is a unit of a query in the database management system issued when the server 100 updates a database or the like in response to a request from the client device and a response to the query.
  • the driver 202 is incorporated in the OS 201.
  • the CPU 101 changes the memory interleave setting from, for example, 2-Way to 3-Way, the CPU 101 resumes data processing using the memories 104 to 107 and the newly added memory.
  • the memory controller 103 includes a register 108, a duplex control circuit 109, access control circuits 110 and 111, and a ROM 116.
  • the memory controller 103 has a function of 1) prohibiting access in the reading direction from the redundant storage circuit group A 114 and storage circuit group B 115.
  • the memory controller 103 also has a function of 2) stopping the function of checking whether the data read from the duplicated memory group A 114 and the memory group 115 are the same. Further, the memory controller 103 has a function of controlling 3) interleave setting of the redundant storage circuit group A114 and storage circuit group B115.
  • the memory controller 103 has the function of 4) resuming the function of checking whether the data read from the duplicated memory group A 114 and the memory group 115 are the same from the stopped state of 2) above.
  • the firmware 203 shown in FIG. 2 is stored in the ROM 116 built in the server 100 shown in FIG.
  • the firmware 203 is software incorporated in the server 100 in order to perform basic control such as activation processing and termination processing of the hardware 204.
  • the firmware 203 executes interleave setting of the memory controller 103, data copy processing (data write processing to the memories 104 to 107) performed when the interleave is reset, processing for notifying the driver 202 that the copy processing is completed, and the like. To do.
  • the firmware 203 is software that operates on the memory controller 103. That is, the processing of the firmware 203 is realized by the memory controller 103 executing it.
  • the register 108 stores setting information for the memory controller 103 to execute processing. This is setting information used by the firmware 203 executed by the memory controller 103, and the duplex control circuit 109 and the access control circuits 110 and 111 execute processing based on the setting information.
  • the duplex control circuit 109 performs a matching check on read data from the duplex memory 104 and the memory 106. In addition, the duplex control circuit 109 performs a coincidence check of read data from the duplex memory 105 and the memory 107. Further, the duplex control circuit 109 performs control to keep the memory circuit group A 114 and the memory circuit group B 115 redundant.
  • the duplex control executed by the duplex control circuit 109 is control for making the data stored in the memory group A 112 and the memory group B 113 the same, and when the data is written to the memory group A 112 using the interleave control, the memory group This is control for writing the same data into B113 using interleave control.
  • the access control circuit 110 in the storage control circuit group A 114 controls access to the data in the memories 104 and 105
  • the access control circuit 111 in the storage control circuit group B 115 controls access to the data in the memories 106 and 107.
  • the access control circuit 110 stores setting information related to interleave settings and read / write settings for the memories 104 and 105.
  • the access control circuit 111 stores setting information related to interleave settings and read / write settings for the memories 106 and 107. Setting information related to interleave setting and read / write setting may be stored in the register 108. Then, the access control circuit 110 reads setting information related to interleave setting and reading / writing setting to the memories 104 and 105 from the register 108, and the access control circuit 111 sets setting related to interleaving setting and reading / writing setting to the memories 106 and 107. Information may be read from the register 108.
  • the memory controller 103 When a new memory is added to the memory group A 112 and the memory group B 113 of the server 100, the memory controller 103 according to the present embodiment causes the memory circuit group A 114 and the memory circuit group B 115 to be stored in a state where the CPU 101 stops the transaction of the OS 201. Change the interleave setting alternately. More specifically, when a new memory is added to the memory group A112 and the memory group B113, the memory controller 103 erases data stored in the memory group A112. Then, the memory controller 103 writes the data stored in the memory group B113 to the memory group A112 to which a memory is newly added according to the change in the number of memories, with a new interleave setting.
  • data to be stored in the memory group B113 with the 2-way interleave setting is written, and data is written to the memory group A112 with the new 3-way interleave setting.
  • the memory controller 103 erases the data stored in the memory group B113, and writes the data stored in the memory group A112 to the memory group B113 to which a memory is newly added according to the change in the number of memories, with a new interleave setting.
  • data to be stored in the memory group A112 with the 3-way interleave setting is written, and data is written to the memory group B113 with the new 3-way interleave setting.
  • the memory controller 103 when the memory controller 103 writes the data stored in the memory group A112 to the memory group B113, the memory controller 103 performs the interleave setting in the server 100 by writing using the new interleave setting. Specifically, re-setting of interleaving according to the change in the number of memories reduces the data if the number of memories is increased and the data is divided according to the increased number and stored in the memory using a new interleaving setting. The data is divided according to the number and stored in the memory using a new interleave setting.
  • FIG. 2 is a block diagram illustrating the OS 201, the driver 202, the firmware 203, and the hardware 204 that configures the server 100 operating on the server 100.
  • the hardware 204 includes a CPU 101, a memory controller 103, and memories 104 to 107.
  • FIG. 2 shows a state from when the memories 205 and 206 are added to the server 100 until the interleave setting of the duplicated storage circuit group B115 is completed.
  • FIG. 3 shows a state up to the state where interleaving of the other duplexed A surface 114 is set.
  • memory 205 and 206 are added to the server 100 to change the interleave setting from 2-Way interleave setting to 3-Way interleave setting.
  • the n-Way interleave setting is a setting in which data at consecutive addresses is divided into n and written to n memories / read from n memories.
  • the driver 202 is software that operates on the CPU 101
  • the firmware 203 is software that operates on the memory controller 103. Therefore, the processing procedure of the driver 202 is realized by the CPU 101 executing the driver 202 below.
  • the processing procedure of the firmware 203 is realized by the memory controller 103 executing the firmware 203.
  • memories 205 and 206 are added to the server 100.
  • the firmware 203 and the memory controller 103 recognize the added memories 205 and 206 and perform initialization (step A).
  • the OS 201 recognizes the memories 205 and 206 as the configuration of the hardware 204 by receiving the firmware 203 and the information of the added memories 205 and 206 from the memory controller 103 (step B).
  • the driver 202 stops the operating OS 201 transaction and notifies the firmware 203 that the transaction has been stopped (step C).
  • the driver 202 sets the server 100 to the sleep mode and stops the transaction including the memory access by the OS 201.
  • the firmware 203 stops checking the coincidence of the read data in the memories 104 to 107, 205, and 206 (step D).
  • the firmware 203 prohibits the memory controller 103 from accessing the memory circuit group B115 in the read direction (Step E).
  • the firmware 203 performs an optimal interleave setting for the storage circuit group B115 for which Read access is prohibited (Step F).
  • the optimum interleave setting in this embodiment is a 3-way interleave setting due to the increase in the memory 206. Since the firmware 203 has changed the interleave setting of the memory circuit group B115 from 2-Way interleave setting to 3-Way interleave setting, the CPU 101 seems to have changed the data access address on the memory. Therefore, when viewed from the OS 201, the firmware 203, and the driver 202, the data stored in the address after the interleave setting change stored in the storage circuit group B115 appears as data different from the data before the interleave setting change.
  • the firmware 203 copies the data stored in the storage circuit group A 114 to the storage circuit group B 115 changed to the 3-way interleave setting (step G).
  • the firmware 203 cancels the prohibition of reading of the storage circuit group B115 (step H).
  • the firmware 203 prohibits access in the reading direction of the memory circuit group A 114 on the side where the interleave setting is not changed (step I).
  • the firmware 203 changes the storage circuit group A114 for which read access is prohibited from 2-Way interleave setting to 3-Way interleave setting (step J).
  • Firmware 203 copies the data stored in storage circuit group B115 to storage circuit group A114 (step K).
  • the firmware 203 completes copying the data in the storage circuit group B115 to the storage circuit group A114, the firmware 203 cancels the reading prohibition of the storage circuit group A114. (Step L).
  • the firmware 203 resumes the check of coincidence of the read data of the memories 104 to 107, 205 and 206 which are duplicated with respect to the memory controller 103 (step M).
  • the firmware 203 notifies the driver 202 that the interleave setting change processing has been completed, and the driver 202 requests the OS 201 to resume the transaction including memory access (step N).
  • FIG. 4 is a flowchart relating to the interleave setting of the server 100 according to the present embodiment. The interleave setting change performed by the server 100 will be described in more detail using the flowchart shown in FIG.
  • the firmware 203 and the memory controller 103 recognize the added memories 205 and 206 and perform initialization (step S401). ).
  • the OS 201 recognizes the memories 205 and 206 by receiving the added information of the memories 205 and 206, that is, the information of the storage capacity of the memories 205 and 206 (step S402).
  • the driver 202 stops the transaction including the memory access of the operating OS 201, and notifies the firmware 203 that the transaction has been stopped (step S403).
  • the CPU 101 since the interleave setting of the memory circuit group A 114 and the memory circuit group B 115 is changed from 2-Way interleave setting to 3-Way interleave setting, the CPU 101 stops the transaction of the OS 201 as a hardware operation. In other words, when the CPU 101 stops the transaction of the OS 201, the data stored in the memory circuit group A 114 and the memory circuit group B 115 is determined, and the memory controller 103 sets the interleave setting of the memory circuit group A 114 and the memory circuit group B 115.
  • the CPU 101 stops data processing using the memory circuit group A114 and the memory circuit group B115.
  • the firmware 203 stops the matching check of the read data from the memories 104 to 107, 205, 206 (step S404).
  • the duplex control circuit 109 checks the coincidence of the read data from the memories 104 to 107, 205, and 206.
  • the firmware 203 instructs the duplexing control circuit 109 to stop the matching check of the read data from the memories 104 to 107, 205, and 206.
  • the firmware 203 prohibits reading of the storage circuit group B data.
  • the memory controller 103 can read data from the memory group A112, but cannot read data from the memory group B113, and the read data from the duplicated memory group A112 and memory group B113 are different. Since the duplex control circuit 109 does not detect this state as a hardware failure, the firmware 203 stops checking the read data in the memories 104 to 107, 205, and 206 in the duplex control circuit 109.
  • the firmware 203 prohibits the memory controller 103 from accessing the memory circuit group B115 in the reading direction (Step S405). More specifically, the access control circuit 110 controls access to the data in the memories 104, 105, and 205, and the access control circuit 111 controls access to the data in the memories 106, 107, and 206. Therefore, the firmware 203 prohibits the access control circuit 111 from accessing the data in the memories 106, 107, and 206.
  • the firmware 203 changes the setting of the storage circuit group B115, which is prohibited from accessing in the reading direction, from 2-Way interleaving to 3-Way interleaving (step S406). More specifically, the firmware 203 sets the access control circuit 111 of the storage circuit group B115 from 2-Way interleave to 3-Way interleave.
  • Firmware 203 tries to read data from memories 104-107. Since data reading from the memory circuit group B115 is prohibited, the firmware 203 reads data only from the memories 104 and 105 of the memory circuit group A114 as a result (step S407).
  • the data read from the memories 104 and 105 by the firmware 203 is data when the transaction of the OS 201 is stopped.
  • the firmware 203 writes the data read from the memories 104 and 105 of the storage circuit group A 114 to the memories 106, 107 and 206 of the storage circuit group B 115 (step S408).
  • the firmware 203 has set the storage circuit group B115 to 3-Way interleave, and thus writes to the memories 106, 107, and 206 by 3-Way interleave.
  • the data write setting of the access control circuits 110 and 111 is “writable”. Therefore, the firmware 203 performs a process of writing data stored in the storage circuit group A114 on both sides of the storage circuit group A114 and the storage circuit group B115.
  • the server 100 may cause the firmware 203 to write the data of the storage circuit group A 114 only to the storage circuit group B 115.
  • the firmware 203 determines whether or not the data in the storage circuit group A114 has been copied to the storage circuit group B115 (step S409).
  • the firmware 203 determines that the data of the memory circuit group A 114 has not been written to the memory circuit group B 115 (NO in step S409)
  • the firmware 203 reads the data from the memories 104 and 105 of the memory circuit group A 114 again. Then, data is written to the memories 106, 107, and 206 of the memory circuit group B115 by 3-way interleaving (steps S407 and S408).
  • the firmware 203 determines that the data in the storage circuit group A 114 has been copied to the storage circuit group B 115 (YES in step S409), the firmware 203 cancels the reading prohibition of the storage circuit group B 115 (step S410).
  • the firmware 203 and the hardware 204 may determine whether or not the copy has been completed normally when the data copy is completed.
  • the firmware 203 prohibits access in the reading direction of the memory circuit group A114 on the side where the interleave setting has not been changed (step S411). More specifically, the firmware 203 prohibits the access control circuit 110 from accessing data in the memories 104, 105, and 205.
  • the firmware 203 changes the storage circuit group A114 for which read access is prohibited from 2-Way interleave setting to 3-Way interleave setting (step S412).
  • the firmware 203 reads data from the memories 106, 107, and 206 of the storage circuit group B115 (step S413).
  • the firmware 203 tries to read data from the memories 104 to 107, 205, and 206. Since data reading from the memory circuit group A 114 is prohibited, the firmware 203 reads data only from the memories 106, 107, and 206 of the memory circuit group B 115 as a result.
  • the firmware 203 writes the data read from the memories 106, 107, and 206 of the storage circuit group B115 to the memories 104, 105, and 205 of the storage circuit group A114 (step S414).
  • the firmware 203 sets the storage circuit group A114 to 3-Way interleave, and therefore writes to the memories 104, 105, and 205 by 3-Way interleave.
  • Firmware 203 determines whether or not the data in storage circuit group B115 has been copied to storage circuit group A114 (step S415). When the firmware 203 determines that the data in the storage circuit group B115 has not been written to the storage circuit group A114 (NO in step S415), the firmware 203 again receives data from the memories 106, 107, and 206 in the storage circuit group B115. Is written to the memories 104, 105, and 205 of the memory circuit group A 114 by 3-way interleaving (steps S413 and S414).
  • the firmware 203 determines that the data in the memory circuit group A 114 has been copied to the memory circuit group B 115 (YES in step S415), the firmware 203 cancels the reading prohibition of the memory circuit group A 114 (step S416).
  • the firmware 203 and the hardware 204 may determine whether or not the data writing is normally completed when the data writing is completed.
  • the firmware 203 resets the interleaving of the memory group A 112 (memory 104, 105, 205) and the memory group B 113 (memory 106, 107, 206), and then the data stored in the memory group A 112 and the memory group B 113 match. It may be determined.
  • the firmware 203 resumes the matching check of the data read from the memories 104 to 107, 205, and 206. (Step S417).
  • the firmware 203 notifies the driver 202 that the interleave setting change processing has been completed, and the driver 202 requests the OS 201 to resume the transaction (step S418).
  • the CPU 101 resumes a transaction including memory access in response to a transaction resumption request to the OS 201 from the driver 202. That is, the server 100 returns from the sleep mode and resumes data processing using the memories 104 to 107, 205, and 206.
  • the interleave setting can be optimally changed without requiring restart by alternately changing the interleave setting of the redundant memory.
  • the server 100 solves the problem of inconsistency between the write data and the read data that occurs when the interleave setting is performed without restarting using the memory duplication function and the control of the hardware, firmware, and driver. is doing. As a result, even when the memory is added, the server 100 can reset the interleaving in a short time, and can improve the memory access bandwidth.
  • the server according to this embodiment resets interleaving without restarting. Therefore, the server according to the present embodiment is extremely useful in providing a server that expands the 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)

Abstract

  【課題】 本発明に係るサーバは、メモリを冗長構成し、メモリ追加時のデータ管理を行うことを実現する。 【解決手段】 本実施例に係るサーバの一側面によれば、冗長化したメモリを有する情報処理装置において、複数の記憶領域を有し、記憶容量を可変可能な第1メモリと第2メモリと、前記第1メモリの各記憶領域に格納されたデータを前記第2メモリの各記憶領域にそれぞれ対応付けて記憶し、前記第1メモリと前記第2メモリの記憶容量に変更があった場合、前記第2メモリに記憶されたデータを、前記第1メモリの記憶容量の変更に対応した変更した後の記憶領域にそれぞれ書き込み、前記第1メモリの変更した後の記憶領域に書き込まれたデータを、前記第2メモリの記憶容量の変更に対応した変更した後の記憶領域にそれぞれ書き込むように制御するメモリコントローラを有することを特徴とする。

Description

情報処理装置、メモリ制御方法、及びメモリ制御装置
 本発明は、情報処理装置、メモリ制御方法、及びメモリ制御装置に関する。
 情報処理装置としてのサーバには、冗長化されたメモリを有する場合がある。これにより冗長化されたメモリのいずれかにエラーが発生しても、正常動作している他のメモリを用いて、サーバは継続して処理を実行することができる。またサーバはメモリアクセスをより高速化するため、インタリーブ機能を用いてメモリアクセスを行うものがある。すなわち、メモリへのデータの書き込み時に、連続するアドレスのデータを分割して、メモリの分割された領域であるウェイ毎のインタリーブブロックに配置する。そして、書き込みを行ったデータを読み込む場合には、ウェイ毎のインタリーブブロックに配置された連続するアドレスのデータを並列に読み込むことにより、メモリアクセスの高速化を図る。ここで、メモリが2つのインタリーブブロックに分割される場合のインタリーブを、2-Way・インタリーブといい、メモリが4つのインタリーブブロックに分割される場合のインタリーブを4-Way・インタリーブという。
 しかしながら、例えばサーバが2-Way・インタリーブの設定に基づいてメモリ上にデータを格納した後に当該2-Way・インタリーブを例えば4-Way・インタリーブの設定に変更した場合には、書き込みアドレスと読み出しアドレスが一致しない。そのため、メモリに書き込んだデータとメモリからデータを読みだしたデータに不整合が発生することになる。そのため、例えば、メモリを追加することにより、サーバのインタリーブ設定を変更する必要が生じた場合には、サーバの動作を停止後、サーバの再起動処理後にインタリーブ設定の変更を行っていた。
(発明が解決しようとする課題)
 本発明に係るサーバは、メモリを冗長構成し、メモリ追加時のデータ管理を行うことを実現する。
 (課題を解決するための手段)
 本実施例に係るサーバの一側面によれば、冗長化したメモリを有する情報処理装置において、複数の記憶領域を有し、記憶容量を可変可能な第1メモリと、複数の記憶領域を有し、記憶容量を可変可能で前記第1メモリと冗長化した第2メモリと、前記第1メモリの各記憶領域に格納されたデータを前記第2メモリの各記憶領域にそれぞれ対応付けて記憶し、前記第1メモリと前記第2メモリの記憶容量に変更があった場合、前記第2メモリに記憶されたデータを、前記第1メモリの記憶容量の変更に対応した変更した後の記憶領域にそれぞれ書き込み、前記第1メモリの変更した後の記憶領域に書き込まれたデータを、前記第2メモリの記憶容量の変更に対応した変更した後の記憶領域にそれぞれ書き込むように制御するメモリコントローラを有することを特徴とする。
 また本実施例に係るメモリ制御方法の一側面によれば、複数の記憶領域を有し、記憶容量を可変可能な第1メモリと第2メモリを冗長化して有し、前記第1メモリの各記憶領域に格納されたデータを前記第2メモリの各記憶領域にそれぞれ対応付けて記憶する情報処理装置におけるデータの記憶領域を変更するメモリ制御方法において、前記第1メモリと前記第2メモリの記憶容量に変更があった場合、前記第2メモリに記憶されたデータを、前記第1メモリの記憶領域の変更に対応した新たな記憶領域にそれぞれ書き込み、前記第1メモリの新たな記憶領域に書き込まれたデータを、前記第2メモリの記憶容量の変更に対応した新たな記憶領域にそれぞれ書き込むことを特徴とする。
 また本実施例に係るメモリ制御装置の一側面によれば、データを第1の複数のメモリに分割して記憶する第1のメモリ群と前記データを第2の複数のメモリに分割して冗長に記憶する第2のメモリ群に接続されるメモリ制御装置において、前記第1のメモリ群に接続されてデータの読み書きを行うとともに、前記第1のメモリ群に第3のメモリが追加又は削除され、前記第2のメモリ群に第4のメモリが追加又は削除される場合には、前記第3のメモリが追加又は削除後の第1のメモリ群に分割して記憶された前記データを読み出す第1のメモリ制御回路と、前記第2のメモリ群に接続されてデータの読み書きを行うとともに、前記第1のメモリ群に第3のメモリが追加又は削除され、前記第2のメモリ群に第4のメモリが追加又は削除される場合には、前記第1のメモリ制御回路が前記追加又は削除後の第1のメモリ群から読み出した前記データを、前記第4のメモリが追加又は削除された後の第2のメモリ群に分割して記憶する第2のメモリ制御回路を有することを特徴とする。
 また本実施例に係るメモリ制御方法の一側面によれば、データを第1の複数のメモリに分割して記憶する第1のメモリ群と前記データを第2の複数のメモリに分割して冗長に記憶する第2のメモリ群に接続されるとともに、前記第1のメモリ群に接続されてデータの読み書きを行う第1のメモリ制御回路と前記第2のメモリ群に接続されてデータの読み書きを行う第2のメモリ制御回路を有するメモリ制御装置の制御方法において、前記第1のメモリ群に第3のメモリが追加又は削除されるステップと、前記第2のメモリ群に第4のメモリが追加又は削除されるステップと、前記第1のメモリ制御回路が、前記第3のメモリが追加又は削除後の第1のメモリ群に分割して記憶された前記データを読み出すステップと、前記第2のメモリ制御回路が、前記第1のメモリ制御回路が前記追加又は削除後の第1のメモリ群から読み出した前記データを、前記第4のメモリが追加又は削除された後の第2のメモリ群に分割して記憶するステップを有することを特徴とする。
 (発明の効果)
 本発明に係る情報処理装置によれば、冗長構成されたメモリを有する場合において、再起動を必要とせずにインタリーブ設定の変更を行うことができる。
本実施例に係るサーバ100のハードブロック図である。 本実施例に係るサーバ100のインタリーブ設定の変更を示す模式図である。 本実施例に係るサーバ100のインタリーブ設定の変更を示す模式図である。 本実施例に係るサーバ100のインタリーブ設定に係るフローチャートである。
符号の説明
100…サーバ
101…CPU
102…I/Oデバイス
103…メモリコントローラ
104…メモリ
105…メモリ
106…メモリ
107…メモリ
108…レジスタ
109…二重化制御回路
110…アクセス制御回路
111…アクセス制御回路
112…メモリ群A
113…メモリ群B
114…記憶回路群A(Side A)
115…記憶回路群B(Side B)
116…ROM
201…OS
202…ドライバ
203…ファームウェア
204…ハードウェア
[1.本実施例の概要]
 本実施例では、図1に示すサーバ100のインタリーブ設定の変更について説明する。本実施例に係るサーバ100は、再起動せずに、メモリ追加に伴うインタリーブ設定を最適に変更可能とするものである。本実施例におけるサーバ100は、互いに冗長化したメモリ群A112、113を有し、それぞれのメモリ群A112、113毎にインタリーブしてデータアクセスするサーバである。以下、図1を用いて本実施例に係るサーバの動作について説明する。
[2.サーバ100]
 図1は本実施例に係るサーバ100のハードブロック図である。サーバ100は、CPU(Central Processing Unit)101、I/O(Input/Output)デバイス102、メモリコントローラ103、メモリ104、105、106、107、レジスタ108、二重化制御回路109、アクセス制御回路110、111、及びROM(Read Only Memory)116から構成されている。メモリ104とメモリ105はメモリ群A112を形成し、またメモリ106とメモリ107はメモリ群B113を形成する。さらにアクセス制御回路110とメモリ群A112は記憶回路群A(Side A)114を形成し、アクセス制御回路111とメモリ群B113は記憶回路群B(Side B)115を形成する。そして記憶回路群A114とB面115はミラーリング構造をとっている。つまりサーバ103は冗長化したメモリ群A112、メモリ群B113を有している。
 ここで、サーバ100は、高信頼化を実現するためにメモリ群A112とメモリ群B113の間で二重化しており、メモリが一方のメモリ群に新たに追加される場合または削減される場合には、二重化を保つよう他方のメモリ群に対しても対称に追加または削減される。
 そしてサーバ100は、インタリーブを用いた書き込み制御により、連続するアドレスのデータをメモリ群A112に記憶する。同様に、サーバ100は、インタリーブを用いた書き込み制御により、同一の連続するアドレスのデータをメモリ群B113にも冗長して記憶する。より具体的にはアクセス制御回路110はメモリ104とメモリ105に連続するアドレスのデータをインタリーブ制御を用いて書き込み、またはインタリーブ制御を用いて読み出すことにより、データアクセスを行う。ここで、インタリーブとは、メモリコントローラ103が連続するアドレスを有するデータを一定の分割単位(例えば、メモリバンク)であるウェイごとに分割し、分割したデータを当該ウェイへ書き込み、または当該ウェイから読み込むことである。換言するとメモリ104とメモリ105には連続したメモリアドレスが割り当てられている。そしてメモリコントローラ103がメモリ104とメモリ105の境界をまたいだ連続アドレスへデータアクセスする。同様にしてアクセス制御回路111は、メモリ106とメモリ107に連続するアドレスのデータをインタリーブ制御を用いて書き込み、またはインタリーブ制御を用いて読み出すことにより、データアクセスを行う。すなわちメモリ106とメモリ107には連続したメモリアドレスが割り当てられており、メモリコントローラ103はメモリ106とメモリ107の境界をまたいだ連続アドレスへデータアクセスする。本実施例では、メモリ群A112とメモリ群Bはミラーリングにより二重化されており、サーバ100は記憶回路群Aのメモリ104と記憶回路群Bのメモリ106それぞれには同一のデータ、記憶回路群Aのメモリ105と記憶回路群Bのメモリ107それぞれにも同一のデータが記憶する。以下、サーバ100が有する各ユニットの動作、機能について説明し、サーバ100が実行するインタリーブの再設定手順を説明する。
[2.1.CPU101]
 演算処理装置としてのCPU101は、サーバ100における演算処理を行う。サーバ100が実行する動作は、CPU101が実行するプログラムが有する命令やサーバ100に接続されるクライアント装置からの要求などに応じたデータのメモリからの読み出し、メモリへの書き込みなどである。本実施例に係るサーバ100はネットワークコントローラ等のI/Oデバイス102を介してクライアント装置などの外部装置とデータのやりとりを行う。そしてCPU101はメモリコントローラ103を介してメモリに対するアクセスを行い、メモリコントローラ103はメモリ104~107からデータを読み出し、またメモリ104~107へデータを書きこむ。
 そしてCPU101は、インタリーブ設定を変更するに際して、メモリ104~107を用いたデータ処理を停止するようにメモリコントローラ103を制御する。具体的にはCPU101は、サーバ100をスリープモードに設定して、図2に示すOS(Operating System)201によるメモリアクセス等のトランザクションを停止する。サーバ100上で実行されるソフトウェアの側面から見ると、図2に示すドライバ202がOS201のトランザクションを停止する機能を有するソフトウェアであり、ドライバ202がOS201のトランザクションを停止する。ここでトランザクションとは、サーバ100が実行するいくつかのセッションをひとまとまりにした処理のことである。またセッションは、サーバ100において上記のクライアント装置からの要求によりデータベースなどを更新する際に発行されるデータベース管理システムにおける問い合わせ及び問い合わせに対する応答の単位である。またドライバ202はOS201に組み込まれている。
 CPU101はメモリのインタリーブ設定を、例えば2-Wayから3-Wayに変更した場合、再びメモリ104~107、及び新たに追加したメモリを用いたデータ処理を再開する。
[2.2.メモリコントローラ103]
 メモリコントローラ103は、レジスタ108、二重化制御回路109、及びアクセス制御回路110、111、ROM116を有している。
 メモリコントローラ103は、1)二重化されている記憶回路群A114、記憶回路群B115からの読み出し方向のアクセスを禁止する機能を有する。またメモリコントローラ103は、2)二重化しているメモリ群A114、メモリ群115から読み出したデータが同一であるかのチェックを行う機能を停止する機能を有する。さらに、メモリコントローラ103は、3)二重化している記憶回路群A114、記憶回路群B115のインタリーブ設定を制御する機能を有する。そして、メモリコントローラ103は、4)二重化しているメモリ群A114、メモリ群115から読み出したデータが同一であるかのチェックを行う機能を上記2)の停止状態から再開する機能を有する。
 また図2に示すファームウェア203は、図1に示すサーバ100に内蔵されたROM116に記憶される。ファームウェア203はハードウェア204の起動処理や終了処理等の基本的な制御を行なうためにサーバ100に組み込まれたソフトウェアである。ファームウェア203は、メモリコントローラ103のインタリーブ設定、インタリーブの再設定に際して行うデータのコピー処理(データをメモリ104~107への書き込み処理)、コピー処理が終了したことをドライバ202に通知する処理などを実行する。ファームウェア203はメモリコントローラ103上で動作するソフトウェアである。すなわち、ファームウェア203の処理は、メモリコントローラ103が実行することにより実現される。
 レジスタ108には、メモリコントローラ103が処理を実行するための設定情報が記憶されている。メモリコントローラ103で実行されるファームウェア203が用いる設定情報であって、当該設定情報に基づき、二重化制御回路109、アクセス制御回路110、111が処理を実行する。二重化制御回路109は、二重化されたメモリ104とメモリ106からの読み出しデータの一致チェックを行う。又、二重化制御回路109は、二重化されたメモリ105とメモリ107からの読み出しデータの一致チェックを行う。さらに、二重化制御回路109は、記憶回路群A114、記憶回路群B115の二重化を保つ制御を行う。具体的に二重化制御回路109が実行する二重化制御とは、メモリ群A112とメモリ群B113に記憶するデータを同一にする制御であり、メモリ群A112にデータをインタリーブ制御を用いて書き込んだら、メモリ群B113にも同一のデータをインタリーブ制御を用いて書き込む制御である。記憶制御回路群A114のアクセス制御回路110がメモリ104、105のデータへのアクセスを制御し、記憶制御回路群B115のアクセス制御回路111がメモリ106、107のデータへのアクセスを制御する。具体的にはアクセス制御回路110にはメモリ104、105へのインタリーブ設定、読み出し/書き込み設定に係る設定情報が格納されている。アクセス制御回路111にはメモリ106、107へのインタリーブ設定、読み出し/書き込み設定に係る設定情報が格納されている。インタリーブ設定、読み出し/書き込み設定に係る設定情報は、レジスタ108に格納されていてもよい。そしてアクセス制御回路110がメモリ104、105へのインタリーブ設定、読み出し/書き込み設定に係る設定情報をレジスタ108から読み出し、アクセス制御回路111がメモリ106、107へのインタリーブ設定、読み出し/書き込み設定に係る設定情報をレジスタ108から読み出すものであってもよい。
 サーバ100のメモリ群A112、メモリ群B113に新たにメモリを追加する場合、本実施例に係るメモリコントローラ103は、CPU101がOS201のトランザクションを停止した状態で、記憶回路群A114及び記憶回路群B115を交互にインタリーブ設定を変更する。より具体的にはメモリ群A112、メモリ群B113に新たにメモリを追加する場合、メモリコントローラ103はメモリ群A112に記憶するデータを消去する。そして、メモリコントローラ103は、メモリ数の変更に応じてメモリを新たに追加したメモリ群A112へメモリ群B113に記憶しているデータを新たなインタリーブ設定で書きこむ。例えば、メモリ群B113に2-Wayのインタリーブ設定で記憶するデータを、メモリ群A112に3-Wayの新たなインタリーブ設定でデータを書き込む。そしてさらにメモリコントローラ103はメモリ群B113に記憶するデータを消去し、メモリ数の変更に応じてメモリを新たに追加したメモリ群B113へメモリ群A112に記憶しているデータを新たなインタリーブ設定で書き込む。例えば、メモリ群A112に3-Wayのインタリーブ設定で記憶するデータを、メモリ群B113に3-Wayの新たなインタリーブ設定でデータを書き込む。このようにして、メモリコントローラ103は、メモリ群A112が格納するデータをメモリ群B113に書き込む際に、新たなインタリーブ設定を用いて書き込むことにより、サーバ100におけるインタリーブの再設定を行う。具体的にメモリ数の変更に応じたインタリーブの再設定は、メモリ数を増加したら増加した数に合わせてデータを分割して新たなインタリーブ設定を用いてメモリに記憶し、メモリ数を削減したら削減した数に合わせてデータを分割して新たなインタリーブ設定を用いてメモリに記憶することである。
[3.インタリーブ設定の変更手順]
 図2、図3は本実施例に係るサーバ100のインタリーブ設定の変更を示す模式図である。図2は、サーバ100上で動作するOS201、ドライバ202、ファームウェア203、及びサーバ100を構成するハードウェア204を示したブロック図である。ハードウェア204はCPU101、メモリコントローラ103、メモリ104~107を含むものである。
 図2では、サーバ100にメモリ205、206を追加してから二重化した記憶回路群B115のインタリーブ設定を完了した状態までを示している。また図3では、二重化したもう一方のA面114のインタリーブを設定した状態までを示している。本実施例では、サーバ100にメモリ205、206を追加することによって、インタリーブ設定を2-Wayインタリーブ設定から3-Wayインタリーブ設定に変更する場合を説明する。n-Wayインタリーブ設定とは、連続するアドレスのデータをn分割して、n個のメモリに書き込み/n個のメモリから読み出す設定のことである。また上記に示したようにドライバ202はCPU101で動作するソフトウェアであり、またファームウェア203はメモリコントローラ103上で動作するソフトウェアである。そのため以下ドライバ202の処理手順は、CPU101がドライバ202を実行することにより実現される。またファームウェア203の処理手順は、メモリコントローラ103がファームウェア203を実行することにより実現される。
 まずサーバ100にメモリ205、206を追加する。メモリ205は記憶回路群A114に追加され、メモリ206は記憶回路群B115に追加されると、ファームウェア203、及びメモリコントローラ103は追加されたメモリ205、206を認識し、初期化を行う(ステップA)。OS201はファームウェア203、及びメモリコントローラ103から追加されたメモリ205、206の情報を受け取ることにより、メモリ205、206をハードウェア204の構成として認識する(ステップB)。
 記憶回路群A114及び記憶回路群B115のインタリーブ設定を変更するため、ドライバ202は稼動しているOS201のトランザクションを停止し、トランザクションを停止した旨をファームウェア203に通知する(ステップC)。ドライバ202は、サーバ100をスリープモードに設定してOS201によるメモリアクセスを含むトランザクションを停止する。
 ファームウェア203はメモリ104~107、205、206の読み出しデータの一致チェックを停止する(ステップD)。ファームウェア203はメモリコントローラ103に対して、記憶回路群B115の読み出し(Read)方向のアクセスを禁止する(ステップE)。ファームウェア203はReadアクセスを禁止した記憶回路群B115を最適なインタリーブ設定を行う(ステップF)。本実施例でいう最適なインタリーブ設定は、メモリ206の増加したことによる3―Wayインタリーブ設定である。ファーム203が記憶回路群B115のインタリーブ設定が2-Wayインタリーブ設定から3-Wayインタリーブ設定に変更したことによって、CPU101からはメモリ上のデータアクセスするアドレスが変更されたように見える。そのためOS201、ファームウェア203、ドライバ202から見ると記憶回路群B115に記憶しているインタリーブ設定変更後のアドレスに格納されているデータはインタリーブ設定変更前のデータとは異なったデータとして見える。
 ファームウェア203は記憶回路群A114に記憶しているデータを3-Wayインタリーブ設定に変更した記憶回路群B115へコピーする(ステップG)。ファームウェア203は記憶回路群A114のデータを記憶回路群B115へコピー完了したら、記憶回路群B115の読み出し禁止を解除する(ステップH)。
 次にファームウェア203はインタリーブ設定を変更していない側である記憶回路群A114の読み出し方向のアクセスを禁止する(ステップI)。ファームウェア203は読み出しアクセスを禁止した記憶回路群A114を2-Wayインタリーブ設定から3-Wayインタリーブ設定に変更する(ステップJ)。
 ファームウェア203は記憶回路群B115に記憶しているデータを記憶回路群A114へコピーする(ステップK)。ファームウェア203は記憶回路群B115のデータを記憶回路群A114へコピー完了したら、記憶回路群A114の読み出し禁止を解除する。(ステップL)。
 ファームウェア203はメモリコントローラ103に対し二重化されているメモリ104~107、205、206の読み出しデータの一致チェックを再開する(ステップM)。ファームウェア203はインタリーブ設定変更処理が終了したことをドライバ202に通知し、ドライバ202はOS201に対してメモリアクセスを含むトランザクションの再開を要求する(ステップN)。
[4.フローチャート]
 図4は本実施例に係るサーバ100のインタリーブ設定に係るフローチャートである。図4に示すフローチャートを用いて、サーバ100が行うインタリーブ設定変更についてより詳細に説明する。
 サーバ100においてメモリ205は記憶回路群A114にメモリ206は記憶回路群B115に追加されると、ファームウェア203、及びメモリコントローラ103は追加されたメモリ205、206を認識し、初期化を行う(ステップS401)。OS201は追加されたメモリ205、206の情報、つまりメモリ205、206の記憶容量の情報を受け取ることにより、メモリ205、206を認識する(ステップS402)。
 ドライバ202は稼動しているOS201のメモリアクセスを含むトランザクションを停止し、トランザクションを停止した旨をファームウェア203に通知する(ステップS403)。本実施例では記憶回路群A114、記憶回路群B115のインタリーブ設定を2-Wayインタリーブ設定から3-Wayインタリーブ設定に変更するため、ハードの動作としてはCPU101がOS201のトランザクションを停止する。換言すればCPU101がOS201のトランザクションを停止することにより、記憶回路群A114、記憶回路群B115に記憶しているデータを確定して、メモリコントローラ103が記憶回路群A114、記憶回路群B115のインタリーブ設定を2-Wayインタリーブ設定から3-Wayインタリーブ設定に変更する。記憶回路群A114、記憶回路群B115に記憶するデータを確定するために、CPU101が記憶回路群A114、記憶回路群B115を用いたデータ処理を停止する。
 ファームウェア203はメモリ104~107、205、206からの読み出しデータの一致チェックを停止する(ステップS404)。二重化制御回路109がメモリ104~107、205、206からの読み出しデータの一致チェックを行っている。ファームウェア203は二重化制御回路109に指示してメモリ104~107、205、206からの読み出しデータの一致チェックを停止する。
 次のステップS405においてサーバ100のインタリーブ設定変更前に、ファームウェア203は記憶回路群Bデータの読み出しを禁止する。このデータ読み出し禁止状態では、メモリコントローラ103がメモリ群A112からはデータを読み出せるが、メモリ群B113からはデータを読み出せず、二重化されたメモリ群A112及びメモリ群B113からの読み出しデータが異なる。二重化制御回路109がこの状態をハードウェア障害として検知しないために、ファームウェア203は二重化制御回路109におけるメモリ104~107、205、206の読み出しデータのチェックを停止する。
 ファームウェア203はメモリコントローラ103に対して、記憶回路群B115の読み出し(Read)方向のアクセスを禁止する(ステップS405)。より具体的にはアクセス制御回路110がメモリ104、105、205のデータへのアクセスを制御し、アクセス制御回路111がメモリ106、107、206のデータへのアクセスを制御する。そのためファームウェア203はアクセス制御回路111におけるメモリ106、107、206のデータへのアクセスを禁止設定とする。ファームウェア203は読み出し方向のアクセスを禁止した記憶回路群B115を2-Wayインタリーブから3―Wayインタリーブに設定を変更する(ステップS406)。より具体的にはファームウェア203は、記憶回路群B115のアクセス制御回路111を2-Wayインタリーブから3―Wayインタリーブに設定する。
 ファームウェア203はメモリ104~107からデータの読み出しをトライする。記憶回路群B115のデータ読み出しは禁止になっているため、結果としてファームウェア203は記憶回路群A114のメモリ104、105からのみデータを読み出す(ステップS407)。ファームウェア203がメモリ104、105から読み出すデータは、OS201のトランザクションを停止した時のデータである。
 ファームウェア203は記憶回路群A114のメモリ104、105から読み出したデータを記憶回路群B115のメモリ106、107、206へ書き込む(ステップS408)。ステップS406でファームウェア203は記憶回路群B115を3―Wayインタリーブに設定しているので、メモリ106、107、206へ3―Wayインタリーブで書き込む。なおアクセス制御回路110、111のデータ書き込みの設定は「書き込み可能」としている。そのためファームウェア203は、記憶回路群A114に記憶しているデータを記憶回路群A114、記憶回路群B115の両面に書き込む処理をおこなっている。もちろんサーバ100はファームウェア203が記憶回路群B115のみに記憶回路群A114のデータを書き込むようにしてもよい。
 ファームウェア203は記憶回路群A114のデータを記憶回路群B115へコピー完了したか否かを判別する(ステップS409)。ファームウェア203が記憶回路群A114のデータを記憶回路群B115への書き込みを完了していないと判別する場合(ステップS409 NO)、再びファームウェア203は記憶回路群A114のメモリ104、105からデータを読み出して、記憶回路群B115のメモリ106、107、206へ3-Wayインタリーブで書き込む(ステップS407、S408)。
 ファームウェア203が記憶回路群A114のデータを記憶回路群B115へコピー完了したと判別する場合(ステップS409 YES)、ファームウェア203は記憶回路群B115の読み出し禁止を解除する(ステップS410)。ファームウェア203やハードウェア204はデータコピー終了時にコピーが正常に終了したか判定を行っても良い。
 次にファームウェア203はインタリーブ設定を変更していない側である記憶回路群A114の読み出し方向のアクセスを禁止する(ステップS411)。より具体的にはファームウェア203はアクセス制御回路110におけるメモリ104、105、205のデータへのアクセスを禁止設定とする。ファームウェア203は読み出しアクセスを禁止した記憶回路群A114を2-Wayインタリーブ設定から3-Wayインタリーブ設定に変更する(ステップS412)。ファームウェア203は記憶回路群B115のメモリ106、107、206からデータを読み出す(ステップS413)。ここでファームウェア203はメモリ104~107、205、206からデータの読み出しをトライする。記憶回路群A114のデータ読み出しは禁止になっているため、結果としてファームウェア203は記憶回路群B115のメモリ106、107、206からのみデータを読み出すこととなる。
 ファームウェア203は記憶回路群B115のメモリ106、107、206から読み出したデータを記憶回路群A114のメモリ104、105、205へ書き込む(ステップS414)。ステップS412でファームウェア203は記憶回路群A114を3―Wayインタリーブに設定しているので、メモリ104、105、205へ3―Wayインタリーブで書き込む。
 ファームウェア203は記憶回路群B115のデータを記憶回路群A114へコピー完了したか否かを判別する(ステップS415)。ファームウェア203が記憶回路群B115のデータを記憶回路群A114へのデータ書き込みを完了していないと判別する場合(ステップS415 NO)、再びファームウェア203は記憶回路群B115のメモリ106、107、206からデータを読み出して、記憶回路群A114のメモリ104、105、205へ3-Wayインタリーブで書き込む(ステップS413、S414)。
 ファームウェア203が記憶回路群A114のデータを記憶回路群B115へコピー完了したと判別する場合(ステップS415 YES)、ファームウェア203は記憶回路群A114の読み出し禁止を解除する(ステップS416)。ここでもファームウェア203やハードウェア204はデータの書き込み終了時にデータの書き込みが正常に終了したか判定を行っても良い。ファームウェア203はメモリ群A112(メモリ104、105、205)、メモリ群B113(メモリ106、107、206)のインタリーブを再設定した後、メモリ群A112とメモリ群B113に記憶するデータが一致するか否かを判定してもよい。
 ファームウェア203はメモリ104~107、205、206からの読み出しデータの一致チェックを再開する。(ステップS417)。ファームウェア203はインタリーブ設定変更処理が終了したことをドライバ202に通知し、ドライバ202はOS201に対してトランザクションの再開を要求する(ステップS418)。CPU101は、ドライバ202からのOS201に対するトランザクションの再開要求に応じて、メモリアクセスを含むトランザクションを再開する。つまりサーバ100はスリープモードから復帰して、メモリ104~107、205、206を用いたデータ処理を再開する。
 本発明に係るサーバによれば、冗長化したメモリのインタリーブ設定を交互に変更することによって、再起動を必要とせずに、インタリーブ設定を最適に変更することができる。つまり本実施例におけるサーバ100は、メモリ二重化機能とハードウェア、ファームウェア、ドライバの制御を利用して、再起動せずに、インタリーブ設定した場合に起きる書き込みデータと読み出しデータの不整合といった問題を解決している。その結果、サーバ100は、メモリ追加した場合であっても、短時間でインタリーブの再設定を行うことができ、メモリアクセス帯域幅を向上することができる。
 本実施例によるサーバは、再起動せずに、インタリーブを再設定するものである。したがって、本実施例に係るサーバは、システムの拡張を行うサーバを提供するうえで極めて有用である。

Claims (12)

  1. 冗長化したメモリを有する情報処理装置において、
     複数の記憶領域を有し、記憶容量を可変可能な第1メモリと、
    複数の記憶領域を有し、記憶容量を可変可能で前記第1メモリと冗長化した第2メモリと、
     前記第1メモリの各記憶領域に格納されたデータを前記第2メモリの各記憶領域にそれぞれ対応付けて記憶し、前記第1メモリと前記第2メモリの記憶容量に変更があった場合、前記第2メモリに記憶されたデータを、前記第1メモリの記憶容量の変更に対応した変更した後の記憶領域にそれぞれ書き込み、前記第1メモリの変更した後の記憶領域に書き込まれたデータを、前記第2メモリの記憶容量の変更に対応した変更した後の記憶領域にそれぞれ書き込むように制御するメモリコントローラと、
     を有することを特徴とする情報処理装置。
  2. 請求項1に記載の情報処理装置において、
     前記第1メモリと前記第2メモリの記憶容量に変更があった場合、前記メモリコントローラは前記第1メモリ及び前記第2メモリの各記憶領域に記憶するデータを確定して、前記第1メモリ及び前記第2メモリの記憶領域の変更に対応した変更した後の記憶領域に前記データをそれぞれ書きこむことを特徴とする情報処理装置。
  3. 請求項2に記載の情報処理装置において、
     前記メモリコントローラは、前記第1メモリの各記憶領域からのデータ読み出しを禁止し、前記第2メモリに記憶されたデータを、前記第1メモリの記憶領域の変更に対応した新たな記憶領域にそれぞれ書き込み、前記第2メモリの各記憶領域からのデータ読み出しを禁止し、前記第1メモリの新たな記憶領域に書き込まれたデータを、前記第2メモリの記憶容量の変更に対応した新たな記憶領域にそれぞれ書き込むことを特徴とする情報処理装置。
  4. 請求項3に記載の情報処理装置において、
     前記メモリコントローラが前記第1メモリ及び前記第2メモリの各記憶領域に記憶するデータを確定するために、前記第1メモリ及び前記第2メモリを用いたデータ処理を停止する制御部をさらに有することを特徴とする情報処理装置。
  5. 請求項4に記載の情報処理装置において、
     前記メモリコントローラが前記第1メモリと前記第2メモリの記憶容量に変更に応じて記第1メモリ及び前記第2メモリの記憶領域の変更に対応した変更した後の記憶領域に前記データをそれぞれ書き込んだ後、前記制御部は再び前記第1メモリ及び前記第2メモリを用いたデータ処理を再開することを特徴とする情報処理装置。
  6. 請求項1に記載の情報処理装置において、
     前記メモリコントローラは、前記第1メモリと前記第2メモリの記憶容量に変更に応じて記第1メモリ及び前記第2メモリの記憶領域の変更した後の記憶領域に前記データをそれぞれ書き込んだ後、前記第1メモリの変更した後の記憶領域にそれぞれ記憶するデータと前記第2メモリの変更した後の記憶領域にそれぞれ記憶するデータが一致するか否かを判定することを特徴とする情報処理装置。
  7. 請求項1に記載の情報処理装置において、
     前記メモリコントローラは、前記第1メモリと前記第2メモリの記憶容量に変更があった場合、前記第2メモリに記憶されたデータを、前記第1メモリの記憶容量の変更に対応した変更した後の記憶領域にそれぞれ書き込んだ後、前記第1メモリの変更した後の記憶領域に書き込まれたデータを、前記第2メモリの記憶容量の変更に対応した変更した後の記憶領域にそれぞれ書き込むことを特徴とする情報処理装置。
  8. 複数の記憶領域を有し、記憶容量を可変可能な第1メモリと第2メモリを冗長化して有し、前記第1メモリの各記憶領域に格納されたデータを前記第2メモリの各記憶領域にそれぞれ対応付けて記憶する情報処理装置におけるデータの記憶領域を変更するメモリ制御方法において、
     前記第1メモリと前記第2メモリの記憶容量に変更があった場合、前記第2メモリに記憶されたデータを、前記第1メモリの記憶領域の変更に対応した新たな記憶領域にそれぞれ書き込み、
     前記第1メモリの新たな記憶領域に書き込まれたデータを、前記第2メモリの記憶容量の変更に対応した新たな記憶領域にそれぞれ書き込む
    ことを特徴とするメモリ制御方法。
  9. データを第1の複数のメモリに分割して記憶する第1のメモリ群と前記データを第2の複数のメモリに分割して冗長に記憶する第2のメモリ群に接続されるメモリ制御装置において、
     前記第1のメモリ群に接続されてデータの読み書きを行うとともに、前記第1のメモリ群に第3のメモリが追加又は削除され、前記第2のメモリ群に第4のメモリが追加又は削除される場合には、前記第3のメモリが追加又は削除後の第1のメモリ群に分割して記憶された前記データを読み出す第1のメモリ制御回路と、
     前記第2のメモリ群に接続されてデータの読み書きを行うとともに、前記第1のメモリ群に第3のメモリが追加又は削除され、前記第2のメモリ群に第4のメモリが追加又は削除される場合には、前記第1のメモリ制御回路が前記追加又は削除後の第1のメモリ群から読み出した前記データを、前記第4のメモリが追加又は削除された後の第2のメモリ群に分割して記憶する第2のメモリ制御回路を有することを特徴とするメモリ制御装置。
  10. 前記メモリ制御装置において、
     前記第2のメモリ制御回路はさらに、
     前記第4のメモリが追加又は削除された後の第2のメモリ群に分割して記憶された前記データを読み出し、
     前記第1のメモリ制御回路はさらに、
     前記第2のメモリ制御回路が前記追加又は削除された後の第2のメモリ群から読み出した前記データを、前記第3のメモリが追加又は削除後の第1のメモリ群に分割して記憶することを特徴とする請求項9記載のメモリ制御装置。
  11. データを第1の複数のメモリに分割して記憶する第1のメモリ群と前記  データを第2の複数のメモリに分割して冗長に記憶する第2のメモリ群に接続されるとともに、前記第1のメモリ群に接続されてデータの読み書きを行う第1のメモリ制御回路と前記第2のメモリ群に接続されてデータの読み書きを行う第2のメモリ制御回路を有するメモリ制御装置の制御方法において、
     前記第1のメモリ群に第3のメモリが追加又は削除されるステップと、
     前記第2のメモリ群に第4のメモリが追加又は削除されるステップと、
     前記第1のメモリ制御回路が、前記第3のメモリが追加又は削除後の第1のメモリ群に分割して記憶された前記データを読み出すステップと、
     前記第2のメモリ制御回路が、前記第1のメモリ制御回路が前記追加又は削除後の第1のメモリ群から読み出した前記データを、前記第4のメモリが追加又は削除された後の第2のメモリ群に分割して記憶するステップを有することを特徴とするメモリ制御方法。
  12. 前記メモリ制御方法において、
     前記第2のメモリ制御回路が、前記第4のメモリが追加又は削除された後の第2のメモリ群に分割して記憶された前記データを読み出すステップと、
     前記第1のメモリ制御回路が、前記第2のメモリ制御回路が前記追加又は削除された後の第2のメモリ群から読み出した前記データを、前記第3のメモリが追加又は削除後の第1のメモリ群に分割して記憶するステップを有することを特徴とする請求項11記載のメモリ制御方法。
PCT/JP2009/001381 2009-03-27 2009-03-27 情報処理装置、メモリ制御方法、及びメモリ制御装置 WO2010109537A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2009/001381 WO2010109537A1 (ja) 2009-03-27 2009-03-27 情報処理装置、メモリ制御方法、及びメモリ制御装置
JP2011505668A JP5590028B2 (ja) 2009-03-27 2009-03-27 情報処理装置、メモリ制御方法、及びメモリ制御装置
US13/240,255 US8762673B2 (en) 2009-03-27 2011-09-22 Interleaving data across corresponding storage groups

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2009/001381 WO2010109537A1 (ja) 2009-03-27 2009-03-27 情報処理装置、メモリ制御方法、及びメモリ制御装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/240,255 Continuation US8762673B2 (en) 2009-03-27 2011-09-22 Interleaving data across corresponding storage groups

Publications (1)

Publication Number Publication Date
WO2010109537A1 true WO2010109537A1 (ja) 2010-09-30

Family

ID=42780252

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/001381 WO2010109537A1 (ja) 2009-03-27 2009-03-27 情報処理装置、メモリ制御方法、及びメモリ制御装置

Country Status (3)

Country Link
US (1) US8762673B2 (ja)
JP (1) JP5590028B2 (ja)
WO (1) WO2010109537A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012020505A1 (ja) * 2010-08-13 2012-02-16 富士通株式会社 メモリ制御装置、情報処理装置及びメモリ制御装置の制御方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10635331B2 (en) * 2017-07-05 2020-04-28 Western Digital Technologies, Inc. Distribution of logical-to-physical address entries across bank groups

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62140153A (ja) * 1985-12-16 1987-06-23 Nec Corp 二重化デ−タ処理装置
JPH01109453A (ja) * 1987-10-23 1989-04-26 Hitachi Ltd 記憶領域二重化方式
JPH04149653A (ja) * 1990-10-09 1992-05-22 Fujitsu Ltd 二重化メモリの読出し比較システム
JPH0635798A (ja) * 1992-07-21 1994-02-10 Hitachi Ltd メモリ回路
JPH08297588A (ja) * 1995-04-25 1996-11-12 Fujitsu Ltd 二重照合装置
JP2724078B2 (ja) * 1992-09-29 1998-03-09 株式会社日立製作所 二重化メモリの保守方法
JP4213121B2 (ja) * 2002-11-08 2009-01-21 インテル コーポレイション インタリーブミラーメモリシステム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2596223B2 (ja) 1990-12-05 1997-04-02 日本電気株式会社 システム自動再立ち上げ方式
US6785785B2 (en) * 2000-01-25 2004-08-31 Hewlett-Packard Development Company, L.P. Method for supporting multi-level stripping of non-homogeneous memory to maximize concurrency
WO2003077111A1 (fr) * 2002-03-13 2003-09-18 Fujitsu Limited Controleur pour dispositif raid
JP2004213064A (ja) * 2002-12-26 2004-07-29 Fujitsu Ltd Raid装置及びその論理デバイス拡張方法
US7251185B2 (en) * 2005-02-24 2007-07-31 International Business Machines Corporation Methods and apparatus for using memory
US7444540B2 (en) * 2005-06-21 2008-10-28 Hewlett-Packard Development Company, L.P. Memory mirroring apparatus and method
US20070050544A1 (en) * 2005-09-01 2007-03-01 Dell Products L.P. System and method for storage rebuild management
US20070067670A1 (en) * 2005-09-19 2007-03-22 Xiotech Corporation Method, apparatus and program storage device for providing drive load balancing and resynchronization of a mirrored storage system
JP4799277B2 (ja) * 2006-05-31 2011-10-26 富士通株式会社 Raid装置における容量拡張方法およびraid装置
US7979648B2 (en) * 2008-05-30 2011-07-12 Oracle America, Inc. Dynamic interleaving

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62140153A (ja) * 1985-12-16 1987-06-23 Nec Corp 二重化デ−タ処理装置
JPH01109453A (ja) * 1987-10-23 1989-04-26 Hitachi Ltd 記憶領域二重化方式
JPH04149653A (ja) * 1990-10-09 1992-05-22 Fujitsu Ltd 二重化メモリの読出し比較システム
JPH0635798A (ja) * 1992-07-21 1994-02-10 Hitachi Ltd メモリ回路
JP2724078B2 (ja) * 1992-09-29 1998-03-09 株式会社日立製作所 二重化メモリの保守方法
JPH08297588A (ja) * 1995-04-25 1996-11-12 Fujitsu Ltd 二重照合装置
JP4213121B2 (ja) * 2002-11-08 2009-01-21 インテル コーポレイション インタリーブミラーメモリシステム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012020505A1 (ja) * 2010-08-13 2012-02-16 富士通株式会社 メモリ制御装置、情報処理装置及びメモリ制御装置の制御方法
JP5360301B2 (ja) * 2010-08-13 2013-12-04 富士通株式会社 メモリ制御装置、情報処理装置及びメモリ制御装置の制御方法

Also Published As

Publication number Publication date
US20120011332A1 (en) 2012-01-12
JP5590028B2 (ja) 2014-09-17
US8762673B2 (en) 2014-06-24
JPWO2010109537A1 (ja) 2012-09-20

Similar Documents

Publication Publication Date Title
JP3606797B2 (ja) 記憶装置のデータ領域間の複写処理方法、記憶システム、及びその記憶媒体
US6757797B1 (en) Copying method between logical disks, disk-storage system and its storage medium
US8166241B2 (en) Method of improving efficiency of capacity of volume used for copy function and apparatus thereof
US7831764B2 (en) Storage system having plural flash memory drives and method for controlling data storage
JP3714184B2 (ja) 記憶装置のデータ領域間複写処理方法、及び記憶システム
US8627181B1 (en) Storage apparatus, storage controller, and method for managing locations of error correcting code blocks in array
JP2006024024A (ja) 論理ディスク管理方法及び装置
US20170083417A1 (en) Storage device
WO2011132222A1 (en) Storage system and ownership control method for storage system
JP2002366398A (ja) クラスタ構成記憶システム
JP5360301B2 (ja) メモリ制御装置、情報処理装置及びメモリ制御装置の制御方法
JP2003345528A (ja) 記憶システム
JP4908481B2 (ja) データ記憶装置及び筐体内レプリケーション方法
JP5590028B2 (ja) 情報処理装置、メモリ制御方法、及びメモリ制御装置
US20090271579A1 (en) Storage subsystem and storage system
JP2002288014A (ja) ファイル管理システム及びファイルデータ書込方法
JP3790756B2 (ja) ディスクアレイ装置、ディスク制御装置及びディスクアレイのデータ障害を復旧する方法
JPH07319637A (ja) ディスク装置の制御装置およびディスク装置の制御方 法
US20240103765A1 (en) Non-volatile storage device offloading of host tasks
US20240103731A1 (en) Non-volatile storage device offloading of host tasks
US20240103756A1 (en) Non-volatile storage device offloading of host tasks
JPH086843A (ja) 半導体記憶装置
JP2010128630A (ja) ストレージシステム、負荷分散管理方法、および記憶媒体
JPH07121307A (ja) 多重化ディスク装置
JP2021089524A (ja) 情報処理装置、その制御方法、及びプログラム

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2011505668

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09842155

Country of ref document: EP

Kind code of ref document: A1