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

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

Info

Publication number
WO2012020505A1
WO2012020505A1 PCT/JP2010/063773 JP2010063773W WO2012020505A1 WO 2012020505 A1 WO2012020505 A1 WO 2012020505A1 JP 2010063773 W JP2010063773 W JP 2010063773W WO 2012020505 A1 WO2012020505 A1 WO 2012020505A1
Authority
WO
WIPO (PCT)
Prior art keywords
memory
data
interleave
memories
interleave setting
Prior art date
Application number
PCT/JP2010/063773
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 EP10855906.3A priority Critical patent/EP2605143A4/en
Priority to PCT/JP2010/063773 priority patent/WO2012020505A1/ja
Priority to JP2012528558A priority patent/JP5360301B2/ja
Publication of WO2012020505A1 publication Critical patent/WO2012020505A1/ja
Priority to US13/758,289 priority patent/US20130145111A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices

Definitions

  • the present invention relates to a memory control device, an information processing device, and a control method for the memory control device.
  • a memory controller as a memory control device for controlling a plurality of redundant memories
  • a server as an information processing device having a redundant memory and a memory control device, and the like are known.
  • the server can continue to execute processing using the other normally operating memory.
  • a server that performs memory access using a memory interleave function in order to speed up memory access.
  • the server divides the data at consecutive addresses and divides and arranges the data by alternately writing the divided data into interleave blocks for each way, which is a divided area of the memory. To do.
  • the server When reading the written data, the server alternately reads data at consecutive addresses from the interleave block for each way, thereby speeding up memory access.
  • the interleaving when the memory is divided into two interleave blocks is called 2-Way memory interleaving
  • the interleaving when the memory is divided into four interleaving blocks is called 4-Way memory interleaving.
  • the server when the server stores data on the memory based on the 2-Way memory interleave setting and then changes the 2-Way memory interleave to the 4-Way memory interleave setting, for example, the write address And read address do not match. Therefore, inconsistency occurs between the data written in the memory and the data read from the memory. Therefore, a server that resolves inconsistencies between data written to memory and data read from memory without restarting the server, that is, interleaving multiple redundant memories without restarting the server. Servers that change settings optimally are being considered.
  • 1 and 2 are schematic diagrams showing a method for changing the interleave setting of the server.
  • the server 30 includes an OS (Operating System) 21, a driver 22, firmware 23, and hardware 24.
  • the hardware 204 includes a CPU (Central Processing1Unit) 1, a memory controller 3, and memories 4 to 7, 25 and 26.
  • the memories 4, 5, and 25 constitute a memory group 12, and the memories 6, 7, and 27 constitute a memory group 13.
  • the memory 25 is added to the storage circuit group A (Side A) 14 side of the server 30 and the memory 26 is added to the storage circuit group B (Side B) 15 side, and then the storage circuit group B is duplicated.
  • (Side B) 15 shows the state until the interleave setting is completed.
  • FIG. 2 shows a state in which interleaving of the duplicated memory circuit group A (Side A) 14 is set.
  • the memory 25 and 26 are added to the server 30 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 or data at consecutive addresses is read from n memories.
  • the driver 22 is software that operates on the CPU 1.
  • the firmware 23 is software that operates on the CPU 1. For this reason, the processing procedure of the driver 22 is realized by the CPU 1 executing the driver 22.
  • the processing procedure of the firmware 23 is realized by the CPU 1 executing the firmware 23.
  • the memories 25 and 26 are added to the server 30, respectively.
  • the firmware 23 and the memory controller 3 recognize the added memories 25 and 26, respectively, and perform initialization (step) A).
  • the OS 21 recognizes the memories 25 and 26 as elements constituting the hardware 24 by receiving information on the firmware 23 and the added memories 25 and 26 from the memory controller 3 (step B).
  • the driver 22 operating on the CPU 1 stops the transaction including the memory access of the operating OS 21, and notifies the firmware 23 that the transaction has been stopped. Notify (step C).
  • the driver 22 operating on the CPU 1 sets the server 30 to the sleep mode and stops a transaction including memory access by the OS 21.
  • the firmware 23 operating on the CPU 1 stops the matching check of the read data in the memories 4 to 7, 25 and 26 (step D).
  • the firmware 23 prohibits the memory controller 3 from accessing in the read direction from the storage circuit group B15 (step E).
  • the firmware 23 performs interleave setting for the storage circuit group B15 for which Read access is prohibited (step F).
  • 2-Way interleave setting is changed to 3-Way interleave setting.
  • the firmware 23 changes the interleave setting of the memory circuit group B15 from 2-Way interleave setting to 3-Way interleave setting, it appears to the CPU 1 that the address of the data access target data in the memory has been changed. Therefore, when viewed from the OS 21, the firmware 23, and the driver 22, the data stored in the address after the interleave setting change stored in the storage circuit group B15 appears as data different from the data before the interleave setting change.
  • the firmware 23 operating on the CPU 1 copies the data stored in the storage circuit group A14 to the storage circuit group B15 that has been changed from 2-Way interleave setting to 3-Way interleave setting (step G).
  • the firmware 23 cancels the prohibition of reading from the storage circuit group B15 (step H).
  • the firmware 23 prohibits access in the reading direction from the storage circuit group A14 on the side where the interleave setting has not been changed (step I).
  • the firmware 23 changes the memory circuit group A14 for which read access is prohibited from 2-Way interleave setting to 3-Way interleave setting (step J).
  • the firmware 23 operating on the CPU 1 copies the data stored in the storage circuit group B15 to the storage circuit group A14 (step K).
  • the firmware 23 cancels the prohibition of reading from the storage circuit group A14 (step L).
  • the firmware 23 resumes the read data matching check between the memories 4, 5, 25 and the memories 6, 7, 26, which are duplicated with respect to the memory controller 3 (step M).
  • the firmware 23 notifies the driver 22 that the interleave setting change processing has been completed, and the driver 22 requests the OS 21 to resume the transaction including memory access (step N).
  • data A to data D are stored in six memories 4A to 4F.
  • the memory controller 3 has six channels # 0 to # 5 that access the memories 4A to 4F.
  • the data A is divided into “DATA A_0” and “DATA A_1”, and the 4-Way interleave setting is set.
  • the data is divided into “data A_00”, “data A_01”, “data A_10”, and “data A_11”.
  • data B to D are also divided according to the interleave setting.
  • the firmware 23 sets the interleave setting of the memory circuit group A14 to the 4-way interleave setting and the two 1-way interleave settings before changing the interleave setting when the memory 4F is added.
  • 4-way interleave setting target data A and B are each divided into four and stored in the memories 4A to 4D.
  • Data 1-Way interleave setting target data C is stored in the memory 4E.
  • the data D to be set for 1-Way interleaving is stored in the memory 4F.
  • the firmware 23 changes the interleave setting of the memory circuit group A14 to 4-Way interleave setting and 2-Way interleave setting
  • the data A and B subject to 4-Way interleave setting are changed as before the change of the interleave setting.
  • Each of the data C and D to be set for 2-Way interleave is divided into two. That is, “data C_0” and “data D_0” are stored in the memory 4E, and “data C_1” and “data D_1” are stored in the memory 4F.
  • FIG. 4 shows the data state before and after changing the memory interleave setting when the number of memory modules is reduced. Also in this case, the state after the change of the interleave setting when the memory 4F is reduced is changed only in the access method to the data C and D compared to the state before the change of the interleave setting.
  • the server 30 uses firmware 23 executed by the CPU 1 in order to copy data from the memory group 12 to the memory group 13. Therefore, the data passes through a long path such as memory group 12 ⁇ memory controller 3 ⁇ CPU 1 ⁇ memory controller 3 ⁇ memory group 13. Therefore, it takes time to copy the data, and there is a problem that the stop time of the transaction including the memory access of the OS for changing the interleave setting, that is, the stop time of the server 30 becomes long.
  • the only channels that require data copying are those for which interleave settings have been changed.
  • the server 30 performs copying of all data. Therefore, it takes time to copy the data, and there is a problem that the stop time of the transaction including the memory access of the OS for changing the interleave setting, that is, the stop time of the server 30 becomes long.
  • the memory control device, the information processing device, and the control method for the memory control device disclosed in the specification are intended to shorten the stop time of the information processing device for changing the interleave setting.
  • a memory control device disclosed in the specification divides data into a first plurality of memories and stores the first memory group, and the data is divided into a plurality of second memories.
  • a memory control device connected to a second memory group stored redundantly, having a plurality of channels connected to the first plurality of memories, dividing the data and corresponding to the number of divisions of the data
  • the second control for accessing the second memory group is performed based on the second interleave setting for dividing the data and reading / writing the data divided into the number of memories corresponding to the number of divisions of the data.
  • Change means for changing the first and second interleave settings, and data in a memory corresponding to the channel related to the change in the first interleave setting, and memory corresponding to the channel related to the change in the second interleave setting. And the memory data corresponding to the channel related to the change of the second interleave setting is copied to the first interleave setting. And a copying means for copying to a memory corresponding to the channel according to the change.
  • the information processing apparatus disclosed in the specification includes a first memory group that stores data divided into a plurality of first memories, and a second memory that stores the data redundantly by dividing the data into a plurality of second memories.
  • Information processing comprising a memory group, a memory control device connected to the first and second memory groups, and an arithmetic processing device for reading and writing data to and from the first and second memory groups via the memory control device
  • the memory control device has a plurality of channels connected to the first plurality of memories, divides the data, and divides the data into a number of memories corresponding to the number of divisions of the data
  • De A second control circuit for accessing the second memory group based on a second interleave setting for reading and writing data divided into a number of memories corresponding to the number of memory divisions, the first memory group, and the second memory group.
  • Determining means for determining a third interleave setting based on the number of memories after the change when the number of memories included in the memory group is changed; the third interleave setting; the first and second The first and second interleave settings are changed by using a specifying means for comparing the interleave setting and specifying a channel with a different number of data divisions and a third interleave setting of a portion corresponding to the specified channel. And changing the second interleave setting to the memory data corresponding to the channel related to the change in the first interleave setting.
  • Copy means for copying to a memory corresponding to the channel and copying data in the memory corresponding to the channel related to the change of the second interleave setting to the memory corresponding to the channel related to the change of the first interleave setting.
  • the control method of the memory control device disclosed in the specification includes a first memory group for storing data divided into a plurality of first memories, and a redundant storage by dividing the data into a plurality of second memories.
  • a first interleave setting of the first control circuit included is compared with a second interleave setting of the second control circuit included in the memory control device, and the first control circuit and the second Among the plurality of channels included in each of the control circuits, a channel having a different number of data divisions is identified, and the first and second channels are configured using a third interleave setting of a portion corresponding to the identified channel.
  • the interleave setting is changed, the data in the memory corresponding to the channel related to the change in the first interleave setting is copied to the memory corresponding to the channel related to the change in the second interleave setting, and the second interleave setting is changed. Data in the memory corresponding to the channel related to the change is copied to the memory corresponding to the channel related to the change in the first interleave setting.
  • the memory control device, the information processing device, and the control method for the memory control device disclosed in the specification can reduce the stop time of the information processing device for changing the interleave setting.
  • FIG. 6 is a schematic diagram showing a change process of interleave setting of the server 100.
  • FIG. 6 is a schematic diagram showing a change process of interleave setting of the server 100.
  • 4 is a flowchart showing a change process of interleave setting of the server 100.
  • the server 100 can optimally change the interleave setting associated with the addition or reduction of memory without restarting.
  • the interleave setting is a setting in which data at consecutive addresses is divided and the divided data is read from and written to a number of memories corresponding to the number of divided data.
  • the operation of the server 100 will be described with reference to FIG.
  • FIG. 5 is a block diagram showing a hardware configuration of the server 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, a control register 104, an interleave control circuit 105, a duplex control circuit 107, and access control circuits 109 and 116 (first Control circuit, second control circuit), and memories 114A to 114E and 121A to 121E.
  • the memories 114A to 114E form a memory group A114 (first memory group), and the memories 121A to 121E form a memory group B121 (second memory group).
  • the access control circuit 109 and the memory group A 114 form a storage circuit group A (Side A) 108
  • the access control circuit 116 and the memory group B 121 form a storage circuit group B (Side B) 115.
  • the memory circuit group A 108 and the memory circuit group B 115 have a mirroring configuration (duplex configuration). That is, the server 100 has a redundant memory group A114 and memory group B121.
  • the server 100 is duplicated between the memory group A 114 and the memory group B 121 in order to realize high reliability, and when the memory is newly added to or reduced from one memory group. Are added or reduced symmetrically with respect to the other memory group so as to maintain duplication.
  • the server 100 can add or reduce memory while the partition is operating.
  • the server 100 memorize
  • the server 100 redundantly stores data in the same continuous address in the memory group B121 by write control using memory interleaving.
  • the access control circuit 109 performs data access by writing data at successive addresses into the memories 114A to 114E using interleave control or reading data at successive addresses using interleave control.
  • the memory interleaving means that the memory controller 103 divides data having continuous addresses for each way, which is a fixed division unit, and writes the divided data to or reads from the way. In other words, continuous memory addresses are assigned to the memories 114A to 114F.
  • the memory controller 103 performs data access to continuous addresses across the boundaries between the memories 114A and 114B, the boundaries between the memories 114B and 114C, the boundaries between the memories 114C and 114D, and the boundaries between the memories 114D and 114E.
  • the access control circuit 116 performs data access by writing data at addresses consecutive in the memories 121A to 121E using interleave control or reading data using interleave control. That is, consecutive memory addresses are assigned to the memories 121A to 121E.
  • the memory controller 103 performs data access to continuous addresses across the boundaries of the memories 121A and 121B, the boundaries of the memories 121B and 121C, the boundaries of the memories 121C and 121D, and the boundaries of the memories 121D and 121E.
  • the memory group A 114 and the memory group B 121 are duplexed by mirroring, and the same data is stored in the set of the memories 114A and 121A.
  • a set of memories 114B and 121B, a set of memories 114C and 121C, a set of memories 114D and 121D, and a set of memories 114E and 121E are stored in the same data.
  • 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 device such as a client device via an I / O device 102 such as a network controller.
  • the CPU 101 accesses any one of the memories 114A to 114E and 121A to 121E via the memory controller 103.
  • the memory controller 103 reads data from any of the memories 114A to 114E, 121A to 121E, or writes data to any of the memories 114A to 114E, 121A to 121E.
  • the CPU 101 controls the memory controller 103 so as to stop the data processing using the memories 114A to 114E and 121A to 121E when changing the interleave setting.
  • the CPU 101 sets the server 100 to a sleep mode, and stops a transaction such as memory access by the OS (Operating System) 201 illustrated in FIG.
  • the driver 202 shown in FIG. 6 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.
  • the session is a unit of a query in the database management system issued when the database 100 is updated by a request from the client device in the server 100 and a response to the query.
  • the driver 202 is incorporated in the OS 201.
  • the memory controller 103 includes a control register 104, an interleave control circuit 105, a ROM (Read Only Memory) 106, a duplex control circuit 107, and access control circuits 109 and 116.
  • the interleave control circuit 105 includes a read / write control unit 122 (reading control unit), an interleaving control unit 123 (changing unit), and a data copy control unit 124 (copying unit).
  • the duplex control circuit 107 includes a data comparison unit 125.
  • the access control circuit 109 includes a read / write setting unit 110, an interleave setting unit 111, a memory copy unit 112, and a memory access unit 113.
  • the access control circuit 116 includes a read / write setting unit 117, an interleave setting unit 118, a memory copy unit 119, and a memory access unit 120.
  • the access control circuit 109 also includes channels # 0 to # 5 for accessing the memory group A114.
  • the access control circuit 116 includes channels # 0 to # 5 for accessing the memory group B121.
  • “channels # 0 to # 5” for accessing the memory group A114 included in the access control circuit 109, and “channels # 0 to # 5” for accessing the memory group B121 included in the access control circuit 116 Have the same name but different interleave group number settings. The interleave group number will be described later.
  • the control register 104 stores setting information for the memory controller 103 to execute processing. Based on the setting information, the interleave control circuit 105, the duplex control circuit 107, and the access control circuits 109 and 116 execute processing.
  • the read / write control unit 122 of the interleave control circuit 105 controls the read / write of each data of the read / write setting units 110 and 117.
  • the read / write control unit 122 prohibits the read / write setting unit 110 from accessing the memory in the reading direction from the storage circuit group A108.
  • the access control circuit 109 prohibits access in the reading direction from the memory group A114.
  • the read / write control unit 122 prohibits the read / write setting unit 117 from accessing the memory in the reading direction from the storage circuit group B115.
  • the access control circuit 116 prohibits access in the reading direction from the memory group B121.
  • the interleave control unit 123 of the interleave control circuit 105 sets memory interleave for each of the redundant storage circuit group A108 and storage circuit group B115, that is, for each side. Specifically, the interleave control unit 123 can change the interleave setting for each channel by performing the interleave setting for each channel of the access control circuits 109 and 116. The interleave setting for each channel of the access control circuits 109 and 116 is stored in the interleave setting units 111 and 118, respectively.
  • the data copy control unit 124 of the interleave control circuit 105 controls data copying performed in units of storage circuits (Side) or in units of channels. For example, when copying the data stored in the memory 114A to the memory 121A, the data copy control unit 124 controls the memory copy unit 112 to read the data stored in the memory 114A, and the read data is read. The memory copy unit 119 is controlled to write data to the memory 121A.
  • the interleave control circuit 105 has 1) a function for controlling interleave setting in units of Sides or channels, 2) a function for setting read / write of data in the access control circuits 109 and 116 in units of Sides, and 3). It has a function of copying data in side units or channel units.
  • the data comparison unit 125 of the duplex control circuit 107 checks whether the data read from the memory groups A 114 and B 121 that are duplicated by the memory access units 113 and 120 are the same. Further, the duplex control circuit 107 stops and restarts the check function of the data comparison unit 125. Further, the duplex control circuit 107 performs control to maintain the duplex state of the memory circuit group A 108 and the memory circuit group B 115.
  • the duplexing control executed by the duplexing control circuit 107 is a control for making the data stored in the memory group A114 and the memory group B121 always the same. When data is written to the memory group A114 by using the interleave control, the data is stored in the memory group B121. Also, the same data is written simultaneously using interleave control.
  • the access control circuit 109 of the memory circuit group A 108 controls access to data stored in the memories 114A to 114E. Specifically, read / write setting information is stored in the read / write setting unit 110 of the access control circuit 109.
  • the interleave setting unit 111 of the access control circuit 109 stores memory interleave setting information.
  • the memory copy unit 112 of the access control circuit 109 reads data from the memories 114A to 114E and outputs the data to the memories 121A to 121E via the data copy control unit 124, or copies the data in the memories 121A to 121E to the memories 114A to 114E. To do.
  • the memory access unit 113 of the access control circuit 109 reads the data in the memories 114A to 114E and outputs the data to the data comparison unit 125.
  • the access control circuit 116 in the memory circuit group B 115 controls access to the data in the memories 121A to 121E.
  • the read / write setting unit 117 of the access control circuit 116 stores read / write setting information.
  • the interleave setting unit 118 of the access control circuit 116 stores memory interleave setting information.
  • the memory copy unit 119 of the access control circuit 116 reads data from the memories 121A to 121E and outputs the data to the memories 114A to 114E via the data copy control unit 124, or copies the data in the memories 114A to 114E to the memories 121A to 121E. To do.
  • the memory access unit 120 of the access control circuit 116 reads the data in the memories 121A to 121E and outputs the data to the data comparison unit 125.
  • FIG. 6 shows the relationship between the OS 201, the driver 202, the firmware 203, and the memory controller 103 included in the server 100 that operate on the server 100.
  • the firmware 203 is software incorporated in the server 100 to perform basic control such as hardware start-up processing and termination processing, and is software executed by the CPU 101 connected to the memory controller 103. That is, the processing of the firmware 203 is realized by the CPU 101 connected to the memory controller 103 executing.
  • the firmware 203 operating on the CPU 101 has completed the data copy process (data write process to each of the memories 114A to 114E and 121A to 121E) and the copy process when the interleave setting of the memory controller 103 is performed and the interleave is reset.
  • the driver 202 is executed.
  • the firmware 203 sets the optimum interleave setting (third interleave setting) in the installed memory configuration and the current interleave setting (first and second interleave settings) set in the access control circuit 109 or 116. ) And a process of specifying channels having different data division numbers (way numbers).
  • the firmware 203 executes a process for setting the optimum interleave setting in the interleave control circuit 105 in units of Sides or channels.
  • the firmware 203 and the access control circuits 109 and 116 have data indicating the relationship between channel numbers and interleave group numbers as interleave settings.
  • the channel number is a number for identifying each channel.
  • the interleave group number is a number for identifying whether each channel belongs to a continuous data group or a different data group. For example, in the 4-Way interleave setting, data of consecutive addresses is divided into four, and the divided data is written into four memories through the channels of channel numbers # 0 to # 3. 0 to # 3 belong to a group of continuous data.
  • a common interleave group number “0” is assigned to the four channel numbers # 0 to # 3.
  • the channel of channel number # 4 since the channel of channel number # 4 is not used in the 4-way interleave setting, it belongs to a data group different from the channels of channel numbers # 0 to # 3. Therefore, an interleave group number “1” different from “0” is assigned to channel number # 4. Since the interleave setting is data indicating the relationship between the channel number and the interleave group number, the firmware 203 can easily identify channels having different data division numbers when comparing a plurality of interleave settings.
  • the firmware 203 operating on the CPU 101 is based on the information on the memory installed in the server 100 (specifically, the information on the number of memories included in one memory group) and the data path (data division number ( By determining (Way number), an optimal interleave setting is determined.
  • the number of data divisions is 2 to the nth power (n is an integer of 0 or more), such as 1, 2, 4, 8, 16,.
  • the firmware 203 can increase the number of data divisions within a range that is a combination of 2 to the nth power and does not exceed the number of memories included in one memory group. Set to value.
  • the number of data divisions is a combination of 2 to the nth power and the maximum value is set within a range not exceeding the number of memories.
  • the number of divisions is determined as “4” and “1”. Thereafter, when the number of memories included in the memory group A 114 increases by 1 to 6, the data division number candidates are “4”, “1”, “1”, or “4”, “2”. Even when there are five or six memories, the path of data divided into four does not change. Therefore, when there are six memories, the firmware 203 sets the number of divisions of data stored in the remaining two memories to two. Is set to the maximum value within a range not exceeding the number of memories.
  • the firmware 203 determines the number of data divisions as “4” and “2”.
  • the optimum interleave setting is a combination of the 4-way interleave setting and the 2-way interleave setting.
  • nth power of 2 n: integer more than 0
  • m It may be set to the maximum value within a range that is a combination of n-th power (m, n: an integer of 0 or more) and does not exceed the number of memories.
  • the memory controller 103 causes the memory circuit group A 108 and the storage circuit to be in a state where the CPU 101 stops the transaction including the memory access of the OS 201.
  • the interleave setting is changed alternately for the group B115. More specifically, when the memories 114F and 121F are newly added to the memory group A 114 and the memory group B 121, respectively, the firmware 203 determines the optimum interleave setting in the added memory configuration, and the optimum interleave setting and access.
  • the current interleaving setting set in the control circuit 116 is compared, and channels having different data division numbers are specified.
  • the interleave control circuit 115 changes the interleave setting of the access control circuit 116 corresponding to the specified channel, and the data in the memory group A 114 corresponding to the specified channel is changed to the memory group B 121 corresponding to the specified channel. Copy with the new interleave setting.
  • the interleave control circuit 115 copies the data in the memories 114E and 114F corresponding to the two 1-Way interleave setting channels # 4 and # 5 to the memories 121E and 121F with the 2-Way interleave setting.
  • the interleave control circuit 115 changes the interleave setting of the access control circuit 109 corresponding to the specified channel, and the data in the memory group B121 corresponding to the specified channel is changed to the memory group A114 corresponding to the specified channel. Copy with the new interleave setting. For example, the interleave control circuit 115 copies the data in the memories 121E and 121F corresponding to the channels # 4 and # 5 to the memories 114E and 114F with 2-Way interleave setting. As described above, the interleave control circuit 115 sequentially changes the interleave settings of the access control circuits 116 and 109 corresponding to channels having different data division numbers, and newly adds data in the memory corresponding to channels having different data division numbers.
  • the memory interleaving in the server 100 is reset by copying using the appropriate interleaving setting. Therefore, only the data of the channel related to the interleave setting changed according to the change in the number of memories is copied.
  • Reconfiguration of memory interleaving according to the change in the number of memories means that if the number of memories increases, the data is divided according to the increased number and stored in the memory using the new interleaving settings. The data is divided in accordance with and stored in the memory using the new interleave setting.
  • FIGS. 6 and 7 are schematic diagrams showing the interleave setting change process of the server 100.
  • FIG. FIG. 8 is a flowchart showing the interleave setting change process of the server 100.
  • FIG. 6 shows a state from the addition of the memories 114F and 121F to the server 100 until the change of the interleave setting of the access control circuit 116 and the copying of data from the storage circuit group A 108 to the storage circuit group B 115 are completed.
  • FIG. 7 shows a state until the change of the interleave setting of the access control circuit 109 and the copying of data from the storage circuit group B115 to the storage circuit group A108 are completed.
  • two 1-Way interleave settings corresponding to channels # 4 and # 5 are changed to 2-Way interleave settings by adding memories 114F and 121F to server 100, respectively.
  • 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 CPU 101. 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 when the CPU 101 executes the firmware 203.
  • the memories 114F and 121F are added to the server 100, respectively.
  • the firmware 203 and the memory controller 103 recognize the added memories 114F and 121F and perform initialization (step S1).
  • the OS 201 recognizes the memories 114F and 121F as hardware configurations by receiving the information of the memories 114F and 121F added from the firmware 203 and the memory controller 103, respectively (step S2).
  • 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 S3).
  • the driver 202 sets the server 100 to the sleep mode and stops the transaction including the memory access by the OS 201.
  • the CPU 101 stops the transaction of the OS 201.
  • the data stored in the storage circuit group A 108 and the storage circuit group B 115 is determined, and the interleave control circuit 105 of the memory controller 103 is accessed by the access control circuits 109 and 116. Change the interleave setting for.
  • the CPU 101 stops data processing using the memory circuit group A108 and the memory circuit group B115.
  • the firmware 203 operating on the CPU 101 determines the optimal interleave setting after adding the memory (step S4). Specifically, the firmware 203 divides data having consecutive addresses based on information on the installed memory (specifically, information on the number of memories included in one memory group) and a data path. By determining the number, the optimum interleave setting is determined. Since the number of data divisions is a combination of m raised to the nth power (m, n: an integer greater than or equal to 0), the optimum interleaving is performed in a state where each of the memory circuits A108 and B115 has six memories.
  • the setting is a combination of 4-Way interleave setting and 2-Way interleave setting. In FIG.
  • the optimum interleave setting is data indicating the relationship between the channel number and the interleave group number included in the firmware 203.
  • the firmware 203 compares the determined optimum interleave setting with the current interleave setting of the access control circuit 116, and identifies channel numbers having different data division numbers (step S5).
  • the channel numbers of the channels with different data division numbers are “# 4” and “# 5”.
  • the firmware 203 stops the matching check of the read data of the memory group A 114 and the memory group B 121 (step S6). If reading of data from one of the memory groups is prohibited in a state where the memory group A 114 and the memory group B 121 are duplicated, read data from the duplicated memory group A 112 and memory group B 113 are different. In order to prevent the duplex control circuit 107 from detecting this state as a hardware failure, the firmware 203 suppresses the coincidence check of the read data from the memory group A 114 and the memory group B 121 in the duplex control circuit 107.
  • the firmware 203 sets the optimum interleave setting corresponding to the channel number specified in step S5 in the interleave control unit 123 of the interleave control circuit 105 (step S7).
  • the interleave control unit 123 of the interleave control circuit 105 stores the optimal interleave setting corresponding to the channel number received from the firmware 203 (step S8).
  • the optimum interleave setting corresponding to the channel number received from the firmware 203 or specified by the firmware 203 indicates the relationship between the channel numbers “# 4” and “# 5” and the interleave group number “1”. It is data.
  • the read / write control unit 122 of the interleave control circuit 105 prohibits access to the access control circuit 116 in the read direction from the storage circuit group B115 (step S9). If the interleave setting of the access control circuit 116 is changed after the data is arranged in the memory group 121 of the memory circuit group B115, mismatch between the written data and the read data occurs. Therefore, the read / write control unit 122 prohibits the access control circuit 116 from reading data, thereby making it impossible to use data inconsistent in the access control circuit 116.
  • the interleave control circuit 105 prohibits the access control circuit 116 from accessing in the read direction from the storage circuit group B115, and then reads the access control circuit 109 from the storage circuit group A108.
  • the interleave control circuit 105 prohibits the access control circuit 109 from accessing in the read direction from the storage circuit group A 108, and then reads the access control circuit 116 from the storage circuit group B 115 (Read). Direction access may be prohibited.
  • the interleave control unit 123 of the interleave control circuit 105 changes the interleave setting of the access control circuit 116 using the optimal interleave setting corresponding to the channel number specified by the firmware 203 (step S10).
  • the interleave group number corresponding to the channel number “# 5” of the access control circuit 116 is changed from “2” to “1”. That is, since the interleave group number corresponding to the channel number “# 5” is changed to “1”, the interleave corresponding to the channel numbers “# 4” and “# 5” in which the interleave group number “1” is set.
  • the setting is changed from two 1-Way interleave settings to one 2-Way interleave setting.
  • the firmware 101 has changed the interleave setting corresponding to the channel numbers “# 4” and “# 5” from two 1-Way interleave settings to one 2-Way interleave setting. It looks like the address to access the data has changed. Therefore, when viewed from the OS 201, the firmware 203, and the driver 202, the data stored in the memory circuit group B115 and stored at the address after the interleave setting change is seen as data different from the data before the interleave setting change. .
  • the data copy control unit 124 of the interleave control circuit 105 accesses the data in the memories 114E and 114F corresponding to the channel numbers (“# 4” and “# 5”) related to the interleave setting to be changed by the access control circuit 109. Copying is made to the memories 121E and 121F corresponding to the channel numbers (“# 4” and “# 5”) related to the changed interleave setting of the control circuit 116 (step S11).
  • Data read from the memories 114E and 114F by the data copy control unit 124 of the interleave control circuit 105 is data when a transaction including memory access of the OS 201 is stopped.
  • the read / write control unit 122 of the interleave control circuit 105 cancels the prohibition of access in the read direction from the storage circuit group B115 to the access control circuit 116 (step S12).
  • the firmware 203 or the data copy control unit 124 of the interleave control circuit 105 may determine whether or not the copy is normally completed when the copy is completed.
  • the read / write control unit 122 of the interleave control circuit 105 prohibits access to the access control circuit 109 in the read direction from the storage circuit group A108 (step S13). If the interleave setting of the access control circuit 109 is changed after the data is arranged in the memory group 114 of the memory circuit group A 108, mismatch between the written data and the read data occurs. Therefore, the read / write control unit 122 prohibits the data read from the access control circuit 109 from being used, thereby making it impossible to use data inconsistent in the access control circuit 109.
  • the interleave control unit 123 of the interleave control circuit 105 changes the interleave setting of the access control circuit 109 using the optimal interleave setting corresponding to the channel number specified by the firmware 203 (step S14).
  • the interleave group number corresponding to the channel number “# 5” of the access control circuit 109 is changed from “2” to “1”. That is, since the interleave group number corresponding to the channel number “#” # 5 ”is changed to“ 1 ”, the interleave setting corresponding to the channel numbers“ # 4 ”and“ # 5 ”is two 1-Way interleave settings. To one 2-Way interleave setting.
  • the data copy control unit 124 of the interleave control circuit 105 performs access control on the data in the memories 121E and 121F corresponding to the channel numbers (“# 4” and “# 5”) related to the changed interleave setting of the access control circuit 116. Copy to the memories 114E and 114F corresponding to the channel numbers (“# 4” and “# 5”) related to the changed interleave setting of the circuit 109 (step S15). Data read from the memories 121E and 121F by the data copy control unit 124 of the interleave control circuit 105 is data when a transaction including memory access of the OS 201 is stopped.
  • the read / write control unit 122 of the interleave control circuit 105 cancels the prohibition of access in the read direction of the storage circuit group A108 with respect to the access control circuit 109 (step S16).
  • the data copy control unit 124 of the interleave control circuit 105 notifies the firmware 203 that the copy has been completed (step S17). Again, the firmware 203 or the data copy control unit 124 of the interleave control circuit 105 may determine whether the copy has been completed normally when the copy is completed.
  • the firmware 203 resumes the matching check of the read data of the memory group A 114 and the memory group B 121 (step S18).
  • 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 S19).
  • 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 memory group A 114 and the memory group B 121.
  • the information acquired in each step described above is stored in the OS 201 or the memory controller 103 and can be appropriately acquired from the driver 202 or the firmware 203.
  • FIGS. 6 to 8 illustrate the interleave setting changing process when the memory is increased, but the interleaving setting changing process of FIGS. 6 to 8 is similarly executed when the memory is reduced. That is, the interleaving setting changing process of FIGS. 6 to 8 is executed when the number of memories changes.
  • a part of the interleave setting of the access control circuits 109 and 116 is changed according to the optimum interleave setting, and only the data corresponding to the channel whose interleave setting is changed is copied. Therefore, the server 100 stop time for changing the data copy time and interleave setting can be shortened. Further, since the data copy is completed in the memory controller 103 and the change of the interleave setting is completed without requiring the server 100 to be restarted, the data copy time and the stop time of the server 100 for changing the interleave setting can be reduced. It can be shortened.
  • the server 100 can optimally change the interleave setting without requiring restart by alternately changing the interleave setting of the redundant memory. Furthermore, even when the memory is increased or decreased, the server 100 can reset the interleaving in a short time, and can improve the memory access bandwidth.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

 メモリ群114及びメモリ群121に含まれるメモリ数が変化した場合に、ファームウェア203が当該メモリ数の情報及びデータの経路に基づいて、最適なインタリーブ設定を決定し、最適なインタリーブ設定とアクセス制御回路109,116のインタリーブ設定とを比較し、データの分割数が異なるチャンネルを特定し、インタリーブ制御回路105が特定されたチャンネルに対応する部分の最適なインタリーブ設定を使ってアクセス制御回路109,116のインタリーブ設定の一部を変更し、インタリーブ設定が変更されたチャンネルに対応するデータのみをコピーする。

Description

メモリ制御装置、情報処理装置及びメモリ制御装置の制御方法
 本発明は、メモリ制御装置、情報処理装置及びメモリ制御装置の制御方法に関する。
 従来より、冗長化された複数のメモリを制御するメモリ制御装置としてのメモリコントローラや、冗長化されたメモリ及びメモリ制御装置を有する情報処理装置としてのサーバ等が知られている。これにより、複数のメモリのうちいずれかのメモリにエラーが発生しても、正常動作している他のメモリを用いて、サーバは継続して処理を実行することができる。また、メモリアクセスをより高速化するため、メモリインタリーブ(Memory Interleave)機能を用いてメモリアクセスを行うサーバがある。すなわち、サーバは、メモリへのデータの書き込み時に、連続するアドレスのデータを分割して、メモリの分割された領域であるウェイ毎のインタリーブブロックに分割したデータを交互に書き込むことにより分割して配置する。そして、書き込みを行ったデータを読み込む場合には、サーバは、ウェイ毎のインタリーブブロックから連続するアドレスのデータを交互に読み出すことにより、メモリアクセスの高速化を図る。ここで、メモリが2つのインタリーブブロックに分割される場合のインタリーブを、2-Way・メモリインタリーブといい、メモリが4つのインタリーブブロックに分割される場合のインタリーブを4-Way・メモリインタリーブという。
 しかしながら、例えばサーバが2-Way・メモリインタリーブの設定に基づいてメモリ上にデータを格納した後に当該2-Way・メモリインタリーブを例えば4-Way・メモリインタリーブの設定に変更した場合には、書き込みアドレスと読み出しアドレスが一致しない。そのため、メモリに書き込んだデータとメモリから読みだしたデータとに不整合が発生する。そこで、サーバを再起動せずに、メモリに書き込んだデータとメモリから読みだしたデータとの不整合を解消するサーバ、即ち、サーバを再起動せずに、冗長化された複数のメモリのインタリーブ設定を最適に変更するサーバが考えられている。
 以下、冗長化された複数のメモリのインタリーブ設定を最適に変更する方法を説明する。
 図1、図2は、サーバのインタリーブ設定を変更する方法を示す模式図である。図1、図2において、サーバ30は、OS(Operating System)21、ドライバ22、ファームウェア23、及びハードウェア24を備えている。ハードウェア204は、CPU(Central Processing Unit)1、メモリコントローラ3、メモリ4~7,25,26を含む。メモリ4,5,25はメモリ群12を構成し、メモリ6,7,27はメモリ群13を構成する。
 図1では、サーバ30の記憶回路群A(Side A)14側にメモリ25を追加するとともに、記憶回路群B(Side B)15側にメモリ26を追加してから、二重化した記憶回路群B(Side B)15のインタリーブ設定を完了するまでの状態を示している。また、図2では、二重化した記憶回路群A(Side A)14のインタリーブを設定した状態を示している。ここでは、サーバ30にメモリ25,26をそれぞれ追加することによって、インタリーブ設定を2-Wayインタリーブ設定から3-Wayインタリーブ設定に変更する場合を説明する。n-Wayインタリーブ設定とは、連続するアドレスのデータをn分割して、n個のメモリに書き込み又はn個のメモリから連続するアドレスのデータを読み出す設定のことである。また、ドライバ22はCPU1上で動作するソフトウェアである。また、ファームウェア23はCPU1上で動作するソフトウェアである。このため、ドライバ22の処理手順は、CPU1がドライバ22を実行することにより実現される。また、ファームウェア23の処理手順は、CPU1がファームウェア23を実行することにより実現される。
 まず、サーバ30にメモリ25,26をそれぞれ追加する。メモリ25が記憶回路群A14に追加され、メモリ26が記憶回路群B15に追加されると、ファームウェア23、及びメモリコントローラ3は追加されたメモリ25,26をそれぞれ認識し、初期化を行う(ステップA)。OS21はファームウェア23、及びメモリコントローラ3から追加されたメモリ25,26の情報を受け取ることにより、メモリ25,26をハードウェア24を構成する要素として認識する(ステップB)。記憶回路群A14及び記憶回路群B15のインタリーブ設定を変更するため、CPU1上で動作するドライバ22は稼動しているOS21のメモリアクセス等を含むトランザクションを停止し、トランザクションを停止した旨をファームウェア23に通知する(ステップC)。CPU1上で動作するドライバ22は、サーバ30をスリープモードに設定してOS21によるメモリアクセスを含むトランザクションを停止する。
 CPU1上で動作するファームウェア23はメモリ4~7,25,26の読み出しデータの一致チェックを停止する(ステップD)。ファームウェア23はメモリコントローラ3に対して、記憶回路群B15からの読み出し(Read)方向のアクセスを禁止する(ステップE)。ファームウェア23はReadアクセスを禁止した記憶回路群B15にインタリーブ設定を行う(ステップF)。ここでは、例えば、2-Wayインタリーブ設定を3-Wayインタリーブ設定に変更する場合について説明する。ファームウェア23が、記憶回路群B15のインタリーブ設定を2-Wayインタリーブ設定から3-Wayインタリーブ設定に変更したことによって、CPU1からはメモリ上のデータアクセス対象のデータのアドレスが変更されたように見える。そのため、OS21、ファームウェア23、ドライバ22から見ると、記憶回路群B15に記憶しているインタリーブ設定変更後のアドレスに格納されているデータはインタリーブ設定変更前のデータとは異なったデータとして見える。
 CPU1上で動作するファームウェア23は記憶回路群A14に記憶しているデータを、2-Wayインタリーブ設定から3-Wayインタリーブ設定に変更した記憶回路群B15へコピーする(ステップG)。ファームウェア23は記憶回路群A14のデータの記憶回路群B15へのコピーを完了したら、記憶回路群B15からの読み出し禁止を解除する(ステップH)。次に、ファームウェア23はインタリーブ設定を変更していない側である記憶回路群A14からの読み出し方向のアクセスを禁止する(ステップI)。ファームウェア23は読み出しアクセスを禁止した記憶回路群A14を、2-Wayインタリーブ設定から3-Wayインタリーブ設定に変更する(ステップJ)。
 CPU1上で動作するファームウェア23は記憶回路群B15に記憶しているデータを記憶回路群A14へコピーする(ステップK)。ファームウェア23は記憶回路群B15のデータの記憶回路群A14へのコピーを完了したら、記憶回路群A14からの読み出し禁止を解除する(ステップL)。ファームウェア23はメモリコントローラ3に対し二重化されているメモリ4,5,25とメモリ6,7,26との間の読み出しデータの一致チェックを再開する(ステップM)。ファームウェア23はインタリーブ設定変更処理が終了したことをドライバ22に通知し、ドライバ22はOS21に対してメモリアクセスを含むトランザクションの再開を要求する(ステップN)。
 次に、図3を使って、メモリを追加した場合のインタリーブ設定変更前後のデータの状態を説明する。
 例えば、図3に示すように、6つのメモリ4A~4FにデータA~データDが格納されるものとする。メモリコントローラ3は、メモリ4A~4Fにアクセスする6つのチャンネル#0~#5を有する。また、データAは、図3に示すように、2-Wayインタリーブ設定が設定されている場合には、「データA_0」及び「データA_1」に分割され、4-Wayインタリーブ設定が設定されている場合には、「データA_00」、「データA_01」、「データA_10」及び「データA_11」に分割される。データB~DもデータAと同様にインタリーブ設定に応じて分割される。
 仮に、メモリ4Fを追加した場合のインタリーブ設定変更前に、ファームウェア23が記憶回路群A14のインタリーブ設定を4-Wayインタリーブ設定及び2つの1-Wayインタリーブ設定に設定するものとする。この場合、4-Wayインタリーブ設定対象のデータA,Bは各々4分割されて、メモリ4A~4Dに格納される。1-Wayインタリーブ設定対象のデータCはメモリ4Eに格納される。又、1-Wayインタリーブ設定対象のデータDはメモリ4Fに格納される。次に、ファームウェア23が記憶回路群A14のインタリーブ設定を4-Wayインタリーブ設定及び2-Wayインタリーブ設定に変更すると、インタリーブ設定変更前と同様に、4-Wayインタリーブ設定対象のデータA,Bは各々4分割されて、メモリ4A~4Dに格納されている。2-Wayインタリーブ設定対象のデータC,Dは各々2分割される。すなわち、「データC_0」及び「データD_0」は、メモリ4Eに格納され、「データC_1」及び「データD_1」は、メモリ4Fに格納される。このように、メモリ4Fを追加した場合のインタリーブ設定変更後の状態は、インタリーブ設定変更前の状態と比べて、データC,Dへのアクセス方法だけが変更される。メモリモジュール数を削減した場合のメモリインタリーブ設定変更前後のデータの状態を図4に示す。この場合も、メモリ4Fを削減した場合のインタリーブ設定変更後の状態は、インタリーブ設定変更前の状態と比べて、データC,Dへのアクセス方法だけが変更される。
特表2006-505864号公報 特開2008-217727号公報
 ところで、上記サーバ30は、メモリ群12からメモリ群13にデータをコピーするために、CPU1が実行するファームウェア23を利用する。このため、データは、メモリ群12→メモリコントローラ3→CPU1→メモリコントローラ3→メモリ群13のような長い経路を通る。従って、データのコピーに時間がかかり、インタリーブ設定の変更のためのOSのメモリアクセスを含むトランザクションの停止時間、即ちサーバ30の停止時間が長くなるという課題がある。
 また、図3及び図4に示すように、データのコピーが必要なチャンネルは、インタリーブ設定が変更されたチャンネルだけである。しかしながら、上記サーバ30は、全てのデータのコピーを実行している。従って、データのコピーに時間がかかり、インタリーブ設定の変更のためのOSのメモリアクセスを含むトランザクションの停止時間、即ちサーバ30の停止時間が長くなるという課題がある。
 上記課題に鑑み、明細書に開示されたメモリ制御装置、情報処理装置及びメモリ制御装置の制御方法は、インタリーブ設定の変更のための情報処理装置の停止時間を短縮することを目的とする。
 上記目的を達成するため、明細書に開示されたメモリ制御装置は、データを第1の複数のメモリに分割して記憶する第1メモリ群と、前記データを第2の複数のメモリに分割して冗長に記憶する第2メモリ群とに接続するメモリ制御装置であって、前記第1の複数のメモリに接続する複数のチャンネルを有し、データを分割して、当該データの分割数に対応する個数のメモリに分割されたデータを読み書きする第1のインタリーブ設定に基づき、前記第1メモリ群にアクセスする第1の制御回路と、前記第2の複数のメモリに接続する複数のチャンネルを有し、データを分割して、当該データの分割数に対応する個数のメモリに分割されたデータを読み書きする第2のインタリーブ設定に基づき、前記第2メモリ群にアクセスする第2の制御回路と、前記第1メモリ群及び前記第2メモリ群に含まれるメモリの個数が変化した場合に、変化後のメモリの個数に基づいて、第3のインタリーブ設定を決定する決定手段と、前記第3のインタリーブ設定と前記第1及び第2のインタリーブ設定とを比較し、データの分割数が異なるチャンネルを特定する特定手段と、前記特定されたチャンネルに対応する部分の第3のインタリーブ設定を使って前記第1及び第2のインタリーブ設定を変更する変更手段と、前記第1のインタリーブ設定の変更に係るチャンネルに対応するメモリのデータを前記第2のインタリーブ設定の変更に係るチャンネルに対応するメモリにコピーし、前記第2のインタリーブ設定の変更に係るチャンネルに対応するメモリのデータを前記第1のインタリーブ設定の変更に係るチャンネルに対応するメモリにコピーするコピー手段とを備える。
 明細書に開示された情報処理装置は、データを第1の複数のメモリに分割して記憶する第1メモリ群と、前記データを第2の複数のメモリに分割して冗長に記憶する第2メモリ群と、前記第1及び第2のメモリ群に接続するメモリ制御装置と、前記メモリ制御装置を介して前記第1及び第2のメモリ群にデータを読み書きする演算処理装置とを有する情報処理装置であって、前記メモリ制御装置は、前記第1の複数のメモリに接続する複数のチャンネルを有し、データを分割して、当該データの分割数に対応する個数のメモリに分割されたデータを読み書きする第1のインタリーブ設定に基づき、前記第1メモリ群にアクセスする第1の制御回路と、前記第2の複数のメモリに接続する複数のチャンネルを有し、データを分割して、当該データの分割数に対応する個数のメモリに分割されたデータを読み書きする第2のインタリーブ設定に基づき、前記第2メモリ群にアクセスする第2の制御回路と、前記第1メモリ群及び前記第2メモリ群に含まれるメモリの個数が変化した場合に、変化後のメモリの個数に基づいて、第3のインタリーブ設定を決定する決定手段と、前記第3のインタリーブ設定と前記第1及び第2のインタリーブ設定とを比較し、データの分割数が異なるチャンネルを特定する特定手段と、前記特定されたチャンネルに対応する部分の第3のインタリーブ設定を使って前記第1及び第2のインタリーブ設定を変更する変更手段と、前記第1のインタリーブ設定の変更に係るチャンネルに対応するメモリのデータを前記第2のインタリーブ設定の変更に係るチャンネルに対応するメモリにコピーし、前記第2のインタリーブ設定の変更に係るチャンネルに対応するメモリのデータを前記第1のインタリーブ設定の変更に係るチャンネルに対応するメモリにコピーするコピー手段とを備える。
 明細書に開示されたメモリ制御装置の制御方法は、データを第1の複数のメモリに分割して記憶する第1メモリ群、及び前記データを第2の複数のメモリに分割して冗長に記憶する第2メモリ群に接続されるメモリ制御装置の制御方法であって、前記第1メモリ群及び前記第2メモリ群に含まれるメモリ数が変化した場合に、当該メモリ数の情報及びデータの経路に基づいて、データを分割して、当該データの分割数に対応する個数のメモリに分割されたデータを読み書きする第3のインタリーブ設定を決定し、前記第3のインタリーブ設定と前記メモリ制御装置に含まれる第1の制御回路の第1のインタリーブ設定及び前記メモリ制御装置に含まれる第2の制御回路の第2のインタリーブ設定とを比較し、前記第1の制御回路及び前記第2の制御回路の各々に含まれる複数のチャンネルのうち、データの分割数が異なるチャンネルを特定し、前記特定されたチャンネルに対応する部分の第3のインタリーブ設定を使って前記第1及び第2のインタリーブ設定を変更し、前記第1のインタリーブ設定の変更に係るチャンネルに対応するメモリのデータを前記第2のインタリーブ設定の変更に係るチャンネルに対応するメモリにコピーし、前記第2のインタリーブ設定の変更に係るチャンネルに対応するメモリのデータを前記第1のインタリーブ設定の変更に係るチャンネルに対応するメモリにコピーする。
 明細書に開示されたメモリ制御装置、情報処理装置及びメモリ制御装置の制御方法は、インタリーブ設定の変更のための情報処理装置の停止時間を短縮することができる。
サーバのインタリーブ設定を変更する方法を示す模式図である。 サーバのインタリーブ設定を変更する方法を示す模式図である。 メモリを追加した場合のインタリーブ設定変更前後のデータの状態を示す図である。 メモリを削減した場合のインタリーブ設定変更前後のデータの状態を示す図である。 本実施の形態に係るサーバ100のハードウェア構成を示すブロック図である。 サーバ100のインタリーブ設定の変更処理を示す模式図である。 サーバ100のインタリーブ設定の変更処理を示す模式図である。 サーバ100のインタリーブ設定の変更処理を示すフローチャートである。
 以下、図面を参照しながら本発明の実施の形態を説明する。
 本実施の形態では、図5に示すサーバ100のインタリーブ設定の変更について説明する。サーバ100は、再起動せずに、メモリの追加又は削減に伴うインタリーブ設定を最適に変更可能とするものである。インタリーブ設定とは、連続するアドレスのデータを分割して、データの分割数に対応する個数のメモリに当該分割されたデータを読み書きする設定である。以下、図5を用いて、サーバ100の動作について説明する。
 図5は、本実施の形態に係るサーバのハードウェア構成を示すブロック図である。
 サーバ100は、CPU(Central Processing Unit)101、I/O(Input/Output)デバイス102、メモリコントローラ103、制御レジスタ104、インタリーブ制御回路105、二重化制御回路107、アクセス制御回路109,116(第1の制御回路,第2の制御回路)、及びメモリ114A~114E,121A~121Eから構成されている。メモリ114A~114Eはメモリ群A114(第1メモリ群)を形成し、またメモリ121A~121Eはメモリ群B121(第2メモリ群)を形成する。さらにアクセス制御回路109とメモリ群A114は記憶回路群A(Side A)108を形成し、アクセス制御回路116とメモリ群B121は記憶回路群B(Side B)115を形成する。そして、記憶回路群A108と記憶回路群B115はミラーリング構成(二重化構成)をとっている。つまり、サーバ100は冗長化したメモリ群A114及びメモリ群B121を有している。
 ここで、サーバ100は、高信頼性を実現するためにメモリ群A114とメモリ群B121との間で二重化しており、メモリが一方のメモリ群に新たに追加される場合又は削減される場合には、二重化を保つように他方のメモリ群に対しても対称に追加又は削減される。また、サーバ100では、パーティション稼働中にメモリの追加又は削減が可能である。
 そして、サーバ100は、メモリインタリーブを用いた書き込み制御により、連続するアドレスのデータをメモリ群A114に記憶する。同様に、サーバ100は、メモリインタリーブを用いた書き込み制御により、同一の連続するアドレスのデータをメモリ群B121にも冗長して記憶する。より具体的には、アクセス制御回路109は、連続するアドレスのデータをメモリ114A~114Eにインタリーブ制御を用いて書き込み、又はインタリーブ制御を用いて連続するアドレスのデータを読み出すことにより、データアクセスを行う。ここで、メモリインタリーブとは、メモリコントローラ103が連続するアドレスを有するデータを一定の分割単位であるウェイごとに分割し、分割したデータを当該ウェイへ書き込み、又は当該ウェイから読み込むことである。換言すると、メモリ114A~114Fには連続したメモリアドレスが割り当てられている。そして、メモリコントローラ103が、メモリ114A,114Bの境界、メモリ114B,114Cの境界、メモリ114C,114Dの境界、及びメモリ114D,114Eの境界をまたいで連続アドレスへデータアクセスする。同様に、アクセス制御回路116は、メモリ121A~121Eに連続するアドレスのデータについてインタリーブ制御を用いて書き込み、又はインタリーブ制御を用いて読み出すことにより、データアクセスを行う。即ち、メモリ121A~121Eには連続したメモリアドレスが割り当てられている。メモリコントローラ103は、メモリ121A,121Bの境界、メモリ121B,121Cの境界、メモリ121C,121Dの境界、及びメモリ121D,121Eの境界をまたいで連続アドレスへデータアクセスする。本実施の形態では、メモリ群A114とメモリ群B121はミラーリングにより二重化されており、メモリ114A,121Aの組には同一のデータが記憶されている。同様に、メモリ114B,121Bの組、メモリ114C,121Cの組、メモリ114D,121Dの組、及びメモリ114E,121Eの組、それぞれ同一のデータが記憶されている。
 以下、サーバ100が有する各ユニットの動作、機能について説明し、サーバ100が実行するメモリインタリーブの再設定手順を説明する。
 以下、CPU101について説明する。演算処理装置としてのCPU101は、サーバ100における演算処理を行う。サーバ100が実行する動作は、CPU101が実行するプログラムが有する命令やサーバ100に接続されるクライアント装置からの要求などに応じたデータのメモリからの読み出し、メモリへの書き込みなどである。サーバ100は、ネットワークコントローラ等のI/Oデバイス102を介してクライアント装置などの外部装置とデータのやりとりを行う。そして、CPU101はメモリコントローラ103を介してメモリ114A~114E,121A~121Eのいずれかに対するアクセスを行う。このとき、メモリコントローラ103は、メモリ114A~114E,121A~121Eのいずれかからデータを読み出し、又はメモリ114A~114E,121A~121Eのいずれかへデータを書きこむ。
 CPU101は、インタリーブ設定を変更するに際して、メモリ114A~114E,121A~121Eを用いたデータ処理を停止するようにメモリコントローラ103を制御する。具体的には、CPU101は、サーバ100をスリープモードに設定して、図6に示すOS(Operating System)201によるメモリアクセス等のトランザクションを停止する。サーバ100上で実行されるソフトウェアの側面から見ると、図6に示すドライバ202がOS201のトランザクションを停止する機能を有するソフトウェアであり、ドライバ202がOS201のトランザクションを停止する。ここで、トランザクションとは、サーバ100が実行するいくつかのセッションをひとまとまりにした処理のことである。またセッションは、サーバ100において上記のクライアント装置からの要求によりデータベースなどを更新する際に発行されるデータベース管理システムにおける問い合わせ及び当該問い合わせに対する応答の単位である。また、ドライバ202はOS201に組み込まれている。
 CPU101はメモリのインタリーブ設定を、例えば、1-Wayインタリーブから2-Wayインタリーブに変更した場合、インタリーブ設定の変更に関連するメモリ114E,121E、及び新たに追加したメモリ114F,121Fを用いたデータ処理を再開する。
 次にメモリコントローラ103について説明する。メモリコントローラ103は、制御レジスタ104、インタリーブ制御回路105、ROM(Read Only Memory)106、二重化制御回路107、及びアクセス制御回路109,116を有している。インタリーブ制御回路105は、リード/ライト制御部122(読出制御手段)、インタリーブ制御部123(変更手段)及びデータコピー制御部124(コピー手段)を備えている。二重化制御回路107は、データ比較部125を備えている。アクセス制御回路109は、リード/ライト設定部110、インタリーブ設定部111、メモリコピー部112、及びメモリアクセス部113を備えている。アクセス制御回路116は、リード/ライト設定部117、インタリーブ設定部118、メモリコピー部119、及びメモリアクセス部120を備えている。また、アクセス制御回路109は、メモリ群A114にアクセスするためのチャンネル#0~#5を備えている。同様に、アクセス制御回路116は、メモリ群B121にアクセスするためのチャンネル#0~#5を備えている。ここで、アクセス制御回路109が備えるメモリ群A114にアクセスするための「チャンネル#0~#5」と、アクセス制御回路116が備えるメモリ群B121にアクセスするための「チャンネル#0~#5」とは名称が同一であるが、インタリーブグループ番号の設定が異なる。インタリーブグループ番号については、後述する。
 制御レジスタ104には、メモリコントローラ103が処理を実行するための設定情報が記憶されている。当該設定情報に基づき、インタリーブ制御回路105、二重化制御回路107、及びアクセス制御回路109,116が処理をそれぞれ実行する。
 インタリーブ制御回路105のリード/ライト制御部122は、リード/ライト設定部110,117のそれぞれのデータのリード/ライトを制御する。例えば、リード/ライト制御部122は、リード/ライト設定部110に記憶回路群A108から読み出す方向のメモリアクセスを禁止する。この場合、アクセス制御回路109では、メモリ群A114からの読み出し方向のアクセスが禁止される。同様に、リード/ライト制御部122は、リード/ライト設定部117に記憶回路群B115から読み出す方向のメモリアクセスを禁止する。この場合、アクセス制御回路116では、メモリ群B121からの読み出し方向のアクセスが禁止される。
 インタリーブ制御回路105のインタリーブ制御部123は、二重化している記憶回路群A108、記憶回路群B115ごとに、即ちSideごとにメモリインタリーブを設定する。具体的には、インタリーブ制御部123は、アクセス制御回路109,116のチャンネル単位でインタリーブ設定を実施することにより、インタリーブ設定をチャンネル単位で変更できる。アクセス制御回路109,116のチャンネル単位のインタリーブ設定は、それぞれインタリーブ設定部111,118に格納される。
 インタリーブ制御回路105のデータコピー制御部124は、記憶回路群(Side)単位で又はチャンネル単位で行われるデータのコピーを制御する。例えば、メモリ114Aに記憶されているデータをメモリ121Aにコピーする場合、データコピー制御部124は、メモリ114Aに記憶されているデータを読み出すようにメモリコピー部112を制御し、その読み出されたデータをメモリ121Aに書き込むようにメモリコピー部119を制御する。
 このように、インタリーブ制御回路105は、1)Side単位又はチャンネル単位でインタリーブ設定を制御する機能、2)Side単位でアクセス制御回路109,116のデータのリード/ライトを設定する機能、及び3)Side単位又はチャンネル単位でデータをコピーする機能を有している。
 二重化制御回路107のデータ比較部125は、メモリアクセス部113,120が二重化しているメモリ群A114、メモリ群B121からそれぞれ読み出したデータが同一であるかのチェックを行う。また、二重化制御回路107は、データ比較部125のチェック機能の停止及び再開を行う。さらに、二重化制御回路107は、記憶回路群A108、記憶回路群B115の二重化状態を保つ制御を行う。二重化制御回路107が実行する二重化制御とは、メモリ群A114とメモリ群B121に記憶するデータを常に同一にする制御であり、メモリ群A114にインタリーブ制御を用いてデータを書き込んだら、メモリ群B121にもインタリーブ制御を用いて同一のデータを同時に書き込む制御である。
 記憶回路群A108のアクセス制御回路109は、メモリ114A~114Eが記憶するデータへのアクセスを制御する。具体的には、アクセス制御回路109のリード/ライト設定部110には、読み出し/書き込みの設定情報が格納されている。アクセス制御回路109のインタリーブ設定部111にはメモリインタリーブの設定情報が格納されている。アクセス制御回路109のメモリコピー部112は、メモリ114A~114Eからデータを読み出し、データコピー制御部124を介してメモリ121A~121Eに出力する、又はメモリ121A~121Eのデータをメモリ114A~114Eにコピーする。アクセス制御回路109のメモリアクセス部113は、メモリ114A~114Eのデータを読み出し、データ比較部125に出力する。
 記憶回路群B115のアクセス制御回路116はメモリ121A~121Eのデータへのアクセスを制御する。具体的には、アクセス制御回路116のリード/ライト設定部117には、読み出し/書き込みの設定情報が格納されている。アクセス制御回路116のインタリーブ設定部118にはメモリインタリーブの設定情報が格納されている。アクセス制御回路116のメモリコピー部119は、メモリ121A~121Eからデータを読み出し、データコピー制御部124を介してメモリ114A~114Eに出力する、又はメモリ114A~114Eのデータをメモリ121A~121Eにコピーする。アクセス制御回路116のメモリアクセス部120は、メモリ121A~121Eのデータを読み出し、データ比較部125に出力する。
 図6は、サーバ100上で動作するOS201、ドライバ202、ファームウェア203、及びサーバ100に含まれるメモリコントローラ103それぞれの関係を示す。
 図6に示すファームウェア203(決定手段、特定手段)は、図5に示すサーバ100に内蔵されたROM106に記憶される。ファームウェア203はハードウェアの起動処理や終了処理等の基本的な制御を行なうためにサーバ100に組み込まれたソフトウェアであり、メモリコントローラ103に接続されるCPU101が実行するソフトウェアである。すなわち、ファームウェア203の処理は、メモリコントローラ103に接続されるCPU101が実行することにより実現される。
 CPU101上で動作するファームウェア203は、メモリコントローラ103のインタリーブ設定、インタリーブの再設定に際して行うデータのコピー処理(データのメモリ114A~114E,121A~121Eそれぞれへの書き込み処理)、コピー処理が終了したことをドライバ202に通知する処理などを実行する。さらに、ファームウェア203は、実装されているメモリ構成での最適なインタリーブ設定(第3のインタリーブ設定)とアクセス制御回路109又は116に設定されている現在のインタリーブ設定(第1及び第2のインタリーブ設定)とを比較し、データの分割数(Way数)が異なるチャンネルを特定する処理を実行する。また、ファームウェア203は、Side単位で又はチャンネル単位で最適なインタリーブ設定をインタリーブ制御回路105に設定する処理を実行する。
 ここで、実装されているメモリ構成での最適なインタリーブ設定について説明する。ファームウェア203及びアクセス制御回路109,116は、図6に示すように、インタリーブ設定として、チャンネル番号とインタリーブグループ番号との関係を示すデータを有する。チャンネル番号は、各チャンネルを識別する番号である。インタリーブグループ番号とは、各チャンネルが連続するデータのグループに属するか又は異なるデータのグループに属するかを識別するための番号である。例えば、4-Wayインタリーブ設定では、連続するアドレスのデータを4分割して、チャンネル番号#0~#3のチャンネルを介して4個のメモリにそれぞれ分割されたデータが書き込まれるので、チャンネル番号#0~#3は連続するデータのグループに属する。従って、4つのチャンネル番号#0~#3に、共通のインタリーブグループ番号「0」が割り当てられている。また、チャンネル番号#4のチャンネルは、4-Wayインタリーブ設定で使用されないので、チャンネル番号#0~#3のチャンネルと異なるデータのグループに属する。従って、チャンネル番号#4に、「0」と異なるインタリーブグループ番号「1」が割り当てられている。インタリーブ設定は、チャンネル番号とインタリーブグループ番号との関係を示すデータであるので、ファームウェア203は、複数のインタリーブ設定を比較するときに、データの分割数が異なるチャンネルを特定し易くなる。
 CPU101上で動作するファームウェア203は、サーバ100に実装されているメモリの情報(具体的には、一つのメモリ群に含まれるメモリの個数情報)及びデータの経路に基づいて、データの分割数(Way数)を決めることにより、最適なインタリーブ設定を決定する。例えば、データの分割数(Way数)は、1、2、4、8、16…のように2のn乗(n:0以上の整数)になる。また、メモリアクセスの高速化を図る観点から、ファームウェア203は、例えば、データの分割数を、2のn乗の組み合わせであり且つ一つのメモリ群に含まれるメモリの個数を超えない範囲で、最大値に設定する。例えば、メモリ群A114に含まれるメモリが5つの場合、データの分割数は2のn乗の組み合わせであり且つメモリの個数を超えない範囲で最大値に設定されるので、ファームウェア203は、データの分割数を「4」と「1」に決める。その後、メモリ群A114に含まれるメモリが1つ増加し6つになった場合、データの分割数の候補は「4」「1」「1」又は「4」「2」となる。メモリが5つ又は6つの場合でも、4つに分割されるデータの経路は変動しないので、ファームウェア203は、メモリが6つの場合には、残り2つのメモリに格納されるデータの分割数を2のn乗の組み合わせであり且つメモリの個数を超えない範囲で最大値に設定する。即ち、ファームウェア203は、データの分割数を「4」と「2」に決める。これにより、最適なインタリーブ設定は、4-Wayインタリーブ設定と2-Wayインタリーブ設定の組み合わせになる。なお、データの最適な分割数について、ここでは2のn乗(n:0以上の整数)であり且つメモリの個数を超えない範囲で最大値に設定する例を示したが、例えば、mのn乗(m,n:0以上の整数)の組み合わせであり且つメモリの個数を超えない範囲で最大値に設定しても良い。
 サーバ100のメモリ群A114及びメモリ群B121に新たにメモリ114F,121Fをそれぞれ追加する場合、メモリコントローラ103は、CPU101がOS201のメモリアクセスを含むトランザクションを停止した状態で、記憶回路群A108及び記憶回路群B115を交互にインタリーブ設定を変更する。より具体的にはメモリ群A114及びメモリ群B121に新たにメモリ114F,121Fをそれぞれ追加する場合、ファームウェア203が、追加されたメモリ構成での最適なインタリーブ設定を決定し、最適なインタリーブ設定とアクセス制御回路116に設定されている現在のインタリーブ設定とを比較し、データの分割数が異なるチャンネルを特定する。そして、インタリーブ制御回路115が、特定されたチャンネルに対応するアクセス制御回路116のインタリーブ設定を変更し、特定されたチャンネルに対応するメモリ群A114のデータを、特定されたチャンネルに対応するメモリ群B121に新たなインタリーブ設定でコピーする。例えば、インタリーブ制御回路115は、2つの1-Wayインタリーブ設定のチャンネル#4,#5に対応するメモリ114E,114Fのデータをメモリ121E,121Fに2-Wayインタリーブ設定でコピーする。さらに、インタリーブ制御回路115が、特定されたチャンネルに対応するアクセス制御回路109のインタリーブ設定を変更し、特定されたチャンネルに対応するメモリ群B121のデータを、特定されたチャンネルに対応するメモリ群A114に新たなインタリーブ設定でコピーする。例えば、インタリーブ制御回路115は、チャンネル#4,#5に対応するメモリ121E,121Fのデータをメモリ114E,114Fに2-Wayインタリーブ設定でコピーする。このように、インタリーブ制御回路115は、データの分割数が異なるチャンネルに対応するアクセス制御回路116,109のインタリーブ設定を順番に変更し、データの分割数が異なるチャンネルに対応するメモリのデータを新たなインタリーブ設定を用いてコピーすることにより、サーバ100におけるメモリインタリーブの再設定を行う。従って、メモリ数の変更に応じて変更されるインタリーブ設定に関連するチャンネルのデータのみがコピーされる。メモリ数の変更に応じたメモリインタリーブの再設定は、メモリ数が増加したら増加した数に合わせてデータを分割して新たなインタリーブ設定を用いてメモリに記憶し、メモリ数が削減したら削減した数に合わせてデータを分割して新たなインタリーブ設定を用いてメモリに記憶することである。
 以下、図6~8を参照しながら、インタリーブ設定の変更処理を説明する。図6及び図7は、サーバ100のインタリーブ設定の変更処理を示す模式図である。図8は、サーバ100のインタリーブ設定の変更処理を示すフローチャートである。
 図6では、サーバ100にメモリ114F、121Fをそれぞれ追加してから、アクセス制御回路116のインタリーブ設定の変更及び記憶回路群A108から記憶回路群B115へデータのコピーが完了するまでの状態を示している。また、図7では、アクセス制御回路109のインタリーブ設定の変更及び記憶回路群B115から記憶回路群A108へデータのコピーが完了するまでの状態を示している。本実施の形態では、サーバ100にメモリ114F、121Fをそれぞれ追加することによって、チャンネル#4,#5に対応する2つの1-Wayインタリーブ設定を2-Wayインタリーブ設定に変更する場合を説明する。n-Wayインタリーブ設定とは、連続するアドレスのデータをn分割して、n個のメモリに書き込み/n個のメモリから読み出す設定のことである。また、上記に示したようにドライバ202はCPU101で動作するソフトウェアであり、またファームウェア203はCPU101上で動作するソフトウェアである。そのため、以下ドライバ202の処理手順は、CPU101がドライバ202を実行することにより実現される。またファームウェア203の処理手順は、CPU101がファームウェア203を実行することにより実現される。
 まず、サーバ100にメモリ114F及び121Fをそれぞれ追加する。メモリ114F,121Fがそれぞれ記憶回路群A108,記憶回路群B115に追加されると、ファームウェア203及びメモリコントローラ103は追加されたメモリ114F及び121Fを認識し、初期化を行う(ステップS1)。OS201はファームウェア203及びメモリコントローラ103から追加されたメモリ114F及び121Fの情報をそれぞれ受け取ることにより、メモリ114F及び121Fをハードウェアの構成として認識する(ステップS2)。
 アクセス制御回路109及び116のインタリーブ設定を変更するため、ドライバ202は稼動しているOS201のメモリアクセスを含むトランザクションを停止し、トランザクションを停止した旨をファームウェア203に通知する(ステップS3)。ドライバ202は、サーバ100をスリープモードに設定してOS201によるメモリアクセスを含むトランザクションを停止する。ハードウェアの動作としては、CPU101がOS201のトランザクションを停止する。換言すれば、CPU101がOS201のトランザクションを停止することにより、記憶回路群A108及び記憶回路群B115に記憶しているデータを確定して、メモリコントローラ103のインタリーブ制御回路105がアクセス制御回路109,116のインタリーブ設定を変更する。記憶回路群A108及び記憶回路群B115に記憶するデータを確定するために、CPU101が記憶回路群A108及び記憶回路群B115を用いたデータ処理を停止する。
 CPU101上で動作するファームウェア203は、メモリ追加後の最適なインタリーブ設定を決定する(ステップS4)。具体的には、ファームウェア203は、実装されているメモリの情報(具体的には、一つのメモリ群に含まれるメモリの個数情報)及びデータの経路に基づいて、連続するアドレスを有するデータの分割数を決めることにより、最適なインタリーブ設定を決定する。データの分割数はmのn乗(m,n:0以上の整数)の組み合わせになるので、記憶回路群A108及び記憶回路群B115にそれぞれ6つのメモリが実装されている状態では、最適なインタリーブ設定は、4-Wayインタリーブ設定と2-Wayインタリーブ設定の組み合わせになる。図6では、最適なインタリーブ設定は、ファームウェア203に含まれている、チャンネル番号とインタリーブグループ番号との関係を示すデータである。ファームウェア203は、決定された最適なインタリーブ設定をアクセス制御回路116の現在のインタリーブ設定と比較し、データの分割数が異なるチャンネル番号を特定する(ステップS5)。図6では、データの分割数が異なるチャンネルのチャンネル番号は「#4」及び「#5」である。
 ファームウェア203は、メモリ群A114及びメモリ群B121の読み出しデータの一致チェックを停止する(ステップS6)。メモリ群A114及びメモリ群B121が二重化された状態で、いずれか一方のメモリ群からのデータの読み出しを禁止すると、二重化されたメモリ群A112及びメモリ群B113からの読み出しデータが異なる。二重化制御回路107がこの状態をハードウェア障害として検知しないようにするために、ファームウェア203は、二重化制御回路107におけるメモリ群A114及びメモリ群B121からの読み出しデータの一致チェックを抑止する。
 ファームウェア203は、ステップS5で特定されたチャンネル番号に対応する最適なインタリーブ設定をインタリーブ制御回路105のインタリーブ制御部123に設定する(ステップS7)。インタリーブ制御回路105のインタリーブ制御部123は、ファームウェア203から受け取ったチャンネル番号に対応する最適なインタリーブ設定を保存する(ステップS8)。図6では、ファームウェア203から受け取った又はファームウェア203で特定されたチャンネル番号に対応する最適なインタリーブ設定は、チャンネル番号「#4」,「#5」とインタリーブグループ番号「1」との関係を示すデータである。
 インタリーブ制御回路105のリード/ライト制御部122は、アクセス制御回路116に対して、記憶回路群B115からの読み出し(Read)方向のアクセスを禁止する(ステップS9)。記憶回路群B115のメモリ群121にデータが配置された後に、アクセス制御回路116のインタリーブ設定が変更されると、書き込んだデータと読み出したデータとの不整合が生じる。よって、リード/ライト制御部122は、アクセス制御回路116のデータ読み出しを禁止することで、アクセス制御回路116に不整合の生じているデータを使用できなくしている。ここでは、インタリーブ制御回路105は、アクセス制御回路116に対して、記憶回路群B115からの読み出し(Read)方向のアクセスを禁止した後、アクセス制御回路109に対して、記憶回路群A108からの読み出し(Read)方向のアクセスを禁止する。しかし、このアクセスの禁止の順番は、一例である。インタリーブ制御回路105は、アクセス制御回路109に対して、記憶回路群A108からの読み出し(Read)方向のアクセスを禁止した後、アクセス制御回路116に対して、記憶回路群B115からの読み出し(Read)方向のアクセスを禁止してもよい。
 インタリーブ制御回路105のインタリーブ制御部123は、ファームウェア203で特定されたチャンネル番号に対応する最適なインタリーブ設定を使ってアクセス制御回路116のインタリーブ設定を変更する(ステップS10)。図6の例では、アクセス制御回路116のチャンネル番号「#5」に対応するインタリーブグループ番号が「2」から「1」に変更されている。つまり、チャンネル番号「#5」に対応するインタリーブグループ番号が「1」に変更されるので、インタリーブグループ番号「1」が設定されているチャンネル番号「#4」及び「#5」に対応するインタリーブ設定は、2つの1-Wayインタリーブ設定から1つの2-Wayインタリーブ設定に変更される。尚、ファームウェア203が、チャンネル番号「#4」及び「#5」に対応するインタリーブ設定を2つの1-Wayインタリーブ設定から1つの2-Wayインタリーブ設定に変更したことによって、CPU101からはメモリ上のデータにアクセスするアドレスが変更されたように見える。そのため、OS201、ファームウェア203、ドライバ202から見ると、記憶回路群B115に記憶している、インタリーブ設定変更後のアドレスに格納されているデータは、インタリーブ設定変更前のデータとは異なったデータとして見える。
 インタリーブ制御回路105のデータコピー制御部124は、アクセス制御回路109の変更されるべきインタリーブ設定に係るチャンネル番号(「#4」及び「#5」)に対応するメモリ114E,114Fのデータを、アクセス制御回路116の変更されたインタリーブ設定に係るチャンネル番号(「#4」及び「#5」)に対応するメモリ121E,121Fにコピーする(ステップS11)。インタリーブ制御回路105のデータコピー制御部124がメモリ114E,114Fから読み出すデータは、OS201のメモリアクセスを含むトランザクションを停止した時のデータである。
 インタリーブ制御回路105のリード/ライト制御部122は、アクセス制御回路116に対する記憶回路群B115からの読み出し(Read)方向のアクセス禁止を解除する(ステップS12)。ファームウェア203やインタリーブ制御回路105のデータコピー制御部124はコピー終了時にコピーが正常に終了したか否かの判定を行っても良い。
 次に、インタリーブ制御回路105のリード/ライト制御部122は、アクセス制御回路109に対して、記憶回路群A108からの読み出し(Read)方向のアクセスを禁止する(ステップS13)。記憶回路群A108のメモリ群114にデータが配置された後に、アクセス制御回路109のインタリーブ設定が変更されると、書き込んだデータと読み出したデータとの不整合が生じる。よって、リード/ライト制御部122は、アクセス制御回路109のデータ読み出しを禁止することで、アクセス制御回路109に不整合の生じているデータを使用できなくしている。
 インタリーブ制御回路105のインタリーブ制御部123は、ファームウェア203で特定されたチャンネル番号に対応する最適なインタリーブ設定を使ってアクセス制御回路109のインタリーブ設定を変更する(ステップS14)。図7の例では、アクセス制御回路109のチャンネル番号「#5」に対応するインタリーブグループ番号が「2」から「1」に変更されている。つまり、チャンネル番号「#「#5」に対応するインタリーブグループ番号が「1」に変更されるので、チャンネル番号「#4」及び「#5」に対応するインタリーブ設定は2つの1-Wayインタリーブ設定から1つの2-Wayインタリーブ設定に変更される。
 インタリーブ制御回路105のデータコピー制御部124は、アクセス制御回路116の変更されたインタリーブ設定に係るチャンネル番号(「#4」及び「#5」)に対応するメモリ121E,121Fのデータを、アクセス制御回路109の変更されたインタリーブ設定に係るチャンネル番号(「#4」及び「#5」)に対応するメモリ114E,114Fにコピーする(ステップS15)。インタリーブ制御回路105のデータコピー制御部124がメモリ121E,121Fから読み出すデータは、OS201のメモリアクセスを含むトランザクションを停止した時のデータである。
 インタリーブ制御回路105のリード/ライト制御部122は、アクセス制御回路109に対する記憶回路群A108の読み出し(Read)方向のアクセス禁止を解除する(ステップS16)。インタリーブ制御回路105のデータコピー制御部124は、ファームウェア203にコピーが終了したことを通知する(ステップS17)。ここでも、ファームウェア203やインタリーブ制御回路105のデータコピー制御部124はコピー終了時にコピーが正常に終了したか判定を行っても良い。
 ファームウェア203はメモリ群A114及びメモリ群B121の読み出しデータの一致チェックを再開する(ステップS18)。ファームウェア203はインタリーブ設定の変更処理が終了したことをドライバ202に通知し、ドライバ202はOS201に対してメモリアクセスを含むトランザクションの再開を要求する(ステップS19)。CPU101は、ドライバ202からのOS201に対するトランザクションの再開要求に応じて、メモリアクセスを含むトランザクションを再開する。つまり、サーバ100はスリープモードから復帰して、メモリ群A114及びメモリ群B121を用いたデータ処理を再開する。尚、上記の各ステップで取得する情報は、OS201やメモリコントローラ103の中に保存されており、ドライバ202やファームウェア203から適宜取得可能である。
 図6~8では、メモリが増加される場合のインタリーブ設定の変更処理を説明したが、メモリを削減する場合も、同様に図6~8のインタリーブ設定の変更処理が実行される。つまり、図6~8のインタリーブ設定の変更処理は、メモリの個数が変化するときに実行される。
 以上説明したように、本実施の形態によれば、最適なインタリーブ設定に従ってアクセス制御回路109,116のインタリーブ設定の一部が変更され、インタリーブ設定が変更されたチャンネルに対応するデータのみがコピーされるので、データのコピー時間やインタリーブ設定の変更のためのサーバ100の停止時間を短縮することができる。また、メモリコントローラ103内でデータコピーが完了し、サーバ100の再起動を必要とせずにインタリーブ設定の変更が完了するので、データのコピー時間やインタリーブ設定の変更のためのサーバ100の停止時間を短縮することができる。
 また、サーバ100は、冗長化したメモリのインタリーブ設定を交互に変更することによって、再起動を必要とせずに、インタリーブ設定を最適に変更することができる。さらに、サーバ100は、メモリを増減した場合であっても、短時間でインタリーブの再設定を行うことができ、メモリアクセス帯域幅を向上することができる。
100 サーバ
101 CPU
102 I/Oデバイス
103 メモリコントローラ
104 制御レジスタ
105 インタリーブ制御回路
107 二重化制御回路
108 記憶回路群A(Side A)
109,116 アクセス制御回路
114 メモリ群A
114A~114E,121A~121E メモリ
115 記憶回路群B(Side B)
121 メモリ群B
122 リード/ライト制御部
123 インタリーブ制御部
124 データコピー制御部

Claims (8)

  1.  データを第1の複数のメモリに分割して記憶する第1メモリ群と、前記データを第2の複数のメモリに分割して冗長に記憶する第2メモリ群とに接続するメモリ制御装置であって、
     前記第1の複数のメモリに接続する複数のチャンネルを有し、データを分割して、当該データの分割数に対応する個数のメモリに分割されたデータを読み書きする第1のインタリーブ設定に基づき、前記第1メモリ群にアクセスする第1の制御回路と、
     前記第2の複数のメモリに接続する複数のチャンネルを有し、データを分割して、当該データの分割数に対応する個数のメモリに分割されたデータを読み書きする第2のインタリーブ設定に基づき、前記第2メモリ群にアクセスする第2の制御回路と、
     前記第1メモリ群及び前記第2メモリ群に含まれるメモリの個数が変化した場合に、変化後のメモリの個数に基づいて、第3のインタリーブ設定を決定する決定手段と、
     前記第3のインタリーブ設定と前記第1及び第2のインタリーブ設定とを比較し、データの分割数が異なるチャンネルを特定する特定手段と、
     前記特定されたチャンネルに対応する部分の第3のインタリーブ設定を使って前記第1及び第2のインタリーブ設定を変更する変更手段と、
     前記第1のインタリーブ設定の変更に係るチャンネルに対応するメモリのデータを前記第2のインタリーブ設定の変更に係るチャンネルに対応するメモリにコピーし、前記第2のインタリーブ設定の変更に係るチャンネルに対応するメモリのデータを前記第1のインタリーブ設定の変更に係るチャンネルに対応するメモリにコピーするコピー手段と
     を備えることを特徴とするメモリ制御装置。
  2.  前記メモリ制御装置において、
    前記決定手段は、前記第3のインタリーブ設定におけるデータの分割数を、mのn乗であり(m,n:0以上の整数)且つ前記第1メモリ群又は前記第2メモリ群に含まれるメモリの個数を超えない範囲で、最大値に設定することを特徴とする請求項1に記載のメモリ制御装置。
  3.  前記メモリ制御装置において、
    前記第1~第3のインタリーブ設定は、いずれも前記複数のチャンネルの各々を識別するチャンネル番号と、各チャンネルが連続するデータのグループに属するか又は異なるデータのグループに属するかを識別するための番号とを含むことを特徴とする請求項1又は2に記載のメモリ制御装置。
  4.  前記メモリ制御装置において、
    前記変更手段が、前記特定されたチャンネルに対応する部分の第3のインタリーブ設定を使って前記第1のインタリーブ設定を変更した後に、前記コピー手段は、前記第2のインタリーブ設定の変更に係るチャンネルに対応するメモリのデータを前記第1のインタリーブ設定の変更に係るチャンネルに対応するメモリにコピーし、
     前記変更手段が前記特定されたチャンネルに対応する部分の第3のインタリーブ設定を使って前記第2のインタリーブ設定を変更した後に、前記コピー手段は、前記第1のインタリーブ設定の変更に係るチャンネルに対応するメモリにコピーされたデータを前記第2のインタリーブ設定の変更に係るチャンネルに対応するメモリにコピーすることを特徴とする請求項1乃至3のいずれか1項に記載のメモリ制御装置。
  5.  前記メモリ制御装置において、
    前記コピー手段は、コピー終了時にデータのコピーが正常に終了したか否かを判定することを特徴とする請求項1乃至4のいずれか1項に記載のメモリ制御装置。
  6.  前記メモリ制御装置は、
    前記第1メモリ群及び前記第2メモリ群からのデータ読み出しを禁止する読出制御手段をさらに備え、
     前記変更手段が前記特定されたチャンネルに対応する部分の第3のインタリーブ設定を使って前記第1のインタリーブ設定を変更する前に、前記読出制御手段は、前記第1メモリ群からのデータ読み出しを禁止し、前記変更手段が前記特定されたチャンネルに対応する部分の第3のインタリーブ設定を使って前記第2のインタリーブ設定を変更する前に、前記読出制御手段は、前記第2メモリ群からのデータ読み出しを禁止することを特徴とする請求項1乃至5のいずれか1項に記載のメモリ制御装置。
  7.  データを第1の複数のメモリに分割して記憶する第1メモリ群と、前記データを第2の複数のメモリに分割して冗長に記憶する第2メモリ群と、前記第1及び第2のメモリ群に接続するメモリ制御装置と、前記メモリ制御装置を介して前記第1及び第2のメモリ群にデータを読み書きする演算処理装置とを有する情報処理装置であって、
     前記メモリ制御装置は、
     前記第1の複数のメモリに接続する複数のチャンネルを有し、データを分割して、当該データの分割数に対応する個数のメモリに分割されたデータを読み書きする第1のインタリーブ設定に基づき、前記第1メモリ群にアクセスする第1の制御回路と、
     前記第2の複数のメモリに接続する複数のチャンネルを有し、データを分割して、当該データの分割数に対応する個数のメモリに分割されたデータを読み書きする第2のインタリーブ設定に基づき、前記第2メモリ群にアクセスする第2の制御回路と、
     前記第1メモリ群及び前記第2メモリ群に含まれるメモリの個数が変化した場合に、変化後のメモリの個数に基づいて、第3のインタリーブ設定を決定する決定手段と、
     前記第3のインタリーブ設定と前記第1及び第2のインタリーブ設定とを比較し、データの分割数が異なるチャンネルを特定する特定手段と、
     前記特定されたチャンネルに対応する部分の第3のインタリーブ設定を使って前記第1及び第2のインタリーブ設定を変更する変更手段と、
     前記第1のインタリーブ設定の変更に係るチャンネルに対応するメモリのデータを前記第2のインタリーブ設定の変更に係るチャンネルに対応するメモリにコピーし、前記第2のインタリーブ設定の変更に係るチャンネルに対応するメモリのデータを前記第1のインタリーブ設定の変更に係るチャンネルに対応するメモリにコピーするコピー手段と
     を備えることを特徴とする情報処理装置。
  8.  データを第1の複数のメモリに分割して記憶する第1メモリ群、及び前記データを第2の複数のメモリに分割して冗長に記憶する第2メモリ群に接続されるメモリ制御装置の制御方法であって、
     前記第1メモリ群及び前記第2メモリ群に含まれるメモリ数が変化した場合に、当該メモリ数の情報及びデータの経路に基づいて、データを分割して、当該データの分割数に対応する個数のメモリに分割されたデータを読み書きする第3のインタリーブ設定を決定し、
     前記第3のインタリーブ設定と前記メモリ制御装置に含まれる第1の制御回路の第1のインタリーブ設定及び前記メモリ制御装置に含まれる第2の制御回路の第2のインタリーブ設定とを比較し、前記第1の制御回路及び前記第2の制御回路の各々に含まれる複数のチャンネルのうち、データの分割数が異なるチャンネルを特定し、
     前記特定されたチャンネルに対応する部分の第3のインタリーブ設定を使って前記第1及び第2のインタリーブ設定を変更し、
     前記第1のインタリーブ設定の変更に係るチャンネルに対応するメモリのデータを前記第2のインタリーブ設定の変更に係るチャンネルに対応するメモリにコピーし、前記第2のインタリーブ設定の変更に係るチャンネルに対応するメモリのデータを前記第1のインタリーブ設定の変更に係るチャンネルに対応するメモリにコピーする、
     ことを特徴とするメモリ制御装置の制御方法。
PCT/JP2010/063773 2010-08-13 2010-08-13 メモリ制御装置、情報処理装置及びメモリ制御装置の制御方法 WO2012020505A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP10855906.3A EP2605143A4 (en) 2010-08-13 2010-08-13 MEMORY CONTROL DEVICE, INFORMATION PROCESSING DEVICE AND CONTROL METHOD FOR A MEMORY CONTROL DEVICE
PCT/JP2010/063773 WO2012020505A1 (ja) 2010-08-13 2010-08-13 メモリ制御装置、情報処理装置及びメモリ制御装置の制御方法
JP2012528558A JP5360301B2 (ja) 2010-08-13 2010-08-13 メモリ制御装置、情報処理装置及びメモリ制御装置の制御方法
US13/758,289 US20130145111A1 (en) 2010-08-13 2013-02-04 Memory control device, information processing device, and control method for memory control device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/063773 WO2012020505A1 (ja) 2010-08-13 2010-08-13 メモリ制御装置、情報処理装置及びメモリ制御装置の制御方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/758,289 Continuation US20130145111A1 (en) 2010-08-13 2013-02-04 Memory control device, information processing device, and control method for memory control device

Publications (1)

Publication Number Publication Date
WO2012020505A1 true WO2012020505A1 (ja) 2012-02-16

Family

ID=45567483

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/063773 WO2012020505A1 (ja) 2010-08-13 2010-08-13 メモリ制御装置、情報処理装置及びメモリ制御装置の制御方法

Country Status (4)

Country Link
US (1) US20130145111A1 (ja)
EP (1) EP2605143A4 (ja)
JP (1) JP5360301B2 (ja)
WO (1) WO2012020505A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102639415B1 (ko) * 2023-07-18 2024-02-23 메티스엑스 주식회사 프로세서에서 단일 트랜잭션으로부터 변환된 복수의 트랜잭션들을 처리하는 방법 및 이를 수행하기 위한 프로세서

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10445229B1 (en) 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
US11249652B1 (en) 2013-01-28 2022-02-15 Radian Memory Systems, Inc. Maintenance of nonvolatile memory on host selected namespaces by a common memory controller
GB2519351A (en) * 2013-10-18 2015-04-22 St Microelectronics Sa A method and apparatus for use with different memory maps
US9542118B1 (en) 2014-09-09 2017-01-10 Radian Memory Systems, Inc. Expositive flash memory control

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006505864A (ja) 2002-11-08 2006-02-16 インテル コーポレイション インタリーブミラーメモリシステム
JP2008217727A (ja) 2007-03-08 2008-09-18 Hitachi Ltd メモリホットプラグ時のデータコピー速度変更方式
WO2010109537A1 (ja) * 2009-03-27 2010-09-30 富士通株式会社 情報処理装置、メモリ制御方法、及びメモリ制御装置

Family Cites Families (15)

* 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 二重化デ−タ処理装置
US5341486A (en) * 1988-10-27 1994-08-23 Unisys Corporation Automatically variable memory interleaving system
JPH04191944A (ja) * 1990-11-27 1992-07-10 Toshiba Corp メモリインターリーブ制御装置
US5428758A (en) * 1991-05-10 1995-06-27 Unisys Corporation Method and system for remapping memory from one physical configuration to another physical configuration
JP2724078B2 (ja) * 1992-09-29 1998-03-09 株式会社日立製作所 二重化メモリの保守方法
US5530837A (en) * 1994-03-28 1996-06-25 Hewlett-Packard Co. Methods and apparatus for interleaving memory transactions into an arbitrary number of banks
US5758118A (en) * 1995-12-08 1998-05-26 International Business Machines Corporation Methods and data storage devices for RAID expansion by on-line addition of new DASDs
US6148414A (en) * 1998-09-24 2000-11-14 Seek Systems, Inc. Methods and systems for implementing shared disk array management functions
US6643795B1 (en) * 2000-03-30 2003-11-04 Hewlett-Packard Development Company, L.P. Controller-based bi-directional remote copy system with storage site failover capability
US7370025B1 (en) * 2002-12-17 2008-05-06 Symantec Operating Corporation System and method for providing access to replicated data
US7424637B1 (en) * 2003-03-21 2008-09-09 Networks Appliance, Inc. Technique for managing addition of disks to a volume of a storage system
US7908413B2 (en) * 2003-07-15 2011-03-15 International Business Machines Corporation Data allocation in a distributed storage system
US8806103B2 (en) * 2004-04-28 2014-08-12 Hewlett-Packard Development Company, L.P. System and method for interleaving memory
US7318114B1 (en) * 2004-10-29 2008-01-08 Sun Microsystems, Inc. System and method for dynamic memory interleaving and de-interleaving
US7523288B2 (en) * 2006-09-06 2009-04-21 Microsoft Corporation Dynamic fragment mapping

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006505864A (ja) 2002-11-08 2006-02-16 インテル コーポレイション インタリーブミラーメモリシステム
JP2008217727A (ja) 2007-03-08 2008-09-18 Hitachi Ltd メモリホットプラグ時のデータコピー速度変更方式
WO2010109537A1 (ja) * 2009-03-27 2010-09-30 富士通株式会社 情報処理装置、メモリ制御方法、及びメモリ制御装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2605143A4

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102639415B1 (ko) * 2023-07-18 2024-02-23 메티스엑스 주식회사 프로세서에서 단일 트랜잭션으로부터 변환된 복수의 트랜잭션들을 처리하는 방법 및 이를 수행하기 위한 프로세서

Also Published As

Publication number Publication date
EP2605143A1 (en) 2013-06-19
JP5360301B2 (ja) 2013-12-04
US20130145111A1 (en) 2013-06-06
EP2605143A4 (en) 2014-10-08
JPWO2012020505A1 (ja) 2013-10-28

Similar Documents

Publication Publication Date Title
US8738701B2 (en) Arbitration of disk ownership in a storage pool
JP5360301B2 (ja) メモリ制御装置、情報処理装置及びメモリ制御装置の制御方法
US8726261B2 (en) Zero downtime hard disk firmware update
CN101206553B (zh) 利用支持处理器的优化数据迁移方法和系统
US11070979B2 (en) Constructing a scalable storage device, and scaled storage device
JPH05197582A (ja) 動的再構成が可能な多数決システムを有するフォールト・トレラント処理装置
JPH0683717A (ja) 大型耐故障不揮発性複数ポート・メモリー
JPH1185408A (ja) 記憶制御装置
CN1783035A (zh) 用于交叉检查系统的基于存储器的交叉比较
US20120005430A1 (en) Storage system and ownership control method for storage system
JP2002366398A (ja) クラスタ構成記憶システム
CN110413217B (zh) 管理存储系统的方法、设备和计算机程序产品
US9489255B2 (en) Dynamic array masking
WO2023184907A1 (zh) 一种多控存储系统的io处理方法、系统及相关组件
WO2012035616A1 (ja) メモリアクセス制御装置及びコンピュータシステム
JP5590028B2 (ja) 情報処理装置、メモリ制御方法、及びメモリ制御装置
US20220318015A1 (en) Enforcing data placement requirements via address bit swapping
WO2016088372A1 (ja) アクセス装置、マイグレーション装置、分散ストレージシステム、アクセス方法及びコンピュータ読み取り可能記録媒体
WO2016122602A1 (en) Systems and methods for sharing non-volatile memory between multiple access models
JP7149313B2 (ja) 記憶システム及びその制御方法
JP2702278B2 (ja) ディスクドライブ装置
JP2002278705A (ja) コンピュータシステム
US20240103731A1 (en) Non-volatile storage device offloading of host tasks
US20240103765A1 (en) Non-volatile storage device offloading of host tasks
RU2714602C1 (ru) Способ и система для обработки данных

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2012528558

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 2010855906

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE