(57)【要約】【課題】互いに他のデータフローの処理を妨害することを防止できるようにする。【解決手段】複数のデータ処理部がリング状のバスに接続され、前記複数のデータ処理部にて予め設定された順序でデータ処理を行うデータ処理装置であって、前記データ処理装置の外部にデータを出力する複数のデータ出力部を備え、前記複数のデータ出力部のいずれかにより、処理済みデータを前記リング状のバスの外に出力するようにして、複数のデータフローを１つずつ逐次的に処理するよりも処理速度が向上することができるようにする。【選択図】図３
2011065566.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータ処理手段がリング状のバスに接続され、前記複数のデータ処理手段にて予め設定された順序でデータ処理を行うデータ処理装置であって、
前記データ処理装置の外部にデータを出力する複数のデータ出力手段を備え、
前記複数のデータ出力手段のいずれかにより、処理済みデータを前記リング状のバスの外に出力することを特徴とするデータ処理装置。
【請求項２】
前記データ出力手段を、前記データ処理手段の間全てに具備し、１つのデータ処理手段で処理を終えたデータを直後のデータ出力手段により、前記リング状のバスの外に出力することを特徴とする請求項１記載のデータ処理装置。
【請求項３】
前記データ出力手段を、１つのデータフローの最後の処理を行うデータ処理手段の後に具備し、前記１つのデータフローで処理を終えたデータを直後の前記データ出力手段により、前記リング状のバス外に出力することを特徴とする請求項１記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はリング状バスを用いた画像処理部を有するデータ処理装置に関する。
【背景技術】
【０００２】
従来、ハードウェアによって実現される処理回路を並列実行することによって効率よくデータ処理を行う方法として、バス型のパイプラインによる接続方式があった（例えば、特許文献１参照）。この接続方式では、入力端においてＩ／Ｆなどから入力されたデータは、接続された順序に基づいて順次処理された後に出力端において外部メモリ等へ出力される。そのため、その処理順序はあらかじめハードウェア実装時に接続された順序によって制限され、順序入れ替えを含む任意の処理順序を実行することはできなかった。
【０００３】
こうした課題を解決するために、処理回路間の接続をリング型のバスで接続する方法が提案されている（例えば、特許文献２〜４参照）。これらの特許文献２〜４に記載の技術では、例えば処理すべきデータの総数がＮ個であった場合、その処理時間は少なくとも２Ｎサイクルで済む。このように、周回データによって生じる処理速度の低下を、データ投入間隔を制御することによって防止する技術は従来から考えられていた。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第２７３４２４６号公報
【特許文献２】特開平１−２５５９３５号公報
【特許文献３】特開昭６４−４２７４１号公報
【特許文献４】特開平２−１８８８７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、固定的な処理機能を持つ処理部を接続したリング型バス接続において、非常に多くのデータを処理するデータフローを、複数同時に、かつ高速に実行することが困難であった。すなわち、リング型バスで接続されたシステムにおいて、それぞれが独立の処理をするデータフローであっても、一方のデータフローの処理済みデータが他方のデータフローの出力を妨害するという課題があった。
【０００６】
本発明は前述の問題点に鑑み、互いに他のデータフローの処理を妨害することを防止できるようにすることを目的としている。
【課題を解決するための手段】
【０００７】
本発明のデータ処理装置は、複数のデータ処理手段がリング状のバスに接続され、前記複数のデータ処理手段にて予め設定された順序でデータ処理を行うデータ処理装置であって、前記データ処理装置の外部にデータを出力する複数のデータ出力手段を備え、前記複数のデータ出力手段のいずれかにより、処理済みデータを前記リング状のバスの外に出力することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、処理済みデータの無駄な周回を減少させ、他のデータフローの出力の妨害を防止することができる。これにより、複数のデータフローの高速な同時処理が可能となり、複数のデータフローを１つずつ逐次的に処理するよりも処理速度が向上する。
【図面の簡単な説明】
【０００９】
【図１】実施形態のデータ処理システムの構成例を示すブロック図である。
【図２】画像処理部の設定処理手順の一例を示すフローチャートである。
【図３】実施形態の画像処理部の詳細な構成例を示すブロック図である。
【図４】実施形態の画像処理部の詳細な構成例を示すブロック図である。
【図５】パケットのデータ構造の一例を示す図である。
【発明を実施するための形態】
【００１０】
（第１の実施形態）
以下、本発明の実施形態について図面を参照しながら説明する。
図１は、本実施形態のデータ処理システムの構成例を示すブロック図である。
図１において、８０１は、例えばＣＰＵなどの装置全体を制御する制御処理部である。８０２は、画像に対して所定の処理を行う画像処理部である。８０３は、入力された画像データや、画像処理後の出力するための画像データ、及び画像処理部８０２の設定パラメータなどを格納する読み書き可能なＲＡＭである。８０４は、制御処理部８０１の処理順序や、設定パラメータ等の定数などを保持可能な読み出し可能なＲＯＭである。
【００１１】
制御処理部８０１は、ＲＯＭ８０４から読み出されたプログラムに従って、データ処理システムの制御ならびに画像処理部８０２への指示等を行う。画像処理部８０２は、制御処理部８０１からの指示に従って画像処理を実行する。その際に、ＲＡＭ８０３にあらかじめ格納されている画像データを読み出して画像処理を施し、処理結果を再びＲＡＭ８０３に書き込む。
【００１２】
図２に、制御処理部８０１による画像処理部８０２の設定処理手順の一例を示すフローチャートである。
画像処理制御が開始されると、ステップＳ９０１において、画像処理部８０２内部のデータ処理部の処理順序の情報をＲＯＭ８０４から読み出す。
【００１３】
次に、ステップＳ９０２において、画像処理部８０２に対して与える処理パラメータをＲＯＭ８０４から読み出す。そして、ステップＳ９０３において、ステップＳ９０１及びＳ９０２において読み出された処理順序ならびに処理パラメータの一部ないし全部を用いて画像処理部８０２の制御パラメータを算出する。次に、ステップＳ９０４において、ステップＳ９０３において算出された制御パラメータを用いて、画像処理部８０２に対する設定処理を行う。
【００１４】
次に、ステップＳ９０５において、画像処理部８０２に対して処理開始の指示を行う。そして、ステップＳ９０６において、処理の終了を確認する処理を行う。次に、ステップＳ９０７において、処理を終了するか否かを判断する。この判断の結果、処理を終了する場合には、画像処理部８０２の制御処理を終了する。一方、ステップＳ９０７の判断の結果、処理を終了しない場合は、再びステップＳ９０６へ戻り、終了確認処理を継続する。
【００１５】
図３は、本実施形態における画像処理部８０２の詳細な構成例を示すブロック図である。
図３において、３０１は、ＲＡＭ８０３などの外部の記憶装置などから処理すべきデータを取得するデータ取得部である。３０２は、取得されたデータをリング状に構成されている通信路に供給する通信処理部である。
【００１６】
３０３〜３０６は、供給されたデータに対して画像処理等を行うデータ処理部であり、３０７〜３１０は、リング状に構成された通信路から、それぞれのデータ処理部３０３〜３０６で処理すべきデータを通信路から選別して取り込む通信処理部である。３１１は、処理済みのデータをＲＡＭ８０３などの外部の記憶装置に出力するために、リング状の通信路上から処理済のデータを選択して取り込む通信処理部である。３１２は、通信処理部３１１により取り込まれた処理済のデータをＲＡＭ８０３などの外部の記憶装置に出力するデータ出力部である。３１３は、これらの通信処理部を連結するリング状のデータバスである。
【００１７】
この構成において、３１４は、データ処理部３０３、３０４を使用する第１のデータフローであり、３１５は、データ処理部３０５、３０６を使用する第２のデータフローであるものとする。また、１００１は、処理済みのデータをＲＡＭ８０３などの外部の記憶装置に出力するために、リング状の通信路上から処理済みのデータを選択して取り込む通信処理部である。さらに、１００２は、通信処理部３１１により取り込まれた処理済みのデータをＲＡＭ８０３などの外部の記憶装置に出力するデータ出力部である。
【００１８】
本実施形態では、外部にデータを出力するデータ出力部を複数持つことを特徴としている。本実施形態においては、出力部３１２、１００２を用いて説明するが、出力部の総数ならびに配置箇所においては特に限定しない。
【００１９】
本実施形態においては、図３に示すように、データ取得部３０１とデータ処理部３０３〜３０６とが並列に実行可能なようにパイプライン接続されており、さらに、その終端及び先端もデータバス３１３によって接続され、リング状のバスが形成されている。このリング状バスにおいて、通信路上には有限の数のデータを保持する概念上のパケット１００３が存在する。ここに処理されるデータを格納して単一方向に周回させることによって、所望のデータ処理部に対してデータを送付する。このパケット１００３は、例えば図５に示すようなデータ構造をもち、実際には、通信処理部ごとに実装されるシフトレジスタなどにより構成されてもよい。
【００２０】
データ処理部３０３〜３０６及びその通信処理部３０７〜３１０は、あらかじめ設定されたＩＤとパケット１００３上のデータに付帯するＩＤとを比較し、それらが同一である場合には、そのデータを取り込んで処理を行う。その後、データ処理部３０３〜３０６によって処理されたデータは、データを保持していない空のパケットに対して処理済のデータおよび新たなＩＤを格納することによってデータをデータバス３１３上に出力する。これを次のデータ処理部が処理することにより、一連の意図された順序でデータ処理が実行される。ここで、パケット１００３が空かどうかは、図５に示すValidビットがたっているかどうかによって判別する。有効なデータを出力する際にはこのValidビットを立て、逆に有効なデータを受信して処理する際には、パケットデータフォーマット上のValidビットを落とすことで、パケットの再利用を行う。
【００２１】
ここで、第１のデータフロー３１４と第２のデータフロー３１５とを同時にではなく逐次的に、つまり、第１のデータフロー３１４にＮ個のデータを投入し、その処理が終わった後、第２のデータフロー３１５にＮ個のデータを投入したとする。また、データ処理部３０３〜３０６は、例えば処理に１サイクルかかるものとし、データ処理部３０５は１つの入力に対して２つのデータを出力することができるものとする。
【００２２】
一般に、第１のデータフローでは、データ取得部がデータをリングバスに投入する間隔は１サイクルでよい。そのため、その処理時間は少なくともＮサイクルかかり、第２のデータフローは、データ取得部がデータをリングバスに投入する間隔は２サイクル必要である。よって、その処理時間は少なくとも２Ｎサイクルかかるため、全ての処理が終わるまでに少なくとも３Ｎサイクルを要する。これに対して、本実施形態では、以下のような手順を行う。
【００２３】
図４は、図３に示す構成において、データ取得部３０１から第１のデータフロー３１４で処理すべきデータと、第２のデータフロー３１５で処理すべきデータを交互に取得してリングバス上に送出している状態を示す図である。ここで、第１のデータフロー３１４で処理すべきデータ１１０１〜１１０５は四角で表すこととし、第２のデータフロー３１５で処理すべきデータ１１１１〜１１１７は丸で表すこととする。図４におけるデータ１１０１〜１１０５、１１１１〜１１１７に記載されている数字は、データバス３１３に投入された順番を示すものである。また、データ処理部３０３〜３０６は、例えば処理に１サイクルかかるものとし、データ処理部３０５は１つの入力に対して２つのデータを出力することができるものとする。
【００２４】
第１のデータフロー３１４の処理済みデータは、データ処理部３０４により処理が行われた後、通信処理部３０８に送信される。通信処理部３０８では、データを保持していない空のパケットに、データ処理部３０４から受け取ったデータと新たなＩＤとを格納することによってデータをデータバス３１３上に出力する。通信処理部１００１では、通信処理部３０８が格納したＩＤが付帯されたパケットを取り込むようあらかじめ設定されている。その設定されたＩＤとパケットに付帯するＩＤとを比較し、それらが同一である場合には、そのデータを取り込み、データ出力部１００２に送出する。
【００２５】
この結果、第１のデータフロー３１４の処理済みデータはデータ出力部１００２を介して速やかに画像処理部８０２の外部に排出され、第２のデータフロー３１５には空パケットが渡される。これにより、第２のデータフロー３１５における、データ処理部３０５、３０６において処理されたデータは、第１のデータフロー３１４の処理済みデータに妨害されることなく出力が可能となる。
【００２６】
本実施形態では、データ取得部３０１は一度も周回パケットに妨害されることなくデータの投入が可能である。よって、第１のデータフロー３１４で処理すべきＮ個のデータと、第２のデータフロー３１５で処理すべきＮ個のデータとを交互に投入したとすると、全体の処理時間は少なくとも２Ｎサイクルで済む。このように、本実施形態によれば、互いの処理が独立したデータフローを同時に実行でき、なおかつ処理速度が向上する。
【００２７】
なお、本実施形態では、データ出力部１００２、３１２を２つの独立したデータフローの直後、すなわち、データ処理部３０４、３０６の直後にそれぞれ配置した。しかし、本発明はデータ出力部の個数、配置場所を特に限定するものではない。例えば、２つのデータ処理部の間全てにデータ出力部を挿入すれば、どんなデータフローを複数同時に処理する場合においても、データフローの処理が終了した直後にリングバス外部に出力される。よって、処理済みデータが他のデータフローの妨害をすることはなくなる。ただし、実際に回路を組む場合にデータ処理部間全てにデータ出力部を配置しようとするとコストが多くかかる。そのため、本実施形態で示したように、その回路で想定しうる各データフローの最後の処理をするデータ処理部の直後にデータ出力部を配置するのが効果的である。
【００２８】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００２９】
３０３〜３０６  データ処理部、３１２、１００２  データ出力部
【図１】
2011065566.tif 000003
【図２】
2011065566.tif 000004
【図３】
2011065566.tif 000005
【図４】
2011065566.tif 000006
【図５】
2011065566.tif 000007