(57)【要約】【課題】データ転送に用いるバス幅より小さい単位で送られてくるデータを転送先に転送する際に生じ得る端数データの転送を高速に行なう。【解決手段】データ転送に用いるバス幅より小さい単位で送られてくるデータの転送をデータ転送装置に依頼するデータ転送制御装置であって、送られてきたデータのうち、未転送のデータのサイズが前記バス幅未満であることを検出する検出手段と、未転送のデータのサイズが前記バス幅未満であることが検出された場合に、このデータをあらかじめ定められたバスの一部を用いて転送することをデータ転送装置に依頼する転送依頼手段とを備えたことを特徴とするとするデータ転送制御装置。【選択図】  図１
2004355497.tif 000002
【特許請求の範囲】
【請求項１】
データ転送に用いるバス幅より小さい単位で送られてくるデータの転送をデータ転送装置に依頼するデータ転送制御装置であって、
送られてきたデータのうち、未転送のデータのサイズが前記バス幅未満であることを検出する検出手段と、
未転送のデータのサイズが前記バス幅未満であることが検出された場合に、このデータをあらかじめ定められたバスの一部を用いて転送することをデータ転送装置に依頼する転送依頼手段とを備えたことを特徴とするデータ転送制御装置。
【請求項２】
請求項１に記載のデータ転送制御装置において、
前記検出手段は、バス幅未満である未転送のデータのサイズをさらに検出し、
前記データ転送依頼手段は、バス幅未満である未転送のデータのサイズを前記データ転送装置に通知することを特徴とするデータ転送制御装置。
【請求項３】
請求項１または２に記載のデータ転送制御装置において、
前記検出手段は、送られてくるデータのデータ量と転送済みのデータ量とに基づいて、未転送のデータのサイズが前記バス幅未満であることを検出することを特徴とするデータ転送制御装置。
【請求項４】
請求項１または２に記載のデータ転送制御装置において、
前記検出手段は、所定時間内にバス幅分のデータがそろわない場合に、未転送のデータのサイズが前記バス幅未満であると判断することを特徴とするデータ転送制御装置。
【請求項５】
データ転送に用いるバス幅より小さい単位で送られてくるデータを転送先に転送するデータ転送装置であって、
送られてきたデータのうち、未転送のデータのサイズが前記バス幅未満であることを検出する検出手段と、
未転送のデータのサイズが前記バス幅未満であることが検出された場合に、このデータをあらかじめ定められたバスの一部を用いて転送先に転送する転送手段とを備えたことを特徴とするデータ転送装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報機器、特に印刷装置におけるデータ転送に関する。
【０００２】
【従来の技術】
図７は、プリンタ等の印刷装置の制御部の構成を示すブロック図である。印刷装置の制御部における処理は概略以下のように行なわれる。すなわち、ホストコンピュータから送られた印刷データは、入出力制御装置１４０で受信され、ＤＭＡコントローラ１３０によりＲＡＭ１２０にＤＭＡ転送される。ＣＰＵ１１０は、ＲＯＭ１５０に記録されたプログラムにしたがって、印刷データをイメージデータに展開してＲＡＭ１２０に格納する。このイメージデータを入出力制御装置１４０が印刷エンジンに転送することで印刷が行なわれる。
【０００３】
制御部内の各装置間は所定の幅、例えば、１６ビット、３２ビット等のバスで接続される。このバス幅を、２ワード（１６ビット）とすると、これを１単位として入出力制御装置１４０からＲＡＭ１２０に印刷データがＤＭＡ転送される。すなわち、入出力制御装置１４０が備えるバッファに、バス幅分のデータが溜まると、そのデータがＲＡＭ１２０にＤＭＡ転送されることになる。
【０００４】
ホストコンピュータから印刷データが、制御部内のバス幅より短い単位、例えば、バイト単位で送られるとすると、１ページの印刷データの最後に、バス幅に満たないデータ（「端数データ」と称する）が生じる場合がある。
【０００５】
入出力制御装置１４０は、バッファに残っているデータが端数データであるかどうかを判断することはできないので、従来は、以下のような処理を行なっていた。
【０００６】
すなわち、入出力制御装置１４０は、印刷データのヘッダ情報を参照して印刷データのバイト数を取得し、端数データを含まないデータの転送回数をソフトウェア的に設定して、ＤＭＡ転送を開始する。
【０００７】
設定した転送回数を終了すると、入出力制御装置１４０は、ＣＰＵ１１０に終了割り込みを発行する。この時点で、入出力制御装置１４０のバッファには端数データが残っている。
【０００８】
ＣＰＵ１１０は、終了割り込みを受けて、ＤＭＡ転送を強制終了し、入出力制御装置１４０のバッファに残っているデータをＲＡＭ１２０に転送する。このとき、端数データとバス幅との関係上、ＲＡＭ１２０には、端数データとともに不要データが転送されるので、ＣＰＵ１１０は、ＲＡＭ１２０上の不要データを無効化する処理を行なう。
【０００９】
なお、バス幅の広い入力バスからバス幅の狭い出力バスへデータを転送する際に生じ得る端数バイトの処理については、特許文献１に開示されている。
【００１０】
【特許文献１】
【特開平１０−２３５９４８】
【発明が解決しようとする課題】
このように、端数データが生じた場合には、ＤＭＡ転送が行なわれず、割り込み処理により、ソフトウェア的にデータ転送が行なわれる。このため、転送速度の低下を招くことになる。また、データ転送にＣＰＵ１１０が介在するため、ＣＰＵ１１０への負荷が大きくなり、イメージデータ展開等の印刷処理時間に悪影響を及ぼすおそれがある。
【００１１】
さらには、端数データとともにＲＡＭ１２０に転送された不要データの無効処理が必要となるため、例えば、転送開始アドレスの再設定、アドレスポインタの調整設定をＣＰＵ１１０がソフトウェア的に行なうことになる。
【００１２】
本発明は、データ転送に用いるバス幅より小さい単位で送られてくるデータを転送先に転送する際に生じ得る端数データの転送を高速に行なうことを目的とする。
【００１３】
【課題を解決するための手段】
上記課題を解決するための本発明の第１の態様は、
データ転送に用いるバス幅より小さい単位で送られてくるデータの転送をデータ転送装置に依頼するデータ転送制御装置であって、
送られてきたデータのうち、未転送のデータのサイズが前記バス幅未満であることを検出する検出手段と、
未転送のデータのサイズが前記バス幅未満であることが検出された場合に、このデータをあらかじめ定められたバスの一部を用いて転送することをデータ転送装置に依頼する転送依頼手段とを備えたことを特徴とする。
【００１４】
本発明によれば、データ転送制御装置が、端数データが生じるかどうかを判定し、端数データが生じた場合には、端数データのＤＭＡ転送を依頼するため、端数データの転送を高速に行なうことができる。
【００１５】
ここで、前記検出手段は、バス幅未満である未転送のデータのサイズをさらに検出し、
前記データ転送依頼手段は、バス幅未満である未転送のデータのサイズを前記データ転送装置に通知するようにすることができる。
【００１６】
これにより、多様なバス幅に応じることができる。
【００１７】
また、前記検出手段は、送られてくるデータのデータ量と転送済みのデータ量とに基づいて、未転送のデータのサイズが前記バス幅未満であることを検出することができる。
【００１８】
すなわち、送られてくるデータ量と転送済みのデータ量との差が未転送のデータとなるが、このデータ量が端数データとなり得る値と一致した場合に端数データが発生したと判断する。
【００１９】
また、前記検出手段は、所定時間内にバス幅分のデータがそろわない場合に、未転送のデータのサイズが前記バス幅未満であると判断することができる。
【００２０】
すなわち、一般に、データは連続して送られてくる。このため、あるデータを受信してから所定の時間内に次のデータが送られてこない場合には、一単位のデータの送信が終了したと判断することができる。このとき、未転送のデータが残っていれば、そのデータは端数データであると判別することができる。
【００２１】
さらに、本発明の第２の態様は、
データ転送に用いるバス幅より小さい単位で送られてくるデータを転送先に転送するデータ転送装置であって、
送られてきたデータのうち、未転送のデータのサイズが前記バス幅未満であることを検出する検出手段と、
未転送のデータのサイズが前記バス幅未満であることが検出された場合に、このデータをあらかじめ定められたバスの一部を用いて転送先に転送する転送手段とを備えたことを特徴とする。
【００２２】
すなわち、データ転送装置とデータ転送制御装置とをまとめた態様である。
【００２３】
【発明の実施の形態】
本発明の実施の形態について図面を参照して説明する。
【００２４】
図１は、本発明を適用した印刷装置の制御部の構成を示すブロック図である。制御部における処理の概要は、以下の通りである。すなわち、ホストコンピュータから送られた印刷データは、入出力制御装置４０で受信され、ＤＭＡコントローラ３０によりＲＡＭ２０にＤＭＡ転送される。ＣＰＵ１０は、ＲＯＭ５０に記録されたプログラムにしたがって、印刷データをイメージデータに展開してＲＡＭ２０に格納する。このイメージデータを入出力制御装置４０が印刷エンジンに転送することで印刷が行なわれる。
【００２５】
入出力制御装置４０は、バッファを備えており、バッファにバス幅分のデータが溜まると、そのデータをＲＡＭ２０にＤＭＡ転送する。
【００２６】
さらに、入出力制御装置４０は、ホストコンピュータから送られた印刷データに端数データが生じたかどうかを判定する端数情報判定回路４１を備えている。
【００２７】
すなわち、本実施例において、入出力制御装置４０は、印刷データに端数データが生じたかどうかを判定し、端数データが生じた場合には、バスのあらかじめ定めた信号線、例えば、端数データが１バイトの場合、バスの上位８ビットあるいは下位８ビット等を用いて、端数データをＤＭＡコントローラ３０を介してＲＡＭ２０にＤＭＡ転送する。
【００２８】
図２は、入出力制御装置４０とＤＭＡコントローラ３０との間の信号線を説明する図である。ここで、ＲＥＱＸ信号線は、ＤＭＡ転送を要求するＤＭＡデータリクエスト信号を伝送し、ＡＣＫＸ信号線は、ＤＭＡ転送を許可するＤＭＡデータアクノリッジ信号を伝送し、ＲＤＸ信号線は、データ転送のタイミングを示すリード信号を伝送し、ＤＡＴＡ信号線は、ホストコンピュータから送られたデータを伝送するものであり、従来から入出力制御装置４０に備わっている信号線である。
【００２９】
本実施例では、さらに、ＢＹＴＥ信号を伝送するＢＹＴＥ信号線が備えられている。ＢＹＴＥ信号は、端数情報判定回路４１が生成する信号で、端数データが生じたことをＤＭＡコントローラ３０に通知するための信号である。また、ＢＹＴＥ信号は、生じた端数データのバイト数もあわせて通知する。このため、例えば、印刷データがバイト単位で送られるとすると、バス幅が２バイトの場合には、端数データは１バイトに限られるためＢＹＴＥ信号は端数データの有無を表現すればよいので１ビットで足りる。一方バス幅が４バイトの場合には、端数データは無し、１バイト、２バイト、３バイトの４通りあり得るためＢＹＴＥ信号は２ビット必要となる。同様に、バス幅が８バイトの場合には、ＢＹＴＥ信号は３ビット必要となる。
【００３０】
図３は、端数情報判定回路４１の構成の一例を示すブロック図である。本図を参照して、端数情報判定回路４１における端数データの判定方法について説明する。
【００３１】
本図に示すように端数情報判定回路４１は、バス幅設定レジスタ４１１と比較回路４１２と転送バイトカウンタ４１３とを備えて構成される。
【００３２】
バス幅設定レジスタ４１１は、データ転送のバス幅を設定するレジスタである。バス幅は、印刷装置の仕様等により定められるため、バス幅設定レジスタ４１１の値はあらかじめ設定しておく。
【００３３】
比較回路４１２は、転送バイトカウンタ４１３の値とバス幅設定レジスタ４１１の値とを比較して、転送バイトカウンタ４１３の値が０でなく、かつ、バス幅設定レジスタ４１１の値＞転送バイトカウンタ４１３の値を満たすかどうかを判定する回路である。そして上記の条件を満たすと判定した場合には、転送バイトカウンタ４１３の値（端数バイト数）に対応する値のビットを１としてＢＹＴＥ信号を出力する。それ以外のときは、ＢＹＴＥ信号のすべてのビットを０とする。
【００３４】
後述するように、転送バイトカウンタ４１３は、受信中の印刷データのうち、未転送の印刷データのバイト数を示しているので、転送バイトカウンタ４１３の値が０でなく、かつ、バス幅設定レジスタ４１１の値＞転送バイトカウンタ４１３の値を満たす場合には、転送バイトカウンタ４１３の値が示すバイト数の端数データが生じたことになる。
【００３５】
転送バイトカウンタ４１３は、ホストコンピュータから印刷データが送られると、印刷データのヘッダ情報を参照して、印刷データの総バイト数を設定する。そして、データ転送を開始すると、転送したデータのバイト数をデクリメントしていく。デクリメントするバイト数は、バス幅設定レジスタ４１１に設定された値に対応する。すなわち、バス幅が２バイトの場合には、転送ごとに２デクリメントしていく。これにより、受信中の印刷データのうち、未転送の印刷データのバイト数を把握することができる。
【００３６】
つぎに、図４のフロー図を参照して、本実施例の処理の流れについて説明する。
【００３７】
入出力制御装置４０は、ホストコンピュータから送られてくる印刷データを受信する（Ｓ１０１）。
【００３８】
そして、端数情報判定回路４１が、印刷データのヘッダ情報を参照して、印刷データのバイト数を取得し、転送バイトカウンタ４１３に設定する（Ｓ１０２）。
【００３９】
入出力制御装置４０は、ホストコンピュータから送られてくる印刷データのＲＡＭ２０へのＤＭＡ転送を開始する（Ｓ１０３）。このとき、転送するごとに転送したバイト数を転送バイトカウンタ４１３からデクリメントしていく。
【００４０】
そして、比較回路４１２が、転送バイトカウンタ４１３の値とバス幅設定レジスタ４１１の値とを比較して、上記の条件、すなわち、転送バイトカウンタ４１３の値が０でなく、かつ、バス幅設定レジスタ４１１の値＞転送バイトカウンタ４１３の値を満たすかどうかを判定する（Ｓ１０４）。
【００４１】
その結果、条件を満たしていない場合（Ｓ１０５：Ｎ）には、端数データは発生していないため、端数情報判定回路４１は、ＢＹＴＥ信号をネゲートする。この結果、従来通りのＲＡＭ２０へのＤＭＡコントローラ３０を介したＤＭＡ転送が行なわれる（Ｓ１０７）。すなわち、ＤＭＡコントローラ３０は、ワード単位での転送を行なう。
【００４２】
一方、一致している場合（Ｓ１０５：Ｎ）は、端数データが発生したことを示しているため、端数情報判定回路４１は、ＢＹＴＥ信号をアサートする（Ｓ１０６）。これにより、ＤＭＡコントローラ３０は、入出力制御装置４０にあるデータが端数データであることと、そのバイト数とを知ることができるため、ＤＡＴＡ信号およびバスのあらかじめ定めた信号線、例えば、上位８ビットあるいは下位８ビット等を用いて、端数データをＲＡＭ２０にＤＭＡ転送する（Ｓ１０７）。この結果、有効なデータのみがＲＡＭ２０に転送される。
【００４３】
なお、端数データのバイト数ごとに、ＤＡＴＡ信号およびバスのどのビットに有効データがあるかは事前に定められているものとする。これにより、ＤＭＡコントローラ３０は、バイト単位の転送を行なうことになる。これは、例えば、対応するバイトイネーブル信号をアサートすることで実現することができる。
【００４４】
このように、本実施例によれば、入出力制御装置４０が、印刷データに端数データが生じるかどうかを判定し、端数データが生じた場合にも、端数データをＲＡＭ２０にＤＭＡコントローラ３０を介してＤＭＡ転送するため、端数データの転送を高速に行なうことができる。
【００４５】
つぎに、端数情報判定回路４１の別例について図５を参照して説明する。
【００４６】
本図に示すように端数情報判定回路４１は、データ判別回路４１４と、あらかじめ設定された時間を計測するタイマーカウンタ４１５と、ＢＹＴＥ信号生成回路４１６とを備えて構成される。
【００４７】
データ判別回路４１４は、バスデータバッファ４１４ａとバスデータカウンタ４１４ｂとを備えており、ホストコンピュータから送られる印刷データの受信状態に基づいて、端数データが発生したかどうかを判別する。
【００４８】
一般に、印刷データは、ページごとに連続してホストコンピュータから送信される。このため、あるデータを受信してから所定の時間内に次のデータが送られてこない場合には、１ページ分の印刷データの送信が終了したと判断することができる。このとき、入出力制御装置４０に未転送のデータが残っていれば、そのデータは端数データであると判別される。
【００４９】
これにしたがい、データ判別回路４１４は、バスデータバッファ４１４ａにデータが書き込まれるとそのバイト数をバスデータカウンタ４１４ｂでカウントし、ＤＭＡコントローラ３０を介して転送されるとカウント値をクリアするようにする。そして、バスデータバッファ４１４ａにバス幅に満たないバイト数のデータが残ると、タイマーカウンタ４１５を起動させる。そして、バス幅に満たないバイト数のデータが残ったままタイマーカウンタ４１５が所定の時間を計測すると（タイムアウト）、ＢＹＴＥ信号生成回路４１６がＢＹＴＥ信号をアサートする。このとき、バスデータカウンタ４１４ｂの値は、入出力制御装置４０に残っている端数データのバイト数を示しているため、この値もＢＹＴＥ信号で表わすようにする。
【００５０】
つぎに、図６のフロー図を参照して、本実施例の処理の流れについて説明する。
【００５１】
入出力制御装置４０は、ホストコンピュータから印刷データが送られてくると、印刷データを受信して、ＲＡＭ２０へのＤＭＡ転送を開始する（Ｓ２０１）。
【００５２】
データ判別回路４１４は、バス幅ごとにデータが転送されているという条件を満たしているかどうか、すなわち、バッファに未転送のデータが溜まっていないかどうかを判断する（Ｓ２０２）。
【００５３】
この結果、条件を満たしている場合（Ｓ２０３：Ｙ）には、端数データは発生していないため、従来通りのＲＡＭ２０へのＤＭＡコントローラ３０を介したＤＭＡ転送が行なわれる（Ｓ２０７）。
【００５４】
一方、条件を満たしていない場合（Ｓ２０３：Ｎ）には、タイマーカウンタ４１５を起動する（Ｓ２０４）。
【００５５】
タイマーカウンタ４１５がタイムアウトする前に次データが送られてきた場合（Ｓ２０５：Ｎ）には、従来通りのＲＡＭ２０へのＤＭＡコントローラ３０を介したＤＭＡ転送が行なわれる（Ｓ２０７）。
【００５６】
タイマーカウンタ４１５がタイムアウトした場合（Ｓ２０５：Ｙ）には、端数データが生じたとして、ＢＹＴＥ信号生成回路４１６がＢＹＴＥ信号をアサートする（Ｓ２０６）。このとき、入出力制御装置４０に残っている端数データのバイト数もＢＹＴＥ信号で表わすようにする。
【００５７】
これにより、ＤＭＡコントローラ３０は、入出力制御装置４０が受信したデータが端数データと知ることができるため、ＤＡＴＡ信号およびバスのあらかじめ定めた信号線、例えば、上位８ビットあるいは下位８ビット等を用いて、端数データをＲＡＭ２０にＤＭＡ転送する（Ｓ２０７）。
【００５８】
このように、本別例でも、入出力制御装置４０が、印刷データに端数データが生じるかどうかを判定し、端数データが生じた場合には、ＤＭＡコントローラ３０が端数データをＲＡＭ２０にＤＭＡ転送するため、端数データの転送を高速に行なうことができる。
【図面の簡単な説明】
【図１】本発明を適用した印刷装置の制御部の構成を示すブロック図。
【図２】端数情報判定回路と端数データ処理回路との間の信号線を示す図。
【図３】端数情報判定回路の構成の一例を示すブロック図。
【図４】本実施例の処理の流れについて説明するフロー図。
【図５】端数情報判定回路の構成の別例を示すブロック図。
【図６】別例の処理の流れについて説明するフロー図。
【図７】従来の印刷装置の制御部の構成を示すブロック図。
【符号の説明】
１０…ＣＰＵ、２０…ＲＡＭ、３０…ＤＭＡコントローラ、４０…入出力制御装置、４１…端数情報判定回路、５０…ＲＯＭ、１１０…ＣＰＵ、１２０…ＲＡＭ、１３０…ＤＭＡコントローラ、１４０…入出力制御装置、１５０…ＲＯＭ、４１１…端数設定レジスタ、４１２…比較回路、４１３…転送バイトカウンタ、４１４…データ判別回路、４１５…タイマーカウンタ、４１６…ＢＹＴＥ信号生成回路
【図１】
2004355497.tif 000003
【図２】
2004355497.tif 000004
【図３】
2004355497.tif 000005
【図４】
2004355497.tif 000006
【図５】
2004355497.tif 000007
【図６】
2004355497.tif 000008
【図７】
2004355497.tif 000009