JP5742362B2 - 退避処理装置 - Google Patents

退避処理装置 Download PDF

Info

Publication number
JP5742362B2
JP5742362B2 JP2011070845A JP2011070845A JP5742362B2 JP 5742362 B2 JP5742362 B2 JP 5742362B2 JP 2011070845 A JP2011070845 A JP 2011070845A JP 2011070845 A JP2011070845 A JP 2011070845A JP 5742362 B2 JP5742362 B2 JP 5742362B2
Authority
JP
Japan
Prior art keywords
data
fpga
memory
cache memory
power failure
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.)
Active
Application number
JP2011070845A
Other languages
English (en)
Other versions
JP2012203862A (ja
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 JP2011070845A priority Critical patent/JP5742362B2/ja
Priority to US13/402,274 priority patent/US8862808B2/en
Publication of JP2012203862A publication Critical patent/JP2012203862A/ja
Application granted granted Critical
Publication of JP5742362B2 publication Critical patent/JP5742362B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/30Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • 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
    • 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/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • G06F2212/262Storage comprising a plurality of storage devices configured as RAID
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Description

本技術は、退避処理装置、及び、退避処理方法に関する。
複数のHDD(Hard Disk Drive)を組み合わせ、高速・大容量・高信頼性に優れたディスクシステムを構築する技術としてRAID(Redundant Arrays of Independent Disks)が広く知られている。
一般に、RAID装置は、その上位装置(例えば、ホストコンピュータ、以下、ホストとする)からのデータアクセスに要する処理時間を短縮するために、キャッシュメモリを用いたユーザデータのリード・ライトが行われている。
このキャッシュメモリには、通常、DRAM(Dynamic Ramdom Access Memory)・SRAM(Static Random Access Memory)といった半導体の記憶装置が利用されている。
そして、RAID装置は、ホストからユーザデータのリード要求を受け付けた場合に、キャッシュメモリ(以下、単にキャッシュとする)からユーザデータを検索し、リード要求に対応するユーザデータを取得したら、取得したキャッシュデータをホストに通知する。
一方、RAID装置は、キャッシュメモリからユーザデータを取得しなかった場合、ハードディスク装置(以下、単にディスクとする)に記憶されているユーザデータを取得し、キャッシュメモリに書込みを行う。
また、ユーザデータのライト要求を受け付けた場合には、キャッシュメモリにユーザデータを記憶した時点で、ライト処理が完了した旨をホストへ通知する。その後、所定の条件を満たした時点で、キャッシュメモリに記憶したユーザデータをディスクに記憶する。
ところで、上述したキャッシュメモリは、揮発性の半導体の記憶装置が利用されていることから、キャッシュメモリへの電源供給がなくなれば、キャッシュのユーザデータが消去されてしまう。このため、停電発生時には、キャッシュ上の全データを不揮発性の記憶装置(例:NANDフラッシュ、コンパクトフラッシュ(登録商標)等)に退避させ、バックアップする必要がある。
例えば、図20に示すように、停電発生時に、RAID装置20のCPU(Central Processing Unit)21は、NANDフラッシュ23への書込み処理を行なうFPGA22を制御して、キャッシュメモリ24に記憶されているキャッシュデータ24aを、NANDフラッシュ23に書きこむことにより退避させる。
また、停電が発生すると、RAID装置20への電力供給が、PSU(Power SupplyUnit)28からSCU(System Capacity Unit)27に切替えられ、RAID装置20は、SCU27に蓄えられている電力を使用して、上述した退避処理を行う。
なお、停電発生時のライトバック(ライトデータのハードディスクへの書込み)処理を効率的に行うとともに、停電時の省電力化を図る技術(例えば、特許文献1参照)や、ディスクのアクセス情報に基づき、論理ディスク装置における物理ディスク装置への再配置を行う技術が知られている。
特開平9−330277号公報 特開2006−59374号公報 特開平6−230153号公報
上記したCPUは、RAIDにおけるキャッシュメモリ内のデータの退避を効率的に行なうために、高性能なプロセッサを用い、通常は、内部もしくは外部にあるメモリを使用してソフトウエア処理している事が多い。このため、CPUを使用して退避処理を行った場合、消費電力が大きく、正常な退避処理を行なうためには、なるべく容量の大きいSCUを用いることが望ましい。しかしながら、SCUは、容量が大きいほど、大型化し、SCUを搭載できる容積に制限があることから、SCUの大容量化にも限界がある。
このため、停電時には、このCPUを使用せず、退避処理に限った機能に絞った専用の制御部を有して転送させ、消費電力を抑えることが好ましい。
一方、NANDフラッシュは通常のメモリに比べ、信頼性が低く、書き込み時に、その書き込み領域が不良になり、書込みエラーとなってしまうことがある。このため、NANDフラッシュへの書込みには、書き込みエラーとなった領域を記憶しておき、次回の退避時に活用できることが好ましい。
上記したように、CPUのようなプロセッサであれば、ソフトウエア処理などによって、エラーログを随時管理・記録させながら退避処理を行なうことは容易である。しかながらが、専用の制御部の場合、なるべく機能を絞るという観点から、より簡易な機能にて、エラーログを収集できるほうが望ましい。
本技術においては、このような課題に鑑み、簡易な構成で、エラーログの記録を可能とする退避処理装置を実現する事を目的とする。
本技術は、上記従来の課題に鑑み、キャッシュメモリを備え、外部電源からの通電時には、ホストからの要求に応じてディスク装置に対して該キャッシュメモリを介してデータの読み込みまたは書き込みを行い、該外部電源の電力供給停止時には、該キャッシュメモリ内のデータを退避させる退避処理装置であって、前記外部電源からの電力が供給されなくなった際に放電を行なう事で、前記退避処理装置への電力を供給する大容量コンデンサと、前記外部電源からの通電時には、前記ホストからの要求に応じて前記ディスク装置に対して読み込みまたは書き込みを行うプロセッサと、前記キャッシュメモリ内のデータの退避のための第1の不揮発性メモリと、第2の不揮発性メモリと、前記第1の不揮発性メモリへのデータの書き込みができなかった領域の情報を記録した管理テーブルを備え、かつ前記キャッシュメモリ内のデータを前記第1の不揮発性メモリへ書き込む第1のFPGAと、前記第1のFPGAから送られてくる情報を、停電検知からの経過時間とともに前記第2の不揮発性メモリへ書き込む第2のFPGAと、を有し、前記外部電源からの電力が供給されなくなったときには、前記第1のFPGAは、前記プロセッサから、停電処理の開始指示を受けると、前記キャッシュメモリに記憶されているデータを前記第1の不揮発性メモリに書き込む処理を開始するとともに、該書き込む処理に当たり、該書き込みが正常に行われたかを検証するとともに、該検証にて正常に書き込まれていない場合、前記第1の不揮発性メモリへの正常な書き込ができなかった領域を示す情報を、前記管理テーブルに格納するとともに、前記第2のFPGAへ送信し、前記キャッシュメモリ内のデータの前記第1の不揮発性メモリへの退避が完了すると、前記管理テーブルを前記第2のFPGAへ送信し、前記第2のFPGAは、停電を検知すると、前記プロセッサに通知するとともにタイマをセットし、かつ停電発生フラグを前記第2の不揮発性メモリに書き込み、前記第1のFPGAから前記第1の不揮発性メモリへの正常な書き込みができなかった領域を示す情報が送られてくると、停電検知からの経過時間とともに第2の不揮発性メモリに書き込み、前記第1のFPGAから前記管理テーブルを受信したときには、停電検知からの経過時間および前記キャッシュメモリ内のデータの前記第1の不揮発性メモリへの退避が完了したことを示す完了フラグとともに前記第2の不揮発性メモリに格納し、前記プロセッサは、前記第2のFPGAから停電検知通知を受信すると、前記第1のFPGAに対して停電処理の開始を指示した後、スリープ状態に入る、ことを特徴とする
本願技術によれば、第1の制御部は、エラー発生の度に第2の制御部へ転送するだけでよく、第2の制御部は、どの様な種別かを意識すること無く、第2の不揮発性メモリへデータを転送すれば、第2の不揮発性メモリには、エラーログと同等の記録内容が蓄積されることになる。これにより、全体のエラーログを管理せずとも、エラーログの記録を可能とする。
本実施の形態に示すRAID装置の構成を示す機能ブロック図である。 本実施の形態のNANDフラッシュのデータ構造の一例を示す図である。 本実施の形態に示すキャッシュメモリのデータ構造の一例を示す図である。 本実施の形態に示すFPGAの構成を示す機能ブロック図である。 本実施の形態に示すバックアップ管理テーブルのデータ構造の一例を示す図である。 本実施の形態に示す不良ブロック管理テーブル(TBM)のデータ構造の一例を示す図である。 本実施の形態に示すバックアップ完了フラグのデータ構造の一例を示す図である。 本実施の形態に示すMRAM201g1の記憶領域を示す図である。 本実施の形態の退避処理装置において、通電時における処理を示すフローチャートである。 本実施の形態の退避処理装置における、監視FPGA201hの処理を示すフローチャートである。 本実施の形態の退避処理装置における、CPUの停電時の処理を示すフローチャートである。 本実施の形態の退避処理装置において、停電時の処理を説明する説明図である。 本実施の形態の退避処理装置において、停電時の処理を示すフローチャートである。 本実施の形態の退避処理装置において、停電時の処理を示すフローチャートである。 本実施の形態の退避処理装置において、停電時の処理を説明する説明図である。 本実施の形態の退避処理装置において、停電時の処理を説明する説明図である。 本実施の形態の退避処理装置において、停電時の処理を説明する説明図である。 本実施の形態の退避処理装置に置いて、停電時の処理を示すシーケンスチャートである。 本実施の形態の退避処理装置に置いて、復電時の処理を示すシーケンスチャートである。 従来技術を説明するための図である。
以下に、本願の開示する退避処理装置、退避処理方法について説明する。なお、以下の実施の形態によりこの発明が限定されるものではない。
次に、本実施の形態に示す、退避処理装置を含む、RAID装置(Redundant Arrays of Independent Disks)について説明する。図1は、本実施の形態に示すRAID装置の構成を示す機能ブロック図である。
図1において、RAID装置200は、複数の上位装置(例えば、ホストコンピュータA、B、C・・・以下、単にホストとする)からの要求に応じて、HDD(Hard Disk Drive)203a〜zに記憶されている各種ユーザデータやプログラムデータの伝送を行う。また、RAID装置200は、停電発生時には、バックアップに必要とされるキャッシュメモリ201b内のキャッシュデータをNAND型メモリに退避する処理を実行する。
また、RAID装置200は、CM(Controller Module)201と、PSU(Power Supply Unit)202と、HDD203a〜zとを有する。
CM201は、キャッシュメモリ201bの管理や、ホストとのインターフェース制御や、各HDD203a〜zの制御を行う制御部であり、退避処理装置の一種である。このCM201は、NANDフラッシュ201a(第1の不揮発性メモリ)と、キャッシュメモリ201b、FPGA(Field Programmable Gate Array/第1の制御部)201cとを有する。また、CM201は、通電時にRAID装置200のRAID及びキャッシュ制御を行うCPU(RAID−on−Chip)201dと、SCU(Super Capacitor Unit)201eと、Exp(エキスパンダ)201fとを有する。さらに、CM201は、MRAM(磁気抵抗メモリ:Magnetoresistive Random Accsess Memory/第2の不揮発性メモリ)201g、MRAM201gへのアクセス制御を行なう監視FPGA201h(第2の制御部)とを有する。このうち監視FPGA201hは、タイマ201h1を有する。このタイマ201h1は、監視FPGA201hによりセットさせると、このセットからの経過時間を出力するものである。
NANDフラッシュ201aは、RAID装置200に停電が発生した場合に、キャッシュメモリ201bに記憶されているキャッシュデータがバックアップされるNAND型メモリである。
なお、NANDフラッシュ201aは、ブロック単位でアクセスされる構造を有し、シーケンシャルライトにて、キャッシュメモリ201bのキャッシュデータが書込まれる。
図2は、本実施の形態のNANDフラッシュ201aのデータ構造を示す図である。図2のNANDフラッシュ201aは、複数のブロックa01〜a20を有している。
このブロックa01〜a20は、各々キャッシュデータを記憶するデータ領域であり、ブロックごとに、キャッシュデータが書込まれる。なお、本実施の形態のNANDフラッシュ201aの1ブロック当たりのデータ領域は、4Mbyteとする。
次に、図1のキャッシュメモリ201bについて説明する。キャッシュメモリ201bは、ホストとHDD203a〜zとの間で転送が行われるユーザデータを一時的に記憶するキャッシュメモリである。なお、上述してきたようにキャッシュメモリ201bに記憶されているユーザデータをキャッシュデータとする。
図3は、本実施の形態に示すキャッシュメモリ201bのデータ構造の一例を示す図である。図3に示したキャッシュメモリ201bは、キャッシュデータを一時的に記憶する複数のテーブルb01〜b10を有している。
なお、図3に示した各テーブルb01〜b10は、4Mbyteのユーザデータを保存する容量を有している。また、このユーザデータは64kBのデータ長単位で、CPU201dに管理されるものとする。
また、ユーザデータの一例としては、リードデータとライトデータが挙げられる。「リードデータ」は、HDD203a〜zのいずれかに記憶されているユーザデータを読み出したデータを一時記憶したものである。
ホストからRAID装置200にユーザデータのリード要求があった場合、CM201は、キャッシュメモリ201b内の各テーブルb01〜b10から、リード要求に対応するユーザデータがキャッシュデータを取得できた場合は、取得したキャッシュデータをホストに出力する。
一方、キャッシュメモリ201bからキャッシュデータを取得できなかった場合、CM201は、HDD203a等から、リード要求に対応するユーザデータを取得し、取得したユーザデータをキャッシュメモリ201bに複製する。このように、HDD203a等から、リード要求に対応するユーザデータを取得することを以下、「ステージング」とする。
上記したように、リードデータは、HDD203a〜HDD203zから取得したデータであるので、キャッシュメモリ201bから、キャッシュデータがなくなったとしても、HDD203a〜HDD203zからの再取得が可能なデータである。
一方、「ライトデータ」は、ホストからRAID装置200へ書込み要求があったユーザデータがキャッシュメモリに一時的に記憶されたものであり、所定の条件を満たした後、各HDDに書込まれる。このため、ライトデータは、HDD203a〜zのいずれにも書き込まれていないデータの可能性がある。
次に、図1の説明に戻り、FPGA201cについて説明する。FPGA201cは、所定のプログラムによって制御される集積回路を示し、DMA(Direct Memory Access)エンジンを有する。
このDMAエンジンは、停電時に、CPU201dを介さずに、キャッシュメモリ201b内のキャッシュデータをNANDフラッシュ201aに退避・復元するために必要な機能を付加したものである。
なお、DMAエンジンの一例として、停電時に、キャッシュデータを退避するライトDMA(TRN)、退避データをキャッシュメモリ201bに戻すリードDMA(RCV)、NANDフラッシュ201aのイレースやチェックを行うためのコマンド発行DMA(UCE)等が挙げられる。そして、このDMAは、CPU201dの命令によって、ハードウェア的にデータを転送する。
このFPGA201cについて図を用いて説明する。図4は、本実施の形態に示すFPGA201cの構成を示す機能ブロック図である。FPGA201cは、停電発生時、キャッシュメモリ201bの所定データをNANDフラッシュ201aに退避させる処理を実行する。また、FPGA201cは、復電時、CPU201dからの指示に基づき、停電時にNANDフラッシュ201aへ退避させたデータをキャッシュメモリ201bに戻す。
そして、FPGA201cは、IF(Interface)制御部211、アクセスコントローラ212、アクセス管理テーブル213、TRN214、IF制御部215、監視FPGA201hとの通信を行なう監視FPGAIF制御部216、及び、キャッシュメモリへのアクセスを行なうキャッシュIF制御部217とを有する。
IF制御部211は、図1に示したCPU201dとTRN214との各種データのやり取りや、このCPU201dと後述するアクセスコントローラ212との各種データのやり取りを制御するインターフェースである。
アクセスコントローラ212は、IF制御部211を介して、アクセス管理テーブル213と、CPU201dとの各種データのやり取りを制御する制御部である。
アクセス管理テーブル213は、バックアップ管理テーブル213aと、上述した不良ブロックを管理する不良ブロック管理テーブル(TBM)213bとを有する。まず、バックアップ管理テーブル213aのデータ構造について説明する。
図5は、バックアップ管理テーブル213aのデータ構造の一例を示す図である。このバックアップ管理テーブル213aは、図5に示されるように、キャッシュメモリ201bの各テーブルb01〜b10の各々に対応する複数の3bitフラグc01〜c10を有する。
この3bitフラグの各々のビットは、[2]ビットめ、[1]ビットめ、[0]ビットめの3ビットからなり、各々、停電時に、対応するテーブルに記憶されたデータに対し、どのような処理を行なうかを識別するためのフラグであり、本実施の形態における各ビットのフラグは、以下の意味を持つ。
まず、3bitフラグの[2]ビットめは、2重書込み(Dual)を行なうか否かを示すビットである。次に、[1]ビットめは、優先度を示すフラグで、フラグが立つもの(即ち1が記憶されているもの)が、立たないものの優先度が低い(Stay)ことを示す。更に、[0]ビットめは、バックアップをスキップするかを判断するフラグで、「1」が立っていれば、停電時、バックアップを行わなくともよいことを示している。
このバックアップ管理テーブル213aは、CPU201dによって管理される。
次に、図4に示した不良ブロック管理テーブル(TBM)213bについて説明する。不良ブロック管理テーブル(TBM)213bは、図2に示したNANDフラッシュ201aの劣化によるライト失敗(Program Fail)、消去失敗(Erase Fail)、リード不可(Read Fail)が発生する不良ブロックを管理するテーブルで、上述したInvalidTableに相当する。そして、CPU201dのファームウェアにて各データが管理される。
具体的に図を用いて説明する。図6は、本実施の形態に示す不良ブロック管理テーブル(TBM)213bのデータ構造の一例を示す図である。本実施の形態における不良ブロック管理テーブル(TBM)213bは、NANDフラッシュの各ブロックa01〜a20に対応した、項目c01〜c20を有する。この項目は、各々「Dirty」「Invalid」を識別するフラグを有する。
「Dirty」フラグは、バックアップ時に、ユーザデータの転送エラーが発生し、NANDフラッシュ201aへの書込みが正常に終了しなかったか否かを識別するフラグである。
そして、図6に示すようにフラグ1が立っている場合は、Dirtyな状態を示し、フラグ0の場合は、正常にユーザデータの転送が終了した場合を示す。
「Invalid」フラグは、各NANDフラッシュ201aのブロックが「不良ブロック」であることを識別するためのフラグである。このフラグに「1」が格納されている項目に対応するNANDフラッシュ201aのブロックは、バックアップに使用することができないことを示している。
次に、図4の説明に戻り、TRN214について説明する。TRN214は、キャッシュメモリ201bのユーザデータを退避するDMAを示し、メイン制御部214aと、リード部214bと、エラー制御部214cと、データバッファ部214d1と、CRC生成部214d2と、NANDライト制御部214eとを有する。
メイン制御部214aは、不良ブロック管理テーブル(TBM)213bに記憶されているInvalidフラグや、Dirtyフラグの更新を行う処理部である。
このメイン制御部214aは、アドレス指定部214a1、Invalid判定部214a2、及び、Dirty更新部214a3、エラー送信部214a4を有する。
アドレス指定部214a1は、不良ブロック管理テーブル(TBM)213bのアドレス管理を行なう。また、Invalid判定部214a2は、不良ブロック管理テーブル(TBM)213bに記憶されている各項目のInvalidフラグを元に対象となるNANDフラッシュ201aのブロックが不良か否かを判定する。
更に、Dirty更新部214a3は、エラー制御部214cのエラー検出に基づき、不良ブロック管理テーブル(TBM)213bに記憶されている各項目のDirtyフラグを更新する。
また、エラー送信部214a4は、エラー制御部214cのエラー検出結果を、監視FPGAIF制御部216を制御して、監視FPGA201hへ送信するものである。
また、メイン制御部214aは、停電発生時に、キャッシュメモリ201bのリード開始をリード部214bに要求する制御も行なう。
次に、リード部214bは、停電発生時に、キャッシュメモリ201bのデータの少なくとも一部を、NANDフラッシュ201aへ退避させる制御部である。
このリード部214bは、フラグ判定部220と、キャッシュアドレス管理部221と、リード制御部222とを有する。
フラグ判定部220は、図4に示すように、バックアップ完了フラグ220aを有する。このバックアップ完了フラグ220aは、図7に示されるように、[0][1][2]の3bitで形成されている。
各々のビットは、それぞれ1回目のバックアップ各々のバックアップ処理が完了したかを示すフラグである。
フラグ判定部220は、停電時、種類の異なる3回のデータ読み出しを、後述するリード制御部222に指示する。
1回目のバックアップ処理は、バックアップ管理テーブル213a内の3bitフラグの[1]ビットめ(Stay)及び[0]ビットめ(skip)に「0」が格納されている3bitフラグに対応した、キャッシュメモリ201bのブロックに記憶されているデータのバックアップ処理である。即ち、1回目のバックアップ処理は、優先順位が低くなく、スキップ対象ではないキャッシュメモリ201bのブロックのデータを、NANDフラッシュ201aへ退避させる処理を行なうものである。
また、2回目のバックアップ処理は、バックアップ管理テーブル213a内の3bitフラグの[1]ビットめ(Stay)に「1」が格納されている3bitフラグに対応した、キャッシュメモリ201bのブロックに記憶されているデータのバックアップ処理である。即ち、2回目のバックアップ処理は、キャッシュメモリ201bのブロックのデータを、NANDフラッシュ201aへ退避させる処理を行なうものである。
更に、3回目のバックアップ処理は、バックアップ管理テーブル213a内の3bitフラグの[2]ビットめ(Dual)に「1」が格納されている3bitフラグに対応した、キャッシュメモリ201bのブロックに記憶されているデータのバックアップ処理である。3回目のバックアップされるデータは、1回目のバックアップ処理にて既にNANDフラッシュ201aに退避されているデータであるので、2度書込みがなされることにとなる。
TBM送信部218は、フラグ判定部220のバックアップ完了フラグ220aの書込みにおいて、「[2]3rd」フラグが「1」になったことを検出すると、監視FPGAIF制御部216を制御し、監視FPGA201hに対し、バックアップ管理テーブル(TBM)213b内のデータ、及び、バックアップが完了したことを示す情報を送信する。
キャッシュアドレス管理部221は、キャッシュデータのキャッシュメモリ201bにおける位置を示すキャッシュアドレスを管理し、管理しているキャッシュアドレスをフラグ判定部220に出力する処理部である。
リード制御部222は、キャッシュメモリ201bとの通信を行なうキャッシュIF制御部217を介して、フラグ判定部220が指示するキャッシュメモリ201bの各テーブルのキャッシュデータの読み出しを行なう。読み出したデータは、エラー制御部214c、データバッファ部214d1へ出力する。
エラー制御部214cは、転送エラーが発生した場合、転送エラーが発生したNANDブロックを識別するアドレスをメイン制御部214aに通知する。メイン制御部214aのDirty更新分214a3は、この通知を受信すると、不良ブロック管理テーブル(TBM)213bのDirtyフラグの更新を要求する。
データバッファ部214d1は、リード制御部222から入力されたキャッシュデータのデータを化け防止のために、XOR(排他的論理和)演算を行って、パリティデータを生成し、キャッシュデータにXORパリティを付加する。
CRC生成部214d2は、CRC(Cyclical Redundancy Check)とAID(Area ID)からなる冗長ビットをユーザデータに付加して、付加したユーザデータを保持するためのバッファを有し、そのバッファに記憶されているユーザデータをNANDライト制御部214eに出力する。
NANDライト制御部214eは、NANDフラッシュ201aの各ブロックが識別されるアドレスを有し、さらに、IF制御部215を介して、CRC生成部214d2から出力されたユーザデータをNANDフラッシュ201aに出力し、書込みを行う。
さらに、NANDライト制御部214eは、キャッシュデータをNANDフラッシュ201aに書込む際に、転送エラーが発生し、書込みに失敗した場合、対応するブロックの識別データをエラー制御部214cに出力する。
IF制御部215は、TRN214とNANDフラッシュ201aとの各種データのやり取りを制御するインターフェースである。
図1に示したSCU(Super Capacitor Unit)201eについて補足する。SCU201eは、電解コンデンサなどの大容量コンデンサを示し、RAID装置200に停電が発生した際に、バッテリーフリーで、CM201に電力を供給する。このSCU201eは、図示しない電源装置が、CM201へ供給する電力を利用して蓄電を行い、停電時、蓄電していた電力を放電する事で、CM201への電力を供給する。上記したように、大容量のコンデンサで形成しているため、一時的に電力の供給が可能ではあるものの、長時間の連続てきな電力供給は困難である。本実施の形態では40秒程度で、電力の供給が出来なくなるものとする。
EXP(エキスパンダ)201fは、CPU201dとHDD203a〜HDD203zとの間で送受信されるユーザデータを中継する処理部である。
PSU(Power Supply Unit)202は、外部からRAID装置200へ電力を供給する為の装置で、外部からの電力供給がなくなる、即ち、停電が発生した場合、RAID装置200への電力の供給が停止してしまう。この停電時は、SCU201eが放電することにより、RAID装置200へ電力が供給される。
HDD203a〜HDD203zは、RAIDグループを構成し、高速性や安全性のレベルに応じて、データが振り分けられており、ユーザデータの書込みやプログラムを記憶する記憶媒体(ディスク)等を有する。
また、監視FPGA201hは、MRAM201gへの書込み・読み込みを行なうものであり、FPGA201c、CPU201dと直接通信が可能で、FPGA201c、CPU201dからの指示に応じて、MRAM201gへのアクセスを行なう。また、監視FPGA201hは、タイマ201h1を有している。
さらに、MRAM201gは、不揮発性のメモリの一種であり、NANDフラッシュに比べ信頼性が高い。
MRAM201g内の構成について、図8を用いて説明する。
MRAM201gは、図8に示されるように、セッティング領域201g1、完了フラグ記憶領域201g2、エラーログ記憶領域201g3、TBM記憶領域201g4の4つの記憶領域を有する。
このうち、完了フラグ記憶領域201g2は、完了フラグを記憶する領域と記憶された際の経過時間(後述)が記憶される。
また、エラーログ記憶領域201g3も、エラーログと共に経過時間が記憶される。さらにTBM記憶領域201g4も、TBM213bのデータと経過時間とが対応付けて記憶される。
これらの記憶は、監視FPGA201hによって行われる。
次に、本実施の形態のRAID装置の通電時の処理について図9を用いて説明する。
まず、本実施の形態のRAID装置200のCPU201dは、図示しないホストからのリクエストを受信する(ステップS1001)と、リクエストの内容がリード要求か否かを判定する(S1002)。
S1002にて、ホストから受信したリクエストがリード要求であった場合、CPU201dは、PSU202のリード要求に含まれるHDD203a〜z内のアクセス位置を示すディスクアドレスを取得する。そしてCPU201dは、このディスクアドレスに対応するデータが、キャッシュメモリ201b内の各テーブルb01〜b10に記憶されているか検索を行う(ステップS1003)。
ここで、CPU201dは、ホストから要求されているデータを、キャッシュメモリ201bのテーブルb01〜10のいずれかから取得できた場合(ステップS1004、Yes)、処理をステップS1008へ移行する。
一方、キャッシュメモリ201bからリードデータを取得しなかった場合(ステップS1004、No)、CPU201dは、キャッシュメモリ201bにホストからのリクエストに含まれるディスクアドレスのデータを記憶する為のテーブルを確保する(ステップS1005)。具体的には、CPU201dは、キャッシュメモリ201b内のテーブルb01〜b10に、リクエストに含まれるディスクアドレスのデータを記憶する容量分のデータを記憶するだけの空きテーブル(キャッシュデータが入っていないテーブル)が存在すれば、それを確保する。もし、空きテーブルが存在しなければ、CPU201dは、各テーブルb01〜b10に記憶されているキャッシュデータのうち、記憶した時間が長いデータを記憶したテーブルのデータを、開放して空きテーブルを作ることにより、テーブルの確保を行なう。また、テーブルの開放にあたり、開放するテーブルに対応するバックアップ管理テーブル213aの3bitフラグを全てのビットを「0」に更新する。
そして、CPU201dは、FPGA201cに対し、該ステージングの対象となるテーブルを通知する(S1006)。この通知を受信したFPGA201cのメイン制御部214aは、キャッシュアドレス管理部221は、対象テーブルに対応したバックアップ管理テーブル213aの3bitフラグの[0]bitめ、即ち、skipフラグを「1」に更新する。
その後、CPU201dは、ステージング処理を行なう(S1007)。
このステージング処理は、具体的には、まず、CPU201dが、Exp201fを介して、HDD203a〜HDD203zからリード要求に含まれていたディスクアドレスのデータを取得する。そして、CPU201dは、キャッシュメモリ201bの確保領域に、取得したデータをコピーすることにより実行される。
そして、CPU201dは、取得したデータをホストへ送信し、ステップS1001の処理へ移行する。
なお、CPU201dは、S1002の、リード要求の判定処理において、PSU202から受信したリクエストが、リード要求でなかった場合(S1002:No)、このリクエストがライト要求かを判定する(S1009)。
この処理で、Yes、即ち、ライト要求であると判定した場合(S1009:Yes)、CPU201dは、キャッシュメモリ201bにライト要求に含まれるアドレスと同一アドレスのデータが格納されていないか確認する(S1010)。
ここで、キャッシュデータがないと判定された場合(S1010:No)、CPU201dは、キャッシュメモリ201bのキャッシュ領域の確保処理を行なう(S1011)。この処理は、前述したS1005の処理と同様であるので、説明を省略する。
次に、CPU201dは、ライト要求が、構成情報などを含む特定領域への書込みかを確認する(S1012)。この確認において、特定領域への書込みであると判断した場合、CPU201dは、FPGA201cへ通知を行なう(S1013)。この通知を受信したFPGA201cのメイン制御部214aは、キャッシュアドレス管理部221に、バックアップ管理テーブル213aのキャッシュ確保領域となったテーブルに対応する3bitフラグの[2]ビットめ(Dual)のフラグを「1」に更新させる。
そしてCPU201dは、キャッシュ確保領域となったキャッシュメモリ201bのテーブルに対し、PSU202から、Write要求に続けて送られてくるデータを記憶する(S1014)。
そして、CPU201dは、Exp201fを制御し、ホストからWrite要求に続けて送られてくるデータを、HDD203a〜zのうち、Write要求に含まれるディスクアドレスに対して書込みを行なう(S1016)。
なお、S1010の処理において、Write要求に含まれるディスクアドレスに含まれるデータが、既にキャッシュメモリ201bに存在した場合、CPU201dは、キャッシュメモリ201bに存在するデータを、ホストからWrite要求に続けて送られてくるデータに更新し(S1015)、S1016の処理に移行する。
CPU201dは、S1016の処理が完了すると、S1001の処理へ移行する。
更に、CPU201dは、S1009の処理において、受信したリクエストがライト要求でもないと判断した場合、受信したリクエストがコピー要求か否かを判定する(S1017)。
ここで、CPU201dは、受信したリクエストがコピー要求でもないと判断した場合(S1017:No)、その他、リクエストに応じた処理を行い(S1023)、S1001の処理へ移行する。
また、CPU201dは、受信したリクエストがコピー要求であると判断した場合(S1017:Yes)、コピー元となるデータが、キャッシュメモリ201bのテーブルb01〜b10のいずれかに記憶されているか、確認する(S1018)。
ここで、コピー元となるデータがキャッシュメモリ201bのテーブルb01〜b10のいずれにも記憶されていない場合(S1018:No)、キャッシュメモリ201bのキャッシュ領域を確保する処理を行なう(S1019)。この処理は、前述のS1005の同様の処理であるので、説明を省略する。
そして、CPU201dは、コピー要求に基づきステージング処理を行ったことを、FPGA201cへ通知する(S1020)。この通知を受信したFPGA201cのメイン制御部214aは、キャッシュアドレス管理部221に、バックアップ管理テーブル213aのキャッシュ確保領域となったテーブルに対応する3bitフラグの[1]ビットめ(Stay)のフラグを「1」に更新させる。
次にCPU201dは、Exp203を制御して、コピー要求で指定されているコピー元のHDDのデータを読み出し、領域確保したキャッシュメモリ201bのテーブルに書き込む(S1021)。
そしてCPU201dは、Exp203を制御して、キャッシュ201に書き込まれたコピー元データをコピー先のHDDへ書込むことによりコピー処理を行なう(S1022)。
なお、CPU201dは、S1018の処理において、コピー元となるデータがキャッシュメモリ201bのテーブルb01〜b10のいずれかに記憶されていると判定した場合は、S1019〜S1021のステージングに関する処理を行うこと無く、上記したS1022の処理へ移行する。
CPU201dは、S1022の処理を完了すると、S1001の処理へと移行する。以上のように、CPU201d、及び、FPGA201cの処理により、バックアップ管理テーブル213aの各3bitフラグc01〜c10は、以下のようなステータスとなる。
まず、構成情報などが入っている様な重要な領域のキャッシュメモリ201bのテーブルに対応するバックアップ管理テーブル213aの[2]bit(Dual)めは「1」となる。即ち、このテーブルに記憶されているデータは、停電時のバックアップ時に、二重書き込みの対象となる。
また、コピー命令に基づき、ステージングを行ったキャッシュメモリ201bのテーブルに対応するバックアップ管理テーブル213aの[1]bit(Stay)めが「1」となる。再度コピーをやり直す際に、キャッシュメモリ201bにデータが存在している方が、コピー元のデータを保存しているHDDの負荷を軽くできる。よってコピー元のデータは、キャッシュメモリ201bに保存されていることが好ましい。しかし、そもそもコピー命令の場合、コピー元データは、HDD203a〜zのいずれかに存在しており、データが無くなってしまうことがないので、その他の領域のデータより優先度を低くする。
更に、read命令に基づき、ステージングを行ったキャッシュメモリ201bのテーブルに対応するバックアップ管理テーブル213aの[0]bit(Skip)めが「1」となる。read命令の対象データは、HDD203a〜zのいずれかに存在しており、データが無くなってしまうことがない。加えて、Read命令は、Copy命令のように、復電直後に再度同じ命令が繰り返されることがなく、Read命令にて取得したデータがキャッシュメモリ201bに無いことで、復電時に負荷増加してしまう可能性も少ない。
よって、本実施の形態において、Read命令を取得した対象データは、バックアップの必要性が小さいとして、Skip、即ち、バックアップを行わないこととしている。
なお、上記CPU201dの処理を行った結果、バックアップ管理テーブル213aの全ビットが「0」を示している3bitフラグは、Write命令に基づくデータをキャッシングしていることを示す。Write命令に基づくデータは、ホストから受信したデータであり、停電のタイミングによっては、HDD203a〜zのいずれかに格納される前のデータも含まれている可能性がある。よって、停電時には、HDD203a〜zより、優先度を高めてバックアップされる必要がある。
よって、後述する停電時の処理において、このWrite命令は、二重バックアップ対象とされている構成情報などの特定情報と共にNANDフラッシュ201aへのバックアップが行われる。
次に、これまで説明してきたキャッシュメモリ201b、バックアップ管理テーブル213a、不良ブロック管理テーブル(TBM)213b、NANDフラッシュ201a、及び監視FPGA201hを用いた、停電発生時に、RAID装置200で行われる処理について図10以降の図を用いて説明する。
まず、監視FPGA201hの処理について図10のフローチャートを用い、説明する。
監視FPGA201hは、外部電源からの電力の供給が停止したことを検出する検出機能を有している。
この監視FPGA201hは、外部電源からの電力の供給停止(停電)を検出した場合(S2001)、CPU201dに対して、停電通知を行なう(S2002)。
そして、監視FPGA201hは、タイマ201h1をセットするとともに、MRAM201gに停電発生フラグを書きこむ(S2003)。このタイマ201h1は、上記したように、セットされてからの経過時間を出力するものである。
そして、監視FPGA201hは、FPGA201cからエラーログを受信したかを確認する(S2004)。
FPGA201cからエラーログを受信した場合、監視FPGA201hは、MRAM201gのエラーログ記憶領域201g3へ、受信したエラーログと、タイマ201h1の出力値、即ち経過時間とを書きこむ(S2005)。
監視FPGA201hは、該書込みが完了、もしくは、S2004の処理において、FPGA201cからのエラーログを受信しなかったと判断した場合、FPGA201cから、TBM213bを受信したかを確認する(S2006)。
ここで、TBM213bを受信したかを受信したと判断した場合、監視FPGA201hは、受信したTBM213bと、タイマ201h1の出力値、即ち経過時間とを書きこむ(S2007)。
監視FPGA201hは、該書込みが完了、もしくは、S2006の処理において、FPGA201cからのTBM213bを受信しなかったと判断した場合、タイマ201h1の値が30秒以上経過したことを示していないか確認する(S2008)。
ここで、30秒経過していないと判断した場合、監視FPGA201hは、S2004の処理へ移行する。
また、30秒経過していると判断した場合、監視FPGA201hは、装置の電源を
切断する処理を行い(S2009)、処理を完了する。
次に、CPU201dの処理について、図11のフローチャートを用いて説明する。
CPU201dは、他の処理と並行しながら監視FPGA201hからの停電通知があったかを判断している(S2050、S2051)。
ここで、監視FPGA201hからの停電通知を受信したと判断した場合、FPGA201cへ停電処理のシーケンスを起動すべく、指示を行なった後(S2052)、Sleepモードへ移行する(S2053)。
このように、通電時に本装置におけるキャッシュメモリ201bの管理を含むRAIDの制御を行なうCPU201dは、監視FPGA201hからの停電通知を行なうと、FPGA201cの停電処理のシーケンス起動指示を行なうのみで、実質的な退避処理は行わない。本実施の形態において、この退避処理は、FPGA201c及び監視FPGA201hによって行われる。
このようにする事で、停電時には、消費電力の大きいCPU201dを使用せずにキャッシュメモリ201b上のデータの退避処理を行ない、装置全体の消費電力を下げることで、SCU201eに蓄電された電力をより長時間使用することを可能としている。
次に、本実施の形態において、停電が起きる直前の、キャッシュメモリ201b、バックアップ管理テーブル213a、FPGAフラッシュ201a、不良ブロック管理テーブル(TBM)213b、及びバックアップ完了フラグ220aの状態について、図12を用いて、補足説明する。
なお、図12の状態は、あくまで一例であり、通電時は、キャッシュメモリ201bに記憶されたデータの内容は、随時更新されており、停電直前に、必ず図12になるというわけではない。
まず、上記処理によって、バックアップ管理テーブル213aの各3bitフラグc01〜c10は、対応するキャッシュメモリ201bの各テーブルb01〜b10に記憶されたデータの種別に応じて、内容が決定している。
本実施の形態の場合、図12に示すように、キャッシュメモリ201bのテーブルb01に構成情報が記憶されているため、対応する3bitテーブルc01の[2]bitめ(Dual)には「1」が格納されている。
また、Copy命令に基づき取得された、テーブルb04及びb10のデータに対応する3bitフラグc04,c10の「1」bitめのフラグ(Stay)には「1」が格納されている。
更に、Read命令に基づき取得された、テーブルb02及びb08のデータに対応する3bitフラグc02,c08の「0」bitめのフラグ(Skip)には「1」が格納されている。
また、FPGAフラッシュ201の不良管理テーブル213bの項目d05の[Invalid]フラグには「1」が格納されている。即ち、この項目d05に対応するNANDフラッシュ201aのブロックa05は、不良ブロックであることを示している。
この状態におけるFPGA201cの処理について、図13を用いて説明する。
上記したように、監視FPGA201hは、停電を検出すると、CPU201dへ停電通知を送信し、これを受信したCPU201dは、この停電通知に応じて、FPGA201cへ停電処理のシーケンス起動を指示する。
FPGA201cは、他の処理と並行して、この停電処理のシーケンス起動指示を受信したかを判断している(S3000,S3001)。
そして、まず、FPGA201cは、バックアップ管理テーブル213aの3bitフラグc01〜c10のうち、[1]bitめ(Stay)、[0]bitめ(Skip)が共に「0」となっている領域のキャッシュメモリ201bのデータを、NANDフラッシュ201aへ書き込む処理を行なう(S3002)。
次に、メイン制御部214aは、リード制御部222に、バックアップ管理テーブル213aの3bitフラグc01〜c10のうち、[1]bitめ(Stay)が共に「1」となっている領域のキャッシュメモリ201bのデータを、NANDフラッシュ201aへ書き込む処理を行なう(S3003)。
さらに、FPGA201cは、バックアップ管理テーブル213aの3bitフラグc01〜c10のうち、[2]bitめ(Dual)が「1」となっている領域のキャッシュメモリ201bのデータを、NANDフラッシュ201aへ書き込む処理を行なう(S3004)。
そして、これらの処理が完了すると、FPGA201cは、不良ブロック管理テーブル(TBM)213b内のデータを監視FPGA201hへ送信し(S3005)、処理を完了する。
なお、S3002,S3003、S3004の処理は、対象となるキャッシュメモリ201bのデータの領域がことなる以外は、同じ処理を行っている。
この処理について、図14を用いて説明する。
まず、FPGA201cのメイン制御部214aは、リード制御部222に、バックアップ管理テーブル213aの3bitフラグc01〜c10を参照して、対象となるキャッシュメモリ201bのデータを読み出せる(S4001)。例えば、図13のS3002の処理において、FPGA201cは、3bitテーブル213aの[1]bitめ(Stay)、[0]bitめ(Skip)が共に「1」ではないものに対応する、キャッシュメモリ201bのデータを読出させる。
図12の例では、バックアップ管理テーブル213aのc01,c03,c05,c06,c07,及びc09が該当するので、リード制御部222は、キャッシュメモリ201bのテーブルb01、b03、b05、b06、b07、及びb09のデータを読み出す事になる。
リード制御部222で読み出されたデータは、CRC制御部214d2を経由することにより、CRCコードが付与される(S4002)。そしてCRCコードが付与されたデータは、図15に示されるように、NANDライト制御部214eが、不良ブロック管理テーブルが参照して、[0]Invalidフラグもしくは[1]dirtyフラグが[1]となっていないブロックに書き込みを行なう(S4003)。
なお、この際、CRCコード付与と共に、読み出し元であるキャッシュメモリ201bのテーブル名(b01など)を付与しても良い。このようにすれば、復電時、キャッシュの復元を行なう際に、FPGA201cは、この付与されたテーブル名を参照して、キャッシュメモリ201bの各テーブルb01〜b10の各々に、停電時に格納されていたデータと同じデータを再格納させることが可能となる。
この際、NANDライト制御部214eは、NANDフラッシュ201aのブロックに書き込みを行う度に、NANDフラッシュ内部状態を確認し、書き込みエラーが起きていないかの検証を行なう(S4004)。
ここで、書き込んだデータにエラーがあると判定された場合(S4005)、エラー送信部214a4は、監視FPGAIF制御部216を制御して、監視FPGA201hへ、どのブロックのエラーかを示すエラーログを送信する(S4006)。また、この際、NANDライト制御部214eは、不良ブロック管理テーブルのエラーを起こしたNANDフラッシュ201aのブロックに対応する領域の[1]Invalidを「1」に更新し(S4007)、S4003へ移行する。上記したようにS4003の処理では、NANDライト制御部214eが、不良ブロック管理テーブルが参照して、[0]Invalidフラグもしくは[1]dirtyフラグが[1]となっていないブロックに書き込みを行なう為、エラーを起こしたブロックへの書込みは行われない事となる。
例えば、図15に示されるように、キャッシュメモリ201bのテーブルb09のデータをNANDフラッシュ201aのブロックa07に記憶させ、検証でエラーが検出された場合、NANDライト制御部214eは、次のブロックa08に再書き込みを行うことになる。
そして、データが正常に書き込めた場合、メイン制御部214aは、キャッシュメモリ201bの対象データがすべて書き込まれたかを確認し(S4008)、書きこまれていなければ、S4001へ移行し、キャッシュメモリ201bから、次のデータを読み出し、すべてのデータの転送が行われるまで同様の処理を行う。
なお、S4007にてキャッシュメモリ201bの対象データがすべて書き込まれたと判断した場合、S3002,S3003,S3004において、メイン制御部214aは、以下の処理を行う。
S3002の場合、メイン制御部214aは、図15に示されるように、バックアップ完了フラグ220aの[0](1st)Bitめのフラグを「1」にする。
S3003の場合、メイン制御部214aは、図16に示されるように、バックアップ完了フラグ220aの[1](2nd)Bitめのフラグを「1」にする。
S3004の場合、メイン制御部214aは、図17に示されるように、バックアップ完了フラグ220aの[3](3rd)Bitめのフラグを「1」にする。
なお、この処理では、Skipフラグに「1」が格納された3bitフラグc02,c08に対応するキャッシュメモリ201bのテーブルb02,b08に格納されたデータは、NANDフラッシュ201aへの格納は行われない。即ち、これらのデータのバックアップは行われない。
以上のように、本実施の形態では、停電発生時にキャッシュデータをNANDフラッシュ201aへバックアップする際、3bitフラグに基づいて、キャッシュデータのバックアップの優先順位及びバックアップの可否の判定を行っている。
このように構成することで、停電時、構成情報などの重要情報や、Writeデータ等のHDD203a〜zのいずれにも記憶されない可能性があるデータを、先にNANDフラッシュ201aへ格納させることが可能となる。上記したようにSCU201eは、一時的にしか電力を供給できないため、先にバックアップを行なうほうが、データのバックアップの確実性が増すことになる。即ち、本実施の形態では、重要なデータほど優先的にバックアップされることとなる。
更に、特に重要なデータに対しては、他のデータのバックアップのあと、二重書き込みを行なうことにより、より確実なバックアップを可能としている。なお、本実施の携帯において、二重書き込みは、Copy命令など、バックアップ優先度が低いデータの格納迄終わったあとに、2回目の書込みを行っている。これは、停電発生から早い時点で、かつ、一度はCRCによる書込みチェックを行った上でデータをNANDフラッシュ201aに格納させており、1回である程度確実に保存が出来ているため、2回目書き込みは、万が一、そのデータが消失した場合の保険として格納させるものであるていどの意味合いがあるためである。
なお、本実施の形態では、FPGA201cの処理によりバックアップ処理を行っている。これは、FPGA201cの高速性と省電力性によるものである。
CPU201d、FPGA201c、及び、監視FPGA201hについて、上記してきた処理が行われた場合について図18を使用して説明する。
まず、監視FPGA201hは、停電を検出すると、CPU201dへ停電通知を送信する(S5001)とともに、タイマ201h1を起動する(S5002)。
また、監視FPGA201hは、停電が発生した事を示す停電発生フラグをMRAM201gへ記憶する。これら処理は、図10に示されるS2001〜S2003の処理に基づく。
監視FPGA201hからの停電通知を受信したCPU201d(S5003)は、FPGA201cへシーケンス起動の指示を行ったあと(S5005)、Sleepモードへ移行する(S5006)。これらの処理は、上記した図11の処理に基づくものである。
このシーケンス起動指示を受信したFPGA201cは、NANDフラッシュ201aへの書込・検証を行う(S5007)。この検証時、書き込みエラーを検出した場合(S5008)、FPGA201cは、監視FPGA201hにエラーログを送信し(S5009)、不良ブロック管理テーブル(TBM)213bを更新する(S5011)。これらの処理は、図14のフローチャートの処理に基づくものである。
このエラーログを受信した監視FPGA201hは、タイマ201h1の経過時間とともに該エラーログをMRAM201gへ書きこむ(S5010)。この処理は、S2004,S2005の処理に基づく。
その後、FPGA201cによる再書き込みなどにより(S5011〜S5013)、キャッシュデータ201bの書込が完了すると、FPGA201cは、不良ブロック管理テーブル(TBM)213bを、監視FPGA201hへ送信する(S5014)。これらの処理は、図10のS2006、S2007の処理に基づく。
この不良ブロック管理テーブル(TBM)213bを受信した監視FPGA201hは、タイマ201h1の経過時間と共に、該不良ブロック管理テーブル(TBM)213bをMRAM201gへ書きむ(S5015)。そして、監視FPGA201hは、書き込が完了したことを示す完了フラグをMRAM201gへ書きむ(S5016)。その後、監視FPGA201hは、タイマ201h1が、30秒経過したことを検出すると(S5017)、装置の電源をOFFにする(S5018)。これらの処理は、図10のS2008,S2009の処理に基づくものである。
次に、通電が再開された場合についての処理について、図19を用いて説明する。
まず、CPU201dは、電源の再投入に伴い起動すると(S6001)、MRAM201gを参照して、停電発生フラグが記憶されているかを確認する(S6002)。ここで、フラグが記憶されていなければ、図19に示される、それ以降の処理は行わず、通常の起動を行うこととなる。
次に、CPU201dは、MRAM201gに、完了フラグが記憶されているかを確認する(S6003)。ここで、完了フラグが記憶されていない場合は、キャッシュの書込に失敗したとして、キャッシュメモリ201bの復元を行わず、通常の起動を行う。
また、完了したと判断した場合、MRAM201gに記憶している不良ブロック管理テーブル(TBM)213bをFPGA201cへ転送する(S6004)。
ここで、不良ブロック管理テーブル(TBM)213bを受信したFPGA201cは、受信した不良ブロック管理テーブル(TBM)213bを格納する(S6005)。
そして、CPU201dからのキャッシュメモリへの書込指示をFPGA201cに指示すると(S6006)、FPGA201cが、不良ブロック管理テーブル(TBM)213bを参照しながら、適宜NANDフラッシュ201aから、記憶しているキャッシュデータをCPU201dへ転送する(S6007)。
CPU201dは、この転送されたキャッシュデータを、キャッシュメモリ201bに書きこむ(S6008)。そして、キャッシュメモリ201bへ書込が完了すると(S6009)、CPU201dは、監視FPGA201hへ、MRAM201gに記憶されている内容(停電ログ)をすべて消去する指示を行う(S6010)。
この処理を受信した監視FPGA201hは、MRAM201gの停電時のログ内容を消去する(S6011)。
そして、CPU201dは、初期化が完了したことを示すフラグを監視FPGA201hへ転送し(S6012)、監視FPGA201hがこのフラグを記憶する(S6013)ことで、該復電処理は完了する。
この情報を受信した監視FPGA201hは、該フラグを記憶する。
以上によって、復電時のキャッシュの復元が行われる。
以上のように、本実施の形態では、CPU201dを、停電時のキャッシュメモリ201bのNANDフラッシュ201aへの転送に利用しない。CPU201dは、汎用プロセッサを使用することが多く、RAIDを制御するための複雑な処理な処理を可能としている。しかしながら、複雑な処理が可能である反面、消費電力が大きいことが多い。そこで、本実施の形態のように、FPGA201c、監視FPGA201hのよう別途停電時用の構成要素を有していれば、停電時に、CPU201dを使用しなくとも、MRAM201gへの書込を行うことができる。このFPGA201cや監視FPGA201hは、消費電力の関係上、高速化したり、複雑な処理を行わせることが困難である。
そのため、従来ではCPU201dが、停電時に行っていた、エラーログの生成などの複雑な処理を行うことができない。このエラーログは、停電時のFPGA201cの書込に当たり、新たに不良と判断されたブロックが、どのブロックかなどの情報を記憶しているテーブルである。
しかしながら、ファイルをまとめて保存するような複雑な処理を行わずとも、同様の記憶を行わせるために、本実施の形態では、監視FPGA201hに、タイマ201h1を持たせると共に、単純に、FPGA201cから受信した経過時間とともに記憶させておくようにしている。
これにより、1つのファイルにまとめるような複雑な処理を行わずとも、MRAM201gに記憶されたエラーログを参照すれば、新たにNANDフラッシュ201aでエラー検出されたブロックを確認することも可能となる。
200 RAID装置
201 CM
201a NANDフラッシュ
201b キャッシュメモリ
201c FPGA
201d CPU
201e SCU
201f Exp
201g MRAM
201h 監視FPGA
202 PSU
203a〜z HDD
211、215 IF制御部
212 アクセスコントローラ
213 アクセス管理テーブル
213a バックアップ管理テーブル
213b 不良ブロック管理テーブル(TBM)
214 TRN
214a メイン制御部
214b リード部
214c エラー制御部
214d1 データバッファ部
214d2 CRC生成部
214e NANDライト制御部
216 監視FPGAIF制御部
217 キャッシュIF制御部
218 TBM送信部
220a バックアップ完了フラグ

Claims (3)

  1. キャッシュメモリを備え、外部電源からの通電時には、ホストからの要求に応じてディスク装置に対して該キャッシュメモリを介してデータの読み込みまたは書き込みを行い、該外部電源の電力供給停止時には、該キャッシュメモリ内のデータを退避させる退避処理装置であって
    前記外部電源からの電力が供給されなくなった際に放電を行なう事で、前記退避処理装置への電力を供給する大容量コンデンサと、
    前記外部電源からの通電時には、前記ホストからの要求に応じて前記ディスク装置に対して読み込みまたは書き込みを行うプロセッサと、
    前記キャッシュメモリ内のデータの退避のための第1の不揮発性メモリと、
    第2の不揮発性メモリと、
    前記第1の不揮発性メモリへのデータの書き込みができなかった領域の情報を記録した管理テーブルを備え、かつ前記キャッシュメモリ内のデータを前記第1の不揮発性メモリへ書き込む第1のFPGAと、
    前記第1のFPGAから送られてくる情報を、停電検知からの経過時間とともに前記第2の不揮発性メモリへ書きむ第2のFPGAと、を有し、
    前記外部電源からの電力が供給されなくなったときには、
    前記第1のFPGAは、
    前記プロセッサから、停電処理の開始指示を受けると、前記キャッシュメモリに記憶されているデータを前記第1の不揮発性メモリに書き込む処理を開始するとともに、該書き込む処理に当たり、該書き込が正常に行われたかを検証するとともに、該検証にて正常に書きまれていない場合、前記第1の不揮発性メモリの正常な書き込ができなかった領域を示す情報を、前記管理テーブルに格納するとともに、前記第2のFPGAへ送信し、前記キャッシュメモリ内のデータの前記第1の不揮発性メモリへの退避が完了すると、前記管理テーブルを前記第2のFPGAへ送信し、
    前記第2のFPGAは、
    停電を検知すると、前記プロセッサに通知するとともにタイマをセットし、かつ停電発生フラグを前記第2の不揮発性メモリに書き込み、
    前記第1のFPGAから前記第1の不揮発性メモリへの正常な書き込ができなかった領域を示す情報が送られてくると、停電検知からの経過時間とともに第2の不揮発性メモリに書き込み、
    前記第1のFPGAから前記管理テーブルを受信したときには、停電検知からの経過時間および前記キャッシュメモリ内のデータの前記第1の不揮発性メモリへの退避が完了したことを示す完了フラグとともに前記第2の不揮発性メモリに格納し、
    前記プロセッサは、
    前記第2のFPGAから停電検知通知を受信すると、前記第1のFPGAに対して停電処理の開始を指示した後、スリープ状態に入る、
    ことを特徴とする退避処理装置。
  2. 前記第1の不揮発性メモリは、NANDフラッシュメモリであり、
    前記第2の不揮発性メモリは、磁気抵抗メモリである
    ことを特徴とする請求項1に記載の退避処理装置。
  3. 前記第2のFPGAは、停電の検出から所定時間後に、退避処理装置への前記大容量コンデンサからの電力供給を止め
    前記外部電源が復電した時には、
    前記プロセッサが、
    前記第2の不揮発性メモリを参照して前記停電発生フラグ、前記完了フラグが記憶されていることを確認できた場合は、前記管理テーブルを前記第2の不揮発性メモリから前記第1のFPGAへ転送し、かつ前記第1の不揮発性メモリから前記キャッシュメモリへのデータの書き戻しを前記第1のFPGAに指示し、
    前記第1のFPGAが、
    前記プロセッサから前記第1の不揮発性メモリから前記キャッシュメモリへのデータの書き戻しの指示を受けると、前記管理テーブルを参照しながら、前記第1の不揮発性メモリから前記キャッシュメモリにデータを書き戻す、
    ことを特徴とする請求項1、または、請求項2に記載の退避処理装置。
JP2011070845A 2011-03-28 2011-03-28 退避処理装置 Active JP5742362B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011070845A JP5742362B2 (ja) 2011-03-28 2011-03-28 退避処理装置
US13/402,274 US8862808B2 (en) 2011-03-28 2012-02-22 Control apparatus and control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011070845A JP5742362B2 (ja) 2011-03-28 2011-03-28 退避処理装置

Publications (2)

Publication Number Publication Date
JP2012203862A JP2012203862A (ja) 2012-10-22
JP5742362B2 true JP5742362B2 (ja) 2015-07-01

Family

ID=46928926

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011070845A Active JP5742362B2 (ja) 2011-03-28 2011-03-28 退避処理装置

Country Status (2)

Country Link
US (1) US8862808B2 (ja)
JP (1) JP5742362B2 (ja)

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8129154B2 (en) 2008-06-17 2012-03-06 Genomatica, Inc. Microorganisms and methods for the biosynthesis of fumarate, malate, and acrylate
KR20150098649A (ko) 2012-12-22 2015-08-28 퀄컴 인코포레이티드 비-휘발성 메모리의 이용을 통한 휘발성 메모리의 전력 소비 감소
US9424125B2 (en) * 2013-01-16 2016-08-23 Google Inc. Consistent, disk-backed arrays
CN107341071A (zh) * 2013-08-23 2017-11-10 慧荣科技股份有限公司 存取快闪存储器中储存单元的方法以及使用该方法的装置
ES2676057T3 (es) 2013-10-18 2018-07-16 Huawei Technologies Co., Ltd. Método de memorización de datos, aparato de memorización de datos y dispositivo de memorización
JP6264012B2 (ja) * 2013-12-16 2018-01-24 富士通株式会社 制御装置、及び制御プログラム
JP6121928B2 (ja) * 2014-03-07 2017-04-26 アラクサラネットワークス株式会社 通信装置、及び、データ管理方法
CN105512056A (zh) * 2014-09-24 2016-04-20 中兴通讯股份有限公司 数据保存方法、装置及终端
US10163479B2 (en) 2015-08-14 2018-12-25 Spin Transfer Technologies, Inc. Method and apparatus for bipolar memory write-verify
CN105573789B (zh) * 2015-09-07 2017-08-08 武汉精测电子技术股份有限公司 基于软核处理器的fpga多镜像升级加载方法及装置
CN106557143B (zh) * 2015-09-28 2020-02-28 伊姆西Ip控股有限责任公司 用于数据存储设备的装置和方法
US9971528B2 (en) * 2016-03-01 2018-05-15 International Business Machines Corporation Cold storage aware object replication
US10210056B2 (en) * 2016-03-31 2019-02-19 Netapp, Inc. Methods for filesystem metadata caching to improve failover performance and devices thereof
US10394310B2 (en) * 2016-06-06 2019-08-27 Dell Products, Lp System and method for sleeping states using non-volatile memory components
US10818331B2 (en) 2016-09-27 2020-10-27 Spin Memory, Inc. Multi-chip module for MRAM devices with levels of dynamic redundancy registers
US10437723B2 (en) 2016-09-27 2019-10-08 Spin Memory, Inc. Method of flushing the contents of a dynamic redundancy register to a secure storage area during a power down in a memory device
US10366774B2 (en) 2016-09-27 2019-07-30 Spin Memory, Inc. Device with dynamic redundancy registers
US10192602B2 (en) * 2016-09-27 2019-01-29 Spin Transfer Technologies, Inc. Smart cache design to prevent overflow for a memory device with a dynamic redundancy register
US10628316B2 (en) 2016-09-27 2020-04-21 Spin Memory, Inc. Memory device with a plurality of memory banks where each memory bank is associated with a corresponding memory instruction pipeline and a dynamic redundancy register
US10360964B2 (en) 2016-09-27 2019-07-23 Spin Memory, Inc. Method of writing contents in memory during a power up sequence using a dynamic redundancy register in a memory device
US10446210B2 (en) 2016-09-27 2019-10-15 Spin Memory, Inc. Memory instruction pipeline with a pre-read stage for a write operation for reducing power consumption in a memory device that uses dynamic redundancy registers
US10437491B2 (en) 2016-09-27 2019-10-08 Spin Memory, Inc. Method of processing incomplete memory operations in a memory device during a power up sequence and a power down sequence using a dynamic redundancy register
US10546625B2 (en) 2016-09-27 2020-01-28 Spin Memory, Inc. Method of optimizing write voltage based on error buffer occupancy
US10192601B2 (en) 2016-09-27 2019-01-29 Spin Transfer Technologies, Inc. Memory instruction pipeline with an additional write stage in a memory device that uses dynamic redundancy registers
US10460781B2 (en) 2016-09-27 2019-10-29 Spin Memory, Inc. Memory device with a dual Y-multiplexer structure for performing two simultaneous operations on the same row of a memory bank
JP6802484B2 (ja) * 2017-02-10 2020-12-16 富士通株式会社 ストレージ制御装置、ストレージ制御プログラムおよびストレージ制御方法
KR102200247B1 (ko) * 2017-03-27 2021-01-08 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
JP6924088B2 (ja) * 2017-07-12 2021-08-25 キヤノン株式会社 情報処理装置及びその制御方法、並びにプログラム
US10402337B2 (en) * 2017-08-03 2019-09-03 Micron Technology, Inc. Cache filter
WO2019049224A1 (ja) * 2017-09-06 2019-03-14 株式会社日立製作所 分散ストレージシステム及び分散記憶制御方法
US10481976B2 (en) 2017-10-24 2019-11-19 Spin Memory, Inc. Forcing bits as bad to widen the window between the distributions of acceptable high and low resistive bits thereby lowering the margin and increasing the speed of the sense amplifiers
US10656994B2 (en) 2017-10-24 2020-05-19 Spin Memory, Inc. Over-voltage write operation of tunnel magnet-resistance (“TMR”) memory device and correcting failure bits therefrom by using on-the-fly bit failure detection and bit redundancy remapping techniques
US10529439B2 (en) 2017-10-24 2020-01-07 Spin Memory, Inc. On-the-fly bit failure detection and bit redundancy remapping techniques to correct for fixed bit defects
US10395712B2 (en) 2017-12-28 2019-08-27 Spin Memory, Inc. Memory array with horizontal source line and sacrificial bitline per virtual source
US10395711B2 (en) 2017-12-28 2019-08-27 Spin Memory, Inc. Perpendicular source and bit lines for an MRAM array
US10360962B1 (en) 2017-12-28 2019-07-23 Spin Memory, Inc. Memory array with individually trimmable sense amplifiers
US10424726B2 (en) 2017-12-28 2019-09-24 Spin Memory, Inc. Process for improving photoresist pillar adhesion during MRAM fabrication
US10811594B2 (en) 2017-12-28 2020-10-20 Spin Memory, Inc. Process for hard mask development for MRAM pillar formation using photolithography
US10891997B2 (en) 2017-12-28 2021-01-12 Spin Memory, Inc. Memory array with horizontal source line and a virtual source line
US10840436B2 (en) 2017-12-29 2020-11-17 Spin Memory, Inc. Perpendicular magnetic anisotropy interface tunnel junction devices and methods of manufacture
US10886330B2 (en) 2017-12-29 2021-01-05 Spin Memory, Inc. Memory device having overlapping magnetic tunnel junctions in compliance with a reference pitch
US10424723B2 (en) 2017-12-29 2019-09-24 Spin Memory, Inc. Magnetic tunnel junction devices including an optimization layer
US10840439B2 (en) 2017-12-29 2020-11-17 Spin Memory, Inc. Magnetic tunnel junction (MTJ) fabrication methods and systems
US10367139B2 (en) 2017-12-29 2019-07-30 Spin Memory, Inc. Methods of manufacturing magnetic tunnel junction devices
US10784439B2 (en) 2017-12-29 2020-09-22 Spin Memory, Inc. Precessional spin current magnetic tunnel junction devices and methods of manufacture
US10546624B2 (en) 2017-12-29 2020-01-28 Spin Memory, Inc. Multi-port random access memory
US10438995B2 (en) 2018-01-08 2019-10-08 Spin Memory, Inc. Devices including magnetic tunnel junctions integrated with selectors
US10438996B2 (en) 2018-01-08 2019-10-08 Spin Memory, Inc. Methods of fabricating magnetic tunnel junctions integrated with selectors
CN110147200A (zh) * 2018-02-13 2019-08-20 矽创电子股份有限公司 闪存的控制器及控制方法
US10446744B2 (en) 2018-03-08 2019-10-15 Spin Memory, Inc. Magnetic tunnel junction wafer adaptor used in magnetic annealing furnace and method of using the same
US11210084B2 (en) * 2018-03-09 2021-12-28 Samsung Electronics Co., Ltd. Integrated single FPGA and solid state disk controller
US11107974B2 (en) 2018-03-23 2021-08-31 Spin Memory, Inc. Magnetic tunnel junction devices including a free magnetic trench layer and a planar reference magnetic layer
US20190296220A1 (en) 2018-03-23 2019-09-26 Spin Transfer Technologies, Inc. Magnetic Tunnel Junction Devices Including an Annular Free Magnetic Layer and a Planar Reference Magnetic Layer
US11107978B2 (en) 2018-03-23 2021-08-31 Spin Memory, Inc. Methods of manufacturing three-dimensional arrays with MTJ devices including a free magnetic trench layer and a planar reference magnetic layer
US10784437B2 (en) 2018-03-23 2020-09-22 Spin Memory, Inc. Three-dimensional arrays with MTJ devices including a free magnetic trench layer and a planar reference magnetic layer
US10411185B1 (en) 2018-05-30 2019-09-10 Spin Memory, Inc. Process for creating a high density magnetic tunnel junction array test platform
US10600478B2 (en) 2018-07-06 2020-03-24 Spin Memory, Inc. Multi-bit cell read-out techniques for MRAM cells with mixed pinned magnetization orientations
US10692569B2 (en) 2018-07-06 2020-06-23 Spin Memory, Inc. Read-out techniques for multi-bit cells
US10559338B2 (en) 2018-07-06 2020-02-11 Spin Memory, Inc. Multi-bit cell read-out techniques
US10593396B2 (en) 2018-07-06 2020-03-17 Spin Memory, Inc. Multi-bit cell read-out techniques for MRAM cells with mixed pinned magnetization orientations
US20200026427A1 (en) * 2018-07-23 2020-01-23 Reduxio Systems Ltd. System and method for handling data storage on storage devices
US10650875B2 (en) 2018-08-21 2020-05-12 Spin Memory, Inc. System for a wide temperature range nonvolatile memory
US10699761B2 (en) 2018-09-18 2020-06-30 Spin Memory, Inc. Word line decoder memory architecture
US10971680B2 (en) 2018-10-01 2021-04-06 Spin Memory, Inc. Multi terminal device stack formation methods
US11621293B2 (en) 2018-10-01 2023-04-04 Integrated Silicon Solution, (Cayman) Inc. Multi terminal device stack systems and methods
US11107979B2 (en) 2018-12-28 2021-08-31 Spin Memory, Inc. Patterned silicide structures and methods of manufacture
CN113419683B (zh) * 2021-07-01 2023-07-04 群联电子股份有限公司 存储器存取方法、存储器存储装置及存储器控制电路单元

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06231053A (ja) 1993-02-05 1994-08-19 Toshiba Corp データ退避方式
JPH09311827A (ja) * 1996-05-22 1997-12-02 Fujitsu Ltd データバックアップ装置
JPH09330277A (ja) 1996-06-07 1997-12-22 Mitsubishi Electric Corp ディスクキャッシュシステムにおける停電処理方式及び停電処理方法
WO2006122474A1 (fr) * 2005-05-18 2006-11-23 Ziyi Cheng Circuit et méthode pour améliorer la durée de vie du stockage
JP2006059374A (ja) 2005-09-16 2006-03-02 Hitachi Ltd 記憶制御装置
JP4984721B2 (ja) * 2006-07-28 2012-07-25 ソニー株式会社 データ記憶装置、電力制御方法、並びに、通信装置
JP4437489B2 (ja) * 2006-10-25 2010-03-24 株式会社日立製作所 揮発性キャッシュメモリと不揮発性メモリとを備えたストレージシステム
JP5026102B2 (ja) 2007-02-07 2012-09-12 株式会社日立製作所 ストレージ制御装置及びデータ管理方法
WO2009098777A1 (ja) * 2008-02-08 2009-08-13 Fujitsu Limited バックアップ方法、格納方法、及びディスクアレイ装置
WO2009098776A1 (ja) * 2008-02-08 2009-08-13 Fujitsu Limited バックアップ方法、ディスクアレイ装置及びコントローラ
JP2010086009A (ja) 2008-09-29 2010-04-15 Hitachi Ltd 記憶装置およびメモリ制御方法
JP5458568B2 (ja) 2008-12-25 2014-04-02 ソニー株式会社 不揮発性記憶装置、情報記録システム、及び情報記録方法
US9003118B2 (en) * 2009-01-09 2015-04-07 Dell Products L.P. Systems and methods for non-volatile cache control
JP4691602B2 (ja) * 2009-03-19 2011-06-01 富士通株式会社 データバックアップ方法及び情報処理装置
KR101005164B1 (ko) * 2009-05-29 2011-01-04 주식회사 하이닉스반도체 불휘발성 메모리 소자 및 이의 프로그램 방법
JP4930556B2 (ja) 2009-07-09 2012-05-16 富士通株式会社 退避処理装置、退避処理方法およびストレージシステム
WO2011070611A1 (en) * 2009-12-08 2011-06-16 Hitachi, Ltd. Storage system and storage control apparatus provided with cache memory group including volatile memory and nonvolatile memory
JP5691311B2 (ja) * 2010-09-06 2015-04-01 富士通株式会社 退避処理装置、退避処理方法および退避処理プログラム

Also Published As

Publication number Publication date
JP2012203862A (ja) 2012-10-22
US8862808B2 (en) 2014-10-14
US20120254636A1 (en) 2012-10-04

Similar Documents

Publication Publication Date Title
JP5742362B2 (ja) 退避処理装置
CN101571815B (zh) 信息系统及i/o处理方法
US8943358B2 (en) Storage system, apparatus, and method for failure recovery during unsuccessful rebuild process
US8527693B2 (en) Apparatus, system, and method for auto-commit memory
US20110010499A1 (en) Storage system, method of controlling storage system, and method of controlling control apparatus
CN101923446B (zh) 存储阵列辅助架构
US20190324859A1 (en) Method and Apparatus for Restoring Data after Power Failure for An Open-Channel Solid State Drive
US20150074371A1 (en) Storage array system and non-transitory recording medium storing control program
JP2008204041A (ja) ストレージ装置及びデータ配置制御方法
US10915448B2 (en) Storage device initiated copy back operation
JP4930556B2 (ja) 退避処理装置、退避処理方法およびストレージシステム
US20030204677A1 (en) Storage cache descriptor
US9003140B2 (en) Storage system, storage control apparatus, and storage control method
US8321628B2 (en) Storage system, storage control device, and method
JPH07311661A (ja) 半導体ディスク装置
US20100115310A1 (en) Disk array apparatus
US9514052B2 (en) Write-through-and-back-cache
JP7472341B2 (ja) ストレージシステム及びストレージシステムの制御方法
US8433949B2 (en) Disk array apparatus and physical disk restoration method
JP5691311B2 (ja) 退避処理装置、退避処理方法および退避処理プログラム
JP2006099802A (ja) 記憶制御装置およびキャッシュメモリの制御方法
JP4464656B2 (ja) コンテンツ蓄積システムおよびその方法
US10014983B2 (en) System, receiving device, and method
US20210191628A1 (en) Distributed storage system, data control method and storage medium
JP5773446B2 (ja) 記憶装置、冗長性回復方法、およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140826

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140827

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150420

R150 Certificate of patent or registration of utility model

Ref document number: 5742362

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150