(57)【特許請求の範囲】
【請求項１】
ホストから受信した，印刷すべき解像度を示すジョブ制御コマンドを含む入力データに基づき印刷を行うプリンタであって、
所定形式の出力データに基づき印刷用紙上に印刷を行う印刷機構と、
ＣＰＵと、
前記入力データを前記出力データに変換する処理を前記ＣＰＵに実行させるための印刷処理プログラムを記憶したＲＯＭと、
前記ＲＯＭよりも高速なアクセスが可能な第２メモリと、
前記ＲＯＭ上の，前記印刷処理プログラムが記憶されている記憶領域の物理アドレス群を、予め定められた連続した論理アドレス群であるプログラム用アドレス群に対して割り当てる第１割当処理と、前記ＲＯＭから前記第２メモリに前記印刷処理プログラムをコピーし、前記印刷処理プログラムがコピーされた前記第２メモリの記憶領域の物理アドレス群を、前記プログラム用論理アドレス群に対して割り当てる第２割当処理とを実行することが可能なアドレス変換手段と、
前記入力データが受信されたときに機能するアドレス変換制御手段であって、前記入力データに含まれる前記ジョブ制御コマンドが示す解像度が所定解像度未満であり，かつ，前記印刷処理プログラムが前記ＲＯＭ上で実行される状態にある場合には、前記アドレス変換手段に前記第２割当処理を実行させ、前記入力データに含まれる前記ジョブ制御コマンドが示す解像度が所定解像度以上であり，かつ，前記印刷処理プログラムが前記第２メモリ上で実行される状態にある場合には、前記アドレス変換手段に前記第１割当処理を実行させるアドレス変換制御手段
とを有することを特徴とするプリンタ。
【請求項２】
前記印刷処理プログラムが、複数の印刷処理プログラムモジュールからなるプログラムであり、
前記アドレス変換手段が実行可能な前記第１割当処理，前記第２割当処理の双方が、前記複数の印刷処理プログラムモジュールのそれぞれについて、その印刷処理プログラムモジュール用の論理アドレス群に対して、前記ＲＯＭ或いは前記第２メモリの物理アドレス群を割り当てることが可能な処理であり、
前記アドレス変換制御手段が、前記印刷処理プログラムモジュール単位で、前記アドレス変換手段に前記第１割当処理或いは前記第２割当処理を実行させることが可能な手段である
ことを特徴とする請求項１記載のプリンタ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プリンタの制御装置などに適したＲＯＭ、ＲＡＭさらにはＣＰＵに内蔵された高速ＲＡＭを用いて高速で処理を実行可能な情報処理装置に関するものである。
【０００２】
【従来の技術】
図９に示すように、ページプリンタの画像処理部を構成する情報処理装置などにおいては、ＣＰＵ１１の実行用のプログラム２２がＲＯＭ１２に収納されている。このような情報処理装置は、電源が投入されると、図１０に示すように、まず、ＲＯＭ１２に収納された初期設定プログラム（ＩＰＬ）２１がＣＰＵ１１にローディングされ、ステップＳＴ１において、図示されていないが種々のインタフェースなどのハードウェアの初期設定を行う。そして、ステップＳＴ２において、ＲＯＭ１２の印刷処理プログラム２２の先頭のアドレスにジャンプし、ステップＳＴ３で印刷処理プログラム２２のステートメントに従って印刷処理を開始する。
【０００３】
図１１に、ＲＯＭ１２などが割りつけられたＣＰＵ１１のメモリ空間９の一例を示してある。アドレス「００００００００」からシステムメモリ（メインメモリ）として用いられるＲＡＭ１４のアドレス空間が割りつけられており、その上位のアドレス「１Ｆ８０００００」からフォントのビットマップデータを収納したＲＯＭ１３のアドレス空間が割りつけられ、さらに、アドレス「１ＦＣ０００００」からプログラムを収納したＲＯＭ１２のアドレス空間が割りつけられている。そして、ＣＰＵ１１がそれぞれのメモリアドレスにアクセスすると、メモリコントローラ１５に設けられたデコーダ１６がアドレスをデコードし、そのアドレスに割り当てられたＲＯＭ１２、１３あるいはＲＡＭ１４を選択するチップセレクト信号を各チップに供給し、ＣＰＵ１１と各チップとの間でデータ転送ができるようにしている。
【０００４】
なお、本明細書に示された、あるいは以下において示される全てのアドレス値は例示に過ぎず、限定的に解釈されないことはもちろんである。
【０００５】
ＲＯＭ１２が割りつけられた先頭のアドレス「１ＦＣ０００００」はＩＰＬ２１の先頭のアドレスとなっており、電源が投入されるとこのアドレスに記載された命令を解釈してＣＰＵ１１が動作を開始する。そして、ハードウェアの初期設定が終了すると、印刷処理用のプログラム２２の先頭のアドレス「１ＦＤ０００００」にジャンプし、以降においては、この印刷処理用のプログラム（実行プログラム）２２に従ってＣＰＵ１１が動作する。
【０００６】
【発明が解決しようとする課題】
ページ印刷を行うプリンタなどでは、取り扱う情報量が大きいので、ホスト側のパソコンなどから供給された入力データを解釈し、印刷するための中間コードや印刷機構に供給する出力データに変換する処理に要する時間が長くなる。そこで、処理装置全体の処理スピードを向上することが重要になっている。処理スピードを向上するには、ＣＰＵの処理能力を上げること、およびＣＰＵとメモリ間のデータ転送スピードを向上することが有効である。しかしながら、通常のＲＯＭは比較的低速でしかアクセスできず、このＲＯＭとのデータ転送速度で処理装置全体の処理速度が飽和してしまう。
【０００７】
近年、処理速度の速いＣＰＵが比較的低価格で入手できるようになっているが、ＲＯＭとの間でデータ転送があるためにＣＰＵの動作周波数を、例えば２倍に上げても、処理装置全体の処理速度を２倍にすることはできない。このため、転送速度のできるだけ速いＲＯＭを用いてシステムを構成することが望ましが、高速のＲＯＭは、現状では大容量のものはなく、また、コストが非常に高い。ページプリンタの印刷処理に必要なプログラムを収納するためには記憶容量の大きなＲＯＭが必要なので、現実的には高速のＲＯＭを用いてシステムを構成することは非常に難しい。
【０００８】
ＲＯＭに対しＲＡＭは高速動作が可能であり、大容量のものが比較的低価格で入手できる。従って、ＲＯＭ１２に収納された印刷処理プログラム２２を、電源投入時にＲＡＭ１４にコピーして実行することが考えられる。しかしながら、ＲＡＭ１４に印刷処理プログラム２２をコピーすると、メモリマップ９のシステムメモリ領域として用いられるＲＡＭ空間の一部が印刷処理プログラム２２で専有されるので、画像処理のために使用できるメモリ容量は削減されることになる。このため、カラープリントや高解像度のプリント用のデータ処理時間がかえって長くなってしまう可能性がある。
【０００９】
ＲＯＭ上の印刷処理プログラムと、ＲＡＭにコピーされた印刷処理プログラムをＲＡＭの使用状況に合わせて使い分けることが考えられているが、ＲＯＭとＲＡＭではメモリ空間上のアドレスが異なるので、別々のプログラムが必要となる。従って、ＲＯＭに、ＲＯＭ上で実行するプログラムと、ＲＡＭにコピーして実行するプログラムの２つのプログラムを収納しておく必要があるので大容量のＲＯＭが必要となる。また、２つのプログラムを開発およびメンテナンスする必要があるのでプログラム開発費用が増大するなどの問題がある。
【００１０】
さらに、近年、２−３ＭＢ程度のＤＲＡＭをＣＰＵコアと共に内蔵したＣＰＵをプリンタの制御システムとして用いることが検討されている。ＣＰＵに内蔵されるＤＲＡＭの記憶容量は上記に限定されないが、現状ではＣＰＵチップのサイズおよびコストの面から記憶容量の極端に大きなＤＲＡＭをＣＰＵに内蔵することは困難である。しかしながら、このＣＰＵに内蔵されたＤＲＡＭにプログラムをコピーして実行すればチップ間のインタフェースあるいはチップを接続するためのバスのアクセススピードなどの制限がないため処理速度は最も速くすることができる。したがって、このＣＰＵに内蔵された高速のＲＡＭにプログラムをコピーできれば最も早くプログラムを実行できるが、上記のようにアドレスの問題がある。
【００１１】
また、処理によっては作業領域をＣＰＵに内蔵された高速のＲＡＭに設定した方がプログラムをコピーして実行するよりも速くなる可能性があるが、アドレスの設定が更に複雑になり、そのための処理に時間がかかる。さらに、処理速度の速いメモリは様々な要因によって高価である。このため、全ての処理に対し、プログラムの記憶領域および作業領域として十分なメモリ容量を確保することはオーバースペックであり、大幅なコストアップとなる。
【００１２】
そこで、本発明においては、共通の実行プログラムを実行可能なＲＯＭおよびＲＡＭのような複数の種類の異なるメモリを有する情報処理装置において、適当なメモリ上でプログラムを実行したり、あるいは、作業領域を設定することができる情報処理装置を提供することを目的としている。そして、ＣＰＵに外部接続されたＲＡＭ、あるいはＣＰＵに内蔵された高速ＲＡＭのメモリ空間の割当てを最適化して効率的に使用し、装置全体としての処理速度を向上できる情報処理装置および情報処理装置の制御方法を提供することを目的としている。
【００１３】
また、メモリの領域をフレキシブルに設定できるようにすることで、画像情報のような大量のデータ処理を高速で行える情報処理装置を実現し、このような情報処理装置を用いることにより印刷速度の速いプリンタを提供することも本発明の目的としている。さらに、プログラムなどを複数のメモリ上で切り換えて実行できる情報処理装置の制御方法および、そのような処理を実行可能なプログラムが収納された記録媒体を提供することも本発明の目的としている。
【００１４】
【課題を解決するための手段】
このため、本発明においては、速度の異なる複数のメモリを有するプリンタを、それら複数メモリの中から，処理速度が向上するように選択されたメモリ上で印刷処理プログラムが実行され、いずれメモリ上で印刷処理プログラムが実行される場合にも当該印刷処理プログラムの各部分が同じ範囲の論理アドレス群（プログラム用論理アドレス群）にてアクセス可能な装置として構成しておく。
【００２６】
なお、本発明を実現するに際しては、ＣＰＵの論理アドレスの変換先の制御を、ＲＯＭおよびＲＡＭに対するアクセス制御が可能なメモリコントローラのアドレスデコード機能を用いて行うことや、ＴＬＢ（Translation  Lookaside  Buffer）などのＣＰＵメモリマネージメントユニット（ＭＭＵ）を用いて行うことが、可能である。
【００２８】
【発明の実施の形態】
（第１の実施の形態）
以下に図面を参照しながら本発明の第１の実施の形態を説明する。図１に、本発明に係るページ印刷が可能なレーザータイプなどのプリンタ１の概略構成を示してある。このプリンタ１は、パソコンなどのホスト側から印刷用の入力データを受信して印刷機構（プリンタエンジン）で印刷可能な構成の出力データに変換する画像処理部１０と、出力データに基づき印刷用紙上に印刷を行う印刷機構２とを備えている。画像処理部１０は、ホストから入力データを受信する入力インタフェース回路部１９と、入力データを解釈し画像作成用の出力データに変換する印刷処理プログラム２２およびＩＰＬ２１などが収納されたプログラム収納用のＲＯＭ１２と、入力データを実際に印刷するためのデータに変換するためのフォントのビットマップデータなどが収納されたフォント収納用のＲＯＭ１３を備えており、メモリコントローラ１５とメモリバス１７を介して接続されている。
【００２９】
また、画像処理部１０は、変換処理の作業領域となり、出力データあるいは入力データから出力データに変換される中間データなどが格納される同期型のＤＲＡＭ（ＳＤＲＡＭ）１４を備えており、このＳＤＲＡＭ１４と、ＣＰＵ１１およびメモリコントローラ１５が高速のＣＰＵバス１８によって接続されている。
【００３０】
画像処理部１０では、ホストから入力された入力データが画像作成用の出力データに変換され、その出力データがメモリバス１７に接続されたビデオインタフェース回路部２０を介してプリンタエンジン２に供給されてページ毎の印刷が行われる。ビデオインタフェース回路部２０は、ＤＭＡ転送された出力データをいったん格納するＦＩＦＯメモリと、このＦＩＦＯメモリからパラレル出力されるデータをシリアル変換するシフトレジスタとを備えており、印刷機構２へはラスタ方向にシリアル化された出力データが転送されるようになっている。また、このビデオインタフェース回路２０を通して印刷機構２とコマンド、ステータスなどのコントロール信号を交換できるようになっており、画像処理部１０のＣＰＵ１１がプリンタ１全体を制御できるようになっている。
【００３１】
図２に、ＣＰＵ１１のメモリマップ５を示してある。本例のＣＰＵ１１のメモリ空間５には、アドレス「１０００００００」から印刷処理プログラム２２を実行するための専用の空間であるプログラム空間６が設定されている。このため、本例の画像処理部１０においては、電源投入時にＩＰＬ２１が実行されてハードウェアの初期設定が終了すると、このプログラム空間６の先頭アドレスにジャンプしてプログラム空間６のアドレスに基づいてＣＰＵ１１が処理を行うようになっている。
【００３２】
プログラム空間６のアドレスは、メモリコントローラ１５のデコーダ１６によってデコードされ、ＲＯＭ１２の印刷処理プログラム２２のアドレス、または、ＳＤＲＡＭ１４に印刷処理プログラム２２が展開されたアドレスのいずれか一方を選択して変換できるようになっている。従って、デコーダ１６において、ＣＰＵ１１の論理メモリ空間のアドレスであるプログラム空間６のアドレスが、ＲＯＭ１２の物理アドレスに変換されるように設定されていれば、ＣＰＵ１１は、ＲＯＭ１２に展開されたプログラム２２によって動作する。一方、デコーダ１６が、プログラム空間６のアドレスをＳＤＲＡＭ１４の物理アドレスに変換するように設定されていれば、ＣＰＵ１１は、ＳＤＲＡＭ１４に展開されたプログラム２２’によって動作する。
【００３３】
いずれも場合であっても、ＣＰＵ１１が印刷処理プログラム２２を実行する場合はプログラム空間６のアドレスに基づいて処理が行われるので、ＲＯＭ１２およびＳＤＲＡＭ１４に同一の印刷処理プログラム２２を展開し、ＣＰＵ１１を稼働させることができる。
【００３４】
このように本例においては、ＣＰＵ１１のメモリ空間５に仮想的なプログラムを実行する空間６を予め設定しておき、そのプログラム空間６のアドレスの変換先を変更できるようにすることにより、プログラムを記録した第１のメモリに相当するＲＯＭ１２、およびこのＲＯＭ１２より高速の第２のメモリに相当するＲＡＭ１４という異なったメモリの異なった物理アドレスに展開された同一のプログラムを実行することができるようにしている。従って、広い作業領域を確保したいときはＲＯＭ１２を選択してプログラムを実行することにより、ＲＡＭ１４をプログラムメモリとしてリザーブされることから開放することができる。一方、ＲＡＭ１４の容量が十分にある場合は、ＲＯＭ１２の印刷処理プログラム２２を高速でＣＰＵ１１とデータ交換できるＲＡＭ１４に展開して、プログラムの実行速度を向上することができる。
【００３５】
また、本例の画像処理部１０はＲＯＭ１２およびＲＡＭ１４で同一の共通したプログラム２２を実行できるので、プログラム２２を提供する側はＲＯＭ用あるいはＲＡＭ用といった異なったプログラムを開発する必要がない。このため、プログラム開発期間を短縮でき、また、プログラムのメンテナンスも容易となる。さらに、ＲＯＭおよびＲＡＭ上で実行可能な共用のプログラムを収納したＲＯＭを提供すれば良いので、プログラム収納用のＲＯＭの容量も少なくて済む。
【００３６】
図３に、プログラム空間のアドレス変換先を変更可能な異なった例を示してある。図２においては、ＣＰＵ１１の外部に設けられたメモリコントローラ１５のデコーダ１６のアドレス変換機能を用いてＲＯＭ１２とＲＡＭ１４に切り換えて（チップセレクト信号で切り換えて）アクセスできるようにしている。これに対し、図３においては、ＣＰＵ１１が内蔵するアドレス変換器（ＴＬＢ）３の機能を用いてＣＰＵ１１の仮想アドレス空間７に設定された仮想プログラム空間６のアドレスの割りつけ先を変更できるようにしている。ＣＰＵ１１のアドレス変換器３は、仮想アドレス空間７の論理アドレスの物理アドレス空間８に対する割りつけを設定する機能を有するもので、割りつけ先を切り換えることにより上記と同様にアドレス変換機能を果たすことができる。
【００３７】
本例では、仮想メモリ空間７のアドレス「２０００００００」から仮想プログラム空間６を設置してあり、この空間のアドレスをＴＬＢ３が、ＲＯＭ１２に印刷処理プログラム２２が展開された物理アドレス「１ＦＤ０００００」から始まる空間のアドレスと、ＳＤＲＡＭ１４に印刷処理プログラム２２が展開される物理アドレス「０１００００００」から始まる空間のいずれかを選択して変換できるようにしてある。このため、画像処理部１０の環境条件あるいは実行ジョブの条件によって変換先を選択できるようになっている。ＣＰＵ１１に内蔵されたアドレス変換器（ＴＬＢ）３を用いてプログラム空間６のアドレス変換先を設定できるようにすると、外部回路を使用しないで、ＣＰＵ１１の判断だけで実行するプログラムの収納先を選択できる。
【００３８】
さらに、本例では、プログラム２２が複数のプログラムモジュール２２ａから２２ｆ、例えば、セイコーエプソン社のＥＳＣ／Ｐ言語、あるいはヒューレットパッカード社のＰＣＬ言語などの言語毎のモジュール、カラーイメージを描画する描画用のモジュールなどの集合であり、ＳＤＲＡＭ１４には各々のプログラムモジュール単位でプログラムをコピーし、プログラム空間６のアドレス変更先を設定できるようにしている。ＴＬＢ３を用いてアドレスを変換してプログラムを実行している際に、該当するアドレスのプログラムがＳＤＲＡＭ１４にコピーされていないと、その部分だけＲＯＭ１２で実行したり、あるいは、そのアドレスを含む適当なＲＯＭ１２の領域を新たにＳＤＲＡＭ１４にコピーしてプログラムを実行することになる。プログラム実行中に新たな部分をコピーすると、コピーを実行するための時間がオーバヘッドとなって処理時間が延長され、処理速度が低下してしまう。
【００３９】
これに対し、プログラムモジュール単位で予めＳＤＲＡＭ１４にプログラムをコピーし、１つのプログラムモジュール２２ｂがＳＤＲＡＭ１４に存在すれば、そのプログラムを実行中はＳＤＲＡＭ１４のプログラムを入れ替えるページング動作が発生しない。このため、コピー処理のために処理時間が費やされるのを防止できる。特に、プリンタ１においては、通常のジョブはジョブ単位で考えると同一の言語、カラーあるいはモノクロなどの同一の条件で実行されるので、言語用のプログラムモジュールが入れ替わるようなことはない。したがって、プログラムモジュール単位でＲＡＭ１４にコピーすることによりさらに処理速度を速くすることができる。
【００４０】
図４に、プログラム空間６のアドレス変換先をプリンタ１の起動時に設定する処理を示してある。まず、ステップＳＴ１１で電源が投入されると、ステップＳＴ１２でＲＯＭ１２に収納されたＩＰＬ２１が実行されインタフェース回路などのハードウェアの初期設定が行われる。次に、ステップＳＴ１３で、ＲＯＭ１２に格納された印刷処理プログラム（実行プログラム）２２が圧縮状態で収納されているか否かが判断され、圧縮状態ではなくＲＯＭ１２に収納された状態のプログラム２２を用いてＣＰＵ１１が稼働できる場合はステップＳＴ１４でＳＤＲＡＭ１４の実装状態などをチェックする。
【００４１】
このステップＳＴ１４の容量チェックにおいては、プリンタ１に実装されているＳＤＲＡＭモジュールの容量、カラープリントを行うか否か、印刷の解像度など、プリンタ１の物理的な環境および操作パネルや初期設定アプリケーションを用いて環境設定されている条件のうち、印刷ジョブを実行する際のシステムメモリの使用状態に係わる項目がチェックされる。本例のプリンタ１ではＳＤＲＡＭモジュールが設定されるようになっているが、ＤＩＭＭモジュールあるいはＳＩＭＭモジュールが設定されるプリンタであっても同様の判断が可能である。
【００４２】
このステップＳＴ１４においては、ＩＰＬ２１にしたがってＣＰＵ１１がＲＯＭ１２のヘッダーを読み取り、その内容を解釈し、ＲＯＭ１２に収納されたプログラムを実行するためのＲＡＭの裕度を判断する。例えば、ＲＯＭ１２のヘッダーにプログラムの全コードサイズが４ＭＢであり、これらの内、最も良く使用されるフォントの発生、管理モジュール、さらにＥＳＣ／Ｐａｇｅなどの言語処理モジュールの合計が２ＭＢであり、これらのプログラムの容量に加えて、プログラムをコピーした際のＲＡＭの残量が１４ＭＢ必要であるといった情報が記載されている。したがって、ＣＰＵ１１はこれらの情報を解釈し、３２ＭＢといった大容量のＲＡＭが用意されていれば、コード化された全プログラムコードをコピーする。
【００４３】
一方、１６ＭＢ程度のＲＡＭが用意されている場合は、最も頻繁に利用されるプログラムモジュール２ＭＢをコピーしても１４ＭＢの作業領域をＲＡＭに確保できるので、２ＭＢ分の最も使用されるプログラムモジュールをＲＡＭにコピーする。さらに、４ＭＢ程度のＲＡＭが用意されている場合は、プログラムをコピーすると作業領域が不足するので、プログラムをＲＡＭにコピーしないでＲＯＭ１２でプログラムを実行する。
【００４４】
このようにＲＯＭ１２のヘッダーにＲＡＭとして必要な容量を判断する情報、さらには、ＲＡＭにプログラムがコピーできなかったときにＲＯＭで実行するのか、あるいはサービスコールを出すのかなどの指示を収納しておくと、ＩＰＬ２１にしたがってＣＰＵ１１がその内容を解釈して処理を行うので、ＩＰＬ２１を汎用的に作成することができる。したがって、プログラムが収納されたＲＯＭ１２を差し替えるだけで収納されたプログラムに適合した処理を行うことが可能となる。
【００４５】
上述したようにＲＯＭ１２のヘッダー情報に基づきＲＡＭの容量チェックを行った結果、ステップＳＴ１５において、ＲＡＭの容量に余裕が十分にないと判断された場合は、ステップＳＴ１６において、プログラム空間６のアドレス変換先がＲＯＭ１２に設定される。これによって、ＣＰＵ１１は、ＲＯＭ１２に展開されたプログラム２２によって動作し、ＲＡＭ１４のメモリ空間はプログラムメモリから開放されシステムメモリとして広く利用される。
【００４６】
一方、ステップＳＴ１５において、ＲＡＭの容量に余裕が十分にあると判断された場合は、ステップＳＴ１７においてプログラム空間６のアドレス変換先がＲＡＭ１４に設定される。また、ＲＯＭ１２にプログラム２２が圧縮された状態で収納されている場合はＲＡＭ１４に伸長して展開する必要があるので、ＲＡＭの容量チェックは行わずにプログラム空間６のアドレス変換先はＲＡＭ１４に設定される。次に、ステップＳＴ１８でＲＯＭ１２にプログラム２２が圧縮されているか否かが確認され、圧縮されている場合はステップＳＴ１９で伸長した後にＲＡＭ１４の所定のアドレス空間に保存される。一方、ＲＯＭ１２で実行可能な状態でプログラム２２が提供されている場合は、ステップＳＴ２０でＲＯＭ１２からＲＡＭ１４にプログラム２２がコピーされる。
【００４７】
これらのステップでプログラム空間６のアドレス変換先が設定され、ＲＡＭ１４が選択された場合はＲＡＭ１４の所定の空間にプログラム２２が展開されているので、ステップＳＴ２１でプログラム空間６の先頭にジャンプする。そして、ステップＳＴ２２でプログラム空間６を用いてＣＰＵ１１が印刷処理を実行する。
【００４８】
図５に、プログラム空間６のアドレス変換先をプリンタ１で実行する各々のジョブに先行して設定する処理を示してある。プリンタ１で印刷処理を行うためにホスト側から供給される入力データ５０は、図６に示すようにジョブ制御コマンド５１と、それに続く印刷用のデータ５２から構成されている。ジョブ制御コマンド５１は、ジョブ言語の定義５１ａ、印刷データ５２の記述言語の定義５１ｂなどに加えて、解像度５１ｃ、カラー印刷の要否５１ｄなどの印刷処理を実行する際のメモリの使用状態が予測できる情報が記載されている。このため、各々のジョブを開始するのに先立ってこのジョブ制御コマンド５１を解釈することによってジョブ中のＲＡＭの余裕度が判断できるので、ジョブ毎にＲＯＭ１２上でプログラム２２を実行するか、ＲＡＭ１４にコピーしてプログラム２２を実行するかを判断することができる。
【００４９】
さらに、ジョブ制御コマンド５１を解釈することにより、そのジョブで使用される言語、あるいはカラー印刷の要否などが分かるので、プログラム２２を構成する複数のプログラムモジュールのうち、それらの処理に必要なプログラムモジュールが判明する。したがって、プログラム２２をすべてＲＡＭ１４にコピーする代わりに、そのジョブに必要な１つまたは幾つかのプログラムモジュールに限定してＲＡＭ１４にコピーし、ＲＡＭ１４の記憶領域をさらに有効に活用することができる。また、プログラムモジュール単位でコピーすることによりページング動作によるオーバヘッドも防止できることは上述したとおりである。
【００５０】
まず、ステップＳＴ３１で、ジョブ制御コマンド５１がホストから送信されてくるのを待ち、入力データ５０が送信されると、ステップＳＴ３２で先行するジョブ制御コマンド５１を解釈する。そして、ステップＳＴ３３でジョブ中のＲＡＭの容量の裕度をチェックする。本例では、ステップＳＴ３３において、ステップＳＴ３４でカラー印刷を行うか否かを判断する。カラー印刷を行う場合は、画像処理部１０で処理するデータ量が多いのでシステムメモリとして使用できるアドレス空間が広い方が処理スピードが向上する。従って、ステップＳＴ３６で現状のプログラム空間６のアドレス変換先を判断し、プログラム空間６のアドレス変換先がＲＡＭ１４になっている場合は、ステップＳＴ３７でプログラム空間６のアドレス変換先をＲＯＭ１２に変更する。
【００５１】
一方、カラー印刷ではなくモノクロ印刷を行う場合でも高解像度の印刷を行う場合には処理するデータ量が多い。そこで、ステップＳＴ３５で解像度を判断し、例えば、解像度が６００ＤＰＩ以上の場合は、ＲＯＭ１２でプログラムを実行しＲＡＭ１４にプログラム領域を設定しないようにすることが望ましい。このため、上記と同様にステップＳＴ３７でプログラム空間６のアドレス変換先をＲＯＭ１２に設定する。
【００５２】
モノクロ印刷で解像度も３００ＤＰＩ程度とそれほど高くない場合は、システムメモリとして利用されるＲＡＭに余裕があるので、データ転送速度の速いＲＡＭ１４でプログラムを実行した方が処理速度が速くなる。そこで、ジョブ制御コマンドを解釈した結果、低解像度のジョブであると判断した場合は、ステップＳＴ３８で現状のプログラム空間６のアドレスの変換先がＲＯＭ１２になっているか否かを判断し、ＲＯＭ１２が変換先として設定されている場合はステップＳＴ３９でプログラム空間６のアドレス変換先をＲＡＭ１４に変更し、さらに、ＲＯＭ１２から実行プログラム２２をＲＡＭ１４にコピーする。このようにしてジョブ制御コマンド５１に基づきプログラム空間６のアドレス変換先をＲＡＭ１４の使用量およびプログラムの処理スピードが最適となるように設定した後に、ステップＳＴ４０でプログラム空間６の先頭アドレスにジャンプし、ＣＰＵ１１がステップＳＴ４１で印刷処理を開始する。
【００５３】
このように、本例のプリンタ１においては、ＣＰＵ１１の実行プログラム２２を高速処理が可能なＲＡＭ１４の上で実行するか、あるいは、低速ではあるがＲＡＭ１４をシステムメモリとして広く活用できるようにＲＯＭ１２の上で実行するかを起動時あるいはジョブを開始する前に判断して設定することができる。
【００５４】
図６（ａ）に示したジョブの場合は、カラー印刷が行われるので、ＲＯＭ上に展開された実行プログラム２２に基づきＣＰＵ１１が十分なシステムメモリを用いて処理を行った方が高速で画像処理および印刷処理を行うことができる。また、図６（ｂ）に示したジョブは、モノクロであるが解像度が６００ＤＰＩと高いので、上記と同様のＲＯＭ上に展開された実行プログラム２２に基づき処理を行う。図６（ｃ）に示したジョブは、モノクロで解像度が３００ＤＰＩと比較的低いので、ＲＡＭに余裕がある。このため、ＲＡＭに実行プログラム２２がコピーされてＲＡＭ上のプログラムに基づきＣＰＵが処理を行う。このため、ＣＰＵとメモリ間で高速でデータ転送が可能となり、処理速度を向上することができる。
【００５５】
図４および図５に基づき説明したそれぞれの処理、あるいは図４および図５に示した両方の処理を一連で実行可能な命令を備えたプログラムは、ＩＰＬ２１の一部としてＲＯＭ１２に収納して提供することも可能である。あるいは、プログラム空間のアドレス変換先を決定するための独立したプログラムとしてＲＯＭ１２に収納して提供することも可能である。さらに、印刷処理プログラム２２の先頭に同様の機能を実行可能な命令を持たせることも可能であり、ＲＯＭ、あるいはＲＯＭにインストールできるようにフロッピーディスクなどの記録媒体を介して提供することができる。さらに、これらのプログラムをインターネットなどのコンピュータネットワークを介して提供することも可能である。
【００５６】
また、以上では、大量の画像データを取り扱うプリンタに基づき本発明を説明しているが、本発明はプリンタに限らず、他の画像処理などの多量のデータを取り扱う情報処理装置に対しても有用であることはもちろんである。
【００５７】
（第２の実施の形態）
以下に図面を参照して、本発明の第２の実施の形態について説明する。図７に示してあるように、本例のプリンタ１の制御システム（画像処理装置）１０は、ＣＰＵ１１と、作業用のＳＤＲＡＭ１４と、ＳＤＲＡＭ１４および他のメモリの管理などを行うメモリコントローラ１５とがＣＰＵバス１８で接続されており、さらに、メモリコントローラ１５に外部バス（メモリバス）１７を介して初期設定用のプログラム（ＩＰＬ）を記憶したＲＯＭ１２ａと、描画処理機能、言語処理機能などの実行用の複数のプログラムモジュールを記憶したＲＯＭ１２ｂとが接続されている。また、ＣＰＵバス１８には、印刷用のデータをＤＭＡ転送する受信用のＤＭＡコントローラ２５と、ＣＰＵ１１で処理された描画用のデータを印刷機構（エンジン）２にＤＭＡ転送するためのＤＭＡコントローラ２６が接続されている。
【００５８】
本例のＣＰＵ１１は、ＲＯＭ１２ａおよび１２ｂ、ＣＰＵ１１に対し外部バス（ＣＰＵバス）１８を介して接続されたＳＤＲＡＭ１４に加え、ＣＰＵ１１に内蔵された高速ＤＲＡＭ３２を備えている。そして、ＣＰＵ１１内では、ＣＰＵコア３１が内蔵ＤＲＡＭ３２とは内部バス３４のデータバス３４ｂで繋がっており、内部バス３４のアドレスバス３４ａを介して繋がったＤＲＡＭコントローラ３８を用いて内蔵ＤＲＡＭ３２とアクセスできるようになっている。さらに、ＣＰＵ１１の外のＲＡＭ１４あるいはＲＯＭ１２とは、外部バス制御部３３を介して接続されているので、これらともアクセスできるようになっている。
【００５９】
したがって、これらのＲＯＭ１２ａ、１２ｂ、ＳＤＲＡＭ１４、および内蔵された高速ＲＡＭをＣＰＵコア３１のプログラムの記憶領域、あるいは作業領域として利用することができる。そして、ＣＰＵコア３１の論理アドレスをＴＬＢ３によって、これらのメモリの物理アドレスのいずれかに変換し、ＣＰＵコア３１でこれらの３種類のメモリをフレキシブルに利用できるようになっている。
【００６０】
プリンタ１に使用することが検討されているものは、ＣＰＵコア１１と共に２から３ＭＢ程度のＤＲＡＭ１２が内蔵されたものである。もちろん、ＣＰＵ装置に内蔵されるＤＲＡＭの記憶容量は上記に限定されないが、現状ではＣＰＵチップのサイズおよびコストの面から記憶容量の極端に大きなＤＲＡＭをＣＰＵ装置に内蔵することは困難である。しかしながら、このようなＤＲＡＭを内蔵したＣＰＵ装置は、内蔵されたＤＲＡＭを用いるとＣＰＵコアとのアクセス時間が短くなり、さらに、バス幅の制限もないので、高速でアクセスすることができる。したがって、内蔵ＤＲＡＭ３２にプログラムをコピーして実行することにより、処理速度は最も速くすることが可能である。
【００６１】
さらに、上述したＴＬＢを用いた手法などによってＲＡＭ上にコピーするプログラムモジュールを限定することができるのであれば、実際にＣＰＵ装置に内蔵された限られた記憶容量のＤＲＡＭをプログラムの記憶領域として用い、ＤＲＡＭ３２でプログラムを実行することが可能となる。特に、汎用的なアプリケーションを実行し、それらに対して高速で処理できることが期待されるＰＣと異なり、プリンタ、スキャナなどの所定の用途に特化した情報処理装置においては、ジョブ単位で考えるとＣＰＵで実行されるプログラムモジュールは限定されている。したがって、ＴＬＢなどのＭＭＵを用いた仮想記憶手法を用いても、ＴＬＢミスによるページングなどの処理のためにＣＰＵの処理時間が割かれる機会はほとんどなく、処理速度を大幅に向上することができる。
【００６２】
先に例として説明したように、多くのプリンタが収納しているコード化された全プログラムの総領は４ＭＢ程度であり、これらの内、頻繁にアクセスされるフォント発生用のモジュール、管理モジュール、さらに言語処理モジュールの内の１つ、例えばセイコーエプソン社のＥＳＣ／Ｐａｇｅモジュールの総計は約２ＭＢ程度である。したがって、２ＭＢ程度の高速ＤＲＡＭ３２がＣＰＵ１１に内蔵されていれば、このＤＲＡＭ３２にもっとも頻繁にアクセスされるプログラムモジュールをコピーして使用することにより処理時間を大幅に短縮できる。高速ＤＲＡＭ３２の容量は、プログラムモジュールをコピーしたり、後述するように作業領域を設定する点では大きい方が望ましい。
【００６３】
しかしながら、上述したように、２ＭＢ程度の容量があれば、プログラムモジュールをコピーして処理速度を向上させるには十分な効果が期待できる。さらに、３ＭＢ程度の容量のＤＲＡＭ３２がＣＰＵに内蔵されていれば、プログラムモジュールをコピーした残りの領域を作業領域として設定できる。さらにまた、４ＭＢ程度の容量のＤＲＡＭ３２がＣＰＵに内蔵されていればコード化されたプログラムモジュールをほとんどＤＲＡＭ３２にコピーしてプリンタを制御することができるので、処理速度はさらに速くなる。あるいは、４ＭＢ程度の容量の内、半分をプログラムモジュールをコピーするために用い、残りの２ＭＢを作業領域に用いれば中間バッファあるいはバンドバッファといったＣＰＵコアとのアクセス頻度の高い作業領域を設定することができるので処理速度を向上できる。
【００６４】
なお、このように頻繁にアクセスされるプログラムモジュールの内、言語処理モジュールの容量が１ＭＢ程度と大半を占めるが、ジョブ単位で考えると１つのジョブで必要とされる言語処理モジュールは１つで良いので、ジョブが変わったときに処理言語が異なるときは言語処理モジュールを入れ替えるようにすれば３ＭＢ程度の高速ＤＲＡＭ３２を極めて有効に使用することができる。例えばＥＳＣ／Ｐａｇｅを処理言語として採用していたジョブが終わって、次にヒューレットパッカード社のＰＣＬを処理言語として採用したジョブが入力されたときは言語処理モジュールをＰＣＬ用のモジュールに入れ替えるようにすれば良い。
【００６５】
また、ＰＣ用のＣＰＵ装置の１次および２次キャッシュ用に採用されているメモリは、ＤＲＡＭ（ダイナミックＲＡＭ）よりもアクセスサイクルの短いＳＲＡＭ（スタティックＲＡＭ）である。そして、キャッシュ用のメモリ上のデータは、外部のＲＡＭあるいはハードディスクなどの記憶媒体上のデータと同一性を担保する必要がある。このため、ライトスルーあるいはライトバックキャッシュ方式のキャッシュ管理用の回路を、回路規模の大きなＳＲＡＭと共に内蔵する必要があるので、キャッシュ用の面積が非常に大きくなり、キャッシュの記憶容量を大きくすることは困難である。
【００６６】
これに対し、ＤＲＡＭは記憶容量に対し回路規模が小さくて良いのでＣＰＵ装置内に記憶容量の大きなメモリであっても比較的低コストで内蔵することができる。さらに、ＰＣのような汎用的な情報処理装置ではなく、プリンタのように特定の用途に特化した情報処理装置においては、上述したように、ＣＰＵ装置に内蔵されたメモリは、プログラムを実行するためにコピーする領域として、あるいは、データが外部のＲＡＭあるいはハードディスク上のデータとの同一性を保持する必要のない一時的な作業領域として利用されるので、キャッシュ管理用の回路は不要である。また、上述したように、プリンタなどの用途の特化した情報処理装置においては、ジョブ単位で考えるとＣＰＵ装置内のメモリを書き換える頻度は少ないのでＤＲＡＭで十分に処理速度を向上する効果が期待できる。
【００６７】
そこで、本例のプリンタにおいては、ＴＬＢ３を用いて、従来、ＣＰＵ１１の外のＲＯＭ１２あるいはＲＡＭ１４に割り当てられていたプログラム用の記憶領域、さらには、従来、ＲＡＭ１４に割り当てられていたプログラム実行用の作業領域を、ＲＡＭ１４よりもアクセス時間の短い高速のＲＡＭ３２を第２のメモリとして、この高速ＲＡＭ３２にも割り当てできるようにしている。そして、高速演算が必要なものは高速ＲＡＭ３２に割り振り、それ以外のものは外部のＲＡＭ１４に割り振ることによって、低コストで処理能力の高いプリンタを提供できるようにしている。
【００６８】
図８に、高速ＲＡＭ３２にプログラム用の記憶領域あるいはプログラム実行用の作業領域を割り付ける処理をフローチャートを用いて示してある。プログラムあるいはプログラムモジュールを高速ＲＡＭ３２に割り当てる手順は、上記の実施の形態で説明したのと同様であり、対象となる第１のメモリをＲＯＭ１２あるいはＳＤＲＡＭ１４とし、これに対して高速なメモリである第２のメモリを高速ＲＡＭ３２とすれば良い。したがって、以下では、高速ＲＡＭ３２に対し幾つかの作業領域を設定する手順と、そのような作業領域を設定したときの効果について説明する。
【００６９】
まず、ＣＰＵコア３１で画像データを処理するときの入出力先となる中間バッファを高速ＤＲＡＭ３２に設定することを考える。ホストＰＣより画像データが送られると、プリンタはそれらを一度受信バッファに蓄積する。次に、受信バッファに蓄積されたデータを、そのジョブの言語である、例えば、セイコーエプソン社のＥＳＣ／ｐａｇｅ言語モジュールが解釈し、画像データとして認識する。そして、言語モジュールが画像データを中間コードに変換する作業を開始する。このとき、画像データが多階調の場合や、解像度が異なる場合、出力先となるバンドバッファのサイズよりも大きな場合などでは、プリンタのバンドバッファに適合するように画像を変換する必要があり、データを入出力する作業領域が必要となる。このような画像データを入出力する作業では、ＣＰＵコア３１が作業領域に頻繁にアクセスするので、作業領域に対するアクセススピードを向上することは処理時間を短縮する上で非常に重要である。
【００７０】
したがって、図８に示したフローチャートのステップＳＴ５１において、ＣＰＵコア３１で実行されている言語モジュールは、次の処理の内容を解釈し、メモリマネージャとしての機能を果たすＴＬＢ３、あるいはＣＰＵコア３１で稼動するメモリマネージャプログラムに対し必要とするＲＡＭ容量と高速ＲＡＭ使用という要求を出力する。メモリマネージャは、まず、ステップＳＴ５２で高速ＲＡＭ３２が要求されているかチェックし、高速ＲＡＭ３２が要求されている場合は、ステップＳＴ５３で高速ＲＡＭ３２に要求された容量が確保できるか否かをチェックする。そして、ステップＳＴ５４で、高速ＲＡＭ３２に要求された容量以上の空きがあれば、入出力用の作業領域（中間バッファ）を確保する。そして、ＴＬＢ３は、ＣＰＵコア３１の作業領域（中間バッファ）の論理アドレスが、高速ＲＡＭ３２に確保された作業領域の物理アドレスに変換されるようにセットされる。さらに、メモリマネージャは高速ＲＡＭ３２の残り量を計算した後に、メモリマネージャを呼び出した言語モジュールへ戻る。
【００７１】
高速ＲＡＭ３２に入出力できる中間バッファが確保されると、ステップＳＴ５６で、ＣＰＵコア３１はこの中間バッファを用いて高速で画像データの変換を行い、作業領域に出力された中間コードを用いてバンドバッファに描画する処理までを行う。そして、これらの処理が終了すると、高速ＲＡＭ３２に確保した作業領域が不要となるので、ステップＳＴ５７で、再びメモリマネージャに対し高速ＲＡＭ３２に確保した作業領域の開放要求を出力し、一連のジョブを終了する。開放要求によってメモリマネージャは必要なくなった高速ＲＡＭ上のメモリを開放し、次の高速ＲＡＭの使用要求に対応できるようにする。
【００７２】
一方、ステップＳＴ５２で高速ＲＡＭが要求されておらず、あるいは、ステップＳＴ５３で高速ＲＡＭ３２に空きがない場合は、メモリマネージャはステップＳＴ５５で外部のＳＤＲＡＭ１４に入出力用の中間バッファを確保する。そして、ＴＬＢ３は、ＣＰＵコア３１の中間バッファの論理アドレスが、ＳＤＲＡＭ１４に確保された中間バッファの物理アドレスに変換されるようにセットされる。したがって、このようなケースでは、ＳＤＲＡＭ１４に設定された中間バッファを用いてＣＰＵコア３１は処理を行う。
【００７３】
また、ＣＰＵ１１に内蔵された高速ＲＡＭ３２をスタックとして利用することによって処理の高速化を図ることができる。スタックは、各関数の呼出し、戻りのときに実行アドレスあるいはＣＰＵコア内のレジスタを保存するためのメモリ（作業領域）であり、マルチタスクＯＳの場合は各タスク毎に割り当てられる。スタックとして割り当てられた作業領域は、関数の呼出し、戻りのときに必ず使用されるので、この作業領域を高速ＲＡＭ３２に割り当てることにより関数の処理が高速化される。
【００７４】
タスクの起動はＯＳで行われる。ＯＳに対してタスクの起動要求があると、ＯＳは、タスクの起動条件を解釈し、それに適したタスクの起動に必要なメモリ（作業領域）をメモリマネージャに対し要求する。タスクの起動条件は、実行優先度、必要メモリなどである。この実行優先度が高いときは、高速ＲＡＭ３２に作業領域を設けた方が望ましいとＯＳは解釈し、上述したのと同様にメモリマネージャに対し高速ＲＡＭ３２の使用要求を出す。そして、メモリマネージャは図８に示したようなプロセスを経て高速ＲＡＭ３２にスタック用の作業領域を設定する。ＯＳは、確保された作業領域にスタックなどを設定し、タスクの起動プログラムの開始アドレスにジャンプし、タスクが開始される。このタスクでは、スタックが高速ＲＡＭに確保されるので、タスクが高速動作する。
【００７５】
さらに、プリンタの印刷機構２に送る描画データを出力するバンドバッファを高速ＲＡＭ３２に確保することによって描画処理を高速で行うことができる。この場合は、中間コードをバンドバッファに描画する機能を備えたプログラムモジュール（描画モジュール）を実行する初期化時にメモリマネージャに対し高速ＲＡＭ３２を使用する要求が出力される。そして、メモリマネージャは図８に示したプロセスにしたがって高速ＲＡＭ３２にバンドバッファを設定する。しかしながら、高速ＲＡＭ３２のメモリ容量が不足している場合は、従来と同様にＳＤＲＡＭ１４にバンドバッファを設定することになる。バンドバッファが高速ＲＡＭ３２に設定されると描画モジュールは中間コードを高速ＲＡＭ３２に描画し、１バンド分の描画が終わると、バンドバッファのデータをＣＰＵ１１に内蔵されたＤＭＡコントローラとしての機能を用いて印刷機構２に転送し、印刷を行う。
【００７６】
一方、高速ＲＡＭ３２で描画された１バンド分のデータをＳＤＲＡＭ１４にいったん転送し、外部のＳＤＲＡＭ１４から外部のＤＭＡＣ２２を用いて印刷機構２に転送することも可能である。このような方法で転送すると、バンドバッファとのアクセス頻度の高い描画処理のときは高速ＲＡＭ３２で処理を行い、印刷機構２の処理スピードに合わせて転送する処理は外部のＤＭＡＣ２６を用いて処理を行いＣＰＵコア３１および高速ＲＡＭ３２に設定されたバンドバッファは次の１バンド分の処理を開始することができる。したがって、さらに描画処理を高速で実行することができる。
【００７７】
外部のＰＣから画像データを受信して一時的に蓄積する受信バッファを高速ＲＡＭ３２に設定することも有効であり、外部バス（ＣＰＵバス）１８を効率的に使用して処理を高速化できる。ＣＰＵ１１に内蔵された高速ＲＡＭ３２に受信バッファを設定する場合は次のようにすることが望ましい。ＰＣから画像データを受信する機能を備えたモジュールは受信を実行する前に、外部のＳＤＲＡＭ１４に受信バッファを設定するときにメモリマネージャに対し高速ＲＡＭ３２にも第２の受信バッファを設定することを要求する。メモリーマネージャは、図８に示したプロセスにしたがって高速ＲＡＭ３２に空きがあれば第２の受信バッファを設定する。そして、ＴＬＢ３は、ＣＰＵコア３１の受信バッファの論理アドレスを高速ＲＡＭ３２に物理アドレスに変換するようにセットされる。
【００７８】
ＰＣから画像データが受信ＤＭＡＣ２５によって入力されると、まず、ＳＤＲＡＭ１４に設定された受信バッファに画像データが書き込まれる。そして、ＳＤＲＡＭ１４に設定された受信バッファがいっぱいになると、その画像データが高速ＲＡＭ３２に設定された第２の受信バッファに転送される。ＣＰＵコア３１では言語処理モジュールが高速ＲＡＭ３２の第２の受信バッファに転送された画像データを解析する処理を開始する。この間、ＣＰＵコア３１での処理と並行してＳＤＲＡＭ１４に設定された受信バッファでは次の画像データが受信される。
【００７９】
ＳＤＲＡＭ１４に第２の受信バッファを設定し、受信バッファがあふれると画像データを第２の受信バッファに転送して受信を続けることは可能である。しかしながら、外部バス１８の使用要求が受信ＤＭＡＣ２５からＣＰＵ１１に対し出力されると、ＣＰＵ１１は外部バス１８を使用できなくなるので第２の受信バッファへのアクセススピードが非常に遅くなる。これに対し、上記の処理では、アクセススピードの速い高速ＲＡＭ３２に第２の受信バッファを設定することによりＣＰＵコア３１の処理が早くなるのみではなく、ＣＰＵコア３１が第２の受信バッファにアクセスする処理と、ＰＣから画像データを受信する処理が競合しないので、この点でも受信処理を非常に高速で実行することができる。
【００８０】
【発明の効果】
以上に説明したように、本発明では、ＲＯＭと、これに対し処理を高速化できるＲＡＭ、あるいはＲＡＭに対してさらに処理を高速化できるＣＰＵに内蔵された高速ＲＡＭといった、プログラムの記憶領域あるいは作業領域を設定できる第１のメモリと、これよりも高速な第２のメモリとを有する情報処理装置において、ＴＬＢなどのアドレス変換手段を用いてＣＰＵの論理メモリ空間の所定のアドレスを第１のメモリおよび第２のメモリのいずれにも変換できるようにしている。このため、プログラム、あるいはその一部のプログラムモジュールの記憶領域、さらにはプログラム実行用の作業領域を第１および第２のメモリのいずれに設定することが可能となる。したがって、プリンタの画像処理装置などの情報処理装置で処理するジョブの内容に適したメモリの割り振りを行い、高速で高価なメモリを柔軟に管理し、低コストで高速処理の可能な情報処理装置およびこれを用いたプリンタを提供することが可能となる。
【００８１】
さらに、ＣＰＵの論理アドレスにプログラム空間を仮想的に設けて、そのプログラム空間のアドレス変換先をＲＯＭおよびＲＡＭに切り換えて設定できるようにすることにより、単一の実行プログラムをＲＯＭ上およびＲＡＭ上で実行することが可能であり、新たなプログラムを開発しなくとも、プリンタの画像処理装置などに実装されたメモリの条件あるいは環境設定条件、さらに、実行されるジョブの条件などに合わせてアドレスの変換先を切り換えられる情報処理装置を提供することができる。そして、これらの条件に合わせてＲＡＭの割当てを最適化して効率的に使用できると共に、プログラムの実行スピードも考慮し、情報処理装置あるいはプリンタ全体の処理を短時間で行えるようにシステムを最適に設定することが可能となる。従って、カラー印刷や高解像度の印刷が要求されたときに最適のメモリの使用量およびプログラムの実行スピードを最適に設定し、印刷速度の速いプリンタを提供するができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係るプリンタの概略構成を示すブロック図である。
【図２】図１に示すプリンタの画像処理部におけるＣＰＵのメモリマップを示す図であり、プログラム空間のアドレス変換先をデコーダで制御する例を示す図である。
【図３】図２と異なり、プログラム空間のアドレス変換先をＣＰＵのアドレス変換器（ＴＬＢ）を用いた例を示す図である。
【図４】プログラム空間のアドレス変換先を起動時に設定する処理を示すフローチャートである。
【図５】プログラム空間のアドレス変換先をジョブに先立って設定する処理を示すフローチャートである。
【図６】ジョブ毎に供給される入力データの幾つかの例を示す図である。
【図７】本発明の第２の実施の形態に係るプリンタの概略構成を示すブロック図である。
【図８】図７に示すプリンタにおいて、ＣＰＵに内蔵された高速ＲＡＭに使用可能にするためのプロセスを示すフローチャートである。
【図９】従来の画像処理装置などの情報処理装置の概略構成を示すブロック図である。
【図１０】従来の情報処理装置のＩＰＬの処理を示すフローチャートである。
【図１１】ＣＰＵのメモリマップの一例を示す図である。
【符号の説明】
１    プリンタ
２    印刷機構
５    ＣＰＵの論理アドレス空間
６    プログラム空間
７    仮想アドレス空間
８    物理アドレス空間
１０    画像処理部
１１    ＣＰＵ
１２    プログラム用ＲＯＭ
１３    フォント用ＲＯＭ
１４    ＳＤＲＡＭ
１５    メモリコントローラ
１６    デコーダ
１７    メモリバス
１８    ＣＰＵバス（外部バス）
１９    入力インタフェース部
２０    ビデオインタフェース部
３１    ＣＰＵコア
３２    内蔵ＤＲＡＭ（高速ＲＡＭ）
３４    内部バス
３８    ＤＲＡＭコントローラ
【図１】
0003666258.tif 000002
【図２】
0003666258.tif 000003
【図３】
0003666258.tif 000004
【図４】
0003666258.tif 000005
【図５】
0003666258.tif 000006
【図６】
0003666258.tif 000007
【図７】
0003666258.tif 000008
【図８】
0003666258.tif 000009
【図９】
0003666258.tif 000010
【図１０】
0003666258.tif 000011
【図１１】
0003666258.tif 000012