WO2015136655A1 - ストレージシステム及び制御方法 - Google Patents

ストレージシステム及び制御方法 Download PDF

Info

Publication number
WO2015136655A1
WO2015136655A1 PCT/JP2014/056604 JP2014056604W WO2015136655A1 WO 2015136655 A1 WO2015136655 A1 WO 2015136655A1 JP 2014056604 W JP2014056604 W JP 2014056604W WO 2015136655 A1 WO2015136655 A1 WO 2015136655A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
area
write
memory
volatile memory
Prior art date
Application number
PCT/JP2014/056604
Other languages
English (en)
French (fr)
Inventor
恭平 井出
直樹 守時
純裕 三浦
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2014/056604 priority Critical patent/WO2015136655A1/ja
Priority to US14/424,926 priority patent/US9690664B2/en
Publication of WO2015136655A1 publication Critical patent/WO2015136655A1/ja

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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • G06F11/3062Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations where the monitored property is the power consumption
    • 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
    • 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
    • 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
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2015Redundant power supplies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • 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 storage system and a control method.
  • UPS Uninterruptable Power Supply, uninterruptible power supply
  • UPS Uninterruptable Power Supply, uninterruptible power supply
  • the system is continuously operated by operating the private power generator during continuous operation using UPS.
  • the power consumption of the battery power supply is reduced while protecting the cache data, which is volatile memory, by controlling according to the data type in the cache memory and the remaining battery level when the external power supply is cut off due to the failure.
  • Technology is disclosed.
  • a system using a conventional UPS has a problem that the cost and installation cost of a battery used for the UPS are increased.
  • Patent Document 1 This provides a computer capable of shutting down the system safely at low cost.
  • the computer includes a non-volatile memory that stores data, a control processor that controls saving of data to the non-volatile memory, and a battery that supplies power to the computer when an external power failure occurs.
  • an object of the present invention is to provide a storage system that can prevent data loss when an external power failure such as a power failure occurs.
  • the storage system of the present invention when data from a host computer or system drive is stored in the volatile memory of the storage system, the charge capacity of the battery as the internal power supply and the nonvolatile memory in the volatile memory It is determined whether or not the write data capacity can be saved from the volatile memory to the non-volatile memory based on the unsaved (non-backup) data capacity. If it is determined that the data can be saved, an area corresponding to the data capacity to be written is secured in the volatile memory, and data is written to the area. If it is determined that the data cannot be saved, data writing is suppressed.
  • the data that needs to be saved is stored in the volatile memory after securing the area that can be saved from the volatile memory to the nonvolatile memory by the internal power supply, so that the data can be surely saved in the nonvolatile memory. Therefore, data loss can be prevented, and the reliability of the entire storage system can be improved.
  • FIG. 1 is an overall block diagram of the first storage system.
  • FIG. 2 is an overall block diagram of the second storage system.
  • FIG. 3 is a diagram illustrating a first calculation method for generating the BSY signal.
  • FIG. 4 is a diagram illustrating a second calculation method for generating the BSY signal.
  • FIG. 5 is a ladder chart showing data write processing from the host computer to the cache memory buffer.
  • FIG. 6 is a ladder chart showing data write processing from the buffer to the cache memory.
  • FIG. 7 is a ladder chart diagram showing data read processing from the storage system by the host computer.
  • FIG. 8 is a diagram illustrating a configuration example of the management table 1 that manages the area reservation and write completion states.
  • FIG. 9 is a flowchart showing the first memory capacity securing process.
  • FIG. 9 is a flowchart showing the first memory capacity securing process.
  • FIG. 10 is a flowchart showing the second memory capacity securing process.
  • FIG. 11 is a flowchart showing the first backup processing.
  • FIG. 12 is a flowchart showing the second backup process.
  • FIG. 13 is a diagram illustrating a correspondence relationship between the volatile memory and the nonvolatile memory at the time of data backup.
  • FIG. 14 is a diagram showing the concept of data copy processing at the time of power failure and power recovery.
  • FIG. 15 is a flowchart showing the backup process 1 during a power failure.
  • FIG. 16 is an overall block diagram of the third storage system.
  • FIG. 17 is a diagram showing a configuration example of the management table 2 for managing the area reservation and backup status.
  • FIG. 18 is a flowchart showing the third memory capacity securing process.
  • FIG. 19 is a flowchart showing the third backup process.
  • FIG. 20 is a flowchart showing the backup process 2 during a power failure.
  • management table various types of information may be described using an expression such as “management table”, but the various types of information may be expressed using a data structure other than a table. Further, the “management table” can be referred to as “management information” to indicate that it does not depend on the data structure.
  • the program is executed by a processor, for example, an MP (Micro Processor) or a CPU (Central Processing Unit), and performs a predetermined process.
  • a processor for example, an MP (Micro Processor) or a CPU (Central Processing Unit)
  • the subject of processing may be a processor because the storage resource (for example, a memory) and a communication interface device (for example, a communication port) are used as appropriate.
  • the processor may have dedicated hardware in addition to the CPU.
  • the computer program may be installed on each computer from a program source.
  • the program source may be provided by, for example, a program distribution server or a storage medium.
  • each element for example, the controller can be identified by a number or the like, but other types of identification information such as a name may be used as long as it is identifiable information.
  • identification information such as a name
  • the same reference numerals are given to the same parts, but the present invention is not limited to the present embodiment, and any application examples that meet the idea of the present invention are technical. Included in the range. Further, unless specifically limited, each component may be plural or singular.
  • FIG. 1 is an overall block diagram of the first storage system.
  • a method (control method 1) including a register for storing the management table 1 in the memory controller will be described with reference to FIG.
  • the storage system 100 is connected to the host computer 2 to store data from the host computer 2, and also provides the data stored in the storage system 100 to the host computer 2.
  • the storage system 100 includes an MP3 for controlling the entire system, an HBA (Host Bus Adapter) 4 for connection to the host computer 2, a DRAM (Dynamic Random Access) for temporarily storing data from the host computer 2 and the system drive 9, and the like.
  • Memory composed of a volatile memory such as a memory, a non-volatile memory 6 composed of a flash memory for backing up the contents of the cache memory 5, a backup control microcontroller 7 (hereinafter referred to as a backup control microcomputer 7), a backup Chargeable / dischargeable battery 8 for supplying power at the time, system drive 9 composed of a plurality of HDDs (Hard Disk Drives) 91, and ASIC (Applicati) Comprises n Specific Integrated Circuit) 1.
  • the ASIC 1 is a controller that controls access to the HBA 4, the system drive 9, the cache memory 5, and the nonvolatile memory 6.
  • the HBA 4 has a built-in buffer for temporarily storing data from the host computer 2.
  • the ASIC 1 includes a memory controller 11, a routing unit 12 that arbitrates access between the HBA 4, MP 3, and the memory controller 11, and a DMA (Direct Memory Access) controller 13.
  • the memory controller 11 and the DMA controller 13 include the cache memory 5 and the memory controller 11. Controls access to the nonvolatile memory 6. Note that the DMA controller 13 is not built in the ASIC 1 but may be externally attached.
  • the memory controller 11 manages the battery charge amount register 111 for storing the charge power capacity (hereinafter referred to as charge amount) of the battery 8 measured by the backup control microcomputer 7 and the backup state of the cache memory 5 to the nonvolatile memory 6.
  • a management table 1 storage register 112 for storing the management table 1 to be stored, a BSY (Busy) signal 113 for controlling data storage in the cache memory 5, and a BSY signal register 114 for storing the state of the BSY signal 113.
  • the battery 8 is a chargeable / dischargeable secondary battery, which is, for example, a nickel-hydrogen type or a lithium ion type, but is not limited thereto.
  • a large capacity capacitor may be used instead of the battery or in parallel.
  • the memory controller 11 of the ASIC 1 uses the charge amount periodically set in the battery charge amount register 111 by the backup control microcomputer 7, the hardware (logic circuit) inside the ASIC 1, a microprogram that operates on the ASIC 1 and MP 3, etc. To calculate the amount of data that can be backed up. The result is defined as a backup available area (C).
  • the memory controller 11 determines that the reserved flag (described later) in the management table 1 storage register 112 is set by MP3 from the start address (StartSAddress) and the end address (End Address) to the unbackup area ( Calculate the data capacity of the backup required area).
  • the calculation result is defined as an unbackup area (D).
  • the memory controller 11 asserts the BSY signal 113 when the data capacity of the backup possible area (C) is smaller than the data capacity of the non-backup area (D) (backup available area (C) ⁇ non-backup area (D)). To do.
  • the BSY signal 113 is asserted, the BSY signal register 114 is set, and the memory controller 11 monitors the setting state of the BSY signal register 114 and inhibits data writing (data inflow) to the cache memory 5. If the data capacity of the backup available area (C) is larger than the data capacity of the non-backup area (D) (backup available area (C)> non-backup area (D)), the BSY signal 113 is negated and the cache memory Data writing to 5 is permitted.
  • the storage system 100 of the present invention controls the writing of data from the host computer 2 or the system drive 9 to the cache memory 5 with the BSY signal, and when the power supply from the outside of the system is interrupted such as during a power failure, Backup to the non-volatile memory 6 is always performed with only the charge amount of 8.
  • the memory controller 11 periodically activates the DMA controller 13 to copy an unbackup area in the cache memory 5 to the nonvolatile memory 6 for backup.
  • FIG. 2 is an overall block diagram of the second storage system.
  • a method control method 2 in which the memory controller 11 has the non-backup area calculation counter 115 and stores the management table 1 in the internal RAM will be described.
  • FIG. 2 illustrates only the differences from FIG.
  • the non-backup area calculation counter 115 is a counter for calculating the data capacity (storage capacity) of the non-backup area.
  • MP3 increments the write data capacity calculated from the start address and end address of the memory write access header at the memory write timing. Further, the timing backup control microcomputer 7 at the completion of data backup from the cache memory 5 to the nonvolatile memory 6 decrements the counter value of the non-backup area calculation counter 115 by the backup data capacity.
  • the memory controller 11 of the ASIC 1 calculates the write data capacity calculated from the transfer length included in the memory write access header at the memory write timing, and uses that capacity to calculate the unbackup area.
  • the counter value of the counter 115 is incremented.
  • the backup control microcomputer 7 decrements the counter value of the non-backup area calculation counter 115 by the backup data capacity at the timing of completion of data backup to the nonvolatile memory 6.
  • the storage location of the management table 1 in the control method 2 is changed from the management table storage register 112 inside the memory controller 11 of the control method 1 to the internal RAM 14 for storage outside the memory controller 11. This is because the management table 1 may not be stored in the register 112 when the size is large, so that the problem is solved by storing the management table 1 in a RAM capable of storing a large capacity.
  • the memory controller 11 calculates the data capacity that can be backed up from the charge amount that is periodically set in the battery charge amount register 111 by the backup control microcomputer 7. The result is defined as a backup available area (C).
  • the memory controller 11 acquires the data capacity of the non-backup area from the non-backup area calculation counter 115. The acquisition result is set as an unbackup area (D).
  • the memory controller 11 asserts the BSY signal 113 when the data capacity of the backup possible area (C) is smaller than the data capacity of the non-backup area (D) (backup available area (C) ⁇ non-backup area (D)). To do.
  • the BSY signal 113 is asserted, the BSY signal register 114 is set, and the memory controller 11 monitors the setting state of the BSY signal register 114 and inhibits data writing (data inflow) to the cache memory 5.
  • the BSY signal 113 is negated and the cache memory Data writing to 5 is permitted.
  • FIG. 3 is a diagram illustrating a first calculation method for generating the BSY signal.
  • the setting register_A 31 is a register for setting the battery charge amount, and the charge amount in the battery 8 is periodically measured by the backup control microcomputer 7 and the measurement result is set.
  • Setting register_B 32 is a register for setting a backup possible time (or backup possible capacity) per unit battery capacity.
  • the set value in the setting register_B 32 is determined by the rated charge capacity of the battery 8 to be mounted and the cache memory capacity to be mounted.
  • a backupable data capacity per unit battery capacity may be set.
  • the calculator_C 33 multiplies the setting value of the setting register_A 31 and the setting value of the setting register_B 32, and calculates the backup possible time (or backup possible capacity) from the multiplication result.
  • the time (or capacity) of the backup available area is calculated from the calculation result. This is the backup available time or backup available capacity (C).
  • the computing unit_D 34 acquires the address information whose reservation flag is ON in the management table 180. Then, the total of the data capacity that requires backup of the address area is calculated from the acquired address information. From the result, the required backup time in the unbackup area is calculated. This is the required backup time or required backup capacity (D).
  • the computing unit_E 35 is a computing unit that generates the BSY signal 113, and the above-described backup possible time or backup possible capacity (C) is larger than the backup required time or backup required capacity (D) ((C)> (D )) Negates the BSY signal 113.
  • (C) is smaller than (D) ((C) ⁇ (D))
  • the BSY signal 113 is asserted.
  • the non-backup data in the cache memory 6 is nonvolatile with the power of the battery 8 even during a power failure. Since it can be determined that the data can be saved in the memory 6, data writing to the cache memory 6 is permitted. On the other hand, when it is small ((C) ⁇ (D)), it is determined that it is not possible to save the non-backup data in the cache memory 6 to the nonvolatile memory 6 by the power of the battery 8 at the time of a power failure. Prohibit data writing.
  • FIG. 4 is a diagram illustrating a second calculation method for generating the BSY signal.
  • an unbackup area calculation counter_D is provided instead of the management table 180 and the calculator_D 34.
  • the function of the non-backup area calculation counter_D there are the following two control methods. (1) Control method 2 MP3 increments the counter value (unbackup data capacity) of the counter for non-backup area calculation 115 at the memory write timing. Then, the backup control microcomputer 7 decrements the counter value of the non-backup area calculation counter 115 at the timing of completion of the backup to the nonvolatile memory.
  • Control method 3 At the memory write timing, the memory controller 11 (which may be a hardware logic circuit in the ASIC 1) increments the counter value (unbackup data capacity) of the non-backup area calculation counter 115. Then, the backup control microcomputer 7 decrements the counter value of the non-backup area calculation counter 115 at the timing of completion of the backup to the nonvolatile memory.
  • the computing unit_E 35 outputs the output information of the computing unit_C33 (backup available time or backupable capacity) and the output information of the non-backup area calculation counter_D (backup required time or backup required capacity). And the assertion and negation of the BSY signal are controlled by the comparison result. By controlling data writing to the cache memory 6 with this BSY signal, the unbackup data capacity of the cache memory 6 can be kept below the data capacity that can be reliably backed up to the nonvolatile memory 6.
  • FIG. 5 is a ladder chart showing data write processing from the host computer to the cache memory buffer.
  • the host computer 2 issues a Write command (FCP_CMND) to the storage system 100.
  • the protocol chip 1 in the HBA 4 of the storage system 100 that is, the FC (Fibre Channel) / PCI-express (PCIe) (registered trademark) conversion chip (not shown) receives the Write command (FCP_CMND) from the host computer 2,
  • the command format (Write request) that can be used inside the storage system 100 is converted.
  • the protocol chip 1 notifies the MP3 of the write request.
  • the MP3 secures an area for storing write data in the cache memory 5 (secure memory capacity (A)). The detailed operation of this processing will be described with reference to FIGS.
  • the MP3 notifies the protocol chip 1 of a Ready signal when the memory capacity is secured in S503.
  • the protocol chip 1 converts the received Ready signal to generate an XFER_RDY command (transfer preparation completion command), and transmits the XFER_RDY command to the host computer 2.
  • the host computer 2 transfers the write data to the protocol chip 1.
  • the protocol chip 1 transfers the write data from the host computer 2 to the cache memory 5 or the buffer of the HBA 4 or the routing unit 12. The data transfer of S506 and S507 is executed for all the write data.
  • the protocol chip 1 transmits an all data transfer completion notification to the MP3.
  • the MP3 receives the all data transfer completion notification, the MP3 notifies the transfer completion to the memory controller 11 (transfer completion notification (B)).
  • the memory controller 11 transmits a completion notification indicating completion of reception of the all data transfer completion notification to the protocol chip 1.
  • the protocol chip 1 converts the received completion notification into an FCP_RSP command and sends it to the host computer 2 to notify that the data write operation from the host computer 2 has been completed. Data can be written from the host computer 2 to the cache memory 5 or the buffer by the operations from S501 to S511.
  • FIG. 6 is a ladder chart showing data write processing from the buffer to the cache memory.
  • the MP3 secures the memory capacity (memory capacity securing (A)), and then starts DMA transfer by the DMA controller 13 in S601.
  • the DMA controller 13 reads the data stored in the buffer.
  • the buffer includes a buffer that stores data from the host computer 2 and a buffer that stores data from the system drive 9.
  • the DMA controller 13 executes a write data transfer operation for transferring the read data to the cache memory 5.
  • the DMA controller sends an all data transfer completion notification to the MP3.
  • the MP3 receives the all data transfer completion notification, the MP3 notifies the transfer completion to the memory controller 11 (transfer completion notification (B)).
  • FIG. 7 is a ladder chart diagram showing data read processing from the storage system by the host computer.
  • the host computer 2 issues a Read command (FCP_CMND) to the storage system 100.
  • the protocol chip 1 FC / PCIe conversion chip
  • the protocol chip 1 receives the Read command (FCP_CMND) from the host computer 2 and converts it into a command format (Read request) that can be used inside the storage system 100.
  • the protocol chip 1 transmits a Read request to MP3.
  • the MP3 determines whether the read data according to the Read request is stored in the cache memory 5, and performs HIT / MISS determination.
  • the MP 3 requests the DMA controller 13 to start DMA and causes the data to be read from the cache memory 5 and transferred to the protocol chip 1.
  • the protocol chip 1 transmits the data transferred by the DMA controller 13 to the host computer 2. If the read data is not stored in the cache memory 5 (at the time of MISS), the MP3 first executes S503.
  • the MP3 secures a capacity for storing the read data from the system drive 9 in the cache memory 5 (secure memory capacity (A)).
  • step S704 the MP3 requests the protocol chip 2 (PCIe / SAS conversion chip) for DMA transfer.
  • the protocol chip 2 transmits a Read request to the system drive 9.
  • step S ⁇ b> 706 the system drive 9 transfers the read data read from the HDD 91 to the protocol chip 2.
  • the protocol chip 2 transfers the read data from the system drive 9 to the cache memory 5.
  • the protocol chip 2 transmits an all data transfer completion notification to the MP3.
  • the MP3 when the MP3 receives the all data transfer completion notification, the MP3 notifies the transfer completion to the memory controller 11 (transfer completion notification (B)).
  • step S709 the MP3 requests the protocol chip 1 for DMA transfer.
  • the protocol chip 1 that has received the DMA transfer request transmits a Read request to the cache memory 5.
  • the cache memory 5 transfers the read data to the protocol chip 1.
  • the protocol chip 1 transfers the read data to the host computer 2.
  • the MP 3 secures a memory capacity (A) and ensures an area that can be reliably backed up to the nonvolatile memory 6.
  • FIG. 8 is a diagram illustrating a configuration example of the management table 1 that manages the area reservation and write completion states.
  • the management table 180 includes an area ID 801 for uniquely identifying the data storage area, a start address 802 and an end address 803 of the data storage area, a reservation flag 804 for identifying whether or not the data storage area is reserved, a data storage area A memory write completion flag 805 for identifying whether or not writing to the memory has been completed.
  • the reservation flag 804 is set to “1 (ON)” by the MP3 or the memory controller 11 when the MP3 can secure the storage area on the cache memory 5 (memory capacity reservation (A)). Further, the memory write completion flag 805 is set to “1 (ON)” by the MP3 when the data write to the cache memory 5 is completed (transfer completion notification (B)). The reservation flag 804 and the memory write completion flag 805 are set (cleared) to “0 (OFF)” when the data stored in the cache memory 5 is backed up in the nonvolatile memory 6.
  • the MP3 notifies the memory controller 11 of the transfer completion (transfer completion notification (B)).
  • this data storage area is backed up to the nonvolatile memory 6 after the memory write is completed. Indicates an area where both flags are cleared. It should be noted that a column for determining the destage (storage) status to the system drive 9 may be provided in the management table 1801, and the reservation flag 804 and the memory write completion flag 805 may be cleared by destage.
  • FIG. 9 is a flowchart showing the first memory capacity securing process.
  • the MP3 confirms the free capacity (free space) of the cache memory. That is, the MP3 reads the control information of the shared memory (not shown) of the storage system 100 and confirms the free capacity (free space).
  • the MP 3 determines whether a necessary free area exists on the cache memory 5. When it does not exist (No), MP3 executes S903, and when it exists (Yes), executes S904.
  • the MP 3 destages the data stored in the cache memory 5 to the system drive 9 in order to secure the necessary free space.
  • the MP3 reserves the free area secured in S902 and S903 as a cache area for storing data.
  • the MP3 sets the start address and end of the cache area secured in S904 in the management table 1 storage register area of the memory controller 11 in which the secure flag 804 and the memory write completion flag 805 are “OFF (0)”.
  • the address information is stored and the reservation flag 804 is set to “ON (1)”. That is, the above-mentioned information is stored in an entry (memory write completion flag 805 is “0”) whose area ID 801 is “area 0” in the management table 1 80 of FIG. Note that the memory write completion flag 805 remains “OFF (0)”.
  • the MP3 determines whether the BSY signal 113 of the memory controller 11 is asserted by reading the value of the BSY signal register 114. If it is in the asserted state (Yes), the MP3 executes S906, waits for a predetermined time, waits for the amount of charge of the battery 8 to increase, executes S906 again, and determines the state of the BSY signal. If not asserted (No), the MP 3 starts data transfer to the cache memory 5.
  • an area to be stored in the cache memory 5 is secured.
  • the BSY signal is asserted (when the battery capacity for backing up unbackup data is insufficient)
  • data is not written to the reserved area, so cache memory data is lost due to insufficient battery charge capacity during a power failure. Can be prevented.
  • FIG. 10 is a flowchart showing the second memory capacity securing process. In FIG. 10, only differences from FIG. 9 will be described.
  • the MP3 stores the start address and end of the cache area secured in S904 in the management table area of the internal RAM 14 for storing the management table 1 in which the secure flag 804 and the memory write completion flag 805 are “OFF (0)”.
  • the address information is stored and the reservation flag 804 is set to “ON (1)”.
  • the memory write completion flag 805 remains “OFF (0)”.
  • the memory controller 11 increments the unbackup area calculation counter 115 by the area (capacity) reserved. In the example of FIG. 10, the same effect as in FIG. 9 can be obtained.
  • FIG. 11 is a flowchart showing the first backup processing.
  • the backup control microcomputer 7 checks the contents of the management table 1 storage register 112 of the memory controller 11. In step S1102, the backup control microcomputer 7 determines whether there is an area where the memory write completion flag 805 is set to “1 (ON)”. When it does not exist (No), the backup control microcomputer 7 executes S1101 again, and when it exists (Yes), executes S1103.
  • step S1103 the backup control microcomputer 7 transfers the area in which the memory write completion flag 805 is set to “1 (ON)” to the nonvolatile memory 6 for backup.
  • step S ⁇ b> 1104 the backup control microcomputer 7 clears the area completion flag 804 and the memory write completion flag 805 that have been transferred. This state is an entry whose area ID 801 is "area 0" in FIG.
  • the backup processing from S1101 to S1104 is always or periodically executed by the backup control microcomputer 7.
  • the cache memory area can be used efficiently while always maintaining the relationship of non-backup area ⁇ backup available area. Therefore, even when the battery is made small, the influence on performance can be minimized while maintaining reliability.
  • the merit of the present invention is that the capacity of the storage system is determined based on the battery capacity to be installed first, and depending on the usage of the storage device (use environment with many data reads, etc.) Can be reduced. Further, since the capacity of the battery to be mounted can be reduced, it is possible to reduce the size by reducing the mounting space in the storage system 100 and to reduce the cost by reducing the number of components.
  • FIG. 12 is a flowchart showing the second backup process.
  • the backup control microcomputer 7 checks the contents of the internal RAM 14 for storing the management table 1 of the memory controller 11. In step S1202, the backup control microcomputer 7 determines whether there is an area where the memory write completion flag 805 is set to “1 (ON)”. When it does not exist (No), the backup control microcomputer 7 executes S1201 again, and when it exists (Yes), executes S1203.
  • the backup control microcomputer 7 transfers the area where the memory write completion flag 805 is set to “1 (ON)” to the nonvolatile memory 6 for backup.
  • the backup control microcomputer 7 clears the transfer completion area reservation flag 804 and the memory write completion flag 805.
  • the backup control microcomputer 7 transfers the non-backup area calculation counter 115 of the memory controller 11 to the nonvolatile memory 6 and decrements the area (capacity) backed up.
  • FIG. 13 is a diagram illustrating a correspondence relationship between the volatile memory and the nonvolatile memory at the time of data backup.
  • the storage system 100 includes a nonvolatile memory 6 having the same capacity as the cache memory 5 (DIMM: Dual Inline Memory Module), and both memories are arranged in an address space from 0x00000000 to 0xfffffff (hexadecimal number). Is done.
  • the backup control microcomputer 7 detects it.
  • A2) Backup 1 The backup control microcomputer 7 makes a backup by copying the detected non-backup area 131 of the cache memory 5 to the same address area of the nonvolatile memory 6. By this copying operation, the backup control microcomputer 7 matches the contents of the cache memory 5 with the contents of the nonvolatile memory 6.
  • (A4) Backup 2 The backup control microcomputer 7 makes a backup by copying the detected new unbackup area 132 of the cache memory 5 to the same address area of the nonvolatile memory 6. The backup control microcomputer 7 backs up the nonvolatile memory 6 every time a new unbackup area of the cache memory 5 is generated, and matches the contents of both memories.
  • FIG. 14 is a diagram showing the concept of data copy processing at the time of power failure and power recovery.
  • B1 When a power failure occurs When a power failure occurs, an unbackup area 141 exists in the cache memory 5.
  • B2 During backup (battery power supply)
  • the backup control microcomputer 7 copies and backs up only the non-backup area 141 to the nonvolatile memory 6. As a result, the contents of the cache memory 5 and the contents of the nonvolatile memory 6 completely match.
  • FIG. 15 is a flowchart showing the backup process 1 during a power failure.
  • the backup control microcomputer 7 confirms the contents of the management table 1 storage register 112 of the ASIC 1 or the internal RAM 14 for storage of the management table 1. In step S1502, the backup control microcomputer 7 determines whether there is an area (unbackup area) in the management table 1 81 where the memory write completion flag 805 is set. If it exists (Yes), the backup control microcomputer 7 executes S1503. If it does not exist (No), the backup process is terminated.
  • step S1503 the backup control microcomputer 7 transfers the area (non-backup area) to the nonvolatile memory 6.
  • the backup control microcomputer 7 clears the transferred area reservation flag 804 and the memory write completion flag 805. Then, the backup control microcomputer 7 again executes the processing after S1501 until there is no unbackup area.
  • FIG. 14 (b2) the contents of the cache memory 5 and the contents of the nonvolatile memory 6 can be made to coincide with each other, and there is a problem even if the contents of the cache memory 5 volatilize (disappear) when the power is turned off. Absent.
  • FIG. 16 is an overall block diagram of the third storage system.
  • FIG. 16 shows a control method 3 in which the memory controller 11 does not accept a packet (write command and write data) from the routing unit 12 in a state where the BSY signal is asserted. In FIG. 16, only differences from FIG. 2 will be described.
  • the internal RAM 15 for storing the management table 2 stores the header of the packet that is write-accessed to the memory controller 11 and corresponds to the internal RAM 14 for storing the management table 1.
  • the reception buffer 116 is a memory (register) that temporarily holds a packet from the routing unit 12.
  • the sequencer 117 is hardware (logic circuit) that controls access to the cache memory 5. The sequencer 117 does not write the contents of the reception buffer 116 to the cache memory 5 when the BSY signal 113 is asserted.
  • the BSY signal 113 has a backup available area (backup data capacity or backup available time) calculated from the setting value of the battery charge amount register 111 as an unbackup area (backup required data capacity or backup time). Asserted if less than required time).
  • the non-backup area is the total capacity calculated from the transfer length included in the memory write access header of the area where the non-backup flag of the management table 2 shown in FIG. 17 described later is “1 (ON)”.
  • FIG. 17 is a diagram showing a configuration example of the management table 2 for managing the area reservation and backup status.
  • the management table 2 170 includes an area ID 1701 for uniquely identifying an area, a memory write access header 1702 including a start address and a transfer length, and an unbackup flag 1703 for determining whether the area is an unbackup area.
  • the management table 2 170 stores the header of the packet that has been write-accessed to the memory controller 11 in the entry in which the unbackup flag 1703 is cleared (“0 (OFF)” state), and sets the unbackup flag 1703 to “1 (ON). ) ”Set to state.
  • the capacity of the non-backup area is the total capacity calculated from the transfer length included in the memory write access header 1702 of the area where the non-backup flag 1703 is “1 (ON)”.
  • the backup control microcomputer 7 clears the contents of the memory write access header 1702 and the non-backup flag 1703 when the transfer of the header data in which the non-backup flag 1703 is set to the nonvolatile memory 6 is completed.
  • FIG. 18 is a flowchart showing the third memory capacity securing process.
  • the processing from S1801 to S1804 in FIG. 18 is the same as the processing from S901 to S904 in FIG.
  • the MP3 starts data transfer to the cache memory 5.
  • the memory controller 11 receives data from the MP3 by the reception buffer 116. However, when the BSY signal 113 is asserted, the memory controller 11 controls the sequencer 117 so as not to transfer the data in the reception buffer 116 to the cache memory 5.
  • the BSY signal is generated by hardware (logic circuit) shown in FIG.
  • FIG. 19 is a flowchart showing the third backup process.
  • the backup control microcomputer 7 confirms the contents of the internal RAM 15 for storing the management table 2 of the memory controller 11. In step S1902, the backup control microcomputer 7 determines whether there is an area where the unbackup flag 1703 is set to “1 (ON)”. When it does not exist (No), the backup control microcomputer 7 executes S1901 again, and when it exists (Yes), executes S1903.
  • the backup control microcomputer 7 transfers the area where the unbackup flag 1703 is set to “1 (ON)” to the nonvolatile memory 6 for backup.
  • the backup control microcomputer 7 clears the unbackup flag 1703 in the area where the transfer has been completed, and deletes the contents of the memory write access header 1702.
  • the backup control microcomputer 7 transfers the non-backup area calculation counter 115 of the memory controller 11 to the nonvolatile memory 6 and decrements the area (capacity) backed up.
  • FIG. 20 is a flowchart showing the backup process 2 during a power failure.
  • the backup control microcomputer 7 confirms the contents of the internal RAM 15 for storing the management table 2 of the ASIC 1.
  • step S2002 the backup control microcomputer 7 determines whether there is an area (unbackup area) in which the unbackup flag 1703 is set in the management table 181. If it exists (Yes), the backup control microcomputer 7 executes S2003. If it does not exist (No), the backup process is terminated.
  • the backup control microcomputer 7 transfers the area (non-backup area) to the nonvolatile memory 6.
  • step S2004 the backup control microcomputer 7 clears the non-backup flag 1703 of the transferred area. Then, the backup control microcomputer 7 again executes the processes after S2001 until there is no unbackup area.
  • FIG. 14 (b2) the contents of the cache memory 5 and the contents of the nonvolatile memory 6 can be made to coincide with each other, and there is a problem even if the contents of the cache memory 5 volatilize (disappear) when the power is turned off. Absent.
  • the storage system of the present invention when data from the host computer or system drive is stored in the volatile memory, an area that can be saved in the nonvolatile memory by the internal power supply is secured in advance for the storage data capacity. After an area that can be saved by the internal power supply can be secured, data from the host computer or system drive is stored in the nonvolatile memory in the area. Therefore, data loss when an external power failure such as a power failure occurs can be prevented.
  • this invention is not limited to the above-mentioned Example, Various modifications are included.
  • the above-described embodiments have been described in detail for easy understanding of the present invention, and are not necessarily limited to those having all the configurations described. Further, a part of the configuration of one embodiment can be replaced with the configuration of another embodiment, and the configuration of another embodiment can be added to the configuration of one embodiment. Further, it is possible to add, delete, and replace other configurations for a part of the configuration of each embodiment.
  • each of the above-described configurations, functions, processing units, processing means, and the like may be realized by hardware by designing a part or all of them with, for example, an integrated circuit.
  • Each of the above-described configurations, functions, and the like may be realized by software by interpreting and executing a program that realizes each function by the processor.
  • Information such as programs, tables, and files for realizing each function may be stored in a memory, a hard disk, a recording device such as an SSD (Solid State Drive), or a recording medium such as an IC card, an SD card, or a DVD.
  • a recording device such as an SSD (Solid State Drive)
  • a recording medium such as an IC card, an SD card, or a DVD.
  • control lines and information lines indicate what is considered necessary for the explanation, and not all the control lines and information lines on the product are necessarily shown. Actually, it may be considered that almost all the components are connected to each other.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

 停電等の外部電源障害発生時のデータ消失を防止できるストレージシステムを提供するため、ホスト計算機ないしシステムドライブからのデータをストレージシステムの揮発メモリに格納する際に、内部電源であるバッテリの充電容量と揮発メモリでの不揮発メモリへの未退避(未バックアップ)データ容量とで、書き込みのデータ容量分を揮発メモリから不揮発性メモリに退避できるかを判断する。退避可能と判断された場合は揮発メモリに書き込みのデータ容量分の領域を確保し当該領域にデータを書き込み、退避不可能を判断された場合はデータ書き込みを抑制する。

Description

ストレージシステム及び制御方法
 本発明は、ストレージシステム及び制御方法に関する。
 従来、データセンターや病院等におけるサーバシステムやストレージシステムは、UPS(Uninterruptible Power Supply、無停電電源装置)を備え、停電等の外部電源障害時においても継続運転が可能である。具体的には、UPSを用いた継続運転中に自家発電装置を稼働することによって、システムを継続的に運転させる。
 また、障害対応に関連する技術として、障害による外部電源遮断時にキャッシュメモリ内のデータ種別やバッテリ残量に合わせた制御により、揮発メモリであるキャッシュデータを保護しつつバッテリ電源の電力消費を低減させる技術が開示されている。しかしながら、従来のUPSを用いたシステムでは、UPSに用いられるバッテリのコストや設置コストが高くなる問題があった。
 更に、自家発電装置を備えない場合や、電力供給が長時間停止することが想定される場合において、安全にシステムを停止できない場合があった。このような問題への対応として特許文献1記載の技術がある。これは、低コストに且つ安全にシステムを停止できる計算機を提供するものである。具体的には、計算機は、データを記憶する不揮発メモリと、不揮発メモリへのデータの退避を制御する制御プロセッサと、外部電源の障害時に当該計算機に電力を供給するバッテリとを備え、制御プロセッサはバッテリに蓄えられた充電量を確認し、確認された充電量に基づいて外部電源の障害時にバッテリによって不揮発メモリに退避可能なデータ量を算出し、不揮発メモリに退避すべきデータのうち退避可能なデータ量を除いたデータ量のデータを予め不揮発メモリに退避する。
米国特許出願公開第2013/009745号明細書        (日本公開特許2013-88928号公報)
 特許文献1の技術では、退避可能なデータ量を除いたデータ量のデータを、予め不揮発メモリに退避する。しかしながら、退避前または退避中に停電等の外部電源障害が発生すると退避すべきデータ全てを不揮発メモリに退避できない可能性があるため、退避すべきデータの一部ないし全てを消失してしまう。そこで、本発明では、停電等の外部電源障害発生時のデータ消失を防止できるストレージシステムを提供することを目的とする。
 上記課題を解決するために、本発明のストレージシステムでは、ホスト計算機ないしシステムドライブからのデータをストレージシステムの揮発メモリに格納する際に、内部電源であるバッテリの充電容量と揮発メモリでの不揮発メモリへの未退避(未バックアップ)データ容量とで、書き込みのデータ容量分を揮発メモリから不揮発性メモリに退避できるかを判断する。退避可能と判断された場合は揮発メモリに書き込みのデータ容量分の領域を確保し当該領域にデータを書き込み、退避不可能を判断された場合はデータ書き込みを抑制する。
 本発明のストレージシステムでは、内部電源で揮発メモリから不揮発メモリに退避できる領域を確保した後に退避が必要なデータを揮発メモリに格納するので、確実に不揮発メモリにデータを退避できる。そのため、データ消失を防止できるので、ストレージシステム全体の信頼性を向上できる。前述以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
図1は、第1のストレージシステムの全体ブロック図である。 図2は、第2のストレージシステムの全体ブロック図である。 図3は、BSY信号を生成するための第1の演算方式を示す図である。 図4は、BSY信号を生成するための第2の演算方式を示す図である。 図5は、ホスト計算機からキャッシュメモリ・バッファへのデータライト処理を示すラダーチャート図である。 図6は、バッファからキャッシュメモリへのデータライト処理を示すラダーチャート図である。 図7は、ホスト計算機によるストレージシステムからのデータリード処理を示すラダーチャート図である。 図8は、領域確保とライト完了の状態を管理する管理テーブル1の構成例を示す図である。 図9は、第1のメモリ容量確保処理を示すフローチャート図である。 図10は、第2のメモリ容量確保処理を示すフローチャート図である。 図11は、第1のバックアップ処理を示すフローチャート図である。 図12は、第2のバックアップ処理を示すフローチャート図である。 図13は、データバックアップ時の揮発性メモリと不揮発メモリとの対応関係を示す図である。 図14は、停電時及び復電時のデータコピー処理の概念を示す図である。 図15は、停電時のバックアップ処理1を示すフローチャート図である。 図16は、第3のストレージシステムの全体ブロック図である。 図17は、領域確保とバックアップの状態を管理する管理テーブル2の構成例を示す図である。 図18は、第3のメモリ容量確保処理を示すフローチャート図である。 図19は、第3のバックアップ処理を示すフローチャート図である。 図20は、停電時のバックアップ処理2を示すフローチャート図である。
 以下、図面を参照しながら本発明の実施の形態を説明する。なお、以下の説明では、「管理テーブル」等の表現にて各種情報を説明することがあるが、各種情報は、テーブル以外のデータ構造で表現されていてもよい。また、データ構造に依存しないことを示すために「管理テーブル」を「管理情報」と呼ぶことができる。
 また、「プログラム」を主語として処理を説明する場合がある。そのプログラムは、プロセッサ、例えば、MP(Micro Processor)やCPU(Central Processing Unit)によって実行されるもので、定められた処理をするものである。なお、適宜に記憶資源(例えばメモリ)及び通信インターフェース装置(例えば、通信ポート)を用いながら行うため、処理の主語がプロセッサとされてもよい。プロセッサは、CPUの他に専用ハードウェアを有していても良い。コンピュータプログラムは、プログラムソースから各コンピュータにインストールされても良い。プログラムソースは、例えば、プログラム配布サーバ又は記憶メディアなどで提供されるものであっても良い。
 また、各要素、例えば、コントローラは番号などで識別可能であるが、識別可能な情報であれば、名前など他種の識別情報が用いられても良い。本発明の図及び説明において同一部分には同一符号を付与しているが、本発明が本実施例に制限されることは無く、本発明の思想に合致するあらゆる応用例が本発明の技術的範囲に含まれる。また、特に限定しない限り、各構成要素は複数でも単数でも構わない。
<システム全体構成1>
 図1は、第1のストレージシステムの全体ブロック図である。図1でメモリコントローラ内に管理テーブル1を格納するレジスタを備える方式(制御方式1)について説明する。ストレージシステム100はホスト計算機2に接続してホスト計算機2からのデータを格納し、また、ストレージシステム100に格納したデータをホスト計算機2に提供する。
 ストレージシステム100は、システム全体を制御するMP3、ホスト計算機2と接続するためのHBA(Host Bus Adapter)4、ホスト計算機2やシステムドライブ9からのデータ等を一時的に格納するDRAM(Dynamic Random Access Memory)等の揮発メモリで構成するキャッシュメモリ5、キャッシュメモリ5の内容をバックアップするためのフラッシュメモリ等で構成する不揮発メモリ6、バックアップ制御用マイクロコントローラ7(以下、バックアップ制御用マイコン7)、バックアップ時の電力を供給するための充放電可能なバッテリ8、複数のHDD(Hard Disk Drive)91から構成されるシステムドライブ9、そして、ASIC(Application Specific Integrated Circuit)1を備える。なお、ASIC1は、HBA4、システムドライブ9、キャッシュメモリ5、不揮発メモリ6へのアクセスを制御するコントローラである。また、図示はしていないが、HBA4はホスト計算機2からのデータを一時的に記憶するバッファを内蔵している。
 また、ASIC1は、メモリコントローラ11、HBA4とMP3とメモリコントローラ11とのアクセスを調停するルーティング部12、DMA(Direct Memory Access)コントローラ13を備え、メモリコントローラ11及びDMAコントローラ13が、キャッシュメモリ5及び不揮発メモリ6へのアクセスを制御する。なお、DMAコントローラ13はASIC1内蔵でなく、外付けでもかまわない。
 メモリコントローラ11は、バックアップ制御用マイコン7で計測されたバッテリ8の充電電力容量(以下、充電量)を格納するためのバッテリ充電量レジスタ111、キャッシュメモリ5の不揮発メモリ6へのバックアップ状況を管理する管理テーブル1を格納する管理テーブル1格納レジスタ112、キャッシュメモリ5へのデータ格納を制御するBSY(Busy)信号113、BSY信号113の状態を格納するBSY信号レジスタ114を備える。バッテリ8は、充放電可能な2次電池で、例えば、ニッケルー水素タイプやリチウムイオンタイプなどであるが、これに限定されない。電池の代わりに、ないし並列的に大容量のコンデンサを用いてもよい。また、停電時のストレージシステム100では、大電力を消費するMP3やHBA4などは動作させず、バッテリ8によりASIC1、キャッシュメモリ5、不揮発メモリ6、バックアップ制御用マイコン7だけを動作させてデータバックアップを行う。
 まず、ASIC1のメモリコントローラ11が、バックアップ制御用マイコン7により定期的にバッテリ充電量レジスタ111へ設定される充電量からASIC1内部のハードウェア(論理回路)、ASIC1やMP3上で動作するマイクロプログラムなどでバックアップ可能なデータ容量を計算する。その結果をバックアップ可能領域(C)とする。
 次に、メモリコントローラ11が、管理テーブル1格納レジスタ112内の確保フラグ(後述)がMP3によりセットされている領域に対し、開始アドレス(Start Address)と終了アドレス(End Address)から未バックアップ領域(バックアップ必要領域)のデータ容量を計算する。その計算結果を未バックアップ領域(D)とする。
 そして、メモリコントローラ11はバックアップ可能領域(C)のデータ容量が、未バックアップ領域(D)のデータ容量より小さい場合(バックアップ可能領域(C)<未バックアップ領域(D))、BSY信号113をアサートする。BSY信号113がアサートされるとBSY信号レジスタ114がセットされ、BSY信号レジスタ114のセット状況をメモリコントローラ11が監視し、キャッシュメモリ5へのデータ書き込み(データ流入)を抑止する。また、バックアップ可能領域(C)のデータ容量が、未バックアップ領域(D)のデータ容量より大きい場合(バックアップ可能領域(C)>未バックアップ領域(D))はBSY信号113をネゲートし、キャッシュメモリ5へのデータ書き込みを許可する。
 すなわち、本発明のストレージシステム100は、ホスト計算機2ないしシステムドライブ9からキャッシュメモリ5へのデータ書き込みをBSY信号で制御して、停電時などシステム外部からの電力供給が遮断された場合に、バッテリ8の充電量のみで必ず不揮発メモリ6へバックアップできるようにする。なお、メモリコントローラ11は、定期的にDMAコントローラ13を起動し、キャッシュメモリ5における未バックアップ領域を不揮発メモリ6にコピーしてバックアップする。
<システム全体構成2>
 図2は、第2のストレージシステムの全体ブロック図である。図2では、メモリコントローラ11に未バックアップ領域計算用カウンタ115を持ち内部RAMに管理テーブル1を格納する方式(制御方式2)について説明する。なお、図2は、図1との相違点のみ説明する。
 未バックアップ領域計算用カウンタ115は、未バックアップ領域のデータ容量(記憶容量)を計算するカウンタである。本制御方式2では、メモリライトのタイミングでMP3がメモリライトアクセスヘッダの開始アドレスと終了アドレスから算出されたライトデータ容量分をインクリメントする。また、キャッシュメモリ5から不揮発メモリ6へのデータバックアップ完了のタイミングバックアップ制御用マイコン7が、バックアップデータ容量分で未バックアップ領域計算用カウンタ115のカウンタ値をデクリメントする。
 また、後述する制御方式3では、メモリライトのタイミングでASIC1のメモリコントローラ11がメモリライトアクセスヘッダに含まれる転送長から算出されるライトデータ容量分を計算し、その容量分で未バックアップ領域計算用カウンタ115のカウンタ値をインクリメントする。また、不揮発メモリ6へのデータバックアップ完了のタイミングでバックアップ制御用マイコン7が、バックアップデータ容量分で未バックアップ領域計算用カウンタ115のカウンタ値をデクリメントする。
 制御方式2での管理テーブル1の格納場所を、制御方式1のメモリコントローラ11内部の管理テーブル格納レジスタ112から、メモリコントローラ11外部の格納用内部RAM14に変更している。これは、管理テーブル1のサイズが大きい場合、レジスタ112に格納できない可能性があるので、大容量を格納できるRAMに管理テーブル1を格納することで、その問題を解決する。
 まず、メモリコントローラ11が、バックアップ制御用マイコン7により定期的にバッテリ充電量レジスタ111へ設定される充電量からバックアップ可能なデータ容量を計算する。その結果をバックアップ可能領域(C)とする。次に、メモリコントローラ11が、未バックアップ領域計算用カウンタ115から未バックアップ領域のデータ容量を取得する。その取得結果を未バックアップ領域(D)とする。
 そして、メモリコントローラ11はバックアップ可能領域(C)のデータ容量が、未バックアップ領域(D)のデータ容量より小さい場合(バックアップ可能領域(C)<未バックアップ領域(D))、BSY信号113をアサートする。BSY信号113がアサートされるとBSY信号レジスタ114がセットされ、BSY信号レジスタ114のセット状況をメモリコントローラ11が監視し、キャッシュメモリ5へのデータ書き込み(データ流入)を抑止する。
 また、バックアップ可能領域(C)のデータ容量が、未バックアップ領域(D)のデータ容量より大きい場合(バックアップ可能領域(C)>未バックアップ領域(D))はBSY信号113をネゲートし、キャッシュメモリ5へのデータ書き込みを許可する。
<BSY信号生成1>
 図3は、BSY信号を生成するための第1の演算方式を示す図である。設定レジスタ_A 31は、バッテリ充電量を設定するためのレジスタでバックアップ制御用マイコン7により定期的にバッテリ8での充電量が測定され測定結果が設定される。
 設定レジスタ_B 32は、単位バッテリ容量当たりのバックアップ可能時間(ないしバックアップ可能容量)を設定するレジスタである。設定レジスタ_B 32への設定値は、搭載するバッテリ8の定格充電容量と、搭載するキャッシュメモリ容量等で決定される。なお、設定レジスタ_B 32には、単位バッテリ容量当たりのバックアップ可能データ容量を設定してもよい。
 演算器_C 33は、設定レジスタ_A 31の設定値と設定レジスタ_B 32の設定値を乗算して、その乗算結果からバックアップ可能時間(ないしバックアップ可能容量)を計算する。その計算結果からバックアップ可能領域の時間(ないし容量)を算出する。これを、バックアップ可能時間ないしバックアップ可能容量(C)とする。
 演算器_D 34は、管理テーブル1 80で確保フラグがONであるアドレス情報を取得する。そして、取得したアドレス情報でアドレス領域のバックアップが必要なデータ容量の総和を計算する。その結果から未バックアップ領域でのバックアップ必要時間を算出する。これを、バックアップ必要時間ないしバックアップ必要容量(D)とする。
 演算器_E 35は、BSY信号113を生成する演算器で、前述のバックアップ可能時間ないしバックアップ可能容量(C)が、バックアップ必要時間ないしバックアップ必要容量(D)より大きい場合((C)>(D))はBSY信号113をネゲートし、(C)が(D)より小さい場合((C)<(D))はBSY信号113をアサートする。
 このように、バックアップ可能時間ないしバックアップ可能容量がバックアップ必要時間ないしバックアップ必要容量より大きい場合((C)>(D))は、停電時でもバッテリ8の電力でキャッシュメモリ6の未バックアップデータを不揮発メモリ6に退避させることが可能と判断できるので、キャッシュメモリ6へのデータ書き込みを許可する。一方、小さい場合((C)<(D))は、停電時にはバッテリ8の電力でキャッシュメモリ6の未バックアップデータを不揮発メモリ6に退避させることが可能でないと判断されるので、キャッシュメモリ6へのデータ書き込みを禁止する。
<BSY信号生成2>
 図4は、BSY信号を生成するための第2の演算方式を示す図である。ここでは、図3との相違についてのみ説明する。第2の演算方式では、管理テーブル1 80と演算器_D 34のかわりに、未バックアップ領域計算用カウンタ_Dを設ける。この未バックアップ領域計算用カウンタ_Dの機能として、以下の2つの制御方式がある。
 (1)制御方式2
 メモリライトのタイミングでMP3が、未バックアップ領域計算用カウンタ115のカウンタ値(未バックアップのデータ容量)をインクリメントする。そして、不揮発メモリへのバックアップ完了のタイミングでバックアップ制御用マイコン7が、未バックアップ領域計算用カウンタ115のカウンタ値をデクリメントする。
 (2)制御方式3
 メモリライトのタイミングでメモリコントローラ11(ASIC1内部のハードウェア論理回路でもよい)が、未バックアップ領域計算用カウンタ115のカウンタ値(未バックアップのデータ容量)をインクリメントする。そして、不揮発メモリへのバックアップ完了のタイミングでバックアップ制御用マイコン7が、未バックアップ領域計算用カウンタ115のカウンタ値をデクリメントする。
 制御方式1と同様に、演算器_E 35は、演算器_C33の出力情報(バックアップ可能時間ないしバックアップ可能容量)と、未バックアップ領域計算用カウンタ_Dの出力情報(バックアップ必要時間ないしバックアップ必要容量)とを比較し、その比較結果でBSY信号のアサート及びネゲートを制御する。このBSY信号でキャッシュメモリ6へのデータ書き込みを制御することで、キャッシュメモリ6の未バックアップのデータ容量を不揮発メモリ6へ確実にバックアップできるデータ容量以下に抑えることができる。
<データライト処理1>
 図5は、ホスト計算機からキャッシュメモリ・バッファへのデータライト処理を示すラダーチャート図である。
 S501で、ホスト計算機2は、Writeコマンド(FCP_CMND)をストレージシステム100に発行する。ストレージシステム100のHBA4内のプロトコルチップ1、すなわちFC(Fibre Channel)/PCI-express(PCIe)(登録商標)変換チップ(図示せず)が、ホスト計算機2からWriteコマンド(FCP_CMND)を受信し、ストレージシステム100内部で使用できるコマンドフォーマット(Write要求)に変換する。
 S502で、プロトコルチップ1は、Write要求をMP3に通知する。S503で、MP3は、キャッシュメモリ5でライトデータを格納する領域を確保する(メモリ容量確保(A))。この処理の詳細な動作については図9及び図10で説明する。
 S504で、MP3は、S503でメモリ容量を確保できたら、プロトコルチップ1に対しReady信号を通知する。S505で、プロトコルチップ1は受信したReady信号を変換してXFER_RDYコマンド(転送準備完了コマンド)を生成し、XFER_RDYコマンドをホスト計算機2に送信する。S506で、ホスト計算機2は、プロトコルチップ1にライトデータを転送する。S507で、プロトコルチップ1は、ホスト計算機2からのライトデータをキャッシュメモリ5ないし、HBA4またはルーティング部12のバッファに転送する。S506とS507のデータ転送をライトデータ全てに実行する。
 S508で、キャッシュメモリ5ないしバッファへの全データの転送が完了すると、プロトコルチップ1は全データ転送完了通知をMP3に送信する。S509で、全データ転送完了通知をMP3が受信すると、MP3は転送完了をメモリコントローラ11に通知する(転送完了通知(B))。S510で、メモリコントローラ11は、全データ転送完了通知の受信完了を表す完了通知をプロトコルチップ1に送信する。S511で、プロトコルチップ1は、受信した完了通知をFCP_RSPコマンドに変換し、ホスト計算機2に送信することでホスト計算機2からのデータライト動作が完了したことを通知する。以上のS501からS511の動作で、ホスト計算機2からキャッシュメモリ5ないしバッファへデータをライトできる。
<データライト処理2>
 図6は、バッファからキャッシュメモリへのデータライト処理を示すラダーチャート図である。
 S503で、MP3はメモリの容量を確保した後(メモリ容量確保(A))、S601で、DMAコントローラ13によるDMA転送を起動する。S602で、DMAコントローラ13はバッファに格納されたデータをリードする。なお、バッファはホスト計算機2からのデータを格納するバッファと、システムドライブ9からのデータを格納するバッファがある。
 S603で、DMAコントローラ13はリードしたデータをキャッシュメモリ5に転送するライトデータ転送動作を実行する。S604で、全てのデータをバッファからキャッシュメモリ5への転送を完了したら、DMAコントローラは全データ転送完了通知をMP3に送信する。S509で、全データ転送完了通知をMP3が受信すると、MP3は転送完了をメモリコントローラ11に通知する(転送完了通知(B))。
<データリード処理>
 図7は、ホスト計算機によるストレージシステムからのデータリード処理を示すラダーチャート図である。
 S701で、ホスト計算機2は、Readコマンド(FCP_CMND)をストレージシステム100に発行する。ストレージシステム100のHBA4内のプロトコルチップ1(FC/PCIe変換チップ)が、ホスト計算機2からReadコマンド(FCP_CMND)を受信し、ストレージシステム100内部で使用できるコマンドフォーマット(Read要求)に変換する。S702で、プロトコルチップ1が、Read要求をMP3に送信する。
 S703で、MP3は、Read要求によるリードデータがキャッシュメモリ5上に格納されているかの判定、HIT/MISS判定を行う。キャッシュメモリ5上に格納されている場合(HIT時)は、MP3はDMAコントローラ13にDMA起動を要求しキャッシュメモリ5からのデータ読み出しとプロトコルチップ1への転送を行わせる。プロトコルチップ1は、DMAコントローラ13で転送されたデータをホスト計算機2に送信する。また、リードデータがキャッシュメモリ5上に格納されていない場合(MISS時)、MP3は、まずS503を実行する。S503で、MP3はキャッシュメモリ5に、システムドライブ9からのリードデータを格納する容量を確保する(メモリ容量確保(A))。
 S704で、MP3は、プロトコルチップ2(PCIe/SAS変換チップ)にDMA転送を要求する。S705で、プロトコルチップ2は、システムドライブ9にRead要求を送信する。S706で、システムドライブ9は、プロトコルチップ2にHDD91から読み出したリードデータを転送する。S707で、プロトコルチップ2は、システムドライブ9からのリードデータをキャッシュメモリ5に転送する。S708で、全リードデータの転送が完了するとプロトコルチップ2は、全データ転送完了通知をMP3に送信する。S509で、全データ転送完了通知をMP3が受信すると、MP3は転送完了をメモリコントローラ11に通知する(転送完了通知(B))。
 S709で、MP3は、プロトコルチップ1にDMA転送を要求する。S710で、DMA転送の要求を受信したプロトコルチップ1は、キャッシュメモリ5にRead要求を送信する。S711で、キャッシュメモリ5は、プロトコルチップ1へリードデータを転送する。S712で、プロトコルチップ1は、ホスト計算機2へリードデータを転送する。
 以上のように、システムドライブ9からキャッシュメモリ5へのデータ書き込み(データ流入)においても、MP3はメモリ容量確保(A)を行い、確実に不揮発メモリ6にバックアップできる領域を確保する。
<管理テーブル1>
 図8は、領域確保とライト完了の状態を管理する管理テーブル1の構成例を示す図である。管理テーブル1 80は、データ格納領域を一意に識別するための領域ID801、データ格納領域の開始アドレス802及び終了アドレス803、データ格納領域を確保されたか否かを識別する確保フラグ804、データ格納領域へのライトが完了したか否かを識別するメモリライト完了フラグ805を備える。
 確保フラグ804は、MP3がキャッシュメモリ5上の格納領域を確保できた時、MP3ないしメモリコントローラ11により“1(ON)”にセットされる(メモリ容量確保(A))。また、メモリライト完了フラグ805は、キャッシュメモリ5へのデータライトが全て完了した時、MP3により“1(ON)”にセットされる(転送完了通知(B))。確保フラグ804及びメモリライト完了フラグ805は、キャッシュメモリ5に格納したデータが不揮発メモリ6にバックアップされると、“0(OFF)”にセット(クリア)される。
 領域ID801が“領域1”であるデータ格納領域は、確保フラグ804が“1”でメモリライト完了フラグ805が“0”であるので、データ格納領域は確保したがメモリライトは完了していない状態である。
 領域ID801が“領域2”であるデータ格納領域は、確保フラグ804が“1”でメモリライト完了フラグ805が“1”であるので、データ格納領域は確保され、メモリライトも完了している状態である。この場合、MP3は転送完了をメモリコントローラ11に通知する(転送完了通知(B))
 領域ID801が“領域0”であるデータ格納領域は、確保フラグ804が“0”でメモリライト完了フラグ805が“0”であるので、このデータ格納領域はメモリライトの完了後に不揮発メモリ6にバックアップが行われ、両フラグがクリアされた領域を示す。
なお、管理テーブル1 81にシステムドライブ9へのデステージ(格納)状況を判別する欄を設け、デステージにより確保フラグ804及びメモリライト完了フラグ805をクリアするようにしてもよい。
<メモリ容量確保処理1>
 図9は、第1のメモリ容量確保処理を示すフローチャート図である。
 S901で、MP3は、キャッシュメモリの空き容量(空き領域)を確認する。つまり、MP3が、ストレージシステム100の共有メモリ(図示せず)の制御情報をリードして空き容量(空き領域)を確認する。S902で、MP3は、キャッシュメモリ5上に必要な空き領域が存在するかを判断する。存在しない場合(No)、MP3はS903を実行し、存在する場合(Yes)はS904を実行する。S903で、必要な空き領域を確保するため、MP3はキャッシュメモリ5に格納されているデータをシステムドライブ9へデステージする。
 S904で、MP3は、S902及びS903で確保した空き領域を、データを格納するキャッシュ領域として確保する。S905で、MP3は、確保フラグ804及びメモリライト完了フラグ805が“OFF(0)”となっているメモリコントローラ11の管理テーブル1格納レジスタの領域に、S904で確保したキャッシュ領域の開始アドレス及び終了アドレスの情報を格納すると共に確保フラグ804を“ON(1)”にセットする。つまり、図8の管理テーブル1 80の領域ID801が“領域0”であるエントリ(メモリライト完了フラグ805が“0”)に前述の情報を格納する。なお、メモリライト完了フラグ805は、“OFF(0)”のままである。
 S906で、MP3は、メモリコントローラ11のBSY信号113がアサート状態かをBSY信号レジスタ114の値を読み出して判断する。アサート状態であれば(Yes)、MP3はS906を実行し一定時間Wait(待機)してバッテリ8の充電量が増加するのを待ち、再びS906を実行しBSY信号の状態を判断する。アサート状態でなければ(No)、MP3はキャッシュメモリ5へのデータ転送を開始する。
 以上のように、本発明では、まず、キャッシュメモリ5に格納する領域を確保する。そして、BSY信号がアサート状態(未バックアップデータをバックアップするためのバッテリ容量が不足している状態)では確保した領域にデータを書き込まないので、停電時のバッテリ充電容量不足によるキャッシュメモリデータの消失を防止できる。
<メモリ容量確保処理2>
 図10は、第2のメモリ容量確保処理を示すフローチャート図である。図10では、図9との相違点のみを説明する。
 S1001で、MP3は、確保フラグ804及びメモリライト完了フラグ805が“OFF(0)”になっている管理テーブル1格納用内部RAM14の管理テーブル領域に、S904で確保したキャッシュ領域の開始アドレス及び終了アドレスの情報を格納すると共に確保フラグ804を“ON(1)”にセットする。この時、メモリライト完了フラグ805は“OFF(0)”のままである。S1002で、メモリコントローラ11の未バックアップ領域計算用カウンタ115を確保した領域分(容量分)だけインクリメントする。図10の例でも図9と同様な効果を得ることができる。
<バックアップ処理1>
 図11は、第1のバックアップ処理を示すフローチャート図である。
 S1101で、バックアップ制御マイコン7は、メモリコントローラ11の管理テーブル1格納レジスタ112の内容を確認する。S1102で、バックアップ制御マイコン7は、メモリライト完了フラグ805が“1(ON)”にセットされている領域が存在するかを判断する。存在しない場合(No)、バックアップ制御マイコン7は再びS1101を実行し、存在する場合(Yes)はS1103を実行する。
 S1103で、バックアップ制御マイコン7は、メモリライト完了フラグ805が“1(ON)”にセットされている領域を不揮発メモリ6へ転送しバックアップする。S1104で、バックアップ制御マイコン7は、転送が完了した領域の確保フラグ804及びメモリライト完了フラグ805をクリアする。この状態が、図8で領域ID801が“領域0”のエントリである。
 S1101からS1104のバックアップ処理は、バックアップ制御マイコン7で常時ないし定期的に実行される。BSY信号とバックアップ制御マイコン7による常時バックアップ処理を組み合わせることで、常に未バックアップ領域<バックアップ可能領域の関係を保ちながらキャッシュメモリ領域を効率的に使うことができる。そのため、バッテリを小さくした場合でも信頼性を保ちつつ性能への影響を最小限に抑えることができる。つまり、本発明のメリットは、搭載するバッテリ容量を先に決めて、搭載バッテリ容量を元にストレージシステムの性能が決まるため、ストレージ装置の使用用途(データリードが多い使用環境など)によってはバッテリ容量を少なくできることである。また、搭載するバッテリ容量を少なくできるのでストレージシステム100での実装スペースの削減による小型化と部品数低減によるコスト削減を実現できる。
<バックアップ処理2>
 図12は、第2のバックアップ処理を示すフローチャート図である。
 S1201で、バックアップ制御マイコン7は、メモリコントローラ11の管理テーブル1格納用内部RAM14の内容を確認する。S1202で、バックアップ制御マイコン7は、メモリライト完了フラグ805が“1(ON)”にセットされている領域が存在するかを判断する。存在しない場合(No)、バックアップ制御マイコン7は再びS1201を実行し、存在する場合(Yes)はS1203を実行する。
 S1203で、バックアップ制御マイコン7は、メモリライト完了フラグ805が“1(ON)”にセットされている領域を不揮発メモリ6へ転送しバックアップする。S1204で、バックアップ制御マイコン7は、転送が完了した領域の確保フラグ804及びメモリライト完了フラグ805をクリアする。S1205で、バックアップ制御マイコン7は、メモリコントローラ11の未バックアップ領域計算用カウンタ115を、不揮発メモリ6に転送しバックアップした領域分(容量分)をデクリメントする。
<バックアップ対応関係>
 図13は、データバックアップ時の揮発性メモリと不揮発メモリとの対応関係を示す図である。
(a1)未バックアップ領域発生
 ストレージシステム100は、キャッシュメモリ5(DIMM:Dual Inline Memory Module)と同じ容量の不揮発メモリ6を備え、両方のメモリが0x00000000から0xffffffff(16進数)までのアドレス空間に配置される。キャッシュメモリ5に未バックアップ領域131が発生すると、バックアップ制御用マイコン7がそれを検知する。
(a2)バックアップ1
 バックアップ制御用マイコン7は、検知したキャッシュメモリ5の未バックアップ領域131を不揮発メモリ6の同じアドレス領域にコピーしてバックアップする。このコピー動作で、バックアップ制御用マイコン7は、キャッシュメモリ5の内容と不揮発メモリ6の内容とを一致させる。
(a3)新規未バックアップ領域発生
 キャッシュメモリ5に新規未バックアップ領域132が発生すると、(a1)と同様、バックアップ制御用マイコン7がそれを検知する。
(a4)バックアップ2
 バックアップ制御用マイコン7は、検知したキャッシュメモリ5の新規未バックアップ領域132を不揮発メモリ6の同じアドレス領域にコピーしてバックアップする。バックアップ制御用マイコン7が、キャッシュメモリ5の新規未バックアップ領域発生毎に不揮発メモリ6へバックアップし両方メモリの内容を一致させる。
<停電時及び復電時のデータコピー処理の概念>
 図14は、停電時及び復電時のデータコピー処理の概念を示す図である。
(b1)停電発生時
 停電発生時、キャッシュメモリ5に未バックアップ領域141が存在する。
(b2)バックアップ実施時(バッテリ給電)
 バックアップ制御用マイコン7が未バックアップ領域141のみ不揮発メモリ6にコピーしバックアップする。これで、キャッシュメモリ5の内容と不揮発メモリ6の内容とは、完全に一致する。
(b3)電源OFF
 電源がOFFされると揮発性メモリであるキャッシュメモリ5のデータは揮発し、消失する。しかしながら、不揮発メモリ6にデータがバックアップされている。
(b4)復電後にリストア(書き戻し)
 外部電源が復電した後、不揮発メモリ6にバックアップしたデータ(アドレス0x00000000から0xffffffffまでの全データ)を、キャッシュメモリ5にコピーするリストア(書き戻し)動作をバックアップ制御用マイコン7が実行する。こうすることで、キャッシュメモリ5の内容を停電発生前の状態に復帰できる。
<停電時のバックアップ処理1>
 図15は、停電時のバックアップ処理1を示すフローチャート図である。
 S1501で、バックアップ制御用マイコン7は、ASIC1の管理テーブル1格納レジスタ112ないし管理テーブル1格納用内部RAM14の内容を確認する。S1502で、バックアップ制御用マイコン7は、管理テーブル1 81でメモリライト完了フラグ805がセットされている領域(未バックアップ領域)が存在するかを判断する。存在すれば(Yes)、バックアップ制御用マイコン7はS1503を実行し、存在しなければ(No)、バックアップ処理を終了する。
 S1503で、バックアップ制御用マイコン7は、当該領域(未バックアップ領域)を不揮発メモリ6へ転送する。S1504で、バックアップ制御用マイコン7は、転送した領域の確保フラグ804とメモリライト完了フラグ805をクリアする。そして、バックアップ制御用マイコン7は、再びS1501以降の処理を未バックアップ領域がなくなるまで実行する。これで、図14の(b2)に示したように、キャッシュメモリ5の内容と不揮発メモリ6の内容を一致させることができ、電源OFF時にキャッシュメモリ5の内容が揮発(消失)しても問題ない。
<システム全体3>
 図16は、第3のストレージシステムの全体ブロック図である。図16は、BSY信号がアサートされている状態ではメモリコントローラ11がルーティング部12からのパケット(ライトコマンド及びライトデータ)を受け付けない制御方式3を示す。なお、図16では、図2との相違点のみ説明する。
 管理テーブル2格納用内部RAM15は、管理テーブル1格納用内部RAM14相当でメモリコントローラ11へライトアクセスされたパケットのヘッダを格納する。受信バッファ116は、ルーティング部12からのパケットを一時的に保持するメモリ(レジスタ)である。シーケンサ117は、キャッシュメモリ5へのアクセスを制御するハードウェア(論理回路)である。シーケンサ117は、BSY信号113がアサートされている状態では、受信バッファ116の内容をキャッシュメモリ5へ書き込まない。
 また、BSY信号113は、図4で示したようにバッテリ充電量レジスタ111の設定値から計算したバックアップ可能領域(バックアップ可能データ容量ないしバックアップ可能時間)が、未バックアップ領域(バックアップ必要データ容量ないしバックアップ必要時間)より小さい場合にアサートされる。なお、未バックアップ領域は後述の図17に示す管理テーブル2の未バックアップフラグが“1(ON)”である領域のメモリライトアクセスヘッダに含まれる転送長から算出された容量の合計となる。
<管理テーブル2>
 図17は、領域確保とバックアップの状態を管理する管理テーブル2の構成例を示す図である。管理テーブル2 170は、領域を一意に識別する領域ID1701、開始アドレス及び転送長を含むメモリライトアクセスヘッダ1702、未バックアップ領域であるかを判別する未バックアップフラグ1703を備える。
 管理テーブル2 170は、メモリコントローラ11へライトアクセスされたパケットのヘッダを未バックアップフラグ1703がクリアされている(“0(OFF)”状態)エントリに格納し、未バックアップフラグ1703を“1(ON)”状態にセットする。なお、未バックアップ領域の容量は未バックアップフラグ1703が“1(ON)”である領域のメモリライトアクセスヘッダ1702に含まれる転送長から算出された容量の合計となる。また、バックアップ制御用マイコン7は未バックアップフラグ1703がセットされているヘッダのデータを不揮発メモリ6へ転送完了したら、メモリライトアクセスヘッダ1702及び未バックアップフラグ1703の内容をクリアする。
<メモリ容量確保処理3>
 図18は、第3のメモリ容量確保処理を示すフローチャート図である。図18のS1801からS1804の処理は、図9のS901からS904までの処理と同じである。S1801からS1804の処理を完了すると、MP3はキャッシュメモリ5へのデータ転送を開始する。メモリコントローラ11は、MP3からデータを受信バッファ116で受け付ける。但し、BSY信号113がアサート状態ではメモリコントローラ11は、受信バッファ116のデータをキャッシュメモリ5に転送しないようシーケンサ117を制御する。なお、BSY信号は図4に示すハードウェア(論理回路)にて生成される。
<バックアップ処理3>
 図19は、第3のバックアップ処理を示すフローチャート図である。
 S1901で、バックアップ制御マイコン7は、メモリコントローラ11の管理テーブル2格納用内部RAM15の内容を確認する。S1902で、バックアップ制御マイコン7は、未バックアップフラグ1703が“1(ON)”にセットされている領域が存在するかを判断する。存在しない場合(No)、バックアップ制御マイコン7は再びS1901を実行し、存在する場合(Yes)はS1903を実行する。
 S1903で、バックアップ制御マイコン7は、未バックアップフラグ1703が“1(ON)”にセットされている領域を不揮発メモリ6へ転送しバックアップする。S1904で、バックアップ制御マイコン7は、転送が完了した領域の未バックアップフラグ1703をクリアするとともに、メモリライトアクセスヘッダ1702の内容を削除する。S1905で、バックアップ制御マイコン7は、メモリコントローラ11の未バックアップ領域計算用カウンタ115を不揮発メモリ6に転送しバックアップした領域分(容量分)をデクリメントする。
 なお、本制御方式3では、BSY信号レジスタ114を設ける必要がなくMP3によるBSY信号レジスタ114の設定内容の確認処理も不要であるので、ストレージシステム100全体の処理性能を向上できる。
<停電時のバックアップ処理2>
 図20は、停電時のバックアップ処理2を示すフローチャート図である。
 S2001で、バックアップ制御用マイコン7は、ASIC1の管理テーブル2格納用内部RAM15の内容を確認する。S2002で、バックアップ制御用マイコン7は、管理テーブル1 81で未バックアップフラグ1703がセットされている領域(未バックアップ領域)が存在するかを判断する。存在すれば(Yes)、バックアップ制御用マイコン7はS2003を実行し、存在しなければ(No)、バックアップ処理を終了する。
 S2003で、バックアップ制御用マイコン7は、当該領域(未バックアップ領域)を不揮発メモリ6へ転送する。S2004で、バックアップ制御用マイコン7は、転送した領域の未バックアップフラグ1703をクリアする。そして、バックアップ制御用マイコン7は、再びS2001以降の処理を未バックアップ領域がなくなるまで実行する。これで、図14の(b2)に示したように、キャッシュメモリ5の内容と不揮発メモリ6の内容を一致させることができ、電源OFF時にキャッシュメモリ5の内容が揮発(消失)しても問題ない。
 以上説明したように、本発明のストレージシステムでは、揮発メモリにホスト計算機ないしシステムドライブからのデータを格納する際に、内部電源で不揮発メモリに退避できる領域を格納データ容量分、予め確保する。そして、内部電源で退避できる領域を確保できた後に、当該領域にホスト計算機ないしシステムドライブからのデータを不揮発メモリに格納する。そのため、停電等の外部電源障害発生時のデータ消失を防止できる。
 なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
 また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。
 各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置いてもよい。
 また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
 1:ASIC、2:ホスト計算機、3:MP、4:HBA、5:キャッシュメモリ、6:不揮発メモリ、7:バックアップ制御用マイクロコントローラ、8:バッテリ、9:システムドライブ、11:メモリコントローラ、12:ルーティング部、13:DMAコントローラ、14:管理テーブル1格納用内部RAM、15:管理テーブル2格納用内部RAM、80:管理テーブル1、91:HDD、111:バッテリ充電量レジスタ、112:管理テーブル1格納レジスタ、113:BSY信号、114:BSY信号レジスタ、115:未バックアップ領域計算用カウンタ、116:受信バッファ、117:シーケンサ、170:管理テーブル2

Claims (10)

  1.  ホスト計算機に接続するストレージシステムであって、
     前記ホスト計算機のデータを格納する記憶ドライブと、
     前記ホスト計算機ないし前記記憶ドライブのデータを記憶する揮発メモリと、
     前記揮発メモリの内容をバックアップする不揮発メモリと、
     前記揮発メモリのデータを前記不揮発メモリへ退避を制御するプロセッサと、
     外部電源からの電力供給遮断時に前記ストレージシステムに電力を供給する充放電可能な内部電源とを備え、
     前記プロセッサは、
     前記ホスト計算機ないし前記記憶ドライブから前記揮発メモリへのデータ書き込み時に書き込みデータ容量を算出し、
     前記内部電源に蓄積された電力充電量を計測し、計測された前記電力充電量に基づいて、前記外部電源からの電力供給遮断時に前記内部電源によって前記不揮発メモリへ退避可能なデータ容量を算出し、
     前記書き込みデータ容量が前記退避可能なデータ容量より小さい場合、前記揮発メモリに書き込みデータ領域を確保してデータ書き込みを行う
     ことを特徴とするストレージシステム。
  2.  請求項1記載のストレージシステムであって、前記書き込みデータ容量が前記退避可能なデータ容量より大きい場合は、前記揮発メモリにデータ書き込みを行わない
     ことを特徴とするストレージシステム。
  3.  請求項1記載のストレージシステムであって、前記プロセッサは、前記書き込みデータ容量から前記不揮発メモリへのデータ退避必要時間を算出し、前記退避可能なデータ容量から前記不揮発メモリへのデータ退避可能時間を算出し、前記データ退避必要時間よりデータ退避可能時間が大きい場合は、前記揮発メモリに書き込みデータ領域を確保してデータ書き込みを行う
     ことを特徴とするストレージシステム。
  4.  請求項1記載のストレージシステムであって、前記プロセッサは、前記書き込みデータ容量が前記退避可能なデータ容量より小さい場合に、前記揮発メモリに前記書き込みデータを格納する領域を確保し、前記確保した領域を示す領域情報を前記プロセッサ内部に格納する
     ことを特徴とするストレージシステム。
  5.  請求項4記載のストレージシステムであって、前記領域情報は、前記領域を一意に識別する領域IDと、前記領域への書き込み開始アドレス及び書き込み終了アドレス、前記領域の確保状態を示す確保フラグ、前記書き込みデータを前記領域への格納状態を示す書き込み完了フラグより構成される
     ことを特徴とするストレージシステム。
  6.  請求項5記載のストレージシステムであって、
     前記領域情報の前記領域への書き込み開始アドレスと前記書き込み終了アドレスと前記確保フラグとは前記書き込みデータを格納する領域の確保で設定され、
     前記書き込み完了フラグは、前記領域へのデータ書き込み完了で設定され、
     前記領域情報は、前記不揮発メモリへのデータ退避完了で削除される
      ことを特徴とするストレージシステム。
  7.  請求項6記載のストレージシステムであって、前記プロセッサは、
     前記内部電源に蓄積された電力充電量を計測し、前記揮発メモリから前記不揮発メモリへのデータ退避を行うバックアップ機能部と、
     前記揮発メモリと前記不揮発メモリとの間のデータアクセスと、前記ホスト計算機ないし前記記憶ドライブと前記揮発メモリとの間のデータアクセスを行うダイレクトメモリアクセス機能部と、
     前記揮発メモリへのデータアクセスを行うメモリアクセス機能部とを備える
     ことを特徴とするストレージシステム。
  8.  ホスト計算機に接続するストレージシステムの制御方法であって、
     前記ホスト計算機のデータを格納する記憶ドライブと、
     前記ホスト計算機ないし前記記憶ドライブのデータを記憶する揮発メモリと、
     前記揮発メモリの内容をバックアップする不揮発メモリと、
     前記揮発メモリのデータを前記不揮発メモリへ退避を制御するプロセッサと、
     外部電源からの電力供給遮断時に前記ストレージシステムに電力を供給する充放電可能な内部電源とを備え、
     前記プロセッサは、
     前記ホスト計算機ないし前記記憶ドライブから前記揮発メモリへのデータ書き込み時に書き込みデータ容量を算出し、
     前記内部電源に蓄積された電力充電量を計測し、計測された前記電力充電量に基づいて、前記外部電源からの電力供給遮断時に前記内部電源によって前記不揮発メモリへ退避可能なデータ容量を算出し、
     前記書き込みデータ容量が前記退避可能なデータ容量より小さい場合、前記揮発メモリに書き込みデータ領域を確保してデータ書き込みを行う
     ことを特徴とするストレージシステムの制御方法。
  9.  請求項8記載のストレージシステムの制御方法であって、前記書き込みデータ容量が前記退避可能なデータ容量より大きい場合は、前記揮発メモリにデータ書き込みを行わない
     ことを特徴とするストレージシステムの制御方法。
  10.  請求項8記載のストレージシステムの制御方法であって、前記プロセッサは、前記書き込みデータ容量から前記不揮発メモリへのデータ退避必要時間を算出し、前記退避可能なデータ容量から前記不揮発メモリへのデータ退避可能時間を算出し、前記データ退避必要時間よりデータ退避可能時間が大きい場合は、前記揮発メモリに書き込みデータ領域を確保してデータ書き込みを行う
     ことを特徴とするストレージシステムの制御方法。
PCT/JP2014/056604 2014-03-13 2014-03-13 ストレージシステム及び制御方法 WO2015136655A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2014/056604 WO2015136655A1 (ja) 2014-03-13 2014-03-13 ストレージシステム及び制御方法
US14/424,926 US9690664B2 (en) 2014-03-13 2014-03-13 Storage system and method for controlling the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/056604 WO2015136655A1 (ja) 2014-03-13 2014-03-13 ストレージシステム及び制御方法

Publications (1)

Publication Number Publication Date
WO2015136655A1 true WO2015136655A1 (ja) 2015-09-17

Family

ID=54071132

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/056604 WO2015136655A1 (ja) 2014-03-13 2014-03-13 ストレージシステム及び制御方法

Country Status (2)

Country Link
US (1) US9690664B2 (ja)
WO (1) WO2015136655A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160202749A1 (en) * 2015-01-13 2016-07-14 Netlist, Inc. System and method for determining charge of a secondary power supply for a memory system
CN104881334B (zh) * 2015-02-06 2018-04-10 北京华胜天成软件技术有限公司 缓存数据的防掉电保护方法及系统
US10078448B2 (en) * 2015-07-08 2018-09-18 Samsung Electronics Co., Ltd. Electronic devices and memory management methods thereof
KR102374637B1 (ko) * 2015-07-08 2022-03-17 삼성전자주식회사 컴퓨팅 시스템 및 그것의 메모리 관리 방법
US20170031601A1 (en) * 2015-07-30 2017-02-02 Kabushiki Kaisha Toshiba Memory system and storage system
US9977478B1 (en) * 2016-12-27 2018-05-22 Intel Corporation Memory device and method with backup energy reservoir to write in-flight data in non-volatile memory
US10705590B2 (en) * 2017-11-28 2020-07-07 Google Llc Power-conserving cache memory usage
US11403159B2 (en) 2018-01-31 2022-08-02 Hewlett Packard Enterprise Development Lp Device carrier assemblies
US11132042B2 (en) 2018-01-31 2021-09-28 Hewlett Packard Enterprise Development Lp Drive carrier assemblies
US10908825B2 (en) * 2018-03-29 2021-02-02 Intel Corporation SSD with persistent DRAM region for metadata
CN111192607B (zh) * 2019-12-29 2022-07-15 浪潮(北京)电子信息产业有限公司 一种存储系统掉电保护方法、装置及相关组件

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011159124A (ja) * 2010-02-01 2011-08-18 Fujitsu Ltd ディスクアレイ装置及びディスクアレイ装置制御方法
JP2012005170A (ja) * 2010-06-14 2012-01-05 Hitachi Computer Peripherals Co Ltd ストレージ装置及び充電制御方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2256735B (en) * 1991-06-12 1995-06-21 Intel Corp Non-volatile disk cache
US20040175598A1 (en) * 2002-12-02 2004-09-09 Bliven David C. Fuel cell power supply for portable computing device and method for fuel cell power control
JP4662550B2 (ja) * 2005-10-20 2011-03-30 株式会社日立製作所 ストレージシステム
JP4952679B2 (ja) 2008-07-31 2012-06-13 富士通株式会社 ストレージ管理方法、ストレージ制御装置及びストレージシステム
WO2013054374A1 (en) * 2011-10-12 2013-04-18 Hitachi, Ltd. Storage system, and data backup method and system restarting method of storage system
JP2013088928A (ja) 2011-10-14 2013-05-13 Hitachi Ltd 計算機及びデータ退避方法
US9063864B2 (en) * 2012-07-16 2015-06-23 Hewlett-Packard Development Company, L.P. Storing data in presistent hybrid memory
TW201441927A (zh) * 2014-07-08 2014-11-01 Nexcom Int Co Ltd 一種固態硬碟裝置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011159124A (ja) * 2010-02-01 2011-08-18 Fujitsu Ltd ディスクアレイ装置及びディスクアレイ装置制御方法
JP2012005170A (ja) * 2010-06-14 2012-01-05 Hitachi Computer Peripherals Co Ltd ストレージ装置及び充電制御方法

Also Published As

Publication number Publication date
US20160259726A1 (en) 2016-09-08
US9690664B2 (en) 2017-06-27

Similar Documents

Publication Publication Date Title
WO2015136655A1 (ja) ストレージシステム及び制御方法
US10289556B2 (en) Techniques to perform power fail-safe caching without atomic metadata
US10095438B2 (en) Information handling system with persistent memory and alternate persistent memory
US8762643B2 (en) Control method for disk array apparatus and disk array apparatus
US8880791B2 (en) Isolation switching for backup of registered memory
KR101243999B1 (ko) 반도체 저장소 장치를 위한 알람 기반 백업 및 복구
JP6902555B2 (ja) 複数のストレージ装置を含むストレージアレイ内のデータの移行
JP2013257801A (ja) サーバコンピュータおよびドライブ制御装置
WO2019120133A1 (zh) 一种基于固态硬盘的日志文件的读写方法及固态硬盘
TWI670601B (zh) 斷電保護方法及系統
KR20220068914A (ko) 이용가능한 에너지에 기초한 적응형 디바이스 거동
US10545882B2 (en) Systems and methods for load-balancing cache flushes to non-volatile memory
US20170052794A1 (en) Systems and methods to optimize boot for information handling system comprising persistent memory
KR102168193B1 (ko) 초과 공급 메모리 장치들을 통합하기 위한 시스템 및 방법
JP6094677B2 (ja) 情報処理装置、メモリダンプ方法、およびメモリダンププログラム
WO2017114236A1 (zh) 充电方法、装置及固态硬盘
US20160196085A1 (en) Storage control apparatus and storage apparatus
KR20170124952A (ko) 전력이 공급되는 영구 저장 장치를 통한 호스트 메모리 보호
JP2012078941A (ja) 情報処理装置及びキャッシュ制御方法
US20190073147A1 (en) Control device, method and non-transitory computer-readable storage medium
US8850087B2 (en) Storage device and method for controlling the same
US9836359B2 (en) Storage and control method of the same
CN107515723B (zh) 用于管理存储系统中的存储器的方法和系统
WO2016092610A1 (ja) ストレージ装置及びそのデータバックアップ方法
CN109542490A (zh) 硬件辅助固件下载同步

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 14424926

Country of ref document: US

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

Ref document number: 14885465

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14885465

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP