(57)【特許請求の範囲】
【請求項１】
ＣＰＵと、
種類の異なる記述言語の各々に対応する複数の言語処理モジュールを記憶した読み出しのみ可能な第１のメモリと、
読み書きが可能であると共に、前記第１のメモリよりも高速にアクセスが可能な第２のメモリと、
処理すべき入力データに用いられている記述言語に対応した言語処理モジュールが前記第２のメモリに記憶されていなかったときに、前記第１のメモリに記憶されている当該言語処理モジュールを、前記第２のメモリ上の既存の言語処理モジュールと置換する形で前記第２のメモリにコピーした上で前記ＣＰＵで実行可能にするモジュール管理手段と
を有する印刷装置。
【請求項２】
請求項１において、
前記第１のメモリに記憶された前記複数の言語処理モジュールの中に１個以上の圧縮された言語処理モジュールが含まれ、
前記モジュール管理手段は、前記入力データに用いられている記述言語に対応した，前記第１のメモリ上の言語処理モジュールが圧縮されたものであった場合には、その言語処理モジュールを伸張して前記第２のメモリにコピーする
ことを特徴とする印刷装置。
【請求項３】
請求項１又は２において、
前記入力データが、自身に用いられている記述言語を示す記述言語指定情報をその先頭部分に含むデータであり、
前記モジュール管理手段は、処理すべき入力データに含まれる前記記述言語指定情報に基づき、その入力データに用いられている記述言語に対応する，前記第１のメモリ上の言語処理モジュールを特定する
ことを特徴とする印刷装置。
【請求項４】
請求項１ないし３のいずれかにおいて、前記第２のメモリは前記ＣＰＵと同一チップ内に用意されている印刷装置。
【請求項５】
請求項１ないし４のいずれかにおいて、前記第２のメモリはＤＲＡＭである印刷装置。
【請求項６】
ＣＰＵと、種類の異なる記述言語の各々に対応する複数の言語処理モジュールを記憶した読み出しのみ可能な第１のメモリと、読み書きが可能であると共に、前記第１のメモリよりも高速にアクセスが可能な第２のメモリとを備えた印刷装置の制御方法において、
処理すべき入力データに用いられている記述言語に対応した言語処理モジュールが前記第２のメモリに記憶されていなかったときに、前記第１のメモリに記憶されている当該言語処理モジュールを、前記第２のメモリ上の既存の言語処理モジュールと置換する形で前記第２のメモリにコピーした上で前記ＣＰＵで実行可能にするモジュール管理工程
を有する印刷装置の制御方法。
【請求項７】
請求項６において、
前記第１のメモリに記憶された前記複数の言語処理モジュールの中に１個以上の圧縮された言語処理モジュールが含まれ、
前記モジュール管理工程は、前記入力データに用いられている記述言語に対応した，前記第１のメモリ上の言語処理モジュールが圧縮されたものであった場合には、その言語処理モジュールを伸張して前記第２のメモリにコピーする
ことを特徴とする印刷装置の制御方法。
【請求項８】
請求項６又は７において、
前記入力データが、自身に用いられている記述言語を示す記述言語指定情報をその先頭部分に含むデータであり、
前記モジュール管理工程は、処理すべき入力データに含まれる前記記述言語指定情報に基づき、その入力データに用いられている記述言語に対応した，前記第１のメモリ上の言語処理モジュールを特定する
ことを特徴とする印刷装置の制御方法。
【請求項９】
請求項６ないし８のいずれかにおいて、前記第２のメモリは前記ＣＰＵと同一チップ内に用意されている印刷装置の制御方法。
【請求項１０】
請求項６ないし９のいずれかにおいて、前記第２のメモリはＤＲＡＭである印刷装置の制御方法。
【請求項１１】
ＣＰＵと、種類の異なる記述言語の各々に対応する複数の言語処理モジュールを記憶した読み出しのみ可能な第１のメモリと、読み書きが可能であると共に、前記第１のメモリよりも高速にアクセスが可能な第２のメモリとを備えた印刷装置用の制御プログラムであって、
処理すべき入力データに用いられている記述言語に対応した言語処理モジュールが、前記第２のメモリに記憶されていなかったときに、前記第１のメモリに記憶されている当該言語処理モジュールを、前記第２のメモリ上の既存の言語処理モジュールと置換する形で前記第２のメモリにコピーし、コピーした言語処理モジュールを実行する処理を、前記ＣＰＵに実行させる制御プログラムが記録されていることを特徴とするコンピュータ読み取り可読な記録媒体。
【請求項１２】
請求項１１において、
前記印刷装置が、前記第１のメモリに記憶された前記複数の言語処理モジュールの中に１個以上の圧縮された言語処理モジュールが含まれる装置であり、
前記制御プログラムが
前記第１のメモリに記憶された，前記入力データに用いられている記述言語に対応した言語処理モジュールが圧縮されたものであった場合には、その言語処理モジュールを伸張して前記第２のメモリの前記所定のアドレスで始まる記憶領域にコピーし、コピーした言語処理モジュールを実行する処理を、前記ＣＰＵに実行させるプログラムである
ことを特徴とするコンピュータ読み取り可読な記録媒体。
【請求項１３】
請求項１１又は１２において、
前記入力データが、自身に用いられている記述言語を示す記述言語指定情報をその先頭部分に含むデータであり、
前記制御プログラムが、前記ＣＰＵに、
処理すべき入力データに含まれる前記記述言語指定情報に基づき、その入力データに用いられている記述言語に対応する，前記第１のメモリ上の言語処理モジュールを特定させるプログラムである
ことを特徴とするコンピュータ読み取り可読な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、記述言語に基づき入力データをＣＰＵで印刷データとして解釈し、その印刷データを印刷機構で印刷する印刷装置およびその制御方法に関するものである。
【０００２】
【従来の技術】
ページプリンタ等の印刷装置は、特定の記述言語に基づいてコマンド化された入力データをＣＰＵで印刷データあるいは制御コマンドとして解釈する。そして、印刷データを制御コマンドに基づいた処理に従って印刷機構（プリンタエンジン）で印刷用紙上に印刷することができるようになっている。このため、印刷装置では、入力データを記述言語に基づいて解釈するための言語処理モジュールがＣＰＵで実行され、入力データの中から印刷データおよび制御コマンドが解釈される。近年、印刷装置の中には、ホストコンピュータのオペレーティングシステム（ＯＳ）、あるいはアプリケーションで利用している種類の異なる記述言語に対応できるように複数の言語処理モジュールが用意されているものがあり、これらの言語処理モジュールは、ＯＳのカーネルモジュール等のその他のプログラムモジュールと共に読み出しのみ可能なメモリであるＲＯＭに予め記憶されている。
【０００３】
【発明が解決しようとする課題】
ページ印刷を行う印刷装置等では、高解像度の画像あるいはカラー画像を取り扱うために、入力データが膨大となっており、その入力データを解釈して印刷データに変換する処理に要する時間が長くなってきている。このため、処理装置全体の処理スピードを向上することが強く望まれている。処理スピードを向上するには、ＣＰＵ自体の処理能力を向上したり、ＣＰＵにおけるプログラムモジュールの実行速度を向上するなどが考えられる。しかしながら、通常のＲＯＭに対し、ＣＰＵは比較的低速でしかアクセスできないため、ＣＰＵの処理能力を向上してもＲＯＭにアクセスする速度で処理装置全体の処理スピードが飽和してしまう。このため、ＲＯＭに記憶されたＣＰＵのプログラムモジュールを実行速度の速いＲＡＭにコピーして、処理装置全体の処理スピードを向上することが検討されている。例えば、ＲＯＭに記憶されたプログラムモジュールを読み書き可能なＲＡＭの一部にコピーすることが考えられている。
【０００４】
しかしながら、プログラムモジュールをＲＡＭにコピーするのでは、大容量のＲＡＭが必要になり、製品価格が高くなる。このため、アクセス頻度の高いプログラムモジュール、すなわち、ＯＳのカーネルモジュールや言語処理モジュール等に限定してＲＡＭにコピーすることが考えられる。しかしながら、このようにＲＡＭにコピーするプログラムモジュールを限定しても、前述したように、近年のプリンタは複数の言語に対応して複数の言語処理モジュールを備えており、さらに、多種多様な機能を内蔵しているので、数ＭＢにも及ぶ大容量のＲＡＭが必要になり、製品コストを抑えることは難しい。
【０００５】
上記の点に鑑みて、本発明においては、メモリの容量をできる限り増やさずに、複数の言語処理モジュールや多種多様な機能を備えた印刷装置の全体の処理スピードを向上できる印刷装置を低コストで提供可能とすることを目的としている。そして、種類の異なる記述言語に基づく入力データが送信された場合でも、それらの入力データに基づき高速で印刷可能な印刷装置および制御方法を提供することを本発明の目的としている。
【０００６】
【課題を解決するための手段】
このため、本発明においては、種類の異なる記述言語の各々に対応する複数の言語処理モジュールを備えた印刷装置であっても、ＲＡＭにコピーされて実行される言語処理モジュールを１つに限定するようにしている。すなわち、本発明の印刷装置は、ＣＰＵと、種類の異なる記述言語の各々に対応する複数の言語処理モジュールを記憶した読み出しのみ可能な第１のメモリと、読み書きが可能であると共に、第１のメモリよりも高速にアクセスが可能な第２のメモリと、処理すべき入力データに用いられている記述言語に対応した言語処理モジュールが第２のメモリに記憶されていなかったときに、第１のメモリに記憶されている当該言語処理モジュールを、第２のメモリ上の既存の言語処理モジュールと置換する形で第２のメモリにコピーした上でＣＰＵで実行可能にするモジュール管理手段とを有することを特徴としている。
【０００７】
一方、本発明の印刷装置の制御方法は、ＣＰＵと、種類の異なる記述言語の各々に対応する複数の言語処理モジュールを記憶した読み出しのみ可能な第１のメモリと、読み書きが可能であると共に、第１のメモリよりも高速にアクセスが可能な第２のメモリとを備えた印刷装置の制御方法において、処理すべき入力データに用いられている記述言語に対応した言語処理モジュールが第２のメモリに記憶されていなかったときに、第１のメモリに記憶されている当該言語処理モジュールを、第２のメモリ上の既存の言語処理モジュールと置換する形で第２のメモリにコピーした上でＣＰＵで実行可能にするモジュール管理工程を有することを特徴としている。
【０００８】
言語処理モジュールは１ＭＢ程度と非常にサイズの大きなモジュールとなりやすく、ＲＡＭにコピーされて実行される言語処理モジュールを減らすことにより大幅にＲＡＭの容量を制限できる。このため、本発明によれば、大容量の高速メモリでなくとも、限定されたプログラムモジュールをＲＡＭにコピーすることにより、高速で処理し、印刷装置全体としての処理スピードを速くできる。また、予め搭載されているＲＡＭの一部を利用したり、小容量の低価格なＲＡＭを追加するだけで良いので、製品価格が高騰することもない。よって、低コストで処理能力の高い印刷装置を提供できる。
【０００９】
さらに、入力データを記述している言語は１つのジョブで変わることはなく、ジョブの実行中に新たな言語処理モジュールに変更する必要はない。従って、そのジョブに適合した言語処理モジュールがＲＡＭに存在していれば、そのＲＡＭにコピーされた言語処理モジュールが１つであっても、それをジョブの実行中に新たな言語処理モジュールに交換する、すなわち、ＲＯＭから他の言語処理モジュールをＲＡＭにコピーして実行可能にする処理は発生しない。従って、ジョブを実行中に言語処理モジュールを交換するための処理時間が長くなることもない。
【００１０】
本発明を実現する際には、第１のメモリに記憶された複数の言語処理モジュールの中に１個以上の圧縮された言語処理モジュールが含まれるようにしておくと共に、モジュール管理手段として、入力データに用いられている記述言語に対応した，第１のメモリ上の言語処理モジュールが圧縮されたものであった場合には、その言語処理モジュールを伸張して第２のメモリにコピーする手段を採用しておくことが出来る。
【００１１】
新たなジョブを処理し始める際にそのジョブに適合した言語処理モジュールを特定（或いは決定）するために、入力データが、自身に用いられている記述言語を示す記述言語指定情報をその先頭部分に含むデータとなるようにしておくと共に、モジュール管理手段が、処理すべき入力データに含まれる記述言語指定情報に基づき、その入力データに用いられている記述言語に対応する，第１のメモリ上の言語処理モジュールを特定する手段を採用することが出来る。
【００１２】
また、新たなジョブを処理し始める際にジョブに適合した言語処理モジュールを決定するために、最適な言語処理モジュールを特定可能な言語自動判別処理の結果を用いることができる。この言語自動判別処理は、各プリンタ言語（記述言語）の特徴的なコマンドを評価して自動的に記述言語を特定する公知技術であり、例えば、特開平１−６４０２９号公報に、各記述言語の特徴的なコマンドをポイント数付けしたテーブル等を各言語毎に用意した上で、与えられた印刷データを各記述言語と想定したとき、そのテーブルに基づいて各言語がそれぞれ何ポイントを得るかを算出して最も確率的に高いものを正しい記述言語と特定する技術が開示されている。従って、この技術を採用することにより、特定して記述言語に対応した言語処理モジュールを、ジョブに適合した、第２のメモリ上で実行すべき言語処理モジュールとして決定できる。
【００１３】
さらに、新たなジョブを処理し始める際にジョブに適合した言語処理モジュールを選択するために、ＴＬＢのアドレス変換の結果を用いることも可能である。ＴＬＢは、論理アドレス空間の所定の実行プログラムがアクセスされると、その実行プログラムの論理をＲＡＭ等の適当な物理アドレスに変換する機能を有している。さらに、実行プログラムの論理アドレスを適当な物理アドレスに変換できない場合は、ＴＬＢミスという割り込み信号をＣＰＵに出力する機能を有している。このため、入力データの記述言語に対応する言語処理モジュールの物理アドレスが第２のメモリ上にないときに、ＴＬＢミスが発生するようにしておくと、ジョブの記述言語に対応する言語処理モジュールがアクセスされ、そのモジュールの物理アドレスが第２のメモリ内あると、ＴＬＢによって正常なアドレス変換が行われる。
【００１４】
一方、ジョブの記述言語に対応する言語処理モジュールの物理アドレスが第２のメモリ内にないと、ＴＬＢミスが発生する。このため、ＴＬＢミスが発生した場合は、そのミスを発生させた原因となった言語処理モジュールがジョブの記述言語に適合した言語処理モジュールであると特定できるので、ＴＬＢミス、すなわち、ＴＬＢのアドレス変換の結果から第２のメモリで実行すべき言語処理モジュールを決定できる。
【００１５】
第２のメモリとしては、ＣＰＵと外部バスで接続された専用のＲＡＭまたはワーキングエリアとして使用されているＲＡＭの一部を利用することができる。専用のＲＡＭを設ける場合でも、そのＲＡＭは小容量のもので良いので、ＳＲＡＭ、ＳＤＲＡＭといった記憶容量当たりの単価の高いメモリを第２のメモリとして用いても、製品コストをそれほど上げずに済む。そして、処理速度をいっそう向上できる。さらに、第２のメモリは小容量で良いので、ＣＰＵと同一チップに収納されたＲＡＭがあるときはこのＲＡＭを第２のメモリとして利用できる。ＣＰＵと同一のチップに収納されたＲＡＭは、ＣＰＵとそのＲＡＭとの間のアクセス速度を最小限にできるので、言語処理モジュールの実行速度をより向上できる。また、コストの安いＤＲＡＭであっても処理速度を大幅に向上できる。
【００１６】
なお、上述した制御方法は、それぞれの工程に対応した処理を実行可能な命令を備えた印刷装置で読み取り可能な記録媒体、例えば、ＲＯＭ、ＲＯＭモジュールあるいはフロッピーディスク等に記録して提供可能である。また、インターネット等のコンピュータネットワークを介してプログラムを供給し、ユーザ側のパソコンや印刷装置の記録媒体に記録して使用することも可能である。
【００１７】
【発明の実施の形態】
［実施の形態１］
以下に図面を参照して本発明の実施の形態を説明する。図１は、本発明に係るプリンタ１の概略のハードウェア構成を示す図である。このプリンタ１は、ホストコンピュータから受信した入力データφ１に含まれるデータおよびコマンドをデータ処理装置３で解釈および変換し、ビットイメージデータ等の描画データ（印刷データ）φ２に変換して印刷機構（プリンタエンジン）２に送り印刷するようになっている。ホストコンピュータからの入力データφ１は、所定の記述言語、例えば、本出願人が提唱しているＥＳＣ／Ｐａｇｅ言語、ヒューレットパッカード社が提唱しているＰＣＬ言語、プロッタ用のプリンタ言語であるＥＰＧＬ言語、ＮＥＣ社のＰＣＰＲ言語等のいずれかの言語に基づいてコマンド化されており、データ処理装置３においては、その言語に対応している言語処理モジュールで入力データを解釈し、印刷機構２で実行できるようにする必要がある。
【００１８】
データ処理装置３は、ホストからの入力データφ１を受信する入力インターフェース回路１１と、初期設定プログラム（ＩＰＬ）１２ａが格納されたＲＯＭ１２と、ＣＰＵチップ１３の実行用のプログラム１４ａが格納され、ＣＰＵチップ１３の外に設けられた読み出しのみ可能な第１のメモリとしてのＲＯＭ１４を備えており、それらはメモリバス４を介してメモリコントローラ１５に接続されている。ＲＯＭ１３に格納されているＣＰＵチップ１３の実行用プログラム１４ａは複数のプログラムモジュールから構成されている。そして、これらのプログラムモジュールには、前述した種類の異なる記述言語の各々に対応する複数の言語処理モジュールＬ（１）からＬ（ｎ）（ｎは整数）が含まれており、これらの言語処理モジュールをＣＰＵコア２１で実行することにより、様々な言語を理解できる。
【００１９】
また、データ処理装置３は、入力データφ１を描画データφ２に変換する際の作業領域となるＳＤＲＡＭ１６を備えており、このＳＤＲＡＭ１６には、描画データφ２あるいは入力データφ１から描画データφ２に変換する際の中間的なデータである中間コード等が格納される。ＳＤＲＡＭ１６、ＣＰＵチップ１３およびメモリコントローラ１５はＣＰＵバス５を介して接続されている。
【００２０】
ＣＰＵチップ１３は、演算機能等のＣＰＵの主要機能を備えたＣＰＵコア２１と、読み書き可能な第２のメモリであるＤＲＡＭ２２と、アドレス変換用の高速バッファであるＴＬＢ（Ｔｒａｎｓｌａｔｉｏｎ  Ｌｏｏｋａｓｉｄｅ  Ｂｕｆｆｅｒ）２３とを備えており、これらは同一チップ上に構成され、内部バス２５で接続されている。また、ＣＰＵチップ１３は、内部バス２５と外部バスであるＣＰＵバス５とのインターフェースである外部バス制御部２６を備えており、ＣＰＵコア２１は外部バス制御部２６を介してＣＰＵチップ外に設けられているＳＤＲＡＭ１６、ＲＯＭ１２、１４とアクセス可能となっている。
【００２１】
さらに、データ処理装置３は、メモリバス４に接続されたビデオインターフェース回路１７を備えており、このビデオインターフェース回路１７を介して、変換された描画データφ２が印刷機構２に供給される。ビデオインターフェース回路１７は、例えば、ＤＭＡ転送された描画データφ２をいったん格納するＦＩＦＯメモリと、このＦＩＦＯメモリからパラレル出力されるデータをシリアル変換するシフトレジスタとを備えており、印刷機構２へはラスタ方向にシリアル化された描画データφ２が転送されるようになっている。印刷機構２では、ビデオインターフェース回路１７を介して供給された描画データφ２に基づいて、ページ毎の印刷が行われる。一方、ビデオインタフェース回路１７とプリンタエンジン２との間では、コマンド、ステータス等のコントロール信号を交換できるようになっており、データ処理装置３のＣＰＵコア２１がプリンタ全体を制御できるようになっている。
【００２２】
データ処理装置３のＲＯＭ１４に格納された実行用プログラム１４ａは、複数のプログラムモジュールから構成されている。図２には、それらのプログラムモジュールのうち、使用頻度が高いプログラムモジュールのいくつかを取り出して示してあり、それらのプログラムモジュールがＣＰＵコア２１の論理アドレス空間に割り付けられている状態、およびそれらのプログラムモジュールがＤＲＡＭにコピーされ、ＤＲＡＭの物理アドレス空間に割り付けられる状態を示してある。
【００２３】
各プログラムモジュールは、ＣＰＵコア２１の論理アドレス空間４５の所定のアドレスに割り付けられており、例えば、下位のアドレスから上位のアドレスに向けて、グラフィックモジュール３１、ジョブ管理モジュール３２、フォント管理モジュール３３、複数の言語処理モジュールＬ（ｉ）からなる言語処理モジュール群４０、描画モジュール３４、エンジン制御モジュール３５、インターフェース管理モジュール３６、メモリ管理モジュール３７およびオペレーティングシステム（ＯＳ）のカーネルモジュール３８の順序に割り付けられている。
【００２４】
カーネルモジュール３８は、システムの初期化、タスク管理、割り込み管理などのＯＳの基本部分を実現するためのプログラムモジュールである。メモリ管理モジュール３７は、メモリコントローラ１５でＳＤＲＡＭ１６およびＣＰＵチップ１３のＤＲＡＭ２２の確保・開放等を実現するためのプログラムモジュールである。インターフェース管理モジュール３６は、ホストに接続されるインターフェース回路１１の管理を行うためのプログラムモジュールである。エンジン制御モジュール３５は、印刷機構２の制御、例えば、給紙、排紙指定、プリント要求などの制御を行うためのプログラムモジュールである。描画モジュール３４は、入力データφ１から変換された中間コードを基にＳＤＲＡＭ１６に用意されたバンドバッファに画像を描画するためのプログラムモジュールである。フォント管理モジュール３３は、フォントの管理を行うためのプログラムモジュールであり、グラフィックモジュール３１は、グラフィックの管理を行うためのプログラムモジュールである。ジョブ管理モジュール３２は、印刷ジョブの管理を行うためのプログラムモジュールである。
【００２５】
これらのプログラムモジュールは、電源投入時、あるいはリセットされたときにＩＰＬ１２ａが実行され、ＣＰＵチップ１３に内蔵されたＤＲＡＭ２２にコピーされるようになっている。
【００２６】
言語処理モジュール群４０に含まれている言語処理モジュールＬ（１）は、ＰＣＬ言語で記述された入力データφ１を解釈して中間コードに変換するためのプログラムモジュールであり、言語処理モジュールＬ（２）は、ＥＳＣ／Ｐａｇｅ言語で記述された入力データφ１を解釈して中間コードに変換するためのプログラムモジュールである。なお、その他の言語処理モジュールＬ（ｉ）は、所定の記述言語、例えば、ＥＰＧＬ言語やＰＣＰＲ言語用のプログラムモジュールである。これらの言語処理モジュールＬ（ｉ）のサイズは、それぞれ、例えば、約１ＭＢといった大きなサイズである。そして、これらの言語処理モジュールＬ（ｉ）は、ＤＲＡＭ２２に同時にコピーされることはなく、いずれか１つの言語処理モジュールが選択されてＤＲＡＭ２２にコピーされ、ＤＲＡＭ２２上で実行されるようになっている。
【００２７】
このため、本例のプリンタ１は、ＲＯＭ１４に記録された複数の言語処理モジュールＬ（ｉ）のうち、いずれか１つを選択し、その選択した１つの言語処理モジュールをＤＲＡＭ２２にコピーした上でＣＰＵコア２１で実行可能にする機能を備えたモジュール管理部６０を有している。
【００２８】
このモジュール管理部６０は、新たなジョブを処理し始める際に複数の言語処理モジュールＬ（ｉ）のうち、新たな言語処理モジュールを選択する選択機能６３と、選択した言語処理モジュールをＲＯＭ１４からＤＲＡＭ２２にコピーするコピー機能６１と、ＤＲＡＭ２２にコピーした言語処理モジュールに対応するＣＰＵチップ１３の論理アドレス空間のアドレスを、ＤＲＡＭ２２上にコピーした言語処理モジュールの物理アドレスに変換するアドレス変換機能６２とを備えている。コピー機能６１はＣＰＵコア２１とメモリコントローラ１５あるいはＣＰＵチップ内のＤＲＡＭコントローラ（不図示）の動作によって実現され、アドレス変換機能６２はＴＬＢ２３の動作によって実現される。さらに、選択機能６３は、入力データφ１のヘッダー情報に基づき、そのデータφ１に適合する言語処理モジュールＬ（ｉ）を選択できるようになっており、ＣＰＵコア２１の動作によって実現される。
【００２９】
図３は電源投入時におけるモジュール管理部６０の制御動作を示すフローチャートである。図２および図３を参照してその制御動作を説明する。プリンタ１では、ステップＳＴ１で電源が投入されると、ステップＳＴ２でＲＯＭ１２のＩＰＬ１２ａがＣＰＵコア２１にロードされて、入力インターフェース回路１１等のハードウェアの初期設定が行われる。そして、ステップＳＴ３において、ＤＲＡＭ２２に予め定められた各プログラムモジュール３１〜３８およびＬ（２）が選択されてコピーされる。
【００３０】
本例では、デフォルトとして言語処理モジュールＬ（２）のＥＳＣ／Ｐａｇｅが選択されてＤＲＡＭ２２上にコピーされ、その他の言語処理モジュールはコピーされない。さらに、このステップＳＴ３では、ＥＳＣ／Ｐａｇｅ用の言語処理モジュールＬ（２）がＲＯＭ１４に圧縮された状態で格納されているか否かを判断し、圧縮された状態で格納されている場合は、言語処理モジュールＬ（２）を解凍してＤＲＡＭ２２にコピーするようにしても良い。これにより、圧縮されて格納されている場合では、解凍処理を行って、ＤＲＡＭ２２に実行可能な状態に伸張された言語処理モジュールＬ（２）がコピーされる。
【００３１】
このステップＳＴ３に前後して、ＣＰＵコア２１の論理アドレス空間４５に割り付けられている各種のプログラムモジュールの論理アドレスと、ＤＲＡＭ２２における物理アドレス空間５０の物理アドレスの対応づけ（アドレス設定）が行われる。この対応づけは、ＣＰＵチップ１３のＴＬＢ２３によって行われる。この対応づけによって、上述したプログラムモジュール３１〜３８はＤＲＡＭ２２の物理アドレス空間５０でＣＰＵコア２１によって実行可能な状態になる。
【００３２】
本例のプリンタ１においては、このような処理が終了すると、ＤＲＡＭ２２にコピーされたプログラムの所定のアドレスにジャンプして処理を開始する。ＤＲＡＭ２２は、チップ間のインターフェースあるいはチップ間を接続するためのバスのアクセススピード等の制限がないので、ＲＯＭ１４上でプログラムモジュールをＣＰＵコア２１で実行する場合に比べて、そのモジュールの実行速度を大幅に向上できる。
【００３３】
図４には、ホスト側からプリンタ１に送信された入力データφ１を処理する動作をフローチャートで示してある。プリンタ１で印刷ジョブを行うためにホストから供給される入力データφ１の概略は、図５（ａ）および（ｂ）に示すようになっている。まず、ジョブ制御コマンドが含まれているヘッダー情報５１が入力され、それに続いて印刷用のデータ５２とが入力される。ヘッダー情報５１には、ジョブ言語の定義５１ａ、印刷データの記述言語の定義５１ｂ、解像度５１ｃ、カラー印刷の要否５１ｄ等が含まれている。モジュール管理部６０は、このヘッダー情報５１の記述言語の定義５１ｂに基づき入力データφ１の記述言語、例えば、ＥＳＣ／Ｐａｇｅ言語あるいはＰＣＬ言語を把握できる。図５（ａ）に示す入力データφ１では、そのヘッダー情報５１から記述言語がＥＳＣ／Ｐａｇｅ言語、解像度が６００ｄｐｉであり、カラー印刷用のデータであることを把握できる。また、図５（ｂ）に示す入力データφ１では、そのヘッダー情報５１から記述言語がＰＣＬ言語、解像度が３００ｄｐｉであり、モノクロ印刷用のデータであることを把握できる。
【００３４】
ステップＳＴ１１でこのような入力データφ１を受信すると、プリンタ１は、ステップＳＴ１２において、モジュール管理部６０の選択機能６３がそのデータφ１のヘッダー情報５１に含まれている記述言語の定義５１ｂから印刷データ５２の記述言語を判断し、判断された記述言語に適合する言語処理モジュールを選択する。そして、ステップＳＴ１３で選択された言語処理モジュールがＤＲＡＭ２２にコピーされている言語処理モジュールと一致しているか否かが判断される。
【００３５】
選択された言語処理モジュールとＤＲＡＭ２２上の言語処理モジュールが一致していない場合は、ステップＳＴ１４でＤＲＡＭ２２上の言語処理モジュールを、選択された言語処理モジュールに更新する。すなわち、ＤＲＡＭ２２の物理アドレス空間５０に予め割り付けられている言語処理モジュールＬ（ｉ）の割付を外して、選択された言語処理モジュールＬ（ｉ）をコピー機能６１によってＤＲＡＭ２２の物理アドレス空間５０にコピーする。
【００３６】
この結果、例えば、ＤＲＡＭ２２に言語処理モジュールＬ（２）が割り付けられている場合に、ＰＣＬ言語に基づく入力データφ１が送信されると、ＤＲＡＭ２２上の言語処理モジュールがＰＣＬ言語に対応した言語処理モジュールＬ（１）に置き換えられることになる。この後は、ＴＬＢ２３のアドレス変換の設定を変更し、ＤＲＡＭ２２上に新たに割り当てた言語処理モジュールＬ（１）を実行可能な状態にする。なお、言語処理モジュールＬ（ｉ）をＤＲＡＭ２２にコピーするときは、コピー対象の言語処理モジュールＬ（ｉ）がＲＯＭ１４に圧縮されて格納されていれば、コピー処理する際に解凍処理も行われるようにしておくことが望ましい。
【００３７】
この作業が終了した後は、ステップＳＴ１５でＤＲＡＭ２２にコピーされた言語処理モジュールＬ（１）に基づきＣＰＵコア２１が処理を行い、印刷データ５２を解釈し中間コードに変換する等の必要な処理を行う。このように本例のプリンタ１では、ジョブを処理する際にＤＲＡＭ２２上の言語処理モジュールが置き換えられる。
【００３８】
ステップＳＴ１３で選択された言語処理モジュールＬ（ｉ）とＤＲＡＭ２２上の言語処理モジュールが一致している場合は、コピーする処理はなく、ステップＳＴ１５でその言語処理モジュールＬ（ｉ）に基づきＣＰＵコア２１が処理を行い、印刷データ５２を解釈して中間コードに変換するなどの必要な処理を行う。例えば、ＤＲＡＭ２２に言語処理モジュールＬ（２）がコピーされている場合に、ＥＳＣ／Ｐａｇｅ言語に基づく入力データφ１が送信されると、ＤＲＡＭ２２上の言語処理モジュールＬ（２）がそのまま実行され、印刷データ５２の解釈等の処理が行われる。
【００３９】
なお、所定の言語処理モジュールを実行することにより得られた中間コードはＳＤＲＡＭ１６に記憶される。この中間コードは、ＣＰＵコア２１が描画モジュール３４を実行することにより、描画データφ２に変換される。変換された描画データφ２はビデオインターフェース回路１７を介して印刷機構２に供給されて印刷用紙上に印刷される。
【００４０】
このようにプリンタ１では、ジョブの開始時に、ＲＯＭ１４に記憶されている複数の言語処理モジュールＬ（ｉ）のうち、ホストから送信される入力データφ１に適応した言語処理モジュールのみをＣＰＵチップ１３のＤＲＡＭ２２にコピーした上でＣＰＵコア２１で実行して印刷ジョブを行うようにしている。このため、サイズの大きな複数の言語処理モジュールを全てＤＲＡＭ２２にコピーすることはないので、ＣＰＵチップ１３上に予め用意されている小容量のＤＲＡＭ２２に所定の言語処理モジュールを含めたプログラムモジュールをコピーし、高速で実行できる。従って、言語処理モジュールの処理も含めた全体の処理時間を大幅に短縮できる。このため、大容量の高速メモリを用いることなく、入力データφ１を処理して高速で印刷できる高性能で低コストなプリンタを提供できる。
【００４１】
また、ジョブの開始時にＤＲＡＭ２２上の言語処理モジュールが更新された後は、ジョブの実行中にその言語処理モジュールを更新してＣＰＵコア２１で実行可能な状態にする処理が行われることはないので、プリンタの処理速度を向上する上でより有効である。特に、言語処理モジュールが圧縮された状態でＲＯＭ１４に格納されている場合は、ＤＲＡＭ２２にコピーする際にそのモジュールを解凍あるいは伸張する処理が行われるが、ジョブの実行中にこのような処理が行われることはないので、プリンタの処理速度の低下を防ぐことができる。
【００４２】
入力データφ１に適応した言語処理モジュールを選択してＤＲＡＭ２２にコピーする処理においては、ＴＬＢ２３のアドレス変換の結果に基づき行うことも可能である。すなわち、ＴＬＢ２３においてＤＲＡＭ２２の物理アドレスが見当たらないときに発生するＴＬＢミスをモジュール管理部６０の選択機能６３が把握し、このＴＬＢミスに基づきＤＲＡＭ２２にコピーする対象の言語処理モジュールＬ（ｉ）を決定するようにしても良い。図６にはその処理のフローチャートを示してある。なお、以下の説明では、ＥＳＣ／Ｐａｇｅ言語に適応した言語処理モジュールＬ（２）がＤＲＡＭ２２にコピーされているものとして説明する。
【００４３】
まず、ステップＳＴ２１でホストから出力されたＰＣＬ言語に基づく入力データφ１を受信すると、ＣＰＵコア２１の論理アドレス空間４５に割り付けられているＰＣＬ言語用の言語処理モジュールＬ（１）がアクセスされる。言語処理モジュールＬ（１）はＲＯＭ１４の物理アドレス空間にあり、ＤＲＡＭ２２の物理アドレス空間にはない。このため、ＴＬＢ２３でＤＲＡＭ２２の物理アドレスに変換することができず、ＴＬＢミスとなり、ＣＰＵコア２１で実行すべき言語処理モジュールがＤＲＡＭ２２で実行できないことが判断される。このＴＬＢミスが発生すると、割り込み処理が発生して、ステップＳＴ２２からステップＳＴ２３に移行する。
【００４４】
ステップＳＴ２３では、モジュール管理部６０は、ＴＬＢミスが発生したＰＣＬ言語用の言語処理モジュールＬ（１）を選択し、この選択した言語処理モジュールＬ（１）をＲＯＭ１４からＤＲＡＭ２２にコピーする。これにより、ＤＲＡＭ２２上のＥＳＣ／Ｐａｇｅ言語用の言語処理モジュールＬ（２）がＰＣＬ言語用の言語処理モジュールＬ（１）に置き変えられる。このコピー処理に前後して、論理アドレス空間４５の言語処理モジュールＬ（１）の論理アドレスをＤＲＡＭ２２の物理アドレス空間５０の言語処理モジュールＬ（１）の物理アドレスに変換できるようにＴＬＢ２３のアドレス変換の設定が変更され、新たなＰＣＬ言語用の言語処理モジュールＬ（１）をＤＲＡＭ２２上で実行可能にする。この後、ＣＰＵチップ１３の割り込み処理は終了し、ＣＰＵチップ１３はステップＳＴ２４に移行し、ＤＲＡＭ２２上の言語処理モジュールＬ（１）が実行する。従って、ＰＣＬ言語で記述された入力データφ１がＣＰＵコア２１で解釈されて中間コードに変換される。
【００４５】
一方、ステップＳＴ２１でホストから出力されたＥＳＣ／Ｐａｇｅ言語に基づく入力データφ１を受信すると、ＣＰＵコア２１の論理アドレス空間４５に割り付けられている言語処理モジュールＬ（２）がアクセスされる。この言語処理モジュールＬ（２）はＤＲＡＭ２２の物理アドレス空間５０に割り付けられているので、ＴＬＢ２３によって、論理アドレス空間４５における言語処理モジュールＬ（２）の論理アドレスがＤＲＡＭ２２の物理アドレス空間５０における言語処理モジュールＬ（２）の物理アドレスにアドレス変換される。すなわち、ステップＳＴ２２でＴＬＢ２３によるアドレス変換が正常に行われてＴＬＢミスが発生せず、ＣＰＵコア２１で実行すべき言語処理モジュールがＤＲＡＭ２２上で実行できることが判断される。ステップＳＴ２２でＴＬＢミスが発生しないので、先に説明したような割り込み処理が実行されることなく、ステップＳＴ２４でＤＲＡＭ２２上の言語処理モジュールＬ（２）がＣＰＵコア２１で実行され、入力データφ１が解釈されて中間コードに変換される。
【００４６】
［その他の実施の形態］
上述したプリンタ１では、ＲＯＭ１４に記憶されている複数のプログラムモジュールのコピー先をＤＲＡＭ２２としているが、この代わりに、印刷データの記憶用等として使用されているＳＤＲＡＭ１６の一部を各プログラムモジュールのコピー先としても良い。勿論、ＤＲＡＭ２２とＳＤＲＡＭ１６の双方を部分的にプログラムモジュールのコピー先としても良い。また、ＲＡＭや高速ＲＯＭを新たに追加しても良く、本例では、これらのメモリを追加する場合でもそのメモリとしては小容量のもので良いのでコストアップを抑制できる。
【００４７】
また、上記の例では、新たなジョブを処理し始める際にジョブに適合した言語処理モジュールを決定する処理を、ジョブのヘッダー情報、またはＴＬＢのアドレス変換の結果を用いて行う例を説明したが、これらに代えて、最適な言語処理モジュールを特定可能な言語自動判別処理の結果を用いることも可能である。すなわち、モジュール管理部６０の選択機能６３で言語処理判別処理を行い最適な言語処理モジュールを特定するようにすれば良い。なお、言語自動判別処理の技術は、例えば、特開平１−６４０２９号公報に開示されている。この公開公報に開示された技術は、各記述言語の特徴的なコマンドをポイント数付けしたテーブル等を各記述言語毎に用意した上で、ホストから送信された印刷データを各記述言語と想定したとき、用意したテーブルに基づいて各記述言語が何ポイントを得るかを算出して最も確立的に高いものを正しい記述言語として特定するものである。
【００４８】
さらに、前述した処理を実行可能な命令を備えたプログラムは、ＩＰＬ１２ａの一部、あるいはジョブ管理モジュールとしてＲＯＭ１２に収納して提供することが可能である。また、ＲＯＭにインストールできるようにフロッピーディスク等の記録媒体を介して提供することができる。さらにまた、これらのプログラムをインターネット等のコンピュータネットワークを介して提供することも可能である。
【００４９】
【発明の効果】
以上説明したように、本発明においては、種類の異なる記述言語の各々に対応する複数の言語処理モジュールを備えた印刷装置であっても、ＲＡＭにコピーして実行可能にする言語処理モジュールを１つに限定するようにしている。このようにすれば、ＲＡＭ上にはジョブに適合した１つの言語処理モジュールをコピーしておくだけで確実に実行できるので、大容量の高速メモリでなくとも、入力データに基づく処理を高速で行うことができ、印刷装置全体としての処理スピードを速くできる。
【００５０】
また、ＲＡＭで実行する言語処理モジュールは１つに限定されているので、搭載されているＲＡＭの一部を利用したり、小容量の低価格なＤＲＡＭを追加するだけで良く、製品のコストアップを引き起こすこともない。さらに、小容量のＤＲＡＭを用意することによって高速化を図れるので、さらに若干高価ではあるがアクセススピードの速いＳＤＲＡＭを採用してもそれ程のコストアップにならず、その一方で大幅にスピードアップできる。また、小容量のメモリで効果が得られるので、ＣＰＵチップに内蔵されたＤＲＡＭをコピー先として選択することができ、さらに大幅なスピードアップを図れる。よって、低コストで処理能力に優れた印刷装置を提供できる。
【００５１】
また、新たなジョブの開始時にジョブに適合する言語処理モジュールをＲＡＭにコピーしてＣＰＵで実行可能な状態にすることにより、ジョブの実行中に言語処理モジュールを更新する処理が不要となる。特に、言語処理モジュールが圧縮されてＲＯＭ等に収納されている場合は、圧縮されている言語処理モジュールを解凍あるいは伸張する処理も不要となる。従って、入力データを解釈して描画データに変換する処理時間をより短縮できる。
【図面の簡単な説明】
【図１】本発明を適用したプリンタの概略構成図である。
【図２】図１に示すプリンタのメモリ管理部を説明するための図である。
【図３】プリンタにおける電源投入時の動作を示すフローチャートである。
【図４】プリンタにおけるＤＲＡＭ上の言語処理モジュールを置き換える処理を示すフローチャートである。
【図５】入力データの概略構成を示す図である。
【図６】プリンタにおけるＤＲＡＭ上の言語処理モジュールを置き換える処理の異なる例を示すフローチャートである。
【符号の説明】
１・・プリンタ
２・・印刷機構
３・・データ処理装置
４・・メモリバス
５・・ＣＰＵバス
１１・・入力インターフェース回路
１２・・ＲＯＭ
１２ａ・・ＩＰＬ
１３・・ＣＰＵチップ
１４・・ＲＯＭ
１４ａ・・実行用プログラム
１５・・メモリコントローラ
１６・・ＳＤＲＡＭ
２１・・ＣＰＵコア
２２・・ＤＲＡＭ
２３・・ＴＬＢ
４５・・論理アドレス空間
５０・・物理アドレス空間
６０・・モジュール管理部
６１・・コピー機能
６２・・アドレス変換機能
６３・・選択機能
Ｌ（ｉ）・・言語処理モジュール
φ１・・入力データ
φ２・・描画データ
【図１】
0003622525.tif 000002
【図２】
0003622525.tif 000003
【図３】
0003622525.tif 000004
【図４】
0003622525.tif 000005
【図５】
0003622525.tif 000006
【図６】
0003622525.tif 000007