(57)【要約】【課題】メモリにおいて発生したソフトエラーを回復させること。【解決手段】エラーのあったメモリへのデータのリライトが所定の回数を越えたときに該メモリの電源をオフオンし、メモリにデータを書き込む。【選択図】図２
2010009345.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリと、
前記メモリのデータにエラーがあった場合に前記メモリにデータをリライトし、前記リライトの結果が正しいか否かを判定し、前記リライトの結果が正しくないとき、前記メモリへのデータのリライトと、該リライトの結果の判定を繰り返すメモリ制御手段と、
前記リライトの結果が正しくないと判定された回数が所定の値を超えたときに、前記メモリの電源をオフした後にオンにする電源制御手段と、を備え、
前記メモリの電源をオンにした後に前記メモリ制御手段は前記メモリにデータをリライトすることを特徴とするディスクアレイ装置。
【請求項２】
前記電源制御手段は、エラーのあった前記メモリの冗長データがある場合に前記メモリの電源をオフした後にオンにすることを特徴とする請求項１記載のディスクアレイ装置。
【請求項３】
複数のメモリを備えるディスクアレイ装置のソフトエラー修復方法において、
前記メモリのデータにエラーを検出した場合に前記メモリにデータをリライトし、
前記リライトの結果が正しいか否かを判定し、
前記リライトの結果が正しくないとき、前記メモリへのデータのリライトと、該リライトの結果の判定を繰り返し、
前記リライトの結果が正しくないと判定された回数が所定の値を超えたときに、
前記メモリの電源をオフした後にオンにし、
前記メモリにデータをリライトする
ステップを備えるソフトエラー修復方法。
【請求項４】
エラーのあった前記メモリの冗長データがある場合に前記メモリの電源をオフした後にオンにすることを特徴とする請求項３記載のソフトエラー修復方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスクアレイ装置に関し、特にメモリのソフトエラーを修復する機能を持つディスクアレイ装置に関する。
【背景技術】
【０００２】
近年、複数のディスクアレイ装置で構成されるディスクアレイサブシステムは、２４時間稼働で運用されるケースが多く、故障発生時も装置停止することなく継続使用が可能なように冗長化構成等の各種対策が取られており、今後も更に無停止で運用可能な高信頼度なサブシステムが望まれている。
【０００３】
ディスクアレイ装置には、制御モジュールとして、上位装置とのチャネルインタフェース制御を行うチャネルアダプタや下位のディスク装置を制御するデバイスアダプタが備えられる。制御モジュールはＣＰＵ(Central Processing Unit)と制御用ファームウェアやデータを格納するＲＡＭ(Random Access Memory)を備えている。
【０００４】
従来、メモリアクセス時に発生するメモリデータパリティエラーのリカバリ方法として、冗長化されたデータによるリライトやＥＣＣ(Error Checking and Correction)回路による訂正データを元にメモリへリライトを行いデータの復元を行う方式等が取られている。
【０００５】
この時、リライトでデータ復元できた場合は一時的なソフトエラーとしてメモリは継続使用が可能となるが、データ復元できなかった場合、該当メモリのハードエラーとしてＥＣＣで訂正可能な場合は保守時交換までの一時的使用を行い、また訂正不可能な場合は機能回復のため即時交換の対象となる。この交換が完了するまでの間は運用に支障を来たさないものの冗長性が取れていない状況となり、運用上、信頼性に欠ける面があった。
【０００６】
一般的に揮発性メモリのソフトエラーはノイズ、パッケージ材料からのα線、宇宙線による中性子線・Ｘ線の照射等の影響で、メモリセルにチャージされている電荷の変動から保持データを反転させることが主な原因といわれている。
【０００７】
また、特許文献１には、再書き込み可能な不揮発性メモリへの動作プログラムの書き換え中に電源ＯＦＦになっても電源再投入時に正常立ち上げを行い、再度、動作プログラム書き換えを促す技術が開示されている。
【特許文献１】特開２００５−１２８６１３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
従来のソフトエラーの回復方法はリライトによりメモリセルを正規電位に戻す手法がとられているが、メモリ内部回路にラッチアップ現象等が起きた場合、リライトによる復帰が出来ず、メモリハードエラーとして交換対象になるケースという問題があった。
【０００９】
ラッチアップ現象とは、CMOS（Complementary Metal Oxide Semiconductor）の寄生バイポーラトランジスタが、電源や入出力端子からのノイズ等によりオン状態となり、電源と接地の間に電流が流れ続ける現象である。
【００１０】
本発明の課題は、ラッチアップ現象等が起きた場合でもメモリの回復が可能なディスクアレイ装置を提供することである。
【課題を解決するための手段】
【００１１】
このディスクアレイ装置の特徴は、複数のメモリと、前記メモリのデータにエラーがあった場合に前記メモリにデータをリライトし、前記リライトの結果が正しいか否かを判定し、前記リライトの結果が正しくないとき、前記メモリへのデータのリライトと、該リライトの結果の判定を繰り返すメモリ制御手段と、前記リライトの結果が正しくないと判定された回数が所定の値を超えたときに、前記メモリの電源をオフした後にオンにする電源制御手段と、を備え、前記メモリの電源をオンにした後に前記メモリ制御手段は前記メモリにデータをリライトすることを特徴とする。
【発明の効果】
【００１２】
開示の装置によれば、ラッチアップ現象等が起きた場合でもメモリの回復が可能なため、メモリハードエラーと判定される回数を減らすことができ、メモリの交換回数を減らすことが可能となる。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照しながら本発明の実施の形態を説明する。
図１は、本発明の実施の形態のディスクアレイ装置の構成図ある。
ディスクアレイ装置１０１は、CE（コントローラエンクロージャ）１１０−１、１１０−２およびDE（デバイスエンクロージャ）１２０−１、１２０−２を備える。
【００１４】
ディスクアレイ装置１０１は、SAN（Storage Area Network）等のネットワークを介して、上位装置であるホスト装置１３０と接続している。
CE１１０−ｉ（ｉ＝１，２）は、IOB１１１−ｉ−ｊ（ｊ＝１〜４）、RT（ルータ）１１２−ｉ、およびCM（コントローラモジュール）１１３−ｉ−ｋ（ｋ＝１，２）を備える。
【００１５】
IOB１１１−ｉ−ｊ（ｉ＝１，２）は、CA（チャネルアダプタ）１１４−ｉ−ｊ、１１５−ｉ−ｊおよびDA（デバイスアダプタ）１１６−ｉ−ｊを備える。IOB１１１−ｉ−ｊ（ｉ＝３，４）の構成もIOB１１１−ｉ−ｊ（ｉ＝１，２）の構成と同様である。
【００１６】
CA１１４、１１５は、ホスト１３０とのチャネルインタフェース制御を行う。
DA１１６は、DE１２０の制御を行い、ディスク１２２とのデータのやり取りを行う。
RT１１２は、CM１１３、CA１１４、１１５、およびDA１１６の間のインタフェース制御を行う。
【００１７】
CM１１３は、サブシステム内の動作管理およびキャッシュを制御する。
DE１２０−ｉ（ｉ＝１，２）は、PBC１２１−ｉ−ｋ（ｋ＝１，２）およびディスク１２２−ｉ−ｐ（ｐ=１〜ｎ）を備える。
【００１８】
PBC１２１は、DE１２０およびディスク１２２の制御を行う。
ディスク１２２は、例えばハードディスク等の記憶装置であり、DE１２０内に複数搭載されている。
【００１９】
図２は、本発明の実施の形態のディスクアレイ装置の制御モジュールの構成図である。
制御モジュール２０１−ｉ（ｉ＝１，２）は、CA１１４、１１５、DA１１６、またはCM１１３に対応する。
【００２０】
制御モジュール２０１−ｉ（ｉ＝１，２）はCPU（Central Processing Unit）２０２−ｉ、ROM（Read Only Memory）２０３−ｉ、MCU（Memory Control Unit）２０４−ｉ、RAM
（Random Access Memory）２０５−ｉ−ｊ（ｊ＝１〜ｎ）、PCU（Power Switch Control Unit）２０６−ｉ、および外部I/F（Interface）２０７−ｉを備える。
【００２１】
CPU２０２は、ROM２０３から制御用ファームウェアを読み出し、MCU２０４やPCU２０６等の各部の制御を行う。また、冗長データが他の制御モジュール等にある場合は、I/F２０７介して他の制御モジュールと冗長データ等のデータのやり取りを行う。
【００２２】
ROM２０３は、制御用ファームウェア等が格納されている。
MCU２０４は、RAM２０５のデータの読み書きの制御を行う。
RAM２０５は、制御モジュール２０１の搭載されたディスクアレイ装置１０１で用いられるデータが格納される。また、制御モジュールにはブロック化されたRAM２０５が複数備えられる。
【００２３】
本実施の形態においては、１つのRAMを１つのメモリブロックとする。尚、複数のRAMを１つのメモリブロックとしてもよいし、１つのRAMを複数の領域に分割し、分割された１つの領域を１つのメモリブロックとしてよい。
【００２４】
PCU２０６は、メモリブロックごとの電源の制御を行う。本実施の形態においては、PCU２０６は、各RAM２０５に接続され、RAM２０５ごとの電源の制御、すなわちRAM２０５ごとの電源のオンとオフを行う。
【００２５】
外部I/F２０７−１は、他の制御モジュール２０１−２とデータの送受信を行う。尚、外部I/Fの通信相手は他の制御モジュールに限られない。
図３は、本発明の実施の形態のエラー検出時の処理を示すフローチャートである。
【００２６】
ステップＳ３０１において、CPU２０２は、メモリ（RAM２０５）のデータパリティエラーを検出する。
ステップＳ３０２において、CPU２０２は、ステップＳ３０１で検出したパリティエラーのデータは訂正可能か判定する。訂正可能な場合はステップＳ３０３に進み、訂正不可能な場合はステップＳ３１２に進む。
【００２７】
ステップＳ３０３において、MCU２０４は、CPU２０２からの指示に基づいて、エラー箇所の訂正データをメモリにリライトする。
ステップＳ３０４において、MCU２０４は、CPU２０２からの指示に基づいて、メモリのデータが修復されたかチェックする。修復されていた場合はステップＳ３１１に進み、修復されていなかった場合はステップＳ３０５に進む。
【００２８】
ステップＳ３０５において、MCU２０４は、CPU２０２からの指示に基づいて、ステップＳ３０３で行うメモリのリライトの回数（リライト回数）が所定の値を超えたか判定する。リライト回数が所定の値を超えた場合はステップＳ３０６に進み、超えていない場合はステップＳ３０３に戻る。また、リライト回数はユーザが任意に設定できる。尚、従来はリライト回数が所定の値を超えた場合はステップＳ３１０に進んでいた。
【００２９】
ステップＳ３０６において、MCU２０４は、CPU２０２からの指示に基づいて、電源のオフオンを行うメモリの冗長データがあるかチェックする。冗長データがある場合はステップＳ３０７に進み、冗長データがない場合はステップＳ３１０に進む。冗長データとは、あるメモリに対する予備のデータであり、該メモリに書き込まれるデータと同じデータである。
【００３０】
冗長データは、同じ制御モジュール内のRAM２０５に存在してもよいし、他の制御モジ
ュール上に存在してもよい。本実施の形態においては、冗長データはRAM２０５に存在するとする。
【００３１】
ステップＳ３０７において、PCU２０６は、CPU２０２からの指示に基づいて、該当メモリブロック（ステップＳ３０３でリライトを行ったメモリ）の電源をオフし、さらにオンにする。
【００３２】
ステップＳ３０８において、MCU２０４は、CPU２０２からの指示に基づいて、RAM２０５にある冗長データを用いて該当のメモリブロックをリライトする。
リライトするタイミングは上位ホストへの影響が無い時が望ましく、制御モジュールの重要性や性能への影響度を勘案して決定され、例えば冗長メモリへ切替後のエラー復旧時や、スペアメモリへのパトロールでエラー検出時等がある。
【００３３】
ステップＳ３０９において、MCU２０４は、CPU２０２からの指示に基づいて、メモリが修復されたか、すなわちリライトされたメモリのデータにエラーがないかチェックする。メモリが修復された場合はステップＳ３１１に進み、メモリが修復されなかった場合はステップＳ３１０に進む。
【００３４】
ステップＳ３１０において、メモリを通常通り使用する。ただし、該メモリは保守時の交換対象のメモリとし、例えば該メモリが交換対象のメモリであることをユーザに通知したり、該メモリが交換対象のメモリであること装置内に記録しておく。すなわち、該メモリは装置の保守時まで、一時的に通常通り使用される。
【００３５】
ステップＳ３１１において、メモリを通常通り使用する。また、メモリごとにステップＳ３１１に来た回数をメモリのエラー頻度として記録する。そして、例えば、あるメモリのエラー頻度が所定の回数を超えた場合は、該メモリを交換対象とする。
【００３６】
ステップＳ３１２において、CPU２０２は、電源のオフオンを行うメモリの冗長データがあるかチェックする。冗長データがある場合はステップＳ３１３に進み、冗長データがない場合はステップＳ３１９に進む。
【００３７】
ステップＳ３１３において、MCU２０４は、CPU２０２からの指示に基づいて、メモリ２０５のエラー箇所へ冗長データをリライトする。
ステップＳ３１４において、MCU２０４は、CPU２０２からの指示に基づいて、メモリのデータが修復されたかチェックする。修復されていた場合はステップＳ３１１に進み、修復されていなかった場合はステップＳ３１５に進む。
【００３８】
ステップＳ３１５において、MCU２０４は、CPU２０２からの指示に基づいて、ステップＳ３１３で行うメモリのリライトの回数（リライト回数）が所定の値を超えたか判定する。リライト回数が所定の値を超えた場合はステップＳ３１６に進み、超えていない場合はステップＳ３１３に戻る。尚、従来はリライト回数が所定の値を超えた場合はステップＳ３１９に進んでいた。
【００３９】
ステップＳ３１６において、PCU２０６は、CPU２０２からの指示に基づいて、該当メモリブロックの電源をオフし、さらにオンにする。
ステップＳ３１７において、MCU２０４は、CPU２０２からの指示に基づいて、RAM２０５にある冗長データを用いて該当のメモリブロックをリライトする。尚、冗長データが他の制御モジュール２０１にある場合は、制御モジュール２０８のRAM２０５から冗長データを読み出して、該当のメモリブロックをリライトする。
【００４０】
ステップＳ３１８において、MCU２０４は、CPU２０２からの指示に基づいて、メモリが修復されたか、すなわちリライトされたメモリのデータにエラーがないかチェックする。メモリが修復された場合はステップＳ３１１に進み、メモリが修復されなかった場合はステップＳ３１９に進む。
【００４１】
ステップＳ３１９において、エラーのあったメモリを切り離す。すなわち、該メモリを使用しないようにして、即時交換対象のメモリとし、例えばユーザにメモリ交換の旨を通知する。
【００４２】
尚、制御モジュール２０１−１でソフトエラー修復を行っている場合、ステップＳ３０８において、冗長データが他の制御モジュール２０１−２にある場合は、制御モジュール２０１−２のRAM２０５−２から冗長データを読み出して、エラーのあったメモリブロックをリライトする。
【００４３】
本実施の形態のディスクアレイ装置によれば、従来のようにラッチアップ現象等でリライトによる復帰が出来ない場合でも、一旦メモリへの電源供給をオフとし、メモリ内部回路を電気的に初期化した後、電源をオン状態にしてリライトを実施することで、メモリセルを正規電位に戻せる可能性が大きくなる。
【００４４】
これによりメモリハードエラーと判定される回数を減らすことができるため、メモリの交換回数を減らすことが可能となる。
【図面の簡単な説明】
【００４５】
【図１】本発明の実施の形態のディスクアレイ装置の構成図ある。
【図２】本発明の実施の形態のディスクアレイ装置の制御モジュールの構成図である。
【図３】本発明の実施の形態のエラー検出時の処理を示すフローチャートである。
【符号の説明】
【００４６】
１０１      ディスクアレイ装置
１１０      ＣＥ
１１１      ＩＯＢ
１１２      ＲＴ
１１３      ＣＭ
１１４，１１５      ＣＡ
１１６      ＤＡ
１２０      ＤＥ
１２１      ＰＢＣ
１２２      ディスク
１３０      ホスト装置
２０１      制御モジュール
２０２      CPU
２０３      ROM
２０４      MCU
２０５      RAM
２０６      PCU
２０７      外部I/F
【図１】
2010009345.tif 000003
【図２】
2010009345.tif 000004
【図３】
2010009345.tif 000005