[go: up one dir, main page]

JP5691311B2 - Save processing device, save processing method, and save processing program - Google Patents

Save processing device, save processing method, and save processing program Download PDF

Info

Publication number
JP5691311B2
JP5691311B2 JP2010199000A JP2010199000A JP5691311B2 JP 5691311 B2 JP5691311 B2 JP 5691311B2 JP 2010199000 A JP2010199000 A JP 2010199000A JP 2010199000 A JP2010199000 A JP 2010199000A JP 5691311 B2 JP5691311 B2 JP 5691311B2
Authority
JP
Japan
Prior art keywords
data
information
priority
management table
cache
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
JP2010199000A
Other languages
Japanese (ja)
Other versions
JP2012058840A (en
Inventor
洋平 布
洋平 布
新菜 塚本
新菜 塚本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2010199000A priority Critical patent/JP5691311B2/en
Publication of JP2012058840A publication Critical patent/JP2012058840A/en
Application granted granted Critical
Publication of JP5691311B2 publication Critical patent/JP5691311B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、退避処理装置に関し、例えば、RAID装置の停電発生に伴う、バックアップ処理に要する処理時間を短縮する退避処理装置等に関する。   The present invention relates to an evacuation processing apparatus, for example, an evacuation processing apparatus that shortens the processing time required for backup processing when a power failure occurs in a RAID apparatus.

複数のHDD(Hard Disk Drive)を組み合わせ、高速・大容量・高信頼性に優れたディスクシステムを構築する技術としてRAID(Redundant Arrays of Independent(Inexpensive)Disks)が広く知られている。   RAID (Redundant Arrays of Independent (Inexpensive) Disks) is widely known as a technique for combining a plurality of HDDs (Hard Disk Drives) and constructing a disk system excellent in high speed, large capacity, and high reliability.

一般に、RAID装置は、その上位装置(例えば、ホストコンピュータ、以下、ホストとする)からのデータアクセスに要する処理時間を短縮するために、キャッシュメモリを用いたユーザデータのリード・ライトが行われている。   Generally, in a RAID device, user data is read / written using a cache memory in order to reduce processing time required for data access from a host device (for example, a host computer, hereinafter referred to as a host). Yes.

このキャッシュメモリには、通常、DRAM(Dynamic Random Access Memory)・SRAM(Static Random Access Memory)といった半導体の記憶装置が利用されている。   As the cache memory, a semiconductor storage device such as a DRAM (Dynamic Random Access Memory) or SRAM (Static Random Access Memory) is usually used.

そして、RAID装置は、ホストからユーザデータのリード要求を受け付けた場合に、キャッシュメモリ(以下、単にキャッシュとする)からユーザデータを検索し、リード要求に対応するユーザデータを取得したら、取得したキャッシュデータをホストに通知する。   When the RAID device receives a user data read request from the host, the RAID device retrieves the user data from a cache memory (hereinafter simply referred to as a cache) and acquires the user data corresponding to the read request. Notify the host of the data.

一方、キャッシュからユーザデータを取得しなかった場合、ハードディスク装置(以下、単にディスクとする)に記憶されているユーザデータを取得し、キャッシュに書込みを行う。   On the other hand, when user data is not acquired from the cache, user data stored in a hard disk device (hereinafter simply referred to as a disk) is acquired and written to the cache.

また、ユーザデータのライト要求を受け付けた場合には、キャッシュにユーザデータを記憶した時点で、ライト処理が完了した旨をホストへ通知する。その後、所定の条件を満たした時点で、キャッシュに記憶したユーザデータをディスクに記憶する。   When a user data write request is received, the host is notified of the completion of the write process when the user data is stored in the cache. Thereafter, when a predetermined condition is satisfied, the user data stored in the cache is stored in the disk.

ところで、上述したキャッシュは、揮発性の半導体の記憶装置が利用されていることから、キャッシュへの電源供給がなくなれば、キャッシュのユーザデータが消去されてしまう。このため、停電発生時には、キャッシュ上の全データを不揮発性の記憶装置(例:NANDフラッシュ、コンパクトフラッシュ(登録商標)等)に退避させ、バックアップする必要がある。   By the way, since the cache described above uses a volatile semiconductor storage device, the user data in the cache is erased if the power supply to the cache is lost. For this reason, when a power failure occurs, it is necessary to back up all data on the cache in a non-volatile storage device (eg, NAND flash, compact flash (registered trademark), etc.).

例えば、図14に示すように、停電発生時に、RAID装置20は、キャッシュ24に記憶されているキャッシュデータ24aを、リードデータおよびライトデータを区別することなく、NANDフラッシュ23に退避させる。   For example, as shown in FIG. 14, when a power failure occurs, the RAID device 20 saves the cache data 24a stored in the cache 24 in the NAND flash 23 without distinguishing between read data and write data.

また、停電が発生すると、RAID装置20への電力供給が、PSU(Power Supply
Unit)28からSCU(System Capacity Unit)27に切替えられ、RAID装置20は、SCU27に蓄えられている電力を使用して、上述した退避処理を行う。
In addition, when a power failure occurs, the power supply to the RAID device 20 is changed to PSU (Power Supply).
The unit 20 is switched to a system capacity unit (SCU) 27, and the RAID device 20 performs the above-described saving process using the power stored in the SCU 27.

なお、停電発生時のライトバック(ライトデータのハードディスクへの書込み)処理を効率的に行うとともに、停電時の省電力化を図る技術(例えば、特許文献1参照)や、ディスクのアクセス情報に基づき、論理ディスク装置における物理ディスク装置への再配置を行う技術が知られている(例えば、特許文献2参照)。   Based on a technique for efficiently performing a write-back (writing of write data to a hard disk) at the time of a power failure and saving power at the time of the power failure (for example, refer to Patent Document 1) and access information of the disk. A technique for relocating a logical disk device to a physical disk device is known (see, for example, Patent Document 2).

特開平9−330277号公報JP-A-9-330277 特開2006−59374号公報JP 2006-59374 A

しかしながら、上述した従来の技術では、全てのキャッシュデータをバックアップの対象としており、バックアップ処理に、必要以上の処理時間が掛かってしまう場合があった。   However, in the above-described conventional technology, all cache data is targeted for backup, and backup processing may take longer than necessary.

例えば、図14に示したキャッシュ24に、膨大なキャッシュデータ24aが記憶されている状況で、RAID装置20に停電が発生した場合、バックアップ処理に、必要以上の処理時間が掛かってしまう場合があった。   For example, in the situation where a large amount of cache data 24a is stored in the cache 24 shown in FIG. 14, if a power failure occurs in the RAID device 20, the backup processing may take more processing time than necessary. It was.

この場合、SCU27の電力供給時間内に、キャッシュデータ24aのNANDフラッシュ23への退避が完了せず、一部のキャッシュデータが消失してしまう場合がある。   In this case, within the power supply time of the SCU 27, saving of the cache data 24a to the NAND flash 23 may not be completed, and some cache data may be lost.

開示の技術は、上記に鑑みてなされたものであって、バックアップに要する処理時間を短縮する退避処理装置等を提供することを目的とする。   The disclosed technique has been made in view of the above, and an object thereof is to provide an evacuation processing apparatus or the like that shortens the processing time required for backup.

本技術は、上記従来の課題に鑑み、キャッシュメモリへのデータ記憶に際し、データの種別に応じて、不揮発性メモリに退避するデータか否かの情報、および不揮発性メモリに退避するデータの退避の優先順位を決定するための情報を管理テーブルに記憶させる管理手段と、停電発生時に、管理テーブルに記憶されている、不揮発性メモリに退避するデータか否かの情報及び不揮発性メモリに退避するデータの退避の優先順位を決定するための情報に基づき、キャッシュメモリに記憶されているデータのうち不揮発性メモリに退避するデータを、優先順位に従って優先度の高いデータから優先度の低いデータへ順番に不揮発性メモリに書き込む処理を実行する停電処理部とを設けたものである。 In view of the above-described conventional problems, the present technology, when storing data in the cache memory, according to the type of data, information on whether or not the data is saved in the nonvolatile memory, and saving of the data saved in the nonvolatile memory Management means for storing information for determining priority in the management table, information on whether or not the data is saved in the nonvolatile memory and data saved in the nonvolatile memory when a power failure occurs based on the information for determining the priority of saving the data to be saved in non-volatile memory of the data stored in the cache memory, in order from the highest priority data to lower priority data according to the priority And a power failure processing unit that executes a process of writing in the nonvolatile memory.

本願技術によれば、停電発生におけるキャッシュメモリのバックアップに要する処理時間を短縮し、バックアップ速度を向上させる事ができるという効果を奏する。   According to the present technology, it is possible to shorten the processing time required for the backup of the cache memory in the event of a power failure and to improve the backup speed.

本実施の形態に示すRAID装置の構成を示す機能ブロック図である。It is a functional block diagram which shows the structure of the RAID apparatus shown to this Embodiment. 本実施の形態のNANDフラッシュのデータ構造の一例を示す図である。It is a figure which shows an example of the data structure of the NAND flash of this Embodiment. 本実施の形態に示すキャッシュメモリのデータ構造の一例を示す図である。It is a figure which shows an example of the data structure of the cache memory shown in this Embodiment. 本実施の形態に示すFPGAの構成を示す機能ブロック図である。It is a functional block diagram which shows the structure of FPGA shown in this Embodiment. 本実施の形態に示すバックアップ管理テーブルのデータ構造の一例を示す図である。It is a figure which shows an example of the data structure of the backup management table shown to this Embodiment. 本実施の形態に示す不良ブロック管理テーブルのデータ構造の一例を示す図である。It is a figure which shows an example of the data structure of the bad block management table shown to this Embodiment. 本実施の形態に示すバックアップ完了フラグのデータ構造の一例を示す図である。It is a figure which shows an example of the data structure of the backup completion flag shown in this Embodiment. 本実施の形態の退避処理装置において、通電時における処理を示すフローチャートである。6 is a flowchart showing processing during energization in the save processing device of the present embodiment. 本実施の形態の退避処理装置において、停電時の処理を示すフローチャートである。It is a flowchart which shows the process at the time of a power failure in the evacuation processing apparatus of this Embodiment. 本実施の形態の退避処理装置において、停電時の処理を説明する説明図である。It is explanatory drawing explaining the process at the time of a power failure in the evacuation processing apparatus of this Embodiment. 本実施の形態の退避処理装置において、停電時の処理を説明する説明図である。It is explanatory drawing explaining the process at the time of a power failure in the evacuation processing apparatus of this Embodiment. 本実施の形態の退避処理装置において、停電時の処理を説明する説明図である。It is explanatory drawing explaining the process at the time of a power failure in the evacuation processing apparatus of this Embodiment. 本実施の形態の退避処理装置において、停電時の処理を説明する説明図である。It is explanatory drawing explaining the process at the time of a power failure in the evacuation processing apparatus of this Embodiment. 従来技術を説明するための図である。It is a figure for demonstrating a prior art.

以下に、本願の開示する退避処理装置、退避処理方法およびストレージシステムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。   Hereinafter, embodiments of a save processing device, a save processing method, and a storage system disclosed in the present application will be described in detail with reference to the drawings. Note that the present invention is not limited to the embodiments.

次に、本実施の形態に示すRAID装置(Redundant Arrays of Independent(Inexpensive)Disks)について説明する。図1は、本実施の形態に示すRAID装置の構成を示す機能ブロック図である。   Next, the RAID device (Redundant Arrays of Independent (Inexpensive) Disks) shown in the present embodiment will be described. FIG. 1 is a functional block diagram showing a configuration of the RAID device shown in the present embodiment.

図1において、RAID装置200は、複数の上位装置(例えば、ホストコンピュータA、B、C・・・以下、単にホストとする)からの要求に応じて、HDD(Hard Disk Drive)に記憶されている各種ユーザデータやプログラムデータの伝送を行う。また、RAID装置200は、停電発生時には、バックアップに必要とされるキャッシュデータをNAND型メモリに退避する処理を実行する。   In FIG. 1, a RAID device 200 is stored in an HDD (Hard Disk Drive) in response to requests from a plurality of host devices (for example, host computers A, B, C... Various user data and program data are transmitted. Further, when a power failure occurs, the RAID device 200 executes a process of saving cache data required for backup to a NAND memory.

また、RAID装置200は、CM(Controller Module)201と、PSU(Power Supply Unit)202と、HDD(Hard Disk Drive)203a〜203zとを有する。   The RAID device 200 includes a CM (Controller Module) 201, a PSU (Power Supply Unit) 202, and HDDs (Hard Disk Drives) 203a to 203z.

CM201は、キャッシュメモリの管理や、ホストとのインターフェース制御や、各HDDの制御を行う制御部で、NANDフラッシュ201aと、キャッシュ201b、FPGA(Field Programmable Gate Array)201cと、RoC(RAID−on−Chip)201dと、SCU(Super Capacitor Unit)201eと、Exp(エキスパンダ)201fとを有する。   The CM 201 is a control unit that performs cache memory management, host interface control, and HDD control, and includes a NAND flash 201a, a cache 201b, an FPGA (Field Programmable Gate Array) 201c, and a RoC (RAID-on-). (Chip) 201d, SCU (Super Capacitor Unit) 201e, and Exp (Expander) 201f.

NANDフラッシュ201aは、RAID装置200に停電が発生した場合に、キャッシュ201bに記憶されているキャッシュデータがバックアップされるNAND型メモリである。   The NAND flash 201a is a NAND memory in which cache data stored in the cache 201b is backed up when a power failure occurs in the RAID device 200.

なお、NANDフラッシュ201aは、ブロック単位でアクセスされる構造を有し、シーケンシャルライトにて、キャッシュ201bのキャッシュデータが書込まれる。   The NAND flash 201a has a structure that is accessed in units of blocks, and the cache data of the cache 201b is written by sequential writing.

図2は、本実施の形態のNANDフラッシュ201aのデータ構造を示す図である。図2のNANDフラッシュ201aは、複数のブロックa01〜a20を有している。   FIG. 2 is a diagram showing a data structure of the NAND flash 201a of the present embodiment. The NAND flash 201a of FIG. 2 has a plurality of blocks a01 to a20.

このブロックa01〜a20は、各々キャッシュデータを記憶するデータ領域であり、ブロックごとに、キャッシュデータが書込まれる。なお、本実施の形態のNANDフラッシュ201aの1ブロック当たりのデータ領域は、4Mbyteとする。   Each of the blocks a01 to a20 is a data area for storing cache data, and the cache data is written for each block. Note that the data area per block of the NAND flash 201a of the present embodiment is 4 Mbytes.

そして、このブロックa01〜a20のうち、ブロックa01〜a018は、キャッシュ201bのキャッシュデータがバックアップされるデータ格納領域である。また、ブロックa19、a20は、Dirtyか否かを示す情報や、NANDフラッシュ201aが有する不良ブロックを示す情報などが記憶される不良ブロック管理テーブル213B格納領域である。この不良ブロック管理テーブル213B格納領域(ブロックa19.a20)は、RoC201dによって各種データが管理されている。   Of these blocks a01 to a20, blocks a01 to a018 are data storage areas in which the cache data of the cache 201b is backed up. The blocks a19 and a20 are defective block management table 213B storage areas in which information indicating whether or not Dirty, information indicating defective blocks of the NAND flash 201a, and the like are stored. In the storage area (block a19.a20) of the defective block management table 213B, various data are managed by the RoC 201d.

次に、図1のキャッシュ201bについて説明する。キャッシュ201bは、ホストとHDD203a〜203zとの間で転送が行われるユーザデータを一時的に記憶するキャッシュメモリである。なお、上述してきたようにキャッシュ201bに記憶されているユーザデータをキャッシュデータとする。   Next, the cache 201b in FIG. 1 will be described. The cache 201b is a cache memory that temporarily stores user data transferred between the host and the HDDs 203a to 203z. As described above, user data stored in the cache 201b is used as cache data.

図3は、本実施の形態に示すキャッシュメモリのデータ構造の一例を示す図である。図3に示したキャッシュ201bは、キャッシュデータを一時的に記憶する複数のテーブルb01〜b10を有している。   FIG. 3 is a diagram illustrating an example of the data structure of the cache memory described in this embodiment. The cache 201b illustrated in FIG. 3 includes a plurality of tables b01 to b10 that temporarily store cache data.

なお、図3に示した各テーブルb01〜b10は、4Mbyteのユーザデータを保存する容量を有している。また、このユーザデータは64kBのデータ長単位で、RoC201dに管理されるものとする。   Each table b01 to b10 shown in FIG. 3 has a capacity to store 4 Mbytes of user data. This user data is assumed to be managed by RoC 201d in units of 64 kB data length.

また、ユーザデータの一例としては、リードデータとライトデータが挙げられる。「リードデータ」は、HDD203a〜203zのいずれかに記憶されているユーザデータを読み出したデータを一時記憶したものである。   Examples of user data include read data and write data. “Read data” is temporarily stored data obtained by reading user data stored in any of the HDDs 203a to 203z.

ホストからRAID装置200にユーザデータのリード要求があった場合、CM201は、キャッシュ201b内の各テーブルb01〜b10から、リード要求に対応するユーザデータがキャッシュデータを取得できた場合は、取得したキャッシュデータをホストに出力する。   When there is a user data read request from the host to the RAID device 200, the CM 201 acquires the cache data acquired from the tables b01 to b10 in the cache 201b if the user data corresponding to the read request can be acquired. Output data to the host.

一方、キャッシュ201bからキャッシュデータを取得できなかった場合、CM201は、HDD203a等から、リード要求に対応するユーザデータを取得し、取得したユーザデータをキャッシュ201bに複製する。このように、HDD203a等から、リード要求に対応するユーザデータを取得することを以下、「ステージング」とする。   On the other hand, when the cache data cannot be acquired from the cache 201b, the CM 201 acquires user data corresponding to the read request from the HDD 203a or the like, and copies the acquired user data to the cache 201b. In this manner, acquiring user data corresponding to a read request from the HDD 203a or the like is hereinafter referred to as “staging”.

上記したように、リードデータは、HDD203a〜HDD203zから取得したデータであるので、キャッシュ201bから、キャッシュデータがなくなったとしても、HDD203a〜HDD203zからの再取得が可能なデータである。   As described above, since the read data is data acquired from the HDDs 203a to 203z, even if the cache data disappears from the cache 201b, the read data can be reacquired from the HDDs 203a to 203z.

一方、「ライトデータ」は、ホストからRAID装置200へ書込み要求があったユーザデータがキャッシュメモリに一時的に記憶されたものであり、所定の条件を満たした後、各HDDに書込まれる。このため、ライトデータは、HDD203a〜203zのいずれにも書き込まれていないデータの可能性がある。   On the other hand, “write data” is user data for which a write request from the host to the RAID device 200 is temporarily stored in the cache memory, and is written to each HDD after satisfying a predetermined condition. For this reason, the write data may be data that has not been written to any of the HDDs 203a to 203z.

次に、図1の説明に戻り、FPGA201cについて説明する。FPGA201cは、所定のプログラムによって制御される集積回路を示し、DMA(Direct Memory Access)エンジンを有する。   Next, returning to the description of FIG. 1, the FPGA 201c will be described. The FPGA 201c represents an integrated circuit controlled by a predetermined program, and has a DMA (Direct Memory Access) engine.

このDMAエンジンとは、CPU(Central Processing Unit)を介さずに装置とRAM(Random Access Memory)間でデータ転送を行う方式を示し、本実施の形態では、停電時にキャッシュデータをNANDフラッシュ201aに退避・復元するために必要な機能を付加したDMAをFPGA201cに搭載している。   The DMA engine is a method for transferring data between a device and a RAM (Random Access Memory) without going through a CPU (Central Processing Unit). In this embodiment, cache data is saved in the NAND flash 201a at the time of a power failure. A DMA 201 to which functions necessary for restoration are added is installed in the FPGA 201c.

なお、DMAエンジンの一例として、停電時に、キャッシュデータを退避するライトDMA(TRN)、退避データをキャッシュ201bに戻すリードDMA(RCV)、NANDフラッシュ201aのイレースやチェックを行うためのコマンド発行DMA(UCE)等が挙げられる。そして、このDMAは、RoC201dの命令によって、ハードウェア的にデータを転送する。   As an example of the DMA engine, in the event of a power failure, a write DMA (TRN) for saving cache data, a read DMA (RCV) for returning the saved data to the cache 201b, and a command issuing DMA (for performing erase and check of the NAND flash 201a) UCE) and the like. The DMA transfers data in hardware by an instruction of RoC 201d.

このFPGA201cについて図を用いて説明する。図4は、本実施の形態に示すFPGAの構成を示す機能ブロック図である。FPGA201cは、停電発生時、キャッシュ201bの所定データをNANDフラッシュ201aに退避させる処理を実行する。また、FPGA201は、復電時、停電時にNANDフラッシュ201aへ退避させたデータをキャッシュ201bに戻す。   The FPGA 201c will be described with reference to the drawings. FIG. 4 is a functional block diagram showing the configuration of the FPGA shown in the present embodiment. The FPGA 201c executes processing for saving predetermined data in the cache 201b to the NAND flash 201a when a power failure occurs. Further, the FPGA 201 returns the data saved in the NAND flash 201a to the cache 201b at the time of power recovery or power failure.

そして、FPGA201cは、IF(Interface)制御部211と、アクセスコントローラ212と、アクセス管理テーブル213と、TRN214と、IF制御部215とを有する。   The FPGA 201c includes an IF (Interface) control unit 211, an access controller 212, an access management table 213, a TRN 214, and an IF control unit 215.

IF制御部211は、図1に示したRoC201dとTRN214との各種データのやり取りや、このRoC201dと後述するアクセスコントローラ212との各種データのやり取りを制御するインターフェースである。   The IF control unit 211 is an interface that controls the exchange of various data between the RoC 201d and the TRN 214 shown in FIG. 1 and the exchange of various data between the RoC 201d and the access controller 212 described later.

アクセスコントローラ212は、IF制御部211を介して、アクセス管理テーブル213と、RoC201dとの各種データのやり取りを制御する制御部である。   The access controller 212 is a control unit that controls the exchange of various data between the access management table 213 and the RoC 201d via the IF control unit 211.

アクセス管理テーブル213は、バックアップ管理テーブル213aと、上述した不良ブロックを管理する不良ブロック管理テーブル213bとを有する。まず、バックアップ管理テーブル213aのデータ構造について説明する。   The access management table 213 includes a backup management table 213a and a bad block management table 213b for managing the above-described bad blocks. First, the data structure of the backup management table 213a will be described.

図5は、バックアップ管理テーブル213aのデータ構造の一例を示す図である。このバックアップ管理テーブル213aは、図5に示されるように、キャッシュ201bの各テーブルb01〜b10の各々に対応する複数の3bitフラグc01〜c10を有する。   FIG. 5 is a diagram illustrating an example of a data structure of the backup management table 213a. As shown in FIG. 5, the backup management table 213a has a plurality of 3-bit flags c01 to c10 corresponding to the tables b01 to b10 of the cache 201b.

この3bitフラグの各々のビットは、[2]ビットめ、[1]ビットめ、[0]ビットめの3ビットからなり、各々、停電時に、対応するテーブルに記憶されたデータに対し、どのような処理を行なうかを識別するためのフラグであり、本実施の形態における各ビットのフラグは、以下の意味を持つ。   Each bit of the 3-bit flag is composed of 3 bits, ie, [2] bit, [1] bit, and [0] bit. For each of the data stored in the corresponding table at the time of power failure, Is a flag for identifying whether or not to perform the process, and the flag of each bit in the present embodiment has the following meaning.

まず、3ビットフラグの[2]ビットめは、2重書込み(Dual)を行なうか否かを示すビットである。次に、[1]ビットめは、優先度を示すフラグで、フラグが立つもの(即ち1が記憶されているもの)が、立たないものの優先度が低い(Stay)ことを示す。更に、[0]ビットめは、バックアップをスキップするかを判断するフラグで、「1」が立っていれば、停電時、バックアップを行わなくともよいことを示している。   First, the [2] bit of the 3-bit flag is a bit indicating whether or not double writing (Dual) is performed. Next, the [1] -th bit is a flag indicating a priority, and a flag that is set (that is, 1 is stored) indicates that a priority that is not set is low (Stay). Further, the [0] bit is a flag for determining whether to skip the backup, and if “1” is set, it indicates that the backup need not be performed in the event of a power failure.

このバックアップ管理テーブル213aは、RoC201dによって管理される。   This backup management table 213a is managed by the RoC 201d.

次に、図4に示した不良ブロック管理テーブル213bについて説明する。不良ブロック管理テーブル213bは、図2に示したNANDフラッシュ201aの劣化によるライト失敗(Program Fail)、消去失敗(Erace Fail)、リード不可(Load Fail)が発生する不良ブロックを管理するテーブルで、上述したInvalidTableに相当する。そして、RoC201dのファームウェアにて各データが管理される。   Next, the bad block management table 213b shown in FIG. 4 will be described. The bad block management table 213b is a table for managing bad blocks in which a write failure (Program Fail), an erase failure (Erace Fail), and a read failure (Load Fail) due to deterioration of the NAND flash 201a shown in FIG. This corresponds to the invalid table. Each data is managed by the firmware of the RoC 201d.

具体的に図を用いて説明する。図6は、本実施の形態に示す不良ブロック管理テーブル213bのデータ構造の一例を示す図である。本実施の形態における不良ブロック管理テーブル213bは、NANDフラッシュの各ブロックa01〜a20に対応した、項目c01〜c20を有する。この項目は、各々「Dirty」「Invalid」を識別するフラグを有する。   This will be specifically described with reference to the drawings. FIG. 6 is a diagram showing an example of the data structure of the defective block management table 213b shown in the present embodiment. The defective block management table 213b in the present embodiment has items c01 to c20 corresponding to the blocks a01 to a20 of the NAND flash. Each item has a flag for identifying “Dirty” and “Invalid”.

「Dirty」フラグは、バックアップ時に、ユーザデータの転送エラーが発生し、NANDフラッシュ201aへの書込みが正常に終了しなかったか否かを識別するフラグである。   The “Dirty” flag is a flag for identifying whether or not a user data transfer error has occurred at the time of backup and writing to the NAND flash 201a did not end normally.

そして、図6に示すようにフラグ1が立っている場合は、Dirtyな状態を示し、フラグ0の場合は、正常にユーザデータの転送が終了した場合を示す。   As shown in FIG. 6, when the flag 1 is set, the Dirty state is indicated, and when the flag 1 is indicated, the transfer of the user data is normally completed.

「Invalid」フラグは、各NANDフラッシュ201aのブロックが「不良ブロック」であることを識別するためのフラグである。このフラグに「1」が格納されている項目に対応するNANDフラッシュ201aのブロックは、バックアップに使用することができないことを示している。   The “Invalid” flag is a flag for identifying that the block of each NAND flash 201a is a “bad block”. The block of the NAND flash 201a corresponding to the item in which “1” is stored in this flag indicates that it cannot be used for backup.

次に、図4の説明に戻り、TRN214について説明する。TRN214は、キャッシュ201bのユーザデータを退避するDMAを示し、メイン制御部214aと、リード部214bと、エラー制御部214cと、データバッファ部214d1と、CRC生成部214d2と、NANDライト制御部214eとを有する。   Next, returning to the description of FIG. 4, the TRN 214 will be described. The TRN 214 indicates a DMA for saving user data in the cache 201b, and includes a main control unit 214a, a read unit 214b, an error control unit 214c, a data buffer unit 214d1, a CRC generation unit 214d2, and a NAND write control unit 214e. Have

メイン制御部214aは、不良ブロック管理テーブル213bに記憶されているInvalidフラグや、Dirtyフラグの更新を行う処理部である。   The main control unit 214a is a processing unit that updates the Invalid flag and the Dirty flag stored in the bad block management table 213b.

このメイン制御部214aは、アドレス指定部214a1、Invalid判定部214a2、及び、Dirty更新部214a3を有する。   The main control unit 214a includes an address specification unit 214a1, an invalid determination unit 214a2, and a Dirty update unit 214a3.

アドレス指定部214a1は、不良ブロック管理テーブル213bのアドレス管理を行なう。また、Invalid判定部214a2は、不良ブロック管理テーブル213bに記憶されている各項目のInvalidフラグを元に対象となるNANDフラッシュ201aのブロックが不良か否かを判定する。更に、Dirty更新部214a3は、不良ブロック管理テーブル213bに記憶されている各項目のDirtyフラグを更新する。   The address specifying unit 214a1 performs address management of the bad block management table 213b. The invalid determining unit 214a2 determines whether the block of the target NAND flash 201a is defective based on the invalid flag of each item stored in the defective block management table 213b. Furthermore, the Dirty update unit 214a3 updates the Dirty flag of each item stored in the bad block management table 213b.

また、メイン制御部214aは、停電発生時に、キャッシュ201bのリード開始をリード部214bに要求する制御も行なう。   The main control unit 214a also performs control to request the read unit 214b to start reading the cache 201b when a power failure occurs.

次に、リード部214bは、停電発生時に、キャッシュ201bのデータの少なくとも一部を、NANDフラッシュ201aへ退避させる制御部である。   Next, the read unit 214b is a control unit that saves at least part of the data in the cache 201b to the NAND flash 201a when a power failure occurs.

このリード部214bは、フラグ判定部220と、キャッシュアドレス管理部221と、リード制御部222とを有する。   The read unit 214 b includes a flag determination unit 220, a cache address management unit 221, and a read control unit 222.

フラグ判定部220は、図5に示すように、バックアップ完了テーブル220aを有する。このバックアップ完了テーブル220aは、図7に示されるように、[0][1][2]の3bitで形成されている。   The flag determination unit 220 includes a backup completion table 220a as shown in FIG. As shown in FIG. 7, the backup completion table 220a is formed of 3 bits [0] [1] [2].

各々のビットは、それぞれ1回目のバックアップ各々のバックアップ処理が完了したかを示すフラグである。   Each bit is a flag indicating whether or not the backup processing of each first backup has been completed.

フラグ判定部220は、停電時、種類の異なる3回のデータ読み出しを、後述するリード制御部222に指示する。   The flag determination unit 220 instructs the read control unit 222, which will be described later, to read data of three different types during a power failure.

1回目のバックアップ処理は、バックアップ管理テーブル213a内の3bitフラグの[1]ビットめ(Stay)及び[0]ビットめ(skip)に「0」が格納されている3bitフラグに対応した、キャッシュ201bのブロックに記憶されているデータのバックアップ処理である。即ち、1回目のバックアップ処理は、優先順位が低くなく、スキップ対象ではないキャッシュ201bのブロックのデータを、NANDフラッシュ201aへ退避させる処理を行なうものである。   The first backup processing is performed by the cache 201b corresponding to the 3bit flag in which “0” is stored in the [1] bit (Stay) and the [0] bit (skip) of the 3 bit flag in the backup management table 213a. This is a backup process of data stored in the block. That is, the first backup process is a process for saving the data of the block of the cache 201b which is not low in priority and not skipped to the NAND flash 201a.

また、2回目のバックアップ処理は、バックアップ管理テーブル213a内の3bitフラグの[1]ビットめ(Stay)に「1」が格納されている3bitフラグに対応した、キャッシュ201bのブロックに記憶されているデータのバックアップ処理である。即ち、2回目のバックアップ処理は、キャッシュ201bのブロックのデータを、NANDフラッシュ201aへ退避させる処理を行なうものである。   The second backup process is stored in the block of the cache 201b corresponding to the 3 bit flag in which “1” is stored in the [1] bit (Stay) of the 3 bit flag in the backup management table 213a. Data backup processing. That is, the second backup process is a process of saving the block data in the cache 201b to the NAND flash 201a.

更に、3回目のバックアップ処理は、バックアップ管理テーブル213a内の3bitフラグの[2]ビットめ(Dual)に「1」が格納されている3bitフラグに対応した、キャッシュ201bのブロックに記憶されているデータのバックアップ処理である。3回目のバックアップされるデータは、1回目のバックアップ処理にて既にNANDフラッシュ201aに退避されているデータであるので、2度書込みがなされることにとなる。   Further, the third backup process is stored in the block of the cache 201b corresponding to the 3 bit flag in which “1” is stored in the [2] bit (Dual) of the 3 bit flag in the backup management table 213a. Data backup processing. Since the data to be backed up for the third time is data that has already been saved in the NAND flash 201a in the first backup processing, the data is written twice.

キャッシュアドレス管理部221は、キャッシュデータのキャッシュ201bにおける位置を示すキャッシュアドレスを管理し、管理しているキャッシュアドレスをフラグ判定部220に出力する処理部である。   The cache address management unit 221 is a processing unit that manages a cache address indicating the position of cache data in the cache 201 b and outputs the managed cache address to the flag determination unit 220.

リード制御部222は、フラグ判定部220が指示するキャッシュ201bの各テーブルのキャッシュデータの読み出しを行なう。読み出したデータは、エラー制御部214c、データバッファ制御部214d1へ出力する。   The read control unit 222 reads the cache data of each table of the cache 201b instructed by the flag determination unit 220. The read data is output to the error control unit 214c and the data buffer control unit 214d1.

エラー制御部214cは、転送エラーが発生した場合、転送エラーが発生したNANDブロックを識別するアドレスをメイン制御部214aに通知する。メイン制御部214aのDirty更新分214a3は、この通知を受信すると、不良ブロック管理テーブル213bのDirtyフラグの更新を要求する。   When a transfer error occurs, the error control unit 214c notifies the main control unit 214a of an address for identifying the NAND block in which the transfer error has occurred. When the Dirty Update 214a3 of the main control unit 214a receives this notification, it requests an update of the Dirty flag of the bad block management table 213b.

データバッファ部214d1は、リード制御部222から入力されたキャッシュデータのデータを化け防止のために、XOR(排他的論理和)演算を行って、パリティデータを生成し、キャッシュデータにXORパリティを付加する。   The data buffer unit 214d1 generates parity data by performing an XOR (exclusive OR) operation to prevent garbled data of the cache data input from the read control unit 222, and adds the XOR parity to the cache data. To do.

CRC生成部214d2は、CRC(Cyclical Redundancy Check)とAID(AreaID)からなる冗長ビットをユーザデータに付加して、付加したユーザデータを保持するためのバッファを有し、そのバッファに記憶されているユーザデータをNANDライト制御部214eに出力する。   The CRC generation unit 214d2 has a buffer for adding redundant bits made up of CRC (Cyclical Redundancy Check) and AID (Area ID) to user data and holding the added user data, and is stored in the buffer The user data is output to the NAND write control unit 214e.

NANDライト制御部214eは、NANDフラッシュ201aの各ブロックが識別されるアドレスを有し、さらに、IF制御部215を介して、CRC生成部214d2から出力されたユーザデータをNANDフラッシュ201aに出力し、書込みを行う。   The NAND write control unit 214e has an address for identifying each block of the NAND flash 201a, and further outputs the user data output from the CRC generation unit 214d2 to the NAND flash 201a via the IF control unit 215. Write.

さらに、NANDライト制御部214eは、キャッシュデータをNANDフラッシュ201aに書込む際に、転送エラーが発生し、書込みに失敗した場合、対応するブロックの識別データをエラー制御部214cに出力する。   Further, when a transfer error occurs when writing the cache data to the NAND flash 201a and the writing fails, the NAND write control unit 214e outputs the identification data of the corresponding block to the error control unit 214c.

IF制御部215は、TRN214とNANDフラッシュ201aとの各種データのやり取りを制御するインターフェースである。   The IF control unit 215 is an interface that controls the exchange of various data between the TRN 214 and the NAND flash 201a.

図1に示したSCU(Super Capacitor Unit)201eについて補足する。SCU201eは、大容量コンデンサを示し、RAID装置200に停電が発生した際に、バッテリーフリーで、RoC201dに電力を供給する。なお、充電された電力を供給するため、PSU202とは異なり、供給する電力には、限りがあるものとする。   A supplement will be made to the SCU (Super Capacitor Unit) 201e shown in FIG. The SCU 201e indicates a large-capacity capacitor, and supplies power to the RoC 201d in a battery-free manner when a power failure occurs in the RAID device 200. Note that, in order to supply charged power, unlike the PSU 202, the supplied power is limited.

SCU201eは、「電気二重層」(導体に絶縁体をはさみ、電圧をかけると電荷が蓄積する)を利用して物理的に電荷の蓄電を行っている。したがって、化学的に蓄電するバッテリーに比べて充電や、放電による劣化が少なく、電荷の移動速度で充電が行われる。   The SCU 201e physically stores charges by using an “electric double layer” (an insulator is sandwiched between conductors and charges are accumulated when a voltage is applied). Accordingly, the battery is less deteriorated due to charging or discharging than a battery that stores electricity chemically, and charging is performed at a charge transfer rate.

EXP(エキスパンダ)201fは、RoC201dとHDD203a〜HDD203zとの間で送受信されるユーザデータを中継する処理部である。   The EXP (expander) 201f is a processing unit that relays user data transmitted and received between the RoC 201d and the HDD 203a to the HDD 203z.

PSU(Power Supply Unit)202は、外部からRAID装置200へ電力を供給する為の装置で、外部からの電力供給がなくなる、即ち、停電が発生した場合、RAID装置200への電力の供給が停止してしまう。この停電時は、SCU201eが放電することにより、RAID装置200へ電力が供給される。   The PSU (Power Supply Unit) 202 is a device for supplying power to the RAID device 200 from the outside. When the power supply from the outside is lost, that is, when a power failure occurs, the power supply to the RAID device 200 is stopped. Resulting in. At the time of this power failure, the SCU 201e is discharged to supply power to the RAID device 200.

HDD203a〜HDD203zは、RAIDグループを構成し、高速性や安全性のレベルに応じて、データが振り分けられており、ユーザデータの書込みやプログラムを記憶する記憶媒体(ディスク)等を有する。   The HDD 203a to HDD 203z constitute a RAID group, and data is distributed according to the high speed and safety level, and includes a storage medium (disk) for storing user data and storing programs.

次に、本実施の形態のRAID装置の通電時の処理について図8を用いて説明する。   Next, processing when the RAID apparatus according to the present embodiment is energized will be described with reference to FIG.

まず、本実施の形態のRAID装置200のRoC201dは、図示しないホストからのリクエストを受信する(ステップS1001)と、リクエストの内容がリード要求か否かを判定する(S1002)。   First, when the RoC 201d of the RAID device 200 according to the present embodiment receives a request from a host (not shown) (step S1001), it determines whether or not the content of the request is a read request (S1002).

S1002にて、ホストから受信したリクエストがリード要求であった場合、RoC201dは、PSU202のリード要求に含まれるHDD203a〜203z内のアクセス位置を示すディスクアドレスを取得する。そしてRoC201dは、このディスクアドレスに対応するデータが、キャッシュ201b内の各テーブルb01〜b10に記憶されているか検索を行う(ステップS1003)。   In S1002, when the request received from the host is a read request, the RoC 201d acquires a disk address indicating the access position in the HDDs 203a to 203z included in the PSU 202 read request. Then, the RoC 201d searches whether the data corresponding to the disk address is stored in each of the tables b01 to b10 in the cache 201b (step S1003).

ここで、RoC201dは、ホストから要求されているデータを、キャッシュ201bのテーブルb01〜10のいずれかから取得できた場合(ステップS1004、Yes)、処理をステップS1008へ移行する。   Here, when the RoC 201d can acquire the data requested from the host from any of the tables b01 to b10 of the cache 201b (step S1004, Yes), the process proceeds to step S1008.

一方、キャッシュ201bからリードデータを取得しなかった場合(ステップS1004、No)、RoC201dは、キャッシュ201bにホストからのリクエストに含まれるディスクアドレスのデータを記憶する為のテーブルを確保する(ステップS1005)。具体的には、RoC201dは、キャッシュ201b内のテーブルb01〜b10に、リクエストに含まれるディスクアドレスのデータを記憶する容量分のデータを記憶するだけの空きテーブル(キャッシュデータが入っていないテーブル)が存在すれば、それを確保する。もし、空きテーブルが存在しなければ、RoC201dは、各テーブルb01〜b10に記憶されているキャッシュデータのうち、記憶した時間が長いデータを記憶したテーブルのデータを、開放して空きテーブルを作ることにより、テーブルの確保を行なう。また、テーブルの開放にあたり、開放するテーブルに対応するバックアップ管理テーブル213aの3bitフラグを全てのビットを「0」に更新する。   On the other hand, when the read data is not acquired from the cache 201b (No in step S1004), the RoC 201d reserves a table for storing the disk address data included in the request from the host in the cache 201b (step S1005). . Specifically, the RoC 201d has free tables (tables that do not contain cache data) in the tables b01 to b10 in the cache 201b that only store data for a capacity for storing the data of the disk address included in the request. If it exists, secure it. If there is no free table, the RoC 201d creates a free table by releasing the data of the table storing the long-time stored data among the cache data stored in the tables b01 to b10. To secure the table. When the table is released, all bits of the 3 bit flag of the backup management table 213a corresponding to the table to be released are updated to “0”.

そして、RoC201dは、FPGA201cに対し、該ステージングの対象となるテーブルを通知する(S1006)。この通知を受信したFPGA201cのメイン制御部214aは、キャッシュアドレス管理部221は、対象テーブルに対応したバックアップ管理テーブル213aの3bitフラグの[0]bitめ、即ち、skipフラグを「1」に更新する。   Then, the RoC 201d notifies the FPGA 201c of the table to be staged (S1006). The main control unit 214a of the FPGA 201c that has received this notification updates the cache address management unit 221 to [0] bit of the 3-bit flag of the backup management table 213a corresponding to the target table, that is, to update the skip flag to “1”. .

その後、RoC201dは、ステージング処理を行なう(S1007)。   Thereafter, the RoC 201d performs staging processing (S1007).

このステージング処理は、具体的には、まず、RoC201dが、Exp201fを介して、HDD203a〜HDD203zからリード要求に含まれていたディスクアドレスのデータを取得する。そして、RoC201dは、キャッシュ201bの確保領域に、取得したデータをコピーすることにより実行される。   Specifically, in this staging process, first, the RoC 201d acquires the data of the disk address included in the read request from the HDD 203a to the HDD 203z via the Exp 201f. The RoC 201d is executed by copying the acquired data to the reserved area of the cache 201b.

そして、RoC201dは、取得したデータをホストへ送信し、ステップS1001の処理へ移行する。   Then, the RoC 201d transmits the acquired data to the host, and proceeds to the process of step S1001.

なお、RoC201dは、S1002の、リード要求の判定処理において、PSU202から受信したリクエストが、リード要求でなかった場合(S1002:NO)、このリクエストがライト要求かを判定する(S1009)。   In the read request determination process in S1002, the RoC 201d determines whether this request is a write request if the request received from the PSU 202 is not a read request (S1002: NO) (S1009).

この処理で、Yes、即ち、ライト要求であると判定した場合(S1009:Yes)、RoC201dは、キャッシュ201bにライト要求に含まれるアドレスと同一アドレスのデータが格納されていないか確認する(S1010)。   If it is determined in this processing that the answer is Yes, that is, a write request (S1009: Yes), the RoC 201d confirms whether data having the same address as the address included in the write request is stored in the cache 201b (S1010). .

ここで、キャッシュデータがないと判定された場合(S1010:No)、RoC201dは、キャッシュ201bのキャッシュ領域の確保処理を行なう(S1011)。この処理は、前述したS1005の処理と同様であるので、説明を省略する。   Here, when it is determined that there is no cache data (S1010: No), the RoC 201d performs a process of securing the cache area of the cache 201b (S1011). Since this process is the same as the process of S1005 described above, a description thereof will be omitted.

次に、RoC201dは、ライト要求が、構成情報などを含む特定領域への書込みかを確認する(S1012)。この確認において、特定領域への書込みであると判断した場合、RoC201dは、FPGA201cへ通知を行なう(S1013)。この通知を受信したFPGA201cのメイン制御部214aは、キャッシュアドレス管理部221に、バックアップ管理テーブル213aのキャッシュ確保領域となったテーブルに対応する3bitフラグの[2]ビットめ(Dual)のフラグを「1」に更新させる。   Next, the RoC 201d confirms whether the write request is a write to a specific area including configuration information or the like (S1012). In this confirmation, when it is determined that the writing is in the specific area, the RoC 201d notifies the FPGA 201c (S1013). Upon receiving this notification, the main control unit 214a of the FPGA 201c sets the [2] bit (Dual) flag of the 3-bit flag corresponding to the table that is the cache allocation area of the backup management table 213a to the cache address management unit 221. To 1 ”.

そしてRoC201dは、キャッシュ確保領域となったキャッシュ201bのテーブルに対し、PSU202から、Write要求に続けて送られてくるデータを記憶する(S1014)。   Then, the RoC 201d stores the data sent following the Write request from the PSU 202 to the table of the cache 201b that has become the cache securing area (S1014).

そして、RoC201dは、Exp201fを制御し、ホストからWrite要求に続けて送られてくるデータを、HDD203a〜203zのうち、Write要求に含まれるディスクアドレスに対して書込みを行なう(S1016)。   Then, the RoC 201d controls the Exp 201f and writes the data sent from the host following the Write request to the disk address included in the Write request among the HDDs 203a to 203z (S1016).

なお、S1010の処理において、Write要求に含まれるディスクアドレスに含まれるデータが、既にキャッシュ201bに存在した場合、RoC201dは、キャッシュ201bに存在するデータを、ホストからWrite要求に続けて送られてくるデータに更新し(S1015)、S1016の処理に移行する。   In the processing of S1010, when the data included in the disk address included in the Write request already exists in the cache 201b, the RoC 201d sends the data existing in the cache 201b from the host following the Write request. The data is updated (S1015), and the process proceeds to S1016.

RoC201dは、S1016の処理が完了すると、S1001の処理へ移行する。   When the process of S1016 is completed, the RoC 201d proceeds to the process of S1001.

更に、RoC201dは、S1009の処理において、受信したリクエストがライト要求でもないと判断した場合、受信したリクエストがコピー要求か否かを判定する(S1017)。   Furthermore, when the RoC 201d determines in the processing of S1009 that the received request is not a write request, the RoC 201d determines whether the received request is a copy request (S1017).

ここで、RoC201dは、受信したリクエストがコピー要求でもないと判断した場合(S1017:No)、その他、リクエストに応じた処理を行い(S1023)、S1001の処理へ移行する。   Here, when the RoC 201d determines that the received request is not a copy request (S1017: No), the RoC 201d performs other processing according to the request (S1023), and proceeds to the processing of S1001.

また、RoC201dは、受信したリクエストがコピー要求であると判断した場合(S1017:Yes)、コピー元となるデータが、キャッシュ201bのテーブルb01〜b10のいずれかに記憶されているか、確認する(S1018)。   In addition, when the RoC 201d determines that the received request is a copy request (S1017: Yes), the RoC 201d checks whether the copy source data is stored in any of the tables b01 to b10 of the cache 201b (S1018). ).

ここで、コピー元となるデータがキャッシュ201bのテーブルb01〜b10のいずれにも記憶されていない場合(S1018:No)、キャッシュ201bのキャッシュ領域を確保する処理を行なう(S1019)。この処理は、前述のS1005の同様の処理であるので、説明を省略する。   Here, when the data to be copied is not stored in any of the tables b01 to b10 of the cache 201b (S1018: No), processing for securing the cache area of the cache 201b is performed (S1019). Since this process is the same as that of S1005 described above, description thereof is omitted.

そして、RoC201dは、コピー要求に基づきステージング処理を行ったことを、FPGA201cへ通知する(S1020)。この通知を受信したFPGA201cのメイン制御部214aは、キャッシュアドレス管理部221に、バックアップ管理テーブル213aのキャッシュ確保領域となったテーブルに対応する3bitフラグの[1]ビットめ(Stay)のフラグを「1」に更新させる。   The RoC 201d notifies the FPGA 201c that staging processing has been performed based on the copy request (S1020). Upon receiving this notification, the main control unit 214a of the FPGA 201c sets the [1] bit (Stay) flag of the 3-bit flag corresponding to the table that is the cache allocation area of the backup management table 213a to the cache address management unit 221. To 1 ”.

次にRoC201dは、Exp203を制御して、コピー要求で指定されているコピー元のHDDのデータを読み出し、領域確保したキャッシュ201bのテーブルに書き込む(S1021)。   Next, the RoC 201d controls the Exp 203 to read the data of the copy source HDD specified by the copy request and write it in the table of the cache 201b in which the area is secured (S1021).

そしてRoC201dは、Exp203を制御して、キャッシュ201に書き込まれたコピー元データをコピー先のHDDへ書込むことによりコピー処理を行なう(S1022)。   The RoC 201d controls the Exp 203 to perform copy processing by writing the copy source data written in the cache 201 to the copy destination HDD (S1022).

なお、RoC201dは、S1018の処理において、コピー元となるデータがキャッシュ201bのテーブルb01〜b10のいずれかに記憶されていると判定した場合は、S1019〜S1021のステージングに関する処理を行うこと無く、上記したS1022の処理へ移行する。   If the RoC 201d determines that the copy source data is stored in any of the tables b01 to b10 of the cache 201b in the process of S1018, the RoC 201d does not perform the process related to the staging of S1019 to S1021. The process proceeds to S1022.

RoC201dは、S1022の処理を完了すると、S1001の処理へと移行する。以上のように、RoC201d、及び、FPGA201cの処理により、バックアップテーブル213aの各3bitフラグc01〜c10は、以下のようなステータスとなる。   When the RoC 201d completes the process of S1022, the RoC 201d proceeds to the process of S1001. As described above, by the processing of the RoC 201d and the FPGA 201c, the 3-bit flags c01 to c10 of the backup table 213a have the following status.

まず、構成情報などが入っている様な重要な領域のキャッシュ201bのテーブルに対応するバックアップテーブル213aの[2]bit(Dual)めは「1」となる。即ち、このテーブルに記憶されているデータは、停電時のバックアップ時に、二重書き込みの対象となる。   First, the [2] bit (Dual) of the backup table 213a corresponding to the table of the cache 201b in an important area that contains configuration information and the like is “1”. That is, the data stored in this table is a target of double writing at the time of backup at the time of a power failure.

また、コピー命令に基づき、ステージングを行ったキャッシュ201bのテーブルに対応するバックアップテーブル213aの[1]bit(Stay)めが「1」となる。再度コピーをやり直す際に、キャッシュ201bにデータが存在している方が、コピー元のデータを保存しているHDDの負荷を軽くできる。よってコピー元のデータは、キャッシュ201bに保存されていることが好ましい。しかし、そもそもコピー命令の場合、コピー元データは、HDD203a〜203zのいずれかに存在しており、データが無くなってしまうことがないので、その他の領域のデータより優先度を低くする。   Also, the first [1] bit (Stay) of the backup table 213a corresponding to the staged cache 201b table is “1” based on the copy instruction. When copying is performed again, the load on the HDD storing the copy source data can be reduced if the data exists in the cache 201b. Therefore, the copy source data is preferably stored in the cache 201b. However, in the first place, in the case of a copy command, the copy source data exists in any of the HDDs 203a to 203z, and the data is not lost, so the priority is set lower than the data in other areas.

更に、read命令に基づき、ステージングを行ったキャッシュ201bのテーブルに対応するバックアップ管理テーブル213aの[0]bit(Skip)めが「1」となる。read命令の対象データは、HDD203a〜203zのいずれかに存在しており、データが無くなってしまうことがない。加えて、Read命令は、Copy命令のように、復電直後に再度同じ命令が繰り返されることがなく、Read命令にて取得したデータがキャッシュ201bに無いことで、復電時に負荷増加してしまう可能性も少ない。   Further, based on the read instruction, the [0] bit (Skip) of the backup management table 213a corresponding to the staged cache 201b table is “1”. The target data of the read instruction exists in any of the HDDs 203a to 203z, and the data is not lost. In addition, unlike the Copy instruction, the Read instruction does not repeat the same instruction immediately after the power recovery, and the load acquired during the power recovery increases because the data acquired by the Read instruction is not in the cache 201b. Less likely.

よって、本実施の形態において、Read命令を取得した対象データは、バックアップの必要性が小さいとして、Skip、即ち、バックアップを行わないこととしている。   Therefore, in this embodiment, the target data for which the Read command has been acquired is skipped, that is, is not backed up because the necessity for backup is small.

なお、上記RoC201dの処理を行った結果、バックアップ管理テーブル213aの全ビットが「0」を示している3bitフラグは、Write命令に基づくデータをキャッシングしていることを示す。Write命令に基づくデータは、ホストから受信したデータであり、停電のタイミングによっては、HDD203a〜203zのいずれかに格納される前のデータも含まれている可能性がある。よって、停電時には、HDD203a〜203zより、優先度を高めてバックアップされる必要がある。   Note that as a result of the processing of the RoC 201d, a 3-bit flag in which all bits of the backup management table 213a indicate “0” indicates that data based on the Write instruction is being cached. Data based on the Write command is data received from the host, and depending on the timing of a power failure, data before being stored in any of the HDDs 203a to 203z may be included. Therefore, at the time of a power failure, it is necessary to back up with higher priority than the HDDs 203a to 203z.

よって、後述する停電時の処理において、このWrite命令は、二重バックアップ対象とされている構成情報などの特定情報と共にNANDフラッシュ201aへのバックアップが行われる。   Therefore, in the processing at the time of a power failure described later, this Write command is backed up to the NAND flash 201a together with specific information such as configuration information that is the target of double backup.

次に、これまで説明してきたキャッシュ201bと、バックアップ管理テーブル213aと、不良ブロック管理テーブル213bと、NANDフラッシュ201aを用いて、停電発生時に、RAID装置200で行われる処理について図9以降の図を用いて説明する。   Next, FIG. 9 and subsequent drawings of processing performed in the RAID device 200 when a power failure occurs using the cache 201b, the backup management table 213a, the bad block management table 213b, and the NAND flash 201a described above. It explains using.

なお、本実施の形態において、停電が起きる直前の、キャッシュ201b、バックアップ管理テーブル213a、FPGAフラッシュ201a、不良ブロック管理テーブル213b、及びバックアップ完了フラグ220aの状態について、図10を用いて、補足説明する。   In the present embodiment, the state of the cache 201b, the backup management table 213a, the FPGA flash 201a, the bad block management table 213b, and the backup completion flag 220a immediately before the power failure occurs will be supplementarily described with reference to FIG. .

なお、図10の状態は、あくまで一例であり、通電時は、キャッシュ201bに記憶されたデータの内容は、随時更新されており、停電直前に、必ず図10になるというわけではない。   Note that the state of FIG. 10 is merely an example, and at the time of energization, the content of data stored in the cache 201b is updated as needed, and does not necessarily become FIG. 10 immediately before a power failure.

まず、上記処理によって、バックアップ管理テーブル213aの各3bitフラグc01〜c10は、対応するキャッシュ201bの各テーブルb01〜b10に記憶されたデータの種別に応じて、内容が決定している。   First, by the above processing, the contents of the 3-bit flags c01 to c10 of the backup management table 213a are determined according to the type of data stored in the tables b01 to b10 of the corresponding cache 201b.

本実施の形態の場合、図10に示すように、キャッシュ201bのテーブルb01に構成情報が記憶されているため、対応する3bitテーブルc01の[2]bitめ(Dual)には「1」が格納されている。   In the present embodiment, as shown in FIG. 10, since the configuration information is stored in the table b01 of the cache 201b, “1” is stored in the [2] bit (Dual) of the corresponding 3-bit table c01. Has been.

また、Copy命令に基づき取得された、テーブルb04及びb10のデータに対応する3bitフラグc04,c10の「1」bitめのフラグ(Stay)には「1」が格納されている。   Further, “1” is stored in the “1” bit flag (Stay) of the 3 bit flags c04 and c10 corresponding to the data in the tables b04 and b10 acquired based on the Copy instruction.

更に、Read命令に基づき取得された、テーブルb02及びb08のデータに対応する3bitフラグc02,c08の「0」bitめのフラグ(Skip)には「1」が格納されている。   Furthermore, “1” is stored in the “0” bit flag (Skip) of the 3-bit flags c02 and c08 corresponding to the data in the tables b02 and b08 acquired based on the Read instruction.

また、FPGAフラッシュ201の不良管理テーブル213bの項目d05の[Invalid]フラグには「1」が格納されている。即ち、この項目d05に対応するFPGA201aのブロックa05は、不良ブロックであることを示している。   Further, “1” is stored in the [Invalid] flag of the item d05 of the defect management table 213b of the FPGA flash 201. That is, the block a05 of the FPGA 201a corresponding to the item d05 indicates that it is a defective block.

以上の状態で、停電が検出した場合(図9:S2001)、CM201の各構成要素は、SCU201eからの電源供給により稼働し、以下の処理を行なう。   When a power failure is detected in the above state (FIG. 9: S2001), each component of the CM 201 is operated by power supply from the SCU 201e and performs the following processing.

まず、FPGA201cは、リード制御部222に、バックアップ管理テーブル213aの3bitフラグc01〜c10のうち、[1]bitめ(Stay)、[0]bitめ(Skip)が共に「1」ではないものに対応する、キャッシュ201bのデータをNANDフラッシュへ書き込む(S2002)。
具体的には、FPGA201cの各構成要素が、以下の処理を行なう。
First, the FPGA 201c notifies the read control unit 222 that both the [1] bit (Stay) and the [0] bit (Skip) are not “1” among the 3 bit flags c01 to c10 of the backup management table 213a. The corresponding data in the cache 201b is written to the NAND flash (S2002).
Specifically, each component of the FPGA 201c performs the following processing.

まず、メイン制御部214aは、リード制御部222に、バックアップ管理テーブル213aの3bitフラグc01〜c10のうち、[1]bitめ(Stay)、[0]bitめ(Skip)が共に「1」ではないものに対応する、キャッシュ201bのデータを読出させる。   First, the main control unit 214a informs the read control unit 222 that both the [1] bit (Stay) and the [0] bit (Skip) of the 3 bit flags c01 to c10 of the backup management table 213a are “1”. The data of the cache 201b corresponding to the data that does not exist is read out.

本実施の形態の場合、バックアップ管理テーブルc01,c03,c05,c06,c07,及びc09が該当するので、リード制御部222は、キャッシュ201bのテーブルb01、b03、b05、b06、b07、及びb09のデータを読み出す。   In this embodiment, since the backup management tables c01, c03, c05, c06, c07, and c09 are applicable, the read control unit 222 stores the tables b01, b03, b05, b06, b07, and b09 in the cache 201b. Read data.

リード制御部222で読み出されたデータは、CRC制御部214d2を経由することにより、CRCコードが付与される。そしてCRCコードが付与されたデータは、図11に示されるように、NANDライト制御部214eによって随時、NANDフラッシュ201aのInvalidフラグが立っている項目に対応しないブロック(図11では、ブロックa05以外)のブロックに書き込まれる。なお、この際、CRCコード付与と共に、読み出し元であるキャッシュ201bのテーブル名(b01など)を付与しても良い。このようにすれば、復電時、キャッシュの復元を行なう際に、FPGA201cは、この付与されたテーブル名を参照して、キャッシュ201bの各テーブルb01〜b10の各々に、停電時に格納されていたデータと同じデータを再格納させることが可能となる。   The data read by the read control unit 222 is given a CRC code via the CRC control unit 214d2. As shown in FIG. 11, the data to which the CRC code is added is a block that does not correspond to an item for which the Invalid flag of the NAND flash 201a is set as needed by the NAND write control unit 214e (in FIG. 11, other than the block a05). Written to the block. At this time, a table name (such as b01) of the cache 201b that is a reading source may be assigned together with the CRC code. In this way, when restoring the cache at the time of power recovery, the FPGA 201c refers to the assigned table name and is stored in each of the tables b01 to b10 of the cache 201b at the time of power failure. It is possible to re-store the same data as the data.

この際、NANDライト制御部214eは、NANDフラッシュ201aのブロックに書き込みを行う度に、書き込んだデータに付随するCRCコードを使い、エラー検証を行なう。   At this time, each time the NAND write control unit 214e writes to the block of the NAND flash 201a, the NAND write control unit 214e performs error verification using the CRC code attached to the written data.

ここで、書き込んだデータにエラーがあると判定された場合、NANDライト制御部214eは、先に書き込んだブロックの次のブロックへの再書込みを行なう。   If it is determined that there is an error in the written data, the NAND write control unit 214e rewrites the next block after the previously written block.

即ち、図11に示されるように、キャッシュ201bのテーブルb09のデータをNANDフラッシュ201aのブロックa07に記憶させ、検証でエラーが検出された場合、NANDライト制御部214eは、次のブロックa08に再書き込みを行なう。   That is, as shown in FIG. 11, when the data of the table b09 of the cache 201b is stored in the block a07 of the NAND flash 201a and an error is detected in the verification, the NAND write control unit 214e re-reads the next block a08. Write.

なお、この再書き込みにあたり、NANDライト制御部214eは、メイン制御部214aへ、エラーがあったブロックを通知する。これをうけたメイン制御部214aのDirty更新分214a3の項目d05のDirtyフラグに対し、「1」を格納する。   In this rewriting, the NAND write control unit 214e notifies the main control unit 214a of the block having an error. In response to this, “1” is stored in the Dirty flag of the item d05 of the Dirty update 214a3 of the main control unit 214a.

以上のような処理により、本実施の形態では、構成情報を含むテーブルb01、及び、Read命令、Copy命令によらないキャッシュデータを格納しているテーブルb03、b05〜b07,b09のデータが、NANDフラッシュ201aのブロックa01〜a04、a06,a08に記憶される。   Through the processing as described above, in the present embodiment, the table b01 including the configuration information and the data of the tables b03, b05 to b07, and b09 storing the cache data not based on the Read instruction and the Copy instruction are converted to NAND. The data are stored in the blocks a01 to a04, a06, and a08 of the flash 201a.

なおこの処理が完了すると、メイン制御部214aは、バックアップ完了テーブル220aの[0](1st)Bitめのフラグを「1」にする。   When this processing is completed, the main control unit 214a sets the [0] (1st) Bit flag of the backup completion table 220a to “1”.

次に、FPGA201cは、リード制御部222に、バックアップ管理テーブル213aの3bitフラグc01〜c10のうち、[1]bitめ(Stay)が「1」であるものに対応する、キャッシュ201bのデータをNANDフラッシュへ書き込む(S2003)。   Next, the FPGA 201c NANDs the data in the cache 201b corresponding to the [1] bit (Stay) of “1” among the 3 bit flags c01 to c10 of the backup management table 213a. Writing to the flash (S2003).

即ち、この処理は、[1]bitめ(Stay)、[0]bitめ(Skip)が共に「1」ではないものに対応する、キャッシュ201bのデータの書込みのあとに行われることになる。   That is, this processing is performed after the data of the cache 201b corresponding to the case where the [1] bit (Stay) and the [0] bit (Skip) are not “1”.

具体的には、FPGA201cの各構成要素が、以下の処理を行なう。   Specifically, each component of the FPGA 201c performs the following processing.

まず、メイン制御部214aは、リード制御部222に、バックアップ管理テーブル213aの3bitフラグc01〜c10のうち、[1]bitめ(Stay)が「1」となっているものに対応する、キャッシュ201bのデータを読出させる。   First, the main control unit 214a notifies the read control unit 222 of the cache 201b corresponding to the 3 bit flags c01 to c10 of the backup management table 213a corresponding to those whose [1] bit (Stay) is “1”. The data is read out.

本実施の形態の場合、図12に示すように、バックアップ管理テーブルc04,c10が該当するので、リード制御部222は、キャッシュ201bのテーブルb04、b10のデータを読み出す。   In the present embodiment, as shown in FIG. 12, since the backup management tables c04 and c10 correspond, the read control unit 222 reads the data in the tables b04 and b10 in the cache 201b.

リード制御部222で読み出されたデータは、CRC制御部214d2を経由することにより、CRCコードを付与され、図12に示されるように、NANDライト制御部214eによって随時、NANDフラッシュ201aのInvalidフラグが立っている項目に対応しないブロックのブロックに書き込まれる。   The data read out by the read control unit 222 is given a CRC code via the CRC control unit 214d2, and as shown in FIG. 12, the NAND write control unit 214e, as needed, the invalid flag of the NAND flash 201a. It is written in the block of the block that does not correspond to the item that stands.

この際も、NANDライト制御部214eは、NANDフラッシュ201aのブロックに書き込みを行う度に、書き込んだデータに付随するCRCコードを使い、エラー検証を行なう。   Also at this time, the NAND write control unit 214e performs error verification using the CRC code attached to the written data every time data is written to the block of the NAND flash 201a.

ここで、書き込んだデータにエラーがあると判定された場合、NANDライト制御部214eは、先に書き込んだブロックの次のブロックへの再書込みを行なう。   If it is determined that there is an error in the written data, the NAND write control unit 214e rewrites the next block after the previously written block.

以上のような処理により、本実施の形態では、Copy命令によって取得されたテーブルb04、b10のデータが、NANDフラッシュ201aのブロックa09〜a10に記憶される。   Through the processing as described above, in the present embodiment, the data in the tables b04 and b10 acquired by the Copy instruction is stored in the blocks a09 to a10 of the NAND flash 201a.

なおこの処理が完了すると、メイン制御部214aは、バックアップ完了テーブル220aの[1](2nd)Bitめのフラグを「1」にする。   When this processing is completed, the main control unit 214a sets the [1] (2nd) bit flag of the backup completion table 220a to “1”.

更に、FPGA201cは、リード制御部222に、バックアップ管理テーブル213aの3bitフラグc01〜c10のうち、[2]bitめ(Dual)が「1」であるものに対応する、キャッシュ201bのデータをNANDフラッシュへ書き込む(S2004)。このデータは、S2002にて書き込んだものデータであるので、再度書込みを行なう処理である。   Furthermore, the FPGA 201c sends the data in the cache 201b corresponding to the 3rd flags c01 to c10 of the backup management table 213a corresponding to the [2] bit (Dual) being “1” to the read control unit 222 by NAND flash. Is written into (S2004). Since this data is the data written in S2002, the data is written again.

具体的には、FPGA201cの各構成要素が、以下の処理を行なう。   Specifically, each component of the FPGA 201c performs the following processing.

まず、メイン制御部214aは、リード制御部222に、バックアップ管理テーブル213aの3bitフラグc01〜c10のうち、[2]bitめ(Dual)が「1」となっているものに対応する、キャッシュ201bのデータを読出させる。   First, the main control unit 214a notifies the read control unit 222 of the cache 201b corresponding to the 3 bits flags c01 to c10 of the backup management table 213a corresponding to the [2] bit (Dual) being “1”. The data is read out.

本実施の形態の場合、図13に示すように、バックアップ管理テーブルc01が該当するので、リード制御部222は、キャッシュ201bのテーブルb01のデータを読み出す。   In the present embodiment, as shown in FIG. 13, since the backup management table c01 corresponds, the read control unit 222 reads the data in the table b01 of the cache 201b.

リード制御部222で読み出されたデータは、CRC制御部214d2を経由することにより、CRCコードを付与され、図13に示されるように、NANDライト制御部214eによって随時、NANDフラッシュ201aのInvalidフラグが立っている項目に対応しないブロックのブロックに書き込まれる。   The data read by the read control unit 222 is given a CRC code via the CRC control unit 214d2, and as shown in FIG. 13, the invalid flag of the NAND flash 201a is occasionally given by the NAND write control unit 214e. It is written in the block of the block that does not correspond to the item that stands.

この際も、NANDライト制御部214eは、NANDフラッシュ201aのブロックに書き込みを行う度に、書き込んだデータに付随するCRCコードを使い、エラー検証を行なう。   Also at this time, the NAND write control unit 214e performs error verification using the CRC code attached to the written data every time data is written to the block of the NAND flash 201a.

ここで、書き込んだデータにエラーがあると判定された場合、NANDライト制御部214eは、先に書き込んだブロックの次のブロックへの再書込みを行なう。   If it is determined that there is an error in the written data, the NAND write control unit 214e rewrites the next block after the previously written block.

以上のような処理により、本実施の形態では、構成情報などが格納される特定アドレスのデータが格納されたテーブルb01のデータが、NANDフラッシュ201aのブロックa012に記憶される。   Through the processing as described above, in the present embodiment, the data of the table b01 storing the data of the specific address where the configuration information and the like are stored is stored in the block a012 of the NAND flash 201a.

なおこの処理が完了すると、メイン制御部214aは、バックアップ完了テーブル220aの[1](2nd)Bitめのフラグを「1」にし、バックアップ処理を完了する。   When this processing is completed, the main control unit 214a sets the [1] (2nd) bit flag of the backup completion table 220a to “1” and completes the backup processing.

なお、この処理では、Skipフラグに「1」が格納された3bitフラグc02,c08に対応するキャッシュb01のテーブルb02,b08に格納されたデータは、NANDフラッシュ201aへの格納は行われない。即ち、これらのデータのバックアップは行われない。   In this process, the data stored in the tables b02 and b08 of the cache b01 corresponding to the 3-bit flags c02 and c08 in which “1” is stored in the Skip flag is not stored in the NAND flash 201a. That is, these data are not backed up.

以上のように、本実施の形態では、停電発生時にキャッシュデータをNANDフラッシュ201aへバックアップする際、3bitフラグに基づいて、キャッシュデータのバックアップの優先順位及びバックアップの可否の判定を行っている。   As described above, in this embodiment, when the cache data is backed up to the NAND flash 201a in the event of a power failure, the backup data backup priority and the availability of the backup are determined based on the 3-bit flag.

このように構成することで、停電時、構成情報などの重要情報や、Writeデータ等のHDD203a〜203zのいずれにも記憶されない可能性があるデータを、先にNANDフラッシュ201aへ格納させることが可能となる。上記したようにSCU201eは、一時的にしか電力を供給できないため、先にバックアップを行なうほうが、データのバックアップの確実性が増すことになる。即ち、本実施の形態では、重要なデータほど優先的にバックアップされることとなる。   With this configuration, important information such as configuration information and data that may not be stored in any of the HDDs 203a to 203z such as write data can be stored in the NAND flash 201a first in the event of a power failure. It becomes. As described above, since the SCU 201e can supply power only temporarily, the reliability of data backup is increased by performing backup first. That is, in this embodiment, important data is backed up preferentially.

更に、特に重要なデータに対しては、他のデータのバックアップのあと、二重書き込みを行なうことにより、より確実なバックアップを可能としている。なお、本実施の携帯において、二重書き込みは、Copy命令など、バックアップ優先度が低いデータの格納迄終わったあとに、2回目の書込みを行っている。これは、停電発生から早い時点で、かつ、一度はCRCによる書込みチェックを行った上でデータをNANDフラッシュ201aに格納させており、1回である程度確実に保存が出来ているため、2回目書き込みは、万が一、そのデータが消失した場合の保険として格納させるものであるていどの意味合いがあるためである。   Furthermore, for particularly important data, more reliable backup is possible by performing double writing after backup of other data. In the mobile phone of this embodiment, the double writing is performed for the second time after the storage of data having a low backup priority such as a Copy instruction is completed. This is because the data is stored in the NAND flash 201a at an early time after the occurrence of a power failure and after a write check by CRC once, and the data can be saved to a certain extent once, so the second write This is because it has a meaning to be stored as insurance in case the data is lost.

なお、本実施の形態では、FPGA201cの処理によりバックアップ処理を行っている。これは、FPGA201cの高速性と省電力性によるものである。しかしながら、SCU201eの電力容量に余裕があれば、Roc201dが所定プログラムを実行することによって上記してきたバックアップ処理を実現しても良い。   In the present embodiment, the backup process is performed by the process of the FPGA 201c. This is due to the high speed and power saving of the FPGA 201c. However, if the SCU 201e has sufficient power capacity, the above-described backup processing may be realized by the Loc 201d executing a predetermined program.

200 RAID装置
201 CM
201a NANDフラッシュ
201b キャッシュ
201c FPGA
201d RoC
201e SCU
201f Exp
202 PSU
203a〜203z HDD
211、215 IF制御部
212 アクセスコントローラ
213 アクセス管理テーブル
213a バックアップ管理テーブル
213b 不良ブロック管理テーブル(BM)
214 TRN
214a メイン制御部
214b リード部
214c エラー制御部
214d1 データバッファ部
214d2 CRC生成部
214e NANDライト制御部
220a バックアップ完了フラグ
200 RAID device 201 CM
201a NAND flash 201b cache 201c FPGA
201d RoC
201e SCU
201f Exp
202 PSU
203a to 203z HDD
211, 215 IF control unit 212 access controller 213 access management table 213a backup management table 213b bad block management table (BM)
214 TRN
214a Main control unit 214b Read unit 214c Error control unit 214d1 Data buffer unit 214d2 CRC generation unit 214e NAND write control unit 220a Backup completion flag

Claims (8)

記憶装置に対するアクセス時に取得したデータを記憶するキャッシュメモリと、
不揮発性メモリと、
前記キャッシュメモリ内に記憶されているデータにおいて、前記不揮発性メモリに退避するデータか否かの情報、および前記不揮発性メモリに退避するデータの退避の優先順位を決定するための情報を記憶する管理テーブルと、
前記キャッシュメモリへのデータ記憶に際し、データの種別に応じて、前記不揮発性メモリに退避するデータか否かの情報、および前記不揮発性メモリに退避するデータの退避の優先順位を決定するための情報を前記管理テーブルに記憶させる管理手段と、
停電発生時に、前記管理テーブルに記憶されている、前記不揮発性メモリに退避するデータか否かの情報及び前記不揮発性メモリに退避するデータの退避の優先順位を決定するための情報に基づき、前記キャッシュメモリに記憶されているデータのうち前記不揮発性メモリに退避するデータを、優先順位に従って優先度の高いデータから優先度の低いデータへ順番に前記不揮発性メモリに書き込む処理を実行する停電処理部と、を有する退避処理装置。
A cache memory for storing data acquired when accessing the storage device;
Non-volatile memory;
Management for storing information on whether or not the data stored in the cache memory is data to be saved in the nonvolatile memory and information for determining the priority of saving the data to be saved in the nonvolatile memory Table,
When storing data in the cache memory, according to the type of data, information on whether or not the data is to be saved in the nonvolatile memory, and information for determining the priority of saving the data to be saved in the nonvolatile memory Management means for storing in the management table;
Based on the information stored in the management table whether or not the data is to be saved in the nonvolatile memory and the information for determining the priority of saving the data to be saved in the nonvolatile memory when a power failure occurs A power failure processing unit that executes processing for writing data to be saved in the nonvolatile memory out of data stored in the cache memory in order from data with a high priority to data with a low priority according to a priority order And an evacuation processing apparatus.
前記管理手段は、前記退避の優先順位を決定するための情報として、少なくとも、前記上位装置からのコピー命令に基づき記憶装置間のデータのコピー処理を実行した際に取得したデータを識別する情報を前記管理テーブルに記憶させ、
前記停電処理部は、前記管理テーブルを参照し、前記キャッシュメモリに記憶されているデータのうち、コピー処理を実行した際に取得したデータの前記不揮発性メモリへの書込み順序の優先度を低くすることを特徴とする請求項1に記載の退避処理装置。
The management means, as information for determining the priority order of the save, at least information for identifying data acquired when executing a data copy process between storage devices based on a copy command from the host device Store in the management table;
The power failure processing unit refers to the management table, and lowers the priority of the order of writing the data acquired when the copy process is executed among the data stored in the cache memory to the nonvolatile memory. The evacuation processing apparatus according to claim 1.
前記管理手段は、前記退避の優先順位を決定するための情報として、少なくとも、前記上位装置からの読み出し命令に基づき記憶装置からのデータの読み出し処理を実行した際に取得したデータを識別する情報を前記管理テーブルに記憶させ、
前記停電処理部は、前記管理テーブルを参照し、前記キャッシュメモリに記憶されているデータのうち、読み出し処理を実行した際に取得したデータの前記不揮発性メモリへの書込みを行わないことを特徴とする請求項2に記載の退避処理装置。
The management means, as information for determining the priority order of the saving, at least information for identifying data acquired when a data read process from the storage device is executed based on a read command from the host device Store in the management table;
The power failure processing unit refers to the management table and does not write the data acquired when the read process is executed among the data stored in the cache memory to the nonvolatile memory. The evacuation processing apparatus according to claim 2.
前記管理手段は、前記退避の優先順位を決定するための情報として、少なくとも、前記上位装置から、前記記憶装置の特定の記憶アドレスへのアクセス命令に基づき、取得したデータを識別する情報を前記管理テーブルに記憶させ、
前記停電処理部は、前記管理テーブルを参照し、前記キャッシュメモリに記憶されているデータのうち、前記記憶装置の特定の記憶アドレスへのアクセス命令に基づき取得したデータを前記不揮発性メモリへ複数回書込みを行なうことを特徴とする請求項1から3のいずれかに記載の退避処理装置。
The management means, as information for determining the priority of evacuation, at least information for identifying acquired data from the host device based on an access command to a specific storage address of the storage device Memorize it on the table,
The power failure processing unit refers to the management table, and among the data stored in the cache memory, the data acquired based on an access command to a specific storage address of the storage device is stored in the nonvolatile memory a plurality of times. 4. The save processing apparatus according to claim 1, wherein writing is performed.
記憶装置に対するアクセス時に取得したデータを記憶するキャッシュメモリと、不揮発性メモリと、前記キャッシュメモリ内に記憶されているデータにおいて、前記不揮発性メモリに退避するデータか否かの情報、および前記不揮発性メモリに退避するデータの退避の優先順位を決定するための情報を記憶する管理テーブルとを有する処理装置が、
前記キャッシュメモリへのデータ記憶に際し、データの種別に応じて、前記不揮発性メモリに退避するデータか否かの情報、および前記不揮発性メモリに退避するデータの退避の優先順位を決定するための情報を前記管理テーブルに記憶し、
停電発生時に、前記管理テーブルに記憶されている、前記不揮発性メモリに退避するデータか否かの情報及び前記不揮発性メモリに退避するデータの退避の優先順位を決定するための情報に基づき、前記キャッシュメモリに記憶されているデータのうち前記不揮発性メモリに退避するデータを、優先順位に従って優先度の高いデータから優先度の低いデータへ順番に前記不揮発性メモリに書き込む処理を実行することを特徴とする退避処理方法。
A cache memory for storing data acquired at the time of accessing the storage device, a nonvolatile memory, information on whether or not the data stored in the cache memory is data to be saved in the nonvolatile memory, and the nonvolatile memory A processing device having a management table for storing information for determining the priority of saving data to be saved in the memory,
When storing data in the cache memory, according to the type of data, information on whether or not the data is to be saved in the nonvolatile memory, and information for determining the priority of saving the data to be saved in the nonvolatile memory Is stored in the management table,
Based on the information stored in the management table whether or not the data is to be saved in the nonvolatile memory and the information for determining the priority of saving the data to be saved in the nonvolatile memory when a power failure occurs A process of writing data to be saved in the nonvolatile memory out of data stored in the cache memory in order from data having a higher priority to data having a lower priority in accordance with a priority order is executed. The save processing method.
前記処理装置が更に、
前記退避の優先順位を決定するための情報を前記管理テーブルに記憶する際、退避の優先順位を決定するための情報として、少なくとも、前記上位装置からのコピー命令に基づき記憶装置間のデータのコピー処理を実行した際に取得したデータを識別する情報を前記管理テーブルに記憶し、
前記キャッシュメモリへのデータ記憶に際し、前記管理テーブルを参照し、前記キャッシュメモリに記憶されているデータのうち、コピー処理を実行した際に取得したデータの前記不揮発性メモリへの書込み順序の優先度を低くすることを特徴とする請求項5に記載の退避処理方法。
The processor further comprises:
When storing information for determining the priority order of saving in the management table, as information for determining the priority order of saving, at least a copy of data between storage devices based on a copy command from the host device Information for identifying the data acquired when the process is executed is stored in the management table;
When storing data in the cache memory, the priority of the order of writing to the non-volatile memory of the data acquired when the copy process is executed among the data stored in the cache memory with reference to the management table The evacuation processing method according to claim 5, wherein:
記憶装置に対するアクセス時に取得したデータを記憶するキャッシュメモリと、不揮発性メモリと、前記キャッシュメモリ内に記憶されているデータにおいて、前記不揮発性メモリに退避するデータか否かの情報、および前記不揮発性メモリに退避するデータの退避の優先順位を決定するための情報を記憶する管理テーブルとを有する処理装置に、
前記キャッシュメモリへのデータ記憶に際し、データの種別に応じて、前記不揮発性メモリに退避するデータか否かの情報、および前記不揮発性メモリに退避するデータの退避の優先順位を決定するための情報を前記管理テーブルに記憶させ、
停電発生時に、前記管理テーブルに記憶されている、前記不揮発性メモリに退避するデータか否かの情報及び前記不揮発性メモリに退避するデータの退避の優先順位を決定するための情報に基づき、前記キャッシュメモリに記憶されているデータのうち前記不揮発性メモリに退避するデータを、優先順位に従って優先度の高いデータから優先度の低いデータへ順番に前記不揮発性メモリに書き込む処理を実行させることを特徴とする退避処理プログラム。
A cache memory for storing data acquired at the time of accessing the storage device, a nonvolatile memory, information on whether or not the data stored in the cache memory is data to be saved in the nonvolatile memory, and the nonvolatile memory In a processing apparatus having a management table for storing information for determining the priority of saving data to be saved in the memory,
When storing data in the cache memory, according to the type of data, information on whether or not the data is to be saved in the nonvolatile memory, and information for determining the priority of saving the data to be saved in the nonvolatile memory Is stored in the management table,
Based on the information stored in the management table whether or not the data is to be saved in the nonvolatile memory and the information for determining the priority of saving the data to be saved in the nonvolatile memory when a power failure occurs A process of writing data to be saved in the nonvolatile memory out of data stored in a cache memory in order from data having a higher priority to data having a lower priority in accordance with a priority order is executed. A save processing program.
前記処理装置に更に、
前記退避の優先順位を決定するための情報を前記管理テーブルに記憶する際、退避の優先順位を決定するための情報として、少なくとも、前記上位装置からのコピー命令に基づき記憶装置間のデータのコピー処理を実行した際に取得したデータを識別する情報を前記管理テーブルに記憶させ、
前記キャッシュメモリへのデータ記憶に際し、前記管理テーブルを参照し、前記キャッシュメモリに記憶されているデータのうち、コピー処理を実行した際に取得したデータの前記不揮発性メモリへの書込み順序の優先度を低くさせることを特徴とする請求項7に記載の退避処理プログラム。
Further to the processing device
When storing information for determining the priority order of saving in the management table, as information for determining the priority order of saving, at least a copy of data between storage devices based on a copy command from the host device Storing information for identifying data acquired when the process is executed in the management table;
When storing data in the cache memory, the priority of the order of writing to the non-volatile memory of the data acquired when the copy process is executed among the data stored in the cache memory with reference to the management table The evacuation processing program according to claim 7, wherein
JP2010199000A 2010-09-06 2010-09-06 Save processing device, save processing method, and save processing program Expired - Fee Related JP5691311B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010199000A JP5691311B2 (en) 2010-09-06 2010-09-06 Save processing device, save processing method, and save processing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010199000A JP5691311B2 (en) 2010-09-06 2010-09-06 Save processing device, save processing method, and save processing program

Publications (2)

Publication Number Publication Date
JP2012058840A JP2012058840A (en) 2012-03-22
JP5691311B2 true JP5691311B2 (en) 2015-04-01

Family

ID=46055909

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010199000A Expired - Fee Related JP5691311B2 (en) 2010-09-06 2010-09-06 Save processing device, save processing method, and save processing program

Country Status (1)

Country Link
JP (1) JP5691311B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5742362B2 (en) * 2011-03-28 2015-07-01 富士通株式会社 Evacuation processing device
JP5541344B2 (en) 2012-11-01 2014-07-09 トヨタ自動車株式会社 Information processing apparatus, information processing method, and control system
JP6460940B2 (en) 2015-08-06 2019-01-30 東芝メモリ株式会社 Storage device and data saving method
US11941281B2 (en) * 2022-04-01 2024-03-26 Nxp B.V. Non-volative memory system configured to mitigate errors in read and write operations

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4557341B2 (en) * 2000-01-07 2010-10-06 キヤノン株式会社 Backup storage controller
JP2002099390A (en) * 2000-09-22 2002-04-05 Toshiba Corp Disk controller
JP2002268956A (en) * 2001-03-12 2002-09-20 Ricoh Co Ltd Data recording apparatus and facsimile apparatus using the same
KR100608012B1 (en) * 2004-11-05 2006-08-02 삼성전자주식회사 Data backup method and device
JP2006163577A (en) * 2004-12-03 2006-06-22 Matsushita Electric Ind Co Ltd Portable terminal device and data backup method thereof
JP5026102B2 (en) * 2007-02-07 2012-09-12 株式会社日立製作所 Storage control device and data management method
JP2008245044A (en) * 2007-03-28 2008-10-09 Nec Corp Data backup device for portable terminal
JP2009129026A (en) * 2007-11-20 2009-06-11 Seiko Epson Corp Data management apparatus, information processing apparatus, and program
CN102893251B (en) * 2008-12-04 2015-08-12 株式会社日立制作所 Memory system with volatile memory and nonvolatile memory

Also Published As

Publication number Publication date
JP2012058840A (en) 2012-03-22

Similar Documents

Publication Publication Date Title
JP5742362B2 (en) Evacuation processing device
JP5466953B2 (en) Backup method and disk array system
JP5353887B2 (en) Disk array device control unit, data transfer device, and power recovery processing method
JP4930556B2 (en) Evacuation processing apparatus, evacuation processing method, and storage system
JP4930555B2 (en) Control device, control method, and storage system
JP2016530637A (en) RAID parity stripe reconstruction
US20190324859A1 (en) Method and Apparatus for Restoring Data after Power Failure for An Open-Channel Solid State Drive
JP2008171163A (en) Flash memory module, storage device using the flash memory module as a recording medium, and address conversion table verification method for the flash memory module
TW201324154A (en) Memory storage system, and central control device, management method and recovery method
JP2008204041A (en) Storage apparatus and data arrangement control method
US20110202708A1 (en) Integrating A Flash Cache Into Large Storage Systems
US20150339058A1 (en) Storage system and control method
JPH07311661A (en) Semiconductor disk device
JP5776474B2 (en) Storage device, storage control device, and copy destination data access method
CN104166601B (en) The backup method and device of a kind of data storage
CN117519450A (en) Systems and methods for managing reduced power failure energy requirements on solid state drives
JP5691311B2 (en) Save processing device, save processing method, and save processing program
US9047232B2 (en) Storage apparatus and controlling method for data transmission based on control information
US10162573B2 (en) Storage management system, storage management method, storage medium and information processing system
JP2001043031A (en) Disk array controller with distributed parity generation function
JP5773446B2 (en) Storage device, redundancy recovery method, and program
JP2006099802A (en) Storage controller and cache memory control method
CN107515723B (en) Method and system for managing memory in a storage system
WO2016139774A1 (en) Information processing device and information processing system
JP7288191B2 (en) Storage controller and storage control program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130702

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140304

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140430

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140708

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140821

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150106

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150119

R150 Certificate of patent or registration of utility model

Ref document number: 5691311

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees