(57)【要約】【課題】複数のＣＰＵがそれぞれバスブリッジを介してバスに接続され、そのバスを用いた上記各バスブリッジのデータ送受信を調停するバスアービタを備えた情報処理装置において、ＣＰＵの追加や変更がなされる場合でも、大幅な設計変更を不要とすること。【解決手段】情報処理装置１００では、ＣＰＵ０，１をバスブリッジ１０，１１を介してバスアービタ１２に接続し、そのバスアービタ１２をローカルバス２０に接続している。バスブリッジ１０，１１には例外処理アドレス等を記憶した例外処理記憶部１０１，１１１が設けられ、例えばＣＰＵ１は、バスブリッジ１１との間のデータ送受信のみによって上記例外処理アドレス等を取得することができる。このため、ローカルバス２０やバスアービタ１２等の構成を大幅に変更しなくても、バスブリッジ１１とそれに接続されたＣＰＵ１とを追加または変更するだけで、ＣＰＵの追加または変更が可能となる。【選択図】図１
2011113513.tif 000002
【特許請求の範囲】
【請求項１】
複数のＣＰＵと、
上記各ＣＰＵとバスとの間にそれぞれ設けられ、上記各ＣＰＵと上記バスとの間のデータ送受信を個々に実行する複数のバスブリッジと、
上記各バスブリッジによる上記バスを用いたデータ送受信を調停するバスアービタと、
を備え、
少なくとも１つの上記バスブリッジは、自身に接続された上記ＣＰＵの例外処理命令を記憶する例外処理記憶部を備えたことを特徴とする情報処理装置。
【請求項２】
上記例外処理命令は、上記１つのバスブリッジ内の複数のアドレスのデータを、当該バスブリッジに接続された上記ＣＰＵに循環的に読み出させる命令であることを特徴とする請求項１記載の情報処理装置。
【請求項３】
上記バスに接続され、上記例外処理記憶部へのアクセスが可能なレジスタインタフェースを、
更に備え、
上記１つのバスブリッジとは異なる他の少なくとも１つの上記バスブリッジに接続された上記ＣＰＵは、当該ＣＰＵに接続された上記バスブリッジ，上記バス，及び上記レジスタインタフェースを介して、上記例外処理命令を他の例外処理命令に書き換え可能であることを特徴する請求項２記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のＣＰＵを備えた情報処理装置に関し、詳しくは、上記各ＣＰＵがそれぞれバスブリッジを介してバスに接続され、そのバスを用いた上記各バスブリッジのデータ送受信を調停するバスアービタを備えた情報処理装置に関する。
【背景技術】
【０００２】
従来より、複数のＣＰＵを備えた情報処理装置では、各ＣＰＵをそれぞれバスブリッジを介してバスに接続している。この場合、上記各ＣＰＵが上記各バスブリッジ及び上記バスを介してＲＯＭ等の記憶部にアクセスする際にデータが衝突するのを防止するため、そのバスを用いた上記各バスブリッジのデータ送受信をバスアービタによって調停することが提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−２４０６８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
この種の情報処理装置では、上記ＣＰＵが割り込み処理等の例外処理を実行する場合、そのＣＰＵは上記バスアービタの調停に従って上記バスブリッジ及び上記バスを介して上記記憶部にアクセスし、その記憶部に設定されたベクタ等で指定されているアドレスから例外処理用のプログラムを読み出すことになる。
【０００５】
図６は、そのような例外処理を想定した参考例としての情報処理装置９００の構成を表すブロック図である。なお、この情報処理装置９００は、２つのＣＰＵ０，１を内蔵したＡＳＩＣとして構成されている。
【０００６】
図６に示すように、この情報処理装置９００では、ＣＰＵ０，１はバスブリッジ１０，１１（ＢＵＳ  Ｂｒｉｄｇｅ）をそれぞれ経由してバスアービタ１２（ＢＵＳ  Ａｒｂｉｔｅｒ）に接続され、そのバスアービタ１２はローカルバス２０に接続されている。なお、バスブリッジ１０，１１は、異なるインタフェースを持つデバイスを接続する場合に、その信号フォーマットの違いやスピードの違いを吸収し、異なるインタフェースを持つデバイス間のデータ（コマンドも含む広義のデータ：以下同様）の送受信を実行する周知のものである。また、バスアービタ１２は、各バスブリッジ１０，１１から送信されるデータのいずれか一方のみを通過させるなどの処理により、バスブリッジ１０，１１によるローカルバス２０を用いたデータ送受信を調停するものである。
【０００７】
ローカルバス２０には、更に、パラレルＲＯＭインタフェース３１（Ｐａｒａｌｌｅｌ  ＲＯＭ  Ｉ／Ｆ）、シリアルＲＯＭインタフェース３２（Ｓｅｒｉａｌ  ＲＯＭ  Ｉ／Ｆ）、上記記憶部としてのＣＰＵ０用の例外処理記憶部３３，ＣＰＵ１用の例外処理記憶部３４、及び、レジスタインタフェース３５が接続されている。パラレルＲＯＭインタフェース３１は、情報処理装置９００の外部に設けられたパラレルＲＯＭ（図示省略）とローカルバス２０とを接続するものである。同様に、シリアルＲＯＭインタフェース３２は、情報処理装置９００の外部に設けられたシリアルＲＯＭ（図示省略）とローカルバス２０とを接続するものである。
【０００８】
また、ＣＰＵ０用の例外処理記憶部３３は、ＣＰＵ０が例外処理を実行する際にそのＣＰＵ０にアクセスされるもので、ＣＰＵ０による例外処理用のプログラムの本体が格納されたアドレスが記憶されている。同様に、ＣＰＵ１用の例外処理記憶部３４は、ＣＰＵ１が例外処理を実行する際にそのＣＰＵ１にアクセスされるもので、ＣＰＵ１による例外処理用のプログラムの本体が格納されたアドレスが記憶されている。
【０００９】
レジスタインタフェース３５は、レジスタバス４０を介してＣＰＵ０用の通知レジスタ５１、ＣＰＵ１用の通知レジスタ５２、ＣＰＵ０用の割り込み制御部５３、ＣＰＵ１用の割り込み制御部５４、等に接続されている。ＣＰＵ０用の通知レジスタ５１には、ＣＰＵ０に読み出させるべきデータが書き込まれ、ＣＰＵ１用の通知レジスタ５２には、ＣＰＵ１に読み出させるべきデータが書き込まれる。また、情報処理装置９００の外部からの各種割り込み入力信号は、割り込み制御部５３を介してＣＰＵ０に、割り込み制御部５４を介してＣＰＵ１に、それぞれ入力される。なお、ＣＰＵ０からレジスタインタフェース３５，通知レジスタ５２，割り込み制御部５４を介してＣＰＵ１に割り込み信号を入力することや、ＣＰＵ１からレジスタインタフェース３５，通知レジスタ５１，割り込み制御部５３を介してＣＰＵ０に割り込み信号を入力することも可能である。
【００１０】
そして、割り込み信号がＣＰＵ０に入力されると、そのＣＰＵ０は、例外処理記憶部３３を参照することによって当該割り込み信号に対応した例外処理用プログラムのアドレスを読み出し、続いて、パラレルＲＯＭインタフェース３１またはシリアルＲＯＭインタフェース３２を介して、上記読み出したアドレスに対応するＲＯＭから当該プログラムを読み出す。同様に、割り込み信号がＣＰＵ１に入力されると、そのＣＰＵ１は、例外処理記憶部３４を参照することによって例外処理用プログラムのアドレスを読み出し、続いて、パラレルＲＯＭインタフェース３１またはシリアルＲＯＭインタフェース３２を介して当該プログラムを読み出す。
【００１１】
ところが、このような情報処理装置では、例外処理用のベクタ（例えば、上記参考例における例外処理記憶部３３，３４）が設けられるエリアは各ＣＰＵ毎に固定されているため、上記ＣＰＵを１つでも変更する場合は、上記バスブリッジ，上記バスアービタ，及び上記記憶部など、情報処理装置を大幅に設計し直す必要があった。すなわち、上記参考例では、バスアービタ１２は、例えばリクエストを発行するＣＰＵ０，１を識別し、そのＣＰＵ０または１に対応した例外処理記憶部３３または３４にリクエスト信号を出力するなどの処理を実行することによって、上記データ送受信を調停する。このため、ＣＰＵの追加または変更があるとバスアービタ１２の設計変更をする必要が生じ、延いては、例外処理記憶部３３，３４等も設計変更をする必要が生じる。
【００１２】
そこで、本発明は、複数のＣＰＵがそれぞれバスブリッジを介してバスに接続され、そのバスを用いた上記各バスブリッジのデータ送受信を調停するバスアービタを備えた情報処理装置において、ＣＰＵの追加や変更がなされる場合でも、大幅な設計変更を不要とすることを目的としてなされた。
【課題を解決するための手段】
【００１３】
上記目的を達するためになされた本発明の情報処理装置は、複数のＣＰＵと、上記各ＣＰＵとバスとの間にそれぞれ設けられ、上記各ＣＰＵと上記バスとの間のデータ送受信を個々に実行する複数のバスブリッジと、上記各バスブリッジによる上記バスを用いたデータ送受信を調停するバスアービタと、を備え、少なくとも１つの上記バスブリッジは、自身に接続された上記ＣＰＵの例外処理命令を記憶する例外処理記憶部を備えたことを特徴としている。
【００１４】
このように構成された本発明の情報処理装置では、複数のＣＰＵとバスとの間には、上記各ＣＰＵと上記バスとの間のデータ送受信を個々に実行する複数のバスブリッジが、それぞれ設けられている。そして、少なくとも１つの上記バスブリッジ（以下、第１バスブリッジともいう）は、自身に接続された上記ＣＰＵ（以下、第１ＣＰＵともいう）の例外処理命令を記憶する例外処理記憶部を備えている。このため、上記第１ＣＰＵは、当該第１ＣＰＵと上記第１バスブリッジとの間のデータ送受信のみによって、上記バスを経由することなく例外処理命令（例えば例外処理用のプログラムが格納されたアドレス）を取得することができる。このため、本発明の情報処理装置では、上記バスや上記バスアービタ等の構成を大幅に変更しなくても、上記第１バスブリッジとそれに接続された上記第１ＣＰＵとを追加または変更するだけで、ＣＰＵの追加または変更が可能となる。
【００１５】
なお、上記例外処理命令は、上記１つのバスブリッジ（第１バスブリッジ）内の複数のアドレスのデータを、当該バスブリッジに接続された上記ＣＰＵ（第１ＣＰＵ）に循環的に読み出させる命令であってもよい。この場合、上記第１ＣＰＵが上記第１バスブリッジの上記例外処理記憶部に記憶された例外処理命令を実行すると、その第１ＣＰＵは第１バスブリッジ内の複数のアドレスのデータを循環的に読み出すことによって待機状態となる。この待機状態では、上記第１バスブリッジから上記バスを経由したデータ送受信が実行されないので、バス効率を高めることができる。
【００１６】
そして、この場合、上記バスに接続され、上記例外処理記憶部へのアクセスが可能なレジスタインタフェースを、更に備え、上記１つのバスブリッジ（第１バスブリッジ）とは異なる他の少なくとも１つの上記バスブリッジに接続された上記ＣＰＵは、当該ＣＰＵに接続された上記バスブリッジ，上記バス，及び上記レジスタインタフェースを介して、上記例外処理命令を他の例外処理命令に書き換え可能であってもよい。
【００１７】
この場合、上記第１バスブリッジとは異なる他の少なくとも１つの上記バスブリッジ（以下、第２バスブリッジともいう）に接続された上記ＣＰＵ（以下、第２ＣＰＵともいう）は、当該第２ＣＰＵに接続された上記第２バスブリッジ，上記バス，及び上記レジスタインタフェースを介して、上記第１バスブリッジの上記例外処理命令を他の例外処理命令に書き換えることができる。このため、前述のような上記第１バスブリッジ内の複数のアドレスのデータを循環的に読み出させる例外処理命令を、上記第２ＣＰＵによって他の例外処理命令に書き換えれば、上記第１ＣＰＵを待機状態から開放することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明が適用された情報処理装置の構成を表すブロック図である。
【図２】その情報処理装置のバスブリッジの内部構成を表すブロック図である。
【図３】そのバスブリッジにおける例外処理記憶部の書き換え例を表す説明図である。
【図４】その例外処理記憶部の書き換え時における信号の流れを表す説明図である。
【図５】そのバスブリッジを用いたＣＰＵの待機状態を表す説明図である。
【図６】参考例の情報処理装置の構成を表すブロック図である。
【図７】その参考例におけるＣＰＵの待機状態を表す説明図である。
【発明を実施するための形態】
【００１９】
次に、本発明の実施の形態を図面と共に説明する。図１は、本発明が適用された情報処理装置１００の構成を表すブロック図である。なお、この情報処理装置１００は、２つのＣＰＵ０，１を内蔵したＡＳＩＣとして構成されており、以下の点において前述の情報処理装置９００と異なっている。
【００２０】
［情報処理装置１００の構成］
すなわち、情報処理装置１００では、他の１つのバスブリッジの一例としてのバスブリッジ１０に例外処理記憶部１０１が、１つのバスブリッジの一例としてのバスブリッジ１１に例外処理記憶部１１１が、それぞれ内蔵されている。このため、情報処理装置１００では、ローカルバス２０（バスの一例に相当）には、図６の参考例と異なり例外処理記憶部３３，３４が接続されていない。
【００２１】
図２は、バスブリッジ１１の内部構成を表すブロック図である。なお、バスブリッジ１０の内部も同様に構成されている。図２に示すように、バスブリッジ１１に内蔵された例外処理記憶部１１１には、４つの例外処理に対応して例外処理コマンド１〜４と例外処理アドレス１〜４と（共に例外処理命令の一例）が記憶されている。例外処理コマンド１〜４は、対応する例外処理アドレス１〜４が示すアドレスにジャンプすることを指示するコマンドで、例外処理アドレス１〜４には、その例外処理に対応する例外処理用のプログラムの本体が格納されたアドレスが記憶されている。
【００２２】
なお、例外処理記憶部１１１にコマンドやアドレスが記憶される例外処理は１つだけであってもよく、５つ以上あってもよいが、この例外処理１〜４の一例としては、例えば次のような形態が考えられる。すなわち、例外処理１：ＩＲＱ（割り込み制御部５４からの割り込み）、例外処理２：ＲＥＳＥＴ（ＣＰＵ１のリセット）、例外処理３：ソフトウェア（デバック用ソフトウェア割り込み）、例外処理４：アボート（命令アボート、データアボート割り込み）などといった形態が考えられる。
【００２３】
ＣＰＵ１は、アドレスデコーダ１１３（ＣＰＵＩ／Ｆアドレスデコーダ）を介して例外処理記憶部１１１に接続されている。また、アドレスデコーダ１１３は、バスアクセスインタフェース１１５（ＢｕｓアクセスＩ／Ｆ）を介してバスアービタ１２に接続されており、ＣＰＵ１が例外処理以外のアドレスを指定した場合は、アドレスデコーダ１１３はバスアクセスインタフェース１１５を介して、バスアービタ１２にＣＰＵ１を読み書き（Ｒｅａｄ／Ｗｒｉｔ）可能に接続する。
【００２４】
一方、ＣＰＵ１が割り込み信号を入力されてそのＣＰＵ１が例外処理のアドレスを指定した場合は、アドレスデコーダ１１３は例外処理記憶部１１１にＣＰＵ１を読み出し（Ｒｅａｄ）のみ可能に接続する。すると、ＣＰＵ１は、例外処理記憶部１１１の上記割り込み信号に応じた例外処理コマンドを読み出し、その例外処理コマンドに従って対応する例外処理アドレスを読み出す。続いて、ＣＰＵ１は、そのアドレスに、アドレスデコーダ１１３，バスアクセスインタフェース１１５，バスアービタ１２（以下図１参照），ローカルバス２０，パラレルＲＯＭインタフェース３１またはシリアルＲＯＭインタフェース３２を順次経由してアクセスする。こうして例外処理用のプログラム本体がＣＰＵ１に読み出されて、上記割り込み信号に応じた例外処理が実行される。ＣＰＵ０における例外処理も同様である。
【００２５】
また、例外処理記憶部１１１は、レジスタインタフェース１１７を介して、前述のレジスタインタフェース３５とレジスタバス４０経由で読み書き可能に接続されている（図１の信号線Ｅ７，Ｅ８参照）。なお、本実施の形態では、レジスタインタフェース３５，１１７を区別するために、必要に応じて、前者をマスタ側，後者をスレーブ側と呼ぶ。このため、例外処理記憶部１１１は、ＣＰＵ０によって、レジスタインタフェース３５を介して例えば次のように書き換えることができる。なお、以下の説明では、ＣＰＵ０によってＣＰＵ１側の例外処理記憶部１１１を書き換える場合を説明するが、ＣＰＵ１によってＣＰＵ０側の例外処理記憶部１０１を書き換える処理も同様に実行することができる。
【００２６】
［情報処理装置１００における処理］
図３（Ａ）は、ＣＰＵ１を待機状態とするためにＣＰＵ０によって例外処理記憶部１１１が書き換えられたバスブリッジ１１を表す説明図である。図３（Ａ）に示す例外処理記憶部１１１では、例外処理アドレス１が、例外処理１用のプログラムの本体が格納された本来の格納アドレスから、当該例外処理記憶部１１１における例外処理コマンド１の格納アドレスに書き換えられている。なお、このような書き換えは、図３（Ａ）及び図４に太い一点鎖線で示す経路でなされる。すなわち、ＣＰＵ０から、バスブリッジ１０，バスアービタ１２，ローカルバス２０，マスタ側のレジスタインタフェース３５，レジスタバス４０，スレーブ側のレジスタインタフェース１１７を順次経由してなされる。ＣＰＵ１によって例外処理記憶部１０１を書き換える処理も同様に実行することができる。
【００２７】
また、ＣＰＵ０は、図４に太い二点鎖線で示す経路で、ＣＰＵ１に割り込み信号を入力することもできる。すなわち、ＣＰＵ０から、バスブリッジ１０，バスアービタ１２，ローカルバス２０，マスタ側のレジスタインタフェース３５，レジスタバス４０，ＣＰＵ１用の通知レジスタ５２，ＣＰＵ１用の割り込み制御部５４を順次経由して割り込み信号が入力可能である。ＣＰＵ１からＣＰＵ０に割り込み信号を入力する処理も同様に実行することができる。
【００２８】
例外処理記憶部１１１が図３（Ａ）のように書き換えられた後、ＣＰＵ０からＣＰＵ１に例外処理１に対応した割り込み信号が入力されると、ＣＰＵ１は次のように待機状態となる。すなわち、図５（Ａ）に太い破線で示すように、上記割り込み信号に応じてＣＰＵ１は例外処理コマンド１にアクセスし、図５（Ａ）に太い点線で示すように、その例外処理コマンド１を読み出す。
【００２９】
前述のように、例外処理コマンド１は、例外処理アドレス１が示すアドレスにジャンプすることを指示するコマンドである。そこで、ＣＰＵ１は、図５（Ｂ）に太い破線で示すように、例外処理アドレス１にアクセスし、図５（Ｂ）に太い点線で示すように、その例外処理アドレス１を読み出す。
【００３０】
ここで、例外処理アドレス１は、前述のように、例外処理コマンド１の格納アドレスに書き換えられている。このため、ＣＰＵ１は再び例外処理コマンド１にアクセスし、図５（Ａ）の状態に戻る。このように、例外処理アドレス１が例外処理コマンド１の格納アドレスに書き換えられた後、例外処理１に対応した割り込み信号が入力されると、ＣＰＵ１は例外処理記憶部１１１内の複数のアドレス（例外処理コマンド１，例外処理アドレス１、循環的に読み出させる命令の一例）を循環的に読み出すことによって待機状態とされる。また、このようにＣＰＵ１が待機状態となっている間に、ＣＰＵ０によって図３（Ｂ）に示すように例外処理アドレス１が例外処理１用のプログラムの本体が格納された本来の格納アドレス（他の例外処理命令の一例）に書き換えられると、ＣＰＵ１は上記待機状態から開放されて例外処理１用のプログラムを実行する。
【００３１】
［本実施の形態の効果及びその変形例］
このように、本実施の形態の情報処理装置１００では、ＣＰＵ１（または０）は、例外処理記憶部１１１（または１０１）内の複数のアドレスを循環的に読み出すことによって待機状態とされる。このため、バス効率を次のように高めることができる。すなわち、図６に示す参考例で図５と同様にＣＰＵ１を待機状態とする場合、図７に太い破線で示すように、バスアービタ１２，ローカルバス２０を介してＣＰＵ１が例外処理記憶部３４にアクセスし、図７に太い点線で示すように例外処理コマンド等を読み出すことになる。この場合、待機中のＣＰＵ１によってもバスアービタ１２やローカルバス２０が使用されるので、バス効率が低下してしまう。
【００３２】
これに対して、本実施の形態の情報処理装置１００では、図４に太い破線と太い点線とで示すように、ＣＰＵ１とそれに接続されたバスブリッジ１１の例外処理記憶部１１１との間でなされるデータ送受信によって上記待機状態が実現される。このため、バスアービタ１２やローカルバス２０が待機中のＣＰＵ１（または０）によるデータ送受信に使用されないので、バス効率を良好に高めることができる。更に、ＣＰＵ１（または０）をこのような待機状態としたりその待機状態から開放したりする処理も、他のＣＰＵ０（または１）によって前述のような書き換えを行うことで容易に実行することができる。
【００３３】
また、本実施の形態の情報処理装置１００では、前述のようにバスブリッジ１１（または１０）に例外処理記憶部１１１（または１０１）を設けているので、ＣＰＵ１（または０）は、バスブリッジ１１（または１０）との間のデータ送受信のみによって上記例外処理アドレス等を取得することができる。このため、情報処理装置１００では、ローカルバス２０やバスアービタ１２等の構成を大幅に変更しなくても、バスブリッジ１１（または１０）とそれに接続されたＣＰＵ１（または０）とを追加または変更するだけで、ＣＰＵの追加または変更が可能となる。
【００３４】
なお、本発明は上記実施の形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲で種々の形態で実施することができる。例えば、上記実施の形態では、バスブリッジ１０，１１とローカルバス２０との間にバスアービタを介在させているが、上記特許文献１のようにバスブリッジとバスとを予め接続しておき、バスアービタによってバスブリッジのデータ送受信を制御（許可または禁止）してもよい。更に、前述の例でＣＰＵ１を待機状態から開放する方法も種々考えられ、例えば、ＣＰＵ０からより優先順位の高い割り込み信号をＣＰＵ１に入力してもよい。
【符号の説明】
【００３５】
０，１…ＣＰＵ                        １０，１１…バスブリッジ
１２…バスアービタ                    ２０…ローカルバス
３１…パラレルＲＯＭインタフェース    ３２…シリアルＲＯＭインタフェース
１０１，１１１…例外処理記憶部        ３５，１１７…レジスタインタフェース
４０…レジスタバス                    ５１，５２…通知レジスタ
５３，５４…割り込み制御部            １００…情報処理装置
１１３…アドレスデコーダ              １１５…バスアクセスインタフェース
【図１】
2011113513.tif 000003
【図２】
2011113513.tif 000004
【図３】
2011113513.tif 000005
【図４】
2011113513.tif 000006
【図５】
2011113513.tif 000007
【図６】
2011113513.tif 000008
【図７】
2011113513.tif 000009