(57)【要約】【課題】  複数のプロセッサを備え、処理するデータを所定の単位に分割し、各データに対して、各プロセッサで並列に処理を行う構成において、命令キャッシュ容量を低減しながら所望のパフォーマンスを得る構成を提供する。【解決手段】  並列処理プロセッサシステム２０３は、それぞれＤＳＰ３０１、命令キャッシュ３０２、画像用ローカルメモリ３０３を含む複数のプロセッサエレメント（ＰＥ１〜ＰＥ３）と、共有メモリ３０４とを備える。共有メモリには、ＤＳＰが実行するファームウェアが格納される。並列処理プロセッサシステムは、画像用ローカルメモリに処理対象の画像データを転送し、ＤＳＰにより画像処理を施す。キャッシュミスが発生した場合の命令キャッシュの更新は例えば、ＤＳＰがアクセスしたアドレスに対応する共有メモリの内容を命令キャッシュにコピーすることによって実現される。【選択図】  図２
2010205083.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサを備え、メインメモリから読み出したデータを前記複数のプロセッサによって並列処理する並列処理プロセッサシステムであって、
それぞれがプロセッサと、該プロセッサによって実行されるプログラムの少なくとも一部の命令を保持する命令キャッシュとを含む、複数のプロセッサエレメントと、
各プロセッサとの間のレイテンシが前記メインメモリと各プロセッサとの間のレイテンシよりも小さいメモリであって、前記メインメモリから転送された前記プログラムを記憶し、前記複数のプロセッサエレメントによって共有される共有メモリと、
前記命令キャッシュにおいてキャッシュミスが発生した場合、前記共有メモリに記憶されているプログラムを用いて当該命令キャッシュを更新する更新手段と、
を有することを特徴とする並列処理プロセッサシステム。
【請求項２】
前記命令キャッシュの容量は前記共有メモリの容量よりも小さいことを特徴とする請求項１に記載の並列処理プロセッサシステム。
【請求項３】
前記更新手段は、前記命令キャッシュにおいてキャッシュミスが発生した場合に、前記プロセッサがアクセスしたアドレスに対応する前記共有メモリの内容を当該命令キャッシュにコピーすることにより、前記更新を行うことを特徴とする請求項１に記載の並列処理プロセッサシステム。
【請求項４】
前記メインメモリと前記共有メモリとの間の転送を制御する転送制御手段と、
前記共有メモリに前記プログラムの全てを格納できない場合に、前記プロセッサが出力した同期信号に応答して、前記転送制御手段に対して前記共有メモリのプログラムの書き換えを要求する同期制御手段と、
を更に有することを特徴とする請求項１に記載の並列処理プロセッサシステム。
【請求項５】
前記複数のプロセッサの各々が、前記共有メモリに現在格納されているプログラムの実行が完了すると前記同期信号を出力し、前記同期制御手段が、前記複数のプロセッサの全てから前記同期信号が出力されたことに応答して、前記共有メモリのプログラムの書き換えを要求することを特徴とする請求項４に記載の並列処理プロセッサシステム。
【請求項６】
前記複数のプロセッサエレメントのそれぞれは、前記メインメモリから読み出された処理対象のデータを格納するローカルメモリを更に含むことを特徴とする請求項１に記載の並列処理プロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサを備え、処理対象のデータを各プロセッサで並列処理する並列処理プロセッサシステムに関する。より具体的には、本発明は、各プロセッサの命令キャッシュ容量を低減しながらパフォーマンスを維持できる並列処理プロセッサシステムに関する。
【背景技術】
【０００２】
ＭＦＰ (Multi Functional Peripheral) のコントローラにおいては、画像の読み取り・記録・プリント・通信・ＦＡＸなどの処理のハードウェアロジックを個別に用意し、ＭＦＰで要求される機能を実現している。しかし、機能毎に回路を用意していては、機能を維持しながらコントローラをコストダウンすることが難しい。
【０００３】
機能を維持しながらのコストダウンは、同時に動作しない画像処理を、プログラマブルなハードウェアで実装することで可能である。プログラマブルなハードウェアとして、ＤＳＰ (Digital Signal Processor) やリコンフィギュラブルプロセッサ、コンフィギュラブルプロセッサが挙げられる。ここでは、一例として複数のＤＳＰを用いてファームウェアを切り替えることによりコストダウンを実現することを考える。
【０００４】
それぞれ異なる画像処理を割り当てられた複数のＤＳＰを接続して、同一画像領域に対して一連の複数種別の画像処理を順番に施す構成をパイプライン構成と呼ぶ。パイプライン構成をとると、ＤＳＰ間の処理時間の差によりボトルネックとなるＤＳＰが存在してしまい、十分なスループットが得られない。
【０００５】
この問題を回避するためには、各ＤＳＰの処理時間を等しくするようにＤＳＰをカスタマイズすればよい。
【０００６】
しかし、ある処理に対してカスタマイズを行うと、ファームウェアを切り替えて実行する際に他のファームウェアでも同じようなカスタマイズを行うことが難しくなってしまう。
【０００７】
また、別の手段としてＤＳＰ間の負荷の調整を行う技術も存在するが（例えば特許文献１参照。）、調整にオーバーヘッドがかかり、スループットの向上が難しく、制御が複雑になるため、好ましい解ではない。さらにパイプライン構成は、ＤＳＰの数を減らしてコストダウンしたり、数を増やして性能を向上させるといったスケーラビリティのある構成の変更が難しいという問題もある。
【０００８】
これらのことから、処理対象の画像データを分割し、分割された各画像データを異なるＤＳＰに割り当てて、パイプライン構成では異なるＤＳＰで実行していた複数の処理を各ＤＳＰで実行するデータ並列処理構成が、パイプライン構成よりも好適である。本明細書では、複数のＤＳＰを用いて、処理対象の画像データを分割し、分割された各画像データに対して各ＤＳＰで一連の処理を並列に行う構成をデータ並列処理構成と呼ぶ。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００６−１３３８３９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
処理すべき画像データを分割して複数のＤＳＰでデータ並列処理を行う構成をとると、各ＤＳＰが実行するプログラムの容量が大きくなるため、パイプライン構成に比べて、同一容量の命令キャッシュでは、キャッシュミスの確率が大きくなってしまう。キャッシュミスが発生すると、ＤＳＰからメインメモリへのアクセスが発生する。メインメモリは、ＤＳＰが搭載されているチップ外のＤＲＡＭ (Dynamic Random Access Memory) などである。
【００１１】
チップ外のＤＲＡＭでは、１ワードのリード／ライトに２０〜３０クロックが必要となるため、キャッシュミス時のレイテンシが非常に大きくなりＤＳＰの処理性能に大きく影響する。一方、各ＤＳＰが割り当てられた処理を全て格納する容量を持つ命令キャッシュを実装すると、命令キャッシュの容量が大きくなり、回路面積が増加する。
【００１２】
キャッシュミス時のレイテンシを小さくするために、２次キャッシュを用いる方法がある。２次キャッシュとは、１次キャッシュよりもレイテンシが大きくＤＲＡＭよりもレイテンシが小さいプロセッサ専用の記憶装置である。２次キャッシュを用いることで、上述の課題を解決することができるが、以下の問題がある。
【００１３】
・キャッシュにはデータを格納する回路の他にタグと呼ばれる回路が必要になるため回路規模が大きい。
・キャッシュの入れ換えはキャッシュラインと呼ばれる単位で行われるため効率がよくない。
【００１４】
本発明では、２次キャッシュを用いることを要さずＤＳＰ間で共有するＳＲＡＭ (Static Random Access Memory) などの共有メモリを用いることにより、上述の課題を解決する。共有メモリでは、タグが必要なく、キャッシュライン単位ではない書き換えが可能である。
【００１５】
本発明では、複数のプロセッサでデータ並列処理を行う構成において、命令キャッシュ容量を低減しながら所望のパフォーマンスを得る構成を提供することを目的とする。
【課題を解決するための手段】
【００１６】
本発明の一側面によれば、複数のプロセッサを備え、メインメモリから読み出したデータを前記複数のプロセッサによって並列処理する並列処理プロセッサシステムであって、それぞれがプロセッサと、該プロセッサによって実行されるプログラムの少なくとも一部の命令を保持する命令キャッシュとを含む、複数のプロセッサエレメントと、各プロセッサとの間のレイテンシが前記メインメモリと各プロセッサとの間のレイテンシよりも小さいメモリであって、前記メインメモリから転送された前記プログラムを記憶し、前記複数のプロセッサエレメントによって共有される共有メモリと、前記命令キャッシュにおいてキャッシュミスが発生した場合、前記共有メモリに記憶されているプログラムを用いて当該命令キャッシュを更新する更新手段とを有することを特徴とする並列処理プロセッサシステムが提供される。
【発明の効果】
【００１７】
本発明によれば、処理するデータを複数のプロセッサで並列処理する構成において、パフォーマンスを維持したまま命令キャッシュ容量を低減できる。
【００１８】
また、本発明によれば、共有メモリにプログラムの全てが格納できない場合でも同期制御部を設けることによりパフォーマンスを維持したまま命令キャッシュ容量を低減できる。
【図面の簡単な説明】
【００１９】
【図１】実施形態における画像処理装置のハードウェア構成を示すブロック図。
【図２】第１の実施形態における画像処理装置におけるコントローラ部の概略ブロック図。
【図３】第１の実施形態における画像処理装置の動作を示すフローチャート。
【図４】第１の実施形態における並列処理プロセッサシステムの動作を示すフローチャート。
【図５】第１の実施形態におけるタイルデータ・ファームウェアのデータフローの概念図。
【図６】第１の実施形態における共有メモリ・命令キャッシュの内容の推移の概念図。
【図７】第２の実施形態における画像処理装置におけるコントローラ部の概略ブロック図。
【図８】第２の実施形態における画像処理装置の動作を示すフローチャート。
【図９】第２の実施形態における並列処理プロセッサシステムの動作を示すフローチャート。
【図１０】第２の実施形態における並列処理プロセッサシステムの動作を示すフローチャート。
【図１１】第２の実施形態における共有メモリ・命令キャッシュの内容の推移の概念図。
【発明を実施するための形態】
【００２０】
以下、図面を参照して本発明の好適な実施形態について詳細に説明する。なお、本発明は以下の実施形態に限定されるものではなく、かかる実施形態は本発明の実施に有利な具体例を示すにすぎない。また、以下の実施形態の中で説明されている特徴の組み合わせの全てが本発明の課題解決手段として必須のものであるとは限らない。
【００２１】
＜第１の実施形態＞
図１は、本発明の並列処理プロセッサシステムを含む画像処理装置のハードウェア構成を示したブロック図である。本実施形態における画像処理装置はコピー機能、プリンタ機能、ＦＡＸ機能、スキャナ機能を具備したＭＦＰを想定しており、コントローラ部１０１、ＵＩ部１０２、プリンタ部１０３、スキャナ部１０４、メモリ部１０５、通信ＩＦ部１０６を含む構成である。
【００２２】
以下、各部の概略について説明する。
【００２３】
コントローラ部１０１は、画像処理装置全体の制御をつかさどる部分である。コントローラ部１０１はプリンタ部１０３やスキャナ部１０４をはじめとする各ブロックと電気的に接続されており、高度な機能を実現するための制御を行っている。詳細については後述する。
【００２４】
ＵＩ部１０２は、ユーザが画像処理装置を操作するためのユーザインタフェース（ＵＩ）を提供する。ＵＩ部１０２は例えば液晶タッチパネルで構成され、ユーザから画像処理装置に対しての動作指示を受け付けたり、印刷する画像のプレビューを表示したりする。
【００２５】
プリンタ部１０３は、電気的な画像信号を記録紙上に可視像としてプリントするブロックであり、例えばレーザビームプリンタやインクジェットプリンタにより構成される。
【００２６】
スキャナ部１０４は、原稿画像を光学的に読み取って電気的な画像信号に変換するブロックである。
【００２７】
メモリ部１０５は、例えばＤＤＲ−ＳＤＲＡＭやＨＤＤなどのメモリデバイスで構成される。このメモリ部１０５はメインメモリとして機能するもので、画像データを一時的に格納するだけでなく、画像処理装置の機能を実現するためにコントローラ部１０１が使用する制御プログラムやデータなどを格納する。
【００２８】
通信ＩＦ部１０６は外部機器とのデータの送受を行うブロックであり、インターネットやＬＡＮに接続したり、公衆電話回線に接続してＦＡＸ通信を行ったり、ＵＳＢインタフェースによりＰＣ（Personal Computer）と接続したりする。
【００２９】
図２にコントローラ部１０１の概略ブロック図を示す。コントローラ部１０１は、ＣＰＵ (Central Processing Unit) ２０１、Ｉ／Ｏ制御部２０２、並列処理プロセッサシステム２０３、データバス２０４を包含している。Ｉ／Ｏ制御部２０２は、メモリ部１０５や通信ＩＦ部１０６とコントローラ部１０１とのデータ転送を制御し、ＤＭＡ (Direct Memory Access) 機能を有している。本実施形態では、コントローラ部１０１に並列処理プロセッサシステム２０３を１つ含む構成としているが、複数含む構成でも可能である。ＣＰＵ２０１、Ｉ／Ｏ制御部２０２、並列処理プロセッサシステム２０３は、データバス２０４を介して接続されている。
【００３０】
並列処理プロセッサシステム２０３は、ＤＳＰ３０１、命令キャッシュ３０２、画像用ローカルメモリ３０３、共有メモリ３０４、データバス３０５を包含する。ＤＳＰ３０１・命令キャッシュ３０２・画像用ローカルメモリ３０３を、プロセッサエレメント（ＰＥ）と呼ぶ。本実施形態では、並列処理プロセッサシステム２０３にＰＥ１、ＰＥ２、ＰＥ３の３つのプロセッサエレメントが含まれる構成としているが、プロセッサエレメントの個数は３に限らない。また、本実施形態の各ＤＳＰ３０１は同じ処理性能を持つものとする。
【００３１】
並列処理プロセッサシステム２０３では、所定の単位に分割された各画像データを１つのＰＥの画像用ローカルメモリ３０３に格納し、その画像に対して同一ＰＥの命令キャッシュ内の命令に従って同一ＰＥのＤＳＰ３０１で処理を行う。共有メモリ３０４には、複数のＰＥのＤＳＰ３０１が実行するプログラム命令であるファームウェアを格納する。共有メモリ３０４にデータではなく命令を格納する利点として、ＤＳＰ３０１からの書込みアクセスが発生しないため、アクセスが集中しにくい点が挙げられる。共有メモリ３０４にアクセスが集中すると、それがボトルネックとなり、処理性能が低下してしまう。共有メモリ３０４はＤＳＰ３０１からのレイテンシがメモリ部１０５よりも小さく、動作周波数が高いため、ＤＳＰ３０１はファームウェアの高速な読出しが可能である。
【００３２】
ファームウェアを切り替える際には、転送制御手段としてのＩ／Ｏ制御部２０２がメモリ部１０５に格納されたファームウェアを共有メモリ３０４にＤＭＡ転送する。ＤＳＰ３０１、共有メモリ３０４はデータバス３０５を介して接続されている。
【００３３】
本実施形態の画像処理装置では、並列処理プロセッサシステム２０３は読み取り画像処理・記録画像処理・通信画像処理などを行う。
【００３４】
読み取り画像処理はスキャナ部１０４から受信した画像データにシェーディング補正等を施し、ＭＴＦ補正、色変換処理、フィルタ処理、ガンマ処理等の各種画像処理を行う。
【００３５】
記録画像処理は読み取り画像処理された画像データに対して２値化処理、中間調処理、そしてＲＧＢｔｏＣＭＹＫ等色変換処理を行い中間調画像に変換する。さらに、記録解像度にあわせて解像度変換し、画像の変倍、スムージング、濃度補正等の各種画像処理を施して高精細な画像データに変換しレーザビームプリンタ等に出力する。
【００３６】
通信画像処理は読み取った画像を通信性能に合わせて解像度変換、色変換をしたり、通信により受け取った画像を記録性能に合わせて解像度変換等をしたりする。本実施形態では、例えば、読み取り画像処理・記録画像処理のファームウェア容量を１６ＫＢ未満、共有メモリ３０４の容量を１６ＫＢとする。また、命令キャッシュ３０２の容量を４ＫＢとする。命令キャッシュ３０２はＤＳＰ３０１によって実行されるプログラムの少なくとも一部の命令を保持できればよく、命令キャッシュ３０２の容量はプログラム全体のサイズよりも大幅に小さくてよい。
【００３７】
図３は、本実施形態における画像処理装置の動作を示すフローチャートである。本実施形態では、画像データがスキャナ部１０４から取り込まれてプリンタ部１０３に出力されるまでの処理における並列処理プロセッサシステム２０３の動作に関して詳しく述べる。
【００３８】
まず、スキャナ部１０４で画像データの取り込みを行い(Ｓ１０１)、メモリ部１０５に画像データを転送する(Ｓ１０２)。
【００３９】
次に、コントローラ部１０１の並列処理プロセッサシステム２０３に読み取り画像処理ファームウェアを転送し(Ｓ１０３)、並列処理プロセッサシステム２０３で読み取り画像処理を行う(Ｓ１０４)。
【００４０】
さらに、並列処理プロセッサシステム２０３に記録画像処理ファームウェアを転送し(Ｓ１０５)、並列処理プロセッサシステム２０３で記録画像処理を実行する(Ｓ１０６)。
【００４１】
最後に、プリンタ部１０３へデータバス２０４を介して画像データを転送する(Ｓ１０７)。Ｓ１０４、Ｓ１０６については詳しくは後述する。Ｓ１０３、Ｓ１０５では、例えばＩ／Ｏ制御部２０２により共有メモリ３０４へ画像処理ファームウェアが転送される。
【００４２】
Ｓ１０４、Ｓ１０６における並列処理プロセッサシステム２０３の動作を、図４のフローチャートを用いて説明する。図４では、単一のＤＳＰ３０１の動作について記述しているが並列処理プロセッサシステム２０３に含まれる全てのＤＳＰ３０１が同様の動作を並列に実行する。
【００４３】
処理が開始されると、ＤＳＰ３０１がメモリ部１０５から処理する所定のサイズの画像データ(以下「タイルデータ」という。)を読み出し、画像用ローカルメモリ３０３に格納する(Ｓ２０１)。
【００４４】
次に、ＤＳＰ３０１がファームウェアを実行し(Ｓ２０２)、命令キャッシュ３０２でキャッシュミスが発生したか否かの判定が行われる(Ｓ２０３)。キャッシュミスが発生した場合、共有メモリ３０４に記憶されているプログラムを用いて当該命令キャッシュ３０２の更新を行う(Ｓ２０４)。具体的には例えば、ＤＳＰ３０１がアクセスしたアドレスに対応する共有メモリ３０４の内容を命令キャッシュ３０２にコピーすることにより上記更新が行われる。
【００４５】
前述したように、従来の構成においては、キャッシュミスが発生すると、ＤＳＰ３０１からチップ外のメインメモリであるメモリ部１０５へのアクセスが発生していた。これに対し、本実施形態では、ＤＳＰとの間のレイテンシがメモリ部１０５より小さい共有メモリ３０４にアクセスして命令キャッシュの更新を行う。このため、処理速度の点で従来法に比べて有利である。
【００４６】
キャッシュミスが発生していなければ、タイルデータに対する全ての画像処理が実行されたか否かの判定が行われる(Ｓ２０５)。
【００４７】
Ｓ２０５において、全ての画像処理が完了していなければ、Ｓ２０２へ戻ってＤＳＰ３０１によるファームウェアの実行が引き続き行われる。一方、全ての画像処理が完了していれば処理済みのタイルデータを画像用ローカルメモリ３０３からメモリ部１０５に書き戻す(Ｓ２０６)。
【００４８】
次に、全ての画像データに対する処理が完了しているか否かの判定が行われる(Ｓ２０７)。完了していなければ、Ｓ２０１へ戻ってメモリ部１０５から次のタイルデータを読み出して画像用ローカルメモリ３０３に格納し、完了していれば処理完了となる。
【００４９】
図４のフローチャートにおける、タイルデータ・ファームウェアのデータフローの概念図を図５に示す。
【００５０】
メモリ部１０５に、画像データ４０１、ファームウェア４０２が格納されている。画像データ４０１をタイル1／２／３に分割し、ＤＳＰ１／２／３が処理する。図５において、各矢印に付されているステップ番号は図３、図４のフローチャートのステップ番号に一致する。
【００５１】
本実施形態における処理経過に伴う、共有メモリ・命令キャッシュの内容の推移について読み取り画像処理を行うフローを例に説明する。図６はその概念図である。
【００５２】
並列処理プロセッサシステム２０３では、タイルデータを画像用ローカルメモリ３０３に格納した後、画素単位の複数種別の画像処理をタイルデータ内の全ての画素に対して行う。以上を全ての画像データに対して行う。
【００５３】
まず、読み取り画像処理ファームウェアが、共有メモリ３０４に転送(Ｓ１０３)される(５０１)。
【００５４】
ＤＳＰ３０１がファームウェアの実行を開始(Ｓ２０２)すると、命令キャッシュ３０２には読み取り画像処理ファームウェアが格納されていないためキャッシュミスが発生(Ｓ２０３)する。このとき、共有メモリ３０４に格納されているファームウェアの一部(ＭＴＦ補正処理部)が命令キャッシュ３０２にコピー(Ｓ２０４)される(５０２)。
【００５５】
ＭＴＦ補正処理がタイルデータ内の全ての画素に対して行われている間はキャッシュミスは発生しない。ＭＴＦ補正処理がタイルデータ内の全ての画素に対して終了すると、キャッシュミスが発生し、共有メモリ３０４に格納されているファームウェアの別の一部である色変換処理部が命令キャッシュ３０２にコピーされる(５０３)。これらをガンマ補正処理完了まで繰り返し、ガンマ補正処理が完了すると処理済みのタイルデータをメモリ部１０５に書き戻す。
【００５６】
全ての画像データに対して処理が行われていなければ、次のタイルデータを読み出して画像用ローカルメモリ３０３に格納し、処理を継続する。
【００５７】
共有メモリ３０４のレイテンシについて述べる。
【００５８】
メインメモリとしてメモリ部１０５にＤＤＲ−ＳＤＲＡＭを搭載した場合、データバス２０４やＤＤＲ−ＳＤＲＡＭのレイテンシに依存するが、１ワードのリード／ライトに２０〜３０クロックが必要となる。共有メモリ３０４をＤＳＰ３０１から数クロックのレイテンシとなるように配置すればキャッシュミス時のレイテンシは５分の１程度に削減される。
【００５９】
以上の処理により、処理する画像データを複数のＤＳＰで並列処理する構成において、命令キャッシュ容量を低減しつつ所望のパフォーマンスを得ることができる。
【００６０】
＜第２の実施形態＞
以下、添付図面を参照して、第２の実施形態について詳細に説明する。
【００６１】
本実施形態における画像処理装置のハードウェア構成は図１と同一である。また、コントローラ部１０１の構成も図２と基本的に同じである。
【００６２】
図７に本実施形態における並列処理プロセッサシステム２０３の概略ブロック図を示す。図７では、図２と同じ構成要素には同じ符号を付している。図示のように、本実施形態の並列処理プロセッサシステムはＤＳＰ間の同期を制御する同期制御部３０６を更に備える構成としている。本実施形態では、同期信号としてＤＳＰからの割り込み信号を用いることとする。
【００６３】
同期制御部３０６は、ＤＳＰ３０１から同期信号を受信すると共有メモリ３０４内のファームウェア書き換えを、例えば転送制御手段としてのＩ／Ｏ制御部２０２に指示する。本実施形態では、読み取り画像処理・記録画像処理のファームウェア容量が８ＫＢ以上１６ＫＢ未満、共有メモリ３０４の容量を８ＫＢとする。また、命令キャッシュ３０２の容量を４ＫＢとする。
【００６４】
図８は、本実施形態における画像処理装置の動作を示すフローチャートである。ここでは、画像データがスキャナ部１０４から取り込まれて読み取り画像処理が行われるまでの処理における並列処理プロセッサシステムの動作に関して詳しく述べる。
【００６５】
まず、スキャナ部１０４で画像データの取り込みを行い(Ｓ３０１)、メモリ部１０５に画像データを転送する(Ｓ３０２)。
【００６６】
次に、読み取り画像処理ファームウェアの内、ＭＴＦ補正処理部と色変換処理部を並列処理プロセッサシステム２０３に転送し(Ｓ３０３)、並列処理プロセッサシステム２０３で読み取り画像処理を行う(Ｓ３０４)。
【００６７】
Ｓ３０４については詳しくは後述する。Ｓ３０３では、Ｉ／Ｏ制御部２０２により共有メモリ３０４へ画像処理ファームウェアが転送される。
【００６８】
図９、１０は、本実施形態における並列処理プロセッサシステム２０３の動作を示すフローチャートである。図９は、ＤＳＰ３０１を主体としたフローチャートであり、図１０は、同期制御部３０６を主体としたフローチャートである。
【００６９】
まず図９に関して説明する。各ＤＳＰ３０１による読み取り画像処理では、各タイルデータに対してＭＴＦ補正処理、色変換処理、フィルタ処理、ガンマ補正処理が順に行われるものとする。画像処理ファームウェア全体は、共有メモリ３０４の容量を超えるので同時に格納することができない。このため、ある時点では、ＭＴＦ補正処理部と色変換処理部とを共有メモリ３０４に格納し、ＤＳＰ３０１はＭＴＦ補正処理、色変換処理を実行する。別の時点では、フィルタ処理部とガンマ補正処理部とを共有メモリ３０４に格納し、ＤＳＰ３０１はフィルタ処理、ガンマ補正処理を実行する。
【００７０】
処理が開始されると、メモリ部１０５からタイルデータを読み出し、画像用ローカルメモリ３０３に格納する(Ｓ４０１)。
【００７１】
次に、ＤＳＰ３０１がファームウェアを実行し(Ｓ４０２)、キャッシュミスが発生したか否かの判定が行われる(Ｓ４０３)。キャッシュミスが発生した場合、命令キャッシュ３０２の更新(Ｓ４０４)が行われる。この際、命令キャッシュの更新はＤＳＰ３０１がアクセスしたアドレスに該当する領域の共有メモリ３０４の内容を命令キャッシュにコピーすることで実現する。キャッシュミスが発生していなければ、ガンマ補正処理が終了したか否かの判定が行われる(Ｓ４０５)。ガンマ補正処理が終了していなければ色変換処置が終了したか否かの判定が行われる(Ｓ４０６)。
【００７２】
Ｓ４０５において、ガンマ補正処理が終了していれば、現在のタイルデータに対する一連の読み取り画像処理が完了しているので、処理済みのタイルデータを画像用ローカルメモリ３０３からメモリ部１０５に書き戻す(Ｓ４０７)。Ｓ４０６において、色変換処理が終了していなければ、Ｓ４０２へ戻って引き続きＤＳＰ３０１が現在のファームウェアを実行し、色変換処理が終了していれば割り込みを既に出力しているかの判定がなされる(Ｓ４０８)。
【００７３】
Ｓ４０８において割り込みを出力していれば、Ｓ４０２へ戻って引き続きＤＳＰ３０１がファームウェアを実行し、出力していなければ同期制御部３０６へ割り込みを出力する(Ｓ４０９)。その後、制御を同期制御部３０６に移行し(Ａ)、スタンバイ状態となる。
【００７４】
Ｓ４０７において、タイルデータを画像用ローカルメモリ３０３からメモリ部１０５に書き戻した後、全ての画像データに対する処理が終了したかの判定がなされる(Ｓ４１０)。Ｓ４１０において、全ての画像データに対する処理が終了していれば処理完了となり、終了していなければ同期制御部３０６へ割り込みを出力し(Ｓ４１１)、制御を同期制御部３０６に移行し(Ｂ)、スタンバイ状態となる。
【００７５】
次に図１０について説明する。
【００７６】
同期制御部３０６は、処理が開始されると割り込み待ち状態となる(Ｓ４１２)。上記したＡもしくはＢにより割り込みを通知された同期制御部３０６は、ＤＳＰ３０１の割り込みを解除する(Ｓ４１３)。
【００７７】
次に、全てのＤＳＰからの割り込みを受信したかの判定がなされ(Ｓ４１４)、受信していなければ割り込み待ちとなり、受信していれば割り込み要因がＡかＢの判定がなされる(Ｓ４１５)。全てのＤＳＰからの割り込みを受信すれば、共有メモリ３０４に現在格納されているファームウェアによる処理が全てのＤＳＰで終了し、処理の同期が取れたことになる。そこで次の処理を行うために、共有メモリ３０４に新たなファームウェアを転送して内容を書き換える。
【００７８】
Ｓ４１５において割り込み要因がＡであれば、１つのタイルデータに対する一連の処理のうち色変換処理まで完了した状態であるので、続いて同一のタイルデータに対してフィルタ処理・ガンマ補正処理を行う必要がある。そこで、同期制御部３０６はこれに応答して、Ｉ／Ｏ制御部２０２に対し共有メモリ３０４へフィルタ処理・ガンマ補正処理のファームウェアの転送を要求する。Ｉ／Ｏ制御部２０２はこの要求に応答して、共有メモリ３０４にフィルタ処理・ガンマ補正処理のファームウェアを転送し(Ｓ４１６)、ＤＳＰ３０１を起動し(Ｓ４１７)、ＤＳＰ３０１に制御を移行する(Ｃ)。
【００７９】
一方、Ｓ４１５において割り込み要因がＢであれば、１つのタイルデータに対する一連の処理が全て完了した状態であるので、続いて新たなタイルデ-タに対してＭＴＦ補正処理・色変換処理を行う必要がある。そこで、共有メモリ３０４にＭＴＦ補正処理・色変換処理のファームウェアを転送し(Ｓ４１８)、ＤＳＰ３０１を起動し(Ｓ４１９)、ＤＳＰ３０１に制御を移行する(Ｄ)。
【００８０】
Ｃにより起動したＤＳＰ３０１は、同一のタイルデータを対象として、新たに転送されたフィルタ処理・ガンマ補正処理のファームウェアの実行(Ｓ４０２)から処理を再開する。一方、Ｄにより起動したＤＳＰ３０１は、メモリ部１０５から新たなタイルデータを読み出して画像用ローカルメモリ３０３へ格納する処理(Ｓ４０１)から処理を開始する。そして、新たなタイルデータを対象として、新たに転送されたＭＴＦ補正処理・色変換処理のファームウェアを実行する(Ｓ４０２)。
【００８１】
本実施形態における処理経過に伴う、共有メモリ・命令キャッシュの内容の推移について説明する。図１１はその概念図である。
【００８２】
並列処理プロセッサシステム２０３では、タイルデータを画像用ローカルメモリ３０３に読み出した後、画素単位の複数種別の画像処理をタイルデータ内の全ての画素に対して行う。以上を全ての画像データに対して行う。
【００８３】
まず、読み取り画像処理ファームウェアの内、ＭＴＦ補正処理部と色変換処理部が、共有メモリ３０４に転送(Ｓ３０３)される(６０１)。
【００８４】
ＤＳＰ３０１がファームウェアの実行を開始(Ｓ４０２)すると、命令キャッシュ３０２にはＭＴＦ補正処理部と色変換処理部のファームウェアが格納されていないためキャッシュミスが発生(Ｓ４０３)する。このとき、共有メモリ３０４に格納されているファームウェアの一部(ＭＴＦ補正処理部)が命令キャッシュ３０２にコピー(Ｓ４０４)される(６０２)。
【００８５】
ＭＴＦ補正処理がタイルデータ内の全ての画素に対して行われている間はキャッシュミスは発生しない。ＭＴＦ補正処理がタイルデータ内の全ての画素に対して終了すると、キャッシュミスが発生し、色変換処理部が共有メモリ３０４から命令キャッシュ３０２にコピーされる(６０３)。
【００８６】
色変換処理が終了すると、同期制御部３０６によってフィルタ処理・ガンマ補正処理のファームウェアが共有メモリ３０４に転送され(Ｓ４１６)、共有メモリ・キャッシュは６０４のようになる。
【００８７】
ＤＳＰ３０１がファームウェアの実行を再開(Ｓ４０２)すると、キャッシュにはフィルタ処理・ガンマ補正処理のファームウェアは格納されていないためキャッシュミスが発生(Ｓ４０３)する。このとき、共有メモリ３０４に格納されているファームウェアの一部(フィルタ処理部)が命令キャッシュ３０２にコピー(Ｓ４０４)される(６０５)。
【００８８】
これらをガンマ補正処理完了まで繰り返し、ガンマ補正処理が完了すると、処理済みのタイルデータをメモリ部１０５に書き戻す。
【００８９】
全ての画像データに対して処理が行われていなければ、次のタイルデータを読み出して画像用ローカルメモリ３０３に格納し、処理を継続する。
【００９０】
以上の処理により、処理対象の画像データを所定単位に分割し複数のＤＳＰで並列処理を実施する構成において、共有メモリにファームウェアの全てが格納できない場合でも同期制御部を設けることにより命令キャッシュ容量を低減しつつ所望のパフォーマンスを達成できる。
【００９１】
本発明は上述の実施形態には限定されない。例えば、処理対象は画像データに限らず、音声データなどでも適用可能である。
【００９２】
その他の実施形態として、ＤＳＰの処理性能に差があるときは、処理速度が速いＤＳＰに優先的にタイルデータを割り当てて処理の高速化を図ることも可能である。
【００９３】
その他の実施形態として、ＤＳＰ間で同期制御を行い、かつＤＳＰの処理性能に差がある場合に、ＤＳＰの処理速度に応じてタイルデータの大きさを変化させ処理時間を均一にすることも可能である。
【００９４】
その他の実施形態として、画像用ローカルメモリを持たずメモリ部に格納された画像に対してＤＳＰが処理を行う構成も可能である。
【図１】
2010205083.tif 000003
【図２】
2010205083.tif 000004
【図３】
2010205083.tif 000005
【図４】
2010205083.tif 000006
【図５】
2010205083.tif 000007
【図６】
2010205083.tif 000008
【図７】
2010205083.tif 000009
【図８】
2010205083.tif 000010
【図９】
2010205083.tif 000011
【図１０】
2010205083.tif 000012
【図１１】
2010205083.tif 000013