(57)【要約】【課題】  複数のデータ処理部がリング状のバスに接続された情報処理装置において、利用するデータ処理部の順番の変更やデータ量の変動に対しても安定して効率のよい処理を実現するデータフローの制御。【解決手段】  処理上の前段に位置するデータ処理部が、処理上の後段に位置するデータ処理部がデータを受信可能な量とタイミングで送信するように、データの送信を制御するデータ送信制御部を備える。【選択図】  図５
2010218253.tif 000002
【特許請求の範囲】
【請求項１】
複数のモジュールがバスを介してリング状に接続され、前記リング上を単一方向へ流れるパケットを前記モジュールが所定の順番で処理する情報処理装置において、
前記モジュールは、
前記バスを介して前記リングの第１の方向から受信するパケットを第２の方向へ送信する通信手段と、
前記第１の方向から受信したパケットのうち当該モジュールにおいて処理すべきパケットを処理パケットとして識別する識別手段と、
前記通信手段と一対一で接続され、前記識別手段の識別した処理パケットを処理する処理手段とを有し、
前記通信手段が前記第２の方向へ送信する複数のパケットのうち前記処理手段が処理したパケットについて、前記所定の順番において後段の処理をするモジュールの処理パケットあたりの処理時間以上の間隔を空けて、前記通信手段が送信することを特徴とする情報処理装置。
【請求項２】
前記所定の順番において後段の処理をするモジュールのパケットあたりの処理時間以上のデータ送信間隔を示す値を記憶するレジスタを更に有することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
複数のモジュールがバスを介してリング状に接続され、前記リング上を単一方向へ流れるデータを前記モジュールが所定の順番で処理する情報処理装置において、
前記モジュールは、
前記バスを介して前記リングの第１の方向から受信するデータを第２の方向へ送信する通信手段と、
前記受信したデータのうち当該モジュールにおいて処理すべきデータを処理データとして識別する識別手段と、
前記通信手段と一対一で接続され、前記識別手段の識別した処理データを処理する処理手段とを有し、
前記通信手段が前記第２の方向へ送信する複数のデータのうち前記処理手段が処理したデータを第１の量だけ送信する度に、前記通信手段が第２の量のデータを送信するに相当する間、前記処理手段の処理したデータを当該通信手段が送信することを停止することを特徴とする情報処理装置。
【請求項４】
送信数を保持するレジスタを更に有し、前記処理部の処理したデータを格納するパケットを送信した数と当該送信数とを比較することで前記通信手段は前記第１、第２の量のデータを判断することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
送信期間を保持するレジスタを更に有し、前記処理部の処理したデータを送信し続けた期間と当該送信期間とを比較することで前記通信手段は前記第１、第２の量のデータを判断することを特徴とする請求項３に記載の情報処理装置。
【請求項６】
複数のモジュールがバスを介してリング状に接続され、前記リング上を単一方向へ流れるパケットを前記モジュールが所定の順番で処理する情報処理装置における情報処理方法であって、
通信手段が、前記バスを介して前記リングの第１の方向から受信するパケットを第２の方向へ送信する通信工程と、
識別手段が、前記第１の方向から受信するパケットのうち当該モジュールにおいて処理すべきパケットを処理パケットとして識別する識別工程と、
前記通信手段と一対一で接続され、前記識別手段の識別した処理パケットを処理手段が処理する処理工程とを有し、
前記通信手段が前記第２の方向へ送信する複数のパケットのうち前記処理手段が処理したパケットについて、前記所定の順番において後段の処理をするモジュールの処理パケットあたりの処理時間以上の間隔を空けて、前記通信工程で送信することを特徴とする情報処理方法。
【請求項７】
複数のモジュールがバスを介してリング状に接続され、前記リング上を単一方向へ流れるデータを前記モジュールが所定の順番で処理する情報処理装置における情報処理方法であって、
通信手段が、前記バスを介して前記リングの第１の方向から受信するデータを第２の方向へ送信する通信工程と、
識別手段が、前記第１の方向から受信するパケットのうち当該モジュールにおいて処理すべきデータを処理データとして識別する識別工程と、
前記通信手段と一対一で接続され、前記識別手段の識別した処理データを処理手段が処理する処理工程とを有し、
前記通信手段が前記第２の方向へ送信する複数のデータのうち前記処理手段が処理したデータを第１の量だけ送信する度に、前記通信手段が第２の量のデータを送信するに相当する間、前記処理手段の処理したデータを当該通信手段が送信することを前記通信工程で停止することを特徴とする情報処理方法。
【請求項８】
複数のモジュールがバスを介してリング状に接続され、前記リング上を単一方向へ流れるデータを前記モジュールが所定の順番で処理する情報処理装置で動作するプログラムであって、
前記モジュールは、
前記バスを介して前記リングの第１の方向から受信するパケットを第２の方向へ送信する通信手段と、
前記第１の方向から受信したパケットのうち当該モジュールにおいて処理すべきパケットを処理パケットとして識別する識別手段と、
前記通信手段と一対一で接続され、前記識別手段の識別した処理パケットを処理する処理手段とを有し、
制御処理手段によって、
前記各モジュールの通信手段が前記第２の方向へ送信する複数のパケットのうち前記処理手段が処理したパケットについて、前記所定の順番において後段の処理をするモジュールの処理パケットあたりの処理時間以上の間隔を示す値を各モジュールに設定することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の処理モジュールをバスによってリング状に接続している情報処理装置、該情報処理装置における情報処理方法およびプログラムに関する。
【背景技術】
【０００２】
従来、高速なパイプライン処理を実現するため、パイプライン処理となる一連のデータ処理を分割して複数のモジュールに割り当て、このモジュールを処理の流れ順にバスで接続する方法がある。
【０００３】
そして、モジュールをバスでリング状に接続した場合に、バスのトラフィックを抑える方法として、モジュールの受信負荷を判定し、負荷が高い場合に他の処理モジュールから受信するデータを制限する方法がある。
【０００４】
例えば、モジュールがメッセージの送信やトークンを消去／再生をすることでその他のモジュールから受信するデータを制限し、バスのトラフィックを抑える方法がある。（特許文献１、特許文献２）
また、リング状のバスに接続されたモジュールを用いてパイプライン処理をさせる場合に、リング状バスを周回するデータに衝突しないようなタイミングでデータを投入して、全体の処理の効率を上げる方法がある。（特許文献３）
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平２−２８３１４２号公報
【特許文献２】特開平１０−２２８４４５号公報
【特許文献３】特許第２５４１６９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１や特許文献２の技術ではリングバスのデータの流れを止めるので、他のモジュールが並列的に処理できる状態にあってもそのモジュールへのデータの供給まで止め、全体の処理速度が低下することがある。
【０００７】
また、特許文献３の技術をリングバスに用いる場合には、全体の処理効率が低下することがある。その理由の１つとして、処理に必要なデータが揃うまでと、揃った後では適切なデータの供給のタイミングが異なることが挙げられる。
【課題を解決するための手段】
【０００８】
上記課題を解決するために本発明は、複数のモジュールがバスを介してリング状に接続され、前記リング上を単一方向へ流れるパケットを前記モジュールが所定の順番で処理する情報処理装置において、前記モジュールは、前記バスを介して前記リングの第１の方向から受信するパケットを第２の方向へ送信する通信手段と、前記第１の方向から受信したパケットのうち当該モジュールにおいて処理すべきパケットを処理パケットとして識別する識別手段と、前記通信手段と一対一で接続され、前記識別手段の識別した処理パケットを処理する処理手段とを有し、前記通信手段が前記第２の方向へ送信する複数のパケットのうち前記処理手段が処理したパケットについて、前記所定の順番において後段の処理をするモジュールの処理パケットあたりの処理時間以上の間隔を空けて、前記通信手段が送信することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、複数のモジュールをリング状にバス接続した情報処理装置において、バスを周回するデータを停滞させずに、バスのトラフィックの増加を抑制することで効率的なデータ処理を実現できる。
【図面の簡単な説明】
【００１０】
【図１】リングバス状の通信処理部の概略構成例を示す図である。
【図２】パケットのフォーマットの例を示す図である。
【図３】リングバスに接続された処理部を有する画像処理装置の概略構成を示す図である。
【図４】データフローの動作状態を示す図である。
【図５】実施例１の画像処理装置における処理部の概略構成を示す図である。
【図６】実施例１のデータ送信制御部の処理を示すフローチャートである。
【図７】実施例２の画像処理装置における処理部の概略構成を示す図である。
【図８】実施例２のデータ送信制御部の処理を示すフローチャートである。
【図９】実施例３の画像処理装置における処理部の概略構成を示す図である。
【図１０】実施例４の画像処理装置における処理部の概略構成を示す図である。
【図１１】画像処理装置の概略構成を示す図である。
【図１２】制御処理部による画像処理部の設定処理を示すフローチャートである。
【発明を実施するための形態】
【００１１】
＜参考例＞
まず、複数の情報処理部をリング状にバス接続した情報処理装置において、処理速度が低下する一例について説明する（以下、リング状のバスをリングバスと称す）。
【００１２】
図１は、通信路（以下、バス）と情報処理部（以降、データ処理部）をつなぐ通信処理部の構成を示すものである。入力データ受信部１０１は、リングバス上を流れるデータパケットを受信する。入力データ識別部１０２は、入力されたデータパケットの制御情報を確認し、入力されたデータが、自ノードにおいて処理すべきデータかどうかを識別する。
【００１３】
出力データ出力部１０３は、入力データ識別部１０２において自ノードにおいて処理すべきデータであると判断されたデータを、データ処理部に対して送出する。処理済みデータ入力部１０４は、自ノードのデータ処理部において処理済のデータの入力を受け取る。
【００１４】
出力データ生成部１０５は、識別部１０２において自ノードで処理すべきデータでないと判断されたデータや、有効なデータを含んでいないと判断された空パケットや、入力部１０４から送られる、処理済であってバス上に出力する必要のあるデータなどから、出力データを生成する。出力データ送信部１０６は、出力データ生成部１０５が生成した出力データをリングバスに放出する。
【００１５】
図２は、このようなデータ通信処理部のリングバスにおいて送受信されるパケットのデータ構造を示したものである。
【００１６】
フィールド２０１は、データの処理順番を示すカウンタである。リング状のデータバスにおいては、連続する未処理データを含むデータパケットの一部がリング内を周回することがある。従って、通信処理部が受信するデータが、必ずしも対応するデータ処理部で最初に処理されるべきデータであるとは限らない。よって、このようなカウンタをデータに付随して持たせることで、入力された順など、正しい処理順番に従って処理を実行させる事が可能となる。なお、対応するデータ処理部とは、通信処理部がリングバスを介さずに直接通信可能なデータ処理部の事を指すものとする。
【００１７】
フィールド２０２はこのデータパケットが保持しているデータが処理されるべき有効データであることを示すフラグである。これはすなわち、パケットが現在使用中であるかどうかを示すフラグと同じ意味を持つ。以下、このフラグをバリッドビットと呼称する。フィールド２０３は、このパケットが保持しているデータが何らかの理由で、処理すべきデータ処理部によって受け取られなかったことを示すフラグである。通常のパイプライン接続における、前段へのデータ供給停止要求ビット（ｄｉｓａｂｌｅ信号）と同じ意味を持つ。以下、このフラグをストールビットと呼称する。
【００１８】
フィールド２０４は、このデータを最後に処理したデータ処理部のＩＤである。データ通信処理部では、あらかじめ外部から設定された待ち受けＩＤと、このデータパケット上のＩＤとを比較し、一致した際に処理を行う。またフィールド２０５は、データを格納する。
【００１９】
リングバスを流れるパケットの総数はほぼ一定である、即ち、空のパケットと有効なパケットの和はほぼ一定であり、この一定数のパケットがリングバスを周回し続けている。空のパケットは格納するデータが無効とされたパケットであり、有効なパケットはデータやコマンドを格納しているパケットである。
【００２０】
図３（ａ）は、トークンパッシング方式によって通信路を構成した画像処理装置の構成の一例を示す図である。
【００２１】
取得部３０１は、外部記憶装置などから処理すべきデータを取得する。入力通信処理部３０２は、取得されたデータをリング状に構成されている通信路に供給する処理を行う。データ処理部３０３は、供給されたデータに対して所定の処理を行う。通常、情報処理を行う上で処理部が外部と通信する事のないスタンドアローンな状態を取る事はない。それは、大容量の記憶回路を処理部の外に設け、処理部内には高速で小容量の記憶回路しか持たせないためである。しかし、本明細書では処理部の通信処理について詳細に説明するために、処理部からデータ処理部と通信処理部を独立させて説明している。夫々のデータ処理部は対応する通信処理部と一対一になっているものとする。
【００２２】
通信処理部３０４は、リング状に構成された通信路から、データ処理部３０３で処理すべきデータ（処理パケット）を通信路から選別して取り込む。この構成においては、データ処理部３０３および通信処理部３０４を有する処理部３０８（モジュール）がリングバス３０７に１つ以上接続されている。
【００２３】
出力通信処理部３０５は、処理済のデータを外部の記憶装置などに出力するため、リング状の通信路上から処理済のデータを選択して取り込む。出力部３０６は、通信処理部３０５により取り込まれた処理済のデータを外部記憶装置などに出力する。リングバス３０７は、これらの通信処理部を通信可能に連結するリング状のデータバスである。
【００２４】
図３（ｂ）は、図３（ａ）に示した構成において、処理速度が低下した状態を説明する図である。
【００２５】
ここで、リング状の通信路（バス）は１単位時間（以下、１サイクルと称す）にひとつずつ、データを次の通信処理部に送るものとする。データ処理部４０１は、ひとつのデータを受信してから３サイクル後に結果データを送信可能となり、処理中は次のデータを受け付けられないデータ処理部とする。
【００２６】
通信処理部４０２は、該通信処理部４０２に対応するデータ処理部４０１で処理すべきデータをリング状バスから取得する。ここで、データ処理部４０１が１番目のデータ４０３を処理している最中に、次のデータ４０４がデータ処理部４０１の通信処理部４０２に入力されたとする。すると、通信処理部４０２は、２番目のデータ４０４をデータ処理部４０１に送らず、次のサイクルに隣の処理部に送るか、データ４０４を消去してデータ取得部３０１に対して再送要求を通知する。ここで、２番目のデータ４０４が単にリングバス上を周回すると、再び通信処理部４０２に戻ってくるまでに、リングバスに接続されている通信処理部の数に相当するサイクル数を必要とする。
【００２７】
図３（ｂ）に示した構成では、通信処理部は６つ接続されているため、データ４０４が戻ってくるまでに６サイクルの時間を必要とする。従って、データ処理部４０１は３サイクルで処理を終了して１番目のデータ４０３を放出し、次のデータの入力待ちとなるため、最低でも６−３＝３サイクルの遅延時間が生じる。また、３番目以降のすべての入力データについて起こるとした場合、その入力データの総数をＮとするならば、本来データ処理部４０１は３サイクルに１データを処理できることから３Ｎサイクルで終了する。しかし、１データにつき３サイクルの遅延時間が生じ、２倍の６Ｎサイクルを要する。
【００２８】
また、特許文献１に記載の技術をこの画像処理装置へ適用する場合、受け取れなかったデータ４０４はデータ処理部に送信できなかった通信処理部によって消去される。そして、データ供給元であるデータ取得手段３０１は、データ４０４が一定期間内に戻ってこないことを確認したうえで再度データを送出する。
【００２９】
しかし、特許文献１の技術では、すでにデータ４０４に続く次のデータ４０５を取得・送出していた場合には、外部からのデータの読み取りをすでに送出したデータ分さかのぼって再取得して送出する必要が生じ、外部へのアクセスが増加する。
【００３０】
また、特許文献２に記載の技術を適用する場合、通信手段４０２で受け取れなかったデータ４０４は、データ内容を破棄され、受け取れなかったことを通知するトークンとしてリングバス上に流される。
【００３１】
しかし、特許文献２の技術では、通知トークンを受け取ってから再度送出するデータを取得する動作を行った場合、遅延時間はさらに長くなってしまう。
【００３２】
また、特許文献３には、前のデータが処理されている間であってもリングバス上のデータと衝突しないタイミングで次のデータを入力端から供給するという技術が開示されている。
【００３３】
しかし、特許文献３は、データ処理部が複数のデータを演算する場合、同一のタイミングで入力されたデータにより出力が決まることを想定している。そのため、出力データの生成のために複数のデータの受信を必要とする場合には、受信するデータの個数分のバスを用意しないと以下に説明するように、適用することで更に処理速度が低下することがある。
【００３４】
特許文献３の技術について、図４を用いて詳細に説明する。図４は、図３に示した装置と同様な構成において、データ処理部を２つ備えた装置である。データ処理部５０１に続いてデータ処理部５０３がデータを処理した後に、再びデータ処理部５０１が処理してから結果を得る装置とする。データ処理部５０１は１つのデータを３サイクルで処理して出力するデータ処理部で、データ処理部５０３は４つのデータが入力されてから３サイクル毎にデータを出力するデータ処理部であるとする。図４でのデータ５０５〜５０８は、アルファベットが装置へ投入した順、数字はデータ処理部によって処理をされた数を表す。
【００３５】
このとき、図４（ａ）のデータ処理部５０３が４つ目のデータ５０７を受信するまでは、データ処理部５０３が受信可能な一定の間隔でデータをデータ取得部３０１から投入することで、データは効率よく処理される。しかし、図４（ｂ）で示したような、データ処理部５０３が結果を出力可能となる４つ目のデータ５０７を受信した後でさらに３サイクルが経過すると、データ５０５が出力可能となっている。このとき、データ５０８が装置内に投入されてデータ５０１での処理が完了していた場合、データ処理部５０３ではデータ５０７が出力されなければ、データ５０８はリングを周回することになる。
【００３６】
ここで、特許文献３で提案されている技術において、データ処理部５０３がデータを漏らすことなく受信できるようにすると、データ処理部５０３のデータ処理部の処理時間を４つのデータの処理が完了するまでとしなければならない。つまり、データ取得部３０１からのデータの投入間隔は少なくともデータ処理部５０３がデータを受信可能な３×４＝１２以上にする必要があるため、図４（ａ）のデータ処理部５０３が出力を得るための４つのデータを受信している場合には効率が悪くなってしまう。
【００３７】
＜実施例１＞
以下に本発明の一実施例である画像処理装置について説明する。なお参考例と同一機能を有する構成には同一符号を付すとともに、構成的、機能的にかわらないものについてはその説明を省略する。なお、本実施例は、トークンパッシング方式とは別の通信方式となっており、トークンパケットを用いる必要はない。
【００３８】
図１１は、本発明の一実施例である画像処理装置の概略構成を示すものである。制御処理部１１０１はＣＰＵやＭＰＵなどの処理回路である。画像処理部１１０２は、リングバスで接続されている複数の処理部を有する画像処理部である。
【００３９】
ＲＡＭ１１０３は、処理する前の入力画像データや処理後の出力画像データ、又は、画像処理部１１０２の設定パラメータに関するデータなどを格納する読み書き可能なメモリである。ＲＯＭ１１０４は、制御処理部１１０１や画像処理部１１０２の処理手順や、設定パラメータ等の定数などを保持可能な読み出し可能なメモリである。
【００４０】
制御処理部１１０１において、ＲＯＭ１１０４から読み出されたプログラムにしたがって、システムの制御ならびに画像処理部１１０２への指示等を行う。画像処理部１１０２は、処理装置１１０１からの指示に従って画像処理を実行する。その際に、ＲＡＭ１１０３にあらかじめ格納されている入力画像データを読み出して処理を行い、処理結果を再びＲＡＭ１１０３に書き込む。
【００４１】
図１２に制御処理部１１０１による画像処理部１１０２の設定処理の処理手順を示す。画像処理制御が開始されると、以下のステップに従って処理を実行する。ステップ１２０１で制御処理部１１０１は、ＲＯＭ１１０４から画像処理部１１０２のデータ処理部の処理順番を読み出す。ステップ１２０２で制御処理部１１０１は、ＲＯＭからデータ処理部に与える処理パラメータを読み出す。ステップ１２０３で制御処理部１１０１は、読み出したデータ処理順番及び処理パラメータを用いて画像処理部１１０２の制御パラメータを算出する処理を行う。
【００４２】
ステップ１２０４で制御処理部１１０１は、ステップ１２０３で算出した制御パラメータを用いて、画像処理部１１０２に対する設定処理を行うステップ１２０５で制御処理部１１０１は、画像処理部１１０２に対して処理開始の指示を行う。ステップ１２０６で制御処理部１１０１は、画像処理部１１０２の設定の完了を確認し、
ステップ１２０７において、設定処理が完了したと判断した場合には、処理を終了する。ここで、処理が未終了であった場合には、再びステップ１２０６へ戻り、終了確認処理を継続する。
【００４３】
本実施例における画像処理部１１０２の概略構成は図３に示すものと同様である。
【００４４】
本実施例では、図３に示すように、通信処理部とデータ処理部とを有するモジュールが並列に実行可能なようにパイプライン接続されている。さらに、その終端と先端もバスによって接続され、リング状になっている。
【００４５】
このようなリングバスにおいては、パケット８０１に示すように、リング上にはデータを保持する概念上のパケットが有限の数だけ存在する。そして、パケットに処理するデータを格納して単一方向に周回させることによって、所望のデータ処理部にデータが転送される。本実施例においてパケットは、図２に示すフォーマットを用いる。
【００４６】
各通信処理部は、あらかじめ自身の保持するレジスタ等に設定されたＩＤとパケット上のデータに付帯するＩＤとを比較し、それらが同一である場合には、そのパケットのデータを取り込む。その後、データ処理部がパケットのデータを処理し、処理済みのデータはデータ処理部から通信処理部に送られる。次に通信処理部は、データを保持していない空のパケットに処理済のデータと新たなＩＤとを格納することによってデータをバス上に出力する。このような処理を各通信部が処理することで、一連の意図された順番でパイプライン処理が実行される。
【００４７】
さらに画像処理装置の処理の種類を切り替える場合には図１２の処理を再度実施することで切り替えることができる。この際パイプライン処理で用いる処理部の順番や、各処理部の処理内容を容易に切り替えることができる。
【００４８】
図５は本実施例における画像処理装置の有する処理部６０１の概略構成を示す。リングバス６０２は処理部６０１を通信可能に接続するバスである。通信処理部６０３はリングバスを用いて他の処理部と通信を行う。データ処理部６０４は割り当てられたアルゴリズムで通信処理部６０３から受け取ったデータを処理する。入力データ受信部６０５はリングバス上を流れるデータパケット（詳細には、第１の方向側の通信処理部からのパケット）を受信する。入力データ識別部６０６は入力データ識別部６０５が受信したパケットを確認し、パケットに格納されているデータが自ノードにおいて処理すべきかどうか、パケットが有効であるかどうかを識別する。処理データ出力部６０７は入力データ識別部６０６が自ノードにおいて処理すべきデータであると判断したパケットからデータやコマンドを抽出し、データ処理部６０４に出力する処理データ出力部である。
【００４９】
処理済データ入力部６０８はデータ処理部６０４からのデータやコマンドの入力を受け取る。データ送信間隔カウンタ６０９は前回のデータが送信されてからの間隔に関する値を保持する。データ送信間隔レジスタである６１０はデータを送信する間隔に関する値を保持する。データ送信制御部６１１は、データ送信制御部が処理済データ入力部６０８から受けたデータを出力データ生成部に送信する間隔をデータ送信間隔レジスタ６１０の設定値以上になるように制御する。出力データ生成部６１２は入力データ識別部６０６が自ノードで処理すべきでないと判断した入力データや、データ送信制御部６１１から送られるデータから、送信パケットを生成する。出力データ生成部６１２はデータを空パケットに格納させ、有効にして送信パケットを生成する。出力データ送信部６１３はデータ送信制御部６１２が生成した送信パケットをバス上（詳細には、第２の方向側の通信処理部）に送信する。
【００５０】
本実施例において、リングバス６０２を周回するパケットは図２に示したフォーマットを用いる。フィールド２０４に格納するＩＤは、データパケットが所望の処理順番でデータ処理部の間で受け渡され、コマンドパケットが所望のデータ処理部に渡される目的を満たすものであればフォーマットは限定しない。そのため、本発明でのフィールド２０４に格納するＩＤは、データを最後に処理したデータ処理部のＩＤでなく、例えばパケットの送り手と受け手の識別子の組合せを割り当てられていてもよい。また、データパケットとコマンドパケットとでフィールド２０４に格納するＩＤのフォーマットが異なっていてもよい。
【００５１】
次に、データ送信制御部６１１が行うデータ送信の制御処理について、図６に示すフローチャートを用いて説明する。まず、ステップ７０１でデータ送信制御部６１１が送信可能なデータが処理済データ入力部６０８にあるかを確認し、データが無い場合にはステップ７０２とステップ７０１を繰り返す。データがある場合には、ステップ７０３でデータ送信間隔カウンタ６０９をインクリメントさせる。ステップ７０４でデータ送信間隔カウンタ６０９のカウントの値とデータ送信間隔レジスタ６１０の値とを比較する。比較によって、データ送信間隔レジスタ６１０の値がデータ送信間隔カウンタ６０９の値以上になるまでステップ７０３とステップ７０４を繰り返す。ステップ７０４において、データ送信間隔設定レジスタ６１０に設定した間隔を経過したと判断したら、続くステップ７０５でデータを送信し、ステップ７０６でデータ送信間隔カウンタ６０９の値をリセットする。ステップ７０７では処理する一連のデータにおける最後のデータまで処理したかを確認し、終わっていない場合はステップ７０１から繰り返す。処理する一連のデータとは、１ページ分の画像データであってもよいし、１つの画像データを複数のブロックに分割した内の１ブロック等でもよい。
【００５２】
データ送信間隔レジスタ６１０は、設定する対象の処理部が１つ後の処理をする処理部が処理する可能性の高いパケットを送信する間隔を示す値を送信間隔として保持する。この送信間隔は、１つ後の処理をする処理部の処理時間以上の間隔を示すものとする。また、なるべく短い時間であることが好ましい。処理時間とは、処理部が１つのパケットを供給し、割り当てられたアルゴリズムに従ってこのパケットに対する処理を完了して、次のデータを受信可能となるまでに概念的に必要な時間とする。例えば、２つのパケットを受信して１つのパケットを送信する処理部においては、２つのパケットを受信して１つのパケットの送信を完了するまでの時間の半分となる。一方で、１つのパケットを受信して２つのパケットを送信する処理部においては１つのパケットを受信して２つのパケットの送信を完了するまでの時間となる。処理部が以上の設定により、本実施例のように処理中は次のパケットを受け付けられない処理部が処理できる量のパケットを送れるようになるため、通信路のトラフィックが最適化される。
【００５３】
また、この送信間隔は各データ処理部の性能や実行する処理の種類に大きく依存する。ここで、各処理部の送信間隔を図１２のフローで制御処理部１１０１が設定する方法を以下に説明する。具体的には、利用する処理部の夫々における送信間隔を、その処理部より処理順番が１つ後の処理部に設定される処理部のパケットあたりの処理時間以上の長さを有する間隔に設定する。従って、制御処理部１１０１は処理順番上の最後の処理部から最初の処理部へ、順に送信間隔を設定する事が好ましい。ここで、本実施例ではデータ出力部３０６は処理部ではないので処理時間を考慮しなくてもよいが、データ出力部のパケットあたりの受信時間と送信時間との合計を処理時間として考慮するようにしてもよい。
【００５４】
このように実施例１では、各処理部が送信するパケットの内、後段の処理部が処理するであろうパケットを、後段の処理部のパケットあたりの処理時間以上の間隔を空けて送信する。従って、リングバスに出力するデータを処理に必要なものに絞り、効率的にデータを流すことができる。ここで、１つ後段の処理部が処理しないパケットはこの制約を受けないので、リングバスのパケットの流れを停滞させることはない。
【００５５】
また、データ処理部３０４、データ取得部３０１およびデータ出力部３０６はリングバスから取得するコマンドパケットに基づいて処理を行うようにしてもよい。この場合、単一のバスで時間をずらしてデータ処理部へデータとコマンドを供給できるため物理的にバスを減らし、情報処理装置の回路をより小型にできる。
【００５６】
＜実施例２＞
本実施例ではデータ量の変動に適応的なフロー制御を行う画像処理装置について説明する。実施例２では、処理部が転送方向（第２の方向）へ送信する複数のデータのうちこの処理部が処理したデータをデータ送信数（第１の量のデータ数）だけ送信する度に、通信処理部が停止期間（第２の量のデータを送信するに相当する）の間、この処理部の処理したデータを通信処理部が送信することを抑制するようにする。実施例１と同一機能を有する構成や工程には同一符号を付すとともに、構成的、機能的にかわらないものについてはその説明を省略する。
【００５７】
図７は実施例２の画像処理装置における処理部の概略構成を示す図である。データ送信数カウンタ８０１は、データ処理部６０４で処理したデータを送信した回数を保持する。データ送信数は送信したパケットの数に相当する。データ連続送信数レジスタ８０２はデータを連続して送信する回数を保持する。データ送信停止期間レジスタ８０３は、データ連続送信数レジスタ８０２に設定された数のデータを送信し終えた後に、データの送信を抑制する期間を示す値を保持する。データ送信制御部６１１が、データ送信数カウンタ８０１、データ連続送信数レジスタ８０２およびデータ送信停止期間レジスタ８０３に設定した値に基づいてデータの送信を制御することが実施例２の特徴である。
【００５８】
実施例２におけるデータ送信制御部６１１が行う制御処理を図８のフローチャートを用いて説明する。まず、ステップ９０１で処理済データ入力部６０８に送信可能なデータがあるかを確認する。無い場合にはステップ９０１とステップ９０２とを繰り返す。データがある場合には、ステップ９０３でデータ送信数カウンタ８０１の値がデータ連続送信数レジスタ８０２の値と等しいかどうかを調べる。等しい場合には、ステップ９０４でデータ送信間隔カウンタ６０９の値をインクリメントし、前回のデータの送信終了から設定されたデータ送信停止期間が経過するまでステップ９０４、９０５を繰り返す。設定されたデータ送信停止期間が経過すると、ステップ９０８でデータ送信数カウンタ８０１を０にリセットする。
【００５９】
ステップ９０３で等しくない場合には、ステップ９０６でデータ送信間隔カウンタをインクリメントし、ステップ９０７でデータ送信間隔カウンタ６０９の値とデータ送信間隔レジスタ６１０に設定された値とを比較する。そして、データ送信間隔カウンタ６０９の値がデータ送信間隔レジスタ６１０の値以上になるまでステップ９０６を繰り返す。ステップ９０７でデータ送信間隔以上の時間が経過するか、ステップ９０８を終えると、続くステップ９０９でデータを送信する。データを送信し終えると、ステップ９１０でデータ送信間隔カウンタをリセットし、ステップ９１１でデータ送信数カウンタ８０１の値をインクリメントする。ステップ９１２では処理する一連のデータにおける最後のデータまで処理したかを確認し、終わっていないならばステップ９０１に戻る。
【００６０】
このように、実施例２では所定のデータ数を連続して送信した後に送信を停止する期間を設定することで、リングバスに流れるデータ量が処理性能を低下させるほど増加する事を抑制する。
【００６１】
＜実施例３＞
本実施例では、データを送信する期間Ａ（第１の量のデータを送信するに相当する期間）と送信を抑制する期間Ｂ（第２の量のデータを送信するに相当する期間）とを交互に繰り返す複数の処理部を有する画像処理装置について説明する。なお、実施例１、２と同一機能を有する構成や工程には同一符号を付すとともに、構成的、機能的にかわらないものについてはその説明を省略する。
【００６２】
図９は本実施例における画像処理装置の処理部の概略構成を示す図である。データ送信可能期間設定レジスタ１００１は、データの送信可能な送信期間の長さを示す値を設定するレジスタである。データ送信抑制期間設定レジスタ１００２は、データの送信を抑制する抑制期間の長さ示す値を設定するレジスタである。タイマ１００３はデータ送信可能期間設定レジスタ１００１の値とデータ送信抑制期間設定レジスタ１００２の値に基づいて送信期間と抑制期間切り替えるタイミングをデータ送信制御部６１０に通知する。本実施例の６１１データ送信制御部は、タイマ１００３によって通知される周期でデータの送信と抑制を繰り返す。
【００６３】
このように、実施例３では、データの送信を設定された周期で行うことでデータを規則的に流し、各データ処理部に必要なだけのデータを必要なタイミングで供給ことを可能にする。あるデータ処理部が入力データを拡大して出力データを生成する場合を例にとると、拡大している際にはデータを供給しなくても拡大が終了したあとの供給が遅れなければ最大の処理効率で動作する。そこで、この拡大の周期にあわせて処理の順番で前段からのデータが供給されるようにデータ送信可能期間設定レジスタ１００１とデータ送信抑制期間設定レジスタ１００２の値を設定する。これにより、データ量を変化させるデータ処理部がある場合であっても、その変化周期に合わせて効率の良いデータ転送が可能となる。
【００６４】
なお、図１０に示すように、データ送信可能期間設定レジスタ１１０１、データ送信抑制期間設定レジスタ１１０２およびタイマ１１０３を夫々ｎセット用意し、ｎ個のタイマがデータ送信可能を示すときを送信タイミングとしてもよい。すなわち、ｎ個のタイマの論理積をとることでデータ送信タイミングとする。
【００６５】
前述の各実施例の説明では画像処理装置を用いて説明しているが、本発明は画像処理に限られるものではない。リングバスに接続された複数の処理部で、順番に処理を実行する情報処理に適用しても前述の効果を得られる。上述の実施例で用いたデータ処理装置の各部の概略構成図は、回路や機能手段の接続関係を説明するためのものであって各構成の位置関係を制限するものではない。
【００６６】
また、前述の各実施例ではパケットの長さを規定していないが、パケットの長さを所定長とすることで、各モジュールに設定する送信間隔（送信期間）などに尤もらしい値を設定できるようになる。
【００６７】
また、前述の各実施例の処理は、複数のハードウェアとソフトウエアの協同によって実現するようにしてもよい。この場合、ネットワーク又は各種記憶媒体を介して取得したソフトウエア（プログラム）をコンピュータ等の処理装置（ＣＰＵ、プロセッサ）にて実行することで実現できる。
【００６８】
また、本発明は前述した実施形態の機能をコンピュータに実現させるプログラムを記憶した記憶媒体を、システム或いは装置に供給することによって実現してもよい。
【符号の説明】
【００６９】
６０１  データ処理部
６０２  リングバス
６０３  通信処理部
６０４  データ処理回路
６０５  入力データ受信部
６０６  入力データ識別部
６０７  処理データ出力部
６０８  処理済データ入力部
６０９  データ送信間隔カウンタ
６１０  データ送信間隔レジスタ
６１１  データ送信制御部
６１２  出力データ生成部
６１３  出力データ送信部
【図１】
2010218253.tif 000003
【図２】
2010218253.tif 000004
【図３】
2010218253.tif 000005
【図４】
2010218253.tif 000006
【図５】
2010218253.tif 000007
【図６】
2010218253.tif 000008
【図７】
2010218253.tif 000009
【図８】
2010218253.tif 000010
【図９】
2010218253.tif 000011
【図１０】
2010218253.tif 000012
【図１１】
2010218253.tif 000013
【図１２】
2010218253.tif 000014