(57)【要約】【課題】バスエラーが発生した場合でも処理を停止させることなくデータ通信することが可能なバスブリッジを実現する。【解決手段】バス間のデータ通信に用いられるバスブリッジにおいて、一方のバスに相互に接続された第１のバスインターフェースと、第１のバスインターフェースを介してマスタからのデータが書き込まれるＦＩＦＯと、ＦＩＦＯからデータを読み出す転送制御部と、他方のバスに相互に接続され転送制御部から転送されるデータを他方のバスに送信する第２のバスインターフェースと、バスエラー発生時にＦＩＦＯに格納されているデータを読み捨てるように転送制御部を制御するデータ監視部とを備える。【選択図】  図１
2008097167.tif 000002
【特許請求の範囲】
【請求項１】
バス間のデータ通信に用いられるバスブリッジにおいて、
一方のバスに相互に接続された第１のバスインターフェースと、
この第１のバスインターフェースを介してマスタからのデータが書き込まれるＦＩＦＯと、
このＦＩＦＯからデータを読み出す転送制御部と、
他方のバスに相互に接続され前記転送制御部から転送されるデータを前記他方のバスに送信する第２のバスインターフェースと、
バスエラー発生時に前記ＦＩＦＯに格納されているデータを読み捨てるように前記転送制御部を制御するデータ監視部と
を備えたことを特徴とするバスブリッジ。
【請求項２】
前記データ監視部が、
バスエラー発生時に前記ＦＩＦＯに格納されているデータが空になるまでデータを読み捨てるように前記転送制御部を制御することを特徴とする
請求項１記載のバスブリッジ。
【請求項３】
バス間のデータ通信に用いられるバスブリッジにおいて、
一方のバスに相互に接続された第１のバスインターフェースと、
この第１のバスインターフェースを介してマスタからのデータが書き込まれるＦＩＦＯと、
このＦＩＦＯからデータを読み出す転送制御部と、
他方のバスに相互に接続され前記転送制御部から転送されるデータを前記他方のバスに送信する第２のバスインターフェースと、
バスエラー発生時で前記ＦＩＦＯに格納されているデータのうち通信中のデータが含まれていたブロックがある場合に前記ブロックのみを読み捨てるように前記転送制御部を制御するデータ監視部と
を備えたことを特徴とするバスブリッジ。
【請求項４】
前記データ監視部が、
バスエラー発生時に前記ＦＩＦＯに格納されているデータを読み捨てるように前記転送制御部を制御すると共に前記ＦＩＦＯへの書き込み動作を停止するように前記第１のバスインターフェースを制御することを特徴とする
請求項１乃至請求項３のいずれかに記載のバスブリッジ。
【請求項５】
前記転送制御部が、
前記データ監視部からデータ廃棄信号を受信した場合に前記ＦＩＦＯからデータを読み出して捨てることを特徴とする
請求項１乃至請求項４のいずれかに記載のバスブリッジ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バス間のデータ通信に用いられるバスブリッジに関し、特にバスエラーが発生した場合でも処理を停止させることなくデータ通信することが可能なバスブリッジに関する。
【背景技術】
【０００２】
従来のバスブリッジに関連する先行技術文献としては次のようなものがある。
【０００３】
【特許文献１】特開２００３−１６２４９８号公報
【特許文献２】特開２００５−０５６０８６号公報
【０００４】
図５はこのような従来のバスブリッジを示す構成ブロック図である。図５において１及び４はバスを経由して通信を行うバスインターフェース、２はデータをバッファリングするＦＩＦＯ（First-In First-Out）、３はデータの転送を制御する転送制御部である。
【０００５】
また、１００及び１０１はＣＰＵ（Central Processing Unit）等が搭載されているマスタ、１０２はＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory)、フラッシュメモリ（電気的に書き換え可能なＲＯＭ）等のメモリ、２００及び２０１はデータをやり取りするバスである。
【０００６】
バスインターフェース１、ＦＩＦＯ２、転送制御部３及びバスインターフェース４はバスブリッジ５０を構成している。
【０００７】
バスインターフェース１はバス２００に相互に接続され、ＦＩＦＯ２はバスインターフェース１から書き込み制御信号”Ｓ０１”及びデータ”Ｄ０１”がそれぞれ入力されると共に転送制御部３から読み出し制御信号”Ｓ０２”が入力される。転送制御部３はＦＩＦＯ２からステータス信号”Ｓ０３”及びデータ”Ｄ０２”がそれぞれ入力されると共にバスインターフェース４からデータ要求信号”Ｓ０４”及びステータス信号”Ｓ０５”がそれぞれ入力され、バスインターフェース４は転送制御部３から転送要求信号”Ｓ０６”及びデータ”Ｄ０３”がそれぞれ入力されると共にバス２０１に相互に接続される。
【０００８】
マスタ１００はバス２００に相互に接続され、マスタ１０１及びメモリ１０２はバス２０１にそれぞれ相互に接続される。
【０００９】
ここで、図５に示す従来例の動作を図６、図７、図８、図９、図１０を用いて説明する。図６はマスタ１００の動作を示すフロー図、図７はバスインターフェース１の動作を示すフロー図、図８はＦＩＦＯ２の動作を示すフロー図、図９は転送制御部３の動作を示すフロー図、図１０はバスインターフェース４の動作を示すフロー図である。
【００１０】
マスタ１００からメモリ１０２へデータを転送する時の動作を説明する。図６中”Ｓ００１”においてマスタ１００は、バス２００を経由してバスインターフェース１にメモリ１０２のアドレスを送信し、図６中”Ｓ００２”においてマスタ１００は、バス２００を経由してバスインターフェース１にメモリ１０２へ書き込むデータを送信する。
【００１１】
図６中”Ｓ００３”においてマスタ１００は、メモリ１０２へ書き込むべき全てのデータを送信したか否かを判断し、もし、全てのデータを送信した場合には処理を終了する。
【００１２】
一方、図６中”Ｓ００３”においてマスタ１００は、メモリ１０２へ書き込むべき全てのデータを送信したか否かを判断し、もし、送信するデータがまだある場合には、図６中”Ｓ００１”に戻り、処理を続ける。
【００１３】
次に、バスインターフェース１の動作について説明する。図７中”Ｓ１０１”においてバスインターフェース１は、マスタ１００から受信したメモリ１０２のアドレスをＦＩＦＯ２へ転送し、図７中”Ｓ１０２”においてバスインターフェース１は、マスタ１００から受信したメモリ１０２へ書き込むデータをＦＩＦＯ２へ転送する。
【００１４】
図７中”Ｓ１０３”においてバスインターフェース１は、マスタ１００から受信した全てのデータを転送したか否かを判断し、もし、全てのデータを転送した場合には処理を終了する。
【００１５】
一方、図７中”Ｓ１０３”においてバスインターフェース１は、マスタ１００から受信した全てのデータを転送したか否かを判断し、もし、転送するデータがまだある場合には、図７中”Ｓ１０１”に戻り、処理を続ける。
【００１６】
次に、ＦＩＦＯ２の動作について説明する。図８中”Ｓ２０１”においてＦＩＦＯ２は、バスインターフェース１からの書き込みがあったか否かを判断し、もし、書き込みがあった場合には、図８中”Ｓ２０２”においてＦＩＦＯ２は、データが格納されたことを示すステータス信号を転送制御部３へ送信する。
【００１７】
図８中”Ｓ２０３”においてＦＩＦＯ２は、転送制御部３からの読み出し制御信号”Ｓ０２”を受信したか否かを判断し、もし、読み出し制御信号”Ｓ０２”を受信した場合には、図８中”Ｓ２０４”においてＦＩＦＯ２は、転送制御部３へデータを送信する。
【００１８】
図８中”Ｓ２０５”においてＦＩＦＯ２は、格納されているデータが空になったか否かを判断し、もし、空になった場合には、図８中”Ｓ２０１”に戻り、書き込みがあるまで待機する。一方、図８中”Ｓ２０５”においてＦＩＦＯ２は、格納されているデータが空になったか否かを判断し、もし、空になっていない場合には、図８中”Ｓ２０３”に戻り、読み出し制御信号”Ｓ０２”が来るのを待つ。
【００１９】
次に、転送制御部３の動作について説明する。図９中”Ｓ３０１”において転送制御部３は、ＦＩＦＯ２からデータが格納されたことを示すステータス信号”Ｓ０３”を受信したか否かを判断し、もし、ステータス信号”Ｓ０３”を受信した場合には、図９中”Ｓ３０２”において転送制御部３は、ＦＩＦＯ２に対して読み出し制御信号”Ｓ０２”を送信する。
【００２０】
図９中”Ｓ３０３”において転送制御部３は、ＦＩＦＯ２からアドレス及び転送するデータサイズを受信したか否かを判断し、もし、受信した場合には、図９中”Ｓ３０４”において転送制御部３は、バスインターフェース４に対して、アドレス及び転送するデータサイズと共に転送要求信号”Ｓ０６”を送信する。
【００２１】
そして、図９中”Ｓ３０５”において転送制御部３は、バスインターフェース４からＦＩＦＯ２に格納されているデータの読み出しを要求するデータ要求信号”Ｓ０４”を受信したか否かを判断し、もし、受信した場合には、図９中”Ｓ３０６”において転送制御部３は、ＦＩＦＯ２に対して、読み出し制御信号”Ｓ０２”を送信する。
【００２２】
図９中”Ｓ３０７”において転送制御部３は、ＦＩＦＯ２からデータ”Ｄ０２”を受信したか否かを判断し、もし、受信した場合には、図９中”Ｓ３０８”において転送制御部３は、バスインターフェース４に対して、受信したデータ”Ｄ０２”をデータ”Ｄ０３”として転送する。
【００２３】
図９中”Ｓ３０９”において転送制御部３は、バスインターフェース４から次のデータ要求信号”Ｓ０４”及び転送ステータス信号”Ｓ０５”を受信したか否かを判断し、もし、受信した場合には、図９中”Ｓ３１０”へ進む。図９中”Ｓ３１０”において転送制御部３は、受信したステータス信号”Ｓ０５”がバスエラーであるか否かを判断し、もし、ステータス信号”Ｓ０５”がバスエラーである場合には、処理を終了する。
【００２４】
一方、図９中”Ｓ３１０”において転送制御部３は、受信したステータス信号”Ｓ０５”がバスエラーであるか否かを判断し、もし、ステータス信号”Ｓ０５”がバスエラーでない場合には、図９中”Ｓ３１１”へ進む。
【００２５】
図９中”Ｓ３１１”において転送制御部３は、バスインターフェース４へ転送したデータ数が図９中”Ｓ３０３”でＦＩＦＯ２から取得したデータサイズに達したか否かを判断し、もし、データ数に達していた場合には、データ転送を終了して図９中”Ｓ３０１”へ戻る。
【００２６】
一方、図９中”Ｓ３１１”において転送制御部３は、バスインターフェース４へ転送したデータ数が図９中”Ｓ３０３”でＦＩＦＯ２から取得したデータサイズに達したか否かを判断し、もし、データ数に達していない場合には、図９中”Ｓ３０６”に戻り、ＦＩＦＯ２に対して、読み出し制御信号”Ｓ０２”を送信する。
【００２７】
次に、バスインターフェース４の動作について説明する。図１０中”Ｓ４０１”においてバスインターフェース４は、転送制御部３からのアドレス、転送データサイズ及び転送要求信号”Ｓ０６”を受信したか否かを判断し、もし、受信した場合には、図１０中”Ｓ４０２”においてバスインターフェース４は、転送制御部３へデータ要求信号”Ｓ０４”を送信する。
【００２８】
図１０中”Ｓ４０３”においてバスインターフェース４は、転送制御部３からデータ”Ｄ０３”を受信したか否かを判断し、もし、受信した場合には、図１０中”Ｓ４０４”においてバスインターフェース４は、受信したデータをメモリ１０２へ転送する。
【００２９】
そして、図１０中”Ｓ４０５”においてバスインターフェース４は、メモリ１０２からのデータ受信を示す応答信号を受信したか否かを判断し、もし、受信した場合には、図１０中”Ｓ４０６”においてバスインターフェース４は、転送制御部３へ次のデータ要求信号”Ｓ０４”及び転送ステータス信号”Ｓ０５”を送信する。
【００３０】
図１０中”Ｓ４０７”においてバスインターフェース４は、転送制御部３から全てのデータを受信したか否かを判断し、もし、全てのデータを受信した場合には、図１０中”Ｓ４０１”へ戻り、もし、全てのデータを受信していない場合には、図１０中”Ｓ４０３”へ戻る。
【００３１】
一方、図１０中”Ｓ４０５”においてバスインターフェース４は、メモリ１０２からのデータ受信を示す応答信号を受信したか否かを判断し、もし、受信していない場合には、図１０中”Ｓ４０８”へ進む。
【００３２】
図１０中”Ｓ４０８”においてバスインターフェース４は、タイムアウトしたか否かを判断し、もし、タイムアウトした場合には、図１０中”Ｓ４０９”においてバスインターフェース４は、バスエラーのステータス信号”Ｓ０５”を転送制御部３へ送信し、処理を終了する。
【００３３】
一方、図１０中”Ｓ４０８”においてバスインターフェース４は、タイムアウトしたか否かを判断し、もし、タイムアウトしていない場合には、図１０中”Ｓ４０５”へ戻る。
【００３４】
マスタ１００からメモリ１０２へのデータ転送は複数回のデータ転送（ＤＭＡ（Direct Memory Access）転送）により、実現される。また、マスタ１０１はメモリ１０２へ転送されたデータを解析し、必要なデータ処理等を行う。
【００３５】
この結果、マスタ１００からメモリ１０２へデータを書き込む場合に、バスインターフェース１を介して、一旦、データをＦＩＦＯ２へ格納し、転送制御部３がＦＩＦＯ２からデータを取り出し、バスインターフェース４を介してメモリ１０２へ転送することにより、プロトコルが異なるバス間でもプロトコルを変換して通信できるので、マスタ１００は通常と同様に通信することが可能になる。
【発明の開示】
【発明が解決しようとする課題】
【００３６】
しかし、図５に示す従来例では、ノイズ等の原因により、バスエラーが発生した際に、転送制御部３の処理が終了する。そして、ＦＩＦＯ２にはデータが格納されたままとなり、マスタ１００からは引き続きデータが送信されるので、ＦＩＦＯ２がオーバーフローを起こしてデータ通信が停止するという問題があった。
従って本発明が解決しようとする課題は、バスエラーが発生した場合でも処理を停止させることなくデータ通信することが可能なバスブリッジを実現することにある。
【課題を解決するための手段】
【００３７】
このような課題を達成するために、本発明のうち請求項１記載の発明は、
バス間のデータ通信に用いられるバスブリッジにおいて、
一方のバスに相互に接続された第１のバスインターフェースと、この第１のバスインターフェースを介してマスタからのデータが書き込まれるＦＩＦＯと、このＦＩＦＯからデータを読み出す転送制御部と、他方のバスに相互に接続され前記転送制御部から転送されるデータを前記他方のバスに送信する第２のバスインターフェースと、バスエラー発生時に前記ＦＩＦＯに格納されているデータを読み捨てるように前記転送制御部を制御するデータ監視部とを備えたことにより、バスエラーが発生した場合でも処理を停止させることなくデータ通信することが可能になる。
【００３８】
請求項２記載の発明は、
請求項１記載のバスブリッジにおいて、
前記データ監視部が、
バスエラー発生時に前記ＦＩＦＯに格納されているデータが空になるまでデータを読み捨てるように前記転送制御部を制御することにより、バスエラーが発生した場合でも処理を停止させることなくデータ通信することが可能になる。
【００３９】
請求項３記載の発明は、
バス間のデータ通信に用いられるバスブリッジにおいて、
一方のバスに相互に接続された第１のバスインターフェースと、この第１のバスインターフェースを介してマスタからのデータが書き込まれるＦＩＦＯと、このＦＩＦＯからデータを読み出す転送制御部と、他方のバスに相互に接続され前記転送制御部から転送されるデータを前記他方のバスに送信する第２のバスインターフェースと、バスエラー発生時で前記ＦＩＦＯに格納されているデータのうち通信中のデータが含まれていたブロックがある場合に前記ブロックのみを読み捨てるように前記転送制御部を制御するデータ監視部とを備えたことにより、バスエラーが発生した場合でも処理を停止させることなくデータ通信することが可能になる。
【００４０】
請求項４記載の発明は、
請求項１乃至請求項３のいずれかに記載のバスブリッジにおいて、
前記データ監視部が、
バスエラー発生時に前記ＦＩＦＯに格納されているデータを読み捨てるように前記転送制御部を制御すると共に前記ＦＩＦＯへの書き込み動作を停止するように前記第１のバスインターフェースを制御することにより、バスエラーが発生した場合でも処理を停止させることなくデータ通信することが可能になる。
【００４１】
請求項５記載の発明は、
請求項１乃至請求項４のいずれかに記載のバスブリッジにおいて、
前記転送制御部が、
前記データ監視部からデータ廃棄信号を受信した場合に前記ＦＩＦＯからデータを読み出して捨てることにより、バスエラーが発生した場合でも処理を停止させることなくデータ通信することが可能になる。
【発明の効果】
【００４２】
本発明によれば次のような効果がある。
請求項１、請求項２、請求項３、請求項４及び請求項５の発明によれば、データ監視部がバスエラーのステータスを検出すると共に転送制御部に対してＦＩＦＯに格納されているデータを読み出すデータ廃棄信号を送信し、転送制御部がこのデータ廃棄信号に従ってＦＩＦＯからデータを読み出し、読み出したデータを第２のバスインターフェースへは送信せずにそのまま捨てることにより、ＦＩＦＯが転送待ちでオーバーフローすることがなくなるので、バスエラーが発生した場合でも処理を停止させることなくデータ通信することが可能になる。
【発明を実施するための最良の形態】
【００４３】
以下本発明を図面を用いて詳細に説明する。図１は本発明に係るバスブリッジの一実施例を示す構成ブロック図である。図１において１，２，４，１００，１０１，１０２，２００及び２０１は図５と同一符号を付してあり、５はデータの転送を制御する転送制御部、６はデータを監視するデータ監視部である。
【００４４】
また、バスインターフェース１、ＦＩＦＯ２、バスインターフェース４、転送制御部５及びデータ監視部６はバスブリッジ５１を構成している。
【００４５】
転送制御部５はＦＩＦＯ２からステータス信号”Ｓ０３”及びデータ”Ｄ０２”がそれぞれ入力され、バスインターフェース４からデータ要求信号”Ｓ０４”及びステータス信号”Ｓ０５”が入力されると共にデータ監視部６からデータ廃棄信号”Ｓ０９”が入力される。データ監視部６は転送制御部５から読み出し制御信号”Ｓ０７”、転送サイズ”Ｓ１０”及びデータ”Ｄ０４”がそれぞれ入力され、バスインターフェース４からステータス信号”Ｓ０５”が入力される。その他の接続に関しては図５と同じため、説明を省略する。
【００４６】
ここで、図１に示す実施例の動作を図２及び図３を用いて説明する。図２は転送制御部５の動作を示すフロー図、図３はデータ監視部６の動作を示すフロー図である。
【００４７】
図２中”Ｓ５０１”から”Ｓ５０９”及び”Ｓ５１１”の処理は図９中”Ｓ３０１”から”Ｓ３０９”及び”Ｓ３１１”の処理とほぼ同一で、異なる点は図２中”Ｓ５０４”において転送制御部５は、バスインターフェース４に対して、アドレス及び転送するデータサイズと共に転送要求信号”Ｓ０８”を送信すると共にデータ監視部６に対して、転送するデータサイズ”Ｓ１０”を送信する点である。
【００４８】
図２中”Ｓ５１０”において転送制御部５は、受信したステータス信号”Ｓ０５”がバスエラーか否かを判断し、もし、バスエラーの場合は図２中”Ｓ５１２”へ進む。
【００４９】
図２中”Ｓ５１２”において転送制御部５は、データ監視部６からのデータ廃棄信号”Ｓ０９”を受信したか否かを判断し、もし、データ廃棄信号”Ｓ０９”を受信した場合には、図２中”Ｓ５１３”において転送制御部５は、ＦＩＦＯ２に対して、読み出し制御信号”Ｓ０７”を送信する。
【００５０】
転送制御部５は、ＦＩＦＯ２から読み出したデータをバスインターフェース４へは送信せず、そのまま捨ててしまう。そして、転送制御部５は、データ監視部６からのデータ廃棄信号”Ｓ０９”を受信している間、ＦＩＦＯ２からデータを読み出して捨てる動作を繰り返す。
【００５１】
一方、図２中”Ｓ５１２”において転送制御部５は、データ監視部６からのデータ廃棄信号”Ｓ０９”を受信したか否かを判断し、もし、データ廃棄信号を受信していない場合には、図２中”Ｓ５０１”へ戻る。
【００５２】
次に、データ監視部６の動作について説明する。図３中”Ｓ６０１”においてデータ監視部６は、バスインターフェース４から送信されるバスエラーのステータスを検出したか否かを判断し、もし、ステータスを検出した場合には、図３中”Ｓ６０２”においてデータ監視部６は、ＦＩＦＯ２からデータを読み出すためのデータ廃棄信号”Ｓ０９”を転送制御部５へ送信する。
【００５３】
データ監視部６は、転送制御部５から送信されるＦＩＦＯ２の読み出し制御信号”Ｓ０７”を常に監視し、ＦＩＦＯ２から読み出されたデータ数をカウンタでカウントしている。このカウンタは、転送制御部５から転送するデータサイズを受信した時にリセットされる。
【００５４】
図３中”Ｓ６０３”においてデータ監視部６は、このカウントしたデータ数が、データサイズ”Ｓ１０”と一致したか否かを判断し、もし、一致した場合には、図３中”Ｓ６０４”においてデータ監視部６は、ＦＩＦＯ２からデータを読み出すためのデータ廃棄信号”Ｓ０９”の転送制御部５への送信を停止する。
【００５５】
マスタ１００からメモリ１０２へのデータ転送はブロック単位で行われるので、ＦＩＦＯ２へ書き込まれるデータもブロック単位で書き込まれる。バスエラーが発生した時には、通信中のデータが含まれていたブロックがある場合にそのブロックのみを捨て、その他のブロックは残しておきたいために、該当するブロックをＦＩＦＯ２から読み捨てる動作を行う。
【００５６】
従って、上述のように、データ監視部６において転送するデータサイズを１ブロックに含まれるデータ数とし、カウンタにより、ＦＩＦＯ２に残っているデータ数をカウントしている。
【００５７】
この結果、データ監視部６がバスエラー発生時に転送制御部５に対してデータ廃棄信号を送信し、転送制御部５がこのデータ廃棄信号に従ってＦＩＦＯ２からデータを読み出し、バスインターフェース４へは送信せずにそのまま捨てる。そして、データ監視部６が読み出し制御信号を監視し、ＦＩＦＯ２から読み出されたデータ数がデータサイズと一致するまで、転送制御部５にデータ廃棄信号を送信することにより、ＦＩＦＯ２が転送待ちでオーバーフローすることがなくなるので、バスエラーが発生した場合でも処理を停止させることなくデータ通信することが可能になる。
【００５８】
図４は本発明に係るバスブリッジの他の実施例を示す構成ブロック図である。図４において１００，１０１，１０２，２００及び２０１は図１と同一符号を付してあり、７及び１０はバスを経由して通信を行うバスインターフェース、８はデータをバッファリングするＦＩＦＯ、９はデータの転送を制御する転送制御部、１１はデータを監視するデータ監視部、１２は内部レジスタである。
【００５９】
バスインターフェース７、ＦＩＦＯ８、転送制御部９、バスインターフェース１０、データ監視部１１及び内部レジスタ１２はバスブリッジ５２を構成している。
【００６０】
バスインターフェース７はバス２００に相互に接続されると共にデータ監視部１１から書き込み動作停止信号”Ｓ１１”が入力され、ＦＩＦＯ８はバスインターフェース７から書き込み制御信号”Ｓ１２”及びデータ”Ｄ０５”がそれぞれ入力されると共に転送制御部９から読み出し制御信号”Ｓ１３”が入力される。転送制御部９はＦＩＦＯ８からステータス信号”Ｓ１４”及びデータ”Ｄ０６”がそれぞれ入力され、バスインターフェース１０からデータ要求信号”Ｓ１５”及びステータス信号”Ｓ１６”が入力されると共にデータ監視部１１からデータ廃棄信号”Ｓ１８”が入力される。
【００６１】
バスインターフェース１０は転送制御部９から転送要求信号”Ｓ１７”及びデータ”Ｄ０７”がそれぞれ入力されると共にバス２０１に相互に接続される。データ監視部１１は転送制御部９から読み出し制御信号”Ｓ１３”、転送サイズ”Ｓ２０”及びデータ”Ｄ０７”、ＦＩＦＯ８からステータス信号”Ｓ１９”、バスインターフェース１０からステータス信号”Ｓ１６”、内部レジスタ１２から制御信号”Ｓ２１”がそれぞれ入力される。内部レジスタ１２はバスインターフェース１０と相互に接続される。その他の接続に関しては図１と同じため、説明を省略する。
【００６２】
ここで、図４に示す実施例の動作を説明する。図４に示す実施例の動作は図１の実施例とほぼ同一であり、異なる点は内部レジスタ１２を設けてバスエラー発生時の動作を設定できるようにした点である。
【００６３】
例えば、バスエラー検出時に、内部レジスタ１２の値が”０”の場合には、バスエラーとなったデータ列に限りデータを読み捨てるとして、内部レジスタ１２の値が”１”の場合には、バスインターフェース７によるＦＩＦＯ８への書き込みを停止してＦＩＦＯ８に格納されているデータが空になるまでデータを読み捨てるとする。
【００６４】
内部レジスタ１２の値が”０”の場合の動作は図１の実施例で説明した動作となる。一方、内部レジスタ１２の値が”１”の場合の動作は、以下のようになる。
【００６５】
データ監視部１１がバスインターフェース１０から送信されるステータス信号”Ｓ１６”により、バスエラーのステータスを検出すると、図１の実施例と同様に、転送制御部９へＦＩＦＯ８からデータを読み出すためのデータ廃棄信号”Ｓ１８”を送信する。同時に、データ監視部１１はバスインターフェース７に対してＦＩＦＯ８への書き込み動作停止信号”Ｓ１１”を送信する。
【００６６】
バスインターフェース７はデータ監視部１１から書き込み動作停止信号”Ｓ１１”を受信し、ＦＩＦＯ８への書き込み動作を停止する。転送制御部９は、図１の実施例と同様に、ＦＩＦＯ８からデータを読み出し、そのデータをバスインターフェース１０へは送信せずに捨てる。
【００６７】
そして、データ監視部１１はＦＩＦＯ８のステータス信号”Ｓ１９”を監視し、ＦＩＦＯ８に格納されているデータが空になったことを認識すると、転送制御部９へのデータ廃棄信号”Ｓ１８”及びバスインターフェース７への書き込み動作停止信号”Ｓ１１”をそれぞれ解除する。
【００６８】
この結果、データ監視部１１がバスエラーを検出し、転送制御部９へのデータ廃棄信号及びバスインターフェース７への書き込み動作停止信号をそれぞれ送信し、バスインターフェース７がＦＩＦＯ８への書き込み動作を停止すると共に転送制御部９がＦＩＦＯ８からデータを読み出して捨てることにより、ＦＩＦＯ８が転送待ちでオーバーフローすることがなくなるので、バスエラーが発生した場合でも処理を停止させることなくデータ通信することが可能になる。
【００６９】
なお、図１及び図４に示す実施例においてバスエラー発生時にＦＩＦＯに格納されているデータを読み捨てているが、この時、転送制御部、若しくはデータ監視部からマスタ１００に対してエラーが発生したことを通知するようにしてもよい。さらに、エラー発生の通知を受けたマスタ１００が該当するブロックを再度送信するようにしてもよい。
【００７０】
また、図１に示す実施例において図４に示す実施例と同様に、バスエラー発生時にデータ監視部６がＦＩＦＯ２からデータを読み捨てるように転送制御部５を制御すると共にＦＩＦＯ２への書き込み動作を停止するようにバスインターフェース１を制御してもよい。
【００７１】
また、図４に示す実施例においてバスエラー発生時にデータ監視部１１がＦＩＦＯ８からデータを読み捨てるように転送制御部９を制御すると共にＦＩＦＯ８への書き込み動作を停止するようにバスインターフェース７を制御しているが、必ずしもこのようにする必要は無く、ＦＩＦＯ８への書き込み動作は停止しなくてもよい。
【００７２】
また、図４に示す実施例において内部レジスタ１２が１ビット構成で示されているが、必ずしもこれに限定される必要は無く、内部レジスタ１２を複数ビットで構成し、バスエラー発生時の動作を３つ以上設定できるようにしてもよい。
【００７３】
同様に、図４に示す実施例において内部レジスタ１２の値が”０”の場合には、バスエラーとなったデータ列に限りデータを読み捨て、内部レジスタ１２の値が”１”の場合には、バスインターフェース７によるＦＩＦＯ８への書き込みを停止してＦＩＦＯ８に格納されているデータが空になるまでデータを読み捨てるとしているが、必ずしもこのようにする必要は無く、内部レジスタ１２の値が”０”の場合には、バスインターフェース７によるＦＩＦＯ８への書き込みを停止してＦＩＦＯ８に格納されているデータが空になるまでデータを読み捨て、内部レジスタ１２の値が”１”の場合には、バスエラーとなったデータ列に限りデータを読み捨てるようにしてもよい。
【図面の簡単な説明】
【００７４】
【図１】本発明に係るバスブリッジの一実施例を示す構成ブロック図である。
【図２】転送制御部の動作を示すフロー図である。
【図３】データ監視部の動作を示すフロー図である。
【図４】本発明に係るバスブリッジの他の実施例を示す構成ブロック図である。
【図５】従来のバスブリッジを示す構成ブロック図である。
【図６】マスタの動作を示すフロー図である。
【図７】バスインターフェースの動作を示すフロー図である。
【図８】ＦＩＦＯの動作を示すフロー図
【図９】転送制御部の動作を示すフロー図
【図１０】バスインターフェースの動作を示すフロー図である。
【符号の説明】
【００７５】
１，４，７，１０  バスインターフェース
２，８  ＦＩＦＯ
３，５，９  転送制御部
６，１１  データ監視部
１２  内部レジスタ
５０，５１，５２  バスブリッジ
１００，１０１  マスタ
１０２  メモリ
２００，２０１  バス
【図１】
2008097167.tif 000003
【図２】
2008097167.tif 000004
【図３】
2008097167.tif 000005
【図４】
2008097167.tif 000006
【図５】
2008097167.tif 000007
【図６】
2008097167.tif 000008
【図７】
2008097167.tif 000009
【図８】
2008097167.tif 000010
【図９】
2008097167.tif 000011
【図１０】
2008097167.tif 000012