JP2011081643A - 複数の処理モジュールを有する並列処理回路を備えるデータ処理装置、およびその制御方法 - Google Patents

複数の処理モジュールを有する並列処理回路を備えるデータ処理装置、およびその制御方法 Download PDF

Info

Publication number
JP2011081643A
JP2011081643A JP2009234021A JP2009234021A JP2011081643A JP 2011081643 A JP2011081643 A JP 2011081643A JP 2009234021 A JP2009234021 A JP 2009234021A JP 2009234021 A JP2009234021 A JP 2009234021A JP 2011081643 A JP2011081643 A JP 2011081643A
Authority
JP
Japan
Prior art keywords
module
processing
data
packet
output
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.)
Granted
Application number
JP2009234021A
Other languages
English (en)
Other versions
JP5590849B2 (ja
Inventor
Hiroyasu Watanabe
浩康 渡辺
Hiroo Inoue
博夫 井上
Takashi Ishikawa
尚 石川
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 JP2009234021A priority Critical patent/JP5590849B2/ja
Priority to US12/897,625 priority patent/US8754896B2/en
Publication of JP2011081643A publication Critical patent/JP2011081643A/ja
Priority to US14/263,760 priority patent/US9286078B2/en
Application granted granted Critical
Publication of JP5590849B2 publication Critical patent/JP5590849B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3875Pipelining a single stage, e.g. superpipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Processing (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)

Abstract

【課題】複数の処理モジュールがリング状のバスに接続されたデータ処理装置において、異なる順番で処理する複数のパイプライン処理を複数の処理モジュールに設定する場合、処理順序を変更した場合でも、複数のモジュールとその間のバスを流れるデータ量を調節し、効率的なデータ処理が可能となるデータ処理装置を提供する。
【解決手段】パイプライン処理上で後段のモジュールがデータを受信できるように、パイプライン処理上で前段のモジュールが自身の処理したデータの送信間隔を制御する。
【選択図】図1

Description

本発明は、並列処理が可能な複数の処理モジュールを有する並列処理回路について、各処理モジュールの利用順序が変動しても効率のよく処理モジュール間のデータの転送を実現するためのデータ処理装置、データ処理方法およびプログラムに関する。
従来、リングバスで直列に接続した処理モジュールについて、各処理モジュールにパイプライン処理の一部の処理を割り当て、各処理モジュールを並列に動作させることでパイプライン処理を高速に実行する方法がある。
ここで、リングバス上に段数可変のFIFOを配置し、処理モジュール内で送信データとリングバス上のデータとの競合が起きると、FIFOの段数を伸ばして空きスロットを生成し、競合によるシステム性能の低下を回避する方法がある(特許文献1)。
またパイプライン処理をする複数のPE(Processing Element)を型リング状に接続した構造を一つの層として、異なる層のPEを接続し、パケット制御装置を介することなくリングバス同士でパケットをやりとりする方法がある(特許文献2)。
特許第2522952号公報 特許第3083582号公報
パイプライン型の処理モジュールについて、後段の処理モジュールが処理しきれない量のデータを前段の処理モジュールが後段へ一度に転送すると、処理しきれないデータが前段の処理モジュールと後段の処理モジュールとの間の通信帯域を圧迫してしまう。このような通信帯域の圧迫により、データの転送効率が低下し、それにより並列処理回路全体としては処理効率も低下する。
ここで、複数の処理モジュールを直列にリング状に接続している構成では、物理的な接続順序と異なる順番で複数の処理モジュールによってデータを処理するように制御できる。これにより、データを複数の処理モジュールが任意の順番で処理することができるため回路規模を縮小できる。(これは、パイプライン処理の2ヶ所で同じ処理が入る場合、直線的なパイプライン回路であれば同じ処理であっても複数の回路を用意する必要があるためである。)
しかし特許文献1、2の方法では、異なる順番で処理する複数のパイプライン処理を複数の処理モジュールに設定する場合、後段で処理しきれない量のデータを前段の処理モジュールが後段へ転送することで転送効率の低下が生じる恐れがある。
上記課題を解決するために、本発明に係るデータ処理装置は、通信可能に接続されている複数のモジュールがデータを所定の順序で処理するように、制御手段で制御することでパイプライン処理を実行するデータ処理装置であって、
前記モジュールは、当該モジュールで処理するデータを格納するパケットを取り込み、当該データに前記パイプライン処理の一部の処理を実行する処理手段と、当該モジュールの処理したデータの許容出力量を示す設定を記憶する記憶手段と、前記処理手段の処理したデータを、前記設定に基づいて当該モジュールより一つ後段のモジュールへ出力する出力手段と、を備え、
前記制御手段は、前記複数のモジュールについて前記パイプライン処理の後段のモジュールから逆順に着目し、着目したモジュールのデータ処理時間を当該着目したモジュールの記憶手段の記憶する設定に基づいて推定する推定手段と、前記着目したモジュールから一つ前段のモジュールの設定が前記着目したモジュールの処理時間以上になるように、前記着目したモジュールから一つ前段のモジュールの記憶手段に許容出力量を設定する設定手段とを備えることを特徴とする。
本発明によれば、複数の処理モジュールが所定の順序でデータを処理する場合に、その処理順序を変更した場合でも、複数のモジュール(とその間のバス)を流れるデータ量を調節し、効率的なデータ処理が可能となる。
処理モジュールの構成図である。 パケットのフォーマットを示す図である。 リングバスを有する並列処理部の構成図である。 各モジュールの送信間隔を設定する処理のフローチャートである。 各モジュールの送信間隔を設定する処理のフローチャートである。 バンド画像内縦スキャン方式での変倍処理の例(画素2×2、縦2倍、横2倍)を示す概略図である。 入力モジュールと出力モジュールの構成図である。 データ処理装置の概略構成図である。 各モジュールのデータ送信間隔の設定例を示す図である。 変倍モジュールへバンド画素を送信する制御方法を示すフローチャートである。
<実施例1>
図8は、本発明の一実施例であるデータ処理装置の概略構成を示す。制御部900は、演算制御用のCPU901、固定データやプログラムを格納するROM902、データの一時保存やプログラムのロードに用いるRAM903および、外部データを保持する外部記憶装置904を有する。RAM903はSRAMやDRAMであってもよいし、複数種類から構成されていてもよい。
入力部910は、処理すべきデータをシステム外部より取り込む。たとえばイメージスキャナおよびA/D変換器などのデバイスを有する画像読み込み装置や、マイクおよびA/D変換などのデバイスを有する音声入力装置などであってもよい。
並列処理部920は、制御部900の制御によって様々なデータ処理内容を設定可能な複数の並列演算用の処理モジュールを有している。そして、並列処理部920は取得するデータについて制御部900によって設定された処理内容に応じた処理を実行し、処理したデータを出力する。並列処理部920は処理済みのデータを、制御部900又は、出力部930に送る。
出力部930は、並列処理部920によって処理されたデータを外部に出力する。出力部930としては、他の装置にデータを出力するインターフェイス、プリンタやディスプレイ、音声出力装置などが挙げられる。データ入力部910に入力されるデータは、データ入力部910が制御部に送ってCPU901が処理してもよいし、そのままRAM903や外部記憶装置904が一時記録してもよい。また、並列処理部920が、データ入力部910からの入力データを直接受け取ってそのまま処理を行ってもよいし、並列処理部920が制御部900からデータを取得して処理してもよい。
図3は、並列処理部920の概略構成を示す。
図3の並列処理部920は、入力モジュール(不図示)、処理モジュール(不図示)および出力モジュール(不図示)を有している。ここで、矢印はデータ(又はパケット、信号)が流れる論理的な方向を示す。
入力モジュールはデータ取得部301と通信処理部302を有している。データ取得部301は、外部記憶装置904や制御部900又は入力部910からデータを取得する。通信処理部302は、取得したデータをリングバスに供給する処理を行う。
処理モジュールはデータ処理回路304と通信処理部303を有しており、並列処理部920が処理するパイプライン処理の一部の処理が割り当てられている。ここでは4つの処理モジュールがある。通信処理部303は、一方の通信処理部からのデータを他方の通信処理部へ送信しつつ、処理モジュール内のデータ処理回路304で処理するデータを識別して、データ処理回路304に送信する。データ処理回路304は、通信処理部303からのデータに対して所定の処理を行う。なお、データ処理回路304の処理内容はデータに付随するコマンドで設定してもよいし、並列処理部920の起動時に処理内容を登録するデータを制御部900が配信してもよい、又は設計時に登録してもよい。
出力モジュールはデータ出力部306と通信処理部305を有している。通信処理部305は、処理モジュールによって一連の処理を完了したデータを識別して、処理済みのデータをデータ出力部306へ送信する。データ出力部306は、通信処理部305から送信されたデータを外部記憶装置904や制御部900又は出力部930に出力する。
リングバス307は、入力モジュールと処理モジュール及び出力モジュールの有する通信処理部をリング状に直列に連結し、これらの通信処理部を通信可能にする。本実施例ではリングバス307は単方向にデータを送信するシリアルバスである。単方向のリングバスを用いると制御が簡単なので回路規模も小さくてすむ。
図2は並列処理部920の扱うパケットの構造を示す。validフラグ201はパケットが有効であるかどうかを示す(“1”を格納しているときは有効で、“0”を格納しているときは無効)。stallフラグ202はパケットが受信保留であるかどうかを示す(“1”を格納しているときは保留有りで、“0”を格納しているときは保留無し)。Count203はデータの順序(並列処理部920への入力順に相当する)を示し、node ID204は通信処理部がパケットを取り込むか否かを識別するための識別情報である。DATA205はデータもしくはコマンドを格納している。
node ID204について、パケットを正しい処理順序でデータ処理回路の間で受け渡し可能であればそのフォーマットは限定しない。例えば、node ID204として、データを最後に処理した処理モジュールのIDを設定する方法や、パケットの送り手と受け手の識別子の組合せによって割り当てる方法がある。また、データパケットとコマンドパケットとで異なるフォーマットのnode ID204を採用してもよい。本実施例では説明の簡便のため、1データパケットは1画素データを割り当てることとする。しかし、n個の画素データを1データパケットに割り当てるようにしてもよい。
〔処理モジュール〕
図1は、図3におけるデータ処理回路304と通信処理部303とを有する処理モジュール101の詳細な構成を示す。入力データ受信部105は上流の通信処理部からパケットを受信する。入力データ識別部106は、入力データ受信部105の受信しているパケット(以降、入力パケットと称する)のnode ID204を確認し、入力パケットの格納するデータがモジュール内のデータ処理回路304で処理すべきかどうかを識別する。入力データ識別部106は不図示のレジスタにIDを格納している。そして、レジスタのIDとnode ID204が一致する入力パケットで且つvalidフラグが“1”であると入力データ識別部106が判定したものは、モジュール内で処理すべきデータを格納していると判断する。入力データ識別部106が、入力パケットはモジュール内のデータ処理回路304で処理すべきデータを保持していると判定した場合は、処理データ出力部107がデータ処理回路304へ送出する。そして、入力データ識別部106は、データを抽出した入力パケットのvalidフラグを“0”に設定し、出力データ生成部112へ送信する。(ここで、入力データ識別部106が入力パケットはモジュール内で処理すべきデータを格納していないと判定した場合、入力パケットは出力データ生成部112を通って、出力データ送信部113が下流の通信処理部へ送信する。また、入力データ識別部106によって、入力パケットがモジュール内のデータ処理回路394で処理すべきデータを格納していると判定されても、データ処理回路304がデータを受付けられない状態である場合は入力パケットの処理を保留する。入力パケットを保留するために、入力データ識別部が入力パケットのstallフラグ202に“1”を設定し、その入力パケットを出力データ生成部112に転送する。)
データ処理回路304は処理データ出力部107から入力されるデータに予め設定された処理を施して、処理結果としての処理済データを処理済データ入力部108へ送信する。前述したように、データ処理回路304はデータに付加されているコマンドに沿った処理をしてもよい。処理済データ入力部108はモジュール内のデータ処理回路304が処理したデータを受け取る。
データ送信間隔カウンタ109は、直前にデータ送信制御部111から出力データ生成部112へデータを送信してからの間隔(クロック数、又はサイクルタイムで表わす情報)を保持する。データ送信間隔レジスタ110は直前にデータ送信制御部111がデータを送信してから次にデータを送信するまでに空ける間隔を示す情報を保持する。データ送信間隔レジスタ110は、並列処理装置920が処理するパイプライン処理を切換える場合、もしくは並列処理装置920の初期化時に処理に用いるモジュールのデフォルト送信間隔保持部114の値に応じて設定する値を格納する。データ送信間隔レジスタ110に設定する値の決定方法については後述する。
データ送信制御部111は処理済データ入力部108から取得した際に、データ送信間隔カウンタ109の値がデータ送信間隔レジスタ110の値以上であれば(出力データ生成部への)送信待ち状態になる。
出力データ生成部112は、入力データ識別部106から送られるパケットで、validフラグが“0”の空パケットに、送信制御部111が送信しようとするデータを格納しvalidフラグを“1”に設定する。ここで、出力データ生成部112は不図示のレジスタにIDを格納しており、空パケットにデータを格納する際にレジスタのIDをnode ID204に格納する。また、データ送信制御部111はデータを出力データ生成部112に送信すると同時にデータ送信間隔カウンタ109を“0”にクリアする。データ送信制御部111がデータ送信間隔カウンタ109をクリアするタイミングは、送信開始と同時、送信完了と同時、又はどちらかのnサイクルタイム後でもよい。ただし、データ送信間隔レジスタ110はデータ送信制御部111がクリアするタイミングに応じた値を格納しておく必要がある。
また、入力データ識別部106は入力パケットの保持するデータが自身のレジスタのIDと一致しても、データ処理回路304が前のデータを処理中である場合は、入力パケットのstallフラグに“1”を格納してそのまま出力データ生成部112に転送する。ここで、データ処理回路304が前のデータを処理中である事はデータ処理回路104から入力データ識別部106への不図示の信号線(処理データ出力部107を経由してもよい)によって伝達される。また、データ送信制御部111が送信待ちの状態である事はデータ送信制御部111からデータ処理回路304への不図示の信号線(処理済データ入力部108を経由してもよい)によって伝達される。データ送信制御部111と処理済みデータ入力部にデータが詰まっている場合は、データ処理回路304がデータを処理済データ入力部108へ出力できないので、データ処理回路304は処理を完了できない。従って、データ送信制御部111が送信待ち状態である事を不図示の信号線で入力データ識別部106へ直接伝達してもよい。この構成では入力データ識別部106は、データ送信制御部111が送信待ちの状態である場合に、モジュール内で処理するデータを格納している入力パケットにstallフラグ“1”を格納するように制御してもよい。
出力データ送信部113は出力データ生成部112からのパケットを、リングバス102を介して下流の通信処理部へ送信する。
なお、入力データ識別部106が参照するIDと出力データ生成部112が格納するIDとは、複数セットあってもよい。例えば、1つのパイプライン処理において異なるシーケンスで、同じモジュールを2回用いる場合や、同じモジュールを使用する複数のパイプライン処理を並列処理部920で仮想的に並列的に処理する場合などに有効である。
なお、上述の処理モジュールのデータ送信制御部111は、所定長のパケットを送信する際に、レジスタの設定に基づいてパケットの間隔を調節することで、処理モジュールのデータの許容出力量を保証している。
〔入力モジュール〕
図7(a)は、図3におけるデータ取得部301と通信処理部302とを有する入力モジュール701の構成を示す。図1の処理モジュールと同じ構成には同じ符号を付すとともに、機能が変わらないものについては説明を省略する。
データ取得部301は、制御部900、入力部910からのデータを取得する。制御部900、入力部910が予め図2のフォーマットのパケットもしくは図2のフォーマットに簡単に変換できるパケットにデータを格納して並列処理部920に入力するようにしてもよい。また、データ取得部301は制御部900又は入力部910にデータの送信を一時停止するように信号を出せるものとする。
データ入力部707はデータ取得部301の取得したデータを受け取る。
〔出力モジュール〕
図7(b)は、図3におけるデータ出力部306と通信処理部305とを有する出力モジュール801の構成を示す。図1の処理モジュールと同じ構成には同じ符号を付すとともに、機能が変わらないものについては説明を省略する。
データ出力部306は処理データ出力部107からのデータを制御部900、又は出力部930へ出力する。
デフォルト送信間隔保持部808は、前記処理データ出力部807が前記データ出力部804に対してデータを出力する間隔を保持する。このデフォルト送信間隔保持部808が保持する送信間隔の値は、データ送信間隔レジスタの値を決定する際に最終段の情報として参照する。
この値は、前記データ出力部804が出力する先の外部記憶媒体904の応答速度や、CPU901の処理速度を考慮して決めればよい。また、並列処理部920と接続している回路の挙動によって決まるものであっても良いし、逆に許容される出力速度の範囲内で設定された値を参照しても良い。また、データ出力部306において並列処理部920の外部との速度差を吸収できる程度のバッファを構成しておけば、出力モジュール801にデフォルト送信間隔保持部は無くてもよい。
〔各モジュールのデータ送信間隔の決定について〕
各モジュールのデータ送信間隔レジスタ110の値は制御部900のCPU901の実現する設定部906が設定する。
ここで、あるモジュールを着目モジュールとして、着目モジュールのデータ送信間隔レジスタ110を設定する際には、着目モジュールよりもパイプライン処理上で後段の処理をするモジュールがデータをもらすことなく受信可能な値を設定する。詳細にはCPU901がパイプライン処理に用いるモジュールの夫々を順に着目して、推定部905が着目モジュールの処理時間を推定し、設定部906が着目モジュールから一つ前段のモジュールの送信間隔を着目モジュールの処理時間以上になるように設定する。なお、並列処理部920に実行させるパイプライン処理を切換る度に、CPU901が各モジュールのデータ送信間隔を設定する。
ここで、処理の後段のデータ処理部において、処理時間とは、データ処理回路がデータを供給されてから次のデータを処理可能となるまでの間隔(サイクルタイム、クロック数等で示す)とする。これは、あるモジュールについて1つのパケットの受信を開始した時点から次のパケットの受信を開始する時点までの間隔(サイクルタイム、クロック数等で示す)に相当する。従って、処理時間を短くすることは各モジュールが単位時間で扱うデータ量の増加に繋がる。また、各モジュールの送信間隔とはデータ処理回路304又はデータ取得部301のデータ出力間隔である。
例えば、全てのモジュールに対して後段のモジュールが受信できる送信間隔を設定するには、パイプライン処理の順番に沿って各モジュールに着目して設定する方法と、パイプライン処理の順序と逆順に着目して設定する方法とがある。パイプライン処理の順番に沿って各モジュールに着目して設定する場合は、着目モジュールの送信間隔より論理的に一つ後段のモジュールの処理時間より長いことを検出すると最初のモジュールから再び設定し直す必要がある。これは、着目モジュールの送信間隔が更新されると、それに伴って処理時間も変わるためである。例えば、送信間隔が長くなるように更新されると処理時間も長くなる、一方で送信間隔が短くなるように更新されると処理時間も短くなる。(ここで、一つ後段のモジュールとは着目モジュールの1つ後のパイプライン処理をするモジュールを示す。また、パイプライン処理上の最前段のモジュールには、推定した最長の処理時間より長い送信間隔を設定されることになる。)
一方で、パイプライン処理の順序と逆の順序で着目して設定する場合、着目モジュールに論理的に一つ後段のモジュールが受信可能な送信間隔を設定する。
また、第2の方法では、パイプライン処理上で最後段の処理をするモジュールから最前段の処理をするモジュールへ順番に着目する。そして、着目したモジュールより1つ後段のデフォルト送信感覚保持部114の保持する値の示す間隔より長い間隔を示す値を、着目したモジュールのデータ送信間隔レジスタ110に設定する。
図4は、制御部900がパイプライン処理の順序と逆順に各モジュールに着目し、CPU901が各モジュールのデータ送信間隔レジスタ110の値を設定する処理のフローチャートを示す。
まずステップS401において並列処理部920で実行する一連の処理の最後段(i段目)の処理をするモジュール(出力モジュール)に着目する。
但し、Tout(i)には初期値として処理順でi番目にある出力モジュールのデフォルト送信間隔値保持部114が保持する値が入っているものとする。
次にステップS402において、ステップS401(又はステップS406)において設定した着目モジュールの送信間隔の設定値に基づいて、着目モジュールの受信可能間隔を算出する。着目モジュールが「間引き」や「バンド画像内縦スキャン処理での変倍」など、入力データ量と出力データ量とが異なるような処理を行わず、また外部モジュール等の動作速度の影響を受けない場合、受信可能間隔は送信間隔設定値と等しくなる。ただし、最初に設定するモジュールの送信間隔の場合はデフォルト送信間隔値保持部114が格納する値などの初期設定値を用いる。また、ここでは説明の簡略のため全てのモジュールで入力データ量と出力データ量とが等しいと仮定し、処理時間Tin(i)=Tout(i)となる。次にステップS403において、i≦1の比較により、最前段のモジュール(入力モジュール)までデータ送信間隔レジスタ110の値の設定が完了したかどうか判断する。もしi≦1であれば着目しているモジュールは入力モジュールであるので処理を終了する。出力モジュールの送信間隔Tout(i)は、出力モジュールのデータ送信間隔レジスタ110が格納している値の示す間隔となる。
ステップS403においてi>1であれば、ステップS404に遷移する。そしてステップS404で、着目モジュールの処理時間Tin(i)と、パイプライン処理で着目モジュールより1つ前段の処理をするモジュール(以降、論理的に1つ前段のモジュールと略す、)の送信間隔Tout(i−1)とを比較する。もし、着目モジュールの処理時間Tin(i)が、論理的に1つ前段のモジュールの送信間隔Tout(i−1)より大きければ、ステップS405に進む。そして、論理的に1つ前段のモジュールの送信間隔Tout(i−1)に着目モジュールの処理時間Tin(i)の値を代入する。実際には、論理的に1つ前段のモジュールのデータ送信間隔レジスタ110に処理時間Tin(i)の値を設定する。
ステップS406ではiをデクリメント(i=i−1)することで、論理的に1つ前段のモジュールに着目する(新たな着目モジュールとして設定する)。
そして、ステップS402に遷移して、以上の処理を繰り返すことで各モジュールのデータ送信間隔レジスタ110の値を設定する。ROM902、RAM903、外部記憶装置904のいずれかは、各パイプライン処理でどのモジュールが何番目の処理をするかを判断するための順序情報を格納し、制御部900が順序情報を参照することで各モジュールの論理的な処理順序を解釈する。
また、ステップS404では、制御部900が各モジュールのデフォルト送信間隔保持部114を個別に参照するようにしてもよいし、図4の処理をする前に各モジュールのデフォルト送信間隔保持部114を取得し、取得した値に基づいて処理してもよい。
図9は各モジュールにおいて入力データ量と出力データ量が等しい場合に、色々な条件下で各モジュールのデータ送信間隔(データ送信間隔レジスタ110に設定する値に相当する)の例を示す。また、ここでは1つの固定長パケットを同じサイクルタイムで処理する処理モジュールが5つある例を示す。
送信間隔とは、図3に示す各モジュールが1サイクルタイムで1つの固定長のパケットを出力する場合に、パケットとパケットの間のサイクルタイムに相当する。例えば、あるモジュールにおいて送信間隔が2である場合、そのモジュールは1つのパケットを送って3サイクルタイム目に次のパケットを送信可能である。
図9(a)は、物理的な接続順に、各モジュールのIDとそのモジュールに設定されているデフォルト送信間隔値とを示している。ここで、物理的な接続順は、図3に示すような並列処理部920にパケットを1つだけ入力した際に、このパケットを受信するモジュールの順(処理の有無に関わらない)に対応する。
図9(b)は図9(a)を論理的な処理順に並び替えたものである。論理的な処理順は、実際のパイプライン処理をするモジュールの順番に対応する。図3に示す構成であれば1番目は入力モジュール、最後は出力モジュール、その間にパイプライン処理を担当する順番に処理モジュールが入る。図9(b)を参照すると、11→11→11→32→11→7→5という送信間隔を持つモジュールの順にパケットが流される。ここで、送信間32のモジュールと、このモジュールより論理的に1つ前段のモジュールとの送信間隔は順に、11→32となる。従って、送信間隔32の処理モジュールが受付けたパケットを順調に処理しても、論理的に1つ前段のモジュールが送信するパケットのうち送信間隔32の処理を待つパケットは増加する可能性が高いことがわかる。
図9(c)は図4に示した処理に則って、制御部が図9(a),図9(b)に示した設定を有する並列処理部920の各モジュールの送信間隔を最適化したものである。
図9(c)を参照すると、図4に示した処理で各モジュールの送信間隔を最適化すると、32→32→32→32→11→7→5という送信間隔でパケットが流されるため、パケットは滞留することなく処理される。すなわち、図9(b)に示した設定と比べると、次のモジュールの処理を待つパケットが増加することを抑制できる。
以上のように、各モジュールにおいて論理的に1つ後段のモジュールで受信可能な間隔(上述例では論理的に1つ後段のモジュールの送信間隔に相当する)で前段のモジュールがデータを送信することで、次のモジュールの処理を待つパケットの増加を抑制できる。このように次のモジュールの処理を待つパケットの増加を抑制することで、並列処理部920の有するリングバスを流れているパケット量を最適化できるので効率良くパケットを転送することができるようになる。
<実施例2>
次に、画像データなどの入力データに対しバンド画像内縦スキャン処理を用いた変倍処理などの処理を行う処理モジュールを有する並列処理部920について説明する。なお、実施例1と機能的に変わらない処理や構成についてはその説明を省略する。
バンド画像内縦スキャン処理について説明する。たとえば1ページの画像を縦方向に複数のバンド画像(m×n画素に分割した画像)に分割した際に、そのバンド画像の処理において、通常の技術では水平方向に並ぶ画素(以下ライン)を水平方向(所定方向)に順次処理していくライン処理を行う。ところがここに示すバンド画像内縦スキャン処理においては、バンド内に含まれる複数ラインを1カラム目から順に縦方向(所定方向)に処理していく処理方法となる。
図6は、入力に対してバンド画像内縦スキャン処理を用いた変倍処理(画素2×2、縦2倍、横2倍)を施し4画素を高さ4、幅4の16画素に拡大する処理を示す概念図である。丸(図中の○)は1つの画素を示し、2×2の塊は画像データの一箇所を切り取ったものに相当する。ライン処理では画素1→3→2→4の順に処理するところを、バンド画像内縦スキャン処理では画素1→2の順に処理し、バンド画像に含まれる全てのライン数を処理したところで次のカラムへうつり、更に3→4と順に処理を進める。
また、図6の矢印は、図9(b)において処理部ID=0x04の処理モジュール(ここでは、変倍処理モジュールと略す)が変倍処理(縦2倍、横2倍)を行うことを示す。矢印の右側の画素群について、数字のない丸は変倍処理によって挿入した画素を示す。
実際には、変倍モジュールは1カラム目の画素を〔1→○→2→○〕の順に出力して、次のカラムに移り、それ以降のカラムも同様に縦方向に出力する。
図6中において論理的に1つ前段のモジュールの出力する画素2×2を、着目モジュールで画素4×4に変倍する際には、まず着目モジュールの送信間隔に基づいて着目モジュールの複数の受信間隔を求める。次に、論理的に1つ前段のモジュールの送信間隔を着目モジュールの受信間隔以上に設定する制御が必要となる。
次に複数種類の処理時間について説明する。図6に示す変倍処理では、変倍モジュールは、画素1の入力に対して画素1と変倍して挿入した画素の2画素分(図6のaに相当する)を出力する時間を要する。
一方で、変倍モジュールは画素2の入力に対して画素2と変倍で挿入した5つの画素の計6画素分(図6のb+cに相当する)を出力する時間(クロック数、又はサイクルタイムで表現する、以降も同様)を要する。また、画素3は画素1と同様の時間、画素4は画素2と同様の時間を要する。このように、変倍モジュールでは、M×N画素の画像をスキャンした順に1画素ずつ格納するパケットが、スキャン順に入力される場合、N×L(Lは1〜Mの自然数)番目の第1パケットの処理時間はN×L番目以外の第2パケットの処理時間より長くなる。従って、その複数の処理時間(第1処理時間、第2処理時間)に応じて論理的に1つ前段のモジュールの送信間隔を複数用意して、変倍モジュールの処理時間の入れ替えに対応して入れ替えながら出力制御する必要がある。
ここで、変倍モジュールが、画素2(又は画素4)の入力に応じて出力する画素群を第2画素群(斜線箇所)として、第2画素群の出力に要する時間を第2処理時間とする。ここで、m×nの画素群(バンド)を前記縦キャンで入力する際の、n×L(L:1〜mの自然数)番目の画素の入力があった場合には、変倍モジュールは第2処理時間を要することとなる。
また、n×L番目以外の画素、(画素1又は画素3)は第1処理時間で処理する。
従って、変倍モジュールより論理的に一つ前段のモジュールは、変倍モジュールの変倍処理の内容と変倍モジュールに設定されている送信間隔に基づいて第1・2処理時間に対応する第1・第2送信間隔でデータを出力する必要がある。
図10は、変倍モジュールより論理的に一つ前段のモジュールのデータ送信制御部が変倍モジュールへ画素を送信するときの制御方法を示すフローである。(ここで、説明の簡便のため1パケットに1画素を格納するものとする。また、切換タイミングとして、バンドの縦方向画素数、バンドの横方向画素数を用いる)
ステップS1001において、変数iに(横方向画素数)をセットする。ステップS1002において、送信する画素を特定するIDを表す変数xに1をセットする。画素はxを添字とした配列に昇順に格納されていることとする。ステップS1003において、変数jに(縦方向画素数−1)をセットする。ステップS1004において、j 又は iが1未満であるか判断する。ステップS1004でj 又は iが1未満(YES)ならばステップS1009にジャンプする。ステップS1004でj 又は iが1未満でない(NO)ならばステップS1005に進む。
ステップS1005において、画素(x)を変倍モジュールに出力する。ステップS1006において、「第1処理時間」に対応する「第1出力間隔」だけウェイトする。なお、第1出力間隔は第1処理時間以上であればよいが、より効率的に転送するためには第1出力間隔と第1処理時間が等しい方が好ましい。ステップS1007において、jをデクリメントする。ステップS1008において、xをインクリメントする。ステップ1008の処理が完了したらステップS1004から処理を繰り返す。
ステップS1009において、iが1未満か判断する。ステップS1009でiが1未満(YES)ならば処理を終了する。ステップS1009でiが1未満でない(NO)ならばステップS1010に進む。ステップS1010において画素(x)を変倍モジュールに送信する。ステップS1011において、「第2処理時間」に対応する「第2出力間隔」だけウェイトする。なお、第2出力間隔も第1出力間隔と同様に第2処理時間以上であればよい。ステップS1012において、iをデクリメントする。ステップS1013において、xをインクリメントする。ステップ1013の処理が完了したらステップS1003から処理を繰り返す。
図6の変倍処理に図10の送信制御を対応させて説明すると、変倍モジュールより論理的に一つ前段のモジュールのデータ送信制御部111は画素1を変倍モジュールに送信する。送信した後、変倍モジュールのデータ送信制御部111は「第1処理時間=2画素分」だけウェイトする。この処理をバンド内で縦方向にある画素を順に着目して「縦の画素数−1」回行う。図6の場合「縦方向画素数−1」は2−1=1回となるので繰り返さない。バンド内の縦方向で最下部にある画素は「第2処理時間」だけウェイトするためである。
「縦方向画素数−1」回だけ「第1処理時間」で処理した後、変倍モジュールより論理的に一つ前段のモジュールのデータ送信制御部111は画素2を変倍モジュールに送信し、「第2処理時間=6画素分」だけウェイトする。そして、画素3に着目する。
画素3と画素4における制御は、画素1と画素2における制御と同様なので省略する。
以上のように変倍モジュールで画素数が増える場合でも、変倍モジュールが処理する時間間隔以上に論理的に一つ前段のモジュールの送信制御部111からの送信間隔を空けるため転送効率が良くなる。
なお、図1と図7(a)の構成においては、第1・第2処理時間、バンド内で着目している画素を示す情報(i,j)、バンドの縦方向画素数および横方向画素数はデータ送信間隔レジスタ110が保持している。
各モジュールについて処理時間を求めるには、図5に示すように、各モジュールをパイプライン処理で利用する順序の最後段から最前段へ順に着目しながら決定する。着目したモジュールが、縦横変倍を行う処理を行う可能性があれば、以下の式でi番目の処理モジュールの処理時間(第2処理時間TinW(i)、第1処理時間TinH(i))を求める。ここで、縦方向送信間隔はToutH(i)と表記する。
TinW(i)=縦の倍率×(ToutH(i))+縦方向画素数×縦の倍率×(横の倍率−1)×(ToutH(i))…(1)
TinH(i)=縦の倍率×(ToutH(i))…(2)
このようにして求められた横方向・縦方向それぞれの処理時間(TinW(i)、TinH(i))を元に、データ送信間隔レジスタ110を設定する。
図4のステップS402の処理に(1)式と(2)式の演算を取り込んだ制御部900の処理を示すフローチャートを図5に示す。まず、ステップS501においてパイプライン処理の処理順で最後のモジュール(出力モジュール)に着目しi=Mをセットする。但し、出力モジュールのデフォルト送信間隔値保持部114には予め設定された値、又は固定的に格納されている値が入っているものとする。
次に、ステップS502において出力モジュールの縦方向の送信間隔ToutH(i)にデフォルト送信間隔Tout(i)をセットする。同様にステップS503において出力モジュールの横方向の送信間隔ToutW(i)にデフォルト送信間隔Tout(i)をセットする。
次に、ステップS504において着目しているモジュールの縦方向送信間隔設定値ToutH(i)により横方向処理時間TinW(i)を算出する。次に、ステップS505において着目しているモジュールの縦方向送信間隔設定値ToutH(i)により縦方向処理時間TinH(i)を算出する。
次に、ステップS506において処理順で最初のモジュール(入力モジュール)までの設定を完了したかi≦1を満たしているかどうかで判断する。もし、i≦1を満たしていれば図5の処理は終了する。
次に、ステップS506でi≦1を満たしていない場合は、設定の終了していないモジュールがあるので、論理的に1つ前段のモジュールの第1送信間隔ToutH(i−1)と第2送信間隔ToutW(i−1)を求める。
まず、ステップS507において、論理的に1つ前段のモジュールの第1送信間隔ToutH(i−1)に、論理的に1つ前段のモジュールのデフォルト送信間隔Tout(i−1)をセットする。次に、ステップS508において論理的に1つ前段のモジュールの第2送信間隔ToutW(i−1)に論理的に1つ前段のモジュールのデフォルト送信間隔Tout(i−1)をセットする。
次に着目モジュールの第2処理時間TinW(i)と論理的に1つ前段のモジュールの第2送信間隔ToutW(i−1)とを比較する。もし、TinW(i) > ToutW(i−1)が成立したら、ステップS510において論理的に1つ前段のモジュールの第2送信間隔ToutW(i−1)に着目モジュールの第2処理時間TinW(i)を代入する。一方で、TinW(i) > ToutW(i−1)の条件を満たしていなければステップS510の処理は省略する。
次に、ステップS511において、着目モジュールの第1処理時間TinH(i)と論理的に1つ前段の第1送信間隔ToutH(i−1)とを比較する。もし、TinH(i) > ToutH(i−1)が成立したら、ステップS512において論理的に1つ前段のモジュールの第1送信間隔ToutH(i−1)に着目モジュールの第1処理時間TinH(i)を代入する。一方で、TinH(i) > ToutH(i−1)の条件を満たしていなければステップS512の処理は省略する。
次に、ステップS513においてiをデクリメントすることで、論理的に1つ前段のモジュールを着目モジュールとして設定し、ステップS504〜S512の処理を各モジュールについて実施する。
図9(b)示す様に、変倍処理を実施するモジュール(ID=0x04)の送信間隔は32となることから、第2処理時間TinW(i)と第1処理時間TinH(i)は(1)式、(2)式を用いて以下のように求められる。なお、ID=0x04〜0x05間の各モジュールの送信間隔の決定処理については実施例1の処理と同様であるのでここでは省略する。
・TinW(i)=縦の倍率×ToutH(i)+縦方向画素数×縦の倍率×(横の倍率−1)×ToutH(i)
=2×32+2×2×1×32=192
・TinH(i)=縦の倍率×ToutH(i)
=2×32 =64
これらの処理時間(TinW(i)、TinH(i))は論理的に1つ前段のモジュール(ID=0x08)のデフォルトの送信間隔11より大きいので、論理的に1つ前段のモジュールの第2送信間隔を192、第1送信間隔を64と設定する。図5に示す処理によって図9(b)に示す各モジュールの送信間隔は図9(d)のように設定できる。
このように、本実施例では、並列処理部920の有する処理モジュールの1つがバンド画像内縦スキャン処理での変倍処理をすることで複数種類の処理時間を有していても、次のモジュールの処理を待つパケットの増加を抑制できる。これにより、並列処理部920の有する複数のモジュールに流れるデータ量(パケット量)を最適化することができる。
なお、上述の実施例では処理モジュールが4個、5個の例を示したが、本発明において処理モジュールは2個以上であればその数は制限されない。また、図3に示した様に出力モジュールと入力モジュールを別々に配置した構成に基づいて説明しているが、上述した入力モジュールと出力モジュールの処理を別々に実行できるならば、物理的には入出力モジュールとして構成してもよい。
なお、上述の実施例では1つのパケットに1つの画素を格納する例を説明したが、画像データからタイル状(m×n画素)もしくはバンド状(m×n画素、mは画像の一辺に相当する)の画素を分割して格納するようにしてもよい。また、バンドのスキャン方向とモジュールのデータ送信制御部がデータを出力する順序に対応していれば縦方向スキャン処理に関わらず本発明を適用できる。
なお、上述の実施例ではリングバス状に各モジュールを接続する例を挙げたが、リングバスの代わりにクロスバースイッチや共有メモリを用いて、各モジュールが処理する順序を任意に変えられる構成であれば、各モジュールの共有する箇所の転送効率は改善できる。
なお、上述の実施例で説明したように、リングバス状に各モジュールを接続し各モジュールが一方向にパケットを流す場合は、データの流れが単純であるため簡易な構成で転送効率の向上が可能である。またこの場合、各モジュールが受付けたパケットについて、モジュールで処理できないときに、入力データ識別部がstallフラグ202をこのパケットに設定することで、次にモジュールが処理できるようになるまでリングバスを周回させ続けることができる。
また、上述の実施例では単一のパイプライン処理を設定する例しか説明していないが、本発明を複数のパイプライン処理を時分割多重で実行する並列処理部に適用することができる。その場合、図2に示すパケットのフォーマットにパケットの属するパイプライン処理を識別するパス識別子を設けて、各モジュールのデータ送信間隔カウンタ、データ送信間隔レジスタ、はパイプライン処理毎に設定(送信間隔など)を保存させればよい。また、入力データ識別部の入力パケットの識別用のレジスタ、出力データ生成部の出力するパケットに付加するIDを格納するレジスタもパイプライン処理毎のIDを格納しておく必要がある。なお、この場合は、設定の範囲内であればパイプライン処理を切換えても各モジュールの送信間隔を設定する処理を再度行う必要はない。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施例の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

Claims (11)

  1. 通信可能に接続されている複数のモジュールがデータを所定の順序で処理するように、制御手段で制御することでパイプライン処理を実行するデータ処理装置であって、
    前記モジュールは、
    当該モジュールで処理するデータを取り込み、当該データに前記パイプライン処理の一部の処理を実行する処理手段と、
    当該モジュールの処理したデータの許容出力量を示す設定を記憶する記憶手段と、
    前記処理手段の処理したデータを、前記設定に基づいて当該モジュールより一つ後段のモジュールへ出力する出力手段と、を備え、
    前記制御手段は、
    前記複数のモジュールについて前記パイプライン処理の後段のモジュールから逆順に着目し、着目したモジュールのデータの処理時間を当該着目したモジュールの記憶手段の記憶する設定に基づいて推定する推定手段と、
    前記着目したモジュールの処理時間に応じて、前記着目したモジュールから一つ前段のモジュールの記憶手段に許容出力量を設定する設定手段と
    を備えることを特徴とするデータ処理装置。
  2. 通信可能に接続されている複数のモジュールがデータを格納するパケットを所定の順序で処理するように、制御手段で制御することでパイプライン処理を実行するデータ処理装置であって、
    前記モジュールは、
    当該モジュールで処理するデータを格納するパケットを取り込み、当該データに前記パイプライン処理の一部の処理を実行する処理手段と、
    当該モジュールの処理したデータの出力間隔を記憶する記憶手段と、
    前記処理手段の処理したデータをパケットに格納して、前記出力間隔に基づいて当該モジュールより一つ後段のモジュールへ出力する出力手段と、を備え、
    前記制御手段は、
    前記複数のモジュールについて前記パイプライン処理の後段のモジュールから逆順に着目し、着目したモジュールのパケットあたりの処理時間を当該着目したモジュールの記憶する出力間隔に基づいて推定する推定手段と、
    前記着目したモジュールから一つ前段のモジュールの出力間隔が前記着目したモジュールの処理時間以上になるように、前記着目したモジュールから一つ前段のモジュールの記憶手段の出力間隔を設定する設定手段と
    を備えることを特徴とするデータ処理装置。
  3. 前記推定手段の推定する処理時間は、前記着目したモジュールがパケットを取得してから当該パケットの格納するデータを処理して前記出力手段で出力するまでの時間であることを特徴とする請求項2に記載のデータ処理装置。
  4. 前記推定手段は、前記着目したモジュールの処理内容と当該着目したモジュールの出力間隔とに基づいて、前記着目したモジュールのパケットあたりの処理時間を推定することを特徴とする請求項2に記載のデータ処理装置。
  5. 前記着目したモジュールの処理内容が変倍の場合、前記推定手段の推定する処理時間は、前記着目したモジュールがパケットを取得してから当該パケットの格納するデータを処理して、当該データによって生成するデータの全てを前記出力手段で出力するまでの時間であることを特徴とする請求項4に記載のデータ処理装置。
  6. 前記処理時間または前記出力間隔は、サイクルタイム又はクロック数によって示されることを特徴とする請求項2乃至5のいずれか1項に記載のデータ処理装置。
  7. 前記複数のモジュールはリング状に単方向のバスで接続されていることを特徴とする請求項2乃至6のいずれか1項に記載のデータ処理装置。
  8. 前記設定手段は、パイプライン処理上で最後段のモジュールの記憶手段に所定の値を設定することを特徴とする請求項2乃至7のいずれか1項に記載のデータ処理装置。
  9. m×n画素の画像を所定方向にスキャンした順に1画素ずつ前記パケットの夫々が格納し、前記着目したモジュールの処理内容が変倍処理の場合に、前記推定手段は前記画像の一部を格納するパケットについて、n×L(Lは1〜mの自然数)番目のパケットの処理に要する時間を第1処理時間として推定し、n×L番目以外のパケットの処理に要する時間を第2処理時間として推定し、
    前記設定手段は前記着目したモジュールから一つ前段のモジュールの記憶手段に設定する出力間隔として、第1処理時間に対応する第1出力間隔と、第2処理時間に対応する第2出力間隔とを設定し、
    前記着目したモジュールから一つ前段のモジュールの出力手段は、前記画像の一部を格納するパケットについて、n×L(Lは1からmの自然数)番目のパケットを出力する際には第1出力間隔に基づいてパケットを出力し、n×L番目以外のパケットを出力する際には第2出力間隔に基づいてパケットを出力することを特徴とする請求項2乃至8のいずれか1項に記載のデータ処理装置。
  10. 通信可能に接続されている複数のモジュールがデータを所定の順序で処理するように、制御手段で制御することでパイプライン処理を実行するデータ処理装置の制御方法であって、
    前記モジュールが、
    当該モジュールで処理するデータを取り込み、当該データに前記パイプライン処理の一部の処理を実行する処理工程と、
    当該モジュールの処理したデータの許容出力量を示す設定を記憶する記憶工程と、
    前記処理工程で処理したデータを、前記設定に基づいて当該モジュールより一つ後段のモジュールへ出力する出力工程と、を備え、
    前記制御手段が、
    前記複数のモジュールについて前記パイプライン処理の後段のモジュールから逆順に着目し、着目したモジュールのデータの処理時間を当該着目したモジュールの記憶手段の記憶する設定に基づいて推定する推定工程と、
    前記着目したモジュールから一つ前段のモジュールの設定が前記着目したモジュールの処理時間以上になるように、前記着目したモジュールから一つ前段のモジュールの記憶手段に許容出力量を設定する設定工程と
    を備えることを特徴とする制御方法。
  11. 通信可能に接続されている複数のモジュールがデータを格納するパケットを所定の順序で処理するように、制御手段で制御することでパイプライン処理を実行するデータ処理装置の制御方法であって、
    前記モジュールが、
    当該モジュールで処理するデータを格納するパケットを取り込み、当該データに前記パイプライン処理の一部の処理を実行する処理工程と、
    当該モジュールの処理したデータの出力間隔を記憶する記憶工程と、
    前記処理工程で処理したデータをパケットに格納して、前記出力間隔に基づいて当該モジュールより一つ後段のモジュールへ出力する出力工程と、
    前記制御手段が、
    前記複数のモジュールについて前記パイプライン処理の後段のモジュールから逆順に着目し、着目したモジュールのパケットあたりの処理時間を当該着目したモジュールの記憶する出力間隔に基づいて推定する推定工程と、
    前記着目したモジュールから一つ前段のモジュールの出力間隔が前記着目したモジュールの処理時間以上になるように、前記着目したモジュールから一つ前段のモジュールの記憶工程の出力間隔を設定する設定工程と
    を有することを特徴とする制御方法。
JP2009234021A 2009-10-08 2009-10-08 複数の処理モジュールを有する並列処理回路を備えるデータ処理装置、その制御装置、およびその制御方法、プログラム Expired - Fee Related JP5590849B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2009234021A JP5590849B2 (ja) 2009-10-08 2009-10-08 複数の処理モジュールを有する並列処理回路を備えるデータ処理装置、その制御装置、およびその制御方法、プログラム
US12/897,625 US8754896B2 (en) 2009-10-08 2010-10-04 Data processing apparatus having a parallel processing circuit including a plurality of processing modules, and method for controlling the same
US14/263,760 US9286078B2 (en) 2009-10-08 2014-04-28 Data processing apparatus having a parallel processing circuit including a plurality of processing modules, and method for controlling the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009234021A JP5590849B2 (ja) 2009-10-08 2009-10-08 複数の処理モジュールを有する並列処理回路を備えるデータ処理装置、その制御装置、およびその制御方法、プログラム

Publications (2)

Publication Number Publication Date
JP2011081643A true JP2011081643A (ja) 2011-04-21
JP5590849B2 JP5590849B2 (ja) 2014-09-17

Family

ID=43855752

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009234021A Expired - Fee Related JP5590849B2 (ja) 2009-10-08 2009-10-08 複数の処理モジュールを有する並列処理回路を備えるデータ処理装置、その制御装置、およびその制御方法、プログラム

Country Status (2)

Country Link
US (2) US8754896B2 (ja)
JP (1) JP5590849B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012008976A (ja) * 2010-06-28 2012-01-12 Canon Inc データ処理装置、データ処理方法、およびプログラム
JP2013030927A (ja) * 2011-07-27 2013-02-07 Oki Electric Ind Co Ltd ネットワーク分析システム、並びに、ネットワーク分析装置及びネットワーク分析プログラム、並びに、データ処理モジュール及びデータ処理プログラム
WO2013108873A1 (ja) * 2012-01-18 2013-07-25 オリンパス株式会社 内視鏡用画像プロセッサ

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5534711B2 (ja) * 2009-05-01 2014-07-02 キヤノン株式会社 情報処理装置、情報処理方法およびプログラム
JP5930834B2 (ja) * 2011-09-27 2016-06-08 キヤノン株式会社 画像処理装置、画像処理方法、画像処理装置の制御方法
JP6338379B2 (ja) * 2014-01-20 2018-06-06 キヤノン株式会社 情報処理装置及び情報処理装置の制御方法
CN117669462A (zh) * 2022-08-24 2024-03-08 长鑫存储技术有限公司 电路布局结构与芯片

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS607538A (ja) * 1983-06-27 1985-01-16 Dainippon Screen Mfg Co Ltd デ−タ転送制御方法
JPH06276205A (ja) * 1993-03-18 1994-09-30 Hitachi Ltd ネットワークシステム
JPH07244587A (ja) * 1994-03-04 1995-09-19 Nec Corp データ処理装置
JPH09223010A (ja) * 1996-02-16 1997-08-26 Toshiba Corp マイクロプロセッサおよびその処理方法
JPH11331842A (ja) * 1998-03-19 1999-11-30 Matsushita Electric Ind Co Ltd 画像データ圧縮装置及びその方法
JP2002185560A (ja) * 2000-12-15 2002-06-28 Sharp Corp シリアル転送方式
WO2002095946A1 (fr) * 2001-05-24 2002-11-28 Ip Flex Inc. Dispositif a circuit integre
JP2003124954A (ja) * 2001-10-18 2003-04-25 Nec Corp ネットワークの混雑制御システムと混雑制御ノード、及び混雑制御プログラム
JP2003296096A (ja) * 2002-04-01 2003-10-17 Sony Computer Entertainment Inc シリアル演算パイプライン、演算装置、算術論理演算回路およびシリアル演算パイプラインによる演算方法
US20050262510A1 (en) * 2004-05-13 2005-11-24 Ittiam Systems (P) Ltd Multi-threaded processing design in architecture with multiple co-processors
JP2006018413A (ja) * 2004-06-30 2006-01-19 Fujitsu Ltd プロセッサおよびパイプライン再構成制御方法
JP2007515731A (ja) * 2003-12-22 2007-06-14 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 分散画像処理アプリケーションを生成するシステム
JP2007208920A (ja) * 2006-02-06 2007-08-16 Mitsubishi Electric Corp リング型ネットワークシステム
JP2010198226A (ja) * 2009-02-24 2010-09-09 Canon Inc データ処理装置、データ処理方法およびプログラム
JP2010218253A (ja) * 2009-03-17 2010-09-30 Canon Inc 情報処理装置、情報処理方法およびプログラム

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2522952B2 (ja) 1987-07-20 1996-08-07 三洋電機株式会社 リング状ネットワ−ク装置
US5369775A (en) * 1988-12-20 1994-11-29 Mitsubishi Denki Kabushiki Kaisha Data-flow processing system having an input packet limiting section for preventing packet input based upon a threshold value indicative of an optimum pipeline processing capacity
JP3083582B2 (ja) 1991-04-30 2000-09-04 株式会社日立製作所 並列処理装置
US5437045A (en) * 1992-12-18 1995-07-25 Xerox Corporation Parallel processing with subsampling/spreading circuitry and data transfer circuitry to and from any processing unit
US5557734A (en) * 1994-06-17 1996-09-17 Applied Intelligent Systems, Inc. Cache burst architecture for parallel processing, such as for image processing
US5835753A (en) * 1995-04-12 1998-11-10 Advanced Micro Devices, Inc. Microprocessor with dynamically extendable pipeline stages and a classifying circuit
US5799165A (en) * 1996-01-26 1998-08-25 Advanced Micro Devices, Inc. Out-of-order processing that removes an issued operation from an execution pipeline upon determining that the operation would cause a lengthy pipeline delay
US5930492A (en) * 1997-03-19 1999-07-27 Advanced Micro Devices, Inc. Rapid pipeline control using a control word and a steering word
US6076159A (en) * 1997-09-12 2000-06-13 Siemens Aktiengesellschaft Execution of a loop instructing in a loop pipeline after detection of a first occurrence of the loop instruction in an integer pipeline
WO2000011607A1 (en) * 1998-08-20 2000-03-02 Apple Computer, Inc. Deferred shading graphics pipeline processor
US6292200B1 (en) * 1998-10-23 2001-09-18 Silicon Graphics, Inc. Apparatus and method for utilizing multiple rendering pipes for a single 3-D display
US6753878B1 (en) * 1999-03-08 2004-06-22 Hewlett-Packard Development Company, L.P. Parallel pipelined merge engines
US7376811B2 (en) * 2001-11-06 2008-05-20 Netxen, Inc. Method and apparatus for performing computations and operations on data using data steering
EP1495412B1 (en) * 2002-03-22 2012-11-28 Alandro Consulting NY LLC Scalable high performance 3d graphics
SE525183C2 (sv) * 2002-04-04 2004-12-21 Xelerated Ab Förfarande och medel för behandling med pipelining av datapaket
WO2005050557A2 (en) * 2003-11-19 2005-06-02 Lucid Information Technology Ltd. Method and system for multiple 3-d graphic pipeline over a pc bus
EP1697830B1 (en) * 2003-12-16 2009-02-04 Nxp B.V. Memory-efficient instruction processing scheme
US8099583B2 (en) * 2006-08-23 2012-01-17 Axis Semiconductor, Inc. Method of and apparatus and architecture for real time signal processing by switch-controlled programmable processor configuring and flexible pipeline and parallel processing

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS607538A (ja) * 1983-06-27 1985-01-16 Dainippon Screen Mfg Co Ltd デ−タ転送制御方法
JPH06276205A (ja) * 1993-03-18 1994-09-30 Hitachi Ltd ネットワークシステム
JPH07244587A (ja) * 1994-03-04 1995-09-19 Nec Corp データ処理装置
JPH09223010A (ja) * 1996-02-16 1997-08-26 Toshiba Corp マイクロプロセッサおよびその処理方法
JPH11331842A (ja) * 1998-03-19 1999-11-30 Matsushita Electric Ind Co Ltd 画像データ圧縮装置及びその方法
JP2002185560A (ja) * 2000-12-15 2002-06-28 Sharp Corp シリアル転送方式
WO2002095946A1 (fr) * 2001-05-24 2002-11-28 Ip Flex Inc. Dispositif a circuit integre
JP2003124954A (ja) * 2001-10-18 2003-04-25 Nec Corp ネットワークの混雑制御システムと混雑制御ノード、及び混雑制御プログラム
JP2003296096A (ja) * 2002-04-01 2003-10-17 Sony Computer Entertainment Inc シリアル演算パイプライン、演算装置、算術論理演算回路およびシリアル演算パイプラインによる演算方法
JP2007515731A (ja) * 2003-12-22 2007-06-14 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 分散画像処理アプリケーションを生成するシステム
US20050262510A1 (en) * 2004-05-13 2005-11-24 Ittiam Systems (P) Ltd Multi-threaded processing design in architecture with multiple co-processors
JP2006018413A (ja) * 2004-06-30 2006-01-19 Fujitsu Ltd プロセッサおよびパイプライン再構成制御方法
JP2007208920A (ja) * 2006-02-06 2007-08-16 Mitsubishi Electric Corp リング型ネットワークシステム
JP2010198226A (ja) * 2009-02-24 2010-09-09 Canon Inc データ処理装置、データ処理方法およびプログラム
JP2010218253A (ja) * 2009-03-17 2010-09-30 Canon Inc 情報処理装置、情報処理方法およびプログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012008976A (ja) * 2010-06-28 2012-01-12 Canon Inc データ処理装置、データ処理方法、およびプログラム
JP2013030927A (ja) * 2011-07-27 2013-02-07 Oki Electric Ind Co Ltd ネットワーク分析システム、並びに、ネットワーク分析装置及びネットワーク分析プログラム、並びに、データ処理モジュール及びデータ処理プログラム
US20140301222A1 (en) * 2011-07-27 2014-10-09 Oki Electric Industry Co., Ltd. Network analyzing system, as well as network analyzing apparatus and network analyzing program, as well as data processing module and data processing program
US9419882B2 (en) 2011-07-27 2016-08-16 Oki Electric Industry Co., Ltd. Network analyzing system, as well as network analyzing apparatus and network analyzing program, as well as data processing module and data processing program
WO2013108873A1 (ja) * 2012-01-18 2013-07-25 オリンパス株式会社 内視鏡用画像プロセッサ

Also Published As

Publication number Publication date
US9286078B2 (en) 2016-03-15
US20110087863A1 (en) 2011-04-14
US8754896B2 (en) 2014-06-17
JP5590849B2 (ja) 2014-09-17
US20140229639A1 (en) 2014-08-14

Similar Documents

Publication Publication Date Title
JP5590849B2 (ja) 複数の処理モジュールを有する並列処理回路を備えるデータ処理装置、その制御装置、およびその制御方法、プログラム
US20160057256A1 (en) Information processing apparatus, communication method and storage medium
US10148455B2 (en) Data processing apparatus, method for controlling data processing apparatus, and program
US9703731B2 (en) Data transfer apparatus and data transfer method
JP5460156B2 (ja) データ処理装置
US20100303090A1 (en) Data processing apparatus using ring bus, data processing method andcomputer-readable storage medium
JP5539101B2 (ja) 情報処理装置、情報処理方法、およびプログラム
JP2014183561A (ja) 多眼撮像装置および画像データの伝送方法
JP5538798B2 (ja) データ処理装置およびデータ処理方法またはプログラム
JP2019091333A (ja) データ転送装置、演算処理装置及びデータ転送方法
US7321596B2 (en) Packet control system and communication method
JP4883520B2 (ja) メモリ制御装置およびメモリ制御方法
US9672874B2 (en) Buffer, method for controlling buffer, synchronization control device, synchronization control method, image processing apparatus, and image processing method
TWI514888B (zh) 高速傳送接收影像資料方法及裝置
EP2199919B1 (en) Method for processing data using triple buffering
JP4839489B2 (ja) ディスクリプタ制御方法、ダイレクトメモリ転送装置およびプログラム
KR20140090260A (ko) 단단히 커플링된 저전력 이미지 프로세싱을 위한 방법 및 장치
JP5534711B2 (ja) 情報処理装置、情報処理方法およびプログラム
JP2013175156A (ja) データ処理装置、入力制御装置、及び制御方法
JP2020191520A (ja) 撮像装置及び撮像装置の制御方法
CN113365015B (zh) 一种视频数据处理装置及方法
JPH07320027A (ja) 画像処理装置
JP2005149203A (ja) データ取り込み装置及びデータ取り込み方法
JP5402938B2 (ja) パイプラインリングバスに接続された異なる帯域幅のプロセシングユニットを有するプロセッサのアーキテクチャにおけるプロセシングユニット間の高速なデータ交換のための制御装置
JPH07191934A (ja) 二重バス装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120913

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140324

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140415

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140613

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140729

R151 Written notification of patent or utility model registration

Ref document number: 5590849

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees