JP2009503723A - 記憶制御装置スーパーコンデンサ適応寿命モニタ - Google Patents
記憶制御装置スーパーコンデンサ適応寿命モニタ Download PDFInfo
- Publication number
- JP2009503723A JP2009503723A JP2008524967A JP2008524967A JP2009503723A JP 2009503723 A JP2009503723 A JP 2009503723A JP 2008524967 A JP2008524967 A JP 2008524967A JP 2008524967 A JP2008524967 A JP 2008524967A JP 2009503723 A JP2009503723 A JP 2009503723A
- Authority
- JP
- Japan
- Prior art keywords
- capacitor pack
- lifetime
- execution time
- capacitor
- during
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/28—Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/30—Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3058—Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Power Sources (AREA)
- Charge And Discharge Circuits For Batteries Or The Like (AREA)
Abstract
記憶制御装置は、主電源損失の間、供給するためにエネルギーを蓄積するためのコンデンサパックと、コンデンサパックの温度を検出する温度センサと、その全体にわたって、コンデンサパックが動作される間隔の間、温度を受信し、その寿命の間に当該温度で動作された場合、その全体にわたって、コンデンサパックが少なくとも所定のエネルギー量を蓄積するための能力を有することになる寿命を判断し、判断された寿命に対するコンデンサパックの保証寿命の比率によって間隔を正規化し、累積された正規化された実行時間に正規化された間隔を追加することを-繰り返し行うCPUとを有する。コンデンサパックの動作電圧はまた、サンプリングされ、寿命を判断するためにも使用される。所定のエネルギー量は、主電源の損失に応答して、非揮発性メモリに揮発性書込みキャッシュをバックアップするためのものであってよい。
【その他】 本願に係る特許出願人の国際段階での記載住所は「アメリカ合衆国92008カリフォルニア州カールスバッド、ファラディ・ドライブ・2200、スイート・100」ですが、識別番号305049089を付与された国内書面に記載の住所が適正な住所表記であります。
【その他】 本願に係る特許出願人の国際段階での記載住所は「アメリカ合衆国92008カリフォルニア州カールスバッド、ファラディ・ドライブ・2200、スイート・100」ですが、識別番号305049089を付与された国内書面に記載の住所が適正な住所表記であります。
Description
本出願は、参照として本明細書に組み込まれる2005年8月4日に出願された米国仮出願第60/705,997号の優先権を主張する。
本発明は、一般に、記憶制御装置内で再充電可能なバックアップエネルギー供給としてコンデンサパックを使用する分野に関し、より詳細には、コンデンサパックの寿命を監視することに関する。
安価なディスクの冗長アレイ(RAID)システムは、今日、大部分のコンピュータシステムにおいて大容量記憶システムの支配的形態になっており、高性能、大量の記憶、ならびに/またはトランザクション処理、銀行業務、医療用途、データベースサーバ、インターネットサーバ、メールサーバ、科学的コンピューティング、およびその他のアプリケーションのホストなど、高いデータ可用性を要求するアプリケーションで使用される。RAID制御装置は、コンピュータオペレーティングシステムに単一の論理ディスクドライブ(または複数の論理ディスクドライブ)を提示するような方法で複数の物理ディスクドライブのグループを制御する。RAID制御装置は、性能とデータ可用性とを高めるために、データストライピング(data striping)技術とデータ待ち時間技術とを用いる。
特に、トランザクション処理または大きなデータストリームのリアルタイムのデータ収集など、ある種のアプリケーションにおけるRAID制御装置の重要な特徴は、高速の書込み性能を提供することである。特に、コンピュータシステムの性能全体は、RAID制御装置の書込み待ち時間が比較的小さい場合、大きく改善され得る。書込み待ち時間は、RAID制御装置がコンピュータシステムからの書込み要求を完成するのにかかる時間である。
多くのRAID制御装置は、ディスクドライブからユーザデータをキャッシュするため比較的大きなキャッシュメモリを含む。要求されるデータがキャッシュメモリ内に存在する場合、RAID制御装置はディスクドライブからのデータを読み取る長い動作を実行する必要がないため、データをキャッシュすることは、RAID制御装置が迅速にデータをコンピュータシステムに戻すことを可能にする。キャッシュメモリはまた、一般にポステッドライト(posted−write)動作と呼ばれるものを可能にすることによって、書込み要求待ち時間を低減するために用いられることも可能である。ポステッドライト動作では、RAID制御装置は、コンピュータシステムによって指定されたデータをコンピュータシステムからRAID制御装置のキャッシュメモリに読み取り、次いで、RAID制御装置がまだデータをディスクドライブに書き込んでいないにもかかわらず、書込み要求が完成したことをコンピュータシステムに速やかに通知する。一部の冗長なRAIDレベルでは、システム書込み要求を果たすために、ディスクドライブに対する読取り/修正/書込み(read−modify−write)動作が実行されなければならないため、ポステッドライトは、特にRAID制御装置において有用である。すなわち、指定されたシステムデータがディスクドライブに書き込まれなければならないだけでなく、ユーザデータと冗長データとがディスクに書き込まれることが可能である前に、ディスクドライブの一部も読み取られなければならない可能性があり、ポステッドライトの利点がない場合、RAID制御装置の書込み待ち時間を非RAID制御装置よりもより長くする可能性がある。
しかし、ポステッドライト動作は、電源障害が発生した場合、システムをデータ損失に対して脆弱にする。これは、キャッシュメモリは、電源が失われ、データがまだディスクドライブに書き込まれていない場合、ユーザデータを損失する揮発性メモリであるためである。
この問題を解決するために、一部のRAID制御装置は、主電源が失われた場合、キャッシュメモリに電源を供給し続けるためにバッテリを含む。バッテリはユーザデータが失われることになる可能性を大きく減らすが、バッテリ内に記憶されるエネルギーは限りあるため、主電源が回復され得る前にバッテリエネルギーが切れることになる可能性は依然として存在し、この場合、ユーザデータは失われることになる。バッテリがキャッシュメモリに電源を供給しなければならない最低期間は、RAIDシステムのユーザの間で異なる。しかし、電源障害が週末に発生した場合、多くの消費者は少なくとも72時間を必要とする。
しかし、このアプリケーションでのバッテリの使用に関して、いくつかのよく知られた制限が存在する。第1に、バッテリはRAID制御装置の比較的高価な構成要素である。第2に、多くの関連バッテリ技術の場合、バッテリが充電を維持する能力は、一般に、RAID制御装置の期待される寿命に満たない2〜3年以内に劣化し始める。その結果、RAID制御装置は、現場交換可能なユニットとして、また多くの場合、ホットプラグ可能な(hot−pluggable)現場交換可能なユニットとして、バッテリを用いて設計されなければならない。これは、RAID制御装置にさらなる費用を追加する。第3に、その範囲外で、その寿命と性能が著しく劣化するバッテリの動作温度範囲は比較的小さい。第4に、主電源の機能停止によりバッテリが使い果たされた後で、RAID制御装置は、バッテリが再充電されるまで性能の低いライトスルー(write−through)キャッシュモードで動作しなければならず、バッテリの再充電時間は比較的長い。第5に、キャッシュメモリの容量が増えると、主電源の機能停止中にバッテリが提供しなければならないエネルギー量も増える。最新のバッテリエネルギーの密度を考えると、要求されるエネルギー量を提供するために必要なバッテリのサイズはRAID制御装置内の利用可能な空間を越える可能性がある。
この問題を解決するために、2005年9月14日に出願された米国特許出願第11/226、825号は、コンデンサパックまたはバッテリと、フラッシュメモリなどの不揮発性メモリとを含む記憶制御装置について説明する。主電源が失われる場合、コンデンサパックまたはバッテリは、制御装置が書込みキャッシュデータを、不揮発性メモリにバックアップまたはフラッシュするために、その蓄積されたエネルギーから電力を供給する。したがって、コンデンサパックまたはバッテリが使い果たされ、主電源が回復されるまでもはや電力を供給できない場合でさえ、書込みキャッシュデータは不揮発性メモリ内に維持され、その結果、主電源が回復され、制御装置が再起動されると、書込みキャッシュデータは書込みキャッシュに回復されて、後にディスクドライブにフラッシュされる。
バックアップ電力を供給するために、再充電可能なエネルギー源としてバッテリまたはコンデンサパックを使用するかどうかにかかわらず、エネルギー源がバックアップ動作を実行するために十分なエネルギーを蓄積する容量を持ち続けることを確実にするために、エネルギー源を監視することが重要である。そうでなければ、書込みキャッシュデータは失われる可能性がある。エネルギー源が、バックアップ動作を実行するために電源を供給するためなど、その意図された機能を実行するために十分なエネルギーを蓄積するための容量をもはや持たない場合、その寿命末期に達したまたはその寿命が終了したと言われる。所与のバッテリ技術では、バッテリの典型的な寿命は比較的一定であるため、エネルギー源がバッテリである場合、バッテリの寿命を監視することは比較的簡単である。例えば、書込みキャッシュ記憶制御装置などのアプリケーションに一般に使用されるリチウムイオンバッテリの寿命は、およそ3年である。その結果、バッテリの残りの寿命は、リアルタイムクロック回路を経由してなど、バッテリが存在する実際の実時間、または暦時間を単に記録することによって監視されることが可能である。
バッテリと対照的に、コンデンサの寿命は主として、その温度、動作電圧、極性変化、および過剰電流引込みの非線形機能であり、寿命はこれらの要素に基づいて大いに異なる可能性がある。例えば、所与の動作電圧での所与のアプリケーションにおいて、コンデンサは、摂氏10度の動作温度で100万時間ほどの長い寿命を有する可能性があるが、同じコンデンサは摂氏80度の動作温度で1000時間ほどの短い寿命を有する可能性がある。同様に、所与の温度で、コンデンサは、1.8ボルトの動作電圧で、2.5ボルトの動作電圧での寿命のほぼ3倍の寿命を有する可能性がある。したがって、コンデンサ寿命の可変性は書込みキャッシュ記憶制御装置にとってデータ損失の容認できないクスをもたらす可能性があるため、バッテリ寿命を監視するために使用される簡単なリアルタイムのクロック技術は、多くのアプリケーションでコンデンサには不十分である。
コンデンサの(その静電容量はコンデンサが蓄積できるエネルギー量を判断するため、事実上のその寿命の尺度(measure)である)静電容量を測定するためにコンデンサ製造会社によって奨励される方法は、コンデンサを放電し、次いで再充電し、電流引込みと再充電に必要な時間とを測定し、測定値から静電容量を計算することである。しかし、この方法は、主電源の損失が発生した場合、バックアップ動作を実行できないため、書込みキャッシュデータの潜在的な損失を回避するために、放電/再充電プロセスの間に書込みキャッシュがライトスルーモードに設定されることを要求することになるため、書込みキャッシュ記憶制御装置のアプリケーションにとって望ましくない。
したがって、必要とされるのは、コンデンサパックの実時間の存在を監視することまたはコンデンサパックを放電および再充電することによって静電容量を測定すること以外にコンデンサパックの寿命を判断する代替方法である。
さらに、バッテリと異なり、コンデンサパックは現場交換可能ではなく、記憶制御装置の製造会社は、記憶制御装置の消費者、またはユーザに、コンデンサパックの寿命を保証する場合がある。したがって、コンデンサパックの寿命の大きな可変性を考えると、必要とされるのは、コンデンサパックが記憶制御装置の製造会社がユーザに保証した寿命に達する可能性を高める方法である。
本発明は、動作間隔の間に記憶制御装置のコンデンサパックの温度および電圧をサンプリングし、サンプリングされた温度および電圧で、コンデンサパックの知られている寿命に対するコンデンサパックの保証寿命の比率を使用して、この間隔を正規化する。コンデンサパックが通常の動作電圧で所定のエネルギー量を蓄積するために十分な容量をもはや持たない場合、コンデンサパックはその有効期限、または寿命の末期に達している。一実施形態では、保証寿命は、主電源の損失の間、揮発性書込みキャッシュを、フラッシュメモリなどの非揮発性メモリにバックアップするために記憶制御装置に電源を供給するために要求されるエネルギー量に基づく。記憶制御装置は、記憶制御装置が動作する一連の間隔全体にわって正規化された間隔を累積する。累積された正規化された動作間隔は、保証寿命に対するコンデンサパックの年齢の有効な尺度である。コンデンサパックの静電容量低下はまた、累積された正規化された動作間隔と保証寿命とに応じても計算される。一実施形態では、知られている寿命は、サンプリングされた温度と電圧とによって指標付けされる、経験的に得られた寿命のデータベース内で調べられる。別の実施形態では、知られている寿命は、温度および電圧の経験的に得られた関数を使用して計算される。一実施形態では、電圧が固定され、温度だけが知られている寿命を得るために使用される。
一態様では、本発明は、記憶制御装置内のコンデンサパックの累積された正規化された実行時間を監視するための方法を提供する。方法は、コンデンサパックの累積された正規化された実行時間を初期化するステップを含む。方法は、累積された正規化された実行時間を初期化した後に、その全体にわたって、コンデンサパックが動作される時間間隔の間、コンデンサパックの温度を検出するステップも含む。方法は、寿命の間にその温度で動作される場合、その全体にわたって、コンデンサパックが少なくとも所定のエネルギー量を蓄積するための容量を有することになる寿命を判断するステップも含む。方法は、寿命に対するコンデンサパックの保証寿命の比率によって時間間隔を正規化するステップも含む。方法は、正規化された時間間隔を累積された正規化された実行時間に追加するステップも含む。方法は、記憶制御装置の動作中に、検出するステップと、判断するステップと、正規化するステップと、追加するステップとを繰り返すステップも含む。
別の態様では、本発明は、記憶制御装置を提供する。制御装置は、制御装置に対する主電源の損失の間に制御装置に供給するためのエネルギーを蓄積するコンデンサパックを含む。制御装置は、コンデンサパックの温度を検出する、コンデンサパックに結合された温度センサも含む。制御装置は、温度センサに結合されたCPUも含む。CPUは、コンデンサパックの累積された正規化された実行時間を初期化する。CPUはまた、その全体にわたって、コンデンサパックが動作される時間間隔の間にセンサから温度を受信する。CPUはまた、その寿命の間にその温度で動作される場合、その全体にわたって、コンデンサパックが少なくとも所定のエネルギー量を蓄積するための容量を有することになる寿命を判断する。CPUはまた、寿命に対するコンデンサパックの保証寿命の比率によって時間間隔を正規化する。CPUはまた、正規化された時間間隔を累積された正規化された実行時間に追加する。CPUは、記憶制御装置の動作中に、温度を受信するステップと、寿命を判断するステップと、間隔を正規化するステップと、正規化された間隔を累積された正規化された実行時間に追加するステップとを繰り返す。
次に図1を参照すると、本発明によるRAID制御装置100を例示するブロックダイヤグラムが示される。一実施形態では、RAID制御装置100は、高いデータ可用性を提供するための1対のアクティブ/アクティブ冗長的耐障害性RAID制御装置のうちの1つであってよい。本明細書で説明されるように、ポステッドライトデータを揮発性メモリから非揮発性メモリにフラッシュできないなど、1つのRAID制御装置100の障害が発生した場合、システムは別のRAID制御装置100にフェイルオーバ(failover)できる。RAID制御装置100は、主電源の損失の間、そのメモリ制御装置が迅速かつ効果的にポステッドライトデータをキャッシュメモリから非揮発性メモリにフラッシュすることを可能にするために、RAID制御装置100回路の選択された部分に電力を供給するための1つまたは複数のコンデンサを含む。RAID制御装置100は、コンデンサの温度と電圧とを定期的にサンプリングし、各サンプリングされた温度および電圧の値の組合せに関して、経験的に収集された寿命情報に基づいてコンデンサの動作間隔を正規化できるように、寿命特徴情報を使用してコンデンサの有効年齢を適応的に計算すると有利である。さらに、RAID制御装置100は、コンデンサがユーザに保証された寿命に達することを確実にするために、コンデンサの有効年齢に基づいて、温度の上昇に応答してなど、コンデンサの動作電圧を動的に調整する。最後に、制御装置が、新たに調整された電圧でバックアップ動作を実行するために十分なエネルギーを蓄積できないことになるようにコンデンサの静電容量が低下したことを判断する場合、制御装置は書込みキャッシュサイズを、コンデンサがバックアップ動作を実行するために十分なエネルギーを蓄積するための容量を有するサイズに動的に減らす。
RAID制御装置100は、ホストコンピュータとインターフェースをとるホストインターフェース118を含む。一実施形態では、RAID制御装置100は、PCI、PCI−X、コンパクトPCT、PCIエクスプレス、PCI−X2、EISA、VESA、VME(登録商標)、RapidIO(登録商標)、AGP、ISA、3GIO、ハイパートランスポート、フューチャバス、マルチバス、またはその他のローカルバスなど、ホストコンピュータシステムのローカルI/Oバスにプラグで接続される、またはローカルI/Oバスに組み込まれる制御装置などの局所的なバスベースの制御装置である。この種類の実施形態では、ホストインターフェース118は、ローカルバスタイプのローカルバスインターフェースを含む。別の実施形態では、RAID制御装置100は、RAID制御装置100にI/O要求を発行する、ホストコンピュータと分離された筐体(enclosure)内の独立型の制御装置である。例えば、RAID制御装置100は、記憶エリアネットワーク(SAN)の一部であってよい。この種類の実施形態では、ホストインターフェース118は、ファイバチャネル、イーサネット(登録商標)、インフィニバンド、SCSI、HIPPI、トークンリング、アークネット、FDDI、ローカルトーク、ESCON、FICON、ATM、SAS、SATA、iSCIなど、様々なインターフェースを含んでよい。
RAID制御装置100は、テープドライブ、固定ディスク(SSD)、およびCDROMドライブまたはDVDドライブなどの光記憶装置を含むがこれらに限定されない、ディスクドライブまたはその他の大容量記憶装置と接続するためのディスクインターフェース166も含む。ディスクドライブはユーザデータを記憶する。ディスクインターフェース116は、以下のインターフェースを含んでよいが、これらに限定されない:ファイバチャネル、スモールコンピュータシステムインターフェース(SCSI)、アドバンスドテクノロジー・アタッチメント(ATA)、シリアルアタッチドSCSI(SAS)、シリアルアドバンスドテクノロジー・アタッチメント(SATA)、イーサネット(登録商標)、インフィニィバンド、HIPPI、ESCON、iSCSI、またはFICON。RAID制御装置100は、ホストコンピュータから受信されたI/O要求に応答してディスクドライブからデータを読み取り、またディスクドライブにデータを書き込む。
RAID制御装置100は、揮発性キャッシュメモリ104、もしくはキャッシュメモリ104、または揮発性メモリ104も含む。揮発性キャッシュメモリ104は、書込みキャッシュ156と読取りキャッシュ158とを含む。揮発性キャッシュメモリ104は、電力が供給されていない場合、そのデータを記憶しなくなるため、揮発性である。一実施形態では、揮発性キャッシュメモリ104は、セルフリフレッシュモードを含むダブルデータレートシンクロナス(double−data−rate synchronous)ダイナミックランダムアクセスメモリ(DDR SDRAM)を含む。SDRAMがセルフリフレッシュモードに設定される場合、SDRAMは、セルフリフレッシュモードで動作していない場合よりも少ない電力を消費する。別の実施形態では、揮発性キャッシュメモリ104は、スタティックランダムアクセスメモリ(SRAM)を含むがこれに限定されない、他の種類の揮発性メモリを含んでよい。揮発性キャッシュメモリ104の量は大きくてもよい。揮発性キャッシュメモリ104が、512MB、1GB、および2GBを含む実施形態が考えられる。しかし、RAID制御装置100上に、より多くのまたはより少ない揮発性キャッシュメモリ104が含まれる他の実施形態が考えられる。
揮発性キャシュメモリ104は、ホストとディスクとの間で転送されるデータをバッファするためにRAID制御装置100によって用いられる。ホストが、データがディスクに書き込まれることを要求する場合、RAID制御装置100は、ホストインターフェース118を経由してホストから揮発性キャッシュメモリ104の書込みキャッシュ156にデータを転送し、後で、ディスクインターフェース116を経由して書込みキャッシュ156からディスクにデータを転送する。逆に、ホストが、データがディスクから読み取られることを要求する場合、RAID制御装置100は、ディスクインターフェース116を経由してディスクから揮発性キャッシュメモリ104の読取りキャッシュ158にデータを転送し、後で、ホストインターフェース118を経由して読取りキャッシュ158からホストにデータを転送する。
前述のように、ホストが、データがディスクに書き込まれることを要求する場合、RAID制御装置100は、ホストインターフェース118を経由してホストから揮発性キャッシュメモリ104にデータを転送し、後で、ディスクインターフェース116を経由して揮発性キャッシュメモリ104からディスクにデータを転送する。通常、RAID制御装置100は、データが実際にディスクに書き込まれるまで、書込み要求が完了したことをホストに示さない。しかし、そのように構成される場合、RAID制御装置100は、揮発性キャッシュメモリ104内にデータをキャッシュし、データが実際にディスクに書き込まれる前に、書込み要求が完了したことをホストに示し、次いで、後で、ディスクにデータを書き込むこと、またはフラッシュすることが可能である。この動作は、書込みキャッシングと呼ばれ、またはポステッドライト動作と呼ばれる場合もある。ポステッドライト動作に関連するデータは、ポステッドライトデータ、または書込みキャッシュデータと呼ばれる。すなわち、ポステッドライトデータは、ディスクに書き込まれていないが、RAID制御装置100が、書込み動作が完了したことをホストに伝えていると考えられる、揮発性キャッシュメモリ104内に記憶されたデータである。加えて、本明細書で述べられるポステッドライトデータは、データが書き込まれなければならない論理ブロックアドレスおよびディスクドライブユニット番号を含むがこれに限定されない、データをディスクに書き込むために必要な制御情報、およびデータが、やはりディスクに書き込まれなければならないポステッドライトデータに基づいて冗長データが生成されることを要求するRAIDレベルを有するRAIDアレイの一部であるかどうかを指定する情報を参照するために使用されるメタデータを含んでよい。
揮発性キャッシュメモリ104は、データの読出しキャッシングを実行するために、すなわち、同じデータのこれまでの読取り要求のために、要求されるデータが揮発性キャッシュメモリ104内にすでに存在する場合、ディスクからではなく、揮発性キャッシュメモリ104からホストに要求されるデータを提供するためにRAID制御装置100によって使用されてもよい。最後に、RAID制御装置100は、ディスクに書き込むために生成された冗長RAIDデータをバッファリングするために揮発性キャッシュメモリ104を使用してもよい。
RAID制御装置100は、前述のように、ディスクドライブとホストの間のデータの転送を制御する目的で、プログラム命令を取り出して実行するためにCPUサブシステム112も含む。CPUサブシステム112は、例えば、x86アーキテクチャプロセッサならびに、一般に、ノースブリッジすなわちメモリ制御ハブ(MCH)、およびISAバスまたはPCIファミリバスに対するインターフェースなどのI/Oバスインターフェースを含むサウスブリッジすなわちI/O制御ハブ(ICH)と呼ばれるものなど、プロセッサおよびチップセットを含むがこれらに限定されない、記憶されたプログラムを実行できる任意のプロセッサを含んでよい。一実施形態では、CPUサブシステム112は、統合されたノースブリッジとALi M1563Sサウスブリッジとを含むTransmeta(登録商標)TM8800プロセッサを含む。別の実施形態では、CPUサブシステム112は、Intel(登録商標) Celeron(登録商標) Mプロセッサ、MCHおよびICHを含む。別の実施形態では、CPUサブシステム112は、統合されたノースブリッジとAli M1563Sサウスブリッジとを有するAMD(登録商標) Mobile Sempron(登録商標)プロセッサを含む。一実施形態では、CPUサブシステム112はまた、マイクロプロセッサによって取り出されて、実行されたプログラム命令を記憶するためのRAM、およびマイクロプロセッサによる実行のために圧縮されてプログラムRAMに書き込まれるプログラム命令を非揮発性の方法で記憶するための、CPU112サブシステムに結合されたフラッシュメモリ106も含む。一実施形態では、フラッシュメモリ106は、以下で説明されるように、非揮発性メモリ108に対するキャッシュメモリ104の成功裏のフラッシュを示すために(以下で説明される)非揮発性メモリ108に書き込まれる署名と比較するための署名などの情報も記憶する。
CPUサブシステム112は、ホストインターフェース118からホストコンピュータI/O要求を受信して、要求を処理する。要求を処理することは、様々な機能を含む可能性がある。例えば、ホストI/O要求は、論理ブロック番号と、冗長アレイに転送されることになる、または冗長アレイから転送されることになるデータのブロック数とを指定する。しかし、これらの論理ブロックおよびブロック数は、一般に、適切な物理ブロック番号および冗長アレイを含む物理ディスク上のブロック数に対応しない。したがって、ホストI/O要求内で指定された論理ブロック番号は、RAID制御装置100と冗長アレイを含むディスクとの間で1つまたは複数のデータ転送を実行する際に使用されることになる適切な物理ブロック番号、ブロック数、およびディスクに変換されなければならない。この変換機能は、CPUサブシステム112によって実行される。一実施形態では、CPUサブシステム112は、よく知られているRAID技術に従って変換を実行する。変換を実行した後で、CPUサブシステム112は、ディスクと揮発性キャッシュメモリ104の間でデータ転送を実行するようにディスクインターフェース116をプログラムする。加えて、CPUサブシステム112は、ホストコンピュータと揮発性キャッシュメモリ104の間でデータ転送を実行するようにホストインターフェース118をプログラムする。したがって、ホストコンピュータから冗長アレイにデータを書き込むためにホストI/O要求を処理する場合、CPUサブシステム112は、ホストコンピュータから揮発性キャッシュメモリ104にデータを転送するようにホストインターフェース118をプログラムする。データが揮発性キャッシュメモリ104内に受信された後で、CPUサブシステム112は、揮発性キャッシュメモリ104から冗長アレイを含むディスクの変換された適切な物理ブロック番号にデータを転送するようにディスクインターフェース116をプログラムする。逆に、冗長アレイからホストコンピュータにデータを読み取るためにホストI/O要求を処理する場合、CPUサブシステム112は、冗長アレイを含むディスクの変換された適切な物理ブロック番号から揮発性キャッシュメモリ104にデータを転送するようにディスクインターフェース116をプログラムする。データが揮発性キャッシュメモリ内に受信された後で、CPUサブシステム112は、揮発性キャッシュメモリ104からホストコンピュータにデータを転送するようにホストインターフェース118をプログラムする。CPUサブシステム112はまた、データ転送を実行するための揮発性キャッシュメモリ104の部分の割当てを管理する機能、特に、キャッシュ管理、すなわち、よく知られたキャッシング技術に従って、冗長アレイとホストコンピュータの間のI/O機能を改善するために、揮発性キャッシュメモリ104内でバッファされたデータのキャッシング部分のためのキャッシュメモリとして揮発性キャッシュメモリ104を管理する機能も実行する。一実施形態では、CPUサブシステム112は、例えば、RAIDレベル5など、冗長データとしてパリティデータを用いる一定のRAIDレベルで要求されるデータの排他的OR動作を実行する。一実施形態では、CPUサブシステム112は、冗長パリティデータを生成する目的でユーザデータに関して排他的OR動作を実行するために、メモリ制御装置102内に含まれる専用の排他的OR回路をプログラムする。
RAID制御装置100は、不揮発性メモリ108も含む。非揮発性メモリ108は、電力が供給されていない場合、そのデータを記憶し続けるため、不揮発性である。一実施形態では、非揮発性メモリ108は、NANDフラッシュ装置を含むCompact Flash(登録商標)メモリ装置と、ATAインターフェースを(以下で説明される)メモリ制御装置102に提示する制御装置とを含む。非揮発性メモリ108が256MB、512MB、および1GBを含む実施形態が考えられる。しかし、RAID制御装置100内に1つまたは複数の非揮発性メモリ108が含まれる他の実施形態が考えられる。一実施形態では、非揮発性メモリ108は、マイクロディスクドライブを含む。非揮発性メモリ108は、主電源が戻った場合、ポステッドライトデータが非揮発性メモリ108から揮発性キャッシュメモリ104に回復され得るように、主電源の損失に応答して、揮発性キャッシュメモリ104のコンテンツ、特にポステッドライトデータをバックアップ、またはフラッシュするためにRAID制御装置100によって使用される。一実施形態では、非揮発性メモリ108は、それに対してメモリ制御装置102が直接書き込むNANDフラッシュメモリアレイを含む。アレイ内の各NANDフラッシュメモリ装置は、8ビット幅のデータ装置を含み、装置は、書込み速度を高め、それにより、フラッシュ動作時間をさらに減らすように、メモリ制御装置102が非揮発性メモリ108に対して16ビット幅または32ビット幅の書込みアクセスを実行するように構成されることが好ましい。CPU112上で実行するソフトウェアは、非揮発性メモリ108内に、累積された正規化された実行時間152と、累積された歴実行時間154とを記憶する。代替実施形態では、CPU112上で実行するソフトウェアは、コードフラッシュメモリ106内に累積された正規化された実行時間152と、累積された歴実行時間154とを記憶する。累積された正規化された実行時間152および累積された歴実行時間154の使用は、以下で詳細に説明される。
RAID制御装置100は、ディスクインターフェース116と、ホストインターフェース118と、キャッシュメモリ104と、非揮発性メモリ108とに結合されたメモリ制御装置102も含む。メモリ制御装置102は、ディスクインターフェース116、ホストインターフェース118、およびCPUサブシステム112によるキャッシュメモリ104および非揮発性メモリ108に対するアクセスを制御する。一実施形態では、メモリ制御装置102は、揮発性キャッシュメモリ104バスと、非揮発性メモリ108バスと、CPUサブシステム112バスと、ホストインターフェース118と、ディスクインターフェース116バスとの間の通信を橋渡しするためのバスブリッジとしても機能する。一実施形態では、メモリ制御装置102は、カスタム大規模集積回路である。一実施形態では、メモリ制御装置102は、カスタムプログラム可能な論理装置を含む。メモリ制御装置102は、図2に関して、以下でより詳細に説明される。
通常の動作の間、RAID制御装置100は、電力供給業界でよく知られたような、商業的に供給される一般的なA/C電源を含むがこれに限定されない、RAID制御装置100の外付けの主電源から電力を受ける。しかし、RAID制御装置100は、以下で詳細に説明されるように、主電源の損失が発生した場合、RAID制御装置100に電力を供給するための1つまたは複数のコンデンサ136すなわちコンデンサパック136も含む。主電源の機能休止により、コンデンサ136上の充電もしくはエネルギー貯蔵の一部またはすべてが消耗された場合、主電源が回復されると、コンデンサ136は主電源から再充電される。一実施形態では、コンデンサ136は、活性剤として炭素エーロゲル技術を用い、単一のパッケージ内の並列コンデンサの配列として配置される。一実施形態では、コンデンサ136は、Cooper Industriesの一部門である、Boynton Beach,FloridaのCooper Bussmanによって製造された4つのモデルB1860−2R5107 PowerStor B Series Aerogel Supercapacitorsを含む。しかし、他の実施形態が企画され、本発明は特定のコンデンサモデルまたはコンデンサ技術に限定されない。
RAID制御装置100は、コンデンサ136および主電源の両方から電力を受けるために結合された電力調整器(power regulator)134も含む。電力調整器134は、主電源が電力を供給しているかどうかを検出し、供給している場合、電力を様々なRAID制御装置100回路に提供するように主電源を調整する。以下でより詳細に説明されるように、主電源が十分な電力を供給していない場合、電力調整器134は、RAID制御装置100回路のサブセットに電力を提供するようにコンデンサ136を調整する。
RAID制御装置100は、電力調整器134とメモリ制御装置102とに結合された電力管理装置(power manager)132も含む。電力管理装置132も、主電源が電力を供給しているかどうかを検出する。以下で詳細に説明されるように、電力管理装置132が主電源の損失を検出する場合、電力管理装置132は、キャッシュメモリ104から非揮発性メモリ108にポステッドライトデータをフラッシュするようにメモリ制御装置102に選択的に命令する。一実施形態では、電力管理装置132は、非常に低い電力を消費する、マイクロコンプレックスプログラマブル論理装置(micro−complex programmable logic device)(CPLD)を含む。加えて、カスタム集積回路またはディスクリート部品など、電力管理装置132によって実行される、本明細書で説明される機能を実行するために、他の回路が用いられてもよい。
図1の実施形態では、主電源が失われた場合、コンデンサ136はキャッシュメモリ104と、非揮発性メモリ108と、メモリ制御装置102と、電力制御装置132と、メモリ制御装置102をキャッシュメモリ104に結合する高速メモリバスのバス端末など、これらの回路を動作可能に維持するために要求される他の回路とだけに電源を供給する。すなわち、コンデンサ136は、キャッシュメモリ104から非揮発性メモリ108へのポステッドライトデータのフラッシュ動作を実行するために要求される回路だけに電力を供給する。コンデンサ136は、フラッシュを実行するために要求されない回路、すなわちCPUサブシステム112、ディスクインターフェース116、ホストインターフェース118、ならびにCPUサブシステム112と、ディスクインターフェース116と、ホストインターフェース118とインターフェースを取るための部分など、メモリ制御装置102の不要な部分に電力を供給しないと有利である。
本開示では、フラッシュ動作は、主電源の損失に応答して、キャッシュメモリ104から非揮発性メモリ108にデータを複写することを指し、回復動作は、主電源が回復された後に非揮発性メモリ108からキャッシュメモリ104にデータを複写することを指す。以下で説明されるように、RAID制御装置100は、主電源が回復された場合、回復動作を選択的に実行する。
RAID制御装置100は、コンデンサパック136の周囲温度を検出し、サンプリングされた温度をCPU112に供給する温度センサ142も含む。加えて、RAID制御装置100は、コンデンサパック136の電圧を検出し、サンプリングされた電圧をCPU112に供給する電圧センサ144も含む。さらに、RAID制御装置100は、充電の際にコンデンサパック136によって引き出される電流を検出し、サンプリングされた電流をCPU112に供給する電流センサ146も含む。一実施形態では、CPU112は、メモリ制御装置102および/または電力管理装置132を経由して、サンプリングされた温度、電圧、および電流の値を読み取る。一実施形態では、温度センサ142と、電圧センサ144と、電流センサ146とは、アナログ/デジタル変換器を含むI2Cスレーブ装置を含む。以下で詳細に説明されるように、CPU112は、コンデンサパック136の寿命を監視および維持するために、サンプリングされた温度、電圧、および電流の値を使用する。
次に図2を参照すると、本発明よる図1のメモリ制御装置102をより詳細に例示するブロックダイヤグラムが示される。メモリ制御装置102は、メモリ制御装置102の様々な部分を制御するための制御論理214を含む。一実施形態では、制御論理214は、フラッシュ動作の間に揮発性キャッシュメモリ104から非揮発性メモリ108にデータを複写するダイレクトメモリアクセス制御装置(DMAC)を含む。
制御論理214は、図1の電力管理装置132からリセット信号226を受信する。電力管理装置132がリセット信号226をアサートする場合、メモリ制御装置102はリセットされる。電力管理装置132は、RAID制御装置100がリセットする場合、または主電源が回復される場合、キャッシュメモリ104のコンテンツが依然として有効であれば、メモリ制御装置102がキャッシュメモリ104のコンテンツを無効にしないような方法で、キャッシュメモリ104を選択的にリセットするように構成される。例えば、以下で説明されるように、キャッシュメモリ104がフラッシュ動作を実行する過程にある場合、電力管理装置132はメモリ制御装置102をリセットせず、それにより、CPUサブシステム112がフラッシュ動作を優雅に中断することを可能にする。
制御論理214はまた、電力管理装置132からpwr_state信号222を受信する。電力管理装置132は、以下の表1に説明されるように、pwr_state信号222を経由して、動作を実行するようにメモリ制御装置102に命令する。特に、以下に説明されるように、主電源の損失またはフラッシュ動作の完了など、異なる事象に応答して、電力管理装置132は、pwr_state信号222の1つの値を用いて、キャッシュメモリ104のコンテンツを非揮発性メモリ108にフラッシュするようにメモリ制御装置102に命令し、pwr_state信号222の別の値を用いて、キャッシュメモリ104をセルフリフレッシュモードに設定するようにメモリ制御装置102に命令する。
制御論理214はまた、電力管理装置132にflush_status信号224を提供する。以下の表2で説明されるように、メモリ制御装置102は、flush_status信号224を経由して、非揮発性メモリ108のフラッシュ状態に対する現在のキャッシュメモリ104を電力管理装置132に提供する。特に、メモリ制御装置102は、flush_status信号224を経由して、フラッシュ動作が進んでいるか否か、またエラーの有無にかかわらず、フラッシュ動作が完了しているか否かを電力管理装置132に示す。
メモリ制御装置102はまた、メモリ制御装置102をディスクインターフェース116に接続するための(PCI−Xインターフェースなどの)ローカルバスインターフェース216、メモリ制御装置102をホストインターフェース118に接続するための(PCI−Xインターフェースなどの)別のローカルバスインターフェース218、メモリ制御装置102をキャッシュメモリ104に接続するための(DDR SDRAMインターフェースなどの)メモリバスインターフェース204、およびメモリ制御装置102を非揮発性メモリ108に接続するためのATAインターフェース208も含む。ローカルバスインターフェース216および218、メモリバスインターフェース204、ならびにATAインターフェース208は、すべて制御論理214に結合され、様々なインターフェース間でデータ転送をバッファし、それらの間に並列高速データ経路を提供する(先入れ先出し(FIFO)バッファなどの)バッファ206にも結合される。一実施形態では、ATAインターフェース208は、ATA PIOモード4と、最大毎秒16.7MBまでのデータ転送速度とをサポートする。
メモリ制御装置102は、メモリ制御装置102をCPUサブシステム112に接続するための、制御論理214に結合された、PCIインターフェースなどのローカルバスインターフェース212も含む。CPUサブシステム112は、PCIインターフェース212を経由して、キャッシュメモリ104と、非揮発性メモリ108と、ディスクインターフェース116と、ホストインターフェース118とにアクセスする。
メモリ制御装置102は、ローカルバスインターフェース212と制御論理214とに結合された制御および状態レジスタ(CSR)202も含む。CSR202は、メモリ制御装置102を制御するために図1のCPUサブシステム112によってプログラム可能であり、メモリ制御装置102がCPUサブシステム112に状態を提供するためにCPUサブシステム112によって読取り可能である。CSR202の中には、主電源が失われた場合、CPUサブシステム112が、メモリ制御装置102が非揮発性メモリ108にフラッシュすることになる、キャッシュメモリ104内のポステッドライトデータなどのデータの1つまたは複数の領域の位置とサイズとを指定することを可能にする制御レジスタがある。CSR202は、図3に関して、以下で詳細に説明される。
次に図3を参照すると、本発明による図2のCSR202を例示するブロックダイヤグラムが示される。以下のテキストおよび表で、様々なCRS202とそれらのコンテンツとが説明される。
NVB_FLUSH_CTRLレジスタ302は、pwr_state信号222を経由してフラッシュ動作を開始するための電力管理装置132の能力に類似した、フラッシュ動作を開始するための能力をCPUサブシステム112に提供し、flush_status信号224を経由してフラッシュ動作状態を読み取るための電力管理装置132の能力に類似した、フラッシュ動作の状態を読み取るための能力をCPUサブシステム112に提供する。主電源が回復され、CPUサブシステム112ソフトウェアが起動すると、フラッシュ動作は依然として進行中である可能性があり、キャッシュメモリ104のコンテンツは依然として有効である可能性がある。その結果、一実施形態では、表3で説明されるように、CPUサブシステム112は、(キャッシュメモリ104のコンテンツは依然として有効である可能性があるため)NVB_FLUSH_CTRLレジスタ302内のFLASH_STARTビットに0を書き込むことによって、進行中のフラッシュ動作を中断するようメモリ制御装置102に命令することが可能である。
NVB_RESTORE_CTRLレジスタ304は、非揮発性メモリ108からキャッシュメモリ104に回復動作を開始する能力をCPUサブシステム112に提供し、回復動作の状態を読み取る能力をCPUサブシステム112に提供する。
NVB_ATA_START_ADDR1レジスタ308は、それぞれ、フラッシュ動作または回復動作のシンクまたはソースである、データの第1の領域の非揮発性メモリ108内の開始アドレスを指定する。一実施形態では、非揮発性メモリ108がセクタ分割された(sectored)ATA装置である場合、メモリ制御装置102は、NVB_ATA_START_ADDR1レジスタ308内で指定された非揮発性メモリ108アドレスをセクタ番号に変換する。
NVB_ATA_START_ADDR2レジスタ316は、それぞれ、フラッシュ動作または回復動作のシンクまたはソースである、データの第2の領域の非揮発性メモリ108内の開始アドレスを指定する。一実施形態では、非揮発性メモリ108がセクタ分割されたATA装置である場合、メモリ制御装置102は、NVB_ATA_START_ADDR2レジスタ316内で指定された非揮発性メモリ108アドレスをセクタ番号に変換する。
NVB_SECTOR_COUNTレジスタ322は、非揮発性メモリ108ATA装置に対してメモリ制御装置102によって発行される各書込み/読取り命令に関して使用するためのセクタの数を指定する。NVB_SECTOR_COUNTレジスタ322は、非揮発性メモリ108ATA装置に対するフラッシュ動作および非揮発性メモリ108ATA装置からの回復動作の速度を最適化するために使用されてよい。NVB_SECTOR_COUNTレジスタ322は、NVB_SIZEレジスタ312/318と共に使用される。例えば、CPUサブシステム112は、256KBの値を用いてNVB_SIZEレジスタ312/318を、また32の値を用いてNVB_SECTOR_COUNTレジスタ322をプログラムすることが可能であり、結果として、それぞれ32セクタ(16KB)の16の書込み命令として256KBのデータが書き込まれている。NVB_SIZEレジスタ312/318は、NVB_SECTOR_COUNTレジスタ322値の倍数である値を用いてプログラムされなければならない。
NVB_PROGRESSレジスタ324は、それぞれ、フラッシュ動作または回復動作の間に、そこからキャッシュメモリ104が読み取られている、またはそこにキャッシュメモリ104が書き込まれている現在のアドレスを指定する。NVB_PROGRESSレジスタ324は、フラッシュ動作または回復動作が進行中である場合だけ有効である。NVB_PROGRESSレジスタ324は、CPUサブシステム112がフラッシュ動作または回復動作の進行を評価することを可能にする。フラッシュ動作または回復動作がエラーを発生させる場合、NVB_PROGRESSレジスタ324値は、エラーが発生したおよそのアドレスを指定する。フラッシュ動作または回復動作が中断された場合、NVB_PROGRESSレジスタ324は、中断が発生した後で、次のセクタに増分される。
ATA_INF_STATUSレジスタ326は、非揮発性メモリ108ATA装置が、フラッシュ動作または回復動作の間、データの1つもしくは複数のセクタの成功裏の読取り時または書込み時になど、割込みを発生させたかどうかを判断するために、またフラッシュ動作もしくは回復動作が完了したかどうかを判断するために、CPUサブシステム112によって読み取られることが可能である。ATA_INF_STATUSレジスタ326は、CPUサブシステム112が割込みソースをクリアすることも可能にする。
NVB_ERROR_CODEレジスタ332は、フラッシュ動作または回復動作が完了する場合にNVB_FKUSH_CTRLレジスタ302またはNVB_RESTORE_CTRLレジスタ304が失敗を示すと、エラーの種類を指定する。ECCエラーが検出される場合、動作は次のセクタ境界で終了する。その結果、エラーが発生した後、最高512バイトまでが転送され得る。一実施形態では、CPUサブシステム112は、ECCエラーを無視させる能力を有する。ATA装置エラーのハードウェア検出は、以下で説明されるATAダイレクトアクセスレジスタ342内のタスクファイルレジスタであるATA装置状態レジスタのコンテンツを検査することによって実行される。メモリ制御装置102は、ATA命令を発行した後、また各セクタの転送が完了した後、ATA装置状態レジスタを読み取る。その結果、ATA装置エラーは検出され、エラーが発生したセクタ境界で報告される、すなわち、ATAエラーが実際に発生した後、最高512バイトまでが転送され得る。同様に、ATA動作はセクタ境界でのみ終了する。
NVB_CONFIGレジスタ334は、CPUサブシステム112がフラッシュ動作の様相(aspect)を構成することを可能にする。特に、CPUサブシステム112は、メモリ制御装置102がフラッシュ動作を自動的に実行することを可能にすることができ、またはメモリ制御装置102がフラッシュ動作を自動的に実行することを動作不能にすることができる。加えて、以下で説明されるように、CPUサブシステム112は、フラッシュ動作が終了した場合、メモリ制御装置102が、NVB_CONFIGレジスタ334を経由して、フラッシュは成功したか、もしくは中断されたか、またはエラーが発生したかどうか、フラッシュ動作の結果を指定する情報を非揮発性メモリ108に書き込むことを選択的に命令することが可能である。メモリ制御装置102は、フラッシュ結果情報を非揮発性メモリ108ATA装置の所定のフラッシュ結果セクタに書き込む。一実施形態では、フラッシュ結果セクタは、非揮発性メモリ108の第1のセクタである。
ATA_CRCレジスタ338は、フラッシュ動作または回復動作が完了した場合、データ用の32ビットCRCを含む。オプションが動作可能にされると、CRCデータは書込み結果セクタに自動的に書き込まれる。一実施形態では、フラッシュ動作はCRC値を書込み結果セクタに書き込み、回復動作が実行される場合、フラッシュ動作または回復動作の間に、不一致によって示される、いずれかのデータ汚染が発生したかどうかを判断するために、CRC値はATA_CRCレジスタ338値と比較される。
完了署名値は、コードフラッシュ106内でも記憶され、その結果、CPUサブシステム112は、フラッシュ動作が成功したかどうかを判断するために、この値を非揮発性メモリ108フラッシュ結果セクタ内の完了署名と比較することができる。加えて、一実施形態では、メモリ制御装置102は、データを非揮発性メモリ108にフラッシュするときにデータの実行巡回冗長コード(CRC)を計算し、最終的なCRC値を表19に示されるオフセットでフラッシュ結果セクタに書き込む。これは、回復動作の間、データが有効であること、すなわち、ATA_CRCレジスタ388値と比較することによって、フラッシュ動作によってデータが非揮発性メモリ108に正確に書き込まれていることを検証するために、データを読み取る場合、CPUサブシステム112がCRCを発生させることを可能にする。
ATAダイレクトアクセスレジスタ342は、非揮発性メモリ108ATA装置と通信するためにCPUサブシステム112によって使用される制御および状態レジスタを含む。一実施形態では、ATAダクレクトアクセスレジスタ342は、ディスクドライブの技術分野でよく知られている、一般にタスクファイルとして知られている標準ATAレジスタファイルを含む。メモリ制御装置102は、フラッシュ動作の間のポステッドライトデータの書込みおよび回復動作の間のデータの読取りなど、非揮発性メモリ108ATA装置によりATA命令を実行するために、ATAダイレクトアクセスレジスタ342を読み取り、ATAダイレクトアクセスレジスタ342に書き込む。CPUサブシステム112はまた、ATAダイレクトアクセスレジスタ342に直接的にアクセスすることも可能である。
次に図4を参照すると、本発明によるフラッシュ動作を実行するための図1のRAID制御装置100の動作を例示するフローチャートが示される。フローはブロック402で始まる。
ブロック402で、CPUサブシステム112は、自動的フラッシュ動作を実行するためにメモリ制御装置102によって必要とされる情報を用いて、図3のメモリ制御装置102のCSR202をプログラムする。CPUサブシステム112ソフトウェアは、起動中のその初期化シーケンスの一部としてこの機能を実行することが好ましい。しかし、本明細書で説明される動的な書込みキャッシュサイズの実施形態に関して、CPU112は、RAID制御装置100の通常の動作の間、起動期間の後に、書込みキャッシュサイズ調整に応答して、更新された情報によりメモリ制御装置102CSR202をプログラムしてもよい。特に、CPUサブシステム112は、フラッシュ動作を実行するために必要な情報をメモリ制御装置102に提供するために所望される値を用いて、NVB_FLUSH_CTRLレジスタ302と、NVB_RAM_START_ADDR1レジスタ306と、NVB_ATA_START_ADDR1レジスタ308と、NVB_SIZE1レジスタ312と、NVB_RAM_START_ADDR2レジスタ314と、NVB_ATA_START_ADDR2レジスタ316と、NVB_SIZE2レジスタ318と、NVB_SECTOR_COUNTレジスタ322と、ATA_INT_ENABLEレジスタ328と、NVB_CONFIGレジスタ334とをプログラムする。一実施形態では、CPUサブシステム112は、キャッシュされたすべてのデータ、すなわち、ポステッドライトデータと読取りキャッシュされたデータとをフラッシュするようにメモリ制御装置102をプログラムする。しかし、別の実施形態では、CPUサブシステム112は、ポステッドライトデータだけを含むようにメモリ制御装置102をプログラムし、それにより、フラッシュ動作の実行に必要とされるエネルギー量と時間とを低減する。加えて、CPUサブシステム112は、CPUサブシステム112が、フラッシュ動作の終了時にメモリ制御装置102が成功裏にフラッシュ動作結果情報をフラッシュ結果セクタに書き込んだかどうかを判断するために、フラッシュ結果セクタを所定値に初期化することが可能である。例えば、一実施形態では、CPUサブシステム112は、セクタの各バイトに関して0xFFの値を用いて、フラッシュ結果セクタに書き込むか、または消去する。CPUサブシステム112は、後で、主電源がRAID制御装置100に電力を供給する間に通常の動作を開始する。通常の動作は、ポステッドライト動作を実行し、ポステッドライトデータを揮発性キャッシュメモリ104内に記憶させることを含む。フローはブロック404に進む。
ブロック404で、主電源はRAID制御装置100に電力を供給できない。これに応答して、コンデンサ136は、RAID制御装置100の所定の部分、すなわち、キャッシュメモリ104と、非揮発性メモリ108と、メモリ制御装置102と、電力管理装置132と、電力調整器134と、関連する回路とに電力を供給し始める。特に、コンデンサ136は、CPUサブシステム112、ディスクインターフェース116、またはホストインターフェース118に電力を供給しない。加えて、PCI−Xインターフェース216および218ならびにFIFO206は、ディスクインターフェース116とインターフェースを取るためだけに使用され、ホストインターフェース118はコンデンサ136によって電力を供給されないため、必要とされない。その結果、CPUサブシステム112、ディスクインターフェース116、ホストインターフェース118およびメモリ制御装置102の不要な部分は、フラッシュ動作の間、エネルギーを消費せず、それにより、RAID制御装置100が、通常、より安価であり、かつ/またはより少ない空間を必要とするコンデンサ136を意味する、より少ないエネルギーを蓄積できるコンデンサ136を用いることを可能にする。加えて、以下で説明されるように、CPUサブシステム112、ディスクインターフェース116、およびホストインターフェース118はコンデンサ136内に蓄積されたエネルギーを消費しないという事実は、フラッシュ動作が完了すると、コンデンサ136内により多くのエネルギーが蓄積された状態に残し、フラッシュが完了した後に、コンデンサ136がキャッシュメモリ104に電力を供給し続ける可能性を高め、それにより、ポステッドライトデータを変わらずに維持し、主電源が回復された場合、回復動作の必要性を緩和することが可能である。フローはブロック406に進む。
ブロック406で、電力管理装置132は、主電源の損失を検出し、pwr_state信号222を経由して、キャッシュメモリ104から非揮発性メモリ108にデータのフラッシュ動作を開始するようメモリ制御装置102に命令する。フローはブロック408に進む。
ブロック408で、NVB_CONFIGレジスタ334内のAUTO_FLUSH_ENビットが設定されている場合、メモリ制御装置102は、ブロック402で予めCSR202内にプログラムされた情報に基づいて、フラッシュ動作を実行する。特に、メモリ制御装置102は、NVB_SECTOR_COUNTレジスタ322とATA_INI_ENABLEレジスタ328とによって指定される方法で、NVB_RAM_START_ADDR1レジスタ306/NVB_SIZE1レジスタ312と、NVB_RAM_START_ADDR2レジスタ314/NVB_SIZE2レジスタ318とによって指定された2つの領域内のデータを、それぞれ、NVB_ATA_START_ADDR1レジスタ308とNVB_ATA_START_ADDR2レジスタ316とによって指定された非揮発性メモリ108内の2つの位置に複写する。一実施形態では、第1の領域は、実際のユーザデータを包括する、ポステッドライトデータの部分を含み、第2の領域は、メタデータである、ポステッドライトデータの部分を含む。別の実施形態では、第1の領域は、ポステッドライトユーザデータと、関連するメタデータとを含み、第2の領域は、読取りキャッシュされたユーザデータと、関連するメタデータとを含む。しかし、2つの領域の使用は、これらの実施形態に限定されない。さらに、CSR202が2つのデータ領域より多いまたは少ないデータ領域を指定するためのレジスタを含む実施形態が考えられる。フローはブロック412に進む。
ブロック412で、NVB_CONFIGレジスタ334内のWR_FLUSH_RESULTS_ENビットが設定される場合、メモリ制御装置102は、フラッシュ動作の終了時に、フラッシュ動作は成功したか、中断されたか、またはエラーにより終了されたかどうか、上の表19で指定されたフラッシュ結果情報を非揮発性メモリ108のフラッシュ結果セクタに書き込む。CPUサブシステム112がフラッシュ(または回復)動作を中断する場合、またはメモリ制御装置102がフラッシュ(または回復)動作の間にECCエラーまたはATAエラーを検出する場合、メモリ制御装置102は、次のセクタ境界上でフラッシュ(または回復)動作を終了することになる。NVB_CONFIGレジスタ334内のWR_FLUSH_RESULTS_ENビットが設定される場合、メモリ制御装置102は、フラッシュ結果セクタに書き込み、ブール10をflush_status信号224上に、またNVB_FLUSH_CTRLレジスタ302のFLUSH_STATUSビット内に送る。メモリ制御装置102がフラッシュ動作結果をフラッシュ結果セクタ自体に書き込んでいる間に、CPUサブシステム112が中断を命令する場合、またはメモリ制御装置102がエラーを検出する場合、フラッシュ動作結果は、フラッシュ結果セクタに成功裏に書き込まれる場合も、または書き込まれない場合もあり、フラッシュ動作結果が書き込まれる場合、フラッシュ結果情報は信頼性のないものである可能性がある。フローはブロック414に進む。
ブロック414で、電力管理装置132が、フラッシュ動作を開始するようメモリ制御装置120に命令した後で、電力管理装置132はflush_status信号224を経由してフラッシュ動作の進行を監視する。フラッシュ動作が完了すると、電力管理装置132は、キャッシュメモリ104によって消費される、コンデンサ136内に蓄積されたエネルギー量を低減するために、pwr_state信号222を経由してキャッシュメモリ104をセルフリフレッシュモードに設定するようメモリ制御装置102に命令する。フローはブロック416に進む。
ブロック416で、メモリ制御装置102は、ブロック414で電力管理装置132によって実行された命令に応答して、キャッシュメモリ104をセルフリフレッシュモードに設定する。フローはブロック418に進む。
ブロック418で、電力管理装置132は、コンデンサ136にキャッシュメモリ104だけに電力を供給させる。すなわち、電力管理装置132は、主電源が回復するまで待機している間に消費される、コンデンサ136内に蓄積されたエネルギー量を低減するために、コンデンサ136に非揮発性メモリ108とメモリ制御装置102とに対してもはや電力を供給させない。フローはブロック418で終了する。
次に図5を参照すると、本発明による主電源の障害後に回復されている主電源に応答した、図1のRAID制御装置100の動作を例示するフローチャートが示される。フローはブロック502で始まる。
ブロック502で、主電源はRAID制御装置100に対する電力の供給を再開する。その結果、CPUサブシステム112ソフトウェアは起動し、その初期化シーケンスを開始する。フローは判断ブロック504に進む。
判断ブロック504で、CPUサブシステム112は、キャッシュメモリ104のコンテンツが依然として有効かどうかを判断する。一実施形態では、CPUサブシステム112は、メモリ制御装置102によって書き込まれることが可能な、電力管理装置132内のデータ有効インジケータを調べることによって、キャッシュメモリ104のコンテンツが依然として有効かどうかを判断する。電力管理装置132は、電力増加された(powered up)場合、データ有効インジケータが、ゼロのブール値など、所定値にリセットするように構成される。さらに、電力管理装置132の電力停止(power−off)の閾値は、少なくともキャッシュメモリ104がそのデータを失い始める電力閾値と同じだけの高さである。主電源が失われた場合、メモリ制御装置102は、電力増加リセット値とは異なる値をデータ有効インジケータ内に書き込む。したがって、コンデンサ136がキャッシュメモリ104に電力を供給できない場合(したがって、データ有効インジケータにも供給できない場合)、主電源が回復されると、CPUサブシステム112は、メモリ制御装置102によって書き込まれた値ではなく、データ有効インジケータから電力増加リセット値を読み取ることになる。その結果、CPUサブシステム112は、フラッシュ動作が成功した場合、キャッシュメモリ104が非揮発性メモリ108から回復されなければならないことを判断することになる。しかし、CPUサブシステム112がメモリ制御装置102によって書き込まれた値をデータ有効インジケータから読み取る場合、CPUサブシステム112は、キャッシュメモリ104の回復に先行できることを判断し、それにより、ユーザデータをより速くホストコンピュータに利用可能にすることになる。キャッシュメモリ104のコンテンツが依然として有効である場合、フローは判断ブロック516に進む。そうでない場合、フローは判断ブロック506に進む。
判断ブロック506で、CPUサブシステム112は、NVB_FLUSH_CTRLレジスタ302のFLUSH_STATUSビットを調べることによって、図4に従って実行されたフラッシュ動作が成功裏に完了したかどうかを判断する。一実施形態では、CPUサブシステム112は、フラッシュ結果セクタ内の完了状態を調べることによって、フラッシュ動作が成功裏に完了したかどうかをさらに判断する。一実施形態では、CPUサブシステム112は、フラッシュ結果セクタ内の完了署名を、コードフラッシュ106内の完了署名と比較することによって、フラッシュ動作が成功裏に完了したかどうかをさらに判断する。一実施形態では、CPUサブシステム112は、フラッシュ結果セクタ内のCRCを非揮発性メモリ108からデータを読み取ることによって計算されたCRCと比較することによって、フラッシュ動作が成功裏に完了したかどうかをさらに判断する。フラッシュ動作が成功裏に完了した場合、フローはブロック512に進む。そうでない場合、フローはブロック508に進む。
ブロック508で、ポステッドライトデータは失われているため、RAID制御装置100はパートナ、すなわち、システム内の冗長なRAID制御装置100にフェイルオーバする。一実施形態では、通常の動作の間、ホストが書込みI/O要求をRAID制御装置100に発行する場合、ポステッドライトデータはパートナRAID制御装置100にも書き込まれる。その結果、RAID制御装置100のうちの1つが失敗した場合、特に、フラッシュ動作が1つのRAID制御装置100上で失敗した場合、フラッシュ動作はパートナRAID制御装置100上で成功している高い可能性が存在する。そうであれば、パートナRAID制御装置100は、その非揮発性メモリ108からキャッシュメモリ104に対してポステッドライトデータの回復を実行し、後で、ポステッドライトデータをディスクにフラッシュすることが可能である。フローはブロック508で終了する。
ブロック512で、CPUサブシステム112は、図4に説明されたフラッシュ動作の間にキャッシュメモリ104から非揮発性メモリ108にフラッシュされたデータを回復してキャッシュメモリ104に戻すための回復動作を実行するようメモリ制御装置102に命令する。回復動作を実行するようメモリ制御装置102に命令することに先立って、CPUサブシステム112は、回復動作を実行するために必要なメモリ制御装置102の様々なCSR202内に適切な値をプログラムする。一実施形態では、CPUサブシステム112は、単に非揮発性メモリ108からデータを読み取り、そのデータをキャッシュメモリ104に書き込むことによって、回復動作を実行するようにメモリ制御装置102に命令するのではなく、回復動作を実行する。主電源が電力を供給している間に回復動作が実行されるため、低い電力消費レベルでメモリ制御装置102が回復動作を実行することほど困難ではない。しかし、この実施形態には、CPUサブシステム112は、回復動作を完了するのにメモリ制御装置102よりも時間がかかるという不利点がある。フローはブロック514に進む。
ブロック514で、CPUサブシステム112は、キャッシュメモリ104からディスクにポステッドライトデータをフラッシュする。フローはブロック514で終了する。
判断ブロック516で、CPUサブシステム112は、NVB_FLUSH_CTRLレジスタ302のFLUSH_STATUSビットを読み込むことによって、フラッシュ動作が進行中かどうかを判断する。フラッシュ動作が進行中である場合、フローは判断ブロック518に進む。そうでない場合、フローはブロック514に進む。
ブロック518で、CPUサブシステム112は、電圧レベルが最低閾値より高いかどうかを判断するためにコンデンサ136の電圧レベルを調べる。一実施形態では、最低電圧閾値は、CPUサブシステム112ソフトウェア内にプログラムされる。別の実施形態では、最低電圧閾値は、ユーザ構成プログラムを経由してユーザプログラム可能である。コンデンサ136の電圧レベルが最低閾値より高い場合、フローは判断ブロック516に戻り、フラッシュ動作が完了するまで、またはコンデンサ136の電圧が最低閾値に達するまで待機する。そうでない場合、フローはブロック522に進む。
ブロック522で、CPUサブシステム112は、NVB_FLUSH_CTRLレジスタ302内のFLUSH_STARTビットにブール0を書き込むことによってフラッシュ動作を中断する。フローはブロック514に進む。
フラッシュが完了するまで、またはコンデンサ136の電圧レベルが最低閾値に達するまで、RAID制御装置100を起動し、キャッシュメモリ104が依然として有効であり、フラッシュ動作が進行中である場合、通常の動作を再開するのを待つ工程は、以下の一連の事象によって例示されるような、判断ブロック518で追加テストの助けなしに存在する可能性がある問題を解決する。電力管理装置132が主電源の損失を検出し、フラッシュ動作を実行するようメモリ制御装置102に命令すると仮定する。コンデンサ136に蓄積されたエネルギーの相当量はフラッシュ動作によって消費される。フラッシュ動作が完了する前に、主電源は回復される。その結果、CPUサブシステム112はフラッシュ動作を中断する。CPUサブシステム112が起動して、別の主電源の損失が発生した場合、別のフラッシュ動作を可能にする。その後すぐに、また注目に値すべく、コンデンサ136が完全に再充電されないうちに、電力管理装置132は、主電源の別の損失を検出して、別のフラッシュ動作を実行するようメモリ制御装置102に命令する。第2のフラッシュ動作は、この場合もはやり、コンデンサ136に蓄積されたエネルギーの相当量を消費し、この消費は完全充電に満たずに始まる。このシーケンスが続くと、最終的に、コンデンサ136は、成功するフラッシュ動作を完了するために十分なエネルギーを持たないことになり、その結果、ユーザデータの損失の可能性をもたらす。上に説明されたシナリオは、主電源供給の定期的な一時停止によって、または場合によっては、期間がおよそフラッシュ動作時間の程度である、比較的定期的な形で、主電源が失われていることを電力管理装置132に検出させる、雑音のある電力供給によって引き起こされる可能性がある。しかし、有利には、判断ブロック518での追加的なテストがこの問題を潜在的に回避させる。代替実施形態では、コンデンサパック136は完全に充電されていないため、書込みキャッシュ156はライトスルーモードに設定され、それにより、所望されないシナリオを回避する。別の代替実施形態では、ブロック518で、CPU112は、フラッシュ動作が完了したかどうかを判断し、完了した場合、フローはブロック514に進む。そうでない場合、フローはブロック516に戻る。
揮発性メモリから非揮発性メモリにポステッドライトデータフラッシュを実行するためにメモリ制御装置が用いられる実施形態が説明されているが、図6および7に例示されるように、CPUが揮発性メモリから非揮発性メモリにフラッシュを実行する実施形態が考えられる。フラッシュ動作を実行するためにCPUサブシステム112を使用する、図6および7の実施形態は、組み合わせて以下のうちの1つまたは複数が真実である場合、実行可能な実施形態であり得る:コンデンサ136のエネルギー密度は、フラッシュ動作を実行するために、CPUサブシステム112を含めて、RAID制御装置100によって必要とされるエネルギーを蓄積するうえで十分高い;RAID制御装置100上のコンデンサ136に割り当てられる利用可能な空間は、十分なコンデンサ136を使用し、フラッシュ動作を実行するためにCPUサブシステム112を含むRAID制御装置100によって必要とされるエネルギーを蓄積するのに十分大きい;CPUサブシステム112は、コンデンサ136が、フラッシュ動作を実行するために、CPUサブシステム112を含めて、RAID制御装置100によって必要とされるエネルギーを蓄積できるようにほんのわずかな電力量を消費する。この実施形態は、図1から5で説明される実施形態よりも多くのエネルギーを消費するが、コンデンサ136が要求されるエネルギーを供給できる場合、RAID制御装置100は、本明細書で説明されるバッテリ技術に比べて、より低いコスト、より高い信頼性、より少ないメンテナンス、およびより短い再充電時間などのコンデンサ技術の利点を享受することになる。
次に図6を参照すると、本発明の代替実施形態によるRAID制御装置600を例示するブロックダイヤグラムが示される。図6のRAID制御装置600は、図1のRAID制御装置100と類似する。しかし、図7に関して示され、説明されるように、メモリ制御装置102ではなく、フラッシュ動作に関して、CPUサブシステム112と通信するために電力管理装置132が結合される。
次に図7を参照すると、本発明の代替実施形態に従ってフラッシュ動作を実行するための図6のRAID制御装置600の動作を例示するフローチャートが示される。フローはブロック704で始まる。
ブロック704で、主電源はRAID制御装置600に電力を供給できない。これに応答して、コンデンサ136は、RAID制御装置600の所定の部分、すなわち、キャッシュメモリ104と、非揮発性メモリ108と、メモリ制御装置102と、電力管理装置132と、電力調整器134と、CPUサブシステム112と、関連する回路とに電力を供給し始める。特に、コンデンサ136はディスクインターフェース116、またはホストインターフェース118に電力を供給しない。加えて、PCI−Xインターフェース216および218ならびにFIFO206は、ディスクインターフェース116とインターフェースを取るためだけに使用され、ホストインターフェース118はコンデンサ136によって電力を供給されないため、必要とされない。その結果、ディスクインターフェース116、ホストインターフェース118およびメモリ制御装置102の不要な部分は、フラッシュ動作の間、エネルギーを消費せず、それにより、RAID制御装置100が、通常、より安価であり、かつ/またはより少ない空間を必要とするコンデンサ136を意味する、より少ないエネルギーを蓄積できるコンデンサ136を用いることを可能にする。加えて、以下で説明されるように、ディスクインターフェース116およびホストインターフェース118はコンデンサ136内に蓄積されたエネルギーを消費しないという事実は、フラッシュ動作が完了すると、コンデンサ136内により多くのエネルギーが蓄積された状態に残し、フラッシュが完了した後に、コンデンサ136がキャッシュメモリ104に電力を供給し続ける可能性を高め、それにより、ポステッドライトデータを変わらずに維持し、主電源が回復された場合、回復動作の必要性を緩和することが可能である。フローはブロック706に進む。
ブロック706で、電力管理装置132は、主電源の損失を検出し、キャッシュメモリ104から非揮発性メモリ108へのデータのフラッシュ動作が必要であることをCPUサブシステム112に通知する。フローはブロック708に進む。
ブロック708で、CPUサブシステム112は、キャッシュメモリ104から非揮発性メモリ108にデータを複製することによって、フラッシュ動作を実行する。フローはブロック712で終了する。
ブロック712で、フラッシュ動作の完了時に、CPUサブシステム112は、フラッシュ動作は成功したか、中断されたか、またはエラーにより終了されたかどうか、上の表19に指定されたフラッシュ結果情報を非揮発性メモリ108のフラッシュ結果セクタに書き込む。フローはブロック716に進む。
ブロック716で、CPUサブシステム112は、キャッシュメモリ104をセルフリフレッシュモードに設定する。フローはブロック718に進む。
ブロック718で、CPUサブシステム112は、コンデンサ136にキャッシュメモリ104だけに電力を供給させるよう電力管理装置132に命令する。すなわち、電力管理装置132は、主電源が回復するまで待機している間に消費される、コンデンサ136内に蓄積されたエネルギー量を低減するために、コンデンサ136にCPUサブシステム112と、非揮発性メモリ108とメモリ制御装置102とに対してもはや電力を供給させない。フローはブロック718に進む。
次の図8を参照すると、本発明による様々な温度と電圧の組合せに関して、図1のコンデンサパックの寿命を蓄積するための表800、またはデータベース800を例示するブロックダイヤグラムが示される。図8に示された値は、例示目的で提供された仮定値であり、コンデンサ製造会社から取得可能な特定のコンデンサ製品の実際の知られている値を表さない。さらに、示された温度の範囲は、例示目的で選択された仮定範囲である。
以上に説明されたように、コンデンサパック136の目的は、主電源の損失に応答して、書込みキャッシュ156から非揮発性メモリ108への書込みキャッシュデータをバックアップするため、またはフラッシングするための電力を供給するためにエネルギーを蓄積することである。コンデンサパック136が非揮発性メモリ108に対して書込みキャッシュ156をバックアップするために十分なエネルギーを蓄積するための容量をもはや持たない場合、コンデンサパック136は、その寿命末期に達する、すなわち、その寿命は終了する。コンデンサパック136の静電容量は、RAID制御装置100の動作でコンデンサパック136が使用されるにつれて経時的に減少する。コンデンサパックの温度、動作電圧、過剰な電流引込み、およびコンデンサパック136の極性の変化を含めて、様々な要因がコンデンサパック136の静電容量の低以下に影響を与える。一実施形態では、以下で説明されるように、コンデンサパック136の電流引込みも監視され、電流引込みが所定量を超える場合、コンデンサパック136の寿命を時期尚早に減らすることを避けるために、コンデンサパック136の充電は一時的に動作不能にされる。コンデンサパック136の寿命を時期尚早に減らすることを避けるために、コンデンサパック136の極性は、RAID制御装置100の動作の間、同じに維持される。したがって、コンデンサパック136の静電容量、したがって、寿命に影響を与える主な要因は、温度および動作電圧である。
RAID制御装置100の一実施形態では、コンデンサパック136の保証寿命は5年である。すなわち、RAID制御装置100の製造会社は、非揮発性メモリ108に書込みキャッシュ156をバックアップするために十分なエネルギーを蓄積するために、コンデンサパック136は少なくとも5年間十分な静電容量を持つことを保証する。コンデンサパック136内の各コンデンサが蓄積できるエネルギー量は、方程式(1)によって与えられ、式中、Eはコンデンサによって蓄積されたエネルギーであり、Cはコンデンサの静電容量であり、Vopはコンデンサの動作電圧であり、Vminはコンデンサの遮断電圧である:
E=1/2*C*(Vop 2−Vmin 2)(1)
一実施形態では、コンデンサパック136は、各コンデンサが同じタイプのものである、4つの直列コンデンサとして配置される。したがって、コンデンサパック136によって蓄積される総エネルギーは、コンデンサパック136内の4つのコンデンサの各々によって蓄積されるエネルギーの合計、すなわちパック内の単一のコンデンサによって蓄積されたエネルギーのおよそ4倍である。さらに、コンデンサパック136の動作電圧は、コンデンサパック136内の4つのコンデンサの動作電圧の合計、すなわちパック内の単一のコンデンサの動作電圧のおよそ4倍である。RAID制御装置100は、コンデンサパック136の各コンデンサの全域で電圧が総コンデンサパック136電圧のおよそ4分の1になるようバランスをとるように、クアド演算増幅器(quad operational amplifier)回路を用いるアクティブバランスイコライザ(active balance equalizer)回路を含む。一実施形態では、コンデンサパック136内の個々のコンデンサの各々の周囲温度および動作電圧はおよそ同じであると仮定され、その結果、個々のコンデンサの各々の寿命はおよそ同じである。コンデンサパック136内の個々のコンデンサの各々の寿命が、温度と個々の電圧示数に基づいて計算され、最低演算寿命を有するコンデンサの寿命がコンデンサパック136全体の寿命を制限する別の実施形態が考えられる。
E=1/2*C*(Vop 2−Vmin 2)(1)
一実施形態では、コンデンサパック136は、各コンデンサが同じタイプのものである、4つの直列コンデンサとして配置される。したがって、コンデンサパック136によって蓄積される総エネルギーは、コンデンサパック136内の4つのコンデンサの各々によって蓄積されるエネルギーの合計、すなわちパック内の単一のコンデンサによって蓄積されたエネルギーのおよそ4倍である。さらに、コンデンサパック136の動作電圧は、コンデンサパック136内の4つのコンデンサの動作電圧の合計、すなわちパック内の単一のコンデンサの動作電圧のおよそ4倍である。RAID制御装置100は、コンデンサパック136の各コンデンサの全域で電圧が総コンデンサパック136電圧のおよそ4分の1になるようバランスをとるように、クアド演算増幅器(quad operational amplifier)回路を用いるアクティブバランスイコライザ(active balance equalizer)回路を含む。一実施形態では、コンデンサパック136内の個々のコンデンサの各々の周囲温度および動作電圧はおよそ同じであると仮定され、その結果、個々のコンデンサの各々の寿命はおよそ同じである。コンデンサパック136内の個々のコンデンサの各々の寿命が、温度と個々の電圧示数に基づいて計算され、最低演算寿命を有するコンデンサの寿命がコンデンサパック136全体の寿命を制限する別の実施形態が考えられる。
一実施形態では、コンデンサパック136の個々のコンデンサが元の静電容量値から30%の静電容量低下を受けた場合、コンデンサパック136用の寿命末期は条件として選択される。一実施形態では、30%の静電容量低以下に達した場合、コンデンサパック136は、通常の動作電圧でバックアップを実行するために十分なエネルギーをもはや蓄積できない。別の実施形態では、エラーに若干の余裕を与えるために30%の静電容量低以下の寿命値が選択される。すなわち、コンデンサパック126内のコンデンサは、通常の動作電圧でバックアップを実行するための十分なエネルギーをもはや蓄積できないためには、30%を超える静電容量低下を実際に受けなければならない可能性がある。30%の静電容量低下値は、本明細書で本発明を例示するために使用される。しかし、本発明は特定の静電容量低下値に限定されるものではなく、むしろ、本発明は、バックアップを実行するために要求されるエネルギー量と、用いられる特定のコンデンサの特徴とに応じて、他の静電容量低下値で実施され得る点を理解されたい。図8の表800で指定された寿命値は、コンデンサパック136の個々のコンデンサが、その元の静電容量値から、その寿命末期の静電容量低下割合に達する前に、指定された温度および電圧で動作することが可能な時間数を示す。したがって、表800に記憶された各寿命値は、指定された寿命の間にコンデンサパック136が指標付きの温度および電圧で動作された場合、その全体にわたって、コンデンサパック136が少なくとも所定のエネルギー量を蓄積する能力を持つことになる指定寿命として理解され得る。一実施形態では、所定のエネルギー量は、非揮発性メモリ108にフルサイズの書込みキャッシュ156をバックアップする目的で十分なエネルギーを供給するために要求される計算されたエネルギー量である。
一実施形態では、図8の表800は、コードフラッシュ106内の2次元アレイとして記憶され、RAID制御装置100が起動された場合、CPUサブシステム112のプログラムRAMに複写され、その結果、CPU112は、サンプリングされた温度値と電圧値とを使用して表800内の寿命を調べることができる。図8の実施形態では、RAID制御装置100は、表800に示されるように、2つの異なる電圧、すなわち、8.2Vおよび7.2Vでコンデンサパック136を動作することをサポートする。表800で、8.2Vの動作電圧はアレイの指標0を占有し、7.2Vの動作電圧はアレイの指標1を占有する。有利には、本明細書に説明されるのは、コンデンサパック136の寿命を高めるために、必要に応じて、コンデンサパック136の動作電圧をより低い電圧レベルに動的に低減する、または絞る方法である。図8の実施形態は2つの可能な動作電圧だけを例示するが、本発明は2つの動作電圧に限定されず、むしろ、多くの動作電圧を有する実施形態が考えられる。さらに、これら例示されたもの以外の動作電圧値を有する実施形態が考えられる。例示的な実施形態では、4つのコンデンサ136が直列で配置され、CPU112によって制御されるコンデンサパック136の動作電圧に応じて、各コンデンサ136はおよそ2.05Vまたは1.8Vで動作する。アレイ800は、2つの電圧に対応する2つの列を含む。アレイ800の行は、温度値によって指標付けされる。各行は異なる整数の摂氏温度に対応する。図8の実施形態の表800は、摂氏10度から摂氏40度までの周囲温度値を含む。例えば、図8に示されるように、摂氏40度と8.2V(すなわち、コンデンサ当り2.05V)での寿命は800時間であり、7.2V(すなわち、コンデンサ当り1.8V)では820時間である。一実施形態では、固定された動作電圧値を仮定すると、コンデンサパック136内のコンデンサの特性は、寿命値が温度の対数関数に近似するようなものである。残りの図面に関して以下で説明されるように、累積された正規化された実行時間152と、関連する値とを計算するために、CPU112は、指定された寿命を取得するのに表800を指標付けする目的でサンプリングされた温度値と電圧値とを使用する。
以上で説明されたように、一実施形態では、保証寿命は5年である。しかし、表800の仮定値に関して説明するために、1000時間の保証寿命を仮定する。表800から観測され得るように、コンデンサパック136が8.2Vおよび摂氏25度で継続的に動作される場合、このコンデンサパック136は保証された1000時間の寿命を有することになる、すなわち、1000時間の後、その寿命末期の静電容量低下割合(例えば、30%)に達することになる。対照的に、コンデンサパック136が7.2Vおよび摂氏28度で継続的に動作される場合、このコンデンサパック136は保証された1000時間の寿命を有することになる、すなわち、1000時間の後、その寿命末期の静電容量低以下に達することになる。したがって、コンデンサパック136を8.2Vで動作する場合の「通常」温度は25度であり、7.2Vで動作する場合の「通常」温度は28度である。すなわち、所与の動作電圧に関して、通常温度は、コンデンサパック136寿命が保証寿命を満たす温度であり、または余裕が所望される場合、保証寿命を超える温度である。しかし、表800の値は、コンデンサの温度および電圧が一定値に維持される実験条件で実験的に導かれることが可能であるが、コンデンサパック136がコンピュータシステム内のRAID制御装置100内で動作する場合、温度は通常温度とは異なる可能性がある。同様に、以下に説明されるように、保証寿命を実現することを試みるためにコンデンサパック136の寿命を高める目的で、コンデンサパック136の動作電圧は、必要に応じて、意図的に動的に調整されることが可能であると有利である。したがって、有利には、本発明は、図9に関して以下で説明されるように、RAID制御装置100が、特定の動作電圧レベルのための通常温度に対する表800から取得された寿命値を正規化する方法を説明する。
一実施形態では、各コンデンサの動作電圧を2.05V、また信頼性のあるFETゲート閾値のための最低作動電圧および低いドロップアウト調整を定義する遮断電圧を0.8Vと仮定すると、コンデンサパック136は、完全に充電された場合、完全な静電容量で、およそ356ジュールの利用可能なエネルギーを蓄積する直列の50ファラドコンデンサを4つ含む。対照的に、30%の静電容量低以下で、コンデンサパック136は250ジュールだけ蓄積することが可能である。コンデンサパック136は、各コンデンサの動作電圧を1.8Vと仮定すると、260ジュールの利用可能なエネルギーを蓄積することが可能である。対照的に、30%の静電容量低以下で、コンデンサパック136は182ジュールだけ蓄積することが可能である。一実施形態では、キャッシュメモリ104、非揮発性メモリ108、メモリ制御装置102、電力管理装置132、DDR−SDRAMバスインターフェース端末回路、クロッキング(clocking)回路、およびフラッシュ動作の間に電力を要求するその他の種々の回路の電力消費は、およそ4ワットである。非揮発性メモリ108は、およそ毎秒10MBの維持速度で書き込まれていることが可能である。一実施形態では、キャッシュメモリ104のサイズは、フルサイズの書込みキャッシュ156用のおよそ512MBを含む1GBであり、非揮発性メモリのサイズは512MBである。その結果、フラッシュ動作は、完了するのにおよそ50秒かかり、およそ200ジュールのエネルギーを消費する。したがって、観測され得るように、コンデンサパック136がより低い7.2Vレベルで動作している場合、コンデンサパック136が30%の静電容量低下寿命末期に達する前でさえ、コンデンサパック136は、書込みキャッシュ156全体をバックアップするために十分なエネルギーを蓄積できない可能性がある。有利には、本明細書で説明されるのは、書込みキャッシュ156をコンデンサパック136がバックアップを実行するために十分なエネルギーを供給できるサイズに動的に低減する方法である。
保証寿命が非揮発性メモリ108バックアップに対して書込みキャッシュ156を実行するために要求される所定のエネルギー量に基づく実施形態が本明細書で説明されるが、本明細書で説明される、コンデンサパック136の寿命監視方法と、動的電圧スロットリング方法とはかかるアプリケーションに限定されない。むしろ、保証寿命が他の機能を実行するために要求される所定のエネルギー量に基づく他の実施形態が考えられる。例えば、RAID制御装置100が書込みキャッシュ156をバックアップするための非揮発性メモリ108を含まず、所定のエネルギー量は、主電源が回復されるまで書込みキャッシュ156内のデータの完全性を維持するために、主電源の損失の間、所定の時間量(例えば、3日)の間、揮発性メモリ104に電力を供給するために要求されるエネルギー量である実施形態が考えられる。
次に図9を参照すると、本発明による図1のRAID制御装置100の動作を例示するフローチャートが示される。特に、図9は、RAID制御装置100が、コンデンサパック136の累積された正規化された実行時間152を計算する方法を例示する。フローチャートはブロック902で始まる。
ブロック902で、CPU112は累積された正規化された実行時間152と、累積された歴実行時間154とを初期化する。一実施形態では、累積された正規化された実行時間152と、累積された歴実行時間154とは、RAID制御装置100が製造されるときに初期化される。一実施形態では、累積された正規化された実行時間152と、累積された歴実行時間154とは、ゼロに初期化される。別の実施形態では、累積された正規化された実行時間152と、累積された歴実行時間154とは、コンデンサパックの製造会社によって指定されたようになど、コンデンサパックの静電容量値の許容因数に基づく時間量に初期化される。例えば、コンデンサ製造会社が10%の許容を指定する場合、累積された正規化された実行時間152と、累積された歴実行時間154とは、寿命末期値の10%(例えば、5年の10%)に初期化される。別の実施形態では、累積された正規化された実行時間152と、累積された歴実行時間154とは、コンデンサパック136の製造時からの時間量など、歴年齢に初期化される。累積された正規化された実行時間152と、累積された歴実行時間154とが、許容値と歴年齢の組合せに基づく値に初期化される別の実施形態が考えられる。累積された正規化された実行時間152と、累積された歴実行時間154とが、エラーの所望される誤差限界に基づく値に初期化される別の実施形態が考えられる。フローはブロック904に進む。
ブロック904で、CPU112は、それぞれ、図1の温度センサ142と電圧センサ144とを経由して、より大きな時間間隔にわたって、コンデンサパック136の温度と電圧とを定期的にサンプリングし、サンプリングされた温度と電圧とを平均化する。一実施形態では、サンプル期間は15秒であり、平均間隔は1時間である。より大きな間隔にわたってサンプリングされた値を平均化し、値がサンプリングされるごとにではなく、より大きな時間間隔ごとに1回、累積された正規化された実行時間152と、累積された歴実行時間154とを非揮発性108に書き込むことの利点は、消費されるCPU112帯域幅の量を低減し、非揮発性メモリ108に対して書込み周期の最大数を超えることを潜在的に回避することである。フローはブロック906に進む。
ブロック906で、CPU112は、平均化された温度と電圧とに関して寿命を取得するために、図8の表800に指標付けすることによって、ブロック904の平均化された温度と電圧での寿命を調べる。一実施形態では、平均化された温度と電圧値とは、必要に応じて、次の最高値に切り上げられる。例えば、平均温度が30.8度である場合、図8の表800内への指標として使用するために値は31度に切り上げられる。同様に、サンプリングされた平均電圧が7.8Vである場合、値は8.2Vに切り上げられ、表800内への電圧指標は0である。代替実施形態では、寿命値が温度および電圧の関数によって表現されやすい場合、寿命値は表800を調べるのではなく、関数から計算されてよい点に留意されたい。この実施形態の潜在的な不利点は、特に、浮動小数点計算を実行するために、表を調べる方法よりも多くの演算処理能力(computation bandwidth)をCPU112に要求する可能性があることである。しかし、この実施形態の潜在的な利点は、表を調べる方法よりも温度および電圧の値より細かな粒度(granularity)を可能にすることができる点である。フローはブロック908に進む。
ブロック908で、CPU112は、間隔をブロック906で得られた寿命値に対する保証寿命の比率で乗じることによって間隔を正規化する。例えば、間隔が1時間であり、保証寿命が1000時間であり、(測定された温度および/または電圧は、通常温度および電圧よりも低いため)ブロック906で得られた寿命が2000時間であると仮定すると、正規化された間隔は、1時間*(1000/2000)=0.5時間となる。したがって、正規化された間隔は間隔の歴時間未満であり、それにより、事実上、1時間の歴動作間隔の間、1時間未満のコンデンサパック136寿命が低減されたことを示す。対照的に、(測定された温度および/または電圧は、通常温度および電圧よりも高いため)ブロック906で得られた寿命は単に500時間であると仮定すると、正規化された間隔は、1時間*(1000/500)=2時間となる。したがって、正規化された間隔は間隔の歴時間を超え、それにより、事実上1時間の歴動作間隔の間、1時間を越えるコンデンサパック136寿命が低減されたことを示す。フローはブロック912に進む。
ブロック912で、CPU112は、ブロック904の間隔にわたって、ブロック904で得られた平均温度および平均電圧でのコンデンサパック136の動作の効果を反映する、最新の累積された正規化された実行時間152値を生み出すために、ブロック908で計算された正規化された間隔を累積された正規化された実行時間152に追加する。加えて、CPU112は、最新の累積された歴実行時間154値を生み出すために、平均間隔(すなわち、正規化されていない間隔、例えば、1時間)を累積された歴実行時間154に追加する。フローはブロック914に進む。
ブロック914で、CPU112は、ブロック912で計算された最新の累積された正規化された実行時間152と、累積された歴実行時間154とを非揮発性メモリ108に書き込み、その結果、これらの値は主電源の損失全体にわたって維持され、後に、RAID制御装置100が再起動された後で、再び使用されることが可能である。フローはブロック916に進む。
ブロック916で、CPU112は、保証寿命に対する累積された正規化された実行時間152の比率として使用される正規化された保証寿命の割合を計算する。例えば、累積された正規化された実行時間152が200時間であり、保証寿命が100時間である場合、コンデンサパック136の使用された正規化された保証寿命の割合は20%である。すなわち、事実上、保証寿命の20%が消耗されており、事実上、800時間の寿命が残っている。フローはブロック918に進む。
ブロック918で、CPU112は、ブロック916で計算された、使用された正規化された保証寿命の割合と寿命末期の静電容量低下割合の積として、コンデンサパック136の静電容量低下割合を計算する。例えば、寿命末期の静電容量低下割合が30%であり、ブロック916で計算された、使用された正規化された保証寿命の割合が20%である場合、コンデンサパック136の静電容量低下割合は6%である。フローはブロック922に進む。
ブロック922で、CPU112は、ブロック918で計算されたコンデンサパック136の静電容量低下割合をユーザに報告する。さらに、ユーザは、静電容量低下割合が、有効範囲にあるか、警告範囲にあるか、または失敗範囲にあるかを通知される。一実施形態では、静電容量低下割合が寿命末期の静電容量低下割合の1%以内である場合、ユーザは寿命末期が近づいていることを警告される。一実施形態では、ユーザは寿命末期が近づいていることを通知されることになる範囲を入力することが可能である。一実施形態では、ユーザはまた、静電容量低下割合と比較するために、寿命末期の静電容量低下割合も通知される。一実施形態では、CPU108はまた、保証寿命から、累積された正規化された実行時間152を差し引いたものとして、計算された正規化された寿命時間の残りの数もユーザに報告する。一実施形態では、コンデンサパック136の温度および電圧ならびにコンデンサパック136内の各コンデンサの電圧がユーザに報告される。一実施形態では、情報はシリアルインターフェースを経由してユーザに提供される。一実施形態では、情報は、イーサネット(登録商標)インターフェース上のTCP/IP接続経由など、ウェブブラウザインターフェースを経由してユーザに提供される。フローは、別の間隔に関してコンデンサパック136寿命を監視するためにブロック904に戻る。
図9から観測され得るように、RAID制御装置100は、有利には、事実上、その保証寿命に対する、コンデンサパック136の年齢または寿命の尺度である、累積された正規化された実行時間152を計算する。その全体にわたって、コンデンサパック136が動作される暦時間間隔の合計である、累積された歴実行時間154と対照的に、累積された正規化された実行時間152は、累積された歴実行時間154を構成する暦時間間隔に対応する正規化された実行時間の合計である。正規化された実行時間は、間隔の間にサンプリングされた平均動作電圧での通常温度に対する、間隔の間にサンプリングされた平均温度に関して、表800の寿命示数を正規化することによって計算される。したがって、累積された正規化された実行時間152は、コンデンサパック136の歴年齢よりも、コンデンサパック136の有効年齢のより重要かつ正確な尺度を提供し、コンデンサパック136の静電容量測定の放電/再充電方法に関連する有害な性能影響を受けずにこれを行う。
図9で説明される実施形態では、累積された正規化された実行時間152と、累積された歴実行時間154とは、RAID制御装置100の動作の間、特に、CPU112の動作の間だけ更新される点に留意されたい。特に、これらの値は、RAID制御装置100全体の電力が停止された場合、および(図5の実施形態では事実ではないが)図1の実施形態で事実である、非揮発性メモリ108に対する書込みキャッシュ156のバックアップの間に、CPU112の電力が停止された場合、更新されない。しかし、RAID制御装置100の電力が停止されている場合、コンデンサパック136上の充電は、一般に、比較的早く使い果たされ、それにより、電圧が減少することになる。また、電圧がより低いと、コンデンサパック136の老化は非常に遅い。したがって、電力停止時間は、およそ5年程度の保証寿命を有する実施形態に関しては深刻でない可能性が高い。しかし、保証寿命が相当少ない実施形態では、電力停止時間が考慮に入れられてよい。これは、未使用の間、エネルギーを蓄積する能力が相当低下するバッテリと対照的である。さらに、バックアップを実行するために要求される時間量は、分程度である。したがって、高温で正規化される場合であっても、バックアップ時間は、およそ5年程度の保証寿命を有する実施形態に関して深刻でない可能性が高い。しかし、保証寿命が相当少ない実施形態では、バックアップ時間が考慮に入れられてよい。
次に図10を参照すると、本発明による図1のRAID制御装置100の動作を例示するフローチャートが示される。特に、図10は、RAID制御装置100が、必要な場合、コンデンサパック136の累積された正規化された実行時間152を延長するために、コンデンサパック136の動作電圧を絞る方法を例示する。図10はまた、必要に応じて、RAID制御装置100が書込みキャッシュ156サイズを動的に低減する方法も例示する。フローはブロック1002で始まる。
ブロック1002で、CPU112は、コンデンサパック136の温度が第1の所定の閾値を超えたことを検出する。一実施形態では、第1の所定の閾値は摂氏51度である。図10は、コンデンサパック136の温度が閾値を超えたことを検出したことに応答して、コンデンサパック136の動作電圧が絞られ、書込みキャッシュ156サイズが調整された実施形態を開示するが、本明細書で説明される電圧の絞り方法および書込みキャッシュ156サイズ調整方法とは、この実施形態に限定されない。むしろ、他の理由で、RAID制御装置100が動作電圧を絞り、書込みキャッシュ156サイズを調整する他の実施形態が考えられる。例えば、一実施形態では、図9の各間隔の終りに、CPU112が累積された正規化された実行時間152と、累積された歴実行時間154とを計算する場合、CPU112は、電圧スロットリングおよび/または書込みキャッシュ156サイズ調整が必要かどうかを判断するために、ブロック1004に進む。別の例では、コンデンサパック136の温度は第1の閾値を超えていない可能性があるが、RAID制御装置100は、コンデンサパック136がその寿命末期に達したと判断し、書込みキャッシュ156サイズが小さいにもかかわらず、RAID制御装置100を交換する代わりに動作を継続するオプションをユーザに与えることを判断してもよい。フローはブロック1004に進む。
ブロック1004は、CPU112は、累積された正規化された実行時間152と、累積された歴実行時間154とに基づいて、コンデンサパック136の予測される寿命を計算する。特に、予測される寿命は、保証寿命と、累積された正規化された実行時間152に対する累積された歴実行時間154の比率の積として計算される。例えば、保証寿命が1000時間であり、累積された歴実行時間154が300時間であり、累積された正規化された実行時間152が200時間である場合、予測される寿命は1000時間*(300/200)=1500時間である。フローは判断ブロック1006に進む。
判断ブロック1006で、CPU112は、予測される寿命が保証寿命未満であるかどうかを判断するために、ブロック1004で計算された、コンデンサパック136の予測される寿命を保証寿命と比較する。そうである場合、フローは判断ブロック1008に進む。そうでない場合、フローは判断ブロック1024に進む。
判断ブロック1008で、CPU112は、コンデンサパック136がすでに現在最低電圧レベルで動作しているかどうかを判断する。2つの電圧レベル(例えば、8.2Vおよび7.2V)だけが提供される例では、最低電圧は7.2Vである。しかし、3つ以上の電圧レベルが提供される他の実施形態が考えられる。より多い電圧レベルを提供することの利点は、より細かい粒度は書込みキャッシュ156のより細かい粒度調整を可能にできる点であるが、不利点は、電圧調整と書込みキャッシュ156サイズ調整とを行うために、より複雑な電圧調整回路およびソフトウェアを潜在的に要求することである。コンデンサパック136がすでに現在最低電圧レベルで動作している場合、フローはブロック1022に進む。そうでない場合、フローはブロック1012に進む。
ブロック1012で、CPU112は、コンデンサパック136の動作電圧が減少されたに違いないことを判断し、したがって、CPU112は、その累積された正規化された実行時間152に基づいて、次に低い動作電圧でコンデンサパック136が蓄積できるエネルギー量によってバックアップされ得る書込みキャッシュ156のサイズを計算する。例えば、フルサイズが512MBである書込みキャッシュ156と、8.2V(コンデンサ当り2.05V)および7.2V(コンデンサ当り1.8V)の2つの電圧レベルとを仮定する。コンデンサパック136内の個々のコンデンサの数は異なる可能性があるが、単一のコンデンサに関する静電容量低下割合の計算は、コンデンサパック136全体の静電容量低下割合に相当する。C0がコンデンサの元の静電容量である場合、30%の寿命末期の静電容量低下割合後に、通常の2.05Vの動作電圧でコンデンサ内に蓄積されたエネルギーは、E2.05,30% capacitance drop=1/2*0.7C0*(2.052−0.82)=1/2*C0*2.494である。0%の静電容量低以下により、より低い1.8Vの動作電圧でコンデンサ内に蓄積されたエネルギーは、E1.8, no capacitance drop=1/2*C0*(1.82−0.82)=1/2*C0*2.6である。2.6は2.494より大きいため、コンデンサパック136は、フルサイズの512MB書込みキャッシュ156をバックアップするために十分なエネルギーを蓄積できる。したがって、以下のブロック1014で判断されることになるように、書込みキャッシュ156サイズ調整は不要である。しかし、すでに10%の静電容量低下が存在する場合、蓄積されたエネルギーは、E1.8,10% capacitance drop=1/2*C*2.34である。2.34は2.494未満であるため、コンデンサパック136は、(2.34/2.494)*512MB=480MB書込みキャッシュ156だけをバックアップするために十分なエネルギーを蓄積している。同様に、すでに20%の静電容量低下が存在する場合、蓄積されたエネルギーは、E1.8,20% capacitance drop=1/2*C*2.08である。したがって、コンデンサパック136は、(2.08/2.494)*512MB=427MB書込みキャッシュ156だけをバックアップするために十分なエネルギーを蓄積している。一実施形態では、CPU112上で実行するソフトウェアは、それぞれの可能な動作電圧レベルについて、ゼロから寿命末期の静電容量低下割合までの各静電容量低下割合に関して、書込みキャッシュ156サイズ値の表を維持する。表は、図9のブロック918で計算されたものなど、静電容量低下割合によって指標付けされる。一実施形態では、ブロック918で計算されている後で、静電容量低下割合も、非揮発性メモリ108に書き込まれる。フローは判断ブロック1014に進む。
判断ブロック1014で、CPU112は、ブロック1012で計算された書込みキャッシュ156サイズが現在の書込みキャッシュ156サイズ未満かどうかを判断する。そうである場合、フローはブロック1016に進む。そうでない場合、フローはブロック1018に進む。
ブロック1016で、CPU112は、書込みキャッシュ156サイズをブロック1012で計算されたサイズに低減する。一実施形態では、CPU112は、ホストI/O要求の処理を一時停止するステップと、書込みキャッシュ156をフラッシュするステップと、書込みキャッシュを所望されるサイズに低減するステップと(また、オプションで、それに応じて、読取りキャッシュサイズを増加するステップと)、ホストI/O処理を再開するステップとによって、書込みキャッシュ156サイズを低減する。一実施形態では、ホストI/O要求の処理が一時停止される時間量を低減するために、CPU112は、一般に、読取りキャッシュに隣接することになる部分である、書込みキャッシュ156から除去されることになる(また、オプションで、読取りキャッシュに加えられることになる)書込みキャッシュ156の部分だけをフラッシュする。一実施形態では、CPU112はまた、新しい書込みキャッシュ156および読取りキャッシュ158のサイズも非揮発性メモリ108に書き込み、その結果、RAID制御装置100の再起動後、CPU112は書込みキャッシュ156および読取りキャッシュ158のサイズを新しい値に構成することが可能である。フローはブロック1018に進む。
ブロック1018で、CPU112は、コンデンサパック136の寿命を高めるために、コンデンサパック136の動作電圧を次の電圧レベルに低減する。一実施形態では、RAID制御装置100は、動作電圧が低減されていることもユーザに通知する。一実施形態では、CPU112は、新しい動作電圧も非揮発性メモリ108に書き込み、その結果、RAID制御装置100の再起動後、CPU112は、動作電圧を新しい値に設定することができる。一実施形態では、電力管理装置132は、CPU112がコンデンサパック136の動作電圧を調整するために書き込む制御レジスタを含む。フローは判断ブロック1026に進む。
ブロック1022で、CPU112は、コンデンサパック136の寿命を高めるために、コンデンサパック136の電圧は低減される必要があるが、コンデンサパック136はすでに最低電圧レベルで動作しており、したがって、低減されることができないと判断した。その結果、CPU112は、この状態の警告メッセージをユーザに発行する。フローは判断ブロック1026に進む。
判断ブロック1024で、CPU112は、コンデンサパック136の温度が第2の所定の閾値を超えているかどうかを判断する。一実施形態では、第2の所定の閾値は摂氏55度である。温度が第2の閾値を超える場合、ブロック1004で計算されたコンデンサパック136の予測される寿命が少なくとも保証寿命と同じほど大きいという事実にもかかわらず、コンデンサパック136の動作電圧を低減するために、また必要に応じて、書込みキャッシュを低減するために、フローは判断ブロック1008に進む。温度が第2の閾値を超えていない場合、フローは終了する。
判断ブロック1026で、CPU112は、コンデンサパック136の温度が第3の所定の閾値を超えたかどうかを判断する。一実施形態では、第3の所定の閾値は摂氏59度である。温度が第3の所定の閾値を超えた場合、フローはブロック1028に進む。そうでない場合、フローは終了する。
ブロック1028で、CPU112は、コンデンサパック136の寿命がその保証寿命を超えて時期尚早に低減することを避けるために、コンデンサパック136の充電を動作不能にする。鋭い温度上昇の最も考えられる原因は、コンデンサパック136の過剰充電およびシステム内の冷却ファンの故障である。加えて、コンデンサパック136が完全に充電されておらず、したがって、非揮発性メモリ108に対する書込みキャッシュ156のバックアップに電力を供給するための十分なエネルギーが蓄積されない可能性が高いことになる場合、CPU112は、書込みキャッシュ156をライトスルーモードに設定する。フローはブロック1028で終了する。一実施形態では、CPU112は、所定の時間量を遅らせて、次いで、コンデンサパック136の充電を再開しようと試みる。
図10から観測され得るように、RAID制御装置100は、累積された正規化された実行時間152に基づいて、コンデンサパック136の保証寿命が満たされないことになる場合、その寿命を高めるためにコンデンサパック136の動作電圧を低減すると有利である。さらに、RAID制御装置100が、コンデンサパック13の静電容量が、コンデンサパック136が書込みキャッシュ156のバックアップをサポートするために新しい動作電圧で十分なエネルギーを蓄積できているのを妨げる量を低下させたことを判断する場合、RAID制御装置100は、書込みキャッシュ156サイズを、コンデンサパック136がバックアップをサポートできる量に低減すると有利である。
次に図11を参照すると、本発明による図1のRAID制御装置100の動作を例示するフローチャートが示される。特に、フローチャートは、適切な場合、動作電圧と書込みキャッシュ156サイズとを増加するRAID制御装置100を例示する。フローはブロック1102で始まる。
ブロック1102で、CPU112は、RAID制御装置100が現在、通常サイズまたはフルサイズの書込みキャッシュ156サイズ未満の書込みキャッシュ156サイズで動作しており、書込みキャッシュ156サイズが低減されてから相当な時間量が経過したことを検出する。一実施形態では、非効率につながる可能性のある、書込みキャッシュ156サイズを頻繁に調整することを避けるために、時間量はおよそ2時間である。フローはブロック1104に進む。
ブロック1104で、図10のブロック1004で実行されたステップ同様に、CPU112は、累積された正規化された実行時間152と、累積された歴実行時間154とに基づいて、コンデンサパック136の予測される寿命を計算する。フローはブロック1106に進む。
判断ブロック1106で、CPU112は、予測される寿命が保証寿命未満であるかどうかを判断するために、ブロック1104で計算されたコンデンサパック136の予測される寿命を保証寿命と比較する。保証寿命未満でない場合、フローは終了する。そうでない場合、フローは判断ブロック1108に進む。一実施形態では、CPU112は、書込みキャッシュ156サイズの調整に関してスラッシング(thrashing)を引き起こすことを避けるために、厳密に保証寿命未満であるかではなく、予測される寿命が所定の割合だけ保証寿命未満であるかどうかを判断する。
判断ブロック1108で、CPU112は、コンデンサパック136がすでに現在最高電圧レベルで動作しているかどうかを判断する。そうである場合、フローは終了する。そうでない場合、フローはブロック1112に進む。
ブロック1112で、CPU112は、コンデンサパック136の動作電圧を次の電圧レベルに増加する。フローはブロック1114に進む。
ブロック1114で、CPU112は、コンデンサパック136が、コンデンサパック136の累積された正規化された実行時間152に基づいて、ブロック1112で設定された新しい動作電圧で蓄積できるエネルギーによってバックアップされ得る書込みキャッシュ156のサイズを計算する。フローはブロック1116に進む。
ブロック1116で、CPU1112は、書込みキャッシュ156サイズをブロック1114で計算された値に増加する。一実施形態では、CPU112は、ホストI/O要求の処理を一時停止するステップと、書込みキャッシュ156を所望されるサイズに増加するステップと、ホストI/O処理を再開するステップとによって、書込みキャッシュ156サイズを増加する。書込みキャッシュ156サイズの減少と調整的に(coordinately)読取りキャッシュ158サイズが増加される、図10のブロック1016に関して説明された実施形態に関して、ブロック1116で、CPU112は、ホストI/O要求の処理を一時停止した後に現在未解決の読取り要求のすべてを完了し、次いで、それに応じて、書込みキャッシュサイズを増加する前に、読取りキャッシュサイズを低減する。フローはブロック1116で終了する。
図11から観測され得るように、RAID制御装置100は、累積された正規化された実行時間に基づいて、そうすることが安全であると判断した後に、動作電圧と書込みキャッシュ156サイズとを増加すると有利である。
次の図12を参照すると、本発明による図1のRAID制御装置100の動作を例示するフローチャートが示される。特に、図12のフローチャートは、RAID制御装置100の起動中に、コンデンサパック136が時期尚早に老化するのを避けるためのRAID制御装置100の動作を例示する。フローはブロック1202で始まる。
ブロック1202で、主電源がRAID制御装置100に加えられる。これは、コンデンサパック136が、完全にでなければ、少なくとも部分的に、放電されたことを意味する。フローはブロック1204に進む。
ブロック1204で、電力管理装置132は、コンデンサパック136を充電し始める。フローはブロック1206に進む。
ブロック1206で、コンデンサパック136は完全に充電されておらず、したがって、非揮発性メモリ108へのバックアップ動作に対して書込みキャッシュ156を実行するために十分なエネルギーを供給できない可能性があるため、CPU112は、書込みキャッシュ156をライトスルーモードに設定する。フローはブロック1208に進む。
ブロック1208で、CPU112は、それぞれ、図1の温度センサ142と、電圧センサ144と、電流センサ146とを経由して、コンデンサパック136の温度、電圧、および電流引込みを定期的にサンプリングする。一実施形態では、そうでない場合、保証寿命超えてコンデンサパック136を時期尚早に老化させる可能性がある温度または電流の増加をより速やかに検出するために、サンプリング期間は、非充電サンプリング期間よりも短い、その間、コンデンサパック136が充電されている全時間中の3秒である。フローは判断ブロック1212に進む。
判断ブロック1212で、CPU112は、コンデンサパック136の電流引込みが所定の閾値を超えているかどうかを判断する。一実施形態では、所定の閾値は2Ampsである。そうである場合、フローはブロック1214に進む。そうでない場合、フローはブロック1216に進む。
ブロック1214で、その保証寿命を超えてコンデンサパック136が時期尚早に老化するのを避けるために、CPU112は、コンデンサパック136に充電を停止させる。フローはブロック1214で終了する。一実施形態では、CPU112は、所定の時間量を遅らせ、次いで、コンデンサパック136の充電を再開することを試み、ブロック1208に戻る。
判断ブロック1216で、図10の判断ブロック1026で実行されたステップ同様に、CPU112は、温度が第3の所定の閾値を超えたかどうかを判断する。温度が第3の所定の閾値を超えた場合、フローはブロック1214に進む。そうでない場合、フローは判断ブロック1218に進む。
判断ブロック1218で、CPU112は、コンデンサパック136の電圧がその指定された動作電圧レベルに達したかどうかを判断する。一実施形態では、現在の動作電圧レベルが非揮発性メモリ108内に蓄積され、結果として、主電源の損失と後続の再起動とが発生した場合、CPU112は、主電源の損失に先立って動作電圧を判断し、その動作電圧に復元することができる。コンデンサパック136の電圧がその指定された動作電圧レベルに達した場合、フローはブロック1222に進む。そうでない場合、フローはブロック1208に戻る。
ブロック1222で、コンデンサパック136は完全に充電されているため、CPU112は、書込みキャッシュ156をライトバックモードに設定する。フローはブロック1222で終了する。
次に図13を参照すると、本発明の代替実施形態によるRAID制御装置100の動作を例示するフローチャートが示される。図13のフローチャートは、図10と同様に、必要に応じて、RAID制御装置100が、コンデンサパック136の累積された正規化された実行時間152を延長するために、コンデンサパック136の動作電圧を絞る方法と、必要に応じて、RAID制御装置100が書込みキャッシュ156サイズを動的に低減する方法とを例示する。しかし、図13の実施形態は、動作電圧がスロットリングを必要とするかどうかを判断するために異なる比較を用いる。その結果、図13のフローチャートは、図10のフローチャートに類似する。しかし、フローはブロック1002から、ブロック1004ではなく、ブロック1304に進む。
ブロック1304で、CPU112は、寿命末期の静電容量低下割合と保証寿命に対する累積された歴実行時間154の比率の積として、コンデンサパック136の歴時間の静電容量低下割合を計算する。したがって、例えば、寿命末期の静電容量低下割合が30%である場合、累積された歴実行時間154は400時間であり、保証寿命は1000時間であり、次いで、歴時間の静電容量低下割合は12%である。フローは判断ブロック1306に進む。
判断ブロック1306で、CPU112は、静電容量低下割合が、暦時間の静電容量低下割合よりも大きいかどうかを判断するために、図9のブロック918で計算された静電容量低下割合を、ブロック1304で計算された歴時間の静電容量低下割合と比較する。そうである場合、フローは判断ブロック1008に進む。そうでない場合、フローは、図10でのように、判断ブロック1024に進む。
次に図14を参照すると、本発明の代替実施形態によるRAID制御装置100の動作を例示するフローチャートが示される。図14のフローチャートは、図10と同様に、必要に応じて、RAID制御装置100が、コンデンサパック136の累積された正規化された実行時間152を延長するために、コンデンサパック136の動作電圧を絞る方法と、必要に応じて、RAID制御装置100が書込みキャッシュ156サイズを動的に低減する方法とを例示する。しかし、図14の実施形態は、動作電圧がスロットリングを必要とするかどうかを判断するために異なる比較を用いる。その結果、図14のフローチャートは、図10のフローチャートに類似する。しかし、フローはブロック1002から、ブロック1004ではなく、ブロック1406に進む。
ブロック1406で、CPU112は、累積された正規化された実行時間152が累積された歴実行時間154より大きいかどうかを判断するために、図9のブロック912で計算された累積された正規化された実行時間152を図9のブロック914で計算された累積された歴実行時間154と比較する。そうである場合、フローは判断ブロック1008に進む。そうでない場合、フローは、図10でのように、判断ブロック1024に進む。
次の図15を参照すると、本発明の代替実施形態によるRAID制御装置100の動作を例示するフローチャートが示される。図15のフローチャートは、図10と同様に、必要に応じて、RAID制御装置100が、コンデンサパック136の累積された正規化された実行時間152を延長するために、コンデンサパック136の動作電圧を絞る方法と、必要に応じて、RAID制御装置100が書込みキャッシュ156サイズを動的に低減する方法とを例示する。しかし、図15の実施形態は、書込みキャッシュ156サイズが低減を必要とするかどうかを判断するために異なる比較を用いる。その結果、図15のフローチャートは、図10のフローチャートに類似する。しかし、コンデンサパック136が現在最低電圧レベルで動作していない場合、フローはブロック1008から、ブロック1012ではなく、ブロック1512に進む。
ブロック1512で、CPU112は、その累積された正規化された実行時間152に基づいて、コンデンサパック136が次に低い動作電圧で蓄積できるエネルギーを計算する。特に、CPU112は、上の方程式(1)に従ってエネルギーを計算する。コンデンサパック136内の各コンデンサに使用される静電容量値は、コンデンサの元の静電容量と、数1から図9のブロック918で計算された静電容量低下割合を差し引いたものの積である。フローは判断ブロック1514に進む。
判断ブロック1514で、CPU112は、ブロック1512で計算されたエネルギーが非揮発性メモリ108に書込みキャッシュ156をバックアップする電力を供給するために十分であるかどうかを判断する。そうである場合、フローはブロック1516に進む。そうでない場合、フローはブロック1018に進む。
ブロック1516で、図10のブロック1012で実行されるステップ同様に、CPU112は、次に低い動作電圧でサポート可能な書込みキャッシュ156サイズを計算する。CPU112は、次いで、書込みキャッシュ156サイズを計算されたサイズに低減する。フローはブロック1018に進む。
本発明ならびにその目的、特徴および利点が詳細に本明細書で説明されているが、本発明によって他の実施形態が包括される。例えば、実施形態は、RAID制御装置に関して説明されているが、コンデンサパックの寿命を監視する方法と、保証寿命を提供するためにコンデンサパックの動作電圧を動的に調整する方法と、書込みキャッシュサイズを動的に調整する方法とは、任意の種類の記憶制御装置内で有利に使用され得る。加えて、記憶制御装置が非揮発性メモリに揮発性書込みキャッシュをバックアップすると同時に、コンデンサパックが主に電力を提供するために使用される実施形態が説明されているが、本明細書で説明される方法は、コンデンサパックが再充電可能なエネルギー源として使用される任意の使用に有利に使用され得る。コンデンサパックの別の使用例は、揮発性書込みキャッシュがバックアップされ得る非揮発性メモリを含まない記憶制御装置でのように、主電源が回復されるまで、揮発性書込みキャッシュに電力を供給し続けることを含む。
コンデンサパックの静電容量が全体として監視される実施形態が説明されるが、各個々のコンデンサの個々の動作電圧および温度に基づいてパック内の各個々のコンデンサの寿命が監視され、個々のコンデンサの最小寿命として、コンデンサパックの寿命が全体として判断される実施形態が考えられる。
様々なエネルギー計算および静電容量計算など、本発明を規定する物理法則が説明されるが、これらの値は、本発明を実施するために直接的または完全に計算されるとは限らない点を理解されたい。すなわち、準拠物理法則(governing physical laws)を用いた様々な実施形態が考えられる。例えば、エネルギー、静電容量、静電容量低下、静電容量低下割合、書込みキャッシュサイズなどの値が通常の電圧および温度の値に関して事前計算され、測定された電圧および温度の示数に基づいて利用される表内に記憶される実施形態が考えられる。表を調べるのではなく、方程式に従って値が完全に計算される、その他の実施形態が考えられる。直接計算された値および事前計算された値が組み合わせて使用される、他の実施形態が考えられる。
CPU112が、累積された正規化された実行時間152の計算など、説明された様々な計算を実行する実施形態が説明されているが、電力管理装置132内の回路など、専用の回路が計算を実行する他の実施形態が考えられる。最後に、様々な閾値が指定される実施形態が説明されているが、本発明は他の閾値を用いて用いられることが可能である点を理解されたい。
最後に、当業者は、添付の特許請求の範囲によって定義された本発明の範囲から逸脱せずに、本発明の同じ目的を実行するために他の構成を設計または修正するための基礎として、開示された構想および特定の実施形態を容易に使用できる点を理解されたい。
Claims (47)
- 記憶制御装置内のコンデンサパックの累積された正規化された実行時間を監視するための方法であって、
コンデンサパックの累積された正規化された実行時間を初期化するステップ(1)と、
前記初期化するステップの後で、その全体にわたって、コンデンサパックが動作される時間間隔の間、コンデンサパックの温度を検出するステップ(2)と、
寿命の間、前記温度で動作された場合、その全体にわたって、コンデンサパックが少なくとも所定のエネルギー量を蓄積するための容量を有することになる前記寿命を判断するステップ(3)と、
前記寿命に対するコンデンサパックの保証寿命の比率によって前記時間間隔を正規化するステップ(4)と、
前記正規化された時間間隔を前記累積された正規化された実行時間に追加するステップ(5)と、
記憶制御装置の動作の間にステップ(2)から(5)を繰り返すステップ(6)とを含む、方法。 - 前記寿命を前記判断するステップが、前記温度を使用して経験的に判断された値のデータベース内で前記寿命を調べるステップを含む、請求項1に記載の方法。
- 前記寿命を前記判断するステップが、前記温度の所定の関数として前記寿命を計算するステップを含む、請求項1に記載の方法。
- 前記ステップ(3)に先立って、前記時間間隔の間にコンデンサパックの電圧を検出するステップ(7)をさらに含み、
前記寿命の間、前記温度と前記電圧とで動作された場合、前記ステップ(3)が、その全体にわたって、コンデンサパックが少なくとも前記所定のエネルギー量を蓄積するための容量を有することになる前記寿命を判断するステップを含み、
前記ステップ(6)が、記憶制御装置の動作の間に前記ステップ(2)から(5)と、(7)とを繰り返すステップを含む、
請求項1に記載の方法。 - 前記寿命を前記判断するステップが、前記温度と前記電圧とを使用して経験的に判断された値のデータベース内で前記寿命を調べるステップを含む、請求項4に記載の方法。
- 前記寿命を前記判断するステップが、前記温度と前記電圧とに応じて前記寿命を計算するステップを含む、請求項4に記載の方法。
- コンデンサパックの前記累積された正規化された実行時間を前記初期化するステップが、前記累積された正規化された実行時間をゼロに初期化するステップを含む、請求項1に記載の方法。
- コンデンサパックの前記累積された正規化された実行時間を前記初期化するステップが、前記累積された正規化された実行時間をコンデンサパックの許容仕様に基づく時間量に初期化するステップを含む、請求項1に記載の方法。
- コンデンサパックの前記累積された正規化された実行時間を前記初期化するステップが、前記累積された正規化された実行時間をコンデンサパックの歴年齢に基づく時間量に初期化するステップを含む、請求項1に記載の方法。
- 前記時間間隔が所定期間を含む、請求項1に記載の方法。
- 前記所定期間が、記憶制御装置が主電源によって電力供給されている間の第1の所定期間を含み、前記所定期間が、記憶制御装置がコンデンサパックによって電力供給されている間の第2の所定期間を含み、前記第2の所定期間が、前記第1の所定期間未満である、請求項10に記載の方法。
- 前記保証寿命に対する前記累積された正規化された実行時間の比率に基づいて、その元の静電容量に対するコンデンサパックの静電容量低下割合を計算するステップ(7)をさらに含み、
前記ステップ(6)が、記憶制御装置の動作の間に前記ステップ(2)から(5)と、(7)とを繰り返すステップを含む、
請求項1に記載の方法。 - コンデンサパックの前記静電容量低下割合を記憶制御装置のユーザに表示するステップ(8)をさらに含み、
前記ステップ(6)が、記憶制御装置の動作の間に前記ステップ(2)から(5)と、(7)と、(8)とを繰り返すステップを含む、
請求項12に記載の方法。 - 前記ステップ(7)が、コンデンサパックの寿命末期の静電容量低下割合を前記比率で乗じるステップを含む、請求項12に記載の方法。
- コンデンサパックの前記寿命末期の静電容量低下割合が、記憶制御装置に対する主電源の損失の間、コンデンサパックが、通常の動作電圧で少なくとも記憶制御装置が書込みキャッシュを非揮発性メモリにバックアップするために十分なエネルギーを蓄積するための容量を有する、コンデンサパックの静電容量低下割合を含む、請求項13に記載の方法。
- 前記所定のエネルギー量が、記憶制御装置に対する主電源の損失の間、書込みキャッシュを非揮発性メモリにバックアップするために記憶制御装置によって要求されるエネルギー量を含む、請求項1に記載の方法。
- 記憶制御装置に対する主電源の損失の間、コンデンサパックが、現在の動作電圧で現在のサイズを有する書込みキャッシュを非揮発性メモリにバックアップするために記憶制御装置によって要求されるエネルギー量を蓄積するための容量を有するかどうかを判断するステップ(7)と、
コンデンサパックが前記容量を有さない場合、前記書込みキャッシュの前記サイズをコンデンサパックが前記容量を有することになる新しいサイズに低減するステップ(8)とを含み、
前記ステップ(6)が、記憶制御装置の動作の間に前記ステップ(2)から(5)と、(7)と、(8)とを繰り返すステップを含む、
請求項1に記載の方法。 - 前記累積された正規化された実行時間が、コンデンサパックの累積された歴実行時間より大きいかどうかを判断するステップ(9)と、
前記累積された正規化された実行時間が前記累積された歴実行時間より大きい場合、前記ステップ(8)の後に、コンデンサパックの前記現在の動作電圧を低減するステップ(10)とをさらに含み、
前記ステップ(6)が、記憶制御装置の動作の間に前記ステップ(2)から(5)と、(7)から(10)と繰り返すステップを含む、
請求項17に記載の方法。 - 前記ステップ(2)に先立って、コンデンサパックの前記累積された歴実行時間を初期化するステップ(11)と、
前記時間間隔を前記累積された歴実行時間に追加するステップ(12)とをさらに含み、
前記ステップ(6)が、記憶制御装置の動作の間に前記ステップ(2)から(5)と、(7)から(10)と、(12)とを繰り返すステップを含む、
請求項18に記載の方法。 - 前記累積された正規化された実行時間が、コンデンサパックの累積された歴実行時間より大きいかどうかを判断するステップ(7)と、
前記累積された正規化された実行時間が前記累積された歴実行時間より大きい場合、コンデンサパックの動作電圧を低減するステップ(8)とをさらに含み、
前記ステップ(6)が、記憶制御装置の動作の間に前記ステップ(2)から(5)と、(7)と、(8)とを繰り返すステップを含む、
請求項1に記載の方法。 - 記憶制御装置に対する主電源の損失の間、前記ステップ(8)を実行することに先立って、コンデンサパックが、前記低減された動作電圧で現在の前記サイズを有する書込みキャッシュを非揮発性メモリにバックアップするために記憶制御装置によって要求されるエネルギー量を蓄積するための容量を有することになるかどうかを判断するステップ(9)と、
コンデンサパックが前記容量を有さないことになる場合、前記ステップ(8)を実行するのに先立って、前記書込みキャッシュの前記サイズをコンデンサパックが前記低減された動作電圧で前記容量を有することになる新しいサイズに低減するステップ(10)とをさらに含み、
前記ステップ(6)が、記憶制御装置の動作の間に前記ステップ(2)から(5)と、(7)から(10)とを繰り返すステップを含む、
請求項20に記載の方法。 - 前記ステップ(2)に先立って、コンデンサパックの前記累積された歴実行時間を初期化するステップ(9)と、
前記時間間隔を前記累積された歴実行時間に追加するステップ(10)とをさらに含み、
前記ステップ(6)が、記憶制御装置の動作の間に前記ステップ(2)から(5)と、(7)から(8)と、(10)とを繰り返すステップを含む、
請求項20に記載の方法。 - 前記温度が所定の閾値を超えたことを検出するステップをさらに含み、
前記累積された正規化された実行時間が、コンデンサパックの累積された歴実行時間より大きいかどうかを前記判断することが、前記温度が前記所定の閾値を超えたことを前記検出するステップに応答して実行される、
請求項20に記載の方法。 - 記憶制御装置に対する主電源の損失の間、記憶制御装置に供給するためのエネルギーを蓄積するためのコンデンサパックと、
コンデンサパックの温度を検出するための、前記コンデンサパックに結合された温度センサと、
前記温度センサに結合されたCPUであって、
コンデンサパックの累積された正規化された実行時間を初期化するステップ(1)と、
その全体にわたって、コンデンサパックが動作される時間間隔の間、前記センサから前記温度を受信するステップ(2)と、
寿命の間、前記温度で動作された場合、その全体にわたって、コンデンサパックが少なくとも所定のエネルギー量を蓄積するための容量を有することになる前記寿命を判断するステップ(3)と、
前記時間間隔を前記寿命に対するコンデンサパックの保証寿命の比率によって正規化するステップ(4)と、
前記正規化された時間間隔を前記累積された正規化された実行時間に追加するステップ(5)と、
記憶制御装置の動作の間にステップ(2)から(5)を繰り返すステップ(6)とを行うように構成されたCPUと
を含む、記憶制御装置。 - 対応する複数の温度でコンデンサパックの複数の経験的に判断された寿命値のデータベースを記憶するための、前記CPUに結合されたメモリをさらに含み、
前記CPUが、前記温度を使用して前記データベース内の前記寿命を調べることによって、前記寿命を判断する、
請求項24に記載の制御装置。 - 前記CPUが、前記温度の所定の関数として前記寿命を計算することによって前記寿命を判断する、請求項24に記載の制御装置。
- 前記CPUが、
前記ステップ(3)に先立って、前記時間間隔の間、コンデンサパックの電圧を検出するステップ(7)を行うようにさらに構成され、
前記ステップ(3)が、前記寿命の間、前記温度と前記電圧とで動作された場合、その全体にわたって、コンデンサパックが少なくとも前記所定のエネルギー量を蓄積するための容量を有することになる前記寿命を判断するステップを含み、
前記ステップ(6)が、記憶制御装置の動作の間に前記ステップ(2)から(5)と、(7)とを繰り返すステップを含む、請求項24に記載の制御装置。 - 対応する複数の温度と複数の電圧とでコンデンサパックの複数の経験的に判断された寿命値のデータベースを記憶するための、前記CPUに結合されたメモリをさらに含み、
前記CPUが、前記温度と前記電圧とを使用して前記データベース内の前記寿命を調べることによって、前記寿命を判断する、
請求項27に記載の制御装置。 - 前記CPUが、前記温度および前記電圧の関数として前記寿命を計算することによって、前記寿命を判断する、請求項27に記載の制御装置。
- 前記CPUが、コンデンサパックの前記累積された正規化された実行時間をゼロに初期化する、請求項24に記載の制御装置。
- 前記CPUが、コンデンサパックの前記累積された正規化された実行時間をコンデンサパックの許容仕様に基づく時間量に初期化する、請求項24に記載の制御装置。
- 前記CPUが、コンデンサパックの前記累積された正規化された実行時間をコンデンサパックの歴年齢に基づく時間量に初期化する、請求項24に記載の制御装置。
- 前記時間間隔が所定期間を含む、請求項24に記載の制御装置。
- 前記所定期間が、記憶制御装置が主電源によって電力供給されている第1の所定期間を含み、前記所定期間が、記憶制御装置がコンデンサパックによって電力供給されている第2の所定期間を含み、前記第2の所定期間が前記第1の所定期間未満である、請求項33に記載の制御装置。
- 前記CPUが、
前記保証寿命に対する前記累積された正規化された実行時間の比率に基づいて、その元の静電容量に対するコンデンサパックの静電容量低下割合を計算するステップ(7)を行うようにさらに構成され、
前記ステップ(6)が、記憶制御装置の動作の間に前記ステップ(2)から(5)と、(7)とを繰り返すステップを含む、請求項24に記載の制御装置。 - 前記CPUが、
コンデンサパックの前記静電容量低下割合を記憶制御装置のユーザに表示するステップ(8)を行うようにさらに構成され、
前記ステップ(6)が、記憶制御装置の動作の間に前記ステップ(2)から(5)と、(7)と、(8)とを繰り返すステップを含む、請求項35に記載の制御装置。 - 前記ステップ(7)が、コンデンサパックの寿命末期の静電容量低下割合を前記比率で乗じるステップを含む、請求項35に記載の制御装置。
- コンデンサパックの前記寿命末期の静電容量低下割合が、記憶制御装置に対する主電源の損失の間、コンデンサパックが、通常の動作電圧で少なくとも記憶制御装置が書込みキャッシュを非揮発性メモリにバックアップするために十分なエネルギーを蓄積するための容量を有する、コンデンサパックの静電容量低下割合を含む、請求項36に記載の制御装置。
- 書込みキャッシュデータをキャッシュするための書込みキャッシュを含む、前記コンデンサパックに結合された揮発性メモリであって、前記書込みキャッシュがサイズを有する揮発性メモリと、
前記揮発性メモリに結合された非揮発性メモリとをさらに含み、
前記所定のエネルギー量が、記憶制御装置に対する主電源の損失の間、前記書込みキャッシュデータを前記非揮発性メモリにバックアップするために記憶制御装置によって要求されるエネルギー量を含む、
請求項24に記載の制御装置。 - 書込みキャッシュデータをキャッシュするための書込みキャッシュを含む、前記コンデンサパックに結合された揮発性メモリであって、前記書込みキャッシュが前記CPUによって動的に判断されたサイズを有する揮発性メモリと、
前記揮発性メモリに結合された非揮発性メモリとをさらに含み、
前記CPUが、
記憶制御装置に対する主電源の損失の間、コンデンサパックが、現在の動作電圧で現在の前記サイズを有する前記書込みキャッシュを前記非揮発性メモリにバックアップするために記憶制御装置によって要求されるエネルギー量を蓄積するための容量を有するかどうかを判断するステップ(7)と、
コンデンサパックが前記容量を有さない場合、前記書込みキャッシュの前記サイズをコンデンサパックが前記容量を有することになる新しいサイズに低減するステップ(8)とを行うようにさらに構成され、
前記ステップ(6)が、記憶制御装置の動作の間に前記ステップ(2)から(5)と、(7)から(8)とを繰り返すステップを含む、
請求項24に記載の制御装置。 - 前記CPUが、
前記累積された正規化された実行時間が、コンデンサパックの累積された歴実行時間より大きいかどうかを判断するステップ(9)と、
前記累積された正規化された実行時間が前記累積された歴実行時間より大きい場合、前記ステップ(8)の後に、コンデンサパックの前記現在の動作電圧を低減するステップ(10)とを行うようにさらに構成され、
前記ステップ(6)が、記憶制御装置の動作の間に前記ステップ(2)から(5)と、(7)から(10)とを繰り返すステップを含む、請求項40に記載の制御装置。 - 前記CPUが、
前記ステップ(2)に先立って、コンデンサパックの前記累積された歴実行時間を初期化するステップ(11)と、
前記時間間隔を前記累積された歴実行時間に追加するステップ(12)とを行うようにさらに構成され、
前記ステップ(6)が、記憶制御装置の動作の間に前記ステップ(2)から(5)と、(7)から(10)と、(12)とを繰り返すステップを含む、請求項41に記載の制御装置。 - 前記CPUが、
前記累積された正規化された実行時間が、コンデンサパックの前記累積された歴実行時間より大きいかどうかを判断するステップ(7)と、
前記累積された正規化された実行時間が前記累積された歴実行時間より大きい場合、コンデンサパックの動作電圧を低減するステップ(8)とを行うようにさらに構成され、
前記ステップ(6)が、記憶制御装置の動作の間に前記ステップ(2)から(5)と、(7)と、(8)とを繰り返すステップを含む、請求項24に記載の制御装置。 - 書込みキャッシュデータをキャッシュするための書込みキャッシュを含む、前記コンデンサパックに結合された揮発性メモリであって、前記書込みキャッシュが前記CPUによって動的に判断されたサイズを有する揮発性メモリと、
前記揮発性メモリに結合された非揮発性メモリとをさらに含み、
前記CPUが、
記憶制御装置に対する主電源の損失の間、前記ステップ(8)を実行するのに先立って、コンデンサパックが、前記低減された動作電圧で現在の前記サイズを有する前記書込みキャッシュを前記非揮発性メモリにバックアップするために記憶制御装置によって要求されるエネルギー量を蓄積するための容量を有することになるかどうかを判断するステップ(9)と、
コンデンサパックが前記容量を有さないことになる場合、前記ステップ(8)を実行するのに先立って、前記書込みキャッシュの前記サイズをコンデンサパックが前記低減された動作電圧で前記容量を有することになる新しいサイズに低減するステップ(10)とを行うようにさらに構成され、
前記ステップ(6)が、記憶制御装置の動作の間に前記ステップ(2)から(5)と、(7)から(10)とを繰り返すステップを含む、
請求項43に記載の制御装置。 - 前記CPUが、
前記ステップ(2)に先立って、コンデンサパックの前記累積された歴実行時間を初期化するステップ(9)と、
前記時間間隔を前記累積された歴実行時間に追加するステップ(10)とを行うようにさらに構成され、
前記ステップ(6)が、記憶制御装置の動作の間に前記ステップ(2)から(5)と、(7)から(8)と、(10)とを繰り返すステップを含む、請求項43に記載の制御装置。 - 前記CPUが、
前記温度が所定の閾値を超えたことを検出するステップを行うように構成され、
前記温度が前記所定の閾値を超えたことを前記検出するステップに応答して、前記CPUが、前記累積された正規化された実行時間が、コンデンサパックの累積された歴実行時間より大きいかどうかを判断する、請求項43に記載の制御装置。 - 記憶制御装置に対する主電源の損失の間、記憶制御装置に供給するためにエネルギーを蓄積するためのコンデンサパックと、
対応する複数の温度と複数の動作電圧とでコンデンサパックの複数の経験的に判断された寿命値のデータベースを記憶するためのメモリと、
コンデンサパックの温度を検出するための、前記コンデンサパックに結合された温度センサと、
コンデンサパックの動作電圧を検出するための、前記コンデンサパックに結合された電圧センサと、
前記メモリと、前記温度センサと、前記電圧センサとに結合されたCPUであって、
コンデンサパックの累積された正規化された実行時間を初期化するステップ(1)と、
その全体にわたって、コンデンサパックが動作される時間間隔の間、前記温度センサから前記温度と、前記電圧センサから前記電圧とを受信するステップ(2)と、
寿命の間、前記温度と前記動作電圧とで動作された場合、その全体にわたって、コンデンサパックが少なくとも所定のエネルギー量を蓄積するための容量を有することになる前記寿命を判断するステップであって、前記CPUが、前記温度と前記動作電圧とを使用して前記データベース内の前記寿命を調べることによって、前記寿命を判断するステップ(3)と、
前記時間間隔を前記寿命に対するコンデンサパックの保証寿命の比率によって正規化するステップ(4)と、
前記正規化された時間間隔を前記累積された正規化された実行時間に追加するステップ(5)と、
記憶制御装置の動作の間にステップ(2)から(5)を繰り返すステップを行うように構成されたCPUと
を含む、記憶制御装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US70599705P | 2005-08-04 | 2005-08-04 | |
US11/421,967 US7487391B2 (en) | 2005-08-04 | 2006-06-02 | Storage controller super capacitor adaptive life monitor |
PCT/US2006/024659 WO2007018777A1 (en) | 2005-08-04 | 2006-06-23 | Storage controller super capacitor adaptive life monitor |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009503723A true JP2009503723A (ja) | 2009-01-29 |
Family
ID=36936595
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008524967A Withdrawn JP2009503723A (ja) | 2005-08-04 | 2006-06-23 | 記憶制御装置スーパーコンデンサ適応寿命モニタ |
Country Status (6)
Country | Link |
---|---|
US (1) | US7487391B2 (ja) |
EP (1) | EP1910909A1 (ja) |
JP (1) | JP2009503723A (ja) |
CA (1) | CA2622095A1 (ja) |
TW (1) | TW200707455A (ja) |
WO (1) | WO2007018777A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013506885A (ja) * | 2010-02-19 | 2013-02-28 | 株式会社日立製作所 | ディスクアレイ装置およびその制御方法 |
Families Citing this family (65)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
JP4472010B2 (ja) | 2006-08-09 | 2010-06-02 | 株式会社日立超エル・エス・アイ・システムズ | 記憶装置 |
US20080313492A1 (en) * | 2007-06-12 | 2008-12-18 | Hansen Peter A | Adjusting a Cooling Device and a Server in Response to a Thermal Event |
US8074034B2 (en) | 2007-07-25 | 2011-12-06 | Agiga Tech Inc. | Hybrid nonvolatile ram |
US7865679B2 (en) | 2007-07-25 | 2011-01-04 | AgigA Tech Inc., 12700 | Power interrupt recovery in a hybrid memory subsystem |
US8154259B2 (en) * | 2007-07-25 | 2012-04-10 | Agiga Tech Inc. | Capacitor save energy verification |
US8046546B2 (en) * | 2007-07-25 | 2011-10-25 | AGIGA Tech | Variable partitioning in a hybrid memory subsystem |
US8024520B2 (en) * | 2007-09-21 | 2011-09-20 | Hewlett-Packard Development Company, L.P. | Maintaining data stored in a memory module when transferring the memory module from a first controller to a second controller |
US20090167541A1 (en) * | 2007-12-26 | 2009-07-02 | Dooley Kevin A | Monitoring of Capacitor |
US8074112B1 (en) * | 2007-12-27 | 2011-12-06 | Marvell International Ltd. | Memory backup used in a raid system |
US20090172425A1 (en) * | 2007-12-31 | 2009-07-02 | Simtek | Digitally controlled dynamic power management unit for uninterruptible power supply |
US9842628B2 (en) * | 2008-07-10 | 2017-12-12 | Agiga Tech Inc. | Capacitor enablement voltage level adjustment method and apparatus |
US20100128874A1 (en) * | 2008-11-25 | 2010-05-27 | Scott-Nash Mark E | Encryption / decryption in parallelized data storage using media associated keys |
US7954006B1 (en) * | 2008-12-02 | 2011-05-31 | Pmc-Sierra, Inc. | Method and apparatus for archiving data during unexpected power loss |
US8008894B2 (en) * | 2008-12-05 | 2011-08-30 | Agiga Tech Inc. | Adjusting a top charge capacitor voltage according to an operating temperature of the capacitor |
US8013471B2 (en) * | 2009-03-12 | 2011-09-06 | Universal Avionics Systems Corporation | Apparatus and method for managing a backup power supply for an aircraft cockpit voice recorder |
JP4696171B2 (ja) * | 2009-05-19 | 2011-06-08 | 富士通株式会社 | 記憶装置、データ保存方法およびデータ保存プログラム |
US8009502B2 (en) * | 2009-06-24 | 2011-08-30 | Seagate Technology Llc | Systems, methods and devices for power control in mass storage devices |
US8031551B2 (en) * | 2009-06-26 | 2011-10-04 | Seagate Technology Llc | Systems, methods and devices for monitoring capacitive elements in devices storing sensitive data |
US8627117B2 (en) | 2009-06-26 | 2014-01-07 | Seagate Technology Llc | Device with power control feature involving backup power reservoir circuit |
US8230257B2 (en) * | 2009-06-26 | 2012-07-24 | Seagate Technology Llc | Systems, methods and devices for controlling backup power provided to memory devices and used for storing of sensitive data |
US8468379B2 (en) * | 2009-06-26 | 2013-06-18 | Seagate Technology Llc | Systems, methods and devices for control and generation of programming voltages for solid-state data memory devices |
US8607076B2 (en) * | 2009-06-26 | 2013-12-10 | Seagate Technology Llc | Circuit apparatus with memory and power control responsive to circuit-based deterioration characteristics |
US8479032B2 (en) * | 2009-06-26 | 2013-07-02 | Seagate Technology Llc | Systems, methods and devices for regulation or isolation of backup power in memory devices |
US8065562B2 (en) * | 2009-06-26 | 2011-11-22 | Seagate Technology Llc | Systems, methods and devices for backup power control in data storage devices |
US8504860B2 (en) * | 2009-06-26 | 2013-08-06 | Seagate Technology Llc | Systems, methods and devices for configurable power control with storage devices |
US8468370B2 (en) | 2009-09-16 | 2013-06-18 | Seagate Technology Llc | Systems, methods and devices for control of the operation of data storage devices using solid-state memory and monitoring energy used therein |
US9430011B2 (en) * | 2010-01-25 | 2016-08-30 | Dell Products L.P. | Systems and methods for determining the state of health of a capacitor module |
US8638010B2 (en) * | 2010-02-17 | 2014-01-28 | Integrated Device Technology, Inc. | Systems, devices, and methods for providing backup power to a load |
US8358109B2 (en) | 2010-04-21 | 2013-01-22 | Seagate Technology Llc | Reliable extended use of a capacitor for backup power |
US9071083B2 (en) | 2010-06-08 | 2015-06-30 | Microsoft Technology Licensing, Llc | Super capacitor supplemented server power |
JP4837152B1 (ja) * | 2011-02-14 | 2011-12-14 | 三菱電機株式会社 | プログラマブルコントローラ |
US8468317B2 (en) | 2011-06-07 | 2013-06-18 | Agiga Tech Inc. | Apparatus and method for improved data restore in a memory system |
US10037272B2 (en) * | 2012-08-08 | 2018-07-31 | Avalanche Technology, Inc. | Storage system employing MRAM and array of solid state disks with integrated switch |
US9251059B2 (en) * | 2011-09-23 | 2016-02-02 | Avalanche Technology, Inc. | Storage system employing MRAM and redundant array of solid state disk |
US8904201B2 (en) * | 2011-09-26 | 2014-12-02 | Hitachi, Ltd. | Storage system and its control method |
JP2013088394A (ja) * | 2011-10-21 | 2013-05-13 | Renesas Electronics Corp | 半導体装置 |
US9141505B1 (en) * | 2012-09-27 | 2015-09-22 | Emc Corporation | Adaptive failure survivability in a storage system using save time and data transfer after power loss |
US9440086B2 (en) * | 2013-09-11 | 2016-09-13 | Medtronic, Inc. | Optimized flash memory device for miniaturized devices |
CN103870400B (zh) * | 2014-03-06 | 2018-11-30 | 华为技术有限公司 | 一种超级电容的电压调节方法、装置及系统 |
US10146437B2 (en) | 2014-03-17 | 2018-12-04 | Primaryio, Inc. | Tier aware caching solution to increase application performance |
US10133488B2 (en) * | 2014-03-17 | 2018-11-20 | Primaryio, Inc. | Apparatus and method for cache provisioning, configuration for optimal application performance |
WO2015183250A1 (en) * | 2014-05-28 | 2015-12-03 | Schneider Electric Buildings Llc | Estimation of the remaining lifetime of a supercapacitor |
CN104049690A (zh) * | 2014-06-10 | 2014-09-17 | 浪潮电子信息产业股份有限公司 | 一种关键应用主机应对高并发业务模型的设计方法 |
KR20170048584A (ko) * | 2014-10-23 | 2017-05-08 | 샘텍, 인코포레이티드 | 액티브 소자의 잔여 수명을 근사하는 방법 |
JP6262686B2 (ja) * | 2015-04-27 | 2018-01-17 | ファナック株式会社 | 平滑コンデンサの寿命予測手段を有するモータ制御装置 |
CN105138380B (zh) * | 2015-09-21 | 2018-06-19 | 天脉聚源(北京)传媒科技有限公司 | 一种Linux系统的启动方法及装置 |
KR20170074264A (ko) * | 2015-12-21 | 2017-06-30 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
US11960348B2 (en) * | 2016-09-07 | 2024-04-16 | Pure Storage, Inc. | Cloud-based monitoring of hardware components in a fleet of storage systems |
CN108257643B (zh) * | 2016-12-28 | 2021-02-09 | 上海宝存信息科技有限公司 | 数据储存装置以及其备用电力来源的储电能力监控方法 |
US10198354B2 (en) * | 2017-03-21 | 2019-02-05 | Intel Corporation | Apparatus, system, and method to flush modified data from a volatile memory to a persistent second memory |
FI128211B (fi) * | 2017-05-23 | 2019-12-31 | Abloy Oy | Sähkölukkojärjestely |
TWI639082B (zh) | 2017-06-09 | 2018-10-21 | 技嘉科技股份有限公司 | 識別電源供應器狀態的電子系統及方法 |
JP7078367B2 (ja) * | 2017-09-06 | 2022-05-31 | コマツ産機株式会社 | プレス装置およびプレス装置の制御方法 |
KR102244921B1 (ko) | 2017-09-07 | 2021-04-27 | 삼성전자주식회사 | 저장 장치 및 그 리프레쉬 방법 |
DE102017123676A1 (de) * | 2017-10-11 | 2019-04-11 | Balluff Gmbh | Sensorgerät, Sensorsystem und Verfahren zum Betreiben eines Sensorgeräts |
US10872018B2 (en) | 2018-01-30 | 2020-12-22 | Quanta Computer Inc. | Memory data preservation solution |
US10831393B2 (en) * | 2018-02-08 | 2020-11-10 | Micron Technology, Inc. | Partial save of memory |
JP7261543B2 (ja) * | 2018-03-15 | 2023-04-20 | オムロン株式会社 | 制御装置、および制御方法 |
US20200183838A1 (en) * | 2018-12-10 | 2020-06-11 | International Business Machines Corporation | Dynamic cache resize taking into account underlying raid characteristics |
JP7292872B2 (ja) * | 2018-12-25 | 2023-06-19 | キヤノン株式会社 | 情報処理装置および情報処理装置の制御方法 |
US11287986B2 (en) * | 2018-12-31 | 2022-03-29 | Micron Technology, Inc. | Reset interception to avoid data loss in storage device resets |
US11726794B2 (en) * | 2019-09-26 | 2023-08-15 | Hitachi Astemo, Ltd. | Preventing supply of power to a microcomputer of an electronic control device until capacitors are discharged |
US11600358B2 (en) * | 2021-07-01 | 2023-03-07 | Dell Products L.P. | Temperature management of memory elements of an information handling system |
CN115993882A (zh) * | 2023-03-21 | 2023-04-21 | 苏州浪潮智能科技有限公司 | 磁盘阵列卡备电控制方法、装置、电子设备和存储介质 |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US683923A (en) * | 1901-06-20 | 1901-10-08 | Burton Eugene Foster | Plowshare-clamp. |
US684192A (en) * | 1901-07-29 | 1901-10-08 | Charles Clamond | Refractory mantle and process of making same. |
US4874960A (en) | 1988-03-04 | 1989-10-17 | Square D Company | Programmable controller capacitor and battery backed ram memory board |
US5195100A (en) | 1990-03-02 | 1993-03-16 | Micro Technology, Inc. | Non-volatile memory storage of write operation identifier in data sotrage device |
US5414861A (en) | 1991-09-11 | 1995-05-09 | Fujitsu Limited | Data protection system using different levels of reserve power to maintain data in volatile memories for any period of time |
US5448719A (en) | 1992-06-05 | 1995-09-05 | Compaq Computer Corp. | Method and apparatus for maintaining and retrieving live data in a posted write cache in case of power failure |
US5596708A (en) | 1994-04-04 | 1997-01-21 | At&T Global Information Solutions Company | Method and apparatus for the protection of write data in a disk array |
JP3372376B2 (ja) * | 1994-11-09 | 2003-02-04 | 富士通株式会社 | 電源回路及び電池装置 |
US6304981B1 (en) * | 1998-10-19 | 2001-10-16 | Gateway, Inc. | Adaptive shutdown system and method for an information handling system |
AUPQ750500A0 (en) | 2000-05-15 | 2000-06-08 | Energy Storage Systems Pty Ltd | A power supply |
GB2362768A (en) | 2000-05-26 | 2001-11-28 | Motorola Israel Ltd | Capacitor fed back-up power supply |
US6523087B2 (en) | 2001-03-06 | 2003-02-18 | Chaparral Network Storage, Inc. | Utilizing parity caching and parity logging while closing the RAID5 write hole |
KR100724833B1 (ko) * | 2001-09-04 | 2007-06-04 | 엘지전자 주식회사 | 배터리 잔여 용량에 따른 데이터 저장방법 |
JP3850311B2 (ja) | 2002-02-21 | 2006-11-29 | オムロン株式会社 | 残存寿命予測報知方法および電子機器 |
JP2004037258A (ja) | 2002-07-03 | 2004-02-05 | Toshiba Corp | フィルムコンデンサの劣化診断装置 |
US6957355B2 (en) * | 2002-09-18 | 2005-10-18 | Sun Microsystems, Inc. | Method and system for dynamically adjusting storage system write cache based on the backup battery level |
US6829724B2 (en) * | 2002-09-18 | 2004-12-07 | Sun Microsystems, Inc. | Method for monitoring the condition of a battery in a high temperature high current environment |
US6838923B2 (en) | 2003-05-16 | 2005-01-04 | Ballard Power Systems Inc. | Power supply and ultracapacitor based battery simulator |
US7051223B2 (en) * | 2003-09-30 | 2006-05-23 | International Business Madnine Corporation | System, apparatus, and method for limiting non-volatile memory |
US20050132178A1 (en) | 2003-12-12 | 2005-06-16 | Sridhar Balasubramanian | Removable flash backup for storage controllers |
JP2005222201A (ja) | 2004-02-04 | 2005-08-18 | Matsushita Electric Ind Co Ltd | メモリアクセス装置、及び半導体メモリカード |
JP2005346321A (ja) | 2004-06-02 | 2005-12-15 | Hitachi Ltd | ディスクアレイ装置及びディスクアレイ装置のバッテリ出力制御方法 |
US20050283548A1 (en) * | 2004-06-17 | 2005-12-22 | Carrier Corporation | Data extraction from transport refrigeration recording equipment |
US7380055B2 (en) | 2004-06-21 | 2008-05-27 | Dot Hill Systems Corporation | Apparatus and method in a cached raid controller utilizing a solid state backup device for improving data availability time |
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 |
US7395452B2 (en) * | 2004-09-24 | 2008-07-01 | Microsoft Corporation | Method and system for improved reliability in storage devices |
US20060080515A1 (en) * | 2004-10-12 | 2006-04-13 | Lefthand Networks, Inc. | Non-Volatile Memory Backup for Network Storage System |
US7337277B2 (en) | 2004-11-18 | 2008-02-26 | International Business Machines Corporation | Apparatus, system, and method for flushing cache data |
JP4687399B2 (ja) * | 2005-11-07 | 2011-05-25 | セイコーエプソン株式会社 | マルチプロセッサシステム及びデータバックアップ方法 |
-
2006
- 2006-06-02 US US11/421,967 patent/US7487391B2/en active Active
- 2006-06-23 EP EP06773925A patent/EP1910909A1/en not_active Withdrawn
- 2006-06-23 WO PCT/US2006/024659 patent/WO2007018777A1/en active Application Filing
- 2006-06-23 JP JP2008524967A patent/JP2009503723A/ja not_active Withdrawn
- 2006-06-23 CA CA002622095A patent/CA2622095A1/en not_active Abandoned
- 2006-07-27 TW TW095127561A patent/TW200707455A/zh unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013506885A (ja) * | 2010-02-19 | 2013-02-28 | 株式会社日立製作所 | ディスクアレイ装置およびその制御方法 |
Also Published As
Publication number | Publication date |
---|---|
TW200707455A (en) | 2007-02-16 |
US20070033431A1 (en) | 2007-02-08 |
EP1910909A1 (en) | 2008-04-16 |
US7487391B2 (en) | 2009-02-03 |
CA2622095A1 (en) | 2007-02-15 |
WO2007018777A1 (en) | 2007-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2009503723A (ja) | 記憶制御装置スーパーコンデンサ適応寿命モニタ | |
JP2009503724A (ja) | 記憶制御装置スーパーコンデンサ動的電圧スロットリング | |
US7451348B2 (en) | Dynamic write cache size adjustment in raid controller with capacitor backup energy source | |
CN101208648B (zh) | 存储装置控制器的超级电容的寿命监视 | |
US7536506B2 (en) | RAID controller using capacitor energy source to flush volatile cache data to non-volatile memory during main power outage | |
US7380055B2 (en) | Apparatus and method in a cached raid controller utilizing a solid state backup device for improving data availability time | |
US8566506B2 (en) | Tracking a lifetime of write operations to a non-volatile memory storage | |
US10642504B2 (en) | Thermal and power memory actions | |
US8275930B2 (en) | Storage system having volatile memory and non-volatile memory | |
KR102563833B1 (ko) | 지능적 백업 커패시터 관리 | |
US9329954B2 (en) | False power failure alert impact mitigation | |
JP6135276B2 (ja) | ストレージ装置、制御装置、および制御プログラム | |
KR101506675B1 (ko) | 보조 전원 장치를 갖는 사용자 장치 | |
TW201333675A (zh) | 基於參數報告更新臨界位準之技術 | |
US9317211B2 (en) | System and method of life management for low endurance SSD NAND devices used as secondary cache | |
US9910775B2 (en) | Computing system with adaptive back-up mechanism and method of operation thereof | |
US20220091941A1 (en) | System and method for data protection during power loss of a storage system | |
US9891974B2 (en) | Memory system | |
US10656848B2 (en) | Data loss avoidance in multi-server storage systems | |
TWI570738B (zh) | 具有使用歷程記錄的主記憶體模組以及此主記憶體模組於電腦系統之應用 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20090901 |