(57)【特許請求の範囲】
【請求項１】
所定の周辺機器とデータ処理装置とを接続するバスに挿入される装置であって、故障時の動作あるいは特定の動作に切り換えるためのあらかじめきめられた送信データに付加される所定のコマンドに対応して、受信した送信データとは異なる条件の送信データを生成するための送信データの生成条件データを記憶した条件データテーブルと、前記データ処理装置および前記周辺機器の動作状態においていずれか一方が前記バス上に送出したコマンドを含む送信データを受けて前記送出したコマンドが前記所定のコマンドに一致するか否かを検出する検出手段と、この検出手段の検出信号を受けて前記送出したコマンドが前記所定のコマンドと一致しているときに前記条件データテーブルの前記所定のコマンドに対応する前記生成条件データを参照して前記バス上に送出した送信データの一部あるいは前記コマンドを他のものに置換した前記異なる条件の送信データを生成してあらかじ決められた所定の手順で前記データ処理装置および前記周辺機器のいずれか他方に対して送出する送信データ置換処理・転送手段と、前記送出したコマンドが一致していないときに前記送出した送信データを前記所定の手順で前記いずれか他方に対して送出する送信データ転送手段とを備えるバスデータ転送装置。
【請求項２】
所定の周辺機器とデータ処理装置とを接続するバスに挿入される装置であって、故障時の動作あるいは特定の動作に切り換えるためのあらかじめきめられた送信データに付加される所定のコマンドに対応して、受信した送信データとは異なる条件の送信データを生成するための送信データの生成条件データを記憶した条件データテーブルと、前記データ処理装置が前記バス上に送出した第１のコマンドを含む送信データを受けて前記第１のコマンドが前記所定のコマンドに一致するか否かを検出する第１の検出手段と、この第１の検出手段の検出信号を受けて前記第１のコマンドが前記所定のコマンドと一致しているときに前記条件データテーブルの前記所定のコマンドに対応する前記生成条件データを参照して前記バス上に送出した送信データの一部あるいは前記第１のコマンドを他のものに置換した異なる条件の送信データを生成してあらかじ決められた所定の手順で前記周辺機器に対して送出する第１の送信データ置換処理・転送手段と、前記第１のコマンドが一致していないときに前記送出した送信データを前記所定の手順で前記周辺機器に対して送出する第１の送信データ転送手段と、前記周辺機器が前記バス上に送出した第２のコマンドを含む送信データを受けて前記第２のコマンドが前記所定のコマンドに一致するか否かを検出する第２の検出手段と、この第２の検出手段の検出信号を受けて前記第２のコマンドが前記所定のコマンドと一致しているときには前記条件データテーブルの前記所定のコマンドに対応する前記生成条件データを参照して前記バス上に送出した送信データの一部あるいは前記第２のコマンドを他のものに置換した異なる条件の送信データを生成して前記所定の手順で前記データ処理装置に対して送出する第２の送信データ置換処理・転送手段と、前記第２のコマンドが一致していないときには前記送出した送信データを前記所定の手順で前記データ処理装置に対して送出する第２の送信データ転送手段とを備えるバスデータ転送装置。
【請求項３】
前記データ処理装置と前記周辺機器とはそれぞれハンドシェークモードで接続され前記置換されるコマンドあるいは前記置換されるデータは、前記データ処理装置あるいは前記周辺機器に誤動作を発生させる請求項２記載のバスデータ転送装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、バスデータ転送装置に関し、詳しくは、データ処理装置（以下ホスト）と、ＳＣＳＩ等で接続される磁気ディスク装置や光ディスク装置などの周辺機器との間で異常動作時の装置の調整や動作評価が容易にできるバスデータ転送装置に関する。
【０００２】
【従来の技術】
従来、ホスト側のインタフェース機構やソフトウェアのデバッグにあっては、直接周辺機器を接続する場合と周辺機器に代わるシミュレータを接続する場合との二つの方法がある。
後者のシミュレータの場合には、通常、周辺機器をシミュレートするシミュレータをホストのバスに接続し、ホストに対しては周辺機器の疑似装置として疑似応答データをホストに送信する疑似動作をさせる。これによりホスト側のインタフェース機構やソフトウェアのデバッグが行われる。
なお、このシミュレータには疑似動作を実行するために必要な疑似応答データやその条件について作成されたシミュレーションプログラムがあらかじめ搭載されている。
【０００３】
【発明が解決しようとする課題】
この種のシミュレータは、周辺機器の各種の動作をシミュレートするためのシミュレーションプログラムの作成が必要であり、多種多様な条件に応じてのプログラムの作成には時間がかかる。しかも、シミュレーションプログラムの内容として、応答装置の正常動作に加えて、故障時の動作についても作成することが要求される。
この点、前者の直接周辺機器を接続する場合は、プログラムの作成が不用である。しかし、応答装置の正常動作に応じて行われる調整や評価で正常時の動作が確認されるだけであって、故障時の動作については通常の状態では確認できない。そのための周辺機器等の応答装置においては、故意に故障を発生させなければならず、周辺機器自体が故障して使用不能になる問題がある。
この発明の目的は、このような従来技術の問題点を解決するものであって、プログラムの作成が容易でデータ処理装置や周辺機器等の故障や異常動作を簡単に実現できるバスデータ転送装置を提供することにある。
【０００４】
【課題を解決するための手段】
このような目的を達成するためのこの発明のバスデータ転送装置の特徴は、所定の周辺機器とデータ処理装置とを接続するバスに挿入される装置であって、故障時の動作あるいは特定の動作に切り換えるためのあらかじめきめられた送信データに付加される所定のコマンドに対応して、受信した送信データとは異なる条件の送信データを生成するための送信データの生成条件データを記憶した条件データテーブルと、データ処理装置および周辺機器の動作状態においていずれか一方がバス上に送出したコマンドを含む送信データを受けて送出したコマンドが前記の所定のコマンドに一致するか否かを検出する検出手段と、この検出手段の検出信号を受けて送出したコマンドが所定のコマンドと一致しているときに条件データテーブルの所定のコマンドに対応する生成条件データを参照してバス上に送出した送信データの一部あるいはコマンドを他のものに置換した異なる条件の送信データを生成してあらかじめ決められた所定の手順でデータ処理装置および周辺機器のいずれか他方に対して送出する送信データ置換処理・転送手段と、送出したコマンドが一致していないときに送出した送信データを前記の所定の手順でいずれか他方に対して送出する送信データ転送手段とを備えるものである。
【０００５】
【発明の実施の形態】
このように、周辺機器とデータ処理装置とを接続するバスにデータ転送装置を挿入して、これに所定のコマンドが発生したときに別途送信データを生成して送信されたデータに換えて生成データを送信する機能を付加することにより、所定のコマンドが発生したときに周辺機器あるいはデータ処理装置の異常動作や故障のときなどに応じたデータを相手方に送出することが可能になる。
前記の別途送信データを生成する機能としては、前記の構成における検出手段とバスデータ生成手段である送信データ置換処理・転送手段と送信データ転送手段とにより行い、検出手段がバス上に送出されたコマンドとあらかじめ決められたコマンドとを比較してこれらが一致したときに、バスデータ生成手段において本来の送信データに換えて別の送信データを送出する。これにより、例えば、故障時の動作を発生させたい場合には、特定のコマンドを登録しておき、このコマンドに対応させて故障のバスデータを生成することができる。
なお、所定コマンドを比較して一致しない場合には、ホストからの送信データと同じデータを生成するか、あるいは受信データそのものを周辺機器に送出する。周辺機器は、送出されたデータに応じた動作を行い、その結果の応答を返す。
ホストからの送信データに対する周辺機器の応答データに対しても前記と同様に所定のコマンドがある場合に送信データを生成してホストへ送信することもできる。このとき、あらかじめ決められたコマンドでないときには、前記と同様に、周辺機器からの送信データと同じデータが生成され、あるいは受信データそのものがホストに送出される。
【０００６】
このように、正常時の動作を周辺機器やデータ処理装置に分担させて周辺機器やデータ処理装置が作り出せない異常時や故障時のデータをデータ転送装置で分担するようにする。そして、前記のコマンド一致条件を設定することで、データ転送装置における送信データの置換処理で簡単に故障送信データ等を生成させるものである。
その結果、周辺機器とデータ処理装置との動作状態にあって故障時の動作あるいは特定の動作に切り換える（前記の置換処理に相当）、送信データに付加されたある特定のコマンドが検出手段で検出されたときには、このバスデータ転送装置は、故障時の動作のあるいは特定の動作に対応した送信データを分担して発生するので、このときのバスデータ転送装置が発生する生成データは、故障時の動作のあるいは特定の動作の送信データみのに限定され、しかも送信データに付加されるあらかじめ決められた所定のコマンドに対応して送信データとして生成すればよいので、通常のシミュレーションプログラムやこれに合わせて故障シミュレーションプログラムを作成する場合よりも簡単にできる。
ところで、前記の検出手段とバスデータ生成手段は、実施例では、ＭＰＵ７がＲＡＭ９に格納されている転送条件判定プログラム９ａと故障データ生成プログラム９ｂを実行することでそれぞれ実現され、比較対照となるコマンドは、条件テーブル９ｃに記憶される。
【０００７】
【実施例】
図１は、この発明のバスデータ転送装置を適用した一実施例の説明図、図２は、条件テーブルの説明図、図３は、送信データ転送処理のタイミングの説明図、図４は、その処理のフローチャート、図５は、データ転送処理の機能説明図である。
図１において、ホスト１と周辺機器の１つである磁気ディスク駆動装置２とは、バスデータ転送装置３を介してバス接続される。４は、ホスト１のＳＣＳＩバス１ａに接続されたハンドシェークモードでホスト１とデータの授受をする入出力インタフェースであり、５は、同様に、磁気ディスク駆動装置２のＳＣＳＩバス２ａに接続されたハンドシェークモードで磁気ディスク駆動装置２とデータの授受をする入出力インタフェースである。
６は、ＭＰＵ７に接続されたバスであって、入出力インタフェース４，５と、ＲＯＭ８、ＲＡＭ９、そして動作状態を表示するディスプレイ１０とを相互に接続している。
【０００８】
ＲＯＭ８には、ＭＰＵ７の制御プログラムが記憶されているほかに、プログラムロードプログラムや、表示プログラム、そしてデータ送受信プログラム８ａ等の基本プログラムが格納されている。ＲＡＭ９には、外部からロードされたプログラムとして転送条件判定プログラム９ａと故障データ生成プログラム９ｂ、そして条件テーブル９ｃとが格納され、さらに、受信データ領域９ｄと送信データ領域９ｅとが設けられている。
なお、以下の説明では、ホスト１から磁気ディスク駆動装置２への送信データの送信を中心に説明する。磁気ディスク駆動装置２からホスト１への送信も同様の手順で行うことになるので、これについては、特別な場合を除いて省略する。
【０００９】
転送条件判定プログラム９ａは、ＭＰＵ７により実行され、インタフェース４を介して得られるＳＣＳＩバス１ａの制御信号に応じて動作し、図３(a)に示されるあらかじめ決められた送受信手順（フェーズ）でホスト１側の送信データを取得してこれ順次をＲＡＭ９の受信データ領域９ｄに転送する。そして、受信データ領域９ｄに転送した送信データのうちのコマンド（ＣＭＤ）受信時点でこれと図２に示す条件テーブル９ｃに登録されたコマンドとを比較してこれらの一致検出をする。これらコマンドが一致したときには、条件テーブル９ｃに記憶された故障データの生成条件を示す所定のデータをＲＡＭ９の作業領域に転送して故障データ生成プログラム９ｂをコールする。
転送条件判定プログラム９ａは、条件テーブル９ｃのコマンドのデータ比較においてこれらが一致しなかったときには、受信データをそのままＲＡＭ９の送信データ領域９ｅに転送してデータ送受信プログラム８ａをコールしてＭＰＵ７により実行させる。
この転送条件判定プログラム９ａは、磁気ディスク駆動装置２の送信データについては、コマンドの送出がないので、磁気ディスク駆動装置２のコマンドの判定に応じてのデータの生成はないが、ホスト１のコマンドに応じてホストに対する磁気ディスク駆動装置２からの応答データに対してこの応答を求めたときのホスト１のコマンドに対応する制御データ欄９４のデータに従って同様にホスト１に対する疑似応答データの生成を行う。
また、コマンドを発生するような周辺機器においては、前記と同様にして周辺機器からの送信データのコマンドの比較を行い、その一致に応じて疑似的に故障データとして生成する。これらは、インタフェース５を介して得られるＳＣＳＩバス２ａの制御信号に応じて動作することになるが、これについての説明は割愛する。
【００１０】
データ送受信プログラム８ａは、データ受信に応じて設定される送信方向の制御コードに応じて送信データ領域９ｅのデータをインタフェース５を介してＳＣＳＩバス２ａへと図３(a)に示す所定の手順で送出する。なお、この場合に、送信方向の制御コードがホスト１側であるときには、送信データ領域９ｅの送信データは、インタフェース４を介してＳＣＳＩバス１ａへと送出される。
ここで、送信方向の制御コードに換えて、送信データ領域９ｅが磁気ディスク駆動装置２への送信専用領域とホスト１への送信専用領域とに分かれて設けられていてもよい。この場合には、ホスト１あるいは磁気ディスク駆動装置２の受信データに応じてそれぞれの専用領域に送信データが設定されることになる。これは、受信データ領域９ｄについても同様にそれぞれに分けられていてもよい。
【００１１】
図３(a)において、ＢＦは、バスが空いている状態を示すバスフリーであり、ＳＥＬは、バスを選択して取得するタイミングフェーズを示す。ＭＯは、バスへのメッセージ出力のタイミングフェーズであり、ＭＩは、バスへのメッセージ入力のフェーズである。ＣＭＤは、バスへのコマンド出力タイミングフェーズであり、ＤＡＴＡは、バスへのデータ出力あるいはバスからのデータ入力タイミングフェーズである。そして、最後にＳＴＳは、現在のステータス、例えば、ビジーとか終了などのステータス情報を発生するタイミングフェーズである。
このうちＲＡＭ９に転送される送信データは、ＭＯフェーズのデータと、ＭＩフェーズのデータ、ＣＭＤフェーズのデータ、ＤＡＴＡフェーズのデータと、ＳＴＳフェーズのデータである。
図２に示す条件テーブル９ｃについて説明すると、所定の比較対照となるコマンドを記憶したＣＭＤ欄９１とこの欄のコマンドに対応してフェーズ欄９２、故障データ欄９３、制御データ欄９４等とからなる。送出されたコマンドがＣＭＤ欄９１のコマンドと一致したときに、それに対応するフェーズ欄９２と故障データ欄９３、制御データ欄９４等のデータがＲＡＭ９のあらかじめ指定された領域に転送される。
【００１２】
故障データ生成プログラム９ｂは、前記のＲＡＭ９の所定の領域に転送されたフェーズ欄９２と故障データ９３、制御データ欄９４等のデータを参照して、故障データを指定されたフェーズにおいて発生する送信データを生成して、ＲＡＭ９の送信データ領域９ｅに転送する。その後、データ送受信プログラム８ａをコールしてＭＰＵ７にデータ送受信プログラム８ａを実行させる。
なお、ここで生成された故障データが挿入されるフェーズとしては、データインフェーズ（ＤＡＴＡ），データアウトフェーズ（ＤＡＴＡ），メッセージインフェーズ（ＭＩ），メッセージアウトフェーズ（ＭＯ），ステータスフェーズ（ＳＴＳ）などである。
また、故障データ生成プログラム９ｂにより生成される故障データの内容としては、故障データ欄８３のデータと制御データ欄９４のデータに応じて、例えば、パリティーエラーデータ（バス上に発生）や、特定のステータスコード（ＳＴＳフェーズに挿入）、故障状態のメッセージコード（ＭＩフェーズに挿入）、オーバーランデータ（ＤＡＴＡに挿入）、アンダーランデータ（ＤＡＴＡに挿入）などであり、故障データのほかに、異常データなども含むものであって、ここでは、これらを故障データで代表している。
【００１３】
このようにして、ホスト１のバス１ａへ送出された送信データに対してそのコマンドがあらかじめ設定した故障を発生させるコマンドであるときに、条件テーブル９ｃ上で一致をみて、この一致に応じて故障データの１つを生成してインタフェース５を介して磁気ディスク駆動装置２のバス２ａへと送出する。そして、同様に、磁気ディスク駆動装置２のバス２ａへ送出された送信データに対しても同様に故障データを生成してインタフェース４を介してホスト１のバス１ａへと送出する。
図３(b)は、バスデータ転送装置３の送信データの受信と受信データの送信のタイミングを説明するものであって、ホスト１から磁気ディスク駆動装置２へデータが送信される場合とメッセージやステータスについての磁気ディスク駆動装置２からのデータ受信とホスト１への転送のタイミングを示している。なお、ＭＯについては、随時挿入されるフェーズであって、図では、これのフェーズが挿入されていない。また、フェーズは、セレクションを除いて周辺機器である磁気ディスク駆動装置２側が早くなる。これは、ＳＣＳＩでは、フェーズの移行制御が周辺機器に許されていないからである。
【００１４】
さて、バスデータ転送装置３がホスト１あるいは磁気ディスク駆動装置２から送信データを受けるときには、例えば、相手方から送出される入力アクノリッジの制御信号に対してインタフェース４（あるいはインタフェース５）が応答信号として入力レディの制御信号を相手方に送出する。その後にバス上のフェーズ変化（ＰＨ変化）を検出して次のフェーズ（ＰＨ）に入ったことを確認し、バスデータ転送装置３がデータの受信をする。
また、バスデータ転送装置３がホスト１あるいは磁気ディスク駆動装置２へ送信データを送出するときには、例えば、出力アクノリッジに対してインタフェース４（あるいはインタフェース５）が応答信号（出力レディ）を相手方に送出した後にバス上のフェーズ変化（ＰＨ変化）を検出して次のフェーズ（ＰＨ）に入ったことを確認して送信データを出力する。
なお、ここでの受信から送信までのタイミングは、コマンド（ＣＭＤ）を受信した状態時点で検出に入り、その結果に応じて行われる。
【００１５】
次にバスデータ転送装置３の動作について図４，図５に従って説明する。なお、図５においては、図４における各処理ステップの符号を参照符号として付してその詳細な説明に換える。
さて、ＭＰＵ７は、バスデータ転送装置３の電源投入後ＲＯＭ８から制御プログラムを読み出して図１の各種手段の制御動作を開始する。
なお、この場合に、例えば、インタフェース４に対して特別なコードが入力されると、ＭＰＵ７は、ロードプログラムを実行してプログラムの本体として転送条件判定プログラム９ａと故障データ生成プログラム９ｂとをＲＡＭ９に記憶し、さらに、条件テーブル９ｃをＲＡＭ９に記憶する。
したがって、このようなプログラムとテーブルとがＲＡＭ９にすでにロードされた状態にあるとして以下説明する。
【００１６】
送信データをホスト１あるいは磁気ディスク駆動装置２から受信すると（ステップ１０１）、インタフェース４は、これを取り込み、転送条件判定プログラム９ａがＭＰＵ７により実行されて送信データをインタフェース４から受けてＲＡＭ９へと転送する（ステップ１０２）。そして、送信データのコマンドと条件テーブル９ｃとの内容（コマンド）とを比較して一致するか否かの判定を行う（ステップ１０３）。なお、このとき、バスの制御信号がホスト１側からの送信であるときには、生成した送信データを磁気ディスク駆動装置２側へと送出し、逆のときには、ホスト１側へと送出する。
ステップ１０３の判定で“不一致”になると、言い換えれば、コマンドが条件テーブル９ｃに登録されていないときには、ステップ１０４に入り、送信データの送出が行われて処理を終了する。
ステップ１０３の判定で“一致”すると、言い換えれば、コマンドが条件テーブル９ｃに登録されているものであると、ＭＰＵ７により故障データ生成プログラム９ｂが実行されて、故障送信データが生成されて（ステップ１０５）、ステップ１０４へと移る。なお、この場合に、一致したコマンドに対応する制御データ欄９４の内容によっては、ホスト１からの送信データはそのまま送出され、これに対する磁気ディスク装置２の応答データに対して故障送信データが生成され、それがホスト１に返されることになる。
【００１７】
その結果、転送条件判定プログラム９ａによるコマンドの比較に応じてコマンドが一致しない場合（磁気ディスク装置２の応答データに対して故障データを生成するときには一致した場合も含む。）には、ホスト１からの送信データはそのまま磁気ディスク駆動装置２へと送出される。また、磁気ディスク駆動装置２からの送信データはそのままホスト１へそれぞれ送信される。
転送条件判定プログラム９ａによるコマンドの条件比較により、コマンドが一致している場合には、第１として、制御データ欄９４の内容に応じてホスト１からの送信データに対して故障データが故障データ生成プログラム９ｂにより生成されて磁気ディスク装置２に送出され、あるいは、第２として、制御データ欄９４の内容に応じて磁気ディスク駆動装置２からの応答データを受信した時にこれに対して故障データ生成プログラム９ｂにより故障データが生成されてホスト１へ故障の応答データが送出される。
その結果、ホスト１と磁気ディスク駆動装置２とはこのバスデータ転送装置３を介在させて通常の応答を行い。その応答結果は、ホスト１のメモリ等に記憶される。
【００１８】
以上説明してきたが、実施例では、故障データあるいは異常データの生成について説明しているが、この発明は、故障データに限定されるものではなく、磁気ディスク駆動装置をはじめとして、各種周辺機器が正常な動作状態にあって、あまり発生し難いような特殊な動作についてもバスデータ転送装置で送信データを発生するようにしてもよいことはもちろんである。
また、実施例においては、前記のコマンドの比較について、コマンドが１回一致で特定の送信データを生成する説明をしているが、これは１回ではなく、同じコマンドが複数回検出されて初めて送信データを生成するような条件付けをして、特定の送信データを生成して置換するようにしてもよいことはもちろんである。
その他、コマンドの一致と他の条件とを複合して、例えば、あるコマンドであるメッセージがあるときに故障データの生成をするようにしてもよい。
【００１９】
【発明の効果】
この発明にあっては、ホストと周辺機器との間にデータ転送装置を接続し、正常時の動作は周辺機器あるいはデータ転送装置に、正常動作以外の動作、例えば、故障時の動作についてデータ転送装置で擬似的に送信データを生成して送出するようにしているので、送信データの生成がそれぞれの装置で分担される。これにより、データ処理装置や周辺機器を破壊することなく任意の条件で故障時等のホストあるいは周辺機器に対する応答動作について送信データが簡単に生成できるようになる。
また、データ転送装置のデータ生成処理プログラムは、単に、特定の条件での故障動作等、限定された動作になるので、プログラムの作成が容易で、その作成工数を削減することができる。
その結果、プログラムの作成が容易でデータ処理装置や周辺機器等の異常動作を簡単にシミュレーションでき、データ処理装置あるいは周辺機器のデバッグや評価が簡単にできる。
【図面の簡単な説明】
【図１】図１は、この発明のバスデータ転送装置を適用した一実施例の説明図である。
【図２】図２は、条件テーブルの説明図である。
【図３】図３は、送信データ転送処理のタイミングの説明図であって、(a)は、ＳＣＳＩの一般的な制御手順の説明図、(b)は、バスデータ転送装置のデータ転送の手順の説明図である。
【図４】図４は、その処理のフローチャートである。
【図５】図５は、データ転送処理の機能説明図である。
【符号の説明】
１…ホスト、１ａ，２ａ…ＳＣＳＩバス、
２…磁気ディスク駆動装置、
３…バスデータ転送装置、４，５…入出力インタフェース、
６…バス、７…ＭＰＵ、８…ＲＯＭ、
９…ＲＡＭ、１０…ディスプレイ。
【図１】
0003655375.tif 000002
【図２】
0003655375.tif 000003
【図３】
0003655375.tif 000004
【図４】
0003655375.tif 000005
【図５】
0003655375.tif 000006