JP5550261B2 - リングバスを用いたデータ処理装置、データ処理方法およびプログラム - Google Patents

リングバスを用いたデータ処理装置、データ処理方法およびプログラム Download PDF

Info

Publication number
JP5550261B2
JP5550261B2 JP2009130852A JP2009130852A JP5550261B2 JP 5550261 B2 JP5550261 B2 JP 5550261B2 JP 2009130852 A JP2009130852 A JP 2009130852A JP 2009130852 A JP2009130852 A JP 2009130852A JP 5550261 B2 JP5550261 B2 JP 5550261B2
Authority
JP
Japan
Prior art keywords
data
processing
input
ring bus
unit
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.)
Expired - Fee Related
Application number
JP2009130852A
Other languages
English (en)
Other versions
JP2010277429A5 (ja
JP2010277429A (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 JP2009130852A priority Critical patent/JP5550261B2/ja
Priority to US12/787,248 priority patent/US20100303090A1/en
Publication of JP2010277429A publication Critical patent/JP2010277429A/ja
Publication of JP2010277429A5 publication Critical patent/JP2010277429A5/ja
Application granted granted Critical
Publication of JP5550261B2 publication Critical patent/JP5550261B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multi Processors (AREA)
  • Image Processing (AREA)

Description

本発明はリングバスを用いたデータ処理を行うデータ処理装置、その制御方法およびプログラムに関する。
処理回路を並列に処理させ効率よくデータ処理を行う方法として、処理回路をリング型のバスで接続する方法(特許文献1)が提案されている。また、画像のフィルタ処理を並列処理するため、データに制御コードを添付し、制御コードに従ってデータをプロセッサに取り込むことでオーバーラップするデータを複数のプロセッサで受信できるようにする方法がある(特許文献2)。
複数の処理回路の処理順番を簡単に変更できるようにしつつ、バスの競合を低減するため、複数の処理回路と(入出力)制御回路をリング状に接続し、リング状に接続した処理回路上にパケット化したデータを周回させる方法もある(特許文献3)。
特許第2522952号公報 特開昭63−247858号公報 特許第3907471号公報
特許文献1の方法では、入力端において外部メモリがI/Fなどから入力したデータを、実際に接続された順番で処理回路(以下、モジュール)が処理し、出力端において外部メモリ等へ出力する。そのため、複数のモジュールの処理の順序は、ハードウェアを実装する段階で接続された順序に制限される。ここで、処理回路の順番を任意に入れ替えようとすると、複雑な構成が必要とし回路規模を増大させたり、複雑な処理が増えて処理性能の著しい低下をもたらしたりする。
特許文献2、3の方法では、ある処理モジュールによってリングバス上のパケットが占有されてしまうと、データ転送効率が落ちてしまうことがある。例えば、他の処理モジュールがリングバス上にデータを出力できなくなってデッドロックが発生してしまうこともある。
本発明はリングバス上の複数のモジュールが順番に処理を行うシステムにおいて、処理を効率化できるデータ処理装置、データ処理方法およびプログラムを提供することを目的とする。
上記課題を達成するために、本発明に係る情報処理装置は、複数の処理モジュールがリングバスに接続され、前記複数の処理モジュールが予め設定された順番でデータ処理を行うデータ処理装置において、前記処理モジュールは、リングバス上のデータの送受信を行う通信手段と、受信されたデータの処理を行う処理手段と、前記通信手段と前記処理手段の間にあって、受信したデータを一時保持する入力FIFOと、前記通信手段と前記処理手段の間にあって、出力データを一時保持する出力FIFOを有し、前記複数の処理モジュールのうち、処理手段を用いない処理モジュールに対しては、前記通信手段で受信したデータを、前記入力FIFOに入力し、前記処理手段を介さずに、前記出力FIFOに入力するようにし、かつ、前記複数の処理モジュールのうち、処理手段を用いる処理モジュールに対しては、前記通信手段で受信したデータを、前記入力FIFOに入力して、前記入力FIFOのデータを前記処理手段に入力し、前記処理手段で処理されたデータを前記出力FIFOに入力するようにすることによって、前記リングバスに接続されたデータ保持手段の段数を制御することを特徴とする。
本発明により、各モジュールが処理済のデータをリングバス上に放出できなくなる可能性を低減し、画像処理装置の処理性能が低下することを抑制することが可能となる。
バスに接続するモジュールの概略構成を示すブロック図である。 パケットのフォーマットを示す図である。 リングバスを有するデータ処理部の概略構成を示すブロック図である。 データ処理装置の概略構成を示すブロック図である。 モジュール毎に2つのバッファを備えているデータ処理装置の概略構成を示す図である。 通信部の動作速度を処理部の2倍に設定した場合の各通信部をパケットが流れる挙動を示す図である。 データ処理部の起動処理を示すフローチャートである。 モジュール外にデータ保持部を設ける場合のモジュールの構成を示すブロック図である。 通信部と処理部の間にFIFOを設けた場合のモジュールの構成を示すブロック図である。 通信部と処理部の間にFIFOを設けたモジュールを有するデータ処理装置の概略構成を示すブロック図である。
<実施例1>
図1は、本発明の一実施例であるデータ処理装置の有する処理モジュール(以下、モジュール)の概略構成を示す図である。モジュール100は、バス110によってリング状に接続されているモジュールの1つである。ここで、リングバスとはバスと複数のノード(モジュール)によって形成されるリング状のネットワーク(データが流れる経路)を示すものであり、以下の説明ではモジュール間を円環状に接続するバスはリングバスと区別して単純にバスと称する。通信部120は、モジュール間におけるデータの送受信を行ったり、処理部130とデータを送受信したりする。また、クロックが入る度に移動するパケットを一時的に保持する役割も有する。
受信部121は、バス110から受信するデータパケットのうち、処理部130で処理すべきデータパケットを識別して受信し、パケットからデータを抽出し処理部130に転送する。処理部130は、受信部121から転送されるデータを処理する。送信部122は、処理部130において処理済みのデータ、または、通信部120において後述する保留情報等をパケットに格納し、更にセレクタ123へ出力する。
セレクタ123は、バス110より入力されたままのパケット又は送信部122で加工されたパケットのいずれかを選択して出力する。ここで、セレクタ123の制御は送信部122が行う。バッファ124は、セレクタ124の出力を単位時間だけ一時的に保持する。
また、各モジュールがリングバスの上流から取得するパケットを下流に流すように制御することで、リングバスのリング上では一方向にだけパケットが巡回することになる。
図2にはリングバスを流れるパケット200のデータ構成を示す図である。
validフラグ201はパケットが有効なデータを格納していることを示す。stallフラグ202(保留情報)はパケットが処理すべきモジュールによって受信されず保留された状態(保留状態)にあることを示す。ID203はデータの送信元(又は最後に処理したモジュール)を示すIDであり、カウント204はデータの送信順を示すカウント値でモジュールが処理すべきデータの順番を確認するのに用いる。また、データ205は各モジュールで処理するべきデータ、もしくは処理したデータを格納する。従ってモジュール100は各モジュール固有のIDと処理すべきパケットを識別するためのID(以下、待ち受けIDと称す)とを格納するレジスタと、一連のデータのどこまで処理したかを示す値(入力・出力カウント値)をカウントするカウンタとを有している。
以下、モジュール100の動作を説明する。モジュール100の処理したデータをバスに出力する場合、送信部122はバスからモジュールが受信した入力パケットのvalidフラグ201を検出し、無効パケット(空きパケット)を探す。ここで、入力パケットのvalidフラグ201が有効を示す場合、そのままバッファ124に入力パケットを格納し、次のクロックでパケットをバスに出力する。
一方、入力パケットのvalidフラグ201が無効を示す場合でかつ、処理部130が処理済みで出力可能なデータがある場合、送信部122は空パケットに処理済みのデータを格納する。詳細には、送信部122は空パケットに処理済のデータを格納し、validフラグ201に有効を示す値に設定し、stallフラグ202に無効を示す値を設定し、自分のモジュールID(送信元ID)、出力カウンタ(不図示)の値を付加する。そして、次のクロックでこのパケットをバスに出力する。このとき、出力カウンタをインクリメントして次に処理すべきパケットの識別処理に用いる。
バス110からモジュール100がパケットを受信する場合、受信部121は入力パケットのvalidフラグ201、送信元ID203、カウント値204を監視する。そして受信部121が、validフラグ201が有効で、送信元ID203がレジスタに設定されている待ち受けIDと一致し、カウント値204が入力カウンタ値と一致するパケットが入力されたと判定した場合、データの取り込み処理をする。詳細には、受信部121は処理部130がデータを受信可能である事を確認し、入力パケットのデータを処理部130に取り込む。入力パケットは、validフラグ201を無効にして次の送信部122からバッファ124を通ってバスへ出力される。このとき、入力カウンタ(不図示)をインクリメントし、入力カウンタ値を更新する。
この場合、モジュール内の処理部130がデータを受信不可能であるなら、入力パケットのstallフラグ202に有効を示す値に設定し(即ち、データの取り込みを保留)、他のフィールドは変更せずにバッファ124へ出力する。なお、入力カウンタと出力カウンタは、同期を取るため、データ転送開始前に同じ値に初期化される。
一方で、受信部121が入力パケットを監視して、validフラグ201が無効、送信元ID203がレジスタの待ち受けIDと一致しない、カウント値204が入力カウンタ値と一致しない等の条件の1つに相当するパケットは下流側のバスへ通過させる。
以上のように、モジュール固有のIDと待ち受けIDとを設定することで、複数の処理モジュールに簡易な構成によって所望の順番でデータを処理させることができる。
図3は、モジュールA〜D(310,320,330,340)を数珠繋ぎに接続しているリングバス300を有している画像処理部の概略構成を示す図である。
モジュール310は、画像処理部の外部のデータバスとの接続をする外部入力360を介して外部からのデータを入力し、処理が終了したデータを外部出力350によって外部に出力する機能を持つターミナルモジュールである。モジュール320、330、340は、リングバス300に接続され固定的な処理を割り当てられている処理モジュールである。
これらのモジュール310,320,330,340のそれぞれには、リングバスに接続されデータの送受信を行う通信部311,321,331,341と、個別の処理を行う処理部312,322,332,342が備えられている。
これらの処理部は、モジュールごとに異なる処理を行ってもよいし、またいくつかのモジュールで同じ処理を複数回行ってもよい。また、図3には4つのモジュールを有する画像処理部を例示しているが、リングバスに接続されるモジュールの数には制約はなく、固定的な処理を割り当てられているモジュールが2つ以上接続されていればよい。
図4は、本発明の画像処理部(データ処理部)を配置するシステムの構成例を示す。システム制御部400は、演算制御用のCPU401、固定データやプログラムを格納するROM402、データの一時保存やプログラムのロードに使用されるRAM403および外部データを保持する外部記憶装置404を有するシステム制御部である。
データ入力部410は、処理すべきデータを取り込む。例えば、イメージスキャナおよびA/D変換器などのデバイスによって構成される画像読み込み装置や、マイクおよびA/D変換などのデバイスによって構成される音声入力装置そのものであってもよいし、入力装置からデータを取得する受信部であってもよい。
画像処理部420は、図3に示したバスでデータ処理用のモジュールを数珠繋ぎにしているデータ処理部である。ここでは、画像に限らずパイプライン処理などの一連のデータ処理に適したデータであれば、適用する事が好ましいためデータ処理部と表記している。
データ出力部430は、処理済みのデータを外部に出力する。例えば画像データを印字ドットパターンに変換して出力するプリンタデバイスを含む画像出力装置や、音声データをD/A変換器等を通して出力する音声出力装置でもよい。もちろん、単に外部装置へデータを送信する送信部であってもよい。
データ入力部410において入力されたデータは、システム制御部に送られてCPU401で処理されてもよいし、そのままRAM403や外部記憶装置404に一時記録されてもよい。また、データ処理部420は、データ入力部410からの入力データを直接受け取って処理を行っても、システム制御部400からの指示ならびにデータ供給によって処理を行ってもよい。
また、データ処理部420の出力は、再度システム制御部400に送られても、また、直接データ出力部430に送られてもよい。
データ処理部420は、システム制御部400の処理によって予め個別のデータ処理内容を設定され、供給されるデータに対して設定された処理を施すように動作する。
図7は、システム制御部400のデータ処理部420に対する制御手順を示すフローチャートである。制御処理が開始されると、ステップS700において、データ処理装置のリセットが行われる。ここで、各モジュール100内の通信部120において、入力データカウンタ/出力データカウンタ(不図示)や待ち受けIDを保持するレジスタなどが初期化される。また、リングバス上の通信処理部の動作速度や各モジュールが利用可能なバッファの使用数なども初期化される。システム制御部は、動作速度を制御する動作速度制御部や、バッファの使用数(段数)を変更する変更部として機能する。
ステップS710において、バス上の通信処理部の動作速度などを含むリングバスの設定が行われ、ステップ720において各モジュールの通信部120に、受信データを識別するための待ち受けIDやバッファ124の段数などが設定される。
ステップ730において処理部に対するパラメータ指定などが行われ、ステップ740においてデータ処理の開始指示が行われる。そして、ステップ750では、データ処理の終了通知を監視する処理が行われ、これはステップ760において、処理終了が検知されたことを判断するまで繰り返される。
ステップ760において、データ処理装置の終了通知が確認されると、処理を終了する。
図5は、図3の画像処理部においてのバッファの構成を詳細に示した概略図である。図1に示したバッファ124に相当するバッファはバッファ512,522,532,542であり、ここではさらにバッファ511、521,531,541を追加している。ここで、バッファ512,522,532,542は、通常そのそれぞれの直前にあるバッファの内容を次のクロックで保持し、その次のクロック次のモジュールへ送信するように構成してある。またバッファ512,522,532,542は、モジュール内の処理部130、受信部121、送信部1223およびセレクタ123とは直接接続されていない。
このバッファ512,522,532,542が挿入されたことにより、モジュール間のデータ送受信はそれぞれ1サイクルずつ遅れることとなる。図6を用いて、通信部A〜Dの動作速度を処理部の動作速度の2倍として動作させた場合のリングバス300を流れるパケットの挙動について説明する。また、以下の説明では簡略のためデータは所定量毎にパケット化するとする。
図6(a)は0サイクル目において、最初のデータ601がリングバスに投入され、バッファA−1(511)に保持された状態を示す。図6(b)は1サイクル目において、先に入力されたデータ601がバッファA−2(512)に移動して保持された状態を示す。この際に、モジュールAの処理部は、通信部A〜Dの半分のサイクルで動作しているため、このタイミングでデータを投入することはできない。同様にして次のサイクルで次のデータ602が投入され、さらに次のサイクルで、データ601,602はそれぞれ右のバッファに移動していくことになる。
図6(c)は動作開始から4サイクル目の状態である。この状態においてすべての処理部は、まだ処理すべきデータを受け取っていない。そして、モジュールCのバッファC−1に到達したデータ601はそのままモジュールCの処理部に取り込まれ、バッファC−1には残らない。
図6(d)は、5サイクル目の状態を示す。このとき、処理部Cはリングバスの半分の速度で動作していることから、処理の途中であり、スループットが1であったとしても、先ほど入力されたデータを出力することはできず、バッファC−1(531)は空きの状態となる。
図6(e)は、6サイクル目の状態を示す。このとき、バッファC−1(531)に接続されているモジュールCの処理部は、データ601の処理を完了している。従って、データ601を出力可能であると同時に次のデータ602を受信するので、バッファC−1(531)には、処理済みとなったデータ601が格納されつつ、次に処理するデータ602は処理部Cへと送られる。
図6(f)は、8サイクル目の状態を示す。このとき、再びモジュールCの処理部は、先ほど入力されたデータ602を処理済みであるため、次のデータ603を受け取りつつ、バッファC−1(531)にデータ602を出力する。
図6(g)は、10サイクル目の状態を示す。このとき、モジュールAの処理部は次のデータ606を投入しようとするが、リングバスを周回してきたデータ601がバッファA−1に存在するため、データ606をモジュールAに取り込まない。
図6(h)は、11サイクル目の状態を示す。先ほど投入できなかったデータ606は、バッファA−1が空くために投入可能となり、次のサイクルで、モジュールAの処理部が次のデータを出力しようとした際には、出力できずに滞っているデータがないことから、次のデータ出力を行うことが可能となる。
このように、本実施例によれば、通信部の動作速度を処理部の動作速度の2倍とすることで、通常通りデータが滞りなく流れている際には自動的に1つ置きのパケットにデータが格納されてリングバスを周回させる様にできる。これにより、通信部においてバスへのデータ送信が競合した際に初めて1つ置きの空きパケットが使用される様にできる。このため、単純に処理部と通信部の動作速度の関係を設定することにより、特別な制御処理なしにデータフローの遅延を最小限にすることが可能となる。
なお、図6では簡略のためにサイクル単位の時間を用いて説明したが、システムクロック等のシステムの基本となるサイクル周期の倍数でなくてもよく、各モジュールの処理部のスループット(例えば、1パケット辺りの処理に要する時間)の整数倍としてもよい。これは、図6において示したように、処理部が入力されたデータを出力するまでの間に少なくとも1つ以上のデータの移動が行われ、空きパケットが生成されればよいからである。このように、本発明の技術は、必ずしも処理部の動作スループットが1サイクルに1データを処理するものでなくても、適用可能である。
また、それぞれのモジュールが同じスループットで動作しない場合などにも適用するためには、基本クロックの整数倍で通信部を動作させることで、いかなるスループットのモジュール群に対しても適応可能な構成とすることも可能である。
例えば、モジュール1〜3があり、基本クロックの周期をTとして、モジュール1の処理時間は3T、モジュール2は2T、モジュール3は5Tなどのように表わせるとする。周波数を示すクロックCは、C=1/Tと表現できる。そして、通信部をkC(kは1以上の整数)のクロックで動作させればモジュール1〜3は1回の処理時間に相当する期間に連続して流れるパケットを占有することが無くなる。また、上記の場合、リングバスの速度(通信部の動作速度)の基準を2Tにしてしまうと、3TのPEとは位相がTだけずれてしまうために効率が良くない。従って、複数種類の処理速度のモジュールが混在する場合、複数のモジュールの処理時間の最大公約数をベースに、最大公約数以下の長さに1つのパケットを出力するように通信部の動作速度を設定すればよい。もちろん、周期Tに基づくと最大公約数なり、クロック周波数に基づくと最小公倍数になるが、これらは同義である。
以上のように制御することは、1つパケットを処理して出力するまでに所定長の処理時間を有する1つの処理モジュールに着目すれば、所定長の処理時間の間に少なくとも2つ以上のパケットを送信部から送信させるように制御することと同義である。 また、挿入したバッファの個数の比率に応じた速度で通信部を動作させたり、処理部が入力されたデータを処理する間にリングバス上のデータの進む量を多くしたりすることで、データとデータの間隔の数を増やすことが可能となる。ここでデータとデータの間隔とは、2つの有効なパケット間の空パケットの数にも相当する。
他にも、複数のデータ処理ストリームを同一のリングバス上に流す際に、同時に流すデータ処理ストリームの数に応じてリングバスの動作速度を速めることは効果的である。例えば二つのデータ処理ストリームを流す際(例えば2系統のパイプライン処理を並行してデータ処理部420に流す場合)には、1つのデータストリームを流す場合の2倍のデータがリングバス上を周回する可能性がある。このような場合に、1つのデータ処理ストリームを流した時と同様の挙動を得るためには、リングバス上のバッファの数を2倍とした上で、リングバスの動作速度を2倍にすることが有効である。また、複数のデータ処理ストリームを同一のリングバスで実現するには、各処理部にはデータストリームの数だけの待ち受けIDを識別するレジスタが必要になり、データパケットはストリームの種類を識別するための情報を格納する必要がある。
またパケットに送信元のIDだけを格納している理由は、送信先の情報を削減することでパケットの情報量を削減できたり、ストールパケットを活用する上で送信元IDを利用する方が効率的であったりするためである。効率的な理由の1つとして、ストールパケットを検知するのに都合のよいモジュールは送信元のIDをパケットに付加したモジュールである点などが挙げられる。
また、図8に示すように、モジュール間にバッファ801を設けても良い。こうすることで、データパケットを保持可能なバッファの数を増加させやすくなり、リングバスの効率の低下を抑えることが可能となる。
もちろん、バッファ801は2段以上のバッファとして構成してもよいし、段数可変のバッファとして構成してもよい。その場合も、その段数に応じてリングバス上の通信部120の動作速度を処理部130に対して速めることで、リングバスの処理効率を良くすることができる。
<実施例2>
図9は、実施例2のモジュールの概略構成を示すブロック図である。なお、以下の実施例2の説明において、実施例1と同一機能を有する構成や工程には同一符号を付すとともに、構成的、機能的にかわらないものについてはその説明を省略する。
さらに、入力FIFO1001は、通信部において受信されたデータを処理部に渡す際にデータを一時的に保持する。この入力FIFO1001によって、処理部130が処理中であっても、FIFOの段数分のデータを一時的に保持することが可能となるため、リングバス上にStallフラグの立てられたパケットが周回する頻度を下げることが可能である。
出力FIFO1002は、処理部において処理済のデータを通信部に渡す際に使用される出力FIFOである。この出力FIFOによって、リングバス上に空きパケットがないために通信部においてデータを出力できない場合にも、処理部の出力データを保持することで処理部を開放し、次のデータの処理に移行することが可能である。
さらに、処理スルー部1003は、入力FIFO1001の出力を直接出力FIFO1002に渡す。この処理スルー部1003を有効に設定することにより、処理部130を介さずに、入力FIFO1001から出力FIFO1002に直接データを流すことが出来るため、2つのFIFOをリングバスに接続された仮想的なバッファとして使用することが可能となる。
例えば、データ処理部420に実行させる処理によっては、処理に用いないモジュールが生ずる場合がある。この場合は、図7のシステム制御部400の設定処理であるステップS730において、各データ処理部に待ち受けIDを設定する際に、待ち受けIDを設定しないモジュールについては処理スルー部1003を有効に設定するようにしてもよい。なお、処理スルー部1003を有効にする場合は、受信部121は全てのパケットを受信するようにしてもよい。
モジュールの性能に差がある場合や、モジュールが特定の処理(画像処理でいうフィルタ類等)に特化している場合は処理に用いないモジュールが生ずる可能性が高まるため、本実施例によって効果を発揮する機会が増える。
一方で、処理スルー部1003を有効にする場合でも、ステップS730においてシステム制御部400は受信部121に特定の待ち受けIDを設定してもよい。図10は、図9に示したモジュール構成を使用してリングバスを構成した例である。
入力FIFO1111、1121、1131、1141は、各モジュールの中においてリングバス状の通信部で受信されたデータを処理部で処理する際に一時保持する。出力FIFO1112,1122,1132,1142は、各モジュールの中にあって、リングバス上の処理部で処理された処理済データを通信部に出力する際に一時保持する。
処理スルー部1133は、処理部を介さずに入力FIFO1131と出力FIFO1132を接続している。この入力FIFO1131、処理スルー部1133、出力FIFO1132を通る経路は、通信部331において、予め特定のIDを待ち受けIDとして指定し、かつ、処理スルー部1133をスルーに設定することによって設定できる。こうすることで、一連のデータ処理(パイプライン処理など)において所望の処理と処理の間にバッファとして挿入することができる。
このように、使用しない処理部をリングバス上のデータ保持手段として、所望の処理と処理の間にピンポイントでバッファとして適用できるため、必要最小限の回路構成でリングバスのスループットの向上が図れる。
以上、実施例2によって、特定の一連のデータ処理において作用する仮想的なバッファを用意することが可能となる。このようなに、特定の処理で用いないモジュールをバッファとして扱うことで、回路規模を増大させることなく、リングバス上にあって有効に動作するバッファを配置することが可能となる。また、バッファを挿入することで、Stallフラグつきのデータパケットが増える際にも、データの滞留を防ぎ、処理速度の低下を抑えることが可能となる。
処理部をデータが通過するには処理部もクロックが供給される必要があり、スキップすることで処理部をOFFにできるので消費電力を低減できる。
ただし、この実施例2においては、実施例1に示した技術のように、バッファが処理部と処理部の間に均等に配置されない。この場合には、個々のモジュールにおけるバッファの比率ではなく、リングバス上にあって有効に動作するバッファの総数Kと、データ処理が有効となっている処理部の総数Lとから求められる速度でリングバスを動作させればよい。
この場合、K/Lによって求められる比は、リングバスを処理部の動作速度の何倍で動作させるべきかに関する指標を与えることとなる。
たとえばK/Lが2となるように特定のデータ処理ストリーム上にバッファを配置した場合には、リングバスの動作速度を処理部の動作速度に対して2倍とすれば、理想的にはリング上のバッファの増加による1週にかかるステップ数を相殺する。そして、リングバス上をデータが1周する時間は変わらず、なおかつ、空きパケットはちょうど1つおきに発生することになる。
ストールパケットが増えた場合や、リングバスの各通信部の保持するデータ量が閾値を超えた場合にだけ、処理に用いないモジュールをバッファとして用いるようにしてもよい。
<実施例3>
以下の実施例3の説明において、実施例1や実施例2と同一機能を有する構成や工程には同一符号を付すとともに、構成的、機能的にかわらないものについてはその説明を省略する。
実施例2において開示した例においては、リングバス上の特定のデータ処理ストリームにおいて、FIFOの段数の整数倍の制約のもとで、任意の数のバッファを挿入することが可能である。実施例3では、この際に挿入すべきバッファの総数Kを、同時に投入するデータ処理ストリームの数Sと有効に動作する処理部の数Lとから求められるリングバスの動作速度Rから、求める。
例えば、同時に投入するデータ処理ストリームが2本ある場合、リングバスの動作速度を2倍にすることで、処理部が1単位のデータ処理を行う間に二つのデータを転送することが可能となる。このような場合に、リングバスに接続されるバッファの容量を増加させない場合、結局リングバス上を流れるデータ量は単純に2倍となり、何らかのデータの滞留によってリングバスがデッドロックする可能性が高まる。
そのため、リングバスの動作速度の増加に応じてリングバス上に保持できるデータ容量を増加させる必要がある。そして、リングバスの動作速度を2倍にするのであれば、リングバス上のバッファの数も2倍以上にする必要がある。
現実的には、動作周波数を任意の整数倍と出来るケースはまれであり、2のべき乗の周波数を選択せざるを得ないことが多い。従って、実際には同時に投入するデータ処理ストリームの本数を超える最も近い2のべき乗倍の周波数を用いることが現実的である。
よって、例えば、リングバス上の有効に動作するバッファ段数の総数Kは、同時に投入するデータ処理ストリームの本数を超える最も近い2のべき乗をS’とするならば、有効に動作する処理部の総数LをもとにK=L×S’によってもとめてもよい。
ここで、リングバスの動作速度は、処理部に与えられている動作基準信号(クロック)のK/L倍、または(M+N)倍としてもよい。
また、処理部の動作が遅く、1つのデータを処理するのにTクロックの時間を要する場合、リングバスの動作速度は、動作基準信号のサイクルをTで割った値をもとに、K/L倍や(M+N)倍としてもよい。たとえば、100MHzの動作基準信号が処理部に与えられている場合に、処理部の性能が10サイクルに1データの処理能力であったとし、かつK/L=2であった場合には、(100MHz/10サイクル)×2=20MHzでリングバスを動作させても良い。このように、リングバスの動作周波数は、動作基準信号よりも遅くなることもありうる。
ただし、現実には、リングバスに接続されている各々のモジュールが備える処理部の処理速度は必ずしも全て同じとは限らない。この場合には、これらの処理部のうち、最も遅い処理部が1データを処理するのにかかるサイクル数を基準として、そのK/L倍、または(M+N)倍の動作周波数でリングバスを動作させても良い。
また、前述の各実施例では処理部312が外部へのデータの出力と外部からの入力の両方をこなしていたが、入力用の処理部と出力用の処理部を別々に設けてもよいし、夫々の数も複数あってもよい。
また、外部から取得するデータはリングバスで扱うパケットの形式でそのまま入力してもよい。さらに、処理部はパケットを解釈しパケットのまま処理できるようにしてもよい。
また、前述の各実施例の処理は、複数のハードウェアとソフトウエアの協同によって実現するようにしてもよい。この場合、ネットワーク又は各種記憶媒体を介して取得したソフトウエア(プログラム)をコンピュータ等の処理装置(CPU、プロセッサ)にて実行することで実現できる。
また、本発明は前述した実施例の機能をコンピュータに実現させるプログラムを記憶した記憶媒体を、システム或いは装置に供給することによって実現してもよい。

Claims (6)

  1. 複数の処理モジュールがリングバスに接続され、前記複数の処理モジュールが予め設定された順番でデータ処理を行うデータ処理装置において、
    前記処理モジュールは、リングバス上のデータの送受信を行う通信手段と、受信されたデータの処理を行う処理手段と
    前記通信手段と前記処理手段の間にあって、受信したデータを一時保持する入力FIFOと、
    前記通信手段と前記処理手段の間にあって、出力データを一時保持する出力FIFOを有し、
    前記複数の処理モジュールのうち、処理手段を用いない処理モジュールに対しては、前記通信手段で受信したデータを、前記入力FIFOに入力し、前記処理手段を介さずに、前記出力FIFOに入力するようにし、かつ、
    前記複数の処理モジュールのうち、処理手段を用いる処理モジュールに対しては、前記通信手段で受信したデータを、前記入力FIFOに入力して、前記入力FIFOのデータを前記処理手段に入力し、前記処理手段で処理されたデータを前記出力FIFOに入力するようにすることによって、前記リングバスに接続されたデータ保持手段の段数を制御することを特徴とするデータ処理装置。
  2. 前記通信手段が生成するパケットは、格納するデータが有効であるかどうかを示す情報と、当該パケットが保留状態にあるかどうかを示す情報と、最後に処理したモジュールのIDと、最後に処理したモジュールが前記リングバスへ入力した順を示した情報とを有することを特徴とする請求項に記載のデータ処理装置。
  3. 前記リングバスに接続されているデータ保持手段と、
    当該データ保持手段の段数を変更する変更手段とを更に備えることを特徴とする請求項1又は請求項2に記載のデータ処理装置。
  4. 前記通信手段、前記処理手段の少なくとも1つの動作速度を制御する動作速度制御手段を更に備えることを特徴とする請求項1乃至3のいずれか1項に記載のデータ処理装置。
  5. 前記動作速度制御手段は、前記リング状のバスに接続され有効に動作するデータ保持手段の段数の総数をKとし、前記有効に動作する処理手段の総数をLとする場合に、
    前記送信手段の動作速度が処理手段の動作速度の(K/L)倍になるように制御することを特徴とする請求項に記載のデータ処理装置。
  6. 前記変更手段は、前記リングバス上にあって有効に動作するデータ保持手段の総数をK、有効に動作する処理手段の総数をL、リングバスに同時に投入するデータ処理ストリームの本数をSとする場合に、K≧L×Sとなるように、前記データ保持手段の段数を変更することを特徴とする請求項3に記載のデータ処理装置。
JP2009130852A 2009-05-29 2009-05-29 リングバスを用いたデータ処理装置、データ処理方法およびプログラム Expired - Fee Related JP5550261B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009130852A JP5550261B2 (ja) 2009-05-29 2009-05-29 リングバスを用いたデータ処理装置、データ処理方法およびプログラム
US12/787,248 US20100303090A1 (en) 2009-05-29 2010-05-25 Data processing apparatus using ring bus, data processing method andcomputer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009130852A JP5550261B2 (ja) 2009-05-29 2009-05-29 リングバスを用いたデータ処理装置、データ処理方法およびプログラム

Publications (3)

Publication Number Publication Date
JP2010277429A JP2010277429A (ja) 2010-12-09
JP2010277429A5 JP2010277429A5 (ja) 2012-07-12
JP5550261B2 true JP5550261B2 (ja) 2014-07-16

Family

ID=43220163

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009130852A Expired - Fee Related JP5550261B2 (ja) 2009-05-29 2009-05-29 リングバスを用いたデータ処理装置、データ処理方法およびプログラム

Country Status (2)

Country Link
US (1) US20100303090A1 (ja)
JP (1) JP5550261B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5546278B2 (ja) * 2010-02-17 2014-07-09 キヤノン株式会社 データ処理装置およびその制御方法、プログラム
JP5930834B2 (ja) * 2011-09-27 2016-06-08 キヤノン株式会社 画像処理装置、画像処理方法、画像処理装置の制御方法
JP5840451B2 (ja) 2011-10-18 2016-01-06 ルネサスエレクトロニクス株式会社 メモリ制御装置
WO2013108873A1 (ja) * 2012-01-18 2013-07-25 オリンパス株式会社 内視鏡用画像プロセッサ
JP6139857B2 (ja) * 2012-01-26 2017-05-31 キヤノン株式会社 データ処理装置、入力制御装置、及び制御方法
JP6882681B2 (ja) * 2017-07-12 2021-06-02 富士通株式会社 情報処理システム、情報処理装置、及び情報処理システムの制御方法
CN111352878B (zh) * 2018-12-21 2021-08-27 达发科技(苏州)有限公司 数字信号处理***及方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6149271A (ja) * 1984-08-16 1986-03-11 Sharp Corp 半導体装置
US4982400A (en) * 1988-12-29 1991-01-01 Intel Corporation Ring bus hub for a star local area network
US5398315A (en) * 1992-12-30 1995-03-14 North American Philips Corporation Multi-processor video display apparatus
JPH10228445A (ja) * 1997-02-13 1998-08-25 Mitsubishi Electric Corp リングバス入出力制御装置
JPH117432A (ja) * 1997-06-16 1999-01-12 Hitachi Ltd 情報処理装置及び半導体装置
JP3417369B2 (ja) * 1999-11-05 2003-06-16 日本電気株式会社 バススイッチ用アダプタ、バススイッチ用ブリッジ、バススイッチ、およびバススイッチシステム
JP3736729B2 (ja) * 1999-12-07 2006-01-18 セイコーエプソン株式会社 プリンタおよびプリンタ内でのデータ通信方法
JP2005078591A (ja) * 2003-09-03 2005-03-24 Canon Inc 画像処理システム及びその画像処理方法
US8155105B2 (en) * 2005-09-22 2012-04-10 Rsi Video Technologies, Inc. Spread spectrum wireless communication and monitoring arrangement and method
WO2008001468A1 (fr) * 2006-06-30 2008-01-03 Mitsubishi Electric Corporation Nœud de communication, procédé de configuration d'anneau de système de communication, et procédé d'établissement d'un anneau
JP5055942B2 (ja) * 2006-10-16 2012-10-24 富士通株式会社 計算機クラスタ
US7697532B2 (en) * 2007-02-08 2010-04-13 Corrigent Systems Ltd. Frame concatenation with drop precedence assignment

Also Published As

Publication number Publication date
US20100303090A1 (en) 2010-12-02
JP2010277429A (ja) 2010-12-09

Similar Documents

Publication Publication Date Title
JP5550261B2 (ja) リングバスを用いたデータ処理装置、データ処理方法およびプログラム
US9462091B2 (en) Information processing apparatus, communication method and storage medium
EP3055779B1 (en) Coexistence of i2c slave devices and camera control interface extension devices on a shared control data bus
JP5460143B2 (ja) データ処理装置、データ処理方法およびプログラム
JP2006246453A (ja) 独立的なクロックソースを基準にして直列クロックを生成する直列変換器とデータの直列伝送方法
US20110087863A1 (en) Data processing apparatus having a parallel processing circuit including a plurality of processing modules, and method for controlling the same
US20100241826A1 (en) Data processing apparatus, data processing method and program
JP5406558B2 (ja) データ処理装置、データ処理方法およびプログラム
US20100217904A1 (en) Information processing apparatus, method thereof, and storage medium
JP5414506B2 (ja) データ処理装置、データ処理方法、及びプログラム
JP2010218253A (ja) 情報処理装置、情報処理方法およびプログラム
KR102549085B1 (ko) 버스 제어회로
CN101529381A (zh) 用于面向对象的硬件的***和方法
JP4447341B2 (ja) 情報処理装置
JP2013196509A (ja) 情報処理装置及びその制御方法
JP6271113B1 (ja) 時刻同期スレーブ装置及び通信制御方法
JP2010262439A (ja) 情報処理装置、情報処理方法およびプログラム
KR101275640B1 (ko) 다수의 버스를 이용하는 논리연산 제어장치
JP2019036833A (ja) 信号処理装置及び信号処理方法
JP5307525B2 (ja) データ処理装置及びその制御方法
JP2005149203A (ja) データ取り込み装置及びデータ取り込み方法
JP2007034893A (ja) データ処理モジュール及びそのメッセージの送信準備方法
JP2005316866A (ja) バス装置
JP2008287490A (ja) データ転送システムおよびデータ転送方法
JPS6390241A (ja) リング状ネツトワ−クシステムの伝送装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120528

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120528

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130326

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131015

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131216

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: 20140422

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140520

R151 Written notification of patent or utility model registration

Ref document number: 5550261

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees