(57)【要約】【課題】  装置の資源を有効に利用して画像処理を効率的に行うことのできる、画像処理装置及び画像処理装置の制御方法を提供すること。【解決手段】  インタプリタ処理を装着されるアクセラレータで行い、レンダリングを複合機本体で行うようにして、装着されるアクセラレータと複合機本体との間で負荷を分散することによって、高い性能のよりコストの低いアクセラレータを提供することができる。【選択図】  図５
2005161756.tif 000002
【特許請求の範囲】
【請求項１】
プリンタに装着できる装置であって、前記装置は、画像処理に関するプログラムを格納するメモリと、前記プログラムに従って処理を実行するＣＰＵと、プリンタとのインターフェース回路と、前記メモリと前記ＣＰＵ、および前記プリンタインターフェースとを接続するバスとを持ち、プリンタに装着された時、プリンタに代わって、プリンタの画像処理の一部を実行することを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及び画像処理装置の制御方法に関し、特に、画像処理を、複数の画像処理制御回路で分散処理する手段に関する。
【背景技術】
【０００２】
近年、オフィスなどにおいて使用される様々な電子機器の資源を共用すべく、ネットワークによってこれらの機器を接続することが行われている。例えば、従来のプリンタは、１台の機器に接続されたローカルプリンタが一般的であったが、ネットワーク内の各機器で共用されるネットワークプリンタとして使用されるケースが増えている。
【０００３】
また、最近は１台の装置に様々な機能を組み込む複合化が進められ、複写機の内部に画像処理機能を有するプリンタコントローラを組み込み、１台で複写機とプリンタとの両方の機能を有する複合機が市場で発売されている。このような複合機には、ファクシミリ機能などが更に追加され多機能化が進んでいる。
【０００４】
このような複合機はネットワークに接続されて使用されるのを想定しているため、様々なユーザーからの多様なユーザーニーズに対応できるような構成が求められる。これに応えるため、例えば、内部の各機能ユニット間を共通化されたバスによって接続し、さまざまなユーザーニーズに対応するため拡張性を持たせた複合機も提案されている。
【０００５】
CPUやメモリ等の進化により、主にCPUやメモリから構成される画像処理の回路、特にプリンタコントローラ部のパフォーマンスは、日々進化している。また、その進化のサイクルは、短くなっており、常に最高のパフォーマンスを求めるユーザーとしては、次々と新技術を利用した複合機を求めることになり、新たな投資が短期間で発生してしまうことになる。
【０００６】
このユーザーニーズに対応するために、例えば、特許文献１のように、前記共通化されたバス上や、専用インターフェース上に、最新のCPUやメモリ技術を用いて開発されたアクセラレータボート等を装着し、既存の複合機の資産を活用し少ない投資で、ユーザーニーズにマッチさせるべくパフォーマンスアップを図る手段が提案されている。
【０００７】
これらアクセラレータの構成として、最新技術を用いたCPU、メモリを用い共通化されたバスによって、複合機本体と接続し、複合機本体のプリンタコントローラの仕事をすべて代わりに行うというのものである。
【０００８】
すなわち、複合機本体からページ記述言語（ＰＤＬ）によって記述されたドキュメントを共通化されたバスから受け取り、最新技術を用いたCPU、メモリを用いて高速にイメージに展開して、再び共通化されたバスを介して複合機本体へ転送するようになっている。
【特許文献１】特許第３０９７１３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、このような構成のアクセラレータでは、本来持っている複合機本体のプリンタコントローラや、画像処理ユニットの持つ能力、すなわち資源（リソース）を活用できない。構成となってしまっている。
【００１０】
そのためにアクセラレータでは、必要以上の高性能のCPUの活用や、イメージメモリの拡大、プログラムROMやプログラムRAM、ワークRAMの拡大などによって、高コストになってしまっている。
【００１１】
本発明は以上のような状況に鑑みてなされたものであり、装置の資源を有効に利用して画像処理を効率的に行うことのできる、画像処理装置及び画像処理装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
ページ記述言語（ＰＤＬ）をイメージに展開する手順としては、受け取ったページ記述言語（ＰＤＬ）をイメージに展開しやすいデータ列、すなわち中間言語に変換するインタプリタと、中間言語からイメージに展開するレンダリングという手順で行われる。
【００１３】
これらの手順を、複合機本体と装着されるアクセラレータとで、分けて行うことにより、複合機本体の資源を有効に活用できる。
【００１４】
すなわち、インタプリタ処理を装着されるアクセラレータで行い、レンダリングを複合機本体で行うようにして、装着されるアクセラレータと複合機本体との間で負荷を分散することによって、高い性能のよりコストの低いアクセラレータを提供することができる。
【００１５】
また、レンダリング手段として、複合機本体にハードウェア化されている場合も多く、複合機本体の資産を有効に活用できる。
【００１６】
すなわち、必要以上の高性能のCPUの活用や、レンダリング画像を格納するイメージメモリの拡大、レンダリングプログラムによるROMの拡大やレンダリング専用ハードウェアの新たな追加などによる高いコストの発生を抑制できる。
【発明を実施するための最良の形態】
【００１７】
以下、添付図面を参照して本発明の好適な実施形態について詳細に説明する。
【００１８】
図１は本発明の実施形態としての複合機の全体構成を示す、概略ブロック図である。本実施形態の複合機は、スキャナ、プリンタ及びファクシミリの機能を有している。
【００１９】
同図において、１０１はページ記述言語で記述されたファイルに基づいてインタプリタ処理を行い中間言語コードに変換する処理を行う、ＰＤＬアクセラレータユニットである。中間言語コードに変換処理されたデータは、システムバス１０５を介してマスタ制御ブロック１１６に転送され、得られた中間言語コードに基づいてレンダリング専用ＡＳＩＣ１３０によって画像メモリ１３１内に画像がレンダリングされ、またレンダリングされた画像は、スキャナ／プリンタユニット１１３に転送されプリント出力を得られるようになっている。
【００２０】
ＰＤＬアクセラレータユニット１０１は、システムバス１０５に装着され、マスタ制御ブロック１１６のプリンタコントローラ機能の高速化を行うものである。すなわち将来、例えば、最新の技術を利用したＣＰＵを用いたＰＤＬアクセラレータユニットを装着することで、最新技術のＣＰＵやメモリ等を用いることができ、既存の複合機を活用しながら常に最高のパフォーマンスが得られるようになっている。
【００２１】
ＰＤＬアクセラレータユニット１０１が装着されない場合は、マスタ制御ブロック１１６内のＣＰＵ１１０にてインタプリタ処理を行い、生成された中間言語をＡＳＩＣ１３０が参照し、接続される画像メモリ１３１にレンダリングを行うことによって、ページ記述言語で記述されたファイルから、画像を展開しプリントできるようになっている。
【００２２】
ＰＤＬアクセラレータＬユニット１０１は、インタプリタ処理ユニットとして機能するものであり、各種ページ記述言語から中間言語コードに変換するプログラムをダウンロードできるように構成されており、所望するページ記述言語の制御プログラムを装着されるＰＤＬアクセラレータユニット１０１にダウンロードすることによって、複数のページ記述言語に対応できる。
【００２３】
例えば、ＬＩＰＳ言語に対応したければ、ＬＩＰＳ言語の制御プログラム、ＰＳ言語に対応したければＰＳ言語の制御プログラムをダウンロードできるようになっている。
【００２４】
これらの制御プログラムは、マスタ制御ブロック１１６内のハードディスク１１１に格納されており、ＣＰＵ１１０によって、適宜選択され、スキャナ／プリンタＩ／Ｆ１１２内のＤＭＡコントローラ１２１によって、ＰＤＬアクセラレータユニット１０１に転送される。
【００２５】
１０３はネットワーク１０８を介して不図示のホストコンピュータと、各種コマンドやプリントすべきページ記述言語ファイルの送受信を行うネットワークＩ／Ｆ、１０４はＴＥＬケーブル１０６を介して公衆回線１０７に接続された他のファクシミリ等と、画像データの送受信を行うＦＡＸユニット、１１６はそれぞれのユニットとスキャナ／プリンタユニット１１３とを接続し制御するマスタ制御ブロックである。
【００２６】
システムバス（単にバスとも称する）１０５によって、それぞれのユニットは接続されている。このシステムバス１０５には、上述したユニット以外でもさまざまなユニットが接続できるようになっており、ユーザーニースに応じて、様々な機能を有する複合機を構成できる。
【００２７】
なお、図中では別に示されているが、システムバス１０５と共に制御信号として、ＣＬＫ１２０、ＲＥＱ−Ｐ、ＧＮＴ−Ｐ、ＲＥＱ−Ｎ、ＧＮＴ−Ｎ、ＲＥＱ−Ｆ、ＧＮＴ−Ｆが対応するユニットに接続される。
【００２８】
ＣＬＫ１２０は、マスタ制御ブロック１１６内のバスアービター１０９の内部を示す図２に示されるように、バスアービター１０９内のクロックジェネレータ２０８で発生され、ＰＤＬユニット１０１、ネットワークＩ／Ｆ１０３、バスアービター１０９、スキャナ／プリンタＩ／Ｆ１１２に供給されている。
【００２９】
これらの信号のうち、ＲＥＱ−Ｐ、ＲＥＱ−Ｎ、ＲＥＱ−Ｆは、それぞれＰＤＬユニットアクセラレータユニット１０１、ネットワークＩ／Ｆ１０３、ＦＡＸユニット１０４から出力される、バス専有リクエスト信号であり、マスタ制御ブロック１１６内のバスアービター１０９に入力される。
【００３０】
バス専有リクエスト信号が入力されるバスアービター１０９では、それぞれのユニットがバス１０５を所定期間以上独占する事がないように、効率よく順次バス専有許可信号、ＧＮＴ−Ｐ、ＧＮＴ−Ｎ、ＧＮＴ−Ｆを、それぞれ、ＰＤＬアクセラレータユニット１０１、ネットワークＩ／Ｆ１０３、ＦＡＸユニット１０４に送信することによってバス１０５の使用を許可する。これらバス専有許可信号、ＧＮＴ−Ｐ、ＧＮＴ−Ｎ、ＧＮＴ−Ｆの発生については後述する。
【００３１】
１１３はスキャナ／プリンタユニットであり、ビデオＩ／Ｆ１１４を介して、マスタ制御ブロック内のスキャナ／プリンタＩ／Ｆ１１２に接続され、さらにスキャナ／プリンタＩ／Ｆ１１２及びバス１０５を介して、ＰＤＬユニット１０１、１０２、ネットワークＩ／Ｆ１０３、ＦＡＸユニット１０４に接続され、スキャナで読み取ったスキャン画像や、プリンタで記録すべきプリント画像の送受信を行う。
【００３２】
ビデオＩ／Ｆ１１４内には、読み取った画像、もしくはプリントすべき画像の転送のための信号の他に、後述するＳＬＥＥＰ信号１１９、また、図示はしないが、スキャナ／プリンタＩ／Ｆ１１２とコマンドを送受信するためのコマンド信号も含まれている。
【００３３】
マスタ制御ブロック１１６において、１１７はローカルバスであり、ＣＰＵ１１０とバスアービタ１０９、スキャナ／プリンタＩ／Ｆ１１２、操作部１１５、ハードディスク１１１とをそれぞれ接続している。
【００３４】
ローカルバス１１７内には、前述したシステムバス１０５のように、各接続されるデバイスが、バスを占有しないように調停する制御信号が含まれ、調停回路は、ＡＳＩＣ１３０内に実現されている。システムバス１０５と説明が重複するので、詳細な説明は、省略する。
【００３５】
ＣＰＵ１１０は、ＲＯＭ１２３、ＲＡＭ１１８に格納される制御プログラムに基づいて、マスタ制御ブロック１１６内の各部を制御する。ＲＡＭ１１８は、各種の制御のためのパラメータを格納するともに、ＣＰＵ１１０のワークエリアとしても機能する。また、ＰＤＬファイルをＣＰＵ１１０によってインタプリタ処理を行うプログラムコードや、インタプリタ後の中間言語コードの一時格納エリアとしても用いられる。
【００３６】
インタプリタ処理を行うプログラムコードは、ハードディスク１１１にあらかじめ格納されており、起動時、もしくは、操作部１１５からのユーザーの選択によって、それぞれ用いられるＰＤＬ言語によって、インタプリタ処理を行うプログラムコードを選択し、ダウンロードできるようになっている。
【００３７】
ＡＳＩＣ１３０は、ページ記述言語からインタプンタされた中間言語コードに基づいて、ラスタイメージ画像をレンダリングする機能有する専用のＡＳＩＣである。ハードウェア処理によって高速に処理が行われる。
【００３８】
以下、複合機としての動作の概略を説明する。
【００３９】
例えば、スキャナコマンドが発行された場合の動作の概略を説明する。ネットワーク１０８に接続された不図示のホストコンピュータよりスキャナコマンドが発行されると、ネットワークＩ／Ｆ１０３はコマンドを受け取り、バス専有リクエストＲＥＱ−Ｎをバスアービタ１０９に発行してバス専有を要求する。バスアービター１０９は前述したように、バスを独占する事がないように、効率よく順次、バス専有許可信号ＧＮＴ−Ｎを発行する。
【００４０】
ネットワークＩ／Ｆ１０３は、バス専有許可信号ＧＮＴ−Ｎを受け取ることで、バスを確保し、スキャナ／プリンタＩ／Ｆ１１２にホストコンピュータより受け取ったコマンドを転送する。
【００４１】
ＣＰＵ１１０は、スキャナ／プリンタＩ／Ｆ１１２からコマンドを受けた通知を、例えば、図示はしないが、ローカルバス１１７内の割り込み信号によって受けると、ローカルバス１１７を介して、受け取ったコマンドを解釈し、さらにＣＰＵ１１０は、ビデオＩ／Ｆ１１４内のコマンド信号を介して、スキャナ／プリンタユニット１１３にコマンドを発行し、スキャナの起動をかける。
【００４２】
スキャナ／プリンタユニット１１３は受け取ったコマンドにより、スキャンした画像をビデオＩ／Ｆ１１４を介しスキャナ／プリンタＩ／Ｆ１１２に転送する。スキャン画像を受け取ったスキャナ／プリンタＩ／Ｆ１１２は、バス専有リクエストＲＥＱ−Ｍをバスアービター１０９に出力し、バスアービター１０９は前述したように、バスを独占する事がないように、効率よく順次、バス専有許可信号ＧＮＴ−Ｍを発行することで、スキャナ／プリンタＩ／Ｆ１１２と、ネットワークＩ／Ｆ１０３間にバスを開放する事によって、ネットワークＩ／Ｆ１０３にスキャナ画像を転送し、さらにネットワーク１０８を介してホストコンピュータにスキャン画像を転送できる。
【００４３】
本実施形態では、バスアービター１０９と、スキャナ／プリンタＩ／Ｆ１１２は、同一のブロック内にあるため、バス専有リクエスト信号ＲＥＱ−Ｍ及びバス専有許可信号ＧＮＴ−Ｍは、システムバス１０５とは別個となっているが、構成に応じてシステムバス１０５と共に接続されてもよい。
【００４４】
スキャナ／プリンタユニット１１３は操作部１１５のコピーボタンにより、単独で複写機としての動作も可能であるが、単独での複写機としての動作の詳細な説明は、発明の主旨ではないので省略する。
【００４５】
スキャナ／プリンタＩ／Ｆ１１２内には、ＤＭＡコントローラ１２１があり、ローカルバス１１７を介してＣＰＵ１１０によって、その起動や停止等が制御される。ＤＭＡコントローラ１２１の起動により、ハードディスク１１１に格納されているＰＤＬインタプリタ制御プログラムや、ＲＯＭ１１８、ＲＡＭ１２３に一時的に格納されている通信データや各種パラメータを、システムバス１０５に接続されている、各ユニットに高速に送信したり、また各ユニットからの通信データや各種パラメータを高速に受信できる。もちろん、ＣＰＵ１１０は、ＤＭＡコントローラ１２１を用いなくとも、各ユニットにアクセスすることができる。
【００４６】
また例えば、アクセラレータユニット１０１がない場合のプリンタ動作の説明を以下に行う。
【００４７】
ネットワーク１０８に接続された不図示のホストコンピュータよって作成されたドキュメントすなわちＰＤＬファイルの送信を受けると、ネットワークＩ／Ｆ１０３はＰＤＬファイルを受け取り、バス専有リクエストＲＥＱ−Ｎをバスアービタ１０９に発行してバス専有を要求する。バスアービター１０９は前述したように、バスを独占する事がないように、効率よく順次、バス専有許可信号ＧＮＴ−Ｎを発行する。
【００４８】
ネットワークＩ／Ｆ１０３は、バス専有許可信号ＧＮＴ−Ｎを受け取ることで、バスを確保し、スキャナ／プリンタＩ／Ｆ１１２にホストコンピュータより受け取ったＰＤＬファイルをＤＭＡ回路４０５によって転送し、スキャナ／プリンタＩ／Ｆ１１２の制御制御のもと、順次ＲＡＭ１１８に格納する。
【００４９】
この転送には、スキャナプリンタI/F１１２のDMA回路１２１もしくは、直接ＣＰＵ１１０がアクセスして転送してもよい。
【００５０】
ＣＰＵ１１０は、ＰＤＬファイル転送が終了した通知を、ＤＭＡ４０５からスキャナプリンタI/F１１２を介して、例えば図示はしないが、ローカルバス１１７内の割り込み信号によって受ける。ＣＰＵ１１０は、ＲＡＭ１１８内にあらかじめ格納されているインタプリタ処理を行うプログラムコードによって、ＲＡＭ１１８に一時格納されているページ記述言語データを参照し、ＡＳＩＣ１３０が利用できる中間言語コードに変換し、再びＲＡＭ１１８に順次格納していく、ＣＰＵ１１０は、中間言語コードへの変換処理が終了すると、ＡＳＩＣ１３０にレンダリングコマンドを送り、ＡＳＩＣ１３０は、ＲＡＭ１１８に格納されている中間言語コードを参照しながら高速に画像メモリ１３１へラスタイメージの画像の展開を行う。
【００５１】
ＣＰＵ１１０は、ＡＳＩＣ１３０からの展開終了割り込み信号（ローカルバス１１７に含まれる）を受けると、ＤＭＡ１２１を起動し、ＡＳＩＣ１３０を介して画像メモリ１３１内の画像を、スキャナ／プリンタ１１３に転送し、画像の記録が行われる。
【００５２】
ＣＰＵ１１０は、ページ記述言語のインタプリタ処理だけでなく、システム全体の制御も司っているため、ＣＰＵ１１０のパフォーマンスは、プリント処理のパフォーマンスに大きく影響することになる。例えば、最新の技術を利用したＣＰＵを用いたアクセラレータユニットを活用し、インタプリタ処理を行わせることによって、現状の資産を利用しながら、少ない投資で常に最高のパフォーマンスが得られる。
【００５３】
図２は、バスアービター１０９の内部ブロック図である。２０１はバス監視回路であり、システムバス１０５の使用状況を監視する。例えば、あるデバイスが、バス１０５を利用していることを検知した場合（バスｂｕｓｙと称す）には、タイマリセット信号２０５がイネーブルとなりタイマ２０３がリセットされる。また、どのデバイスもバス１０５を利用していないことを検知した場合（バスｉｄｌｅと称す）には、タイマリセット信号２０５がディセーブルとなり、タイマ２０３が動作しはじめる。その後、どのデバイスもバス１０５を利用していない時間、すなわちバスｉｄｌｅ時間がある程度経過した場合、Ｈｉｔ信号２０７により、ＣＬＫディセーブルをＳＬＥＥＰ回路２０４に通知し、その後更にまた、どのデバイスもバス１０５を利用していない時間、バスｉｄｌｅ時間がある程度経過した場合、Ｈｉｔ信号２０７により、ＳＬＥＥＰ回路２０４に対し、ＳＬＥＥＰが通知される。
【００５４】
タイマ２０３については詳細な構成は図示しないが、ローカルバス１１７に接続されおり、ＣＬＫディセーブルのタイミングとＳＬＥＥＰのタイミングをＣＰＵ１１０よりプログラマブルに設定できる。
【００５５】
ＳＬＥＥＰ回路２０４は、Ｈｉｔ信号２０７によりＣＬＫディセーブル通知を受け取ると、信号ＣＬＫＥＮ２０９をディセーブルにして、クロックジェネレータ２０８に通知する。クロックジェネレータ２０８は、信号ＣＬＫＥＮ２０９がディセーブルになると、ＣＬＫ１２０の供給を止め、論理レベルをＨｉｇｈに保つ。この状態をスタンバイ状態と称する。
【００５６】
この様にして、システムバス１０５のバスｉｄｌｅが続いた場合、クロックをＨｉｇｈの状態で止めて、スタンバイ状態とし、消費電力を抑えるようにしている。さらにシステムバス１０５のバスｉｄｌｅの状態で時間が経過し、Ｈｉｔ信号２０７によりＳＬＥＥＰ通知を受け取ると、信号ＳＬＥＥＰ１１９をイネーブルにして、ＣＰＵ１１０、またスキャナ／プリンタユニット１１３に対し、ＳＬＥＥＰを通知する。
【００５７】
ＳＬＥＥＰを通知されたＣＰＵ１１０は、マスタ制御ブロック１１６内のバスアービター１０９を除くすべてのブロックに対し、電源をＯＦＦにするための手続き、（シャットダウンプロセスと称す）を実行させる。このため、クロックジェネレータ２０８に対しては、ＣＬＫ１２０の論理レベルをＬｏｗにする。また同様にスキャナ／プリンタユニット１１３に対しても、スキャナ／プリンタＩ／Ｆを介してシャットダウンプロセスを実行させ、マスタ制御ブロック１１６内のバスアービター１０９及びＣＰＵ１１０を除くすべてのブロックの電源がＯＦＦにされる。その後ＣＰＵ１１０も低消費電力モードに移行する。この状態をスリープ状態と称する。
【００５８】
この様にして、システムバス１０４のバスｉｄｌｅがさらに続いた場合、クロックをＬｏｗの状態で止めて、スリープ状態とし、消費電力を抑えるようにしている。
【００５９】
スタンバイ状態、及びスリープ状態の解除は、アービトレーション回路２０２に対して、システムバス１０５の専有要求信号ＲＥＱ−Ｐ１、ＲＥＱ−Ｐ２、ＲＥＱ−Ｎ、ＲＥＱ−Ｆ、及びＲＥＱ−Ｍのいずれかが発行されることによって行われる。
【００６０】
この場合、解除信号２０６がＳＬＥＥＰ回路２０４に送られ、ＳＬＥＥＰ回路２０４では、スタンバイ状態の場合には、ＣＬＫＥＮ２０９をイネーブルにし、クロックジェネレータ２０８から直ちにクロックを供給できる様にする。また、スリープ状態の時には、ＣＬＫＥＮ２０９をイネーブルにし、かつ、ＳＬＥＥＰ１１９をディセーブルにする。
【００６１】
ＣＰＵ１１０は、ＳＬＥＥＰ１１９のディセーブルを通知されると、スリープモードから通常モードにもどり、各ブロックに電源の供給を開始し、初期化動作を行う。スキャナ／プリンタユニット１１３も同様に、ＳＬＥＥＰ１１８のディセーブルの通知から、電源が供給され、初期化が行われる。
【００６２】
ＣＰＵ１１０はすべての初期化が完了したことを検知すると、クロックジェネレータ２０８に対して、クロックを供給するように指示する（以上をスタートアッププログラムと称す）。
【００６３】
図３は、ＦＡＸユニット１０４の構成を説明するための概略ブロック図である。３０４はＣＰＵであり、ローカルバス３０２を介してＦＡＸユニット１０４全体の制御を行っている。ＦＡＸ回路３０３は、公衆回線１０７及びＴＥＬケーブル１０６を介した送受信を制御し、受信したデータから、メモリ３０５に対してメモリ制御バス３０６によって直接描画を行ったり、メモリ３０５に送られ格納されているスキャン画像を、圧縮し公衆回線１０７に送信する回路である。
【００６４】
メモリ３０５に格納されるスキャン画像は、スキャナ／プリンタユニット１１３からスキャナ／プリンタＩ／Ｆ１１２、及びシステムバス１０５を経由して、バスＩ／Ｆ３０８、及びローカルバス３０２を介してメモリ３０５に送られ格納される。３０１はハードディスクであり、メモリ３０５に展開、描画された画像を一時格納するために用いる。
【００６５】
送信先の電話番号の登録や、スタートボタンにより動作を開始させるなど、外部からの操作は、マスタ制御ブロック１１６に接続されている操作部１１５によって行うことができ、入力されたコマンドもしくは、データは、ローカルバス１１７を介してＣＰＵ１１０によって解釈され、ＤＭＡ１２１もしくは、ＣＰＵ１１０によって、スキャナ／プリンタＩ／Ｆ１１２、及びシステムバス１０５を通じて、ＦＡＸユニット１０４に転送される。
【００６６】
３０８はバスＩ／Ｆであり、システムバス１０５とローカルバス３０２とのインターフェースを行い、またその内部にはＤＭＡ制御回路３０７があり、ＣＰＵ３０４を介さず直接メモリ３０５から、システムバス１０５にデータを転送したり、受信したりできる。
【００６７】
３０６はＣＬＫ検知回路であり、ＣＬＫ１２０が供給されているかどうかを検知すると共に、その論理レベルがＨｉｇｈかＬｏｗかを検知できる。すなわち、マスタ制御ブロック１１６が、スリープ状態なのかスタンバイ状態なのかを、ＣＬＫ１２０の状態から検知できる。
【００６８】
ＦＡＸユニット１０４の動作について、例えば、ＦＡＸ文書を受信し、スキャナ／プリンタユニット１１３にてプリント出力を得る場合を例に挙げて以下に説明する。
【００６９】
ＦＡＸ回路３０３は、公衆回線１０７及びＴＥＬケーブル１０６を介してデータを受信するが、多くの場合は圧縮されたデータであるため、受信したデータから、データを伸長しながらメモリ制御バス３０６からメモリ３０５に直接画像を描画していく。同時に、ＣＰＵ３０４はローカルバス３０２内のＦＡＸ回路３０３からの割り込み信号により受信を検知し、バスＩ／Ｆ３０８に対してシステムバス１０５の専有要求信号ＲＥＱ−Ｆを発行させ、ＣＬＫ検知回路３０６にてＣＬＫ１２０の検知を行う。
【００７０】
例えば、ＣＬＫ１２０の論理レベルがＬｏｗであることが検知されると、マスタ制御ブロック１１６及び、スキャナ／プリンタユニット１１３がＳＬＥＥＰ状態であることがわかる。この時、すでに専有要求信号ＲＥＱ−Ｆを発行しているので、マスタ制御ブロック１１６及び、スキャナ／プリンタユニット１１３では前述のスタートアッププログラムが動作中である。
【００７１】
スタートアッププログラムは各ブロックの初期化等を行うため、スタートアッププログラムが終了するまでには時間がかかり、ＣＬＫ１２０が供給されるまで、メモリ３０５に展開された画像が転送待ち状態となるため、次の画像の受信の障害となってしまう。これを防ぐために、ＣＰＵ３０４は、ＣＬＫ検知回路３０６にてＣＬＫ１２０の論理レベルがＬｏｗであると検知すると、メモリ３０５から受信し展開した画像データを、一時ハードディスク３０１に待避させ、次の画像の受信の妨げとなるのを防止する。
【００７２】
ＣＬＫ検知回路３０６によってＣＬＫ１２０が供給されているのを検知すると、ＣＰＵ３０４は、バスＩ／Ｆ３０８内のＤＭＡ回路３０７に対し、転送コマンドを送り、バスアービター１０９からのバス専有専有許可信号ＧＮＴ−Ｆの発行を待つ。
【００７３】
バス専有専有許可信号ＧＮＴ−Ｆを受け取ると、ＤＭＡ回路３０７は、ハードディスク３０１に一時格納していた受信画像を、ローカルバス３０２、システムバス１０５を介して、スキャナ／プリンタＩ／Ｆ１１２に転送する。これにより、スキャナ／プリンタユニット１１３が画像を得る。
【００７４】
この様にＣＬＫ１２０の状態からマスタ制御ブロック１１６及び、スキャナ／プリンタユニット１１３のＳＬＥＥＰを状態を検知し、ＳＬＥＥＰ状態のときは、ＦＡＸユニット１０４の内部処理により受信画像を待避させ、次の画像の受信を行えるようにして、処理の効率化を図っている。
【００７５】
図４は、ネットワークＩ／Ｆ１０３の構成を説明するための概略ブロック図である。４０１はＣＰＵであり、ローカルバス４０７を介してネットワークＩ／Ｆ１０３全体の制御を司っている。４０２はネットワーク回路であり、ネットワーク１０８のプロトコルを自動制御する。４０３はメモリであり、ネットワーク１０８に接続される不図示のホストコンピュータより、ネットワーク回路４０２を介して転送されるＰＤＬファイルや画像データを一時格納するメモリである。
【００７６】
４０４はバスＩ／Ｆであり、システムバス１０５とローカルバス４０７のインターフェースを行い、またその内部にはＤＭＡ制御回路４０５があり、ＣＰＵ４０１を介さずメモリ４０３から直接、システムバス１０５に対してデータの送受信ができる。また、４０６はＣＬＫ検知回路であり、ＣＬＫ１２０が供給されているか検知し、また、論理レベルがＨｉｇｈか、Ｌｏｗか検知できる。
【００７７】
ネットワークＩ／Ｆ１０３の動作を、ネットワーク１０８に接続された外部のホストコンピュータから送信されたデータに従ってプリント出力を得る場合を例に挙げて説明する。
【００７８】
不図示のホストコンピュータは、編集されたドキュメントを、ページ記述言語で記述されたファイルに変換し、ネットワーク１０８を介して、ネットワークＩ／Ｆ１０３に転送する。
【００７９】
送付されたページ記述言語によって記述された画像ファイルは、ネットワーク回路４０２により受け取られ、ＣＰＵ４０１を介して、メモリ４０３に一時的に格納される。
【００８０】
ファイルを受け取ると、ＣＰＵ４０１は、バスＩ／Ｆ４０４に対し、システムバス１０５の専有要求信号ＲＥＱ−Ｎを発行させる。同時にＣＬＫ検知回路４０６にてＣＬＫ１２０の検知を行う。
【００８１】
例えば、ＣＬＫ１２０の論理レベルがＨｉｇｈであると検知された場合、マスタ制御ブロック１１６及び、スキャナ／プリンタユニット１１３がスタンバイ状態であることがわかる。
【００８２】
ＣＰＵ４０１は、バスＩ／Ｆ４０４内のＤＭＡ回路４０５に対し、転送コマンドを送り、メモリ４０３に一時格納していたページ記述言語によって記述された画像ファイルを、システムバス１０５を介して、例えば、ＰＤＬアクセラレータユニット１０１へ転送するよう準備する。
【００８３】
この時、すでに専有要求信号ＲＥＱ−Nを発行しているので、バスアービター１０９内のクロックジェネレータ２０８より直ちにＣＬＫ１２０の供給が開始される。また、バス専有許可信号ＧＮＴ−Ｎをバスアービター１０９より受け取るとＤＭＡ回路４０５は、転送を開始する。そして、ＰＤＬアクセラレータユニットにてインタプリタされた中間言語コードは、スキャナ／プリンタＩ／Ｆ１１２を介してスキャナ／プリンタユニット１１３に転送されてＲＡＭ１１８に格納される。
【００８４】
この様にＣＬＫ１２０の状態から、マスタ制御ブロック１１６及びスキャナ／プリンタユニット１１３の状態が検知され、スタンバイ状態であれば、システムバス１０５を用いたファイル転送を順次進めるようにして、処理の効率化を図っている。
【００８５】
この時、ページ記述言語で記述されたファイルを転送する転送先は、ＰＤＬアクセラレータユニット１０１もしくは、マスタ制御ブロック１１６の選択は、外部ホストコンピュータから転送されるドキュメントを構成するページ記述言語、もしくはＰＤＬユニット１０１、マスタ制御ブロック１１６内のＣＰＵ１１０のパフォーマンス情報、によって選択されるようにしてもよい。
【００８６】
例えば、あらかじめＰＤＬアクセラレータユニット１０１がＰＳ、マスタ制御ブロック内のＣＰＵ１１５が、ＬＩＰＳのインタプリタ制御プログラムで稼動可能の場合、例えば送られたドキュメントがＰＳで記述されているならば、自動的にＰＤＬアクセラレータユニット１０１が選択される。
【００８７】
これらの情報は、あらかじめ、ネットワークＩ／Ｆ１０３のＣＰＵ４０１にマスタ制御ブロック１１６内のＣＰＵ１１０より通知されており、ＣＰＵ４０１は、ページ記述言語を識別し、必要なパフォーマンスに合った方を選択しに適切に転送できるようになっている。
【００８８】
もちろんマスタ制御ブロック内のＣＰＵ１１５について、システム制御全体を司ることに専念させたい場合は、インタプリタ制御プログラムをダウンロードさせずにおくこともできる。
【００８９】
また、ＰＤＬアクセラレータユニット１０１、マスタ制御ブロック内ＣＰＵ１１５に対して、それぞれ違ったインタプリタ制御プログラムをダウンロードすることによって、展開できるページ記述言語を、随時変更できる。
【００９０】
例えば、ＬＩＰＳで記述されたドキュメントファイルが、多量にネットワーク１０８にて転送されてきた時には、ＣＰＵ４０１は、マスタ制御ブロック１１６内のＣＰＵ１１０へ通信によりコマンドを送り、ＰＳのインタプリタ制御プログラムがダウンロードされているＰＤＬアクセラレータユニット１０１に対し、ＬＩＰＳ制御プログラムをダウンロードするよう指示する。このようにすることにより、負荷を分散して処理することも可能であるので、多量のドキュメントファイルを短時間で処理できる。
【００９１】
また、ドキュメントをより速くプリントしたい場合は、パフォーマンスの高いＰＤＬアクセラレータユニットを選択し、必要な制御プログラムをダウンロードするようにコマンドを発行するようにしてもよい。
【００９２】
図５は、ＰＤＬアクセラレータユニット１０１の構成を説明するための概略ブロック図である。このユニットは、ページ記述言語を受け取り、それに基づいてインタプリタ処理を行い、中間言語コードを作成する機能を持っている。
【００９３】
ＣＰＵ５０１はローカルバス５０２を介して、ＰＤＬユニット全体の制御を司る。ＲＡＭ５０３は、ＣＰＵ５０１が実行する制御プログラムを格納している。ここに格納される制御プログラムによって、各種のページ記述言語に対応できる。例えば、ＰＳの制御プログラムが格納されていれば、ＰＳ用のＰＤＬアクセラレータユニットになり、ＬＩＰＳの制御プログラムが格納されていれば、ＬＩＰＳ用のＰＤＬアクセラレータユニットになる。
【００９４】
これらの制御プログラムは、システム全体の立ち上げ時に、初期の設定が決められており、プログラムコードがダウンロードされる。ユーザーのニーズに応じて選択できる。
【００９５】
また、ＰＤＬアクセラレータユニット、資源に関する情報、例えば、搭載されているＣＰＵのパフォーマンスや、メモリの容量等をコンフィギュレーション情報等から入手することにより、画像の展開に関する能力をあらかじめ知ることができ、その情報に基づいてダウンロードする制御プログラムを選択するようにしてもよい。
【００９６】
例えば、ネットワーク１０８に接続されるユーザーから送信されるファイルが、ページ記述言語としてＰＳを使用したものが多い場合、能力の高いＰＤＬアクセラレータユニット１０１にＰＳのインタプリタ制御プログラムをダウンロードし、マスタ制御ブロックのＣＰＵ１１０に対しては、ＬＩＰＳのインタプリタ制御プログラム稼動するようにメモリ１１８にダウンロードすることによって、利用する多い方のユーザーの便宜を図ることができる。
【００９７】
またさらに、上述したように、それそれ、別のプログラムコードがダウンロードされている場合、例えば、ＬＩＰＳで記述されたドキュメントファイルが、多量にネットワーク１０８にて転送されてきた時には、ＰＤＬアクセラレータユニット１０１に対して、ＬＩＰＳのインタプリタ制御プログラムコードをダウンロードするよう指示して、両方のＣＰＵでＬＩＰＳのドキュメントファイルを処理できるようにすることによって、画像の展開のパフォーマンスを上げることもできる。インタプリタ処理が、プリント動作におけるパフォーマンスを支配しているため、２つのＣＰＵを用いてインタプリタ処理を行えば有利である。一方本実施例では、レンダリング処理は、高速なハードウェアで行っているためパフォーマンスには、影響はない。もちろんレンダリング処理もＣＰＵによるソフトウェア処理でもかまわない。
【００９８】
また、ドキュメントをプリントしようとするユーザーからのコマンドにより、ＰＤＬアクセラレータユニット、もしくは、マスタ制御ブロック１１６内のＣＰＵ１１５を選択し、必要な制御プログラムをダウンロードすることができる。
【００９９】
これらのプログラムコードは、マスタ制御ブロック１１６内のハードディスク１１１にあらかじめ格納されており、マスタ制御ブロック１１６内のＣＰＵ１１０の制御に基づいてＤＭＡ１２１によってハードディスク１１１から、ローカルバス１１７、システムバス１０５を経由し、バスＩ／Ｆ５０７及びローカルバス５０２を介して、ＲＡＭ５０３に転送される。
【０１００】
ワークＲＡＭ５０５は、各種のパラメータ情報を格納すると共に、ＣＰＵ５０１のワークエリアとしても機能する。
【０１０１】
５０７は、バスＩ／Ｆであり、システムバス１０５とローカルバス５０２のインターフェースを行い、またその内部にはＤＭＡ制御回路５０９があり、ＣＰＵ５０１を介さず直接メモリワークＲＡＭ５０５、もしくはハードディスクユニット５１１から、システムバス１０５にデータを送受信できる。また、ＣＰＵ５０１に対するリセット制御信号ＲＥＳ５１１を出力している。
【０１０２】
このリセット制御信号ＲＥＳ５１１は、マスタ制御ブロック１１６内のＣＰＵ１１０からのコマンドによって、バスＩ／Ｆ５０７より出力される。リセット制御信号ＲＥＳ５１１が、ＣＰＵ５０１のリセット端子に入力されると、ＣＰＵ５０１はリセットされ、リセット制御信号ＲＥＳ５１１がイネーブル状態の間は、ＣＰＵはホールド状態となり、ローカルバス５０２に接続される信号は、ハイインピーダンス状態となる。
【０１０３】
ＣＰＵ１１０は、制御プログラムダウンロード時に、コマンドによってリセット制御信号ＲＥＳ５１１をイネーブルにして、ＲＡＭ５０３に必要な制御プログラムをローカルバス５０２を介してダウンロードする。
【０１０４】
そして、ダウンロード後に、コマンドによってリセット制御信号ＲＥＳ５１１をイネーブルからディセーブルにし、ＣＰＵ５０１のリセットを解除してＣＰＵ５０１をスタートさせる。
【０１０５】
５０８はＣＬＫ検知回路であり、ＣＬＫ１２０が供給されているかどうか、及びその論理レベルがＨｉｇｈかＬｏｗかを検知できる。
【０１０６】
ＰＤＬアクセラレータユニット１０１の動作について説明する。ネットワークＩ／Ｆ１０３によって受け取られたページ記述言語によって記述されたドキュメントファイルは、前述したように、システムバス１０５、バスＩ／Ｆ５０７を経由して転送され、ワークＲＡＭ５０５に一時格納される。
【０１０７】
ＣＰＵ５０１は、ワークＲＡＭ５０５に一時格納されているページ記述言語データを参照し、インタプリタ処理によって、マスタ制御ブロック１１６内のＡＳＩＣ１３０が利用できる中間言語に変換して、再びワークＲＡＭ５０５に順次格納していく。
【０１０８】
ＣＰＵ５０１は、中間言語への変換処理が終了すると、バスＩ／Ｆ５０７に対し、システムバス１０５の専有要求信号ＲＥＱ−Ｐを発行させる。同時にＣＬＫ検知回路５０８によってＣＬＫ１２０の状態を検知する。
【０１０９】
この時、例えば、ＣＬＫ１２０の論理レベルがＨｉｇｈであると検知されると、マスタ制御ブロック１１６及びスキャナ／プリンタユニット１１３がスタンバイ状態であることがわかる。この場合ＣＰＵ５０１は、バスＩ／Ｆ５０７内のＤＭＡ回路５０９に対して転送コマンドを送り、ワークＲＡＭ５０５に格納される処理済みの中間言語コードを、システムバス１０５を介して、スキャナ／プリンタＩ／Ｆ１１２へ転送するよう準備をする。
【０１１０】
この時、すでに専有要求信号ＲＥＱ−Ｐを発行しているので、バスアービター１０９内のクロックジェネレータ２０８より直ちにＣＬＫ１２０の供給が開始される。また、ＤＭＡ回路５０９は、バス専有許可信号ＧＮＴ−Ｐをバスアービター１０９より受け取ると、スキャナ／プリンタＩ／Ｆ１１２への転送を開始する。
【０１１１】
そして、スキャナ／プリンタＩ／Ｆ１１２は受信した中間言語コードを、ＲＡＭ１１８に転送格納する。
【０１１２】
この様に、ＣＬＫ１２０の状態からマスタ制御ブロック１１６及びスキャナ／プリンタユニット１１３がスタンバイ状態であることが検知された場合、システムバス１０５を用いたファイル転送を進める。
【０１１３】
ＣＰＵ１１０は、中間言語コードの転送が終了した通知を、ＤＭＡ５０９からスキャナプリンタI/F１１２を介して、例えば図示はしないが、ローカルバス１１７内の割り込み信号によって受けると、ＡＳＩＣ１３０にレンダリングコマンドを送り、ＡＳＩＣ１３０は、ＲＡＭ１１８に格納されている中間言語コードを参照しながら高速に画像メモリ１３１へラスタイメージの画像の展開を行う。
【０１１４】
ＣＰＵ１１０0は、ＡＳＩＣ１３０からの展開終了割り込み信号（ローカルバス１１７に含まれる）を受けると、ＤＭＡ１２１を起動し、ＡＳＩＣ１３０を介して画像メモリ１３１内の画像を、スキャナ／プリンタ１１３に転送し、画像の記録が行われる。
【０１１５】
一方、ＣＬＫ１２０の論理レベルから、マスタ制御ブロック１１６及びスキャナ／プリンタユニット１１３がスリープ状態であることを検知した場合は、ワークＲＡＭ５０５容量がいっぱいになるまでインタプリタ処理を進め、スリープ状態が解除され次第、インタプリタされた中間コードデータを順次転送する。このようにして、処理の効率化を行っている。
【０１１６】
以上詳述したように、本実施形態によれば、インタプリタ処理を装着されるアクセラレータで行い、レンダリングを複合機本体で行うようにして、装着されるアクセラレータと複合機本体との間で負荷を分散することによって、常に、高い性能で、よりコストの低いアクセラレータを提供することができる。
【０１１７】
すなわち、必要以上の高性能のCPUの活用や、レンダリング画像を格納するイメージメモリの拡大、レンダリングプログラムによるROMの拡大などによる高いコストの発生を抑制できる。
【図面の簡単な説明】
【０１１８】
【図１】本発明の実施形態としての複合機の全体構成を示す、概略ブロック図。
【図２】バスアービター１０９の内部ブロック図。
【図３】ＦＡＸユニット１０４の構成を説明するための概略ブロック図。
【図４】ネットワークＩ／Ｆ１０３の構成を説明するための概略ブロック図。
【図５】ＰＤＬアクセラレータユニット１０１の構成を説明するための概略ブロック図。
【図１】
2005161756.tif 000003
【図２】
2005161756.tif 000004
【図３】
2005161756.tif 000005
【図４】
2005161756.tif 000006
【図５】
2005161756.tif 000007