(57)【特許請求の範囲】
【請求項１】
入力された印刷データを受信する受信バッファ領域と、前記受信バッファ領域に受信された印刷データがプリントヘッドで印字可能なイメージデータに展開される使用領域とを有するメモリの、当該使用領域を管理するプリンタのメモリ管理方法であって、
前記印刷データに基づいて印刷情報を解析する解析ステップと、
前記印刷情報に基づいて前記メモリの使用領域を割り当てる領域割当ステップとを備え、
前記解析ステップは、前記印刷データ中の印刷モード情報に基づいてキャラクタデータを印刷するキャラクタモードであるかラスタイメージデータを印刷するラスタモードであるかを判定する印刷モード判定ステップを備え、
前記領域割当ステップは、前記キャラクタモードであると判定された場合には該キャラクタモードに固有の固有使用領域とイメージデータの展開に用いるイメージ領域とを前記使用領域として前記メモリにそれぞれ設定する一方、前記ラスタモードであると判定された場合には前記固有使用領域を設定することなくイメージデータの展開に用いるイメージ領域を前記使用領域として前記メモリに設定する使用領域設定ステップを備えたことを特徴とするプリンタのメモリ管理方法。
【請求項２】
前記解析ステップは、更に、前記印刷データ中の解像度情報に基づいて印刷の解像度を判定する解像度判定ステップを備えてなり、
前記領域割当ステップは、更に、前記イメージ領域内に前記解像度に応じたバッファ容量を有するイメージバッファを設定するイメージバッファ設定ステップを備えていることを特徴とする請求項１に記載のプリンタのメモリ管理方法。
【請求項３】
前記使用領域設定ステップは、初期状態として、前記キャラクタモードに固有の固有使用領域と前記イメージデータの展開に用いるイメージ領域とを前記使用領域として前記メモリにそれぞれ設定することを特徴とする請求項１に記載のプリンタのメモリ管理方法。
【請求項４】
前記領域割当ステップは、前記メモリ中の変動アドレス領域に前記使用領域を設定することを特徴とする請求項２〜請求項３のいずれかに記載のプリンタのメモリ管理方法。
【請求項５】
前記メモリを予め複数のブロックに区画しておき、該各ブロックのアドレス及びブロック使用状態を管理するメモリ管理手段を設け、
前記領域割当ステップは、前記メモリ管理手段によって管理される前記ブロック単位で、前記使用領域を設定することを特徴とする請求項２〜３のいずれかに記載のプリンタのメモリ管理方法。
【請求項６】
入力された印刷データを受信する受信バッファ領域と、前記受信バッファ領域に受信された印刷データがプリントヘッドで印字可能なイメージデータに展開される使用領域とを有するメモリの、当該使用領域を管理するプリンタのメモリ管理装置であって、
前記印刷データに基づいて印刷情報を解析する解析手段と、
前記印刷情報に基づいて前記メモリの使用領域を割り当てる領域割当制御手段とを備え、
前記解析手段は、前記印刷データ中の印刷モード情報に基づいてキャラクタデータを印刷するキャラクタモードであるかラスタイメージデータを印刷するラスタモードであるかを判定する印刷モード判定手段を備えてなり、
前記領域割当制御手段は、前記キャラクタモードであると判定された場合には該キャラクタモードに固有の固有使用領域とイメージデータの展開に用いるイメージ領域とを前記使用領域として前記メモリにそれぞれ設定する一方、前記ラスタモードであると判定された場合には前記固有使用領域を設定することなくイメージデータの展開に用いるイメージ領域を前記使用領域として前記メモリに設定する使用領域設定手段を備えたことを特徴とするプリンタのメモリ管理装置。
【請求項７】
前記解析手段は、更に、前記印刷データ中の解像度情報に基づいて印刷の解像度を判定する解像度判定手段とを備えてなり、前記領域割当制御手段は、更に、前記イメージ領域内に前記解像度に応じたバッファ容量を有するイメージバッファを設定するイメージバッファ設定手段とを備えていることを特徴とする請求項６に記載のプリンタのメモリ管理装置。
【請求項８】
前記メモリを予め複数のブロックに区画して該各ブロックのアドレス及びブロック使用状態を管理するメモリ管理手段を設け、前記領域割当制御手段は、前記メモリ管理手段によって管理される前記ブロック単位で、前記使用領域を設定することを特徴とする請求項７に記載のプリンタのメモリ管理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えばインクジェットプリンタ等のプリンタにおけるメモリの管理方法及び管理装置に関する。
【０００２】
【従来の技術】
インクジェットプリンタ等のシリアルプリンタでは、ホストコンピュータから受信した印刷データを解釈することにより、最終的な印字に必要なイメージデータをイメージメモリに展開している。例えば、印刷モードには、文字を印刷するキャラクタモードと、イメージを印刷するラスタモードとがあり、各印刷モードに応じて、イメージメモリにイメージデータが展開される。即ち、イメージメモリに画成された複数のイメージバッファ内に印刷出力されるべきイメージデータがそれぞれ格納され、これら各イメージバッファ内のイメージデータを順次プリントヘッドに送信することにより、シリアル印字が実行される。
【０００３】
ここで、例えば、ホストコンピュータからの印刷データを受信する受信バッファメモリ、最終的なイメージデータを展開するための展開バッファメモリ、各種変数を記憶する変数メモリ等のように、記憶すべきデータ種別毎にそれぞれ別体のメモリを用いたのでは、構造が複雑化して製造コストが上昇する。
【０００４】
そこで、通常は、図９に示す如く、ＲＡＭ等のメモリ５００に各種のデータを記憶するための領域をそれぞれ設定している。具体的には、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）使用領域５１０は、印刷データを一時的に記憶するための受信バッファとして用いられると共に、プリンタシステム上使用される使用領域である。共通使用領域５２０は、キャラクタモード及びラスタモードの両方で使用するデータ、変数を記憶するための使用領域である。キャラクタモード固有使用領域５３０は、例えば、一行分のイメージデータを展開するのに用いるラインバッファ、ホストコンピュータからダウンロードされるＡＮＫ文字等のデータを記憶するダウンロード領域、キャラクタイメージを発生させる文字発生用のワークエリア等として用いられる使用領域である。イメージ領域５４０は、最終的なイメージデータを展開するための使用領域であり、複数のイメージバッファ５４１〜５４７が画成されている。そして、ラスタイメージデータを印刷するラスタモードの場合にも、このイメージ領域５４０内のイメージバッファ５４１〜５４７にイメージデータが展開される。
【０００５】
【発明が解決しようとする課題】
従来技術では、メモリ５００上に、ＢＩＯＳ使用領域５１０、共通使用領域５２０、キャラクタモード固有使用領域５３０及びイメージ領域５４０をそれぞれ設定し、印刷に必要な各種データ等の記憶を行っているが、これらの各使用領域５１０〜５４０は、メモリ５００のアドレスが予め固定的に割り当てられることにより形成されている。また、イメージ領域５４０内に形成されるイメージバッファの設定数も、予め定められた固定値である。従って、従来技術では、キャラクタモード及びラスタモードのいずれの場合も、同一のバッファ容量を有する同一設定数のイメージバッファ５４１〜５４７を用いて、イメージデータの展開を行っている。
【０００６】
従来技術のように、メモリ５００の使用領域等を予め固定的に定めておけば、各領域５１０〜５４０の開始アドレスは固定されるため、これら各固定アドレスを用いてデータ入出力プログラム等を容易に作成することができる。しかし、メモリ５００の使用領域等を固定化すると、メモリ５００の使用効率が低下するばかりか、印刷出力のスループットの向上を図ることができなくなる。
【０００７】
即ち、例えば、キャラクタモード固有使用領域５３０は、専らキャラクタモードでのみ使用される領域であり、ラスタイメージデータを印刷するラスタモード時には使用されない。従って、ラスタモード時において、キャラクタモード固有使用領域５３０は、メモリ資源を無駄に消費していることになり、何ら印刷に寄与していない。
【０００８】
また、プリントヘッドは各イメージバッファ５４１〜５４７が記憶したイメージデータを読み出して印刷を実行するため、印刷出力のスループットはイメージバッファの設定数に依存する。一方、印刷に必要なイメージバッファのバッファ容量は、印刷モードや印刷解像度によって異なるため、イメージ領域５４０に設定可能なイメージバッファ設定数も異なる。しかし、従来技術では、印刷モード等に拘わらず利用可能なイメージバッファの設定数は一定であるため、印刷出力のスループット向上を図ることができないという問題がある。
【０００９】
本発明は、上述した課題に鑑みなされたもので、その目的は、プリンタのメモリを効率的に使用することができ、印刷出力のスループットを向上できるようにしたプリンタのメモリ管理方法及びメモリ管理装置を提供することにある。
【００１０】
【課題を解決するための手段】
上記目的を達成すべく、本発明では、印刷モードに応じてメモリの使用領域を動的に制御している。即ち、本発明に係るプリンタのメモリ管理方法は、印刷データに基づいて印刷情報を解析する解析ステップと、印刷情報に基づいて前記メモリの使用領域を割り当てる領域割当ステップと、を少なくともこの順序で実行することを特徴としている。
【００１１】
印刷情報とは、例えば、キャラクタ印刷やラスタイメージ印刷のような印刷のモードと印刷解像度等を含む概念である。解析された印刷情報に基づいてメモリの使用領域を割り当てることにより、印刷に不要な使用領域をメモリ上に確保することがなく、当該印刷に最適なメモリ空間を提供することができる。
【００１２】
また、本発明では、解析ステップは、印刷モード及び解像度を印刷情報として解析し、領域割当ステップは、前記印刷モードに基づいてメモリの使用領域を設定すると共に、当該使用領域内に前記解像度に基づいてイメージバッファを設定することを特徴としている。
【００１３】
これにより、印刷モードに基づいてメモリの使用領域を動的に割り当てることができると共に、解像度に基づいてイメージバッファを設定するため、イメージバッファを使用領域の容量内で最大限に形成することができる。つまり、例えば、３６０×３６０ＤＰＩ、７２０×７２０ＤＰＩのように、印刷の解像度によって必要となるイメージバッファのバッファ容量は異なるが、この印刷に必要なバッファ容量でイメージバッファを設定できるため、印刷解像度に応じてイメージバッファの設定数を動的に制御することができる。
【００１４】
また、好ましい実施例では、解析ステップは、印刷データ中の印刷モード情報に基づいてキャラクタデータを印刷するキャラクタモードであるかラスタイメージデータを印刷するラスタモードであるかを判定する印刷モード判定ステップと、前記印刷データ中の解像度情報に基づいて印刷の解像度を判定する解像度判定ステップとを備えてなり、領域割当ステップは、前記キャラクタモードであると判定された場合には該キャラクタモードに固有の使用領域とイメージデータの展開に用いるイメージ領域とを使用領域としてメモリにそれぞれ設定する一方、前記ラスタモードであると判定された場合にはイメージデータの展開に用いるイメージ領域を前記使用領域として前記メモリに設定する使用領域設定ステップと、前記イメージ領域内に前記解像度に応じたバッファ容量を有するイメージバッファを設定するイメージバッファ設定ステップとを備えていることを特徴としている。
【００１５】
キャラクタデータを印刷するキャラクタモードとラスタイメージデータを印刷するラスタモードとでは、メモリ上に作成すべき領域が異なる。そこで、キャラクタモード時には、イメージ領域と、例えば、フォント展開用のワークエリアやラインバッファ等のキャラクタモードに固有の使用領域とを設定し、ラスタモード時にはイメージ領域を設定する。これにより、印刷モードに応じて、メモリを効率的に使用することができる。
【００１６】
請求項３に係る発明のように、使用領域設定ステップは、初期状態として、キャラクタモードに固有の使用領域とイメージデータの展開に用いるイメージ領域とを使用領域としてメモリにそれぞれ設定することもできる。
【００１７】
つまり、キャラクタモード用のメモリ領域設定を初期設定値としておくことにより、印刷モードの判定をすることなく、速やかに印刷頻度の高いキャラクタモードの印刷を実行することができる。
【００１８】
また、請求項４に係る発明のように、前記領域割当ステップは、前記メモリ中の変動アドレス領域に前記使用領域を設定するのが好ましい。これにより、必要なメモリ量に基づいて使用領域を確保できる。
【００１９】
具体的には、請求項５に係る発明のように、前記メモリを予め複数のブロックに区画しておき、該各ブロックのアドレス及びブロック使用状態を管理するメモリ管理手段を設け、前記領域割当ステップは、前記メモリ管理手段によって管理される前記ブロック単位で、前記使用領域を設定することが好ましい。
【００２０】
例えば、所定のバイト単位でメモリを多数のブロックに区切っておき、各ブロックのアドレスと各ブロックの使用状態とを、メモリ管理手段に管理させる。ここで、「ブロック使用状態」とは、ブロックが使用されているか否か、一連のブロックが何のため（例えば、イメージ展開用）に使用されているか等を含む意味である。従って、領域割当ステップは、使用領域の設定に際して、メモリ管理手段に対し、空いている一連のブロックの有無を問い合わせ、メモリ管理手段からの応答（一連の空きブロックのアドレス、該各ブロックの使用許可等）を得て、必要な使用領域を設定する。
【００２１】
【発明の実施の形態】
以下、図面に基づき本発明の実施の形態について詳細に説明する。まず、図１は、本発明が適用されるシリアルプリンタのブロック図である。シリアルプリンタは、プリンタコントローラ１とプリントエンジン２とから大略構成される。プリンタコントローラ１は、ホストコンピュータ３からの印刷データ等を受信するインターフェース（以下「Ｉ／Ｆ」という）４と、印刷データ等を記憶すると共に作業領域を提供するＲＡＭ５と、各種制御プログラム等を記憶したＲＯＭ６と、ＲＯＭ６に記憶されたプログラムに従って各種のデータ処理等を実行する制御部７と、プリンタコントローラ１とプリントエンジン２との間の通信を行うＩ／Ｆ８とを備え、これら各Ｉ／Ｆ４，８、ＲＡＭ５、ＲＯＭ６及び制御部７はバス９を介して相互に接続されている。
【００２２】
一方、プリントエンジン２は、プリントヘッド１０と、キャリッジ機構１１と、紙送り機構１２とを備えて構成されている。プリントヘッド１０には、例えば６４個あるいは１２８個の複数のノズルが副走査方向（紙送り方向）に列設されており、シリアルプリントヘッドとして構成されている。そして、各ノズル毎に設けられた圧電振動子あるいは発熱素子等のインク滴吐出機構によって、各ノズルからはイメージデータに応じてインク滴が吐出され、このインク滴が印刷記憶媒体としての記録紙に着弾して付着することにより、印刷が行われる。キャリッジ機構１１は、プリントヘッド１０を搭載したキャリッジと、該キャリッジを駆動するキャリッジモータ等の駆動機構とを備えてなり、プリントヘッド１０を副走査方向と直交する主走査方向に駆動させるものである。紙送り機構１２は、紙送りローラと、該ローラを駆動する紙送りモータ等の駆動機構を備えてなり、記録紙を所定ピッチで移動させるものである。
【００２３】
図２は、プリンタコントローラ１の内部機能を示す機能ブロック図である。まず、ホストコンピュータ３から送信された印刷データは、受信バッファ２０に記憶される。この受信バッファ２０は、後述するように、「メモリ」としてのＲＡＭ５の所定の領域に形成されるものであるが、図２では説明の便宜上、受信バッファ２０とＲＡＭ５とを分離して図示している。
【００２４】
この受信バッファ２０に記憶された印刷データは、解析部２１によって「印刷情報」としての印刷モード及び印刷解像度が解析される。解析部２１は、主として制御部７により具現化されるもので、その内部には、印刷モードを判定する印刷モード判定手段２２と、印刷解像度を判定する解像度判定手段２３とが設けられている。
【００２５】
ここで、印刷モードには、ラスタイメージデータを印刷するラスタモードと、キャラクタデータを印刷するキャラクタモードとがあり、図３に示すように、各印刷モードによって印刷データの構造等が異なる。ラスタモードの場合は、ヘッダ情報として、「印刷モード情報」としてのデータ種別情報ＲＤ１、圧縮モード情報ＲＤ２、解像度情報ＲＤ３及びラスタ高さ情報ＲＤ４の各情報が加わり、この後にラスタデータＲＤ５が続く構造となる。ここで、データ種別情報ＲＤ１は、例えば、「ＥＳＣ・」のように、印刷データの種類毎に異なる制御コードによって示される。圧縮モード情報ＲＤ２は、圧縮方法を示す２ビットデータによって示される。解像度情報ＲＤ３は、例えば、１８０×１８０ＤＰＩ、３６０×３６０ＤＰＩ、７２０×７２０ＤＰＩのように、縦の印刷解像度と横の印刷解像度とからなる。ラスタ高さ情報ＲＤ４は、ラスタの高さ、即ち、何ドットライン分のラスタデータであるかを示す。一方、キャラクタモードの場合は、キャラクタデータＣＤ３に対して、データ種別情報ＣＤ１及び属性情報ＣＤ２がヘッダ情報として付加された構造となっている。属性情報ＣＤ２は、例えば、縦倍角、イタリック等の文字の属性を示す情報である。
【００２６】
従って、解析部２１は、印刷データのヘッダ情報に基づいて印刷モード及び印刷解像度を解析することができる。具体的には、印刷モード判定部２２は、データ種別情報ＲＤ１またはＣＤ１に基づいて、印刷モードがラスタモードであるかキャラクタモードであるかを判定する。この印刷モード判定結果は、後述の使用領域設定部３２に出力される。解像度判定部２２は、解像度情報ＲＤ３に基づいて印刷解像度を判定する。ここで、本実施の形態では、キャラクタモード時の印刷解像度を例えば３６０×３６０ＤＰＩに固定しているため、キャラクタモードであると判定された場合は、印刷解像度は前記固定値であると判定される。
【００２７】
領域割当制御部３１は、解析部２１の解析結果に応じてＲＡＭ５に設定する各使用領域を制御するもので、制御部７によって具体化される。領域割当制御部３１は、使用領域設定部３２とイメージバッファ設定部３２とを備えている。後述のように、使用領域設定部３２は、印刷モードに応じて、ＲＡＭ５にイメージ領域等の使用領域を設定するものである。また、イメージバッファ設定部３３は、印刷解像度に応じて、イメージ領域内に複数のイメージバッファを設定するものである。なお、イメージバッファを「印刷単位イメージデータ格納領域」として表現することもできる。
【００２８】
ＲＡＭ５は、アドレスが固定された固定アドレス領域４０とアドレス変更が可能な変動アドレス領域５０とに大別されており、固定アドレス領域４０には、ＢＩＯＳ使用領域４１と共通使用領域４２とが固定的に設定されている。従来技術で述べたと同様に、ＢＩＯＳ使用領域４１は、例えば、システム上使用する領域及び受信バッファ２０とからなり、共通使用領域４２は、キャラクタモード及びラスタモードの両方で共通に使用する変数等を記憶する領域である。変動アドレス領域５０には、印刷モードに応じて、キャラクタモード固有使用領域５１とイメージ領域５２とが設定される。
【００２９】
即ち、図４に示すように、キャラクタモードの場合は、キャラクタモード固有使用領域５１とイメージ領域５２とが設定される。キャラクタモード固有使用領域５１は、例えば、一行分のイメージデータを展開するのに用いるラインバッファ、ホストコンピュータからダウンロードされるＡＮＫ文字等のデータを記憶するダウンロード領域、キャラクタイメージを発生させる文字発生用のワークエリア等として用いられるものである。イメージ領域５２は、最終的な印刷に必要なイメージデータを展開する領域であり、複数のイメージバッファ６１が設定されている。ここで、各イメージバッファ６１は、例えば、３６０×３６０ＤＰＩの印刷解像度で、１２８ビット等のノズル数に応じたメモリ高さと８０桁のメモリ幅とをそれぞれ得られるように設定されている。
【００３０】
一方、ラスタモードの場合、変動アドレス領域５０には、イメージ領域５３が設定される。換言すれば、キャラクタモード時のイメージ領域５２がキャラクタモード固有使用領域５１まで拡張されることになる。ラスタモードの場合、拡大されたイメージ領域５３には、各印刷解像度に応じたバッファ容量をもって各イメージバッファ６１が設定される。つまり、図７の説明図に示すように、１８０×１８０ＤＰＩ、３６０×３６０ＤＰＩ、７２０×７２０ＤＰＩの各印刷解像度に応じてイメージバッファ６１に要求されるバッファ容量は異なるため、イメージ領域５３内に形成可能なイメージバッファ６１の設定数も異なる。本実施の形態では、イメージバッファ設定部３３によって、イメージ領域５３内にイメージバッファ６１が最大限設定される。
【００３１】
画像処理部７０は、印刷データ中のラスタデータＲＤ５、キャラクタデータＣＤ３に必要な処理を行ってイメージデータを作成し、このイメージデータをＲＡＭ５に設定されたイメージ領域５２，５３に格納するものである。この画像処理部７０は、制御部７によって具体化されるもので、例えば、キャラクタデータの場合には、キャラクタコードに基づいてキャラクタイメージを生成し、必要な装飾処理を行ってイメージ領域５２に書き込む。
【００３２】
次に、本実施の形態の作用を説明する。図５は本実施の形態による使用領域の設定処理及びイメージバッファ設定処理を示す流れ図である。
【００３３】
まず、電源投入によって本設定処理は開始され、ステップ（以下「Ｓ」と略記する）１では、印刷モードの判定を行うことなく、ＲＡＭ５に対してキャラクタモード用の使用領域を設定する。即ち、プリンタのデフォルト値としてキャラクタモードが設定されているため、印刷頻度の高いキャラクタ印刷を速やかに開始することができる。
【００３４】
Ｓ２では、受信バッファ２０から印刷データを読み出し、この印刷データを解析することにより、ラスタモードに移行したか否かを判定する。キャラクタモードの場合は、既にＳ１によってキャラクタモード用の使用領域設定がなされているため、Ｓ３では、キャラクタデータをイメージデータに展開し、各イメージバッファ６１を順番に読み出すことにより、キャラクタ印刷を行う。
【００３５】
一方、ラスタモードに移行した場合には、Ｓ２では「ＮＯ」と判定されてＳ４に移り、Ｓ１でキャラクタモード用に設定された使用領域が解放される。上述した通り、ラスタモードには３種類の印刷解像度が用意されているため、ラスタモードへの移行によって印刷解像度が変更された可能性がある。そこで、Ｓ５では、解像度情報ＲＤ３に基づいて印刷解像度に変更が生じたか否かを判定する。印刷解像度に変更がない場合、即ち、キャラクタモード時の印刷解像度と一致する場合は、Ｓ５では「ＮＯ」と判定されて後述のＳ８に移り、ラスタイメージの印刷を実行する。一方、印刷解像度に変更が生じた場合、Ｓ６では、使用領域を解放し、Ｓ７では、新たな印刷解像度に応じたバッファ容量でイメージバッファ６１を最大限設定する。そして、Ｓ８では、イメージバッファ６１に展開して記憶されたイメージデータを読み出してラスタイメージの印刷を実行し、Ｓ９では、キャラクタモードに移行したか否かを判定する。キャラクタモードに移行していない場合、即ち、ラスタモードの印刷が続行される場合は、Ｓ９では「ＮＯ」と判定されて前記Ｓ５に戻り、印刷解像度の変更が判定される。従って、印刷解像度の異なるラスタイメージを印刷する場合でも、Ｓ５で印刷解像度の変更が判定されると共に、Ｓ６で使用領域が解放されるため、常に、印刷解像度に応じたバッファ容量でイメージバッファ６１を最大限設定することができる。
【００３６】
さて、キャラクタモードに移行した場合は、前記Ｓ９で「ＹＥＳ」と判定されてＳ１０に移り、Ｓ１０では、使用領域を解放してＳ１に戻る。これにより、Ｓ１では、ＲＡＭ５に対してキャラクタモード用の使用領域（キャラクタモード固有使用領域５１及びイメージ領域５２）を設定する。
【００３７】
このように構成される本実施の形態によれば、印刷モードに基づいてＲＡＭ５に対する使用領域５１，５２，５３を設定し、印刷解像度に基づいてイメージバッファ６１を設定することができるため、図６に示すように、各印刷モードに応じてＲＡＭ５を効率的に利用することができる。即ち、ラスタイメージデータを印刷するラスタモード時には、キャラクタモード固有使用領域５１を解放して大容量のイメージ領域５３を設定することができため、印刷モードに応じてＲＡＭ５の使用領域を動的に制御することができ、メモリ増設等を行うことなく、利用可能なメモリ資源を増大させることができる。
【００３８】
また、イメージ領域５３内に、印刷解像度に応じたバッファ容量でイメージバッファ６１を最大限設定することができるため、印刷解像度に応じてイメージバッファ６１の設定数を動的に制御することができ、印刷出力のスループットを向上することができる。即ち、従来技術では、印刷解像度の相違によって要求バッファ容量が異なる場合でも、設定されるイメージバッファ数は固定されていたため、印刷出力のスループット向上を図ることができないが、本実施の形態では、印刷に要求されるバッファ容量をもってイメージバッファ６１を最大限設定することができる。従って、特に、印刷解像度が低い場合には、設定されるイメージバッファ数を増大させて印刷出力のスループットを向上することができる。
【００３９】
次に、図８に基づいて、メモリ管理の好ましい具体的態様を説明する。図８は、プリンタシステムの概念図である。プリンタシステムの制御構造は、メインモジュール７０、ＢＩＯＳ７１、ＯＳ（オペレーティングシステム）７２とから階層化されて構成されている。メインモジュール７０は、印刷制御プログラムの本体部分である。ＢＩＯＳ７１は、プリンタソフトウエアであるメインモジュール７０とプリンタハードウエア（プリンタエンジン２等）との間のインターフェースである。
【００４０】
ＯＳ７２は、「メモリ管理手段」に相当するものであり、タスク管理及びＲＡＭ５のメモリ管理を行うものである。タスク管理とは、印刷に際して実行される各処理単位（タスク）を管理するものである。例えば、印刷データを受信バッファ２０に書き込むタスク、印刷データを中間コードに展開するタスク、中間コードからイメージデータを作成するタスク、イメージデータをプリントエンジン２に対して出力するタスク等のように、印刷の各プロセス単位でタスクが設定されている。これら各タスクには、優先順位が予め割り当てられる。例えば、プリントエンジン２にイメージデータを出力するタスクに、ＣＰＵの使用権を優先的に与える等の如くである。各タスクは、自己の処理が終了すると、ＣＰＵの使用権を放棄する。これにより、他のタスクがＣＰＵの使用権を得て自己の処理を実行する。優先順位の高いタスクからＣＰＵ使用要求が生じた場合には、それが優先される。これにより、マルチタスク型のプリンタコントローラ１を得ることができる。
【００４１】
一方、ＯＳ７２は、ＲＡＭ５のメモリ管理を行う。ＲＡＭ５は、例えば、予め所定のバイト単位で多数のブロック７３に区切られている。ＯＳ７２は、全ブロック７２のアドレス及びブロック使用状態を管理している。ブロック使用状態とは、空きブロックのアドレス、一連の空きブロックの有無、使用中のブロックに書き込まれているデータの種別等である。
【００４２】
メインモジュール７０は、ラスタモードであるかキャラクタモードであるかの印刷モードに応じて、不要なブロック７２をＯＳ７２に返還し、必要な場合にはＯＳ７２に対して新たな空きブロックの使用を要求する。即ち、上述した各使用領域５１，５２，５３は、ブロック７２を単位として構成されており、これら各使用領域５１，５２，５３を構成するブロックのアドレス等はＯＳ７２が集中的に管理しているのである。従って、各使用領域５１，５２，５３の開始アドレスを容易に変動させることができる。
【００４３】
なお、当業者であれば、前記実施の形態に限らず、本発明の要旨の範囲内で、種々の追加、変更等を行うことができる。例えば、上述した使用領域設定処理及びイメージバッファ設定処理の全てあるいは一部を、図１中に示す記憶媒体ＭＭに記憶させておき、この記憶媒体ＭＭの内容を制御部７によって実行させることも可能である。記憶媒体ＭＭとしては、例えば、ＣＤ−ＲＯＭ、ＦＤ、ＲＯＭ、ＩＣカード等の有形的媒体に限らず、サーバからネットワークを介してダウンロードする等の通信媒体をも含む。
【００４４】
また、前記実施の形態では、メモリとして単一のＲＡＭ５を例示したが、本発明はこれに限らず、複数のＲＡＭを用いてイメージ領域を設定する場合にも適用することができる。
【００４５】
さらに、前記実施の形態では、インクジェットプリンタに適用する場合を例に挙げて説明したが、サーマルプリンタ等の他のシリアルプリンタ、ラインプリンタにも適用することができる。
【００４６】
【発明の効果】
以上説明した通り、本発明に係るプリンタのメモリ管理方法及びメモリ管理装置によれば、印刷情報に基づいてメモリの使用領域を動的に設定することができるため、メモリを効率的に使用することができる。また、印刷解像度に応じたバッファ容量をもってイメージバッファを動的に設定することができるため、印刷出力のスループットを向上することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態が適用されるシリアルプリンタのブロック図である。
【図２】プリンタコントローラ内の機能を示す機能ブロック図である。
【図３】印刷データの構造を示す説明図である。
【図４】メモリに設定される使用領域等を示す説明図である。
【図５】使用領域設定処理及びイメージバッファ設定処理を示す流れ図である。
【図６】キャラクタモードとラスタモードとによってメモリに設定される使用領域が異なる状態を比較して示す説明図である。
【図７】印刷解像度によってイメージバッファのバッファ容量及び設定数が異なる状態を比較して示す説明図である。
【図８】プリンタコントローラの制御システムの概念図である。
【図９】従来技術によるメモリの使用領域割当を示す説明図である。
【符号の説明】
１  プリンタコントローラ
２  プリントエンジン
３  ホストコンピュータ
５  ＲＡＭ
７  制御部
２０  受信バッファ
２１  解析部
２２  印刷モード判定部
２３  解像度判定部
３１  領域割当制御部
３２  使用領域設定部
３３  イメージバッファ設定部
４０  固定アドレス領域
４１  ＢＩＯＳ使用領域
４２  共通使用領域
５０  変動アドレス領域
５１  キャラクタモード固有使用領域
５２  イメージ領域（キャラクタモード）
５３  イメージ領域（ラスタモード）
６１  イメージバッファ
７０  メインモジュール
７１  ＢＩＯＳ
７２  ＯＳ
７３  ブロック
【図１】
0003562181.tif 000002
【図２】
0003562181.tif 000003
【図３】
0003562181.tif 000004
【図４】
0003562181.tif 000005
【図５】
0003562181.tif 000006
【図６】
0003562181.tif 000007
【図７】
0003562181.tif 000008
【図８】
0003562181.tif 000009
【図９】
0003562181.tif 000010