(57)【要約】【課題】  リングバスに接続された処理モジュールにおいて予め設定された順序でデータ処理を行う情報処理装置において、入力するデータによって生じるリングバスに生じるデータ量を考慮しないと、リングバス上の処理モジュールが保持可能なデータ量を超えてしまい、データの衝突が頻繁に発生し、リングバスの処理効率が低下する。【解決手段】  処理に用いる処理部がリングバスに対して出力するデータ量の総和が、リングバス上の処理モジュールが保持を許容される最大のデータ量を超えないようにリングバスに入力するデータ量を制御する。【選択図】  図１
2010262439.tif 000002
【特許請求の範囲】
【請求項１】
複数の処理モジュールと、
前記複数のモジュールをリング状に接続し一方向にデータを周回させるリングバスと、
前記リングバスに入力するデータによって前記複数の処理モジュールの保持することになるデータ量が、前記複数の処理モジュールが保持することを許容するデータ量以下になるようにデータを前記リングバスに入力する入力手段と
を有することを特徴とする情報処理装置。
【請求項２】
各処理モジュールの処理内容を示す情報に基づいて、入力するデータによって前記複数の処理モジュールが保持することになるデータ量を予測する第１の算出手段を更に有することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記処理モジュールは、前記リングバスの上流側から受信するデータを前記リングバスの下流側へ送信する通信手段と、前記通信手段と一対一で接続され、当該通信手段の受信するデータを処理する処理手段とを有し、
前記第１の算出手段は、前記複数の処理モジュールが保持することになるデータ量を、前記通信手段が保持することになるデータ量に基づいて予測することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
一連の処理において、処理上で連続する処理モジュールの位置関係を示す情報に基づいて前記複数の処理モジュールが保持することを許容されるデータ量を算出する第２の算出手段を更に有することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記位置関係を示す情報は、前記一連の処理において連続してデータを処理する２つの処理モジュールの間にある処理モジュールの個数を示すことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記第２の算出手段は、各処理モジュールの性能を示す情報に基づいて前記複数の処理モジュールが保持することを許容されるデータ量を算出することを特徴とする請求項４又は５に記載の情報処理装置。
【請求項７】
前記性能を示す情報は、単位時間に前記処理モジュールに入力されるデータ量と、前記単位時間に該処理モジュールが出力するデータ量の相関を示すことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記入力手段はデータを入力する間隔を調節することでリングバスに入力するデータ量を制御することを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項９】
前記入力手段は１回あたりに入力するデータの量を調節することでリングバスに入力するデータ量を制御することを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項１０】
前記入力手段は制御量に基づいて前記リングバスに入力するデータ量を制御し、
仮定の制御量と前記リングバス上の処理モジュールが保持することになるデータ量との相関を示す情報を求め、当該相関を示す情報と前記リングバス上の処理モジュールが保持することを許容されるデータ量から、前記入力手段に設定する制御量を求める第３の算出手段を更に有することを特徴とする請求項１乃至９のいずれか１項に記載の情報処理装置。
【請求項１１】
前記入力手段は前記制御量を格納するレジスタを更に有することを特徴とする請求項１０に記載の情報処理装置。
【請求項１２】
複数の処理モジュールと、前記複数のモジュールをリング状に接続し一方向にデータを周回させるリングバスとを有する情報処理装置に動作させるプログラムであって、
前記リングバスに入力するデータによって前記複数の処理モジュールの保持することになるデータ量が、前記複数の処理モジュールが保持することを許容するデータ量以下になるように、データを前記リングバスに入力する入力工程を実行させることを特徴とするプログラム。
【請求項１３】
複数の処理モジュールと、前記複数のモジュールをリング状に接続し一方向にデータを周回させるリングバスとを有する情報処理装置における情報処理方法であって、
前記リングバスに入力するデータによって前記複数の処理モジュールの保持することになるデータ量が、前記複数の処理モジュールが保持することを許容するデータ量以下になるように、入力手段がデータを前記リングバスに入力する入力工程を有することを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は複数の処理モジュールがリング状のバスに接続された情報処理装置ならびに情報処理方法、プログラムに関する。
【背景技術】
【０００２】
従来、リング状にバスで接続されている複数の処理モジュールを用いた情報処理装置において、バスのトラフィックを調節する種々の方法がある。例えば、バス上に段数可変のＦＩＦＯを配置し、処理モジュールで出力データとリング上のデータの競合が起きた場合に、ＦＩＦＯの段数を伸ばして空きスロットを生成し、システム全体の性能が著しく低下する状況を回避する方法がある（特許文献１）。
【０００３】
また、複数のノードを持つローカルエリアネットワークの輻輳制御について、各ノードのネットワークの利用状況をノード毎に共有し、通信するノードが各ノードの利用状況からネットワークに余裕が有るかを判断してから通信を行う方法がある（特許文献２）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第２５２２９５２号公報
【特許文献２】特許第３０３４４０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ここで、複数の処理回路（処理モジュール）をバスで数珠繋ぎにすることでリング状に接続し、リング型のデータバス（以下、リングバスと称す）を形成する情報処理装置について考える。リングバスを用いる処理装置で構成を簡単にする為にデータをリングバスの一方向にのみ周回する様に制御をした場合、リングバス上の各処理モジュールが保持可能なデータ量を考慮しないと、データの衝突が頻繁に発生し、リングバスの処理効率が低下してしまう。
【０００６】
本発明は上述した課題を解決するものであり、簡易な構成でリングバスのトラフィック量を適切に調節する情報処理装置、その情報処理方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を達成するために、本発明に係る情報処理装置は、複数の処理モジュールと、前記複数のモジュールをリング状に接続し一方向にデータを周回させるリングバスと、前記リングバスに入力するデータによって前記複数の処理モジュールの保持することになるデータ量が、前記複数の処理モジュールが保持することを許容するデータ量以下になるようにデータを前記リングバスに入力する入力手段とを有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、処理に利用する処理モジュールの処理性能から、リングバスに投入するデータによって各処理モジュールが保持することになるデータ量を、バスに接続される処理モジュールが保持可能なデータ量以下になるようにして入力する。これによりリングバスの処理効率の低下を抑制できる。
【図面の簡単な説明】
【０００９】
【図１】情報処理装置の概略構成を示すブロック図である。
【図２】データ入出力部又は処理部に接続された通信部概略構成を示すブロック図である。
【図３】リングバスを流れるデータパケットの構成を示す概略図である。
【図４】データ入出力部１０１の概略構成を示すブロック図である。
【図５】制御装置の概略構成を示すブロック図である。
【図６】情報処理装置の概略構成を示す図である。
【図７】制御処理部による情報処理部の設定および起動を行う処理のフローチャートである。
【図８】制御処理部による情報処理部の設定処理の詳細を示すフローチャートである。
【図９】制御処理部による情報処理部の設定および起動を行う処理のフローチャートである。
【図１０】制御処理部による画像処理部の設定処理を示すフローチャートである。
【発明を実施するための形態】
【００１０】
＜実施例１＞
図６は、実施例１のシステムの概略構成を示す図である。制御処理部６０１はＣＰＵやＭＰＵなどの処理回路である。画像処理部６０２は、リングバスで接続されている複数のモジュールを有する画像処理部である。
【００１１】
ＲＡＭ６０３は、処理する前の入力画像データや処理後の出力画像データ、又は、画像処理部６０２の設定パラメータに関するデータなどを格納する読み書き可能なメモリである。ＲＯＭ６０４は、制御処理部６０１や画像処理部６０２の処理手順や、設定パラメータ等の定数などを保持可能な読み出し可能なメモリである。また、システムバス６０５は制御処理部６０１、画像処理部６０２、ＲＡＭ６０３、画像処理部６０２を通信可能に接続するバスである。
【００１２】
制御処理部６０１において、ＲＯＭ６０４から読み出されたプログラムにしたがって、システムの制御ならびに画像処理部６０２への指示等を行う。画像処理部６０２は、制御処理部６０１からの指示に従って画像処理を実行する。例えば、ＲＡＭ６０３にあらかじめ格納されている入力画像データを読み出して処理を行い、処理結果を再びＲＡＭ６０３に書き込む。
【００１３】
図１０に制御処理部６０１による画像処理部６０２の設定処理の処理手順を示す。
【００１４】
画像処理制御が開始されると、以下のステップに従って処理を実行する。ステップＳ１１０１で制御処理部６０１は、ＲＯＭ６０４から画像処理部６０２の処理部の処理順番を読み出す。ステップＳ１１０２で制御処理部６０１は、ＲＯＭから処理部に与える処理パラメータを読み出す。ステップＳ１１０３で制御処理部６０１は、読み出したデータ処理順番及び処理パラメータを用いて画像処理部６０２の制御パラメータを算出する処理を行う。
【００１５】
ステップＳ１１０４で制御処理部６０１は、ステップＳ１１０３で算出した制御パラメータを用いて、画像処理部６０２に対する設定処理を行うステップＳ１１０５で制御処理部６０１は、画像処理部６０２に対して処理開始の指示を行う。ステップＳ１１０６で制御処理部６０１は、画像処理部６０２の設定の完了を確認し、
ステップＳ１１０７において、設定処理が完了したと判断した場合には、処理を終了する。ここで、処理が未終了であった場合には、再びステップＳ１１０６へ戻り、終了確認処理を継続する。
【００１６】
図１は本発明の一実施例である実施例１における画像処理部の概略構成を示すブロック図である。矢印はデータ（又はパケット）が送信される方向を示しており、データ入出力部１０１は、外部記憶装置（ＲＯＭ、ＲＡＭ、ＨＤＤ）から処理対象のデータを受信しリングバスに入力し、また処理が終わったデータを外部記憶装置へ出力する。
【００１７】
通信部１０２−１〜１０２−ｍはバスによって数珠繋ぎに接続されリングバス１０４を形成している。また、処理部１０３−１〜１０３−ｍは通信部１０２−１〜１０２−ｍの少なくとも１つと夫々一対一で接続され、入力されたデータに対して所定の処理を行う。また、通信部１０２は、リングバス１０４上で、特定の方向にある通信部から受信するデータを他方の通信部へ流す。従って、リングバス１０４では総じて、所定の一方向をデータ転送方向とした際に転送方向の上流から下流へとデータが周回するように流れる。
【００１８】
また、通信部１０２は少なくとも１つの処理部１０３もしくはデータ入出力部１０１（データ入力部でもよい）との間でデータを送受信できるように前述のバスとは別に直接接続されている。通信部１０２はバスを通して入力されたデータを識別して、直接接続されている処理部又はデータ入出力部に送信すべきデータを、この処理部又はデータ入出力部へ送信する。一方で、通信部１０２は、直接接続されている処理部又はデータ入出力部に送信すべきではないデータについては、データ転送方向下流側の通信部にそのまま送信する。通信部１０２の詳細については後述する。なお、通信部１０２と処理部１０３との対を本明細書では処理モジュール（又は処理回路）と称する。
【００１９】
リングバス１０４は通信部を数珠繋ぎに連結するバスである。
【００２０】
図３は通信部１０２の概略構成を示すものである。入力データ受信部３０１は、リングバス上を流れるパケットを受信する。入力データ識別部３０２は、入力されたパケットの制御情報を確認し、入力されたデータが、自ノードにおいて処理すべきデータかどうかを識別する。
【００２１】
処理データ出力部３０３は、入力データ識別部３０２において自ノードにおいて処理すべきデータであると判断されたデータを、処理部に対して送出する。入力データ識別部３０２で判定するデータがパケット化されているものであるなら、処理データ出力部は処理部で処理すべきデータをパケットから抽出するとよい。処理済みデータ入力部３０４は、自ノードの処理部（バスを介さずに直接接続されている処理部）において処理済のデータの入力を受け取る。
【００２２】
出力データ生成部３０５は、有効なデータを含んでいないと判断された空パケットと入力部１０４から送られるデータとから、出力データ（出力用のパケット）を生成する。出力データ送信部３０６は、出力データ生成部３０５が生成した出力データをバスに出力する。
【００２３】
図２（ａ），（ｂ）は、このようなデータ通信処理部において送受信されるデータパケットとコマンドパケットのデータ構造を示したものである。
【００２４】
フィールド２０１は、データの処理順番を示すカウンタである。本実施例のリングバスにおいては、未処理データを含むデータパケット群の一部がリング内を周回することがあるので、通信処理部が受信するデータが、必ずしも対応するデータ処理部で最初に処理されるべきデータであるとは限らない。よって、このようなカウンタをデータに付随して持たせることで、入力された順など、正しい処理順番に従って処理を実行させる事が可能となる。なお、対応するデータ処理部とは、通信処理部がリングバスを介さずに直接通信可能なデータ処理部の事を指すものとする。
【００２５】
フィールド２０２はこのデータパケットが保持しているデータが処理されるべき有効データであることを示すフラグである。これはすなわち、パケットが現在使用中であるかどうかを示すフラグと同じ意味を持つ。以下、このフラグをバリッドビットと呼称する。フィールド２０３は、このパケットが保持しているデータが何らかの理由で、処理すべきデータ処理部によって受け取られなかったことを示すフラグである。通常のパイプライン接続における、前段へのデータ供給停止要求ビット（ｄｉｓａｂｌｅ信号）と同じ意味を持つ。以下、このフラグをストールビットと呼称する。
【００２６】
フィールド２０４は、このデータを最後に処理したデータ処理部のＩＤである。データ通信処理部では、あらかじめ外部から設定された待ち受けＩＤと、このデータパケット上のＩＤとを比較し、一致した際に処理を行う。通常、待ち受けＩＤは各処理部に固有の値であるとする。またフィールド２０５は、データを格納する。
【００２７】
概念的にはリングバスを流れるパケットの総数はほぼ一定である、即ち、空のパケットと有効なパケットの和はほぼ一定であり、この一定数のパケットがリングバスを周回し続けている。空のパケットは格納するデータが無効とされたパケットであり、有効なパケットはデータやコマンドを格納しているパケットである。本実施例において１データパケットは１画素データを割り当てることとする。
【００２８】
図４は画像処理部のデータ入出力部の概略構成を示す。外部データ受信部４０１は、外部記憶装置からデータを受信する。処理対象データ送信部４０２は外部データ受信部４０１の受信したデータをリングバス上の通信部に送信する。データ入力量制御部４０３は、処理対象データ送信部４０２が通信部に送信するデータの量（又はパケットの間隔）を決める。ここで、データの量は処理対象データ送信部４０２が通信部に送信する一連のデータを複数回に分けて送信する場合の１回あたりに送信するデータの量としてもよい。処理済データ受信部４０４は、通信部から処理済みのデータを受信する。外部データ送信部４０５は、処理済データ受信部の受信したデータを外部記憶装置に送信する。
【００２９】
図５は制御処理部６０１の機能構成を示す概略図である。処理内容保持部５０１は、画像処理部の各処理部の処理内容（例えば、変倍やフィルタ等の画像処理）や、処理に用いるパラメータおよびデータ、各処理部が処理をする順番などを示す情報を保持している。位置関係算出部５０２は、一連のデータフロー（パイプライン処理など）において、処理上で連続して用いる２つの処理部の位置関係を示す値を算出する。最大データ量算出部５０３（第２の算出手段）は、リング状のバスに接続されている複数の処理モジュールが保持することを許容する最大のデータ量を算出する。制御量算出部５０４（第３の算出手段）は、処理内容保持部５０１、位置関係算出部５０２および最大データ量算出部５０３の保持する情報より、データ入力量制御部に設定する制御量を算出する。データ入力量設定部５０５は、制御量算出部５０４にて算出された制御量をデータ入力量制御部４０３に設定する。また、トラフィック予測部５０６（第１の算出手段）はリングバスに入力するデータによって、実際にリングバスを流れるデータ量（各処理モジュールが保持することになるデータ量の総和に相当する）を予測する。
【００３０】
次に、前述した構成の画像処理部６０２で１つのパケットに格納されるデータを、処理部Ｂ→処理部Ｄ→処理部Ａの順序で処理するときの動作例を、図１を用いて説明する。
【００３１】
まず、Ｂ→Ｄ→Ａのデータフローを決定するために画像処理部６０２の初期設定をする際に、通信部１０２−１〜６に順にｎｏｄｅ  ＩＤ１〜６を設定し、更に待ち受けＩＤ（ｗＩＤ）を設定する。待ち受けＩＤの設定として、通信部１０２−１に［ｗＩＤ＝２］、通信部１０２−２に［ｗＩＤ＝５］、通信部１０２−３に［ｗＩＤ＝１］、通信部１０２−５に［ｗＩＤ＝３］を設定する。ここで、待ち受けＩＤは通信部１０２がデータを抽出すべきパケットであるかを識別するためのものであり、初期設定時に各通信部が有するレジスタに設定される。また、各通信部はカウンタを有しており、画像処理部６０２の初期設定時に全て０に初期化される。
【００３２】
まず、データ入出力部１０１は入力端子１５１から受信したデータを通信部１０２−１に入力する。そして、通信部１０２−１は入力されたデータとｎｏｄｅ  ＩＤとして（１）とを格納するパケットにパケット化しリングバス１０４の下流に出力する。図２のフォーマットによると〔Ｃｏｕｎｔ＝０、Ｖａｌｉｄ＝１、Ｓｔａｌｌ＝０、ＩＤ＝１〕が格納される。出力した後に、通信部１０２−１のカウンタを０から１へカウントアップして、次のパケットには〔Ｃｏｕｎｔ＝１〕を格納するように待機する。
【００３３】
通信部１０２−２の入力データ識別部３０２が、バスから受信するパケットについて、
○バスから受信するパケットのｎｏｄｅ  ＩＤと自身のｗＩＤが一致する。
○パケットのカウンタと自身のカウンタの値が一致する。
という２つの条件を満たすかどうかを判定する。今回の例では通信部１０２−２にｗＩＤは設定されておらず、一致しないので自ノードの処理部Ａで処理すべきパケットではないと判断して、そのままリングバスの下流側に出力する。
【００３４】
次に、通信部１０２−３の入力データ識別部３０２もバスから受信するパケットについて上記の２つの条件を満たすかどうかを判定する。今回の例では上記の２つの条件を満たすので、処理部Ｂで処理すべきパケットであると判定し、このパケットからデータを抽出する。データを抽出したパケットについては少なくとも〔Ｖａｌｉｄ＝０〕にクリアして空パケットにして出力データ送信部３０６から、リングバス１０４のデータ転送方向下流側に出力する。通信部１０２−２が抽出したデータは処理データ出力部３０３から処理部Ｂに送られ、処理部Ｂはこのデータを処理した後に処理済データを通信処理部１０２−３の処理済データ入力部３０４に送信する。
【００３５】
通信部１０２−３の出力データ生成部３０５は、処理済データ入力部３０４が保持している処理済データがある場合に空パケットを取得するとパケットに処理済のデータを格納する処理をする。詳細には、この空パケットに処理済みデータと自ノードのＩＤ〔ＩＤ＝３〕および自ノードのカウンタの値〔Ｃｏｕｎｔ＝０〕、を格納し、バリッドを有効〔Ｖａｌｉｄ＝１〕にする。そして、自ノードのカウントを０から１へ１つカウントアップして次に処理すべきデータを待ち受ける。
【００３６】
以降の処理も基本的には上述の通信部１０２−２又は通信部１０２−３の処理とほぼ同様であり、同様な処理についてはその説明を省略する。
【００３７】
通信部１０２−２の出力データ生成部によって出力用に生成されたパケットは出力データ送信部３０６からバスに出力される。次に、このパケットは通信部１０２−２と同様に通信部１０２−４をそのまま通過する。そして、通信部１０２−５にパケットが到達したら通信処理部１０２−３と同様に処理し、処理部Ｄにて処理したデータと自ノードのＩＤ〔ＩＤ＝５〕を格納する。そして、処理Ｄの処理したデータを格納するパケットは、通信部１０２−６、通信部１０２−１を順に通過し通信部１０２−２で通信部１０２−３と同様に処理される。処理部Ａで処理されたデータを格納しているパケットは〔ＩＤ＝２〕の情報を格納しているので、通信部１０２−３〜６を通過し、通信部１０２−１でデータを抽出されて、更にデータ入出力部から画像処理部の外部に出力される。
【００３８】
以上のように画像処理部６０２が動作することで、パケットはリングバス上を一方向に絶えず周回するものの、ｗＩＤの設定に基づいたデータフローを実現することができる。また、ｗＩＤの設定を変更する事で所望のデータフローに切り換えることもできる。
【００３９】
ここで、データ入出力部１０１が通信部１０２−１にデータを入力する間隔は、制御処理部６０１のデータ入力量設定部によって設定される。ここで設定される間隔は静的な値であり、画像処理部６０２によって処理が開始される前に制御処理部６０１が算出し、画像処理部６０２に設定する。また、間隔は、あるデータ通信処理部にパケットが入力され、パケットに対して処理が行われ、パケットを出力するまでの時間を１単位（単位時間）とする。また、各データ通信処理部は同期を取っており、すべてのデータ通信処理部はパケットが入力されてから出力するまでの処理を同じ時間で行うものとする。
【００４０】
ここで、データ入出力部が通信部にデータ入力を行う回数は、処理したい画像のサイズによって決まる。例えば縦２０、横１００ピクセルの画像処理であれば、データ入力回数は２０００回となる。このようなケースの場合、各処理部において並列にデータ処理が行われ、リングバス上を流れるパケットのデータ量は平衡状態となる。
【００４１】
制御処理部６０１では、ある間隔でデータ入出力部が通信部にデータを入力したときの、平衡状態におけるリングバス上の処理モジュールの保持するデータ量を予測し、予測したデータ量がリングバス上の処理モジュールの保持できるデータ量以下になる間隔を設定する。
【００４２】
図７は、画像処理部６０２によって画像処理が行われるまでの制御処理部６０１の処理を説明するフローチャートである。ステップＳ７０１で前記間隔をφで設定すると仮定したときに、処理に用いる処理部それぞれがリング状のバスに流すデータ量を求め、φを設定したときにリング状のバスに流れるデータ量ρを算出する。ステップＳ７０２では、ステップＳ７０１にて算出したデータ量ρとリングバス上の処理モジュールが保持を許容される最大のデータ量ρｍａｘを比較し、ρｍａｘを超えないρを満たす中で最小のφを算出する。そして、ステップＳ７０１とステップＳ７０２を繰り返すことで前記間隔を算出する。さらに、ステップＳ７０３でステップＳ７０２において算出した間隔を画像処理部６０２に設定し、ステップＳ７０４において画像処理部６０２を起動してデータ処理を行う。
【００４３】
図８は、制御処理部６０１によって行われる、画像処理部６０２に設定する設定値の算出および画像処理部６０２への設定処理を示すフローチャートである。ステップＳ８０１において、予め設定された処理内容を元に、処理部それぞれの処理性能Ｆｉを算出する。ここで、Ｆｉは処理部に入力されるデータの間隔φｉと、処理部が出力するφｉ＋１の関係を表す式で、Ｆｉは処理内容を元に一次式で近似される。
【００４４】
また、一次式の形は１／φｉ＋１＝Ａｉ（１／φｉ−Ｂｉ）となり、Ａｉ、Ｂｉは処理内容により求まる固定の数値である。ステップＳ８０２において、予め設定された処理順序により、処理を行う処理部間の位置関係Ｐｉを算出する。ここで、Ｐｉはｉ番目に処理を行う処理部の位置を表し、データ入出力部を基準として、データ入出力部から処理部にデータを転送するときにパケットが通過する通信部の個数である。
【００４５】
ステップＳ８０３において、リングを構成する通信部の構成と数により、リングバス上の処理モジュールが保持を許容される最大データ量ρｍａｘを算出する。ここで、リングバス上のパケットは一律に６４ビット分のデータ量を有している場合を想定すると、最大データ量ρｍａｘは６４ビットに通信部の数を掛け合わせた値となる。ステップＳ８０４において、データ入出力部でのデータ入力間隔Ｆ０の初期値を予め設定された値にする。
【００４６】
ステップＳ８０５において、予め設定された処理順序により、処理に用いる処理部の区間数Ｎを設定する。ここで、区間数Ｎとは、データがデータ入出力部からリング状のバスに入力された後、このデータについて処理が行われる処理部とデータ入出力部の数である。例えば、図６のユースケ−スにおける区関数Ｎは４となる。ステップＳ８０６において、累積データ保持量ρを０に初期化する。ステップＳ８０７において、区間カウンタｉを０に設定する。ステップＳ８０８において、すべての区間に対して算出が終了したかの確認を行う。ここで、区間カウンタｉが処理部間の区間数Ｎ未満の場合はステップＳ８０９へ、ｉがＮ以上の場合はステップＳ８１３へと処理が移る。
【００４７】
ステップＳ８０９において、予め設定された処理順序において、ｉ番目の処理部からｉ＋１番目の処理部までの区間数ｄをＰｉより算出する。ここで、０番目の処理部、およびＮ番目の処理部は入出力部である。ステップＳ８１０において、前記区間数ｄと、予め設定された処理順序においてｉ番目の処理部の性能値Ｆｉとから、区間ｉにおけるデータ保持量ρｉを算出する。ステップＳ８１１において、累積データ保持量ρにρｉを加算する。ステップＳ８１２において、区間カウンタのインクリメントを行う。ステップＳ８１２を終了すると、ステップＳ８０８へと処理が移る。ステップＳ８１３において、累積データ保持量ρと最大データ量ρｍａｘの比較を行う。ここで、ρがρｍａｘを超えている場合はステップＳ８１４へ、ρがρｍａｘ以下の場合はステップＳ８１５へと処理が移る。ステップＳ８１４において、データ入出力部でのデータ入力間隔Ｆ０を予め予め設定された数値ΔＦ０分減算する。ステップＳ８１５において、この時点でのデータ入出力部でのデータ入力間隔Ｆ０を設定値とし、データ入力量制御部４０３へ設定を行う。
【００４８】
以上のように実施例１は、投入するデータによって平衡状態のリングバスに流れるデータ量を予測値として算出し、この予測値がリングバス上の複数の処理モジュールが保持を許容されるデータ量以下になるようにリングバスに入力するデータ量を調節する。これによって、リングバスの処理効率の低下を抑制できる。なお、リングバス上の複数の処理モジュールが保持を許容されるデータ量は、リングバスの処理効率を低下させない最大トラフィックに相当することになる。
【００４９】
また、上述の説明では図１の入出力部１０１のようにリングバスへの入力とリングバスからの出力とを兼ねている構成を用いたが、入力と出力の構成は別にしてもよい。
【００５０】
また、コマンドパケットとデータパケットの両方をリングバスで扱う場合は、図２（ｂ）に示すコマンドパケットのデータ量が無視できるくらいに小さければ、図２（ａ）に示すデータパケット同士の間隔だけに着目してもよい。コマンドパケットとデータパケットの両方をリングバスで扱えるようにすると、単純に配線数が少なくすることができるため、回路規模を小さくすることもできる。
【００５１】
また、データをリングバスに入力することによって、リングバス上の処理モジュールが保持することになるデータ量は、リングバスを周回するパケットを考慮するとよい。その中でも特に処理内容によってストールビットを有するパケット（リングバスを１周以上周回する）がどれくらい発生するかも考慮に入れるとよい。この場合は、入力するデータ量によって発生するストールパケットの相関を算出すればよい。
【００５２】
＜実施例２＞
実施例１と同一機能を有する構成や工程には同一符号を付すとともに、構成的、機能的にかわらないものについてはその説明を省略する。
【００５３】
図９は、制御処理部６０１によって画像処理部６０２の制御が行われ、画像処理部６０２によって画像処理が行われるまでのステップである。ステップＳ９０１において、画像処理部６０２に設定する設定値を算出する。ステップＳ９０２において、算出した間隔を情報処理装置に設定し、ステップＳ９０３において画像処理部６０２を起動してデータ処理を行う。実施例１ではステップＳ７０１とＳ７０２を繰り返すことで設定する間隔を算出するが、実施例２は、実施例１と異なりステップＳ９０１で設定する間隔を一意に求める。そして、ステップＳ９０２でステップＳ９０１において算出した間隔を情報処理装置に設定し、ステップＳ９０３において画像処理部６０２を起動してデータ処理を行う。
【００５４】
式（１），（２）は、ステップＳ９０１において、データ入出力部に設定する間隔を算出するために用いる方程式であり、単位時間に前記処理モジュールに入力されるデータ量と、前記単位時間に該処理モジュールが出力するデータ量の相関を示す。ここで、φ１はデータ入出力部から通信部にデータを入力する間隔である。また、Ａｉ、Ｂｉはそれぞれ予め設定された処理順序においてｉ番目の処理部の性能値である。さらに、予め設定された処理順序においてｉ番目の処理部へ入力されるデータの間隔をφｉ，予め設定された処理順序においてｉ番目の処理部が出力するデータの間隔をφｉ＋１とすると、１／φｉ＋１＝Ａｉ（１／φｉ−Ｂｉ）の関係がある。ｄｉは予め設定された処理順序において、ｉ番目の処理部からｉ＋１番目の処理部までの区間である。ρｍａｘはリングバス上の処理モジュールが保持を許容される最大のデータ量で、δは算出する式において、算出による誤差を考慮した誤差値である。ステップＳ９０１において、図１０の２式を満たす中で最小の整数をφ１として求める。
【００５５】
以上のように、実施例２によると、予め設定された式を用いて設定値を一意に算出することで、計算コストをさらに下げることができる。
【００５６】
【数１】
2010262439.tif 000003
【００５７】
【数２】
2010262439.tif 000004
【００５８】
前述の各実施例で説明した構成の他に、外部から取得するデータはリングバスで扱うパケットの形式でそのまま入力してもよい。さらに、処理部はパケットを解釈しパケットのまま処理できるようにしてもよい。
【００５９】
また、前述の各実施例は画像処理装置を例に挙げたが、各処理モジュールに処理を割り当てる事ができる一般的な情報処理においても本発明は適用できる。
【００６０】
また、前述の各実施例の処理は、複数のハードウェアとソフトウエアの協同によって実現するようにしてもよい。この場合、ネットワーク又は各種記憶媒体を介して取得したソフトウエア（プログラム）をコンピュータ等の処理装置（ＣＰＵ、プロセッサ）にて実行することで実現できる。
【００６１】
また、本発明は前述した実施例の機能をコンピュータに実現させるプログラムを記憶した記憶媒体を、システム或いは装置に供給することによって実現してもよい。
【符号の説明】
【００６２】
１０１  入出力部
１０２  通信部
１０３  処理部
１０４  リングバス
【図１】
2010262439.tif 000005
【図２】
2010262439.tif 000006
【図３】
2010262439.tif 000007
【図４】
2010262439.tif 000008
【図５】
2010262439.tif 000009
【図６】
2010262439.tif 000010
【図７】
2010262439.tif 000011
【図８】
2010262439.tif 000012
【図９】
2010262439.tif 000013
【図１０】
2010262439.tif 000014