(57)【特許請求の範囲】
【請求項１】
複数のモジュールがリングバスに接続され、予め設定された順序で前記複数のモジュールにおいてデータを処理するデータ処理装置であって、
前記モジュールは、
他のモジュールからパケットを受信する受信手段と、
前記受信手段により受信したパケットが保持するデータを自モジュールで処理すべきか否かを、前記パケットに含まれる情報であって前記順序を示す情報である第１の情報により判定する判定手段と、
前記判定手段により前記自モジュールで処理すべきであると判定された場合に、前記データを処理する処理手段と、
前記処理手段により処理されたデータと、前記処理手段により処理されるべきデータが処理されずに保留されたかどうかを示す第２の情報と、前記第１の情報と、を含むパケットを生成する生成手段と、
前記生成手段により生成されたパケットを前記第１の情報に従って次に処理すべきモジュールに送信する送信手段と、を備え、
前記第１の情報及び第２の情報により、前記受信手段により受信されたパケットが前記自モジュールの次の処理順序のモジュールにより処理すべきであった前記処理を保留されたデータを含むと、前記送信手段は、前記生成手段の生成したパケットの送信間隔を長くして送信を行うことを特徴とするデータ処理装置。
【請求項２】
前記送信手段は、前記受信手段により受信されたパケットが前記自モジュールの次の処理順序のモジュールにより処理すべきであった前記処理を保留されたデータを含むと、前記生成手段の生成したパケットについて、パケットが前記リングバスを１周するのに要する時間よりも長い送信間隔で送信を行うことを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記受信手段により受信されたパケットが、前記自モジュールの送信先のモジュールよりも処理順序がさらに後のモジュールにより処理すべきであった処理を保留されたデータを含む場合は、
前記送信手段は、パケットが前記リングバスを１周するのに要する時間よりも短い送信間隔で前記送信を行うことを特徴とする請求項１に記載のデータ処理装置。
【請求項４】
前記判定手段により前記モジュールで処理すべきでないと判定された場合に、前記受信手段は受信したパケットを前記送信手段に受け渡すことを特徴とする請求項１乃至３のいずれか１項に記載のデータ処理装置。
【請求項５】
複数のモジュールがリングバスに接続され、予め設定された順序で前記複数のモジュールにおいてデータを処理するデータ処理方法であって、
前記モジュールは、
受信手段が、他のモジュールからパケットを受信する受信工程と、
判定手段が、前記受信工程により受信したパケットが保持するデータを自モジュールで処理すべきか否かを、前記パケットに含まれる情報であって前記順序を示す情報である第１の情報により判定する判定工程と、
処理手段が、前記判定工程により前記自モジュールで処理すべきであると判定された場合に、前記データを処理する処理工程と、
生成手段が、前記処理工程により処理されたデータと、前記処理工程により処理されるべきデータが処理されずに保留されたかどうかを示す第２の情報と、前記第１の情報と、を含むパケットを生成する生成工程と、
送信手段が、前記生成工程により生成されたパケットを前記第１の情報に従って次に処理すべきモジュールに送信する送信工程と、を備え、
前記第１の情報及び第２の情報により、前記受信工程により受信されたパケットが前記自モジュールの次の処理順序のモジュールにより処理すべきであった前記処理を保留されたデータを含むと、前記送信工程は、前記生成工程で生成したパケットの送信間隔を長くして送信を行うことを特徴とするデータ処理方法。
【請求項６】
複数のモジュールがリングバスに接続され、予め設定された順序で前記複数のモジュールにおいてデータを処理するデータ処理装置を備えるコンピュータを、
前記モジュールは、
他のモジュールからパケットを受信する受信手段と、
前記受信手段により受信したパケットが保持するデータを自モジュールで処理すべきか否かを、前記パケットに含まれる情報であって前記順序を示す情報である第１の情報により判定する判定手段と、
前記判定手段により前記自モジュールで処理すべきであると判定された場合に、前記データを処理する処理手段と、
前記処理手段により処理されたデータと、前記処理手段により処理されるべきデータが処理されずに保留されたかどうかを示す第２の情報と、前記第１の情報と、を含むパケットを生成する生成手段と、
前記生成手段により生成されたパケットを前記第１の情報に従って次に処理すべきモジュールに送信する送信手段と、を備え、
前記第１の情報及び第２の情報により、前記受信手段により受信されたパケットが前記自モジュールの次の処理順序のモジュールにより処理すべきであった前記処理を保留されたデータを含むと、前記送信手段は、前記生成手段の生成したパケットの送信間隔を長くして送信を行うことを特徴とするデータ処理装置として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置、データ処理方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、複数のモジュールを単方向のリングバスで接続してデータ処理を行うデータ処理装置がある。例えば、各モジュールに１段以上のバッファやメモリを備えて、リングバスにモジュール数と同じ数のパケットを存在させ、モジュール間のパケットの転送を並列に行う装置が提案されている（特許文献１参照）。
【０００３】
また、装置全体での処理性能を向上させるために、自モジュールで処理したデータと他モジュールで処理されるデータとを保持したパケットに優先度を持たせて、その優先度を各モジュールが判定する。そして、優先度の高いパケットを優先して転送する方法が提案されている（特許文献１および特許文献２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−１６７５６０号公報
【特許文献２】特開２００７−３１６６９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記優先度について、特許文献１においては、優先度に応じた転送を集中管理により実現する方法が提案されている。しかし、集中管理で優先度に応じた転送を実現する場合には、モジュール数の増加に比例して制御回路が複雑になってしまうという課題がある。
【０００６】
特許文献２においては、各モジュールに分散した優先度によるパケット転送の方法が提案されている。具体的には、データ転送バスと応答転送バスの２つのリング状バスによってモジュール間を接続する。そして、既にリングバスで転送されていたパケットがモジュールによって送信したいパケットよりも優先度が低いと判定された場合にはそのパケットを破棄して、送信したい優先度の高いパケットをリングバスへ送出する。そして、転送されていたパケットを破棄したため、モジュールは応答転送バスを利用して破棄したことを通知する。破棄されたことが通知されたモジュールは、パケットを送信元に再送する。このようにして、優先度に応じたパケット転送を実現している。
【０００７】
しかし、全てのモジュールは送信したパケットが他のモジュールによって破棄されていないことが確定するまで自モジュールにコピーを保持しておかなければならない。そのため、モジュール数の増加に比例して、送信したパケットのコピーを保持するバッファの容量も増加するという課題がある。さらに、データ転送バスと応答転送バスの２つのリングバスを備えている場合、原理的には応答転送バスにおけるパケットの衝突は避けられない。よって、送出できない応答パケットのためのバッファと、このときの応答パケットが送信元に届くまでの遅延を考慮して、各モジュールは送信パケットのコピーを保持できるバッファを備えなければならない。１つのリングバスで実装した場合であっても、破棄したデータの再送要求に遅延が生じた場合に、同様に破綻しない容量のバッファは必要となる。すなわち、その分パケットの転送効率が低下してしまう。
【０００８】
優先度に応じてパケットの転送を行うことで、各モジュールにおけるデータ処理も優先度に基づいて動作することが期待される。しかし、複数のモジュールがリングバスで接続されるデータ処理装置が、利用するモジュールの個数とその順序を任意に変更して様々な処理を行う場合を考える。その場合、データ処理全体の効率を向上させるためには各モジュールの処理能力に応じたパケット転送が必要となる。
【０００９】
上記の課題に鑑み、本発明は、データの優先度判定を簡単な機構で実現し、データ処理装置のパケット転送効率を向上させることを目的とする。
【課題を解決するための手段】
【００１０】
上記の目的を達成する本発明に係るデータ処理装置は、
複数のモジュールがリングバスに接続され、予め設定された順序で前記複数のモジュールにおいてデータを処理するデータ処理装置であって、
前記モジュールは、
他のモジュールからパケットを受信する受信手段と、
前記受信手段により受信したパケットが保持するデータを自モジュールで処理すべきか否かを、前記パケットに含まれる情報であって前記順序を示す情報である第１の情報により判定する判定手段と、
前記判定手段により前記自モジュールで処理すべきであると判定された場合に、前記データを処理する処理手段と、
前記処理手段により処理されたデータと、前記処理手段により処理されるべきデータが処理されずに保留されたかどうかを示す第２の情報と、前記第１の情報と、を含むパケットを生成する生成手段と、
前記生成手段により生成されたパケットを前記第１の情報に従って次に処理すべきモジュールに送信する送信手段と、を備え、
前記第１の情報及び第２の情報により、前記受信手段により受信されたパケットが前記自モジュールの次の処理順序のモジュールにより処理すべきであった前記処理を保留されたデータを含むと、前記送信手段は、前記生成手段の生成したパケットの送信間隔を長くして送信を行うことを特徴とする。
【発明の効果】
【００１１】
本発明によれば、データの優先度判定を簡単な機構で実現し、データ処理装置のパケット転送効率を向上させることが可能となる。
【図面の簡単な説明】
【００１２】
【図１】データ処理装置の機能構成図。
【図２】パケットの構成を示す図。
【図３】送信元ＩＤの構成を示す図。
【図４】送信制御部の機能構成図。
【発明を実施するための形態】
【００１３】
図１を参照して、本実施形態に係るデータ処理装置について説明する。本発明に係るデータ処理装置は、複数のモジュールと、各モジュールを接続するリングバスにより構成される。
【００１４】
モジュール１０１は、データを処理するためのモジュールである。モジュール１０１は、データ処理部１０３、送信元ＩＤレジスタ１０４、パケット生成部１０５、パケット受信部１０６、待ち受けＩＤレジスタ１０７、受信制御部１０８、送信制御部１０９、パケット送信部１１０、ＩＤ判定部１１１を備える。各部は不図示のＣＰＵ等により制御される。リングバス１０２は、各モジュール１０１をリング状に接続するリングバスである。データ処理部１０３は、所定のデータ処理を行う処理部である。送信元ＩＤレジスタ１０４は、パケットに付加される送信元ＩＤ（第１の情報）が設定されるレジスタである。パケット生成部１０５は、データ処理部１０３で処理されたデータから、リングバス１０２により転送するためのパケットを生成する。パケット受信部１０６は、リングバス１０２を介してパケットを受信する。待ち受けＩＤレジスタ１０７は、データ処理部１０３で処理すべきパケットのＩＤを設定可能なレジスタである。受信制御部１０８は、パケット受信部１０６が受信したパケットが保持するデータが、自モジュールで処理可能な場合はデータ処理部１０３に送出し、そうでない場合にはスルーして送信制御部１０９に受け渡す制御を行う制御部である。送信制御部１０９は、データ処理部１０３で処理されたデータを保持したパケットと、受信制御部１０８でスルーされたパケットをリングバス１０２に送信するための制御を行う制御部である。パケット送信部１１０は、リングバス１０２へパケットを送信する送信部である。ＩＤ判定部１１１は、パケット受信部１０６で受信したパケットのＩＤと、送信元ＩＤレジスタ１０４のＩＤと、待ち受けＩＤレジスタ１０７のＩＤとの各ＩＤを判定する判定部であり、各ＩＤ値から受信制御部１０８及び送信制御部１０９の制御情報を生成する。なお、受信したパケットのＩＤとは、本モジュールよりも処理順序が前のモジュールの送信元ＩＤレジスタ１０４により設定されたＩＤである。
【００１５】
本実施形態に係るデータ処理装置は、各モジュール１０１がリングバス１０２に接続されたリングの構造をとり、そのモジュール数に特に制限はない。また、送信制御部１０９にはバッファが備えられており、このバッファの出力が次のモジュールの入力となっていて、１サイクルで１つのパケットが次のモジュール１０１へと転送される。各モジュール１０１はサイクルごとに次のモジュール１０１へと１つのパケットを転送することにより、装置全体では並列してデータ転送を行うことを可能にしている。
【００１６】
続いて、図２を参照して、本実施形態に係るデータ処理装置において、モジュール１０１間のデータ転送に用いるパケットについて説明する。パケットは、Ｖａｌｉｄフラグ２０１、送信元ＩＤ２０２（第１の情報）、データ２０３、及びＳｔａｌｌフラグ２０４（第２の情報）を備える。Ｖａｌｉｄフラグ２０１は、本パケットが有効か否かを示すフラグである。送信元ＩＤ２０２は、パケットの送信元の識別子であり、保持するデータの優先度も保持しているＩＤである。データ２０３は、パケットが保持するデータである。Ｓｔａｌｌフラグ２０４（第２の情報）は、パケットの保持するデータの受信が転送先で保留されたことを示すフラグである。送信元ＩＤ２０２には、パケットの送信元モジュールと、処理で利用すべきモジュールとの順序関係を識別可能な値が割り当てられ、各パケットの保持するデータの処理すべき優先度を単純な演算により判定可能としている。
【００１７】
図３を参照して、上記送信元ＩＤ２０２について具体的に説明する。送信元ＩＤ２０２を構成するＯｒｄｅｒ３０２には、処理順序に従って昇順あるいは降順の値を付加する。付加する値は、順序関係が判定できればどのような値であっても良い。データ処理装置全体の処理効率を向上させるためには、処理順序が後段のデータほど優先して転送させるとよいため、後段のパケットほど高い優先度と判定される値を付加するようにする。ただし、利用するモジュールの中で処理性能がボトルネックとなる処理部を備えたモジュールのパケットに対し、処理順序に関わらず高い優先度を付加したほうが良い場合には、Ｍｏｄｅ３０１のフィールドにより設定する。このようにＩＤを付加すると、処理順序は一連のデータ処理で重複することのない値であるため、ＩＤは各モジュールの識別子としても利用できる。データ処理装置内で並列に複数のデータ処理を行う場合は、図３（ｂ）に示すようにＰａｔｈ３０３として複数のデータ処理のパスを識別可能とすることで対応できる。なお、図２および図３のパケットの構成は一例であり、各フィールドの順序を限定するものではない。また、この他のフィールドが存在しても良い。特に送信元ＩＤ２０２は、パケットの送信元モジュールと、処理で利用するモジュールの順序関係を識別可能な値であれば良く、Ｍｏｄｅ３０１が不要であればＯｒｄｅｒ３０２によってのみ送信元ＩＤ２０２を構成しても良い。
【００１８】
続いて、データ処理装置のモジュール間でのパケットの転送動作について説明する。まず、パケットの受信動作について説明する。ＩＤ判定部１１１は、パケット受信部１０６で受信したパケットが自モジュール１０１のデータ処理部１０３において処理されるべきデータを保持しているか否かを判定する。あるいは他のモジュールによって処理されるべきか否かを判定する。判定は、受信パケットの送信元ＩＤ２０２と、待ち受けＩＤレジスタ１０７のＩＤ値とに演算を施すことにより行う。例えば、待ち受けＩＤレジスタのＩＤ値に処理すべき受信パケットのＩＤ値を割り当て、各ＩＤが一致する場合に処理を行うようにする。なお、ＩＤの一致を検査しても良いし、ＩＤの一部のみの一致を検査しても良い。一致する場合は、データ処理部１０３へとデータを出力し、一致しなかった場合は送信制御部１０９へとスルーする。ただし、データ処理部１０３において処理されるべきデータを保持している場合であっても、データ処理部１０３において処理できない場合には、処理が保留されたものとしてＳｔａｌｌフラグ２０４を立てて送信制御部１０９へとパケットを受け渡す。
【００１９】
次に、データ処理部１０３によって処理されたデータが、図２に示したパケットにより、次に処理されるべきモジュールへと送信される動作について説明する。データ処理部１０３で処理されたデータはデータ２０３へ格納される。また、送信元ＩＤレジスタ１０４のＩＤ値は送信元ＩＤ２０２のフィールドに格納される。そして、Ｖａｌｉｄフラグ２０１を有効にし、パケット生成部１０５でパケットが生成される。このパケットがバッファを通してリングバス１０２へと送信されるか否かは、送信制御部１０９により制御される。
【００２０】
図４を参照して、本実施形態に係る上記送信制御部１０９の構成について説明する。バッファ４０１は、受信制御部１０８からのパケットを保持するバッファである。バッファ４０２は、パケット生成部１０５で生成されたパケットを保持するバッファである。送信間隔制御部４０３は、バッファ４０２からのパケットの送信間隔を制御する制御部である。セレクタ４０４は、送信するパケットを選択するセレクタである。
【００２１】
バッファ４０１には、受信制御部１０８でスルーされたパケット、又は自ノードで処理されるデータを保持したパケットであったがデータ処理部１０３で処理できなかったパケットが格納される。データ処理部１０３で処理できなかったパケットであるか否かは、Ｓｔａｌｌフラグ２０４により識別できる。また、上記の通りバッファ４０２には、パケット生成部１０５で生成されたパケットが格納される。これら２つのバッファに格納されたパケットのうち、どちらを送信するかはセレクタ４０４により選択される。このとき、バッファ４０２に格納されたパケットが送信可能か否かは、送信間隔制御部４０３よりその可否が決定される。送信間隔制御部４０３は内部にタイマを持ち、パケットが送信される度に所定の値にリセットされ、最小のパケット送信間隔を保証する。この送信間隔はレジスタ等により設定可能であり、処理の順序が後段のモジュール１０１の処理能力に応じた値を設定する。
【００２２】
本発明では、受信したパケットの送信元のモジュールと自モジュールとの処理順序関係を送信元ＩＤ２０２により判定可能である。また、受信したパケットのＳｔａｌｌフラグ２０４を調べることにより、処理順序でどのモジュールが処理保留状態であるかを検出できる。この検出結果に応じてバッファ４０２からの送信間隔を送信間隔制御部４０３により動的に制御することで、パケットの転送効率を向上させることができる。
【００２３】
以下、送信間隔制御部４０３における送信間隔の制御の一例について説明する。まず、初期状態として送信間隔は一定の値に設定されている。自モジュールの次の処理順序のモジュールが送信したパケットがＳｔａｌｌ状態となっていたことを自モジュールが検出した場合には、送信間隔を、リングバス１０２を１周するのに要する時間よりも大きな値に設定する。この場合には、自モジュールが新たにパケットを送信しても次の順序のモジュールで受信できない可能性が非常に高いためである。送信間隔を、パケットがリングバス１０２を１周するのに要する時間よりも大きな値に設定することで、リングバス１０２内に自モジュールのＳｔａｌｌパケットが存在しなくなると考えられ、その後次のパケットを送信する。なお、パケットがリングバス１０２を１周するのに要する時間は、リングバス１０２に接続されているモジュールの個数に応じて予め決定されるものである。また送信間隔制御部４０３が内部に有するタイマが計測する構成としても良い。
【００２４】
一方、自モジュールの送信先（自モジュールの次の処理順序のモジュール）よりも処理順序がさらに後段のモジュールでｓｔａｌｌ状態となっていることを検出した場合には、自モジュールの次の処理順序のモジュールで受信できる可能性が比較的高い。そのため、リングバス１０２を１周するのに要する時間よりも小さい送信間隔で送信する。また、さらに初期状態として設定した値以上に設定しても良い。このように設定することで、自モジュールのＳｔａｌｌパケットがリングバス１０２を占有する数を抑えることができる。また、自モジュールの次の処理順序よりもさらに後段のモジュールがパケットを受信可能な限り、パケットを供給することができる。この他に、自モジュールよりも前段でＳｔａｌｌ状態となったことを検出した場合には、後段の処理が滞っていないため送信間隔を変更する必要はない。
【００２５】
このようにして、他のモジュールの処理状態に応じて自モジュールからのパケットの送信間隔を動的に制御することにより、パケットの転送効率を向上させることができる。つまり、Ｓｔａｌｌパケットとなってリングバス１０２を周回して各モジュールからのデータ送信を妨げる要因となるパケットの発生を抑えて、全体としてパケットの転送効率を向上させる。各モジュールのデータ処理能力と処理における優先度に応じて動的にパケット転送量が制御されるため、モジュールのデータ処理能力が一定でなく動的に変わる場合であっても対応できる。
【００２６】
本発明では、送信元ＩＤ２０２から処理における順序関係が判定できるため、それに伴った優先度を付加することで、Ｓｔａｌｌパケットを検出した場合に、処理の順序が後段のモジュールかどうかを単純な演算により判断できる。また、新たに送信するパケットが抑制されるため、結果的に優先度の高いモジュールのための帯域が確保されることになり、パケットを優先して流すことが可能となる。これにより所定のデータ処理を終えるまでのサイクル数を短縮させ、データ処理装置全体としての処理効率を向上させる効果がある。この所定のデータ処理を行うための順序に従ったパケットの転送と、データの優先度を考慮したパケットの転送帯域の確保を、単一のＩＤとｓｔａｌｌフラグのみによって実現していることが、本実施形態の特徴である。
【００２７】
単一のＩＤとして実現したことにより、各モジュールでは受信したパケットに対してそのＩＤと自モジュールのレジスタの設定値とに演算を施すことで、データ処理部で処理するか否かの判定と、データの優先度の判定とが可能となる。この結果、判定機構が簡素化されるだけでなく、データの優先度をＩＤとは別にパケットに保持する必要が無くなる。あるいは、各モジュールに対してＩＤと優先度とを対応付けるのに必要な記憶装置が不要となる。
【００２８】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005414506.tif 000002
【図２】
0005414506.tif 000003
【図３】
0005414506.tif 000004
【図４】
0005414506.tif 000005