説明

データ処理装置

【課題】互いに他のデータフローの処理を妨害することを防止できるようにする。
【解決手段】複数のデータ処理部がリング状のバスに接続され、前記複数のデータ処理部にて予め設定された順序でデータ処理を行うデータ処理装置であって、前記データ処理装置の外部にデータを出力する複数のデータ出力部を備え、前記複数のデータ出力部のいずれかにより、処理済みデータを前記リング状のバスの外に出力するようにして、複数のデータフローを1つずつ逐次的に処理するよりも処理速度が向上することができるようにする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はリング状バスを用いた画像処理部を有するデータ処理装置に関する。
【背景技術】
【0002】
従来、ハードウェアによって実現される処理回路を並列実行することによって効率よくデータ処理を行う方法として、バス型のパイプラインによる接続方式があった(例えば、特許文献1参照)。この接続方式では、入力端においてI/Fなどから入力されたデータは、接続された順序に基づいて順次処理された後に出力端において外部メモリ等へ出力される。そのため、その処理順序はあらかじめハードウェア実装時に接続された順序によって制限され、順序入れ替えを含む任意の処理順序を実行することはできなかった。
【0003】
こうした課題を解決するために、処理回路間の接続をリング型のバスで接続する方法が提案されている(例えば、特許文献2〜4参照)。これらの特許文献2〜4に記載の技術では、例えば処理すべきデータの総数がN個であった場合、その処理時間は少なくとも2Nサイクルで済む。このように、周回データによって生じる処理速度の低下を、データ投入間隔を制御することによって防止する技術は従来から考えられていた。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特許第2734246号公報
【特許文献2】特開平1−255935号公報
【特許文献3】特開昭64−42741号公報
【特許文献4】特開平2−188879号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術では、固定的な処理機能を持つ処理部を接続したリング型バス接続において、非常に多くのデータを処理するデータフローを、複数同時に、かつ高速に実行することが困難であった。すなわち、リング型バスで接続されたシステムにおいて、それぞれが独立の処理をするデータフローであっても、一方のデータフローの処理済みデータが他方のデータフローの出力を妨害するという課題があった。
【0006】
本発明は前述の問題点に鑑み、互いに他のデータフローの処理を妨害することを防止できるようにすることを目的としている。
【課題を解決するための手段】
【0007】
本発明のデータ処理装置は、複数のデータ処理手段がリング状のバスに接続され、前記複数のデータ処理手段にて予め設定された順序でデータ処理を行うデータ処理装置であって、前記データ処理装置の外部にデータを出力する複数のデータ出力手段を備え、前記複数のデータ出力手段のいずれかにより、処理済みデータを前記リング状のバスの外に出力することを特徴とする。
【発明の効果】
【0008】
本発明によれば、処理済みデータの無駄な周回を減少させ、他のデータフローの出力の妨害を防止することができる。これにより、複数のデータフローの高速な同時処理が可能となり、複数のデータフローを1つずつ逐次的に処理するよりも処理速度が向上する。
【図面の簡単な説明】
【0009】
【図1】実施形態のデータ処理システムの構成例を示すブロック図である。
【図2】画像処理部の設定処理手順の一例を示すフローチャートである。
【図3】実施形態の画像処理部の詳細な構成例を示すブロック図である。
【図4】実施形態の画像処理部の詳細な構成例を示すブロック図である。
【図5】パケットのデータ構造の一例を示す図である。
【発明を実施するための形態】
【0010】
(第1の実施形態)
以下、本発明の実施形態について図面を参照しながら説明する。
図1は、本実施形態のデータ処理システムの構成例を示すブロック図である。
図1において、801は、例えばCPUなどの装置全体を制御する制御処理部である。802は、画像に対して所定の処理を行う画像処理部である。803は、入力された画像データや、画像処理後の出力するための画像データ、及び画像処理部802の設定パラメータなどを格納する読み書き可能なRAMである。804は、制御処理部801の処理順序や、設定パラメータ等の定数などを保持可能な読み出し可能なROMである。
【0011】
制御処理部801は、ROM804から読み出されたプログラムに従って、データ処理システムの制御ならびに画像処理部802への指示等を行う。画像処理部802は、制御処理部801からの指示に従って画像処理を実行する。その際に、RAM803にあらかじめ格納されている画像データを読み出して画像処理を施し、処理結果を再びRAM803に書き込む。
【0012】
図2に、制御処理部801による画像処理部802の設定処理手順の一例を示すフローチャートである。
画像処理制御が開始されると、ステップS901において、画像処理部802内部のデータ処理部の処理順序の情報をROM804から読み出す。
【0013】
次に、ステップS902において、画像処理部802に対して与える処理パラメータをROM804から読み出す。そして、ステップS903において、ステップS901及びS902において読み出された処理順序ならびに処理パラメータの一部ないし全部を用いて画像処理部802の制御パラメータを算出する。次に、ステップS904において、ステップS903において算出された制御パラメータを用いて、画像処理部802に対する設定処理を行う。
【0014】
次に、ステップS905において、画像処理部802に対して処理開始の指示を行う。そして、ステップS906において、処理の終了を確認する処理を行う。次に、ステップS907において、処理を終了するか否かを判断する。この判断の結果、処理を終了する場合には、画像処理部802の制御処理を終了する。一方、ステップS907の判断の結果、処理を終了しない場合は、再びステップS906へ戻り、終了確認処理を継続する。
【0015】
図3は、本実施形態における画像処理部802の詳細な構成例を示すブロック図である。
図3において、301は、RAM803などの外部の記憶装置などから処理すべきデータを取得するデータ取得部である。302は、取得されたデータをリング状に構成されている通信路に供給する通信処理部である。
【0016】
303〜306は、供給されたデータに対して画像処理等を行うデータ処理部であり、307〜310は、リング状に構成された通信路から、それぞれのデータ処理部303〜306で処理すべきデータを通信路から選別して取り込む通信処理部である。311は、処理済みのデータをRAM803などの外部の記憶装置に出力するために、リング状の通信路上から処理済のデータを選択して取り込む通信処理部である。312は、通信処理部311により取り込まれた処理済のデータをRAM803などの外部の記憶装置に出力するデータ出力部である。313は、これらの通信処理部を連結するリング状のデータバスである。
【0017】
この構成において、314は、データ処理部303、304を使用する第1のデータフローであり、315は、データ処理部305、306を使用する第2のデータフローであるものとする。また、1001は、処理済みのデータをRAM803などの外部の記憶装置に出力するために、リング状の通信路上から処理済みのデータを選択して取り込む通信処理部である。さらに、1002は、通信処理部311により取り込まれた処理済みのデータをRAM803などの外部の記憶装置に出力するデータ出力部である。
【0018】
本実施形態では、外部にデータを出力するデータ出力部を複数持つことを特徴としている。本実施形態においては、出力部312、1002を用いて説明するが、出力部の総数ならびに配置箇所においては特に限定しない。
【0019】
本実施形態においては、図3に示すように、データ取得部301とデータ処理部303〜306とが並列に実行可能なようにパイプライン接続されており、さらに、その終端及び先端もデータバス313によって接続され、リング状のバスが形成されている。このリング状バスにおいて、通信路上には有限の数のデータを保持する概念上のパケット1003が存在する。ここに処理されるデータを格納して単一方向に周回させることによって、所望のデータ処理部に対してデータを送付する。このパケット1003は、例えば図5に示すようなデータ構造をもち、実際には、通信処理部ごとに実装されるシフトレジスタなどにより構成されてもよい。
【0020】
データ処理部303〜306及びその通信処理部307〜310は、あらかじめ設定されたIDとパケット1003上のデータに付帯するIDとを比較し、それらが同一である場合には、そのデータを取り込んで処理を行う。その後、データ処理部303〜306によって処理されたデータは、データを保持していない空のパケットに対して処理済のデータおよび新たなIDを格納することによってデータをデータバス313上に出力する。これを次のデータ処理部が処理することにより、一連の意図された順序でデータ処理が実行される。ここで、パケット1003が空かどうかは、図5に示すValidビットがたっているかどうかによって判別する。有効なデータを出力する際にはこのValidビットを立て、逆に有効なデータを受信して処理する際には、パケットデータフォーマット上のValidビットを落とすことで、パケットの再利用を行う。
【0021】
ここで、第1のデータフロー314と第2のデータフロー315とを同時にではなく逐次的に、つまり、第1のデータフロー314にN個のデータを投入し、その処理が終わった後、第2のデータフロー315にN個のデータを投入したとする。また、データ処理部303〜306は、例えば処理に1サイクルかかるものとし、データ処理部305は1つの入力に対して2つのデータを出力することができるものとする。
【0022】
一般に、第1のデータフローでは、データ取得部がデータをリングバスに投入する間隔は1サイクルでよい。そのため、その処理時間は少なくともNサイクルかかり、第2のデータフローは、データ取得部がデータをリングバスに投入する間隔は2サイクル必要である。よって、その処理時間は少なくとも2Nサイクルかかるため、全ての処理が終わるまでに少なくとも3Nサイクルを要する。これに対して、本実施形態では、以下のような手順を行う。
【0023】
図4は、図3に示す構成において、データ取得部301から第1のデータフロー314で処理すべきデータと、第2のデータフロー315で処理すべきデータを交互に取得してリングバス上に送出している状態を示す図である。ここで、第1のデータフロー314で処理すべきデータ1101〜1105は四角で表すこととし、第2のデータフロー315で処理すべきデータ1111〜1117は丸で表すこととする。図4におけるデータ1101〜1105、1111〜1117に記載されている数字は、データバス313に投入された順番を示すものである。また、データ処理部303〜306は、例えば処理に1サイクルかかるものとし、データ処理部305は1つの入力に対して2つのデータを出力することができるものとする。
【0024】
第1のデータフロー314の処理済みデータは、データ処理部304により処理が行われた後、通信処理部308に送信される。通信処理部308では、データを保持していない空のパケットに、データ処理部304から受け取ったデータと新たなIDとを格納することによってデータをデータバス313上に出力する。通信処理部1001では、通信処理部308が格納したIDが付帯されたパケットを取り込むようあらかじめ設定されている。その設定されたIDとパケットに付帯するIDとを比較し、それらが同一である場合には、そのデータを取り込み、データ出力部1002に送出する。
【0025】
この結果、第1のデータフロー314の処理済みデータはデータ出力部1002を介して速やかに画像処理部802の外部に排出され、第2のデータフロー315には空パケットが渡される。これにより、第2のデータフロー315における、データ処理部305、306において処理されたデータは、第1のデータフロー314の処理済みデータに妨害されることなく出力が可能となる。
【0026】
本実施形態では、データ取得部301は一度も周回パケットに妨害されることなくデータの投入が可能である。よって、第1のデータフロー314で処理すべきN個のデータと、第2のデータフロー315で処理すべきN個のデータとを交互に投入したとすると、全体の処理時間は少なくとも2Nサイクルで済む。このように、本実施形態によれば、互いの処理が独立したデータフローを同時に実行でき、なおかつ処理速度が向上する。
【0027】
なお、本実施形態では、データ出力部1002、312を2つの独立したデータフローの直後、すなわち、データ処理部304、306の直後にそれぞれ配置した。しかし、本発明はデータ出力部の個数、配置場所を特に限定するものではない。例えば、2つのデータ処理部の間全てにデータ出力部を挿入すれば、どんなデータフローを複数同時に処理する場合においても、データフローの処理が終了した直後にリングバス外部に出力される。よって、処理済みデータが他のデータフローの妨害をすることはなくなる。ただし、実際に回路を組む場合にデータ処理部間全てにデータ出力部を配置しようとするとコストが多くかかる。そのため、本実施形態で示したように、その回路で想定しうる各データフローの最後の処理をするデータ処理部の直後にデータ出力部を配置するのが効果的である。
【0028】
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【符号の説明】
【0029】
303〜306 データ処理部、312、1002 データ出力部

【特許請求の範囲】
【請求項1】
複数のデータ処理手段がリング状のバスに接続され、前記複数のデータ処理手段にて予め設定された順序でデータ処理を行うデータ処理装置であって、
前記データ処理装置の外部にデータを出力する複数のデータ出力手段を備え、
前記複数のデータ出力手段のいずれかにより、処理済みデータを前記リング状のバスの外に出力することを特徴とするデータ処理装置。
【請求項2】
前記データ出力手段を、前記データ処理手段の間全てに具備し、1つのデータ処理手段で処理を終えたデータを直後のデータ出力手段により、前記リング状のバスの外に出力することを特徴とする請求項1記載のデータ処理装置。
【請求項3】
前記データ出力手段を、1つのデータフローの最後の処理を行うデータ処理手段の後に具備し、前記1つのデータフローで処理を終えたデータを直後の前記データ出力手段により、前記リング状のバス外に出力することを特徴とする請求項1記載のデータ処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2011−65566(P2011−65566A)
【公開日】平成23年3月31日(2011.3.31)
【国際特許分類】
【出願番号】特願2009−217606(P2009−217606)
【出願日】平成21年9月18日(2009.9.18)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】