(57)【要約】【課題】  リングバスと、バイパス経路とを有するバスシステムの経路を簡易に決定する。【解決手段】  複数のバスアダプタを識別する識別情報と、受信側のバスアダプタを識別する受信側識別情報とに基づいてリングバスとバイパス経路との分岐点で経路を決定する。そして、決定した経路で任意の送信側バスアダプタと受信側バスアダプタとの間の通信を行う。【選択図】      図４
2007020110.tif 000002
【特許請求の範囲】
【請求項１】
複数のバスアダプタが接続されたリングバスと、前記複数のバスアダプタのうちの２個を直接、或いは１個以上の別のバスアダプタ経由で接続する少なくとも１つの前記リングバス外のバイパス経路とを有するバスシステムにおいて、
前記複数のバスアダプタを識別する識別情報と、受信側のバスアダプタを識別する受信側識別情報とに基づいて前記リングバスと前記バイパス経路との分岐点で経路を決定する経路決定手段と、
前記経路決定手段で決定された経路で任意の送信側バスアダプタと受信側バスアダプタとの間の通信を行う通信手段とを有することを特徴とするバスシステム。
【請求項２】
前記リングバス及び前記バイパス経路は、単方向にデータを伝送することを特徴とする請求項１記載のバスシステム。
【請求項３】
前記分岐点における経路の決定は、前記受信側識別情報と所定の閾値との比較によって決定することを特徴とする請求項１又は２記載のバスシステム。
【請求項４】
前記分岐点における経路の決定は、前記受信側識別情報を示す特定のビット群によって決定することを特徴とする請求項１又は２記載のバスシステム。
【請求項５】
複数のバスアダプタが接続されたリングバスと、前記複数のバスアダプタのうちの２個を直接、或いは１個以上の別のバスアダプタ経由で接続する少なくとも１つの前記リングバス外のバイパス経路とを有するバスシステムの経路決定方法であって、
前記複数のバスアダプタを識別する識別情報と、受信側のバスアダプタを識別する受信側識別情報とに基づいて前記リングバスと前記バイパス経路との分岐点で経路を決定する経路決定工程と、
前記経路決定工程で決定された経路で任意の送信側バスアダプタと受信側バスアダプタとの間の通信を行う通信工程とを有することを特徴とするバスシステムの経路決定方法。
【請求項６】
請求項５記載のバスシステムの経路決定方法をコンピュータに実行させるためのプログラム。
【請求項７】
請求項６記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はバスシステムに係り、特にシステムオンチップ（SoC）に適したバスシステム及びその経路決定方法に関する。
【背景技術】
【０００２】
従来、バイパス経路を有するリングバスによるバスシステム及びデータ伝送経路の決定方法（例えば、特許文献１参照。）が提案されている。特許文献１に記載の技術は、特にシステムオンチップにおいて、多数の機能ブロックを接続する際のワイヤー遅延の問題の解決に有効である。
【０００３】
また、ネットワーク上の任意の２点間でデータ転送を実現する技術として、University of California at Berkeleyにおいて開発されたARPANETがある。
【特許文献１】特開2003-218891号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、システムオンチップを構成する多数の機能ブロックをネットワークで接続し、柔軟なデータパスの構成を実現するためのバスシステム及びネットワーク上の経路決定方法を提供するものである。
【０００５】
このようなバスシステムでは、性能を向上させるためにバイパス経路を持っていることが多い。特許文献１には、アービタのバス選択テーブルによってその経路を決定することが記載されている。また、ARPANETでは、ルータが有するルーティングテーブルによって経路を決定することが記載されている。
【０００６】
一般的なコンピュータネットワークにおいては、端末がネットワークに接続されたり、或いは切断されたりといった構成要素の変更があり得る。また、機器の故障によってある経路が普通になる可能性もある。このため、柔軟な経路決定方法が求められている。
【０００７】
しかし、通常のシステムオンチップの場合、機能ブロックは設計時に決定されるため、再構成可能な論理回路でも、構成情報を決定したときに機能ブロックの数と接続形態とが決定されてしまう。従って、頻繁な構成の変更に対応した経路の決定は必要はない。
【０００８】
本発明は上記課題を解決するためになされたもので、リングバスと、バイパス経路とを有するバスシステムの経路を簡易に決定することを目的とする。
【０００９】
また、ネットワークの構成が固定的であることを利用し、テーブル参照に代えて受信側アドレスの閾値との比較、或いは受信側アドレスのビットパターンによる簡易な経路決定方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、複数のバスアダプタが接続されたリングバスと、前記複数のバスアダプタのうちの２個を直接、或いは１個以上の別のバスアダプタ経由で接続する少なくとも１つの前記リングバス外のバイパス経路とを有するバスシステムにおいて、前記複数のバスアダプタを識別する識別情報と、受信側のバスアダプタを識別する受信側識別情報とに基づいて前記リングバスと前記バイパス経路との分岐点で経路を決定する経路決定手段と、前記経路決定手段で決定された経路で任意の送信側バスアダプタと受信側バスアダプタとの間の通信を行う通信手段とを有することを特徴とする。
【００１１】
また、本発明は、複数のバスアダプタが接続されたリングバスと、前記複数のバスアダプタのうちの２個を直接、或いは１個以上の別のバスアダプタ経由で接続する少なくとも１つの前記リングバス外のバイパス経路とを有するバスシステムの経路決定方法であって、前記複数のバスアダプタを識別する識別情報と、受信側のバスアダプタを識別する受信側識別情報とに基づいて前記リングバスと前記バイパス経路との分岐点で経路を決定する経路決定工程と、前記経路決定工程で決定された経路で任意の送信側バスアダプタと受信側バスアダプタとの間の通信を行う通信工程とを有することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、簡単な構成で且つ簡易に分岐点で経路を決定することができる。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
【００１４】
［第１の実施形態］
図１は、第１の実施形態におけるバスシステムの構成例を示すブロック図である。図１に示すように、バスシステム１００は、リングバス１０１とバイパス経路１０９によって構成されている。ここでリングバス１０１は、複数のバスアダプタ１０２〜１０６を接続している単方向の伝送機能を有するバスである。
【００１５】
一方、バイパス経路１０９は、バスアダプタ１０４よりバスアダプタ１０７を経由してバスアダプタ１０２に至る単方向の伝送機能を有するバスである。そして、機能ブロック１０８ａ〜１０８ｆはそれぞれ演算処理などの所定の機能を担うものであり、それぞれのバスアダプタ１０２〜１０７によってバスシステムに接続されている。
【００１６】
ここで、バスシステム１００は、以下のような任意の方式によって制御されているものとする。
（１）バスアービタ１０９から送信許可を得た場合に送信が可能となる方式
（２）バス上信号でフロー制御を行う方式
（３）イーサネット（登録商標）のように各バスアダプタが衝突を検知する手段を持ち、衝突した場合に再送する方式。
【００１７】
図２は、第１の実施形態におけるバスアダプタ間で通信されるデータのフォーマットを示す図である。図２に示すように、バスシステム１００では、受信側識別番号フィールド２０１を含むヘッダ部２０２と、正味の通信内容に相当するボディ部２０３で構成されるパケット２００によって任意の２点間の通信が行われる。
【００１８】
尚、このヘッダ部２０２には、受信側識別番号フィールド２０１の他にインターネットプロトコル（ＩＰ）の例と同様に、送信側識別番号、パケット長等の情報を格納するためのフィールドがあっても良い。
【００１９】
次に、図３を用いて、各々の機能ブロック１０８ａ〜１０８ｆをバスシステム１００のリングバス１０１又はバイパス経路１０９に接続するためのバスアダプタ１０２〜１０７の構成について説明する。
【００２０】
尚、バスアダプタ１０３、１０５、１０６については、接続先がリングバス１０１か、バイパス経路１０９かの相違だけで、その構成はバスアダプタ１０７と同様であるため、バスアダプタ１０２、１０４、１０７について説明する。
【００２１】
また、図３に示す構成は、上記（１）のバスアービタ１０９から送信許可を得た場合に送信が可能となる方式を用いた場合である。他の方式の場合、例えば上記（２）のバス上信号でフロー制御を方法を用いた場合には、バスアダプタ内に制御部を設けても良いし、バスアービタがフロー制御を行っても良い。
【００２２】
図３は、第１の実施形態におけるバスアダプタ１０２、１０４、１０７の構成例を示す図である。バスアダプタ１０２はマルチプレクサ３０１及びデコーダ３０２を含み、バスアダプタ１０２に入力された３つのデータのうちの何れか１つをバスアービタ１０９からの少なくとも選択信号及び許可信号に基づいてバスアダプタ１０３に出力する。尚、入力される３つのデータは、バスアダプタ１０６からリングバス１０１を介して出力されるデータ、バスアダプタ１０７からバイパス経路１０９を介して出力されるデータ、及び機能ブロック１０８ｂから出力されるデータである。
【００２３】
また、バスアダプタ１０７は、マルチプレクサ３０３及びデコーダ３０４を含み、バスアダプタ１０７に入力された２つのデータのうちの１つをバスアービタ１０９からの少なくとも選択信号及び許可信号に基づいてバスアダプタ１０２へ出力する。尚、入力される２つのデータは、バスアダプタ１０４からバイパス経路１０９を介して出力されるデータと、機能ブロック１０８ｆから出力されるデータである。
【００２４】
そして、バスアダプタ１０４は、デコーダ３０５、３０６を含み、バスアダプタ１０４に入力された２つのデータのうちの１つをバスアービタ１０９からの少なくとも選択信号及び許可信号に基づいてバスアダプタ１０７又は１０５へ出力する。即ち、バイパス経路１０９で接続されたバスアダプタ１０７か、リングバス１０１で接続されたバスアダプタ１０５の何れかへ出力する。ここで、入力される２つのデータは、バスアダプタ１０３からリングバス１０１を介して出力されるデータと、機能ブロック１０８ｃから出力されるデータである。
【００２５】
以上の構成において、各々のバスアダプタ４０２〜４０７に識別番号を割り当て、各々のバスアダプタで受信したパケットに含まれる受信側識別番号の値に基づいて経路を決定する処理について説明する。
【００２６】
図４は、各々のバスアダプタ４０２〜４０７に識別番号を割り当てた例を示す図である。尚、図４に示す例では、各々のバスアダプタ４０２〜４０７に接続された機能ブロック及びアービタは省略している。
【００２７】
各々のバスアダプタ４０２〜４０７は、受信したパケットで受信側識別番号フィールド２０１と割り当てられた識別番号とが一致すれば、そのパケットの内容を接続された機能ブロックに渡し、一致しなければ次のバスアダプタに転送する。
【００２８】
また、リングバス４０１とバイパス経路４０９の分岐点であるバスアダプタ４０４では、パケットを転送する際の経路を次のように決定する。即ち、受信側識別番号の値を閾値（図４に示す例では「５」）と比較し、閾値以下であれば経路としてリングバス４０１を選択し、閾値を超えていればバイパス経路４０９を選択する。
【００２９】
以上のように、各々のバスアダプタで受信したパケットに含まれる受信側識別番号の値に基づいて経路を決定することにより、任意のバスアダプタ間の通信を行うことが可能となる。
【００３０】
また、バスアダプタ４０２の識別番号を、リングバス４０１に対応した識別番号「１」とバイパス経路４０９に対応した識別番号「７」の２種類持たせても良い。これにより、例えばバスアダプタ４０３からバスアダプタ４０２への通信を行う際に、受信側識別番号に「１」を指定した場合、リングバス４０１を経路に決定する。また、受信側識別番号に「７」を指定した場合、バイパス経路４０９を経路に決定する。従って、このように経路の決定を選択することが可能になる。
【００３１】
図５は、図４とは異なる別の識別番号を割り当てた例を示す図である。図５に示す例では、バスアダプタ５０４における経路の選択は、受信側識別番号の最上位が「０」であればリングバス５０１となり、また受信側識別番号の最上位が「１」であればバイパス経路５０９となるようにすれば良い。
【００３２】
［第２の実施形態］
次に、図面を参照しながら本発明に係る第２の実施形態について詳細に説明する。
【００３３】
図６は、第２の実施形態におけるバスシステムの構成例を示すブロック図である。図６において、外周部分がリングバス６０１、その内部を通っているのがバイパス経路６０２〜６０５である。そして、バイパス経路６０４は、バイパス経路３０３上のバスアダプタ６０６から分岐している。
【００３４】
このように、複数の分岐を含む複雑なバスシステムにおいては、図７に示す手順で識別番号及び経路選択の閾値を割り当てる。以下、図６に示すバスシステムを例に図７に示す経路選択のための閾値を決定する処理について説明する。尚、識別番号は６ビットの数値を用いるものとする。
【００３５】
まず、ステップＳ７０１、Ｓ７０２において、リングバス上に識別番号を割り当てる。その結果、例えば図８に示すように、識別番号が割り当てられたとする。
【００３６】
次に、ステップＳ７０３において、本バスシステムの全てのバスアダプタに対して識別番号の割り当てが終了したか否かを判定する。ここで、バイパス系路上のバスアダプタに識別番号が割り当てられていないため、ステップＳ７０３へ進む。このステップＳ７０３では、未だ識別番号が割り当てられていない分岐点、例えばバスアダプタ８０３は除外して、識別番号のある分岐点の中から最大の識別番号のものを選択する。図８に示す例では、バスアダプタ８０１（識別番号000100）、８０２（識別番号000101）のうち、最大の識別番号を持つバスアダプタ８０２が選択される。
【００３７】
次に、ステップＳ７０５において、ステップＳ７０４で選択した分岐点のバスアダプタ８０２より分岐しているバイパス経路８０４を選択する。そして、ステップＳ７０６では、そのバイパス経路８０４に対する閾値として「000111」を設定する。
【００３８】
次に、ステップＳ７０７において、バイパス経路８０４上のバスアダプタ８０５に対して識別番号001000を割り当てる。そして、上述のステップＳ７０３に戻る。
【００３９】
ここで、ステップＳ７０３では、バスアダプタ８０１から分岐するバイパス経路８０６、８０７上のバスアダプタに識別番号が割り当てられていないため、ステップＳ７０４へ進む。ステップＳ７０４では、現時点で識別番号が割り当てられ、かつ分岐先のバイパス系路上に識別番号のないバスアダプタが接続されている唯一のバスアダプタ８０１を選択する。
【００４０】
次に、ステップＳ７０５において、バスアダプタ８０１より分岐しているバイパス経路８０６、８０７がある。バイパス経路８０６はバスアダプタ８０３において、更にバイパス経路８０６ａ、８０６ｂに分岐してため、経路の候補としてはバイパス経路８０６ａ、８０６ｂ、８０７がある。どれを選択しても良いが、この例ではバイパス経路８０６ａを選択する。そして、ステップＳ７０６では、そのバイパス経路８０６に対する閾値として「001000」を設定する。
【００４１】
次に、ステップＳ７０７において、バイパス経路８０６上のバスアダプタ８０３に対して識別番号を割り当てるのだが、この例では、「001001」〜「001111」までを欠番とし、「010000」を割り当てるものとする。これは、後述するように上位３ビットで経路の判別を可能にするためである。また、選択されたバイパス経路８０６ａ上の次のバスアダプタ８０８に対しては識別番号「010001」を割り当てる。そして、上述のステップＳ７０３に戻る。
【００４２】
ここで、ステップＳ７０３では、バスアダプタ８０１から分岐するバイパス経路８０７及びバスアダプタ８０３から分岐するバイパス経路８０６ｂ上のバスアダプタ８０９、８１０に識別番号が割り当てられていないため、ステップＳ７０４へ進む。ステップＳ７０４では、バイパス経路８０６ｂの分岐元であるバスアダプタ８０３（識別番号010000）と、バイパス経路８０７の分岐元であるバスアダプタ８０１（識別番号000100）のうち、より大きい識別番号のバスアダプタ８０３を選択する。
【００４３】
次に、ステップＳ７０５において、バスアダプタ８０３より分岐しているバイパス経路８０６ｂを選択する。そして、ステップＳ７０６では、そのバイパス経路８０６ｂに対する閾値として「010001」を設定する。
【００４４】
次に、ステップ７０７において、バイパス経路８０６ｂ上のバスアダプタ８０９に対して識別番号を割り当てる。この例では、「010010」〜「010111」までを欠番とし、「011000」を割り当てる。そして、上述のステップＳ７０３に戻る。
【００４５】
ここで、ステップＳ７０３では、バスアダプタ８０１から分岐するバイパス経路８０７上のバスアダプタ８１０に識別番号が割り当てられていないため、ステップＳ７０４へ進む。そして、ステップＳ７０４では、唯一残った分岐元であるバスアダプタ８０１（識別番号000100）を選択する。
【００４６】
次に、ステップＳ７０５では、バスアダプタ８０１より分岐しているバイパス経路８０７を選択する。そして、ステップＳ７０６では、バイパス経路８０７に対する閾値として「011000」を設定する。
【００４７】
次に、ステップＳ７０７において、バイパス経路８０７上のバスアダプタ８１０に対して識別番号を割り当てる。この例では、「011001」〜「011111」までを欠番として、「100000」を割り当てる。そして、上述のステップＳ７０３に戻り、全てのバスアダプタに識別番号が割り当てられたため、処理を終了する。
【００４８】
以上の処理により、図９に示すように、各々のバスアダプタに対して識別番号と、経路選択閾値を決定することができる。
【００４９】
以下、図９における経路の決定について説明する。
【００５０】
バスアダプタ９０１では、３分岐になっているため、二つの閾値（001000，011000）を持つ。各パケットの経路は以下のように決定される。
【００５１】
受信側識別番号が第１の閾値（001000）以下の場合は経路９０４、第１の閾値を越え、第２の閾値（011000）以下の場合には経路９０５、第２の閾値を越える場合には経路９０６となる。
【００５２】
バスアダプタ９０２における分岐は閾値000111を持つ。各パケットの経路は受信側識別番号が閾値以下の場合に経路９０７、閾値を越える場合に経路９０８となる。
【００５３】
バスアダプタ９０３における分岐は閾値010001を持つ。各パケットの経路は受信側識別番号が閾値以下の場合に経路９０９、閾値を越える場合に経路９１０となる。
【００５４】
以上のように構成することで、各パケットは受信側識別番号の示すバスアダプタに到達することが可能となる。
【００５５】
また、図９に示す閾値との比較によって経路の決定を行う方法に代えて、図１０に示すように、各パケットの受信側識別番号のうち特定の１個以上のビットの値によって経路の決定を行うことも可能である。
【００５６】
以上、単方向のバスを例に説明したが、双方向のバスは単方向のバスとバイパス経路の組み合わせであるとみなすことが可能であるため、双方向のバスに対しても本発明の適用は可能である。
【００５７】
また、インターネットプロトコルのように、複数のネットワークを接続し、バスアダプタの識別番号のうち上位ビット群をネットワークを識別するために用い、下位ビット群をネットワーク内でのバスアダプタの識別に用いても良い。これにより、より複雑な構成のネットワークの構築も可能である。
【００５８】
システムオンチップ内部でのネットワークの特徴として、構成が設計時に確定し、変更を考慮する必要がないという点がある。本発明はこの特徴を利用して、経路の決定手順を単純化し、受信側識別番号とある閾値との比較、或いは、受信側識別番号の一部のビットだけによる決定を可能としている。
【００５９】
これにより、経路決定のための回路規模の縮小と共に、経路決定の高速化を図ることができる。
【００６０】
尚、本発明は複数の機器（例えば、ホストコンピュータ，インターフェース機器，リーダ，プリンタなど）から構成されるシステムに適用しても、１つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用しても良い。
【００６１】
また、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行する。これによっても、本発明の目的が達成されることは言うまでもない。
【００６２】
この場合、記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【００６３】
このプログラムコードを供給するための記録媒体としては、例えばフロッピー（登録商標）ディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００６４】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、次の場合も含まれることは言うまでもない。即ち、プログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合。
【００６５】
更に、記録媒体から読出されたプログラムコードがコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００６６】
【図１】第１の実施形態におけるバスシステムの構成例を示すブロック図である。
【図２】第１の実施形態におけるバスアダプタ間で通信されるデータのフォーマットを示す図である。
【図３】第１の実施形態におけるバスアダプタ１０２、１０４、１０７の構成例を示す図である。
【図４】各々のバスアダプタ４０２〜４０７に識別番号を割り当てた例を示す図である。
【図５】図４とは異なる別の識別番号を割り当てた例を示す図である。
【図６】第２の実施形態におけるバスシステムの構成例を示すブロック図である。
【図７】第２の実施形態における経路選択の閾値を決定する処理を示すフローチャートである。
【図８】第２の実施形態における経路選択の閾値を割り当てたバスアダプタを示す図である。
【図９】第２の実施形態における経路の決定について説明するための図である。
【図１０】変形例における経路の決定について説明するための図である。
【符号の説明】
【００６７】
１００  バスシステム
１０１  リングバス
１０２  バスアダプタ
１０３  バスアダプタ
１０４  バスアダプタ
１０５  バスアダプタ
１０６  バスアダプタ
１０７  バスアダプタ
１０８ａ  機能ブロック
１０８ｂ  機能ブロック
１０８ｃ  機能ブロック
１０８ｄ  機能ブロック
１０８ｅ  機能ブロック
１０８ｆ  機能ブロック
１０９  バイパス経路
２００  パケット
２０１  受信側識別番号フィールド
２０２  ヘッダ部
２０３  ボディ部
【図１】
2007020110.tif 000003
【図２】
2007020110.tif 000004
【図３】
2007020110.tif 000005
【図４】
2007020110.tif 000006
【図５】
2007020110.tif 000007
【図６】
2007020110.tif 000008
【図７】
2007020110.tif 000009
【図８】
2007020110.tif 000010
【図９】
2007020110.tif 000011
【図１０】
2007020110.tif 000012