WO2015128976A1 - データ記憶装置 - Google Patents

データ記憶装置 Download PDF

Info

Publication number
WO2015128976A1
WO2015128976A1 PCT/JP2014/054792 JP2014054792W WO2015128976A1 WO 2015128976 A1 WO2015128976 A1 WO 2015128976A1 JP 2014054792 W JP2014054792 W JP 2014054792W WO 2015128976 A1 WO2015128976 A1 WO 2015128976A1
Authority
WO
WIPO (PCT)
Prior art keywords
memory module
management unit
volatile memory
storage destination
destination management
Prior art date
Application number
PCT/JP2014/054792
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 US15/121,136 priority Critical patent/US10372361B2/en
Priority to JP2016504921A priority patent/JP6141511B2/ja
Priority to EP14883990.5A priority patent/EP3113027A4/en
Priority to PCT/JP2014/054792 priority patent/WO2015128976A1/ja
Publication of WO2015128976A1 publication Critical patent/WO2015128976A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/1428Reconfiguring to eliminate the error with loss of hardware functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/742Route cache; Operation thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/285Redundant cache memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/313In storage device

Definitions

  • the present invention relates to a data storage device including a cache memory.
  • a volatile memory module (an example of a cache memory) has been introduced into the memory system.
  • the volatile memory module temporarily stores data in order to write data in parallel to a plurality of nonvolatile memory modules.
  • the writing speed to the memory system may decrease or the system may stop.
  • a path is determined by peer-to-peer communication in order to arbitrarily determine a path between many-to-many connected memory modules.
  • An object of the present invention is to provide a many-to-many connection of memory modules without using a mechanism for centrally managing and controlling information such as data storage destinations and a crossbar switch circuit.
  • a data storage device includes: A plurality of first memory modules for temporarily storing data; A first storage location manager provided in each first memory module; A plurality of second memory modules for storing data stored in each first memory module; A second storage destination management unit provided in each second memory module, The first memory module in which the first storage destination management unit provided in each first memory module and the second storage destination management unit provided in each second memory module communicate to store data Each time, determine the second memory module of the data transmission destination, Each of the first memory modules transmits data to the determined second memory module of the transmission destination.
  • the path is determined by the storage destination management unit provided in each memory module. Therefore, it is not necessary to use a mechanism for managing and controlling information such as a data storage destination in a unified manner and a crossbar switch circuit.
  • FIG. 1 is a configuration diagram of a memory system 10 according to a first embodiment.
  • the figure which shows the volatile memory management table 1446. 5 is a flowchart showing the operation of the memory system 10.
  • FIG. Explanatory drawing of the failure information collection process of the volatile memory module 11.
  • FIG. The block diagram of a HELLO packet.
  • FIG. 1 is a configuration diagram of a volatile memory module 11.
  • FIG. 1 is a configuration diagram of a nonvolatile memory module 12.
  • FIG. 3 is a configuration diagram of a V storage destination management unit 13.
  • FIG. 3 is a configuration diagram of an NV storage destination management unit 14.
  • FIG. 1 is a configuration diagram of a memory system 10 (data storage device) according to the first embodiment.
  • the memory system 10 includes a plurality of volatile memory modules 11 (first memory modules) and a plurality of nonvolatile memory modules 12 (second memory modules).
  • Each volatile memory module 11 includes a V storage destination management unit 13 (first storage destination management unit).
  • Each nonvolatile memory module 12 includes an NV storage destination management unit 14 (second storage destination management unit).
  • Each volatile memory module 11 is, for example, a DRAM (Dynamic Random Access Memory) module
  • each nonvolatile memory module 12 is, for example, a flash memory module.
  • Each volatile memory module 11 is connected to an external input bus 15. Each volatile memory module 11 distributes and temporarily stores data input via the external input bus 15. Each volatile memory module 11 and each nonvolatile memory module 12 are connected by an inter-memory module bus 16. Since the number of ports of each volatile memory module 11 and each nonvolatile memory module 12 is limited, not all volatile memory modules 11 and all nonvolatile memory modules 12 are connected. Each nonvolatile memory module 12 is connected to an external output bus 17. Each nonvolatile memory module 12 stores data transmitted from the volatile memory module 11 via the inter-memory module bus 16. Each nonvolatile memory module 12 outputs the stored data via the external output bus 17.
  • the V storage destination management unit 13 has a nonvolatile memory management table 1346
  • the NV storage destination management unit 14 has a volatile memory management table 1446.
  • the V storage destination management unit 13 and the NV storage destination management unit 14 communicate with each other to update the nonvolatile memory management table 1346 and the volatile memory management table 1446 to determine a data transfer path.
  • Each volatile memory module 11 transmits the temporarily stored data to the nonvolatile memory module 12 indicated by the determined data transfer path.
  • the performance (data writing speed) of the memory system 10 may be reduced due to a failure of the volatile memory module 11 or the nonvolatile memory module 12.
  • the memory system 10 includes the volatile memory module 11 and the nonvolatile memory module 12 redundantly. That is, a part of the plurality of volatile memory modules 11 and a part of the plurality of nonvolatile memory modules 12 are in a standby state for backup.
  • FIG. 2 is a diagram showing the non-volatile memory management table 1346.
  • the non-volatile memory management table 1346 has a non-volatile memory module number, failure information, and a connection request.
  • the nonvolatile memory module number is an identifier of the nonvolatile memory module 12.
  • the failure information is information indicating whether or not the nonvolatile memory module 12 has failed.
  • the connection request is information indicating whether or not a connection request has been issued to the nonvolatile memory module 12.
  • FIG. 3 is a diagram showing the volatile memory management table 1446.
  • the volatile memory management table 1446 has a volatile memory module number, failure information, the number of paths, and usage right assignment.
  • the volatile memory module number is an identifier of the volatile memory module 11.
  • the failure information is information indicating whether or not the volatile memory module 11 has failed.
  • the number of paths is the number of non-failed nonvolatile memory modules 12 connected to the volatile memory module 11.
  • the usage right grant is information indicating whether or not the connection request is permitted.
  • FIG. 4 is a flowchart showing the operation of the memory system 10.
  • S1 Data input process
  • Data is input to the memory system 10. Then, data is input to each volatile memory module 11 via the external input bus 15, and the data is distributed and stored in each volatile memory module 11.
  • the V storage location management unit 13 of each volatile memory module 11 collects failure information of the nonvolatile memory module 12.
  • FIG. 5 is an explanatory diagram of failure information collection processing of the nonvolatile memory module 12.
  • the V storage destination management unit 13 of the volatile memory module 11 transmits a HELLO packet (survival confirmation message) to the NV storage destination management units 14 of all the connected nonvolatile memory modules 12 (1).
  • the NV storage destination management unit 14 of the nonvolatile memory module 12 that has received the HELLO packet transmits a HELLO response packet to the V storage destination management unit 13 of the volatile memory module 11 (2).
  • the V storage location management unit 13 of the volatile memory module 11 treats the non-volatile memory module 12 that has transmitted the HELLO response packet for the transmitted HELLO packet as operating (no failure).
  • the V storage location management unit 13 of the volatile memory module 11 treats the nonvolatile memory module 12 that has not been transmitted within a predetermined time as not operating (failed). Then, the V storage location management unit 13 of the volatile memory module 11 updates the failure information in the nonvolatile memory management table 1346.
  • the NV storage location management unit 14 of the nonvolatile memory module 12 collects failure information of the volatile memory module 11.
  • FIG. 6 is an explanatory diagram of failure information collection processing of the volatile memory module 11.
  • the NV storage destination management unit 14 of the nonvolatile memory module 12 transmits a HELLO packet to the V storage destination management units 13 of all the connected volatile memory modules 11 (1).
  • the V storage destination management unit 13 of the volatile memory module 11 that has received the HELLO packet transmits a HELLO response packet to the NV storage destination management unit 14 of the nonvolatile memory module 12 (2).
  • the NV storage destination management unit 14 of the non-volatile memory module 12 treats the volatile memory module 11 that has transmitted the HELLO response packet for the transmitted HELLO packet as operating (no failure).
  • the NV storage destination management unit 14 of the nonvolatile memory module 12 treats the volatile memory module 11 that has not been transmitted within a predetermined time as not operating (failed). Then, the NV storage destination management unit 14 of the nonvolatile memory module 12 updates the failure information in the volatile memory management table 1446.
  • FIG. 7 is a configuration diagram of a HELLO packet.
  • the HELLO packet has a destination memory module number and a source memory module number.
  • the memory module number of the transmission destination becomes the nonvolatile memory module number of the nonvolatile memory module 12 of the transmission destination, and the memory module of the transmission source The number becomes the volatile memory module number of the volatile memory module 11 of the transmission source.
  • the memory module number of the transmission destination is the volatile memory module number of the volatile memory module 11 of the transmission destination, and the transmission source The memory module number is the non-volatile memory module number of the non-volatile memory module 12 that is the transmission source.
  • FIG. 8 is a configuration diagram of the HELLO response packet.
  • the HELLO response packet has a destination memory module number and a source memory module number. Since the memory module number of the transmission destination of the HELLO response packet and the memory module number of the transmission source are the same as in the case of the HELLO packet, description thereof is omitted.
  • the first survival confirmation process in S2 and the second survival confirmation process in S3 are collectively referred to as a survival confirmation process.
  • the V storage destination management unit 13 of the volatile memory module 11 in the standby state and the NV storage destination management unit 14 of the nonvolatile memory module 12 in the standby state perform the HELLO packet and the HELLO packet. Does not send a response packet.
  • the V storage location management unit 13 of the volatile memory module 11 transmits a WAKEUP packet to the non-volatile memory module 12 in the standby state.
  • the non-volatile memory module 12 in the standby state receives the WAKEUP packet
  • the nonvolatile memory module 12 enters an operating state and transmits a HELLO packet and a HELLO response packet.
  • the NV storage destination management unit 14 of the nonvolatile memory module 12 waits for a WAKEUP packet. Send to.
  • the volatile memory module 11 in the standby state receives the WAKEUP packet, the volatile memory module 11 enters an operating state and transmits a HELLO packet and a HELLO response packet.
  • the V storage destination management unit 13 of the volatile memory module 11 and the NV storage destination management unit 14 of the nonvolatile memory module 12 include failure information of the nonvolatile memory management table 1346, failure information of the volatile memory management table 1446, and The data transfer path is determined using the number of paths.
  • FIG. 9 is an explanatory diagram of data transfer path determination processing.
  • the V storage location management unit 13 of the volatile memory module 11 sequentially transmits a connection request packet (connection request message) to the nonvolatile memory module 12 indicating that the failure information in the nonvolatile memory management table 1346 is not failed. To do. For example, the V storage location management unit 13 of the volatile memory module 11 transmits connection request packets in ascending order of the nonvolatile memory module numbers. At this time, the V storage location management unit 13 of the volatile memory module 11 counts the number of nonvolatile memory modules 12 indicating that the failure information in the nonvolatile memory management table 1346 is not failed as the number of paths. Then, the V storage location management unit 13 of the volatile memory module 11 transmits the number of paths included in the connection request packet.
  • the NV storage location management unit 14 of the nonvolatile memory module 12 transmits a connection response packet indicating permission or rejection for the connection request packet.
  • the NV storage destination management unit 14 of the nonvolatile memory module 12 transmits a connection response packet (connection acknowledgment message) indicating permission to the connection request packet having the smallest number of paths among the received connection request packets, and the others.
  • a connection response packet indicating rejection is transmitted. Note that connection request packets having the smallest number of paths may exist at the same rate.
  • the NV storage destination management unit 14 of the nonvolatile memory module 12 transmits a connection response packet indicating permission to the connection request packet having the smallest volatile memory module number of the transmission source volatile memory module 11. .
  • the NV storage location management unit 14 of the nonvolatile memory module 12 updates the number of paths in the volatile memory management table 1446 with the number of paths included in the received connection request packet.
  • the NV storage destination management unit 14 of the nonvolatile memory module 12 updates the usage right assignment of the volatile memory management table 1446 according to the transmitted connection response packet.
  • the V storage location management unit 13 of the volatile memory module 11 When receiving the connection response packet indicating permission, the V storage location management unit 13 of the volatile memory module 11 temporarily stops transmission of the connection request packet. On the other hand, when receiving the connection response packet indicating rejection, the V storage destination management unit 13 of the volatile memory module 11 transmits a connection request packet to the next nonvolatile memory module 12. When receiving the connection response packet, the V storage destination management unit 13 of the volatile memory module 11 updates the connection request in the nonvolatile memory management table 1346 for the nonvolatile memory module 12 that is the transmission source of the connection response packet. .
  • connection response packet indicating permission when the connection request packet having a smaller number of paths is received, the connection response indicating permission is already displayed.
  • a connection response packet (connection withdrawal message) indicating rejection is transmitted to the volatile memory module 11 that transmitted the packet.
  • the NV storage destination management unit 14 of the nonvolatile memory module 12 transmits a connection response packet indicating permission to a connection request packet having a smaller number of paths.
  • the V storage destination management unit 13 of the volatile memory module 11 that has received the connection response packet indicating rejection resumes transmission of the connection request packet that has been temporarily stopped.
  • FIG. 10 is a configuration diagram of a connection request packet.
  • the connection request packet includes a transmission destination nonvolatile memory module number, a transmission source volatile memory module number, and a volatile memory module path number.
  • the destination nonvolatile memory module number is the nonvolatile memory module number of the destination nonvolatile memory module 12.
  • the transmission source volatile memory module number is the volatile memory module number of the transmission source volatile memory module 11.
  • the number of passes of the volatile memory module is the number of passes of the volatile memory module 11 as the transmission source.
  • FIG. 11 is a configuration diagram of a connection response packet.
  • the connection response packet includes a transmission destination volatile memory module number, a transmission source nonvolatile memory module number, and whether or not connection is possible.
  • the destination volatile memory module number is the volatile memory module number of the destination volatile memory module 11.
  • the transmission source nonvolatile memory module number is the nonvolatile memory module number of the transmission source nonvolatile memory module 12.
  • the connectability is information indicating permission or rejection.
  • FIG. 12 is a diagram showing the relationship among the nonvolatile memory management table 1346, the volatile memory management table 1446, the connection request packet, and the connection response packet.
  • the nonvolatile memory module 12 in which the failure information in the nonvolatile memory management table 1346 is an operation and the connection request is not yet selected is selected as the transmission destination of the connection request packet.
  • the number of volatile memory module paths in the connection request packet is the number of nonvolatile memory modules 12 on which failure information in the nonvolatile memory management table 1346 is operating.
  • As the number of paths in the volatile memory management table 1446 the number of paths of the volatile memory module in the connection request packet is set. Based on the set number of paths, it is determined whether to grant (permit) usage rights or not (reject) usage rights. The determined use right grant is reflected in the connection availability of the connection response packet.
  • the connection request in the nonvolatile memory management table 1346 is updated for the nonvolatile memory module 12 that is the transmission source of the connection response packet.
  • each volatile memory module 11 transfers the data temporarily stored in S1 to the nonvolatile memory module 12 that is the transmission source of the connection response packet indicating the permission received in S4.
  • each volatile memory module 11 can transfer data in parallel.
  • FIG. 13 is a configuration diagram of the volatile memory module 11.
  • the volatile memory module 11 includes a V storage location management unit 13 and one or more volatile memory chips 111.
  • the V storage location management unit 13 and each volatile memory chip 111 are connected by a volatile memory bus 112.
  • the data input via the external input bus 15 is transmitted to the V storage destination management unit 13, transmitted to the volatile memory chip 111 via the volatile memory bus 112, and temporarily stored.
  • the V storage destination management unit 13 sequentially executes the above-described survival confirmation process and path determination process to determine the transmission destination nonvolatile memory module 12.
  • the V storage location management unit 13 reads data temporarily stored in the volatile memory chip 111 and transmits the data to the determined nonvolatile memory module 12 via the inter-memory module bus 16.
  • FIG. 14 is a configuration diagram of the nonvolatile memory module 12.
  • the nonvolatile memory module 12 includes an NV storage destination management unit 14 and one or more nonvolatile memory chips 121.
  • the NV storage destination management unit 14 and each nonvolatile memory chip 121 are connected by a nonvolatile memory bus 122.
  • the NV storage destination management unit 14 sequentially executes the above-described survival confirmation process and path determination process, and sets one volatile memory module 11 as the transmission source. Just decide.
  • the data transmitted from the determined volatile memory module 11 is transmitted to the NV storage destination management unit 14, transmitted to the nonvolatile memory chip 121 via the nonvolatile memory bus 122, and stored.
  • the NV storage destination management unit 14 reads the data stored in the nonvolatile memory chip 121 and outputs the data via the external output bus 17 in response to a request.
  • FIG. 15 is a configuration diagram of the V storage destination management unit 13.
  • the V storage location management unit 13 includes an input I / F 131, a communication I / F 132, a volatile memory I / F 133, and a path determination unit 134.
  • the input I / F 131 is an interface for receiving data input from the external input bus 15.
  • the communication I / F 132 is an interface for communicating with the NV storage destination management unit 14 via the inter-memory module bus 16.
  • the volatile memory I / F 133 is an interface for transmitting and receiving data to and from the volatile memory chip 111.
  • the route determination unit 134 is a function for executing the above-described survival confirmation processing and route determination processing.
  • the route determination unit 134 includes a redundant memory activation unit 1341, a survival confirmation packet transmission unit 1342, a survival confirmation packet reception unit 1343, a connection request unit 1344, a connection permission confirmation unit 1345, a nonvolatile memory management table 1346, A timeout counter 1347.
  • the redundant memory activation unit 1341 has a function of activating the nonvolatile memory module 12 in a standby state when a failure occurs in the nonvolatile memory module 12.
  • the survival confirmation packet transmitting unit 1342, the survival confirmation packet receiving unit 1343, and the timeout counter 1347 are functions for executing the survival confirmation process.
  • the connection request unit 1344, the connection permission confirmation unit 1345, and the nonvolatile memory management table 1346 are functions for executing a route determination process.
  • the input I / F 131 transmits a survival confirmation processing start signal to the survival confirmation packet transmission unit 1342. At the same time, the input I / F 131 transmits data to the volatile memory I / F 133. When data is transmitted from the input I / F 131, the volatile memory I / F 133 writes the transmitted data to the volatile memory chip 111.
  • the survival confirmation packet transmission unit 1342 When receiving the survival confirmation processing start signal from the input I / F 131, the survival confirmation packet transmission unit 1342 transmits a HELLO packet transmission signal to the communication I / F 132.
  • the existence confirmation packet transmission unit 1342 transmits a count start signal to the timeout counter 1347 at the same time.
  • the communication I / F 132 transmits the HELLO packet to all the connected nonvolatile memory modules 12.
  • the timeout counter 1347 starts counting when it receives the count start signal.
  • the time-out counter 1347 has the same number of counters as the connected non-volatile memory modules 12 and can count time for each connected non-volatile memory module 12.
  • the communication I / F 132 When the communication I / F 132 receives the HELLO response packet from the nonvolatile memory module 12, the communication I / F 132 transmits a survival confirmation signal to the survival confirmation packet receiving unit 1343.
  • the survival confirmation packet receiving unit 1343 transmits a count stop signal to the timeout counter 1347.
  • the timeout counter 1347 stops the corresponding counter. The timeout counter 1347 simultaneously updates the failure information of the nonvolatile memory module 12 corresponding to the count stop signal in the nonvolatile memory management table 1346 to operation.
  • the timeout counter 1347 sets a timeout when the counted value exceeds a predetermined value. When a timeout occurs, the timeout counter 1347 updates the failure information of the time-out nonvolatile memory module 12 in the nonvolatile memory management table 1346 to a failure. Further, the timeout counter 1347 transmits a redundant memory activation signal to the redundant memory activation unit 1341 when a timeout occurs. When the redundant memory activation unit 1341 receives the redundant memory activation signal, the redundant memory activation unit 1341 transmits a WAKEUP packet transmission signal to the communication I / F 132. When the communication I / F 132 receives the WAKEUP packet transmission signal, the communication I / F 132 transmits the WAKEUP packet to the non-volatile memory module 12 in the standby state.
  • the timeout counter 1347 transmits a survival confirmation process completion signal to the connection request unit 1344 when all the counters are stopped.
  • the communication I / F 132 transmits a HELLO packet reception signal to the survival confirmation packet receiving unit 1343.
  • the survival confirmation packet receiving unit 1343 transmits a HELLO response packet generation signal to the survival confirmation packet transmitting unit 1342.
  • the survival confirmation packet transmission unit 1342 transmits a HELLO response packet transmission signal to the communication I / F 132.
  • the communication I / F 132 transmits the HELLO response packet to all the connected nonvolatile memory modules 12.
  • connection request unit 1344 When the connection request unit 1344 receives the survival confirmation processing completion signal from the timeout counter 1347, the connection request unit 1344 updates all the connection requests in the nonvolatile memory management table 1346. From the nonvolatile memory management table 1346, the connection request unit 1344 selects the nonvolatile memory module 12 in which the failure information is active, the connection request has not been made, and the value of the nonvolatile memory module number is the smallest. A connection request packet transmission signal as a transmission destination is transmitted to the communication I / F 132. When the communication I / F 132 receives the connection request packet transmission signal from the connection request unit 1344, the communication I / F 132 transmits the connection request packet to the transmission destination nonvolatile memory module 12.
  • connection permission confirmation unit 1345 When the communication I / F 132 receives the connection response packet from the inter-memory module bus 16, the communication I / F 132 transmits a connection response signal to the connection permission confirmation unit 1345.
  • the connection permission confirmation unit 1345 Upon receiving a connection response signal from the communication I / F 132, the connection permission confirmation unit 1345 performs an operation according to the content of the signal.
  • the connection permission confirmation unit 1345 transmits a write valid signal to the volatile memory I / F 133 when the connection is permitted.
  • the connection permission confirmation unit 1345 transmits a re-request signal to the connection request unit 1344 when the connection is rejected.
  • the connection permission confirmation unit 1345 updates the connection request for the corresponding nonvolatile memory module 12 in the nonvolatile memory management table 1346 to be completed.
  • connection request unit 1344 When the connection request unit 1344 receives the re-request signal, the failure information is activated from the nonvolatile memory management table 1346, the connection request has not been made, and the value of the nonvolatile memory module number is the highest. A connection request is generated to the small nonvolatile memory module 12.
  • the volatile memory I / F 133 reads data from the volatile memory chip 111 and transmits the data to the communication I / F 132 while receiving the write valid signal from the connection permission confirmation unit 1345.
  • the communication I / F 132 receives data from the volatile memory I / F 211, the communication I / F 132 transmits the data to the nonvolatile memory module 12 via the inter-memory module bus 16.
  • FIG. 16 is a configuration diagram of the NV storage destination management unit 14.
  • the NV storage destination management unit 14 includes an output I / F 141, a communication I / F 142, a nonvolatile memory I / F 143, a path determination unit 144, and a write data transfer unit 145.
  • the output I / F 141 is an interface for outputting data from the external output bus 17.
  • the communication I / F 142 is an interface for communicating with the V storage destination management unit 13 via the inter-memory module bus 16.
  • the nonvolatile memory I / F 143 is an interface for transmitting and receiving data to and from the nonvolatile memory chip 121.
  • the route determination unit 144 is a function for executing the above-described survival confirmation processing and route determination processing.
  • the write data transfer unit 145 is a function for controlling the writing of data transmitted from the volatile memory module 11 to the nonvolatile memory chip 121.
  • the route determination unit 144 includes a redundant memory activation unit 1441, a survival confirmation packet transmission unit 1442, a survival confirmation packet reception unit 1443, a connection request response unit 1444, a connection permission determination unit 1445, and a volatile memory management table 1446. And a timeout counter 1447.
  • the redundant memory activation unit 1441 is a function for activating the standby volatile memory module 11 when a failure occurs in the volatile memory module 11.
  • a survival confirmation packet transmission unit 1442, a survival confirmation packet reception unit 1443, and a timeout counter 1447 are functions for executing a survival confirmation process.
  • the connection request response unit 1444, the connection permission determination unit 1445, and the volatile memory management table 1446 are functions for executing a route determination process.
  • the communication I / F 142 transmits a HELLO packet reception signal to the survival confirmation packet receiving unit 1443.
  • the survival confirmation packet receiving unit 1443 transmits a HELLO response packet generation signal and a survival confirmation processing start signal to the survival confirmation packet transmitting unit 1442.
  • the survival confirmation packet transmission unit 1442 transmits the HELLO response packet transmission signal to the communication I / F 142.
  • the communication I / F 142 When the communication I / F 142 receives the HELLO response packet transmission signal, the communication I / F 142 transmits the HELLO response packet to all the connected volatile memory modules 11.
  • the survival confirmation packet transmission unit 1442 receives a survival confirmation processing start signal from the survival confirmation packet reception unit 1443, the survival confirmation packet transmission unit 1442 transmits a HELLO packet transmission signal to the communication I / F 142.
  • the survival confirmation packet transmission unit 1442 transmits a count start signal to the timeout counter 1447 at the same time.
  • the communication I / F 142 receives the HELLO packet transmission signal
  • the communication I / F 142 transmits the HELLO packet to all the connected volatile memory modules 11.
  • the timeout counter 1447 starts counting when it receives the count start signal.
  • the timeout counter 1447 has the same number of counters as the connected volatile memory modules 11, and can count the time for each connected volatile memory module 11.
  • the communication I / F 142 transmits a survival confirmation signal to the survival confirmation packet receiving unit 1443.
  • the survival confirmation packet receiving unit 1443 transmits a count stop signal to the timeout counter 1447.
  • the timeout counter 1447 stops the corresponding counter.
  • the timeout counter 1447 updates the failure information of the volatile memory module 11 corresponding to the count stop signal in the volatile memory management table 1446 to the operation.
  • the timeout counter 1447 sets a timeout when the value being counted exceeds a predetermined value. When a timeout occurs, the timeout counter 1447 updates the failure information of the volatile memory module 11 that has timed out in the volatile memory management table 1446 to a failure. Further, the timeout counter 1447 transmits a redundant memory activation signal to the redundant memory activation unit 1441 when a timeout occurs. When the redundant memory activation unit 1441 receives the redundant memory activation signal, the redundant memory activation unit 1441 transmits a WAKEUP packet transmission signal to the communication I / F 142. When the communication I / F 142 receives the WAKEUP packet transmission signal, the communication I / F 142 transmits the WAKEUP packet to the volatile memory module 11 in the standby state.
  • the communication I / F 142 When the communication I / F 142 receives the connection request packet from the inter-memory module bus 16, the communication I / F 142 transmits a connection request reception signal to the connection permission determination unit 1445.
  • the connection permission determination unit 1445 Upon receiving the connection request reception signal from the communication I / F 142, the connection permission determination unit 1445 sets the number of paths of the volatile memory module 11 that is the transmission source of the connection request packet in the volatile memory management table 1446 to the number of paths of the connection request packet. Update.
  • the connection permission determination unit 1445 determines that the volatile memory module 11 that is the transmission source of the connection request packet has the smallest number of paths and the smallest volatile memory module number in the volatile memory management table 1446. Check if it is.
  • connection permission judgment unit 1445 transmits a connection permission signal to the connection request response unit 1444, and otherwise. Transmits a connection rejection signal to the connection request response unit 1444.
  • the connection request response unit 1444 receives the connection permission signal from the connection permission determination unit 1445, the connection request response unit 1444 transmits a connection response packet transmission signal designating connection permission to the communication I / F 142.
  • the connection request response unit 1444 receives the connection rejection signal from the connection permission determination unit 1445, the connection request response unit 1444 transmits a connection response packet transmission signal designating connection rejection to the communication I / F 142.
  • the communication I / F 142 Upon receiving the connection response packet transmission signal from the connection request response unit 1444, the communication I / F 142 transmits the connection response packet to the volatile memory I / F 2 that is the transmission source of the connection request packet. If the connection permission determination unit 1445 has already transmitted a connection permission signal and then received a connection request reception signal that should be prioritized, the connection permission determination unit 1445 sends a connection rejection signal to the volatile memory module 11 that once transmitted the connection permission signal. It transmits to the connection request response part 1444. Then, the connection permission determination unit 1445 transmits a connection permission signal for the volatile memory module 11 that is the transmission source of the connection request packet to the connection request response unit 1444.
  • the connection permission determination unit 1445 When transmitting a connection permission signal, the connection permission determination unit 1445 asserts a write valid signal to the write data transfer unit 145.
  • the communication I / F 142 transfers the data to the write data transfer unit 145.
  • the write data transfer unit 145 transfers data transferred from the communication I / F 142 to the nonvolatile memory I / F 122 while the write enable signal is asserted from the connection permission determination unit 1445.
  • the write data transfer unit 145 discards the data transferred from the communication I / F 142 while the write enable signal is deasserted from the connection permission determination unit 1445.
  • the nonvolatile memory I / F 122 writes data to the nonvolatile memory chip 121 when data is transferred from the write data transfer unit 145.
  • the output I / F 141 When the output I / F 141 receives a data read request from the external output bus 17, the output I / F 141 transmits the read request to the nonvolatile memory I / F 122.
  • the nonvolatile memory I / F 122 receives a read request from the output I / F 141, the nonvolatile memory I / F 122 reads data from the nonvolatile memory chip 121 and transmits the data to the output I / F 141.
  • the output I / F 141 When receiving data from the nonvolatile memory I / F 122, the output I / F 141 transmits the data to the external output bus 17.
  • each volatile memory module 11 and each nonvolatile memory module 12 autonomously determines a data transfer path by a 3WAY handshake. Therefore, it is not necessary to use a mechanism for managing and controlling information such as a data storage destination in a unified manner and a crossbar switch circuit. As a result, the entire memory system 10 does not become inoperable when a mechanism for managing and controlling information such as a data storage destination or a crossbar switch circuit fails.
  • the volatile memory module 11 in the non-volatile memory module 12 is activated.
  • the nonvolatile memory module 12 in the standby state is activated. Therefore, it is possible to prevent a decrease in performance when some volatile memory modules 11 and some nonvolatile memory modules 12 fail.
  • the volatile memory module 11 and the non-volatile memory module 12 existing more than necessary can be set in a standby state, and unnecessary power consumption can be reduced.
  • all transmission units described as “ ⁇ packet” include a “packet type” field for indicating a packet type.
  • Each storage destination management unit determines the type of packet from the “packet type” field.
  • the function described as “unit” may be realized by software, or may be realized by a circuit or a device.
  • the software that realizes the function described as “ ⁇ unit” is a storage device (for example, nonvolatile memory module 12) in the memory system 10. And is read and executed by an arithmetic device (CPU or the like) included in the memory system 10.

Abstract

 メモリシステム(100)は、データを分散して一時記憶する複数の揮発性メモリモジュール(11)と、各揮発性メモリモジュール(11)に設けられたV保存先管理部(13)と、各揮発性メモリモジュール(11)に記憶されたデータを分散して記憶する複数の不揮発性メモリモジュール(12)と、各不揮発性メモリモジュール(12)に設けられたNV保存先管理部(14)とを備える。各V保存先管理部(13)と各NV保存先管理部(14)とが通信して、揮発性メモリモジュール(11)毎に、送信先の不揮発性メモリモジュール(12)を決定し、決定した送信先の不揮発性メモリモジュール(12)へデータが送信され、送信先の不揮発性メモリモジュール(12)にデータが記憶される。

Description

データ記憶装置
 この発明は、キャッシュメモリを備えるデータ記憶装置に関する。
 複数の不揮発性メモリモジュールを用いるメモリシステムの書込み速度を向上させるために、メモリシステムに揮発性メモリモジュール(キャッシュメモリの一例)が導入されている。揮発性メモリモジュールは、複数の不揮発性メモリモジュールにデータを並列に書き込むために、データを一時的に格納する。
 揮発性メモリモジュール及び不揮発性メモリモジュールに故障が発生すると、メモリシステムへの書込み速度が低下してしまうことやシステムが停止してしまうことがある。
 特許文献1に記載されたメモリシステムでは、複数の揮発性メモリモジュールと複数の不揮発性メモリモジュールとを相互結合網により多対多に接続し、同一の不揮発性メモリモジュールを共有する揮発性メモリモジュールでデータを冗長化している。これにより、メモリモジュールの故障時にもライトアクセスの応答速度と信頼性を維持している。
 特許文献2に記載されたメモリシステムでは、多対多に接続されたメモリモジュール間の経路を任意に決定するため、ピアツーピア通信により経路を決定している。
特開2005-43930号公報 特表2013-532339号公報
 メモリモジュールの接続を多対多とした場合、不揮発性メモリモジュールへデータを書き込む際に、揮発性メモリモジュールと不揮発性メモリモジュールとの間のデータ転送の経路を決定する必要がある。経路を決定するためには、データ保存先等の情報を一元に管理し制御する機構とクロスバースイッチ回路とが必要となる。
 しかし、データ保存先等の情報を一元に管理・制御する機構、又は、クロスバースイッチ回路が故障した場合、メモリシステム全体が動作しなくなってしまう。
 この発明は、データ保存先等の情報を一元に管理・制御する機構とクロスバースイッチ回路とを用いることなく、メモリモジュールの接続を多対多とすることを目的とする。
 この発明に係るデータ記憶装置は、
 データを一時記憶する複数の第1メモリモジュールと、
 各第1メモリモジュールに設けられた第1保存先管理部と、
 各第1メモリモジュールに記憶されたデータを記憶する複数の第2メモリモジュールと、
 各第2メモリモジュールに設けられた第2保存先管理部と
を備え、
 前記各第1メモリモジュールに設けられた前記第1保存先管理部と、前記各第2メモリモジュールに設けられた前記第2保存先管理部とが通信して、データを記憶した第1メモリモジュール毎に、データの送信先の第2メモリモジュールを決定し、
 前記各第1メモリモジュールが、決定した送信先の第2メモリモジュールへデータを送信する
ことを特徴とする。
 この発明に係るデータ記憶装置は、各メモリモジュールに設けられた保存先管理部によって経路決定が行われる。そのため、データ保存先等の情報を一元に管理・制御する機構とクロスバースイッチ回路とを用いる必要がない。
実施の形態1に係るメモリシステム10の構成図。 不揮発性メモリ管理テーブル1346を示す図。 揮発性メモリ管理テーブル1446を示す図。 メモリシステム10の動作を示すフローチャート。 不揮発性メモリモジュール12の故障情報の収集処理の説明図。 揮発性メモリモジュール11の故障情報の収集処理の説明図。 HELLOパケットの構成図。 HELLO応答パケットの構成図。 データ転送経路の決定処理の説明図。 接続要求パケットの構成図。 接続応答パケットの構成図。 不揮発性メモリ管理テーブル1346と、揮発性メモリ管理テーブル1446と、接続要求パケットと、接続応答パケットとの関係を示す図。 揮発性メモリモジュール11の構成図。 不揮発性メモリモジュール12の構成図。 V保存先管理部13の構成図。 NV保存先管理部14の構成図。
 実施の形態1.
 図1は、実施の形態1に係るメモリシステム10(データ記憶装置)の構成図である。
 メモリシステム10は、複数の揮発性メモリモジュール11(第1メモリモジュール)と、複数の不揮発性メモリモジュール12(第2メモリモジュール)とを備える。各揮発性メモリモジュール11は、V保存先管理部13(第1保存先管理部)を備える。各不揮発性メモリモジュール12は、NV保存先管理部14(第2保存先管理部)を備える。
 各揮発性メモリモジュール11は、例えば、DRAM(Dynamic Random Access Memory)モジュールであり、各不揮発性メモリモジュール12は、例えば、フラッシュメモリモジュールである。
 各揮発性メモリモジュール11は、外部入力バス15が接続されている。各揮発性メモリモジュール11は、外部入力バス15を介して入力されたデータを、分散して一時記憶する。
 各揮発性メモリモジュール11と各不揮発性メモリモジュール12とは、メモリモジュール間バス16で接続されている。各揮発性メモリモジュール11及び各不揮発性メモリモジュール12のポート数には限りがあるため、全ての揮発性メモリモジュール11と全ての不揮発性メモリモジュール12とが接続されているわけではない。
 各不揮発性メモリモジュール12は、外部出力バス17が接続されている。各不揮発性メモリモジュール12は、メモリモジュール間バス16を介して揮発性メモリモジュール11から送信されたデータを記憶する。各不揮発性メモリモジュール12は、外部出力バス17を介して、記憶したデータを出力する。
 V保存先管理部13は、不揮発性メモリ管理テーブル1346を有しており、NV保存先管理部14は、揮発性メモリ管理テーブル1446を有している。V保存先管理部13及びNV保存先管理部14は、互いに通信して、不揮発性メモリ管理テーブル1346及び揮発性メモリ管理テーブル1446を更新して、データ転送経路を決定する。各揮発性メモリモジュール11は、決定されたデータ転送経路が示す不揮発性メモリモジュール12へ、一時記憶したデータを送信する。
 なお、揮発性メモリモジュール11又は不揮発性メモリモジュール12の故障により、メモリシステム10の性能(データの書込み速度)が低下する恐れがある。性能が低下することを避けるために、メモリシステム10は、揮発性メモリモジュール11及び不揮発性メモリモジュール12を冗長に備えている。つまり、複数の揮発性メモリモジュール11のうちの一部、及び、複数の不揮発性メモリモジュール12のうちの一部は、バックアップ用に待機状態になっている。
 図2は、不揮発性メモリ管理テーブル1346を示す図である。
 不揮発性メモリ管理テーブル1346は、不揮発性メモリモジュール番号、故障情報、接続要求を有している。
 不揮発性メモリモジュール番号は、不揮発性メモリモジュール12の識別子である。図1では、不揮発性メモリモジュール12は、1番~n番までのn個あり、この番号が不揮発性メモリモジュール番号である。故障情報は、不揮発性メモリモジュール12が故障しているか否かを示す情報である。接続要求は、不揮発性メモリモジュール12へ接続要求を出したか否かを示す情報である。
 図3は、揮発性メモリ管理テーブル1446を示す図である。
 揮発性メモリ管理テーブル1446は、揮発性メモリモジュール番号、故障情報、パス数、使用権付与を有している。
 揮発性メモリモジュール番号は、揮発性メモリモジュール11の識別子である。図1では、揮発性メモリモジュール11は、1番~m番までのm個あり、この番号が揮発性メモリモジュール番号である。故障情報は、揮発性メモリモジュール11が故障しているか否かを示す情報である。パス数は、揮発性メモリモジュール11に接続されている、故障していない不揮発性メモリモジュール12の数である。使用権付与は、接続要求に対して許可しているか否かを示す情報である。
 図4は、メモリシステム10の動作を示すフローチャートである。
 (S1:データ入力処理)
 メモリシステム10へデータが入力される。すると、外部入力バス15を介して各揮発性メモリモジュール11へデータが入力され、各揮発性メモリモジュール11にデータが分散して記憶される。
 (S2:第1生存確認処理)
 各揮発性メモリモジュール11のV保存先管理部13は、不揮発性メモリモジュール12の故障情報を収集する。
 図5は、不揮発性メモリモジュール12の故障情報の収集処理の説明図である。
 揮発性メモリモジュール11のV保存先管理部13は、接続されている全ての不揮発性メモリモジュール12のNV保存先管理部14に対してHELLOパケット(生存確認メッセージ)を送信する(1)。HELLOパケットを受信した不揮発性メモリモジュール12のNV保存先管理部14は、揮発性メモリモジュール11のV保存先管理部13に対してHELLO応答パケットを送信する(2)。
 揮発性メモリモジュール11のV保存先管理部13は、送信したHELLOパケットに対してHELLO応答パケットの送信があった不揮発性メモリモジュール12は動作している(故障していない)として扱う。一方、揮発性メモリモジュール11のV保存先管理部13は、所定時間内に送信がなかった不揮発性メモリモジュール12は動作していない(故障している)として扱う。そして、揮発性メモリモジュール11のV保存先管理部13は、不揮発性メモリ管理テーブル1346の故障情報を更新する。
 (S3:第2生存確認処理)
 不揮発性メモリモジュール12のNV保存先管理部14は、揮発性メモリモジュール11の故障情報を収集する。
 図6は、揮発性メモリモジュール11の故障情報の収集処理の説明図である。
 不揮発性メモリモジュール12のNV保存先管理部14は、接続されている全ての揮発性メモリモジュール11のV保存先管理部13に対してHELLOパケットを送信する(1)。HELLOパケットを受信した揮発性メモリモジュール11のV保存先管理部13は、不揮発性メモリモジュール12のNV保存先管理部14に対してHELLO応答パケットを送信する(2)。
 不揮発性メモリモジュール12のNV保存先管理部14は、送信したHELLOパケットに対してHELLO応答パケットの送信があった揮発性メモリモジュール11は動作している(故障していない)として扱う。一方、不揮発性メモリモジュール12のNV保存先管理部14は、所定時間内に送信がなかった揮発性メモリモジュール11は動作していない(故障している)として扱う。そして、不揮発性メモリモジュール12のNV保存先管理部14は、揮発性メモリ管理テーブル1446の故障情報を更新する。
 図7は、HELLOパケットの構成図である。
 HELLOパケットは、送信先のメモリモジュール番号、送信元のメモリモジュール番号を有している。
 揮発性メモリモジュール11のV保存先管理部13がHELLOパケットを送信する場合には、送信先のメモリモジュール番号は送信先の不揮発性メモリモジュール12の不揮発性メモリモジュール番号となり、送信元のメモリモジュール番号は送信元の揮発性メモリモジュール11の揮発性メモリモジュール番号となる。一方、不揮発性メモリモジュール12のNV保存先管理部14がHELLOパケットを送信する場合には、送信先のメモリモジュール番号は送信先の揮発性メモリモジュール11の揮発性メモリモジュール番号となり、送信元のメモリモジュール番号は送信元の不揮発性メモリモジュール12の不揮発性メモリモジュール番号となる。
 図8は、HELLO応答パケットの構成図である。
 HELLO応答パケットは、送信先のメモリモジュール番号、送信元のメモリモジュール番号を有している。
 HELLO応答パケットの送信先のメモリモジュール番号及び送信元のメモリモジュール番号は、HELLOパケットの場合と同じであるため説明を省略する。
 S2の第1生存確認処理とS3の第2生存確認処理とをまとめて、生存確認処理と呼ぶ。
 生存確認処理では、待機状態になっている揮発性メモリモジュール11のV保存先管理部13と、待機状態になっている不揮発性メモリモジュール12のNV保存先管理部14とは、HELLOパケット及びHELLO応答パケットの送信を行わない。
 生存確認処理で、不揮発性メモリモジュール12の故障が検出された場合は、揮発性メモリモジュール11のV保存先管理部13は、WAKEUPパケットを待機状態になっている不揮発性メモリモジュール12へ送信する。待機状態になっている不揮発性メモリモジュール12は、WAKEUPパケットを受信すると、稼働状態になり、HELLOパケット及びHELLO応答パケットを送信するようになる。
 同様に、生存確認処理で、揮発性メモリモジュール11の故障が検出された場合は、不揮発性メモリモジュール12のNV保存先管理部14は、WAKEUPパケットを待機状態になっている揮発性メモリモジュール11へ送信する。待機状態になっている揮発性メモリモジュール11は、WAKEUPパケットを受信すると、稼働状態になり、HELLOパケット及びHELLO応答パケットを送信するようになる。
 (S4:経路決定処理)
 揮発性メモリモジュール11のV保存先管理部13と、不揮発性メモリモジュール12のNV保存先管理部14とは、不揮発性メモリ管理テーブル1346の故障情報と、揮発性メモリ管理テーブル1446の故障情報及びパス数とを用いて、データ転送経路を決定する。
 図9は、データ転送経路の決定処理の説明図である。
 揮発性メモリモジュール11のV保存先管理部13は、不揮発性メモリ管理テーブル1346の故障情報が故障していないことを示す不揮発性メモリモジュール12に対して順に接続要求パケット(接続要求メッセージ)を送信する。例えば、揮発性メモリモジュール11のV保存先管理部13は、不揮発性メモリモジュール番号の昇順に接続要求パケットを送信する。
 この際、揮発性メモリモジュール11のV保存先管理部13は、不揮発性メモリ管理テーブル1346の故障情報が故障していないことを示す不揮発性メモリモジュール12の数をパス数としてカウントする。そして、揮発性メモリモジュール11のV保存先管理部13は、パス数を接続要求パケットに含めて送信する。
 不揮発性メモリモジュール12のNV保存先管理部14は、接続要求パケットに対して許可又は拒否を示す接続応答パケットを送信する。
 不揮発性メモリモジュール12のNV保存先管理部14は、受信した接続要求パケットのうち、パス数が最も少ない接続要求パケットに対して、許可を示す接続応答パケット(接続了承メッセージ)を送信し、その他の接続要求パケットに対して、拒否を示す接続応答パケットを送信する。
 なお、最も少ないパス数を持つ接続要求パケットが同率で存在する場合がある。この場合、不揮発性メモリモジュール12のNV保存先管理部14は、送信元の揮発性メモリモジュール11の揮発性メモリモジュール番号が最も小さい接続要求パケットに対して、許可を示す接続応答パケットを送信する。
 不揮発性メモリモジュール12のNV保存先管理部14は、受信した接続要求パケットに含まれるパス数により、揮発性メモリ管理テーブル1446のパス数を更新する。また、不揮発性メモリモジュール12のNV保存先管理部14は、送信した接続応答パケットに応じて、揮発性メモリ管理テーブル1446の使用権付与を更新する。
 揮発性メモリモジュール11のV保存先管理部13は、許可を示す接続応答パケットを受信した場合、接続要求パケットの送信を一旦中止する。一方、揮発性メモリモジュール11のV保存先管理部13は、拒否を示す接続応答パケットを受信した場合、次の不揮発性メモリモジュール12に対して、接続要求パケットを送信する。
 揮発性メモリモジュール11のV保存先管理部13は、接続応答パケットを受信した場合、接続応答パケットの送信元の不揮発性メモリモジュール12について、不揮発性メモリ管理テーブル1346の接続要求を済に更新する。
 不揮発性メモリモジュール12のNV保存先管理部14は、既に許可を示す接続応答パケットを送信している場合に、パス数がより少ない接続要求パケットを受信した場合には、既に許可を示す接続応答パケットを送信した揮発性メモリモジュール11に対して、拒否を示す接続応答パケット(接続撤回メッセージ)を送信する。そして、不揮発性メモリモジュール12のNV保存先管理部14は、パス数がより少ない接続要求パケットに対して、許可を示す接続応答パケットを送信する。
 この場合、拒否を示す接続応答パケットを受信した揮発性メモリモジュール11のV保存先管理部13は、一旦中止していた接続要求パケットの送信を再開する。
 図10は、接続要求パケットの構成図である。
 接続要求パケットは、送信先の不揮発性メモリモジュール番号、送信元の揮発性メモリモジュール番号、揮発性メモリモジュールのパス数を有している。
 送信先の不揮発性メモリモジュール番号は、送信先の不揮発性メモリモジュール12の不揮発性メモリモジュール番号である。送信元の揮発性メモリモジュール番号は、送信元の揮発性メモリモジュール11の揮発性メモリモジュール番号である。揮発性メモリモジュールのパス数は、送信元の揮発性メモリモジュール11のパス数である。
 図11は、接続応答パケットの構成図である。
 接続応答パケットは、送信先の揮発性メモリモジュール番号、送信元の不揮発性メモリモジュール番号、接続可否を有している。
 送信先の揮発性メモリモジュール番号は、送信先の揮発性メモリモジュール11の揮発性メモリモジュール番号である。送信元の不揮発性メモリモジュール番号は、送信元の不揮発性メモリモジュール12の不揮発性メモリモジュール番号である。接続可否は、許可又は拒否を示す情報である。
 図12は、不揮発性メモリ管理テーブル1346と、揮発性メモリ管理テーブル1446と、接続要求パケットと、接続応答パケットとの関係を示す図である。
 不揮発性メモリ管理テーブル1346の故障情報が動作となっており、かつ、接続要求が未となっている不揮発性メモリモジュール12が接続要求パケットの送信先として選択される。接続要求パケットの揮発性メモリモジュールのパス数は、不揮発性メモリ管理テーブル1346の故障情報が動作となっている不揮発性メモリモジュール12の数である。
 揮発性メモリ管理テーブル1446のパス数は、接続要求パケットの揮発性メモリモジュールのパス数が設定される。設定されたパス数に基づき、使用権付与を有(許可)にするか、無(拒否)にするかが決定される。決定された使用権付与が、接続応答パケットの接続可否に反映される。
 そして、接続応答パケットの送信元の不揮発性メモリモジュール12について、不揮発性メモリ管理テーブル1346の接続要求が済に更新される。
 (S5:データ転送処理)
 各揮発性メモリモジュール11のV保存先管理部13は、S4で受信した許可を示す接続応答パケットの送信元の不揮発性メモリモジュール12に対して、S1で一時記憶したデータを転送する。ここで、各揮発性メモリモジュール11は、並列にデータを転送することが可能である。
 図13は、揮発性メモリモジュール11の構成図である。
 揮発性メモリモジュール11は、V保存先管理部13と、1つ又は複数の揮発性メモリチップ111とを備える。V保存先管理部13と各揮発性メモリチップ111とは、揮発性メモリ用バス112で接続されている。
 外部入力バス15を介して入力されたデータは、V保存先管理部13へ送信され、揮発性メモリ用バス112を介して揮発性メモリチップ111へ送信されて、一時記憶される。V保存先管理部13へデータが送信されると、V保存先管理部13は、上述した生存確認処理及び経路決定処理を順に実行して、送信先の不揮発性メモリモジュール12を決定する。V保存先管理部13は、揮発性メモリチップ111に一時記憶したデータを読み出して、メモリモジュール間バス16を介して、決定した不揮発性メモリモジュール12へ送信する。
 図14は、不揮発性メモリモジュール12の構成図である。
 不揮発性メモリモジュール12は、NV保存先管理部14と、1つ又は複数の不揮発性メモリチップ121とを備える。NV保存先管理部14と各不揮発性メモリチップ121とは、不揮発性メモリ用バス122で接続されている。
 メモリモジュール間バス16を介してHELLOパケットが送信されると、NV保存先管理部14は、上述した生存確認処理及び経路決定処理を順に実行して、送信元の揮発性メモリモジュール11を1つだけ決定する。決定した揮発性メモリモジュール11から送信されたデータは、NV保存先管理部14へ送信され、不揮発性メモリ用バス122を介して不揮発性メモリチップ121へ送信されて、記憶される。NV保存先管理部14は、要求に応じて、不揮発性メモリチップ121に記憶したデータを読み出して、外部出力バス17を介して、データを出力する。
 図15は、V保存先管理部13の構成図である。
 V保存先管理部13は、入力I/F131と、通信I/F132と、揮発性メモリI/F133と、経路決定部134とを備える。
 入力I/F131は、外部入力バス15から入力されるデータを受け取るためのインターフェースである。通信I/F132は、メモリモジュール間バス16を介してNV保存先管理部14と通信を行うためのインターフェースである。揮発性メモリI/F133は、揮発性メモリチップ111とデータを送受信するためのインターフェースである。経路決定部134は、上述した生存確認処理及び経路決定処理を実行するための機能である。
 経路決定部134は、冗長メモリ起動部1341と、生存確認パケット送信部1342と、生存確認パケット受信部1343と、接続要求部1344と、接続許可確認部1345と、不揮発性メモリ管理テーブル1346と、タイムアウト用カウンタ1347とを備える。
 冗長メモリ起動部1341は、不揮発性メモリモジュール12に故障が発生した場合に、待機状態の不揮発性メモリモジュール12を起動させる機能である。生存確認パケット送信部1342と、生存確認パケット受信部1343と、タイムアウト用カウンタ1347とは、生存確認処理を実行するための機能である。接続要求部1344と、接続許可確認部1345と、不揮発性メモリ管理テーブル1346とは、経路決定処理を実行するための機能である。
 外部入力バス15からデータが入力されると、入力I/F131は、生存確認処理開始信号を生存確認パケット送信部1342へ送信する。同時に入力I/F131は、データを揮発性メモリI/F133へ送信する。揮発性メモリI/F133は、入力I/F131からデータが送信された場合、揮発性メモリチップ111に送信されたデータをライトする。
 生存確認パケット送信部1342は、入力I/F131から生存確認処理開始信号を受信すると、HELLOパケット送信信号を通信I/F132へ送信する。生存確認パケット送信部1342は、同時にカウント開始信号をタイムアウト用カウンタ1347へ送信する。通信I/F132は、HELLOパケット送信信号を受信すると、接続されている全ての不揮発性メモリモジュール12へHELLOパケットを送信する。
 タイムアウト用カウンタ1347は、カウント開始信号を受信すると、カウントを開始する。タイムアウト用カウンタ1347は、接続されている不揮発性メモリモジュール12と同じ数だけカウンタを有しており、接続されている不揮発性メモリモジュール12毎に時間をカウントすることが可能である。
 通信I/F132は、不揮発性メモリモジュール12からHELLO応答パケットを受信すると、生存確認信号を生存確認パケット受信部1343へ送信する。生存確認パケット受信部1343は、通信I/F132から生存確認信号を受信すると、カウント停止信号をタイムアウト用カウンタ1347へ送信する。タイムアウト用カウンタ1347は、生存確認パケット受信部1343から、カウント停止信号を受信すると、対応するカウンタを停止する。タイムアウト用カウンタ1347は、同時に、不揮発性メモリ管理テーブル1346における、カウント停止信号に対応する不揮発性メモリモジュール12の故障情報を動作に更新する。
 タイムアウト用カウンタ1347は、カウントしている値が予め決められた値を超えると、タイムアウトとする。タイムアウト用カウンタ1347は、タイムアウトが発生した場合、不揮発性メモリ管理テーブル1346における、タイムアウトした不揮発性メモリモジュール12の故障情報を故障に更新する。また、タイムアウト用カウンタ1347は、タイムアウトが発生した場合、冗長メモリ起動部1341に冗長メモリ起動信号を送信する。
 冗長メモリ起動部1341は、冗長メモリ起動信号を受信すると、WAKEUPパケット送信信号を通信I/F132へ送信する。通信I/F132は、WAKEUPパケット送信信号を受信すると、待機状態になっている不揮発性メモリモジュール12へWAKEUPパケットを送信する。
 タイムアウト用カウンタ1347は、全てのカウンタが停止すると、接続要求部1344に対して、生存確認処理完了信号を送信する。
 メモリモジュール間バス16からHELLOパケットが入力されると、通信I/F132は、HELLOパケット受信信号を生存確認パケット受信部1343へ送信する。生存確認パケット受信部1343は、通信I/F132からHELLOパケット受信信号を受信すると、HELLO応答パケット生成信号を生存確認パケット送信部1342へ送信する。
 生存確認パケット送信部1342は、生存確認パケット受信部1343からHELLO応答パケット生成信号を受信すると、HELLO応答パケット送信信号を通信I/F132へ送信する。通信I/F132は、HELLO応答パケット送信信号を受信すると、接続されている全ての不揮発性メモリモジュール12へHELLO応答パケットを送信する。
 接続要求部1344は、タイムアウト用カウンタ1347から、生存確認処理完了信号を受信すると、不揮発性メモリ管理テーブル1346の接続要求を全て未に更新する。
 接続要求部1344は、不揮発性メモリ管理テーブル1346から、故障情報が動作になっており、かつ、接続要求が未であり、かつ、不揮発性メモリモジュール番号の値が最も小さい不揮発性メモリモジュール12を送信先とする接続要求パケット送信信号を通信I/F132へ送信する。通信I/F132は、接続要求部1344から接続要求パケット送信信号を受信すると、送信先の不揮発性メモリモジュール12へ接続要求パケットを送信する。
 通信I/F132は、メモリモジュール間バス16から接続応答パケットを受信すると、接続応答信号を接続許可確認部1345へ送信する。接続許可確認部1345は、通信I/F132から接続応答信号を受信すると、信号の内容に応じた動作を行う。接続許可確認部1345は、接続が許可された場合は、書込み有効信号を揮発性メモリI/F133へ送信する。接続許可確認部1345は、接続が拒否された場合は、再要求信号を接続要求部1344へ送信する。また、接続許可確認部1345は、接続が拒否された場合は、不揮発性メモリ管理テーブル1346における対応する不揮発性メモリモジュール12の接続要求を済に更新する。
 接続要求部1344は、再要求信号を受信すると、不揮発性メモリ管理テーブル1346から、故障情報が動作になっており、かつ、接続要求が未であり、かつ、不揮発性メモリモジュール番号の値が最も小さい不揮発性メモリモジュール12へ接続要求を生成する。
 揮発性メモリI/F133は、接続許可確認部1345から書込み有効信号を受信している間、揮発性メモリチップ111からデータをリードし、データを通信I/F132へ送信する。通信I/F132は、揮発性メモリI/F211からデータを受け取ると、メモリモジュール間バス16を介して不揮発性メモリモジュール12へデータを送信する。
 図16は、NV保存先管理部14の構成図である。
 NV保存先管理部14は、出力I/F141と、通信I/F142と、不揮発性メモリI/F143と、経路決定部144と、書込みデータ転送部145とを備える。
 出力I/F141は、外部出力バス17からデータを出力するためのインターフェースである。通信I/F142は、メモリモジュール間バス16を介してV保存先管理部13と通信を行うためのインターフェースである。不揮発性メモリI/F143は、不揮発性メモリチップ121とデータを送受信するためのインターフェースである。経路決定部144は、上述した生存確認処理及び経路決定処理を実行するための機能である。書込みデータ転送部145は、揮発性メモリモジュール11から送信されたデータの不揮発性メモリチップ121への書込みを制御するための機能である。
 経路決定部144は、冗長メモリ起動部1441と、生存確認パケット送信部1442と、生存確認パケット受信部1443と、接続要求応答部1444と、接続許可判断部1445と、揮発性メモリ管理テーブル1446と、タイムアウト用カウンタ1447とを備える。
 冗長メモリ起動部1441は、揮発性メモリモジュール11に故障が発生した場合に、待機状態の揮発性メモリモジュール11を起動させる機能である。生存確認パケット送信部1442と、生存確認パケット受信部1443と、タイムアウト用カウンタ1447とは、生存確認処理を実行するための機能である。接続要求応答部1444と、接続許可判断部1445と、揮発性メモリ管理テーブル1446とは、経路決定処理を実行するための機能である。
 メモリモジュール間バス16からHELLOパケットが入力されると、通信I/F142は、HELLOパケット受信信号を生存確認パケット受信部1443へ送信する。生存確認パケット受信部1443は、通信I/F142からHELLOパケット受信信号を受信すると、HELLO応答パケット生成信号と生存確認処理開始信号とを生存確認パケット送信部1442へ送信する。
 生存確認パケット送信部1442は、生存確認パケット受信部1443からHELLO応答パケット生成信号を受信すると、HELLO応答パケット送信信号を通信I/F142へ送信する。通信I/F142は、HELLO応答パケット送信信号を受信すると、接続されている全ての揮発性メモリモジュール11へHELLO応答パケットを送信する。
 また、生存確認パケット送信部1442は、生存確認パケット受信部1443から、生存確認処理開始信号を受信すると、HELLOパケット送信信号を通信I/F142へ送信する。生存確認パケット送信部1442は、同時にカウント開始信号をタイムアウト用カウンタ1447へ送信する。通信I/F142は、HELLOパケット送信信号を受信すると、接続されている全ての揮発性メモリモジュール11へHELLOパケットを送信する。
 タイムアウト用カウンタ1447は、カウント開始信号を受信すると、カウントを開始する。タイムアウト用カウンタ1447は、接続されている揮発性メモリモジュール11と同じ数だけカウンタを有しており、接続されている揮発性メモリモジュール11毎に時間をカウントすることが可能である。
 通信I/F142は、揮発性メモリモジュール11からHELLO応答パケットを受信すると、生存確認信号を生存確認パケット受信部1443へ送信する。生存確認パケット受信部1443は、通信I/F142から生存確認信号を受信すると、カウント停止信号をタイムアウト用カウンタ1447へ送信する。タイムアウト用カウンタ1447は、生存確認パケット受信部1443から、カウント停止信号を受信すると、対応するカウンタを停止する。タイムアウト用カウンタ1447は、同時に、揮発性メモリ管理テーブル1446における、カウント停止信号に対応する揮発性メモリモジュール11の故障情報を動作に更新する。
 タイムアウト用カウンタ1447は、カウントしている値が予め決められた値を超えると、タイムアウトとする。タイムアウト用カウンタ1447は、タイムアウトが発生した場合、揮発性メモリ管理テーブル1446における、タイムアウトした揮発性メモリモジュール11の故障情報を故障に更新する。また、タイムアウト用カウンタ1447は、タイムアウトが発生した場合、冗長メモリ起動部1441に冗長メモリ起動信号を送信する。
 冗長メモリ起動部1441は、冗長メモリ起動信号を受信すると、WAKEUPパケット送信信号を通信I/F142へ送信する。通信I/F142は、WAKEUPパケット送信信号を受信すると、待機状態になっている揮発性メモリモジュール11へWAKEUPパケットを送信する。
 通信I/F142は、メモリモジュール間バス16から接続要求パケットを受信すると、接続許可判断部1445に接続要求受信信号を送信する。接続許可判断部1445は、通信I/F142から接続要求受信信号を受信すると、揮発性メモリ管理テーブル1446の接続要求パケットの送信元の揮発性メモリモジュール11のパス数を接続要求パケットのパス数に更新する。接続許可判断部1445は、接続要求パケットの送信元の揮発性メモリモジュール11が、揮発性メモリ管理テーブル1446において、パス数が最小で、かつ、揮発性メモリモジュール番号が最小の揮発性メモリモジュール11であるか確認する。接続許可判断部1445は、パス数が最小で、かつ、揮発性メモリモジュール番号が最小の揮発性メモリモジュール11であれば、接続許可信号を接続要求応答部1444へ送信し、それ以外の場合には、接続拒否信号を接続要求応答部1444へ送信する。
 接続要求応答部1444は、接続許可判断部1445から接続許可信号を受信すると、接続許可を指定した接続応答パケット送信信号を通信I/F142へ送信する。一方、接続要求応答部1444は、接続許可判断部1445から接続拒否信号を受信すると、接続拒否を指定した接続応答パケット送信信号を通信I/F142へ送信する。通信I/F142は、接続要求応答部1444から接続応答パケット送信信号を受信すると、接続応答パケットを接続要求パケットの送信元の揮発性メモリI/F2へ送信する。
 なお、接続許可判断部1445は、既に接続許可信号を送信した後に、更に優先するべき接続要求受信信号を受信した場合には、一旦接続許可信号を送信した揮発性メモリモジュール11に対する接続拒否信号を接続要求応答部1444へ送信する。その上で、接続許可判断部1445は、接続要求パケットの送信元の揮発性メモリモジュール11に対する接続許可信号を接続要求応答部1444へ送信する。
 接続許可判断部1445は、接続許可信号を送信する場合、書込み有効信号を書込みデータ転送部145へアサートする。通信I/F142は、メモリモジュール間バス16からデータを受信すると、書込みデータ転送部145へ転送する。書込みデータ転送部145は、接続許可判断部1445から書込み有効信号がアサートされている間、通信I/F142から転送されるデータを不揮発性メモリI/F122へ転送する。書込みデータ転送部145は、接続許可判断部1445から書込み有効信号がディアサートされている間、通信I/F142から転送されるデータを破棄する。
 不揮発性メモリI/F122は、書込みデータ転送部145からデータが転送された場合、不揮発性メモリチップ121にデータをライトする。
 出力I/F141は、外部出力バス17からデータの読み出し要求を受け取った場合、リード要求を不揮発性メモリI/F122へ送信する。不揮発性メモリI/F122は、出力I/F141からリード要求を受信した場合、不揮発性メモリチップ121からデータを読み出して、出力I/F141へ送信する。出力I/F141は、不揮発性メモリI/F122からデータを受信した場合、外部出力バス17へ送信する。
 以上のように、実施の形態1に係るメモリシステム10では、各揮発性メモリモジュール11と各不揮発性メモリモジュール12とが3WAYハンドシェイクにより自律的にデータ転送経路を決定する。そのため、データ保存先等の情報を一元に管理・制御する機構とクロスバースイッチ回路とを用いる必要がない。その結果、データ保存先等の情報を一元に管理・制御する機構又はクロスバースイッチ回路が故障した場合に、メモリシステム10全体が動作しなくなるということがない。
 また、故障した揮発性メモリモジュール11が発見されると、不揮発性メモリモジュール12が待機状態になっている揮発性メモリモジュール11を起動させる。同様に、故障した不揮発性メモリモジュール12が発見されると、揮発性メモリモジュール11が待機状態になっている不揮発性メモリモジュール12を起動させる。
 そのため、一部の揮発性メモリモジュール11や一部の不揮発性メモリモジュール12が故障した場合における性能の低下を防止することができる。また、必要以上に存在する揮発性メモリモジュール11や不揮発性メモリモジュール12を待機状態とすることができ、不要な電力消費を減らすことができる。
 なお、上記説明において、「~パケット」として説明する全ての伝送単位には、パケットの種別を示すための「パケット種別」フィールドが含まれている。各保存先管理部は、「パケット種別」フィールドからパケットの種類を判断する。
 また、上記説明において、「~部」として説明する機能は、ソフトウェアによって実現されていてもよいし、回路や装置によって実現されていてもよい。「~部」として説明する機能がソフトウェアによって実現されている場合には、「~部」として説明する機能を実現するソフトウェアは、メモリシステム10内の記憶装置(例えば、不揮発性メモリモジュール12等)に記憶され、メモリシステム10が備える演算装置(CPU等)によって読み出され、実行される。
 10 メモリシステム、11 揮発性メモリモジュール、111 揮発性メモリチップ、112 揮発性メモリ用バス、12 不揮発性メモリモジュール、121 不揮発性メモリチップ、122 不揮発性メモリ用バス、13 V保存先管理部、131 入力I/F、132 通信I/F、133 揮発性メモリI/F、134 経路決定部、1341 冗長メモリ起動部、1342 生存確認パケット送信部、1343 生存確認パケット受信部、1344 接続要求部、1345 接続許可確認部、1346 不揮発性メモリ管理テーブル、1347 タイムアウト用カウンタ、14 NV保存先管理部、141 出力I/F、142 通信I/F、143 不揮発性メモリI/F、144 経路決定部、145 書込みデータ転送部、1441 冗長メモリ起動部、1442 生存確認パケット送信部、1443 生存確認パケット受信部、1444 接続要求応答部、1445 接続許可判断部、1446 揮発性メモリ管理テーブル、1447 タイムアウト用カウンタ、15 外部入力バス、16 メモリモジュール間バス、17 外部出力バス。

Claims (6)

  1.  データを一時記憶する複数の第1メモリモジュールと、
     各第1メモリモジュールに設けられた第1保存先管理部と、
     各第1メモリモジュールに記憶されたデータを記憶する複数の第2メモリモジュールと、
     各第2メモリモジュールに設けられた第2保存先管理部と
    を備え、
     前記各第1メモリモジュールに設けられた前記第1保存先管理部と、前記各第2メモリモジュールに設けられた前記第2保存先管理部とが通信して、データを記憶した第1メモリモジュール毎に、データの送信先の第2メモリモジュールを決定し、
     前記各第1メモリモジュールが、決定した送信先の第2メモリモジュールへデータを送信する
    ことを特徴とするデータ記憶装置。
  2.  前記第1保存先管理部は、前記各第2メモリモジュールへ生存確認メッセージを送信し、送信先の第2メモリモジュールが決定するまで、前記生存確認メッセージに対して応答があった第2メモリモジュールへ順に、送信先の第2メモリモジュールになることを依頼する接続要求メッセージを送信し、
     前記第2保存先管理部は、前記生存確認メッセージに対する応答の受信数に応じて決定した第1保存先管理部へ、前記送信先の第2メモリモジュールになることを了承する接続了承メッセージを送信する
    ことを特徴とする請求項1に記載のデータ記憶装置。
  3.  前記第1保存先管理部は、前記受信数を含む前記接続要求メッセージを送信する
    ことを特徴とする請求項2に記載のデータ記憶装置。
  4.  前記第2保存先管理部は、前記受信数が少ない第1保存先管理部に前記接続了承メッセージを送信し、既に前記接続了承メッセージを送信した前記第1保存先管理部がある場合において、前記受信数がより少ない前記第1保存先管理部から前記接続要求メッセージを受信した場合には、前記受信数がより少ない前記第1保存先管理部へ前記接続了承メッセージを送信するとともに、既に前記接続了承メッセージを送信した前記第1保存先管理部へ前記送信先の第2メモリモジュールになることを撤回する接続撤回メッセージを送信し、
     前記第1保存先管理部は、前記接続撤回メッセージを受信すると、前記接続要求メッセージの送信を再開する
    ことを特徴とする請求項2又は3に記載のデータ記憶装置。
  5.  前記第2メモリモジュールは、バックアップ用に待機状態になっているものが含まれており、
     前記第1保存先管理部は、前記生存確認メッセージに対して応答がない第2メモリモジュールがある場合には、前記待機状態になっている第2メモリモジュールへ起動メッセージを送信して、前記待機状態になっている第2メモリモジュールを稼働させる
    ことを特徴とする請求項2から4までのいずれかに記載のデータ記憶装置。
  6.  前記第1メモリモジュールは、バックアップ用に待機状態になっているものが含まれており、
     前記第2保存先管理部は、前記各第1メモリモジュールへ生存確認メッセージを送信し、前記生存確認メッセージに対して応答がない第1メモリモジュールがある場合には、前記待機状態になっている第1メモリモジュールへ起動メッセージを送信して、前記待機状態になっている第1メモリモジュールを稼働させる
    ことを特徴とする請求項2から5までのいずれかに記載のデータ記憶装置。
PCT/JP2014/054792 2014-02-27 2014-02-27 データ記憶装置 WO2015128976A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US15/121,136 US10372361B2 (en) 2014-02-27 2014-02-27 Data storage device including multiple memory modules and circuitry to manage communication among the multiple memory modules
JP2016504921A JP6141511B2 (ja) 2014-02-27 2014-02-27 データ記憶装置
EP14883990.5A EP3113027A4 (en) 2014-02-27 2014-02-27 Data storage device
PCT/JP2014/054792 WO2015128976A1 (ja) 2014-02-27 2014-02-27 データ記憶装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/054792 WO2015128976A1 (ja) 2014-02-27 2014-02-27 データ記憶装置

Publications (1)

Publication Number Publication Date
WO2015128976A1 true WO2015128976A1 (ja) 2015-09-03

Family

ID=54008345

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/054792 WO2015128976A1 (ja) 2014-02-27 2014-02-27 データ記憶装置

Country Status (4)

Country Link
US (1) US10372361B2 (ja)
EP (1) EP3113027A4 (ja)
JP (1) JP6141511B2 (ja)
WO (1) WO2015128976A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05158797A (ja) * 1991-12-06 1993-06-25 Hitachi Ltd 外部記憶サブシステム
JPH0720994A (ja) * 1993-06-30 1995-01-24 Hitachi Ltd 記憶システム
JP2004192482A (ja) * 2002-12-13 2004-07-08 Hitachi Ltd バックアップを特定するクラスタ型計算機システム及びクラスタ型ストレージシステム
JP2005043930A (ja) * 2003-07-22 2005-02-17 Hitachi Ltd 記憶装置システム
JP2013532339A (ja) * 2010-06-18 2013-08-15 エルエスアイ コーポレーション スケーラブルな記憶装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5295258A (en) 1989-12-22 1994-03-15 Tandem Computers Incorporated Fault-tolerant computer system with online recovery and reintegration of redundant components
US5317752A (en) 1989-12-22 1994-05-31 Tandem Computers Incorporated Fault-tolerant computer system with auto-restart after power-fall
US5327553A (en) 1989-12-22 1994-07-05 Tandem Computers Incorporated Fault-tolerant computer system with /CONFIG filesystem
DE69032508T2 (de) 1989-12-22 1999-03-25 Tandem Computers Inc Fehlertolerantes Rechnersystem mit Online-Wiedereinfügung und Abschaltung/Start
US5603058A (en) 1994-09-08 1997-02-11 International Business Machines Corporation Video optimized media streamer having communication nodes received digital data from storage node and transmitted said data to adapters for generating isochronous digital data streams
US5668948A (en) 1994-09-08 1997-09-16 International Business Machines Corporation Media streamer with control node enabling same isochronous streams to appear simultaneously at output ports or different streams to appear simultaneously at output ports
US5761417A (en) 1994-09-08 1998-06-02 International Business Machines Corporation Video data streamer having scheduler for scheduling read request for individual data buffers associated with output ports of communication node to one storage node
US5712976A (en) 1994-09-08 1998-01-27 International Business Machines Corporation Video data streamer for simultaneously conveying same one or different ones of data blocks stored in storage node to each of plurality of communication nodes
JP2003162377A (ja) 2001-11-28 2003-06-06 Hitachi Ltd ディスクアレイシステム及びコントローラ間での論理ユニットの引き継ぎ方法
JP2007323103A (ja) 2006-05-30 2007-12-13 Fujitsu Ltd オンボード電源を備えたボード及びボードのリセット制御方法
JP4849637B2 (ja) 2007-08-31 2012-01-11 ルネサスエレクトロニクス株式会社 メモリカード及びメモリコントローラ
WO2010137178A1 (en) 2009-05-25 2010-12-02 Hitachi,Ltd. Storage subsystem

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05158797A (ja) * 1991-12-06 1993-06-25 Hitachi Ltd 外部記憶サブシステム
JPH0720994A (ja) * 1993-06-30 1995-01-24 Hitachi Ltd 記憶システム
JP2004192482A (ja) * 2002-12-13 2004-07-08 Hitachi Ltd バックアップを特定するクラスタ型計算機システム及びクラスタ型ストレージシステム
JP2005043930A (ja) * 2003-07-22 2005-02-17 Hitachi Ltd 記憶装置システム
JP2013532339A (ja) * 2010-06-18 2013-08-15 エルエスアイ コーポレーション スケーラブルな記憶装置

Non-Patent Citations (1)

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

Also Published As

Publication number Publication date
US10372361B2 (en) 2019-08-06
JPWO2015128976A1 (ja) 2017-03-30
EP3113027A4 (en) 2017-11-01
EP3113027A1 (en) 2017-01-04
US20170220286A1 (en) 2017-08-03
JP6141511B2 (ja) 2017-06-07

Similar Documents

Publication Publication Date Title
US10110499B2 (en) QoS in a system with end-to-end flow control and QoS aware buffer allocation
US11792132B2 (en) Technologies for aligning network flows to processing resources
US9009648B2 (en) Automatic deadlock detection and avoidance in a system interconnect by capturing internal dependencies of IP cores using high level specification
US9397851B2 (en) Directed route load/store packets for distributed switch initialization
JP2018125044A5 (ja)
US8204054B2 (en) System having a plurality of nodes connected in multi-dimensional matrix, method of controlling system and apparatus
US9007920B2 (en) QoS in heterogeneous NoC by assigning weights to NoC node channels and using weighted arbitration at NoC nodes
EP2605451B1 (en) Node controller link switching method, processor system and node
KR20160054007A (ko) 메모리 모듈 액세스 방법 및 장치
US20230421451A1 (en) Method and system for facilitating high availability in a multi-fabric system
US20140372646A1 (en) Receiver based communication permission token allocation
JP6141511B2 (ja) データ記憶装置
US8732331B2 (en) Managing latencies in a multiprocessor interconnect
CN104618121A (zh) 交换器及服务器系统
US20230016684A1 (en) Communications Method and Related Apparatus
JP2017092750A (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: 14883990

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2016504921

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 15121136

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

REEP Request for entry into the european phase

Ref document number: 2014883990

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2014883990

Country of ref document: EP