JP2002361944A - インクジェット記録装置の制御方法 - Google Patents

インクジェット記録装置の制御方法

Info

Publication number
JP2002361944A
JP2002361944A JP2001172077A JP2001172077A JP2002361944A JP 2002361944 A JP2002361944 A JP 2002361944A JP 2001172077 A JP2001172077 A JP 2001172077A JP 2001172077 A JP2001172077 A JP 2001172077A JP 2002361944 A JP2002361944 A JP 2002361944A
Authority
JP
Japan
Prior art keywords
data
cache
print
cache line
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2001172077A
Other languages
English (en)
Inventor
Hitoshi Kamoshita
斉 鴨志田
Susumu Saito
進 斉藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koki Holdings Co Ltd
Original Assignee
Hitachi Koki Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Koki Co Ltd filed Critical Hitachi Koki Co Ltd
Priority to JP2001172077A priority Critical patent/JP2002361944A/ja
Publication of JP2002361944A publication Critical patent/JP2002361944A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 キャッシュ機能を備えたマイクロプロセッサ
を用いて、キャッシュのヒット率の低下を防いでインク
ジェット記録装置の印刷制御を行う。 【解決手段】 印刷制御に用いたマイクロプロセッサの
キャッシュ方式がダイレクトマップ方式、またはセット
アソシアティブ方式である場合、印刷データの横幅の値
が、同じキャッシュラインを頻繁に書き換えるような値
である場合、前記印刷データの横幅の値を書き換えてか
ら印刷出力用データに並べ替えることにより、キャッシ
ュラインの書き換え回数を低減しキャッシュのヒット率
を向上させ、処理速度を向上させる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、上位ホストコンピ
ュータから印刷用データを受信し、印刷用データの解
析、展開を行い、印刷の制御を行うインクジェット記録
装置の制御方法に関するものである。
【0002】
【従来の技術】インクジェット記録装置のブロック図を
図12に示す。印刷機構部22は、インクを吐出する複
数のノズルを有するヘッド16と、1個または複数個の
前記ヘッド16を搭載するキャリッジ17と、前記キャ
リッジ17をガイドレール19に沿って印刷用紙18の
紙送り(縦)方向に対して直角(横)方向に移動させる
キャリッジモータ20と、印刷用紙を搬送するための紙
送りモータ21を備える。
【0003】印刷制御部23は、外部メモリ4およびマ
イクロプロセッサ8を備え、前記外部メモリ4は、上位
ホストコンピュータ3から受信した印刷データ14を格
納する受信バッファ5と、前記受信バッファ5に格納さ
れた印刷データ14を解析してビットマップイメージデ
ータにしたものを格納するフレームメモリ6と、前記フ
レームメモリ6のデータをヘッド16のノズル構成に合
わせて並べ替えた印刷出力用データを格納する印刷出力
用データバッファ7と、前記マイクロプロセッサ8が実
行するプログラム10を格納するエリアで構成されてい
る。
【0004】前記プログラム10は、主に、受信処理1
1、展開処理12、および印刷処理13で構成されてお
り、マイクロプロセッサ8が必要に応じて前記プログラ
ム10内の各処理を実行することで印刷制御部23が制
御される。
【0005】上位ホストコンピュータ3から送られてく
る印刷データ14はプログラム10内の受信処理11に
よって、受信バッファ5に格納される。前記印刷データ
14は、図12に示すようにヘッダとデータとで構成さ
れており、前記ヘッダを解析することで印刷データ14
のサイズ、印刷時に使用する色数などの情報を取得する
ことができる。印刷データ14の受信が完了すると、展
開処理12は受信バッファ5に格納されているデータを
解析して、印刷出力用データを作成するためのビットマ
ップイメージデータを作成してフレームメモリ6に格納
する。次に、展開処理12は、フレームメモリ6のデー
タを読み込んでヘッド16のノズル構成に合わせてデー
タを並べ替える処理を行って印刷出力用データを作成
し、印刷出力用データバッファ7に格納する。
【0006】印刷出力用データバッファ7に1スキャン
分の印刷出力用データが格納されると、印刷処理13
は、印刷機構制御部15に対して印刷動作の指示を行
う。前記指示により、印刷機構制御部15は、キャリッ
ジモータ20を駆動してキャリッジ17をガイドレール
19に沿ってスキャンさせ、前記印刷出力用データに合
わせてノズルからインクを吐出して印刷用紙18に印刷
を行う。1スキャン分の印刷が終了したら、紙送りモー
タ21を駆動して前記印刷用紙18を搬送する。その
間、前記展開処理12は、次のスキャンで使用する印刷
出力用データを作成する。以上の動作を全スキャン分行
ったら印刷を完了する。
【0007】次に、前記展開処理12の内容について、
図3と、前記説明で使用の図12により説明する。
【0008】(ステップ301)受信バッファ5内の印
刷データ14のヘッダを解析する。
【0009】(ステップ302)受信バッファ5内の印
刷データ14を解析して作成したビットマップイメージ
データをフレームメモリ6に格納する。
【0010】(ステップ303)ヘッド16のノズル構
成に合わせて印刷出力用データを作成するために、並べ
替えるデータが格納されているフレームメモリ6のメモ
リアドレスを算出する。
【0011】(ステップ304)ステップ303で得ら
れたフレームメモリ6のアドレスに格納されているデー
タを読み出す。
【0012】(ステップ305)ステップ304で読み
込んだデータを、搭載しているヘッド16のノズル構成
に合わせて印刷出力用データに並べ替える。
【0013】(ステップ306)前記作成した印刷出力
用データを印刷出力用データバッファ7に格納する。
【0014】(ステップ307)全データ分の印刷出力
用データの作成が完了したら展開処理12は終了であ
り、そうでなければ前記ステップ303からの処理を繰
り返す。
【0015】前記説明において、ステップ304では外
部メモリ4のフレームメモリ6からデータを読み込む
が、一般にマイクロプロセッサと外部メモリの動作速度
には差がある。そのため、マイクロプロセッサが外部メ
モリからデータを読み込んでいる間、マイクロプロセッ
サはその処理を一時中断しなければならず、処理速度の
低下を招いてしまう。
【0016】そこで、マイクロプロセッサと外部メモリ
の速度差を吸収し、見かけ上の速度差を無くすものがキ
ャッシュである。キャッシュはマイクロプロセッサの内
部に存在する高速のメモリであり、位置的にはマイクロ
プロセッサと外部メモリの中間に配置されている。キャ
ッシュには、データキャッシュと命令キャッシュがあ
り、データキャッシュにはマイクロプロセッサが一度ア
クセスした外部メモリ上のデータのコピーが格納され、
命令キャッシュにはマイクロプロセッサがアクセスした
外部メモリ上のプログラム命令のコピーが格納される。
マイクロプロセッサが次にそのデータやプログラム命令
にアクセスするときは、キャッシュに格納されているデ
ータやプログラム命令にアクセスすれば良い。
【0017】前記で説明の図12の例では、フレームメ
モリ6に格納されたデータを読み込む場合、マイクロプ
ロセッサ8がアクセスしたデータのコピーがキャッシュ
9に格納される。マイクロプロセッサ8が次にそのデー
タにアクセスする場合は、キャッシュ9に格納されたデ
ータへのアクセスになるのでデータアクセスが高速にな
るというものである。
【0018】前記キャッシュの方式には、ダイレクトマ
ップ方式、フルアソシアティブ方式、セットアソシアテ
ィブ方式などがある。図11にダイレクトマップ方式の
キャッシュの構成例を示す。キャッシュには、外部メモ
リのデータのコピーを格納するデータアレイと、そのデ
ータの外部メモリアドレスを格納するアドレスアレイを
有するキャッシュラインがある。図11は512本のキ
ャッシュラインC0〜C511で構成されている場合の
例を示している。アドレスアレイは、格納したデータの
外部メモリアドレスを格納するタグアドレスと、そのキ
ャッシュラインに有効なデータが格納されているか否か
を示すVビットで構成されている。データアレイは、前
記アドレスアレイに対応した外部メモリのデータのコピ
ーが格納される。
【0019】図11の例においては、1本のキャッシュ
ラインのデータアレイは、LW0〜LW7で示すデータ
ブロックで構成され、32バイト(8ロングワード)の
データを格納することができる。図11に示すアドレス
Aは、マイクロプロセッサがキャッシュへのアクセス用
に生成するアドレスであり、タグフィールド、インデッ
クスフィールド、オフセットフィールドで構成されてい
る。
【0020】前記タグフィールドは、外部メモリのアド
レスの上位ビットを、前記インデックスフィールドは、
タグフィールドに示される外部メモリのデータが格納さ
れているキャッシュラインを、前記オフセットフィール
ドは、該当するデータが格納されているデータアレイの
データブロックをそれぞれ示している。前記ダイレクト
マップ方式では、キャッシュラインと、メモリアドレス
が直接対応付けられており、この方式のキャッシュ機能
を有するマイクロプロセッサは、前記図11で説明のア
ドレスAのインデックスフィールドを見るだけで、キャ
ッシュ中の1つのキャッシュラインを特定することがで
きる。
【0021】一方、フルアソシアティブ方式では、キャ
ッシュラインとメモリアドレスが対応付けられているわ
けではなく、メモリアドレスは任意のキャッシュライン
に配置される。そのため、キャッシュラインを特定する
ためには、前記アドレスAのタグフィールドと各キャッ
シュラインとの比較を行う必要がある。
【0022】また、セットアソシアティブ方式では、数
組、または、数グループのキャッシュラインを特定のメ
モリ位置に配置する方式で、配置されたキャッシュライ
ンのグループ内では、ダイレクトマップ方式のようにキ
ャッシュラインとメモリアドレスが直接対応付けられて
いる。したがって、前記アドレスAからキャッシュライ
ンを特定するには、まず、グループを特定する必要があ
る。
【0023】前記の通り、ダイレクトマップ方式は、キ
ャッシュラインにあるタグアドレスと、アドレスAのタ
グフィールドを比較するだけでキャッシュヒットかキャ
ッシュミスかが判定できるため、キャッシュ内に格納さ
れているデータにアクセスする速度は前記三方式の中で
最も速い。また、単純な比較で済むため、マイクロプロ
セッサ内の比較器の数も少ないので低価格であるという
メリットもある。
【0024】次に、図12における前記印刷制御部23
の展開処理12について、具体例を図4、図5および、
前記説明でも使用の図12により説明する。
【0025】図4は、図12に示すヘッド16のノズル
構成を示しており、説明を簡単にするため横4列(L1
〜L4)、縦32ノズルの合計128ノズル(N1〜N
128)で構成されているものとする。図4に示す通
り、紙送り方向に対して最上端がL1(第1列目)のノ
ズルN1で、次がL2(第2列目)のノズルN33であ
り、その間隔は1ライン分である。このため、各列内の
32個のノズルの間隔は4ライン分になっている。
【0026】まず、受信処理11が上位ホストコンピュ
ータ3から印刷データ14を受信し、受信バッファ5に
格納する。次に、展開処理12は前記受信バッファ5に
格納されたデータを解析し、ビットマップイメージとし
てフレームメモリ6に格納する。前記ビットマップイメ
ージの例を図5に示す。図5は、横256バイト(バイ
ト列X1〜X256)、縦128ライン(Y1〜Y12
8)のビットマップイメージの例を示している。
【0027】前記ビットマップイメージの各バイトのア
ドレスは、左上隅を0とすると右方向に1、2、3…で
あり、右上隅のバイトアドレスが255である。第2ラ
イン(Y2)のバイトアドレスは左端が256から始ま
り、右方向に257、258、259…となり、右端は
511となる。第3ライン(Y3)以降のアドレスも同
様である。展開処理12では、ノズル構成とスキャン方
向を考慮し、各ノズルに対応したデータをフレームメモ
リ6から順に読み出す。
【0028】例えば、ヘッド16が左から右へスキャン
する場合、展開処理12の印刷出力用データの作成は、
図4の右端のノズル列L1に対応するフレームメモリ6
の読み出しから開始する。具体的には、ノズル列L1の
最上端に位置するノズルN1の印刷出力用データから作
成を開始する。このとき、ノズルN1が印刷するバイト
データとして、フレームメモリ6のバイト列X1にある
アドレス0のバイトデータを読み出す。
【0029】次に、ノズル列L1の上から2番目のノズ
ルN2の印刷出力用データを作成するため、前記ノズル
N2が印刷するバイトデータとしてフレームメモリ6の
バイト列X1にあるアドレス1024のバイトデータを
読み出す。以下同様に、フレームメモリ6のバイトデー
タを4ラインおきに読み出し、ノズル列L1のノズルN
1〜N32の印刷出力用データを作成して、印刷出力用
データバッファ7に格納する。
【0030】次に、ノズル列L2の印刷出力用データを
作成するため、ノズル列L2のノズルN33が印刷する
バイトデータとして、フレームメモリ6のバイト列X1
にあるアドレス256のバイトデータを読み出す。以降
は、ノズル列L1の場合と同様にフレームメモリ6のバ
イトデータをアドレス256から4ラインおきに読み出
してノズルN33〜N64の印刷出力用データを作成
し、印刷出力用データバッファ7に格納する。
【0031】ノズル列L3、L4についても同様に印刷
出力用データを作成する。フレームメモリ6のバイト列
X1用の印刷出力用データを作成したら、バイト列X
2、X3についても前記同様に印刷出力用データを作成
し、バイト列X256まで繰り返す。
【0032】その結果、作成された印刷出力用データバ
ッファ7のデータの例を図6に示す。図6に示すよう
に、印刷出力用データバッファ7にはバイト列X1〜X
256のデータが順に格納されており、印刷機構制御部
15はこのデータをヘッド16のスキャン動作に同期し
て順次読み出し、ノズルからインクを吐出させて印刷を
実行する。このため、前記スキャン動作が終了するまで
に、展開処理は次の印刷出力用データを準備しなければ
いけないので、高速な記録装置になるほど、展開処理の
高速処理が要求される。
【0033】ところで、前記説明の展開処理12がフレ
ームメモリ6からデータを読み出す場合にデータキャッ
シュが使用されている。前記のフレームメモリ6からの
バイトデータの読み出し処理におけるキャッシュライン
の使用状況について、図7および前記説明で使用の図
5、図11により説明する。
【0034】データキャッシュは、図11に示すように
512本のキャッシュラインC0〜C511で構成さ
れ、その方式がダイレクトマップ方式であるとする。ま
た、説明を簡単にするため、前記展開処理12におい
て、データキャッシュがフレームメモリ6だけに使用さ
れるものとする。
【0035】前記説明のように最初にアクセスされるフ
レームメモリ6のバイトアドレスは0であり、そのアド
レスに対応付けられるキャッシュラインがC0であると
すると、キャッシュラインC0には図5に示すバイトア
ドレスの0〜31に格納されている32バイトのデータ
が格納される。
【0036】この後、フレームメモリ6のバイトアドレ
ス0〜31のデータにアクセスする場合、キャッシュラ
インC0に格納されているデータにアクセスすれば、デ
ータへのアクセス速度は外部メモリ4へアクセスするよ
り高速になる。
【0037】次に、ノズル列L1のノズルN2の印刷出
力用データを作成するためにフレームメモリ6にアクセ
スする場合には、そのバイトアドレスが1024なので
キャッシュラインC32が使用される。同様に、次のノ
ズル列L1のノズルN3の印刷出力用データを作成する
場合には、アクセスするフレームメモリ6のバイトアド
レスが2048であるためキャッシュラインC64が、
その次はバイトアドレス3072のためキャッシュライ
ンC96が、というように対応付けられる。
【0038】前記バイトアドレスとキャッシュラインと
の関係を示したのが図7である。図7によると、例えば
1回目のフレームメモリ6へのアクセス時に使用された
キャッシュラインC0が17回目のフレームメモリ6へ
のアクセス時に使用されている。このとき、1回目のア
クセス時のバイトアドレスと、17回目のアクセス時の
バイトアドレスが異なっているため、1回目にキャッシ
ュラインに格納されたデータは書き換えられてしまう。
つまり、17回目のアクセス時にキャッシュミスが発生
する。
【0039】ところで、1回目のアクセス時にキャッシ
ュラインC0に格納されたデータには、フレームメモリ
6のバイトアドレス1、2、3…のデータも含まれてい
る。しかし、本例の場合では、バイト列X1のデータ作
成中にキャッシュミスが発生するので、前記バイトアド
レス1、2、3…のデータは使用されずに書き換えられ
ることになる。そのため、次回、バイトアドレス1、
2、3…へアクセスする際は、再び外部メモリ4へのア
クセスが発生してしまう。
【0040】ここで、別な例として、ビットマップイメ
ージの横幅が230バイトで前記展開処理を行う場合
の、フレームメモリ6へのアクセス時のバイトアドレス
と、そのバイトアドレスに対応付けられているキャッシ
ュラインの関係を図8に示す。
【0041】図7と同様に、フレームメモリ6のビット
マップイメージにおける左端の列用のデータでノズル列
L1の印刷出力用データ作成時の関係を示している。横
幅が256バイトの場合と同様に、1回目のフレームメ
モリ6へのアクセス時のバイトアドレスは0であり、キ
ャッシュラインC0が対応付けられている。
【0042】次にアクセスするフレームメモリのバイト
アドレスは920になるので、前記の例とは違ってキャ
ッシュラインC28が使用される。そして、前記説明と
同様に、フレームメモリ6へのアクセスを順に行うが、
図8に示す通り、このキャッシュラインC0がノズル列
L1用の印刷出力用データ作成中に書き換えられること
はない。また、キャッシュラインC0以外のキャッシュ
ラインについても、ノズル列L1用の印刷出力用データ
作成中に書き換えられることはない。
【0043】したがって、例えばバイトアドレス1のデ
ータはキャッシュラインC0に格納されており、バイト
アドレス1のデータにアクセスする際は、キャッシュラ
インC0のデータへのアクセスとなり、キャッシュミス
が発生しない。
【0044】前記説明ではダイレクトマップ方式のキャ
ッシュの場合の例であるが、セットアソシアティブ方式
でもキャッシュミスの頻度の違いがあるのみで同様の動
作になる。
【0045】また、前記説明では、データキャッシュを
フレームメモリのみが使用するとしたが、実際には他の
データにも使用され、さらに頻繁にキャッシュラインの
書き換えが行われる。そのため、前記で説明したように
印刷データの横幅の値によって頻繁にキャッシュライン
の書き換えが行われるようでは、展開処理を含んだ印刷
制御処理の速度が低下し、印刷速度が低下する場合もあ
る。
【0046】
【発明が解決しようとする課題】前記展開処理は、フレ
ームメモリからデータを読み出す処理を繰り返して行
う。そして、前記マイクロプロセッサのキャッシュがダ
イレクトマップ方式または、セットアソシアティブ方式
で、フレームメモリにアクセスする場合、前記説明のよ
うにビットマップイメージの横幅の値によっては、同じ
インデックスフィールドを持つ異なるアドレスをアクセ
スする頻度が高い場合がある。
【0047】その結果、キャッシュミスが頻発し、キャ
ッシュライン書き換えのオーバーヘッドにより処理時間
を低下させてしまうことがある。
【0048】本発明の目的は、キャッシュ機能を有する
マイクロプロセッサを用いてインクジェット記録装置の
印刷制御を行う場合、受信した印刷データからヘッドの
ノズル構成に合わせた印刷出力用データを作成する展開
処理において、キャッシュのヒット率の低下を防止し、
印刷速度の向上を図ることである。
【0049】
【課題を解決するための手段】本発明は、印刷制御部が
上位ホストコンピュータから受信する印刷データの情報
が格納されているヘッダより、印刷データの横幅が取得
できることに着目し、その横幅の値がキャッシュライン
の書き換えを頻繁に発生させるか否かを判断する処理
と、キャッシュラインの書き換えが頻繁に発生する場合
に前記印刷データの横幅の値を変更する処理を付加する
ことにより、キャッシュのヒット率を向上させて処理速
度の向上を図るものである。
【0050】
【発明の実施の形態】以下、本発明のインクジェット記
録装置の制御方法について実施の形態を説明する。
【0051】図12は、従来例で説明した通り、インク
ジェット記録装置のブロック図であり、マイクロプロセ
ッサ8はダイレクトマップ方式のキャッシュ方式を有す
る。受信処理11が上位ホストコンピュータ3から印刷
データ14を受信して受信バッファ5に格納するまでは
従来例と同様である。
【0052】本発明を実施する展開処理について、図1
および図12を使用して説明する。本実施例では、従来
の展開処理に対して印刷データ幅書き換え処理1が追加
されている。
【0053】(ステップ101)受信バッファ5内の印
刷データ14のヘッダを解析し、印刷データ14の横幅
の値を取得する。
【0054】(ステップ102)印刷データ幅書き換え
処理1を行う。前記印刷データ幅書き換え処理1は、ス
テップ101で取得した印刷データ14の幅がキャッシ
ュミスを頻発するような値であるか否かの判定処理を含
む。前記判定の結果によって、印刷データ幅を書き換え
るか書き換えないかを決定する。
【0055】(ステップ103)受信バッファ5内の印
刷データ14、ヘッダを解析して作成したビットマップ
イメージデータをフレームメモリ6に格納する。前記ス
テップ102の印刷データ幅書き換え処理1で印刷デー
タ14の横幅の値を変更した場合は、変更後の値に基づ
いてビットマップイメージデータを作成する。
【0056】(ステップ104)ヘッド16のノズル構
成に合わせて印刷出力用データを作成するために、並べ
替えるデータが格納されているフレームメモリ6のメモ
リアドレスを算出する。ステップ102で印刷データ1
4の横幅を変更した場合、変更後の値は使用せずに、元
の横幅の値を使用してメモリアドレスを算出する。
【0057】(ステップ105)ステップ104で得ら
れたフレームメモリ6のアドレスに格納されているデー
タを読み出す。
【0058】(ステップ106)ステップ105で読み
出したデータを、搭載しているヘッド16のノズル構成
に合わせて印刷出力用データに並べ替える。
【0059】(ステップ107)前記作成した印刷出力
用データを印刷出力用データバッファ7に格納する。
【0060】(ステップ108)全データ分の印刷出力
用データの作成が完了したら展開処理12は終了であ
り、そうでなければ前記ステップ104からの処理を繰
り返す。
【0061】次に、前記ステップ102で実行する印刷
データ幅書き換え処理1について、図2により説明す
る。
【0062】(ステップ201)取得した印刷データ1
4の横幅の値Wと、1本のキャッシュラインに格納でき
るデータサイズCSと、ヘッド16のノズル列の数Hn
を用いて、キャッシュラインの使用間隔Nを求める。N
は式(1)で求められる。
【0063】N=(W/CS)×Hn………式(1) (ステップ202)ステップ201で求めたNと、キャ
ッシュラインの数Cnの最小公倍数Mを求める。
【0064】(ステップ203)ステップ201で求め
たNと、ステップ202で求めたMを用いて、最初に使
用したキャッシュラインが再び使用されるまでのフレー
ムメモリ6へのアクセス回数Dを求める。Dは式(2)
によって求められる。
【0065】D=M/N………式(2) (ステップ204)ステップ204で求めたDの値が、
ヘッド16のノズル列1列中にあるノズルの個数nより
も小さい場合、キャッシュラインの書き換えが頻発する
値であると判断し、ステップ205に分岐し、そうでな
い場合は印刷データ幅書き換え処理1を終了する。
【0066】(ステップ205)印刷データの新しい横
幅の値をW’とし、以下の式(3)を用いてキャッシュ
ラインの使用間隔N’を求める。
【0067】 N’=(W’/CS)×Hn………式(3) (ステップ206)ステップ205で求めたN’の値
と、キャッシュラインの数Cnとの最小公倍数M’を求
める。
【0068】(ステップ207)ステップ205で求め
たN’と、ステップ206で求めたM’を用いて、最初
に使用するキャッシュラインが再び使用されるまでのフ
レームメモリ6へのアクセス回数D’を、式(4)を用
いて求める。
【0069】D’=M’/N’………式(4) (ステップ208)ステップ207で求めたD’の値
が、元の印刷データ幅から求めたDよりも大きな値であ
り、かつ、ヘッド16のノズル構成の1列中にあるノズ
ルの個数nよりも大きな値であれば、印刷データ14の
横幅をW’に書き換え、印刷データ幅書き換え処理1を
終了する。そうでなければステップ205に分岐し、新
しい印刷データ幅の値を求める。
【0070】ここで、前記説明の印刷データ幅書き換え
処理1を含んだ展開処理12の具体的な処理について、
図9、および図12により説明する。ヘッド16上のノ
ズル構成は従来例と同じく図5に示す構成とし、キャッ
シュの構成も従来例と同様の図11に示す構成とする。
【0071】従来例と同様に、受信処理11が上位ホス
トコンピュータ3から横256バイト、縦128ライン
である印刷データ14を受信し、受信バッファ5に格納
する。次に展開処理12は、印刷データ14のヘッダを
解析して受信した印刷データ14の横幅の値を取得す
る。ここで、本発明の印刷データ幅書き換え処理1を行
う。式(1)に必要な各値は、取得した印刷データ14
の横幅の値W=256、1本のキャッシュラインに格納
できるデータサイズCS=32、ヘッド16のノズル列
の数Hn=4であるので、前記式(1)により、N=3
2となる。前記Nの値は、フレームメモリ6のデータを
4ラインおきに読み出すときに使用するキャッシュライ
ンの番号が32ずつ増加することを意味している。
【0072】次に、キャッシュラインの本数Cn=51
2と、前記Nの値との最小公倍数Mを求め、式(2)を
用いてDを求めると、M=512となり、D=16とな
る。前記Dの値は、最初のフレームメモリ6へのアクセ
ス時に使用したキャッシュラインが再び使用されるまで
のフレームメモリ6へのアクセス回数を表す。
【0073】例えば、図7の場合、最初のフレームメモ
リ6へのアクセス時に使用したキャッシュラインはキャ
ッシュラインC0である。フレームメモリ6へのアクセ
スを続けていき、キャッシュラインC0が再び使用され
るのは、最初にキャッシュラインC0を使用してから1
6回フレームメモリ6にアクセスした17回目のアクセ
ス時である。ヘッド16のノズル列1列中にあるノズル
の個数nが32個であるので、17回目のフレームメモ
リ6へのアクセスは、ノズル列1列分の印刷出力用デー
タ作成中であり、1回目と17回目のフレームメモリ6
へのアクセスは、アクセスするアドレスが異なるためキ
ャッシュラインC0が書き換えられる。
【0074】したがって、前記印刷データ14の横幅の
値を、キャッシュミスを頻発する値であると判定し、新
しい印刷データ幅の値を求める。
【0075】本実施例では、1本のキャッシュラインに
格納できるデータサイズが32バイトであることから、
横幅の値を32バイト分大きくする。つまり、新しい印
刷データ幅の値W’を288とする。W’から、前記と
同様に式(1)、式(2)を用いて得られる値をそれぞ
れN’、D’とすると、N’=36、D’=128とな
る。前記N’、D’の値から、新しい印刷データ幅W’
=288を用いた場合、フレームメモリ6のビットマッ
プイメージデータを4ラインおきに読み出していった場
合、フレームメモリ6へのアクセス毎に使用するキャッ
シュラインの番号は36づつ増加し、最初のフレームメ
モリ6アクセス時に使用したキャッシュラインが書き換
えられるまでに、フレームメモリ6へのアクセス回数が
128回必要になることが予測できる。
【0076】したがって、元の印刷データ幅Wを、新し
い印刷データ幅W’に書き換えた場合、前記のように、
キャッシュラインが書き換えられる周期が、16回のフ
レームメモリ6へのアクセスから、128回のフレーム
メモリ6へのアクセスに増加した。つまり、キャッシュ
ライン書き換えの頻度が低減されることになるので、印
刷データ幅の値を288に書き換える。
【0077】印刷データ幅の書き換えが完了したら、受
信バッファ5に格納されているデータと、変更後の印刷
データ幅の値を使用して、印刷すべきビットマップイメ
ージデータを作成してフレームメモリ6に格納する。こ
のときのビットマップイメージを図9に示す。図9の斜
線部分が印刷データ幅書き換え処理1により追加された
分である。
【0078】前記ビットマップイメージの各バイトのア
ドレスは従来例と同様に、左上隅が0であり、右方向に
増加する。しかし、印刷データ幅を書き換えたことによ
って図9中のバイト列X257〜X288が増加し、第
1ラインの右端のバイトアドレスは287となる。その
ため、第2ラインの左端のバイトアドレスは288とな
り、第3ラインの左端のバイトアドレスは576とな
る。このようなビットマップイメージから各ノズルに対
応したデータを順に読み出す。
【0079】本実施例でも従来例と同様に、ヘッド16
が左から右へスキャンする場合、ノズル列L1のノズル
N1の印刷出力用データから作成する。ノズルN1が印
刷するバイトデータは、従来例と同様に図9のバイト列
X1にあるアドレス0のバイトデータであり、アドレス
0からバイトデータを読み出す。
【0080】次に、ノズル列L1のノズルN2の印刷出
力用データを作成するため、読み出すデータが格納され
ているアドレスを算出する。従来例と同様に、ノズルN
1の場合に読み出したラインから4ライン下のバイトア
ドレスに格納されているバイトデータを読み出すことに
なる。
【0081】ところが、印刷データ幅を書き換えたこと
によってフレームメモリ6のビットマップイメージデー
タの幅も変更されているため、前記アドレスの算出には
変更後の印刷データ幅の値を使用する。そのため、ノズ
ルN2が読み出すバイトデータのアドレスは1152と
なる。以下同様に、変更後の印刷データ幅を使用して読
み出すバイトデータが格納されているアドレスを算出し
て、フレームメモリ6のバイトデータを4ラインおきに
読み出し、ノズル列L1のノズルN1〜N32の印刷出
力用データを作成して印刷出力用データバッファ7に格
納する。
【0082】次に、ノズル列L2の印刷出力用データを
作成するため、ノズル列L2のノズルN33が印刷する
バイトデータのアドレスをノズル列L1の場合と同様に
変更後の印刷データ幅の値を使用して算出し、前記で算
出したアドレスのバイトデータを読み出す。以降は、ノ
ズル列L1の場合と同様にノズルN33〜N64の印刷
出力用データを作成し、印刷出力用データバッファ7に
格納する。ノズル列L3、L4についても同様に印刷出
力用データを作成する。
【0083】図9のビットマップイメージにおける列X
1用の印刷出力用データを作成後、各バイト列(X2、
X3、…)についても同様に印刷出力用データを作成す
る。本実施例では、前記で説明したように印刷データ幅
を書き換えたため、フレームメモリ6のビットマップイ
メージのバイト列X257〜X288が追加されてい
る。しかし、前記の追加した32のバイト列は、受信時
の印刷データ14には存在しないデータであるため印刷
する必要がない。
【0084】したがって、前記32列についての印刷出
力用データは作成する必要がないため、印刷出力用デー
タの作成はバイト列X256まで繰り返して終了する。
その結果作成される印刷出力用データは、従来例と同じ
図6に示されるデータとなり、本実施例の展開処理12
において印刷出力用データ作成に要する処理時間は従来
例とほぼ同じである。
【0085】ここで、図9のフレームメモリ6のビット
マップイメージに使用されるデータキャッシュについて
説明する。データキャッシュの構成は従来例での説明と
同じダイレクトマップ方式であり、その構成は図11に
示す構成である。
【0086】また、説明を簡単にするため、前記展開処
理12において、データキャッシュがフレームメモリ6
だけに使用されるものとする。前記説明のように、ノズ
ル列L1のノズルN1が印刷する印刷出力用データを作
成するために最初にフレームメモリ6にアクセスするア
ドレスは0であるため、前記アドレスに対応付けられて
いるキャッシュラインは従来例と同様にキャッシュライ
ンC0である。
【0087】キャッシュラインC0には図9のバイトア
ドレス0〜31に格納されている32バイトのデータが
格納され、次のバイトアドレス32〜63の32バイト
にはキャッシュラインC1が対応付けられている。
【0088】次に、ノズル列L1のノズルN2の印刷出
力用データを作成するために2回目にフレームメモリ6
にアクセスするときのアドレス1152には、キャッシ
ュラインC36が対応付けられ、ノズルN3の印刷出力
用データ作成時にアクセスするアドレス2304には、
キャッシュラインC72が対応付けられる。
【0089】前記の説明のように、印刷データ幅を変更
して印刷出力用データを作成する本実施例の展開処理1
2において、ビットマップイメージのバイト列X1用の
データでノズル列L1が印刷する印刷出力用データを作
成する場合のフレームメモリ6へのアクセス時のアドレ
スと、前記アドレスに対応付けられたキャッシュライン
の関係を図10に示す。
【0090】ここで、従来例の展開処理を行った場合の
フレームメモリ6へのアクセス時のアドレスとキャッシ
ュラインの関係を示した図7と比べると、本実施例の展
開処理を行った場合は、キャッシュラインの書き換えが
発生していない。
【0091】したがって、例えば図9のバイト列X2用
の印刷出力用データを作成する場合、本来フレームメモ
リ6から読み出すべきデータはキャッシュラインに格納
されており、外部メモリ4のデータにアクセスする必要
がなくなる。その結果、データへのアクセス速度が速く
なり、処理速度が向上する。
【0092】前記の処理は、受信した印刷データの横幅
が、印刷制御部が有するダイレクトマップ方式のキャッ
シュ機能を備えたマイクロプロセッサのキャッシュライ
ンの書き換えを頻発させる値である場合に実施される、
印刷データ幅書き換え処理1の一実施例であり、また前
記印刷データ幅書き換え処理1を含んだ展開処理の一例
である。
【0093】したがって、フレームメモリへのアクセス
方法、印刷出力用データ作成の方法等の処理の内容につ
いて特に限定するものではない。
【0094】このように受信した印刷データの横幅の値
がキャッシュラインの書き換えを頻発させるか否かを判
断する処理と、受信した印刷データの横幅の値がキャッ
シュラインの書き換えを頻発させるような値であった場
合に印刷データの横幅の値を大きな値に書き換える処理
と、キャッシュラインを書き換える頻度を予測して求め
る処理とを行うことで、フレームメモリにおけるキャッ
シュラインの書き換えが頻繁に発生することを抑えるこ
とが可能となる。
【0095】したがって、キャッシュのヒット率を向上
させることができる。このような処理ではフレームメモ
リ上のデータのサイズが増加するが、前記処理によって
追加したデータは印刷しないデータであるため、追加し
たデータに関する印刷出力用データへの並べ替え処理は
行わない。そのため、本発明によって処理時間が増加す
ることはほとんどない。
【0096】前記の実施形態では、印刷データの横幅を
32バイト分大きくしているが、この増加の値は任意で
あり、場合によっては横幅を小さくしても良い場合もあ
る。印刷データの右端にデータが存在せず、かつキャッ
シュラインの書き換えが頻発するような場合には、印刷
データの横幅を小さくすることでも、前記実施例と同じ
効果を得ることができる。
【0097】また、前記説明では、インクジェット記録
装置において、印刷データ幅の値によってキャッシュミ
スを頻発させるようなアドレスをアクセスすることが多
くなる場合、印刷データ幅を書き換えてアクセスするア
ドレスを変えていた。
【0098】しかし、インクジェット記録装置の制御に
関わらず、ループ処理中に外部メモリにアクセスするア
ドレスをインクリメントするような処理があり、キャッ
シュミスを頻発させるようなアドレスにアクセスするこ
とが多くなる場合がある。
【0099】そのような場合に、ループ処理中で生成さ
れるアドレスがキャッシュミスを頻発させるようなアド
レスにならないようにする処理を設ければ、キャッシュ
のヒット率が高くなり、本発明と同様の効果を得られ
る。例えば、ループ処理中のアクセス順序を変える処理
とか、ループ処理中のアクセスメモリのコピーを2重に
持ち、それらに交互にアクセスする処理などを行うこと
で、キャッシュラインの書き換えの頻度を低減すること
ができる。
【0100】
【発明の効果】本発明によれば、印刷データの横幅の値
が、印刷制御部の有するキャッシュ機能を備えたマイク
ロプロセッサのキャッシュラインの書き換えを頻発させ
るような値であることを判定すると、印刷データの横幅
の値を大きな値に書き換え、フレームメモリのビットマ
ップイメージデータに増加した横幅分のデータを追加し
てから印刷出力用データを作成することにより、処理中
に同じキャッシュラインが頻繁に書き換えられることを
抑え、キャッシュのヒット率が向上する。
【0101】したがって、処理速度が向上し、印刷速度
の向上を図ることが可能となる。
【図面の簡単な説明】
【図1】 本発明の展開処理のフローチャート。
【図2】 本発明の印刷データ幅書き換え処理のフロー
チャート。
【図3】 従来の展開処理のフローチャート。
【図4】 ヘッドのノズル構成の説明図。
【図5】 フレームメモリに作成されるビットマプイメ
ージの説明図。
【図6】 印刷出力用データバッファに格納される印刷
出力用データの説明図。
【図7】 バイトアドレスとキャッシュラインとの対応
の第一の説明図。
【図8】 バイトアドレスとキャッシュラインとの対応
の第二の説明図。
【図9】 本発明実施後にフレームメモリに作成される
ビットマップイメージの説明図。
【図10】 本発明実施後のバイトアドレスとキャッシ
ュラインとの対応の説明図。
【図11】 ダイレクトマップ方式のキャッシュ構成の
説明図。
【図12】 インクジェット記録装置のブロック図。
【符号の説明】
1…印刷データ幅書き換え処理。
フロントページの続き Fターム(参考) 2C056 EA01 EC69 2C087 AB05 AC02 AC07 BA02 BC02 BC05 5B005 JJ13 KK24 LL15 MM03 NN02 NN13 NN43 UU15 VV04

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】複数のノズルが配置されているヘッドが備
    わる印刷機構部を有し、上位コンピュータから印刷デー
    タを受信する受信処理と、前記印刷データを前記ヘッド
    に設けられたノズルの配置構成に合わせて並び替える展
    開処理と、前記展開処理によって並び替えられた印刷デ
    ータに基づいて前記ヘッドを駆動してインクが吐出され
    る印刷動作を行なわせる印刷処理を有し、前記受信処理
    と前記展開処理と前記印刷処理の実行機能および複数の
    キャッシュラインで構成されるキャッシュ機能を備えた
    マイクロプロセッサを有し、前記印刷データを格納する
    受信バッファと、前記受信バッファのデータを基に作成
    されるビットマップイメージデータを格納するフレーム
    メモリと、前記ビットマップイメージデータを前記ヘッ
    ドに設けられているノズルの配置構成に合わせて並び替
    えた印刷出力用データを格納する印刷出力用データバッ
    ファとを含む外部メモリを有しているインクジェット記
    録装置において、 前記印刷データの横幅の値に基づき、予め前記マイクロ
    プロセッサのキャッシュラインの書き換え頻度を算出す
    る処理を有し、前記書き換え頻度に応じて、前記印刷デ
    ータの横幅の値を変更するように処理することを特徴と
    するインクジェット記録装置の制御方法。
  2. 【請求項2】請求項1記載のインクジェット記録装置に
    おいて、 前記印刷機構部に搭載されているヘッドに設けられてい
    るノズルの配置構成に基づき、予め前記マイクロプロセ
    ッサのキャッシュラインの書き換え頻度を算出する処理
    を有し、前記書き換え頻度に応じて、前記印刷データの
    横幅を変更するように処理することを特徴とするインク
    ジェット記録装置の制御方法。
  3. 【請求項3】請求項1記載のインクジェット記録装置に
    おいて、 前記印刷データの横幅の値および前記印刷機構部に搭載
    されているヘッドに設けられているノズルの配置構成に
    基づき、予め前記マイクロプロセッサのキャッシュライ
    ンの書き換え頻度を算出する処理を有し、前記書き換え
    頻度に応じて、印刷データの横幅を変更するように処理
    することを特徴とするインクジェット記録装置の制御方
    法。
  4. 【請求項4】請求項1記載のインクジェット記録装置に
    おいて、 繰り返し処理内でアクセスするメモリのアドレスに基づ
    き、予め前記マイクロプロセッサのキャッシュラインの
    書き換え頻度を算出する処理を有し、前記書き換え頻度
    に応じて、前記繰り返し処理内でアクセスするメモリの
    アドレスを変更するように処理することを特徴とするイ
    ンクジェット記録装置の制御方法。
JP2001172077A 2001-06-07 2001-06-07 インクジェット記録装置の制御方法 Pending JP2002361944A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001172077A JP2002361944A (ja) 2001-06-07 2001-06-07 インクジェット記録装置の制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001172077A JP2002361944A (ja) 2001-06-07 2001-06-07 インクジェット記録装置の制御方法

Publications (1)

Publication Number Publication Date
JP2002361944A true JP2002361944A (ja) 2002-12-18

Family

ID=19013757

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001172077A Pending JP2002361944A (ja) 2001-06-07 2001-06-07 インクジェット記録装置の制御方法

Country Status (1)

Country Link
JP (1) JP2002361944A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008037032A (ja) * 2006-08-09 2008-02-21 Fuji Xerox Co Ltd データ処理装置、液滴吐出装置、およびプログラム
JP2011141657A (ja) * 2010-01-06 2011-07-21 Yokogawa Electric Corp データ処理装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008037032A (ja) * 2006-08-09 2008-02-21 Fuji Xerox Co Ltd データ処理装置、液滴吐出装置、およびプログラム
US8526050B2 (en) 2006-08-09 2013-09-03 Fuji Xerox Co., Ltd. Data processing device, method, storage medium storing program therefor, and signal for discharging liquid droplets, and liquid droplet discharging device
JP2011141657A (ja) * 2010-01-06 2011-07-21 Yokogawa Electric Corp データ処理装置

Similar Documents

Publication Publication Date Title
JP2861251B2 (ja) 印字装置
US20040075849A1 (en) Printer object list resolutions
JP2000158720A (ja) バーコード印刷装置
JP2002361944A (ja) インクジェット記録装置の制御方法
US20020140979A1 (en) Record control apparatus and recording apparatus
JPH0655524B2 (ja) シリアルドットプリンタ
JP4323622B2 (ja) 記録装置
JP4022014B2 (ja) イメージデータの管理方法
JP2005169711A (ja) シリアル記録装置
KR100571775B1 (ko) 네트워크 프린팅 데이터의 전송 속도를 향상시킨 네트워크프린터 및 그의 방법
JP2003241917A (ja) 画像処理装置、画像処理方法、プログラム及び記憶媒体
JP2846806B2 (ja) プリンタコントローラ
JP2737880B2 (ja) 文字処理装置および方法
JPH0515551B2 (ja)
JP3349997B2 (ja) プリンタ描画方式、プリンタ描画方法およびプリンタ描画用プログラムを記録した記録媒体
JP3137002B2 (ja) 印刷データ生成方法及び印刷データ生成装置及び印刷データ生成装置を備えた印刷システム
JP3005220B2 (ja) 走査型表示制御装置
JP2004009416A (ja) レーザビーム方式の出力装置及び出力方法
JP4845351B2 (ja) データ転送制御装置、データ処理装置、及びデータ転送制御装置の制御方法
JP3489316B2 (ja) 画像処理装置
JP2003237145A (ja) 画像形成装置およびメモリアクセス低減方法
JP2002273949A (ja) 画像出力装置及びそれに用いられるデータ消去方法
JPH06238963A (ja) 印刷制御装置
JPH10291339A (ja) 画像形成装置及びその制御方法
JPH05147276A (ja) ビデオ転送制御装置