(57)【要約】【課題】  利用する各データ処理部の本来の処理性能を達成し、利用するデータ処理部で出力データを得るために必要とするデータの個数も考慮してリングバスへのデータ投入を調節する。【解決手段】  リング状に接続された複数のデータ処理部を有し、前記複数のデータ処理部（ノード）が予め設定された順番でデータを処理するデータ処理装置において、複数のデータ処理部の各々は、自ノードが受信したデータに基づいて、自ノードの１つ前の順番においてデータを処理するノードを識別し、識別したノードに自ノードの受信可能状態を通知、また、自ノードの１つ後の順番においてデータを処理するノードからの通知に応じて、データの送信量を制御する。【選択図】      図５
2010198226.tif 000002
【特許請求の範囲】
【請求項１】
通信可能にリング状のバスに接続された複数のデータ処理部を有し、前記複数のデータ処理部が順番にデータを処理するデータ処理装置であって、
前記複数のデータ処理部の各々は、
当該データ処理部が受信したデータに基づいて、当該データ処理部の１つ前の順番においてデータを処理するデータ処理部を識別する識別手段と、
当該データ処理部の受信可能状態を判定し、前記識別手段の識別したデータ処理部に前記受信可能状態を通知する通知手段と、
当該データ処理部の１つ後の順番においてデータを処理するデータ処理部の通知手段からの通知に応じて、データの送信量を制御する制御手段とを有することを特徴とするデータ処理装置。
【請求項２】
前記通知手段は、予め決められたコマンドを前記リング状のバスに送信することで通知を行うことを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記通知手段は、前記リング状のバスに送信されるデータの予め決められたビットにて通知を行うことを特徴とする請求項１に記載のデータ処理装置。
【請求項４】
前記通知手段は、前記リング状のバスとは別に設けられ、前記処理部を直接接続している信号線にて通知を行うことを特徴とする請求項１に記載のデータ処理装置。
【請求項５】
前記制御手段は、当該データ処理部の１つ後の順番においてデータを処理するデータ処理部がデータを受信可能な間隔でデータを送信するようにデータ送信間隔を制御することを特徴とする請求項１乃至４の何れか１項に記載のデータ処理装置。
【請求項６】
前記制御手段は、当該データ処理部の１つ後の順番においてデータを処理するデータ処理部が受信可能状態になったことを通知されると、連続データ送信数として予め決められている数だけ連続してデータ送信を行うことを特徴とする請求項５に記載のデータ処理装置。
【請求項７】
前記制御手段は、当該データ処理部の１つ後の順番においてデータを処理するデータ処理部が受信可能状態になったことを通知されると、前記連続データ送信数に応じた間隔でデータを送信することを特徴とする請求項６に記載のデータ処理装置。
【請求項８】
前記データ処理部の各々は、前記連続データ送信数を記憶するレジスタを更に有することを特徴とする請求項６又は７に記載のデータ処理装置。
【請求項９】
前記通知手段は、通知対象となるデータ処理部に設定された連続データ送信数に相当するデータを受信可能となったときに通知することを特徴とする請求項６乃至８の何れか１項に記載のデータ処理装置。
【請求項１０】
前記制御手段は、当該データ処理部が受信可能である場合に、データ送信可能な期間にデータを送信し、データ送信を抑制する期間にデータの送信を抑制することを繰り返すことにより、データ送信間隔を制御することを特徴とする請求項１乃至４の何れか１項に記載のデータ処理装置。
【請求項１１】
前記制御手段は、当該データ処理部が受信可能状態である場合に、複数の送信可能な期間の全てにおいて送信可能な期間にのみデータを送信することにより、データ送信間隔を制御することを特徴とする請求項１乃至４の何れか１項に記載のデータ処理装置。
【請求項１２】
前記データ送信可能な期間とデータ送信を抑制する期間を保持するレジスタを更に有することを特徴とする請求項１０又は１１に記載のデータ処理装置。
【請求項１３】
通信可能にリング状のバスに接続された複数のデータ処理部を有し、データを順番に処理する前記複数のデータ処理部によるデータ処理方法であって、
当該データ処理部が受信したデータに基づいて、当該データ処理部の１つ前の順番においてデータを処理するデータ処理部を識別する識別工程と
当該データ処理部の受信可能状態を判定し、前記識別工程にて識別したデータ処理部に前記受信可能状態を通知する通知工程と、
当該データ処理部の１つ後の順番においてデータを処理するデータ処理部からの通知に応じて、データの送信量を制御する制御工程とを有することを特徴とするデータ処理方法。
【請求項１４】
コンピュータに
通信可能にリング状のバスに接続された複数のデータ処理部を有し、前記複数のデータ処理部が順番にデータを処理するデータ処理方法であって、
当該データ処理部が受信したデータに基づいて、当該データ処理部の１つ前の順番においてデータを処理するデータ処理部を識別する識別工程と
当該データ処理部の受信可能状態を判定し、前記識別工程にて識別したデータ処理部に前記受信可能状態を通知する通知工程と、
当該データ処理部の１つ後の順番においてデータを処理するデータ処理部からの通知に応じて、データの送信量を制御する制御工程とを有することを特徴とするデータ処理方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リング状のバスに接続されている複数のデータ処理部を有するデータ処理装置、該装置におけるデータ処理制御方法及びプログラムに関する。
【背景技術】
【０００２】
従来、リング状のバスに接続された処理モジュールをバスのトラフィックを過度に増大させずに各処理モジュールを安定して利用するための制御方法が提案されている（例えば、特許文献１〜３参照）。この制御方法では、処理モジュールが自身のデータ受信能力を判定し、その判定の結果、負荷が高くなってしまった処理モジュールがメッセージの送信やトークンを消去又は再生する。そして、その他の処理モジュールから受信するデータを制限することで、バスのトラフィックを抑えてシステム全体の性能が著しく低下する状況を回避させている。
【０００３】
また、リング状のバスに接続された処理モジュールを用いてパイプライン処理する場合に、リング状のバスを周回するデータに衝突しないようなタイミングでデータを投入し、全体の処理を効率良く行わせる方法が提案されている（例えば、特許文献４参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平２−２８３１４２号公報
【特許文献２】特開平４−７０２３５号公報
【特許文献３】特開平１０−２２８４４５号公報
【特許文献４】特登録２５４１６９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来の技術では、ハードウェアとして実装された固定的な処理機能を持つ処理回路を通信可能に接続したリング状のバスにおいて、次のような問題があった。物理的な接続順番と異なる処理順番を自在に制御可能なデータ処理部を実現しようとした場合に、本来のデータ処理部の持つ処理速度を十分に引き出すことが困難であった。
【０００６】
例えば、複数の処理回路（１〜４）が、接続順番１→２→３→４で接続されている場合、４→３→２→１という順番で処理を実行するためにトークンパッシング方式を採用し、複数の処理回路間でデータを送受信しつつ処理を行う通信方式などが提案されている。ここでリング状のバスは一方通行でデータをバス内に周回させるため、接続順番は処理回路１〜４が順になっていることを示す。周回することを考慮すると１→２→３→４→１と表現してもよい。また処理順番は、データ処理部が処理対象のデータを４→３→２→１の順番で処理することを示す。以降の説明では単方向にデータ（又はパケット）を周回させるリング状のバスを単にリングバスと称す。
【０００７】
しかし、このようなデータパスを用いて接続順番と異なる処理順番を実現しようとした場合、リング状のバスに順番入れ替えのために周回するデータが増えてしまい、リング状のバスのデータトラフィックが増加し、処理性能を下げてしまう。この処理速度の低下に関して図１乃至図３を用いて説明する。
【０００８】
図１は、ベースとなるデータ通信路（以下、リングバス）とデータ処理部とを接続する通信処理部の構成を示す図である。図１において、入力データ受信部１０１がリングバス上を流れるパケットを受信する。そして、入力データ識別部１０２が受信されたパケットの制御情報を確認し、パケットのデータが自ノードで処理すべきデータか否かを識別する。ここで、入力データ識別部１０２が自ノードで処理すべきデータであると識別すると、処理データ出力部１０３がそのデータを不図示のデータ処理部に送出する。
【０００９】
一方、処理済データ入力部１０４が自ノードのデータ処理部から処理済のデータを入力する。そして、出力データ生成部１０５が入力されたデータから出力データを生成する。ここで、入力されたデータは、入力データ識別部１０２が自ノードで処理すべきデータでないと識別したデータや有効なデータを含んでいないと判断した空パケット、又は処理済データ入力部１０４からの処理済でバス上に出力する必要のあるデータである。そして、出力データ送信部１０６が出力データ生成部１０５で生成された出力データを再びバス上に送信する。
【００１０】
図２は、通信処理部が送受信するパケットのフォーマットの一例を示す図である。図２において、フィールド２０１はデータの処理順番を示すカウンタを格納する。このリングバスでは、連続する未処理データがリングバス内を周回することがあり得るため、データ処理部がデータ受信可能となったときに最初に受信されるデータが必ずしも最初に処理されるべきデータであるとは限らない。よって、このようなカウンタをデータに付随させて持たせ、入力された順など、正しい処理順番に従って処理を実行する仕組みが必要となる。
【００１１】
フィールド２０２はパケットが保持しているデータが処理されるべき有効データであることを示すフラグを格納する。このフラグ２０２は、パケットが現在使用中であるか否かを示すフラグと同じ意味を持つ。２０３はパケットが保持しているデータが、何らかの理由で処理すべきデータ処理部によって受け取られなかったことを示すフラグである。通常のパイプライン接続における、前段へのデータ供給停止要求ビットと同じ意味を持つ。
【００１２】
フィールド２０４はデータを最後に処理したデータ処理部の識別子（ＩＤ）を格納する。通信処理部では、予め外部から設定された待ち受けＩＤと、データパケット上のＩＤとを比較し、一致した際に処理を行う。そして、フィールド２０５はデータを格納する。
【００１３】
図３（ａ）は、トークンパッシング方式によって通信路を構成した画像処理装置の構成の一例を示す図である。データ取得部３０１は外部記憶装置などから処理すべきデータを取得する。通信処理部３０２はデータ取得部３０１で取得されたデータをリングバスに供給する処理を行う。通信処理部３０３はリングバスからデータ処理回路３０４で処理すべきデータを選別して取り込む。データ処理回路３０４は供給されたデータに対してしかるべき処理を行う。尚、通信処理部３０３とデータ処理回路３０４とで構成される処理部は１つ以上接続されているものとする。
【００１４】
通信処理部３０５は、処理済のデータを外部記憶装置などに出力するため、リングバス上から処理済のデータを選択して取り込む。データ出力部３０６は、通信処理部３０５で取り込まれた処理済のデータを外部記憶装置などに出力する。そして、リングバス３０７はこれらの通信処理部を連結する。
【００１５】
図３（ｂ）は、図３（ａ）に示す画像処理装置において、処理速度が低下した状態を説明するための図である。ここで、通信路は１処理単位時間（以下、１サイクル）に一つずつ、データを次の通信処理部に送るものとする。
【００１６】
データ処理回路４０１は、例えば１つのデータを受信して３サイクル経過後に、結果データが送信可能となり、処理中は次のデータを受け付けられない。通信処理部４０２はデータ処理回路４０１で処理すべきデータをリング状のバスから取得する。
【００１７】
ここで、データ処理回路４０１が１番目のデータ４０３を処理している最中に、次のデータ４０４がデータ処理回路４０１の通信処理部４０２に入力されたとする。当然のことながら、データ処理回路４０１は処理中であるため、通信処理部４０２は２番目のデータ４０４を取り込むことができない。このデータ４０４は次のサイクルに次のデータ処理部に送られるか、又は消去されて再度データ取得部３０１に対して再送要求を通知する。
【００１８】
即ち、２番目のデータ４０４が単にリングバス上を周回すると、再び通信処理部４０２に戻ってくるまでに、リングバスに接続されている通信処理部の数に相当するサイクル数が必要となる。
【００１９】
図３（ａ），（ｂ）に示す構成では、通信処理部が６つ接続されているため、２番目のデータ４０４が戻ってくるまでに６サイクルの時間を必要とする。データ処理回路４０１は３サイクルで処理を終了し、１番目のデータ４０３を出力し、次のデータの入力待ちとなるため、最低でも、６−３＝３サイクルの遅延時間が生じてしまう。
【００２０】
これと同様のことが、３番目以降の全ての入力データについても起こるとすれば、処理速度が著しく低下してしまう。つまり、入力データの総数をＮとすれば、本来３サイクルに１データ処理できることから、３×Ｎサイクルで終了するはずの処理が１データにつき３サイクルの遅延時間を持ってしまい、２倍の６×Ｎサイクルかかってしまう。
【００２１】
この問題を解決するために、特許文献１に記載の技術を用いる場合、受け取れなかったデータ４０４は消去される。そして、データ供給元であるデータ取得部３０１が、データ４０４が一定期間内に戻ってこないことを確認した上で再度データを送出する。
【００２２】
しかし、この技術では、既にデータ４０４に続く次のデータ４０５を取得又は送出していた場合、外部からのデータの読み取りを既に送出したデータ分遡って、再取得して送出しなければならない。そのため、再取得動作の必要性が更に、既に送出したデータ４０５についても連鎖的に発生するなど、データ取得部３０１における制御が煩雑になる。
【００２３】
また、特許文献３に提案されている技術の場合、通信処理部４０２で受け取れなかったデータ４０４はデータ内容を破棄され、受け取れなかったことを通知するトークンとしてリングバス上に流される。この場合、通知トークンはリングバス上を周回して送信元であるデータ取得部３０１に到達するまでに、周回にかかる時間のロスが発生し、そこで即座にデータが準備できたとしても、６×Ｎサイクルの処理時間を上回ることはできない。
【００２４】
更に、通知トークンを受け取ってから再度送出するデータを取得する動作を行った場合、遅延時間は更に長くなり、全処理時間は６×Ｎを上回ってしまうという問題も解決することができない。
【００２５】
一方、他の問題として、以下にデータ処理回路の処理効率の向上について説明する。
【００２６】
データ処理回路で利用するデータ処理部を効率良く使って処理性能を向上させる技術として、前のデータが処理されている間であってもリングバス上のデータと衝突しないタイミングで次のデータを入力端から供給するという技術がある（特許文献４）。
【００２７】
特許文献４に記載の技術が対象とする回路は、データ処理部が複数のデータを演算する場合に、同一のタイミングで入力されたデータにより出力が決まることを想定している。そのため、出力データの生成のために複数のデータの受信を必要とする場合には、その分バスを用意する必要がある。リング状のバスに接続するデータ処理回路の場合は、演算のための複数のバスは用意しなくてもよい。例えば、単一のバスでバケツリレーのようにデータ処理部からデータ処理部へとデータを供給する。その際に特許文献４で提案されている技術を用いた場合、データ処理回路の性能が逆に下がってしまう場合がある。
【００２８】
この処理効率が下がる状況に関して図４を用いて説明する。図４は、図３に示す装置と同様な構成において、データ処理回路を２つ備えた装置である。５０１に続いて５０３で処理した後に再び５０１で処理してから結果を得る装置とする。
【００２９】
データ処理回路５０１は１つのデータを３サイクルで処理して出力するデータ処理部、データ処理回路５０３は４つのデータが入力されてから３サイクル毎にデータを出力するデータ処理部である。図４においてデータ５０５〜５０８に付されている記号は、アルファベットが装置へ投入した順、数字はデータ処理回路での処理が終わった数を表す。
【００３０】
このとき、図４に示す（ａ）のデータ処理回路５０３が結果を出力可能となる４つ目のデータ５０７を受信するまでは、データ処理回路５０３が受信可能な一定の間隔でデータをデータ取得部３０１から投入することで、データは効率良く処理される。しかし、図４に示す（ｂ）のように、データ処理回路５０３が結果を出力可能となる４つ目のデータ５０７を受信した後、更に３サイクルが経過すると、データ５０５が出力可能となっている。このとき、データ５０８が装置内に投入されてデータ処理回路５０１での処理が完了していた場合、データ処理回路５０３ではデータ５０７が出力されなければ、データ５０８はリングを周回することになる。これは、上述の問題と同様である。
【００３１】
更に、リングを周回することで、データ処理回路からの出力を妨げてしまうため、処理性能が低下してしまう。特許文献４で提案されている技術において、データ処理回路５０３がデータを漏れなく受信しようとすると、データ処理回路５０３の処理時間は４つのデータの処理が完了するまでとしなければならない。
【００３２】
即ち、３０１からのデータの投入間隔を少なくとも５０３がデータを受信可能な３×４＝１２以上にする必要があるため、図４に示す（ａ）の５０３が出力を得るための４つのデータを受信している場合には効率が悪くなってしまう。
【００３３】
本発明は、利用する各データ処理部の本来の処理性能を達成し、利用するデータ処理部で出力データを得るために必要とするデータの個数も考慮してリングバスへのデータ投入を調節することを目的とする。
【００３４】
また一方で、利用するデータ処理部の順番の変更やデータ量の変動に対しても安定して効率の良い処理を実現することを目的とする。
【課題を解決するための手段】
【００３５】
本発明は、通信可能にリング状のバスに接続された複数のデータ処理部を有し、前記複数のデータ処理部が順番にデータを処理するデータ処理装置であって、
前記複数のデータ処理部の各々は、
当該データ処理部が受信したデータに基づいて、当該データ処理部の１つ前の順番においてデータを処理するデータ処理部を識別する識別手段と、
当該データ処理部の受信可能状態を判定し、前記識別手段の識別したデータ処理部に前記受信可能状態を通知する通知手段と、
当該データ処理部の１つ後の順番においてデータを処理するデータ処理部の通知手段からの通知に応じて、データの送信量を制御する制御手段とを有することを特徴とする。
【発明の効果】
【００３６】
本発明によれば、複数のデータ処理部において処理の順番が後段のデータ処理部が必要なだけのデータを供給することで、データがリングバスを周回する回数を低減し、リングバスに流れるデータ量を調節する。
【００３７】
また、データ処理装置へのデータの入出力端以外でデータ量が変動する場合に、物理的な接続順番と異なる処理順番を自在に制御しつつ効率的なデータ処理が可能となる。
【図面の簡単な説明】
【００３８】
【図１】データ通信路とデータ処理部とを接続する通信処理部の構成を示す図である。
【図２】通信処理部が送受信するパケットのフォーマットの一例を示す図である。
【図３】トークンパッシング方式によって通信路を構成した画像処理装置の構成の一例を示す図である。
【図４】図３に示す装置と同様な構成において、データ処理回路を２つ備えた装置を示す図である。
【図５】第一の実施形態におけるデータ処理部の構成を示すブロック図である。
【図６】第一の実施形態で伝送されるパケットのフォーマットを示す図である。
【図７】第一の実施形態におけるデータ送信制御部６１０の処理を示すフローチャートである。
【図８】第一の実施形態における画像処理装置の構成の一例を示す図である。
【図９】第二の実施形態におけるパケットのフォーマットの一例を示す図である。
【図１０】第三の実施形態におけるデータ処理部の接続例を示す図である。
【図１１】第五の実施形態におけるデータ処理部の構成を示すブロック図である。
【図１２】第六の実施形態におけるデータ処理部の構成を示すブロック図である。
【発明を実施するための形態】
【００３９】
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
【００４０】
［第一の実施形態］
画像処理装置における複数の通信処理部がコマンドパケットを送受信し、自通信処理部のデータ受信可能状態を他の通信処理部に通知、或いは他の通信処理部のデータ受信可能状態を自通信処理部が検出する方法を、図５を用いて説明する。尚、複数の通信処理部は通信可能にリング状のバス上に接続されているものとする。
【００４１】
図５は、第一の実施形態におけるデータ処理部の構成を示すブロック図である。図５において、データ処理部６０１は画像処理装置における基本構成要素の１つである。リングバス６０２は自通信処理部と他の通信処理部とを接続する。通信処理部６０３はリングバス６０２を用いて通信する際の通信を制御する。データ処理回路６０４はデータ処理部６０１に割り当てられたアルゴリズムで通信処理部６０３から受け取ったデータを処理する。
【００４２】
尚、図５では、基本構成要素は通信処理部６０３とデータ処理回路６０４との組み合わせであるが、通信処理部６０３と図４に示すデータ取得部３０１やデータ出力部３０６との組み合わせも含まれる。以下、これらの基本構成要素をリングバスにおける「ノード」と称する。
【００４３】
また、ノードとしてデータ処理部６０１を例に説明するが、データ取得部やデータ出力部を含むノードの場合には、データ処理回路６０４をデータ取得部やデータ出力部と読み替えるものとする。
【００４４】
通信処理部６０３において、パケット受信部６０５はリングバス６０２上を流れるパケットを受信する。パケット識別部６０６はパケット受信部６０５が受信したパケットの制御情報を確認し、自ノードで処理すべきパケットか否かを識別する。処理データ出力部６０７はパケット識別部６０６が自ノードで処理すべきパケットであると識別した場合に、そのパケットのデータをデータ処理回路６０４に送出する。データ受信可能状態検出部６０８はパケット識別部６０６が自ノードで処理すべきパケットであると判断した場合、自ノードの次にデータを処理するノードの受信可能状態を検出する。ここでデータ受信可能状態検出部６０８は、他のノードの通知部からの受信可能状態の通知を検出する機構である。
【００４５】
処理済データ入力部６０９は自ノードのデータ処理回路６０４で処理された処理済データを入力する。データ送信制御部６１０は処理済データ入力部６０９から入力されたデータをリングバス６０２へ出力する際に、データ受信可能状態検出部６０８で検出した状態に基づいて出力するか否かを制御する。
【００４６】
データ受信可能状態通知部６１１は、自ノードのデータ受信可能状態を自ノードより１つ前の順番でデータを処理するノードに通知するためのコマンドを生成する。この時、受信したデータからパケット識別部６０６が、最後に処理したノードを識別し、データ受信可能状態通知部６１１に通知先として伝える。パケット生成部６１２はパケット識別部６０６が自ノードで処理すべきでないと判断したパケットや、有効なデータを含んでいないと判断した空パケットから送信パケットを生成する。また、パケット生成部６１２は、データ送信制御部６１０からリングバス６０２上に出力する必要のあるデータや、データ受信可能状態通知部６１１で生成されたコマンドからも送信パケットを生成する。
【００４７】
パケット送信部６１３はパケット生成部６１２で生成されたパケットをリングバス６０２上に送信する。データ送信数カウンタ６１４はデータ処理回路６０４で処理され、リングバス６０２へ送出したパケットの数をデータ数としてカウントする。連続データ送信数レジスタ６１５はデータ処理回路６０４で処理されたデータを連続して送信する数を設定する。データ送信間隔カウンタ６１６は前回のデータ処理回路６０４で処理されたデータの送信から経過した期間を保持するために、サイクル毎にインクリメントされる。そして、データ送信間隔レジスタ６１７はデータ処理回路６０４で処理されたデータの送信間隔を保持する。
【００４８】
次に、リングバス６０２を介して複数のノード間で伝送されるパケットのフォーマットを、図６を用いて説明する。
【００４９】
図６は、第一の実施形態で伝送されるパケットのフォーマットを示す図である。ここで、伝送されるパケットのフォーマットには、図６に示すように（ａ）と（ｂ）の２種類がある。まず、図６に示す（ａ）は、ノードで処理されるデータを伝送するデータパケットのフォーマットである。次に、図６に示す（ｂ）は、処理順番で後段に位置するノードのデータ受信可能状態を、そのノードの１つ前に処理順番が設定されているノードへ通知するコマンドパケットのフォーマットである。
【００５０】
続いて、パケットフォーマットの詳細な構成を説明する。データパケットのフィールド２０１〜２０５は、図２に示すパケットフォーマットと同様である。フィールド７０１はパケットがデータパケットかコマンドパケットかを識別するための識別子（Ｔｙｐｅ）を格納する。
【００５１】
一方、コマンドパケットのフィールド７０１、２０１〜２０４はデータパケットと同様である。フィールド７０２はコマンドの内容を保持する。ここで、コマンドセットには、処理上の後段に位置するノードのデータ受信可能状態を前段のノードへ通知するコマンドが含まれる。
【００５２】
尚、フィールド２０４のＩＤは、データパケットが正しい処理順番で複数のノード間で受け渡され、またコマンドパケットが正しくそのコマンドの対象とするノードに渡されるという目的を満たすに十分な値であれば、そのフォーマットは限定しない。
【００５３】
例えば、フィールド２０４のＩＤは、上述したようにデータを最後に処理したノードのＩＤではなく、パケットの送り手と受け手の識別子の組み合わせにより割り当てられていても良い。
【００５４】
また、データパケットとコマンドパケットとでフィールド２０４のＩＤのフォーマットが異なっていても良い。
【００５５】
更に、受信可能状態を通知するコマンドパケットのフィールド７０２におけるコマンドの内容は受信可能状態だけでなく、受信可能なデータの個数や受信可能となるまでの時間（サイクル数）など受信可能状態の具体的な情報を含んでいても良い。
【００５６】
第一の実施形態におけるデータ処理部は、それぞれデータ処理を行うために必要となるデータ数が予め決まっており、このデータ数は処理上で前段に位置するデータ処理部の連続データ送信数として予め連続データ送信数レジスタ６１５に記憶されている。処理上で後段に位置するデータ処理部の受信可能状態が受信可能になったことをデータ受信可能状態検出部６０８にて検出すると、連続データ送信数レジスタ６１５（不図示）に設定された連続データ送信数に相当する量のデータを送信する。このときのデータ送信の間隔は、後段に位置するデータ処理回路の処理時間に合わせて、データを取りこぼさずに受信可能な間隔を取るように予めデータ送信間隔レジスタ６１７（不図示）に設定しておく。レジスタ６１５、６１７は各データ処理部が個別に有してもよいし、共有してもよい。
【００５７】
ここで、データ送信制御部６１０の処理を、図７を用いて説明する。
【００５８】
図７は、第一の実施形態におけるデータ送信制御部６１０が行う処理を示すフローチャートである。まずステップＳ８０１で、データ受信可能状態検出部６０８が検出した処理上で後段に位置するノードのデータ受信可能状態を確認する。そして、ステップＳ８０２で、受信可能状態になるまで、ステップＳ８０１の処理を繰り返す。その後、受信可能状態になるとステップＳ８０３へ処理を進め、データ送信数カウンタ６１４の値を０にリセットする。
【００５９】
次に、ステップＳ８０４では、処理済データ入力部６０９からデータ処理回路６０４で処理された送信可能なデータを入力したか確認する。そして、ステップＳ８０５で、送信可能なデータを入力するまで、ステップＳ８０４の処理を繰り返す。その後、送信可能なデータを入力するとステップＳ８０６へ処理を進め、データ送信間隔カウンタ６１６をインクリメントする。そして、ステップＳ８０７で、前回の送信からの間隔（データ送信間隔カウンタ６１６の値）が後段で処理可能な間隔（データ送信間隔レジスタ６１７の値）以上になるまで、ステップＳ８０６の処理を繰り返す。
【００６０】
このステップＳ８０７での判定条件が満たされるとステップＳ８０８へ処理を進める。ステップＳ８０８では、パケット生成部６１２へデータを送り、パケット生成部６１２がパケットを生成し、パケット送信部６１３によってリングバス６０２へ送出される。
【００６１】
次に、ステップＳ８０９で、データ送信間隔カウンタ６１６をリセットし、ステップＳ８１０でデータ送信数カウンタ６１４をインクリメントする。そして、ステップＳ８１１で、データ送信数カウンタ６１４の値が連続データ送信数レジスタ６１５の値に達したかを判定する。判定した結果、連続データ送信数のデータを送信していなければステップＳ８０４に戻り、上述の処理を繰り返し、連続データ送信数のデータを送信し終えたならば、再びステップＳ８０２で後段のデータ処理部が受信可能となるまで待つ。
【００６２】
次に、ノードがデータ受信可能状態を処理上の前段に位置するノードに通知する処理を説明する。データ受信可能状態通知部６１１がパケット受信部６０５でのパケットの受信状態とデータ処理回路６０４での処理状態に基づいて受信可能状態を判定する。ここで、コマンドを使って受信可能状態を通知するために、通知対象である処理上で前段のノードで検出されるまでのレイテンシが最小で１サイクル、最大でリングバス６０２の１周分のレイテンシよりも１サイクル少ないサイクル数がかかる。更に、通知対象から送信されたデータが実際に届くまでは、その途中に他のノードでの処理がある場合も考慮する必要があるが、通知コマンドの分を含めると少なくともリングバス６０２の１周分のレイテンシがかかる。
【００６３】
そこで、このレイテンシを考慮すると、データ受信可能状態が受信可能になったことの通知コマンドを送るタイミングは、通知するノードがデータを受信可能になったときよりも早くてもかまわない。
【００６４】
但し、届いたデータを取りこぼした場合には処理性能が低下するため、データ受信可能状態が受信可能状態になったことを通知した後、実際にデータが届くまでのレイテンシを次のようにすることが望ましい。即ち、受信可能の通知を実際に受信可能となる時間よりも早めたサイクル数の上限とすることが望ましい。
【００６５】
次に、図８に示す画像処理装置に第一の実施形態におけるデータ処理部を適用した場合の処理を説明する。
【００６６】
図８は、第一の実施形態における画像処理装置の構成の一例を示す図である。データ取得部３０１、データ出力部３０６、データ処理回路５０１、５０３は夫々、通信処理部９０１〜９０４に接続されている。また、パケット９０５〜９０８はデータパケットであり、パケット９０９はデータパケットである。ここでパケット９０９は、通信処理部９０３から通信処理部９０１へ送られ、通信処理部９０３が受信可能となったことを通知する。この時、コマンドパケットもデータパケットと同じようにリングバス６０２を周回する。
【００６７】
まず、図８に示す（ａ）では、データ処理回路５０３でデータパケット９０５を先頭にデータパケット９０６までの４つのデータパケットが揃い、処理を行っている。このとき、データ処理回路５０３に接続された通信処理部９０３の前段である通信処理部９０１は通信処理部９０３からの受信可能コマンドを待っているため、続くデータパケット９０７の送信を抑制している。
【００６８】
次に、データ処理回路５０３が処理を終了し、データ処理回路５０１がデータパケット９０６のデータを処理している状況を図８（ｂ）に示す。このとき、コマンドパケット９０９が通信処理部９０１に届き、データパケット９０７の送信が開始される。その後、データパケット９０８までの４つのデータが図８に示す（ａ）の状況と同様にデータ処理回路５０３に供給される。但し、データパケット９０７を送信した際に、データ処理回路５０１がデータパケット９０６を処理中であるため、データパケット９０７がデータ処理回路５０１で受信されない状況を考慮する必要がある。
【００６９】
これに対して、第一の実施形態では主に４つの方法によって各通信処理部が後段に送信するデータの送信量の制御をすることが可能である。１つ目は、通信処理部９０２も通信処理部９０１へ受信可能状態を通知しておくことである。２つ目は、通信処理部９０１がコマンドパケット９０９を受信後、データパケット９０７をすぐに送るのではなく、他のデータと同様に、データパケット９０６の処理が完了する３サイクル以上の間隔を空けてデータパケット９０７を送信することである。
【００７０】
３つ目は、通信処理部９０３でのコマンドパケット９０９の送信タイミングを調節することである。そして、４つ目は、コマンドパケット９０９にデータパケット９０６の処理が完了する３サイクル以上の間隔を空けることを示す情報を含めることである。
【００７１】
４つ目を実現するには、データ受信可能状態検出部６０８がコマンドパケット９０９により指示された間隔を空けた後、データ送信制御部６１０へ通信処理部９０３が受信可能となったことを通知すれば良い。
【００７２】
尚、上述の処理は、データ処理回路５０３が４つのデータによって２倍の８つのデータを出力するようなデータ量を増大させる場合であっても同様の効果をもたらす。その場合、最後の８つ目のデータは、図８に示す（ｂ）のデータパケット９０６と同様に、データ処理回路５０１で処理される。そのため、通信処理部９０３が受信可能となることを通知するコマンドパケット９０９も同様に通信処理部９０１に届き、通信処理部９０３の処理状況に応じて適切なデータが通信処理部９０１から供給される。また、これが２倍以外のデータ量を増加させる場合だけでなく、縮小させる場合であっても同様にして適用可能であることは言うまでもない。
【００７３】
以上、第一の実施形態によれば、コマンドを用いて処理上で後段の処理回路が前段の処理回路に自身のデータ受信可能状態を通知することで、前段からリングバス上に供給されるデータが後段のノードで処理されるために最適な量とタイミングに調節される。その結果、データフローにおいてデータ量が増大する場合にも、前段からのデータ供給は後段でデータが必要なときに行われるため、リングバスの容量を浪費せず性能を落とさずに効率の良いデータフロー制御が可能となる。また、第一の実施形態によれば、データ受信可能状態の通知をするためにリングバスとは別の信号線を設ける必要が無いので、データ処理装置の小型化も可能になる。
【００７４】
［第二の実施形態］
次に、図面を参照しながら本発明に係る第二の実施形態を詳細に説明する。第二の実施形態におけるデータ処理部の構成は、第一の実施形態と同様に、図５に示す構成とする。但し、リングバス６０２上を伝送されるパケットのフォーマットが図９に示すように、第二の実施形態では異なる。図９は、第二の実施形態におけるパケットのフォーマットの一例を示す図である。
【００７５】
具体的には、フィールド１００１が、処理上で後段のデータ処理部のデータ受信可能状態を示すRequestビットを格納する。そして、パケット識別部６０６は、自ノードで処理すべき有効なデータパケットのRequestビットの値をデータ受信可能状態検出部６０８へ送る。これにより、データ受信可能状態検出部６０８ではRequestビットの値に基づいて後段のノードが受信可能か否かを判定し、データ送信制御部６１０でデータの送信を制御する。
【００７６】
一方、受信可能状態を処理上で前段のノードに通知する場合には、データ受信可能状態通知部６１１から通知される情報が、パケット生成部６１２でRequestビットの値としてセットされる。
【００７７】
［第三の実施形態］
次に、図面を参照しながら本発明に係る第三の実施形態を詳細に説明する。第三の実施形態におけるデータ処理部の構成は、第一の実施形態と同様に、図５に示す構成とする。しかし、図１０に示すように、各データ処理部のデータ受信可能状態通知部とデータ受信可能状態検出部とがクロスバスイッチ１１０１で直接接続されている。そして、直接接続された信号線にて受信可能状態の通知を行うものである。
【００７８】
尚、各データ処理部のデータ受信可能状態通知部とデータ受信可能状態検出部との接続形態は、直接接続されているのであれば、クロスバスイッチ以外の方法であってかまわない。
【００７９】
またリングバスとは別の構成で通知用の接続線を設ける場合、実装されているデータ処理部を全て接続する必要はない。例えば、リングバスにデータを投入するデータ取得部を備えたデータ処理部と、処理によってデータ量を増大させることが分かっているデータ処理部と、を接続する形態にすると信号線の数を抑え、効率良く制御することができる。
【００８０】
［第四の実施形態］
次に、図面を参照しながら本発明に係る第四の実施形態を詳細に説明する。第四の実施形態におけるデータ処理部の構成は、第一の実施形態と同様に、図５に示す構成とする。しかし、データ送信間隔レジスタ６１７に複数の値を設定可能である。
【００８１】
第四の実施形態におけるデータ送信制御部６１０では、データ送信数カウンタ６１４の値に応じて複数のデータ送信間隔から対応する値を選択し、図７に示すステップＳ８０４で利用する。従って、データ毎に送信間隔を変更する場合でも最適な間隔でデータを送信することができる。
【００８２】
［第五の実施形態］
次に、図面を参照しながら本発明に係る第五の実施形態を詳細に説明する。第五の実施形態では、検出対象となるデータ処理部のデータ受信可能状態が受信可能である場合に、データの送信可能な期間Ａと送信を抑制する期間Ｂとを繰り返す。
【００８３】
図１１は、第五の実施形態におけるデータ処理部の構成を示すブロック図である。尚、６０１〜６０９、６１１〜６１３は第一の実施形態におけるデータ処理部と同様の機能又は構成である。また、データ送信制御部６１０の機能は同じだが、機構が第一の実施形態とは異なる。
【００８４】
図１１において、レジスタ１２０１はデータの送信可能な期間Ａを設定するデータ送信可能期間設定レジスタである。１２０２はデータの送信を抑制する期間Ｂを設定するデータ送信抑制期間設定レジスタである。１２０３はレジスタに設定された期間Ａと期間Ｂとを交互に繰り返し、データ送信制御部６１０に通知するタイマである。
【００８５】
第五の実施形態におけるデータ送信制御部６１０は、データ受信可能状態検出部６０８が、後段のノードが受信可能であると検出した場合、タイマ１２０３によって通知される周期でデータの送信と抑制を繰り返す。
【００８６】
このように、第五の実施形態ではデータの送信を設定された周期で行うことでデータを規則的に流し、かつ、後段からデータ受信可能状態が通知されることで、適応的に必要なだけのデータを流すことが可能となる。
【００８７】
尚、後段のノードが受信可能状態に切り替わった場合に、タイマ１２０３の動作を初期状態から開始するか、前回中断したところから開始するかは、特に限定しない。
【００８８】
また、データ送信抑制期間設定レジスタ１２０２に設定された送信を抑制する期間Ｂは、データ処理回路６０４によって処理済データ入力部６０９にデータが送られる間隔以上の期間であることが望ましい。さもなければ、必ずデータ送信抑制期間設定レジスタ１２０２に設定した値以上の間隔でデータが送信されるため、後段のノードが受信可能な間隔であることが保障されていることになり、設定しない場合と効果は変わらない。
【００８９】
［第六の実施形態］
次に、図面を参照しながら本発明に係る第六の実施形態を詳細に説明する。第六の実施形態では、受信可能状態の検出対象となるデータ処理部がデータを受信可能である場合に、第五の実施形態で説明したデータ送信間隔の制御に用いたタイマを複数個用いるものである。これにより、複雑なデータ送信間隔の制御を行うことができる。
【００９０】
図１２は、第六の実施形態におけるデータ処理部の構成を示すブロック図である。尚、図１２では、ｎ個のタイマを利用した構成になっている。
【００９１】
レジスタ１３０１〜１３０４はデータ送信可能期間設定レジスタ１〜ｎである。レジスタ１３０２、１３０５はデータ送信抑制期間設定レジスタ１〜ｎである。タイマ１３０３、１３０６はタイマ１〜ｎである。そして、タイマ１３０３、１３０６と、データ送信可能期間設定レジスタ１３０１、１３０４と、データ送信抑制期間設定レジスタ１３０２、１３０５とは、同じ添え字を持つものがグループになっており、それぞれの機能は第五の実施形態で説明した通りである。
【００９２】
データ送信制御部６１０は、データ受信可能状態検出部６０８により後段のノードが受信可能であると検出した場合に、ｎ個のタイマが全てデータ送信可能であるとき、即ち、ｎ個のタイマの論理積をとることでデータ送信タイミングを決定する。
【００９３】
このように、第六の実施形態ではデータの送信を複数のタイマにより求めたタイミングで行うことでデータを流し、かつ、後段からのデータ受信可能状態が通知されることで、適応的に必要なだけのデータを流すことが可能となる。
【００９４】
尚、第六の実施形態でも、後段のノードが受信可能状態に切り替わった場合に、ｎ個のタイマの動作を初期状態から開始するか、前回中断したところから開始するかは、特に限定しない。
【００９５】
第六の実施形態では、第五の実施形態とは異なり、複数のタイマの論理積によって複雑なデータの送信間隔制御を実現する。そのため、データ処理回路６０４が処理済データ入力部６０９にデータを送る間隔よりもデータ送信抑制期間設定レジスタに設定された送信を抑制する期間を短く設定した場合、意図したデータ送信間隔ではデータを送信できなくなる。従って、各データ送信抑制期間設定レジスタに設定された送信を抑制する期間は、データ処理回路６０４が処理済データ入力部６０９にデータを送る間隔以上の期間に設定する。
【００９６】
前述の各実施例において、各工程は、ネットワーク又は各種記憶媒体を介して取得したソフトウエア（プログラム）をコンピュータ等の処理装置（ＣＰＵ、プロセッサ）にて実行することでも実現できる。
【図１】
2010198226.tif 000003
【図２】
2010198226.tif 000004
【図３】
2010198226.tif 000005
【図４】
2010198226.tif 000006
【図５】
2010198226.tif 000007
【図６】
2010198226.tif 000008
【図７】
2010198226.tif 000009
【図８】
2010198226.tif 000010
【図９】
2010198226.tif 000011
【図１０】
2010198226.tif 000012
【図１１】
2010198226.tif 000013
【図１２】
2010198226.tif 000014