(57)【要約】【課題】ビットマップデータを大容量メモリに転送出力するときの消費電力を低減する。【解決手段】第1キャッシュメモリ２１ａに所定量のビットマップデータを蓄積すると共に、第２キャッシュメモリ２１ｂに所定量の配列変換ビットマップデータを蓄積しておき、ビットマップデータを転送出力するときの値０と値１の切り替え回数及び配列変換ビットマップデータを転送出力するときの値０と値１の切り替え回数を比較して、切り替え回数が少ない方のビットマップデータ又は配列変換ビットマップデータをＲＡＭ１５へ転送出力しているので、データをデータバス１７を介してＲＡＭ１５へと転送出力するときの消費電力が低くなる。【選択図】図２
2008119900.tif 000002
【特許請求の範囲】
【請求項１】
２値データの集合であるビットマップデータを大容量メモリに転送出力するデータ転送装置において、
前記ビットマップデータを所定量だけ蓄積する第１メモリと、
前記所定量のビットマップデータにおけるＸ方向のデータ配列毎にデータ配列をＸ方向からＹ方向に並べ替えてなる配列変換ビットマップデータを蓄積する第２メモリと、
前記第１メモリ内のビットマップデータを転送出力するときの値０と値１の切り替え回数を求めると共に、前記第２メモリ内の配列変換ビットマップデータを転送出力するときの値０と値１の切り替え回数を求める演算手段と、
前記演算手段により求められた前記第１メモリ内のビットマップデータについての切り替え回数及び前記第２メモリ内の配列変換ビットマップデータについての切り替え回数のうちの少ない方の切り替え回数を選択し、この少ない方の切り替え回数のビットマップデータ又は配列変換ビットマップデータを前記大容量メモリに転送出力する転送手段とを備えることを特徴とするデータ転送装置。
【請求項２】
２値データの集合であるビットマップデータを大容量メモリに転送出力するデータ転送装置において、
前記ビットマップデータを所定量だけ蓄積する第１メモリと、
前記所定量のビットマップデータにおける値０と値１を反転させてなる反転ビットマップデータを蓄積する第２メモリと、
前記第１メモリ内のビットマップデータにおける値０の個数及び前記第２メモリ内の反転ビットマップデータにおける値０の個数を求める演算手段と、
前記演算手段により求められた前記第１メモリ内のビットマップデータにおける値０の個数及び前記第２メモリ内の反転ビットマップデータにおける値０の個数のうちの少ない方の個数を選択し、この少ない方の個数のビットマップデータ又は反転ビットマップデータを前記大容量メモリに転送出力する転送手段とを備えることを特徴とするデータ転送装置。
【請求項３】
２値データの集合であるビットマップデータを大容量メモリに転送出力するデータ転送装置において、
前記ビットマップデータを所定量だけ蓄積する第１メモリと、
前記所定量のビットマップデータにおける値０と値１を反転させるインバータ手段と、
前記第１メモリ内のビットマップデータにおける値０の個数を求める演算手段と、
前記演算手段により求められた前記第１メモリ内のビットマップデータにおける値０の個数が該ビットマップデータにおける値０及び値１の総個数の５０％以上である場合は、前記第１メモリ内のビットマップデータを前記インバータ手段を介して前記大容量メモリに転送出力し、前記値０の個数が前記値０及び値１の総個数の５０％未満である場合は、前記第１メモリ内のビットマップデータをそのまま前記大容量メモリに転送出力する転送手段とを備えることを特徴とするデータ転送装置。
【請求項４】
前記ビットマップデータは、外部から入力されたＰＤＬデータをラスタライズしたものであることを特徴とする請求項１乃至３のいずれかに記載のデータ転送装置。
【請求項５】
前記第１メモリの容量及び前記第２メモリの容量は割り当てられ、これらのメモリの容量に応じて該各メモリに蓄積されるデータ量が決定されることを特徴とする請求項１乃至３のいずれかに記載のデータ転送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビットマップデータを大容量メモリに転送出力するデータ転送装置に関する。
【背景技術】
【０００２】
周知の様にＬＡＮ(Local Area Network)等を用いたネットワークシステムにおいては、パーソナルコンピュータやプリンタ等をネットワークに接続しておき、ＰＤＬ（Page Description Language）データ等の印刷データをパーソナルコンピュータからネットワークを通じてプリンタへと転送し、プリンタで印刷データの記録を行う様にしている。ＰＤＬデータ等の印刷データは、ビットマップデータに変換されてから印刷に用いられ、このデータの変換をプリンタコントローラで行う（特許文献１を参照）。
【０００３】
プリンタコントローラでは、例えばＳＯＣ（System On Chip）を用いており、ＳＯＣでＰＤＬデータをビットマップデータに変換しつつ、ビットマップデータを所定量ずつＳＯＣのキャッシュメモリに一旦蓄積してからＳＯＣ外部の大容量メモリへと転送出力し、ビットマップデータを大容量メモリに蓄積する。更にビットマップデータを大容量メモリから読み出してプリンタエンジンに転送し、プリンタエンジンでビットマップデータにより示される画像や文字等を記録用紙に印刷する。
【特許文献１】特開平１０−５２９６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、プリンタコントローラにおいては、ＳＯＣのキャッシュメモリに対するビットマップデータの書き込み及び読出を行うのに要する消費電力が小さいものの、この消費電力と比較すると、ＳＯＣのキャッシュメモリからＳＯＣ外部の大容量メモリへのビットマップデータの転送を行うのに要する消費電力が非常に大きい。これは、ＳＯＣ外部の大容量メモリへのデータ転送がデータバスを通じて行われるためである。しかも、ビットマップデータのデータ量が大きいことから、この消費電力の低減を図るのが望ましい。
【０００５】
そこで、本発明は、上記従来の問題に鑑みてなされたものであり、ビットマップデータを大容量メモリに転送出力するときの消費電力の低減が可能なデータ転送装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明は、２値データの集合であるビットマップデータを大容量メモリに転送出力するデータ転送装置において、前記ビットマップデータを所定量だけ蓄積する第１メモリと、前記所定量のビットマップデータにおけるＸ方向のデータ配列毎にデータ配列をＸ方向からＹ方向に並べ替えてなる配列変換ビットマップデータを蓄積する第２メモリと、前記第１メモリ内のビットマップデータを転送出力するときの値０と値１の切り替え回数を求めると共に、前記第２メモリ内の配列変換ビットマップデータを転送出力するときの値０と値１の切り替え回数を求める演算手段と、前記演算手段により求められた前記第１メモリ内のビットマップデータについての切り替え回数及び前記第２メモリ内の配列変換ビットマップデータについての切り替え回数のうちの少ない方の切り替え回数を選択し、この少ない方の切り替え回数のビットマップデータ又は配列変換ビットマップデータを前記大容量メモリに転送出力する転送手段とを備えている。
【０００７】
また、本発明は、２値データの集合であるビットマップデータを大容量メモリに転送出力するデータ転送装置において、前記ビットマップデータを所定量だけ蓄積する第１メモリと、前記所定量のビットマップデータにおける値０と値１を反転させてなる反転ビットマップデータを蓄積する第２メモリと、前記第１メモリ内のビットマップデータにおける値０の個数及び前記第２メモリ内の反転ビットマップデータにおける値０の個数を求める演算手段と、前記演算手段により求められた前記第１メモリ内のビットマップデータにおける値０の個数及び前記第２メモリ内の反転ビットマップデータにおける値０の個数のうちの少ない方の個数を選択し、この少ない方の個数のビットマップデータ又は反転ビットマップデータを前記大容量メモリに転送出力する転送手段とを備えている。
【０００８】
更に、本発明は、２値データの集合であるビットマップデータを大容量メモリに転送出力するデータ転送装置において、前記ビットマップデータを所定量だけ蓄積する第１メモリと、前記所定量のビットマップデータにおける値０と値１を反転させるインバータ手段と、前記第１メモリ内のビットマップデータにおける値０の個数を求める演算手段と、前記演算手段により求められた前記第１メモリ内のビットマップデータにおける値０の個数が該ビットマップデータにおける値０及び値１の総個数の５０％以上である場合は、前記第１メモリ内のビットマップデータを前記インバータ手段を介して前記大容量メモリに転送出力し、前記値０の個数が前記値０及び値１の総個数の５０％未満である場合は、前記第１メモリ内のビットマップデータをそのまま前記大容量メモリに転送出力する転送手段とを備えている。
【０００９】
例えば、前記ビットマップデータは、外部から入力されたＰＤＬデータをラスタライズしたものである。
【００１０】
また、前記第１メモリの容量及び前記第２メモリの容量は割り当てられ、これらのメモリの容量に応じて該各メモリに蓄積されるデータ量が決定される。
【発明の効果】
【００１１】
この様な本発明のデータ転送装置によれば、第１メモリに所定量のビットマップデータを蓄積すると共に、第２メモリに該所定量のビットマップデータのＸ方向のデータ配列とＹ方向のデータ配列を入れ替えてなる配列変換ビットマップデータを蓄積しておき、ビットマップデータを転送出力するときの値０と値１の切り替え回数及び配列変換ビットマップデータを転送出力するときの値０と値１の切り替え回数を比較して、切り替え回数が少ない方のビットマップデータ又は配列変換ビットマップデータを大容量メモリに転送出力している。従って、常に、値０と値１の切り替え回数が少ない方のデータを大容量メモリに転送出力することになる。
【００１２】
この様に値０と値１の切り替え回数が少ないということは、データ転送装置と大容量メモリ間を接続するデータバス上の信号レベルの切り替え回数が少ないということであり、データを大容量メモリに転送出力するときの消費電力が低くなる。
【００１３】
また、本発明のデータ転送装置によれば、第１メモリに所定量のビットマップデータを蓄積すると共に、第２メモリに該所定量のビットマップデータの値０と値１を反転させてなる反転ビットマップデータを蓄積しておき、ビットマップデータの値０の個数及び反転ビットマップデータの値０の個数を比較して、値０の個数が少ない方のビットマップデータ又は反転ビットマップデータを大容量メモリに転送出力している。従って、常に、値０の個数が少ない方のデータを大容量メモリに転送出力することになる。
【００１４】
あるいは、本発明のデータ転送装置によれば、第１メモリに所定量のビットマップデータを蓄積しておき、ビットマップデータの値０の個数が該ビットマップデータにおける値０及び値１の総個数の５０％以上である場合は、ビットマップデータをインバータ手段を介して、つまりビットマップデータの値０と値１を反転させて、反転ビットマップデータを求め、この反転ビットマップデータを大容量メモリに転送出力し、ビットマップデータの値０の個数が値０及び値１の総個数の５０％未満である場合は、ビットマップデータをそのまま大容量メモリに転送出力している。この場合も、常に、値０の個数が少ない方のデータが大容量メモリに転送出力されることになる。
【００１５】
この様に値０の個数が少なくされると、データを大容量メモリに転送出力するときの消費電力が低くなる。
【００１６】
尚、データバス上では値０及び値１とそれぞれの信号レベルとの対応関係が任意であるが、本発明においては、値０と値１が切り替わるときに消費電力が最も大きく、値０が連続するときに消費電力が次に大きく、値１が連続するときに消費電力が最も小さいものとする。
【００１７】
例えば、ビットマップデータは、外部から入力されたＰＤＬデータをラスタライズしたものである。プリンタコントローラにおいては、パーソナルコンピュータ等の端末装置からＰＤＬデータを入力し、ＰＤＬデータをビットマップデータにラスタライズして、ビットマップデータを大容量メモリに転送出力することが多い。
【００１８】
また、第１及び第２メモリとして、それぞれのキャッシュメモリを用いる場合は、メモリの容量が割り当てられたときに、その容量に応じてメモリに蓄積されるデータ量を決定しても良い。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施形態を添付図面を参照しつつ詳細に説明する。
【００２０】
図１は、本発明のデータ転送装置の第１実施形態を適用したネットワークシステム示すブロック図である。このネットワークシステムでは、各パーソナルコンピュータ１-1、１-2、１-3及びマルチファンクションプリンタ２をＬＡＮ等のネットワーク３に接続しており、ＰＤＬ（Page Description Language）データをパーソナルコンピュータからネットワーク３を通じてプリンタ２へと転送し、プリンタ２でＰＤＬデータによって示される画像や文字等を記録用紙に印刷する。
【００２１】
プリンタ２は、プリンタコントローラ４及びプリンタエンジン５を備えており、パーソナルコンピュータからのＰＤＬデータをプリンタコントローラ４に入力して、プリンタコントローラ４でＰＤＬデータをビットマップデータにラスタライズし、ビットマップデータをプリンタコントローラ４からプリンタエンジン５に転送し、プリンタエンジン５でビットマップデータによって示される画像や文字等を記録用紙に印刷する。
【００２２】
プリンタコントローラ４は、本実施形態のデータ転送装置に相当するものであり、ネットワーク３に接続されたネットワークインターフェースカード１１、ＳＯＣ（System On Chip）１２、画像出力部１３、フラッシュＲＯＭ１４、ＲＡＭ１５、ハードディスク１６、及びデータバス１７等を備えている。ネットワークインターフェースカード１１は、ネットワーク３に接続されており、パーソナルコンピュータからのＰＤＬデータを受信して、ＰＤＬデータをデータバス１７を介してＳＯＣ１２に転送する。ＳＯＣ１２は、ネットワークインターフェースカード１１からのＰＤＬデータを入力すると、ＰＤＬデータをビットマップデータにラスタライズし、ビットマップデータをデータバス１７を介してＲＡＭ１５に転送して、ビットマップデータをＲＡＭ１５に蓄積し、更にビットマップデータをＲＡＭ１５から読み出して、ビットマップデータを画像出力部１３に出力する。画像出力部１３は、ビットマップデータをプリンタエンジン５へと転送出力する。
【００２３】
ところで、ＳＯＣ１２においては、ＰＤＬデータを展開するときに、ビットマップデータを所定量ずつ該ＳＯＣ１２内のキャッシュメモリに一時的に蓄積するが、このキャッシュメモリに対する書き込み及び読出を行うのに要する消費電力が小さく、この消費電力が問題視されることはない。しかしながら、この消費電力と比較すると、ビットマップデータをＲＡＭ１５に転送するのに要する消費電力が非常に大きい。これは、ＲＡＭ１５へのデータ転送がデータバス１７を通じて行われるためである。しかも、ビットマップデータのデータ量が大きいことから、この消費電力の低減を図るのが望ましい。
【００２４】
そこで、本実施形態のプリンタコントローラ４では、ビットマップデータを所定量ずつＲＡＭ１５へと転送するに際し、所定量のビットマップデータ毎に、ビットマップデータのＸ方向のデータ配列とＹ方向のデータ配列を入れ替えてなる所定量の配列変換ビットマップデータを求め、これらのビットマップデータ及び配列変換ビットマップデータのうちからデータバス１７を通じてのデータ転送のときの消費電力がより少ない方を選択し、この選択した方のビットマップデータ又は配列変換ビットマップデータをデータバス１７を通じてＲＡＭ１５に転送して、消費電力の低減を図っている。
【００２５】
ビットマップデータは、画像や文字等を表すことから、ビットマップデータを構成する２値データの配列に偏りがあることが多く、このためにビットマップデータを転送出力するときの値０と値１の切り替え回数及び配列変換ビットマップデータを転送出力するときの値０と値１の切り替え回数を比較すると、両者の切り替え回数の間に大きな差が生じることがある。また、値０と値１の切り替え回数が少なければ少ない程、データバス１７を通じての転送に要する消費電力が低くなる。従って、値０と値１の切り替え回数が少ない方のビットマップデータ又は配列変換ビットマップデータをデータバス１７を通じて転送すれば、消費電力を低減させることができる。
【００２６】
所定量のビットマップデータがプリンタコントローラ４からデータバス１７を通じてＲＡＭ１５に転送されるときには、ビットマップデータを示すフラッグ値も転送されて、所定量のビットマップデータが該フラッグ値と共にＲＡＭ１５に記憶される。
【００２７】
また、所定量の配列変換ビットマップデータがデータバス１７を通じてＲＡＭ１５に転送されるときには、配列変換ビットマップデータを示すフラッグ値も転送されて、所定量の配列変換ビットマップデータが該フラッグ値と共にＲＡＭ１５に記憶される。
【００２８】
こうして所定量のビットマップデータもしくは所定量の配列変換ビットマップデータがそれぞれのフラッグ値と共にプリンタコントローラ４からＲＡＭ１５へと繰り返し転送されて、ビットマップデータの全体がビットマップデータもしくは配列変換ビットマップデータとしてＲＡＭ１５に記憶される。
【００２９】
この後、所定量のビットマップデータもしくは所定量の配列変換ビットマップデータがそれぞれのフラッグ値と共にＲＡＭ１５からＳＯＣ１２に繰り返し転送され、その度に、ＳＯＣ１２では、フラッグ値によりビットマップデータが示されていれば、所定量のビットマップデータをそのまま画像出力部１３を介してプリンタエンジン５へと転送し、またフラッグ値により配列変換ビットマップデータが示されていれば、所定量の配列変換ビットマップデータのＸ方向のデータ配列とＹ方向のデータ配列を再び入れ替えて、所定量の配列変換ビットマップデータを所定量のビットマップデータに変換して元に戻し、所定量のビットマップデータを画像出力部１３を介してプリンタエンジン５へと転送する。プリンタエンジン５では、所定量のビットマップデータを順次蓄積し、この結果としてビットマップデータの全体を蓄積する。そして、この全体のビットマップデータによって示される画像や文字等を記録用紙に印刷する。
【００３０】
尚、データバス１７上では値０及び値１とそれぞれの信号レベルとの対応関係が任意であるが、本実施形態においては、値０と値１が切り替わるときに消費電力が最も大きく、値１又は値０が連続するときに消費電力が小さくなるものとする。
【００３１】
この様なビットマップデータ及び配列変換ビットマップデータに係る制御は、プリンタコントローラ４におけるＳＯＣ１２で行われる。
【００３２】
図２は、ＳＯＣ１２の構成を概略的に示すブロック図である。ＳＯＣ１２は、演算部２１、判断部２２、及びメモリコントローラ２３を備えている。演算部２１は、第１キャッシュメモリ２１ａ、第２キャッシュメモリ２１ｂを備えており、パーソナルコンピュータからのＰＤＬデータを入力して、ＰＤＬデータをビットマップデータにラスタライズしつつ、ビットマップデータを所定量ずつ第１キャッシュメモリ２１ａに記憶すると共に、該所定量のビットマップデータにおけるＸ方向のデータ配列毎にデータ配列をＸ方向からＹ方向に並べ替えてなる所定量の配列変換ビットマップデータを求めて、所定量の配列変換ビットマップデータを第２キャッシュメモリ２１ｂに記憶する。
【００３３】
判断部２２は、第１キャッシュメモリ２１ａ内のビットマップデータを転送出力するときの値０と値１の切り替え回数を求めると共に、第２キャッシュメモリ２１ｂ内の配列変換ビットマップデータを転送出力するときの値０と値１の切り替え回数を求め、両者の切り替え回数を比較して、切り替え回数が少ない方のビットマップデータ又は配列変換ビットマップデータを選択する。そして、判断部２２は、ビットマップデータを選択したならば、第１キャッシュメモリ２１ａ内のビットマップデータをメモリコントローラ２３に出力し、ビットマップデータを示すフラッグ値を設定する。また、判断部２２は、反転ビットマップデータを選択したならば、第２キャッシュメモリ２１ｂ内の配列変換ビットマップデータをメモリコントローラ２３に出力し、配列変換ビットマップデータを示すフラッグ値を設定する。
【００３４】
メモリコントローラ２３は、第１キャッシュメモリ２１ａ内のビットマップデータを入力したならば、このビットマップデータ及びビットマップデータを示すフラッグ値をデータバス１７を介してＲＡＭ１５へと転送出力し、また第２キャッシュメモリ２１ｂ内の配列変換ビットマップデータを入力したならば、この配列変換ビットマップデータ及び配列変換ビットマップデータを示すフラッグ値をデータバス１７を介してＲＡＭ１５へと転送出力する。
【００３５】
例えば、図３に示す様にＸ方向８ビット及びＹ方向８ビットのビットマップデータＢＭ１が第１キャッシュメモリ２１ａに記憶されると、このビットマップデータＢＭ１のＸ方向の２値データ配列毎に２値データ配列がＸ方向からＹ方向に並べ替えられて、図４に示す様な配列変換ビットマップデータＢＭ２が求められ、この所定量の配列変換ビットマップデータＢＭ２が第２キャッシュメモリ２１ｂに記憶される。
【００３６】
図３のビットマップデータＢＭ１をＲＡＭ１５に転送する場合は、ビットマップデータＢＭ１の８ビットｂ0〜ｂ7がパラレルにされてメモリコントローラ２３からデータバス１７を通じてＲＡＭ１５へと転送される。従って、このビットマップデータＢＭ１のＹ方向に沿う８列の２値データ配列がパラレル８ビットｂ0〜ｂ7でデータバス１７を介して転送されることになり、データバス１７上では、図５に示す様にパラレル８ビットｂ0〜ｂ7の信号がハイレベルもしくはローレベルに順次切り替えられる。
【００３７】
同様に、図４の配列変換ビットマップデータＢＭ２をＲＡＭ１５に転送する場合は、配列変換ビットマップデータＢＭ２のＹ方向に沿う８列の２値データ配列がパラレル８ビットｂ0〜ｂ7でデータバス１７を介して転送され、データバス１７上では、図６に示す様にパラレル８ビットｂ0〜ｂ7の信号がハイレベルもしくはローレベルに順次切り替えられる。
【００３８】
図５のパラレル８ビットｂ0〜ｂ7の信号がハイレベルとローレベル間で切り替えられる回数は５０回であり、また図６のパラレル８ビットｂ0〜ｂ7の信号が切り替えられる回数は８回である。両者の切り替え回数の間には大きな差が生じており、図６のパラレル８ビットの信号の方がデータバス１７を通じて転送されるときの消費電力が少ない。
【００３９】
この場合は、第２キャッシュメモリ２１ｂ内の配列変換ビットマップデータＢＭ２が選択され、この配列変換ビットマップデータＢＭ２及び配列変換ビットマップデータを示すフラッグ値がデータバス１７を介してＲＡＭ１５へと転送出力される。
【００４０】
この様に所定量のビットマップデータもしくは所定量の配列変換ビットマップデータがそれぞれのフラッグ値と共にＲＡＭ１５へと繰り返し転送されて、ビットマップデータの全体がビットマップデータもしくは配列変換ビットマップデータとしてＲＡＭ１５に記憶される。
【００４１】
この後、メモリコントローラ２３は、所定量のビットマップデータもしくは所定量の配列変換ビットマップデータをそれぞれのフラッグ値と共にＲＡＭ１５からＳＯＣ１２に繰り返し転送させる。演算部２１は、フラッグ値により配列変換ビットマップデータが示されていれば、所定量の配列変換ビットマップデータを受け取って所定量のビットマップデータに変換して元に戻し、所定量のビットマップデータをメモリコントローラ２３に受け渡す。メモリコントローラ２３は、フラッグ値によりビットマップデータが示されていれば、所定量のビットマップデータをそのまま画像出力部１３を介してプリンタエンジン５へと転送し、またフラッグ値により配列変換ビットマップデータが示されていれば、演算部２１により所定量の配列変換ビットマップデータが所定量のビットマップデータに変換されてから、この所定量のビットマップデータを画像出力部１３を介してプリンタエンジン５へと転送する。これにより、プリンタエンジン５に所定量のビットマップデータが順次蓄積されて、ビットマップデータの全体が受け渡される。
【００４２】
次に、図７に示すフローチャートを参照しつつ、ＳＯＣ１２によるデータ転送処理を整理して説明する。
【００４３】
まず、ＳＯＣ１２の演算部２１は、ＰＤＬデータを入力すると（ステップＳ３１）、ＰＤＬデータをビットマップデータにラスタライズしつつ（ステップＳ３２）、ビットマップデータ及び配列変換ビットマップデータの蓄積のために割り当てられた第１及び第２キャッシュメモリ２１ａ、２１ｂの記憶容量を取得して、この記憶容量に蓄積し得る最大のデータ量を所定量とし（ステップＳ３３）、この所定量のビットマップデータを作成して（ステップＳ３４）、この所定量のビットマップデータを第１キャッシュメモリ２１ａに記憶すると共に（ステップＳ３５）、該所定量のビットマップデータのＸ方向のデータ配列とＹ方向のデータ配列を入れ替えてなる所定量の配列変換ビットマップデータを求め（ステップＳ３６）、この所定量の配列変換ビットマップデータを第２キャッシュメモリ２１ｂに記憶する（ステップＳ３７）。
【００４４】
次に、判別部２２は、第１キャッシュメモリ２１ａ内のビットマップデータを転送出力するときの値０と値１の切り替え回数を求めると共に（ステップＳ３８）、第２キャッシュメモリ２１ｂ内の配列変換ビットマップデータを転送出力するときの値０と値１の切り替え回数を求め（ステップＳ３９）、両者の切り替え回数を比較して（ステップＳ４０）、切り替え回数が少ない方のビットマップデータ又は配列変換ビットマップデータを選択してメモリコントローラ２に出力し、選択したデータのフラッグ値を設定する。
【００４５】
例えば、ビットマップデータの方が切り替え回数が少なければ、メモリコントローラ２３は、第１キャッシュメモリ２１ａからビットマップデータを入力して（ステップＳ４１）、このビットマップデータ及びビットマップデータを示すフラッグ値をデータバス１７を介してＲＡＭ１５へと転送出力する（ステップＳ４３、Ｓ４４）。また、配列変換ビットマップデータの方が切り替え回数が少なければ、メモリコントローラ２３は、第２キャッシュメモリ２１ｂから配列変換ビットマップデータを入力して（ステップＳ４２）、この配列変換ビットマップデータ及び配列変換ビットマップデータを示すフラッグ値をデータバス１７を介してＲＡＭ１５へと転送出力する（ステップＳ４３、Ｓ４４）。
【００４６】
以降同様に、ステップＳ３１〜Ｓ４４が繰り返されて、所定量のビットマップデータもしくは所定量の配列変換ビットマップデータがそれぞれのフラッグ値と共にＲＡＭ１５へと繰り返し転送され、ビットマップデータの全体がビットマップデータもしくは配列変換ビットマップデータとしてＲＡＭ１５に記憶される。
【００４７】
この様に本実施形態では、第1キャッシュメモリ２１ａに所定量のビットマップデータを蓄積すると共に、第２キャッシュメモリ２１ｂに所定量の配列変換ビットマップデータを蓄積しておき、ビットマップデータを転送出力するときの値０と値１の切り替え回数及び配列変換ビットマップデータを転送出力するときの値０と値１の切り替え回数を比較して、切り替え回数が少ない方のビットマップデータ又は配列変換ビットマップデータをＲＡＭ１５へ転送出力しているので、データをデータバス１７を介してＲＡＭ１５へと転送出力するときの消費電力が低くなる。
【００４８】
次に、本発明のデータ転送装置の第２実施形態を説明する。本実施形態のデータ転送装置は、図１のネットワークシステムにおけるマルチファンクションプリンタ２のプリンタコントローラ４である。また、このプリンタコントローラ４のＳＯＣ１２は、図２の構成を有している。
【００４９】
本実施形態のプリンタコントローラ４では、先に述べた様に所定量のビットマップデータ及び所定量の配列変換ビットマップデータを選択的に用いる代わりに、所定量のビットマップデータ毎に、ビットマップデータの値０と値１を反転させてなる所定量の反転ビットマップデータを求め、これらのビットマップデータ及び反転ビットマップデータのうちからデータバス１７を通じてのデータ転送のときの消費電力がより少ない方を選択し、この選択した方のビットマップデータ又は反転ビットマップデータをデータバス１７を通じてＲＡＭ１５に転送して、消費電力の低減を図っている。
【００５０】
ビットマップデータは、画像や文字等を表すことから、ビットマップデータの値０の個数と値１の個数の間に大きな差が生じることがある。また、値０の個数が少なければ少ない程、データバス１７を通じての転送に要する消費電力が低くなる。従って、ビットマップデータの値０の個数が値１の個数よりも少ないときには、ビットマップデータをそのままデータバス１７を通じて転送し、またビットマップデータの値０の個数が値１の個数よりも多いときには、ビットマップデータの値０と値１を反転させてなる反転ビットマップデータをデータバス１７を通じて転送すれば、消費電力を低減させることができる。
【００５１】
ここでは、ビットマップデータの値０の個数と値１の個数を比較する代わりに、ビットマップデータの値０の個数と反転ビットマップデータの値０の個数を比較して、値０の個数が少ない方のビットマップデータ又は反転ビットマップデータを転送する。
【００５２】
所定量のビットマップデータがプリンタコントローラ４からデータバス１７を通じてＲＡＭ１５に転送されるときには、ビットマップデータを示すフラッグ値も転送されて、所定量のビットマップデータが該フラッグ値と共にＲＡＭ１５に記憶される。
【００５３】
また、所定量の反転ビットマップデータがデータバス１７を通じてＲＡＭ１５に転送されるときには、反転ビットマップデータを示すフラッグ値も転送されて、所定量の反転ビットマップデータが該フラッグ値と共にＲＡＭ１５に記憶される。
【００５４】
こうして所定量のビットマップデータもしくは所定量の反転ビットマップデータがそれぞれのフラッグ値と共にプリンタコントローラ４からＲＡＭ１５へと繰り返し転送されて、ビットマップデータの全体がビットマップデータもしくは反転ビットマップデータとしてＲＡＭ１５に記憶される。
【００５５】
この後、所定量のビットマップデータもしくは所定量の反転ビットマップデータがそれぞれのフラッグ値と共にＲＡＭ１５からＳＯＣ１２に繰り返し転送され、その度に、ＳＯＣ１２では、フラッグ値によりビットマップデータが示されていれば、所定量のビットマップデータをそのまま画像出力部１３を介してプリンタエンジン５へと転送し、またフラッグ値により反転ビットマップデータが示されていれば、所定量の反転ビットマップデータを再び反転させて、所定量のビットマップデータを求め、所定量のビットマップデータを画像出力部１３を介してプリンタエンジン５へと転送する。プリンタエンジン５では、所定量のビットマップデータを順次蓄積して、ビットマップデータの全体を蓄積し、この全体のビットマップデータによって示される画像や文字等を記録用紙に印刷する。
【００５６】
尚、データバス１７上では値０及び値１とそれぞれの信号レベルとの対応関係が任意であるが、本実施形態においては、値０のときの消費電力が値１のときの消費電力よりも大きいものとする。
【００５７】
この様なビットマップデータ及び反転ビットマップデータに係る制御は、プリンタコントローラ４におけるＳＯＣ１２で行われる。
【００５８】
演算部２１は、パーソナルコンピュータからのＰＤＬデータを入力して、ＰＤＬデータをビットマップデータにラスタライズしつつ、ビットマップデータを所定量ずつ第１キャッシュメモリ２１ａに記憶すると共に、該所定量のビットマップデータを反転させて、所定量の反転ビットマップデータを求めて、所定量の反転ビットマップデータを第２キャッシュメモリ２１ｂに記憶する。
【００５９】
判断部２２は、第１キャッシュメモリ２１ａ内のビットマップデータの値０の個数と第２キャッシュメモリ２１ｂ内の反転ビットマップデータの値０の個数を求めて比較し、値０の個数が少ない方のビットマップデータ又は反転ビットマップデータを選択する。そして、判断部２２は、ビットマップデータを選択したならば、第１キャッシュメモリ２１ａ内のビットマップデータをメモリコントローラ２３に出力し、ビットマップデータを示すフラッグ値を設定する。また、判断部２２は、反転ビットマップデータを選択したならば、第２キャッシュメモリ２１ｂ内の反転ビットマップデータをメモリコントローラ２３に出力し、反転ビットマップデータを示すフラッグ値を設定する。
【００６０】
メモリコントローラ２３は、第１キャッシュメモリ２１ａ内のビットマップデータを入力したならば、このビットマップデータ及びビットマップデータを示すフラッグ値をデータバス１７を介してＲＡＭ１５へと転送出力し、また第２キャッシュメモリ２１ｂ内の反転ビットマップデータを入力したならば、この反転ビットマップデータ及び反転ビットマップデータを示すフラッグ値をデータバス１７を介してＲＡＭ１５へと転送出力する。
【００６１】
例えば、図８に示す様にＸ方向８ビット及びＹ方向８ビットのビットマップデータＢＭ３が第１キャッシュメモリ２１ａに記憶されると、このビットマップデータＢＭ３が反転されて、図９に示す様な反転ビットマップデータＢＭ４が求められ、この所定量の反転ビットマップデータＢＭ４が第２キャッシュメモリ２１ｂに記憶される。
【００６２】
図８のビットマップデータＢＭ３をＲＡＭ１５に転送する場合は、ビットマップデータＢＭ３のＹ方向に沿う８列の２値データ配列がパラレル８ビットｂ0〜ｂ7でデータバス１７を介して転送され、データバス１７上では、図１０に示す様にパラレル８ビットｂ0〜ｂ7の信号がハイレベルもしくはローレベルに順次切り替えられる。
【００６３】
同様に、図９の反転ビットマップデータＢＭ４をＲＡＭ１５に転送する場合は、反転ビットマップデータＢＭ４のＹ方向に沿う８列の２値データ配列がパラレル８ビットｂ0〜ｂ7でデータバス１７を介して転送され、データバス１７上では、図１１に示す様にパラレル８ビットの信号がハイレベルもしくはローレベルに順次切り替えられる。
【００６４】
図１０のパラレル８ビットｂ0〜ｂ7の信号のローレベル（値０に相当する）の回数は３７回であり、また図１１のパラレル８ビットｂ0〜ｂ7の信号のローレベル（値０に相当する）は２７回であるから、図１１のパラレル８ビットｂ0〜ｂ7の信号の方がデータバス１７を通じて転送されるときの消費電力が少ない。
【００６５】
この場合は、第２キャッシュメモリ２１ｂ内の反転ビットマップデータＢＭ４が選択され、この反転ビットマップデータＢＭ４及び反転ビットマップデータを示すフラッグ値がデータバス１７を介してＲＡＭ１５へと転送出力される。
【００６６】
この様な所定量のビットマップデータもしくは所定量の反転ビットマップデータがそれぞれのフラッグ値と共にＲＡＭ１５へと繰り返し転送されて、ビットマップデータの全体がビットマップデータもしくは反転ビットマップデータとしてＲＡＭ１５に記憶される。
【００６７】
この後、メモリコントローラ２３は、所定量のビットマップデータもしくは所定量の反転ビットマップデータをそれぞれのフラッグ値と共にＲＡＭ１５からＳＯＣ１２に繰り返し転送させる。演算部２１は、フラッグ値により反転ビットマップデータが示されていれば、所定量の反転ビットマップデータを所定量のビットマップデータに変換して、所定量のビットマップデータをメモリコントローラ２３に受け渡す。メモリコントローラ２３は、フラッグ値によりビットマップデータが示されていれば、所定量のビットマップデータをそのまま画像出力部１３を介してプリンタエンジン５へと転送し、またフラッグ値により反転ビットマップデータが示されていれば、演算部２１により所定量の反転ビットマップデータが所定量のビットマップデータに変換されてから、この所定量のビットマップデータを画像出力部１３を介してプリンタエンジン５へと転送する。
【００６８】
次に、図１２に示すフローチャートを参照しつつ、ＳＯＣ１２によるデータ転送処理を整理して説明する。
【００６９】
まず、ＳＯＣ１２の演算部２１は、ＰＤＬデータを入力すると（ステップＳ５１）、ＰＤＬデータをビットマップデータにラスタライズしつつ（ステップＳ５２）、ビットマップデータ及び反転ビットマップデータの蓄積のために割り当てられた第１及び第２キャッシュメモリ２１ａ、２１ｂの記憶容量を取得して、この記憶容量に蓄積し得る最大のデータ量を所定量とし（ステップＳ５３）、この所定量のビットマップデータを作成して（ステップＳ５４）、この所定量のビットマップデータを第１キャッシュメモリ２１ａに記憶すると共に（ステップＳ５５）、該所定量のビットマップデータを反転させた所定量の反転ビットマップデータを求め（ステップＳ５６）、この所定量の反転ビットマップデータを第２キャッシュメモリ２１ｂに記憶する（ステップＳ５７）。
【００７０】
次に、判別部２２は、第１キャッシュメモリ２１ａ内のビットマップデータの値０の個数を求めると共に（ステップＳ５８）、第２キャッシュメモリ２１ｂ内の反転ビットマップデータの値０の個数を求め（ステップＳ５９）、両者の個数を比較して（ステップＳ６０）、値０の個数が少ない方のビットマップデータ又は反転ビットマップデータを選択してメモリコントローラ２に出力し、選択したデータのフラッグ値を設定する。
【００７１】
メモリコントローラ２３は、例えばビットマップデータを選択して、第１キャッシュメモリ２１ａからビットマップデータを入力し（ステップＳ６１）、このビットマップデータ及びビットマップデータを示すフラッグ値をデータバス１７を介してＲＡＭ１５へと転送出力する（ステップＳ６３、Ｓ６４）。あるいは、メモリコントローラ２３は、反転ビットマップデータを選択して、第２キャッシュメモリ２１ｂから反転ビットマップデータを入力し（ステップＳ６２）、この反転ビットマップデータ及び反転ビットマップデータを示すフラッグ値をデータバス１７を介してＲＡＭ１５へと転送出力する（ステップＳ６３、Ｓ６４）。
【００７２】
以降同様に、ステップＳ５１〜Ｓ６４が繰り返されて、所定量のビットマップデータもしくは所定量の反転ビットマップデータがそれぞれのフラッグ値と共にＲＡＭ１５へと繰り返し転送され、ビットマップデータの全体がビットマップデータもしくは反転ビットマップデータとしてＲＡＭ１５に記憶される。
【００７３】
この様に本実施形態では、ビットマップデータの値０の個数と反転ビットマップデータの値０の個数を比較して、値０の個数が少ない方のビットマップデータ又は反転ビットマップデータをＲＡＭ１５へ転送出力しているので、データをデータバス１７を介してＲＡＭ１５へと転送出力するときの消費電力が低くなる。
【００７４】
次に、本発明のデータ転送装置の第３実施形態を説明する。本実施形態のデータ転送装置は、図１のネットワークシステムにおけるマルチファンクションプリンタ２のプリンタコントローラ４である。また、このプリンタコントローラ４のＳＯＣ１２は、図１３に示す様に構成されている。
【００７５】
本実施形態のプリンタコントローラ４では、所定量のビットマップデータの値０の個数が該所定量のビットマップデータの値０及び値１の総個数の５０％以上である場合は、所定量のビットマップデータをインバータを介して、つまりビットマップデータの値０と値１を反転させて、所定量の反転ビットマップデータを求め、この所定量の反転ビットマップデータをＲＡＭ１５に転送出力し、所定量のビットマップデータの値０の個数が値０及び値１の総個数の５０％未満である場合は、所定量のビットマップデータをそのままＲＡＭ１５に転送出力している。
【００７６】
従って、本実施形態でも、上記第２実施形態と同様に、値０の個数が少ない方のビットマップデータ又は反転ビットマップデータを転送している。
【００７７】
所定量のビットマップデータがプリンタコントローラ４からデータバス１７を通じてＲＡＭ１５に転送されるときには、ビットマップデータを示すフラッグ値も転送されて、所定量のビットマップデータが該フラッグ値と共にＲＡＭ１５に記憶される。
【００７８】
また、所定量の反転ビットマップデータがデータバス１７を通じてＲＡＭ１５に転送されるときには、反転ビットマップデータを示すフラッグ値も転送されて、所定量の反転ビットマップデータが該フラッグ値と共にＲＡＭ１５に記憶される。
【００７９】
こうして所定量のビットマップデータもしくは所定量の反転ビットマップデータがそれぞれのフラッグ値と共にプリンタコントローラ４からＲＡＭ１５へと繰り返し転送されて、ビットマップデータの全体がビットマップデータもしくは反転ビットマップデータとしてＲＡＭ１５に記憶される。
【００８０】
この後、所定量のビットマップデータもしくは所定量の反転ビットマップデータがそれぞれのフラッグ値と共にＲＡＭ１５からＳＯＣ１２に繰り返し転送され、その度に、ＳＯＣ１２では、所定量のビットマップデータをそのままプリンタエンジン５へと転送し、また所定量の反転ビットマップデータを再び反転させて、所定量のビットマップデータを求め、所定量のビットマップデータをプリンタエンジン５へと転送する。
【００８１】
次に、図１３に示すＳＯＣ１２による制御、すなわちビットマップデータ及び反転ビットマップデータに係る制御を説明する。
【００８２】
演算部２１は、パーソナルコンピュータからのＰＤＬデータを入力して、ＰＤＬデータをビットマップデータにラスタライズしつつ、ビットマップデータを所定量ずつキャッシュメモリ２１ｃに記憶する。
【００８３】
判断部２２は、キャッシュメモリ２１ｃ内のビットマップデータの値０の個数が該ビットマップデータの値０及び値１の総個数の５０％以上であるか否かを判定し、ビットマップデータの値０の個数が該ビットマップデータの値０及び値１の総個数の５０％以上でなければ、キャッシュメモリ２１ｃ内のビットマップデータをそのままメモリコントローラ２３に出力し、ビットマップデータを示すフラッグ値を設定する。また、ビットマップデータの値０の個数が値０及び値１の総個数の５０％以上であれば、キャッシュメモリ２１ｃ内のビットマップデータをインバータ２４を介して反転させて、反転ビットマップデータをメモリコントローラ２３に出力し、反転ビットマップデータを示すフラッグ値を設定する。
【００８４】
メモリコントローラ２３は、ビットマップデータを入力したならば、このビットマップデータ及びビットマップデータを示すフラッグ値をデータバス１７を介してＲＡＭ１５へと転送出力し、また反転ビットマップデータを入力したならば、この反転ビットマップデータ及び反転ビットマップデータを示すフラッグ値をデータバス１７を介してＲＡＭ１５へと転送出力する。
【００８５】
そして、所定量のビットマップデータもしくは所定量の反転ビットマップデータがそれぞれのフラッグ値と共にＲＡＭ１５へと繰り返し転送されて、ビットマップデータの全体がビットマップデータもしくは反転ビットマップデータとしてＲＡＭ１５に記憶される。
【００８６】
この様に本実施形態でも、値０の個数が少ない方のビットマップデータ又は反転ビットマップデータをＲＡＭ１５へ転送出力しているので、データをデータバス１７を介してＲＡＭ１５へと転送出力するときの消費電力が低くなる。
【００８７】
尚、本発明は、上記各実施形態に限定されるものではなく、多様に変形することができる。例えば、本発明のデータ転送装置として、プリンタコントローラを例示しているが、ビットマップメモリをデータバスを介して外部メモリに転送する装置であれば、他の種類の装置であっても、本発明を適用することができる。
【図面の簡単な説明】
【００８８】
【図１】本発明の第１実施形態であるプリンタコントローラを適用したネットワークシステムを示すブロック図である。
【図２】図１のプリンタコントローラにおけるＳＯＣの構成を概略的に示すブロック図である。
【図３】図２のＳＯＣの第１キャッシュメモリに記憶されるビットマップデータを例示する図である。
【図４】図２のＳＯＣの第２キャッシュメモリに記憶される配列変換ビットマップデータを例示する図である。
【図５】図３のビットマップデータをデータバスを介して転送するときの信号を示すタイミングチャートである。
【図６】図４の配列変換ビットマップデータをデータバスを介して転送するときの信号を示すタイミングチャートである。
【図７】図２のＳＯＣによるデータ転送処理を示すフローチャートである。
【図８】本発明の第２実施形態であるプリンタコントローラにおけるＳＯＣの第１キャッシュメモリに記憶されるビットマップデータを例示する図である。
【図９】第２実施形態のプリンタコントローラにおけるＳＯＣの第２キャッシュメモリに記憶される反転ビットマップデータを例示する図である。
【図１０】図８のビットマップデータをデータバスを介して転送するときの信号を示すタイミングチャートである。
【図１１】図９の反転ビットマップデータをデータバスを介して転送するときの信号を示すタイミングチャートである。
【図１２】第２実施形態のプリンタコントローラにおけるＳＯＣによるデータ転送処理を示すフローチャートである。
【図１３】本発明の第３実施形態であるプリンタコントローラにおけるＳＯＣの構成を概略的に示すブロック図である。
【符号の説明】
【００８９】
１-1、１-2、１-3  パーソナルコンピュータ
２  マルチファンクションプリンタ
３  ネットワーク
４  プリンタコントローラ
５  プリンタエンジン
１１  ネットワークインターフェースカード
１２  ＳＯＣ
１３  画像出力部
１４  フラッシュＲＯＭ
１５  ＲＡＭ
１６  ハードディスク
１７  データバス
２１  演算部
２１ａ  第１キャッシュメモリ
２１ｂ  第２キャッシュメモリ
２２  判断部
２３  メモリコントローラ
２４  インバータ
【図１】
2008119900.tif 000003
【図２】
2008119900.tif 000004
【図３】
2008119900.tif 000005
【図４】
2008119900.tif 000006
【図５】
2008119900.tif 000007
【図６】
2008119900.tif 000008
【図７】
2008119900.tif 000009
【図８】
2008119900.tif 000010
【図９】
2008119900.tif 000011
【図１０】
2008119900.tif 000012
【図１１】
2008119900.tif 000013
【図１２】
2008119900.tif 000014
【図１３】
2008119900.tif 000015