[go: up one dir, main page]

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

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

Info

Publication number
JP5158187B2
JP5158187B2 JP2010500487A JP2010500487A JP5158187B2 JP 5158187 B2 JP5158187 B2 JP 5158187B2 JP 2010500487 A JP2010500487 A JP 2010500487A JP 2010500487 A JP2010500487 A JP 2010500487A JP 5158187 B2 JP5158187 B2 JP 5158187B2
Authority
JP
Japan
Prior art keywords
data
control data
programmable device
cache memory
storage
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
JP2010500487A
Other languages
English (en)
Other versions
JPWO2009107212A1 (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
Publication of JPWO2009107212A1 publication Critical patent/JPWO2009107212A1/ja
Application granted granted Critical
Publication of JP5158187B2 publication Critical patent/JP5158187B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache

Landscapes

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

Description

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

Claims (12)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JPWO2009107212A1 JPWO2009107212A1 (ja) 2011-06-30
JP5158187B2 true JP5158187B2 (ja) 2013-03-06

Family

ID=41015626

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010500487A Expired - Fee Related JP5158187B2 (ja) 2008-02-28 2008-02-28 ストレージ装置、ストレージ制御装置およびストレージ制御方法

Country Status (3)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110196678A (zh) * 2018-02-23 2019-09-03 环达电脑(上海)有限公司 资料储存决定装置

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8347041B2 (en) * 2009-01-02 2013-01-01 Lsi Corporation System and method to preserve and recover unwritten data present in data cache of a disk subsystem across power outages
JP5712535B2 (ja) * 2010-09-17 2015-05-07 富士通株式会社 ストレージ装置、制御部およびストレージ装置制御方法
WO2013080299A1 (ja) * 2011-11-29 2013-06-06 富士通株式会社 データ管理装置、データコピー方法、およびプログラム
JP6019678B2 (ja) * 2012-04-03 2016-11-02 株式会社デンソーウェーブ 携帯端末装置
TWI544487B (zh) 2015-01-22 2016-08-01 慧榮科技股份有限公司 資料儲存裝置以及快閃記憶體控制方法
CN105138469B (zh) * 2015-08-28 2018-03-16 北京腾凌科技有限公司 一种数据读写方法以及主板
CN107885631A (zh) * 2017-12-27 2018-04-06 西安奇维科技有限公司 一种基于掉电保护的大容量存储端对端数据保护系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07168764A (ja) * 1993-12-15 1995-07-04 Matsushita Electric Ind Co Ltd 情報処理装置
JPH10161938A (ja) * 1996-11-29 1998-06-19 Toshiba Corp ディスク制御装置
JP2004118644A (ja) * 2002-09-27 2004-04-15 Hitachi Ltd ディスクアレイ制御装置
JP2004531814A (ja) * 2001-04-19 2004-10-14 インターナショナル・ビジネス・マシーンズ・コーポレーション ライトバック・キャッシュ情報の信頼性を改善するための方法および装置
JP2005353115A (ja) * 2004-06-08 2005-12-22 Sharp Corp 記録媒体記録/再生装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5426378A (en) * 1994-04-20 1995-06-20 Xilinx, Inc. Programmable logic device which stores more than one configuration and means for switching configurations
JP2001092648A (ja) 1999-09-20 2001-04-06 Adtec:Kk 半導体記憶装置
EP1164490B1 (en) 2000-06-12 2006-09-13 Altera Corporation Re-configurable memory map for a system on a chip
US6732263B1 (en) * 2000-06-12 2004-05-04 Altera Corporation Configuring both a programmable logic device and its embedded logic with a single serialized configuration bit stream
GB2379538B (en) 2000-06-23 2005-01-12 Intel Corp Non-volatile cache
US7536506B2 (en) * 2004-06-21 2009-05-19 Dot Hill Systems Corporation RAID controller using capacitor energy source to flush volatile cache data to non-volatile memory during main power outage

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07168764A (ja) * 1993-12-15 1995-07-04 Matsushita Electric Ind Co Ltd 情報処理装置
JPH10161938A (ja) * 1996-11-29 1998-06-19 Toshiba Corp ディスク制御装置
JP2004531814A (ja) * 2001-04-19 2004-10-14 インターナショナル・ビジネス・マシーンズ・コーポレーション ライトバック・キャッシュ情報の信頼性を改善するための方法および装置
JP2004118644A (ja) * 2002-09-27 2004-04-15 Hitachi Ltd ディスクアレイ制御装置
JP2005353115A (ja) * 2004-06-08 2005-12-22 Sharp Corp 記録媒体記録/再生装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110196678A (zh) * 2018-02-23 2019-09-03 环达电脑(上海)有限公司 资料储存决定装置

Also Published As

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

Similar Documents

Publication Publication Date Title
JP5158187B2 (ja) ストレージ装置、ストレージ制御装置およびストレージ制御方法
CN107636601B (zh) 使用标准dram和整合储存器的处理器与平台辅助的nvdimm解决方案
JP5353887B2 (ja) ディスクアレイ装置の制御ユニット、データ転送装置及び復電処理方法
KR101736384B1 (ko) 비휘발성 메모리 시스템
JP4930555B2 (ja) 制御装置、制御方法およびストレージシステム
US8392649B2 (en) Memory storage device, controller, and method for responding to host write commands triggering data movement
KR102351660B1 (ko) 전력 관리 메커니즘을 갖는 솔리드 스테이트 메모리 시스템 및 그것의 동작 방법
US20100299558A1 (en) Data storage device and method
KR102114109B1 (ko) 데이터 저장 장치
JP2005222228A (ja) メモリカード及び半導体装置
US8275949B2 (en) System support storage and computer system
US20170249167A1 (en) Memory device, and information-processing device
KR100827287B1 (ko) 반도체 보조 기억 장치 및 이를 이용한 데이터 저장 방법
US20190073147A1 (en) Control device, method and non-transitory computer-readable storage medium
US9836359B2 (en) Storage and control method of the same
TWI688864B (zh) 儲存設備及儲存方法
US20160210072A1 (en) Controller and memory system
JP2006195565A (ja) 半導体記憶装置の制御方法、メモリカード、及びホスト機器
JP2010026950A (ja) 記憶装置
JP2010198127A (ja) 半導体記憶デバイス及びその制御方法
US20110314236A1 (en) Control apparatus, control method, and storage system
KR20110037092A (ko) 램 및 플래시 인터페이스를 가지는 하이브리드 메모리 구조 및 데이터 저장 방법
EP4286987A1 (en) Storage system including battery module and method for operating the same
JP6981098B2 (ja) 復旧制御装置、復旧制御システム、復旧制御方法、及び、復旧制御プログラム
JP2009054116A (ja) メモリシステムおよび情報処理装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120105

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120612

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120912

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120919

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121126

R150 Certificate of patent or registration of utility model

Ref document number: 5158187

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151221

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees