(57)【特許請求の範囲】
【請求項１】
ＳＣＳＩバスを占有したままフェーズ遷移が不可能になるハングアップ状態を制御するＳＣＳＩ制御方式であって、
入出力装置（ターゲット）が、
ＳＣＳＩのリセット・コンディションを検出するリセット・コンディション検出手段と、
ＳＣＳＩインターフェイスのフェーズ状態を検出するフェーズ状態検出手段と、
一定時間内にフェーズ遷移が行われるかを判断するフェーズ遷移状態判断手段と、
上位装置（イニシエータ）からのＩ／Ｏプロセス起動により確立し、Ｉ／Ｏプロセスの完了により終了するネクサス状態を検出するネクサス監視手段（ネクサス監視回路）と、
前記フェーズ状態検出手段によるフェーズチェックがバスフリーフェーズ以外で、そのフェーズが一定時間以上フェーズ遷移せず、且つ前記ネクサス監視手段が前記上位装置からのネクサス状態を検出した場合には、該ネクサス状態にある当該入出力装置がハングアップ状態を引き起こしていると判断し、前記上位装置からのリセット指示に従いＳＣＳＩバスの解放によりハングアップ状態を解除すると共に、ＳＣＳＩバスの状態がバスフリーフェーズ以外で、そのフェーズが一定時間以上フェーズ遷移しない状態であっても、前記ネクサス監視手段が前記上位装置からのネクサス状態を検出しない場合には、前記上位装置からのリセット指示を無視し、前記フェーズ状態検出手段によるフェーズチェックがバスフリーフェーズであるか、又は、前記フェーズ状態検出手段によるフェーズチェックがバスフリーフェーズ以外で、そのフェーズが一定時間内にフェーズ遷移した場合には、上位装置からのリセット指示に従いリセットを行う入出力装置制御手段と、を備えた
ことを特徴とするＳＣＳＩ制御方式。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＳＣＳＩ制御方式に関し、特に、ハングアップしていない入出力装置（ターゲット）に対して、既に実行中のＩ／Ｏプロセスが強制的に中断されず、装置としての動作効率を良好にしたＳＣＳＩ制御方式に関する。
【０００２】
【従来の技術】
従来、ＳＣＳＩ（Small Computer Systems Interface）制御方式において、上位装置（以下、イニシエータと記す）がハングアップ状態を検出した場合、ＳＣＳＩインターフェイスのＳＣＳＩリセット信号をアサート（信号が有効な状態）し、ＳＣＳＩリセット・コンディションを生成することで、デイジィ・チェーン接続されている入出力装置（以下、ターゲットと記す）にリセット処理の実行を指示し、ターゲットがＳＣＳＩバスを解放することで、そのハングアップ状態を解除している。
【０００３】
【発明が解決しようとする課題】
しかしながら、この従来の技術には次のような問題点があった。
第一の問題点は、ＳＣＳＩリセット・コンディションの種類が、ほとんどのＳＣＳＩシステムで使用しているハード・リセットコンディション（全ての状態をリセットする）の場合、イニシエータによるＳＣＳＩリセット指示に対して、ＳＣＳＩインターフェイスにデイジィ・チェーン接続されている全てのターゲットがリセット処理を行わなければならず、ハングアップしていないターゲットに対して、既に実行中のＩ／Ｏプロセスが強制的に中断されてしまう問題点があった。
【０００４】
第二の問題点は、第一の問題点同様に、ＳＣＳＩインターフェイスにデイジィ・チェーン接続されている全てのターゲットがリセット処理を行うため、ハングアップしていないターゲットも含めた全てのターゲットに対して、動作モードの再設定処理を行わなければならず、装置としての動作効率の劣化をまねく問題点があった。
【０００５】
そこで本発明の課題は、ＳＣＳＩ制御方式において、ハングアップしていないターゲットに対して、既に実行中のＩ／Ｏプロセスが強制的に中断されず、装置としての動作効率を良好にしたＳＣＳＩ制御方式を提供することである。
【０００６】
【課題を解決するための手段】
前記課題を解決するために本発明は、ＳＣＳＩバスを占有したままフェーズ遷移が不可能になるハングアップ状態を制御するＳＣＳＩ制御方式であって、
入出力装置（ターゲット）が、
ＳＣＳＩのリセット・コンディションを検出するリセット・コンディション検出手段と、
ＳＣＳＩインターフェイスのフェーズ状態を検出するフェーズ状態検出手段と、
一定時間内にフェーズ遷移が行われるかを判断するフェーズ遷移状態判断手段と、
上位装置（イニシエータ）からのＩ／Ｏプロセス起動により確立し、Ｉ／Ｏプロセスの完了により終了するネクサス状態を検出するネクサス監視手段（ネクサス監視回路）と、
前記フェーズ状態検出手段によるフェーズチェックがバスフリーフェーズ以外で、そのフェーズが一定時間以上フェーズ遷移せず、且つ前記ネクサス監視手段が前記上位装置からのネクサス状態を検出した場合には、該ネクサス状態にある当該入出力装置がハングアップ状態を引き起こしていると判断し、前記上位装置からのリセット指示に従いＳＣＳＩバスの解放によりハングアップ状態を解除すると共に、ＳＣＳＩバスの状態がバスフリーフェーズ以外で、そのフェーズが一定時間以上フェーズ遷移しない状態であっても、前記ネクサス監視手段が前記上位装置からのネクサス状態を検出しない場合には、前記上位装置からのリセット指示を無視し、前記フェーズ状態検出手段によるフェーズチェックがバスフリーフェーズであるか、又は、前記フェーズ状態検出手段によるフェーズチェックがバスフリーフェーズ以外で、そのフェーズが一定時間内にフェーズ遷移した場合には、上位装置からのリセット指示に従いリセットを行う入出力装置制御手段と、を備えたことを特徴とする。
【０００７】
このようにすれば、図１において、ＳＣＳＩバスを占有したままフェーズ遷移が不可能になるハングアップ状態において、入出力装置（ＳＣＳＩ規格のターゲット）１０が上位装置（ＳＣＳＩ規格のイニシエータ）２０からのＳＣＳＩリセット・コンディションを検出した際に、デイジィ・チェーン接続されている複数のターゲットのうち、ハングアップ状態のターゲット１０だけがリセット処理を行い、その他のハングアップ状態でないターゲット１０はリセット処理を実行しないことにより、前記ハングアップ状態でないターゲット１０が既にＩ／Ｏプロセス実行中であっても、そのＩ／Ｏプロセスを中断することなくＳＣＳＩバスのリセット処理の実行が可能になり、ハングアップの回復処理におけるシステムへのインパクトを最小限に抑えることができる。
【０００８】
図２において、ＳＣＳＩインターフェース制御回路１２がイニシエータ２０からのＳＣＳＩリセット・コンディションを検出した場合、フェーズ表示回路１３からフェーズチェックを行い、このときのフェーズがバスフリーフェーズ以外で、そのフェーズが一定時間以上フェーズ遷移せず、なお且つネクサス監視回路１４によりイニシエータ２０からネクサス状態であることを確認した場合、そのターゲット１０自身がハングアップ状態に陥っていると判断し、イニシエータ２０からのリセット指示に従いＳＣＳＩバスのリセット処理を行い、ＳＣＳＩバスを解放することでハングアップ状態を解除する。
【０００９】
しかし、前記と同じＳＣＳＩバスの状態（バスフリーフェーズ以外で、そのフェーズが一定時間以上フェーズ遷移しない状態）であっても、イニシエータ２０からネクサス状態でない場合は、たとえイニシエータ２０からのＳＣＳＩリセット信号を受信してもこれを無視する。
こうすることにより、ハングアップ状態のターゲット１０だけがリセット処理を行うことになり、ハングアップしていないターゲットが、既にＩ／Ｏプロセスを実行中であっても、それに影響を与えることなくＳＣＳＩバスのリセット処理を行い、ハングアップ状態を解除することが可能になる。
【００１０】
【発明の実施の形態】
以下、本発明を図示の実施例に基づいて説明する。
図１は本発明を適用するＳＣＳＩ制御システムの全体構成図、図２は該ＳＣＳＩ制御システムを構成する主としてターゲットのブロック図である。
図１を参照すると、本発明のＳＣＳＩ制御方式によるターゲット１０は、イニシエータ２０を含め、複数台がＳＣＳＩバス３０に相互接続するデイジィチェーン接続されている。このシステム構成において、イニシエータ２０がハングアップ状態を検出した場合には、ＳＣＳＩバス３０のＳＣＳＩリセット信号をアサートすることで、ＳＣＳＩリセット・コンディションを生成しＳＣＳＩバスの解放を指示する。
【００１１】
図２を参照すると、本発明のＳＣＳＩ制御方式によるターゲット１０は、このターゲット１０全体の制御を司る入出力装置制御回路１１を有している。
また、ＳＣＳＩインターフェイスの制御を司り、ＳＣＳＩリセット・コンディションを検出した際、入出力装置制御回路１１にそれを通知する「リセット・コンディション検出手段」であるＳＣＳＩインターフェース制御回路１２と、ＳＣＳＩインターフェイスのフェーズの状態表示を行い、入出力装置制御回路１１がＳＣＳＩリセット・コンディション検出の通知を受けた後、周期的に読み出され、ある一定時間内にフェーズ遷移が行われるか、確認するために使用される「フェーズ状態検出手段，フェーズ遷移状態判断手段」であるフェーズ表示回路１３と、イニシエータ２０からのＩ／Ｏプロセス起動により確立しＩ／Ｏプロセスの完了により終了するネクサス状態（ＳＣＳＩにおいてイニシエータとターゲットの関係にある状態）を表示し、自身によりハングアップ状態が引き起こされているのかを判断するための「ネクサス監視手段」であるネクサス監視回路１４と、設定された時間を超えた場合にタイムアウトを通知するもので、ここでは入出力装置制御回路１１がＳＣＳＩリセット・コンディション検出の通知を受けた後、ある一定時間内にフェーズ遷移が行われるか確認するために使用される「フェーズ遷移状態判断手段」を構成するタイマ１５を有している。
【００１２】
次に、図１〜図３を参照して本実施例の動作について説明する。
図３は、本発明によるＳＣＳＩインターフェイスのリセット・コンディション検出からリセット処理を行うか否かを判断するまでの処理フローである。
【００１３】
イニシエータ２０がＳＣＳＩリセット・コンディションを生成した場合、ＳＣＳＩインターフェイス制御回路１２がＳＣＳＩリセット・コンディションを検出（図３−３１）し、入出力装置制御回路１１に通知する。通知を受けた入出力装置制御回路１１は、フェーズ表示回路１３を読み出すことでフェーズのチェックを行い、このときのフェーズがバスフリーフェーズ以外（図３−３２（ｎｏ））で、そのフェーズが一定時間以上フェーズ遷移せず（図３−３３（ｎｏ），３４（ｙｅｓ））、なお且つネクサス監視回路１４によりイニシエータ２０からネクサス状態であることの確認した場合（図３−３５（ｙｅｓ））に、そのターゲット自身がハングアップ状態に陥っていることを認識し、イニシエータ２０からのリセット指示に従いリセット処理（図３−３６）を行うことで、ＳＣＳＩバスを解放しハングアップ状態を解除する。
【００１４】
しかし、上記と同様にバスフリーフェーズ以外（図３−３２（ｎｏ））で、そのフェーズが一定時間以上フェーズ遷移しない状態（図３−３３（ｎｏ），３４（ｙｅｓ））であっても、イニシエータ２０からネクサス状態でない場合（図３−３５（ｎｏ））は、たとえイニシエータ２０からのＳＣＳＩリセット信号を受信（図３−３１）してもこれを無視し、ＳＣＳＩバスのリセット処理（図３−３６）を行わない。
また、バスフリーフェーズの場合（図３−３２（ｙｅｓ））や、バスフリーフェーズでなく（図３−３２（ｎｏ））ても、一定時間以内にフェーズ遷移が行われる場合（図３−３３（ｙｅｓ））には、ＳＣＳＩインターフェイスがハングアップ状態ではないと判断し、イニシエータ２０からのリセット指示に従いＳＣＳＩバスのリセット処理（図３−３６）を行う。
【００１５】
＜公知例のサーチ＞
本願の出願に先立ち、本願出願人が公知例のサーチを行ったところ、本願に類似の公知例として2000−181809号公報（以下、公知例と記す）が検索された。
以下に、本願発明と公知例との相違点を説明する。
▲１▼課題
「ハングアップしているＳＣＳＩデバイスだけを選択的にリセット処理」する点で、本願と公知例とは同一である。
【００１６】
▲２▼本願と公知例の相違点
本願では、図３（フローチャート）に示すように、「ＳＣＳＩフェーズ遷移あるか」＋「タイムアウト」と「上位装置からネクサス中のデバイスであるか」を検出することを組み合わせることにより、ハングアップ状態にある入出力装置のみリセットすることができる。
これに対し公知例は、「上位装置からネクサス中のデバイスであるか」ということは検出しているが、「ＳＣＳＩフェーズ遷移あるか」＋「タイムアウト」という処理を行わず、両者が組合されていない。
公知例のように「ＳＣＳＩフェーズ遷移あるか」＋「タイムアウト」という処理を飛び越えてネクサス状態にあるか調べる処理に移ると、その入出力装置がネクサス状態にない場合に、リセットが行われずそのまま終了してしまう。
【００１７】
この処理では、次の場合に困難を来たす。
即ち、上位装置が全ての入出力装置をリセットする必要があり、かつその時たまたまある入出力装置がＩ／Ｏを実行中の場合、上記の処理経路を経るので、その入出力装置のバスのみリセットされることになり、当初の目的を達成できない。
ところが本願のように、「ＳＣＳＩフェーズ遷移あるか」＋「タイムアウト」という処理がある場合、決められた時間内に該当する入出力装置のＩ／Ｏが終了し（フローチャートの３３．Ｙｅｓ）、該当する入出力装置でなくても（ネクサス状態にある入出力装置でなくても）リセットが実行されることになり、当初の目的を達成できることになる。
【００１８】
詳しく説明すると、以下のようになる。
タイムアウトについては、公知例では「SCSIバス上のBUSY信号がアクティブのまま一定時間が経過した場合、ホストコンピュータが、SCSIバスがバングアップしたと判断し・・・」（公知例・段落番号0018）との記述があるのみで、公知例の発明自体にはタイマを利用した動作はない。
一方、本発明の「SCSI制御方式」では、ホストコンピュータからのRST信号受信後（リセットコンディション検出後）、自身がハングアップを引き起こしたのかを判断するためのタイマを設けてある。このタイマを設けることにより、以下のような効果がある。
【００１９】
即ち、公知例では、SCSIバス上のRST信号を受け入れる条件として、自デバイスがBUSY信号を駆動出力しているか、またはSCSIバス上のBSY信号が非アクティブの場合となっている。
このうち自デバイスがBSY信号を駆動出力している場合にRST信号を受け入れるケースでは、ハングアップ検出によるRST信号ではなく、例えばシステムリセットによるRST信号受信の場合に、そのRST信号がたまたまI/Oやスキャン実行中のSCSIデバイス（BUSY信号を駆動出力している）とぶつかった時に、システムリセットによるRST信号であるにも拘わらず（ハングアップによるRST信号と勘違いして）、そのI/Oやスキャン実行中のデバイスのみのリセットだけしか行われず、その他のデイジーチェーン接続されている全てのSCSIデバイスのリセットが行われないことになる。
【００２０】
しかし、本発明の「SCSI制御方式」では、タイマによりRST信号受信からフェーズ遷移の有無を監視することでこのようなケースはなくなり、ホストからのシステムリセット時にデイジーチェーン接続されている全てのSCSIデバイスのリセット処理を確実に行うことが出来る。
つまり、本発明の「SCSI制御方式」では、タイマを設けたことで、RST信号受信の際にそれがハングアップ状態によるものなのか、それ以外によるのものなのかを確実に判断することができる。
【００２１】
【発明の効果】
以上説明したように本発明によれば、以下の効果を発揮することができる。
第一の効果は、イニシエータ２０がハングアップ状態を検出してＳＣＳＩリセット・コンディションを生成した場合のＳＣＳＩバスを解放するためのリセット処理により、ハングアップしていないターゲットが既に実行中のＩ／Ｏプロセスを中断する必要がなくなり、ハングアップの回復処理におけるシステムへのインパクトを最小限に抑えることができる。
その理由は、イニシエータ２０からのＳＣＳＩリセット・コンディションをターゲットが受けた場合に、デイジィ・チェーン接続されているターゲットのうち、ハングアップ状態のターゲットのみがリセット処理を行い、その他のターゲットはリセット処理を行う必要がないためである。
【００２２】
第二の効果は、イニシエータ２０がハングアップ状態を検出した際の、ＳＣＳＩリセット・コンディション生成に伴うリセット処理実行後に発生してくる動作モードの再設定処理を、ハングアップしていないターゲットに関しては実行する必要が無くなり、装置としての動作効率を向上させる効果がある。
その理由は、第一の効果と同様にＳＣＳＩインターフェイスにデイジィ・チェーン接続されているターゲットのうち、ハングアップしているターゲットのみのリセット処理を行うことにより、ＳＣＳＩインターフェイスのハングアップ状態を解除できるからである。
【図面の簡単な説明】
【図１】本発明を適用するＳＣＳＩ制御システムの全体構成図である。
【図２】本発明の実施例のＳＣＳＩ制御システムを構成するターゲットのブロック図である。
【図３】同実施例における、フローチャートである。
【符号の説明】
１０  入出力装置（ターゲット）
１１  入出力装置制御回路
１２  ＳＣＳＩインターフェイス制御回路
１３  フェーズ表示回路
１４  ネクサス監視回路
１５  タイマ
２０  上位装置（イニシエータ）
３０  ＳＣＳＩバス
【図１】
0003695363.tif 000002
【図２】
0003695363.tif 000003
【図３】
0003695363.tif 000004