(57)【特許請求の範囲】
【請求項１】
バスシステムであって、
バスと、
前記バスに接続されることが可能な複数のマスタ装置と、
前記バスに接続されることが可能な１個以上のスレーブ装置と、
前記バスに接続されることが可能である第１のダミーマスタ装置とを備え、
前記複数のマスタ装置に含まれる第１のマスタ装置に代わって、有効データがあることを表わす信号を前記第１のダミーマスタ装置が受信したときに、前記第１のダミーマスタ装置は、信号の受信が可能なことを表わす信号を出力し、
前記バスシステムは、
前記第１のマスタ装置と前記第１のダミーマスタ装置のうちのいずれかと前記バスとを接続するセレクタと、
前記複数のマスタ装置のうち、故障が発生したマスタ装置のみを正常状態に復帰させるために、前記故障が発生したマスタ装置のみにリセット処理をさせるシステムコントローラと、
前記第１のマスタ装置が故障状態のときに、前記第１のダミーマスタ装置と前記バスとが接続するように、前記セレクタを制御するセレクタ制御回路とを備え、
前記複数のマスタ装置のうち前記第１のマスタ装置以外のマスタ装置は、前記第１のマスタ装置に故障が発生したことによって前記第１のマスタ装置の前記リセット処理が実行されている間、縮退モードに移行し、
前記縮退モードにおいて、前記第１のマスタ装置以外のマスタ装置は、前記第１のマスタ装置において処理が発生しないように、自己の処理を調整する、バスシステム。
【請求項２】
第１のレジスタを備え、
前記第１のマスタ装置は、前記故障が発生したときに前記第１のレジスタをセットし、前記リセット処理が終了したときに前記第１のレジスタをクリアする、請求項１記載のバスシステム。
【請求項３】
前記第１のレジスタは、前記第１のマスタ装置内に設けられる、請求項２記載のバスシステム。
【請求項４】
前記第１のレジスタは、前記第１のダミーマスタ装置内に設けられる、請求項２記載のバスシステム。
【請求項５】
前記セレクタ制御回路は、前記第１のマスタ装置の前記リセット処理が終了後に、前記第１のマスタ装置と前記バスとが接続するように、前記セレクタを制御する、請求項１記載のバスシステム。
【請求項６】
バスと、
前記バスに接続されることが可能な１個以上のマスタ装置と、
前記バスに接続されることが可能な複数のスレーブ装置と、
前記バスに接続されることが可能であり、かつ前記複数のスレーブ装置に含まれる第１のスレーブ装置に代わって、有効データがあることを表わす信号を受信したときに、信号の受信が可能なことを表わす信号を出力する第１のダミースレーブ装置と、
前記第１のスレーブ装置と前記第１のダミースレーブ装置のうちのいずれかと前記バスとを接続するセレクタと、
前記複数のスレーブ装置のうち、故障が発生したスレーブ装置のみを正常状態に復帰させるために、前記故障が発生したスレーブ装置のみにリセット処理をさせるシステムコントローラと、
前記第１のスレーブ装置が故障状態のときに、前記第１のダミースレーブ装置と前記バスとが接続するように、前記セレクタを制御するセレクタ制御回路とを備え、
前記１個以上のマスタ装置は、前記第１のスレーブ装置に故障が発生したことによって前記第１のスレーブ装置の前記リセット処理が実行されている間、縮退モードに移行し、
前記縮退モードにおいて、前記１個以上のマスタ装置は、前記第１のスレーブ装置において処理が発生しないように、自己の処理を調整する、バスシステム。
【請求項７】
第１のレジスタを備え、
前記第１のスレーブ装置は、前記故障が発生したときに前記第１のレジスタをセットし、前記リセット処理が終了したときに前記第１のレジスタをクリアする、請求項６記載のバスシステム。
【請求項８】
前記第１のレジスタは、前記第１のスレーブ装置内に設けられる、請求項７記載のバスシステム。
【請求項９】
前記第１のレジスタは、前記第１のダミースレーブ装置内に設けられる、請求項７記載のバスシステム。
【請求項１０】
前記セレクタ制御回路は、前記第１のスレーブ装置の前記リセット処理が終了後に、前記第１のスレーブ装置と前記バスとが接続するように、前記セレクタを制御する、請求項６記載のバスシステム。
【請求項１１】
バスシステムであって、
バスと、
前記バスに接続されることが可能な複数のマスタ装置と、
前記バスに接続されることが可能な複数のスレーブ装置と、
各々が、対応する前記マスタ装置に対応して設けられる複数のダミーマスタ装置とを備え、
前記複数のダミーマスタ装置の各々が、前記対応するマスタ装置に代わって、有効データがあることを表わす信号を受信したときに、前記複数のダミーマスタ装置の各々が、信号の受信が可能なことを表わす信号を出力し、
前記バスシステムは、
各々が、対応するスレーブ装置に対して設けられる複数のダミースレーブ装置を備え、前記複数のダミースレーブ装置の各々が、前記対応するスレーブ装置に代わって、有効データがあることを表わす信号を受信したときに、前記複数のダミースレーブ装置の各々が、信号の受信が可能なことを表わす信号を出力し、
前記バスシステムは、
各々が、対応する前記マスタ装置または対応する前記スレーブ装置と、対応する前記ダミーマスタ装置と対応する前記スレーブ装置のうちのいずれかと、前記バスとを接続する複数のセレクタと、
前記複数のマスタ装置および前記複数のスレーブ装置のうち、故障が発生した装置のみを正常状態に復帰させるために、前記故障が発生した装置のみにリセット処理をさせるシステムコントローラと、
前記複数のマスタ装置および前記複数のスレーブ装置のうちいずれかの装置が故障状態のときに、対応する前記ダミーマスタ装置または前記ダミースレーブ装置と前記バスとが接続するように、前記故障状態の装置に対応する前記セレクタを制御するセレクタ制御回路とを備え、
各々が、前記複数のマスタ装置および前記複数のスレーブ装置のうちのいずれかに対応して設けられる複数の第１種のレジスタと、
前記複数のマスタ装置および前記複数のスレーブ装置が正常状態であるか、故障状態であるかを識別するために設けられる第２種のレジスタとを備え、
前記マスタ装置および前記スレーブ装置は、故障が発生したときに対応する第１種のレジスタをセットし、リセット処理が終了したときに対応する前記第１種のレジスタをクリアし、
前記第１種のレジスタがセットされたときに、前記第１種のレジスタは、前記第２種のレジスタ内の前記第１種のレジスタに対応するビットをセットし、前記第１種のレジスタがクリアされたときに、前記第１種のレジスタは、前記第２種のレジスタ内の前記第１種のレジスタに対応するビットをクリアし、
前記第２種のレジスタ内に保持されているビット値が変化したときに、前記第２種のレジスタは、割込み信号を前記複数のマスタ装置に出力し、
前記セレクタ制御回路は、前記第２種のレジスタ内に保持されているビット値に基づいて、前記複数のセレクタを制御する、バスシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスシステムに関する。
【背景技術】
【０００２】
バスシステムを構成する一部の装置に故障が発生した場合に、システム全体をリセットするのではなく、故障が発生した装置のみをリセットする方式が従来から知られている（たとえば、特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−２４７１８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、故障が発生していない装置Ａが、故障が発生した装置Ｂに信号を出力しても、故障が発生した装置Ｂは、リセット処理を実行中なので、故障が発生した装置Ｂは、応答を返すことができない。そのため、装置Ａは、応答を待ち続け、あるいは同じ信号の出力を繰り返す。その結果、システム全体の処理が停滞してしまう。
【０００５】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかであろう。
【課題を解決するための手段】
【０００６】
一実施形態のバスシステムは、バスに接続されることが可能な第１のダミーマスタ装置を備える。第１のダミーマスタ装置は、第１のマスタ装置に代わって、有効データがあることを表わす信号を受信したときに、信号の受信が可能なことを表わす信号を出力する。このバスシステムは、さらに、セレクタと、システムコントローラを備える。セレクタは、第１のマスタ装置と第１のダミーマスタ装置のうちのいずれかとバスとを接続する。システムコントローラは、複数のマスタ装置のうち、故障が発生したマスタ装置のみをリセット処理させる。これによって、故障が発生したマスタ装置のみを正常状態に復帰させる。このバスシステムは、さらに、セレクタ制御回路を備える。セレクタ制御回路は、第１のマスタ装置が故障状態のときに、第１のダミーマスタ装置とバスとが接続するようにセレクタを制御する。
【発明の効果】
【０００７】
一実施形態のバスシステムによれば、スレーブ装置が、有効データがあることを表わす信号を送信しても、信号の受信が可能なことを表わす信号をスレーブ装置が受信できない事態を防止することができる。
【図面の簡単な説明】
【０００８】
【図１】第１の実施形態のバスシステムの構成を表わす図である。
【図２】第２の実施形態のバスシステムの構成を表わす図である。
【図３】第３の実施形態のバスシステムの構成を表わす図である。
【図４】システム用ステータスレジスタを説明するための図である。
【図５】マスタ装置の処理手順を表わすフローチャートである。
【図６】スレーブ装置の処理手順を表わすフローチャートである。
【図７】マスタ装置の送信処理および受信処理の手順を表わすフローチャートである。
【図８】スレーブ装置の送信処理および受信処理の手順を表わすフローチャートである。
【図９】ダミーマスタ装置の送信処理および受信処理の手順を表わすフローチャートである。
【図１０】ダミースレーブ装置の送信処理および受信処理の手順を表わすフローチャートである。
【図１１】第３の実施形態のバスシステムの第１の動作例を説明するための図である。
【図１２】第３の実施形態のバスシステムの第１の動作例を説明するための図である。
【図１３】第３の実施形態のバスシステムの第２の動作例を説明するための図である。
【図１４】第３の実施形態のバスシステムの第２の動作例を説明するための図である。
【図１５】従来の動作例を説明するための図である。
【図１６】第３の実施形態のバスシステムの第３の動作例を説明するための図である。
【図１７】第４の実施形態のバスシステムの構成を表わす図である。
【図１８】第５の実施形態のバスシステムの構成を表わす図である。
【図１９】マスタ装置の縮退モード時の動作手順を表わすフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について図面を用いて説明する。
［第１の実施形態］
図１は、第１の実施形態のバスシステム１の構成を表わす図である。
【００１０】
このバスシステム１は、バス８と、システムコントローラ６と、マスタ装置２−１〜２−ｎと、スレーブ装置３−１〜３−ｍと、第１のダミーマスタ装置７と、セレクタ４と、セレクタ制御回路５とを備える。ただし、ｎは２以上であり、ｍは１以上である。マスタ装置２−１〜２−ｎの中の１つが、第１のマスタ装置２−１である。
【００１１】
マスタ装置２−１〜２−ｎおよびスレーブ装置３−１〜３−ｍが、バス８に接続されることができる。
【００１２】
システムコントローラ６は、マスタ装置２−１〜２−ｎのうち、故障が発生したマスタ装置のみをリセット処理させる。これにより、故障が発生した装置のみを正常状態に復帰させる。リセット処理とは、強制的に再起動することをいう。
【００１３】
第１のダミーマスタ装置７は、バス８に接続されることができる。第１のダミーマスタ装置７は、第１のマスタ装置２−１に代わって、有効データがあることを表わす信号を受信したときに、信号の受信が可能なことを表わす信号を出力する。
【００１４】
セレクタ４は、第１のマスタ装置２−１と第１のダミーマスタ装置７のうちのいずれかとバス８とを接続する。
【００１５】
セレクタ制御回路５は、第１のマスタ装置２−１が故障状態のときに第１のダミーマスタ装置７とバス８とが接続するように、セレクタ４を制御する。
【００１６】
第１のマスタ装置２−１に故障が発生したときには、以下が実行される。
第１のマスタ装置２−１のみがリセットされる。それと同時に、第１のダミーマスタ装置７とバス８とが接続される。第１のダミーマスタ装置７は、第１のマスタ装置２−１に代わって、有効データがあることを表わす信号を受信したときに、信号の受信が可能なことを表わす信号を出力する。
【００１７】
これによって、いずれかのスレーブ装置が、故障が発生した第１のマスタ装置２−１へ有効データがあることを表わす信号を送信した後、信号の受信が可能なことを表わす信号をそのスレーブ装置が受信することができる。その結果、システム全体の処理が停滞するのが防止される。
【００１８】
［第２の実施形態］
図２は、第２の実施形態のバスシステム１１の構成を表わす図である。
【００１９】
このバスシステム１１は、バス１８と、システムコントローラ１６と、スレーブ装置１２−１〜１２−ｎと、マスタ装置１３−１〜１３−ｍとを備える。このバスシステム１１は、さらに、第１のダミースレーブ装置１７と、セレクタ１４と、セレクタ制御回路１５とを備える。ただし、ｎは２以上であり、ｍは１以上である。スレーブ装置１２−１〜１２−ｎの中の１つが、第１のスレーブ装置１２−１である。
【００２０】
マスタ装置１３−１〜１３−ｍおよびスレーブ装置１２−１〜１２−ｎが、バス１８に接続されることができる。
【００２１】
システムコントローラ１６は、スレーブ装置１２−１〜１２−ｎのうち、故障が発生したスレーブ装置のみをリセット処理させることによって、故障が発生したスレーブ装置のみを正常状態に復帰させる。リセット処理とは、強制的に再起動することをいう。
【００２２】
第１のダミースレーブ装置１７は、バス１８に接続されることができる。第１のダミースレーブ装置１７は、第１のスレーブ装置１２−１に代わって、有効データがあることを表わす信号を受信したときに、信号の受信が可能なことを表わす信号を出力する。
【００２３】
セレクタ１４は、第１のスレーブ装置１２−１と第１のダミースレーブ装置１７のうちのいずれかとバス１８とを接続する。
【００２４】
セレクタ制御回路１５は、第１のスレーブ装置１２−１が故障状態のときに、第１のダミースレーブ装置１７とバス１８とが接続するように、セレクタ１４を制御する。
【００２５】
第１のスレーブ装置１２−１に故障が発生したときには、以下が実行される。
第１のスレーブ装置１２−１のみがリセットされる。それと同時に、第１のダミースレーブ装置１７とバス１８とが接続される。有効データがあることを表わす信号を第１のダミースレーブ装置１７が第１のスレーブ装置１２−１に代わって、受信したときに、第１のダミースレーブ装置１７は、信号の受信が可能なことを表わす信号を出力する。
【００２６】
これによって、いずれかのマスタ装置が、故障が発生した第１のスレーブ装置１２−１へ有効データがあることを表わす信号を送信したときには、以下が実行される。そのマスタ装置は、故障が発生した第１のスレーブ装置１２−１に対応する第１のダミースレーブ装置１７から、その第１のダミースレーブ装置１７において信号の受信が可能なことを表わす信号を受信する。その結果、システム全体の処理が停滞するのが防止される。
【００２７】
［第３の実施形態］
図３は、第３の実施形態のバスシステム２１の構成を表わす図である。
【００２８】
このバスシステム２１は、マスタ装置ＭＡ１，ＭＡ２と、スレーブ装置ＳＬ１，ＳＬ２と、バス２３と、ダミーマスタ装置ＤＭＡ１，ＤＭＡ２と、ダミースレーブ装置ＤＳＬ１，ＤＳＬ２とを備える。このバスシステム２１は、さらに、セレクタＳＬ（ＭＡ１），ＳＬ（ＭＡ２），ＳＬ（ＳＬ１），ＳＬ（ＳＬ２）と、システムコントローラ２２と、システム用ステータスレジスタＳＲ（Ｓｙｓ）とを備える。このバスシステム２１は、さらに、マスタ用ステータスレジスタＳＲ（ＭＡ１），ＳＲ（ＭＡ２）と、スレーブ用ステータスレジスタＳＲ（ＳＬ１），ＳＲ（ＳＬ２）と、セレクタ制御回路２９とを備える。
【００２９】
マスタ装置ＭＡ１，ＭＡ２、スレーブ装置ＳＬ１，ＳＬ２、ダミーマスタ装置ＤＭＡ１，ＤＭＡ２、ダミースレーブ装置ＤＳＬ１，ＤＳＬ２は、バス２３に接続されることができる。
【００３０】
バス２３は、マスタ装置ＭＡ１，ＭＡ２、スレーブ装置ＳＬ１，ＳＬ２、ダミーマスタ装置ＤＭＡ１，ＤＭＡ２、ダミースレーブ装置ＤＳＬ１，ＤＳＬ２間の信号の伝送のために用いられる。
【００３１】
マスタ装置ＭＡ１およびＭＡ２は、たとえば、ＣＰＵ（Central Processing Unit）、またはＤＭＡ（Dynamic Memory Access）コントローラなどである。スレーブ装置ＳＬ１およびＳＬ２は、たとえば、メモリコントローラ、またはＩ／Ｏコントローラなどである。マスタ装置ＭＡ１およびＭＡ２は、ユーザプログラムに従って動作することができる。
【００３２】
ダミーマスタ装置ＤＭＡ１は、マスタ装置ＭＡ１に対応して設けられる。ダミーマスタ装置ＤＭＡ２は、マスタ装置ＭＡ２に対応して設けられる。ダミースレーブ装置ＤＳＬ１は、スレーブ装置ＳＬ１に対応して設けられる。ダミースレーブ装置ＤＳＬ２は、スレーブ装置ＳＬ２に対応して設けられる。
【００３３】
セレクタＳＬ（ＭＡ１）は、マスタ装置ＭＡ１とダミーマスタ装置ＤＭＡ１のうちのいずれかと、バス２３とを接続する。セレクタＳＬ（ＭＡ２）は、マスタ装置ＭＡ２とダミーマスタ装置ＤＭＡ２のうちのいずれかと、バス２３とを接続する。セレクタＳＬ（ＳＬ１）は、スレーブ装置ＳＬ１とダミースレーブ装置ＤＳＬ１のうちのいずれかと、バス２３とを接続する。セレクタＳＬ（ＳＬ２）は、スレーブ装置ＳＬ２とダミースレーブ装置ＤＳＬ２のうちのいずれかと、バス２３とを接続する。
【００３４】
マスタ用ステータスレジスタＳＲ（ＭＡ１）は、マスタ装置ＭＡ１に対応して設けられる。マスタ用ステータスレジスタＳＲ（ＭＡ１）は、ユーザに対して公開されたレジスタである。マスタ用ステータスレジスタＳＲ（ＭＡ１）は、マスタ装置ＭＡ１で故障が発生した場合に、マスタ装置ＭＡ１のハードウエア構成によってセットされる。マスタ用ステータスレジスタＳＲ（ＭＡ１）は、マスタ装置ＭＡ１がリセットされた後、マスタ装置ＭＡ１で動作するユーザプログラムに従ってクリアされる。
【００３５】
マスタ用ステータスレジスタＳＲ（ＭＡ２）は、マスタ装置ＭＡ２に対応して設けられる。マスタ用ステータスレジスタＳＲ（ＭＡ２）は、ユーザに対して公開されたレジスタである。マスタ用ステータスレジスタＳＲ（ＭＡ２）は、マスタ装置ＭＡ２で故障が発生した場合に、マスタ装置ＭＡ２のハードウエア構成によってセットされる。マスタ用ステータスレジスタＳＲ（ＭＡ２）は、マスタ装置ＭＡ２がリセットされた後、マスタ装置ＭＡ２で動作するユーザプログラムに従ってクリアされる。
【００３６】
スレーブ用ステータスレジスタＳＲ（ＳＬ１）は、スレーブ装置ＳＬ１に対応して設けられる。スレーブ用ステータスレジスタＳＲ（ＳＬ１）は、ユーザに対して公開されていないレジスタである。スレーブ用ステータスレジスタＳＲ（ＳＬ１）は、スレーブ装置ＳＬ１で故障が発生した場合に、スレーブ装置ＳＬ１のハードウエア構成によってセットされる。スレーブ用ステータスレジスタＳＲ（ＳＬ１）は、スレーブ装置ＳＬ１がリセットされた後、スレーブ装置ＳＬ１のハードウエア構成によってクリアされる。
【００３７】
スレーブ用ステータスレジスタＳＲ（ＳＬ２）は、スレーブ装置ＳＬ２に対応して設けられる。スレーブ用ステータスレジスタＳＲ（ＳＬ２）は、ユーザに対して公開されていないレジスタである。スレーブ用ステータスレジスタＳＲ（ＳＬ２）は、スレーブ装置ＳＬ２で故障が発生した場合に、スレーブ装置ＳＬ２のハードウエア構成によってセットされる。スレーブ用ステータスレジスタＳＲ（ＳＬ２）は、スレーブ装置ＳＬ２がリセットされた後、スレーブ装置ＳＬ２のハードウエア構成によってクリアされる。
【００３８】
システム用ステータスレジスタＳＲ（Ｓｙｓ）は、マスタ装置ＭＡ１，ＭＡ２、スレーブ装置ＳＬ１，ＳＬ２が正常状態か、または故障状態であるかを管理するためのレジスタである。システム用ステータスレジスタＳＲ（Ｓｙｓ）は、ユーザに対して公開されたレジスタである。システム用ステータスレジスタＳＲ（Ｓｙｓ）に保持されたビット値は、マスタ装置ＭＡ１，ＭＡ２から読出されることができる。システム用ステータスレジスタＳＲ（Ｓｙｓ）に保持されるビット値が変化した場合に、システム用ステータスレジスタＳＲ（Ｓｙｓ）は、割込み信号ＩＲをマスタ装置ＭＡ１，ＭＡ２へ送信する。マスタ装置ＭＡ１，ＭＡ２は、割込み信号ＩＲを受信した後、システム用ステータスレジスタＳＲ（Ｓｙｓ）のビット値を読出すことによって、どこで故障が発生したか、あるいはどこで正常復帰されたかを知ることができる。マスタ装置ＭＡ１，ＭＡ２は、取得した各装置の状態に基づいて、モードを変更または維持することができる。
【００３９】
図４は、システム用ステータスレジスタＳＲ（Ｓｙｓ）を説明するための図である。
図４に示すように、システム用ステータスレジスタＳＲ（Ｓｙｓ）は、ｎ個のマスタ装置と、ｍ個のスレーブ装置の有効／無効および正常状態／故障状態を表わす複数のビット値を保持することができる。
【００４０】
システム用ステータスレジスタＳＲ（Ｓｙｓ）は、最下位ビットからｉビット分シフトした位置にマスタ装置ＭＡｉに対応する有効フラグを保持する。ｉ＝１〜ｎである。システム用ステータスレジスタＳＲ（Ｓｙｓ）は、最下位ビットから（ｎ＋ｊ）ビット分シフトした位置にスレーブ装置ＳＬｊに対応する有効フラグを保持する。ｊ＝１〜ｍである。システム用ステータスレジスタＳＲ（Ｓｙｓ）は、最下位ビットから（ｎ＋ｍ＋ｉ）ビット分シフトした位置にマスタ装置ＭＡｉに対応する故障フラグを保持する。ｉ＝１〜ｎである。システム用ステータスレジスタＳＲ（Ｓｙｓ）は、最下位ビットから（２ｎ＋ｍ＋ｊ）ビット分シフトした位置にスレーブ装置ＳＬｊに対応する故障フラグを保持する。ｊ＝１〜ｍである。
【００４１】
マスタ装置ＭＡｉに対応する故障フラグは、同時にマスタ用ステータスレジスタＳＲ（ＭＡｉ）に対応する。スレーブ装置ＳＬｊに対応する故障フラグは、同時にスレーブ用ステータスレジスタＳＲ（ＳＬｊ）に対応する。
【００４２】
マスタ装置ＭＡｉ（ｉ＝１〜ｎ）に対応する有効性フラグが「１」であることは、バスシステム２１がマスタ装置ＭＡｉを備えることを表わす。マスタ装置ＭＡｉに対応する有効性フラグが「０」であることは、バスシステム２１がマスタ装置ＭＡｉを備えないことを表わす。
【００４３】
スレーブ装置ＳＬｊ（ｊ＝１〜ｍ）に対応する有効性フラグが「１」であることは、バスシステム２１がスレーブ装置ＳＬｊを備えることを表わす。スレーブ装置ＳＬｊに対応する有効性フラグが「０」であることは、バスシステム２１がスレーブ装置ＳＬｊを備え
ないことを表わす。
【００４４】
マスタ装置ＭＡｉ（ｉ＝１〜ｎ）に対応する故障フラグが「０」であることは、マスタ装置ＭＡｉが正常状態であることを表わす。マスタ装置ＭＡｉに対応する故障フラグが「１」であることは、マスタ装置ＭＡｉが故障状態であることを表わす。
【００４５】
スレーブ装置ＳＬｊ（ｊ＝１〜ｍ）に対応する故障フラグが「０」であることは、スレーブ装置ＳＬｊが正常状態であることを表わす。スレーブ装置ＳＬｊに対応する故障フラグが「１」であることは、スレーブ装置ＳＬｊが故障状態であることを表わす。
【００４６】
図４の例では、バスシステムが、マスタ装置ＭＡ１，ＭＡ２およびスレーブ装置ＳＬ１，ＳＬ２を含むことが示されている。さらに、マスタ装置ＭＡ１，ＭＡ２およびスレーブ装置ＳＬ１，ＳＬ２が正常状態であることが示されている。
【００４７】
マスタ用ステータスレジスタＳＲ（ＭＡ１）は、セットされた後、システム用ステータスレジスタＳＲ（Ｓｙｓ）内のマスタ用ステータスレジスタＳＲ（ＭＡ１）に対応する故障フラグのビットをセットする。マスタ用ステータスレジスタＳＲ（ＭＡ１）は、クリアされた後、システム用ステータスレジスタＳＲ（Ｓｙｓ）内のマスタ用ステータスレジスタＳＲ（ＭＡ１）に対応する故障フラグのビットをクリアする。
【００４８】
マスタ用ステータスレジスタＳＲ（ＭＡ２）は、セットされた後、システム用ステータスレジスタＳＲ（Ｓｙｓ）内のマスタ用ステータスレジスタＳＲ（ＭＡ２）に対応する故障フラグのビットをセットする。マスタ用ステータスレジスタＳＲ（ＭＡ２）は、クリアされた後、システム用ステータスレジスタＳＲ（Ｓｙｓ）内のマスタ用ステータスレジスタＳＲ（ＭＡ２）に対応する故障フラグのビットをクリアする。
【００４９】
スレーブ用ステータスレジスタＳＲ（ＳＬ１）は、セットされた後、システム用ステータスレジスタＳＲ（Ｓｙｓ）内のスレーブ用ステータスレジスタＳＲ（ＳＬ１）に対応する故障フラグのビットをセットする。スレーブ用ステータスレジスタＳＲ（ＳＬ１）は、クリアされた後、システム用ステータスレジスタＳＲ（Ｓｙｓ）内のスレーブ用ステータスレジスタＳＲ（ＳＬ１）に対応する故障フラグのビットをクリアする。
【００５０】
スレーブ用ステータスレジスタＳＲ（ＳＬ２）は、セットされた後、システム用ステータスレジスタＳＲ（Ｓｙｓ）内のスレーブ用ステータスレジスタＳＲ（ＳＬ２）に対応する故障フラグのビットをセットする。スレーブ用ステータスレジスタＳＲ（ＳＬ２）は、クリアされた後、システム用ステータスレジスタＳＲ（Ｓｙｓ）内のスレーブ用ステータスレジスタＳＲ（ＳＬ２）に対応する故障フラグのビットをクリアする。
【００５１】
セレクタ制御回路２９は、システム用ステータスレジスタＳＲ（Ｓｙｓ）内の故障フラグのビット値に基づいて、セレクタＳＬ（ＭＡ１），ＳＬ（ＭＡ２），ＳＬ（ＳＬ１），ＳＬ（ＳＬ２）の切替えを制御する。
【００５２】
セレクタ制御回路２９は、マスタ装置ＭＡ１に対応する故障フラグのビット値が「０」の場合に、セレクタＳＬ（ＭＡ１）を制御して、マスタ装置ＭＡ１とバス２３とを接続する。セレクタ制御回路２９は、マスタ装置ＭＡ１に対応する故障フラグのビット値が「１」の場合に、ダミーマスタ装置ＤＭＡ１とバス２３とが接続するように、セレクタＳＬ（ＭＡ１）を制御する。
【００５３】
セレクタ制御回路２９は、マスタ装置ＭＡ２に対応する故障フラグのビット値が「０」の場合に、マスタ装置ＭＡ２とバス２３とが接続するように、セレクタＳＬ（ＭＡ２）を
制御する。セレクタ制御回路２９は、マスタ装置ＭＡ２に対応する故障フラグのビット値が「１」の場合に、ダミーマスタ装置ＤＭＡ２とバス２３とが接続するように、セレクタＳＬ（ＭＡ２）を制御する。
【００５４】
セレクタ制御回路２９は、スレーブ装置ＳＬ１に対応する故障フラグのビット値が「０」の場合に、スレーブ装置ＳＬ１とバス２３とが接続するように、セレクタＳＬ（ＳＬ１）を制御する。セレクタ制御回路２９は、スレーブ装置ＳＬ１に対応する故障フラグのビット値が「１」の場合に、ダミースレーブ装置ＤＳＬ１とバス２３とが接続するように、セレクタＳＬ（ＳＬ１）を制御する。
【００５５】
セレクタ制御回路２９は、スレーブ装置ＳＬ２に対応する故障フラグのビット値が「０」の場合に、スレーブ装置ＳＬ２とバス２３とが接続するように、セレクタＳＬ（ＳＬ２）を制御する。セレクタ制御回路２９は、スレーブ装置ＳＬ２に対応する故障フラグのビット値が「１」の場合に、ダミースレーブ装置ＤＳＬ２とバス２３とが接続するように、セレクタＳＬ（ＳＬ２）を制御する。
【００５６】
システムコントローラ２２は、マスタ装置ＭＡ１，ＭＡ２およびスレーブ装置ＳＬ１，ＳＬ２のうち、故障が発生した装置のみをリセット処理させることによって、故障が発生した装置のみを正常状態に復帰させる。
【００５７】
図５は、マスタ装置ＭＡ１の処理手順を表わすフローチャートである。マスタ装置ＭＡ２の処理手順も同様である。
【００５８】
図５を参照して、ステップＳ３００において、マスタ装置ＭＡ１は、モードをデフォルトの通常モードに移行させる。通常モードでは、マスタ装置ＭＡ１は、制約を受けることなく、処理を実行する。
【００５９】
ステップＳ３０１において、マスタ装置ＭＡ１が、故障が発生したことを検出したときには、処理がステップＳ３０２に進み、マスタ装置ＭＡ１が、故障が発生したことを検出しないときには、処理がステップＳ３０５に進む。
【００６０】
ステップＳ３０２において、マスタ装置ＭＡ１は、マスタ用ステータスレジスタＳＲ（ＭＡ１）をセットする。
【００６１】
ステップＳ３０３において、マスタ装置ＭＡ１は、リセット処理を実行する。
ステップＳ３０４において、マスタ装置ＭＡ１は、リセット処理の終了後に、マスタ用ステータスレジスタＳＲ（ＭＡ１）をクリアする。
【００６２】
ステップＳ３０５において、マスタ装置ＭＡ１が、システム用ステータスレジスタＳＲ（Ｓｙｓ）からの割込み信号ＩＲを受信したときには、処理がステップＳ３０６に進む。マスタ装置ＭＡ１が、システム用ステータスレジスタＳＲ（Ｓｙｓ）からの割込み信号ＩＲを受信しないときには、処理がステップＳ３０９に進む。
【００６３】
ステップＳ３０６において、マスタ装置ＭＡ１は、システム用ステータスレジスタＳＲ（Ｓｙｓ）のビット値を読出すことによって、故障が発生した装置を特定する。マスタ装置ＭＡ１は、モードを故障が発生した装置に応じた縮退モードに移行させる。
【００６４】
ステップＳ３０７において、マスタ装置ＭＡ１が読み出したシステム用ステータスレジスタＳＲ（Ｓｙｓ）のビット値が、全装置が正常であることを示すときには、処理がステップＳ３０８に進む。
【００６５】
ステップＳ３０８において、マスタ装置ＭＡ１は、モードを通常モードに移行させる。
ステップＳ３０９において、マスタ装置ＭＡ１は、モードを通常モードに維持させる。
【００６６】
ステップＳ３０４、Ｓ３０８、およびＳ３０９の後、ステップＳ３１０において、バスシステム２１の電源がオフになったときには、処理が終了する。ステップＳ３１０において、バスシステム２１の電源がオンのときには、処理がステップＳ３０１に戻る。
【００６７】
図６は、スレーブ装置ＳＬ１の処理手順を表わすフローチャートである。スレーブ装置ＳＬ２の処理手順も同様である。
【００６８】
ステップＳ４０１において、スレーブ装置ＳＬ１が、故障が発生したことを検出したときには、処理がステップＳ４０２に進み、スレーブ装置ＳＬ１が、故障が発生したことを検出しないときには、処理がステップＳ４０６に進む。
【００６９】
ステップＳ４０２において、スレーブ装置ＳＬ１は、スレーブ用ステータスレジスタＳＲ（ＳＬ１）をセットする。
【００７０】
ステップＳ４０３において、スレーブ装置ＳＬ１は、リセット処理を実行する。
ステップＳ４０４において、スレーブ装置ＳＬ１は、リセット処理の終了後に、スレーブ用ステータスレジスタＳＲ（ＳＬ１）をクリアする。
【００７１】
ステップＳ４０４、およびＳ４０１でＮＯの後、ステップＳ４０６において、バスシステム２１の電源がオフになったときには、処理が終了する。ステップＳ４０６において、バスシステム２１の電源がオンのときには、処理がステップＳ４０１に戻る。
【００７２】
マスタ装置ＭＡ１、ＭＡ２とスレーブ装置ＳＬ１，ＳＬ２は、Ｖａｌｉｄ−Ｒｅａｄｙによるハンドシェイクを行なうことによって、マスタ装置ＭＡ１，ＭＡ２からのリクエストがスレーブ装置ＳＬ１，ＳＬ２へ伝送される。
【００７３】
また、マスタ装置ＭＡ１、ＭＡ２とスレーブ装置ＳＬ１，ＳＬ２とは、Ｖａｌｉｄ−Ｒｅａｄｙによるハンドシェイクを行なうことによって、スレーブ装置ＳＬ１，ＳＬ２からのレスポンスがマスタ装置ＭＡ１，ＭＡ２へ伝送される。
【００７４】
図７は、マスタ装置ＭＡ１の送信処理および受信処理の手順を表わすフローチャートである。マスタ装置ＭＡ２の送信処理および受信処理の手順も同様である。
【００７５】
ステップＳ６０１において、マスタ装置ＭＡ１が、スレーブ装置ＳＬ１またはスレーブ装置ＳＬ２に出力するリクエストを有するときには、処理がステップＳ６０２に進む。以下では、スレーブ装置ＳＬ１とスレーブ装置ＳＬ２のうち、リクエストの宛先の方をスレーブ装置ＳＬαとする。
【００７６】
ステップＳ６０２において、マスタ装置ＭＡ１は、スレーブ装置ＳＬαへ向けて、有効データがあることを表わすＶａｉｉｄ信号を送信する。Ｖａｌｉｄ信号は、スレーブ装置ＳＬα、またはスレーブ装置ＳＬαの代替装置であるダミースレーブ装置ＤＳＬαへ送られる。
【００７７】
ステップＳ６０３において、マスタ装置ＭＡ１が、受信可能であることを表わすＲｅａｄｙ信号を受信したときには、処理がステップＳ６０４に進む。Ｒｅａｄｙ信号は、スレーブ装置ＳＬα、またはダミースレーブ装置ＤＳＬαから送られる。マスタ装置ＭＡ１が、受信可能であることを表わすＲｅａｄｙ信号を受信しないときには、処理がステップＳ６０２に戻る。これにより、マスタ装置ＭＡ１は、Ｖａｌｉｄ信号を再送信する。
【００７８】
ステップＳ６０４において、マスタ装置ＭＡ１は、スレーブ装置ＳＬαへ向けてリクエストを送信する。リクエストは、スレーブ装置ＳＬα、またはダミースレーブ装置ＤＳＬαへ送られる。
【００７９】
ステップＳ６０６において、マスタ装置ＭＡ１が、有効データがあることを表わすＶａｌｉｄ信号を受信したときには、処理がステップＳ６０７に進む。Ｖａｌｉｄ信号は、スレーブ装置ＳＬα、またはダミースレーブ装置ＤＳＬαから送られる。
【００８０】
ステップＳ６０７において、マスタ装置ＭＡ１は、受信可能であることを表わすＲｅａｄｙ信号を送信する。Ｒｅａｄｙ信号は、スレーブ装置ＳＬα、またはダミースレーブ装置ＤＳＬαへ送られる。
【００８１】
ステップＳ６０８において、マスタ装置ＭＡ１は、レスポンスを受信する。レスポンスは、スレーブ装置ＳＬα、またはダミースレーブ装置ＤＳＬαから送られる。 
【００８２】
図８は、スレーブ装置ＳＬ１の送信処理および受信処理の手順を表わすフローチャートである。スレーブ装置ＳＬ２の送信処理および受信処理の手順も同様である。
【００８３】
ステップＳ７０１において、スレーブ装置ＳＬ１が、有効データがあることを表すＶａｌｉｄ信号を受信したときには、処理がステップＳ７０２に進む。以下では、マスタ装置ＭＡ１とマスタ装置ＭＡ２のうち、リクエストの発信元の方をマスタ装置ＭＡαとする。Ｖａｌｉｄ信号は、マスタ装置ＭＡα、またはダミーマスタ装置ＤＭＡαから送られる。
【００８４】
ステップＳ７０２において、スレーブ装置ＳＬ１が、マスタ装置ＭＡαへ向けて、受信可能であることを表わすＲｅａｄｙ信号を送信する。Ｒｅａｄｙ信号は、マスタ装置ＭＡα、またはダミーマスタ装置ＤＭＡαへ送られる。
【００８５】
ステップＳ７０３において、スレーブ装置ＳＬ１が、リクエストを受信する。リクエストは、マスタ装置ＭＡα、またはダミーマスタ装置ＤＭＡαから送られる。
【００８６】
ステップＳ７０４において、スレーブ装置ＳＬ１が、リクエストに応じた処理を実行する。
【００８７】
ステップＳ７０６において、スレーブ装置ＳＬ１が、マスタ装置ＭＡαへ向けて有効データがあることを表わすＶａｌｉｄ信号を送信する。Ｖａｌｉｄ信号は、マスタ装置ＭＡα、またはダミーマスタ装置ＤＭＡαへ送られる。
【００８８】
ステップＳ７０７において、スレーブ装置ＳＬ１が、受信可能であることを表わすＲｅａｄｙ信号を受信したときには、処理がステップＳ７０８に進む。Ｒｅａｄｙ信号は、マスタ装置ＭＡα、またはダミーマスタ装置ＤＭＡαから送られる。スレーブ装置ＳＬ１が、受信可能であることを表わすＲｅａｄｙ信号を受信しないときには、処理がステップＳ７０６に戻る。これにより、スレーブ装置ＳＬ１がＶａｌｉｄ信号を再送信する。
【００８９】
ステップＳ７０８において、スレーブ装置ＳＬ１は、マスタ装置ＭＡαへ向けて、リクエストに応じた処理の結果を表わすレスポンスを送信する。レスポンスは、マスタ装置ＭＡα、またはダミーマスタ装置ＤＭＡαへ送られる。
【００９０】
マスタ装置ＭＡ１が過去にスレーブ装置ＳＬ１またはＳＬ２へＶａｌｉｄ信号を出力した場合に、スレーブ装置ＳＬ１またはＳＬ２から出力されるＲｅａｄｙ信号をダミーマスタ装置ＤＭＡ１は、マスタ装置ＭＡ１の代わりに、受信することができる。またマスタ装置ＭＡ１が過去にスレーブ装置ＳＬ１またはＳＬ２へリクエストを出力した場合に、スレーブ装置ＳＬ１またはＳＬ２からのレスポンスをダミーマスタ装置ＤＭＡ１は、マスタ装置ＭＡ１の代わりに、受信することができる。マスタ装置ＭＡ１の代わりに、ダミーマスタ装置ＤＭＡ１は、スレーブ装置ＳＬ１またはＳＬ２から出力されるＶａｌｉｄ信号を受信して、Ｒｅａｄｙ信号を出力することができる。また、ダミーマスタ装置ＤＭＡ１がスレーブ装置ＳＬ１またはＳＬ２へＶａｌｉｄ信号を出力した場合に、Ｖａｌｉｄ信号に対してスレーブ装置ＳＬ１またはＳＬ２から出力されるＲｅａｄｙ信号をダミーマスタ装置ＤＭＡ１は、受信することができる。このような機能を設けた理由は、スレーブ装置ＳＬ１またはＳＬ２がＲｅａｄｙ信号およびレスポンスの出力を繰り返すような事態を防止するためである。
【００９１】
マスタ装置ＭＡ２が過去にスレーブ装置ＳＬ１またはＳＬ２へＶａｌｉｄ信号を出力した場合に、ダミーマスタ装置ＤＭＡ２は、マスタ装置ＭＡ２の代わりに、Ｖａｌｉｄ信号に対して、スレーブ装置ＳＬ１またはＳＬ２から出力されるＲｅａｄｙ信号を受信することができる。また、マスタ装置ＭＡ２が過去にスレーブ装置ＳＬ１またはＳＬ２へリクエストを出力した場合に、リクエストに対するスレーブ装置ＳＬ１またはＳＬ２からのレスポンスをダミーマスタ装置ＤＭＡ２は、マスタ装置ＭＡ２の代わりに、受信することができる。マスタ装置ＭＡ２の代わりに、ダミーマスタ装置ＤＭＡ２は、スレーブ装置ＳＬ１またはＳＬ２から出力されるＶａｌｉｄ信号を受信して、Ｒｅａｄｙ信号を出力することができる。また、ダミーマスタ装置ＤＭＡ２がスレーブ装置ＳＬ１またはＳＬ２へＶａｌｉｄ信号を出力した場合に、Ｖａｌｉｄ信号に対するスレーブ装置ＳＬ１またはＳＬ２から出力されるＲｅａｄｙ信号をダミーマスタ装置ＤＭＡ２は、受信することができる。このような機能を設けた理由は、スレーブ装置ＳＬ１またはＳＬ２がＲｅａｄｙ信号およびレスポンスの出力を繰り返すような事態を防止するためである。
【００９２】
スレーブ装置ＳＬ１の代わりに、ダミースレーブ装置ＤＳＬ１は、マスタ装置ＭＡ１またはマスタ装置ＭＡ２から出力されるＶａｌｉｄ信号を受信して、Ｒｅａｄｙ信号をマスタ装置ＭＡ１またはマスタ装置ＭＡ２へ出力することができる。スレーブ装置ＳＬ１が過去にマスタ装置ＭＡ１またはＭＡ２へＶａｌｉｄ信号を出力した場合に、Ｖａｌｉｄ信号に対して、マスタ装置ＭＡ１またはＭＡ２から出力されるＲｅａｄｙ信号をダミースレーブ装置ＤＳＬ１は、スレーブ装置ＳＬ１の代わりに受信することができる。また、スレーブ装置ＳＬ１に代わりに、ダミースレーブ装置ＤＳＬ１は、マスタ装置ＭＡ１またはマスタ装置ＭＡ２から出力されるリクエストを受信して、ダミーのレスポンスをマスタ装置ＭＡ１またはマスタ装置ＭＡ２へ出力することができる。また、ダミースレーブ装置ＤＳＬ１がマスタ装置ＭＡ１またはＭＡ２へＶａｌｉｄ信号を出力した場合に、マスタ装置ＭＡ１またはＭＡ２から出力されるＲｅａｄｙ信号をダミースレーブ装置ＤＳＬ１は、受信することができる。このような機能を設けた理由は、マスタ装置ＭＡ１またはＭＡ２がＲｅａｄｙ信号およびレスポンスを待ち続けるような事態を防止するためである。
【００９３】
スレーブ装置ＳＬ２の代わりに、ダミースレーブ装置ＤＳＬ２は、マスタ装置ＭＡ１またはマスタ装置ＭＡ２から出力されるＶａｌｉｄ信号を受信して、Ｒｅａｄｙ信号をマスタ装置ＭＡ１またはマスタ装置ＭＡ２へ出力することができる。スレーブ装置ＳＬ２が過去にマスタ装置ＭＡ１またはＭＡ２へＶａｌｉｄ信号を出力した場合に、Ｖａｌｉｄ信号に対して、マスタ装置ＭＡ１またはＭＡ２から出力されるＲｅａｄｙ信号をダミースレーブ装置ＤＳＬ２は、スレーブ装置ＳＬ２の代わりに受信することができる。また、スレーブ装置ＳＬ２の代わりに、ダミースレーブ装置ＤＳＬ２は、マスタ装置ＭＡ１またはマスタ装置ＭＡ２から出力されるリクエストを受信して、ダミーのレスポンスをマスタ装置ＭＡ１またはマスタ装置ＭＡ２へ出力することができる。また、ダミースレーブ装置ＤＳＬ２がマスタ装置ＭＡ１またはＭＡ２へＶａｌｉｄ信号を出力した場合に、Ｖａｌｉｄ信号に対するマスタ装置ＭＡ１またはＭＡ２から出力されるＲｅａｄｙ信号をダミースレーブ装置ＤＳＬ２は、受信することができる。このような機能を設けた理由は、マスタ装置ＭＡ１またはＭＡ２がＲｅａｄｙ信号およびレスポンスを待ち続けるような事態を防止するためである。
【００９４】
図９は、ダミーマスタ装置ＤＭＡ１の送信処理および受信処理の手順を表わすフローチャートである。ダミーマスタ装置ＤＭＡ２の送信処理および受信処理の手順も同様である。
【００９５】
ステップＳ８０１において、ダミーマスタ装置ＤＭＡ１が、有効なデータがあることを表わすＶａｌｉｄ信号を受信したときには、処理がステップＳ８０２に進む。以下では、スレーブ装置ＳＬ１とスレーブ装置ＳＬ２のうち、リクエストの宛先の方をスレーブ装置ＳＬαとする。Ｖａｌｉｄ信号は、スレーブ装置ＳＬα、またはダミースレーブ装置ＤＳＬαから送られる。
【００９６】
ステップＳ８０２において、ダミーマスタ装置ＤＭＡ１は、受信可能であることを表わすＲｅａｄｙ信号を送信する。Ｒｅａｄｙ信号は、スレーブ装置ＳＬα、またはダミースレーブ装置ＤＳＬαへ送られる。
【００９７】
ステップＳ８０３において、ダミーマスタ装置ＤＭＡ１は、レスポンスを受信する。レスポンスは、マスタ装置ＭＡ１から送信されたリクエストに対するスレーブ装置ＳＬαまたはダミースレーブ装置ＤＳαによる処理結果を表わす。レスポンスは、スレーブ装置ＳＬα、またはダミースレーブ装置ＤＳＬαから送られる。
【００９８】
ステップＳ８０４において、ダミーマスタ装置ＤＭＡ１が、受信可能であることを表わすＲｅａｄｙ信号を受信したときには、処理がステップＳ８０５に進む。Ｒｅａｄｙ信号は、スレーブ装置ＳＬα、またはダミースレーブ装置ＤＳＬαから送られる。
【００９９】
ステップＳ８０５において、ダミーマスタ装置ＤＭＡ１は、スレーブ装置ＳＬαへ向けてダミーのリクエストを送信する。ダミーのリクエストは、スレーブ装置ＳＬα、またはダミースレーブ装置ＤＳＬαへ送られる。
【０１００】
図１０は、ダミースレーブ装置ＤＳＬ１の送信処理および受信処理の手順を表わすフローチャートである。ダミースレーブ装置ＤＳＬ２の送信処理および受信処理の手順も同様である。
【０１０１】
ステップＳ９０１において、ダミースレーブ装置ＤＳＬ１が、有効なデータがあることを表わすＶａｌｉｄ信号を受信したときには、処理がステップＳ９０２に進む。以下では、マスタ装置ＭＡ１とマスタ装置ＭＡ２のうち、リクエストの発信元の方をマスタ装置ＭＡαとする。Ｖａｌｉｄ信号は、マスタ装置ＭＡα、またはダミーマスタ装置ＤＭＡαから送られる。
【０１０２】
ステップＳ９０２において、ダミースレーブ装置ＤＳＬ１が、マスタ装置ＭＡαへ向けて、受信可能であることを表わすＲｅａｄｙ信号を送信する。Ｒｅａｄｙ信号は、マスタ装置ＭＡα、またはダミーマスタ装置ＤＭＡαへ送られる。
【０１０３】
ステップＳ９０３において、ダミースレーブ装置ＤＳＬ１が、リクエストを受信する。リクエストは、マスタ装置ＭＡα、またはダミーマスタ装置ＤＭＡαから送られる。
【０１０４】
ステップＳ９０５において、ダミースレーブ装置ＤＳＬ１が、マスタ装置ＭＡαへ向けて、有効なデータがあることを表わすＶａｌｉｄ信号を送信する。Ｖａｌｉｄ信号は、マスタ装置ＭＡα、またはダミーマスタ装置ＤＭＡαへ送られる。
【０１０５】
ステップＳ９０６において、ダミースレーブ装置ＤＳＬ１が、受信可能であることを表わすＲｅａｄｙ信号を受信したときには、処理がステップＳ９０７に進む。Ｒｅａｄｙ信号は、マスタ装置ＭＡα、またはダミーマスタ装置ＤＭＡαから送られる。ダミースレーブ装置ＤＳＬ１が、Ｒｅａｄｙ信号を受信しないときには、処理がステップＳ９０５に戻る。これにより、ダミースレーブ装置ＤＳＬ１は、Ｖａｌｉｄ信号を再送信する。
【０１０６】
ステップＳ９０７において、ダミースレーブ装置ＤＳＬ１は、マスタ装置ＭＡαへ向けてダミーのレスポンスを送信する。レスポンスは、マスタ装置ＭＡα、またはダミーマスタ装置ＤＭＡαへ送られる。
【０１０７】
図１１および図１２は、第３の実施形態のバスシステム２１の第１の動作例を説明するための図である。
【０１０８】
ステップＳ１０１において、マスタ装置ＭＡ２が、故障発生を検出する（図１１の（１）を参照）。
【０１０９】
ステップＳ１０２において、マスタ装置ＭＡ２は、マスタ用ステータスレジスタＳＲ（ＭＡ２）をセットする（図１１の（２）を参照）。これによって、マスタ用ステータスレジスタＳＲ（ＭＡ２）は、「１」を保持する。
【０１１０】
ステップＳ１０３において、マスタ装置ＭＡ２は、リセット処理を開始する（図１１の（３）を参照）。
【０１１１】
ステップＳ１０４において、マスタ用ステータスレジスタＳＲ（ＭＡ２）は、システム用ステータスレジスタＳＲ（Ｓｙｓ）内のマスタ装置ＭＡ２に対応する故障フラグをセットする（図１１の（４）を参照）。これによって、システム用ステータスレジスタＳＲ（Ｓｙｓ）内のマスタ装置ＭＡ２に対応する故障フラグが「１」に設定される。
【０１１２】
ステップＳ１０５において、システム用ステータスレジスタＳＲ（Ｓｙｓ）内のマスタ装置ＭＡ２に対する故障フラグが「１」に設定されたことに応じて、セレクタＳＬ（ＭＡ２）は、バス２３と、ダミーマスタ装置ＤＭＡ２とを接続する。その結果、ダミーマスタ装置ＤＭＡ２は、マスタ装置ＭＡ２に代わって、スレーブ装置ＳＬ１，ＳＬ２またはダミースレーブ装置ＤＳＬ１，ＤＳＬ２からのＶａｌｉｄ信号、Ｒｅａｄｙ信号およびレスポンスを受信する。ダミーマスタ装置ＤＭＡ２は、マスタ装置ＭＡ２に代わって、さらに、スレーブ装置ＳＬ１，ＳＬ２またはダミースレーブ装置ＤＳＬ１，ＤＳＬ２へＲｅａｄｙ信号、およびダミーのリクエストを送信する。
【０１１３】
ステップＳ１０５と並行して、ステップＳ１０６において、マスタ装置ＭＡ１が、システム用ステータスレジスタＳＲ（Ｓｙｓ）からの割込み信号ＩＲを受信する（図１１の（５）を参照）。その後、マスタ装置ＭＡ１は、システム用ステータスレジスタＳＲ（Ｓｙｓ）の故障フラグを読出して、故障が発生した装置がマスタ装置ＭＡ２であることを特定する。マスタ装置ＭＡ１は、モードをマスタ装置ＭＡ２が故障中であるときに対応するモードである縮退モードＭｄ（ＭＡ２）に移行させる（図１１の（６）を参照）。マスタ装置ＭＡ１は、縮退モードＭｄ（ＭＡ２）時には、マスタ装置ＭＡ２において処理が発生しないように、自己の処理を調整する。たとえば、実行権限を有するマスタ装置ＭＡ１が、ある命令Ａを実行すると、実行権限がマスタ装置ＭＡ２に移る場合に、マスタ装置ＭＡ１は、縮退モードＭｄ（ＭＡ２）において、命令Ａの実行を回避する。
【０１１４】
ステップＳ１０７において、マスタ装置ＭＡ２が、リセット処理を終了する（図１１の（７）を参照）。
【０１１５】
ステップＳ１０８において、マスタ装置ＭＡ２が、マスタ用ステータスレジスタＳＲ（ＭＡ２）をクリアする（図１１の（８）を参照）。これによって、マスタ用ステータスレジスタＳＲ（ＭＡ２）は、「０」を保持する。
【０１１６】
ステップＳ１０９において、マスタ用ステータスレジスタＳＲ（ＭＡ２）が、システム用ステータスレジスタＳＲ（Ｓｙｓ）内のマスタ装置ＭＡ２に対応する故障フラグをクリアする（図１１の（９）を参照）。これによって、システム用ステータスレジスタＳＲ（Ｓｙｓ）内のマスタ装置ＭＡ２に対応する故障フラグが「０」に設定される。
【０１１７】
ステップＳ１１０において、システム用ステータスレジスタＳＲ（Ｓｙｓ）内のマスタ装置ＭＡ２に対応する故障フラグが「０」に設定されたことに応じて、セレクタＳＬ（ＭＡ２）は、バス２３と、マスタ装置ＭＡ２とを接続する。その結果、マスタ装置ＭＡ２が、スレーブ装置ＳＬ１，ＳＬ２またはダミースレーブ装置ＤＳＬ１，ＤＳＬ２からのＶａｌｉｄ信号、Ｒｅａｄｙ信号およびレスポンスを受信する。マスタ装置ＭＡ２は、さらに、スレーブ装置ＳＬ１，ＳＬ２またはダミースレーブ装置ＤＳＬ１，ＤＳＬ２へＲｅａｄｙ信号、およびリクエストを送信する。
【０１１８】
ステップＳ１１０と並行して、ステップＳ１１１において、マスタ装置ＭＡ１およびＭＡ２が、システム用ステータスレジスタＳＲ（Ｓｙｓ）からの割込み信号ＩＲを受信する（図１１の（１０）を参照）。その後、マスタ装置ＭＡ１およびＭＡ２は、システム用ステータスレジスタＳＲ（Ｓｙｓ）のすべての故障フラグを読出して、全マスタ装置および全スレーブ装置が正常であることを知得する。これによって、マスタ装置ＭＡ１およびＭＡ２は、モードを通常モードに移行させる（図１１の（１１）を参照）。
【０１１９】
図１３および図１４は、第３の実施形態のバスシステム２１の第２の動作例を説明するための図である。
【０１２０】
ステップＳ２０１において、スレーブ装置ＳＬ１が、故障発生を検出する（図１３の（１）を参照）。
【０１２１】
ステップＳ２０２において、スレーブ装置ＳＬ１は、スレーブ用ステータスレジスタＳＲ（ＳＬ１）をセットする（図１３の（２）を参照）。これによって、スレーブ用ステータスレジスタＳＲ（ＳＬ１）は、「１」を保持する。
【０１２２】
ステップＳ２０３において、スレーブ装置ＳＬ１は、リセット処理を開始する（図１３の（３）を参照）。
【０１２３】
ステップＳ２０４において、スレーブ用ステータスレジスタＳＲ（ＳＬ１）は、「１」を保持しているので、システム用ステータスレジスタＳＲ（Ｓｙｓ）のスレーブ装置ＳＬ１に対応する故障フラグをセットする（図１３の（４）を参照）これによって、システム用ステータスレジスタＳＲ（Ｓｙｓ）内のスレーブ装置ＳＬ１に対応する故障フラグが「１」に設定される。
【０１２４】
ステップＳ２０５において、システム用ステータスレジスタＳＲ（Ｓｙｓ）において、スレーブ装置ＳＬ１に対する故障フラグが「１」に設定されたことに応じて、セレクタＳＬ（ＳＬ１）は、バス２３と、ダミースレーブ装置ＤＳＬ１とを接続する。その結果、ダミースレーブ装置ＤＳＬ１が、スレーブ装置ＳＬ１に代わって、マスタ装置ＭＡ１，ＭＡ２またはダミーマスタ装置ＤＭＡ１，ＤＭＡ２からのＶａｌｉｄ信号、Ｒｅａｄｙ信号およびリクエストを受信する。ダミースレーブ装置ＤＳＬ１が、スレーブ装置ＳＬ１に代わって、さらにマスタ装置ＭＡ１，ＭＡ２またはダミーマスタ装置ＤＭＡ１，ＤＭＡ２へＲｅａｄｙ信号、Ｖａｌｉｄ信号、およびダミーのレスポンスを送信する。
【０１２５】
ステップＳ２０５と並行して、ステップＳ２０６において、マスタ装置ＭＡ１およびマスタ装置ＭＡ２が、システム用ステータスレジスタＳＲ（Ｓｙｓ）からの割込み信号ＩＲを受信する（図１３の（５）を参照）。その後、マスタ装置ＭＡ１およびマスタ装置ＭＡ２は、システム用ステータスレジスタＳＲ（Ｓｙｓ）の故障フラグを読出して、故障が発生した装置がスレーブ装置ＳＬ１であることを特定する。マスタ装置ＭＡ１およびマスタ装置ＭＡ２は、モードをスレーブ装置ＳＬ１が故障中であるときに対応するモードである縮退モードＭｄ（ＳＬ１）に移行させる（図１３の（６）を参照）。
【０１２６】
マスタ装置ＭＡ１およびＭＡ２は、縮退モードＭｄ（ＳＬ１）時には、スレーブ装置ＳＬ１において処理が発生しないように、自己の処理を調整する。たとえば、マスタ装置ＭＡ１およびＭＡ２は、スレーブ装置ＳＬ１に向けて信号（リクエスト、Ｒｅａｄｙ信号、およびＶａｌｉｄ信号）を送信しない。マスタ装置ＭＡ１およびＭＡ２は、縮退モードＭｄ（ＳＬ１）時には、ダミースレーブ装置ＤＳＬ１からのレスポンスを無視する。マスタ装置ＭＡ１およびＭＡ２は、縮退モードＭｄ（ＳＬ１）時には、ダミースレーブ装置ＤＳＬ１からのＶａｌｉｄ信号を受信しても、Ｒｅａｄｙ信号を送信しない。
【０１２７】
ステップＳ２０７において、スレーブ装置ＳＬ１が、リセット処理を終了する（図１３の（７）を参照）。
【０１２８】
ステップＳ２０８において、スレーブ装置ＳＬ１が、スレーブ用ステータスレジスタＳＲ（ＳＬ１）をクリアする（図１３の（８）を参照）。これによって、スレーブ用ステータスレジスタＳＲ（ＳＬ１）は、「０」を保持する。
【０１２９】
ステップＳ２０９において、スレーブ用ステータスレジスタＳＲ（ＳＬ１）が、「０」を保持しているので、システム用ステータスレジスタＳＲ（Ｓｙｓ）内のスレーブ装置ＳＬ１に対応する故障フラグをクリアする（図１３の（９）を参照）。これによって、システム用ステータスレジスタＳＲ（Ｓｙｓ）内のスレーブ装置ＳＬ１に対応する故障フラグが「０」に設定される。
【０１３０】
ステップＳ２１０において、システム用ステータスレジスタＳＲ（Ｓｙｓ）内のスレーブ装置ＳＬ１に対する故障フラグが「０」に設定されたことに応じて、セレクタＳＬ（ＳＬ１）は、バス２３と、スレーブ装置ＳＬ１とを接続する。その結果、スレーブ装置ＳＬ１が、マスタ装置ＭＡ１，ＭＡ２またはダミーマスタ装置ＤＭＡ１，ＤＭＡ２からのＶａｌｉｄ信号、Ｒｅａｄｙ信号およびリクエストを受信する。スレーブ装置ＳＬ１は、さらにマスタ装置ＭＡ１，ＭＡ２またはダミーマスタ装置ＤＭＡ１，ＤＭＡ２へＲｅａｄｙ信号、Ｖａｌｉｄ信号およびレスポンスを送信する。
【０１３１】
ステップＳ２１０と並行して、ステップＳ２１１において、マスタ装置ＭＡ１およびマスタ装置ＭＡ２が、システム用ステータスレジスタＳＲ（Ｓｙｓ）からの割込み信号ＩＲを受信する（図１３の（１０）を参照）。その後、マスタ装置ＭＡ１およびマスタ装置ＭＡ２は、システム用ステータスレジスタＳＲ（Ｓｙｓ）内の故障フラグを読出して、全マスタ装置および全スレーブ装置が正常であることを知得する。これによって、マスタ装置ＭＡ１およびマスタ装置ＭＡ２は、モードを通常モードに移行させる（図１３の（１１）を参照）。
【０１３２】
図１５は、従来の動作例を説明するための図である。
マスタ装置ＭＡ１は、プロセッサ＃１によって構成される。マスタ装置ＭＡ２は、プロセッサ＃２によって構成される。スレーブ装置ＳＬ１は、メモリコントローラによって構成される。
【０１３３】
まず、プロセッサ＃１およびプロセッサ＃２が正常状態にあるとする。プロセッサ＃２が、メモリコントローラに対してリクエストがあることを示すＶａｌｉｄ信号を送信し、メモリコントローラがＲｅａｄｙ信号をプロセッサ＃２に送信する。その後、プロセッサ＃２が、リクエストとしてリード命令をメモリコントローラに送信する。
【０１３４】
メモリコントローラが、メモリからのデータの読出し処理を開始する。
メモリコントローラがプロセッサ＃２にレスポンスとして、読み出したデータを送信する前に、プロセッサ＃２において故障が発生する。プロセッサ＃２は、正常状態に復帰するために、リセット処理を実行する。
【０１３５】
その後、メモリコントローラが、プロセッサ＃２に対してレスポンスがあることを示すＶａｌｉｄ信号を送信するが、プロセッサ＃２はリセット処理中である。そのため、プロセッサ＃２は、Ｖａｌｉｄ信号を受信できない。その結果、プロセッサ＃２は、Ｒｅａｄｙ信号を出力することができない。
【０１３６】
メモリコントローラは、プロセッサ＃２からＲｅａｄｙ信号を受信できないため、Ｖａｌｉｄ信号の送信を繰り返す。これにより、バスシステム２１の全体の動作が停止してしまう。
【０１３７】
図１６は、第３の実施形態のバスシステム２１の第３の動作例を説明するための図である。
【０１３８】
マスタ装置ＭＡ１は、プロセッサ＃１によって構成される。マスタ装置ＭＡ２は、プロセッサ＃２によって構成される。スレーブ装置ＳＬ１は、メモリコントローラによって構成される。ダミープロセッサが、マスタ装置ＭＡ２に対応して設けられる。
【０１３９】
まず、プロセッサ＃１およびプロセッサ＃２が正常状態にあるとする。プロセッサ＃２が、メモリコントローラに対してリクエストがあることを示すＶａｌｉｄ信号を送信し、メモリコントローラがＲｅａｄｙ信号をプロセッサ＃２に送信する。その後、プロセッサ＃２がリクエストとしてリード命令をメモリコントローラに送信する。
【０１４０】
メモリコントローラがメモリからのデータの読出し処理を開始する。
メモリコントローラがプロセッサ＃２にレスポンスとして、読み出したデータを送信する前に、プロセッサ＃２に故障が発生する。プロセッサ＃２は、正常状態に復帰するために、リセット処理を実行する。
【０１４１】
その後、メモリコントローラが、プロセッサ＃２に対してレスポンスがあることを示すＶａｌｉｄ信号を送信する。
【０１４２】
プロセッサ＃２はリセット処理中なので、プロセッサ＃２は、Ｖａｌｉｄ信号を受信できない。しかし、ダミープロセッサは、プロセッサ＃２の代わりに、Ｖａｌｉｄ信号を受信して、Ｒｅａｄｙ信号を出力する。
【０１４３】
メモリコントローラは、Ｒｅａｄｙ信号を受信することにより、レスポンスを出力する。これによって、メモリコントローラが、Ｖａｌｉｄ信号を送信し続けるような事態を回避することができる。その後、メモリコントローラが、プロセッサ＃１からリクエストを受けても、リクエストに応じることができる。
【０１４４】
以上のように、本実施の形態によれば、いずれかのマスタ装置またはスレーブ装置が、故障が発生した装置へ有効データがあることを表わす信号を送信した後、信号の受信が可能なことを表わす信号をその装置が受信することができる。その結果、システム全体の処理が停滞するのが防止される。
【０１４５】
［第４の実施形態］
図１７は、第４の実施形態のバスシステム３１の構成を表わす図である。
【０１４６】
このバスシステム３１は、以下の点において、第３の実施形態のバスシステム２１と相違する。
【０１４７】
マスタ装置ＭＡ１が、マスタ用ステータスレジスタＳＲ（ＭＡ１）を備える。マスタ装置ＭＡ２が、マスタ用ステータスレジスタＳＲ（ＭＡ２）を備える。スレーブ装置ＳＬ１が、スレーブ用ステータスレジスタＳＲ（ＳＬ１）を備える。スレーブ装置ＳＬ２が、スレーブ用ステータスレジスタＳＲ（ＳＬ２）を備える。
【０１４８】
本実施の形態によれば、ステータスレジスタを備えたマスタ装置およびスレーブ装置をリセット機能およびダミー切替機能を有するＩＰ（intellectual property）コアとして提供することができる。
【０１４９】
［第５の実施形態］
図１８は、第５の実施形態のバスシステム４１の構成を表わす図である。
【０１５０】
このバスシステム４１は、以下の点において、第３の実施形態のバスシステム２１と相違する。
【０１５１】
ダミーマスタ装置ＤＭＡ１が、マスタ用ステータスレジスタＳＲ（ＭＡ１）を備える。ダミーマスタ装置ＤＭＡ２が、マスタ用ステータスレジスタＳＲ（ＭＡ２）を備える。ダミースレーブ装置ＤＳＬ１が、スレーブ用ステータスレジスタＳＲ（ＳＬ１）を備える。ダミースレーブ装置ＤＳＬ２が、スレーブ用ステータスレジスタＳＲ（ＳＬ２）を備える。
【０１５２】
本実施の形態では、ステータスレジスタを備えたダミーマスタ装置およびダミースレーブ装置をバスシステムに追加することによって、従来のバスシステムの他の箇所の構成の変更をできるだけ少なくすることができる。
【０１５３】
［第６の実施形態］
図１９は、マスタ装置ＭＡ１の縮退モード時の動作手順を表わすフローチャートである。マスタ装置ＭＡ２の縮退モード時の動作手順も同様である。
【０１５４】
ステップＳ１２０１において、次に実行するプログラム命令αが故障中のスレーブ装置Ｘへのリクエストを含む場合は、処理がステップＳ１２０２に進む。次に実行するプログラム命令αが故障中のスレーブ装置Ｘへのリクエストを含まない場合は、処理がステップＳ１２０７に進む。
【０１５５】
ステップＳ１２０２において、プログラム命令αの後に実行されるべき複数のプログラム命令の中に所定の条件を満たすプログラム命令βが存在する場合には、処理がステップＳ１２０３に進む。そのようなプログラム命令βが存在しない場合には、処理がステップＳ１２０４に進む。所定の条件を満たすプログラム命令とは、プログラム命令αよりも先に実行しても、悪影響が生じさせないようなプログラム命令である。
【０１５６】
ステップＳ１２０４において、プログラム命令αに含まれるスレーブ装置Ｘへのリクエストをスレーブ装置Ｘを除く、いずれかのスレーブ装置に対するリクエストに変更することができる場合には、処理がステップＳ１２０５に進む。このような変更が可能な場合とは、たとえば、あるデータを一時的にメモリに書込む必要がある場合に、メモリＡへの書込みリクエストをメモリＢへの書込みリクエストに変更するような場合である。そのような変更が不可能な場合には、処理がステップＳ１２０６に進む。
【０１５７】
ステップＳ１２０３において、マスタ装置ＭＡ１は、プログラム命令βを実行する。
ステップＳ１２０５において、マスタ装置ＭＡ１は、スレーブ装置Ｙへリクエストを送信することによって、プログラム命令αを代替的に実行する。
【０１５８】
ステップＳ１２０６において、マスタ装置ＭＡ１は、スレーブ装置Ｘが正常に復帰するのを待つ。
【０１５９】
ステップＳ１２０７において、マスタ装置ＭＡ１は、スレーブ装置Ｘへリクエストを送信することによって、プログラム命令αを実行する。
【０１６０】
以上のように、本実施の形態によれば、マスタ装置が縮退モードにおいて、本来実行すべき命令の別の命令を実行し、あるいは故障中のスレーブ装置への本来のアクセスの代わりに別のスレーブ装置へのアクセスを実行する。これによって、故障中のスレーブ装置において処理が発生するのが回避される。
【０１６１】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【０１６２】
１，１１，２１，３１，４１  バスシステム、２−１〜２−ｎ，１３−１〜１３−ｍ，ＭＡ１，ＭＡ２  マスタ装置、３−１〜３−ｍ，１２−１〜１２−ｍ，ＳＬ１，ＳＬ２  スレーブ装置、４，１４，ＳＬ（ＭＡ１），ＳＬ（ＭＡ２），ＳＬ（ＳＬ１），ＳＬ（ＳＬ２）  セレクタ、５，１５，２９  セレクタ制御回路、６，１６，２２  システムコントローラ、７，ＤＭＡ１，ＤＭＡ２  ダミーマスタ装置、８，１８，２３  バス、１７，ＤＳＬ１，ＤＳＬ２  ダミースレーブ装置、ＳＲ（ＭＡ１），ＳＲ（ＭＡ２），ＳＲ（ＳＬ１），ＳＲ（ＳＬ２），ＳＲ（Ｓｙｓ）  ステータスレジスタ。
【図１】
0006600518.tif 000002
【図２】
0006600518.tif 000003
【図３】
0006600518.tif 000004
【図４】
0006600518.tif 000005
【図５】
0006600518.tif 000006
【図６】
0006600518.tif 000007
【図７】
0006600518.tif 000008
【図８】
0006600518.tif 000009
【図９】
0006600518.tif 000010
【図１０】
0006600518.tif 000011
【図１１】
0006600518.tif 000012
【図１２】
0006600518.tif 000013
【図１３】
0006600518.tif 000014
【図１４】
0006600518.tif 000015
【図１５】
0006600518.tif 000016
【図１６】
0006600518.tif 000017
【図１７】
0006600518.tif 000018
【図１８】
0006600518.tif 000019
【図１９】
0006600518.tif 000020