(57)【特許請求の範囲】
【請求項１】
各プロセッサがローカルバスに接続され各ローカルバスがそれぞれバスインタフェース制御部を介してシステムバスに接続され，ローカルバスがインターロック転送を用いシステムバスがタイムスプリット転送を用いるマルチプロセッサシステムのバスインタフェース制御方式において，
バスインタフェース制御部は，ローカルバス監視タイマを備え，
前記ローカルバス監視タイマは，ローカルバスのバスマスタから発行されたコマンドまたはシステムバス側から発行されたコマンドに対応するローカルバス転送開始信号の出力によりタイマイネーブル信号を発生し，アンサ信号に対応するローカルバス転送完了信号の出力によりタイマイネーブル信号を停止するタイマイネーブル制御部と，前記タイマイネーブル制御部からのイネーブル信号の発生により設定された時間監視を開始し，イネーブル信号の停止により時間監視を停止するローカルバス監視タイマ部を備え，
前記ローカルバス監視タイマ部は時間監視を開始した後，設定された時間内にローカルバス転送完了信号が発生しないとローカルバスにエラー応答を要求する信号を出力することを特徴とするバスインタフェース制御方式。
【請求項２】
請求項１において，
バスインタフェース制御部は，ローカルバスから転送されたコマンドを受信してシステムバスへ転送する時起動してシステムバスに接続されたバススレーブからのアンサを監視するシステムバス監視タイマを備え，
前記システムバス監視タイマは一定時間無応答であることを検出するとローカルバスのバスマスタにエラー通知を行うことを特徴とするバスインタフェース制御方式。
【請求項３】
請求項２において，
前記システムバス監視タイマは，起動すると設定された時間をカウントするシステムバス監視タイマ部と，システムバス使用要求信号によりイネーブル信号を発生し，システムバスの転送種別に応じてイネーブル信号を制御するタイマイネーブル制御部とを備え，
前記タイマイネーブル制御部は，転送種別が突き放しモードと非突き放しモードに対応してイネーブル信号を停止させる出力を発生する論理回路を備え，
前記論理回路は，突き放しモードでは，システムバス転送許可信号の発生を検出するとイネーブル信号を停止させ，非突き放しモードでは，システムバスからのアンサ受信か，ローカルバス監視タイマのオーバーフローの出力を検出することにより停止する信号を発生することを特徴とするバスインタフェース制御方式。
【請求項４】
請求項３において，
前記論理回路は，非突き放しモードで，ローカルバスからコマンドを受信している間に，システムバスからのコマンドを受信するとその状態をラッチする手段を備え，この期間にローカルバスがオーバーフローの出力を発生しても前記ラッチ手段によりイネーブル停止信号の発生を禁止することを特徴とするバスインタフェース制御方式。
【請求項５】
請求項３において，
前記システムバス監視タイマ部は，システムバス監視タイマのオーバーフロー信号が発生すると，システムバス転送種別の信号が，突き放しモードの場合突き放しエラー通知信号を外部に発生し，非突き放しモードの時システムバス監視タイマオーバーフロー処理要求信号を発生するタイマ処理選択制御部を備えることを特徴とするバスインタフェース制御方式。
【請求項６】
請求項１において，
前記バスインタフェース制御部は，ローカルバスからのコマンドをシステムバスに送信してアンサ待ちの間にシステムバスからコマンドを受信すると，前記ローカルバスからのアクセスを一時突き返し，バスマスタとしてローカルバスに前記システムバスからのコマンドを発行するか，前記システムバスからのコマンドの発行前にローカルバス上の他のバスマスタからのコマンドが発行されるか，または前記システムバスからのコマンドを発行した後にローカルバス上の他のバスマスタがコマンドを発行するかの，何れかが発生すると，前記ローカルバス監視タイマを起動し，
バススレーブからのアンサが一定時間無応答であることを前記ローカルバス監視タイマが検出すると前記ローカルバスにエラー応答を通知することを特徴とするバスインタフェース制御方式。
【請求項７】
請求項２乃至６の何れかにおいて，
前記バスインタフェース制御部は，ローカルバスからのコマンドをシステムバスに送信してアンサ待ちの間にシステムバスからコマンドを受信すると，前記ローカルバスからのアクセスを一時突き返し，バスマスタとしてローカルバスに前記システムバスからのコマンドを発行した後に，ローカルバスから再度発行されたリトライアクセスに対しシステムバスから無応答であると前記システムバス監視タイマがオーバーフローして前記ローカルバスに対しエラー通知を行うことを特徴とするバスインタフェース制御方式。
【請求項８】
請求項２乃至７の何れかにおいて，
前記バスインタフェース制御部は，ローカルバスから突き放しのライトコマンドをシステムバスに送信するためバスの使用権を要求した時，バスの使用権が与えられないで一定時間を経過してスタックすると前記システムバス監視タイマがオーバーフローを発生し，前記ライトコマンドを発生したバスマスタに対し割り込み信号でエラーを通知することを特徴とするバスインタフェース制御方式。
【請求項９】
請求項２乃至８の何れかにおいて，
前記ローカルバス監視タイマと前記システムバス監視タイマの監視時間を同じにして，タイマの設定を容易にすることを特徴とするバスインタフェース制御方式。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は各プロセッサがそれぞれのローカルバスを経て接続されたバスインタフェース回路を介してシステムバスに接続されたマルチプロセッサシステムにおけるバスインタフェース制御方式に関する。
【０００２】
近年，情報処理装置の処理能力向上要求に対して，一本のシステムバスに複数のプロセッサを接続して，プロセッサ単体の処理能力をあまり上げないでもシステム全体の能力を向上させて，高処理能力と低コストを実現する傾向にある。
【０００３】
ローカルバスがインターロック転送でシステムバスがタイムスプリット転送を用いるマルチプロセッサシステムでは，各ローカルバスに接続するローカルメモリを相互に利用しており，他のローカルメモリにアクセスする場合にシステムバスを介したアクセスを要求し，バス使用権の調停回路（バスアービタ）による調停により使用許可を得た上でシステムバスを使用し，異常状態を検出するために監視タイマを設けている。しかし，この監視タイマでは各種の異常を検出することができないため，その改善が望まれている。
【０００４】
【従来の技術】
従来のマルチプロセッサシステムにおいて，複数のプロセッサ（処理装置）間でデータの転送を行う時に，バススタックの発生を防止するために監視タイマを用いた方式が『監視タイマシステム』としてこの出願と同じ出願人により提案（特願平３−２６７４７３：特開平６−１１０７９５号公報）  されており，その内容は従来の監視タイマシステムとして図２０に示し，以下に概説する。
【０００５】
図２０には，１系と２系の処理装置がシステムバスにより接続され，各処理装置は同じ構成要素を備え，プロセッサ１，２（ＣＰＵ１，２で表す），ローカルメモリ１，２（ＬＭ１，２で表す），ローカルバス１，２及びバスインタフェース制御部１，２が設けられている。バスインタフェース制御部１，２にはそれぞれ送信側監視タイマ１，受信側監視タイマ１と送信側監視タイマ２，受信側監視タイマ２を備えている。
【０００６】
この構成で１系のＣＰＵ１が２系のＬＭ２にアクセスする場合，バスインタフェース制御部１を介して２系のＬＭ２を宛先とするコマンドを発行し，２系のバスインタフェース制御部２はこのコマンドにより１系にステータスコードを返した後，ＬＭ２をアクセスしてデータを読み出し，システムバスを介して１系にアンサコマンドとデータを順次転送する。
【０００７】
監視タイマの動作を説明すると，上記のアクセス時にＣＰＵ１から送信コマンドを発行すると，１系の送信側監視タイマ１が起動しカウントを開始する。同時に送信コマンドがシステムバスを介して２系に送られると，２系のバスインタフェース制御部２はこのコマンドの受信により受信側監視タイマ２を起動してカウントを開始する。受信側装置（２系）が正常なら，送信側監視タイマ１がオーバーフローする前にアンサコマンドが１系に返されてデータ転送を知らせるが，受信側装置に異常が発生すると，アンサコマンドが発行されない。送信側監視タイマ１は受信側監視タイマ２より大きく設定されているので，受信側監視タイマ２がまずオーバーフローし，１系にアンサ信号を返す。もし２系の受信側監視タイマ２も異常の場合は，１系の送信側監視タイマ１がオーバーフローして疑似的なアンサ信号を発生する構成を備えている。これにより送信側装置がバススタックにおちいることを防止している。
【０００８】
図２１はマルチプロセッサシステムの従来例の構成である。
図２１の場合，上記図２０に示す構成と同様に１系と２系の処理装置がシステムバスにより接続され，各系の構成は同じであり，プロセッサ１，２（ＣＰＵ１，ＣＰＵ２），ローカルバス１，２，ローカルメモリ１，２（ＬＭ１，ＬＭ２），バスインタフェース制御部１，２（ＢＩＦ１，ＢＩＦ２で表示）とを備え，この他にＣＰＵ１，ＣＰＵ２から対応するローカルバス１，２の占有権を調停（アービトレーション）するバスアービタ１，２（ＢＡ１，ＢＡ２で表示）及びＢＡ１とＢＡ２からのシステムバスの占有権の調停を行うバスアービタ（ＢＡ３で表示）が備えられる。この例では，ローカルバスのバス転送はインターロック方式で，システムバスのバス転送はスプリット方式を用いる。また，ＢＩＦ１及びＢＩＦ２の内部には図示されないが上記図２０に示す送信側・受信側監視タイマがそれぞれ設けられている。
【０００９】
ローカルバスのインターロック方式のバス転送は，バスマスタ（例えば，ＣＰＵ）がバスに接続されているバススレーブ（例えば，ローカルメモリ）にアクセスする場合，ローカルバスのリード（Ｒｅａｄ）  アクセスを行うコマンドを発行してから，  ローカルメモリがリードデータを出力してＣＰＵがデータを受信して転送が完了するまでバスを占有し，その間は他のエレメントはバスの使用を行わない方式である。
【００１０】
システムバスのタイムスプリット方式のバス転送は，システムバスを所定の時間間隔で分割して占有する。このため，要求されたコマンド（リード，ライト等）の転送と，そのコマンドの実行に対応して発生するアンサデータ（例えば，リードコマンドに対応する読み出しデータ）の転送動作とを同じ時間間隔で実行できないので，分割された異なる時間に行う転送方式である。
【００１１】
上記図２１の構成により，ＣＰＵ１がローカルバス２のＬＭ２にアクセスする要求を発生し，ＣＰＵ２がローカルバス１のＬＭ１に対しアクセスする要求を発生した場合のタイミング動作を，図２２に示すシステム動作のタイムチャートの例に示す。図２２の「Ｌ１バス」，「Ｌ２バス」は各ローカルバス１，２への転送要求に対するＢＡ１，ＢＡ２の調停と転送状態を表し，「Ｓバス（１）」，「Ｓバス（２）」はＣＰＵ１，ＣＰＵ２からシステムバスの要求に対するＢＡ３の調停とそれに対する転送状態を表す。
【００１２】
ＣＰＵ１からローカルバス２への転送を要求してバス使用要求信号ＲＱ１をアサートし，ＢＡ１からの許可信号ＧＲ１がアサートされると，ＣＰＵ１は転送を開始し信号ＲＱ１をネゲート（停止）する。ローカルバス１を介してＢＩＦ１にコマンド（アドレスを含む）が転送されると，ＢＩＦ１はシステムバスの占有を要求する要求信号ＲＱ３を出力する。一方，ＣＰＵ２からもＢＡ２にローカルバス１への転送を要求して許可されるとＢＩＦ２にコマンドが転送される。同時にＢＡ２もシステムバスの占有を要求する信号ＲＱ４を出力すると，ＢＡ３では両方からの要求に対し優先順位に従い，この例ではＣＰＵ１に対し転送許可信号ＧＲ３をＢＡ１に出力する。システムバスは，Ｓバス（１）の転送Ｓ（１）によりコマンドを転送し，ＢＩＦ２に達する。ＢＩＦ２ではバス使用要求信号ＲＱ６を発生し，ＣＰＵ２に対する転送許可信号ＧＲ２を禁止する。
【００１３】
この後，ローカルバス２を介してＣＰＵ１からのコマンドが実行され，ＢＩＦ２にデータがセットされると，ＤＣ６（データ受信完了）が発生し，転送許可信号ＧＲ２（先に禁止されていた）が発生し，ローカルバス２を介してコマンドが転送される。続いてシステムバスを通って転送Ｓ（１）Ｗ（ライトコマンドとアドレス，データ）がＢＩＦ１に入力され，転送Ｌ（１）ＷをＣＰＵが受信して転送を完了する。このようにローカルバスは，インターロック方式でシステムバスがタイムスプリット方式の転送方式を採用しているシステムでは，プロセッサがシステムバスを介して他のローカルメモリに対して書き込みを行う場合には，プロセッサがローカルバスからバスインタフェース制御部を経て書き込みを行うが，その時のローカルバスの制御方法として書き込み完了までローカルバスを開放しない非突き放しモードと，バスインタフェース制御部を介してシステムバスにライトアクセスしたら，ローカルバスを開放する突き放しモードがある。
【００１４】
図２３は従来の非突き放しモードと突き放しモードのバスインタフェース制御部の動作を示し，Ａ．は非突き放しモードの例，Ｂ．は突き放しモードの例である。
【００１５】
図２３のＡ．の非突き放しモードの例について動作の順に従って説明する。
▲１▼最初にローカルバスの転送開始信号ＢＳを受信するとＢＩＦはシステムバスに対してバス使用要求信号ＲＱを出力し，転送許可信号ＧＲがバスアービタ（ＢＡ）から出力するとＲＱ信号の出力を禁止して転送を開始する。データ転送期間は，バスマスタ（この例では，ＢＩＦ）がシステムバス上に転送開始信号ＳＢＳと，転送出力信号ＣＰＴとを各１サイクル出力することにより通知してアンサ待ちとなる。
【００１６】
▲２▼バスアービタＢＡ３は転送終了信号ＣＰＴを受信した時，転送許可信号ＧＲの出力を禁止しバス権の終了を通知する。
▲３▼システムバスのスレーブ装置からアンサを受信すると，アンサ待ち状態を解除し，ローカルバスのデータ受信完了信号ＤＣ（Ｄａｔａ  Ｃｐｍｐｌｅｔｅ）を出力して転送を終了する。
【００１７】
図２３のＢ．の突き放しモードの場合，ローカルバスの転送開始信号ＢＳを受信すると，バスインタフェース制御部ＢＩＦは，直ちに受信完了信号ＤＣを出力すると共に，システムバスへバス使用要求信号ＲＱを出力して，バスの使用を要求する。転送許可信号ＧＲをバスアービタＢＡが出力すると，転送を開始する。この場合，アンサ待ちを行わない。なお，この突き放しモードは，ライト（書き込み）コマンドについて使用され，アンサを必要とするリードコマンドには使用されない。
【００１８】
ここで，コマンドとアンサのフォーマットを説明すると，コマンドまたはアンサは転送開始信号ＳＢＳが出力されている間に転送される先頭のデータであり，コマンドは，転送元ＩＤ，転送先ＩＤ，アンサの要（非突き放しモード）／不要（突き放しモード）及びコマンドの表示（１ビットで表し，コマンドは“０”），アンサはコマンドの場合に含まれるアンサの要／不要の表示が無く，最後にアンサの表示（ビットが“１”の状態）が付される。
【００１９】
【発明が解決しようとする課題】
（１）  問題点１
従来のシステムスタック回避の方法として，  上記図２０に示すように監視タイマをバスインタフェース制御部（ＢＩＦ）に設ける方法があった。しかし，この方法は，ローカルバスからバスインタフェース制御部を介してシステムバスに転送されるコマンドを実行する場合のスタックを検出するための構成を備えているが，ローカルバス（例えば，ローカルバス１）のバスマスタ（例えば，ＣＰＵ１）から同じローカルバスのバススレーブ（例えば，ローカルメモリＬＭ１）にコマンドを送って応答が無い状態が継続した時に監視タイマが起動されていないため，バスマスタは動作ができずローカルバスがスタックするという問題があった。
（２）  問題点２
上記図２１に示すシステム構成で，ローカルバスがインターロック方式，システムバスがタイムスプリット方式によりバスのデータ転送を行う場合，更に別の系の処理装置を追加した場合の問題点を図２４により説明する。図２４，図２５は，３つの系の処理装置を備えた場合の説明図（その１），（その２）であり，上記図２１の構成にＣＰＵ３，ローカルバス３，ローカルメモリ３（ＬＭ３），バスインタフェース制御部３（ＢＩＦ３）が追加されている。
【００２０】
図２４において，ＣＰＵ１がＬＭ２にアクセスし，ＣＰＵ３がＬＭ１にアクセスする場合，ローカルメモリ２に障害が発生して応答が無かった場合，ローカルバス１がスタックする。この場合の動作を以下に説明するが，各処理装置からのシステムバス使用権の優先順位の調停は，優先が高い順にＲＱ３（ＣＰＵ１），ＲＱ８（ＣＰＵ３），ＲＱ４（ＣＰＵ２）の順である。
【００２１】
１）  ＣＰＵ１がＬＭ２にアクセスし，ＣＰＵ３がＬＭ１にアクセスする場合，ＣＰＵ１がＢＡ１にバス使用要求信号ＲＱ１を出力し，ＣＰＵ３がＢＡ４にバス使用要求信号ＲＱ７を出力する。ＢＡ１は信号ＲＱ１に対し転送許可信号ＧＲ１を出力し，システムバスの使用権を要求する信号ＲＱ３を出力する。ＣＰＵ１は転送許可信号ＧＲ１に応じローカルバス１からデータをＢＩＦ１に送出する。同様にＢＡ４はＲＱ７に対する転送許可信号ＧＲ７を出力すると共に要求信号ＲＱ８を出力する。ＣＰＵ３は転送許可信号ＧＲ７を受け取るとローカルバス３へデータをＢＩＦ３に送出する。
【００２２】
２）  次にＢＡ３はシステムバスの使用要求信号ＲＱ３，ＲＱ８に対し優先順位が高いＲＱ３の要求を受付け，ＧＲ３を出力する。その結果，ＢＩＦ１のデータがシステムバスに送信される。これをＢＩＦ２が受信し，ＬＭ２に対しＣＰＵ１からのコマンドを送信する。同時にシステムバスでは，ＢＩＦ１の転送が終了してバスが開放されるので，ＢＡ３はＢＡ４からの要求信号ＲＱ８を受付け，転送許可信号ＧＲ８をＢＡ４に出力する。これによりＢＩＦ３は，システムバスにＣＰＵ３からのデータを転送する。
【００２３】
３）  ＢＩＦ１がデータを受信しＬＭ１にＣＰＵ３からのコマンドを送信するため，ＣＰＵ１のバス使用権を開放するためにＢＡ１にローカルバス使用禁止要求信号ＲＱ５を出力する。ＢＡ１はこれに応じてＧＲ１の出力を停止する。一方，ローカルバス２に送信されたデータはＬＭ２が受信し，正常であればコマンドに対するアンサを送信するが，ＬＭ２に障害があって無応答であったとする。
【００２４】
４）  ＢＩＦ１はローカルバス１が上記３）により開放されたので，ＣＰＵ３からのコマンドを送信する。ＬＭ１はそのコマンドを受信し，アンサをＢＩＦ１に送信し，同時にＢＡ１はシステムバスへの転送を検知して要求信号ＲＱ３を出力する。ＢＡ３は要求信号ＲＱ３を受信すると転送許可信号ＧＲ３を出力し，ＢＩＦ１はシステムバスにアンサを出力する。
【００２５】
５）  ＢＩＦ３はシステムバスからアンサを受信すると，そのアンサをローカルバス３に送信し，ＣＰＵ３が受信するとＣＰＵ３は実行した命令を完了する。同時に，ローカルバス１ではＬＭ１へのアクセスが完了したので，バスが開放され，ＣＰＵ１から上記３）で一旦取り止めたコマンドが送信され，  ＣＰＵ１  はＬＭ２からのアンサ待ちの状態になり，応答がないとＬＭ１，２はスタックする。
【００２６】
ここで，上記図２０に説明した監視タイマが動作し，ローカルバス２のＢＩＦ２の受信側監視タイマがオーバーフローしてＬＭ２の異常状態を検出し，コマンドが正常に実行されなかったことを表すアンサをＢＩＦ２が発生し，ＢＩＦ１がこれを受信してＣＰＵ１に転送する。ＣＰＵ１はアンサを受け取り，アクセスを終了する。この場合，バスのスタックを回避することができる。
【００２７】
６）  上記１）〜５）の動作はＣＰＵ３がＬＭ１に１回アクセスした場合であるが，ＣＰＵ１からの上記再度のコマンドを送信している状態で，ＣＰＵ３がＬＭ１に対して連続してアクセスした場合，ローカルバス３を使用するため要求信号ＲＱ７がＢＡ４に出力される。ＢＡ４はこれに応じてＲＱ８を出力し，ＢＡ３が許可信号ＧＲ８を出力し，ＢＩＦ３がシステムバスにコマンドを送出する。
【００２８】
図２５はこの時の各部の状態を表し，太線は各制御信号（ＲＱ，ＧＲ）が出力していることを表す。点線はコマンド（データ）の転送状態を表す。
この後，上記３）〜５）と同様の動作が行われるが，  ＣＰＵ３からのアクセスが連続して発生した場合のバス監視タイマは，ＢＩＦ２で送信側監視タイマがオーバーフローし（上記５）と同じ動作）  ，ＢＩＦ２がエラーを通知するアンサを出力しようとして要求信号ＲＱ６をＢＡ２に出力する。ＢＡ２はＢＡ３に要求信号ＲＱ４を出力する。この時，システムバスはＢＩＦ３の転送により使用されているか，ＢＡ４からの要求信号ＲＱ８が出力されている状態であり，優先順位によりＢＡ３はＲＱ４の要求に対する許可を与えられないのでＣＰＵ１に異常状態を通知できない。また，ローカルバス１でのＢＩＦ１の受信側監視タイマは，ＣＰＵ１からのコマンドを受信した時点で起動するが，ＣＰＵ３からコマンドを受信するために一旦アクセスを取り止めるのでタイマが停止する。ＣＰＵ３からのアクセスが終了するとＣＰＵ１から元のアクセスを受信してタイマが再起動する。しかし，タイマがオーバーフローするより短い間隔で，ＣＰＵ３がＬＭ１に連続してアクセスするといつまでも受信側監視タイマがオーバーフローすることができない。従って，最初のＣＰＵ１からのアクセスが完了することができないためバスがスタックするという問題がある。
（３）  問題点３
図２６は突き放しモードにおける問題の説明図である。図２６において，ＣＰＵ１がＬＭ２に突き放しモードで転送を行う場合，ＲＱ１をＢＡ１へ出力してローカルバス１の使用を要求し，転送許可信号ＧＲ１が発生すると，ＣＰＵ１はローカルバス１に突き放しモードでＢＩＦ１へコマンドを送信する。ＢＩＦ１は突き放しモードを検出し転送完了信号（アンサ）をＣＰＵ１へ通知し転送を完了する。この後，ＢＡ１が要求信号ＲＱ３をＢＡ３に出力した時，ＢＡ３に障害が発生するとＧＲ３が出力されない。この場合，ＢＩＦ１はシステムバスにコマンドを送出することができなくなり，ＢＩＦ１の受信側監視タイマはＣＰＵ１からのコマンドを受信して起動するが，突き放しモードの場合は転送完了信号（アンサ）を即座にＣＰＵ１へ返送するので，この時点でタイマが停止してしまう。すると，突き放しモードのコマンドが転送できずバスがスタックする。しかし，ＣＰＵ１は正常に転送が行われているように見えてしまい，スタックが検出できないという問題があった。
【００２９】
本発明の第１の目的は上記問題１を解決し，コマンドがシステムバスを介して送受信される場合だけでなくローカルバス上のコマンドを全てタイマにより監視してスタックを検出して防止できるバスインタフェース制御方式を提供することである。
【００３０】
本発明の第２，第３の目的は上記問題２及び問題３を解決することができるバスインタフェース制御方式を提供することである。
【００３１】
【課題を解決するための手段】
図１は本発明の基本構成図である。
図１において，１はバスインタフェース制御部（ＢＩＦ），２はローカルバス，３はシステムバスである。
【００３２】
バスインタフェース制御部１において，１０ａ〜１５ａはローカルバスのコマンドを受信してシステムバスへの転送制御を行うための各部であり，１０ｂ〜１５ｂはシステムバスからのコマンドを受信してローカルバスへの転送制御を行うための各部である。図中，１０ａ，１０ｂは受信用のバッファ，１１ａ，１１ｂは送信用ＦＩＦＯメモリ，１２ａ，１２ｂは送信用のバッファ，１３ａ，１３ｂは受信制御部，１４ａ，１４ｂはＦＩＦＯ制御部，１５ａ，１５ｂは送信制御部である。１６は本発明により設けられたローカルバス監視タイマ，１７は本発明により設けられたシステムバス監視タイマである。
【００３３】
受信制御部１３ａはローカルバス２からシステムバスへの送信データの受信判定を行い，ＦＩＦＯ制御部１４ａはこの判定に基づいてバッファ１０ａへのアドレス，データを送信用ＦＩＦＯメモリ１１ａへ書き込む制御を行う。送信制御部１５ａはＦＩＦＯ制御部１４ａの制御による送信用ＦＩＦＯメモリ１１ａへの書き込みを検知すると，送信用ＦＩＦＯメモリ１１ａに書き込まれたアドレス，データを読み出してバッファ１２ａを介してシステムバス３へ送出する制御を行う。
【００３４】
受信制御部１３ｂはシステムバス３からの受信データ（コマンドを含む）を受信すべきか否かを判定し，ＦＩＦＯ制御部１４ｂはこの判定に基づいてバッファ１０ｂのデータを送信用ＦＩＦＯメモリ１１ｂに書き込む。送信制御部１５ｂは送信用ＦＩＦＯメモリ１１ｂに書き込まれたデータを読み出してバッファ１２ｂを経てローカルバス２へ送出する。
【００３５】
図１のローカルバス監視タイマ１６，システムバス監視タイマ１７が従来と相違する点は，従来の受信監視タイマはシステムバスからバスインタフェース制御部１で受信され，ローカルバスに転送されるコマンドに対して起動されるものであった。また，送信監視タイマはバスインタフェース制御部から，システムバスにコマンドを送信する時起動される構成を備えており，共にローカルバスのスタック状態を監視する（送信監視タイマはシステムバスのスタック状態も監視する）ものであったが，本発明のローカルバス監視タイマ１６は，バスインタフェース制御部でローカルバスの入力に直接接続され，バスインタフェース制御部１で受信判定されたコマンドだけでなく，バスに出力されたバス起動信号によってタイマを起動し，バスに出力された転送完了信号によってタイマを停止する。タイマがオーバーフローすると送信制御部１５ｂからエラー応答をローカルバス２から出力する。これにより，システムバスへ送信するコマンドだけでなく，バスインタフェース制御部１を介することなくローカルバス２を介して実行されるコマンド（同じ処理装置内のＣＰＵからメモリへのアクセス等）に対してもタイマによる監視を行うことができる。この構成により上記問題点１を解決することができる。
【００３６】
また，本発明のシステムバス監視タイマ１７は，バスインタフェース制御部１でローカルバスからのコマンドを受け取って，システムバス３へコマンドを送信する時起動を行い，システムバス３からアンサを受信した時停止し，オーバーフローの場合はローカルバスに対し状態を通知する。但し，システムバス転送種別は，非突き放しモードか突き放しモードの２つの転送があり，非突き放しモードの場合は転送されるコマンドに対するアンサが返送されるアクセスなので，アンサ受信完了信号が受信制御部１３ｂに入力すると，システムバス監視タイマ１７がリセットされる。アンサが返ってこないでオーバーフローすると送信制御部１５ｂからローカルバス２へエラー応答（アンサ）を通知する。
【００３７】
突き放しモードの場合は，アンサが返ってこないので，システムバス３の使用要求（バスアービタ図２１のＢＡ１からＢＡ３へのＲＱ３）を行った時にタイマを起動して，その後にシステムバス占有の許可が発生するとタイマが停止する構成を備える。
【００３８】
また，ローカルバス監視タイマ１６はローカルバスの転送開始信号で起動され，そのコマンドがシステムバスに転送されるとシステムバス監視タイマ１７が起動されるため，二重にタイマが動作を開始する。ローカルバスの監視タイマがオーバーフローした時は，システムバスのタイマもタイマオーバーフローして二重にエラー応答するのを防ぐため，システムバス監視タイマ１７を停止させる入力としてローカルバス監視タイマ１６からのオーバーフロー出力が供給される。
【００３９】
上記問題点２で述べたように，ローカルバス２からコマンドを受信している間に，システムバス３から別の処理装置からのコマンドを受信すると，一旦アクセスを取り止めて，バスインタフェース制御部１からローカルバス２にコマンドを送信する。この時，転送先のバススレーブ（例えば，ローカルメモリ）からの応答がないとローカルバス監視タイマ１６がオーバーフローしてスタック状態から開放されるが，タイマのオーバーフローでシステムバス監視タイマ１７が停止してしまうと，先に出力したコマンドのアンサ無応答が検出できなくなる。この状態を防ぐため，受信制御部１３ａでコマンドを受信した状態を保持する出力と，送信制御部１５ｂでコマンドを送信した状態を保持する出力とを発生して，両者の信号が発生している期間にローカルバス監視タイマ１６がオーバーフローするとシステムバス監視タイマ１７が停止するのをマスクする。
【００４０】
また，上記問題点３のような場合，すなわち突き放しモードでローカルバス２からのコマンドを受信した後，システムバス３の使用要求を発生した時バスアービタＢＡ３からの転送許可が発生しないと，システムバス監視タイマ１７がオーバーフローするが，突き放しモードではコマンドを受信した時に直ちにアンサが返されるので，エラー応答ができないので，突き放しエラー通知信号を外部に出力する。これにより問題点３を解決する。
【００４１】
【発明の実施の形態】
図２はローカルバス監視タイマ（図１の１６）の構成を示し，図中，１６０はタイマイネーブル制御部，１６１はローカルバス監視タイマ部である。また，図３はタイマイネーブル制御部（１６０）の説明図であり，Ａ．にその構成が示され，Ｂ．にタイムチャートの例を示す。
【００４２】
図２及び図３を用いてローカルバス監視タイマの動作を説明する。
図２のローカルバス監視タイマ部１６１は，カウンタ（図示省略）で構成され，予め設定されたタイマ設定値がローカルバス監視タイマ部１６１のデータ端子Ｄへ供給されており，ローカルバス転送開始信号（ＢＳ）が発生して，ローカルバス監視タイマ部１６１のロード端子ＬＤを駆動すると，データ端子Ｄのタイマ設定値が前記カウンタにロードされカウンタの初期値が設定される。
【００４３】
一方，タイマイネーブル制御部１６０は，図３のＡ．に示すようにＲＳ（セット・リセット）型のフリップフロップ回路（ＦＦで表示）で構成され，Ｂ．に示すようにローカルバス転送開始信号ＢＳが発生するとローカルバスクロックのタイミングによりセットされ，セット出力としてカウンタイネーブル信号ＥＮが発生する。このカウンタイネーブル信号ＥＮが図２のローカルバス監視タイマ部１６１の端子ＥＮへ供給されるとカウンタの動作が開始される。ローカルバス監視タイマ部１６１のカウンタの停止条件は，ローカルバスからローカルバス転送完了信号ＤＣが入力することであり，この信号が入力するとローカルバスクロックに同期して図３のＡ．のフリップフロップ回路がリセットされ，カウンタイネーブル信号ＥＮが無効となり，ローカルバス監視タイマ部１６１のカウンタのカウントが停止する。
【００４４】
もし，ローカルバスからローカルバス転送完了信号ＤＣが入力されないと，そのままカウンタがカウントを続け，タイマ設定値に達すると，図２のローカルバス監視タイマ部１６１の出力端子からカウンタオーバーフロー信号（ＯＶＦ）が発生する。この信号はローカルバス監視タイマＯＶＦ処理要求信号となって，上記図１の送信制御部１５ｂに入力され，ローカルバスに出力されたコマンドに対する送信先の応答が得られなかった代わりにローカルバス転送完了信号ＤＣを出力してローカルバスの転送を完結させる。また，カウンタオーバーフロー信号（ＯＶＦ）はシステムバス監視タイマへも供給される。
【００４５】
図４はシステムバス監視タイマ（図１の１７）の構成を示す。図中，１７０はタイマイネーブル制御部，１７１はシステムバス監視タイマ部，１７２はタイマ処理選択制御部である。また，図５はタイマイネーブル制御部１７０の構成を示し，図６はタイマ処理選択制御部１７２の構成を示す。
【００４６】
図４のシステムバス監視タイマ部１７１は，カウンタ（図示省略）で構成され，予め設定されたタイマ設定値がデータ端子Ｄに供給されており，システムバス使用要求信号ＲＱが発生するとロード端子ＬＤが駆動されてタイマ設定値が前記カウンタに設定される。この時，図５に示すタイマイネーブル制御部１７０からイネーブル信号ＥＮが発生してシステムバス監視タイマ部１７１のイネーブル端子ＥＮを駆動して設定されたタイマ設定値のタイマ（カウント）動作が開始される。
【００４７】
システムバス監視タイマの停止条件（イネーブル信号ＥＮがオフになる条件）は，システムバスへの転送方式の違いにより異なり，図５を用いて説明する。
図５はタイマイネーブル制御部（図４の１７０）の構成であり，図５において，１７００はＤ型のフリップフロップ回路（ＦＦ），１７０１〜１７０３はセットリセット型のフリップフロップ回路（ＦＦ），ａ〜ｇはアンドまたはオアの論理ゲートである。
【００４８】
システムバス使用要求信号ＲＱが発生した時，ローカルバスクロックに同期してＦＦ１７００の信号に同期してアンドゲートａを通ってから発生した信号によりＦＦ１７０１がセットされるとシステムバスタイマのイネーブル信号ＥＮが発生する。
【００４９】
この時のシステムバス転送種別（突き放しモードか非突き放しモード）の信号は，上記図１の送信制御部１５ａによりコマンド内のアンサ要または不要の表示を識別して，突き放しモード（または突き放しアクセス）の場合は，“１”，非突き放しモードの場合は“０”が出力される。
【００５０】
突き放しモードの場合（システムバス転送種別信号が“１”の場合）は，転送されるコマンドに対するアンサを期待しないため，システムバス使用要求信号ＲＱが出力されてからシステムバス転送許可信号ＧＲが出力されるまでの期間をカウントする。この場合，システムバス転送許可信号ＧＲが出力されると，アンドゲートｂ，オアゲートｇを介してＦＦ１７０１をリセットして，システムバスタイマイネーブル信号ＥＮが停止する。
【００５１】
非突き放しモードの場合（システムバス転送種別信号が“０”の場合），アンサが返送されるアクセスなので，上記図１の受信制御部１３ｂによりシステムバスからアンサを受信完了した時に発生するアンサ受信完了信号ＣＰＴが入力すると，図５のオアゲートｅ，アンドゲートｆを介してＦＦ１７０１をリセットする信号が発生し，システムバスタイマイネーブル信号ＥＮを停止させる。
【００５２】
上記問題点２について説明した場合，すなわちローカルバスからコマンドを受信している間に，システムバスから別の処理装置からのコマンドを受信した場合，一旦アクセスを取り止めて，バスインタフェース制御部（ＢＩＦ）から，ローカルバスにコマンドを送信する。この時，転送先のバススレーブ（例えば，ローカルメモリ）から応答が無い場合には，ローカルバスの監視タイマがタイマオーバーフローして，スタック状態から開放されるが，タイマオーバーフローでシステムバスのタイマを停止してしまうと，先に出力したコマンドのアンサ無応答が検出できなくなる。この状態を防ぐため，図５のＦＦ１７０２，１７０３及びアンドゲートｃ，ｄが設けられている。
【００５３】
すなわち，ＦＦ１７０２は受信制御部（図１の１３ａ）からコマンドを受信した時に出力される受信処理開始信号を入力して，このコマンド受信状態をラッチする。また，ＦＦ１７０３は，ＦＦ１７０２がコマンド受信状態の後，送信制御部（図１の１５ｂ）から送信処理開始信号を入力すると，その状態がラッチされる。従って，この期間は，ＦＦ１７０３の出力（“１”）が反転してアンドゲートｄに供給されるので，ローカルバスタイマオーバーフロー（ＯＶＦ）信号がマスクされて，システムバス監視タイマが停止するのを抑止する。これにより，上記の問題点２の状態でもシステムバス監視タイマからオーバーフローを発生する。
【００５４】
図６は監視タイマ処理選択制御部（図４の１７２）の構成を示す。図６に示すようにアンドゲートａ，ｂで構成される。システムバス監視タイマがオーバーフローした後の動作は，突き放しモードと非突き放しモードで動作が異なる。監視タイマ処理選択制御部は，突き放しモードの時は，ローカルバスの転送は，バスインタフェース制御部（ＢＩＦ）が，コマンドを受信した時点で完了しているため，エラーを応答することができないので，システムバス転送種別が突き放しモード（上記図５の説明では“１”）の場合，システムバス監視タイマＯＶＦが発生するとアンドゲートａから突き放しエラー通知信号を外部に出力することでシステムバスのスタック状態を通知する。
【００５５】
非突き放しモードの場合，システムバス転送種別の信号が“０”となるため，システムバス監視タイマＯＶＦの信号が発生すると，アンドゲートｂからシステムバス監視タイマＯＶＦ処理要求信号が発生する。この信号は，上記図１の受信制御部１３ｂに通知され，受信制御部１３ｂはシステムバスに転送されたコマンドを受信したスレーブ装置に代わってエラー通知を行うアンサを作成し，ローカルバスに送信してスタックから解除させる。
【００５６】
図７，図８は突き放しモード時のローカルバス監視タイマ（図２）とシステムバス監視タイマ（図４）の動作を示し，図７は通常動作時，図８はシステムバス監視タイマがオーバーフローした時の動作である。
【００５７】
図７の通常動作時では，ローカルバスでの転送開始信号ＢＳが出力されて，バスインタフェース制御部（ＢＩＦ）に入力されると，ローカルバス監視タイマが起動され，カウントを開始する。その後，バスインタフェース制御部（ＢＩＦ）がコマンドを受信するとデータ転送完了信号ＤＣをローカルバスに出力する。ローカルバスに出力されたデータ転送完了信号ＤＣを受信すると，ローカルバス監視タイマ（図２）が停止する。コマンドをシステムバスに転送するためシステムバスの使用要求信号ＲＱを出力すると，同時にシステムバス監視タイマ（図４）が起動されてカウントを開始する。その後，システムバスの転送許可信号ＧＲがバスアービタ（ＢＡ）から出力されると，システムバス監視タイマが停止する。なお，図７に示す符号のＳＢＳはシステムバスへの転送開始信号，ＣＰＴは転送出力信号を表す。
【００５８】
図８の場合，突き放しモード時にシステムバスへ出力するためにシステムバス使用の要求信号ＲＱが出力してから許可信号ＧＲが出力されないと，システムバス監視タイマがオーバーフローし，システムバス使用許可が与えられず突き放しモードの転送が行なわれなかったことを示す非突き放しモードエラー（ＥＲＲ２）信号を出力する。
【００５９】
図９，図１０は非突き放しモード時のローカルバス監視タイマ（図２）とシステムバス監視タイマ（図４）の動作を示し，図９は通常動作時，図１０はシステムバス監視タイマがオーバーフローした時の動作であり，各図に示す信号を表す各符号は，上記図７，図８の各符号と同じである。
図９の非突き放しモードの通常動作時では，ローカルバスでの転送開始信号ＢＳが出力されて，バスインタフェース制御部（ＢＩＦ）に入力されると，ローカルバス監視タイマが起動されカウントを開始し，この後バスインタフェース制御部（ＢＩＦ）がシステムバスに転送するためシステムバス使用の要求信号ＲＱを出力すると，システムバス監視タイマが起動されカウントを開始する。その後，システムバスからコマンドに対するアンサを受信すると，受信完了通知信号ＣＰＴを出力すると同時にシステムバス監視タイマを停止させる。次に，バスインタフェース制御部（ＢＩＦ）は，システムバスから受信したコマンドに対するデータ転送完了信号ＤＣをローカルバスに出力する。ローカルバスに出力されたこの信号ＤＣをローカルバス監視タイマで受信し，ローカルバス監視タイマを停止させる。
【００６０】
図１０の場合，非突き放しモード時の動作で，システムバスからコマンドに対するアンサが無応答であった場合，ローカルバス監視タイマがオーバーフローし，システムバス監視タイマを停止させ，ローカルバスにデータ転送完了信号ＤＣとアンサが返送されなかったことを示すエラー（ＥＲＲ１で表示）を出力する。
【００６１】
図１１は本発明が実施されるマルチプロセッサシステムの構成例である。図１１に示すシステムバスは，１系と２系の２つの処理装置が備えられ，各処理装置は，それぞれプロセッサ１，２（ＣＰＵ１，ＣＰＵ２），ローカルバス１，２，ローカルメモリ１，２（ＬＭ１，ＬＭ２），本発明による構成を備えるバスインタフェース制御部１，２（ＢＩＦ１，ＢＩＦ２）及びバスアービタ１，２（ＢＡ１，ＢＡ２）及びシステムコントローラ１，２（ＳＣＮＴ１，ＳＣＮＴ２）が設けられ，更にＢＡ１とＢＡ２からのシステムバスの占用権の調停を行うバスアービタ３（ＢＡ３）が設けられている。システムコントローラ（ＳＮＣＴ１，２）は，各処理装置の状態を監視する装置であり，ＣＰＵ１，２と同じように各ローカルメモリ（ＬＭ）にアクセスするバスマスタとして動作する。なお，この構成例ではＳＣＮＴ１，ＳＣＮＴ１を備えているが，この装置を備えないシステム構成でも差し支えないことはいうまでもない。
【００６２】
上記図１１に示すようなマルチプロセッサシステムに本発明が適用された場合の各種の動作例におけるエラー検出の動作シーケンスを図１２乃至図１９に示す。図１２乃至図１９には各動作例における，ローカルバス１，バスインタフェース制御部１，バスインタフェース制御部２及びローカルバス２の各装置間のコマンド及びアンサの転送動作及び各バスインタフェース制御部（ＢＩＦ）のローカル監視タイマ（ｒｏｃａｌ  ｔｉｍｅｒ  で表示）及びシステムバス監視タイマ（ｓｙｓｔｅｍ  ｔｉｍｅｒで表示）の動作を示す。
【００６３】
図１２は本発明による動作例１のシーケンスである。この例は，ローカルバス１からローカルバス２へ非突き放しアクセスを送信した時に，アンサが応答されなかった場合である。
【００６４】
具体的には，ローカルバス１のＣＰＵ１がローカルメモリＬＭ２に非突き放しモードのコマンド（例えばメモリからのデータの読み出し）を発行（図１２のａ）した場合，バスインタフェース制御部（以下，ＢＩＦという）１で受け取られ，ローカルバス監視タイマが▲１▼で示すようにカウントを開始する。次にＢＩＦ１からシステムバスを介してＢＩＦ２へコマンドが転送されると（同ｂ），システムバス監視タイマが▲２▼で示すようにカウントを開始する。次にＢＩＦ２からローカルバス２を介してローカルメモリＬＭ２へコマンドが送信されると（同ｃ），ＢＩＦ２のローカルバス監視タイマが▲３▼で示すように起動する。
【００６５】
この後，ローカルメモリＬＭ２からアンサ（例えば，読み出しデータ）が返って来ないと，ＢＩＦ１のローカルバス監視タイマがオーバーフローして，ＢＩＦ１でバスエラー処理が行われて，エラーの応答（同ｄ）をＣＰＵ１に対し通知してローカルバス１を開放する。この場合，ＢＩＦ１のローカルバス監視タイマのオーバーフローの出力によりＢＩＦ１のシステムバス監視タイマが停止される。一方，ＢＩＦ２のローカルバス監視タイマでも，コマンドｃを送信した後，設定された時間以上経過してもアンサが返ってこないとタイマオーバーフローが発生して，ローカルバス２へバスエラー信号を出力する（図１２のｅ）。
【００６６】
図１３は本発明による動作例２のシーケンスである。この例は，ローカルバス１のＣＰＵ１からローカルバス２のローカルメモリ２（図１１のＬＭ２）へ非突き放しコマンドを送信した同じ時間に，ローカルバス２のＣＰＵ２からローカルバス１のローカルメモリ１（図１１のＬＭ１）に対し非突き放しコマンドが送信されて，アンサが応答されなかった場合である。順を追って以下に説明する。
【００６７】
（１）バスマスタ（ＣＰＵ等）がローカルバス１からＢＩＦ１へ非突き放しモードのコマンド１を送信し，ローカルバス監視タイマが▲１▼で示すように起動し（図１３のａ１），アンサ待ちとなる。ＢＩＦ１は受信したコマンド１をシステムバスへ送信し（図１３のｂ１），システムバス監視タイマが▲２▼で示すように起動する。この時，ローカルバス２からＢＩＦ２に非突き放しモードのコマンド２が送信され（同ａ２），▲３▼で示すようにローカルバス監視タイマが起動してアンサ待ちとなる。
【００６８】
（２）この後ＢＩＦ２は，システムバスからコマンド１を受信した後，先にローカルバス２から受け取ったコマンドをシステムバスからＢＩＦ１へ転送する（同ｂ２）。先に受信したコマンド２を一時突き返してリトライを指示するアンサを出力する（同ｃ２）。また，転送が一時的に完了するのでローカルバス監視タイマが停止する。これにより転送が一時的に完了するので，ローカルバス２の占用権を得たＢＩＦ２は受信したコマンド１をローカルバス１へ出力し（同ｄ１），▲５▼で示すようにローカルバス監視タイマを起動する。
【００６９】
（３）ＢＩＦ１は，システムバスからコマンド２を受信すると，先に受信したコマンド１のローカルバス監視タイマを停止し，一時突き返してリトライを指示するアンサローカルバス１に出力する（同ｃ１）。この後，システムバスから受信したコマンド２をローカルバス１へ出力し（同ｄ２），ローカルバス監視タイマを▲６▼で示すように起動する。この後，ＢＩＦ１のローカルバス監視タイマがオーバーフローすると，上記図２の構成により処理要求が発生して送信制御部（図１の１５ｂ）からバスエラー（図１０のＥＲＲ１）の応答をローカルバス１へ発生し（同ｅ２），ローカルバス１を開放させる（この時，  ＢＩＦ１  のシステムバス監視タイマはローカルバス監視タイマのオーバーフロー出力により停止しない）。
【００７０】
（４）ローカルバス２から先のコマンド１に対するアンサ１が発生すると（図１３のｅ１），ＢＩＦ２でこれを受信することによりローカルバス監視タイマ１が停止し，続いてシステムバスに対しアンサ１が転送され（同ｆ１），ＢＩＦ１のシステムバス監視タイマは停止する。また，上記のＢＩＦ１のローカルバス監視タイマのオーバーフローにより発生したエラーアンサ２がシステムバスへ送出される（同ｆ２）。
【００７１】
（５）この後，上記の一時突き返しリトライを受けたローカルバス２のバスマスタが，リトライのコマンド２を発行すると（図１３のｇ２），ＢＩＦ２は上記システムバスから受け取ったエラーアンサ２（バスエラーを表す）をローカルバス２へ出力する（同ｈ２）。
【００７２】
（６）ＢＩＦ１では，ローカルバス１からリトライのコマンド１を受け取ると（図１３のｇ１），先にシステムバスから受け取ったアンサ１をローカルバス１へ出力する（同ｈ１）。
【００７３】
図１４は本発明による動作例３のシーケンスである。この例は，上記図１３の動作例２と同様にローカルバス１のＣＰＵ１からローカルバス２のローカルメモリ２（ＬＭ２）へ非突き放しコマンドを送信した同じ時間に，ローカルバス２のＣＰＵ２からローカルバス１のローカルメモリ１（ＬＭ１）に対し非突き放しコマンドが送信された場合であるが，一旦アクセスを開放してシステムバスからコマンド送信する前にローカルバス１で他のバスマスタがコマンド送信を行う点で異なる。以下に順を追って説明する。
【００７４】
（１）上記図１３と同様にローカルバス１とローカルバス２からそれぞれ相手のローカルバスへ非突き放しモードのコマンド１，コマンド２を同じ時間に送信すると，ＢＩＦ１及びＢＩＦ２においてそれぞれ一時突き放しリトライをローカルバス１とローカルバス２に出力する（図１４のｃ１，ｄ１）。
【００７５】
（２）ＢＩＦ１がコマンド２をローカルバス１へ送信する前に，ローカルバス１に接続する他のバスマスタ（例えば，図１１のＳＣＮＴ１）がローカルバス１の占用権を得て，ローカルメモリ１（図１１のＬＭ１）にアクセスするコマンド３が発生すると（図１４のａ３），ＢＩＦ１において▲６▼で示すようにローカルバス監視タイマが起動する。一方，ローカルバス２からコマンド１に対するアンサ１がＢＩＦ２及びシステムバスを介してＢＩＦ１へ送られてくると（図１４のｅ１，ｆ１），ＢＩＦ１のシステムバス監視タイマが停止する。
【００７６】
（３）ＢＩＦ１ではローカルバス監視タイマがコマンド３を受信した後，設定された時間内に転送が完了しないためオーバーフローすると，バスエラーが応答されてローカルバス１が開放される（図１４のｂ３）。この後，ＢＩＦ１からコマンド２がローカルバス１へ送信されて（同ｄ２）ローカルバス監視タイマが起動するが，コマンド２に対しローカルメモリ１が無応答の場合，ＢＩＦ１のローカルバス監視タイマがオーバーフローして，ローカルバス１に対しバスエラーが応答されて，ローカルバス１が開放される。これにより，リトライとなるコマンド１がローカルバス１から発行されると（図１４のｇ１），先にＢＩＦ１がシステムバスから受け取ったアンサ１をローカルバス１へ送出する（同ｈ１）。また，コマンド２に対するタイマオーバーフローによりシステムバスにエラーアンサ２を通知する。
【００７７】
（４）ＢＩＦ２では，ローカルバス２からのリトライのコマンド２を受信するが（図１４のｇ２），システムバスからエラーアンサ２を受信しているので，ローカルバス２に対しエラーアンサ２を応答し（同ｈ２），ローカルバス２を開放する。
【００７８】
図１５は本発明による動作例４のシーケンスである。この例は，上記図１３，図１４と同様にローカルバス１からローカルバス２へ非突き放しコマンドを送信した同じ時間に，ローカルバス２からローカルバス１に対し非突き放しコマンドが送信された場合であるが，ローカルバス１がコマンドに応答した後，他のバスマスタがローカルバス１にコマンド送信を行う点で異なる。上記図１４と異なる点を中心にして説明する。
【００７９】
上記図１３と同様にコマンド１，コマンド２を同じ時間に送信され，ＢＩＦ１で，システムバスからのコマンド２をローカルバス１へ送信した後（図１５のｄ２），ローカルメモリ１から発生したアンサ２をローカルバス１から受信する（同ｅ２）。この後，ローカルバスの他のバスマスタ（例えば，図１１のＳＣＮＴ１）からローカルメモリ１（ＬＭ１）にアクセスするコマンド３が発行されると，ローカルバス監視タイマが起動する。この後，ローカルバス監視タイマがオーバーフローすると，バスエラーが応答されて（図１５のｂ３），ローカルバス１が開放される。この後ローカルバス１からリトライのコマンド１が発生すると（同ｇ１），ＢＩＦ１はシステムバスから受信されていたアンサ１を応答する（同ｈ１）。また，ローカルバス２からのリトライのコマンド２がＢＩＦ２で受信されると（同ｇ２），システムバスから受け取ってあるアンサ２を応答する（同ｈ２）。
【００８０】
図１６は本発明による動作例５のシーケンスである。この例は，上記図１３〜図１５と同様にローカルバス１からローカルバス２へ非突き放しコマンドを送信した同じ時間に，ローカルバス２からローカルバス１に対し非突き放しコマンドが送信された場合であるが，ローカルバス２が無応答である点で異なる。上記図１３〜図１５と異なる点を中心に説明する。
【００８１】
コマンド１，コマンド２が同じ時間に送信されて，ＢＩＦ１はシステムバスにコマンド１を送出するとシステムバス監視タイマを起動する。ＢＩＦ２でシステムバスからのコマンド１をローカルバス２へ送信する（図１６のｄ１）。これと同時にＢＩＦ２のローカルバス監視タイマが起動する。この後，コマンド１に対するアンサ１が無応答でＢＩＦ２からＢＩＦ１に対しアンサ１が応答されないと，ＢＩＦ１のシステムバス監視タイマがオーバーフローする。この後，ローカルバス１からリトライのコマンド１が発行されると，ＢＩＦ１はシステムバス監視タイマがオーバーフローしているので，ローカルバス１のコマンド１のアクセスに対してエラー応答を行ってローカルバス１を開放する。
【００８２】
図１７は本発明による動作例６のシーケンスである。この例は，上記図１６と同様にローカルバス１からローカルバス２へ非突き放しコマンドを送信した同じ時間に，ローカルバス２からローカルバス１に対し非突き放しコマンドが送信された時，ローカルバス２が無応答であった場合であるが，ＢＩＦ２のローカルバス監視タイマがオーバーフローする点で異なる。上記図１６と異なる動作について説明する。コマンド１，コマンド２が同じ時間に送信されて，ＢＩＦ１においてシステムバスへコマンド１を送信する（図１７のｂ１）と同時にＢＩＦ１のシステムバス監視タイマが▲２▼で示すように起動する。この後，ＢＩＦ１がシステムバスからコマンド２を受信し，ローカルバス１にコマンド２を送信してアンサ２を受信する。システムバスからコマンド１を受け取ったＢＩＦ２はローカルバス２が開放された時，コマンド１をローカルバス２へ送信すると同時にローカルバス監視タイマを▲４▼で示すように起動する。このコマンド１に対しローカルバス２のローカルメモリ２（ＬＭ２）からアンサ１の応答がないと，上記図１６と同様にＢＩＦ１のシステムバス監視タイマがオーバーフローし，ローカルバス１からのリトライのコマンド１に対しシステムバスオーバーフローのバスエラーを通知するが，ＢＩＦ２ではローカルバス監視タイマがオーバーフローしてローカルバス２に対しバスエラーを通知する。
【００８３】
図１８は本発明による動作例７のシーケンスである。この例は，上記図１７と同様にローカルバス１からローカルバス２へ非突き放しコマンドを送信した同じ時間に，ローカルバス２からローカルバス１に対し非突き放しコマンドが送信された時，ＢＩＦ１からローカルバス１へのコマンド２の送信及びシステムバスへのコマンド１の送信に対し両方とも無応答の場合であり，上記図１７と相違する点を中心に説明する。
【００８４】
ＢＩＦ１がコマンド１をシステムバスへ送信した時システムバス監視タイマを▲２▼に示すように起動し，ＢＩＦ２からシステムバスを介して受信したコマンド２をローカルバス１へ送信すると▲５▼で示すようにローカルバス監視タイマが起動する。一方，ＢＩＦ２は受信したコマンド１をローカルバス２へ送信すると同時に▲４▼で示すようにシステムバス監視タイマが起動する。この後，コマンド１に対するアンサ１がシステムバスから送られてこないとＢＩＦ１のシステムバス監視タイマがオーバーフローする。また，ＢＩＦ１はコマンド２に対するアンサが返ってこないでローカルバス監視タイマがオーバーフローすると，ローカルバス１にローカルバス監視タイマオーバーフローのバスエラーを通知し（図１８のｅ２），システムバスに対しエラーアンサ２を送信する（同ｆ２）。
【００８５】
ローカルバス１が開放されてリトライのコマンド１が発行されると（図１８のｆ１），ＢＩＦ１は，上記したシステムバス監視タイマのオーバーフローによりバスエラーを通知する（同ｇ１）。また，ローカルバス２からコマンド１に対するアンサ１が応答されないと，ＢＩＦ２のローカルバス監視タイマがオーバーフローして，ローカルバス２にバスエラーを通知し（同ｅ１），リトライのコマンド２が発行されると（同ｇ２），上記システムバスから送られてきたエラーアンサ２によりバスエラーをローカルバス２に通知する（同ｈ２）。
【００８６】
図１９は本発明による動作例８のシーケンスである。
この例は，ローカルバス１のＣＰＵ１からローカルバス２のローカルメモリ２（ＬＭ２）へ突き放しコマンド１，２を送信した時，コマンド２に対しシステムバス転送要求信号（ＧＲ）が一定時間内に発生しなかった場合である。
【００８７】
コマンド１が発行されると（図１９のａ１），突き放しモードなのでローカルバスにおいてＢＩＦ１へコマンドが転送されるとローカル監視タイマが停止しアンサ１が発生する（同ｂ１）。続いてＢＩＦ１からシステムバスのバス使用の要求信号ＲＱが発生してシステムバス監視タイマが起動するが使用許可信号ＧＲが発生すると停止し，システムバスへコマンド１が送出され（同ｃ１），コマンド１を受けたＢＩＦ２はローカルバス２へコマンド１を転送し（同ｄ１），ローカルバスからアンサ１を受け取る（同ｅ１）。この正常時の，ＢＩＦ１の各監視タイマの動作は，上記図７に示す通りである。
【００８８】
図１９において，ローカルバス１からコマンド１に続いてローカルバス２のローカルメモリ２（図１１のＬＭ２）へのコマンド２が送信されると，ＢＩＦ１はアンサ２をローカルバス１へ応答する。この後ＢＩＦ１でシステムバス使用の要求信号ＲＱを発生して，システムバス監視タイマが起動するが，使用許可信号ＧＲが返って来ないとシステムバス監視タイマがオーバーフローする。この場合の各監視タイマの動作は上記図８に示され，割り込み信号にて突き放しモード時のエラー（ＥＲＲ２）がローカルバス１へ通知される（図１９のｃ２）。この後，ＢＩＦ１で許可信号ＧＲが発生すると，要求信号ＲＱが無くなりコマンド２がＢＩＦ２へ送信され（同ｄ２），ＢＩＦ２からローカルバス２に対しコマンド２の送信とアンサ２の受信が行われる（同ｅ２，ｆ２）。
【００８９】
【発明の効果】
本発明によればローカルバスがインターロック転送でシステムバスがタイムスプリット転送を用いるマルチプロセッサシステムのバスインタフェース制御方式において次のような効果を奏することができる。
【００９０】
（１）  上記問題点１に説明したローカルバスのバスマスタ（例えば，ＣＰＵ１）から同じローカルバスのバススレーブ（例えば，ローカルメモリＬＭ１）にコマンドを送って応答が無い状態が継続してローカルバスがスタック（ロック）するような状態が本発明によるバスインタフェース制御部のローカルバス監視タイマにより検出して，スタックを解除することが可能となる。
【００９１】
（２）  上記問題点２に説明したバスインタフェース制御部における状態，すなわちタイマがオーバーフローするより短い周期で他の処理装置からのアクセスにより停止して，自処理装置のバスマスタからのアクセスが完了できない状態によるバスのスタックを防止することができる。
【００９２】
（３）  上記問題点３に説明したような，突き放しモードにおいてバスインタフェース制御部（例えば，ＢＩＦ１）がローカルバスのバスマスタ（例えば，ＣＰＵ１）からのコマンドを受信した後，システムバスの使用要求をバスアービタへ出力しても使用許可が発生しない状態になった時に，本発明によりローカルバスに対しエラーを通知することが可能となり，ＣＰＵ１がスタックするのを防止できる。
【図面の簡単な説明】
【図１】本発明の基本構成図である。
【図２】ローカルバス監視タイマの構成を示す図である。
【図３】タイマイネーブル制御部の説明図である。
【図４】システムバス監視タイマの構成を示す図である。
【図５】タイマイネーブル制御部の構成を示す図である。
【図６】監視タイマ処理選択制御部の構成を示す図である。
【図７】突き放しモード時のローカルバス監視タイマとシステムバス監視タイマの動作を示す図である。
【図８】突き放しモード時のシステムバス監視タイマがオーバーフローした時の動作を示す図である。
【図９】非突き放しモード時のローカルバス監視タイマとシステムバス監視タイマの動作を示す図である。
【図１０】非突き放しモード時のシステムバス監視タイマがオーバーフローした時の動作を示す図である。
【図１１】マルチプロセッサシステムの構成例を示す図である。
【図１２】本発明による動作例１のシーケンスを示す図である。
【図１３】本発明による動作例２のシーケンスを示す図である。
【図１４】本発明による動作例３のシーケンスを示す図である。
【図１５】本発明による動作例４のシーケンスを示す図である。
【図１６】本発明による動作例５のシーケンスを示す図である。
【図１７】本発明による動作例６のシーケンスを示す図である。
【図１８】本発明による動作例７のシーケンスを示す図である。
【図１９】本発明による動作例８のシーケンスを示す図である。
【図２０】従来の監視タイマシステムを示す図である。
【図２１】マルチプロセッサシステムの従来例の構成図である。
【図２２】従来のシステム動作のタイムチャートの例を示す図である。
【図２３】従来の非突き放しモードと突き放しモードのバスインタフェース制御部の動作を示す図である。
【図２４】３つの系の処理装置を備えた場合の説明図（その１）である。
【図２５】３つの系の処理装置を備えた場合の説明図（その２）である。
【図２６】突き放しモードにおける問題の説明図である。
【符号の説明】
１    バスインタフェース制御部（ＢＩＦ）
１０ａ，１０ｂ  受信用のバッファ
１１ａ，１１ｂ  送信用ＦＩＦＯメモリ
１２ａ，１２ｂ  送信用のバッファ
１３ａ，１３ｂ  受信制御部
１４ａ，１４ｂ  ＦＩＦＯ制御部
１５ａ，１５ｂ  送信制御部
１６    ローカルバス監視タイマ
１７    システムバス監視タイマ
２    ローカルバス
３    システムバス
【図１】
0003626292.tif 000002
【図２】
0003626292.tif 000003
【図３】
0003626292.tif 000004
【図４】
0003626292.tif 000005
【図５】
0003626292.tif 000006
【図６】
0003626292.tif 000007
【図７】
0003626292.tif 000008
【図８】
0003626292.tif 000009
【図９】
0003626292.tif 000010
【図１０】
0003626292.tif 000011
【図１１】
0003626292.tif 000012
【図１２】
0003626292.tif 000013
【図１３】
0003626292.tif 000014
【図１４】
0003626292.tif 000015
【図１５】
0003626292.tif 000016
【図１６】
0003626292.tif 000017
【図１７】
0003626292.tif 000018
【図１８】
0003626292.tif 000019
【図１９】
0003626292.tif 000020
【図２０】
0003626292.tif 000021
【図２１】
0003626292.tif 000022
【図２２】
0003626292.tif 000023
【図２３】
0003626292.tif 000024
【図２４】
0003626292.tif 000025
【図２５】
0003626292.tif 000026
【図２６】
0003626292.tif 000027