WO2009107212A1 - ストレージ装置、ストレージ制御装置およびストレージ制御方法 - Google Patents

ストレージ装置、ストレージ制御装置およびストレージ制御方法 Download PDF

Info

Publication number
WO2009107212A1
WO2009107212A1 PCT/JP2008/053493 JP2008053493W WO2009107212A1 WO 2009107212 A1 WO2009107212 A1 WO 2009107212A1 JP 2008053493 W JP2008053493 W JP 2008053493W WO 2009107212 A1 WO2009107212 A1 WO 2009107212A1
Authority
WO
WIPO (PCT)
Prior art keywords
control data
data
storage
cache memory
programmable device
Prior art date
Application number
PCT/JP2008/053493
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 JP2010500487A priority Critical patent/JP5158187B2/ja
Priority to PCT/JP2008/053493 priority patent/WO2009107212A1/ja
Publication of WO2009107212A1 publication Critical patent/WO2009107212A1/ja
Priority to US12/805,948 priority patent/US8832355B2/en

Links

Images

Classifications

    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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

Definitions

  • the present invention has a function of saving data stored in a cache memory to a nonvolatile memory at the time of abnormal termination, and a function of restoring data saved to the nonvolatile memory to the cache memory at power-on after abnormal termination.
  • the present invention relates to a storage apparatus, a storage control apparatus, and a storage control method for realizing the above by a programmable device in which predetermined control data is written.
  • the storage device forms a RAID (Redundant Arrays of Independent (Inexpensive) Disks) group by a plurality of hard disk devices (storage media), and the reliability of data handled and the access performance to the data Has improved.
  • RAID Redundant Arrays of Independent (Inexpensive) Disks
  • Such a storage apparatus generally improves access performance by performing a write process (write process) called a write-back method.
  • a write process write process
  • the storage device notifies the host computer that the write processing is completed when the data is stored in the cache memory. Thereafter, when a predetermined condition is satisfied, the data stored in the cache memory is stored in the hard disk device.
  • this write-back method it is possible to increase the access performance compared to the case of adopting the write-through method of notifying the host computer that the write processing is completed after data writing to the hard disk device is completed. Become.
  • the power is turned off without a normal termination operation due to a power failure or the like in a state where the data stored in the cache memory is not stored in the hard disk device.
  • abnormal termination when the power is turned off without performing a normal termination operation, data may be lost. This is because a volatile memory is generally used as the cache memory, and data is lost when power is not supplied from the power source.
  • the data on the cache memory is saved to the non-volatile memory while power is supplied from a large-capacity capacitor that can supply power even when the power is turned off.
  • Some are configured to restore the data saved in the nonvolatile memory to the cache memory when the power is turned on after completion.
  • a battery may be used in place of the capacitor.
  • the battery has problems such as deterioration of the battery, in recent years, there is a tendency to employ a capacitor that is less deteriorated due to charge / discharge.
  • the above-described conventional storage apparatus has a problem that the data transfer circuit becomes large in order to speed up the data transfer processing performed at the time of abnormal termination and startup after the abnormal termination.
  • a data transfer circuit for performing a process of saving data on the cache memory to the nonvolatile memory (hereinafter referred to as “data saving process”), and a nonvolatile memory It is conceivable to prepare two data transfer circuits for performing processing for restoring the data saved in the cache memory to the cache memory and perform the data transfer processing in parallel, but this increases the circuit scale. There was a problem that.
  • Accelerating the data saving process makes it possible to save more data in the nonvolatile memory within a short time when power is supplied from the capacitor.
  • the data recovery process is speeded up, it is possible to shorten the startup time of the storage apparatus after abnormal termination. For this reason, speeding up the data transfer process described above is an important issue.
  • the present invention has been made to solve the above-described problems caused by the prior art, and a storage apparatus and storage capable of efficiently performing a data saving process and a data recovery process without increasing the size of a data transfer circuit It is an object to provide a control device and a storage control method.
  • the storage device disclosed in the present application has a function of saving data stored in the cache memory to the nonvolatile memory at the time of abnormal termination, and saving the data to the nonvolatile memory. And a function of restoring the cache memory when power is turned on after abnormal termination by a programmable device in which predetermined control data is written, the data stored in the cache memory being stored in the cache memory Write control data, which is control data for realizing a function to be saved in the nonvolatile memory, and read control data, which is control data for realizing a function for restoring the data saved in the nonvolatile memory to the cache memory Control data storage means for storing the When the power is turned on after the normal termination, the writing means for writing the read control data stored in the control data storage means to the programmable device, and the programmable device to which the read control data has been written by the writing means On the other hand, it is a requirement that a restoration instruction means for instructing the data saved in the nonvolatile memory
  • the writing unit is stored in the control data storage unit when the programmable device instructed by the recovery instruction unit completes the data recovery process. It is a requirement to write write control data to the programmable device.
  • the storage device disclosed in the present application may be configured such that the control data storage means uses a plurality of read data as control data for realizing a function of restoring the data saved in the nonvolatile memory to the cache memory.
  • Storing the control data, and the writing unit writes a plurality of read control data stored in the control data storage unit to the programmable device when the storage device is powered on after abnormal termination.
  • the restoration instructing unit performs processing for restoring the data saved in the plurality of nonvolatile memories to the cache memory in parallel with respect to the programmable device in which the plurality of read control data is written by the writing unit. It is a requirement to instruct.
  • the storage device disclosed in the present application may be configured such that the control data storage unit includes a plurality of control data as a control data for realizing a function of saving data stored in the cache memory to the nonvolatile memory.
  • Write control data is stored, and the writing means stores a plurality of write control data stored in the control data storage means when the programmable device instructed by the recovery instruction means completes data recovery processing. It is a requirement to write to a programmable device.
  • the processing for saving the data stored in the cache memory to the nonvolatile memory without making the data transfer circuit large, and the data saved in the nonvolatile memory to the cache memory There is an effect that it is possible to efficiently perform the process of recovering to. That is, there is an effect that it is possible to shorten the time required for activation after abnormal termination without increasing the mounting area and cost.
  • FIG. 1 is a diagram illustrating a schematic configuration of a storage apparatus according to the present embodiment.
  • FIG. 2 is a diagram illustrating a configuration of a CM included in the storage device of the comparative example.
  • FIG. 3 is a diagram illustrating an example of various kinds of information stored in the NVRAM.
  • FIG. 4 is a diagram illustrating a configuration of the FPGA in which the control data for power failure recovery is configured.
  • FIG. 5 is a sequence diagram illustrating a flow of data recovery processing by a CM included in the storage device of the comparative example.
  • FIG. 6 is a diagram illustrating a configuration of a CM included in the storage apparatus according to the present embodiment.
  • FIG. 7A is a diagram of a configuration of the FPGA in which the power failure control data is configured.
  • FIG. 7B is a diagram of a configuration of the FPGA in which the power recovery control data is configured.
  • FIG. 8 is a sequence diagram illustrating a flow of data recovery processing by a CM
  • control data data obtained by implementing a logic circuit and written (configured) in a programmable device. That is, the programmable device operates in the same manner as the logic circuit converted into control data.
  • FIG. 1 is a diagram illustrating a schematic configuration of a storage apparatus 1 according to the present embodiment. In the figure, only the configuration necessary for explaining the outline of the storage apparatus 1 is shown.
  • the storage apparatus 1 shown in the figure has a duplex configuration in order to ensure high reliability, and each component is divided into two systems (in the figure, distinguished by A and B added to the reference numerals). Is provided. Since the components of each system have the same functions, the components will be described only for one system below.
  • the storage apparatus 1 includes a CE (Controller Enclosure) mainly equipped with each unit that controls the storage apparatus 1 and a communication module that handles communication between the storage apparatus 1 and a host computer that is a host apparatus.
  • the controller enclosure) 10 and the DE (Device Enclosure) 20 mainly equipped with the hard disk device are divided into housings.
  • CE 10 is connected to a host computer via a fiber channel as an external device via a channel adapter (not shown), and is connected to DE 20 via expanders 112A and 112B.
  • the DE 20 includes a hard disk device (hereinafter abbreviated as “HDD: Hard Disk Drive”) 21, and is connected to other DEs by using the expanders 212 ⁇ / b> A and 213 ⁇ / b> B directly or via a router. Individual connection is possible.
  • HDD Hard Disk Drive
  • the CE 10 includes CMs (Controller Modules) 100A and 100B for controlling the storage apparatus 1, and a plurality of HDDs 11 connected to the CMs 100A and 100B.
  • CMs Controller Modules
  • HDDs 11 connected to the CMs 100A and 100B.
  • the HDD 11 is a storage device in which data is read and written redundantly by the CM 100A.
  • the storage device connected to the CM 100A is not limited to the hard disk device, and may be another storage device such as a thermomagnetic disk device, a magneto-optical disk device, or a semiconductor disk using a semiconductor nonvolatile memory.
  • the CM 100A is a storage control device that controls the storage device 1, and includes an interface (hereinafter abbreviated as “I / F”) unit 111A, an expander 112A, a cache memory 113A, a RAID-on-Chip (hereinafter referred to as “RAID-on-Chip”). 119A) (abbreviated as “RoC”).
  • the I / F unit 111A is an interface for connecting to a network such as a LAN (Local Area Network).
  • the expander 112 ⁇ / b> A is a relay device that relays data transmitted and received between the RoC 119 ⁇ / b> A and the HDD 11.
  • the cache memory 113A is a memory that temporarily stores data transferred between the host computer and the HDD 11.
  • a memory having high access performance such as DDR2 SDRAM (Double Data Rate2, Synchronous Dynamic Random Access Memory) is used.
  • the RoC 119A is a control device that controls the CM 100A as a whole, and is a type of “System On Chip” that includes a memory controller and a CPU (Central Processing Unit). Specifically, the RoC 119A controls the interface with the host computer and manages the cache memory 113A.
  • the RoC 119A when a data write command is received from the host computer, the RoC 119A stores the data in the cache memory 113A. Then, the RoC 119A notifies the host computer that the write processing has been completed when the data is stored in the cache memory 113A. Thereafter, when a predetermined condition is satisfied, the data stored in the cache memory 113A is written into the HDD 11.
  • CM 110 the configuration of the CM included in the storage apparatus (referred to as storage apparatus 0) of the comparative example
  • the CM 110 the configuration of the CM (referred to as CM 120) included in the storage apparatus 1 according to the present embodiment and the various processes performed by the CM 120 will be described.
  • abnormal termination a case where power supply from the power supply to the storage device is stopped due to a power failure will be described as an example, but the example of abnormal termination is not limited to this, This also applies to the case where the user unplugs the power plug while the storage apparatus is running.
  • FIG. 2 is a diagram illustrating a configuration of the CM 110 included in the storage device 0 of the comparative example.
  • the schematic configuration of the disarray device 0 of the comparative example is the same as the schematic configuration of the storage device 1 shown in FIG. 1, and the CM 110 shown in FIG. 2 corresponds to 100A and 100B shown in FIG. Further, FIG. 2 illustrates only the configuration related to the data saving process and the data recovery process.
  • the CM 110 is connected to the power supply unit 12, and includes a cache memory 113, flash memories 114a and 114b, a control data storage unit 115, an NVRAM (Non Volatile Random Access Memory) 116, It has PLD 117, FPGA 118, and RoC 119.
  • NVRAM Non Volatile Random Access Memory
  • the power supply unit 12 is a large-capacity capacitor, a battery, or the like that supplies power to the CM 110 when power supply from the power supply to the storage apparatus 0 is stopped due to a power failure.
  • the cache memory 113 is a memory that temporarily stores data transferred between the host computer and the HDD 11.
  • the flash memories 114a and 114b are non-volatile memories in which data stored in the cache memory 113 is saved by an FPGA 118 described later when a power failure occurs.
  • NAND (Nand) type flash memories are generally used as the flash memories 114a and 114b. In this specification, the flash memories 114a and 114b are described as NAND type flash memories.
  • the control data storage unit 115 is a storage device such as a nonvolatile memory, and stores power failure / recovery control data 115a configured in the FPGA 118 described later.
  • the FPGA 118 can perform data saving processing and data recovery processing.
  • the NVRAM 116 is a storage device such as a non-volatile memory, and stores information for determining whether or not a power failure has occurred. An example of various information stored in the NVRAM 116 is shown in FIG.
  • the NVRAM 116 stores a power failure flag indicating whether or not a power failure has occurred, and a data saving completion flag indicating whether or not the data saving processing is completed.
  • a power failure flag indicating whether or not a power failure has occurred
  • a data saving completion flag indicating whether or not the data saving processing is completed.
  • the power failure flag and data save completion flag stored in the NVRAM 116 are updated by the PLD 117 described later.
  • the power failure flag and data save completion flag update processing by the PLD 117 will be described later.
  • the PLD 117 is a device including various logic circuits that control the CM 110, and performs processing for configuring control data in the FPGA 118, processing for updating various data stored in the NVRAM 116, processing for detecting a power failure, and the like. Do.
  • the PLD 117 accepts an instruction to perform configuration from the RoC 119, and configures the power failure / recovery control data 115a in the FPGA 118.
  • the reason for configuring the power failure / recovery control data 115a in the FPGA 118 when the power is turned on is that a rewritable programmable device such as the FPGA 118 loses the configured control data when power is not supplied.
  • the PLD 117 acquires the power failure flag and the data save completion flag stored in the NVRAM 116. Then, when the acquired power failure flag is “1 (power failure occurred)” and the data save completion flag is “1 (save completed)”, the PLD 117 supplies power to the RoC 119 after the power failure occurs. Notify that.
  • the PLD 117 does not turn on power to the RoC 119 after the power failure occurs. To indicate that it is “normal power-on”.
  • the PLD 117 detects whether or not a power failure has occurred during the startup of the storage device 0. When the PLD 117 detects that a power failure has occurred, the PLD 117 notifies the RoC 119 that a power failure has occurred and updates the power failure flag stored in the NVRAM 116 to “1 (power failure occurred)”. When the PLD 117 receives a notification from the RoC 119 that the data saving process has been completed, the PLD 117 updates the data saving completion flag stored in the NVRAM 116 to “1 (saving complete)”.
  • the FPGA 118 is a programmable device in which predetermined control data is configured by the PLD 117. Specifically, in the FPGA 118, when the storage apparatus 0 is powered on, the power failure / recovery control data 115a is configured by the PLD 117. As a result, the FPGA 118 can execute data save processing and data recovery processing. As the FPGA 118, an FPGA having a scale capable of configuring the power recovery control data 115a is used.
  • FIG. 4 is a diagram showing the configuration of the FPGA 118 in which the power failure recovery control data 115a is configured.
  • the FPGA 118 in which the power failure / recovery control data 115a is configured includes a PCI (Peripheral Component Interconnect) bus I / F 181, memory I / F 182a and 182b, a descriptor holding register 183, and a write DMA. (Direct Memory Access) 184a and 184b, read DMA 185a, and erase DMA 186a and 186b.
  • PCI Peripheral Component Interconnect
  • the PCI bus I / F 181 is an interface for transmitting and receiving data between the FPGA 118 and the cache memory 113.
  • the memory I / F 182a is an interface that performs data transmission / reception between the FPGA 118 and the flash memory 114a
  • the memory I / F 182b is an interface that performs data transmission / reception between the FPGA 118 and the flash memory 114b.
  • the descriptor holding register 183 is a register that stores an instruction (descriptor) for each DMA generated by the RoC 119.
  • the descriptor holding register 183 includes a descriptor indicating a data saving instruction (hereinafter referred to as “data saving descriptor”), a descriptor indicating a data recovery instruction (hereinafter referred to as “data recovery descriptor”), a flash memory, and the like.
  • a descriptor hereinafter referred to as “erase descriptor” indicating an erase instruction which is an instruction for erasing data stored in 114a and 114b is held.
  • the write DMA 184a When the write DMA 184a receives the data save descriptor from the descriptor holding register 183, the write DMA 184a acquires the data stored in the cache memory 113 via the PCI bus I / F 181 and transmits the acquired data via the memory I / F 182a. DMA circuit to be stored in the flash memory 114a.
  • the write DMA 184b receives the data save descriptor from the descriptor holding register 183, the write DMA 184b acquires the data stored in the cache memory 113 via the PCI bus I / F 181 and stores the acquired data in the memory I / F. It is a DMA circuit that is stored in the flash memory 114b via F182b.
  • the write DMAs 184a and 184b perform processing for transferring data from the cache memory 113 to the flash memory 114a or 114b in parallel.
  • the CM 110 of the comparative example includes two flash memories 114a and 114b as storage areas for saving data, and further, two write DMAs 184a and 184b are configured in the FPGA 118, and the write DMA 184a is configured.
  • 184b perform the data saving process in parallel, so that the data saving process can be efficiently performed when a power failure occurs. As a result, the data saving process can be completed within a short time in which power is supplied from the power supply unit 12.
  • the read DMA 185 a is a DMA circuit that transfers data stored in the flash memories 114 a and 114 b to the cache memory 113. Specifically, when the read DMA 185a receives a data recovery descriptor indicating that the data stored in the flash memory 114a is transferred to the cache memory 113 from the descriptor holding register 183, the read DMA 185a performs flashing via the memory I / F 182a. The data stored in the memory 114 a is acquired, and the acquired data is stored in the cache memory 113 via the PCI bus I / F 181.
  • the read DMA 185a receives a data recovery descriptor for transferring the data stored in the flash memory 114b to the cache memory 113
  • the read DMA 185a reads the data stored in the flash memory 114b via the memory I / F 182b.
  • the acquired data is stored in the cache memory 113 via the PCI bus I / F 181.
  • one read DMA 185a is configured in the FPGA 118, and the read DMA 185a performs data recovery processing.
  • the erase DMA 186a is a DMA circuit that erases data stored in the flash memory 114a when an erase descriptor is received from the descriptor holding register 183.
  • the erase DMA 186b is a DMA circuit that erases data stored in the flash memory 114b when an erase descriptor is received from the descriptor holding register 183.
  • the RoC 119 is a control device that controls the CM 110 as a whole, and when the power to the storage device 0 is turned on, the power failure / recovery control data 115 a is configured in the FPGA 118 for the PLD 117.
  • the RoC 119 when the RoC 119 receives a notification that a power failure has occurred from the PLD 117, the RoC 119 instructs the FPGA 118 to perform a data saving process. Specifically, the RoC 119 generates a data save descriptor and stores the data save descriptor in the descriptor holding register 183, sends the stored data save descriptor to the write DMAs 184a and 184b, and performs data save processing in parallel to the write DMAs 184a and 184b. To do so.
  • the RoC 119 when the RoC 119 receives a notification from the PLD 117 that the power is turned on after a power failure occurs, the RoC 119 instructs the FPGA 118 to perform data recovery processing. Specifically, the RoC 119 generates a data recovery descriptor, stores the data recovery descriptor in the descriptor holding register 183, and sends the stored data recovery descriptor to the read DMA 185a, thereby instructing the data saving process. Thereafter, the RoC 119 generates an erase descriptor and stores it in the descriptor holding register 183, sends the stored erase descriptor to the erase DMAs 186a and 186b, and instructs the erase DMAs 186a and 186b to perform the erase process in parallel. To do.
  • FIG. 5 is a sequence diagram illustrating a flow of data recovery processing by the CM 110 included in the storage apparatus 0 of the comparative example.
  • the RoC 119 when the RoC 119 receives a notification from the PLD 117 that the power is turned on after the occurrence of a power failure after the storage device 0 is turned on (step S101), the data is transferred from the flash memory 114a to the cache memory 113. Create a data recovery descriptor to transfer.
  • the RoC 119 stores the generated data recovery descriptor in the descriptor holding register 183, sends the stored data recovery descriptor to the read DMA 185a, and instructs to perform data recovery processing (step S102).
  • the read DMA 185a that has received the data recovery descriptor stores the data stored in the flash memory 114a in the cache memory 113 (step S103). After this data recovery processing is completed, the read DMA 185a notifies the RoC 119 that the data transfer from the flash memory 114a to the cache memory 113 has been completed (step S104).
  • the RoC 119 that has received such a completion notification generates a data recovery descriptor to transfer data from the flash memory 114b to the cache memory 113.
  • the RoC 119 stores the generated data recovery descriptor in the descriptor holding register 183, sends the stored data recovery descriptor to the read DMA 185a, and instructs to perform data recovery processing (step S105).
  • the read DMA 185a that has received the data recovery descriptor stores the data stored in the flash memory 114b in the cache memory 113 (step S106). After the data recovery processing is completed, the read DMA 185a notifies the RoC 119 that the data transfer from the flash memory 114b to the cache memory 113 is completed (step S107).
  • the RoC 119 changes the data write processing method to the write-through method (step S108), and performs a restore process (flashback) for storing the data stored in the cache memory 113 in the HDD 11 ( Step S109).
  • a restore process flashback
  • the RoC 119 generates an erase descriptor and stores it in the descriptor holding register 183, sends the stored erase descriptor to the erase DMAs 186a and 186b, and erases the data stored in the flash memories 114a and 114b. (Step S110).
  • the erase DMA 186a that has received the erase descriptor erases the data stored in the flash memory 114a (step S111), and the erase DMA 186b erases the data stored in the flash memory 114b (step S112). After the erase process is completed, the erase DMAs 186a and 186b notify the RoC 119 that the erase process has been completed (step S113).
  • the erase process is performed because the flash memories 114a and 114b, which are NAND flash memories, need to erase the stored data in order to store new data. That is, after the data recovery process is completed, the data stored in the flash memories 114a and 114b is erased to prepare for the next occurrence of a power failure.
  • the RoC 119 that has received the notification that the erase process has been completed changes the data write processing method to the write back method (step S114), and starts the storage device 0 (step S115).
  • the storage device 0 of the comparative example realizes that the data saving process is completed within a short time when power is supplied from the power supply unit 12 by configuring the two systems of write DMAs 184a and 1842b in the FPGA 118. is doing.
  • the data recovery processing is performed by one system of read DMA 185a, it takes time to complete the data recovery processing, but the scale-up of the FPGA 118 is suppressed and an increase in cost is prevented.
  • CM 110 included in the storage device 0 of the comparative example data transfer from the flash memory 114b to the cache memory 113 is performed after data transfer from the flash memory 114a to the cache memory 113 is completed. For this reason, in the storage device 0 of the comparative example, the time required for the data recovery process cannot be reduced, and as a result, the time required for starting after the abnormal end cannot be reduced.
  • the storage device 1 it is possible to speed up the data saving process and further speed up the data recovery process without increasing the size of the FPGA as the data transfer circuit.
  • the storage apparatus 1 according to the present embodiment will be described in detail with reference to FIGS.
  • FIG. 6 is a diagram illustrating the configuration of the CM 120 included in the storage apparatus 1 according to the present embodiment.
  • the CM 120 shown in the figure corresponds to 100A or 100B shown in FIG.
  • the CM 120 is connected to the power supply unit 12, and includes a cache memory 113, flash memories 114a and 114b, an NVRAM 116, a control data storage unit 125, a PLD 127, an FPGA 128, and a RoC 129.
  • a cache memory 113 flash memories 114a and 114b
  • an NVRAM 116 a control data storage unit 125
  • PLD 127 a PLD 127
  • FPGA 128 an FPGA 128, and a RoC 129.
  • RoC 129 RoC 129
  • the control data storage unit 125 is a storage device such as a nonvolatile memory, and stores the power failure control data 125a and the power recovery control data 125b.
  • the power failure control data 125a is control data for enabling the FPGA 128 to execute the data saving process.
  • the FPGA 128 in which the power failure control data 125a is configured can perform data saving processing by two systems of write DMA.
  • the power failure control data 125a does not include control data for performing data recovery processing that is unnecessary when a power failure occurs. That is, the FPGA 128 configured with the power failure control data 125a does not have the read DMA.
  • the configuration of the FPGA 128 in which the power failure control data 125a is configured will be described in detail later.
  • the power recovery control data 125b is control data for enabling the FPGA 128 to execute data recovery processing when the power is turned on after abnormal termination.
  • the FPGA 128 configured with the power recovery control data 125b can perform data recovery processing by two systems of read DMA.
  • the power recovery control data 125b does not include control data for performing a data saving process that is unnecessary when the power is turned on after abnormal termination. That is, the FPGA 128 in which the power recovery control data 125b is configured does not have the write DMA.
  • the configuration of the FPGA 128 in which the power recovery control data 125b is configured will be described in detail later.
  • the PLD 127 is a device that includes various logic circuits that control the CM 120, a process that updates various data stored in the NVRAM 116, a process that detects that a power failure has occurred, and a process that configures control data in the FPGA 128. Etc.
  • the PLD 127 acquires a power failure flag and a data save completion flag stored in the NVRAM 116 when the storage device 1 is powered on. Then, when the acquired power failure flag is “1 (power failure occurred)” and the data save completion flag is “1 (save completed)”, the PLD 127 supplies power to the RoC 129 after the power failure occurs. Notify that.
  • the PLD 127 indicates that the RoC 129 is normally powered on. Notice.
  • the PLD 127 detects whether or not a power failure has occurred during the startup of the storage apparatus 1. When the PLD 127 detects that a power failure has occurred, the PLD 127 notifies the RoC 129 that a power failure has occurred, and updates the power failure flag stored in the NVRAM 116 to “1 (power failure occurred)”. When the PLD 127 receives notification from the RoC 129 that the data saving process has been completed, the PLD 127 updates the data saving completion flag stored in the NVRAM 116 to “1 (saving complete)”.
  • the PLD 127 configures the FPGA 128 with the power failure control data 125a or the power recovery control data 125b stored in the control data storage unit 125 in accordance with an instruction from a writing unit 129c of the RoC 129 described later.
  • the figure shows an example in which PLD 127 implements processing for updating various data stored in NVRAM 116, processing for detecting the occurrence of a power failure, processing for configuring control data in FPGA 128, and the like.
  • processing may be realized by an LSI (Large Scale Integration) chip other than the PLD.
  • the FPGA 128 is a programmable device in which the power failure control data 125a or the power recovery control data 125b is configured by the PLD 127.
  • the FPGA 128, an FPGA having a scale that allows the power failure control data 125a to be configured and the power recovery control data 125b to be configured. That is, the FPGA 128 compares the scale of the FPGA required for configuring the power failure control data 125a with the scale of the FPGA required for configuring the power recovery control data 125b.
  • An FPGA capable of configuring control data with a larger value is used.
  • FIG. 7A is a diagram illustrating a configuration of the FPGA 128 in which the power failure control data 125a is configured.
  • parts having the same functions as the constituent parts shown in FIG. 4 are denoted by the same reference numerals, and detailed description thereof is omitted.
  • the FPGA 128 in which the power failure control data 125a is configured has two systems of write DMAs 184a and 184b and two systems of erase DMAs 186a and 186b. That is, the FPGA 128 shown in FIG. 7A does not have the read DMA 185a as compared with the FPGA 118 configured with the power failure / recovery control data 115a shown in FIG.
  • FIG. 7-2 is a diagram showing a configuration of the FPGA 128 in which the power recovery control data 125b is configured.
  • the FPGA 128 configured with the power recovery control data 125b has two systems of read DMAs 185a and 185b and two systems of erase DMAs 186a and 186b. That is, the FPGA 128 shown in FIG. 7-2 does not have the write DMAs 184a and 184b and newly has the read DMA 185b, compared to the FPGA 118 configured with the power failure / recovery control data 115a shown in FIG. It becomes composition.
  • the read DMA 185 a When the read DMA 185 a receives the data recovery descriptor from the descriptor holding register 183, the read DMA 185 a stores the data stored in the flash memory 114 a in the cache memory 113. Similarly, when the read DMA 185 b receives the data recovery descriptor from the descriptor holding register 183, the read DMA 185 b stores the data stored in the flash memory 114 b in the cache memory 113.
  • the read DMAs 185a and 185b perform processing for transferring data from the flash memory 114a or 114b to the cache memory 113 in parallel.
  • the scale is small. FPGA can be used. Thereby, the cost concerning FPGA can be reduced. Further, as shown in FIG. 7-2, the FPGA 128 can perform the data recovery processing efficiently because the data recovery processing is performed in parallel by the two systems of the read DMAs 185a and 185b. The startup time of the subsequent storage apparatus 1 can be shortened.
  • the RoC 129 is a control unit that controls the CM 120 as a whole, and includes a save instruction unit 129a, a recovery instruction unit 129b, and a writing unit 129c.
  • the save instruction unit 129a is a processing unit that instructs the FPGA 128 to perform a data save process when receiving a notification that a power failure has occurred from the PLD 127.
  • the save instruction unit 129a generates a data save descriptor and stores it in the descriptor holding register 183, sends the stored data save descriptor to the write DMAs 184a and 184b, and performs the data save processing in parallel. To instruct.
  • the recovery instruction unit 129b is a processing unit that instructs the FPGA 128 to perform data recovery processing when receiving a notification from the PLD 127 that power is turned on after a power failure. Specifically, the recovery instruction unit 129b generates a data recovery descriptor, stores it in the descriptor holding register 183, sends the stored data recovery descriptor to the read DMAs 185a and 185b, and performs data recovery processing in parallel. To instruct.
  • the recovery instruction unit 129b when the data recovery processing by the FPGA 128 is completed, the recovery instruction unit 129b generates an erase descriptor and stores it in the descriptor holding register 183, and sends the stored erase descriptor to the erase DMAs 186a and 186b. Instruct to do it in parallel.
  • the writing unit 129c is a processing unit that instructs the PLD 127 to configure the power control data 125a for power failure or the control data 125b for power recovery in the FPGA 128.
  • the writing unit 129c instructs the PLD 127 to write (configure) the power failure control data 125a to the FPGA 128 when receiving a notification that the power is normally turned on from the PLD 127. To do.
  • the FPGA 128 has the configuration shown in FIG. 7A, and the data save processing can be performed by the two write DMAs 184a and 184b, so that a power failure can be prepared.
  • the writing unit 129c when the writing unit 129c receives a notification from the PLD 127 that power is turned on after the occurrence of a power failure, the writing unit 129c instructs the PLD 127 to write (configure) the power recovery control data 125b to the FPGA 128. To do.
  • the FPGA 128 has the configuration shown in FIG. 7B, and data recovery processing can be performed by the two read DMAs 185a and 185b.
  • the writing unit 129c instructs the PLD 127 to write (configure) the power failure control data 125a when receiving a notification from the FPGA 128 that the data saving process and the erasing process are completed.
  • FIG. 8 is a sequence diagram illustrating the flow of data recovery processing performed by the CM 120 included in the storage apparatus 1 according to the present embodiment.
  • the storage device 1 upon receiving a notification from the PLD 127 that the power is on after the occurrence of a power failure (step S201), the writing unit 129c of the RoC 129 An instruction is given to configure the power recovery control data 125b (step S202).
  • the FPGA 128 has a configuration including two systems of read DMAs 185a and 185b as shown in FIG. 7-2 (step S203).
  • the recovery instruction unit 129b of the RoC 129 generates a data recovery descriptor, stores the data recovery descriptor in the descriptor holding register 183, sends the stored data recovery descriptor to the read DMAs 185a and 185b, and performs data recovery processing in parallel. (Step S204).
  • the read DMA 185a that has received the data recovery descriptor stores the data stored in the flash memory 114a in the cache memory 113 (step S205).
  • the read DMA 185b that has received the data recovery descriptor stores the data stored in the flash memory 114b in the cache memory 113 (step S206).
  • Data recovery processing by the read DMAs 185a and 185b is performed in parallel.
  • the read DMAs 185a and 185b notify the RoC 129 that the data recovery process has been completed (step S207).
  • the RoC 129 that has received the completion notification changes the data write processing method to the write-through method (step S208), and performs a restore process for storing the data stored in the cache memory 113 in the HDD 11 (step S208). S209).
  • the recovery instruction unit 129b of the RoC 129 generates an erase descriptor, stores the erase descriptor in the descriptor holding register 183, sends the stored erase descriptor to the erase DMAs 186a and 186b, and is stored in the flash memories 114a and 114b.
  • An instruction is given to erase the data (step S210).
  • the erase DMA 186a that has received the erase descriptor erases the data stored in the flash memory 114a (step S211), and the erase DMA 186b erases the data stored in the flash memory 114b (step S212). After the erase process is completed, the erase DMAs 186a and 186b notify the RoC 129 that the erase process has been completed (step S213).
  • the writing unit 129c of the RoC 129 instructs the PLD 127 to configure the power failure control data 125a (step S214).
  • the FPGA 128 has a configuration including the two write DMAs 184a and 184b as shown in FIG. 7A (step S215), and can be prepared for the occurrence of a power failure.
  • processing reconfiguration processing
  • data recovery processing is performed in parallel by the two read DMAs 185a and 185b. Therefore, overall, the processing time required for activation after abnormal termination can be shortened.
  • the RoC 119 changes the data write processing method to the write back method (step S216), and starts the storage device (step S217).
  • the storage apparatus 1 configures the power recovery control data 125b in the FPGA 128 when the power is turned on after the power failure occurs, and performs data recovery processing by the two systems of the read DMAs 185a and 185b. Since the system is configured to start after being performed, it is possible to shorten the time required for starting after abnormal termination.
  • the storage apparatus 1 is configured such that after the data recovery process is completed, the power failure control data 125a is configured in the FPGA 128 and the data save process can be performed by the two systems of write DMAs 184a and 184b. Therefore, even if a power failure occurs after the storage apparatus 1 is activated, the data saving process can be performed efficiently.
  • the FPGA 128 in which the power failure control data 125a is configured includes the two write DMAs 184a and 184b, and does not include the read DMA unnecessary for the data saving process. Since the FPGA 128 configured with the power recovery control data 125b includes the two read DMAs 185a and 185b and does not include the write DMA unnecessary for the data recovery processing, the comparative example Compared with the FPGA 118 of the FPGA 128, the FPGA 128 can be made smaller. As a result, the cost for the storage apparatus 1 can be reduced.
  • the data saving process and the data recovery process can be efficiently performed without increasing the size of the FPGA 128 that is the data transfer circuit.
  • the storage apparatus 1 includes two systems of flash memories 114a and 114b as data storage devices
  • data storage processing is performed by two systems of write DMAs 184a and 184b.
  • the present invention is not limited to this.
  • the present invention is not limited to this, and a storage apparatus including a storage device for saving data of one system, or saving data of three or more systems.
  • the present invention can also be applied to a storage apparatus including a storage device for use.
  • a storage apparatus including a storage device for saving data of one system
  • data saving processing is performed by one system of write DMA
  • data recovery processing is performed by one system of read DMA.
  • a storage apparatus needs to use an FPGA having a scale that can simultaneously include one system of write DMA and one system of read DMA.
  • one system of write DMA or one system is used.
  • An FPGA of a scale that can include only one of the read DMAs can be used. As a result, the FPGA can be reduced in size, and the cost for the storage apparatus can be reduced.
  • each component of each illustrated apparatus is functionally conceptual, and does not necessarily need to be physically configured as illustrated. That is, the specific form of distribution and integration of each device is not limited to the one shown in the figure, and all or a part thereof is functionally or physically distributed in arbitrary units according to various loads or usage conditions. Can be integrated and configured. Further, all or any part of each processing function performed in each device is realized by a CPU (Central Processing Unit) and a program analyzed and executed by the CPU, or hardware by wired logic. Can be realized as
  • CPU Central Processing Unit

Landscapes

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

Abstract

 データ転送回路を大規模にすることなく、データ退避処理とデータ復旧処理を効率よく行うことができるストレージ装置、ストレージ制御装置およびストレージ制御方法を提供することを目的とする。停電発生後の電源投入時に、FPGA(128)に復電用制御データ(125b)をコンフィグレーションして、2系統のリードDMA(185aおよび185b)によってデータ復旧処理を行い、データ復旧処理が完了した後に、FPGA(128)に停電用制御データ(125a)をコンフィグレーションして、2系統のライトDMA(184aおよび184b)によってデータ退避処理を行えるように構成する。

Description

ストレージ装置、ストレージ制御装置およびストレージ制御方法
 本発明は、異常終了時にキャッシュメモリに記憶されているデータを不揮発性メモリに退避させる機能と、前記不揮発性メモリに退避させたデータを異常終了後の電源投入時に前記キャッシュメモリに復旧させる機能とを、所定の制御データが書き込まれたプログラマブルデバイスによって実現するストレージ装置、ストレージ制御装置およびストレージ制御方法に関する。
 従来、大規模なコンピュータシステムでは、ホストコンピュータと別体に構成された専用のデータ入出力装置を用いてデータを管理している。このデータ入出力装置の中でも、ストレージ装置は、複数のハードディスク装置(記憶媒体)によってRAID(Redundant Arrays of Independent(Inexpensive) Disks)グループを構成して、取り扱うデータの信頼性や、データへのアクセス性能を向上させている。
 このようなストレージ装置は、一般に、ライトバック方式と呼ばれるライト処理(書込処理)を行うことで、アクセス性能を向上させている。具体的には、ストレージ装置は、上位装置であるホストコンピュータからデータのライト命令を受け付けた場合に、キャッシュメモリにデータを記憶した時点で、ライト処理が完了した旨をホストコンピュータへ通知する。その後、所定の条件を満たした時点で、キャッシュメモリに記憶したデータをハードディスク装置へ記憶させる。このライトバック方式を採用すると、ハードディスク装置へのデータ書き込みが完了した後にライト処理が完了した旨をホストコンピュータへ通知するライトスルー方式を採用する場合と比較してアクセス性能の高速化が実現可能となる。
 ところで、上述したようなライトバック方式を採用するストレージ装置では、キャッシュメモリに記憶されているデータがハードディスク装置に記憶されていない状態で、停電などによって正常な終了操作が行われることなく電源が落とされると(以下、正常な終了操作が行われることなく電源が落とされることを「異常終了」という)、データが消失するおそれがある。キャッシュメモリは、一般的に揮発性メモリが用いられており、電源からの電力供給がなくなるとデータを消失するからである。
 そこで、ストレージ装置には、異常終了した場合、電源が落とされた状態でも電力供給可能な大容量のコンデンサから電力供給されている間に、キャッシュメモリ上のデータを不揮発性メモリに退避させ、異常終了後に電源投入された場合に不揮発性メモリに退避したデータをキャッシュメモリに復旧させるように構成されているものがある。なお、コンデンサの代わりに、バッテリーを用いることもあるが、バッテリーには電池の劣化等の問題があるため、近年では、充放電による劣化が少ないコンデンサを採用する傾向にある。
 このようにして、ライトバック方式を採用するストレージ装置では、ホストコンピュータに対するアクセス性能の高速化を実現するとともに、異常終了時にデータが消失することを防止している。
特表2004-506256号公報 特開2001-092648号公報
 しかしながら、上述した従来のストレージ装置には、異常終了時および異常終了後の起動時に行うデータ転送処理を高速化するためには、データ転送回路が大規模になるという問題があった。
 具体的には、データ転送処理を高速するためには、キャッシュメモリ上のデータを不揮発性メモリに退避させる処理(以下、「データ退避処理」という)を行うためのデータ転送回路と、不揮発性メモリに退避したデータをキャッシュメモリに復旧させる処理を行うためのデータ転送回路とを、2系統ずつ用意しておきデータ転送処理を並行して行うことが考えられるが、これでは回路規模が大きくなってしまうという問題があった。
 データ退避処理が高速化されると、コンデンサから電力供給される短い時間内に、より多くのデータを不揮発性メモリに退避することが可能になる。また、データ復旧処理が高速化されると、異常終了後のストレージ装置の起動時間を短縮することが可能になる。このようなことから、上述したデータ転送処理を高速化することは、重要な課題となっている。
 なお、近年、開発工数の低減等を目的として、データ転送回路をFPGA(Field Programmable Gate Array)により実現することが一般的に行われている。このFPGAを用いて、前述したような4つのデータ転送回路を実現するためには、やはり大規模なFPGAが必要となり、実装面積の大きいFPGAをストレージ装置に実装しなければならなくなるという問題や、コストが増大するという問題を招く。ストレージ装置の小型化やコスト低減は共通の課題となっており、実装面積の増大やコストの増大は重要な課題となる。
 以上のことから、ストレージ装置においては、データ転送回路を大規模にすることなく、データ退避処理とデータ復旧処理を効率よく行うことができる技術をいかにして実現するかが重要な課題となっていた。
 本発明は、上述した従来技術による課題を解消するためになされたものであり、データ転送回路を大規模にすることなく、データ退避処理とデータ復旧処理を効率よく行うことができるストレージ装置、ストレージ制御装置およびストレージ制御方法を提供することを目的とする。
 上述した課題を解決し、目的を達成するために、本願に開示するストレージ装置は、異常終了時にキャッシュメモリに記憶されているデータを不揮発性メモリに退避させる機能と、前記不揮発性メモリに退避させたデータを異常終了後の電源投入時に前記キャッシュメモリに復旧させる機能とを、所定の制御データが書き込まれたプログラマブルデバイスによって実現するストレージ装置であって、前記キャッシュメモリに記憶されているデータを前記不揮発性メモリに退避させる機能を実現するための制御データであるライト制御データと、前記不揮発性メモリに退避させたデータを前記キャッシュメモリに復旧する機能を実現するための制御データであるリード制御データとを記憶する制御データ記憶手段と、当該のストレージ装置が異常終了した後に電源投入された場合に、前記制御データ記憶手段に記憶されているリード制御データを前記プログラマブルデバイスに書き込む書込手段と、前記書込手段によってリード制御データが書き込まれたプログラマブルデバイスに対して、前記不揮発性メモリに退避させたデータを前記キャッシュメモリに復旧するように指示する復旧指示手段とを備えたことを要件とする。
 また、上記態様において、本願に開示するストレージ装置は、前記書込手段は、前記復旧指示手段によって指示されたプログラマブルデバイスがデータ復旧処理を完了した場合に、前記制御データ記憶手段に記憶されているライト制御データを前記プログラマブルデバイスに書き込むことを要件とする。
 また、上記態様において、本願に開示するストレージ装置は、前記制御データ記憶手段は、前記不揮発性メモリに退避させたデータを前記キャッシュメモリに復旧する機能を実現するための制御データとして、複数のリード制御データを記憶し、前記書込手段は、当該のストレージ装置が異常終了した後に電源投入された場合に、前記制御データ記憶手段に記憶されている複数のリード制御データを前記プログラマブルデバイスに書き込み、前記復旧指示手段は、前記書込手段によって複数のリード制御データが書き込まれたプログラマブルデバイスに対して、複数の不揮発性メモリに退避させたデータを前記キャッシュメモリに復旧する処理を並行して行うように指示することを要件とする。
 また、上記態様において、本願に開示するストレージ装置は、前記制御データ記憶手段は、前記キャッシュメモリに記憶されているデータを前記不揮発性メモリに退避させる機能を実現するための制御データとして、複数のライト制御データを記憶し、前記書込手段は、前記復旧指示手段によって指示されたプログラマブルデバイスがデータ復旧処理を完了した場合に、前記制御データ記憶手段に記憶されている複数のライト制御データを前記プログラマブルデバイスに書き込むことを要件とする。
 なお、本願に開示するストレージ装置の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも、他の態様として有効である。
 本願に開示したストレージ装置によれば、データ転送回路を大規模にすることなく、キャッシュメモリに記憶されているデータを不揮発性メモリに退避させる処理と、不揮発性メモリに退避させたデータをキャッシュメモリに復旧させる処理とを効率よく行うことができるという効果を奏する。すなわち、実装面積およびコストを増大させることなく、異常終了後の起動にかかる時間を短くすることができるという効果を奏する。
図1は、本実施例に係るストレージ装置の概略構成を示す図である。 図2は、比較例のストレージ装置が有するCMの構成を示す図である。 図3は、NVRAMに記憶される各種情報の一例を示す図である。 図4は、停電復電用制御データがコンフィグレーションされたFPGAの構成を示す図である。 図5は、比較例のストレージ装置が有するCMによるデータ復旧処理の流れを示すシーケンス図である。 図6は、本実施例に係るストレージ装置が有するCMの構成を示す図である。 図7-1は、停電用制御データがコンフィグレーションされたFPGAの構成を示す図である。 図7-2は、復電用制御データがコンフィグレーションされたFPGAの構成を示す図である。 図8は、本実施例に係るストレージ装置が有するCMによるデータ復旧処理の流れを示すシーケンス図である。
符号の説明
 0、1       ストレージ装置
 10        CE
 11        HDD
 12        電力供給部
 100A、100B CM
 111A、111B I/F部
 112A、112B エクスパンダ
 113A、113B キャッシュメモリ
 119A、119B RoC
 110       CM
 113       キャッシュメモリ
 114a、114b フラッシュメモリ
 115       制御データ格納部
 115a      停電復電用制御データ
 116       NVRAM
 117       PLD
 118       FPGA
 119       RoC
 120       CM
 125       制御データ格納部
 125a      停電用制御データ
 125b      復電用制御データ
 127       PLD
 128       FPGA
 129       RoC
 129a      退避指示部
 129b      復旧指示部
 129c      書込部
 181       PCIバスI/F
 182a、182b メモリI/F
 183       ディスクリプタ保持レジスタ
 184a、184b ライトDMA
 185a、185b リードDMA
 186a、186b イレースDMA
 20        DE
 21        HDD
 212A、212B エクスパンダ
 以下に、本発明に係るストレージ装置、ストレージ制御装置およびストレージ制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、以下においては、プログラマブルデバイスの一例としてFPGAを挙げて説明するが、本発明は、例えばPLD(Programmable Logic Device)など様々なプログラマブルデバイスが使用される場合にも適用することができる。また、以下の説明においては、論理回路がインプリメントされて得られ、プログラマブルデバイスに書き込まれる(コンフィグレーションされる)データを「制御データ」という。すなわち、プログラマブルデバイスは、制御データに変換された論理回路と同様に動作する。
 まず、本実施例に係るストレージ装置の概略構成について説明する。図1は、本実施例に係るストレージ装置1の概略構成を示す図である。なお、同図には、ストレージ装置1の概略を説明するために必要な構成のみを図示している。
 同図に示したストレージ装置1は、高信頼性を確保するために二重化構成が採られており、各構成要素が2系統ずつ(同図中、参照符号に付加したA、Bによって区別する)備えられている。それぞれの系統の構成要素は互いに同等の機能を有するため、以下では一方の系統についてのみ構成要素の説明をする。
 同図に示すように、ストレージ装置1は、ストレージ装置1を制御する各部や、ストレージ装置1と上位装置であるホストコンピュータとの間の通信を担う通信モジュールなどを主に搭載するCE(Controller Enclosure:コントローラ エンクロージャ)10と、ハードディスク装置を主に搭載するDE(Device Enclosure:デバイス エンクロージャ)20とに、筐体が分けられている。
 CE10は、図示しないチャネルアダプタ経由で外部装置であるファイバチャネルを介してホストコンピュータと接続され、エクスパンダ112Aおよび112B経由でDE20と接続されている。DE20は、ハードディスク装置(以下、「HDD:Hard Disk Drive」と略記する)21を有し、エクスパンダ212Aおよび213Bを直接、もしくは、ルータ(Router)を経由するなどして、他のDEと複数個接続することが可能である。
 CE10は、ストレージ装置1を制御するためのCM(Controller Module:コントローラ モジュール)100Aおよび100Bと、CM100Aおよび100Bと接続される複数のHDD11とを有する。
 HDD11は、CM100Aによってデータが冗長に読み書きされる記憶装置である。なお、CM100Aに接続される記憶装置は、ハードディスク装置に限られず、熱磁気ディスク装置や光磁気ディスク装置、または、半導体不揮発メモリを用いた半導体ディスクのような他の記憶装置であってもよい。
 CM100Aは、ストレージ装置1を制御するストレージ制御装置であり、インタフェース(以下、「I/F」と略記する)部111Aと、エクスパンダ112Aと、キャッシュメモリ113Aと、RAID-on-Chip(以下、「RoC」と略記する)119Aとを有する。
 I/F部111Aは、LAN(Local Area Network)などのネットワークへ接続するためのインタフェースである。エクスパンダ112Aは、RoC119AとHDD11との間で送受信されるデータを中継する中継装置である。
 キャッシュメモリ113Aは、ホストコンピュータとHDD11との間で転送が行われるデータを一時的に記憶するメモリである。このキャッシュメモリ113Aには、例えば、DDR2SDRAM(Double Data Rate2 Synchronous Dynamic Random Access Memory)などの高いアクセス性能を備えるメモリが用いられる。
 RoC119Aは、CM100Aを全体制御する制御装置であり、メモリコントローラとCPU(Central Processing Unit)とを内蔵する「System On Chip」の一種である。具体的には、RoC119Aは、ホストコンピュータとのインタフェースを制御したり、キャッシュメモリ113Aの管理を行ったりする。
 このような構成の下、ホストコンピュータからデータのライト命令を受け付けた場合、RoC119Aは、かかるデータをキャッシュメモリ113Aに記憶する。そして、RoC119Aは、キャッシュメモリ113Aにデータを記憶した時点で、ライト処理が完了した旨をホストコンピュータへ通知する。その後、所定の条件を満たした時点で、キャッシュメモリ113Aに記憶したデータをHDD11に書き込みする。
 このようなライトバック方式を採用するストレージ装置には、異常終了を検知した場合にキャッシュメモリ上のデータを不揮発性メモリに退避させる処理(データ退避処理)、および、異常終了後に電源投入された場合に不揮発性メモリに退避したデータをキャッシュメモリに復旧させる処理(データ復旧処理)を行うように構成されているものがある。これは、上述したように、HDD11へ書き込みされていないキャッシュメモリ上のデータが消失してしまうことを防止するためである。
 かかるデータ退避処理およびデータ復旧処理について具体的に説明する。なお、ここでは、本実施例に係るストレージ装置1の特徴を明らかにするために、まず、比較例のストレージ装置(ストレージ装置0とする)が有するCM(CM110とする)の構成、および、CM110による各種処理について説明し、次に、本実施例に係るストレージ装置1が有するCM(CM120とする)の構成、および、CM120による各種処理について説明する。
 なお、以下では、異常終了の例として、停電が発生したことにより電源からストレージ装置に対して電力供給がなされなくなった場合を例に挙げて説明するが、異常終了の例はこれに限られず、ストレージ装置の起動中にユーザによって電源プラグを抜かれたような場合も該当する。
 図2は、比較例のストレージ装置0が有するCM110の構成を示す図である。なお、比較例のディスアレイ装置0の概略構成は、図1に示したストレージ装置1の概略構成と同様であり、図2に示したCM110は、図1に示した100Aおよび100Bに対応する。また、図2では、データ退避処理およびデータ復旧処理に関連する構成のみを図示している。
 同図に示すように、CM110は、電力供給部12と接続されており、キャッシュメモリ113と、フラッシュメモリ114aおよび114bと、制御データ格納部115と、NVRAM(Non Volatile Random Access Memory)116と、PLD117と、FPGA118と、RoC119とを有する。
 電力供給部12は、停電によってストレージ装置0に対して電源からの電力供給がなされなくなった場合に、CM110に対して電力供給を行う大容量のコンデンサ、または、バッテリー等である。
 キャッシュメモリ113は、上述したように、ホストコンピュータとHDD11との間で転送が行われるデータを一時的に記憶するメモリである。
 フラッシュメモリ114aおよび114bは、停電発生時に後述するFPGA118によって、キャッシュメモリ113に記憶されているデータが退避される不揮発性メモリである。このフラッシュメモリ114aおよび114bには、一般的に、NAND(ナンド)型のフラッシュメモリが用いられる。本明細書では、フラッシュメモリ114aおよび114bがNAND型のフラッシュメモリであるとして説明する。
 制御データ格納部115は、不揮発性メモリなどの記憶デバイスであり、後述するFPGA118へコンフィグレーションされる停電復電用制御データ115aを格納する。停電復電用制御データ115aがFPGA118へコンフィグレーションされると、FPGA118は、データ退避処理およびデータ復旧処理を行うことができるようになる。
 NVRAM116は、不揮発性メモリなどの記憶デバイスであり、停電が発生したか否かを判断するための情報等を記憶する。NVRAM116に記憶される各種情報の一例を図3に示す。
 同図に示すように、NVRAM116は、停電が発生したか否かを示す停電フラグと、データ退避処理が完了したか否かを示すデータ退避完了フラグを記憶する。本明細書では、停電が発生した場合、停電フラグに「1(停電発生)」が記憶され、データ退避処理が完了した場合、データ退避完了フラグに「1(退避完了)」が記憶されるものとする。
 NVRAM116に記憶される停電フラグおよびデータ退避完了フラグは、後述するPLD117によって更新される。PLD117による停電フラグおよびデータ退避完了フラグの更新処理については後述する。
 PLD117は、CM110を制御する各種論理回路を含むデバイスであり、FPGA118に制御データをコンフィグレーションする処理や、NVRAM116に記憶されている各種データを更新する処理や、停電したことを検知する処理等を行う。
 具体的には、PLD117は、ストレージ装置0の電源が投入された後に、RoC119からコンフィグレーションを行う旨の指示を受け付けて、停電復電用制御データ115aを、FPGA118にコンフィグレーションする。電源投入時に停電復電用制御データ115aをFPGA118にコンフィグレーションする理由は、FPGA118のような書き換え可能なプログラマブルデバイスは、電力供給がなされなくなるとコンフィグレーションされていた制御データを消失するためである。
 また、PLD117は、ストレージ装置0の電源が投入された場合に、NVRAM116に記憶されている停電フラグおよびデータ退避完了フラグを取得する。そして、取得した停電フラグが「1(停電発生)」であり、かつ、データ退避完了フラグが「1(退避完了)」である場合に、PLD117は、RoC119に対して、停電発生後の電源投入である旨を通知する。
 一方、取得した停電フラグが「1(停電発生)」でない場合、または、データ退避完了フラグが「1(退避完了)」でない場合、PLD117は、RoC119に対して、停電発生後の電源投入ではないことを示す「通常の電源投入」である旨を通知する。
 また、PLD117は、ストレージ装置0の起動中に停電の発生有無を検知する。そして、PLD117は、停電が発生したことを検知すると、RoC119に対して、停電が発生した旨を通知するとともに、NVRAM116に記憶されている停電フラグを「1(停電発生)」に更新する。また、PLD117は、RoC119からデータ退避処理が完了した旨の通知を受け付けると、NVRAM116に記憶されているデータ退避完了フラグを「1(退避完了)」に更新する。
 FPGA118は、PLD117によって所定の制御データがコンフィグレーションされるプログラマブルデバイスである。具体的には、FPGA118は、ストレージ装置0の電源投入時に、PLD117によって停電復電用制御データ115aがコンフィグレーションされる。これにより、FPGA118は、データ退避処理およびデータ復旧処理の実行が可能となる。このFPGA118には、停電復電用制御データ115aをコンフィグレーションできる規模のFPGAが用いられる。
 ここで、停電復電用制御データ115aがコンフィグレーションされたFPGA118の構成について説明する。図4は、停電復電用制御データ115aがコンフィグレーションされたFPGA118の構成を示す図である。
 同図に示すように、停電復電用制御データ115aがコンフィグレーションされたFPGA118は、PCI(Peripheral Component Interconnect)バスI/F181と、メモリI/F182aおよび182bと、ディスクリプタ保持レジスタ183と、ライトDMA(Direct Memory Access)184aおよび184bと、リードDMA185aと、イレースDMA186aおよび186bとを有する。
 PCIバスI/F181は、FPGA118とキャッシュメモリ113との間のデータ送受信を行うインタフェースである。メモリI/F182aは、FPGA118とフラッシュメモリ114aとの間のデータ送受信を行うインタフェースであり、メモリI/F182bは、FPGA118とフラッシュメモリ114bとの間のデータ送受信を行うインタフェースである。
 ディスクリプタ保持レジスタ183は、RoC119によって生成される各DMAに対する命令(ディスクリプタ)を記憶するレジスタである。具体的には、ディスクリプタ保持レジスタ183には、データ退避命令を示すディスクリプタ(以下、「データ退避ディスクリプタ」という)や、データ復旧命令を示すディスクリプタ(以下、「データ復旧ディスクリプタ」という)や、フラッシュメモリ114aおよび114bに記憶されているデータを消去する命令であるイレース命令を示すディスクリプタ(以下、「イレースディスクリプタ」という)を保持する。
 ライトDMA184aは、ディスクリプタ保持レジスタ183からデータ退避ディスクリプタを受け取った場合に、PCIバスI/F181を介してキャッシュメモリ113に記憶されているデータを取得し、取得したデータを、メモリI/F182aを介してフラッシュメモリ114aに記憶させるDMA回路である。同様に、ライトDMA184bは、ディスクリプタ保持レジスタ183からデータ退避ディスクリプタを受け取った場合に、PCIバスI/F181を介してキャッシュメモリ113に記憶されているデータを取得し、取得したデータを、メモリI/F182bを介してフラッシュメモリ114bに記憶させるDMA回路である。
 ライトDMA184aおよび184bは、キャッシュメモリ113からフラッシュメモリ114aまたは114bにデータを転送する処理を並行して行う。このように、比較例のCM110では、データ退避用の記憶領域として2系統のフラッシュメモリ114aおよび114bを備えておき、さらに、FPGA118に2系統のライトDMA184aおよび184bをコンフィグレーションして、かかるライトDMA184aおよび184bにデータ退避処理を並行して行わせることで、停電発生時にデータ退避処理を効率よく行うことを実現している。これにより、電力供給部12から電力供給される短い時間内にデータ退避処理を完了させることを可能にしている。
 リードDMA185aは、フラッシュメモリ114aおよび114bに記憶されているデータをキャッシュメモリ113へ転送するDMA回路である。具体的には、リードDMA185aは、ディスクリプタ保持レジスタ183から、フラッシュメモリ114aに記憶されているデータをキャッシュメモリ113へ転送する旨のデータ復旧ディスクリプタを受け取った場合に、メモリI/F182aを介してフラッシュメモリ114aに記憶されているデータを取得し、取得したデータを、PCIバスI/F181を介してキャッシュメモリ113に記憶させる。
 また、リードDMA185aは、フラッシュメモリ114bに記憶されているデータをキャッシュメモリ113へ転送する旨のデータ復旧ディスクリプタを受け取った場合に、メモリI/F182bを介してフラッシュメモリ114bに記憶されているデータを取得し、取得したデータを、PCIバスI/F181を介してキャッシュメモリ113に記憶させる。このように、比較例のCM110では、FPGA118に1系統のリードDMA185aをコンフィグレーションして、かかるリードDMA185aにデータ復旧処理を行わせる。
 データ退避処理を2系統のライトDMA184aおよび184bに行わせるのに対して、データ復旧処理を1系統のリードDMA185aに行わせる理由について説明する。これは、データ退避処理には、電力供給部12から電力供給される短い時間内に完了させなければならないという制約があるのに対して、データ復旧処理には、このような制約がないためである。また、2系統のライトDMAおよび2系統のリードDMAを備えるFPGAを実現するためには、大規模なFPGAが必要となり、FPGAの実装面積が増大してしまうという問題や、コストが増大してしまうという問題を招くからである。
 イレースDMA186aは、ディスクリプタ保持レジスタ183からイレースディスクリプタを受け取った場合に、フラッシュメモリ114aに記憶されているデータを消去するDMA回路である。同様に、イレースDMA186bは、ディスクリプタ保持レジスタ183からイレースディスクリプタを受け取った場合に、フラッシュメモリ114bに記憶されているデータを消去するDMA回路である。
 図2の説明に戻って、RoC119は、CM110を全体制御する制御装置であり、ストレージ装置0の電源が投入された場合に、PLD117に対して、停電復電用制御データ115aを、FPGA118にコンフィグレーションするように指示する。
 また、RoC119は、PLD117から停電が発生した旨の通知を受け付けた場合に、FPGA118に対して、データ退避処理を行うように指示する。具体的には、RoC119は、データ退避ディスクリプタを生成してディスクリプタ保持レジスタ183に記憶させ、記憶させたデータ退避ディスクリプタをライトDMA184aおよび184bへ送出し、ライトDMA184aおよび184bに対してデータ退避処理を並行して行うように指示する。
 また、RoC119は、PLD117から停電発生後の電源投入である旨の通知を受け付けた場合に、FPGA118に対して、データ復旧処理を行うように指示する。具体的には、RoC119は、データ復旧ディスクリプタを生成してディスクリプタ保持レジスタ183に記憶させ、記憶させたデータ復旧ディスクリプタをリードDMA185aへ送出することで、データ退避処理を行うように指示する。その後、RoC119は、イレースディスクリプタを生成してディスクリプタ保持レジスタ183に記憶させ、記憶させたイレースディスクリプタをイレースDMA186aおよび186bへ送出し、イレースDMA186aおよび186bに対してイレース処理を並行して行うように指示する。
 次に、比較例のストレージ装置0が有するCM110によるデータ復旧処理について説明する。図5は、比較例のストレージ装置0が有するCM110によるデータ復旧処理の流れを示すシーケンス図である。
 同図に示すように、RoC119は、ストレージ装置0が電源投入された後に、PLD117から停電発生後の電源投入である旨の通知を受け付けると(ステップS101)、フラッシュメモリ114aからキャッシュメモリ113へデータ転送を行う旨のデータ復旧ディスクリプタを生成する。そして、RoC119は、生成したデータ復旧ディスクリプタをディスクリプタ保持レジスタ183に記憶させ、記憶させたデータ復旧ディスクリプタをリードDMA185aへ送出して、データ復旧処理を行うように指示する(ステップS102)。
 かかるデータ復旧ディスクリプタを受け付けたリードDMA185aは、フラッシュメモリ114aに記憶されているデータをキャッシュメモリ113に記憶させる(ステップS103)。このデータ復旧処理が完了した後、リードDMA185aは、RoC119に対して、フラッシュメモリ114aからキャッシュメモリ113へのデータ転送が完了した旨の通知を行う(ステップS104)。
 かかる完了通知を受け付けたRoC119は、フラッシュメモリ114bからキャッシュメモリ113へデータ転送を行う旨のデータ復旧ディスクリプタを生成する。そして、RoC119は、生成したデータ復旧ディスクリプタをディスクリプタ保持レジスタ183に記憶させ、記憶させたデータ復旧ディスクリプタをリードDMA185aへ送出して、データ復旧処理を行うように指示する(ステップS105)。
 かかるデータ復旧ディスクリプタを受け付けたリードDMA185aは、フラッシュメモリ114bに記憶されているデータをキャッシュメモリ113に記憶させる(ステップS106)。このデータ復旧処理が完了した後、リードDMA185aは、RoC119に対して、フラッシュメモリ114bからキャッシュメモリ113へのデータ転送が完了した旨の通知を行う(ステップS107)。
 続いて、RoC119は、データのライト処理方式をライトスルー方式により行うように変更して(ステップS108)、キャッシュメモリ113に記憶されているデータをHDD11に記憶させるリストア処理(フラッシュバック)を行う(ステップS109)。これにより、HDD11に書き込みされていないキャッシュメモリ113上のデータはなくなる。
 続いて、RoC119は、イレースディスクリプタを生成してディスクリプタ保持レジスタ183に記憶させ、記憶させたイレースディスクリプタをイレースDMA186aおよび186bへ送出して、フラッシュメモリ114aおよび114bに記憶されているデータを消去するように指示する(ステップS110)。
 かかるイレースディスクリプタを受け付けたイレースDMA186aは、フラッシュメモリ114aに記憶されているデータを消去し(ステップS111)、イレースDMA186bは、フラッシュメモリ114bに記憶されているデータを消去する(ステップS112)。イレース処理が完了した後、イレースDMA186aおよび186bは、RoC119に対して、イレース処理が完了した旨の通知を行う(ステップS113)。
 なお、イレース処理を行う理由は、NAND型フラッシュメモリであるフラッシュメモリ114aおよび114bは、新たなデータを記憶するためには、記憶されているデータを消去する必要があるためである。すなわち、データ復旧処理が完了した後に、フラッシュメモリ114aおよび114bに記憶されているデータをイレースして、次の停電発生に備えるためである。
 そして、イレース処理が完了した旨の通知を受け付けたRoC119は、データのライト処理方式をライトバック方式により行うように変更して(ステップS114)、ストレージ装置0を起動させる(ステップS115)。
 このように、比較例のストレージ装置0は、2系統のライトDMA184aおよび1842bをFPGA118にコンフィグレーションすることで、電力供給部12から電力供給される短い時間内にデータ退避処理を完了させることを実現している。また、1系統のリードDMA185aによってデータ復旧処理を行わせることで、データ復旧処理が完了するまでに時間がかかるものの、FPGA118の大規模化を抑えて、コストの増大を防止している。
 ただし、比較例のストレージ装置0が有するCM110では、フラッシュメモリ114aからキャッシュメモリ113へのデータ転送が完了した後に、フラッシュメモリ114bからキャッシュメモリ113へのデータ転送を行う。このため、比較例のストレージ装置0では、データ復旧処理にかかる時間を短縮することはできず、その結果、異常終了後の起動にかかる時間を短縮することまではできなかった。
 そこで、本実施例に係るストレージ装置1では、データ転送回路であるFPGAを大規模にすることなく、データ退避処理を高速化する上に、さらに、データ復旧処理を高速化することを実現する。以下に、図6~図8を用いて、本実施例に係るストレージ装置1について詳細に説明する。
 図6は、本実施例に係るストレージ装置1が有するCM120の構成を示す図である。なお、同図に示したCM120は、図1に示した100Aまたは100Bに対応する。また、ここでは、図2に示した構成部位と同様の機能を有する部位には同一符号を付すこととして、その詳細な説明を省略する。
 図6に示すように、CM120は、電力供給部12と接続されており、キャッシュメモリ113と、フラッシュメモリ114aおよび114bと、NVRAM116と、制御データ格納部125と、PLD127、FPGA128と、RoC129とを有する。なお、同図では、CM120が外部に備えられた電力供給部12によって電力供給される例を示しているが、CM120が電力供給部12を有する構成にしてもよい。
 制御データ格納部125は、不揮発性メモリなどの記憶デバイスであり、停電用制御データ125aと、復電用制御データ125bとを格納する。停電用制御データ125aは、FPGA128にデータ退避処理を実行可能にさせるための制御データである。具体的には、停電用制御データ125aがコンフィグレーションされたFPGA128は、2系統のライトDMAによってデータ退避処理を行うことができるようになる。
 また、この停電用制御データ125aは、停電発生時には不要な処理であるデータ復旧処理を行うための制御データを含まない。すなわち、停電用制御データ125aがコンフィグレーションされたFPGA128は、リードDMAを有しない構成となる。なお、停電用制御データ125aがコンフィグレーションされたFPGA128の構成については、後に詳述する。
 復電用制御データ125bは、異常終了後の電源投入時に、FPGA128にデータ復旧処理を実行可能にさせるための制御データである。具体的には、復電用制御データ125bがコンフィグレーションされたFPGA128は、2系統のリードDMAによってデータ復旧処理を行うことができるようになる。
 また、この復電用制御データ125bは、異常終了後の電源投入時には不要な処理であるデータ退避処理を行うための制御データを含まない。すなわち、復電用制御データ125bがコンフィグレーションされたFPGA128は、ライトDMAを有しない構成となる。なお、復電用制御データ125bがコンフィグレーションされたFPGA128の構成については、後に詳述する。
 PLD127は、CM120を制御する各種論理回路を含むデバイスであり、NVRAM116に記憶されている各種データを更新する処理や、停電が発生したことを検知する処理や、FPGA128に制御データをコンフィグレーションする処理等を行う。
 具体的には、PLD127は、ストレージ装置1の電源が投入された場合に、NVRAM116に記憶されている停電フラグおよびデータ退避完了フラグを取得する。そして、取得した停電フラグが「1(停電発生)」であり、かつ、データ退避完了フラグが「1(退避完了)」である場合に、PLD127は、RoC129に対して、停電発生後の電源投入である旨を通知する。
 一方、取得した停電フラグが「1(停電発生)」でない場合、または、データ退避完了フラグが「1(退避完了)」でない場合、PLD127は、RoC129に対して、通常の電源投入である旨を通知する。
 また、PLD127は、ストレージ装置1の起動中に停電の発生有無を検知する。そして、PLD127は、停電が発生したことを検知すると、RoC129に対して、停電が発生した旨を通知するとともに、NVRAM116に記憶されている停電フラグを「1(停電発生)」に更新する。また、PLD127は、RoC129からデータ退避処理が完了した旨の通知を受け付けると、NVRAM116に記憶されているデータ退避完了フラグを「1(退避完了)」に更新する。
 また、PLD127は、後述するRoC129が有する書込部129cの指示に従って、制御データ格納部125に格納されている停電用制御データ125aまたは復電用制御データ125bをFPGA128にコンフィグレーションする。
 なお、同図では、NVRAM116に記憶されている各種データを更新する処理や、停電が発生したことを検知する処理や、FPGA128に制御データをコンフィグレーションする処理等を、PLD127によって実現する例を示したが、かかる処理は、PLD以外のLSI(Large Scale Integration)チップなどによって実現してもよい。
 FPGA128は、PLD127によって停電用制御データ125aまたは復電用制御データ125bがコンフィグレーションされるプログラマブルデバイスである。このFPGA128には、停電用制御データ125aのコンフィグレーションが可能であり、かつ、復電用制御データ125bのコンフィグレーションが可能である規模のFPGAが用いられる。すなわち、FPGA128には、停電用制御データ125aをコンフィグレーションするために必要となるFPGAの規模と、復電用制御データ125bをコンフィグレーションするために必要となるFPGAの規模とを比較して、規模が大きくなる方の制御データをコンフィグレーションできるFPGAが用いられる。
 ここで、停電用制御データ125aがコンフィグレーションされたFPGA128の構成、および、復電用制御データ125bがコンフィグレーションされたFPGA128の構成について説明する。図7-1は、停電用制御データ125aがコンフィグレーションされたFPGA128の構成を示す図である。なお、以下の説明では、図4に示した構成部位と同様の機能を有する部位には同一符号を付すこととして、その詳細な説明を省略する。
 同図に示すように、停電用制御データ125aがコンフィグレーションされたFPGA128は、2系統のライトDMA184aおよび184bと、2系統のイレースDMA186aおよび186bとを有する。すなわち、図7-1に示したFPGA128は、図4に示した停電復電用制御データ115aがコンフィグレーションされたFPGA118と比較して、リードDMA185aを有しない構成となる。
 図7-2は、復電用制御データ125bがコンフィグレーションされたFPGA128の構成を示す図である。同図に示すように、復電用制御データ125bがコンフィグレーションされたFPGA128は、2系統のリードDMA185aおよび185bと、2系統のイレースDMA186aおよび186bとを有する。すなわち、図7-2に示したFPGA128は、図4に示した停電復電用制御データ115aがコンフィグレーションされたFPGA118と比較して、ライトDMA184aおよび184bを有さず、リードDMA185bを新たに有する構成となる。
 リードDMA185aは、ディスクリプタ保持レジスタ183からデータ復旧ディスクリプタを受け取った場合に、フラッシュメモリ114aに記憶されているデータをキャッシュメモリ113に記憶させる。同様に、リードDMA185bは、ディスクリプタ保持レジスタ183からデータ復旧ディスクリプタを受け取った場合に、フラッシュメモリ114bに記憶されているデータをキャッシュメモリ113に記憶させる。リードDMA185aおよび185bは、フラッシュメモリ114aまたは114bからキャッシュメモリ113にデータを転送する処理を並行して行う。
 図7-1および図7-2に示したように、本実施例に係るストレージ装置1では、比較例のFPGA118と比較して、FPGA128が有するDMA回路を少なくすることができるので、小規模なFPGAを用いることができる。これにより、FPGAにかかるコストを低減することができる。また、図7-2に示したように、FPGA128は、2系統のリードDMA185aおよび185bによってデータ復旧処理が並行して行われるので、データ復旧処理を効率よく行うことができ、その結果、異常終了後のストレージ装置1の起動時間を短くすることができる。
 図6の説明に戻って、RoC129は、CM120を全体制御する制御部であり、退避指示部129aと、復旧指示部129bと、書込部129cとを有する。退避指示部129aは、PLD127から停電が発生した旨の通知を受け付けた場合に、FPGA128に対して、データ退避処理を行うように指示する処理部である。具体的には、退避指示部129aは、データ退避ディスクリプタを生成してディスクリプタ保持レジスタ183に記憶させ、記憶させたデータ退避ディスクリプタをライトDMA184aおよび184bへ送出し、データ退避処理を並行して行うように指示する。
 復旧指示部129bは、PLD127から停電発生後の電源投入である旨の通知を受け付けた場合に、FPGA128に対して、データ復旧処理を行うように指示する処理部である。具体的には、復旧指示部129bは、データ復旧ディスクリプタを生成してディスクリプタ保持レジスタ183に記憶させ、記憶させたデータ復旧ディスクリプタをリードDMA185aおよび185bへ送出し、データ復旧処理を並行して行うように指示する。
 また、復旧指示部129bは、FPGA128によるデータ復旧処理が完了した場合に、イレースディスクリプタを生成してディスクリプタ保持レジスタ183に記憶させ、記憶させたイレースディスクリプタをイレースDMA186aおよび186bへ送出し、イレース処理を並行して行うように指示する。
 書込部129cは、PLD127に対して、FPGA128に停電用制御データ125aまたは復電用制御データ125bをコンフィグレーションするように指示する処理部である。
 具体的には、書込部129cは、PLD127から通常の電源投入である旨の通知を受け付けた場合に、PLD127に対して、停電用制御データ125aをFPGA128に書き込む(コンフィグレーションする)ように指示する。これにより、FPGA128は、図7-1に示した構成となり、2系統のライトDMA184aおよび184bによってデータ退避処理を行うことができるようになり、停電発生に備えることができる。
 また、書込部129cは、PLD127から停電発生後の電源投入である旨の通知を受け付けた場合に、PLD127に対して、復電用制御データ125bをFPGA128に書き込む(コンフィグレーションする)ように指示する。これにより、FPGA128は、図7-2に示した構成となり、2系統のリードDMA185aおよび185bによってデータ復旧処理を行うことができるようになる。
 また、書込部129cは、FPGA128からデータ退避処理およびイレース処理が完了した旨の通知を受け付けた場合に、PLD127に対して停電用制御データ125aを書き込む(コンフィグレーションする)ように指示する。
 次に、本実施例に係るストレージ装置1が有するCM120によるデータ復旧処理について説明する。図8は、本実施例に係るストレージ装置1が有するCM120によるデータ復旧処理の流れを示すシーケンス図である。
 同図に示すように、ストレージ装置1が電源投入された後、PLD127から停電発生後の電源投入である旨の通知を受け付けると(ステップS201)、RoC129の書込部129cは、PLD127に対して復電用制御データ125bをコンフィグレーションするように指示する(ステップS202)。これにより、FPGA128は、図7-2に示したように、2系統のリードDMA185aおよび185bを有する構成となる(ステップS203)。
 続いて、RoC129の復旧指示部129bは、データ復旧ディスクリプタを生成してディスクリプタ保持レジスタ183に記憶させ、記憶させたデータ復旧ディスクリプタをリードDMA185aおよび185bへ送出して、データ復旧処理を並行して行うように指示する(ステップS204)。
 かかるデータ復旧ディスクリプタを受け付けたリードDMA185aは、フラッシュメモリ114aに記憶されているデータをキャッシュメモリ113に記憶させる(ステップS205)。同様に、データ復旧ディスクリプタを受け付けたリードDMA185bは、フラッシュメモリ114bに記憶されているデータをキャッシュメモリ113に記憶させる(ステップS206)。このリードDMA185aおよび185bによるデータ復旧処理は並行して行われる。データ復旧処理が完了した後、リードDMA185aおよび185bは、RoC129に対して、データ復旧処理が完了した旨の通知を行う(ステップS207)。
 かかる完了通知を受け付けたRoC129は、データのライト処理方式をライトスルー方式により行うように変更して(ステップS208)、キャッシュメモリ113に記憶されているデータをHDD11に記憶させるリストア処理を行う(ステップS209)。
 続いて、RoC129の復旧指示部129bは、イレースディスクリプタを生成してディスクリプタ保持レジスタ183に記憶させ、記憶させたイレースディスクリプタをイレースDMA186aおよび186bへ送出して、フラッシュメモリ114aおよび114bに記憶されているデータを消去するように指示する(ステップS210)。
 かかるイレースディスクリプタを受け付けたイレースDMA186aは、フラッシュメモリ114aに記憶されているデータを消去し(ステップS211)、イレースDMA186bは、フラッシュメモリ114bに記憶されているデータを消去する(ステップS212)。イレース処理が完了した後、イレースDMA186aおよび186bは、RoC129に対して、イレース処理が完了した旨の通知を行う(ステップS213)。
 イレース処理が完了した旨の通知を受け付けたRoC129の書込部129cは、PLD127に対して停電用制御データ125aをコンフィグレーションするように指示する(ステップS214)。これにより、FPGA128は、図7-1に示したように、2系統のライトDMA184aおよび184bを有する構成となり(ステップS215)、停電発生に備えることができる。なお、本実施例1に係るストレージ装置1では、この停電用制御データ125aをコンフィグレーションする処理(再コンフィグレーション処理)を行う必要があるが、2系統のリードDMA185aおよび185bによってデータ復旧処理を並行して行うことができるので、全体的には、異常終了後の起動にかかる処理時間を短縮することができる。
 そして、RoC119は、データのライト処理方式をライトバック方式により行うように変更して(ステップS216)、ストレージ装置を起動させる(ステップS217)。
 上述してきたように、本実施例に係るストレージ装置1は、停電発生後の電源投入時に、FPGA128に復電用制御データ125bをコンフィグレーションして、2系統のリードDMA185aおよび185bによってデータ復旧処理を行った後に起動するように構成したので、異常終了後の起動にかかる時間を短くすることができる。
 また、本実施例に係るストレージ装置1は、データ復旧処理が完了した後に、FPGA128に停電用制御データ125aをコンフィグレーションして、2系統のライトDMA184aおよび184bによってデータ退避処理を行えるように構成したので、ストレージ装置1の起動後に停電が発生した場合であっても、データ退避処理を効率よく行うことができる。
 また、本実施例に係るストレージ装置1は、停電用制御データ125aがコンフィグレーションされたFPGA128が、2系統のライトDMA184aおよび184bを備え、かつ、データ退避処理に不要なリードDMAを備えないように構成し、また、復電用制御データ125bがコンフィグレーションされたFPGA128が、2系統のリードDMA185aおよび185bを備え、かつ、データ復旧処理に不要なライトDMAを備えないように構成したので、比較例のFPGA118と比較して、FPGA128を小規模にすることができる。その結果、ストレージ装置1にかかるコストを低減することができる。
 すなわち、本実施例に係るストレージ装置1によれば、データ転送回路であるFPGA128を大規模にすることなく、データ退避処理とデータ復旧処理を効率よく行うことができる。
 なお、上記実施例では、データ退避用の記憶デバイスとして、ストレージ装置1が2系統のフラッシュメモリ114aおよび114bを備えることを前提として、2系統のライトDMA184aおよび184bによってデータ退避処理を行い、2系統のリードDMA185aおよび185bによってデータ復旧処理を行う例を説明したが、本発明はこれに限定されるものではなく、1系統のデータ退避用の記憶デバイスを備えるストレージ装置や、3系統以上のデータ退避用の記憶デバイスを備えるストレージ装置にも適用可能である。
 かかる点について具体的に説明すると、例えば、1系統のデータ退避用の記憶デバイスを備えるストレージ装置の場合、1系統のライトDMAによってデータ退避処理を行い、1系統のリードDMAによってデータ復旧処理を行う。すなわち、このようなストレージ装置は、1系統のライトDMAおよび1系統のリードDMAを同時に備えることができる規模のFPGAを用いる必要があるが、本発明を適用すると、1系統のライトDMAまたは1系統のリードDMAのいずれか一方のみを備えることができる規模のFPGAを用いることができる。その結果、FPGAを小規模にすることができ、ストレージ装置にかかるコストを低減することができる。
 また、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散、統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散、統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPU(Central Processing Unit)および当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。

Claims (12)

  1.  異常終了時にキャッシュメモリに記憶されているデータを不揮発性メモリに退避させる機能と、前記不揮発性メモリに退避させたデータを異常終了後の電源投入時に前記キャッシュメモリに復旧させる機能とを、所定の制御データが書き込まれたプログラマブルデバイスによって実現するストレージ装置であって、
     前記キャッシュメモリに記憶されているデータを前記不揮発性メモリに退避させる機能を実現するための制御データであるライト制御データと、前記不揮発性メモリに退避させたデータを前記キャッシュメモリに復旧する機能を実現するための制御データであるリード制御データとを記憶する制御データ記憶手段と、
     当該のストレージ装置が異常終了した後に電源投入された場合に、前記制御データ記憶手段に記憶されているリード制御データを前記プログラマブルデバイスに書き込む書込手段と、
     前記書込手段によってリード制御データが書き込まれたプログラマブルデバイスに対して、前記不揮発性メモリに退避させたデータを前記キャッシュメモリに復旧するように指示する復旧指示手段と
     を備えたことを特徴とするストレージ装置。
  2.  前記書込手段は、前記復旧指示手段によって指示されたプログラマブルデバイスがデータ復旧処理を完了した場合に、前記制御データ記憶手段に記憶されているライト制御データを前記プログラマブルデバイスに書き込むことを特徴とする請求項1に記載のストレージ装置。
  3.  前記制御データ記憶手段は、前記不揮発性メモリに退避させたデータを前記キャッシュメモリに復旧する機能を実現するための制御データとして、複数のリード制御データを記憶し、
     前記書込手段は、当該のストレージ装置が異常終了した後に電源投入された場合に、前記制御データ記憶手段に記憶されている複数のリード制御データを前記プログラマブルデバイスに書き込み、
     前記復旧指示手段は、前記書込手段によって複数のリード制御データが書き込まれたプログラマブルデバイスに対して、複数の不揮発性メモリに退避させたデータを前記キャッシュメモリに復旧する処理を並行して行うように指示することを特徴とする請求項1に記載のストレージ装置。
  4.  前記制御データ記憶手段は、前記キャッシュメモリに記憶されているデータを前記不揮発性メモリに退避させる機能を実現するための制御データとして、複数のライト制御データを記憶し、
     前記書込手段は、前記復旧指示手段によって指示されたプログラマブルデバイスがデータ復旧処理を完了した場合に、前記制御データ記憶手段に記憶されている複数のライト制御データを前記プログラマブルデバイスに書き込むことを特徴とする請求項3に記載のストレージ装置。
  5.  異常終了時にキャッシュメモリに記憶されているデータを不揮発性メモリに退避させる機能と、前記不揮発性メモリに退避させたデータを異常終了後の電源投入時に前記キャッシュメモリに復旧させる機能とを、所定の制御データが書き込まれたプログラマブルデバイスによって実現するストレージ装置を制御するストレージ制御装置であって、
     前記キャッシュメモリに記憶されているデータを前記不揮発性メモリに退避させる機能を実現するための制御データであるライト制御データと、前記不揮発性メモリに退避させたデータを前記キャッシュメモリに復旧する機能を実現するための制御データであるリード制御データとを記憶する制御データ記憶手段と、
     前記ストレージ装置が異常終了した後に電源投入された場合に、前記制御データ記憶手段に記憶されているリード制御データを前記プログラマブルデバイスに書き込む書込手段と、
     前記書込手段によってリード制御データが書き込まれたプログラマブルデバイスに対して、前記不揮発性メモリに退避させたデータを前記キャッシュメモリに復旧するように指示する復旧指示手段と
     を備えたことを特徴とするストレージ制御装置。
  6.  前記書込手段は、前記復旧指示手段によって指示されたプログラマブルデバイスがデータ復旧処理を完了した場合に、前記制御データ記憶手段に記憶されているライト制御データを前記プログラマブルデバイスに書き込むことを特徴とする請求項5に記載のストレージ制御装置。
  7.  前記制御データ記憶手段は、前記不揮発性メモリに退避させたデータを前記キャッシュメモリに復旧する機能を実現するための制御データとして、複数のリード制御データを記憶し、
     前記書込手段は、前記ストレージ装置が異常終了した後に電源投入された場合に、前記制御データ記憶手段に記憶されている複数のリード制御データを前記プログラマブルデバイスに書き込み、
     前記復旧指示手段は、前記書込手段によって複数のリード制御データが書き込まれたプログラマブルデバイスに対して、複数の不揮発性メモリに退避させたデータを前記キャッシュメモリに復旧する処理を並行して行うように指示することを特徴とする請求項5に記載のストレージ制御装置。
  8.  前記制御データ記憶手段は、前記キャッシュメモリに記憶されているデータを前記不揮発性メモリに退避させる機能を実現するための制御データとして、複数のライト制御データを記憶し、
     前記書込手段は、前記復旧指示手段によって指示されたプログラマブルデバイスがデータ復旧処理を完了した場合に、前記制御データ記憶手段に記憶されている複数のライト制御データを前記プログラマブルデバイスに書き込むことを特徴とする請求項7に記載のストレージ制御装置。
  9.  異常終了時にキャッシュメモリに記憶されているデータを不揮発性メモリに退避させる機能と、前記不揮発性メモリに退避させたデータを異常終了後の電源投入時に前記キャッシュメモリに復旧させる機能とを、所定の制御データが書き込まれたプログラマブルデバイスによって実現するストレージ装置を制御するストレージ制御装置によるストレージ制御方法であって、
     前記ストレージ制御装置が、前記ストレージ装置が異常終了した後に電源投入された場合に、前記不揮発性メモリに退避させたデータを前記キャッシュメモリに復旧する機能を実現するための制御データであるリード制御データを記憶する制御データ記憶手段に記憶されているリード制御データを前記プログラマブルデバイスに書き込む書込工程と、
     前記ストレージ制御装置が、前記書込工程によってリード制御データが書き込まれたプログラマブルデバイスに対して、前記不揮発性メモリに退避させたデータを前記キャッシュメモリに復旧するように指示する復旧指示工程と
     を含んだことを特徴とするストレージ制御方法。
  10.  前記制御データ記憶手段は、前記キャッシュメモリに記憶されているデータを前記不揮発性メモリに退避させる機能を実現するための制御データであるライト制御データをさらに記憶し、
     前記書込工程は、前記復旧指示工程によって指示されたプログラマブルデバイスがデータ復旧処理を完了した場合に、前記制御データ記憶手段に記憶されているライト制御データを前記プログラマブルデバイスに書き込むことを特徴とする請求項9に記載のストレージ制御方法。
  11.  前記制御データ記憶手段は、前記不揮発性メモリに退避させたデータを前記キャッシュメモリに復旧する機能を実現するための制御データとして、複数のリード制御データを記憶し、
     前記書込工程は、前記ストレージ装置が異常終了した後に電源投入された場合に、前記制御データ記憶手段に記憶されている複数のリード制御データを前記プログラマブルデバイスに書き込み、
     前記復旧指示工程は、前記書込工程によって複数のリード制御データが書き込まれたプログラマブルデバイスに対して、複数の不揮発性メモリに退避させたデータを前記キャッシュメモリに復旧する処理を並行して行うように指示することを特徴とする請求項9に記載のストレージ制御方法。
  12.  前記制御データ記憶手段は、前記キャッシュメモリに記憶されているデータを前記不揮発性メモリに退避させる機能を実現するための制御データとして、複数のライト制御データを記憶し、
     前記書込工程は、前記復旧指示工程によって指示されたプログラマブルデバイスがデータ復旧処理を完了した場合に、前記制御データ記憶手段に記憶されている複数のライト制御データを前記プログラマブルデバイスに書き込むことを特徴とする請求項11に記載のストレージ制御方法。
PCT/JP2008/053493 2008-02-28 2008-02-28 ストレージ装置、ストレージ制御装置およびストレージ制御方法 WO2009107212A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2010500487A JP5158187B2 (ja) 2008-02-28 2008-02-28 ストレージ装置、ストレージ制御装置およびストレージ制御方法
PCT/JP2008/053493 WO2009107212A1 (ja) 2008-02-28 2008-02-28 ストレージ装置、ストレージ制御装置およびストレージ制御方法
US12/805,948 US8832355B2 (en) 2008-02-28 2010-08-25 Storage device, storage controlling device, and storage controlling method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2008/053493 WO2009107212A1 (ja) 2008-02-28 2008-02-28 ストレージ装置、ストレージ制御装置およびストレージ制御方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US12/805,948 Continuation US8832355B2 (en) 2008-02-28 2010-08-25 Storage device, storage controlling device, and storage controlling method

Publications (1)

Publication Number Publication Date
WO2009107212A1 true WO2009107212A1 (ja) 2009-09-03

Family

ID=41015626

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2008/053493 WO2009107212A1 (ja) 2008-02-28 2008-02-28 ストレージ装置、ストレージ制御装置およびストレージ制御方法

Country Status (3)

Country Link
US (1) US8832355B2 (ja)
JP (1) JP5158187B2 (ja)
WO (1) WO2009107212A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013080299A1 (ja) * 2011-11-29 2013-06-06 富士通株式会社 データ管理装置、データコピー方法、およびプログラム
JP2013214233A (ja) * 2012-04-03 2013-10-17 Denso Wave Inc 携帯端末装置
US9569126B2 (en) 2015-01-22 2017-02-14 Silicon Motion, Inc. Data storage device and flash memory control method

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8347041B2 (en) * 2009-01-02 2013-01-01 Lsi Corporation System and method to preserve and recover unwritten data present in data cache of a disk subsystem across power outages
JP5712535B2 (ja) * 2010-09-17 2015-05-07 富士通株式会社 ストレージ装置、制御部およびストレージ装置制御方法
CN105138469B (zh) * 2015-08-28 2018-03-16 北京腾凌科技有限公司 一种数据读写方法以及主板
CN107885631A (zh) * 2017-12-27 2018-04-06 西安奇维科技有限公司 一种基于掉电保护的大容量存储端对端数据保护系统
CN110196678B (zh) * 2018-02-23 2022-09-30 环达电脑(上海)有限公司 资料储存决定装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004531814A (ja) * 2001-04-19 2004-10-14 インターナショナル・ビジネス・マシーンズ・コーポレーション ライトバック・キャッシュ情報の信頼性を改善するための方法および装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07168764A (ja) * 1993-12-15 1995-07-04 Matsushita Electric Ind Co Ltd 情報処理装置
US5426378A (en) * 1994-04-20 1995-06-20 Xilinx, Inc. Programmable logic device which stores more than one configuration and means for switching configurations
JPH10161938A (ja) * 1996-11-29 1998-06-19 Toshiba Corp ディスク制御装置
JP2001092648A (ja) 1999-09-20 2001-04-06 Adtec:Kk 半導体記憶装置
US6732263B1 (en) 2000-06-12 2004-05-04 Altera Corporation Configuring both a programmable logic device and its embedded logic with a single serialized configuration bit stream
JP2002099464A (ja) 2000-06-12 2002-04-05 Altera Corp チップ搭載システムのための再構成可能なメモリ・マップ
CN1295623C (zh) 2000-06-23 2007-01-17 英特尔公司 非易失性高速缓存
JP2004118644A (ja) * 2002-09-27 2004-04-15 Hitachi Ltd ディスクアレイ制御装置
JP4159514B2 (ja) * 2004-06-08 2008-10-01 シャープ株式会社 記録媒体記録/再生装置
US7536506B2 (en) * 2004-06-21 2009-05-19 Dot Hill Systems Corporation RAID controller using capacitor energy source to flush volatile cache data to non-volatile memory during main power outage

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004531814A (ja) * 2001-04-19 2004-10-14 インターナショナル・ビジネス・マシーンズ・コーポレーション ライトバック・キャッシュ情報の信頼性を改善するための方法および装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013080299A1 (ja) * 2011-11-29 2013-06-06 富士通株式会社 データ管理装置、データコピー方法、およびプログラム
JP2013214233A (ja) * 2012-04-03 2013-10-17 Denso Wave Inc 携帯端末装置
US9569126B2 (en) 2015-01-22 2017-02-14 Silicon Motion, Inc. Data storage device and flash memory control method

Also Published As

Publication number Publication date
JP5158187B2 (ja) 2013-03-06
US20100332739A1 (en) 2010-12-30
US8832355B2 (en) 2014-09-09
JPWO2009107212A1 (ja) 2011-06-30

Similar Documents

Publication Publication Date Title
JP5158187B2 (ja) ストレージ装置、ストレージ制御装置およびストレージ制御方法
JP5353887B2 (ja) ディスクアレイ装置の制御ユニット、データ転送装置及び復電処理方法
JP4041473B2 (ja) マルチクラスタ・ストレージ・サブシステムのための自律型パワー・ロス・リカバリ
JP4930555B2 (ja) 制御装置、制御方法およびストレージシステム
JP2007058419A (ja) Pld上のメモリ内の情報に従って構築される論理回路を備えたストレージシステム
US20100299558A1 (en) Data storage device and method
JP2005222228A (ja) メモリカード及び半導体装置
US10691195B2 (en) Selective coupling of memory to voltage rails based on operating mode of processor
US7689765B2 (en) Control apparatus of storage unit, and method of controlling the control apparatus of storage unit
JP4322240B2 (ja) 再起動方法、システム及びプログラム
JP2009176232A (ja) 起動装置、起動方法、及び、起動プログラム
US20190073147A1 (en) Control device, method and non-transitory computer-readable storage medium
US9836359B2 (en) Storage and control method of the same
JP2010198127A (ja) 半導体記憶デバイス及びその制御方法
JP2010026950A (ja) 記憶装置
US20110314236A1 (en) Control apparatus, control method, and storage system
JP6981098B2 (ja) 復旧制御装置、復旧制御システム、復旧制御方法、及び、復旧制御プログラム
JP2009054116A (ja) メモリシステムおよび情報処理装置
JP2023183437A (ja) 記憶システムおよび記憶方法
KR20230166812A (ko) 배터리 모듈이 포함된 스토리지 시스템 및 그 동작 방법
JP6589495B2 (ja) ストレージ制御装置、ストレージ制御方法及びそのためのプログラム
JP2023002309A (ja) ストレージシステム及びデータ管理方法
CN117148948A (zh) 包括电池模块的存储系统及其操作方法
JPH11316716A (ja) メモリ制御方法及び装置
JP2024001485A (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: 08720988

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2010500487

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 08720988

Country of ref document: EP

Kind code of ref document: A1