(57)【要約】【課題】優先度に応じたデータ転送を簡単な構成で実現することができるデータ処理装置を提供する。【解決手段】出力データ選択部１０４は、他のモジュール宛てのデータパケットと、データパケット生成部１０３によって生成されたデータパケットとのいずれかを優先度に応じて選択する。応答パケット生成部１０７は、その選択結果に応じた応答パケットを生成する。再送制御部１０６は、他のモジュールから受信した応答パケットの内容に応じて、出力バッファ１０２からの処理結果の読み出しを制御する。【選択図】図２
2007316699.tif 000002
【特許請求の範囲】
【請求項１】
複数のモジュールをデータ転送バスと応答転送バスとによりリング状に接続してリングバスを構成するデータ処理装置であって、
前記モジュールは、
所定の処理を実行する処理部と、
前記処理部の処理結果を一時的に保持する処理結果保持部と、
前記処理結果保持部から前記処理結果を読み出し、該処理結果を含むデータパケットを生成するデータパケット生成部と、
前記データ転送バスから入力された他のモジュール宛てのデータパケットと、前記データパケット生成部によって生成されたデータパケットとのいずれかを優先度に応じて選択するデータパケット選択部と、
前記データパケット選択部によって選択されたデータパケットを前記データ転送バスへ出力するデータパケット出力部と、
前記データパケット選択部の選択結果に応じて、データパケットの送信元である他のモジュールにデータパケットの転送状況を通知する応答パケットを生成する応答パケット生成部と、
前記応答パケット生成部によって生成された応答パケットと、前記応答転送バスから入力された他のモジュール宛ての応答パケットとを前記応答転送バスへ出力する応答パケット出力部と、
前記応答転送バスから入力される応答パケットの内容に応じて、前記処理結果保持部からの前記処理結果の読み出しを制御する制御部と、
を備えたことを特徴とするデータ処理装置。
【請求項２】
前記応答転送バスは順方向および逆方向に応答パケットを転送可能であり、
前記応答パケット出力部は、自モジュールと応答パケットの宛先のモジュールとの前記リングバス上の相対位置関係に基づいて、より転送段数の少ない転送方向に応答パケットを出力することを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記応答パケット生成部は、データパケットの送信元である他のモジュールに対してデータパケットの送信停止を指示する第１の応答パケットと、前記他のモジュールに対してデータパケットの送信再開を指示する第２の応答パケットとを生成することを特徴とする請求項１または請求項２に記載のデータ処理装置。
【請求項４】
前記データパケット生成部は、前記応答転送バスから入力される応答パケットの内容に応じてデータパケットの優先度を設定することを特徴とする請求項１または請求項２に記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のモジュールが並列にデータ処理を実行するデータ処理装置に関する。
【背景技術】
【０００２】
一般に、集積回路は、単一の機能を有する機能モジュールを複数組み合わせることで所望の機能を実現している。この場合、各モジュールは双方向のバスで接続されることが多い。しかし、この双方向バスによる接続では、データ転送時には１対１の転送が行われるため、複数のモジュールが同時にデータを送出することはできない。よって、接続されるモジュールが多くなるほど転送待ち時間が増加し、転送効率が悪化する。また、バスの使用権の調停にオーバーヘッドが生じる上、モジュール数が増えるほど、その制御の複雑度が増加するといったデメリットがある。
【０００３】
このような問題を解決する方法として、例えば特許文献１に記載の集積回路が提案されている。図１３にその構成を示す。処理モジュール１３０１ａ〜１３０１ｄは、アダプタ１３０２ａ〜１３０２ｄを介してリング状のバス１３０３に接続されている。また、このアダプタの構成は図１４のようになっている。このアダプタとリング状バスとで一種のシフトレジスタを構成しているため、リングバス上にはモジュール数と同じ数の転送データが存在することができる。例えば、図１３の場合、同時に４データの転送が可能となる。
【０００４】
アダプタ内では、データ抽出挿入回路１４０２とセレクタ１４０３により、リングバスからのデータ取得およびリングバスへのデータ送出が制御される。データ抽出挿入回路１４０２は、レジスタ１４０１に保持されたデータが自モジュール宛であるか否かの判定を行い、自モジュール宛であればモジュール内にデータを取り込む。一方、セレクタ１４０３は、他のモジュール宛のデータが入力された場合にはその入力データを、自モジュール宛のデータあるいは無効データが入力された場合にはデータ抽出挿入回路１４０２の出力を選択してレジスタ１４０４に入力する。この構成により、同時に複数のデータ転送を実行することが可能になるため、双方向バス方式と比較してデータ転送性能が向上する。
【特許文献１】特開平１１−１６７５６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記のように、特許文献１に記載の集積回路においては、自モジュール宛のデータか無効データが入力されたときにはリングバス上にデータを送出できるようになっている。他のモジュール宛のデータが入力された場合、そのモジュールは、入力データを次段のモジュールに転送するためのシフトレジスタとしての機能しか果たせず、送出したい（優先度の高い）データがあってもデータを送出することができない。すなわち、優先度に応じたデータ転送が行えないという状況が発生する。なお、特許文献１では、このような問題の対策として、図１５のように転送制御回路１５０１を配置し、優先度に応じた転送を実現するための集中管理を行うという提案が記載されている。しかし、この構成ではモジュール数の増加に比例して、制御回路の複雑度が飛躍的に増加することが容易に想像できる。
【０００６】
本発明は、上述した問題点に鑑みてなされたものであって、優先度に応じたデータ転送を簡単な構成で実現することができるデータ処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、上記の課題を解決するためになされたもので、複数のモジュールをデータ転送バスと応答転送バスとによりリング状に接続してリングバスを構成するデータ処理装置であって、前記モジュールは、所定の処理を実行する処理部と、前記処理部の処理結果を一時的に保持する処理結果保持部と、前記処理結果保持部から前記処理結果を読み出し、該処理結果を含むデータパケットを生成するデータパケット生成部と、前記データ転送バスから入力された他のモジュール宛てのデータパケットと、前記データパケット生成部によって生成されたデータパケットとのいずれかを優先度に応じて選択するデータパケット選択部と、前記データパケット選択部によって選択されたデータパケットを前記データ転送バスへ出力するデータパケット出力部と、前記データパケット選択部の選択結果に応じて、データパケットの送信元である他のモジュールにデータパケットの転送状況を通知する応答パケットを生成する応答パケット生成部と、前記応答パケット生成部によって生成された応答パケットと、前記応答転送バスから入力された他のモジュール宛ての応答パケットとを前記応答転送バスへ出力する応答パケット出力部と、前記応答転送バスから入力される応答パケットの内容に応じて、前記処理結果保持部からの前記処理結果の読み出しを制御する制御部とを備えたことを特徴とするデータ処理装置である。
【０００８】
また、本発明のデータ処理装置において、前記応答転送バスは順方向および逆方向に応答パケットを転送可能であり、前記応答パケット出力部は、自モジュールと応答パケットの宛先のモジュールとの前記リングバス上の相対位置関係に基づいて、より転送段数の少ない転送方向に応答パケットを出力することを特徴とする。
【０００９】
また、本発明のデータ処理装置において、前記応答パケット生成部は、データパケットの送信元である他のモジュールに対してデータパケットの送信停止を指示する第１の応答パケットと、前記他のモジュールに対してデータパケットの送信再開を指示する第２の応答パケットとを生成することを特徴とする。
【００１０】
また、本発明のデータ処理装置において、前記データパケット生成部は、前記応答転送バスから入力される応答パケットの内容に応じてデータパケットの優先度を設定することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、他のモジュール宛てのデータパケットと、データパケット生成部によって生成されたデータパケットとのいずれかを優先度に応じて選択し、その選択結果に応じた応答パケットを送信するようにしたと共に、他のモジュールから受信した応答パケットの内容に応じて、処理結果保存部からの処理結果の読み出しを制御するようにしたことにより、優先度に応じたデータ転送を簡単な構成で実現することができるという効果が得られる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照し、本発明の実施形態を説明する。
【００１３】
（第１の実施形態）
まず、本発明の第１の実施形態を説明する。図１は、本実施形態によるデータ処理装置の構成を示している。プロセッサモジュール１１０は、プロセッサモジュール毎にそれぞれ定められた所定の処理を実行する。各プロセッサモジュール１１０は、データを転送するデータ転送路１１１と、データ送信元のプロセッサモジュール１１０に対して、転送状況を示す応答を返信するための応答用転送路１１２とを介し、リング状に結線されている。これらデータ転送路１１１と応答用転送路１１２とによって、リング状バスが構成されている。
【００１４】
データおよび応答の転送は図１中の矢印の方向にのみ行われる。なお、プロセッサモジュール１１０の出力段にはシフトレジスタ１０９が設けられており、あるプロセッサモジュール１１０のシフトレジスタ１０９の出力は次段のプロセッサモジュール１１０の入力となっている。転送データは、基本的にはこれらのレジスタ１０９によるシフトレジスタ動作により、所望のプロセッサモジュール１１０まで転送される。
【００１５】
よって、各プロセッサモジュール１１０間にはそれぞれ独立したデータが存在することになり、一度にプロセッサモジュール数と同数のデータ転送を行うことができる。あるプロセッサモジュール１１０内のシフトレジスタ１０９と、その後段のプロセッサモジュール１１０内のシフトレジスタ１０９との間の、独立したデータが存在している区間（図１中の区間１１３）を、以下では転送スロットと呼ぶ。なお、図１ではプロセッサモジュールが３個結線されているが、結線されるプロセッサモジュールの個数に制限はない。
【００１６】
次に、本実施形態におけるデータパケットと応答パケットの構成を説明する。データパケットの構成例を図４に、応答パケットの構成例を図５に示す。データパケットは、転送に関する種々の情報が格納されるヘッダ部１０と、データ本体が格納されるデータ部１１とから構成され、同様に応答パケットもヘッダ部２０とデータ部２１とから構成されている。
【００１７】
データパケットは以下のフィールドで構成されている。有効フィールド１２は、転送データが存在することを示す。すなわち、有効フィールド１２が「無効」になっている場合、転送スロットが空いているとみなすことができるため、その転送スロットに含まれるプロセッサモジュールはデータを出力することができる。
【００１８】
転送先ＩＤフィールド１３は、パケットを受信させたいプロセッサモジュールのＩＤ番号を示す。プロセッサモジュールのＩＤ番号には、本データ処理装置内で重複しない独立した数字が割り振られており、各プロセッサモジュールは自モジュールのＩＤ番号を把握している。このＩＤ番号は、ハードウェア的に固定情報として保持していても良いし、レジスタ等で外部から変更できるようになっていても良い。
【００１９】
転送元ＩＤフィールド１４は、パケットを発信したプロセッサモジュールのＩＤ番号を示す。転送ＩＤフィールド１５は、パケットを発信したプロセッサモジュールが転送を管理するための識別番号である。優先度フィールド１６は、そのパケットの転送優先順位を示す。通常は、各プロセッサモジュール自身の優先順位と等しい。転送データフィールド１７は、転送したいデータである。
【００２０】
応答パケットは以下のフィールドで構成されている。有効フィールド２２、転送元ＩＤフィールド２３、転送ＩＤフィールド２４はデータパケットと同様である。応答フィールド２５は、送信元のプロセッサモジュールに対して通知したい応答内容を示す。
【００２１】
次に、プロセッサモジュール１１０の詳細を説明する。図２はプロセッサモジュール１１０の構成を示している。入力データ解析部１００には、データ転送路１１１からのデータパケット１１６が入力される。入力データ解析部１００は、データパケット１１６のヘッダ部を解析することにより、現在の転送スロットに有効なデータが存在し、且つそのデータが自プロセッサモジュール宛のデータであるか否か（すなわち自プロセッサモジュール宛ての有効なデータであるか否か）を判定する。
【００２２】
判定の結果、データが自プロセッサモジュール宛のデータであった場合、入力データ解析部１００はデータパケット１１６からデータ部を取り出して処理部１０１に入力する。また、この場合に入力データ解析部１００は、データパケット１１６のヘッダ部の有効フィールドを“無効”にしたデータパケット１１４を出力データ選択部１０４に入力する。一方、入力データが“無効”あるいは他のプロセッサモジュール宛ての場合、入力データ解析部１００は、データパケット１１４としてデータパケット１１６を、加工せずにそのまま出力し、処理部１０１には何も入力しない。
【００２３】
処理部１０１は、あらかじめ決められた処理を入力データに対して実行し、処理結果を出力バッファ１０２に格納する。出力バッファ１０２は、その処理結果を一時的に保持する。データパケット生成部１０３は、処理結果を示すデータが出力バッファ１０２に存在する場合、出力バッファ１０２からデータを読み出し、転送に必要なヘッダ情報を付与して、データパケットを生成する。データパケットの転送ＩＤフィールドには、出力バッファ１０２のアドレス等、転送データに関連する情報が格納される。
【００２４】
なお、データパケットの優先度は、優先順位保持部１０５が保持する優先度情報により規定される。優先順位保持部１０５が保持する優先度情報は、ハードウェアが固定的に保持するものであっても良いし、レジスタ等で可変にできるものであっても良い。また、本実施形態では、有効な自プロセッサモジュール宛てのデータが入力された場合に、処理部１０１が処理を実行し、処理結果が他のプロセッサモジュールに転送されるようになっているが、これ以外の場合に処理部１０１が処理を実行するようにしても良い。
【００２５】
出力データ選択部１０４は、データパケット生成部１０３が生成したデータパケット１１５と、入力データ解析部１００から出力されるデータパケット１１４とのどちらかを選択し、シフトレジスタ１０９に入力する。この選択の際に出力データ選択部１０４は、データパケット１１４とデータパケット１１５の優先度フィールドの比較を行い、優先度の高い方のデータパケットを出力する。優先度が同じ場合には、出力データ選択部１０４はデータパケット１１４を選択する。
【００２６】
また、データパケット生成部１０３によって生成されたデータパケット１１５の優先度の方が高い場合には、出力データ選択部１０４は応答パケット生成部１０７にトリガ信号１１８を入力する。出力データ選択部１０４がデータパケット１１５を選択した場合には、データパケット１１６は転送路上から消滅し、そのかわりにデータパケット１１５が新たに転送路上に出現したことになる。
【００２７】
応答パケット生成部１０７は、出力データ選択部１０４の選択結果に応じて、データの転送状況を示す応答パケットを生成する。具体的には、応答パケット生成部１０７は、トリガ信号１１８が入力されると、データパケット１１６を送信したプロセッサモジュール１１０に対して、データ送信が取り消されたことを通知すると共にデータの再送を要求する応答パケットを生成する。この際に、応答を転送する先のＩＤとして、出力データ選択部１０４がデータパケット１１４から抜き出して応答パケット生成部１０７に通知した転送元ＩＤが使用される。
【００２８】
応答パケット選択部１０８は、通常時には、応答用転送路１１２から入力される応答パケット１１７をシフトレジスタ１０９に入力するが、応答パケット生成部１０７が応答パケットを生成した場合には、応答パケット生成部１０７が生成した応答パケット１１９をシフトレジスタ１０９に入力する。ただし、応答パケット生成部１０７が応答パケットを生成したときに、有効な応答パケット１１７が存在する場合には応答パケット１１７を優先する。よって、応答パケット生成部１０７あるいは応答パケット選択部１０８内には、応答パケットを一時的に退避するための図示しないバッファが用意されている。
【００２９】
なお、正常転送完了時には応答を返さず、前述したように、転送されるべきデータが優先順位の関係により途中で消滅したような場合にのみ応答を返すようにしておけば、応答用転送路１１２（転送スロット）の空いている状態が通常状態になる。よって、応答パケットの入力と出力のタイミングが重なる可能性はあっても、応答用転送路１１２が応答パケットで一杯になり、応答パケットを出力できないという状況に陥る可能性は低いと考えられるため、応答パケット用のバッファはごく少量でよい。
【００３０】
シフトレジスタ１０９は、システムクロックに同期して、出力データ選択部１０４の出力（データパケット）と応答パケット選択部１０８の出力（応答パケット）を１サイクル期間保持し、データパケットをデータ転送路１１１へ、応答パケットを応答用転送路１１２へ出力する。
【００３１】
再送制御部１０６は、応答用転送路１１２から入力される応答パケットの内容に応じて、出力バッファ１０２からのデータの読み出しを制御する。具体的には、再送制御部１０６は、通常時には何もしないが、データパケットの再送を要求する自プロセッサモジュール宛ての応答パケットの入力を検出すると、その応答パケットの内容を解析し、出力バッファ１０２から読み出すデータに関する情報をデータパケット生成部１０３に入力する。自プロセッサモジュールが送信したデータパケットが他のプロセッサモジュールで消滅したことが応答パケットによって通知された場合、再送制御部１０６によって、そのデータパケットが再度送信されるようになる。
【００３２】
なお、データに関する情報は、応答パケットの転送ＩＤフィールドに格納されている。転送ＩＤフィールドに格納すべきデータの内容は特に規定しないが、前述したように、例えば出力バッファ１０２のアドレスを格納しておけば、データパケット生成部１０３は該当するデータを特定することができる。データパケット生成部１０３は、通常時は出力バッファ１０２のデータを格納順に読み出すが、再送制御部１０６からの指示がある際には、その指示に対応したアドレスのデータを読み出す。
【００３３】
次に、図３および図６を参照し、プロセッサモジュール間での転送動作を説明する。図３では、３個のプロセッサモジュール１４０，１４１，１４２がリング状に結線されており、プロセッサモジュール１４０からプロセッサモジュール１４２に連続的にデータが転送されている。ここで、プロセッサモジュール１４１の転送優先順位はプロセッサモジュール１４０の転送優先順位よりも上位とする。この状態で、プロセッサモジュール１４１からプロセッサモジュール１４２への転送が発生する場合を考える。なお、図３中の各プロセッサモジュールの構成は図２と同一であるため、以下の説明では各構成要素に関して同じ記号を使用する。
【００３４】
図６の時間１５０において、プロセッサモジュール１４１内のデータパケット生成部１０３がプロセッサモジュール１４２宛てのデータパケット“Ｂ０”を生成したとすると、出力データ選択部１０４には、データパケット１３０（より正確には、入力データ解析部１００の出力）と、データパケット生成部１０３から出力されたデータパケット１３１との両方が入力されている。このとき、データパケット１３１の優先順位がデータパケット１３０よりも上位であるため、出力データ選択部１０４はデータパケット１３１（データパケット“Ｂ０”）をデータパケット１３２としてシフトレジスタ１０９に入力する。
【００３５】
このとき、図示しない応答パケット生成部１０７は、プロセッサモジュール１４０に対してデータの再送を指示する応答パケット“再送”を生成し、シフトレジスタ１０９に入力する。これらのパケット（図６中のデータパケット“Ｂ０”および応答パケット“再送”）は、シフトレジスタ１０９によりラッチされ、時間１５１においてプロセッサモジュール１４１から出力されるデータパケット１３３および応答パケット１３４となる。このとき、プロセッサモジュール１４０が出力したデータパケット“Ａ０”は、リングバス上から消滅したことになる。
【００３６】
時間１５２において、応答パケット“再送”は、プロセッサモジュール１４０に入力される応答パケット１３５となる。応答パケットを受信したプロセッサモジュール１４０は、次に発信するはずであったデータパケット“Ａ４”ではなく、出力バッファ１０２に保持されているデータパケット“Ａ１”を再び出力する。このデータパケット“Ａ１”は、シフトレジスタ１０９によりラッチされ、時間１５３においてプロセッサモジュール１４１に入力されるデータパケット１３０となる。
【００３７】
時間１５３において、プロセッサモジュール１４１のデータパケット生成部１０３からはデータ出力がないため、データパケット“Ａ１”は出力データ選択部１０４の出力となる。その後、データパケット“Ａ１”はシフトレジスタ１０９によりラッチされて、時間１５４においてプロセッサモジュール１４２に入力されるデータパケット１３３となり、本来行われるはずであった転送が完了する。
【００３８】
本実施形態では、転送路が使用されていても、優先度が高いプロセッサモジュールであれば、転送路に割り込むことでデータを送出することが可能になる。一方、優先度の低いデータが転送される場合、データの転送中に他のプロセッサモジュールに割り込まれるとそのデータは消滅してしまうが、破棄されたデータを発信したプロセッサモジュールは、応答パケットにより、送信したデータが破棄された（転送が中断された）ことを知ることができる。よって、応答パケットを受信したプロセッサモジュールが然るべき措置（データ再送等）を実行することができるため、システムが破綻することは無い。
【００３９】
上述したように、他のプロセッサモジュール宛てのデータと、データパケット生成部によって生成されたデータとのいずれかを優先度に応じて選択し、その選択結果に応じた応答パケットを送信するようにしたと共に、他のプロセッサモジュールから受信した応答パケットの内容に応じて、出力バッファからの処理結果の読み出しを制御するようにしたことにより、優先度に応じたデータ転送を簡単な構成で実現することができる。特に、優先順位の高いプロセッサモジュールがデータパケットを出力できないという状況を、システムを破綻させること無く解消することができる。
【００４０】
なお、本実施形態の各構成は、当然、各種の変形、変更が可能である。例えば、図１では、データ転送路１１１と応答用転送路１１２を分けて図示しているが、転送方向が同じなのでまとめて一つの転送路としても良い。ただし、その場合は、入力されたパケットをデータと応答とに選別する機能を各プロセッサモジュール１１０に持たせる必要がある。
【００４１】
また、本実施形態によるデータパケットおよび応答パケットの構成を、図４、図５に示した構成に限定する必要は無い。各フィールド位置を入れ替えることは当然可能であるし、各システムに固有の情報フィールドを定義しても良い。また、各フィールドのビット長に関しても、その処理システムに最適なビット長を定義すれば良い。さらに、本実施形態では、シフトレジスタ１０９をプロセッサモジュール１１０の最後段に配置しているが、入力データ解析部１００の前段に配置しても良い。全体がリング状に結線されている限り、得られる結果は同じである。
【００４２】
（第２の実施形態）
次に、本発明の第２の実施形態を説明する。本実施形態の基本構成は第１の実施形態と同様であるため、説明には図２を使用する。本実施形態では、応答パケット生成部１０７が生成するパケットの内容および応答パケットの出力方法に特徴がある。本実施形態による応答パケット生成部１０７は、出力データ選択部１０４がデータパケット生成部１０３の出力を選択した際に応答パケットを生成する。この際に、応答パケット生成部１０７は、出力データ選択部１０４が破棄したデータを送信したプロセッサモジュールに対して、データの再送を指示する“再送”パケットと、データ送信を停止することを指示する“送信停止”パケット（第１の応答パケット）とのどちらを出力するか選択する。
【００４３】
すなわち、応答パケット生成部１０７は、出力データ選択部１０４が、例えば所定量以上のデータパケットを送信する場合には“送信停止”パケットを、それ以下のデータパケットを送信する場合には“再送”パケットを選択する。所定のデータパケットの送信が完了すると、応答パケット生成部１０７は、“送信停止”パケットを送信したプロセッサモジュールに対して“送信再開”を指示するパケット（第２の応答パケット）を生成する。この“送信再開”パケットを受信したプロセッサモジュールは、“送信停止”パケットに対応するデータパケットからデータ送信を再開する。
【００４４】
以下、図７および図８を使用して、本実施形態の動作を説明する。  図７では、３個のプロセッサモジュール２０３，２０４，２０５がリング状に結線されており、プロセッサモジュール２０３からプロセッサモジュール２０５に連続的にデータが転送されている。ここで、プロセッサモジュール２０４の転送優先順位は、プロセッサモジュール２０３の転送優先順位よりも上位とする。この状態で、プロセッサモジュール２０４からプロセッサモジュール２０５への連続転送が発生する場合を考える。
【００４５】
図８の時間２１０において、プロセッサモジュール２０４内で転送データが発生した場合、プロセッサモジュール２０４よりも優先順位の低いプロセッサモジュール２０３が出力したデータパケット“Ａ１”は破棄される。その結果、時間２１１において、プロセッサモジュール２０５に入力されるデータパケット２０２は、プロセッサモジュール２０４が生成したデータパケット“Ｂ０”となる。ここで、プロセッサモジュール２０４から２０５に連続してデータ転送する必要がある場合（図８では３連続）、応答パケット生成部１０７は“送信停止”パケットを生成する。この応答パケットは、シフトレジスタ１０９によりラッチされ、時間２１１においてデータパケット“Ｂ０”と同じタイミングでプロセッサモジュール２０５に入力される応答パケット２０８となる。
【００４６】
時間２１２において、プロセッサモジュール２０３に応答パケット２０６として“送信停止”パケットが入力されると、プロセッサモジュール２０３はデータの送信を停止する。その結果、時間２１３において、プロセッサモジュール２０３は空のパケットを出力する。一方、連続データの最後のデータ送信時に、応答パケット生成部１０７は、プロセッサモジュール２０３に対し、“送信停止”パケットに対応するデータパケットからデータ送信を再開することを指示する“送信再開”パケットを生成する。時間２１４において、プロセッサモジュール２０３に応答パケット２０６として“送信再開”パケットが入力されると、プロセッサモジュール２０３は、“送信停止”パケットが生成されたときに破棄されたデータパケット“Ａ１”から転送を再開する。
【００４７】
転送に割り込みが発生すると、送信データを破棄されたプロセッサモジュールはデータを再送するが、その転送に割り込んだプロセッサモジュールが大量のデータを連続して発信すると、再送したデータが再度破棄されることがある。そのデータを再送するためには、該当データが出力バッファ１０２内に存在していなければならず、特定のデータだけが長く残り続けるというような状況は、出力バッファ１０２の管理やバッファ容量の観点では望ましくない。また、大量の再送データの発生は、転送路の有効活用という面でも望ましくない。したがって、優先順位の高いプロセッサモジュールが一時的に大量のデータを送信する際には、他のデータ転送を抑止することで、無駄な再送動作を回避できる上に、出力バッファ容量の削減および管理の簡潔化が可能になる。
【００４８】
なお、本実施形態の各構成は、当然、各種の変形、変更が可能である。転送路に割り込んだプロセッサモジュールが“送信再開”パケットを出力すると、その時点で、転送路に割り込んだプロセッサモジュールのデータ発信は完了している。一方、“送信再開”パケットが、転送に割り込まれたプロセッサモジュールに届くまでは若干の時間のずれがある。よって、その間にどのプロセッサモジュールもデータを出力しないという状況が起こりうる。しかし、自プロセッサモジュールと応答転送先のプロセッサモジュールとの相対位置関係が判明しているならば、応答パケットを早めに出力することで、無駄な空パケットが流れることを回避できる。
【００４９】
（第３の実施形態）
次に、本発明の第３の実施形態を説明する。本実施形態の基本構成は第１の実施形態と同様であり、説明には図２を使用する。本実施形態では、再送パケットの優先順位付けに特徴がある。
【００５０】
本実施形態によるデータパケット生成部１０３は、再送応答を受信した再送制御部１０６からの指示により、出力バッファ１０２から再送データを読み出して再送パケットを生成するが、その際に、再送パケットの優先順位を、自プロセッサモジュールの優先順位にかかわらず、最上位に設定する。ここでの最上位とは、すべてのプロセッサモジュールの優先順位よりも上位であるとする。このようにして最上位の優先順位が付与されたデータパケットは、他のプロセッサモジュールによる転送の割り込みが発生することなく、転送先のプロセッサモジュールまで送信される。
【００５１】
以下、図９および図１０を使用して、本実施形態の動作を説明する。  図９では、３個のプロセッサモジュール３００，３０１，３０２がリング状に結線されており、プロセッサモジュール３００からプロセッサモジュール３０２に連続的にデータが転送されている。ここで、プロセッサモジュール３０１の転送優先順位はプロセッサモジュール３００の転送優先順位よりも上位とする。この状態で、プロセッサモジュール３０１からプロセッサモジュール３０２への転送が発生する場合を考える。
【００５２】
時間３２０において、プロセッサモジュール３０１の出力データ選択部１０４には、データパケット３０４（データパケット“Ａ１”）と、データパケット生成部３０３の出力であるデータパケット３０９（データパケット“Ｂ０”）とが入力されている。プロセッサモジュール３０１の優先順位がプロセッサモジュール３００の優先順位よりも上位であるため、出力データ選択部１０４の出力であるデータパケット３１０として、データパケット“Ｂ０”が出力される。このとき、応答パケット生成部１０７は、プロセッサモジュール３００に対してデータパケット“Ａ１”の再送を要求する応答パケット“再送”を生成する。
【００５３】
データパケット“Ｂ０”と応答パケット”再送“は、シフトレジスタ１０９によりラッチされ、時間３２１において、それぞれデータパケット３０５および応答パケット３０７としてプロセッサモジュール３０２に入力される。続いて、応答パケット“再送”は、時間３２２において、応答パケット３０８としてプロセッサモジュール３００に入力される。プロセッサモジュール３００のデータパケット生成部１０３は、出力バッファ１０２からデータパケット“Ａ１”と同じ転送データを読み出すが、優先度フィールドを最上位に設定したデータパケット“Ａ１’”をデータパケット３１２として出力する。
【００５４】
時間３２３において、プロセッサモジュール３０１の出力データ選択部１０４にはデータパケット“Ａ１’”と、プロセッサモジュール３００のデータパケット生成部１０３が生成したデータパケット“Ｂ１”とが入力されているが、データパケット“Ａ１’”の優先順位がデータパケット“Ｂ１”よりも上位であるため、この場合はデータパケット“Ａ１’”がデータパケット３１０として出力される。
【００５５】
時間３２４において、プロセッサモジュール３０１内のデータパケット生成部１０３は、出力バッファ１０２から次のデータを読み出さずに、データパケット”Ｂ１”を続けて出力する。このとき、プロセッサモジュール３００からデータパケット“Ａ４”が入力されているが、このデータパケット“Ａ４”の優先順位はデフォルト状態のままであるため、データパケット“Ｂ１”の優先順位の方が上位である。よって、データパケット３１０としてデータパケット“Ｂ１”が選択される。データパケット“Ａ４”がリングバス上から消滅するため、応答パケット生成部１０７は、プロセッサモジュール３００に対してデータパケット“Ａ４”の再送を要求する応答パケット“再送”を生成する。
【００５６】
上述したように再送パケットの優先順位を変えることにより、再送パケットが破棄されることがなくなる。本実施形態では、パケット生成時の優先順位を置換するだけであり、複雑な制御は不要である。よって、簡単な回路構成で、無駄なデータ転送の防止、出力バッファの容量の削減、および管理の簡潔化が可能になる。
【００５７】
（第４の実施形態）
次に、本発明の第４の実施形態を説明する。図１２は、本実施形態によるプロセッサモジュールの構成を示している。図２と同じ機能を持つものに関しては同一の符号を付与し、説明を省略する。本実施形態によるプロセッサモジュールは、順方向および逆方向の２系統の応答用転送路を備えることを特徴とする。ここで、順方向はデータパケットの転送方向と同じ方向、逆方向はデータパケットの転送方向と逆の方向であるとする。
【００５８】
応答パケット選択部４００は、リングバス上の各プロセッサモジュールの位置（接続関係）を各プロセッサモジュールのＩＤによりあらかじめ認識しているものとする。応答パケット選択部４００は、応答パケット生成部１０７より応答パケット１１９が入力されると、その応答パケット１１９のヘッダ部から転送元ＩＤを取り出し、自プロセッサモジュールのＩＤと比較する。比較の結果、応答パケット選択部４００は、順方向と逆方向のどちらの転送路を利用すれば、転送元のプロセッサモジュールまで先に届くかを判定し、各転送路に対応するシフトレジスタ１０９と４０１のどちらか一方に応答パケットを入力する。すなわち、応答パケット選択部４００は、自プロセッサモジュールと、応答パケットの宛先であるプロセッサモジュールとのリングバス上の相対位置関係に基づいて、より転送段数の少ない転送方向に応答パケットが出力されるように動作する。
【００５９】
再送制御部４０２は、入力された応答パケットを解析し、どのデータを再送するのかをデータパケット生成部１０３に通知する。なお、再送制御部４０２に同時に２つの応答パケットが入力される可能性がある。よって、再送制御部４０２は、応答パケットを一時的に保持するバッファを備えている。なお、正常転送時には応答を返さず、転送データが破棄されたような場合のみに応答を返すような仕様であれば、応答パケットが大量に入力されるという状況は考えにくい。また、第２、第３の実施形態との組み合わせにより、さらに応答パケットを発信する機会は減少する。よって、応答パケット保持用のバッファの容量は少なくても良い。
【００６０】
次に、図１１を用いて、転送路の選択方法を説明する。図１１ではプロセッサモジュール５００，５０１，５０２，５０３，５０４の５個のプロセッサモジュールが順方向応答転送路５０５および逆方向応答転送路５０６によりリング状に結線されている。なお、データ転送路の図示は省略する。また、各プロセッサモジュールのＩＤは、付与された記号の数値と一致するものとする。
【００６１】
ここで、プロセッサモジュール５０１からプロセッサモジュール５０４に向けて応答パケットを送信する場合を考える。応答パケットの転送方向が順方向の場合、５０４−５０１＝３であるから、パケット到達まで３サイクルが必要である。一方、応答パケットの転送方向が逆方向の場合、５０１−５０４＝−３となり、転送に必要なサイクル数がマイナスの数値になるが、この場合には、この結果に総モジュール数を足し込めば、所望のサイクル数を算出できる。よって、５０１−５０４＋５＝２となり、パケット到達まで２サイクルが必要である。よって、この場合には、逆方向転送を選択すれば、より短時間で応答パケットを届けることができる。
【００６２】
本実施形態によれば、応答パケットをデータパケットの送信元に最速で届けることが可能になる。応答パケット転送方向が一方向のみの場合、転送に必要な時間は１サイクルから（プロセッサモジュール数−１）サイクルまでのいずれかとなるが、本実施形態によれば、応答パケットの転送に必要な時間が１サイクルから（プロセッサモジュール数／２）サイクルまでの範囲に収まる（小数点以下は切捨て）。よって、保持しておくべきデータ量を半分にできるため、出力バッファの容量を削減することができる。
【００６３】
なお、本実施形態の各構成は、当然、各種の変形、変更が可能である。図１１の各プロセッサモジュールのＩＤ番号は、順方向（転送方向）に単調増加しているが、これに限定する必要は無い。一定の法則に基づいて付与されていれば、単調減少でも良いし、あるいは他の数列を基準にしていてもよい。
【００６４】
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成はこれらの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【図面の簡単な説明】
【００６５】
【図１】本発明の第１の実施形態によるデータ処理装置の構成を示すブロック図である。
【図２】本発明の第１の実施形態によるデータ処理装置が備えるプロセッサモジュールの構成を示すブロック図である。
【図３】本発明の第１の実施形態によるデータ処理装置の構成を示すブロック図である。
【図４】本発明の第１の実施形態におけるデータパケットの構成を示す参考図である。
【図５】本発明の第１の実施形態における応答パケットの構成を示す参考図である。
【図６】本発明の第１の実施形態における転送動作を説明するためのタイミングチャートである。
【図７】本発明の第２の実施形態によるデータ処理装置の構成を示すブロック図である。
【図８】本発明の第２の実施形態における転送動作を説明するためのタイミングチャートである。
【図９】本発明の第３の実施形態によるデータ処理装置の構成を示すブロック図である。
【図１０】本発明の第３の実施形態における転送動作を説明するためのタイミングチャートである。
【図１１】本発明の第４の実施形態によるデータ処理装置の構成を示すブロック図である。
【図１２】本発明の第４の実施形態によるデータ処理装置が備えるプロセッサモジュールの構成を示すブロック図である。
【図１３】従来のデータ処理装置の構成を示すブロック図である。
【図１４】従来のデータ処理装置が備えるアダプタの構成を示すブロック図である。
【図１５】従来のデータ処理装置の構成を示すブロック図である。
【符号の説明】
【００６６】
１００・・・入力データ解析部、１０１・・・処理部、１０２・・・出力バッファ（処理結果保持部）、１０３・・・データパケット生成部、１０４・・・出力データ選択部（データパケット選択部）、１０５・・・優先順位保持部、１０６，４０２・・・再送制御部（制御部）、１０７・・・応答パケット生成部、１０８，４００・・・応答パケット選択部、１０９，４０１・・・シフトレジスタ（データパケット出力部、応答パケット出力部）、１１０・・・プロセッサモジュール、１１１・・・データ転送路（データ転送バス）、１１２・・・応答用転送路（応答転送バス）
【図１】
2007316699.tif 000003
【図２】
2007316699.tif 000004
【図３】
2007316699.tif 000005
【図４】
2007316699.tif 000006
【図５】
2007316699.tif 000007
【図６】
2007316699.tif 000008
【図７】
2007316699.tif 000009
【図８】
2007316699.tif 000010
【図９】
2007316699.tif 000011
【図１０】
2007316699.tif 000012
【図１１】
2007316699.tif 000013
【図１２】
2007316699.tif 000014
【図１３】
2007316699.tif 000015
【図１４】
2007316699.tif 000016
【図１５】
2007316699.tif 000017