(57)【要約】【課題】  ディスクアレイ装置で制御装置に有するメモリデバイスに対する通常アクセスの性能を保ちつつメモリデバイスの診断を行い、メモリデータの信頼性を向上する。【解決手段】  ディスクドライブと制御装置とを有するディスクアレイ装置で、制御装置は、キャッシュ部１を有し、キャッシュ部１は、メモリデバイス３とメモリ制御部２とを有する。メモリ制御部２は、メモリアクセス状態監視部８でメモリアクセス状態を監視し、メモリデバイス３に対する通常のアクセスが行われていない時間に、診断要求を発行して、メモリデバイス３に対してメモリデータの診断のためのアクセスを実行し、メモリデバイス３から読み出されたデータの内容をＥＣＣを用いてチェックしてデータ故障を検出する。【選択図】  図３
2006134196.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置と制御装置とを有するディスクアレイ装置であって、
前記制御装置は、メモリ部を有し、
前記メモリ部は、データを記憶するメモリデバイスと、前記メモリデバイスに対する制御を行うメモリ制御回路とを有し、
前記メモリ制御回路は、前記メモリデバイスに対する通常のアクセスが行われていない時間に、前記メモリデバイスに対して、前記メモリデバイスに記憶されているデータの診断のためのアクセスを実行し、前記メモリデバイスから読み出されたデータの内容をチェックしてデータ故障を検出することを特徴とするディスクアレイ装置。
【請求項２】
請求項１記載のディスクアレイ装置において、
前記メモリ制御回路は、
前記メモリ部の外部からのメモリアクセスのコマンドの受信に基づき前記メモリデバイスに対する通常のアクセスの状態を監視して、前記監視に基づき前記メモリデバイスに対する通常のアクセスが行われていない時間を判断し、
前記通常のアクセスが行われていない時間において診断要求を発行して、前記診断要求に従って前記メモリデバイスに対して診断のためのコマンドとアドレスを出力し、前記コマンドとアドレスに従って前記メモリデバイスから読み出されたデータの内容をチェックすることを特徴とするディスクアレイ装置。
【請求項３】
請求項１記載のディスクアレイ装置において、
前記メモリ制御回路は、
前記メモリデバイスに対するライトデータに対してＥＣＣを生成し付加して前記メモリデバイスにライトする処理を行い、
前記診断のためのアクセスで、前記診断のためのリードコマンドとアドレスを出力し、前記メモリデバイスから前記リードコマンドとアドレスに従って読み出されたデータを、前記ＥＣＣを用いて誤り検出処理し、誤りを検出した場合はエラーステータスを報告し、更に訂正可能な誤りの場合は訂正して、訂正されたデータを前記メモリデバイスにライトする処理を行うことを特徴とするディスクアレイ装置。
【請求項４】
請求項１記載のディスクアレイ装置において、
前記メモリ制御回路は、前記診断のためのアクセスで、診断処理中に前記通常のアクセスに対応したメモリアクセスのコマンドを受信した場合は、前記診断処理を停止して前記通常のアクセスの処理を実行することを特徴とするディスクアレイ装置。
【請求項５】
請求項１記載のディスクアレイ装置において、
前記メモリ制御回路は、診断処理後に一定期間経過する毎に、前記診断のためのアクセスをイネーブル状態にし、前記イネーブル状態で前記通常のアクセスが行われていない時に前記診断のためのアクセスを実行することを特徴とするディスクアレイ装置。
【請求項６】
請求項１記載のディスクアレイ装置において、
前記メモリ制御回路は、現在時から過去一定期間における、前記通常のアクセスに対する前記診断のためのアクセスの比が所定値以上となる時に、前記診断のためのアクセスをイネーブル状態にし、前記イネーブル状態で前記通常のアクセスが行われていない時に前記診断のためのアクセスを実行することを特徴とするディスクアレイ装置。
【請求項７】
請求項１記載のディスクアレイ装置において、
前記メモリ制御回路は、前記通常のアクセスの状態に応じて前記診断のためのアクセスを増減する制御を行うことを特徴とするディスクアレイ装置。
【請求項８】
請求項１記載のディスクアレイ装置において、
前記メモリ制御回路は、前記診断のためのアクセスの状態に応じて前記通常のアクセスを抑制する制御を行うことを特徴とするディスクアレイ装置。
【請求項９】
請求項１記載のディスクアレイ装置において、
前記メモリ制御回路は、前記メモリデバイスに対する通常のアクセスが行われていない時間に、前記メモリデバイスに対して、前記メモリデバイスのデータ入出力に係わる特性の値を変動させる、マージン試験のためのアクセスを実行し、前記メモリデバイスからの前記変動に応じた応答をチェックしてエラーを検出することを特徴とするディスクアレイ装置。
【請求項１０】
請求項９記載のディスクアレイ装置において、
前記メモリ制御回路は、前記マージン試験のためのアクセスとして、前記メモリ制御回路と前記メモリデバイスに対し、前記メモリ制御回路と前記メモリデバイスとの間のバスにおける入出力信号についての振幅を変動する制御を行うことを特徴とするディスクアレイ装置。
【請求項１１】
請求項９記載のディスクアレイ装置において、
前記メモリ制御回路は、前記マージン試験のためのアクセスとして、前記メモリ制御回路と前記メモリデバイスに対し、前記メモリ制御回路と前記メモリデバイスとの間のバスにおける入出力信号についての供給クロックの周波数を変動する制御を行うことを特徴とするディスクアレイ装置。
【請求項１２】
請求項９記載のディスクアレイ装置において、
前記メモリ制御回路は、前記マージン試験のためのアクセスとして、前記メモリ制御回路と前記メモリデバイスに対し、前記メモリ制御回路と前記メモリデバイスとの間のバスにおける入出力信号についての供給電源の電圧レベルを変動する制御を行うことを特徴とするディスクアレイ装置。
【請求項１３】
請求項９記載のディスクアレイ装置において、
前記メモリ制御回路は、前記マージン試験のためのアクセスとして、前記メモリ制御回路と前記メモリデバイスに対し、前記メモリ制御回路と前記メモリデバイスとの間のバスにおける入出力信号についてのＤＬＬ設定値を変動する制御を行うことを特徴とするディスクアレイ装置。
【請求項１４】
請求項９記載のディスクアレイ装置において、
前記メモリ制御回路は、前記マージン試験のためのアクセスとして、前記メモリ制御回路と前記メモリデバイスに対し、前記メモリ制御回路と前記メモリデバイスとの間のバスにおける入出力信号についての閾値レベルを変動させる制御を行うことを特徴とするディスクアレイ装置。
【請求項１５】
請求項９記載のディスクアレイ装置において、
前記メモリ制御回路は、前記マージン試験のためのアクセスとして、前記メモリ制御回路と前記メモリデバイスに対し、前記メモリ制御回路と前記メモリデバイスとの間のバスにおける入出力信号についての出力バッファ駆動を変動させる制御を行うことを特徴とするディスクアレイ装置。
【請求項１６】
請求項９記載のディスクアレイ装置において、
前記メモリ制御回路は、前記マージン試験のためのアクセスとして、前記メモリ制御回路と前記メモリデバイスに対し、前記メモリ制御回路と前記メモリデバイスとの間のバスにおける入出力信号についての終端抵抗値を変動させる制御を行うことを特徴とするディスクアレイ装置。
【請求項１７】
記憶装置と制御装置とを有するディスクアレイ装置であって、
前記制御装置は、ホストインタフェース部と、ディスクインタフェース部と、キャッシュ部と、これらをパスで接続するスイッチ部とを有し、
前記キャッシュ部は、データを記憶するメモリデバイスと前記メモリデバイスに対する制御を行うメモリ制御回路とを有し、
前記メモリ制御回路は、
外部と前記メモリデバイスとの間におけるコマンド、アドレス、及びリード／ライトデータを含む各種データの転送に係わるバス、セレクタ、及びバッファと、
前記パス側からの受信データをもとに前記メモリデバイスに対するアクセスに係わるコマンド／アドレスを解析する解析部と、
前記解析部で解析されたコマンドをもとにメモリアクセス状態を監視し、診断の実行タイミングを制御する監視部と、
前記解析部からコマンド／アドレス要求を入力して前記メモリデバイスに対して通常のコマンド／アドレスを出力し、前記監視部から診断要求を入力してメモリデバイスに対して診断のためのコマンド／アドレスを出力するメモリコマンド出力部と、
前記メモリデバイスへのライトデータに対するＥＣＣの生成・付加を行うＥＣＣ生成部と、
前記メモリデバイスからのリードデータに対する前記ＥＣＣによる誤り検出、訂正、及びエラー報告の処理を行うＥＣＣ誤り検出／訂正部と、
前記診断に関するエラーステータスを格納するレジスタとを有し、
前記監視部は、前記パス側からの前記メモリデバイスに対する通常のアクセスの状態を監視し、前記メモリデバイスに対する通常のアクセスが行われていない時間に、前記メモリコマンド出力部に対して診断要求を出力し、前記メモリコマンド出力部から前記メモリデバイスに対して、前記メモリデバイスに記憶されているデータの診断のためのアクセスを実行し、前記メモリデバイスから読み出されたデータの内容を前記ＥＣＣ誤り検出／訂正部でＥＣＣを用いてチェックし、誤りを検出した場合はエラーステータスを報告し、更に訂正可能な誤りの場合は訂正して、訂正されたデータを前記メモリデバイスにライトすることを特徴とするディスクアレイ装置。
【請求項１８】
記憶装置と、制御装置とを有するディスクアレイ装置であって、
前記制御装置は、ホストインタフェース部と、ディスクインタフェース部と、キャッシュ部と、これらをパスで接続するスイッチ部と、前記スイッチ部に接続される診断管理部とを有し、
前記キャッシュ部は、データを記憶するメモリデバイスと前記メモリデバイスに対する制御を行うメモリ制御回路とを有し、
前記診断管理部は、前記ホストインタフェース部またはディスクインタフェース部からの前記スイッチ部を介した前記キャッシュ部に対するアクセスのために使用されるパスにおける前記メモリデバイスに対する通常のアクセスの状態を監視し、前記監視に基づき前記メモリデバイスに対する通常のアクセスが行われていない時間に、前記キャッシュ部のメモリ制御回路に対して診断要求を送信し、
前記キャッシュ部のメモリ制御回路は、前記診断要求に従って、前記メモリデバイスに対して、前記メモリデバイスに記憶されているデータの診断のためのアクセスを実行し、前記メモリデバイスから読み出されたデータの内容をチェックしてデータ故障を検出することを特徴とするディスクアレイ装置。
【請求項１９】
請求項１８記載のディスクアレイ装置において、
前記診断管理部は、前記監視に基づき、前記通常のアクセスの状態に応じて、前記スイッチ部を介した前記キャッシュ部のメモリデバイスに対する診断のためのアクセスを増減する制御を行うことを特徴とするディスクアレイ装置。
【請求項２０】
請求項１８記載のディスクアレイ装置において、
前記診断管理部は、前記監視に基づき、前記診断のためのアクセスの状態に応じて、前記スイッチ部を介した前記キャッシュ部のメモリデバイスに対する通常のアクセスを抑制する制御を行うことを特徴とするディスクアレイ装置。
【請求項２１】
請求項１８記載のディスクアレイ装置において、
前記診断管理部は、
前記キャッシュ部において前記メモリデバイスが接続された直後、一定時間、そのメモリデバイスに対する通常のアクセスを抑制し、前記診断のためのアクセスを増加させる制御を行うことを特徴とするディスクアレイ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードディスクドライブ（ＨＤＤ）等の記憶装置と前記記憶装置の提供する記憶領域に対するデータの記憶を制御する制御装置（コントローラ）とを有するディスクアレイ装置に関し、特に、制御装置に有するメモリデバイスについての診断を行う技術に関する。
【背景技術】
【０００２】
ディスクアレイ装置では、その制御装置において、多くのメモリデバイスを搭載したメモリ基板（メモリ部）を使用している。前記メモリ基板としては、代表的にはキャッシュ部などがある。前記メモリデバイスとしては、例えばＳＤＲＡＭ（Synchronous DRAM）などがある。制御装置に有するキャッシュ部は、制御装置のメインメモリとして機能し、処理データを記憶する。制御装置のキャッシュ部は、ディスクアレイ装置における通常のアクセスの動作において、例えば制御装置に通信接続されるホスト装置とＨＤＤとの間でのデータ入出力において、転送データの一時的な格納などのために使用される。前記通常のアクセスで、例えば、ホスト装置からの要求に従って制御装置がＨＤＤ上の記憶領域に対してデータをリード／ライトする場合において、リード／ライトデータ等の格納のためにキャッシュ部のメモリデバイスに対してアクセスが行われる。なお、ディスクアレイ装置の技術では、制御装置に設けたメモリ部のメモリデバイスと、制御装置に接続されＲＡＩＤ制御の対象となるＨＤＤ等の記憶装置とでは、役割や求められる性能が異なる。
【０００３】
ディスクアレイ装置の性能向上を実現するために、前記制御装置に有するメモリデバイスに記憶されるデータの信頼性の向上に対する要求は大きい。そのために、メモリデバイスのデータに故障が無く正常かどうか、メモリデバイスに対する入出力信号が安定しているかどうかなどを、何らかの手段で診断することが要求される。
【０００４】
また一方、ディスクアレイ装置の工場出荷時には、装置の温度や電圧を変動させて正常動作を確認する試験が行われている。特に、キャッシュ部に対しても、電圧などの特性を動作仕様範囲内で変動させて正常動作を確認するマージン試験が行われている。
【０００５】
特許文献１には、メモリの診断を行う技術として、テストデータを保持して、これとメモリから読み出したテストデータとを比較する方式について記載されている。
【特許文献１】特開平８−２１２１４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ディスクアレイ装置で、制御装置に有するメモリデバイスのデータの信頼性を向上するために、メモリデバイスの診断を行う機能が要求される。特に、従来と比較して今後のメモリデバイスは、大容量化に伴うメモリセル微細化の影響による経年劣化などにより、通常動作中のメモリデータの故障が多く発生する可能性がある。そのため、このようなケースを想定して、メモリデバイスに対する診断の動作により事前にメモリデータの故障を検出する機能が要求される。
【０００７】
また、前記メモリデバイスの診断を行いながらも、メモリデバイスに対する通常のアクセスの性能を保つことも要求される。診断方法としては、従来、制御装置内のプロセッサ及びプログラムで、キャッシュ部のメモリデバイスに対してデータリードコマンドを送信してそのリードデータの内容をチェックすることにより、ソフトウェア的にメモリデバイスのデータの診断を行うことは可能であった。
【０００８】
しかし、前記従来の診断方法の場合、制御装置において或るプロセッサで診断のためのメモリアクセスを行うと、他のプロセッサでの通常のメモリアクセスの動作に影響を与えてしまい、性能低下に繋がる。すなわち、同一パスに対して診断のメモリアクセスと通常のメモリアクセスとの使用要求が発生した場合に、パス上でのアクセスの競合により、通常のアクセスにおけるデータ転送スループットの性能が低下してしまう。そのため、通常動作中にメモリデバイスにおける全面すなわち全アドレスの格納データについての診断を行うことは困難である。また、前記ソフトウェア的に診断を行う場合、データ故障についてのチェックは可能であるが、マージン試験は不可能である。従来、マージン試験を通常動作時に実行可能な機能を備えたディスクアレイ装置は提供されていない。
【０００９】
また、前記特許文献１に記載の技術をディスクアレイ装置に適用した場合、通常のメモリアクセスと診断のメモリアクセスとで競合が発生して前記診断方法と同様に通常動作の性能が低下すると考えられる。
【００１０】
本発明は以上のような問題に鑑みてなされたものであり、その目的は、ディスクアレイ装置で、制御装置に有するメモリデバイスに対する通常のアクセスの性能を保ちつつメモリデバイスの診断を行うことができ、メモリデバイスに記憶されるデータの信頼性を向上することができる技術を提供することにある。
【課題を解決するための手段】
【００１１】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。前記目的を達成するために、本発明のディスクアレイ装置は、ＨＤＤ等の記憶装置と前記記憶装置に対するデータの記憶を制御する制御装置とを有し、ＲＡＩＤ制御を行うことが可能な装置であって、以下に示す技術的手段を備えることを特徴とする。
【００１２】
（１）本発明のディスクアレイ装置は、制御装置に、キャッシュ部などのメモリ部を有し、前記メモリ部は、ＳＤＲＡＭなどのメモリデバイスと、前記メモリデバイスに対するデータ入出力などの制御を行うメモリ制御回路などのメモリ制御部とを有する構成である。前記メモリ部は、例えばメモリ基板などの形態で実装され、メモリ基板に対してメモリデバイスが増減可能に接続される構成である。制御装置におけるメモリ部に対する通常のアクセスでは、制御装置内に有する処理部、例えば、ホスト装置とのインタフェース部（チャネル制御部）や記憶装置とのインタフェース部（ディスク制御部）などから、パスを使用してメモリ部に対してメモリアクセスのコマンド等が送信される。
【００１３】
本構成において、メモリ部に、メモリデバイスの診断を行う手段（第１の診断手段）を設ける。前記第１の診断手段は、特にメモリ部内のメモリ制御回路において、メモリデバイスに対する自動的な診断のアクセスを行う診断機能として、ハードウェア論理回路で実現される。ディスクアレイ装置の動作中に、制御装置でメモリ部のメモリデバイスに対するデータリード／ライト等の通常のアクセスが行われる一方、メモリ部で、前記第１の診断手段により、メモリデバイスに対して通常のアクセスを阻害しないタイミングで自動的に診断のためのアクセスを行って、メモリデバイスに記憶されているデータのチェックを行う診断処理が行われる。
【００１４】
前記第１の診断手段は、メモリデバイスに対する通常のアクセスが行われていない状態（非メモリアクセス状態と称する）の時に診断を実行するように診断のアクセスの実行タイミングを制御する。前記第１の診断手段は、メモリ部の外部からのメモリアクセス状態を監視し、メモリアクセス状態の認識や判断に基づき、メモリデバイスに対する通常のアクセスが行われていない時間（非メモリアクセス時間と称する）に、メモリデバイスに対して、メモリデバイスに記憶されているデータの診断のための、リードコマンド等によるアクセスを実行する。そして、第１の診断手段は、前記診断のためのアクセスに応じてメモリデバイスから読み出されたデータの内容を、ＥＣＣ（Error-Correcting Code：誤り訂正符号）等の手段を用いて、データ故障（エラー）が無いかどうかチェックして、データ故障が有れば検出する。
【００１５】
前記非メモリアクセス時間は、すなわち通常のアクセスによる処理が行われている時間の間に発生する空き時間であり、メモリ制御回路は、この非メモリアクセス時間内において非メモリアクセス状態である時点を、前記診断のアクセスの実行タイミングとする。
【００１６】
前記メモリアクセス状態の監視は、例えば、メモリ部の外部のパス側からのリード／ライトコマンド等のメモリアクセスのコマンドをメモリ制御回路で受信することによる。前記メモリ制御回路は、前記非メモリアクセス時間及び診断実行タイミングに係わる判断で、例えばメモリ制御回路での受信コマンドに基づき、確実な空き時間を認識するか、あるいは、メモリアクセスと非メモリアクセスにおけるアクセスの頻度や処理時間の比などから非メモリアクセスを統計的に予測する判断などを行う。
【００１７】
前記診断のアクセスにおける処理は、例えば、メモリ制御回路で前記メモリアクセス状態の監視に基づき、メモリアクセスのコマンドを受信していない場合に、診断の内容やタイプに応じた診断要求を発行して、診断要求に基づき診断のためのコマンドとアドレスをメモリデバイスに出力する処理と、メモリデバイスで前記診断のためのコマンドとアドレスに従って読み出されメモリ制御回路に応答として出力されたデータを、ＥＣＣ等の手段を用いてチェックする処理とを含む。
【００１８】
前記診断処理で、ＥＣＣを用いてチェックを行う構成では、メモリデバイスに対するデータライト時に、メモリ制御回路で、ライトデータに対するＥＣＣを生成して、ＥＣＣを付加したデータをメモリデバイスにライトする。そして、メモリ制御回路は、前記診断のアクセスで、ＥＣＣが付加されたデータをメモリデバイスからリードし、ＥＣＣによりデータ内容のチェックを行う。メモリ制御回路は、前記チェックによりエラーを検出した場合、そのエラーステータスを報告する。また、前記チェックで検出したエラーが訂正可能なエラーであるなら、そのエラーについて訂正処理して、訂正された正常なデータを、メモリデバイスに再書き込み処理する。また前記チェックで検出したエラーが訂正不可能なエラーであるなら、そのエラーステータスを報告する。メモリ制御回路は、例えば、前記エラーステータスを、メモリ制御回路内に有するエラーステータス格納レジスタに格納する。
【００１９】
また、前記第１の診断手段は、前記診断のためのアクセスで、前記非メモリアクセス時間内において診断のアクセスを実行するが、その診断のアクセスに対応した診断処理中に通常のアクセスが発生した場合、すなわち通常のアクセスに対応したメモリアクセスのコマンドをメモリ制御回路で受信した場合には、その時実行している診断処理を停止して、通常のアクセスの処理を優先して実行する。
【００２０】
前記メモリ制御回路は、より詳しくは、例えば、コマンド／アドレス／データ／ステータス等の各データを入出力及び転送するためのバス、各データを蓄積するバッファ、各データの方向を変えるセレクタ、メモリデバイスに対するアクセスに係わるコマンド／アドレスを解析する解析部、前記解析されたコマンドを受信することでメモリアクセス状態を監視し、診断実行タイミングを制御する監視部（メモリアクセス状態監視部）、前記解析部からコマンド／アドレス要求を入力してメモリデバイスに対して通常のコマンド／アドレスを出力し、また前記監視部から診断要求を入力してメモリデバイスに対して診断のためのコマンド／アドレスなどを出力するメモリコマンド出力部、メモリデバイスへのライトデータに対するＥＣＣの生成・付加を行うＥＣＣ生成部、メモリデバイスからのリードデータに対するＥＣＣによる誤り検出や訂正やエラー報告などの処理を行うＥＣＣ誤り検出／訂正部、診断に関するエラーステータスなどのログ情報を格納するレジスタ（エラーステータス格納レジスタ）などから構成される。
【００２１】
（２）また、本発明の他のディスクアレイ装置は、前記（１）と同様に、制御装置に、メモリ部を有し、メモリ部がメモリデバイスとメモリ制御回路などのメモリ制御部とを有する構成において、メモリ部に、メモリデバイスについてマージン試験を含む診断を行う手段（第２の診断手段）を設ける。前記第２の診断手段は、特にメモリ部内のメモリ制御回路において、メモリデバイスに対する自動的なマージン試験による診断のアクセスを行う機能として、ハードウェア論理回路で実現される。ディスクアレイ装置の動作中に、制御装置でメモリ部のメモリデバイスに対するデータリード／ライト等の通常のアクセスが行われる一方、メモリ部で、前記第２の診断手段により、メモリデバイスに対して通常のアクセスを阻害しないタイミングで自動的にマージン試験による診断のためのアクセスを行って、メモリデバイスに記憶されているデータのチェックを行う処理が行われる。
【００２２】
前記第２の診断手段は、非メモリアクセス時間に、メモリデバイスに対して、メモリデバイスのデータ入出力に係わる振幅などの特性の条件や値を動作仕様範囲内で変動させる、マージン試験のためのアクセスを実行し、前記メモリデバイスからの前記変動に応じた応答をチェックして、動作仕様範囲におけるマージン不足や基準値からのズレなどにより発生するエラーを検出する。前記マージン試験のためのアクセスでは、メモリデバイスのデータ入出力に係わる１つ以上の特性に関して条件や値を変動させる制御を行う。そして、メモリデバイスからの前記変動に応じた応答をメモリ制御回路でチェックすることによって、データ入出力における正常性や安定性を確認する。メモリ部は、各特性の変動制御のために必要な機能をすべて備えた構成でもよいし一部のみ備える構成でもよい。
【００２３】
例えば、前記マージン試験のためのアクセスで、変動制御する対象となる特性として、メモリ制御回路とメモリデバイスの間でのデータ入出力における、入出力信号の振幅、閾値（基準値）レベル、ＤＬＬ（Delay Locked Loop）設定、供給クロックの周波数、供給電源の電圧レベル、出力バッファ駆動、終端抵抗値などがある。メモリ制御回路は、メモリデバイス、またはメモリデバイスとメモリ制御部、またはその他のクロック生成部などの部分に対して、上記特性を変動させるための要求や制御信号を出力してその条件や値を変動させる。
【００２４】
メモリ制御回路では、例えば、メモリアクセス状態の監視を行う監視部から監視に基づく診断実行タイミングで診断要求を発行し、メモリコマンド出力部が、監視部から受信した診断要求に基づき、メモリデバイスやメモリ制御回路に対して、各種特性についてのマージン試験のための要求や制御信号を出力する。
【００２５】
（３）また、本発明の他のディスクアレイ装置は、制御装置に、メモリ部を有し、メモリ部がメモリデバイスとメモリ制御回路などのメモリ制御部とを有する構成において、制御装置内で、メモリ部とメモリ部の外部に跨って、メモリデバイスの診断を行う手段（第３の診断手段）を設ける。制御装置は、例えば、前記メモリ部、前記チャネル制御部、前記ディスク制御部、制御装置内の各処理部をパスで接続するスイッチ部などの処理部により構成される。制御装置の処理部におけるメモリ部に対する通常のアクセスでは、チャネル制御部などから、スイッチ部による制御に基づき接続されるパスを使用してメモリ部に対してメモリアクセスのコマンド等が送信される。
【００２６】
前記第３の診断手段は、特に、制御装置内でメモリ部の外部に設けられメモリアクセス状態の監視とメモリアクセスの制御とを行う診断管理部（メモリアクセス状態監視／制御部）と、前記診断管理部からの制御に従ってメモリデバイスに対する診断のアクセスを実行するメモリ制御部とにおいて、メモリデバイスに対する自動的な診断のアクセスを行う機能として、ハードウェア論理回路で実現される。また、前記診断管理部は、特に、スイッチ部に接続または内蔵される部分として設けられる。
【００２７】
ディスクアレイ装置の動作中に、制御装置でスイッチ部を介してメモリ部のメモリデバイスに対するデータリード／ライト等の通常のアクセスが行われる一方、前記第３の診断手段における前記診断管理部が、スイッチ部を介してメモリデバイスに対して通常のアクセスを阻害しないタイミングで自動的に診断のためのアクセスを行う。前記診断管理部は、例えばスイッチ部を介してメモリ制御部へと診断要求の送信を行って、メモリ制御部で、診断要求に基づきメモリデバイスにアクセスすることにより、メモリデバイスに記憶されているデータのチェックを行う処理が前記（１）などの場合と同様に行われる。
【００２８】
前記診断管理部は、スイッチ部における複数のパスの使用状況や、メモリアクセスのコマンドの受信などに基づき、制御装置内の処理部からのメモリアクセスの状態を監視する。前記診断管理部は、前記監視により、非メモリアクセス時間を判断し、診断実行タイミングを制御する。また、診断管理部は、診断のためのアクセスに関連して、スイッチ部からのメモリ部に対するアクセスを制御する。
【００２９】
また、第３の診断手段は、メモリ部のメモリデバイスの状態やメモリアクセスの状態などに応じて自動的に、診断のためのアクセスの頻度を増減したり、通常のアクセスの頻度を増減する制御を行う。すなわち、診断管理部は、対象のメモリデバイスに対する前記診断要求の発行の頻度を増加させた診断のアクセスを実行する。あるいは、第３の診断手段は、診断要求により各種タイプの診断を選択して実行する等の制御を行う。あるいは、第３の診断手段は、複数のメモリデバイスを有する構成において特定のメモリデバイスに対する診断のみ実行したり、所定の時間だけ診断のアクセスを実行する等の制御を行う。
【００３０】
第３の診断手段は、例えば、メモリ部でメモリデバイスの増設や交換などの作業が行われたことにより新たなメモリデバイスが接続された際などに、自動的に、例えば一定期間、その新たに接続されたメモリデバイスに対する診断のアクセスを増加して診断を強化したり、その分通常のアクセスを抑制したりする等の制御を行う。
【発明の効果】
【００３１】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００３２】
本発明によれば、ディスクアレイ装置で、制御装置に有するメモリデバイスに対する通常のメモリアクセスの性能を保ちつつメモリデバイスの診断を行うことができ、メモリデバイスに記憶されるデータの信頼性を向上することができる。これにより信頼性を向上したディスクアレイ装置を提供できる。
【００３３】
特に前記課題を解決するための手段における（１）によれば、通常動作中にメモリデバイスのデータをチェック可能であり、事前にデータ故障を検出して更にはデータ修復が可能である。また特に前記課題を解決するための手段における（２）によれば、通常動作中にマージン試験を実行可能である。また特に前記課題を解決するための手段における（３）によれば、積極的にメモリデバイスに対するアクセスを制御して効率的な診断を行うことができる。
【発明を実施するための最良の形態】
【００３４】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００３５】
（実施の形態１）
図１〜図７は、本発明の実施の形態１におけるディスクアレイ装置について説明するための図である。実施の形態１では、制御装置２０においてメモリデバイス３を有するキャッシュ部１内で、メモリ制御部２に、通常動作中にメモリデバイス３の格納データを自動的に診断する機能を構成する。メモリ制御部２は、メモリデバイス３の診断のために、通常のメモリアクセスが行われていない時間に、メモリデバイス３に対して格納データの正常性のチェックのためのアクセスを実行する。メモリ制御部２は、前記診断のためのアクセスで、リードコマンドによりメモリデバイス３から読み出したデータについてＥＣＣを用いてチェックすることで誤りを検出すると共に、誤りが訂正可能であるならば訂正処理を行って、訂正されたデータをメモリデバイス３へ再書き込みする。
【００３６】
＜ハードウェア構成＞
図１は、本発明の実施の形態１のディスクアレイ装置１００のハードウェア外観構成を示す斜視図である。ディスクアレイ装置１００は、例えば、基本筐体１１１と複数の増設筐体１１２とから構成することができる。基本筐体１１１は、ディスクアレイ装置１００の最小構成単位であり、制御装置２０が担う制御機能及び記憶装置が担う記憶機能の両方を備えている。制御装置２０による制御機能は、上位装置などからの命令に応じて記憶装置に対するデータの記憶を制御する機能である。制御機能では複数の記憶装置に対するＲＡＩＤ制御が可能である。制御装置２０は、例えば、機能ごとの制御パッケージ１３が相互接続されることにより構成される。記憶機能は、ユーザデータ等のデータを記憶領域に記憶する機能である。本実施の形態の場合、記憶装置としてディスクドライブ４０が記憶領域を提供する。増設筐体１１２は、ディスクアレイ装置１００のオプションであり、記憶機能を備え、基本筐体１１１の制御機能により制御される。例えば、基本筐体１１１に対して４つの増設筐体１１２を接続した構成が可能である。各筐体間が通信ケーブルで接続される。
【００３７】
基本筐体１１１には、複数の制御パッケージ１１３と、複数の電源ユニット１１４と、複数のバッテリユニット１１５と、複数のディスクドライブ４０とがそれぞれ着脱可能に設けられている。増設筐体１１２には、複数の電源ユニット１１４と、複数のバッテリユニット１１５と、複数のディスクドライブ４０とがそれぞれ着脱可能に設けられている。また各筐体の上部などには、複数の冷却ファン１１６もそれぞれ設けられている。電源ユニット１１４は、筐体内各部に対する電源を供給する。バッテリユニット１１５はバックアップ電源として機能する。冷却ファン１１６は筐体内の冷却を行う。
【００３８】
制御パッケージ１１３は、後述のホストインタフェース部（ＣＨＡ）３０やディスクインタフェース部（ＤＫＡ）３４やキャッシュ部１などの各処理部を実現するモジュールである。制御パッケージ１１３は、機能を実装したボードに、筐体装着のための機械的構造などを加えた構成である。基本筐体１１１には、制御パッケージ１１３として、複数のＣＨＡパッケージ、複数のＤＫＡパッケージ及び１つ以上のメモリパッケージ等がそれぞれ着脱可能に設けられ、制御パッケージ１１３単位で交換可能となっている。各制御パッケージ１１３は、筐体に設けられているスロットに挿入され、スロット内部で各部相互接続のためのバックプレーンボードに接続される。
【００３９】
その他、ディスクアレイ装置１００には、ディスクアレイ装置１００の保守・管理のための機能を有する図示しないＳＶＰ（サービスプロセッサ）が制御装置２０に対して接続され、ＳＶＰの処理により各種保守・管理を行うことが可能となっている。
【００４０】
＜機能ブロック構成＞
図２は、本発明の実施の形態１におけるディスクアレイ装置１００の機能ブロック構成及びホスト装置との接続構成を示す。ディスクアレイ装置１００は、制御装置２０に対してディスクドライブ４０が複数接続される構成である。制御装置２０は、ディスクアレイ装置１００の筐体内で、ＣＨＡ等の各機能のモジュールが図示しないバックプレーンボードに接続され相互に配線されることにより構成される。
【００４１】
制御装置２０は、ホストインタフェース部（ＣＨＡともいう）３０、ディスクインタフェース部（ＤＫＡともいう）３４、スイッチ部（Ｃパススイッチ）４、キャッシュ部１などの各処理部を有し、各処理部がスイッチ部４及び物理的なバス及びこの上に設定される論理的なパスにより相互接続される。前記パスは、その使用権を与えられた処理部がアクセスに際して使用する。制御装置２０で各処理部は必要に応じて複数搭載することが可能である。
【００４２】
ホストＣＰＵ３００と制御装置２０のＣＨＡ３０は、ファイバチャネル（ＦＣ）インタフェース等の所定規格を通じて通信接続される。図２中では１つのホストＣＰＵ３００しか示していないが、制御装置２０に対して複数のホストＣＰＵ３００を、それぞれのホストインタフェースに対応したＣＨＡ３０によって通信接続可能である。またＤＫＡ３４とディスクドライブ４０のグループは、ＦＣ−ＡＬ等の所定規格を通じて通信接続される。スイッチ部４は、ＣＨＡ３０やＤＫＡ３４とパスで接続され、また、キャッシュ部１とパスで接続される構成である。各処理部及びパスを多重化した構成により、ホストＣＰＵ３００からディスクドライブ４０までのデータパスを多重化した構成が可能である。多重化構成により、処理性能向上や耐障害性などが実現される。図２の場合は特に二重化構成の場合を示している。
【００４３】
ＣＨＡ３４は、ホストインタフェース・プロトコルに従ってホストＣＰＵ３００との通信処理を行い、キャッシュ部１との間でのデータ転送処理を行う。ＣＨＡ３４は、ＭＰ（プロセッサ）３１と、チャネルインタフェース回路３２と、メモリアクセス制御部３３とを有する。特に１つのＣＨＡ３４内で複数のＭＰ３１を備える構成である。ＣＨＡ３４は、ホストインタフェースの種類に応じたものが１つ以上用意される。
【００４４】
ＭＰ３１は、マイクロプログラムに従って動作し、ＣＨＡとしての各種機能を実現する。チャネルインタフェース回路３２は、ホストインタフェース・プロトコル、例えばＦＣプロトコルに従った通信処理を行う。メモリアクセス制御部３３は、ＣＨＡ３０からのスイッチ部４を介したキャッシュ部１に対するメモリアクセスを制御する。すなわち、メモリアクセス制御部３３は、スイッチ部４での制御を通じて使用権が与えられた、ＣＨＡ３０からキャッシュ部１までのパス上で、キャッシュ部１に対するデータのリード／ライト等を含むメモリアクセスを行う。
【００４５】
ＤＫＡ３４は、ディスクインタフェース・プロトコルに従って１つ以上のディスクドライブ４０との通信処理を行い、キャッシュ部１との間でのデータ転送処理を行う。ＤＫＡ３４は、ＭＰ（プロセッサ）３５と、ディスクインタフェース回路３６と、メモリアクセス制御部３７とを有する。特に１つのＤＫＡ３４内で複数のＭＰ３４を備える構成である。ＤＫＡ３４は、同じ機能のものが複数用意される。
【００４６】
ＭＰ３５は、マイクロプログラムに従って動作し、ＤＫＡとしての各種機能を実現する。ディスクインタフェース回路３６は、ディスクインタフェース・プロトコルに従った通信処理を行う。メモリアクセス制御部３７は、ＣＨＡ３０のものと同様に、ＤＫＡ３４からのスイッチ部４を介したキャッシュ部１に対するメモリアクセスを制御する。すなわち、メモリアクセス制御部３７は、スイッチ部４での制御を通じて使用権が与えられた、ＤＫＡ３４からキャッシュ部１までのパス上で、キャッシュ部１に対するデータのリード／ライト等を含むメモリアクセスを行う。
【００４７】
キャッシュ部１は、制御装置２０においてデータを保持するキャッシュメモリとして使用されるメモリ部であり、特に、キャッシュ部１は、メモリ制御部２とメモリデバイス３とを搭載する１つのパッケージ基板として構成されている。キャッシュ部１に対して、ＣＨＡ３０やＤＫＡ３４がスイッチ部４を介して通常のメモリアクセスを行い、データをリード／ライトする。メモリ制御部２は、ＬＳＩとして実装され、メモリデバイス３を制御するハードウェア論理回路である。メモリデバイス３は、データを記憶するメモリ素子である。メモリデバイス３としては、ＤＲＡＭ、ＳＲＡＭ、フラッシュメモリなどの各種を使用可能である。なお、キャッシュ部１の構成は特にメモリ制御部２とメモリデバイス３とを実装した１枚のパッケージ基板の形態に限らず、例えばメモリ制御部２が別部位に配置・構成された形態なども可能である。
【００４８】
スイッチ部４は、ＣＨＡ３４やＤＫＡ３５などのプロセッサを有する側のパス（Ｐパスと称する）と、キャッシュ部１などの側のパス（Ｃパスと称する）とを接続し切り替える。図２において、Ｐパスは、スイッチ部４の左側の線が相当し、Ｃパスは、スイッチ部４の右側の線が相当する。例えば、スイッチ部４、Ｐパス及びＣパスを通じて、ＣＨＡ３０のメモリアクセス制御部３３とキャッシュ部１のメモリ制御部２とが１つの論理的なパスで通信可能に接続される。パス上では、各種データや情報がパケットの形で転送される。パケットの種類は、コマンド、アドレス、データ（入出力データ）、ステータスなどがある。例えば、前記コマンドは、リード／ライト等のコマンドであり、前記アドレスは、その対象となるメモリアドレスである。また前記データは、リードデータ／ライトデータ等であり、前記ステータスは、エラー情報などである。なお、制御装置３０において、例えば、ＣＨＡ３０等とスイッチ部４の間のＰパスを１つのパスとし、スイッチ部４とキャッシュ部１の間のＣパスを１つのパスとすると共に、ＣＨＡ３０等からキャッシュ部１までの間でＰパスとＣパスの接続で構成されるパスも論理的な１つのパスとする。また、キャッシュ部１の内部で、メモリ制御部２のＣパス側からメモリデバイス３までの経路も論理的な１つのパスとする。また、図２の二重化構成におけるパスにおいて、実線は第１のキャッシュ部１に対するパスを、点線は第２のキャッシュ部１に対するパスを示している。
【００４９】
ディスクドライブ４０は、ＨＤＤ等の記憶装置及び機械的な部品を含んで構成されるユニットであり、ディスクアレイ装置１００の筐体内に装着される。ディスクドライブ４０は、ＤＫＡ３４との通信に基づき、物理的な記憶領域すなわちディスク上にデータを記憶する。また、制御装置２０によるＲＡＩＤ制御に応じて、複数のディスクドライブ４０でＲＡＩＤタイプに応じたＲＡＩＤグループが構成可能であり、ＲＡＩＤグループ上に論理的な記憶ボリュームを設定してデータの記憶が可能である。
【００５０】
図２中に示すように、実施の形態１では、キャッシュ部１内で診断処理が完結するように診断手段を構成した形態であり、メモリ制御部２とメモリデバイス３との間のデータ入出力のためのバスを利用して、メモリ制御部２からメモリデバイス３に対するメモリデバイス３の診断のためのアクセスが行われる。また、制御装置２０内で、ＣＨＡ３０やＤＫＡ３４等の処理部からキャッシュ部１のメモリデバイス３に対する通常のアクセスのパス（「通常のパス」）と、診断のためのアクセスのパス（「診断のパス」）とが有る。前記通常のアクセスでは、ＣＨＡ３０等からメモリデバイス３に対するデータのライトやリードなどのアクセスが行われる。前記診断のアクセスでは、メモリデバイス３に対するデータリードによる応答すなわちリードデータを、ＥＣＣを用いてチェックするためのアクセスが行われる。
【００５１】
キャッシュ部１内では、メモリ制御部２とメモリデバイス３の間の論理的なパスを有し、このパスが、前記通常のアクセスと診断のためのアクセスとで共用される。そのために、キャッシュ部１内で両パスが一部重なるが、メモリ制御部２で通常のアクセスの空き時間に診断のアクセスを実行する制御が行われるため、診断のアクセスの実行タイミングあるいは処理時間が通常のアクセスのタイミングあるいは処理時間と重ならない。そのため、パス上のアクセスの競合が避けられ、通常のアクセスの処理性能が診断のアクセスにより低下しない。例えばＣＨＡ３０からのメモリデバイス３に対するデータリード処理におけるスループットも低下しない。
【００５２】
＜前提技術との比較＞
図１１は、本発明の発明者が発明の前提技術として検討した従来のディスクアレイ装置のキャッシュ部の構成例について示す図である。なお従来のディスクアレイ装置における制御装置の構成も前記図２の構成と概略同様であるものとする。以下、前提技術となるキャッシュ部２０１の構成について、本発明の構成との比較のために説明する。
【００５３】
キャッシュ部２０１で、メモリ制御部２０２は、双方向バッファ２０５、メモリコマンド出力部２０６、コマンド／アドレス解析部２０７、ＥＣＣ生成部２０９、ＥＣＣ誤り検出／訂正部２１０、ＲＥＡＤ方向のパケットバッファ２１１，ＷＲＩＴＥ方向のパケットバッファ２１２、パス側セレクタ２１５、リライトセレクタ２１６などを有する構成である。メモリ制御部２０２は、パス側セレクタ２１５及びバスを通じて、インタフェースパス用のバックプレーンボード２１３に対して接続される。図１１において、実線の太線の矢印は、主にデータ系（コマンド、アドレス、データ等）の転送のためのバスを示す。点線の矢印は、制御情報系のバスを示す。
【００５４】
双方向バッファ２０５は、データの入力と出力を切り替えることが可能なバッファである。すなわち、双方向バッファ２０５は、メモリデバイス２０３へのデータライト時には、ＥＣＣ生成部２０９からライトデータを入力してバッファリングし、メモリデバイス２０３へ出力する。また、メモリデバイス２０３からのデータリード時には、メモリデバイス２０３からリードデータを入力してバッファリングし、ＥＣＣ誤り検出／訂正部２１０へ出力する。
【００５５】
メモリコマンド出力部２０６は、コマンド／アドレス解析部２０７からのコマンド／アドレス要求に基づき、メモリデバイス２０３に対してコマンドとアドレスを出力する回路である。メモリコマンド出力部２０６で出力されるコマンドは、ライト、リード、リフレッシュ等の各コマンドである。また、メモリコマンド出力部２０６は、双方向バッファ２０５に対して、リード／ライト等のコマンドに応じたメモリデータ方向制御を制御信号出力により行う。
【００５６】
コマンド／アドレス解析部２０７は、メモリ制御部２０２の外部のパス側からパケットバッファ２１１で受信したコマンド／アドレスパケットからコマンドとアドレスを抽出し、抽出したコマンドとアドレスを、コマンド／アドレス要求としてメモリコマンド出力部２０６に対して出力する回路である。また、コマンド／アドレス解析部２０７は、パス側セレクタ２１５に対して、リード／ライト等のコマンドに応じたパスデータ方向制御を制御信号出力により行う。
【００５７】
ＥＣＣ生成部２０９は、メモリデバイス２０３への格納対象データすなわちライトデータに対してＥＣＣを生成して付加し、双方向バッファ２０５へと転送する回路である。ＥＣＣ誤り検出／訂正部２１０は、双方向バッファ２０５から転送されたメモリデバイス２０３の格納データすなわちリードデータについて、付加されているＥＣＣからの誤り検出を行ってデータ内容を検証（チェック）する回路であり、誤りを検出した際にそれが訂正可能であれば訂正して、検証後のデータをパケットバッファ２１２及びリライトセレクタ２１６へ転送する回路である。前記検証後の誤り無しの正常なリードデータが、パケットバッファ２１２へ転送される。また、ＥＣＣ誤り検出／訂正部２１０は、前記検証後、前記誤り検出して訂正したデータについては、リライト要求をリライトセレクタ２１６に送ってＥＣＣ生成部２０９へと転送する。
【００５８】
パケットバッファ２１１は、メモリデバイス２０３へのライト方向のパケットをバッファリングする。パケットバッファ２１１は、インタフェースパス及びパス側セレクタ２１５からのデータをバッファリングしてリライトセレクタ２１６に出力する。また、パケットバッファ２１１から、コマンド／アドレスパケットが、コマンド／アドレス解析部２０７に対して出力される。パケットバッファ２１２は、メモリデバイス２０３からのリード方向のパケットをバッファリングする。パケットバッファ２１２は、ＥＣＣ誤り検出／訂正部２１０からのデータすなわちリードデータをバッファリングしてパス側セレクタ２１５及びインタフェースパスに出力する。
【００５９】
インタフェースパス用のバックプレーンボード２１３は、制御装置２０を構成する各制御パッケージ１１３間の接続を行うボードであり、キャッシュ部２０１に対するパスの一部を構成するインタフェースパスを有する。バックプレーンボード２１３での接続を通じて、ＣＨＡ３０、ＤＫＡ３４、スイッチ部４、キャッシュ部１を含む各処理部の間が接続される。なお、制御装置２０としては、各部をバックプレーンボード２１３を介さずに直接に接続した形態なども可能である。バックプレーンボード２１３のインタフェースパスからメモリデバイス２０３までの間のデータ入出力のパスは、ライト／リードの双方向のデータパスとなる。
【００６０】
パス側セレクタ２１５は、パスデータ方向制御に従って、パス側におけるデータ転送のライト／リード方向を切り替えるセレクタである。リライトセレクタ２１６は、ＥＣＣ誤り検出／訂正部２１０で訂正されたデータをリライト要求に従ってメモリデバイス２０３へと書き込む際の転送データを、前記訂正されたデータと通常のライトデータとで切り替えるセレクタである。
【００６１】
上記キャッシュ部２０１の構成において、メモリデバイス２０３の格納データについての従来の診断方法における処理手順について以下説明する。
【００６２】
（１）まず、メモリデバイス２０３に対する通常のメモリアクセスにおいて、ＥＣＣを用いて誤り検出／訂正処理を行っている。ホストＣＰＵ３００−キャッシュ部２０１の間でデータ転送を行う場合、ＣＨＡ３０に搭載のＭＰ３１は、キャッシュ部２０１との間での指定されたパスでデータ転送を行う。また、ディスクドライブ４０−キャッシュ部２０１の間でデータ転送を行う場合、ＤＫＡ３４に搭載のＭＰ３５は、キャッシュ部２０１との間での指定されたパスでデータ転送を行う。
【００６３】
（２）キャッシュ部２０１でＣパス側からコマンド／アドレスパケットを受信した場合、コマンド／アドレス解析部２０７での解析によりコマンド／アドレス要求をメモリコマンド出力部２０６に出力する。メモリコマンド出力部２０６でコマンド／アドレス要求に応じてメモリデバイス２０３に対してコマンド／アドレスを出力する。この際、メモリデータ方向制御信号をメモリコマンド出力部２０６から双方向バッファ２０５に出力し、またパスデータ方向制御信号をコマンド／アドレス解析部２０７からパス側セレクタ２１５に出力することで、双方向データパスにおけるライト／リードの方向を切り替える。
【００６４】
（３）メモリデバイス２０３に対するコマンドがデータリードの場合、前記コマンド／アドレスに応じてメモリデバイス２０３から双方向バッファ２０５へと出力されたデータすなわちリードデータを、ＥＣＣ誤り検出／訂正部２１０でＥＣＣを用いてチェックする。
【００６５】
（４）前記ＥＣＣ誤り検出／訂正部２１０でのチェックにおいて、誤り訂正可能なエラーを検出した場合、ＥＣＣ誤り検出／訂正部２１０は、当該データを訂正処理して、リライト要求信号をリライトセレクタ２１６に対して出力し、メモリデバイス２０３に対して前記訂正されたデータの再書き込みを行わせる。すなわち、この再書き込み処理では、メモリデバイス２０３から一旦読み出したデータについて訂正処理して再びメモリデバイス２０３へと書き込んでいる。
【００６６】
（５）次に、メモリデバイス２０３の診断についてであるが、メモリデバイス２０３に記憶されているデータについての定期的な診断を、制御装置２０内のマイクロプログラム及びプロセッサの処理によりソフトウェア的に行うことが可能である。この場合、ＣＨＡ３０のＭＰ３１あるいはＤＫＡ３４のＭＰ３５は、定期的な診断のタイミングで、キャッシュ部２０１までのデータ用パスのうち未使用のパスすなわち通常のメモリアクセスのために使用されていない状態のパスを用いて、キャッシュ部２０１に搭載のメモリデバイス２０３からデータリードを行うためのコマンド／アドレスを含んだパケットを送信する。そして、キャッシュ部２０１で前記パケットを受信して、前記（４）の通りの動作で、前記コマンド／アドレスに対応したメモリデバイス２０３からのリードデータをチェックする。当該チェックで、エラーを検出した場合すなわち指定アドレスからのリードデータが故障であった場合は、それを示すエラーステータスを、同じパスを用いてキャッシュ部２０１から前記ＣＨＡ３０やＤＫＡ３４に対し応答として返す。このようにしてＣＨＡ３０やＤＫＡ３４は前記リードコマンドの応答によりメモリデバイス２０３の格納データの内容をチェック可能である。
【００６７】
従来のディスクアレイ装置では、上記のように制御装置２０に有するＣＨＡ３０等の処理部がソフトウェア的にメモリデバイス２０３についての診断を行うことは可能であったが、キャッシュ部２０１のメモリ制御部２０２で、メモリデバイス２０３が記憶しているデータの正常性について診断を行うような診断機能は備えていない。また、上記のようにメモリデバイス２０３の診断をソフトウェア的に行う構成の場合、メモリデバイス２０３の出力信号の振幅などを変動させるマージン試験までは行われていない。
【００６８】
また、制御装置２０内の別プロセッサから、通常のメモリアクセスのために、前記診断のためのパスと同一パスに対する使用要求が発生した場合、パスにおけるアクセスの競合により、当該定期的な診断による通常のアクセスの性能が低下する問題がある。
【００６９】
＜キャッシュ部の構成＞
図３は、実施の形態１のディスクアレイ装置１００が備えるキャッシュ部１の詳細構成を示す。キャッシュ部１は、主にメモリ制御部２とメモリデバイス３を有する構成である。図３中に示す実線の太線の矢印はデータ系（コマンド、アドレス、データ等）の転送のためのバスを示し、点線の矢印は制御情報系のバスを示す。また数字付きで示す矢印は、メモリデバイス３に対する診断のアクセスにおける経路を示す。
【００７０】
キャッシュ部１で、メモリ制御部２は、双方向バッファ５、メモリコマンド出力部６、コマンド／アドレス解析部７、ＥＣＣ生成部９、ＥＣＣ誤り検出／訂正部１０、ＲＥＡＤ方向のパケットバッファ１１、ＷＲＩＴＥ方向のパケットバッファ１２、パス側セレクタ１５、リライトセレクタ１６などに加え、メモリアクセス状態監視部（以下、監視部と略称する）８、エラーステータス格納レジスタ１４を有する構成である。メモリ制御部２は、パス側セレクタ１５及びバスを通じて、インタフェースパス用のバックプレーンボード１３に対して接続される。主に、監視部８、メモリコマンド出力部６、ＥＣＣ誤り検出／訂正部１０、及びエラーステータス格納レジスタ１４の機能により、診断機能が構成される。双方向バッファ５、メモリコマンド出力部６、コマンド／アドレス解析部７、ＥＣＣ生成部９、ＥＣＣ誤り検出／訂正部１０、パケットバッファ１１，１２、パス側セレクタ１５、リライトセレクタ１６などの各要素は、前記図１１で示す従来の各要素と同様の機能を有する。従来と異なる機能については以下で説明する。
【００７１】
メモリコマンド出力部６は、監視部８からの診断要求に基づき、メモリデバイス３に対して診断のためのコマンドとアドレス、その他診断に係わる要求などを出力する機能を備えた回路である。
【００７２】
コマンド／アドレス解析部７は、メモリ制御部２の外部のパス側からパケットバッファ１１で受信したコマンド／アドレスパケットからコマンドとアドレスを抽出し、抽出したコマンドとアドレスを、コマンド／アドレス要求としてメモリコマンド出力部６に対して出力すると共に、監視部８に対してメモリアクセスコマンドを出力する回路である。前記コマンド／アドレス解析部７から出力されるメモリアクセスコマンドは、制御装置２０におけるキャッシュ部１のメモリデバイス３に対する通常のメモリアクセスに係わるリード／ライト等のコマンド、またはそれに係わりコマンド／アドレス解析部７で生成した情報である。
【００７３】
ＥＣＣ誤り検出／訂正部１０は、診断時に、双方向バッファ５から転送されたメモリデバイス３の格納データすなわちリードデータについて、ＥＣＣを用いて誤り検出を行ってデータ内容をチェックする回路であり、誤りを検出した際にそれが訂正可能であれば訂正処理して、チェック後のデータをパケットバッファ１２及びリライトセレクタ１６へ転送する回路である。前記チェック後の誤り無しの正常なリードデータが、パケットバッファ１２へ転送される。また、ＥＣＣ誤り検出／訂正部１０は、前記チェック後、前記誤り検出して訂正したデータについて、リライト要求をリライトセレクタ１６に送ってＥＣＣ生成部９へと転送する。ＥＣＣ生成部９は、診断時に、ＥＣＣ誤り検出／訂正部１０から、前記訂正されたデータを受け取り、メモリデバイス３に対して出力する。ＥＣＣ誤り検出／訂正部１０は、処理のログ情報をエラーステータス格納レジスタ１４に格納する。
【００７４】
リライトセレクタ１６は、診断時、ＥＣＣ誤り検出／訂正部１０で訂正されたデータをリライト要求に従ってメモリデバイス３へと書き込む際の転送データを、前記訂正されたデータと通常のライトデータとで切り替えるセレクタである。
【００７５】
バックプレーンボード１３のインタフェースパスからメモリデバイス３までの間のデータ入出力のパスは、ライト／リードの双方向のデータパスとなる。当該パスは、制御装置２０における通常のメモリアクセスでも本実施の形態１での診断のメモリアクセスでも共通して使用される。
【００７６】
監視部８は、コマンド／アドレス解析部７から受信するメモリアクセスコマンドに基づき、メモリデバイス３に対するメモリアクセス状態を監視する回路である。また、監視部８は、メモリアクセス状態の認識や判断に基づき、メモリデバイス３に対する診断のアクセスの実行タイミングを判定し、前記診断のアクセスの実行タイミングで診断要求をメモリコマンド出力部６に対し出力する回路である。監視部８は、メモリデバイス３に対するメモリアクセス状態の監視により、通常のアクセス時間の空き時間を判断、認識する。また、メモリデバイス３の診断として、メモリデータの正常性すなわちデータ故障が発生していないかどうかのチェックを行う。本チェックは、メモリ制御部２のメモリコマンド出力部６からメモリデバイス３に対してデータリードのコマンド／アドレスを発行してその応答のリードデータをメモリ制御部２でＥＣＣを用いてチェックすることによる。
【００７７】
エラーステータス格納レジスタ１４は、ＥＣＣ誤り検出／訂正部１０での処理のログ情報を格納するレジスタである。ＥＣＣ誤り検出／訂正部１０は、メモリデバイス３からのリードデータについてチェックにより誤りが検出された場合のエラーステータスを、エラーステータス格納レジスタ１４に格納する。エラーステータス格納レジスタ１４に格納されたログ情報を読み出すことにより、診断結果が把握可能である。
【００７８】
メモリデバイス３は、キャッシュ部１に対して例えばＤＩＭＭの形態で増減可能に接続される。メモリデバイス３は多数のメモリアドレスを有し、メモリデバイス３に対するデータのライトの際は、コマンドと共に前記メモリアドレスが指定され、指定のメモリアドレスの記憶領域に、メモリ制御部２での処理によりＥＣＣが付加されたデータが記憶される。また、メモリデバイス３に対するデータのリードの際は、コマンドと共に前記メモリアドレスが指定され、指定のメモリアドレスの記憶領域から、ＥＣＣが付加されたデータが読み出される。診断の際は、メモリデバイス３における各メモリアドレスに対する診断が実行される。メモリ制御部２からメモリアドレスの指定を変えて診断のアクセスを実行することで、メモリデバイス３の全面あるいは一部の診断が可能である。
【００７９】
＜キャッシュ部での診断処理＞
キャッシュ部１の構成において、ディスクアレイ装置１００の通常動作中に、メモリデバイス３の格納データについて自動的な診断を実行する処理における処理手順について以下説明する。まず、制御装置２０におけるメモリデバイス３に対する通常のメモリアクセスにおいて、メモリ制御部２でＥＣＣを用いて誤り検出／訂正処理を行っている。ホストＣＰＵ３００−キャッシュ部１の間でデータ転送を行う場合、ＣＨＡ３０に搭載のＭＰ３１は、キャッシュ部１との間での指定されたパスでデータ転送を行う。また、ディスクドライブ４０−キャッシュ部１の間でデータ転送を行う場合、ＤＫＡ３４に搭載のＭＰ３５は、キャッシュ部１との間での指定されたパスでデータ転送を行う。前記従来のキャッシュ部２０１の構成における（１）から（４）に示した処理手順と同様に通常のアクセスの処理が行われる。
【００８０】
次に、メモリデバイス３の診断のアクセスについてであるが、メモリデバイス３に記憶されているデータについての診断が、前記制御装置２０内のマイクロプログラム及びプロセッサの処理を要さずに、キャッシュ部１内で自動的に実行される。キャッシュ部１のメモリ制御部２は、監視部８の判断に基づき、例えば定期的なタイミングで、診断のアクセスをメモリデバイス３に対して実行する。
【００８１】
（１）まず、キャッシュ部１でＣパス側からコマンド／アドレスパケットを受信した場合、コマンド／アドレス解析部７での解析によりコマンド／アドレス要求をメモリコマンド出力部６に出力すると共に、監視部８に対してメモリアクセスコマンドが出力される。
【００８２】
（２）監視部８は、コマンド／アドレス解析部７からのメモリアクセスコマンドを受信して、メモリデバイス３についてのメモリアクセス状態を判断、認識する。その結果、通常のアクセスにおける空き時間すなわち非メモリアクセス時間が有り、通常のアクセスと競合しない場合に、メモリコマンド出力部６に対する診断要求を発行する。診断要求の発行により、キャッシュ部１内の論理的なパスを用いた、メモリデバイス３の格納データのチェックのためのアクセスを実行する。
【００８３】
（３）メモリコマンド出力部６は、監視部８からの診断要求に基づき、メモリデバイス３に対して、メモリデバイス３からデータリードを行うためのコマンド／アドレスを出力する。メモリデバイス３では、メモリコマンド出力部６からのコマンド／アドレスに基づき、指定アドレスの記憶領域から格納データが読み出され、メモリ制御部２とのデータ入出力のバスを介して双方向バッファ５に対して出力される。
【００８４】
（４）メモリ制御部２で、前記コマンド／アドレスに応じてメモリデバイス３から双方向バッファ５へと出力されたリードデータを、ＥＣＣ誤り検出／訂正部１０でＥＣＣを用いてチェックする。ＥＣＣ誤り検出／訂正部１０でのチェックで、リードデータにおける誤りを検出した場合は、そのことを示すエラーステータスを、エラーステータス格納レジスタ１４に格納する。更に、前記ＥＣＣ誤り検出／訂正部１０でのチェックにおいて、誤りを検出した場合でその訂正が可能な場合は、当該データを訂正処理し、訂正されたデータを出力すると共に、リライト要求信号をリライトセレクタ１６に対し出力して、ＥＣＣ生成部９を介してメモリデバイス３に対し再書き込みさせる。
【００８５】
このようにして、通常のメモリアクセスが行われていない時間に診断のアクセスを実行することにより、メモリデバイス３の格納データの内容をチェック可能である。本チェックにより事前にメモリデータの故障を検出することが可能であり、更にそれが訂正可能な場合には訂正処理して事前のデータ修復が可能である。
【００８６】
監視部８におけるメモリアクセス状態の監視と診断実行タイミングの判断の処理において、通常のメモリアクセスの空き時間が判断される。この監視部８での処理では、例えば、メモリデバイス３に対する通常のメモリアクセスコマンドの受信をもとに、メモリデバイス３に対するリード／ライト等の処理及び時間を考慮して、非メモリアクセス状態である条件のもとで診断要求を発行する。また、監視部８は、メモリデバイス３に対する通常のアクセスの発生頻度やメモリアクセス時間の割合などの計算をもとに、統計的に見てある程度の大きさの空き時間が発生すると予測したタイミングで診断要求を発行するようにしてもよい。また、ある一定の非メモリアクセス時間の経過時に診断要求を発行する等としてもよい。
【００８７】
実施の形態１では、監視部８は、第１の診断処理として、メモリアクセス状態の監視に従って、一定周期の定期的なタイミングで、非メモリアクセス状態である条件で、診断のアクセスを実行する。すなわち前回の診断実行から一定期間経過後に診断のアクセスを実行する。またこれとは別の方法として、監視部８は、第２の診断処理として、メモリアクセス状態の監視に従って、現在時から過去の一定期間における通常のメモリアクセスの時間と非メモリアクセスの時間との比、あるいは、全体における非メモリアクセス時間の比、あるいは時間ではなく頻度の比などを簡単な計算により求め、その値が所定値以上である場合に、非メモリアクセス状態である条件で、診断のアクセスを実行する。監視部８は、通常のメモリアクセスの空き時間あるいは通常のメモリアクセスの頻度が少ない時期を、過去のメモリアクセス状態をもとに統計的に判断する。
【００８８】
＜監視部での処理＞
図４〜図６は、キャッシュ部１における、特に監視部８でのメモリアクセス状態の監視と診断実行タイミングの判断に係わる処理を示すフロー図である。図４は、監視部８でのメイン動作の処理を示す。図５、図６は、それぞれ、監視部８でのメイン動作に関連して、診断実行タイミングの判断に係わる、前記第１の診断処理と第２の診断処理を示すものである。図５、図６に示す各処理では、特に監視部８における診断要求出力イネーブル信号の出力（ＯＮ／ＯＦＦ）に関する処理を示している。診断要求出力イネーブル信号（以下、イネーブル信号と略称する）は、監視部８からメモリコマンド出力部６に対する診断要求の出力をイネーブル／ディセーブルする信号である。
【００８９】
監視部８では、コマンド／アドレス解析部７から入力されるメモリアクセスコマンドに基づきメモリデバイス３に対するメモリアクセス状態を認識する。そして、非メモリアクセス状態の時において、診断要求出力がイネーブル状態である条件のもとで、診断要求をメモリコマンド出力部６に対して出力して、これによりメモリデバイス３に対する診断のアクセスを行わせる。以下、非メモリアクセス状態とは、メモリ制御部２でリード／ライトコマンド等の通常のメモリアクセスコマンドを受信していない状態またはそれに対応する処理が行われていない状態を指す。また、メモリアクセス状態とは、メモリ制御部２で通常のメモリアクセスコマンドを受信している状態またはそれに対応する処理が行われている状態を指す。
【００９０】
図４で、制御装置２０及びキャッシュ部１の電源ＯＮ（ステップＳ１）の後、キャッシュ部１において、まず、非メモリアクセス状態（Ｓ２）となる。メモリ制御部２でスイッチ部４及びＣパス側からメモリアクセスコマンドを受信した場合は（Ｓ３−Ｙｅｓ）、コマンド／アドレス解析部７での処理及び監視部８での判断により、メモリアクセス状態（Ｓ４）であると認識される。メモリアクセス状態（Ｓ４）で、そのメモリアクセスに対応する処理が終了したかが判断され（Ｓ５）、終了していない場合は（Ｓ５−Ｎｏ）、メモリアクセス状態（Ｓ４）が継続される。終了した場合は（Ｓ５−Ｙｅｓ）、非メモリアクセス状態（Ｓ２）へと戻る。
【００９１】
前記Ｓ３で、メモリ制御部２でスイッチ部４及びＣパス側からメモリアクセスコマンドを受信していない場合（Ｓ３−Ｎｏ）、監視部８における診断要求出力がイネーブル状態かどうか、すなわち前記イネーブル信号のＯＮ／ＯＦＦにより（Ｓ６）、イネーブル状態でない場合は（Ｓ６−Ｎｏ）、非メモリアクセス状態（Ｓ２）へと戻り、診断を実行しない。イネーブル状態である場合は（Ｓ６−Ｙｅｓ）、監視部８からメモリコマンド出力部６に対して診断要求を出力する（Ｓ７）。診断要求の出力により、これに対応した診断処理が実行される。
【００９２】
続いて、メモリアクセスコマンドを受信していない場合（Ｓ８−Ｎｏ）、前記診断要求の出力（Ｓ７）を行って診断処理を行う状態が継続される。この非メモリアクセス状態において、連続的に診断処理を行う処理形態が可能である。また、一定時間の診断処理を行ったら一旦終了するようにする処理形態も可能である。メモリアクセスコマンドを受信した場合は（Ｓ８−Ｙｅｓ）、その通常のメモリアクセスを優先させるため、診断要求を停止させ（Ｓ９）、メモリアクセス状態（Ｓ４）へと戻る。
【００９３】
次に、図５で、監視部８は、第１の診断処理として、一定周期でイネーブル信号を出力する。これにより、一定周期ごとに、すなわち前回の診断のアクセスから一定時間経過したら、診断のアクセスが実行可能な状態となる。前記イネーブル信号の出力の周期を、メモリ制御部２での設定により変動可能としてもよい。
【００９４】
制御装置２０及びキャッシュ部１の電源ＯＮ（Ｓ２１）後、監視部８は、まず、イネーブル信号をＯＮにするタイミングをカウントにより決定するためのタイマーを所定値にセットして（Ｓ２２）、タイマーを動作開始させる（Ｓ２３）。カウントによりタイマーの値がゼロになるまで待ち（Ｓ２４）、タイマーの値がゼロになったら（Ｓ２４−Ｙｅｓ）、監視部８は、イネーブル信号をＯＮにすることにより診断要求出力をイネーブル状態にする（Ｓ２５）。非メモリアクセス状態になることにより監視部８から診断要求が出力されるまでは、イネーブル状態を維持し（Ｓ２６−Ｎｏ）、監視部８から診断要求が出力された場合は（Ｓ２６−Ｙｅｓ）、イネーブル信号をＯＦＦにすることにより、診断要求出力のイネーブル状態を解除、すなわちディセーブル状態にする（Ｓ２７）。そして、前記Ｓ２２に戻り、タイマーをリセットして再びタイマーによるカウントを開始する。
【００９５】
次に、図６で、監視部８は、第２の診断処理として、メモリアクセス時間に対する非メモリアクセス時間の比が基準値以上である時に、イネーブル信号を出力する。これにより、或る時点において、統計的な判断から、その直後に非メモリアクセス状態となると推測して、診断のアクセスが実行可能な状態となる。これは前記第１の診断処理に替わるものである。前記判断のための基準値などを、メモリ制御部２での設定により変動可能としてもよい。
【００９６】
制御装置２０及びキャッシュ部１の電源ＯＮ（Ｓ３１）後、監視部８は、現在時刻から過去の一定時間前の期間における、メモリアクセス時間に対する非メモリアクセス時間の比（以下、アクセス比と称する）を簡単な計算により求める（Ｓ３２）。例えば、監視部８で過去のメモリアクセスコマンドの受信の状態を記憶しておくことで、前記アクセス比が計算可能である。監視部８は、その時のアクセス比が所定の基準値以上となるかどうかを判断し（Ｓ３３）、基準値以上でない場合（Ｓ３３−Ｎｏ）、診断要求出力をイネーブル状態にはせずにディセーブル状態を維持し、前記Ｓ３２に戻る。基準値以上となる場合（Ｓ３３−Ｙｅｓ）、監視部８は、前記イネーブル信号をＯＮにすることにより、診断要求出力をイネーブル状態にする（Ｓ３４）。続いて、監視部８から非メモリアクセス状態となることにより診断要求が出力されるまではイネーブル状態を維持し（Ｓ３５−Ｎｏ）、監視部８から診断要求が出力された場合（Ｓ３５−Ｙｅｓ）、前記イネーブル信号をＯＦＦにすることにより、診断要求出力のイネーブル状態を解除する（Ｓ３６）。そして、前記Ｓ３２に戻り、再びアクセス比による判断を行う。
【００９７】
次に、図７（ａ），（ｂ）は、前記図４〜図６に示す処理に対応した、通常のアクセスと診断のアクセスとの実行例のタイムチャートである。（ａ）は、前記一定周期でイネーブル信号を出力する第１の診断処理に対応し、（ｂ）は、前記アクセス比に応じてイネーブル信号を出力する第２の診断処理に対応する。
【００９８】
（ａ）において、信号ａの「通常アクセス」は、メモリデバイス３に対するメモリアクセス状態として、通常のメモリアクセスについての状態を、アクセス状態／非アクセス状態として示す。信号ｂは、イネーブル信号のＯＮ／ＯＦＦを示す。ｃの「診断アクセス」は、診断のメモリアクセスについての状態を、アクセス状態／非アクセス状態として示す。以下、図７に示す例について時間を追って説明する。アクセス状態はアクセス時間に、非アクセス状態は非アクセス時間にそれぞれ対応する。なおここでは簡単のため通常アクセス（信号ａ）と診断アクセス（信号ｃ）における処理時間を同じ大きさで示しているが、実際は処理内容などに応じて増減する。
【００９９】
制御装置２０及びキャッシュ部１の電源ＯＮ後、メモリ制御部２の監視部８で、タイマーを前記一定周期に対応した値にセットしてカウントが開始される。最初は非メモリアクセス状態である。タイマー値がゼロになると、イネーブル信号をＯＦＦからＯＮにする（信号ｂ）。そして、通常アクセスにおける非アクセス状態であるので（信号ａ）、監視部８から診断要求を発行して診断アクセスを実行開始する（信号ｃ）。これに伴い、イネーブル信号をＯＮからＯＦＦにし、また、タイマーをリセットしてカウントを開始する（信号ｂ）。所定の時間で、診断アクセスに対応した診断処理が完了する（信号ｃ）。その後、１回目の通常アクセスが発生して、通常のデータ入出力処理が所定の時間で完了している（信号ａ）。
【０１００】
その後、２回目の通常アクセスが発生して（信号ａ）、このアクセス状態のアクセス時間の途中でタイマーがゼロになり、イネーブル信号がＯＦＦからＯＮになった場合を示している（信号ｂ）。この場合、まだ通常アクセスの処理が完了していない状態であるので（信号ａ）、これが完了するまでは診断アクセスは開始されない。前記通常アクセスの処理が完了した後（信号ａ）、診断アクセスを実行開始する（信号ｃ）。これに伴い、イネーブル信号をＯＮからＯＦＦにし、また、タイマーをリセットしてカウントを開始する（信号ｂ）。
【０１０１】
その後、前記診断アクセスでの診断処理の途中で（信号ｃ）、通常アクセスが発生している（信号ａ）。この時、通常アクセスの処理を優先するので、前記診断処理を途中で停止して（信号ｃ）、通常アクセスの処理を行わせる（信号ａ）。
【０１０２】
（ｂ）において、各信号ａ，ｂ，ｃは、（ａ）と同様に、それぞれ、通常のメモリアクセスについての状態、イネーブル信号のＯＮ／ＯＦＦ、診断のメモリアクセスについての状態を示す。なお信号ｂ、ｃについては途中からの状態のみを示す。
【０１０３】
信号ａで、複数回の通常アクセスの発生により、図中に示すようにアクセス状態すなわちアクセス時間が分布している。監視部８は、現在時から過去の一定期間における通常アクセスの発生におけるアクセス時間に対する非アクセス時間の比（アクセス比）を計算する。計算したアクセス比の値が所定の基準値以上である場合、イネーブル信号をＯＦＦからＯＮにする。そして、（ａ）に示す処理と同様に、イネーブル状態において、通常アクセスにおける非アクセス状態である時に、診断のアクセスを実行する。またこの診断アクセスの際に通常アクセスが発生した場合は（ａ）に示す処理と同様に通常アクセスを優先して処理する。
【０１０４】
＜効果及び変形＞
実施の形態１では、診断手段がメモリ制御部２のハードウェアで実現され、キャッシュ部１内で完結した自動的な診断処理が可能である。制御装置２０内のプロセッサなどによる診断実行指示をキャッシュ部１に対して与える必要は特にない。診断のメモリアクセスが通常のメモリアクセスの空き時間に実行されるように監視部８で制御するので、キャッシュ部１内のパス上でアクセスが競合せず、ＣＨＡ３０などとキャッシュ部１との間のパスの使用権にも影響を与えない。そのため、制御装置２０の通常動作におけるデータ転送の性能を低下させることなく診断を実行して、メモリデバイス３のデータの信頼性を向上できる。診断により、特にメモリデバイス３のデータの故障が発生した際に、そのメモリデバイス３が通常動作で使用される事前に検出することができ、更に、データ故障を検出して訂正可能なエラーの場合に再書き込み処理することで、事前にメモリデータの修復が可能となる。診断機能により、制御装置２０においてキャッシュ部１のメモリデバイス３にライトしたデータについてのリード時の信頼性が向上される。
【０１０５】
なお、本実施の形態では、ＥＣＣを用いてメモリデータの正常性のチェックを行う構成としたが、ＥＣＣ以外の手段でチェックを行う構成としてもよい。また、キャッシュ部１に限らず、制御装置２０に有する他のメモリ、例えば制御情報が格納される共有メモリ部などに対しても、本構成を同様に適用することが可能である。
【０１０６】
また、メモリデータのチェックだけでなく、メモリデバイス３内に誤り検出回路を備えている場合は、これを利用して、メモリコマンド出力部６Ｂからメモリデバイス３に対して入力されるコマンド／アドレスについての正当性のチェックを行うようにしてもよい。チェックの結果をメモリ制御部２へ送信し、エラーがある場合は報告する。例えば、メモリデバイス３内の誤り検出回路でアドレスのエラーを検出した場合に、エラーステータス格納レジスタ１４にエラーステータスを送信して格納する。メモリデバイス３内に設けられた誤り検出回路は、従来技術である。
【０１０７】
また、変形例として、監視部８などの処理により、前記診断のアクセスの実行の頻度や処理時間などを増減する制御を行うようにしてもよい。例えば、監視部８は、メモリアクセス状態や設定に応じて、自動的にまたはキャッシュ部１の外部からの指示などに応じて、診断のアクセスの頻度を増減する。また、キャッシュ部１で、診断のアクセスを制御するだけでなく、診断のアクセスに関係して通常のアクセスを制御するようにしてもよい。例えば、キャッシュ部１で、診断のアクセスと関係して通常のアクセスを、性能がさほど低下しない範囲内で増減する制御を行う。例えば、通常のアクセスを抑制する、実行タイミングをずらして待機させる等の制御を行う。また例えば、キャッシュ部１で、特定のメモリデバイス３に対して、一定期間、通常のアクセスを抑制や待機させると共に、診断のアクセスを増加させて集中的に診断を実行する制御などを行う。
【０１０８】
また、メモリデバイス３に対する診断を自動で実行するのみならず、メモリ制御部２あるいは監視部８などに対する診断指示に応じて同様に診断のアクセスを実行するように構成してもよい。また、診断の頻度やタイプなどをメモリ部１内で監視部８などの持つレジスタに設定して、設定に従って診断の動作を行わせる構成としてもよい。
【０１０９】
（実施の形態２）
次に、本発明の実施の形態２におけるディスクアレイ装置１００について説明する。図８は、実施の形態２のディスクアレイ装置１００における、キャッシュ部１Ｂの詳細構成を示す図である。実施の形態２のディスクアレイ装置１００の基本的な構成は実施の形態１の構成と同様であり、キャッシュ部１Ｂの内部構成と処理が異なる。
【０１１０】
実施の形態２では、実施の形態１で示した診断を行う構成に加え、制御装置２０においてメモリデバイス３を有するキャッシュ部１Ｂ内で、メモリ制御部２Ｂに、通常動作中にメモリデバイス３のデータ入出力に係わる各種特性を変動させてマージン試験を行う機能を構成する。メモリ制御部２Ｂは、メモリデバイス３の診断のために、通常のメモリアクセスが行われていない時間に、メモリデバイス３に対して、マージン試験のためのアクセスを実行する。メモリ制御部２Ｂは、前記診断のためのアクセスで、各種特性に関して動作仕様範囲内で変動させて、その応答を実施の形態１と同様にＥＣＣを用いてチェックするマージン試験を行い、早期に特性の不安定性によるデータ故障を検出する。
【０１１１】
前記マージン試験では、メモリ制御部２Ｂから、メモリデバイス３やメモリ制御部２Ｂに対して、メモリ制御部２Ｂとメモリデバイス３の間のデータ入出力におけるデータ信号及びストローブ信号などの入出力信号に係わる各特性、すなわち、出力信号の振幅、供給電源の電圧、クロック周波数、ＤＬＬ設定といった条件や値を、動作仕様範囲内で変動させる制御を実行する。この制御の応答により、前記変動によるエラーが発生せずに正常動作するかどうかをチェックする。
【０１１２】
図８で、キャッシュ部１Ｂは、主にメモリ制御部２Ｂとメモリデバイス３を有する構成である。キャッシュ部１Ｂで、メモリ制御部２Ｂは、双方向バッファ５、メモリコマンド出力部６Ｂ、コマンド／アドレス解析部７、ＥＣＣ生成部９、ＥＣＣ誤り検出／訂正部１０、ＲＥＡＤ方向のパケットバッファ１１、ＷＲＩＴＥ方向のパケットバッファ１２、パス側セレクタ１５、リライトセレクタ１６、メモリアクセス状態監視部８Ｂ、エラーステータス格納レジスタ１４、ＤＬＬ部１９を有する構成である。更に、キャッシュ部１Ｂは、マージン試験に係わる部分として、クロック生成部１７、電源制御部１８を有する。主に、監視部８Ｂ、メモリコマンド出力部６Ｂ、ＥＣＣ誤り検出／訂正部１０、エラーステータス格納レジスタ１４、ＤＬＬ部１９、クロック生成部１７、電源制御部１８の機能により、実施の形態２における診断機能が構成される。双方向バッファ５などの各要素は、実施の形態１における各要素と同様の機能を有する。実施の形態１と異なる機能については以下で説明する。
【０１１３】
メモリコマンド出力部６Ｂは、監視部８Ｂからの診断要求に基づき、メモリデバイス３に対して診断のためのコマンドとアドレス、及び各種マージン試験に係わる制御のための要求を出力する機能を備えた回路である。メモリコマンド出力部６Ｂは、診断要求に基づき、メモリデバイス３に対して振幅変動要求を出力可能である。また、クロック生成部１７に対して周波数変動要求を出力可能である。また、電源制御部１８に対して電圧変動要求を出力可能である。また、ＤＬＬ部１９に対してＤＬＬ設定変動要求を出力可能である。各変動要求は、独立して出力可能である。
【０１１４】
ＥＣＣ誤り検出／訂正部１０は、診断時に、双方向バッファ５からＤＬＬ部１９を介して転送されたメモリデバイス３の格納データすなわちリードデータについて、ＥＣＣを用いて誤り検出を行ってデータ内容を検証する回路であり、マージン試験に関して、変動制御の結果によるデータ故障を検出して、そのことを示すエラーステータスをエラーステータス格納レジスタ１４に格納する。
【０１１５】
監視部８Ｂは、コマンド／アドレス解析部７から受信するメモリアクセスコマンドに基づき、メモリデバイス３に対するメモリアクセス状態を監視する回路である。また、監視部８Ｂは、メモリアクセス状態の認識や判断に基づき、メモリデバイス３に対するマージン試験に係わる診断のアクセスの実行タイミングを判定し、前記診断のアクセスの実行タイミングで診断要求をメモリコマンド出力部６に対し出力する回路である。前記診断要求は、実行する対象となる診断のタイプに応じたものである。監視部８Ｂで、実施の形態１と同様に、通常のメモリアクセスの空き時間が判断され、診断実行タイミングが決定される。
【０１１６】
クロック生成部１７は、メモリ制御部２Ｂ、メモリデバイス３に供給するクロックを生成する部である。クロック生成部１７は、本診断機能に関して、メモリコマンド出力部６Ｂからの周波数変動要求に従って、各部に対し供給するクロック周波数（図８中の「ＣＬＯＣＫ」）を変動させることが可能な機能を備えている。
【０１１７】
電源制御部１８は、メモリ制御部２Ｂ、メモリデバイス３に対して供給する電源を生成する部である。電源制御部１８は、本診断機能に関して、メモリコマンド出力部６Ｂからの電圧変動要求に従って、各部に対し供給する電源の電圧レベル（図８中の「Ｐ」）を変動させることが可能な機能を備えている。
【０１１８】
ＤＬＬ部１９は、メモリデバイス３からメモリ制御部２Ｂへと供給されたデータ・信号を、一定時間遅延させる機能を担う部である。ＤＬＬ部１９は、遅延素子により、メモリデバイス３からの各信号を同期させる。ＤＬＬ部１９は、メモリデバイス３として主にＤＤＲ−ＳＤＲＡＭ（Double Data Rate - Synchronous DRAM）の制御に際して使用される。また、例えば、ＤＬＬ部１９内には、前記遅延量を決定する設定レジスタを有する構成である。ＤＬＬ部１９は、本診断機能に関して、メモリコマンド出力部６ＢからのＤＬＬ設定変動要求に従って、前記遅延量の設定値を変動させる。
【０１１９】
メモリデバイス３は、メモリ制御部２Ｂの双方向バッファ５との間でのデータ入出力のためのバス（以下、データバス）において、データ信号、ストローブ信号などの信号を出力する。このデータバスにおいて、メモリコマンド出力部６Ｂからの振幅変動要求に従って、出力信号の振幅が変動される。同様に、メモリ制御部２とメモリデバイス３との間のデータバスにおいて、供給電源電圧、クロック周波数、ＤＬＬ設定の変動要求に従って、各特性が変動される。
【０１２０】
また、クロック生成部１７からのクロック周波数の変動や、電源制御部１８からの電圧レベルの変動の処理では、必要に応じて、データ入出力の送受信側となるメモリデバイス３とメモリ制御部２とで、一方側または両側を変動させたマージン試験を行うことができる。
【０１２１】
キャッシュ部１Ｂの構成において、ディスクアレイ装置１００の通常動作中に、メモリデバイス３の格納データについてマージン試験を含む自動的な診断を実行する処理における処理手順について以下説明する。まず、制御装置２０におけるメモリデバイス３に対する通常のメモリアクセスにおいて、実施の形態１の場合と同様に、メモリ制御部２ＢでＥＣＣを用いて誤り検出／訂正処理を行っている。診断のアクセスに関しては、キャッシュ部１Ｂ内で、マージン試験として各特性を変動させて、メモリデバイス３に記憶されているデータについてＥＣＣを用いてデータの正常性のチェックを行う診断処理が自動的に実行される。メモリ制御部２Ｂは、監視部８Ｂの判断に基づき、例えば定期的なタイミングで、診断のアクセスをメモリデバイス３に対して実行する。
【０１２２】
（１）まず、キャッシュ部１ＢでＣパス側からコマンド／アドレスパケットを受信した場合、コマンド／アドレス解析部７での解析によりコマンド／アドレス要求をメモリコマンド出力部６に出力すると共に、監視部８Ｂに対してメモリアクセスコマンドが出力される。
【０１２３】
（２）監視部８Ｂは、コマンド／アドレス解析部７からのメモリアクセスコマンドを受信して、メモリデバイス３についてのメモリアクセス状態を判断、認識する。その結果、通常のメモリアクセスにおける空き時間すなわち非メモリアクセス時間が有り、通常のアクセスと競合しない場合に、メモリコマンド出力部６Ｂに対する診断要求を発行する。診断要求の発行により、キャッシュ部１Ｂ内の論理的なパスを用いた、メモリデバイス３の格納データのチェックのためのアクセスと、マージン試験のためのアクセスとを実行する。
【０１２４】
（３）メモリコマンド出力部６Ｂは、監視部８Ｂからの診断要求に基づき、メモリデバイス３に対して振幅変動要求を送信する。メモリデバイス３は、受信した振幅変動要求に従って、メモリ制御部２Ｂに対するリードデータの出力時に、その出力信号の振幅を変動させる。
【０１２５】
（４）メモリコマンド出力部６Ｂは、監視部８Ｂからの診断要求に基づき、電源制御部１８に対して電圧変動要求を送信する。電源制御部１８は、受信した電圧変動要求に従って、メモリデバイス３とメモリ制御部２Ｂに供給する電源の電圧レベルを変動させる。
【０１２６】
（５）メモリコマンド出力部６Ｂは、監視部８Ｂからの診断要求に基づき、クロック生成部１７に対して周波数変動要求を送信する。クロック生成部１７は、受信した周波数変動要求に従って、メモリデバイス３とメモリ制御部２Ｂに供給するクロックの周波数を変動させる。
【０１２７】
（６）メモリコマンド出力部６Ｂは、監視部８Ｂからの診断要求に基づき、ＤＬＬ部１９に対してＤＬＬ設定変動要求を送信する。ＤＬＬ部１９は、受信したＤＬＬ設定変動要求に従って、信号の遅延量の設定を変動させる。
【０１２８】
（７）メモリコマンド出力部６Ｂは、監視部８Ｂからの診断要求に基づき、メモリデバイス３に対して、メモリデバイス３からデータリードを行うためのコマンド／アドレスを出力する。
【０１２９】
（８）メモリデバイス３では、メモリコマンド出力部６Ｂからのコマンド／アドレスに基づき、指定アドレスの記憶領域から格納データが読み出され、データバスを介してメモリ制御部２Ｂの双方向バッファ５に対して出力される。
【０１３０】
（９）メモリ制御部２Ｂで、前記コマンド／アドレスに応じてメモリデバイス３から双方向バッファ５へと出力されたリードデータを、ＥＣＣ誤り検出／訂正部１０でＥＣＣを用いてチェックする。ＥＣＣ誤り検出／訂正部１０でのチェックで、リードデータにおける誤りを検出した場合は、そのことを示すエラーステータスを、エラーステータス格納レジスタ１４に格納する。更に、前記ＥＣＣ誤り検出／訂正部１０でのチェックにおいて、誤りを検出した場合でその訂正が可能な場合は、当該データを訂正処理し、訂正されたデータを出力すると共に、リライト要求信号をリライトセレクタ１６に対し出力して、ＥＣＣ生成部９を介してメモリデバイス３に対し再書き込みさせる。
【０１３１】
前記マージン試験において、データ故障すなわちメモリ制御部２Ｂでのエラー検出は、特性の条件や値が基準値からずれている場合などに発生し得る。メモリ制御部２Ｂとメモリデバイス３とのデータバスにおける出力信号の振幅などの基準値や動作仕様範囲があらかじめ設計されており、例えば「基準値±１０％」が動作仕様範囲すなわち正常動作が保証される範囲となる。実際の動作レベルが基準値から少しずれている場合でも動作仕様範囲内に収まっている場合はエラー検出無しとなる。マージン試験により各特性の条件や値を変動させてその応答をチェックすることで、動作レベルが動作仕様範囲における基準値から多くずれていてマージンに近いあるいは超える場合などに、ＥＣＣ誤り検出／訂正部１０でエラー検出されることになるので、その場合を不適格として判断可能である。
【０１３２】
このようにして、通常のメモリアクセスが行われていない時間に診断のアクセスを実行してマージン試験が可能であり、各特性の不安定性を検出可能である。また、本機能はメモリ制御部のハードウェアで制御されるため、通常のアクセスにおけるデータ転送の性能も保たれる。
【０１３３】
前記振幅などの各特性についてのマージン試験は、組み合わせて構成や実行が可能である。例えば、前記特性のうち１つのみを診断するための構成を実装したキャッシュ部１Ｂとしてもよい。また、例えば、前記特性のうち複数を診断可能で、１つ以上の特性を選択的に診断可能な構成を実装したキャッシュ部１Ｂとしてもよい。また、前記処理手順（３）〜（６）に示す各変動要求の発行の順番などは任意でよい。
【０１３４】
次に、図９は、実施の形態２の変形例として、図８に示す構成に加え、更に別のタイプのマージン試験を行う構成に対応したキャッシュ部１Ｂの詳細構成を示す図である。
【０１３５】
図９に示す構成は、メモリデバイス３のマージン試験の対象となる特性として、更に、前記データバスにおける出力信号の振幅における閾値レベル、出力バッファ駆動、メモリデバイス３の終端抵抗について変動させるマージン試験を行う構成である。図８の構成と同様に、メモリ制御部２Ｂは、前記診断のためのアクセスで、監視部８Ｂからの診断要求に基づき、メモリコマンド出力部６Ｂから、各特性の条件や値を動作仕様範囲内で変動させる要求（制御信号）を発行して変動制御を行い、その応答を同様にＥＣＣを用いてチェックするマージン試験を行う。
【０１３６】
図９で、キャッシュ部１Ｂの各要素は、図８に示す各要素と同様の機能を備える。加えて、メモリコマンド出力部６Ｂは、監視部８Ｂからの診断要求に基づき、双方向バッファ５に対して閾値レベル変動要求を出力可能である。また、メモリデバイス３に対して出力バッファ駆動変動要求を出力可能である。また、メモリデバイス３の終端抵抗部９１に対して終端抵抗変動要求を出力可能である。
【０１３７】
データバスにおける出力信号の振幅における閾値レベル（基準値レベルともいう）は、双方向バッファ５が設定により決定している。前記閾値レベル変動要求に従って、双方向バッファ５における閾値レベル設定値を変動させる。
【０１３８】
また、データバスにおける出力バッファ駆動は、メモリデバイス３からメモリ制御部２Ｂの双方向バッファ５に対する出力の駆動である。この出力バッファ駆動に応じて出力信号の波形の立ち上がり部分が急峻あるいは緩やかになる。メモリデバイス３で、前記出力バッファ駆動変動要求に従って、出力バッファ駆動を変動させる。
【０１３９】
また、終端抵抗部９１は、メモリ制御部２Ｂとメモリデバイス３に対して接続される、波形歪み防止用の終端抵抗を有する部分である。終端抵抗部９１の終端抵抗は、メモリ制御部２Ｂとメモリデバイス３を接続するバスにおいて反射作用により生じる波形歪みを防止する機能を持つ。終端抵抗部９１は、メモリコマンド出力部６Ｂからの終端抵抗変動要求に従って、その終端抵抗値が可変される。
【０１４０】
キャッシュ部１Ｂで、出力信号の振幅における閾値レベル、出力バッファ駆動、メモリデバイス３の終端抵抗といった各特性について、前記処理手順（１）〜（９）の処理と同様に、マージン試験を実行する。また同様に、各特性についてのマージン試験は、組み合わせて構成及び実行が可能である。
【０１４１】
このように実施の形態２では、メモリデバイス３の各種特性についてのマージン試験を通常動作中に行うことができるので、データ故障の検出率を上げることが可能であり、マージン試験を行わない構成に比べてより信頼性を高めたディスクアレイ装置を提供できる。なお、従来では、ディスクアレイ装置の工場出荷時に行われる試験として、前記キャッシュ部２０１に関して、その温度や電圧などについてその値を変動させて正常動作を確認するマージン試験が行われているが、通常動作時にマージン試験を行う機能を備えたディスクアレイ装置は提供されていない。
【０１４２】
（実施の形態３）
次に、図１０は、本発明の実施の形態３におけるディスクアレイ装置１００の機能ブロック構成及びホスト装置との接続構成を示す。実施の形態３の基本構成は、図２に示す実施の形態１の構成と同様であり、診断機能に係わる構成が異なる。
【０１４３】
実施の形態３のディスクアレイ装置１００では、制御装置２０において、ＣＨＡ３０、ＤＫＡ３４、スイッチ部４、キャッシュ部１Ｃを有し、診断手段を制御装置２０内でキャッシュ部１Ｃとキャッシュ部１Ｃの外部とに跨って配置する構成とする。特に、前記診断手段の主要な機能を担う部分である監視部８に対応した処理部であるメモリアクセス状態監視／制御部（以下、監視／制御部と略称する）８Ｃを、制御装置２０内でスイッチ部４に対して接続される配置で設ける。またあるいは、これと近い構成として、スイッチ部４内に監視／制御部８Ｃを設ける構成としてもよい。監視／制御部８Ｃは、制御装置２０におけるメモリデバイス３に対する診断管理部としての機能を担い、メモリアクセス状態の監視や診断実行タイミングの制御だけでなく、診断に関連した通常のメモリアクセスの制御も行う。
【０１４４】
キャッシュ部１Ｃのメモリ制御部２Ｃは、前記図３に示すキャッシュ部１の構成などと同様の構成であるが監視部８を設けない構成である。メモリ制御部２Ｃは、スイッチ部４及びＣパス側から診断要求を受信して、受信した診断要求がメモリコマンド出力部６に入力され、メモリコマンド出力部６で実施の形態１などと同様に診断のアクセスを実行する。
【０１４５】
制御装置２０において、監視／制御部８Ｃで、キャッシュ部１Ｃ内のメモリデバイス３に対するメモリアクセス、すなわちメモリ制御部２Ｃに対するアクセスについての状態の監視と、診断に係わるメモリアクセスの制御とを行う。監視／制御部８Ｃは、スイッチ部４を監視することで、通常のメモリアクセスの空き時間を認識、判断する。スイッチ部４では、Ｐパス及びＣパスを含むパスにおける使用状態が把握されている。監視／制御部８Ｃは、スイッチ部４から前記パスの使用状態を情報として読み出すことで、メモリアクセス状態を認識、判断できる。監視／制御部８Ｃは、複数のスイッチ部４を介して複数のキャッシュ部１Ｃに対するメモリアクセス状態を監視し、各キャッシュ部１に対する診断実行タイミングを判断する。
【０１４６】
監視／制御部８Ｃは、実施の形態１での処理と同様に、メモリアクセス状態の監視に基づき診断実行タイミングの判断を行う。監視／制御部８Ｃで通常のメモリアクセスの空き時間が判断される。例えば、監視／制御部８Ｃでの処理で、スイッチ部４でのメモリデバイス３に対する通常のメモリアクセスコマンドの受信をもとに、メモリデバイス３に対するリード／ライト等の処理及び時間を考慮して、非メモリアクセス時間であることを確認してから、キャッシュ部１Ｃに対する診断要求をスイッチ部４より発行させる。キャッシュ部１Ｃで、スイッチ部４からの診断要求に対応した診断処理を行わせる。また、制御装置２０内で、ＣＨＡ３０等の処理部からのキャッシュ部１Ｃに対する通常のメモリアクセスの発生頻度やメモリアクセス時間の割合などの計算をもとに、統計的に見てある程度の大きさの空き時間が発生すると予測したタイミングで診断要求を発行するようにしてもよい。
【０１４７】
監視／制御部８Ｃは、実施の形態１の処理と同様に、第１の診断処理として、一定周期の定期的なタイミングで、非メモリアクセス状態である条件で、診断のアクセスを実行する。また第２の診断処理として、現在時から過去の一定期間における通常のメモリアクセスの時間と非メモリアクセスの時間との比などを計算により求め、その値が所定値以上である場合に、非メモリアクセス状態である条件で、診断のアクセスを実行する。
【０１４８】
図１０中に示すように、制御装置２０内において、ＣＨＡ３０などの処理部からキャッシュ部１Ｃのメモリデバイス３までの論理的なパス（通常のパス）があり、当該パスを使用して通常アクセスが行われる。また、本実施の形態３では、スイッチ部４に関連して診断手段を構成した形態であるため、スイッチ部４からメモリデバイス３までの論理的なパス（診断のパス）、すなわちスイッチ部４からメモリ制御部２ＣまでのＣパス及びキャッシュ部１Ｃ内の論理的なパスがあり、当該パスを使用して診断アクセスが行われる。キャッシュ部１Ｃ内のパスは、通常アクセスと診断アクセスとで共用されるが、通常のメモリアクセスの空き時間に診断アクセスを実行する制御を監視／制御部８Ｃで行うことにより、パス上のアクセス競合が避けられるので、通常アクセスの性能が低下しない。
【０１４９】
更に、図１０中で、監視／制御部８Ｃにより、通常のメモリアクセスと診断のメモリアクセスとの制御を行う場合の例を示している。キャッシュ部１Ｃにおいて、オンライン時に、作業者によりメモリデバイス３の増設／交換が行われて新たなメモリデバイス３が接続された時、その直後に、その新メモリデバイス３に対する通常動作と診断動作とにおける各メモリアクセスの頻度を調節する制御を監視／制御部８Ｃとメモリ制御部２Ｃにより行う。また同様の制御を実施の形態１の構成の場合でも実行可能である。
【０１５０】
キャッシュ部１Ｃに新メモリデバイス３が接続されたことが検出された直後に、監視／制御部８Ｃは、新メモリデバイス３に対する通常アクセス抑制と診断強化の制御を実施する。監視／制御部８Ｃは、スイッチ部４に対して要求を発行することにより、一定期間、新メモリデバイス３に対する通常のアクセスを抑制させると共に、診断のアクセスの頻度を増加させて集中的な診断を実行する。当該診断後に、再び通常の制御状態へと戻る。また同様に、監視／制御部８Ｃは、スイッチ部４に対して要求を発行することにより、一定期間、或るメモリデバイス３に対する診断のアクセスの頻度を減少させる制御を実行するようにしてもよい。
【０１５１】
このように実施の形態３によれば、より積極的にメモリデバイス３に対するアクセスを制御することで、効率的な診断を行うことができる。
【０１５２】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
【産業上の利用可能性】
【０１５３】
本発明は、メモリデバイスの診断を行う装置に利用可能である。
【図面の簡単な説明】
【０１５４】
【図１】本発明の一実施の形態におけるディスクアレイ装置の全体のハードウェア外観構成を示す斜視図である。
【図２】本発明の一実施の形態におけるディスクアレイ装置の機能ブロック構成及びホスト装置との接続構成を示す図である。
【図３】本発明の一実施の形態におけるディスクアレイ装置が備える、キャッシュ部の詳細構成を示す図である。
【図４】本発明の一実施の形態におけるディスクアレイ装置のキャッシュ部における、メモリアクセス状態監視部でのメモリアクセス状態の監視と診断実行タイミングの判断に係わるメイン動作の処理を示すフロー図である。
【図５】本発明の一実施の形態におけるディスクアレイ装置のキャッシュ部における、メモリアクセス状態監視部での第１の診断処理を示すフロー図である。
【図６】本発明の一実施の形態におけるディスクアレイ装置のキャッシュ部における、メモリアクセス状態監視部での第２の診断処理を示すフロー図である。
【図７】（ａ），（ｂ）は、本発明の一実施の形態におけるディスクアレイ装置のキャッシュ部における、図４〜図６に示す処理に対応した、通常のアクセスと診断のアクセスとの実行例のタイムチャートである。
【図８】本発明の他の実施の形態におけるディスクアレイ装置が備える、キャッシュ部の詳細構成を示す図である。
【図９】本発明の他の実施の形態におけるディスクアレイ装置のキャッシュ部の変形例として、別のタイプのマージン試験を行う構成に対応したキャッシュ部の詳細構成を示す図である。
【図１０】本発明の更に他の実施の形態におけるディスクアレイ装置の機能ブロック構成及びホスト装置との接続構成を示す図である。
【図１１】本発明の発明者が発明の前提技術として検討した従来のディスクアレイ装置のキャッシュ部の構成例について示す図である。
【符号の説明】
【０１５５】
１，１Ｂ，１Ｃ，２０１…キャッシュ部、２，２Ｂ，２Ｃ，２０２…メモリ制御部、３，２０３…メモリデバイス、４…スイッチ部、５，２０５…双方向バッファ、６，２０６…メモリコマンド出力部、７，２０７…コマンド／アドレス解析部、８，８Ｂ…メモリアクセス状態監視部、８Ｃ…メモリアクセス状態監視／制御部、９，２０９…ＥＣＣ生成部、１０，２１０…ＥＣＣ誤り検出／訂正部、１１，１２，２１１，２１２…パケットバッファ、１３，２１３…バックプレーンボード、１４…エラーステータス格納レジスタ、１５，２１５…パス側セレクタ、１６，２１６…リライトセレクタ、１７…クロック生成部、１８…電源制御部、１９…ＤＬＬ部、２０…制御装置、３０…ホストインタフェース部（ＣＨＡ）、３１，３５…プロセッサ、３２…チャネルインタフェース回路、３３，３７…メモリアクセス制御部、３４…ディスクインタフェース部（ＤＫＡ）、３６…ディスクインタフェース回路、４０…ディスクドライブ、９１…終端抵抗部、１００…ディスクアレイ装置、１１１…基本筐体、１１２…増設筐体、１１３…制御パッケージ、１１４…電源ユニット、１１５…バッテリユニット、１１６…冷却ファン、３００…ホストＣＰＵ。
【図１】
2006134196.tif 000003
【図２】
2006134196.tif 000004
【図３】
2006134196.tif 000005
【図４】
2006134196.tif 000006
【図５】
2006134196.tif 000007
【図６】
2006134196.tif 000008
【図７】
2006134196.tif 000009
【図８】
2006134196.tif 000010
【図９】
2006134196.tif 000011
【図１０】
2006134196.tif 000012
【図１１】
2006134196.tif 000013