(57)【特許請求の範囲】
【請求項１】
リンクを維持するためのダミーデータの転送中にエラーを検出したとき、デバイスリセットを行って前記エラーに対する回復処理を行うとともに、エラー監視期間を設けてエラーの発生の有無を監視する第１のステップと、
前記エラー監視期間にエラーが発生したとき、デバイスリセットを行って前記エラーに対する回復処理を行うとともに、エラー監視期間を設けてエラーの発生の有無を監視する第２のステップと、
前記エラーが発生した前記エラー監視期間が連続した数を計数し、その計数結果に基づいてエラー発生状況を判定する第３のステップとをコンピュータに実行させるためのエラー回復プログラム。
【請求項２】
前記第３のステップは、前記計数結果が所定値を超えたとき、その旨を通知する通知ステップを含むことを特徴とする請求項１に記載のエラー回復プログラム。
【請求項３】
前記第１及び第２のステップは、エラーが発生した場合にエラー割り込みが設定される割り込み要因レジスタに無条件割り込みを設定し、前記回復処理終了後に無条件割り込みを行い、前記割り込み要因レジスタを読み出すことにより、前記エラーの発生の有無を監視することを特徴とする請求項１に記載のエラー回復プログラム。
【請求項４】
外部記憶装置にアクセスするコンピュータに格納されることを特徴とする請求項１に記載のエラー回復プログラム。
【請求項５】
前記外部記憶装置内の異常を検出する検出ステップと、
前記検出ステップにおいて異常を検出したとき、その旨を通知する通知ステップとを含むことを特徴とする請求項４に記載のエラー回復プログラム。
【請求項６】
デバイスリセットが行われた後にエラー監視期間を設けてエラーの発生の有無を監視する監視手段と、
リンクを維持するためのダミーデータの転送中、又は前記エラー監視期間にエラーが発生したとき、前記デバイスリセットを行って前記エラーに対する回復処理を行う回復処理手段と、
前記エラーが発生した前記エラー監視期間が連続した数を計数し、その計数結果に基づいてエラー発生状況を判定する判定手段とを備えたことを特徴とするエラー回復装置。
【請求項７】
外部記憶装置と、前記外部記憶装置にアクセスするコンピュータとを備えた記憶システムにおいて、
前記外部記憶装置は、割り込み要因に応じた割り込みが設定される割り込み要因レジスタと、エラーに対する回復処理の終了、及び無条件割り込みの設定に基づいて無条件割り込みを発生させる無条件割り込み発生部とを備え、
前記コンピュータは、デバイスリセットが行われた後に前記無条件割り込みに基づいて前記割り込み要因レジスタを読み出して前記デバイスリセットから前記割り込み要因レジスタの読み出しまでのエラー監視期間におけるエラーの発生の有無を監視する監視手段と、
リンクを維持するためのダミーデータの転送中、又は前記エラー監視期間にエラーが発生したとき、前記デバイスリセットを行って前記エラーに対する回復処理を行う回復処理手段と、前記エラーが発生した前記エラー監視期間が連続した数を計数し、その計数結果に基づいてエラー発生状況を判定する判定手段とを備えたことを特徴とするコンピュータシステム。
【請求項８】
前記外部記憶装置は、メインコントローラと、前記メインコントローラに光バスによって接続された複数のメモリコントローラとを備えたことを特徴とする請求項７に記載のコンピュータシステム。
【請求項９】
前記外部記憶装置は、半導体ディスク装置であることを特徴とする請求項７に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エラー回復プログラム、エラー回復装置及びコンピュータシステムに関する。
【背景技術】
【０００２】
一般的には、システムに何らかのエラーが発生した場合、割り込みを発生させ、割り込み要因レジスタによりエラーの発生要因を検出する（例えば、特許文献１参照。）。このとき、エラーの発生頻度が一定以上と判断された場合には、致命的エラーとしてエラーを報告する。エラーの発生頻度を簡単に見積もるには、例えば、データ転送中のエラーの場合は、データの再送を行い、その再送が何回連続して失敗したかで判断することができる。
【０００３】
しかし、光通信システムのように、有効なデータを転送していない場合でも、常に何らかのデータ通信を行い、通信リンクを維持しなければ、急なデータ通信要求に迅速に応答できないようなシステムの場合、有効なデータを転送していない場合でも、伝送経路にエラーが発生する場合がある。
【０００４】
有効なデータ転送を行っていない場合のエラーについては、次に有効なデータを転送するタイミングで検出、報告する方法がある（第１の方法）。しかし、この方法では、次の有効なデータを転送するまでの間、致命的エラーに気づかず、システム復旧のための対応が遅れる可能性がある。
【０００５】
他には、ポーリングで定期的に状態を確認する方法がある（第２の方法）。この場合、割り込み処理以外に、別途ポーリング手段が必要となり、制御が複雑になる。
【０００６】
他には、有効なデータの転送を行っていない場合のエラーについても、割り込みを発生させてエラーを通知する方法がある（第３の方法）。この方法では、伝送経路のエラーを迅速に通知することができる。
【特許文献１】特開平９−３０５５４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、上記第３の方法では、有効なデータの転送を行っていない場合でも、エラーの検出はできるが、データの再送はしないため、エラー発生頻度を簡単に見積もることはできない。例えば、エラーの検出回数を単純に計数する方法として、同時にエラー発生の時間間隔も把握する処理部を設けることが考えられるが、このような処理部を上記データ転送中のエラー処理部とは別に用意しなければならず、構成が複雑になる。
【０００８】
従って、本発明の目的は、有効なデータの転送を行っていない場合でも、簡単な構成で、エラー発生頻度を検出することが可能なエラー回復プログラム及びコンピュータシステムを提供することにある。
【課題を解決するための手段】
【０００９】
本発明の一態様は、上記目的を達成するため、以下のエラー回復プログラム、エラー回復装置及びコンピュータシステムを提供する。
【００１０】
［１］リンクを維持するためのダミーデータの転送中にエラーを検出したとき、デバイスリセットを行って前記エラーに対する回復処理を行うとともに、エラー監視期間を設けてエラーの発生の有無を監視する第１のステップと、前記エラー監視期間にエラーが発生したとき、デバイスリセットを行って前記エラーに対する回復処理を行うとともに、エラー監視期間を設けてエラーの発生の有無を監視する第２のステップと、前記エラーが発生した前記エラー監視期間が連続した数を計数し、その計数結果に基づいてエラー発生状況を判定する第３のステップとをコンピュータに実行させるためのエラー回復プログラム。
【００１１】
［２］前記第３のステップは、前記計数結果が所定値を超えたとき、その旨を通知するステップを含むことを特徴とする前記［１］に記載のエラー回復プログラム。所定値に応じて回復不可能な致命的なエラーを通知することが可能となる。
【００１２】
［３］前記第１及び第２のステップは、エラーが発生した場合にエラー割り込みが設定される割り込み要因レジスタに無条件割り込みを設定し、前記回復処理終了後に無条件割り込みを行い、前記割り込み要因レジスタを読み出すことにより、前記エラーの発生の有無を監視することを特徴とする前記［１］に記載のエラー回復プログラム。エラー監視期間は、デバイスリセットから割り込み要因レジスタの読み出しまでである。エラー監視期間は、ほぼ一定しているので、エラーが発生したエラー監視期間が連続した数を計数することにより、エラー発生頻度に類似した計数結果を得ることができる。
【００１３】
［４］外部記憶装置にアクセスするコンピュータに格納されることを特徴とする前記［１］に記載のエラー回復プログラム。
【００１４】
［５］前記外部記憶装置内の異常を検出する検出ステップと、前記検出ステップにおいて異常を検出したとき、その旨を通知する通知ステップとを含むことを特徴とする前記［４］に記載のエラー回復プログラム。外部記憶装置内の異常としては、例えば、冷却ファンの停止、電源電圧変動、装置内温度上昇等がある。外部記憶装置内の異常を検出し、それを通知することにより、データ転送エラーの未然防止が可能となり、外部記憶装置やシステムの停止時間を最小限にすることができる。
【００１５】
［６］デバイスリセットが行われた後にエラー監視期間を設けてエラーの発生の有無を監視する監視手段と、リンクを維持するためのダミーデータの転送中、又は前記エラー監視期間にエラーが発生したとき、前記デバイスリセットを行って前記エラーに対する回復処理を行う回復処理手段と、前記エラーが発生した前記エラー監視期間が連続した数を計数し、その計数結果に基づいてエラー発生状況を判定する判定手段とを備えたことを特徴とするエラー回復装置。
【００１６】
［７］外部記憶装置と、前記外部記憶装置にアクセスするコンピュータとを備えたコンピュータシステムにおいて、
前記外部記憶装置は、割り込み要因に応じた割り込みが設定される割り込み要因レジスタと、エラーに対する回復処理の終了、及び無条件割り込みの設定に基づいて無条件割り込みを発生させる無条件割り込み発生部とを備え、
前記コンピュータは、デバイスリセットが行われた後に前記無条件割り込みに基づいて前記割り込み要因レジスタを読み出して前記デバイスリセットから前記割り込み要因レジスタの読み出しまでのエラー監視期間のエラーの発生の有無を監視する監視手段と、リンクを維持するためのダミーデータの転送中、又は前記エラー監視期間にエラーが発生したとき、前記デバイスリセットを行って前記エラーに対する回復処理を行う回復処理手段と、前記エラーが発生した前記エラー監視期間が連続した数を計数し、その計数結果に基づいてエラー発生状況を判定する判定手段とを備えたことを特徴とするコンピュータシステム。
【００１７】
［８］前記外部記憶装置は、メインコントローラと、前記メインコントローラに光バスによって接続された複数のメモリコントローラとを備えたことを特徴とする前記［７］に記載のコンピュータシステム。光バスによりデータを転送することにより、耐ノイズ性が向上し、高速データ転送が可能となる。
【００１８】
［９］前記外部記憶装置は、半導体ディスク装置であることを特徴とする前記［７］に記載のコンピュータシステム。この構成によれば、高速アクセスが可能となる。なお、外部記憶装置は、半導体ディスク装置の他にハードディスク装置、光ディスク装置等の他の記憶装置でもよい。
【００１９】
上記構成のエラー回復プログラム、エラー回復装置及びコンピュータシステムによれば、エラーが発生したエラー監視期間が連続した数を計数することにより、ポーリング手段やエラー間隔計測手段を用いずにエラー発生頻度に類似した計数値を得ることができる。
【発明の効果】
【００２０】
本発明によれば、簡単な構成で、エラー発生頻度を検出することが可能となる。
【発明を実施するための最良の形態】
【００２１】
［第１の実施の形態］
図１は、本発明の第１の実施の形態に係るコンピュータシステムを示すブロック図である。このコンピュータシステム１は、エラー回復装置としてのホストコンピュータ２と、ホストコンピュータ２にＰＣＩ  Ｅｘｐｒｅｓｓ（登録商標）等のシリアルインタフェース３によって接続された外部記憶装置としての半導体ディスク装置４とを備えて構成されている。なお、同図ではホストコンピュータ２に１つの外部記憶装置が接続されているが、複数の外部記憶装置が接続されていてもよい。
【００２２】
ホストコンピュータ２は、文書作成プログラム等のアプリケーションプログラム２０と、オペレーティングシステム（ＯＳ）２１と、ＯＳ２１に組み込まれているファイルシステム２２と、半導体ディスク装置４を制御するデバイスドライバ２３とを有する。これらのプログラム２０、ＯＳ２１、ファイルシステム２２及びデバイスドライバ２３は、ＨＤＤ等に格納されており、図示しないＣＰＵによって実行される。なお、デバイスドライバ２３等は、ＣＤ−ＲＯＭ等の記録媒体からホストコンピュータ２内に取り込んでもよく、インターネット等のネットワークを介してホストコンピュータ２内に取り込んでもよい。
【００２３】
デバイスドライバ２３は、有効なデータを転送中、及びリンクを維持するためのダミーデータを転送中にエラーが発生した場合に、後述する図３〜図６のフローチャートに示すようなエラー回復処理を行う。
【００２４】
半導体ディスク装置４は、半導体ディスク（ＳＳＤ）コントローラ４０と、ＳＳＤコントローラ４０に内部バス４１により接続された複数のメモリコントローラ４２Ａ，４２Ｂと、それぞれのメモリコントローラ４２Ａ，４２Ｂに接続された半導体メモリからなるメモリ４３Ａ，４３Ｂとを備える。
【００２５】
メモリ４３Ａ，４３Ｂは、ＤＲＡＭ、ＳＲＡＭ等の揮発性メモリや、不揮発性メモリを用いることができる。また、メモリコントローラ４２Ａ，４２Ｂ及びメモリ４３Ａ，４３Ｂは、同図では、２組用いているが、２組に限定されない。
【００２６】
内部バス４１は、光バスにより構成されており、光バスは、例えば、光導波路と、光導波路の光入射側端面に光結合された入射側光ファイバと、光導波路の光出射側端面に光結合された出射側光ファイバと、入射側光ファイバの入射側に配置された電気−光変換器と、出射側光ファイバの出射側に配置された光−電気変換器とを備えて構成されている。なお、内部バス４１は、光バスに限定されず、電気信号線により構成されていてもよい。
【００２７】
ＳＳＤコントローラ４０は、ＤＭＡ(Direct Memory Access)に関する情報（転送元アドレス、転送先アドレス、データ長等）が設定されるＤＭＡレジスタ４１１、及び割り込み要因が設定される割り込み要因レジスタ４１２等の複数のレジスタから構成されたレジスタ群４１０と、割り込み要因レジスタ４１２の内容に基づいて無条件割り込みを発生させる無条件割り込み発生部４２０とを備える。
【００２８】
図２は、割り込み要因レジスタ４１２を示す。割り込み要因レジスタ４１２は、エラー割り込みビット４１２ａ、無条件割り込みビット４１２ｂ、転送終了割り込みビット４１２ｃ、及び予約ビット４１２ｄからなる。
【００２９】
（第１の実施の形態の動作）
次に、本システム１の動作を図３〜図６を参照して説明する。図６は、ホストコンピュータ２の動作を示すフローチャートである。
【００３０】
（１）有効なデータの転送
図３は、有効なデータの転送（データ読み出し）を行う場合のシステム１全体のフローチャートである。
【００３１】
ホストコンピュータ２のアプリケーションプログラム２０がファイルシステム２２を介してファイル読み出しを要求すると、デバイスドライバ２３は、半導体ディスク装置４のＳＳＤコントローラ４０に対し、転送元アドレス等のＤＭＡに関する情報を設定するため、レジスタ書き込みを行い、データ転送開始を指示する。
【００３２】
ＳＳＤコントローラ４０は、レジスタ群４１０のＤＭＡレジスタ４１１にＤＭＡに関する情報を設定し、デバイスドライバ２３からのデータ転送開始の指示により、メモリコントローラ４２に対してデータ読み出し要求を行う。なお、ＳＳＤコントローラ４０とメモリコントローラ４２との間では、有効なデータの転送を行っていない間もリンク維持のためのダミーデータを内部バス４１を介して送受信している。
【００３３】
メモリコントローラ４２は、メモリ４３からデータを読み出し、ＳＳＤコントローラ４０にデータを転送する。ＳＳＤコントローラ４０は、読み出したデータをホストコンピュータ２のメモリに直接転送（ＤＭＡ転送）する。ＳＳＤコントローラ４０は、転送が終了すると、割り込み要因レジスタ４１２の転送終了割り込みビット４１２ｃに「１」を書き込むとともに、デバイスドライバ２３に対し割り込み（転送終了）を行う。
【００３４】
次に、図６に示すように、デバイスドライバ２３は、割り込み要因レジスタ４１２を読み出し（Ｓ１００）、半導体ディスク装置４（自デバイス）の割り込みであることを確認すると（Ｓ１１０：Ｙｅｓ）、ＳＳＤコントローラ４０に対し転送終了割り込みのクリアを設定する（Ｓ１２０）。ＳＳＤコントローラ４０は、割り込み要因レジスタ４１２の転送終了割り込みビット４１２ｃをクリアする。
【００３５】
デバイスドライバ２３は、割り込みがエラー割り込みか否かを判断し（Ｓ１３０）、エラー割り込みでない場合は（Ｓ１３０：Ｎｏ）、データ転送完了割り込みか否かを判断し（Ｓ１４０）、データ転送完了割り込みの場合は（Ｓ１４０：Ｙｅｓ）、ディスク読み出し完了をファイルシステム２２に通知する。ファイルシステム２２は、ファイル読み出し完了をアプリケーションプログラム２０に通知する（Ｓ１５０）。デバイスドライバ２３は、リトライ回数をクリアし（Ｓ１６０）、割り込み処理が終了する。
【００３６】
（２）有効なデータの転送中にエラーが発生した場合
有効なデータの転送中にエラーが発生した場合は、ＳＳＤコントローラ４０は、割り込み要因レジスタ４１２のエラー割り込みビット４１２ａに「１」を書き込む。デバイスドライバ２３は、割り込み要因レジスタ４１２を読み出し（Ｓ１００）、自デバイスであることを確認すると（Ｓ１１０：Ｙｅｓ）、ＳＳＤコントローラ４０に対しエラー割り込みのクリアを設定する（Ｓ１２０）。ＳＳＤコントローラ４０は、割り込み要因レジスタ４１２のエラー割り込みビット４１２ａをクリアする。
【００３７】
デバイスドライバ２３は、割り込みがエラー割り込みか否かを判断し（Ｓ１３０）、エラー割り込みの場合は（Ｓ１３０：Ｙｅｓ）、リトライ回数が規定値以下か否かを判断し（Ｓ１７０）、リトライ回数が規定値以下の場合は（Ｓ１７０：Ｙｅｓ）、リトライ回数をインクリメントし（Ｓ１８０）、デバイスリセット、すなわちエラー状態からの復帰を行う（Ｓ１９０）。デバイスリセットによりレジスタ群４１０の各レジスタがクリアされる。
【００３８】
次に、デバイスドライバ２３は、現在、データ転送中か否かを判断し（Ｓ２００）、データ転送中の場合は（Ｓ２００：Ｙｅｓ）、データを再送する処理を行い（Ｓ２１０）、割り込み処理が終了する。
【００３９】
データ再送後に再びエラーが発生した場合は、上記ステップＳ１００、Ｓ１１０、Ｓ１２０、Ｓ１３０、Ｓ１７０、Ｓ１８０、Ｓ１９０、Ｓ２００、Ｓ２１０が繰返し行われることになる。データ転送中のデータ再送（リトライ）の連続回数が規定値を超えた場合（Ｓ１７０：Ｎｏ）、デバイスドライバ２３は、致命的エラー通知を行う（Ｓ２２０）。致命的エラー通知として、例えば、ＬＥＤランプの点灯、ディスプレイへのメッセージ表示、ブザーによる警報音、スピーカによる音声メッセージによってもよい。
【００４０】
（３）リンク維持のためのダミーデータを転送中にエラーが発生した場合（メモリコントローラ４２からＳＳＤコントローラ４０へのデータ転送中のエラー）
【００４１】
図４は、メモリコントローラ４２からＳＳＤコントローラ４０にリンク維持のためのダミーデータを転送中にエラーが発生した場合のシステム１全体のフローチャートである。
【００４２】
メモリコントローラ４２からＳＳＤコントローラ４０にリンク維持のためのダミーデータを転送中にエラーが発生し、そのエラーをＳＳＤコントローラ４０が検出すると、ＳＳＤコントローラ４０は、割り込み要因レジスタ４１２のエラー割り込みビット４１２ａに「１」を書き込み、デバイスドライバ２３に対して割り込み（エラー発生）を行う。
【００４３】
デバイスドライバ２３は、割り込み要因レジスタ４１２を読み出し（Ｓ１００）、自デバイスであることを確認すると（Ｓ１１０：Ｙｅｓ）、ＳＳＤコントローラ４０に対しエラー割り込みのクリアを設定する（Ｓ１２０）。ＳＳＤコントローラ４０は、割り込み要因レジスタ４１２のエラー割り込みビット４１２ａをクリアする。
【００４４】
デバイスドライバ２３は、割り込みがエラー割り込みか否かを判断し（Ｓ１３０）、エラー割り込みの場合は（Ｓ１３０：Ｙｅｓ）、リトライ回数が規定値以下か否かを判断し（Ｓ１７０）、リトライ回数が規定値以下の場合は（Ｓ１７０：Ｙｅｓ）、デバイスリセットを行う（Ｓ１９０）。デバイスリセットによりレジスタ群４１０の各レジスタがクリアされる。
【００４５】
デバイスドライバ２３は、デバイスリセットを行った後、エラーに対する回復処理を行うとともに、現在、データ転送中か否かを判断する（Ｓ２００）。現在、データ転送中でない場合は（Ｓ２００：Ｎｏ）、ＳＳＤコントローラ４０に対し無条件割り込みを設定する（Ｓ２３０）。ＳＳＤコントローラ４０は、割り込み要因レジスタ４１２の無条件割り込みビット４１２ｂに「１」を書き込む。
【００４６】
ＳＳＤコントローラ４０は、デバイスドライバ２３に割り込み（無条件割り込み）を行う。デバイスドライバ２３は、割り込み要因レジスタ４１２を読み出し（Ｓ１００）、自デバイスであることを確認すると（Ｓ１１０：Ｙｅｓ）、ＳＳＤコントローラ４０に対し無条件割り込みのクリアを設定する（Ｓ１２０）。ＳＳＤコントローラ４０は、割り込み要因レジスタ４１２の無条件割り込みビット４１２ｂをクリアする。
【００４７】
デバイスリセット（Ｓ１９０）から一定期間（割り込み要因レジスタの読み出しまで）内にエラーが発生すると、割り込み要因レジスタの読み出し（Ｓ１００）、割り込みクリア（Ｓ１２０）、リトライ回数が規定値以下であることを確認し（Ｓ１７０：Ｙｅｓ）、リトライ回数インクリメント（Ｓ１８０）、デバイスリセット（Ｓ１９０）、無条件割り込みの設定（Ｓ２３０）が行われる。
【００４８】
そして、上記ステップＳ１７０において、リトライ回数が規定値を超えた場合（Ｓ１７０：Ｎｏ）、デバイスドライバ２３は、前述したように致命的エラー通知を行う（Ｓ２２０）。
【００４９】
（４）リンク維持のためのダミーデータを転送中にエラーが発生した場合（ＳＳＤコントローラ４０からメモリコントローラ４２からにデータ転送中のエラー）
【００５０】
図５は、ＳＳＤコントローラ４０からメモリコントローラ４２にリンク維持のためのダミーデータを転送中にエラーが発生した場合のシステム１全体のフローチャートである。ＳＳＤコントローラ４０からメモリコントローラ４２にリンク維持のためのダミーデータを転送中にエラーが発生し、そのエラーをメモリコントローラ４２が検出すると、エラーをＳＳＤコントローラ４０に通知する。ＳＳＤコントローラ４０は、割り込み要因レジスタ４１２のエラー割り込みビット４１２ａに「１」を書き込む。その後の動作は、図４で説明したのと同様であるので、説明を省略する。
【００５１】
図７は、リンク維持のためのダミーデータを転送中にエラーが３回連続して発生した場合のタイミングチャートを示す。なお、同図中、デバイスリセットから割り込み要因レジスタ４１２の読み出しまでの期間がエラー監視期間である。
【００５２】
リンク維持のためのダミーデータを転送中にエラーＥ１が発生すると、デバイスリセットを行い、エラーＥ１に対する回復処理を行い、無条件割り込みの設定を行う。
【００５３】
割り込み処理は、エラーＥ１に基づくエラー割り込みが発生してからエラーＥ１に対する回復処理が終わるまで行われる。割り込み処理は、割り込み要因レジスタ４１２へアクセスし、割り込み要因レジスタ４１２に設定されている割り込み要因を判定して行われる。割り込み要因レジスタ４１２へのアクセスは、先行している割り込み処理（アクセス）が終了するまで待たされる。割り込み処理が終わると、無条件割り込みが発生し、次の割り込み処理が発生する。
【００５４】
また、デバイスリセットから割り込み要因レジスタ４１２の読み出しまでの一定期間（エラー監視期間）内にエラーＥ２が発生すると、再びデバイスリセットを行い、エラーＥ２に対する回復処理を行い、無条件割り込みの設定を行う。
【００５５】
さらに、デバイスリセットから割り込み要因レジスタ４１２の読み出しまでの一定期間内にエラーＥ３が発生すると、再びデバイスリセットを行い、エラーＥ３に対する回復処理を行い、無条件割り込みの設定を行う。
【００５６】
次に、デバイスリセットから割り込み要因レジスタの読み出しまでの一定期間内にエラーが発生しなければ、エラーの監視が終了する。
【００５７】
このようにエラーが発生したエラー監視期間が連続し、そのエラー監視期間の設定回数が規定値を超えると、致命的エラーの通知がなされるが、連続するエラー監視期間が規定値以下の場合、致命的エラー無しと判断する。
【００５８】
（第１の実施の形態の効果）
第１の実施の形態によれば、リンクを維持するためにダミーデータの転送中にエラーが発生した場合も、ポーリング手段やエラー間隔計測手段を用いずにエラー発生頻度に類似した計数値を得ることができるため、簡単な構成でエラー発生頻度を検出することができる。また、有効なデータ転送中のエラー回復処理とダミーデータ転送中のエラー回復処理とを共通化することができる。
【００５９】
［第２の実施の形態］
図８は、本発明の第２の実施の形態に係るコンピュータシステムのブロック図である。本実施の形態は、第１の実施の形態において、半導体ディスク装置４内に設置され、装置４内の熱を外部へ放出する冷却ファン４７と、半導体ディスク装置４の各部に電源を供給する電源ユニット４８との駆動状態を監視する監視部４６を設けたものである。監視部４６は、冷却ファン４７が停止した場合や、電源ユニット４８からの電源供給が停止したり、供給電圧が低下した場合等に冷却ファン４７又は電源ユニット４８に発生したエラーを回復不可能な致命的エラーとしてＳＳＤコントローラ４０に通知するものである。
【００６０】
なお、半導体ディスク装置４内の異常として、冷却ファン４７や電源ユニット４８の異常に限られず、装置内温度上昇等の他の異常を監視するようにしてもよい。
【００６１】
割り込み要因レジスタ４１２は、エラー割り込みビット４１２ａ、無条件割り込みビット４１２ｂ、転送終了割り込みビット４１２ｃ、予約ビット４１２ｄ、冷却ファンエラー割り込みビット４１２ｅ、電源エラー割り込みビット４１２ｆからなる。
【００６２】
（第２の実施の形態の動作）
図１０は、ホストコンピュータ２の動作を示すフローチャートである。監視部４６が冷却ファン４７又は電源ユニット４８の異常を検知すると、それをＳＳＤコントローラ４０に通知する。割り込み要因レジスタ４１２の冷却ファンエラー割り込みビット４１２ｅ又は電源エラー割り込みビット４１２ｆに「１」を書き込み、デバイスドライバ２３に対して割り込みを行う。
【００６３】
デバイスドライバ２３が割り込み要因レジスタ４１２を読み出し（Ｓ１００）、自デバイスであることを確認すると（Ｓ１１０：Ｙｅｓ）、ＳＳＤコントローラ４０に対しエラー割り込みのクリアを設定する（Ｓ１２０）。ＳＳＤコントローラ４０は、割り込み要因レジスタ４１２のエラー割り込みビット４１２ａをクリアする。
【００６４】
デバイスドライバ２３は、割り込みがエラー割り込みか否かを判断し（Ｓ１３０）、エラー割り込みの場合は（Ｓ１３０：Ｙｅｓ）、リトライ回数が規定値以下か否かを判断し（Ｓ１７０）、リトライ回数が規定値以下の場合は（Ｓ１７０：Ｙｅｓ）、デバイスリセットを行う（Ｓ１９０）。デバイスリセットによりレジスタ群４１０の各レジスタがクリアされる。
【００６５】
デバイスリセットを行った後、エラーに対する回復処理を行う。所定のエラー回復時間を待ってから（Ｓ１９１）、現在、データ転送中か否かを判断する（Ｓ２００）。エラーに対する回復処理には、電源チェック及び冷却ファンチェックが含まれるため、第１の実施の形態よりも長い回復時間を必要とする。
【００６６】
現在、データ転送中でない場合は（Ｓ２００：Ｎｏ）、デバイスドライバ２３は、無条件割り込みを設定する（Ｓ２３０）。ＳＳＤコントローラ４０は、割り込み要因レジスタ４１２の無条件割り込みビット４１２ｂに「１」を書き込む。現在、データ転送中の場合（Ｓ２００：Ｙｅｓ）、データ再送を行う（Ｓ２１０）。
【００６７】
上記ステップＳ１３０において、エラー割り込みでなかった場合は（Ｓ１３０：Ｎｏ）、電源エラー又は冷却ファンエラー割り込みか否かを判断し（Ｓ１３１）、電源エラー又は冷却ファンエラー割り込みでない場合は（Ｓ１３１：Ｎｏ）、データ転送完了割り込みか否かを判断し（Ｓ１４０）、データ転送完了割り込みの場合は（Ｓ１４０：Ｙｅｓ）、ディスク読み出し完了をファイルシステム２２に通知する。ファイルシステム２２は、ファイル読み出し完了をアプリケーションプログラム２０に通知し（Ｓ１５０）、リトライ回数をクリアし（Ｓ１６０）、割り込み処理が終了する。
【００６８】
上記ステップＳ１３１において、電源エラー又は冷却ファンエラー割り込みの場合は（Ｓ１３１：Ｙｅｓ）、デバイスドライバ２３は、第１の実施の形態と同様に致命的エラー通知を行う（Ｓ２２０）。
【００６９】
（第２の実施の形態の効果）
第２の実施の形態によれば、リンクを維持するためにダミーデータの転送中にエラーが発生した場合も、ポーリング手段やエラー間隔計測手段を用いなくてもエラー発生頻度を検出することができるため、簡単な構成でエラー発生頻度を検出することができる。また、電源エラー又は冷却ファンに異常が発生した場合は、他のエラーに優先して致命的エラーを通知することができる。
【００７０】
［他の実施の形態］
なお、本発明は、上記実施の形態に限定されず、その要旨を変更しない範囲内で種々な変形が可能である。
【００７１】
上記実施の形態では、エラー回復処理をソフトウェアによって実現したが、その全体または一部をハードウェアによって実現してもよい。
【００７２】
上記実施の形態では、半導体ディスク装置内でエラーあるいは異常が発生した場合のエラー回復処理について説明したが、シリアルインタフェース上で伝送エラーが生じた場合も本発明は同様に適用することができる。
【図面の簡単な説明】
【００７３】
【図１】本発明の第１の実施の形態に係るコンピュータシステムのブロック図である。
【図２】図１の割り込み要因レジスタの構成を示す図である。
【図３】本発明の第１の実施の形態に係るコンピュータシステム全体の動作を示すフローチャートである。
【図４】本発明の第１の実施の形態に係るコンピュータシステム全体の動作を示すフローチャートである。
【図５】本発明の第１の実施の形態に係るコンピュータシステム全体の動作を示すフローチャートである。
【図６】本発明の第１の実施の形態に係るホストコンピュータの動作を示すフローチャートである。
【図７】本発明の第１の実施の形態に係るホストコンピュータの動作を示すタイミングチャートである。
【図８】本発明の第２の実施の形態に係るコンピュータシステムのブロック図である。
【図９】図８の割り込み要因レジスタの構成を示す図である。
【図１０】本発明の第２の実施の形態に係るホストコンピュータの動作を示すフローチャートである。
【符号の説明】
【００７４】
１  コンピュータシステム
２  ホストコンピュータ
３  シリアルインタフェース
４  半導体ディスク装置
２０  アプリケーションプログラム
２１  オペレーティングシステム
２２  ファイルシステム
２３  デバイスドライバ
４０  ＳＳＤコントローラ
４１  内部バス
４２Ａ，４２Ｂ  メモリコントローラ
４３Ａ，４３Ｂ  メモリ
４６  監視部
４７  冷却ファン
４８  電源ユニット
４１０  レジスタ群
４１１  ＤＭＡレジスタ
４１２  割り込み要因レジスタ
４２０  無条件割り込み      発生部
【図１】
0004821426.tif 000002
【図２】
0004821426.tif 000003
【図３】
0004821426.tif 000004
【図４】
0004821426.tif 000005
【図５】
0004821426.tif 000006
【図６】
0004821426.tif 000007
【図７】
0004821426.tif 000008
【図８】
0004821426.tif 000009
【図９】
0004821426.tif 000010
【図１０】
0004821426.tif 000011