JP5406558B2 - データ処理装置、データ処理方法およびプログラム - Google Patents

データ処理装置、データ処理方法およびプログラム Download PDF

Info

Publication number
JP5406558B2
JP5406558B2 JP2009041295A JP2009041295A JP5406558B2 JP 5406558 B2 JP5406558 B2 JP 5406558B2 JP 2009041295 A JP2009041295 A JP 2009041295A JP 2009041295 A JP2009041295 A JP 2009041295A JP 5406558 B2 JP5406558 B2 JP 5406558B2
Authority
JP
Japan
Prior art keywords
data
data processing
processing unit
unit
notification
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2009041295A
Other languages
English (en)
Other versions
JP2010198226A (ja
JP2010198226A5 (ja
Inventor
伊左雄 坂本
尚 石川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2009041295A priority Critical patent/JP5406558B2/ja
Priority to US12/709,395 priority patent/US8300535B2/en
Publication of JP2010198226A publication Critical patent/JP2010198226A/ja
Publication of JP2010198226A5 publication Critical patent/JP2010198226A5/ja
Priority to US13/619,603 priority patent/US9043524B2/en
Application granted granted Critical
Publication of JP5406558B2 publication Critical patent/JP5406558B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Multi Processors (AREA)

Description

本発明は、リング状のバスに接続されている複数のデータ処理部を有するデータ処理装置、該装置におけるデータ処理制御方法及びプログラムに関する。
従来、リング状のバスに接続された処理モジュールをバスのトラフィックを過度に増大させずに各処理モジュールを安定して利用するための制御方法が提案されている(例えば、特許文献1〜3参照)。この制御方法では、処理モジュールが自身のデータ受信能力を判定し、その判定の結果、負荷が高くなってしまった処理モジュールがメッセージの送信やトークンを消去又は再生する。そして、その他の処理モジュールから受信するデータを制限することで、バスのトラフィックを抑えてシステム全体の性能が著しく低下する状況を回避させている。
また、リング状のバスに接続された処理モジュールを用いてパイプライン処理する場合に、リング状のバスを周回するデータに衝突しないようなタイミングでデータを投入し、全体の処理を効率良く行わせる方法が提案されている(例えば、特許文献4参照)。
特開平2−283142号公報 特開平4−70235号公報 特開平10−228445号公報 特登録2541697号公報
しかしながら、上記従来の技術では、ハードウェアとして実装された固定的な処理機能を持つ処理回路を通信可能に接続したリング状のバスにおいて、次のような問題があった。物理的な接続順番と異なる処理順番を自在に制御可能なデータ処理部を実現しようとした場合に、本来のデータ処理部の持つ処理速度を十分に引き出すことが困難であった。
例えば、複数の処理回路(1〜4)が、接続順番1→2→3→4で接続されている場合、4→3→2→1という順番で処理を実行するためにトークンパッシング方式を採用し、複数の処理回路間でデータを送受信しつつ処理を行う通信方式などが提案されている。ここでリング状のバスは一方通行でデータをバス内に周回させるため、接続順番は処理回路1〜4が順になっていることを示す。周回することを考慮すると1→2→3→4→1と表現してもよい。また処理順番は、データ処理部が処理対象のデータを4→3→2→1の順番で処理することを示す。以降の説明では単方向にデータ(又はパケット)を周回させるリング状のバスを単にリングバスと称す。
しかし、このようなデータパスを用いて接続順番と異なる処理順番を実現しようとした場合、リング状のバスに順番入れ替えのために周回するデータが増えてしまい、リング状のバスのデータトラフィックが増加し、処理性能を下げてしまう。この処理速度の低下に関して図1乃至図3を用いて説明する。
図1は、ベースとなるデータ通信路(以下、リングバス)とデータ処理部とを接続する通信処理部の構成を示す図である。図1において、入力データ受信部101がリングバス上を流れるパケットを受信する。そして、入力データ識別部102が受信されたパケットの制御情報を確認し、パケットのデータが自ノードで処理すべきデータか否かを識別する。ここで、入力データ識別部102が自ノードで処理すべきデータであると識別すると、処理データ出力部103がそのデータを不図示のデータ処理部に送出する。
一方、処理済データ入力部104が自ノードのデータ処理部から処理済のデータを入力する。そして、出力データ生成部105が入力されたデータから出力データを生成する。ここで、入力されたデータは、入力データ識別部102が自ノードで処理すべきデータでないと識別したデータや有効なデータを含んでいないと判断した空パケット、又は処理済データ入力部104からの処理済でバス上に出力する必要のあるデータである。そして、出力データ送信部106が出力データ生成部105で生成された出力データを再びバス上に送信する。
図2は、通信処理部が送受信するパケットのフォーマットの一例を示す図である。図2において、フィールド201はデータの処理順番を示すカウンタを格納する。このリングバスでは、連続する未処理データがリングバス内を周回することがあり得るため、データ処理部がデータ受信可能となったときに最初に受信されるデータが必ずしも最初に処理されるべきデータであるとは限らない。よって、このようなカウンタをデータに付随させて持たせ、入力された順など、正しい処理順番に従って処理を実行する仕組みが必要となる。
フィールド202はパケットが保持しているデータが処理されるべき有効データであることを示すフラグを格納する。このフラグ202は、パケットが現在使用中であるか否かを示すフラグと同じ意味を持つ。203はパケットが保持しているデータが、何らかの理由で処理すべきデータ処理部によって受け取られなかったことを示すフラグである。通常のパイプライン接続における、前段へのデータ供給停止要求ビットと同じ意味を持つ。
フィールド204はデータを最後に処理したデータ処理部の識別子(ID)を格納する。通信処理部では、予め外部から設定された待ち受けIDと、データパケット上のIDとを比較し、一致した際に処理を行う。そして、フィールド205はデータを格納する。
図3(a)は、トークンパッシング方式によって通信路を構成した画像処理装置の構成の一例を示す図である。データ取得部301は外部記憶装置などから処理すべきデータを取得する。通信処理部302はデータ取得部301で取得されたデータをリングバスに供給する処理を行う。通信処理部303はリングバスからデータ処理回路304で処理すべきデータを選別して取り込む。データ処理回路304は供給されたデータに対してしかるべき処理を行う。尚、通信処理部303とデータ処理回路304とで構成される処理部は1つ以上接続されているものとする。
通信処理部305は、処理済のデータを外部記憶装置などに出力するため、リングバス上から処理済のデータを選択して取り込む。データ出力部306は、通信処理部305で取り込まれた処理済のデータを外部記憶装置などに出力する。そして、リングバス307はこれらの通信処理部を連結する。
図3(b)は、図3(a)に示す画像処理装置において、処理速度が低下した状態を説明するための図である。ここで、通信路は1処理単位時間(以下、1サイクル)に一つずつ、データを次の通信処理部に送るものとする。
データ処理回路401は、例えば1つのデータを受信して3サイクル経過後に、結果データが送信可能となり、処理中は次のデータを受け付けられない。通信処理部402はデータ処理回路401で処理すべきデータをリング状のバスから取得する。
ここで、データ処理回路401が1番目のデータ403を処理している最中に、次のデータ404がデータ処理回路401の通信処理部402に入力されたとする。当然のことながら、データ処理回路401は処理中であるため、通信処理部402は2番目のデータ404を取り込むことができない。このデータ404は次のサイクルに次のデータ処理部に送られるか、又は消去されて再度データ取得部301に対して再送要求を通知する。
即ち、2番目のデータ404が単にリングバス上を周回すると、再び通信処理部402に戻ってくるまでに、リングバスに接続されている通信処理部の数に相当するサイクル数が必要となる。
図3(a),(b)に示す構成では、通信処理部が6つ接続されているため、2番目のデータ404が戻ってくるまでに6サイクルの時間を必要とする。データ処理回路401は3サイクルで処理を終了し、1番目のデータ403を出力し、次のデータの入力待ちとなるため、最低でも、6−3=3サイクルの遅延時間が生じてしまう。
これと同様のことが、3番目以降の全ての入力データについても起こるとすれば、処理速度が著しく低下してしまう。つまり、入力データの総数をNとすれば、本来3サイクルに1データ処理できることから、3×Nサイクルで終了するはずの処理が1データにつき3サイクルの遅延時間を持ってしまい、2倍の6×Nサイクルかかってしまう。
この問題を解決するために、特許文献1に記載の技術を用いる場合、受け取れなかったデータ404は消去される。そして、データ供給元であるデータ取得部301が、データ404が一定期間内に戻ってこないことを確認した上で再度データを送出する。
しかし、この技術では、既にデータ404に続く次のデータ405を取得又は送出していた場合、外部からのデータの読み取りを既に送出したデータ分遡って、再取得して送出しなければならない。そのため、再取得動作の必要性が更に、既に送出したデータ405についても連鎖的に発生するなど、データ取得部301における制御が煩雑になる。
また、特許文献3に提案されている技術の場合、通信処理部402で受け取れなかったデータ404はデータ内容を破棄され、受け取れなかったことを通知するトークンとしてリングバス上に流される。この場合、通知トークンはリングバス上を周回して送信元であるデータ取得部301に到達するまでに、周回にかかる時間のロスが発生し、そこで即座にデータが準備できたとしても、6×Nサイクルの処理時間を上回ることはできない。
更に、通知トークンを受け取ってから再度送出するデータを取得する動作を行った場合、遅延時間は更に長くなり、全処理時間は6×Nを上回ってしまうという問題も解決することができない。
一方、他の問題として、以下にデータ処理回路の処理効率の向上について説明する。
データ処理回路で利用するデータ処理部を効率良く使って処理性能を向上させる技術として、前のデータが処理されている間であってもリングバス上のデータと衝突しないタイミングで次のデータを入力端から供給するという技術がある(特許文献4)。
特許文献4に記載の技術が対象とする回路は、データ処理部が複数のデータを演算する場合に、同一のタイミングで入力されたデータにより出力が決まることを想定している。そのため、出力データの生成のために複数のデータの受信を必要とする場合には、その分バスを用意する必要がある。リング状のバスに接続するデータ処理回路の場合は、演算のための複数のバスは用意しなくてもよい。例えば、単一のバスでバケツリレーのようにデータ処理部からデータ処理部へとデータを供給する。その際に特許文献4で提案されている技術を用いた場合、データ処理回路の性能が逆に下がってしまう場合がある。
この処理効率が下がる状況に関して図4を用いて説明する。図4は、図3に示す装置と同様な構成において、データ処理回路を2つ備えた装置である。501に続いて503で処理した後に再び501で処理してから結果を得る装置とする。
データ処理回路501は1つのデータを3サイクルで処理して出力するデータ処理部、データ処理回路503は4つのデータが入力されてから3サイクル毎にデータを出力するデータ処理部である。図4においてデータ505〜508に付されている記号は、アルファベットが装置へ投入した順、数字はデータ処理回路での処理が終わった数を表す。
このとき、図4に示す(a)のデータ処理回路503が結果を出力可能となる4つ目のデータ507を受信するまでは、データ処理回路503が受信可能な一定の間隔でデータをデータ取得部301から投入することで、データは効率良く処理される。しかし、図4に示す(b)のように、データ処理回路503が結果を出力可能となる4つ目のデータ507を受信した後、更に3サイクルが経過すると、データ505が出力可能となっている。このとき、データ508が装置内に投入されてデータ処理回路501での処理が完了していた場合、データ処理回路503ではデータ507が出力されなければ、データ508はリングを周回することになる。これは、上述の問題と同様である。
更に、リングを周回することで、データ処理回路からの出力を妨げてしまうため、処理性能が低下してしまう。特許文献4で提案されている技術において、データ処理回路503がデータを漏れなく受信しようとすると、データ処理回路503の処理時間は4つのデータの処理が完了するまでとしなければならない。
即ち、301からのデータの投入間隔を少なくとも503がデータを受信可能な3×4=12以上にする必要があるため、図4に示す(a)の503が出力を得るための4つのデータを受信している場合には効率が悪くなってしまう。
本発明は、利用する各データ処理部の本来の処理性能を達成し、利用するデータ処理部で出力データを得るために必要とするデータの個数も考慮してリングバスへのデータ投入を調節することを目的とする。
また一方で、利用するデータ処理部の順番の変更やデータ量の変動に対しても安定して効率の良い処理を実現することを目的とする。
本発明は、通信可能にリング状のバスに接続された複数のデータ処理部を有し、前記複数のデータ処理部が順番にデータを処理するデータ処理装置であって、
前記複数のデータ処理部の各々は、
当該データ処理部が受信したデータに基づいて、当該データ処理部の1つ前の順番においてデータを処理するデータ処理部を識別する識別手段と、
当該データ処理部の受信可能状態を判定し、前記識別手段の識別したデータ処理部に前記受信可能状態を通知する通知手段と、
当該データ処理部の1つ後の順番においてデータを処理するデータ処理部の通知手段からの通知に応じて、データの送信量を制御する制御手段とを有することを特徴とする。
本発明によれば、複数のデータ処理部において処理の順番が後段のデータ処理部が必要なだけのデータを供給することで、データがリングバスを周回する回数を低減し、リングバスに流れるデータ量を調節する。
また、データ処理装置へのデータの入出力端以外でデータ量が変動する場合に、物理的な接続順番と異なる処理順番を自在に制御しつつ効率的なデータ処理が可能となる。
データ通信路とデータ処理部とを接続する通信処理部の構成を示す図である。 通信処理部が送受信するパケットのフォーマットの一例を示す図である。 トークンパッシング方式によって通信路を構成した画像処理装置の構成の一例を示す図である。 図3に示す装置と同様な構成において、データ処理回路を2つ備えた装置を示す図である。 第一の実施形態におけるデータ処理部の構成を示すブロック図である。 第一の実施形態で伝送されるパケットのフォーマットを示す図である。 第一の実施形態におけるデータ送信制御部610の処理を示すフローチャートである。 第一の実施形態における画像処理装置の構成の一例を示す図である。 第二の実施形態におけるパケットのフォーマットの一例を示す図である。 第三の実施形態におけるデータ処理部の接続例を示す図である。 第五の実施形態におけるデータ処理部の構成を示すブロック図である。 第六の実施形態におけるデータ処理部の構成を示すブロック図である。
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
[第一の実施形態]
画像処理装置における複数の通信処理部がコマンドパケットを送受信し、自通信処理部のデータ受信可能状態を他の通信処理部に通知、或いは他の通信処理部のデータ受信可能状態を自通信処理部が検出する方法を、図5を用いて説明する。尚、複数の通信処理部は通信可能にリング状のバス上に接続されているものとする。
図5は、第一の実施形態におけるデータ処理部の構成を示すブロック図である。図5において、データ処理部601は画像処理装置における基本構成要素の1つである。リングバス602は自通信処理部と他の通信処理部とを接続する。通信処理部603はリングバス602を用いて通信する際の通信を制御する。データ処理回路604はデータ処理部601に割り当てられたアルゴリズムで通信処理部603から受け取ったデータを処理する。
尚、図5では、基本構成要素は通信処理部603とデータ処理回路604との組み合わせであるが、通信処理部603と図4に示すデータ取得部301やデータ出力部306との組み合わせも含まれる。以下、これらの基本構成要素をリングバスにおける「ノード」と称する。
また、ノードとしてデータ処理部601を例に説明するが、データ取得部やデータ出力部を含むノードの場合には、データ処理回路604をデータ取得部やデータ出力部と読み替えるものとする。
通信処理部603において、パケット受信部605はリングバス602上を流れるパケットを受信する。パケット識別部606はパケット受信部605が受信したパケットの制御情報を確認し、自ノードで処理すべきパケットか否かを識別する。処理データ出力部607はパケット識別部606が自ノードで処理すべきパケットであると識別した場合に、そのパケットのデータをデータ処理回路604に送出する。データ受信可能状態検出部608はパケット識別部606が自ノードで処理すべきパケットであると判断した場合、自ノードの次にデータを処理するノードの受信可能状態を検出する。ここでデータ受信可能状態検出部608は、他のノードの通知部からの受信可能状態の通知を検出する機構である。
処理済データ入力部609は自ノードのデータ処理回路604で処理された処理済データを入力する。データ送信制御部610は処理済データ入力部609から入力されたデータをリングバス602へ出力する際に、データ受信可能状態検出部608で検出した状態に基づいて出力するか否かを制御する。
データ受信可能状態通知部611は、自ノードのデータ受信可能状態を自ノードより1つ前の順番でデータを処理するノードに通知するためのコマンドを生成する。この時、受信したデータからパケット識別部606が、最後に処理したノードを識別し、データ受信可能状態通知部611に通知先として伝える。パケット生成部612はパケット識別部606が自ノードで処理すべきでないと判断したパケットや、有効なデータを含んでいないと判断した空パケットから送信パケットを生成する。また、パケット生成部612は、データ送信制御部610からリングバス602上に出力する必要のあるデータや、データ受信可能状態通知部611で生成されたコマンドからも送信パケットを生成する。
パケット送信部613はパケット生成部612で生成されたパケットをリングバス602上に送信する。データ送信数カウンタ614はデータ処理回路604で処理され、リングバス602へ送出したパケットの数をデータ数としてカウントする。連続データ送信数レジスタ615はデータ処理回路604で処理されたデータを連続して送信する数を設定する。データ送信間隔カウンタ616は前回のデータ処理回路604で処理されたデータの送信から経過した期間を保持するために、サイクル毎にインクリメントされる。そして、データ送信間隔レジスタ617はデータ処理回路604で処理されたデータの送信間隔を保持する。
次に、リングバス602を介して複数のノード間で伝送されるパケットのフォーマットを、図6を用いて説明する。
図6は、第一の実施形態で伝送されるパケットのフォーマットを示す図である。ここで、伝送されるパケットのフォーマットには、図6に示すように(a)と(b)の2種類がある。まず、図6に示す(a)は、ノードで処理されるデータを伝送するデータパケットのフォーマットである。次に、図6に示す(b)は、処理順番で後段に位置するノードのデータ受信可能状態を、そのノードの1つ前に処理順番が設定されているノードへ通知するコマンドパケットのフォーマットである。
続いて、パケットフォーマットの詳細な構成を説明する。データパケットのフィールド201〜205は、図2に示すパケットフォーマットと同様である。フィールド701はパケットがデータパケットかコマンドパケットかを識別するための識別子(Type)を格納する。
一方、コマンドパケットのフィールド701、201〜204はデータパケットと同様である。フィールド702はコマンドの内容を保持する。ここで、コマンドセットには、処理上の後段に位置するノードのデータ受信可能状態を前段のノードへ通知するコマンドが含まれる。
尚、フィールド204のIDは、データパケットが正しい処理順番で複数のノード間で受け渡され、またコマンドパケットが正しくそのコマンドの対象とするノードに渡されるという目的を満たすに十分な値であれば、そのフォーマットは限定しない。
例えば、フィールド204のIDは、上述したようにデータを最後に処理したノードのIDではなく、パケットの送り手と受け手の識別子の組み合わせにより割り当てられていても良い。
また、データパケットとコマンドパケットとでフィールド204のIDのフォーマットが異なっていても良い。
更に、受信可能状態を通知するコマンドパケットのフィールド702におけるコマンドの内容は受信可能状態だけでなく、受信可能なデータの個数や受信可能となるまでの時間(サイクル数)など受信可能状態の具体的な情報を含んでいても良い。
第一の実施形態におけるデータ処理部は、それぞれデータ処理を行うために必要となるデータ数が予め決まっており、このデータ数は処理上で前段に位置するデータ処理部の連続データ送信数として予め連続データ送信数レジスタ615に記憶されている。処理上で後段に位置するデータ処理部の受信可能状態が受信可能になったことをデータ受信可能状態検出部608にて検出すると、連続データ送信数レジスタ615(不図示)に設定された連続データ送信数に相当する量のデータを送信する。このときのデータ送信の間隔は、後段に位置するデータ処理回路の処理時間に合わせて、データを取りこぼさずに受信可能な間隔を取るように予めデータ送信間隔レジスタ617(不図示)に設定しておく。レジスタ615、617は各データ処理部が個別に有してもよいし、共有してもよい。
ここで、データ送信制御部610の処理を、図7を用いて説明する。
図7は、第一の実施形態におけるデータ送信制御部610が行う処理を示すフローチャートである。まずステップS801で、データ受信可能状態検出部608が検出した処理上で後段に位置するノードのデータ受信可能状態を確認する。そして、ステップS802で、受信可能状態になるまで、ステップS801の処理を繰り返す。その後、受信可能状態になるとステップS803へ処理を進め、データ送信数カウンタ614の値を0にリセットする。
次に、ステップS804では、処理済データ入力部609からデータ処理回路604で処理された送信可能なデータを入力したか確認する。そして、ステップS805で、送信可能なデータを入力するまで、ステップS804の処理を繰り返す。その後、送信可能なデータを入力するとステップS806へ処理を進め、データ送信間隔カウンタ616をインクリメントする。そして、ステップS807で、前回の送信からの間隔(データ送信間隔カウンタ616の値)が後段で処理可能な間隔(データ送信間隔レジスタ617の値)以上になるまで、ステップS806の処理を繰り返す。
このステップS807での判定条件が満たされるとステップS808へ処理を進める。ステップS808では、パケット生成部612へデータを送り、パケット生成部612がパケットを生成し、パケット送信部613によってリングバス602へ送出される。
次に、ステップS809で、データ送信間隔カウンタ616をリセットし、ステップS810でデータ送信数カウンタ614をインクリメントする。そして、ステップS811で、データ送信数カウンタ614の値が連続データ送信数レジスタ615の値に達したかを判定する。判定した結果、連続データ送信数のデータを送信していなければステップS804に戻り、上述の処理を繰り返し、連続データ送信数のデータを送信し終えたならば、再びステップS802で後段のデータ処理部が受信可能となるまで待つ。
次に、ノードがデータ受信可能状態を処理上の前段に位置するノードに通知する処理を説明する。データ受信可能状態通知部611がパケット受信部605でのパケットの受信状態とデータ処理回路604での処理状態に基づいて受信可能状態を判定する。ここで、コマンドを使って受信可能状態を通知するために、通知対象である処理上で前段のノードで検出されるまでのレイテンシが最小で1サイクル、最大でリングバス602の1周分のレイテンシよりも1サイクル少ないサイクル数がかかる。更に、通知対象から送信されたデータが実際に届くまでは、その途中に他のノードでの処理がある場合も考慮する必要があるが、通知コマンドの分を含めると少なくともリングバス602の1周分のレイテンシがかかる。
そこで、このレイテンシを考慮すると、データ受信可能状態が受信可能になったことの通知コマンドを送るタイミングは、通知するノードがデータを受信可能になったときよりも早くてもかまわない。
但し、届いたデータを取りこぼした場合には処理性能が低下するため、データ受信可能状態が受信可能状態になったことを通知した後、実際にデータが届くまでのレイテンシを次のようにすることが望ましい。即ち、受信可能の通知を実際に受信可能となる時間よりも早めたサイクル数の上限とすることが望ましい。
次に、図8に示す画像処理装置に第一の実施形態におけるデータ処理部を適用した場合の処理を説明する。
図8は、第一の実施形態における画像処理装置の構成の一例を示す図である。データ取得部301、データ出力部306、データ処理回路501、503は夫々、通信処理部901〜904に接続されている。また、パケット905〜908はデータパケットであり、パケット909はデータパケットである。ここでパケット909は、通信処理部903から通信処理部901へ送られ、通信処理部903が受信可能となったことを通知する。この時、コマンドパケットもデータパケットと同じようにリングバス602を周回する。
まず、図8に示す(a)では、データ処理回路503でデータパケット905を先頭にデータパケット906までの4つのデータパケットが揃い、処理を行っている。このとき、データ処理回路503に接続された通信処理部903の前段である通信処理部901は通信処理部903からの受信可能コマンドを待っているため、続くデータパケット907の送信を抑制している。
次に、データ処理回路503が処理を終了し、データ処理回路501がデータパケット906のデータを処理している状況を図8(b)に示す。このとき、コマンドパケット909が通信処理部901に届き、データパケット907の送信が開始される。その後、データパケット908までの4つのデータが図8に示す(a)の状況と同様にデータ処理回路503に供給される。但し、データパケット907を送信した際に、データ処理回路501がデータパケット906を処理中であるため、データパケット907がデータ処理回路501で受信されない状況を考慮する必要がある。
これに対して、第一の実施形態では主に4つの方法によって各通信処理部が後段に送信するデータの送信量の制御をすることが可能である。1つ目は、通信処理部902も通信処理部901へ受信可能状態を通知しておくことである。2つ目は、通信処理部901がコマンドパケット909を受信後、データパケット907をすぐに送るのではなく、他のデータと同様に、データパケット906の処理が完了する3サイクル以上の間隔を空けてデータパケット907を送信することである。
3つ目は、通信処理部903でのコマンドパケット909の送信タイミングを調節することである。そして、4つ目は、コマンドパケット909にデータパケット906の処理が完了する3サイクル以上の間隔を空けることを示す情報を含めることである。
4つ目を実現するには、データ受信可能状態検出部608がコマンドパケット909により指示された間隔を空けた後、データ送信制御部610へ通信処理部903が受信可能となったことを通知すれば良い。
尚、上述の処理は、データ処理回路503が4つのデータによって2倍の8つのデータを出力するようなデータ量を増大させる場合であっても同様の効果をもたらす。その場合、最後の8つ目のデータは、図8に示す(b)のデータパケット906と同様に、データ処理回路501で処理される。そのため、通信処理部903が受信可能となることを通知するコマンドパケット909も同様に通信処理部901に届き、通信処理部903の処理状況に応じて適切なデータが通信処理部901から供給される。また、これが2倍以外のデータ量を増加させる場合だけでなく、縮小させる場合であっても同様にして適用可能であることは言うまでもない。
以上、第一の実施形態によれば、コマンドを用いて処理上で後段の処理回路が前段の処理回路に自身のデータ受信可能状態を通知することで、前段からリングバス上に供給されるデータが後段のノードで処理されるために最適な量とタイミングに調節される。その結果、データフローにおいてデータ量が増大する場合にも、前段からのデータ供給は後段でデータが必要なときに行われるため、リングバスの容量を浪費せず性能を落とさずに効率の良いデータフロー制御が可能となる。また、第一の実施形態によれば、データ受信可能状態の通知をするためにリングバスとは別の信号線を設ける必要が無いので、データ処理装置の小型化も可能になる。
[第二の実施形態]
次に、図面を参照しながら本発明に係る第二の実施形態を詳細に説明する。第二の実施形態におけるデータ処理部の構成は、第一の実施形態と同様に、図5に示す構成とする。但し、リングバス602上を伝送されるパケットのフォーマットが図9に示すように、第二の実施形態では異なる。図9は、第二の実施形態におけるパケットのフォーマットの一例を示す図である。
具体的には、フィールド1001が、処理上で後段のデータ処理部のデータ受信可能状態を示すRequestビットを格納する。そして、パケット識別部606は、自ノードで処理すべき有効なデータパケットのRequestビットの値をデータ受信可能状態検出部608へ送る。これにより、データ受信可能状態検出部608ではRequestビットの値に基づいて後段のノードが受信可能か否かを判定し、データ送信制御部610でデータの送信を制御する。
一方、受信可能状態を処理上で前段のノードに通知する場合には、データ受信可能状態通知部611から通知される情報が、パケット生成部612でRequestビットの値としてセットされる。
[第三の実施形態]
次に、図面を参照しながら本発明に係る第三の実施形態を詳細に説明する。第三の実施形態におけるデータ処理部の構成は、第一の実施形態と同様に、図5に示す構成とする。しかし、図10に示すように、各データ処理部のデータ受信可能状態通知部とデータ受信可能状態検出部とがクロスバスイッチ1101で直接接続されている。そして、直接接続された信号線にて受信可能状態の通知を行うものである。
尚、各データ処理部のデータ受信可能状態通知部とデータ受信可能状態検出部との接続形態は、直接接続されているのであれば、クロスバスイッチ以外の方法であってかまわない。
またリングバスとは別の構成で通知用の接続線を設ける場合、実装されているデータ処理部を全て接続する必要はない。例えば、リングバスにデータを投入するデータ取得部を備えたデータ処理部と、処理によってデータ量を増大させることが分かっているデータ処理部と、を接続する形態にすると信号線の数を抑え、効率良く制御することができる。
[第四の実施形態]
次に、図面を参照しながら本発明に係る第四の実施形態を詳細に説明する。第四の実施形態におけるデータ処理部の構成は、第一の実施形態と同様に、図5に示す構成とする。しかし、データ送信間隔レジスタ617に複数の値を設定可能である。
第四の実施形態におけるデータ送信制御部610では、データ送信数カウンタ614の値に応じて複数のデータ送信間隔から対応する値を選択し、図7に示すステップS804で利用する。従って、データ毎に送信間隔を変更する場合でも最適な間隔でデータを送信することができる。
[第五の実施形態]
次に、図面を参照しながら本発明に係る第五の実施形態を詳細に説明する。第五の実施形態では、検出対象となるデータ処理部のデータ受信可能状態が受信可能である場合に、データの送信可能な期間Aと送信を抑制する期間Bとを繰り返す。
図11は、第五の実施形態におけるデータ処理部の構成を示すブロック図である。尚、601〜609、611〜613は第一の実施形態におけるデータ処理部と同様の機能又は構成である。また、データ送信制御部610の機能は同じだが、機構が第一の実施形態とは異なる。
図11において、レジスタ1201はデータの送信可能な期間Aを設定するデータ送信可能期間設定レジスタである。1202はデータの送信を抑制する期間Bを設定するデータ送信抑制期間設定レジスタである。1203はレジスタに設定された期間Aと期間Bとを交互に繰り返し、データ送信制御部610に通知するタイマである。
第五の実施形態におけるデータ送信制御部610は、データ受信可能状態検出部608が、後段のノードが受信可能であると検出した場合、タイマ1203によって通知される周期でデータの送信と抑制を繰り返す。
このように、第五の実施形態ではデータの送信を設定された周期で行うことでデータを規則的に流し、かつ、後段からデータ受信可能状態が通知されることで、適応的に必要なだけのデータを流すことが可能となる。
尚、後段のノードが受信可能状態に切り替わった場合に、タイマ1203の動作を初期状態から開始するか、前回中断したところから開始するかは、特に限定しない。
また、データ送信抑制期間設定レジスタ1202に設定された送信を抑制する期間Bは、データ処理回路604によって処理済データ入力部609にデータが送られる間隔以上の期間であることが望ましい。さもなければ、必ずデータ送信抑制期間設定レジスタ1202に設定した値以上の間隔でデータが送信されるため、後段のノードが受信可能な間隔であることが保障されていることになり、設定しない場合と効果は変わらない。
[第六の実施形態]
次に、図面を参照しながら本発明に係る第六の実施形態を詳細に説明する。第六の実施形態では、受信可能状態の検出対象となるデータ処理部がデータを受信可能である場合に、第五の実施形態で説明したデータ送信間隔の制御に用いたタイマを複数個用いるものである。これにより、複雑なデータ送信間隔の制御を行うことができる。
図12は、第六の実施形態におけるデータ処理部の構成を示すブロック図である。尚、図12では、n個のタイマを利用した構成になっている。
レジスタ1301〜1304はデータ送信可能期間設定レジスタ1〜nである。レジスタ1302、1305はデータ送信抑制期間設定レジスタ1〜nである。タイマ1303、1306はタイマ1〜nである。そして、タイマ1303、1306と、データ送信可能期間設定レジスタ1301、1304と、データ送信抑制期間設定レジスタ1302、1305とは、同じ添え字を持つものがグループになっており、それぞれの機能は第五の実施形態で説明した通りである。
データ送信制御部610は、データ受信可能状態検出部608により後段のノードが受信可能であると検出した場合に、n個のタイマが全てデータ送信可能であるとき、即ち、n個のタイマの論理積をとることでデータ送信タイミングを決定する。
このように、第六の実施形態ではデータの送信を複数のタイマにより求めたタイミングで行うことでデータを流し、かつ、後段からのデータ受信可能状態が通知されることで、適応的に必要なだけのデータを流すことが可能となる。
尚、第六の実施形態でも、後段のノードが受信可能状態に切り替わった場合に、n個のタイマの動作を初期状態から開始するか、前回中断したところから開始するかは、特に限定しない。
第六の実施形態では、第五の実施形態とは異なり、複数のタイマの論理積によって複雑なデータの送信間隔制御を実現する。そのため、データ処理回路604が処理済データ入力部609にデータを送る間隔よりもデータ送信抑制期間設定レジスタに設定された送信を抑制する期間を短く設定した場合、意図したデータ送信間隔ではデータを送信できなくなる。従って、各データ送信抑制期間設定レジスタに設定された送信を抑制する期間は、データ処理回路604が処理済データ入力部609にデータを送る間隔以上の期間に設定する。
前述の各実施例において、各工程は、ネットワーク又は各種記憶媒体を介して取得したソフトウエア(プログラム)をコンピュータ等の処理装置(CPU、プロセッサ)にて実行することでも実現できる。

Claims (14)

  1. 通信可能にリング状のバスに接続された複数のデータ処理部を有し、前記複数のデータ処理部が順番にデータを処理するデータ処理装置であって、
    前記複数のデータ処理部の各々は、
    当該データ処理部が受信したデータに基づいて、当該データ処理部の1つ前の順番においてデータを処理するデータ処理部を識別する識別手段と、
    当該データ処理部の受信可能状態を判定し、前記識別手段の識別したデータ処理部に前記受信可能状態を通知する通知手段と、
    当該データ処理部の1つ後の順番においてデータを処理するデータ処理部の通知手段からの通知に応じて、データの送信量を制御する制御手段とを有することを特徴とするデータ処理装置。
  2. 前記通知手段は、予め決められたコマンドを前記リング状のバスに送信することで通知を行うことを特徴とする請求項1に記載のデータ処理装置。
  3. 前記通知手段は、前記リング状のバスに送信されるデータの予め決められたビットにて通知を行うことを特徴とする請求項1に記載のデータ処理装置。
  4. 前記通知手段は、前記リング状のバスとは別に設けられ、前記データ処理部を直接接続している信号線にて通知を行うことを特徴とする請求項1に記載のデータ処理装置。
  5. 前記制御手段は、当該データ処理部の1つ後の順番においてデータを処理するデータ処理部がデータを受信可能な間隔でデータを送信するようにデータ送信間隔を制御することを特徴とする請求項1乃至4の何れか1項に記載のデータ処理装置。
  6. 前記制御手段は、当該データ処理部の1つ後の順番においてデータを処理するデータ処理部が受信可能状態になったことを通知されると、連続データ送信数として予め決められている数だけ連続してデータ送信を行うことを特徴とする請求項5に記載のデータ処理装置。
  7. 前記制御手段は、当該データ処理部の1つ後の順番においてデータを処理するデータ処理部が受信可能状態になったことを通知されると、前記連続データ送信数に応じた間隔でデータを送信することを特徴とする請求項6に記載のデータ処理装置。
  8. 前記データ処理部の各々は、前記連続データ送信数を記憶するレジスタを更に有することを特徴とする請求項6又は7に記載のデータ処理装置。
  9. 前記通知手段は、通知対象となるデータ処理部に設定された連続データ送信数に相当するデータを受信可能となったときに通知することを特徴とする請求項6乃至8の何れか1項に記載のデータ処理装置。
  10. 前記制御手段は、当該データ処理部の1つ後の順番においてデータを処理するデータ処理部が受信可能である場合に、データ送信可能な期間にデータを送信し、データ送信を抑制する期間にデータの送信を抑制することを繰り返すことにより、データ送信間隔を制御することを特徴とする請求項1乃至4の何れか1項に記載のデータ処理装置。
  11. 前記制御手段は、当該データ処理部の1つ後の順番においてデータを処理するデータ処理部が受信可能状態である場合に、複数のデータ送信可能な期間の全てにおいてデータ送信可能な期間にのみデータを送信することにより、データ送信間隔を制御することを特徴とする請求項1乃至4の何れか1項に記載のデータ処理装置。
  12. 前記データ送信可能な期間とデータ送信を抑制する期間を保持するレジスタを更に有することを特徴とする請求項10又は11に記載のデータ処理装置。
  13. 通信可能にリング状のバスに接続されデータを順番に処理する複数のデータ処理部によるデータ処理方法であって、
    前記複数のデータ処理部の各々の識別手段が、当該データ処理部が受信したデータに基づいて、当該データ処理部の1つ前の順番においてデータを処理するデータ処理部を識別する識別工程と
    前記複数のデータ処理部の各々の通知手段が、当該データ処理部の受信可能状態を判定し、前記識別工程にて識別したデータ処理部に前記受信可能状態を通知する通知工程と、
    前記複数のデータ処理部の各々の制御手段が、当該データ処理部の1つ後の順番においてデータを処理するデータ処理部からの通知に応じて、データの送信量を制御する制御工程とを有することを特徴とするデータ処理方法。
  14. コンピュータに、
    通信可能にリング状のバスに接続され、データを順番に処理する複数のデータ処理部による、データ処理方法であって、
    前記複数のデータ処理部の各々の識別手段が、当該データ処理部が受信したデータに基づいて、当該データ処理部の1つ前の順番においてデータを処理するデータ処理部を識別する識別工程と
    前記複数のデータ処理部の各々の通知手段が、当該データ処理部の受信可能状態を判定し、前記識別工程にて識別したデータ処理部に前記受信可能状態を通知する通知工程と、
    前記複数のデータ処理部の各々の制御手段が、当該データ処理部の1つ後の順番においてデータを処理するデータ処理部からの通知に応じて、データの送信量を制御する制御工程とを有することを特徴とするデータ処理方法の各工程を実行させるためのプログラム。
JP2009041295A 2009-02-24 2009-02-24 データ処理装置、データ処理方法およびプログラム Active JP5406558B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2009041295A JP5406558B2 (ja) 2009-02-24 2009-02-24 データ処理装置、データ処理方法およびプログラム
US12/709,395 US8300535B2 (en) 2009-02-24 2010-02-19 Information processing apparatus, method thereof, and storage medium
US13/619,603 US9043524B2 (en) 2009-02-24 2012-09-14 Information processing apparatus, method thereof, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009041295A JP5406558B2 (ja) 2009-02-24 2009-02-24 データ処理装置、データ処理方法およびプログラム

Publications (3)

Publication Number Publication Date
JP2010198226A JP2010198226A (ja) 2010-09-09
JP2010198226A5 JP2010198226A5 (ja) 2012-03-22
JP5406558B2 true JP5406558B2 (ja) 2014-02-05

Family

ID=42822904

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009041295A Active JP5406558B2 (ja) 2009-02-24 2009-02-24 データ処理装置、データ処理方法およびプログラム

Country Status (1)

Country Link
JP (1) JP5406558B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5460088B2 (ja) * 2009-03-17 2014-04-02 キヤノン株式会社 情報処理装置、情報処理方法およびプログラム
JP5538798B2 (ja) * 2009-03-17 2014-07-02 キヤノン株式会社 データ処理装置およびデータ処理方法またはプログラム
JP5460143B2 (ja) * 2009-06-29 2014-04-02 キヤノン株式会社 データ処理装置、データ処理方法およびプログラム
JP5590849B2 (ja) * 2009-10-08 2014-09-17 キヤノン株式会社 複数の処理モジュールを有する並列処理回路を備えるデータ処理装置、その制御装置、およびその制御方法、プログラム
JP5600492B2 (ja) * 2010-06-28 2014-10-01 キヤノン株式会社 データ処理装置、データ処理方法、制御装置、制御方法およびプログラム
JP2016139300A (ja) * 2015-01-28 2016-08-04 Necプラットフォームズ株式会社 通信処理装置、通信処理方法、及び、情報処理システム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6281844A (ja) * 1985-10-05 1987-04-15 Fujitsu Ltd デ−タ伝送方式
JPH01240045A (ja) * 1988-03-22 1989-09-25 Nec Corp レジスタ・インサーション伝送路多重アクセス方式のフロー制御方法
JP2734246B2 (ja) * 1991-09-24 1998-03-30 日本電気株式会社 パイプラインバス
JPH05265989A (ja) * 1992-03-16 1993-10-15 Mitsubishi Electric Corp マルチプロセッサシステム
JPH0662026A (ja) * 1992-08-10 1994-03-04 Hitachi Ltd トークンリング式ネットワークにおけるデータ伝送方法及びシステム
JPH06276205A (ja) * 1993-03-18 1994-09-30 Hitachi Ltd ネットワークシステム
JP2000285087A (ja) * 1999-03-31 2000-10-13 Fuji Xerox Co Ltd ノード間データ通信方法
JP2002185560A (ja) * 2000-12-15 2002-06-28 Sharp Corp シリアル転送方式
JP4041944B2 (ja) * 2001-10-18 2008-02-06 日本電気株式会社 ネットワークの混雑制御システムと混雑制御ノード、及び混雑制御プログラム
JP2003198574A (ja) * 2001-12-25 2003-07-11 Mitsubishi Electric Corp 通信制御方式
JP4104939B2 (ja) * 2002-08-29 2008-06-18 新日本無線株式会社 マルチプロセッサシステム
JP4777996B2 (ja) * 2005-10-03 2011-09-21 パナソニック株式会社 通信装置、通信方法、プログラムおよび集積回路

Also Published As

Publication number Publication date
JP2010198226A (ja) 2010-09-09

Similar Documents

Publication Publication Date Title
JP5406558B2 (ja) データ処理装置、データ処理方法およびプログラム
US9710410B2 (en) Camera control slave devices with multiple slave device identifiers
US8520563B2 (en) Interface device, communications system, non-volatile storage device, communication mode switching method and integrated circuit
JP5922898B2 (ja) 情報処理装置、通信方法およびプログラム
US9043524B2 (en) Information processing apparatus, method thereof, and storage medium
JP5538798B2 (ja) データ処理装置およびデータ処理方法またはプログラム
US20100303090A1 (en) Data processing apparatus using ring bus, data processing method andcomputer-readable storage medium
JP2010198357A (ja) インタフェース制御装置
JP2010200034A (ja) 情報処理装置及びその制御方法、コンピュータプログラム
JP5460088B2 (ja) 情報処理装置、情報処理方法およびプログラム
JP5414506B2 (ja) データ処理装置、データ処理方法、及びプログラム
JP5432587B2 (ja) データ処理装置、その制御方法およびプログラム
JP5930767B2 (ja) 電子デバイス、通信制御方法
JP2007316699A (ja) データ処理装置
JP4563210B2 (ja) 通信制御方法、通信ノード、及び通信システム
JP2013175156A (ja) データ処理装置、入力制御装置、及び制御方法
US8285902B2 (en) Data transfer apparatus and data transfer method
EP2398222A1 (en) Camera system
US9336172B2 (en) Parallel computer system, data transfer device, and method for controlling parallel computer system for performing arbitration
JP2010262439A (ja) 情報処理装置、情報処理方法およびプログラム
JP2011198047A (ja) Usb中継装置及び方法
JP4261992B2 (ja) 情報データの送受信装置及び送受信方法
JP2007034893A (ja) データ処理モジュール及びそのメッセージの送信準備方法
JP2006115315A (ja) データ転送方法及びデータ転送装置
WO2007097033A1 (ja) 情報中継装置、情報中継装置の制御方法、情報処理システム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120208

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130722

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130726

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130920

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131004

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131101

R151 Written notification of patent or utility model registration

Ref document number: 5406558

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151