説明

画像処理装置

【課題】
本発明は、同一の高速メモリをCPUのキャッシュメモリおよび画像処理モジュールのワークメモリとして、相互に排他的に使用できるように動的に割り当て可能な画像処理装置を提供する。
【解決手段】
中央演算処理部と、主記憶部と、複数の画像処理部と、中央演算処理部と画像処理部とで共有可能で同時にアクセス可能な高速の高速記憶部と、高速記憶部の記憶領域を中央演算処理部のキャッシュメモリまたは画像処理部のワークメモリとして排他的、かつ動的に割り当てる割当手段とを具備する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置に関する。
【背景技術】
【0002】
従来、1つの半導体集積回路にCPUやメモリコントローラ、PCIコントローラ、USBコントローラ、各種のIOインターフェース、特定の処理を高速に行う専用ハードウェアエンジン等の多くの機能モジュールを内蔵したシステムオンチップ(SOC=System On Chip)のシステム半導体集積回路が実現されている。
【0003】
しかしながら、多くの機能モジュールを1つのシステム半導体集積回路に内蔵させる場合、全機能モジュールに亘ってバス配線を行う必要があるため、バス配線が長くなり、その結果、データ転送の遅延の増大やバスの動作周波数を上げることが出来ないなどの問題があった。
【0004】
この解決策として、バスを階層化し、バス同士をバスブリッジにより接続する手法が考えられ、この手法により配線長を短くしたバスを多段に接続して、物理的に遠距離にある機能モジュール同士を接続し、各バスの負荷容量を軽減すると共に、各バスの動作周波数を上げることができるようになった。
【0005】
しかし、バスを階層化した場合、システム半導体集積回路の最も深い階層のバスに接続された機能モジュールからシステム半導体集積回路の外の外部メモリと接続するメモリコントローラまでのアクセス時間が長くなるという問題があった。
【0006】
また、システム半導体集積回路に多くの機能モジュールを内蔵することで、それら多数の機能モジュールから外部メモリへのアクセスが行われるようになり、その結果、高速メモリの外部メモリの性能が十分に発揮できないという問題があった。
【0007】
そこで、特許文献1には、バスを階層化した場合に効率的に外部メモリにアクセスできるシステムLSI(=Large Scale Integration)が提案されている。
【特許文献1】特開2005−346582号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
上記特許文献1は、階層化されたバス間を接続するバスブリッジにそれぞれキャッシュメモリを設け、外部メモリに格納されたデータと同一のデータをキャッシュメモリにも格納して、外部メモリへのアクセス頻度を低減させることで、効率的に外部メモリにアクセスするように構成されてものである。
【0009】
しかし、上記特許文献1には、同一の高速メモリをCPUのキャッシュメモリおよび画像処理モジュールのワークメモリとして、相互に排他的に使用できるように動的に割り当て使用する構成は開示されていない。
【0010】
本発明は、同一の高速メモリをCPUのキャッシュメモリおよび画像処理モジュールのワークメモリとして、相互に排他的に使用できるように動的に割り当て可能な画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【0011】
上記目的を達成するため、請求項1の発明の画像処理装置は、中央演算処理部と、主記憶部と、複数の画像処理部と、前記中央演算処理部と前記画像処理部とで共有可能で同時にアクセス可能な高速の高速記憶部と、前記高速記憶部の記憶領域を前記中央演算処理部のキャッシュメモリまたは前記画像処理部のワークメモリとして排他的、かつ動的に割り当てる割当手段とを具備することを特徴とする。
【0012】
また、請求項2の発明は、請求項1の発明において、前記中央演算処理部の処理状態を検知する状態検知手段を具備し、前記割当手段は、前記状態検知手段により前記中央演算処理部の処理状態がアイドル状態と検知された場合、前記中央演算処理部に前記キャッシュメモリとして割り当てられた前記高速記憶部の記憶領域をバンク単位で減少させるように再割り当てすることを特徴とする。
【0013】
また、請求項3の発明は、請求項1の発明において、前記状態検知手段は、前記複数の画像処理部による処理状態を検知し、前記割当手段は、前記状態検知手段により前記複数の画像処理部による処理状態がアイドル状態と検知された場合、前記複数の画像処理部に前記ワークメモリとして割り当てられた前記高速記憶部の記憶領域をバンク単位で減少させるように再割り当てすることを特徴とする。
【0014】
また、請求項4の発明は、請求項1の発明において、前記割当手段は、上位装置おいて検出された負荷分散情報に基づき前記高速記憶部の記憶領域を前記中央演算処理部のキャッシュメモリまたは前記画像処理部のワークメモリとして排他的、かつ動的に割り当てることを特徴とする。
【0015】
また、請求項5の発明の画像処理装置は、中央演算処理部と、主記憶部と、複数の画像処理部と、前記中央演算処理部と前記画像処理部とで共有可能で同時にアクセス可能な記憶部と、前記高速記憶部の記憶領域を前記中央演算処理部のキャッシュメモリまたは前記画像処理部の命令キャッシュメモリとして排他的、かつ動的に割り当てる割当手段とを具備することを特徴とする。
【0016】
また、請求項6の発明は、請求項5の発明において、前記割当手段により前記命令キャッシュメモリとして割り当てられた前記高速記憶部の記憶領域を前記複数の画像処理部の中の少なくとも2つの画像処理部で共有することを特徴とする。
【0017】
また、請求項7の発明は、請求項5の発明において、前記割当手段は、前記画像処理部の処理プログラムの全てが前記高速記憶部の前記命令キャッシュメモリとして割り当てられた記憶領域にある場合の実行時間と前記主記憶部にある場合の実行時間との性能差に基づき、他の処理に優先して前記高速記憶部に対する前記命令キャッシュメモリとしての割り当てを行うことを特徴とする。
【0018】
また、請求項8の発明は、請求項5の発明において、前記割当手段は、前記画像処理部の処理プログラムの全てが前記高速記憶部の前記命令キャッシュメモリとして割り当てられた記憶領域にある場合と前記主記憶部にある場合とにおける前記主記憶部と前記高速記憶部との間のデータ伝送量に基づき、他の処理に優先して前記高速記憶部に対する前記命令キャッシュメモリとしての割り当てを行うことを特徴とする。
【発明の効果】
【0019】
請求項1の発明によれば、キャッシュメモリをCPUのキャッュメモリまたは複数の画像処理モジュールのワークメモリとして共用でき、CPUまたは各画像処理モジュールにより処理動作を最適に動作させることができる。
【0020】
また、請求項2の発明によれば、CPUの処理状態がアイドル状態の時は、CPUで使用されていたキャッシュメモリの記憶領域を画像処理モジュールでも使用でき、画像処理の高速化が図られる。
【0021】
また、請求項3の発明によれば、画像処理モジュールの処理状態がアイドル状態の時は、画像処理モジュールで使用されていたキャッシュメモリの記憶領域をCPUでも使用でき、CPUによる処理の高速化が図られる。
【0022】
また、請求項4の発明によれば、要求された画像処理の負荷に応じてキャッシュメモリの記憶領域が最適に配分されてCPUと画像処理モジュールとで使用できるようになり、画像処理の最適動作が実現できる。
【0023】
また、請求項5の発明によれば、キャッシュメモリをCPUのキャッュメモリまたは複数の画像処理モジュールの命令キャッシュメモリとして共用でき、CPUまたは各画像処理モジュールにより処理動作を最適に動作させることができる。
【0024】
また、請求項6の発明によれば、複数の画像処理モジュールの各命令キャッシュメモリとして共用して使用するキャッシュメモリを少なくとも2つの画像処理モジュールの各命令キャッシュメモリとして使用でき、画像処理の高速化が図られる。
【0025】
また、請求項7および請求項8の発明によれば、複数の画像処理モジュールで実行される処理プログラムのうちのキャッシュメモリに記憶させて実行させた場合の処理速度が最も速い処理プログラムを優先的にキャッシュメモリに記憶させて実行するので、画像処理の高速化が図られる。
【発明を実施するための最良の形態】
【0026】
以下、本発明に係わる画像処理装置の一実施例を添付図面を参照して詳細に説明する。
図1は、本発明に係わる画像処理装置100の要部の構成の一例を示す構成図である。
【0027】
図1に示すように、画像処理装置100は、CPU(=Central Processing Unit )101、画像処理部102、メインメモリ103、調停部104、キャッシュメモリ105、システムバス切替部106、ROM(=Read Only Memory)107、通信部108、印字部109、画像読取部110を具備して構成されており、通信部108を介してパソコンなどの上位装置111と接続されている。
【0028】
CPU101は、画像処理装置100の各部を制御すると共に、画像処理装置100全体を統括制御するプロセッサであり、読み出し専用のメモリであるROM107に記憶された制御プログラムなどを読み出して実行して、印刷処理、スキャン処理、複製処理などの各種処理動作の制御を行う。
【0029】
画像処理部102は、画像データを画像処理するために必要な各種画像処理モジュールで構成されおり、例えば画像読取部110で読み取った画像データを入力するScan Front Port102−1、行列演算を行う行列演算部102−2、下地除去の処理を行う下地除去部102−3、フィルター処理を行うフィルタ部102−4、色変換を行う色変換部102−5、拡縮やスクリーン処理を行う拡縮・スクリーン処理部102−6、圧縮処理を行うJPEG(=Joint Photographic Experts Group)部102−7、圧縮画像を伸張して出力する伸張部102−8、データの書き換えが可能な内蔵記憶領域102−n−1、キャッシュメモリ105とのデータの読み書きのインタフェース制御を行うキャッシュインタフェース(以下、「キャッシュI/F」という。)部102−nなどを備えている。
【0030】
尚、説明の便宜上、画像処理部102の各種画像処理モジュール102−1〜102−nを総称する場合は、単に「画像処理モジュール102−n」という。
【0031】
メインメモリ103は、CPU101からデータやプログラムを直接読み書きすることができる主記憶装置である。
【0032】
調停部104は、CPU101および画像処理部102の各画像処理モジュール102−nの処理状態に応じてキャッシュメモリ105の記憶領域をCPU101または各画像処理モジュール102または双方で使用可能なように割り当てる制御を行う。
【0033】
キャッシュメモリ105は、高速メモリであり、再配置可能で独立してアクセス可能な複数の記憶領域(メモリバンク)105−0〜105−nから構成されたRAM(=Random Access Memory)である。
【0034】
バス切替部106は、システムバス120と画像処理部102などが接続されたバスとの接続制御を行う。
【0035】
通信部108は、画像処理装置100とパソコンなどの上位装置111との制御信号やデータ信号の入出力のインタフェース制御を行う。
【0036】
印字部109は、画像処理された画像データを用紙上に形成して出力するまでの一連の各種装置を備え、これらの装置を制御して画像処理された画像データを用紙上に形成して出力する。
【0037】
画像読取部110は、スキャナー装置などを備え、それらの装置を制御して紙などの原稿を光学的に走査し、原稿に形成された画像の読み取りを行う。
【0038】
このように構成された画像処理装置100による印刷処理の動作は、パソコンなどの上位装置111から印刷要求と共に送信される画像データが通信部108を介して受信されると、受信された画像データは、CPU101の制御に基づき画像処理部102の各画像処理モジュール102−nによって画像処理されてメインメモリ103に格納され、印字部109に転送されて用紙上に形成されて出力される。
【0039】
また、スキャン処理および複製処理の動作は、CPU101の制御に基づき画像読取部110によって図示せぬ原稿から画像データが読み取られ、読み取られた画像データは、画像処理部102の各画像処理モジュール102−nによって画像処理されてメインメモリ103に格納され、所定の記憶領域に格納される、または印字部109に転送されて用紙上に形成されて出力される。
【0040】
これらの印刷処理、スキャン処理、複製処理などの各種処理動作は、前述したように、CPU101がROM107から各種処理の制御プログラムを読み込み実行することで、実行された制御プログラムに記述された命令に基づくCPU101の制御動作により実現される。
【0041】
ところで、本願発明の画像処理装置100は、印刷処理、スキャン処理、複製処理などの各種処理を効率良く動作させるために、CPU101および各画像処理モジュール102−nの処理状態に応じて高速メモリであるキャッシュメモリ105の記憶領域(メモリバンク105−0〜105−n)の一部または全部をCPUまたは各画像処理モジュール102−nで使用可能なように割り当てて相互に使用できるように構成されている。
【0042】
具体的には、CPU101の処理状態がアイドル状態または負荷の小さい処理を行っている状態などの場合には、キャッシュメモリ105の一部または全部の記憶領域(メモリバンク105−0〜105−n)を画像処理部102の各画像処理モジュール102−nで使用するメモリとして割り当てて使用し、また、各画像処理モジュール102−nの処理状態がアイドル状態または負荷の小さい処理を行っている状態などの場合には、キャッシュメモリ105の一部または全部の記憶領域(メモリバンク105−0〜105−n)をCPU101で使用するメモリとして優先的に割り当てて使用するように構成されている。
【0043】
また、各画像処理モジュール102−nで並列処理する場合には、各画像処理モジュール102−nの処理状態に応じて各画像処理モジュール102−nが使用するキャッシュメモリ105の記憶領域(メモリバンク105−0〜105−n)を増減させるように切り替えて割り当てて使用するように構成されている。
【0044】
このような構成とすることで、キャッシュメモリ105の全記憶領域(メモリバンク105−0〜105−n)のうちの多くのメモリバンクをCPU101で使用するように割り当てると、CPU101で処理する処理プログラムをCPU101が高速に動作させることができ、また、処理の負荷の小さい処理プログラムを実行する場合には、キャッシュメモリ105の多くのメモリバンクをCPU101で使用するように割り当てなくても十分な性能が得られるので、CPU101で使用するキャッシュメモリ105の記憶領域(メモリバンク105−0〜105−n)を少なくし、各画像処理モジュール102−nで使用するキャッシュメモリ105の記憶領域(メモリバンク105−0〜105−n)を多くすることで、各画像処理モジュール102−nによるメインメモリ103へのデータの退避動作などが減少し、画像処理の高速化が図れる。
【0045】
画像処理装置100の各種処理におけるキャッシュメモリ105の割り当て動作について図2乃至図6を参照して説明する。
【0046】
図2は、画像処理装置100の印刷処理におけるキャッシュメモリ105の割り当て動作の流れの一例を示す流れ図である。
【0047】
画像処理装置100による印刷処理動作は、前述したように、パソコンなどの上位装置111から印刷要求と共に送信される画像データが通信部108を介して受信されると、受信した画像データをCPU101の制御に基づき画像処理部102の各画像処理モジュール102−nによって画像処理してメインメモリ103に格納後、印字部109に転送して用紙上に形成して出力するように一連の処理動作を行う。
【0048】
この一連の印刷処理動作において、画像処理装置100のCPU101は、CPU101および各画像処理モジュール102−nの処理状態に応じてキャッシュメモリ105の記憶領域(メモリバンク105−0〜105−n)の一部または全部をCPUまたは各画像処理モジュール102−nで使用可能なように割り当てて相互に使用する。
【0049】
この印刷処理におけるキャッシュメモリ105の割り当て動作は、図2に示すように、画像処理装置100のCPU101がCPU101の処理状態を確認し、CPU101がアイドル状態または負荷の小さい処理を行っている状態であるか否かを判別する(S101)。
【0050】
CPU101の処理状態の確認は、割り込み処理あるいはパソコンなどの上位装置111からの転送データの終了などの信号の受信に基づき検知する。
【0051】
S101において、CPU101の処理状態がアイドル状態でないか、または負荷の小さい処理を行っている状態でない場合には(S102でNO)、キャッシュメモリ105の各メモリバンクの割り当て動作を行うことなく、処理を継続して実施する。
【0052】
S101において、CPU101の処理状態がアイドル状態であるか、または負荷の小さい処理を行っている状態の場合には(S102でYES)、CPU101による処理を高速化しなくても十分に処理できるので、CPU101は、キャッシュメモリ105の全記憶領域(メモリバンク105−0〜105−n)のうちのCPU101で使用する記憶領域として割り当てられている各メモリバンクを減少させるように解放させ、解放された各メモリバンクを画像処理部102の各画像処理モジュールで使用する記憶領域として再割り当てする制御を行う。
【0053】
具体的には、CPU101で使用するメモリとして割り当てられている各メモリバンクのうちの解放するメモリバンクに格納されたデータを他の記憶装置(メモリ、ディスクなど)にフラッシュ(書き込む)後(S103)、キャッシュをオフにする(S104)。
【0054】
キャッシュのオフ後、キャッシュメモリ105の解放された各メモリバンクを画像処理部102の各画像処理モジュールで使用する記憶領域として再割り当てする制御を行い(S105)、キャッシュをオンにして(S106)、キャッシュメモリ105の一部または全部の各メモリバンクを画像処理部102の各画像処理モジュールで使用する。
【0055】
次に、画像処理装置100の複製処理におけるキャッシュメモリ105の割り当て動作について、図3を参照して説明する。
【0056】
図3は、画像処理装置100の複製処理におけるキャッシュメモリ105の割り当て動作の流れの一例を示す流れ図である。
【0057】
画像処理装置100による複製処理動作は、前述したように、CPU101の制御に基づき画像読取部110によって原稿から画像データを読み取り、読み取った画像データを画像処理部102の各画像処理モジュール102−nによって画像処理してメインメモリ103に格納後、印字部109に転送して用紙上に形成されて出力するように一連の複製処理動作を行う。
【0058】
この複製処理動作におけるキャッシュメモリ105の割り当て動作は、図3に示すように、画像処理装置100のCPU101が複製処理における所定単位(バンド)の画像処理毎にキャッシュメモリ105の全記憶領域(メモリバンク105−0〜105−n)のうちの画像処理部102の各画像処理モジュール102−nで使用可能に割り当てられている記憶領域(メモリバンク)を確認し、画像処理部102で使用する記憶領域(メモリバンク)の増減の必要有無を判断する(S201)。
【0059】
具体的には、例えば、読み取った画像データがPDL(Page Description Language:ページ記述言語)によって記述されたデータで入力され、ビットマップデータに展開して出力する場合において、出力する画像データを図4に示すような1ページ分の画像データ10を複数の帯状の領域(バンド10−1〜10−n)ごとに分割して出力する場合、画像データ10の各バンドの画像処理毎に画像処理部102の各画像処理モジュール102−nに割り当てられているキャッシュメモリ105の各メモリバンクを確認し、画像処理部102で使用する記憶領域(メモリバンク)の増減の必要有無を判断する。
【0060】
S201において、画像処理部102の各画像処理モジュール102−nで使用する記憶領域(メモリバンク)の増減の必要が無いと判断した場合は(S202でNO)、キャッシュメモリ105の記憶領域(各メモリバンク)の再割り当て動作を行うことなく、処理を継続して実施する。
【0061】
S201において、各画像処理モジュール102−nで使用するキャッシュメモリ105の記憶領域(メモリバンク)を増加させる必要有りと判断した場合は(S202でYES、S203でYES)、キャッシュメモリ105の全記憶領域(メモリバンク105−0〜105−n)のうちのCPU101で使用する記憶領域として割り当てられている記憶領域(各メモリバンク)を減少させるように解放させ、解放させた記憶領域(各メモリバンク)を画像処理部102の各画像処理モジュールで使用する記憶領域として再割り当てを行い、画像処理部102の画像処理モジュールには画像処理パラメータを転送し、画像処理部102で使用できる記憶領域(各メモリバンク)として新たに割り当てされた記憶領域(各メモリバンク)にはメインメモリ103に退避されている中間データを転送して(S204)、当該画像処理モジュールの設定を変更する(S205)。
【0062】
また、S202において、各画像処理モジュール102−nで使用するキャッシュメモリ105の記憶領域(メモリバンク)を減少させる必要有りと判断した場合は(S202でNO、S203でNO)、解放する記憶領域(各メモリバンク)に記憶されているデータをメインメモリ103に転送して退避させ(S206)、データを退避させた記憶領域(各メモリバンク)を解放させ、解放された記憶領域(各メモリバンク)をCPU101で使用する記憶領域として再割り当てを行う(S207)。
【0063】
このように、CPU101および各画像処理モジュール102−nの処理状態に応じてCPU101または各画像処理モジュール102または双方で使用可能なように割り当てられたキャッシュメモリ105の記憶領域に応じたデータの流れについて、図5および図6を参照して説明する。
【0064】
図5および図6は、画像処理部102の各画像処理モジュール102−nに割り当てられたキャッシュメモリ105の記憶領域(メモリバンク)が少ない場合と多い場合とにおけるワークメモリ103とキャッシュメモリ105との間のデータの転送動作を概念的に示した説明図である。
【0065】
尚、図5は、各画像処理モジュール102−nに割り当てられたキャッシュメモリ105の記憶領域(メモリバンク)が少ない場合の一例を示す説明図、図6は、各画像処理モジュール102−nに割り当てられたキャッシュメモリ105の記憶領域(メモリバンク)が多い場合の一例を示す説明図である。
【0066】
図5に示すように、入力された画像データが行列演算、下地除去、フィルター処理、色変換処理、拡縮およびスクリーン処理の一連の手順で画像処理する場合において、各画像処理モジュール102−nに割り当てられたキャッシュメモリ105の記憶領域(メモリバンク)が例えばメモリバンク105−0およびメモリバンク105−1のように少ない場合は、Scan Front Port102−1から入力された画像データは、メインメモリ103およびメモリバンク105−0に記憶され、メモリバンク105−0に記憶された画像データに基づき行列演算部102−2がメモリバンク105−1を使用して画像データの演算処理を行う。
【0067】
行列演算部102−2で行列演算された画像データ(以下、画像データ(行列演算後)という。)は、メインメモリ103に一旦転送されて記憶され、下地除去部によりメインメモリ103から読み出されて下地除去の処理が実施される。
【0068】
この下地除去の処理の際に、メモリバンク105−1は、下地除去部102−2で使用されるため、行列演算部102−2で行列演算を行った時にメモリバンク105−1に記憶された画像処理の各種パラメータやデータをメインメモリ103に退避させて記憶させた後、下地除去部102−2による処理に必要な画像処理の各種パラメータやデータがメインメモリ103から読み出されてメモリバンク105−1に記憶され、それらの各種パラメータやデータと画像データ(行列演算後)とに基づき下地除去部102−2が下地除去の処理を実施する。
【0069】
また、下地除去部102−2で下地除去の処理がされた画像データ(以下、画像データ(下地除去後)という。)は、行列演算部102−2の行列演算の場合と同様にメインメモリ103に一旦転送されて記憶され、下地除去の処理の際にメモリバンク105−1に記憶された各種パラメータやデータがメインメモリ103に退避させられて記憶された後、次の画像処理を行うフィルタ部102−4によりメインメモリ103から画像データ(下地除去後)が読み出されてフィルタ処理され、更に色変換部102−5および拡縮・スクリーン部102−6による色変換処理、拡縮およびスクリーン処理が順次実施される。
【0070】
このように、一連の画像処理において、各部で画像処理された画像データおよびメモリバンク105−1に記憶された各種パラメータやデータが各部の画像処理を実施する毎にメインメモリ103とメモリバンク105−1またはメインメモリ103と各画像処理モジュール102−nとの間で各種パラメータやデータおよび画像データの転送動作が発生して処理速度が低下する可能性があるが、各画像処理モジュール102−nに割り当てられたキャッシュメモリ105の記憶領域(メモリバンク)が少ない場合は、キャッシュメモリ105の多くの記憶領域(メモリバンク)をCPU101で使用するように割り当てられるため、CPU101の処理速度が速くなり、画像処理の高速化が図れる。
【0071】
また、図6に示すように、各画像処理モジュール102−nに割り当てられたキャッシュメモリ105の記憶領域(メモリバンク)が例えばメモリバンク105−0〜105−5のように多い場合は、Scan Front Port102−1から入力された画像データは、メインメモリ103およびメモリバンク105−0に記憶され、メモリバンク105−0に記憶された画像データに基づき行列演算部102−2がメモリバンク105−1を使用して画像データの演算処理を行う。
【0072】
行列演算部102−2で行列演算された画像データ(以下、画像データ(行列演算後)という。)は、下地除去部102−2に転送され、下地除去部102−2が画像データ(行列演算後)をメモリバンク105−2を使用して下地除去の処理を行う。
【0073】
また、下地除去部102−2で下地除去の処理がされた画像データ(以下、画像データ(下地除去後)という。)は、フィルタ部102−4に転送され、フィルタ部102−4が画像データ(下地除去後)をメモリバンク105−3を使用してフィルタ処理を行う。
【0074】
また、フィルタ処理された画像データは、色変換部102−5に転送されて、色変換部102−5がメモリバンク105−4を使用して色変換処理を行い、更に拡縮・スクリーン部102−6に転送されて拡縮・スクリーン部102−6がメモリバンク105−5を使用して拡縮およびスクリーン処理を順次実施する。
【0075】
このように、一連の画像処理において、各部で画像処理された画像データは、メインメモリ103を介することなく次の画像処理を行う画像処理モジュールに転送され、当該画像処理モジュールが当該画像処理モジュールに割り当てられたメモリバンクを使用して画像処理するので、各部で使用する各種パラメータやデータおよび画像処理された画像データをメインメモリ103とメモリバンクまたはメインメモリ103と各画像処理モジュール102−nとの間で転送動作が頻繁に発生する場合と比べて画像処理の高速化が図れる。
【0076】
図7は、画像処理装置100とは他の本発明に係わる画像処理装置200の要部の構成の一例を示す構成図である。
【0077】
図7に示すように、画像処理装置200は、CPU201、画像処理部130、メインメモリ103、キャッシュメモリ105、システムバス切替部106、ROM107、通信部108、印字部109、画像読取部110を具備して構成されており、通信部108を介してパソコンなどの上位装置111と接続されている。
【0078】
図7において、画像処理装置200は、画像処理部130を前述の画像処理装置100の画像処理部102(図1参照)の各画像処理モジュール102−nを画像処理を行うための専用のSIMD(=Single Instruction/Multiple Data)方式の複数のメディアプロセッサ130−1〜130−nに置き換え、キャッシュメモリ105をシステムバス切替部106と接続して調停部104を不要として構成した他は、画像処理装置100と同様に構成されており、画像処理装置100と同様な構成および動作を行う各部には、説明の便宜上、画像処理装置100と同一の符号を付し、同一符号の各部の説明は省略または簡略して説明するものとする。
【0079】
画像処理装置200のCPU201は、画像処理装置200の各部を制御すると共に、画像処理装置200全体を統括制御するプロセッサであり、読み出し専用のメモリであるROM107に記憶された制御プログラムなどを読み出して実行して、印刷処理、スキャン処理、複製処理などの各種処理動作の制御を行う。
【0080】
キャッシュメモリ105は、画像処理装置100と同様に再配置可能で独立してアクセス可能な複数の記憶領域(メモリバンク)105−0〜105−nから構成された高速メモリのRAMである。
【0081】
画像処理部130は、前述したように画像データを画像処理するための各種画像処理専用のメディアプロセッサ130−1〜130−nで構成されており、各メディアプロセッサ130−1〜130−nは、画像処理プログラムを自プロセッサにロードして実行し、その画像処理プログラムの命令に基づき各種画像処理を行うように構成されている。
【0082】
画像処理プログラムは、ROM107に記憶されており、各メディアプロセッサ130−1〜130−nは、CPU201の制御に基づき画像処理プログラムをROM107から自メディアプロセッサに読込み実行して各種画像処理を行う。
【0083】
複数のメディアプロセッサ130−1〜130−nのうちのメディアプロセッサ130−1は、バスインタフェース(以下、「バスI/F」という。)131−1、命令キャッシュメモリ132−1、命令キャッシュ制御部133−1、命令デコード制御部134−1、DMA(=Direct Memory Access)135−1、ローカルメモリ136−1、複数のデータパス137−1−1、2、・・・n(以下、「データパス137−1−n」という。)から成るデータバス部137−1を備えて構成されている。
【0084】
メディアプロセッサ130−1のバスI/F131−1は、システムバス切替部108とのプログラムやデータの入出力のインタフェース制御を行う。
【0085】
命令キャッシュメモリ132−1は、フェッチされた命令や実行後の命令を一時的に格納する高速なRAMである。
【0086】
命令キャッシュ制御部133−1は、バスI/F131−1を介して入力されたプログラムの命令を命令キャッシュメモリ132−1に記憶させると共に、命令キャッシュメモリ132−1に記憶されている命令を順次取り出して、命令デコード制御部134−1へ転送する制御を行う。
【0087】
命令デコード制御部134−1は、入力された命令の内容を解釈して、命令に基づく演算処理を行う。
【0088】
DMA135−1は、システムバス切替部108と接続された自装置とは他の各装置(自装置とは他のメディアプロセッサ130−nやキャッシュメモリ105など)とバスI/F131−1を介して直接データの入出力の制御を行う。
【0089】
ローカルメモリ136−1は、自装置のメディアプロセッサ130−1のみ使用可能なメモリである。
【0090】
データパス137−1−nは、命令キャッシュ制御部133−1とローカルメモリ136−1との間のデータを転送するデータ経路であり、マルチプレクサなどで構成されている。
【0091】
尚、本実施例では、メディアプロセッサ130−1とは他の各メディアプロセッサ130−nの構成もメディアプロセッサ130−1と同様に構成されているが、異なる構成であっても本発明に係わる制御動作が実現される構成であれば良い。
【0092】
また、画像処理部130の各メディアプロセッサ130−1〜130−nを総称する場合は、説明の便宜上、単に「メディアプロセッサ130−n」という。
【0093】
このように構成された画像処理装置200は、画像処理装置100と同様に、パソコンなどの上位装置111から印刷要求と共に送信される画像データが通信部108を介して受信されると、受信された画像データは、CPU121の制御に基づき画像処理部130の各メディアプロセッサ130−nによって画像処理されてメインメモリ103に格納され、印字部109に転送されて用紙上に形成されて出力される。
【0094】
また、画像処理装置200によるスキャン処理および複製処理の動作は、CPU201の制御に基づき画像読取部110によって図示せぬ原稿から画像データが読み取られ、読み取られた画像データは、画像処理部130の各メディアプロセッサ130−nによって画像処理されてメインメモリ103に格納され、所定の記憶領域に格納される、または印字部109に転送されて用紙上に形成されて出力される。
【0095】
これらの印刷処理、スキャン処理、複製処理などの各種処理動作は、CPU201がROM107から各種処理の制御プログラムを読み込み実行し、CPU201の制御に基づき各メディアプロセッサ130−nが画像処理プログラムをROM107から読み込み実行することで、実行された制御プログラムに記述された命令に基づく各種処理の制御動作が実現される。
【0096】
ところで、本願発明の画像処理装置200は、印刷処理、スキャン処理、複製処理などの各種処理を効率良く動作させるために、CPU201および各メディアプロセッサ130−nの処理状態に応じてキャッシュメモリ105の記憶領域(メモリバンク105−0〜105−n)の一部または全部をCPU201または各メディアプロセッサ130−nで使用可能なように割り当てて相互に使用できるように構成されている。
【0097】
具体的には、CPU101の処理状態がアイドル状態または負荷の小さい処理を行っている状態などの場合には、キャッシュメモリ105の一部または全部の記憶領域(メモリバンク105−0〜105−n)を画像処理部102の各メディアプロセッサ130−nの画像処理プログラムを記憶する領域として割り当てて使用し、また、各メディアプロセッサ130−nの処理状態がアイドル状態または負荷の小さい処理を行っている状態などの場合には、キャッシュメモリ105の一部または全部の記憶領域(メモリバンク105−0〜105−n)をCPU201で使用する記憶領域として優先的に割り当てて使用するように構成されている。
【0098】
このような構成とすることで、キャッシュメモリ105の全記憶領域(メモリバンク105−0〜105−n)のうちの多くのメモリバンクをCPU201で使用するように割り当てると、CPU201の制御プログラムを高速に動作させることができ、また、処理の負荷の小さい制御プログラムを実行する場合には、キャッシュメモリ105の多くのメモリバンクをCPU201で使用するように割り当てなくても十分な性能が得られるので、CPU201で使用するキャッシュメモリ105の記憶領域(メモリバンク105−0〜105−n)を少なくし、各メディアプロセッサ130−nで使用するキャッシュメモリ105の記憶領域(メモリバンク105−0〜105−n)を多く割り当て、その記憶領域に各メディアプロセッサ130−nの画像処理プログラムを記憶させることで、各メディアプロセッサ130−nの各命令キャッシュメモリ131−nに収まりきれない使用容量の大きい画像処理プログラムを実行する場合でもメインメモリ103へのデータの退避動作が減少するので、画像処理の高速化が図れる。
【0099】
図8は、画像処理装置200とは他の本発明に係わる画像処理装置210の要部の構成の一例を示す構成図である。
【0100】
図8に示すように、画像処理装置210は、CPU202、画像処理部140、メインメモリ103、キャッシュメモリ105、システムバス切替部106、ROM107、通信部108、印字部109、画像読取部110を具備して構成されており、通信部108を介してパソコンなどの上位装置111と接続されている。
【0101】
図8において、画像処理装置210は、画像処理装置210の画像処理部140を構成する各種画像処理専用の複数のメディアプロセッサ140−1〜140−nが同一の画像処理プログラムを実行するメディアプロセッサ間で当該各メディアプロセッサが備えるそれぞれの命令キャッシュメモリを共有して使用するように制御するように構成した他は、画像処理装置200(図7参照)と同様に構成されており、画像処理装置200と同様な構成および動作を行う各部には、説明の便宜上、画像処理装置200と同一の符号を付し、同一符号の各部の説明は省略または簡略して説明するものとする。
【0102】
画像処理装置210のCPU202は、画像処理装置210の各部を制御すると共に、画像処理装置210全体を統括制御し、読み出し専用のメモリであるROM107に記憶された制御プログラムなどを読み出して実行して、印刷処理、スキャン処理、複製処理などの各種処理動作の制御を行う。
【0103】
キャッシュメモリ105は、画像処理装置200と同様に再配置可能で独立してアクセス可能な複数の記憶領域(メモリバンク)105−0〜105−nから構成された高速メモリのRAMである。
【0104】
画像処理部140は、前述したように画像データを画像処理するための各種画像処理専用のメディアプロセッサ140−1〜140−nで構成されており、各メディアプロセッサ140−1〜140−nは、画像処理プログラムを自プロセッサにロードして実行し、その画像処理プログラムの命令に基づき各種画像処理を行う。
【0105】
また、各メディアプロセッサ140−1〜140−nは、画像処理装置200の各メディアプロセッサ130−nと同様に構成されたそれぞれのバスI/F131−1〜131−n、命令キャッシュメモリ132−1〜132−n、命令デコード制御部134−1〜132−n、DMA135−1〜135−n、ローカルメモリ136−1〜136−n、複数のデータパスから成るデータバス部137−1〜137−nおよび同一の画像処理プログラムを実行するメディアプロセッサ間で当該各メディアプロセッサが備えるそれぞれの命令キャッシュメモリを共有して使用するように制御する命令キャッシュ制御部143−1〜145−nを備えて構成されている。
【0106】
尚、画像処理部140の各メディアプロセッサ140−1〜140−nを総称する場合は、説明の便宜上、単に「メディアプロセッサ140−n」という。
【0107】
このような構成とすることで、画像処理部140の複数のメディアプロセッサ140−nのうちの例えばメディアプロセッサ140−1とメディアプロセッサ140−2との間で同一の画像処理プログラムを実行する場合は、当該画像処理プログラムの一部または全部をメディアプロセッサ140−1の命令キャッシュメモリ132−1とメディアプロセッサ140−2の命令キャッシュメモリ132−2とにそれぞれ分割して記憶させ、各メディアプロセッサ140−1、140−2で命令キャッシュメモリ132−1および命令キャッシュメモリ132−2を共用して使用することができる。
【0108】
このように、同一の処理プログラムを実行する各メディアプロセッサ間でそれぞれの命令キャッシュメモリに当該処理プログラムを記憶させて共用して使用することで、これらの各メディアプロセッサからメインメモリ103に記憶された当該処理プログラムへのアクセス動作が減少し、画像処理の処理性能の低下を防止することが可能となる。
【0109】
また、画像処理装置210とは他の画像処理装置の実施例として、例えば、画像処理装置210の複数のメディアプロセッサ140−nで実行される同一の画像処理プログラムが複数存在する場合に、どの画像処理プログラムを優先的にキャッシュメモリ105に記憶させるか、またはどの画像処理プログラムを同一の画像処理プログラムを実行するメディアプロセッサ間で当該各メディアプロセッサが備えるそれぞれの命令キャッシュメモリに共有して記憶させるかを所定の判断基準に基づき記憶させるように制御する構成としても良い。
【0110】
このように構成した場合は、例えばメインメモリ103へアクセスするトラフィックが高くない場合には、各メディアプロセッサ140−nで実行される複数の同一の画像処理プログラムのうち、実行する画像処理プログラムの全ての命令を命令キャッシュに記憶させて実行した場合のその実行時間と、メインメモリ103に記憶させて実行した場合のその実行時間との実行時間差に基づき判断して決定する。
【0111】
また、メインメモリ103へアクセスするトラフィックが高い場合には、各メディアプロセッサ140−nで実行される複数の同一の画像処理プログラムのうち、実行する画像処理プログラムの全ての命令を命令キャッシュに記憶させた場合と比べてメインメモリ103に記憶させた場合のキャッシュのミスヒット時のメインメモリ103からのデータ転送量に基づき判断して決定する。
【産業上の利用可能性】
【0112】
本発明は、複数のプロセッサを備える装置で同一の高速メモリを共用して使用する技術に適用可能である。
【図面の簡単な説明】
【0113】
【図1】本発明に係わる画像処理装置100の要部の構成の一例を示す構成図
【図2】画像処理装置100の印刷処理におけるキャッシュメモリ105の割り当て動作の流れの一例を示す流れ図
【図3】画像処理装置100の複製処理におけるキャッシュメモリ105の割り当て動作の流れの一例を示す流れ図
【図4】1ページ分の画像データ10とそのバンド(帯状の領域)の一例を示す図
【図5】各画像処理モジュール102−nに割り当てられたキャッシュメモリ105の記憶領域(メモリバンク)が少ない場合のデータ転送動作の説明図
【図6】各画像処理モジュール102−nに割り当てられたキャッシュメモリ105の記憶領域(メモリバンク)が多い場合のデータ転送動作の説明図
【図7】本発明に係わる画像処理装置200の要部の構成の一例を示す構成図
【図8】本発明に係わる画像処理装置210の要部の構成の一例を示す構成図
【符号の説明】
【0114】
10 画像データ
10−1、10−2、10−n バンド(画像データ10の複数の帯状の領域)
100、200、210 画像処理装置
101、201 CPU(=Central Processing Unit )
102、130、140 画像処理部
102−1 Scan Front Port
102−2 行列演算部
102−3 下地除去部
102−4 フィルタ部
102−5 色変換部
102−6 拡縮・スクリーン処理部
102−7 JPEG(=Joint Photographic Experts Group)部
102−8 伸張部
102−n−1 データの書き換えが可能な内蔵記憶領域
102−n キャッシュI/F部
103 メインメモリ
104 調停部
105 キャッシュメモリ
105−0、105−1、105−2、105−3、105−4、105−5、105−n メモリバンク(記憶領域)
106 システムバス切替部
107 ROM(=Read Only Memory)
108 通信部
109 印字部
110 画像読取部
111 上位装置
130−1、130−n、140−1、140−2、140−n メディアプロセッサ
132−1、132−n 命令キャッシュメモリ
133−1、133−n 命令キャッシュ制御部
134−1、134−n 命令デコード制御部
135−1、135−n DMA(=Direct Memory Access)
136−1、136−n ローカルメモリ
137−1、137−n データパス部
137−1−1、137−1−n、137−n−1、137−n−n データパス

【特許請求の範囲】
【請求項1】
中央演算処理部と、
主記憶部と、
複数の画像処理部と、
前記中央演算処理部と前記画像処理部とで共有可能で同時にアクセス可能な高速の高速記憶部と、
前記高速記憶部の記憶領域を前記中央演算処理部のキャッシュメモリまたは前記画像処理部のワークメモリとして排他的、かつ動的に割り当てる割当手段と
を具備する画像処理装置。
【請求項2】
前記中央演算処理部の処理状態を検知する状態検知手段
を具備し、
前記割当手段は、
前記状態検知手段により前記中央演算処理部の処理状態がアイドル状態と検知された場合、前記中央演算処理部に前記キャッシュメモリとして割り当てられた前記高速記憶部の記憶領域をバンク単位で減少させるように再割り当てする請求項1記載の画像処理装置
【請求項3】
前記状態検知手段は、
前記複数の画像処理部による処理状態を検知し、
前記割当手段は、
前記状態検知手段により前記複数の画像処理部による処理状態がアイドル状態と検知された場合、前記複数の画像処理部に前記ワークメモリとして割り当てられた前記高速記憶部の記憶領域をバンク単位で減少させるように再割り当てする請求項1記載の画像処理装置。
【請求項4】
前記割当手段は、
上位装置おいて検出された負荷分散情報に基づき前記高速記憶部の記憶領域を前記中央演算処理部のキャッシュメモリまたは前記画像処理部のワークメモリとして排他的、かつ動的に割り当てる請求項1記載の画像処理装置。
【請求項5】
中央演算処理部と、
主記憶部と、
複数の画像処理部と、
前記中央演算処理部と前記画像処理部とで共有可能で同時にアクセス可能な高速の高速記憶部と、
前記高速記憶部の記憶領域を前記中央演算処理部のキャッシュメモリまたは前記画像処理部の命令キャッシュメモリとして排他的、かつ動的に割り当てる割当手段と
を具備する画像処理装置。
【請求項6】
前記割当手段により前記命令キャッシュメモリとして割り当てられた前記高速記憶部の記憶領域を前記複数の画像処理部の中の少なくとも2つの画像処理部で共有する請求項5記載の画像処理装置。
【請求項7】
前記割当手段は、
前記画像処理部の処理プログラムの全てが前記高速記憶部の前記命令キャッシュメモリとして割り当てられた記憶領域にある場合の実行時間と前記主記憶部にある場合の実行時間との性能差に基づき、他の処理に優先して前記高速記憶部に対する前記命令キャッシュメモリとしての割り当てを行う請求項5記載の画像処理装置。
【請求項8】
前記割当手段は、
前記画像処理部の処理プログラムの全てが前記高速記憶部の前記命令キャッシュメモリとして割り当てられた記憶領域にある場合と前記主記憶部にある場合とにおける前記主記憶部と前記高速記憶部との間のデータ伝送量に基づき、他の処理に優先して前記高速記憶部に対する前記命令キャッシュメモリとしての割り当てを行う請求項5記載の画像処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2009−223792(P2009−223792A)
【公開日】平成21年10月1日(2009.10.1)
【国際特許分類】
【出願番号】特願2008−69888(P2008−69888)
【出願日】平成20年3月18日(2008.3.18)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】