(57)【特許請求の範囲】
【請求項１】
第１プロトコル仕様の第１バスと、
前記第１プロトコル仕様と異なる第２プロトコル仕様の第２バスと、
前記第１プロトコル仕様又は前記第２プロトコル仕様のいずれかで動作する第３バスと、
前記第３バスを前記第１プロトコルにより制御する第１制御手段と、
前記第３バスを前記第２プロトコルにより制御する第２制御手段と、
前記第３バスを前記１制御手段により制御される第１制御モード又は前記第２制御手段により制御される第２制御モードのいずれかのモードで動作するよう設定する設定手段と、
前記設定手段により前記第１制御モードが設定される場合に前記第１制御手段と前記第３バスを接続し、前記設定手段により前記第２制御モードが設定される場合に前記第２制御手段と前記第３バスを接続する接続手段と、
前記設定手段により前記第１制御モードが設定される場合に前記第２バスと前記第３バスの接続を遮断し、前記設定手段により前記第２制御モードが設定される場合に前記第２バスと前記第３バスの接続を確立するバススイッチと、
前記第１制御手段及び前記第２制御手段が接続される第４バスと、
前記第４バスに接続される第１デバイスと、
前記第２バスに接続される第２デバイスと、
前記第３バスに接続される第３デバイスとを有し、
前記第１デバイスは、前記設定手段により前記第１制御モードが設定されている場合に前記第１制御手段を介して前記第３デバイスにアクセスし、
前記第２デバイスは、前記設定手段により前記第２制御モードが設定されている場合に前記バススイッチを介して前記第３バスにアクセスする
ことを特徴とするバス制御装置。
【請求項２】
前記第３バスを構成するアドレス信号線、データ信号線及び制御信号線の少なくとも一部は前記第１制御モード及び前記第２制御モードで動作する際に共用されることを特徴とする請求項１に記載のバス制御装置。
【請求項３】
前記設定手段は、前記バス制御装置が起動する際には前記第１制御モードで動作するよう設定し、前記バス制御装置が起動したことに応じて前記第１制御モードを前記第２制御モードに切り替えるよう設定することを特徴とする請求項１又は２に記載のバス制御装置。
【請求項４】
前記第１制御手段、第２制御手段及び前記接続手段は同一の集積回路上に搭載されることを特徴とする請求項１乃至３のいずれか１項に記載のバス制御装置。
【請求項５】
前記第３デバイスは、前記バス制御装置を起動するための起動プログラムが記憶された不揮発性メモリであり、
前記第４バスに接続される演算装置は、前記不揮発性メモリから読み出された前記起動プログラムを実行することで前記バス制御装置を起動させることを特徴とする請求項１乃至４のいずれか１項に記載のバス制御装置。
【請求項６】
前記第２デバイスは、前記第２プロトコル仕様の他のデバイスとの前記第２バスの競合を調停する調停部を有することを特徴とする請求項１乃至５のいずれか１項に記載のバス制御装置。
【請求項７】
前記第２プロトコル仕様は、ＰＣＩプロトコル仕様であることを特徴とする請求項１乃至６のいずれか１項に記載のバス制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バス制御装置に関する。
【背景技術】
【０００２】
従来から、各々プロトコル使用の異なる複数種類のバスデバイスを、１つの共用バスにて共用する技術が知られている。例えば、特許文献１には、ＰＣＩバスにＰＣＩプロトコル仕様のバスデバイスと、ＰＣＩプロトコル仕様でないＲＯＭとを共用バスとしてのＰＣＩバスに接続したシステムが開示されている。共用バスは、ＲＯＭに準拠した仕様のＲＯＭバス又はＰＣＩバスと、マルチプレクサを介して選択的に接続される。そして、マルチプレクサは、ＲＯＭバスから共用バス上のＲＯＭにアクセスする際はＲＯＭバスと共用バスを接続する（ＲＯＭモード）。一方、マルチプレクサは、ＰＣＩバスから共用バス上のＰＣＩプロトコル仕様のバスデバイスにアクセスする際はＰＣＩバスと共用バスを接続する（ＰＣＩモード）。なお、特許文献１のシステムは、ＲＯＭモードで動作する際に、ＰＣＩデバイスへのクロック供給を停止させることで、共用バスに対してＲＯＭとのアクセスの競合が発生しないようにする。
【特許文献１】特開２００３−３３４７８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、特許文献１に開示されたシステムは、共用バスとしてのＰＣＩバスに接続されたＰＣＩプロトコルに準拠しないＲＯＭの、ＰＣＩデバイスとの競合を回避するための調停を行う必要がある。そのために、ＰＣＩバス上に接続されるバスデバイスには、ＰＣＩデバイス間の調停だけではなく、ＲＯＭとの調停も可能な特別なアービタを設ける必要がある。一般的に、ＰＣＩバスデバイスには、ＰＣＩバスデバイス間のアクセスを調停するためのアービタが設けられるので、特別なアービタを設けることは汎用性に欠け、コストの増加となってしまう。
【０００４】
本願発明は、上記の問題を鑑みてなされたものであり、複数のプロトコル仕様により動作可能な共用バスを有するバス制御装置において、バス制御装置が有するデバイスに特別なアービタを設けることなく、適切に複数のプロトコル仕様での動作を実現することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明のバス制御装置は、第１プロトコル仕様の第１バスと、前記第１プロトコル仕様と異なる第２プロトコル仕様の第２バスと、前記第１プロトコル仕様又は前記第２プロトコル仕様のいずれかで動作する第３バスと、前記第１バスに接続され、前記第３バスを前記第１プロトコルにより制御する第１制御手段と、前記第１バスに接続され、前記第３バスを前記第２プロトコルにより制御する第２制御手段と、前記第３バスを前記１制御手段により制御される第１制御モード又は前記第２制御手段により制御される第２制御モードのいずれかのモードで動作するよう設定する設定手段と、前記設定手段により前記第１制御モードが設定される場合に前記第１制御手段と前記第３バスを接続し、前記設定手段により前記第２制御モードが設定される場合に前記第２制御手段と前記第３バスを接続する接続手段と、前記設定手段により前記第１制御モードが設定される場合に前記第２バスと前記第３バスの接続を遮断し、前記設定手段により前記第２制御モードが設定される場合に前記第２バスと前記第３バスの接続を確立するバススイッチと、前記第１制御手段及び前記第２制御手段が接続される第４バスと、前記第４バスに接続される第１デバイスと、前記第２バスに接続される第２デバイスと、前記第３バスに接続される第３デバイスとを有し、前記第１デバイスは、前記設定手段により前記第１制御モードが設定されている場合に前記第１制御手段を介して前記第３デバイスにアクセスし、前記第２デバイスは、前記設定手段により前記第２制御モードが設定されている場合に前記バススイッチを介して前記第３バスにアクセスすることを特徴とする。
【発明の効果】
【０００６】
本発明によれば、複数のプロトコル仕様により動作可能な共用バスを有するバス制御装置において、バス制御装置が有するデバイスに特別なアービタを設けることなく、適切に複数のプロトコル仕様での動作を実現することができる。
【発明を実施するための最良の形態】
【０００７】
以下に、図面を参照して、この発明の好適な実施の形態を例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素はあくまで例示であり、この発明の範囲をそれらのみに限定する趣旨のものではない。
【０００８】
＜第１実施形態＞
図１は、第１実施形態のバス制御装置の構成を示すブロック図である。
【０００９】
図１において１０１は、プログラムを実行する演算手段として機能するサブＣＰＵであり、ＣＰＵバス１３６（第４バス）に接続されている。１０２は、モード設定レジスタ（設定手段）であり、バス制御装置の動作モードを後述するＲＯＭモード（第１制御モード）又はＰＣＩモード（第２制御モード）のいずれかに設定するものである。１０３は、共用バス１３４に接続される不揮発性メモリとしてのＲＯＭ１０７を制御するためのＲＯＭコントローラ（第１制御手段）である。１０４は、共用バス１３４を介して後述するＰＣＩバス１３５（第２バス）上のＰＣＩデバイスとの通信を行うためのＰＣＩバスコントローラである。１０５は、ＲＯＭコントローラ１０３とＲＯＭバス１３２を介して接続されるとともに、ＰＣＩバスコントローラ１０４とＰＣＩバス１３３を介して接続されるマルチプレクサである。マルチプレクサ１０５は、モード設定レジスタ１０２にＲＯＭモードが設定されている場合はＲＯＭバス１３２と共用バス１３４を接続し、ＰＣＩモードが設定されている場合はＰＣＩバス１３３と共用バス１３４を接続する。１０６は、ＤＲＡＭ１０９をＣＰＵバス１３６と接続するためのメモリコントローラである。なお、サブＣＰＵ１０１（第１デバイス）、モード設定レジスタ１０２、ＲＯＭコントローラ１０３、ＰＣＩバスコントローラ１０４及びメモリコントローラ１０６は、ＣＰＵバス１３６にそれぞれ接続されている。そして、ＲＯＭバス１３２は、後述するＰＣＩバスとは異なるプロトコル仕様（第１プロトコル仕様）に準拠している。また、ＣＰＵバス１３６は、ＲＯＭバス１３２やＰＣＩバスとは異なるプロトコル仕様（第３プロトコル仕様）に準拠している。また、１０１〜１０６は同一の集積回路上（ＡＳＩＣ１００上）に搭載されているものとする。なお、ＡＳＩＣ１００は、後述するＰＣＩデバイスＡ１２３（第２デバイス）やＰＣＩデバイスＢ１２５からは、１つのＰＣＩデバイスとして認識される。
【００１０】
共用バス１３４は、モード設定レジスタ１０２により設定されるモードにより、ＰＣＩプロトコル仕様又はＰＣＩプロトコル仕様とは異なるＲＯＭバス１３２のプロトコル仕様のいずれかで動作するバス（第３バス）である。共用バス１３４を構成するアドレス信号線、データ信号線及び制御信号線の少なくとも一部はＲＯＭモード及びＰＣＩモードで動作する際に共用される。
【００１１】
１０７は、バス制御装置に電力が投入された際に、サブＣＰＵ１０１が実行すべきバス制御装置を起動させるためのプログラムが記憶されたＲＯＭ（不揮発性メモリ）である。１０８は、共用バス１３４とＰＣＩバス１３５を接続が確立した状態又は接続が遮断された状態とで切り替えるためのバススイッチである。１２１は、プログラムを実行する演算手段としてのメインＣＰＵである。１２２は、ＰＣＩデバイスＡであり、１２５はＰＣＩデバイスＢであり、それぞれＰＣＩバス１３５に接続されている。そして、ＰＣＩバス１３５はＰＣＩプロトコル仕様（第２プロトコル仕様）に準拠している。なお、ＰＣＩデバイスＡ１２２は、メインＣＰＵ１２１と接続するためのホストブリッジ１２３及びＰＣＩバス１３５と接続される。そして、ＰＣＩデバイスＡ１２２は、ＰＣＩデバイス（ＰＣＩプロトコル仕様により動作するデバイス）間の競合を調停するための調停部としてのＰＣＩアービタ１２４を含む。
【００１２】
１３１は、モード設定レジスタ１０２に設定されたモードを、マルチプレクサ１０５、バススイッチ１０８、ＰＣＩデバイスＡ１２２、ＰＣＩデバイスＢ及びメインＣＰＵ１２１に伝達するためのモード設定信号線である。
【００１３】
次に、図２を用いて、モード設定レジスタ１０２からモード設定信号線を介したモードの伝達により、各部に設定される動作状態を説明する。図２は、モード設定レジスタ１０２により設定される動作状態を示すテーブルである。
【００１４】
まず、モード設定レジスタ１０２によりＲＯＭモードが設定されている場合について説明する。モード設定レジスタ１０２は、その起動時の設定としてＲＯＭモードを設定する。ＲＯＭモードが設定されているとき、マルチプレクサ１０５は、共用バス１３４に接続するバスをＲＯＭバス１３２とする動作状態となる。また、バススイッチ１０８は、ディセーブル（分離）となり共用バス１３４とＰＣＩバス１３５との接続が遮断された動作状態となる。また、メインＣＰＵ１２１、ＰＣＩデバイスＡ１２２及びＰＣＩデバイスＢ１２５は、それぞれリセットされた動作状態となる。
【００１５】
次に、モード設定レジスタ１０２によりＰＣＩモードが設定されている場合について説明する。ＰＣＩモードが設定されているとき、マルチプレクサ１０５は、共用バス１３４に接続するバスをＰＣＩバス１３３とする動作状態となる。また、バススイッチはイネーブル（接続）となり共用バス１３４とＰＣＩバス１３５の接続が確立された動作状態となる。また、メインＣＰＵ１２１、ＰＣＩデバイスＡ１２２及びＰＣＩデバイスＢ１２５は、それぞれリセットが解除された動作状態となる。
【００１６】
次に、図３を用いて、バス制御装置の動作を説明する。
【００１７】
図３は、バス制御装置の実行する動作を説明するためのフローチャートであり、バス制御装置のサブＣＰＵ１０１が実行する動作を示すものである。なお、図３の動作は、バス制御装置の電源スイッチ（不図示）がオンされることにより、サブＣＰＵ１０１を含むバス制御装置の各部への電力供給が行われることにより開始される。
【００１８】
前述したように、バス制御装置の電源スイッチがオンされてバス制御装置が起動処理を開始する際に、モード設定レジスタ１０２には、ＲＯＭモードを示す設定値が設定されているものとする。従って、バス制御装置の電源スイッチがオンされた場合、マルチプレクサ１０５は、共用バス１３４に接続するバスをＲＯＭバス１３２とする動作状態となる。また、バススイッチ１０８は、ディセーブル（分離）となり共用バス１３４とＰＣＩバス１３５との接続が遮断された動作状態となる。また、メインＣＰＵ１２１、ＰＣＩデバイスＡ１２２及びＰＣＩデバイスＢ１２５は、それぞれリセットされた動作状態となる。
【００１９】
ステップＳ３０１で、サブＣＰＵ１０１は、ＲＯＭコントローラ１０３及びＲＯＭバス１３２を介して共用バス１３４に接続されたＲＯＭ１０７（第３デバイス）へアクセスする。そして、サブＣＰＵ１０１は、ＲＯＭ１０７から読み出した起動プログラムを実行することにより、ステップＳ３０２以降の処理を実行する。
【００２０】
ステップＳ３０２で、サブＣＰＵ１０１は、ＣＰＵバス１３６を介してメモリコントローラ１０６へアクセスし、メモリコントローラ１０６及びメモリコントローラ１０６に接続されたＤＲＡＭ１０９を初期化する。
【００２１】
ステップＳ３０３で、サブＣＰＵ１０１は、ＲＯＭ１０７から読み出したプログラムをＤＲＡＭ１０９へ書き込む（展開する）ようメモリコントローラ１０６を制御する。なお、ＲＯＭ１０７から読み出したプログラムをＤＲＡＭ１０９へ書き込む動作は、サブＣＰＵ１０１が逐次メモリコントローラ１０６を制御することによって行われるものとするが他の態様であってもよい。例えば、メモリコントローラ１０６にＤＭＡ転送機能を設け、サブＣＰＵ１０１からプログラムの転送指示を受けたメモリコントローラ１０６が主体となってプログラムの書き込みを行っても良い。
【００２２】
ステップＳ３０４で、サブＣＰＵ１０１は、ＤＲＡＭ１０９へ展開されたプログラムを実行する。このプログラムの実行により、バス制御装置の各部が起動されて初期化された状態となり、バス制御装置が各種の動作を実行できる状態となる。
【００２３】
ステップＳ３０５で、サブＣＰＵ１０１は、ＣＰＵバス１３６を介してモード設定レジスタ１０２へアクセスし、モード設定レジスタ１０２の設定値を、ＰＣＩモードを示す設定値とする。なお、ＰＣＩモードが設定されているとき、マルチプレクサ１０５は、共用バス１３４に接続するバスをＰＣＩバス１３３とする動作状態となる。また、バススイッチはイネーブル（接続）となり共用バス１３４とＰＣＩバス１３５の接続が確立された動作状態となる。また、メインＣＰＵ１２１、ＰＣＩデバイスＡ１２２及びＰＣＩデバイスＢ１２５は、それぞれリセットが解除された動作状態となる。
【００２４】
そして、メインＣＰＵ１２１のリセットが解除されると、メインＣＰＵ１２１は、ＰＣＩバス（ＰＣＩバス１３５及び共用バス１３４）上で動作するＰＣＩデバイスをサーチする。この場合、ＡＳＩＣ１００は、メインＣＰＵ１２１により１つのＰＣＩデバイスとしてサーチされ、その後ＰＣＩデバイスＡ１２２及びＰＣＩデバイスＢ１２５との通信が可能となる。なお、このときにＡＳＩＣ１００、ＰＣＩデバイスＡ１２２及びＰＣＩデバイスＢ１２５によるバスの競合の調停は、ＰＣＩデバイスＡ１２２のＰＣＩアービタ１２４（調停部）が行う。
【００２５】
以上説明したように本実施形態によれば、複数のプロトコル仕様により動作可能な共用バスを有するバス制御装置において、バス制御装置が有するデバイスに特別なアービタを設けることなく、適切に複数のプロトコル仕様での動作を実現することができる。
【図面の簡単な説明】
【００２６】
【図１】第１実施形態のバス制御装置１００の構成を示すブロック図である。
【図２】モード設定レジスタ１０２により設定される動作状態を示すテーブルである。
【図３】バス制御装置の実行する動作を説明するためのフローチャートである。
【符号の説明】
【００２７】
１０２  モード設定レジスタ
１０３  ＲＯＭコントローラ
１０４  ＰＣＩバスコントローラ
１０５  マルチプレクサ
１０７  ＲＯＭ
１０８  バススイッチ
１３２  ＲＯＭバス
１３４  共用バス
１３５  ＰＣＩバス
１３６  ＣＰＵバス
【図１】
0005058890.tif 000002
【図２】
0005058890.tif 000003
【図３】
0005058890.tif 000004