(57)【要約】【課題】モジュール間での公平なデータ転送を簡単な構成で実現することができるデータ処理装置を提供する。【解決手段】制御パケット更新部１０６は、他のモジュールからバスへのデータパケットの出力の抑制を要求するための制御パケットをレジスタ１０７へ出力する。出力パケット選択部１０４は、データパケット生成部１０３が生成したデータパケット１１３と、入力データ解析部１００から出力されたデータパケット１１５とのどちらかを選択し、レジスタ１０７へ出力する。制御パケットによって、他のモジュールからバスへのデータパケットの出力の抑制を要求したモジュールが、自モジュールの送信したいデータパケットをバスへ出力することが可能となり、データを送信することができないモジュールがなくなる。【選択図】図２
2008066971.tif 000002
【特許請求の範囲】
【請求項１】
複数のモジュールが、バスを介してリング状に接続されたデータ処理装置であって、
前記モジュールは、
他のモジュールから前記バスへのデータパケットの出力の抑制を要求するための制御パケットを前記バスへ出力する制御パケット出力部と、
前記バスから入力された前記制御パケットに基づいて前記バスへの前記データパケットの出力を制御するデータパケット制御部と、
を有することを特徴とするデータ処理装置。
【請求項２】
前記データパケット制御部はさらに、前記制御パケットによって前記バスへの前記データパケットの出力の抑制を要求しているモジュールと、自モジュールから送信される前記データパケットの宛先のモジュールと、自モジュールとの前記バス上の位置関係に基づいて、前記バスへの前記データパケットの出力を制御することを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記データパケット制御部はさらに、前記モジュールの優先順位に基づいて、前記バスへの前記データパケットの出力を制御することを特徴とする請求項１または請求項２に記載のデータ処理装置。
【請求項４】
前記制御パケットは、前記データパケット自体の優先順位を示す情報を格納する優先度フィールドを有し、
前記データパケット制御部はさらに、前記優先度フィールドに格納されている前記優先順位に基づいて前記バスへの前記データパケットの出力を制御する
ことを特徴とする請求項１または請求項２に記載のデータ処理装置。
【請求項５】
前記制御パケットは、他のモジュールによる前記制御パケットの更新の禁止を示す情報を格納するロックフィールドを有し、
前記制御パケット出力部は、前記他のモジュールからの前記制御パケット内の前記ロックフィールドに、前記制御パケットの更新の禁止を示す情報が格納されている場合には、前記他のモジュールからの前記制御パケットの更新を行わない
ことを特徴とする請求項１〜請求項４のいずれかに記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のモジュールが並列にデータ処理を実行するデータ処理装置に関する。
【背景技術】
【０００２】
一般に、集積回路は、単一の機能を有する機能モジュールを複数組み合わせることで所望の機能を実現している。この場合、各モジュールは双方向のバスで接続されることが多い。しかし、この双方向バスによる接続では、データ転送時には１対１の転送が行われるため、複数のモジュールが同時にデータを送出することはできない。よって、接続されるモジュールが多くなるほど転送待ち時間が増加し、転送効率が悪化する。また、バスの使用権の調停にオーバーヘッドが生じる上、モジュール数が増えるほど、その制御の複雑度が増加するといったデメリットがある。
【０００３】
このような問題を解決する方法として、例えば特許文献１に記載の集積回路が提案されている。図１４にその構成を示す。処理モジュール１４０１ａ〜１４０１ｄは、アダプタ１４０２ａ〜１４０２ｄを介してリング状のバス１４０３に接続されている。また、このアダプタの構成は図１５のようになっている。このアダプタ内には、フリップフロップで構成されたレジスタ１５０１，１５０４が配置されており、このレジスタ１５０１，１５０４とリング状バスとで一種のシフトレジスタを構成しているため、リングバス上にはレジスタ数と同じ数の転送データが存在することができる。
【０００４】
アダプタ内では、データ抽出挿入回路１５０２とセレクタ１５０３により、リングバスからのデータ取得およびリングバスへのデータ送出が制御される。データ抽出挿入回路１５０２は、レジスタ１５０１に保持されたデータが自モジュール宛であるか否かの判定を行い、自モジュール宛であればモジュール内にデータを取り込む。一方、セレクタ１５０３は、他のモジュール宛のデータが入力された場合にはその入力データを、自モジュール宛のデータあるいは無効データが入力された場合にはデータ抽出挿入回路１５０２の出力を選択してレジスタ１５０４に入力する。この構成により、同時に複数のデータ転送を実行することが可能になるため、双方向バス方式と比較してデータ転送性能が向上する。
【特許文献１】特開平１１−１６７５６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記のように、特許文献１に記載の集積回路においては、自モジュール宛のデータか無効データが入力されたときにはリングバス上にデータを送出できるようになっている。他のモジュール宛のデータが入力された場合、そのモジュールは、入力データを次段のモジュールに転送するためのシフトレジスタとしての機能しか果たせず、送出したいデータがあってもデータを送出することができない。すなわち、モジュール間で公平なデータ転送が行えないという状況が発生する。なお、特許文献１では、このような問題の対策として、図１６のように転送制御回路１６０１を配置し、公平な転送を実現するための集中管理を行うという提案が記載されている。しかし、この構成ではモジュール数の増加に比例して、制御回路の複雑度が飛躍的に増加することが容易に想像できる。
【０００６】
本発明は、上述した問題点に鑑みてなされたものであって、モジュール間での公平なデータ転送を簡単な構成で実現することができるデータ処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、上記の課題を解決するためになされたもので、複数のモジュールが、バスを介してリング状に接続されたデータ処理装置であって、前記モジュールは、他のモジュールから前記バスへのデータパケットの出力の抑制を要求するための制御パケットを前記バスへ出力する制御パケット出力部と、前記バスから入力された前記制御パケットに基づいて前記バスへの前記データパケットの出力を制御するデータパケット制御部とを有することを特徴とするデータ処理装置である。
【０００８】
また、本発明のデータ処理装置において、前記データパケット制御部はさらに、前記制御パケットによって前記バスへの前記データパケットの出力の抑制を要求しているモジュールと、自モジュールから送信される前記データパケットの宛先のモジュールと、自モジュールとの前記バス上の位置関係に基づいて、前記バスへの前記データパケットの出力を制御することを特徴とする。
【０００９】
また、本発明のデータ処理装置において、前記データパケット制御部はさらに、前記モジュールの優先順位に基づいて、前記バスへの前記データパケットの出力を制御することを特徴とする。
【００１０】
また、本発明のデータ処理装置において、前記制御パケットは、前記データパケット自体の優先順位を示す情報を格納する優先度フィールドを有し、前記データパケット制御部はさらに、前記優先度フィールドに格納されている前記優先順位に基づいて前記バスへの前記データパケットの出力を制御することを特徴とする。
【００１１】
また、本発明のデータ処理装置において、前記制御パケットは、他のモジュールによる前記制御パケットの更新の禁止を示す情報を格納するロックフィールドを有し、前記制御パケット出力部は、前記他のモジュールからの前記制御パケット内の前記ロックフィールドに、前記制御パケットの更新の禁止を示す情報が格納されている場合には、前記他のモジュールからの前記制御パケットの更新を行わないことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、制御パケットによって、他のモジュールからバスへのデータパケットの出力の抑制を要求したモジュールが、自モジュールの送信したいデータパケットをバスへ出力することが可能となり、データを送信することができないモジュールがなくなる。したがって、モジュール間での公平なデータ転送を簡単な構成で実現することができる。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照し、本発明の実施形態を説明する。
【００１４】
（第１の実施形態）
まず、本発明の第１の実施形態を説明する。図１は、本実施形態によるデータ処理装置の構成を示している。プロセッサモジュール１１０は、プロセッサモジュール毎にそれぞれ定められた所定の処理を実行する。各プロセッサモジュール１１０は、データパケットを転送するデータパケット転送路１１１と、データ転送を制御するための制御パケットを転送する制御パケット転送路１１２とを介し、リング状に結線されている。これらデータパケット転送路１１１と制御パケット転送路１１２とによって、リング状バスが構成されている。
【００１５】
データパケットおよび制御パケットの転送は図１中の矢印の方向にのみ行われる。なお、プロセッサモジュール１１０の出力段にはレジスタ１０７が設けられており、このレジスタ１０７の出力は次段のプロセッサモジュール１１０の入力となっている。転送データは、これらのレジスタ１０７によるシフトレジスタ動作により、所望のプロセッサモジュール１１０まで転送される。
【００１６】
よって、各プロセッサモジュール１１０間（レジスタ１０７間）にはそれぞれ独立したデータパケットが存在することが可能であり、プロセッサモジュール数と同数のデータ転送を同時に実行することができる。なお、図１ではプロセッサモジュール１１０が３個結線されているが、結線されるプロセッサモジュールの個数に制限はない。
【００１７】
次に、本実施形態におけるデータパケットと制御パケットの構成を説明する。データパケットの構成例を図３に、制御パケットの構成例を図４に示す。データパケットは、転送に関する種々の情報が格納されるヘッダ部１０と、データ本体が格納されるデータ部１１とから構成されている。
【００１８】
データパケットは以下のフィールドで構成されている。有効フィールド１２は、データ部１１に存在するデータが有効、無効のどちらであるのかを示す情報を格納するフィールドである。転送先ＩＤフィールド１３は、データパケットを受信させたいプロセッサモジュールのＩＤ番号を示す情報を格納するフィールドである。プロセッサモジュールのＩＤ番号には、本データ処理装置内で重複しない固有の数字が割り振られている。このＩＤ番号は、ハードウェア的に固定情報として保持していても良いし、レジスタ等に保持することで外部から変更できるようになっていても良い。転送元ＩＤフィールド１４は、データパケットを発信したプロセッサモジュールのＩＤ番号を示す情報を格納するフィールドである。転送データフィールド１５は、転送したいデータを格納するフィールドである。
【００１９】
制御パケットは以下のフィールドで構成されている。有効フィールド２１は、他のモジュールからデータパケット転送路１１１へのデータパケットの出力の抑制を要求する抑止要求の有無を示す情報を格納するフィールドである。予約モジュールＩＤフィールド２２は、抑止要求を発行したプロセッサモジュールのＩＤ番号を示す情報を格納するフィールドである。
【００２０】
次に、プロセッサモジュール１１０の詳細を説明する。図２はプロセッサモジュール１１０の構成を示している。入力データ解析部１００には、データパケット転送路１１１からのデータパケット１１６が入力される。入力データ解析部１００は、データパケット１１６のヘッダ部を解析することにより、データパケット１１６が自モジュール宛の有効なデータパケットであるか否かを判定する。
【００２１】
判定の結果、データパケット１１６が自モジュール宛の有効なデータパケットであった場合、入力データ解析部１００はデータパケット１１６からデータ部を取り出して処理部１０１へ出力する。同時に入力データ解析部１００は、データパケット１１６のヘッダ部の有効フィールドを“無効”にしたデータパケット１１５を出力パケット選択部１０４へ出力する。また、データパケット１１６が“無効”あるいは他のモジュール宛てのデータパケットであった場合、入力データ解析部１００はデータパケット１１５としてデータパケット１１６をそのまま出力し、処理部１０１には何も出力しない。
【００２２】
処理部１０１は、あらかじめ決められた処理を、入力されたデータに対して実行し、処理結果を出力バッファ１０２に格納する。出力バッファ１０２は、その処理結果を一時的に保持する。データパケット生成部１０３は、処理結果を示すデータが出力バッファ１０２に存在する場合、出力バッファ１０２からデータを読み出し、転送に必要なヘッダ情報を付与してデータパケットを生成し、データパケット１１３として出力パケット選択部１０４へ出力する。出力パケット選択部１０４は、データパケット生成部１０３が生成したデータパケット１１３と、入力データ解析部１００から出力されたデータパケット１１５とのどちらかを選択し、レジスタ１０７へ出力する。
【００２３】
優先順位保持部１０５はプロセッサモジュール１１０の転送優先順位を保持する。制御パケット更新部１０６は、データパケット１１３の有無やデータパケット１１６の有効・無効等の判定結果と、優先順位保持部１０５によって保持されているプロセッサモジュール１１０の転送優先順位とに基づいて、制御パケット転送路１１２から入力された制御パケット１１７を更新し、制御パケット１１８としてレジスタ１０７へ出力する。レジスタ１０７は、出力パケット選択部１０４の出力（データパケット）と制御パケット更新部１０６の出力（制御パケット）を１サイクル期間保持し、データパケット転送路１１１及び制御パケット転送路１１２を通してデータパケットと制御パケットをそれぞれ次段のプロセッサモジュールへ出力する。
【００２４】
次に、図５を参照しながら出力パケット選択部１０４の動作を説明する。まず、出力パケット選択部１０４は、データパケット生成部１０３からのデータパケット１１３があるか否かを判定する（ステップＳ１００）。データパケット１１３がなかった場合、出力パケット選択部１０４はデータパケット１１５を選択してレジスタ１０７へ出力する（ステップＳ１０７）。また、データパケット１１３があった場合、出力パケット選択部１０４は、データパケット転送路１１１から入力されたデータパケット１１６のヘッダ部を参照し、データパケットが有効データパケットであるか否かを判定する（ステップＳ１０１）。
【００２５】
データパケット１１６が有効データパケットであった場合、出力パケット選択部１０４はデータパケット１１６のヘッダ部を参照し、データパケットの宛先が他モジュールであるか否かを判定する（ステップＳ１０２）。宛先が他モジュールであった場合、出力パケット選択部１０４はデータパケット１１５を選択してレジスタ１０７へ出力する（ステップＳ１０８）。また、宛先がそれ以外（自モジュール）であった場合には、出力パケット選択部１０４は、データパケット１１６と同時に制御パケット転送路１１２から入力されている制御パケット１１７の有効フィールドを参照し、データ送信の抑止要求があるか否かを判定する（ステップＳ１０３）。
【００２６】
抑止要求があった場合には、出力パケット選択部１０４はデータパケット１１５を選択してレジスタ１０７へ出力し（ステップＳ１０８）、抑止要求がなかった場合には、出力パケット選択部１０４はデータパケット１１３を選択してレジスタ１０７へ出力する（ステップＳ１０９）。一方、データパケット生成部１０３からのデータパケット１１３があるものの、有効なデータパケット１１６がない場合（ステップＳ１０１でＮｏの場合）には、出力パケット選択部１０４は制御パケット１１７を参照し、データ送信の抑止要求があるか否かを判定する（ステップＳ１０４）。
【００２７】
抑止要求がなかった場合、出力パケット選択部１０４はデータパケット１１３を選択してレジスタ１０７へ出力し（ステップＳ１１０）、抑止要求があった場合には、出力パケット選択部１０４は、制御パケット１１７の予約モジュールＩＤフィールドに格納されているＩＤと自身のＩＤを比較する（ステップＳ１０５）。両ＩＤが一致した場合、現在入力されている無効パケット（データパケット１１６）は、自モジュールが数サイクル前に発行した抑止要求により、他のモジュールがデータ送信を保留した結果であるため、出力パケット選択部１０４は、自モジュールからのデータ送信が可能であると判断し、データパケット１１３を選択してレジスタ１０７へ出力する（ステップＳ１１０）。また、両ＩＤが一致しなかった場合には、出力パケット選択部１０４はデータパケット１１５を選択してレジスタ１０７へ出力する（ステップＳ１０８）。
【００２８】
以上を簡単にまとめると、出力すべきデータがある場合でも、自モジュール以外のプロセッサモジュールが発行した抑止要求がある場合には、プロセッサモジュール内で生成されたデータパケットをバスに出力できないということになる。ただし、プロセッサモジュールに入力されたパケットをそのまま出力するのはよい。
【００２９】
このように、本実施形態では、出力すべきデータがあり、なおかつ有効なデータパケットの入力がない場合でも、制御パケットにより、データ送出が抑止される場合がある。よって、あるプロセッサモジュールが、抑止要求を示す制御パケットを発行すると、その制御パケットが通過したプロセッサモジュールがそのサイクルでのデータ送出を抑止するため、リングバス上に１サイクル分の隙間が空くことになり、抑止要求を発行したプロセッサモジュールがデータを送出することができるようになる。なお、データパケット生成部１０３が生成したデータパケット１１３は、必ずしもすぐに出力されるとは限らないため、データパケット生成部１０３と出力パケット選択部１０４との間では、データを保持および更新するための何らかのハンドシェイクが行われることが望ましい。
【００３０】
次に、図６を参照しながら制御パケット更新部１０６の動作を説明する。まず、制御パケット更新部１０６は、データパケット生成部１０３がデータパケット１１３を生成したか否かを判定する（ステップＳ２００）。データパケット１１３が存在する場合、制御パケット更新部１０６は、データパケット転送路１１１から入力されたデータパケット１１６のヘッダ部を参照し、データパケット１１６が有効データパケットであるか否かを判定する（ステップＳ２０１）。
【００３１】
データパケット１１６が有効データパケットであった場合、制御パケット更新部１０６はデータパケット１１６のヘッダ部を参照し、宛先が他モジュールであるか否かを判定する（ステップＳ２０２）。宛先が他モジュールであった場合、制御パケット更新部１０６は、制御パケット転送路１１２から入力された制御パケット１１７の有効フィールドを参照し、データ送信の抑止要求があるか否かを判定する（ステップＳ２０３）。
【００３２】
抑止要求がなかった場合、制御パケット更新部１０６は制御パケット１１７の有効フィールドに抑止要求を書き込むと共に、予約モジュールＩＤフィールドに自モジュールのＩＤを書き込む（ステップＳ２１２）。また、既に抑止要求があった場合、制御パケット更新部１０６は制御パケット１１７の予約モジュールＩＤフィールド（抑止要求を発行したプロセッサモジュールのＩＤが格納されている）と、優先順位保持部１０５によって保持されているプロセッサモジュールの転送優先順位とを参照し、抑止要求を発行したプロセッサモジュールの優先順位が自モジュールよりも下位であるか否かを判定する（ステップＳ２０４）。
【００３３】
抑止要求を発行したプロセッサモジュールの優先順位が自モジュールよりも下位の場合、制御パケット更新部１０６は制御パケット１１７の予約モジュールＩＤフィールドに自モジュールのＩＤを書き込む（ステップＳ２０７）。制御パケット１１７の有効フィールドには既に抑止要求が書き込まれているので、予約モジュールＩＤフィールドのみが更新される。また、抑止要求を発行したプロセッサモジュールの優先順位が自モジュールと同レベル以上の場合、制御パケット更新部１０６は制御パケット１１７の更新動作を終了し、制御パケット１１７をそのままレジスタ１０７へ出力する。
【００３４】
一方、データパケット１１３は存在するが、データパケット１１６が無効パケットである場合（ステップＳ２０１でＮｏの場合）は、既に他のモジュールにより抑止要求が発行されているか、あるいは自モジュールが発行した抑止要求により、他のモジュールが転送を抑止した結果として無効パケットが入力されたという場合が考えられる。そこで、制御パケット更新部１０６は制御パケット１１７を参照し、抑止要求があるか否かを判定する（ステップＳ２０５）。
【００３５】
抑止要求がなかった場合には、そのままデータ出力が可能であるため、制御パケット更新部１０６は何もする必要がない。また、抑止要求があった場合、制御パケット更新部１０６は、その抑止要求が、自モジュールよりも優先順位の低いモジュールによって発行されたものであるか否かを判定する（ステップＳ２０６）。抑止要求が、自モジュールよりも優先順位の低いモジュールによって発行されたものであった場合、制御パケット更新部１０６は制御パケット１１７の予約モジュールＩＤフィールドに自モジュールのＩＤを書き込む（ステップＳ２０７）。制御パケット１１７の有効フィールドには既に抑止要求が書き込まれているので、予約モジュールＩＤフィールドのみが更新される。
【００３６】
また、抑止要求が、自モジュールの優先順位と同レベル以上のモジュールによって発行されたものであった場合、制御パケット更新部１０６は、抑止要求を発行したモジュールが自モジュールであるか否かを判定する（ステップＳ２１２）。抑止要求を発行したモジュールが自モジュールでなかった場合には、制御パケット更新部１０６は制御パケットの更新動作を終了し、制御パケット１１７をそのままレジスタ１０７へ出力する。また、抑止要求を発行したモジュールが自モジュールであった場合には、自モジュールが発行した制御パケットが巡回して自モジュールに戻ってきたことになるので、制御パケット更新部１０６は他のモジュールのために有効フィールドと予約モジュールＩＤフィールドをクリアする（ステップＳ２０８）。
【００３７】
なお、ステップＳ２００の判定の結果、出力すべきデータがない場合には、本来は何もすべきことはないのだが、本実施形態では、自モジュールの抑止要求が何らかの手違いで残留していないかどうかの判定を行い、必要に応じて制御パケットの有効フィールドと予約モジュールＩＤフィールドをクリアする（ステップＳ２０９〜２１１）。
【００３８】
制御パケットの更新の際に優先順位の情報を用いているため、転送路の使用権に優先順位を付けることができる。仮に、優先順位の低いモジュールがデータ送信の抑止要求を出していたとしても、それより上位の優先順位を持つモジュールであれば、制御パケットを再更新することができる。その結果、優先順位の低いモジュールは、抑止要求を発行したとしても必ずしもデータ出力にたどり着けるとは限らないため、他のモジュールによる制御パケットの再更新が実施された場合には、再度制御パケットを更新する必要がある。
【００３９】
次に、図７および図８を参照しながらプロセッサモジュール間での転送動作を説明する。図７では、３個のプロセッサモジュール１４０，１４１，１４２が、データパケット転送路および制御パケット転送路を介してリング状に接続されている。ここで、プロセッサモジュール１４０からプロセッサモジュール１４２に連続的にデータが転送されているものとする。なお、プロセッサモジュール１４１の優先順位はプロセッサモジュール１４０よりも上位であるとする。また、プロセッサモジュール１４０，１４１，１４２のＩＤはそれぞれＡ，Ｂ，Ｃであるとする。この状態で、プロセッサモジュール１４１からプロセッサモジュール１４０へのデータ転送が発生する場合を考える。
【００４０】
図８の時間１５０において、プロセッサモジュール１４１内のデータパケット生成部１０３がデータパケット１１３（“ＢＡ０”）を生成したものの、出力パケット選択部１０４には有効なデータパケット１３０（“ＡＣ０”）が入力されている。入力パケットを優先した結果、出力パケット選択部１０４から出力されるデータパケット１１４は“ＡＣ０”となる。この時、制御パケット更新部１０６は、制御パケットの予約モジュールＩＤフィールドに自身のＩＤ“Ｂ”を書き込み、制御パケット１１８としてレジスタ１０７へ出力する。
【００４１】
時間１５１において、プロセッサモジュール１４０に入力される制御パケット１３５として、予約モジュールＩＤフィールドに“Ｂ”がセットされた制御パケットが入力される。データ送信の抑止要求が発行されている場合、抑止要求を発行したモジュール以外は新規にデータを送出することができなくなるため、時間１５２において、プロセッサモジュール１４０は、本来出力する予定であったデータパケット“ＡＣ３”ではなく、無効データパケットを出力する。なお、本実施形態では、データの送出ができなくても、制御パケットの更新は可能であるが、上記の場合では、プロセッサモジュール１４０の優先順位が、抑止要求を発行したプロセッサモジュール１４１よりも下位であるため、制御パケットの更新はできない。
【００４２】
また、無効データパケットが入力されたプロセッサモジュール１４１には、自身が時間１５０で発行した抑止要求を含む制御パケットが入力されている。プロセッサモジュール１４１の出力パケット選択部１０４はデータパケット生成部１０３からのデータパケット（“ＢＡ０”）を選択し、データパケット１１４としてレジスタ１０７に出力する。一方、制御パケット更新部１０６は、自身が制御パケットの予約モジュールＩＤフィールドに設定した“Ｂ”をクリアする。なお、制御パケットの有効フィールドを”無効“にするだけでも同じ効果が得られる。さらに、出力パケット選択部１０４からデータパケット生成部１０３に図示しないコントロール信号が送られ、データパケット生成部１０３はデータパケット”ＢＡ０“の保持を停止し、必要に応じて次のパケットの生成に移行する。
【００４３】
時間１５３において、プロセッサモジュール１４１から出力されるデータパケット１３２として“ＢＡ０”が現れる。また、時間１５４において、データパケット“ＢＡ０”が、転送先であるプロセッサモジュール１４０まで到達し、転送が完了する。
【００４４】
上述したように、本実施形態によれば、制御パケットにより他のモジュールのデータ転送を抑止することで、データ送信の抑止要求を発行したモジュールは、所定の時間が経過した後にデータを送信することが可能になる。よって、データを送信することができないモジュールがなくなり、公平なデータ転送が可能になる。さらに、制御パケットの情報の更新権に優先順位を付けることで、リングバス使用権の秩序ある調停が可能になる。さらに、有効なデータパケットが入力されてなく、なおかつ制御パケットに抑止要求がないときに、自モジュールが生成したデータパケットを送出するという動作は非常に簡潔であり、簡単なハードウェアで実現できる。
【００４５】
本実施形態では、データパケット用の転送路と制御パケット用の転送路を分けて図示しているが、転送方向が同じなので、両者をまとめて一つの転送路としてもよい。その場合には、例えば図９のようなパケット構成にすればよい。図９では、図３に示したデータパケットの構成に対して、図４に示した制御パケットの構成が制御部２０として付加されている。また、データパケットおよび制御パケットの構成は、図示した構成に限定する必要はない。各フィールドの位置を入れ替えることは当然可能であるし、各システムに固有の情報フィールドを定義してもよい。また、各フィールドのビット長も、その処理システムに最適なビット長を定義すればよい。
【００４６】
さらに、本実施形態では、レジスタ１０７はプロセッサモジュール１１０の最後段に配置されているが、入力データ解析部１００の前段に配置してもよいし、入力、出力の２箇所に配置してもよい。
【００４７】
（第２の実施形態）
次に、本発明の第２の実施形態を説明する。本実施形態の基本構成は第１の実施形態と同様であるため、説明には図２を使用する。第１の実施形態では、基本的に制御パケットの有効フィールドがセットされていれば、各モジュールはデータの送出を抑止していた。しかし、必ずしもすべてのデータ送出を抑止する必要はない。例えば、図１０（ａ）において、プロセッサモジュール２０１がデータ送信の抑止要求を発行した場合を考える。
【００４８】
制御パケットの目的は、抑止要求を発行したモジュールに無効パケットを入力することであり、抑止要求を発行したモジュールを跨いだデータ転送が開始されなければそれでよい。図１０（ｂ）は、どのモジュールからどのモジュールへデータが転送されるのかを示す転送内容と、転送を許可するか否かの可否判定の組み合わせを示している。
【００４９】
例えば、プロセッサモジュール２００から２０１へデータが転送される場合、抑止要求を発行したプロセッサモジュール２０１を跨いだデータ転送は行われないため、可否判定の結果は“可”となる。また、プロセッサモジュール２００から２０２へデータが転送される場合、抑止要求を発行したプロセッサモジュール２０１を跨いだデータ転送が行われるため、可否判定の結果は“不可”となる。よって、図１０（ｂ）の組み合わせでは、転送を抑止しなければならないのは３通りだけであり、その他の組み合わせは問題なく実行できる。
【００５０】
以下、図１１を参照しながら、本実施形態における出力パケット選択部１０４の動作を説明する。基本的な動作は第１の実施形態と同様であり、共通部分に関しては図５と同一の符号を付与し、説明を省略する。本実施形態における出力パケット選択部１０４の特徴的な動作は、データパケット生成部１０３からのデータパケット１１３が存在し、データパケット転送路１１１から入力されたデータパケット１１６が無効データパケットであり、なおかつ自モジュール以外によるデータ送信の抑止要求が発行されている場合（ステップＳ１０５でＮｏの場合）に発動される。
【００５１】
この場合、出力パケット選択部１０４は、制御パケット１１７の予約モジュールＩＤフィールドに格納されているＩＤと、自モジュールがデータを受信させたいターゲットモジュールのＩＤと、自モジュールのＩＤとを比較し、抑止要求を発行したモジュールと、自モジュールがデータを受信させたいモジュールと自モジュールとのリングバス上における相対的な位置関係を判定する（ステップＳ３００）。
【００５２】
リングバスに接続されているモジュールの数は各システムで一義的に決定され、動作中は不変である。よって、各モジュールのＩＤが何らかの基準に従って付与されていれば、相対位置は判定可能である。出力パケット選択部１０４は、各モジュールの相対位置に基づいて、自モジュールからのデータ送信が可能であるか否かを判定する（ステップＳ３０１）。この判定には、図１０（ｂ）に示した所定の表などを用いればよい。判定の結果、自モジュールからのデータ送信が可能な場合、出力パケット選択部１０４はデータパケット生成部１０３からのデータパケット１１３を選択し、それ以外であれば、データパケット１１５を選択する。
【００５３】
本実施形態によれば、他のモジュールからのデータ送信の抑制を要求しているモジュールと、自モジュールから送信されるデータパケットの宛先のモジュールと、自モジュールとのリングバス上の位置関係に基づいてデータパケットの出力を制御することによって、抑止する必要のないデータ送信まで停止してしまうことによるデータ転送効率の低下を回避することができる。
【００５４】
（第３の実施形態）
次に、本発明の第３の実施形態を説明する。本実施形態の基本構成は第１の実施形態と同様であるため、説明には図２を使用する。本実施形態における制御パケットの構成例を図１２に示す。本実施形態の特徴は、データパケット自体の優先順位を示す情報を格納する優先度フィールド２３を制御パケットに持たせた点である。
【００５５】
データパケット生成部１０３がデータパケット１１３を生成したにも関わらず、他のモジュールからの有効データパケットが入力されているためにデータを出力できない場合に、制御パケット更新部１０６が、他のモジュールのデータ送信を抑止する制御パケットを生成するのは第１および第２の実施形態と同様である。本実施形態ではさらに、制御パケットを生成する際に、制御パケットの優先度フィールドに自モジュールの優先順位をコピーする。各モジュールにおける優先順位の判定では、第１の実施の形態のように予約モジュールＩＤフィールドを参照するのではなく、この優先度フィールドを参照し、優先度フィールドに格納されている優先順位と自モジュールの優先順位を比較する。
【００５６】
ここで、リングバスに接続されているモジュールの数は、そのシステムにおいて固定であり、動作中に増減しない。よって、自モジュールが発行した制御パケットが一巡して戻ってくるまでの時間は、各システムにおいて自明である。よって、自モジュールが発行した制御パケットが、他の優先順位が高いモジュールにより再更新されたか否かは、制御パケットを発行してから所定のサイクルが経過した後に、自身が発行したのと同じ制御パケットが戻ってくるか否かを確認すれば判別可能である。
【００５７】
本実施形態による制御パケット更新部１０６は、自身が発行したのと同じ制御パケットが確実に一巡して戻ってくるか否かを確認し、その結果、他のモジュールによる再更新を検出した場合には、今度は優先度フィールドの数値を、自身の優先度よりも高い値に変更して制御パケットを再送する。
【００５８】
本実施形態によれば、データパケット自体の優先順位と自モジュールの優先順位を比較した結果に基づいてデータパケットの出力を制御することによって、優先順位の低いプロセッサモジュールがデータ送信の抑止要求を発行しても、他のモジュールに割り込まれてしまい、いつまでもデータを送信することができないという状況を回避することができる。
【００５９】
ただし、もともとの優先順位も、意味があって設定されているはずであり、公平な転送のためとはいえ、優先順位の入れ替わりが頻繁に発生することはシステム的に望ましいことではない。よって、現実的には他のモジュールによる再更新が所定回数連続して発生した場合に優先順位の変更を行う等の措置が必要である。また、優先順位の変更時に一気に最上位レベルにするのではなく、段階的に上げていくという方法も考えられる。
【００６０】
（第４の実施形態）
次に、本発明の第４の実施形態を説明する。本実施形態の基本構成は第１の実施形態と同様であるため、説明には図２を使用する。本実施形態における制御パケットの構成例を図１３に示す。本実施形態の特徴は、他のモジュールによる制御パケットの更新の禁止を示す情報を格納するロックフィールド２４を制御パケットに持たせた点である。制御パケット更新部１０６は、他のモジュールからの制御パケット１１７のロックフィールドに、他のモジュールによる制御パケットの更新の禁止を示す情報が格納されている場合には、制御パケット１１７の更新を行わず、制御パケット１１７をそのまま制御パケット１１８としてレジスタ１０７へ出力する。
【００６１】
第４の実施形態と同様に、他のモジュールによる制御パケットの再更新が頻発するような場合、本実施形態による制御パケット更新部１０６は、制御パケットの“ロック”フィールドをセットする。“ロック”フィールドがセットされると、予約モジュールＩＤフィールドに格納されたＩＤのモジュールの制御パケット更新部１０６以外はその制御パケットを更新できなくなるため、確実にデータ転送が行えるようになる。本実施形態では、第３の実施形態のような細かな設定は行えないが、“ロック”フィールドは１ビットあれば十分であり、ハードウェア規模の点で有利である。
【００６２】
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成はこれらの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【図面の簡単な説明】
【００６３】
【図１】本発明の第１の実施形態によるデータ処理装置の構成を示すブロック図である。
【図２】本発明の第１の実施形態によるデータ処理装置が備えるプロセッサモジュールの構成を示すブロック図である。
【図３】本発明の第１の実施形態におけるデータパケットの構成を示す参考図である。
【図４】本発明の第１の実施形態における制御パケットの構成を示す参考図である。
【図５】本発明の第１の実施形態における出力パケット選択部の動作の手順を示すフローチャートである。
【図６】本発明の第１の実施形態における制御パケット更新部の動作の手順を示すフローチャートである。
【図７】本発明の第１の実施形態における転送動作を説明するためのブロック図である。
【図８】本発明の第１の実施形態における転送動作を説明するためのタイミングチャートである。
【図９】本発明の第１の実施形態におけるパケットの構成を示す参考図である。
【図１０】本発明の第２の実施形態の特徴を説明するための説明図である。
【図１１】本発明の第２の実施形態における出力パケット選択部の動作の手順を示すフローチャートである。
【図１２】本発明の第３の実施形態における制御パケットの構成を示す参考図である。
【図１３】本発明の第４の実施形態における制御パケットの構成を示す参考図である。
【図１４】従来のデータ処理装置の構成を示すブロック図である。
【図１５】従来のデータ処理装置が備えるアダプタの構成を示すブロック図である。
【図１６】従来のデータ処理装置の構成を示すブロック図である。
【符号の説明】
【００６４】
１００・・・入力データ解析部、１０１・・・処理部、１０２・・・出力バッファ、１０３・・・データパケット生成部、１０４・・・出力パケット選択部（データパケット制御部）、１０５・・・優先順位保持部、１０６・・・制御パケット更新部（制御パケット出力部）、１０７・・・レジスタ、１１０・・・プロセッサモジュール、１１１・・・データパケット転送路、１１２・・・制御パケット転送路
【図１】
2008066971.tif 000003
【図２】
2008066971.tif 000004
【図３】
2008066971.tif 000005
【図４】
2008066971.tif 000006
【図５】
2008066971.tif 000007
【図６】
2008066971.tif 000008
【図７】
2008066971.tif 000009
【図８】
2008066971.tif 000010
【図９】
2008066971.tif 000011
【図１０】
2008066971.tif 000012
【図１１】
2008066971.tif 000013
【図１２】
2008066971.tif 000014
【図１３】
2008066971.tif 000015
【図１４】
2008066971.tif 000016
【図１５】
2008066971.tif 000017
【図１６】
2008066971.tif 000018