(57)【要約】【課題】バスのビット幅が異なるメモリ間でデータ転送を行う際に、処理時間を短縮することのできるデータ転送装置等を提供する。【解決手段】第一データ幅の転送元メモリ１８に納められた第一幅データを、第一データ幅より大きい第二データ幅の転送先メモリ２０に転送するデータ転送装置１７が、前記転送元メモリ１８から順次送られる前記第一幅データを順番に第二データ幅に格納し、前記転送先メモリ２０に転送する前に第二データ幅の第二幅データとするレジスタ２５と、前記レジスタ２５における第二幅データが、前記転送先メモリ２０に転送すべき第一幅データで占められていない場合に、当該第二幅データを前記転送先メモリ２０に転送する前に、当該第二幅データの前記転送すべき第一幅データで占められていない部分にヌルデータを入れるフィルタ２６とを有する。【選択図】  図２
2005161822.tif 000002
【特許請求の範囲】
【請求項１】
第一データ幅の転送元メモリに納められた第一幅データを、第一データ幅より大きい第二データ幅の転送先メモリに転送するデータ転送装置であって、
前記転送元メモリから順次送られる前記第一幅データを順番に第二データ幅に格納し、前記転送先メモリに転送する前に第二データ幅の第二幅データとするレジスタと、
前記レジスタにおける第二幅データが、前記転送先メモリに転送すべき第一幅データ  で占められていない場合に、当該第二幅データを前記転送先メモリに転送する前に、当  該第二幅データの前記転送すべき第一幅データで占められていない部分にヌルデータを  入れるフィルタとを有する
ことを特徴とするデータ転送装置。
【請求項２】
請求項１において、
前記第二幅データが転送すべき第一幅データで占められていないことの判断と、前記  第二幅データの転送すべき第一幅データで占められていない部分の判断が、前記第一幅  データを前記転送元メモリから転送する回数に基づいて行われる
ことを特徴とするデータ転送装置。
【請求項３】
第一データ幅の転送元メモリに納められた第一幅データを、第一データ幅より大きい第二データ幅の転送先メモリに転送するデータ転送方法であって、
前記転送元メモリから順次送られる前記第一幅データを順番に第二データ幅に並べ、  前記転送先メモリに転送する前に第二データ幅の第二幅データとし、
前記第二幅データが、前記転送先メモリに転送すべき第一幅データで占められていな  い場合に、当該第二幅データを前記転送先メモリに転送する前に、当該第二幅データの  前記転送すべき第一幅データで占められていない部分にヌルデータを入れる
ことを特徴とするデータ転送方法。
【請求項４】
第一データ幅の第一メモリに納められた印刷データである第一幅データを、第一データ幅より大きい第二データ幅の第二メモリに転送し、前記第二メモリのデータを印刷エンジンに入力して印刷を行うプリンタであって、
前記第一メモリから順次送られる前記第一幅データを順番に第二データ幅に格納し、  前記第二メモリに転送する前に第二データ幅の第二幅データとするレジスタと、
前記レジスタにおける第二幅データが、前記第二メモリに転送すべき第一幅データで  占められていない場合に、当該第二幅データを前記第二メモリに転送する前に、当該第  二幅データの前記転送すべき第一幅データで占められていない部分にヌルデータを入れ  るフィルタとを有する
ことを特徴とするプリンタ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスのビット幅が異なるメモリ間におけるデータ転送の技術に関し、特に、転送にかかる処理時間を短縮することのできる技術に関する。
【背景技術】
【０００２】
デジタルデータを扱う様々な装置において、バスのビット幅（データ幅）が異なるメモリ間でデータを転送する必要性が生じる場合がある。例えば、インクジェットプリンタの場合には、近年、ノズルの数が多い大ヘッドで高速な印刷を行う傾向にあり、エンジン側の高速化が先行する状況にある。これにより、プリンタのエンジン側と他の部分とでバス幅に隔たりが生じており、取り扱うイメージデータの転送において、データ幅が異なるメモリ間でのデータ転送が必要になっている。
【０００３】
このようなデータ幅の異なるメモリ間でのデータ転送については、従来から幾つかの技術が提案されている（例えば、下記特許文献１）。かかるデータ転送において、一つの課題は、データ幅の小さいメモリからデータ幅の大きいメモリへデータ転送をする際に、転送するデータの量によっては、転送データが転送先のメモリ（データ幅の大きいメモリ）においてデータ幅一杯にメモリを埋めない場合があることである。例えば、３２ビット幅のメモリから１２８ビット幅のメモリへ、５つの３２ビットデータを転送する場合には、転送先の１２８ビット幅のメモリにおいて、１列目の領域は４つの３２ビットデータで１２８ビット幅一杯に埋められるが、２列目の領域は５つ目の３２ビットデータでその１／４の領域が埋められるだけである。
【０００４】
このような状況が発生すると、転送されたデータで埋められなかった残りの領域には、通常、前のデータが残っているため、その後の処理においてその部分も送信されてしまい問題が生じる。従って、かかる問題が発生するのを避けるために、従来は、データ転送前にデータ転送先のメモリを全てクリアするという処理を行っていた。これにより、上述のように、転送データによってデータ幅一杯に埋められない場合にも、前のデータが残っていることがないので上記問題を避けることができた。
【特許文献１】特開２００３−１９６０４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、データ転送先のメモリを全てクリアするという従来の方法では、転送先メモリの全てにヌル（ｎｕｌｌ）データを書き込む処理が必要になり、かかる処理に時間がかかるという課題があった。プリンタにおいては、このことが処理速度向上の妨げとなっていた。
【０００６】
そこで、本発明の目的は、バスのビット幅が異なるメモリ間でデータ転送を行う際に、処理時間を短縮することのできるデータ転送装置等を提供することである。
【課題を解決するための手段】
【０００７】
上記の目的を達成するために、本発明の一つの側面は、第一データ幅の転送元メモリに
納められた第一幅データを、第一データ幅より大きい第二データ幅の転送先メモリに転送するデータ転送装置が、前記転送元メモリから順次送られる前記第一幅データを順番に第二データ幅に格納し、前記転送先メモリに転送する前に第二データ幅の第二幅データとするレジスタと、前記レジスタにおける第二幅データが、前記転送先メモリに転送すべき第一幅データで占められていない場合に、当該第二幅データを前記転送先メモリに転送する前に、当該第二幅データの前記転送すべき第一幅データで占められていない部分にヌルデータを入れるフィルタとを有することである。従って、本発明によれば、正しいデータ転送ができると共に、そのためのヌルデータの書き込みも最小限に抑えられるのでデータ転送時間を短縮することができる。
【０００８】
更に、上記の発明において、その好ましい態様は、前記第二幅データが転送すべき第一幅データで占められていないことの判断と、前記第二幅データの転送すべき第一幅データで占められていない部分の判断が、前記第一幅データを前記転送元メモリから転送する回数に基づいて行われることを特徴とする。
【０００９】
上記の目的を達成するために、本発明の別の側面は、第一データ幅の転送元メモリに納められた第一幅データを、第一データ幅より大きい第二データ幅の転送先メモリに転送するデータ転送方法において、前記転送元メモリから順次送られる前記第一幅データを順番に第二データ幅に並べ、前記転送先メモリに転送する前に第二データ幅の第二幅データとし、前記第二幅データが、前記転送先メモリに転送すべき第一幅データで占められていない場合に、当該第二幅データを前記転送先メモリに転送する前に、当該第二幅データの前記転送すべき第一幅データで占められていない部分にヌルデータを入れることである。
【００１０】
上記の目的を達成するために、本発明の更に別の側面は、第一データ幅の第一メモリに納められた印刷データである第一幅データを、第一データ幅より大きい第二データ幅の第二メモリに転送し、前記第二メモリのデータを印刷エンジンに入力して印刷を行うプリンタが、前記第一メモリから順次送られる前記第一幅データを順番に第二データ幅に格納し、前記第二メモリに転送する前に第二データ幅の第二幅データとするレジスタと、前記レジスタにおける第二幅データが、前記第二メモリに転送すべき第一幅データで占められていない場合に、当該第二幅データを前記第二メモリに転送する前に、当該第二幅データの前記転送すべき第一幅データで占められていない部分にヌルデータを入れるフィルタとを有することである。これにより、正しいデータ転送を行うための処理時間を短縮することができ、プリンタにおける処理速度の向上に貢献することができる。
【００１１】
本発明の更なる目的及び、特徴は、以下に説明する発明の実施の形態から明らかになる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して本発明の実施の形態例を説明する。しかしながら、かかる実施の形態例が、本発明の技術的範囲を限定するものではない。なお、図において、同一又は類似のものには同一の参照番号又は参照記号を付して説明する。
【００１３】
図１は、本発明を適用したプリンタの実施の形態例に係る構成図である。図１に示すハードウェアＩ/Ｆユニット１７が本発明のデータ転送装置に相当する部分であり、データ幅の異なる展開メモリ１８と２値化データメモリ２０との間のデータ転送を司る。本実施の形態例に係るプリンタ１は、当該ハードウェアＩ/Ｆユニット１７により、上記メモリ間のデータ転送を迅速に行おうとするものである。
【００１４】
プリンタ１は、図１に示すようにホストコンピュータ２と接続され、ホストコンピュータ２から送信される印刷データに基づいて印刷を実行する。図に示すように、プリンタ１は、大きくコントローラユニット３とエンジンユニット４とから構成される。コントローラユニット３には、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、ホストＩ／Ｆ１４、画像処理ユニット１５、展開メモリ１８、ハーフトーン２値化ユニット１９、及び２値化データメモリ２０等が備えられている。ホストＩ／Ｆ１４は、ホストコンピュータ２から送信された印刷データ等を受信するインターフェースであり、ＲＯＭ１２は、ＣＰＵ１１等で実行される各種制御プログラム等を記憶している部分である。ＣＰＵ１１は、本実施の形態例に係るプリンタ１における各種制御の中心的役割を担う部分である。
【００１５】
また、画像処理ユニット１５には、画像データ伸長ユニット１６及びハードウェアＩ/Ｆユニット１７等が備えられている。画像データ伸長ユニット１６は、前記ホストＩ／Ｆ１４で受信されたＪＰＥＧ形式等に圧縮された画像データを伸長する部分であり、伸長後の画像データは展開メモリ１８に納められる。ハードウェアＩ/Ｆユニット１７は、前述の通り、本発明の主要部分であり、詳細な構成と機能は後述するが、前記展開メモリ１８に納められた画像データを取り出してハーフトーン２値化ユニット１９等へ引き渡すなどの処理を司る。
【００１６】
また、展開メモリ１８は、上述の通り、伸長（展開）後の画像データを格納するメモリであり、ハードウェアＩ/Ｆユニット１７が行うデータ転送の転送元となる部分である。そして、当該メモリのデータ幅は、後述する２値化データメモリ２０のデータ幅よりも小さく、例えば、３２ビットのバス２３でハードウェアＩ/Ｆユニット１７と繋がれている。
【００１７】
ハーフトーン２値化ユニット１９は、展開メモリ１８から取り出された画像データに対してハーフトーン処理等を実行する部分であり、処理後の２値化されたデータはエンジンユニット４に送られて処理される。また、２値化データメモリ２０は、２値化されエンジンユニット４へ送られるデータを格納するメモリであり、ハードウェアＩ/Ｆユニット１７が行うデータ転送の転送先となる部分である。そして、当該メモリのデータ幅は、前述した展開メモリ１８のデータ幅よりも大きく、例えば、１２８ビットのバス２３でハードウェアＩ/Ｆユニット１７と繋がれている。なお、コントローラユニット３内の各部分は図１に示すようにバス２３で繋がれている。
【００１８】
次に、エンジンユニット４は、エンジンコントローラ２１とエンジン２２を有し、コントローラユニット３から送信された２値化データに基づいて紙などの媒体に印字を行う部分である。
【００１９】
図２は、前記ハードウェアＩ/Ｆユニット１７の内部構成を模式的に表した図である。図２に示すように、ハードウェアＩ/Ｆユニット１７は、入力Ｉ／Ｆ２４、レジスタ２５、フィルタ２６、メモリコントローラ２７、テーブル２８、及び転送回数レジスタ２９等を備えている。入力Ｉ／Ｆ２４は、前記展開メモリ１８に納められた３２ビットのデータを３２ビット幅のバス２３ａを介して受け取る部分である。レジスタ２５は、前記入力Ｉ／Ｆ２４が受信した３２ビットのデータを順次受け取り、４つの３２ビットデータを１２８ビットのデータとして格納する部分である。図２に示すように、例えば、展開メモリ１８に納められた４つの３２ビットデータ（１）〜（４）が、順次入力Ｉ／Ｆ２４に受け取られ、図に示すような状態でレジスタ２５に格納される。
【００２０】
次に、フィルタ２６は、前記レジスタ２５に納められた１２８ビットのデータを受け取り、必要に応じてフィルタ処理を行い、処理後のデータを２値化データメモリ２０へ引き渡す部分である。具体的な処理内容は後述するが、レジスタ２５から受け取ったデータの必要な部分のみをヌルデータとする処理を実行する。また、メモリコントローラ２７は、フィルタ２６での処理後、１２８ビットのデータを１２８ビット幅のバス２３ｂを介して２値化データメモリ２０へ転送する部分である。
【００２１】
また、テーブル２８は、前記フィルタ２６での処理に用いられるマスクビットパターンを納めた部分である。納められるマスクビットパターンは、転送先メモリのデータ幅を転送元メモリのデータ幅で割った数の種類のものが用意される。本実施の形態例の場合、即ち、３２ビット幅のメモリから１２８ビット幅のメモリに転送する場合には、４種類のものが用意される。具体的なマスクビットパターンの内容については後述する。転送回数レジスタ２９は、展開メモリ１８からハードウェアＩ/Ｆユニット１７へのデータの転送回数等を納めるレジスタである。なお、前記メモリコントローラ２７によって転送された１２８ビットデータは、２値化データメモリ２０の所定領域に格納され（例えば、図２における２値化データメモリ２０内の（１）〜（４））、その後、所定タイミングでエンジンユニット４へ引き渡される。
【００２２】
図３は、展開メモリ１８から２値化データメモリ２０へのデータ転送処理の手順を例示したフローチャートである。また、図４は、当該データ転送処理の際の転送データ等を時系列に示した図である。以下、図３、４等に基づいて、本実施の形態例におけるデータ転送装置であるハードウェアＩ/Ｆユニット１７の機能を説明する。
【００２３】
まず、転送開始時に、今回展開メモリ１８から転送するデータの量、即ち、３２ビットデータを展開メモリ１８から何回送るかをＣＰＵ１１が把握し、その転送回数を転送回数レジスタ２９に設定する（図３のステップＳ１）。ここで、当該転送回数を２進法の３２桁で表現し、ＣＮＴ[３１：０]と表記することとする。かかる設定が終了すると、ＣＰＵ１１から転送命令が発せられ（図３のステップＳ２）、転送が開始される（図４におけるイ）。
【００２４】
ここでハードウェアＩ/Ｆユニット１７は、前記転送回数レジスタ２９に設定された転送回数ＣＮＴ[３１：０]の下２桁を除いた部分、即ち、ＣＮＴ[３１：２]を変数ＣＮＴの値として設定する（図３のステップＳ３、図４のロ）。このＣＮＴ[３１：２]という値は、展開メモリ１８からの転送回数ＣＮＴ[３１：０]を４で割ったときの商を表している。換言すれば、今回転送するデータについての、ハードウェアＩ/Ｆユニット１７から２値化データメモリ２０への１２８ビットデータの転送回数よりも１少ない数を意味している。なお、ＣＮＴ[３１：２]という値を用いたのは、本実施の形態例においては、転送先のデータ幅が転送元のデータ幅の４倍になっているからであり、当該データ幅の倍数が異なれば、上記変数ＣＮＴの値も異なる値に設定する。
【００２５】
次に、ハードウェアＩ/Ｆユニット１７は、上記ＣＮＴの値が０であるか否かをチェックし（図３のステップＳ４）、０でなければ（図３のステップＳ４のＮｏ）、展開メモリ１８から３２ビットのデータを４回受信し、受信した４つの３２ビットデータを順次レジスタ２５に格納する（例えば、図４のハ）。これにより、図２に例示したように、レジスタ２５内で１２８ビットデータが生成され、その後、レジスタ２５から当該１２８ビットデータがフィルタ２６に引き渡される。しかし、この場合には、フィルタ２６では処理を行わずに、受け取った１２８ビットデータをそのまま２値化データメモリ２０へ転送する（図３のステップＳ５、図４のニ）。その後、ハードウェアＩ/Ｆユニット１７は、前記ＣＮＴの値を１つ減らす（図３のステップＳ６、図４のホ）。そして、再度、図３のステップＳ４に戻り、ＣＮＴの値が０になるまで、同様の処理（図３のステップＳ４〜Ｓ６）を繰り返し実行する。
【００２６】
一方、図３のステップＳ４において、ＣＮＴの値が０であれば（図３のステップＳ４のＹｅｓ）、ハードウェアＩ/Ｆユニット１７は、今回転送するデータのうち展開メモリ１８に残されているデータを受信し、順次レジスタ２５に格納する（図３のステップＳ７、図４のへ）。なお、この場合に、展開メモリ１８にデータが残っていない場合もあるが、この場合には前記データ転送及び格納は行わない。このＣＮＴの値が０になった場合とは、当該データ転送処理において、ハードウェアＩ/Ｆユニット１７から２値化データメモリ２０への最後の転送の場合である。そして、この場合には、前記図３のステップＳ７における３２ビットデータの受信とレジスタ２５への格納は、０回〜３回のいずれかとなる。従って、今回の展開メモリ１８からの転送により、最大９６ビットのデータ（３２ビットデータが３つ）しかレジスタ２５に書き込まれないので、レジスタ２５で生成される１２８ビットデータには、少なくとも３２ビット分の古いデータ（前回転送時のデータ）が含まれることとなる。換言すれば、ここで生成される１２８ビットデータは、転送すべきデータだけで占められておらず、転送すべきでないデータも含むこととなる。その後、この１２８ビットデータがフィルタ２６に引き渡される。
【００２７】
次に、ハードウェアＩ/Ｆユニット１７は、前記転送回数レジスタ２９に設定された転送回数ＣＮＴ[３１：０]の下２桁の部分ＣＮＴ[１：０]を抽出する。このＣＮＴ[１：０]は、転送回数ＣＮＴ[３１：０]を４で割った際の余りを表しており、上記ステップＳ７において、今回展開メモリ１８から転送されレジスタ２５に書き込まれた３２ビットデータの数に相当する。従って、ＣＮＴ[１：０]は、０〜３の値（２進法では“００”〜“１１”の値）をとることになる。図４に示す例では、へ部に示すように、ＣＮＴ[１：０]は２進法で“１０”となる。
【００２８】
ハードウェアＩ/Ｆユニット１７は、抽出したＣＮＴ[１：０]値に基づいて、テーブル２８に納められたマスクビットパターンの一つを選択しそれをフィルタ２６に設定する（図３のステップＳ８）。図５は、テーブル２８に納められるマスクビットパターンを例示した図である。前述の通り、本実施の形態例においては４種類のマスクビットパターンが用意されており、上記ＣＮＴ[１：０]の各値に対応している。このマスクビットパターンはＦ[１２７：０]で表記され、１２８の“０”あるいは“１”の値で構成される。図５では、このマスクビットパターンＦ[１２７：０]を１６進法で表現している。例えば、上述した図４の例では、ＣＮＴ[１：０]が“１０”であるので、テーブル２８から図５のトに示すマスクビットパターンが選択されて設定される。
【００２９】
図６は、フィルタ２６の構成を例示した図である。図６に示す例では、フィルタ２６は図に示すようなフィルタ回路２６１を有しており、この回路を用いてフィルタ処理を実行する。フィルタ回路２６１は、１２８個の論理積をとる演算回路が用意され、前記マスクビットパターンの設定とは、各回路の片側の入力値（例えば、図６のチ）として、選択されたマスクビットパターンＦ[１２７：０]の各値（フィルタ値）を設定することである。
【００３０】
次に、ハードウェアＩ/Ｆユニット１７は、前記レジスタ２５に生成された１２８ビットデータに対してフィルタ処理を実行する（図３のステップＳ９）。具体的には、当該１２８ビットデータのうちの、前述した古いデータ（前回転送時のデータ）が残っている部分、即ち、転送すべきデータでない部分をヌル（データ）とする処理を実施する。図６に基づいてより詳細に説明すると、フィルタ２６では、前記フィルタ回路２６１がレジスタ２５に生成された上記１２８ビットデータを入力値ＤＩＮ[１２７：０]とし、その１２８個の各値がそれぞれ前述した各演算回路の片側（例えば、図６のリ）に入力される。各演算回路では、前述した、もう一方の入力値であるマスクビットパターンＦ[１２７：０]の各値（フィルタ値）と当該入力値ＤＩＮ[１２７：０]の各値との間で論理積がとられ、その結果の値が出力値ＤＯＵＴ[１２７：０]として出力される。
【００３１】
ここで、前記マスクビットパターンＦ[１２７：０]は、前述の通り、ＣＮＴ[１：０]により、即ち、今回展開メモリ１８から転送されレジスタ２５に書き込まれた３２ビットデータの数により決定されており、図５に示した例からもわかるように、各マスクビットパターンの、今回レジスタ２５に書き込まれた３２ビットデータに対応する部分は“１”のフィルタ値となっており、一方、古いデータが残っている部分に対応する部分は“０”のフィルタ値となっている。例えば、ＣＮＴ[１：０]が“１０”の場合には、２つの３２ビットデータが新しくレジスタ２５に書き込まれ、残りの６４ビット分の領域には古いデータが残っていることとなるが、この場合に選択されるマスクビットパターンＦ[１２７：０]は、図５のトに示されるように、前半の６４のフィルタ値が“１”を示しており、後半の６４のフィルタ値が“０”を示している。
【００３２】
従って、前述したようなフィルタ回路２６１における論理積をとる演算が行われると、今回展開メモリ１８から転送されレジスタ２５に書き込まれたデータはそのまま出力され、残っていた古いデータは“０”（ヌル）として出力されることになる。よって、前述したように、当該フィルタ処理により、レジスタ２５の１２８ビットデータのうち古いデータ（前回転送時のデータ）が残っている部分にヌル（データ）を書き込むという処理が実行されることになる。換言すれば、１２８ビットデータのうち転送すべきデータでない部分にヌル（データ）が書き込まれる。
【００３３】
このようにフィルタ回路２６１から出力され、フィルタ２６での処理を終えた１２８ビットデータＤＯＵＴ[１２７：０]は、メモリコントローラ２７により２値化データメモリ２０へ転送される（図３のステップＳ１０、図４のヌ）。
【００３４】
以上の処理により、展開メモリ１８から２値化データメモリ２０へのデータ転送処理が終了し、今回転送しようとしたデータの全てが展開メモリ１８から２値化データメモリ２０に移されたことになる。この転送の結果、２値化データメモリ２０には、今回転送された３２ビットデータが順次４つずつ１２８ビット幅で収められて１２８ビットデータを形成し（例えば、図２のル）、最後に形成された１２８ビットデータにおいては、今回転送された３２ビットデータでない部分がヌルデータとなっている。このように、転送元のデータが転送先においてもそのまま再現されることになる。転送され１２８ビットとなった２値化データメモリ２０のデータは、その後、順次エンジンユニット４に送られるが、当該データには古いデータを含んでしまっていることもなく、問題を起すことなくその後の処理が実行される。
【００３５】
図７は、本実施の形態例におけるデータ転送処理の一例を説明するための図である。図７に示す例は、展開メモリ１８に納められた５つの３２ビットデータ（図に示す（１）〜（５））を２値化データメモリ２０に転送する場合である。図７の（Ａ）及び（Ｂ）は、それぞれ、ハードウェアＩ/Ｆユニット１７から２値化データメモリ２０への１回目の転送と２回目の転送を示している。
【００３６】
まず、最初の段階では、前記ＣＮＴ[３１：０]が１０進法では５回でありＣＮＴ[３１：２]が１０進法では“１”となるのでＣＮＴ値が“０”ではなく、図７の（Ａ）に示されるように、３２ビットデータ（１）〜（４）が展開メモリ１８から転送され、それらが順次レジスタ２５に書き込まれる。その後、１２８ビットデータとなった（１）〜（４）は、フィルタ処理されることなくそのまま出力され、２値化データメモリ２０へ転送される。即ち、フィルタ回路２６１では処理を施されずに元のままの（１）〜（４）が、図７の（Ａ）に示すように、２値化データメモリ２０に格納される。
【００３７】
次に、ＣＮＴの値が１減少するので、ＣＮＴ＝０となり、展開メモリ１８に残った３２ビットデータ（５）がレジスタ２５に転送されて書き込まれる。その結果、図７の（Ｂ）に示すように、レジスタ２５には、今回転送された（５）と前回転送されて残っている（２）〜（４）による１２８ビットデータが生成される。その後、この例のＣＮＴ[１：０]は“０１”であるので、それに対応するマスクビットパターン（図５のヲ）がフィルタ回路２６１に設定され、上記生成された１２８ビットデータに対して前述のフィルタ処理が行われる。フィルタ処理により、（５）以外の部分にはヌルが書き込まれる処理がなされるので、当該処理の結果、図７の（Ｂ）に示すように、３２ビットの（５）と９６ビットのヌルデータからなる１２８ビットデータが出力される。出力された当該データは、２値化データメモリ２０に転送されて格納される。以上の処理で、本例におけるデータ転送処理は終了し、転送結果は、図７の（Ｂ）における２値化データメモリ２０に示すような状態となる。
【００３８】
以上説明したように、本実施の形態例に係るプリンタ１においては、転送元よりデータ幅の大きい転送先にデータを転送する際に、転送先のメモリ（２値化データメモリ２０）を予め全てクリアする処理、即ち、転送先のメモリ全てにヌルデータを書き込む処理を行わずに、転送先メモリの一部のみをヌルデータとすればよい。より具体的には、最大で、転送先のデータ幅の１列に相当する領域（本実施の形態例においては、１２８ビットのデータを納める領域）についてヌルデータとすればよい。従って、転送先のメモリを全てクリアする従来法よりも大幅にデータ転送処理時間を短縮することができる。これにより、プリンタ１における全体の処理時間向上に貢献することができる。
【００３９】
なお、前述した実施の形態例においては、転送元から転送しようとするデータの数が、転送先のデータ幅（例えば、１２８ビット）を転送元のデータ幅（例えば、３２ビット）で割った数（例えば、４）の倍数（例えば、８）である場合に、転送先のデータ幅１列分のヌルデータを付加することになるが、かかる場合に、全くヌルデータを付加しないようにしてもよい。具体的には、この場合にはＣＮＴ[１：０]が“００”となるので、図３に示した処理フローにおいて、ＣＮＴ＝０となった時点（ステップＳ４のＹｅｓ）で、ＣＮＴ[１：０]値をチェックし、その値が“００”であればその時点で転送処理を終了し、それ以外の値であれば、ステップＳ７に処理を移行するようにする。これにより、かかるＣＮＴ[１：０]が“００”の場合、換言すれば、転送するデータを転送先のデータ幅にした際に余計な領域が発生しない場合には全くヌルデータが付加されずに、ＣＮＴ[１：０]が“００”以外の場合、換言すれば、転送するデータを転送先のデータ幅にした際に余計な領域が発生する場合にはその余計な領域にヌルデータが付加されることになる。従って、このような処理を行うことにより、更にヌルデータを書き込む処理が減少し、データ転送処理時間を更に短縮することが可能となる。
【００４０】
また、本実施の形態例では、プリンタにおけるデータ転送処理として説明したが、本発明に係るデータ転送装置及びデータ転送方法は、プリンタ以外の装置にも適用することが可能である。
【００４１】
本発明の保護範囲は、上記の実施の形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶものである。
【図面の簡単な説明】
【００４２】
【図１】本発明を適用したプリンタの実施の形態例に係る構成図である。
【図２】ハードウェアＩ/Ｆユニット１７の内部構成を模式的に表した図である。
【図３】本実施の形態例におけるデータ転送処理の手順を示したフローチャートである。
【図４】データ転送処理の際の転送データ等を時系列に示した図である。
【図５】テーブル２８に納められるマスクビットパターンを例示した図である。
【図６】フィルタ２６の構成を例示した図である。
【図７】本実施の形態例におけるデータ転送処理の一例を説明するための図である。
【符号の説明】
【００４３】
１  プリンタ、  ２  ホストコンピュータ、  ３  コントローラユニット、  ４  エンジンユニット、  １１  ＣＰＵ、  １２  ＲＯＭ、  １３  ＲＡＭ、  １４  ホストＩ/Ｆ、  １５  画像処理ユニット、  １６  画像データ伸長ユニット、  １７  ハードウェアＩ/Ｆユニット、  １８  展開メモリ、  １９  ハーフトーン２値化ユニット、  ２０  ２値化データメモリ、  ２１  エンジンコントローラ、  ２２  エンジン、  ２３  バス、  ２４  入力Ｉ/Ｆ、  ２５  レジスタ、  ２６  フィルタ、  ２７  メモリコントローラ、  ２８  テーブル、  ２９  転送回数レジスタ、  ２６１  フィルタ回路
【図１】
2005161822.tif 000003
【図２】
2005161822.tif 000004
【図３】
2005161822.tif 000005
【図４】
2005161822.tif 000006
【図５】
2005161822.tif 000007
【図６】
2005161822.tif 000008
【図７】
2005161822.tif 000009