説明

データ転送制御装置、画像処理装置、データ転送制御方法、データ転送制御プログラム及び記録媒体

【課題】本発明は、メモリから読み出したデータを可変長圧縮して転送先メモリに転送する際のデータ転送効率の向上を図る。
【解決手段】画像処理装置1は、不揮発性メモリコントローラ2のDMAC11によってメモリ4から転送対象データを読み出して、圧縮伸長器12で可変長圧縮した後、ATAコマンド発行器13によってアドレスとデータ転送サイズを指定したATAコマンドを発行して、ATA I/F5aを介して不揮発性メモリ5の指定アドレスに指定データ転送サイズずつ転送するとともに、発行したATAコマンドのアドレスに連続する次アドレスを、ATAコマンド自動発行器14がATAコマンド発行器13に付与する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ転送制御装置、画像処理装置、データ転送制御方法、データ転送制御プログラム及び記録媒体に関し、詳細には、メモリからATA I/F等のインターフェイスを備えた不揮発性メモリへのダイレクトパス上の圧縮伸長部で、メモリから読み出したデータを圧縮した後に該不揮発性メモリへ格納するデータ転送制御装置、画像処理装置、データ転送制御方法、データ転送制御プログラム及び記録媒体に関する。
【背景技術】
【0002】
複写装置、プリンタ装置、ファクシミリ装置、複合装置等の画像処理装置においては、画像データを高速処理が可能なRAM(Random Access Memory)等の揮発性メモリに一旦保管した後、ダイレクトパス上の圧縮伸長部で圧縮して、ハードディスク等のATA(Advanced Technologies Attachment)I/F(インターフェイス)を備えた不揮発性メモリに転送して格納することが行われている。
【0003】
このメモリからATA I/Fを備えた不揮発性メモリへのデータ転送においては、圧縮伸長部として可変長圧縮伸長部を用いる場合がある。この場合、圧縮伸長部及びDMAC(Direct Memory Access Controller :DMAコントローラ)を搭載するメモリコントローラを用いて、DMACによるDMA(Direct Memory Access)転送によってメモリから読み出したデータを圧縮伸長部で圧縮した後にATA I/Fによって不揮発性メモリへデータ転送を行うが、圧縮伸長部として可変長圧縮部を用いると、圧縮後のデータサイズが判らないため、ATAコマンドで転送可能な最大サイズを設定してデータを格納することになる。
【0004】
ところが、ATA転送においては、最終転送ブロックでは、圧縮後のデータサイズが転送可能な最大サイズよりも小さくなり、最大サイズまでの残りの転送データを、「0」データで埋める0埋めを行って転送する等の余分なデータ転送を行う必要がある。
【0005】
また、ATAコマンド上の最大転送サイズは、規定されていて、例えば、48bitアドレスの場合、32MBが最大転送サイズとなり、この最大転送サイズを超えるデータサイズをメモリからDMAで直接転送する際には、ソフトが介在して32MB毎にATAコマンドを発行する必要がある。
【0006】
さらに、SATA(Serial Advanced Technology Attachment)においては、1回の転送量は増えたが、なおかつ、最大サイズが32MBであるため、最大サイズを超えるデータを転送する場合には、32MB毎にATAコマンドをソフトが発行する必要あり、ソフト処理によるオーバヘッドがあった。
【0007】
そして、従来、ハードディスクへのデータ転送において、データ転送用のDMACとコマンド発行用のDMACを設けることで、CPU(Central Processing Unit)にかかる負荷の軽減を図った技術が提案されている(特許文献1参照)。
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、上述のように、ATA I/Fを備えた不揮発性メモリにデータを転送して格納するためには、データ転送前に転送サイズを指定する必要があり、転送データが決まっていないとデータを格納することができない。したがって、メモリから不揮発性メモリへのデータパスに設けられているメモリコントローラが、その搭載する圧縮伸長部で可変長圧縮を行ってデータを不揮発性メモリに保存する場合には、可変長圧縮した圧縮データを一旦メモリに格納してデータサイズを判った後に、再度、不揮発性メモリに転送して格納するか、大きめの転送サイズを設定して、設定サイズに達しないデータサイズを0データ等の余分なデータを付加して不揮発性メモリに転送して格納する必要があった。
【0009】
そして、上記公報記載の従来技術にあっては、コマンド発行用のDMACを設けることで、CPUの介在を削減しているが、データを可変長圧縮してデータサイズがデータによって変化する場合については考慮されておらず、改良の必要があった。
【0010】
そこで、本発明は、可変長圧縮したデータを転送データサイズの決まっているインターフェイスを備えた不揮発性メモリに、ソフトの介在を削減しつつ、最適なサイズのデータを転送して保存するデータ転送制御装置、画像処理装置、データ転送制御方法、データ転送制御プログラム及び記録媒体を提供することを目的としている。
【課題を解決するための手段】
【0011】
本発明は、上記目的を達成するために、転送元メモリから転送対象データを読み出して、可変長圧縮した後、アドレスとデータ転送サイズを指定したATAコマンドを発行して転送先メモリの指定アドレスに指定データ転送サイズずつ転送するとともに、発行したATAコマンドのアドレスに連続する次アドレスを付与することを特徴としている。
【0012】
また、本発明は、前記転送元メモリの転送対象データの総データ量と転送済みデータ量から未転送のデータ残容量及び該転送元メモリから読み出したデータに対する平均圧縮率を算出して、該データ残容量と該平均圧縮率からATAコマンドによる次のデータ転送が、ATAコマンドとしての最終データ転送であると、該データ残容量と該平均圧縮率から、次に発行すべきATAコマンドのデータ転送サイズを算出することを特徴としてもよい。
【0013】
さらに、本発明は、前記転送元メモリから読み出されたデータサイズと圧縮された圧縮データのデータサイズから該圧縮データが元データのデータサイズ以下に圧縮されたか否かを監視して、該圧縮データのデータサイズが元データのデータサイズよりも大きいと、同じ元データを該転送元メモリから読み出して、非圧縮状態で、該元データをそのまま前記転送先メモリに転送することを特徴としてもよい。
【発明の効果】
【0014】
本発明によれば、可変長圧縮したデータを転送データサイズの決まっているインターフェイスを備えた不揮発性メモリに、ソフトの介在を削減しつつ、最適なサイズのデータを転送して保存することができる。
【図面の簡単な説明】
【0015】
【図1】本発明の第1実施例を適用した画像処理装置の要部ブロック構成図。
【図2】ATAコマンド自動発行器のブロック構成図。
【図3】データ転送制御処理を示すフローチャート。
【図4】本発明の第2実施例を適用した画像処理装置の要部ブロック構成図。
【図5】メモリ残容量計算器のブロック構成図。
【図6】平均圧縮率保存器のブロック構成図。
【図7】第2実施例のデータ転送制御処理を示すフローチャート。
【図8】第2実施例におけるメモリ内のデータ転送の説明図。
【図9】第3実施例の画像処理装置の要部ブロック構成図。
【図10】最終データ予測検知器のブロック構成図。
【図11】第3実施例のデータ転送制御処理を示すフローチャート。
【図12】第4実施例の画像処理装置の要部ブロック構成図。
【図13】第4実施例のデータ転送制御処理を示すフローチャート。
【図14】第5実施例の画像処理装置の要部ブロック構成図。
【図15】第5実施例のデータ転送制御処理を示すフローチャート。
【図16】第6実施例の画像処理装置の要部ブロック構成図。
【図17】第6実施例のデータ転送制御処理を示すフローチャート。
【発明を実施するための形態】
【0016】
以下、本発明の好適な実施例を添付図面に基づいて詳細に説明する。なお、以下に述べる実施例は、本発明の好適な実施例であるので、技術的に好ましい種々の限定が付されているが、本発明の範囲は、以下の説明によって不当に限定されるものではなく、また、本実施の形態で説明される構成の全てが本発明の必須の構成要件ではない。
【実施例1】
【0017】
図1〜図3は、本発明のデータ転送制御装置、画像処理装置、データ転送制御方法、データ転送制御プログラム及び記録媒体の第1実施例を示す図であり、図1は、本発明のデータ転送制御装置、画像処理装置、データ転送制御方法、データ転送制御プログラム及び記録媒体の第1実施例を適用した画像処理装置1のブロック構成図である。
【0018】
図1において、画像処理装置1は、不揮発性メモリコントローラ2、CPU3、メモリ4及び不揮発性メモリ5等を備えているとともに、画像処理装置1として必要な各部、例えば、画像処理装置1が複合装置の場合には、原稿の画像を読み取るスキャナ部、ネットワークを介してデータ等の授受を行うネットワークI/F(インターフェイス)、画像データから変換された描画データに基づいて画像を用紙に記録出力するプリンタ部、必要な各種操作を行う操作表示部等を備えている。
【0019】
不揮発性メモリコントローラ(データ転送制御装置)2は、DMAC11、圧縮伸長器12、ATAコマンド発行器13及びATAコマンド自動発行器14等を備えており、メモリ4と不揮発性メモリ5との間のデータ転送を制御する。
【0020】
CPU(制御手段、元データ転送制御手段)3は、不揮発性メモリ5または図示しないROM等に格納されているプログラムに基づいて、画像処理装置1の全体を制御して、画像処理装置1としての基本処理を実行するとともに、本発明のデータ転送制御プログラムに基づいてデータ転送制御方法を実行する。
【0021】
すなわち、画像処理装置1は、ROM、EEPROM(Electrically Erasable and Programmable Read Only Memory )、EPROM、フラッシュメモリ、フレキシブルディスク、CD−ROM(Compact Disc Read Only Memory )、CD−RW(Compact Disc Rewritable )、DVD(Digital Versatile Disk)、SD(Secure Digital)カード、MO(Magneto-Optical Disc)等のコンピュータが読み取り可能な記録媒体に記録されている本発明のデータ転送制御方法を実行するデータ転送制御プログラムを読み込んでROMや不揮発性メモリ5等に導入することで、後述するメモリ4から不揮発性メモリ5に圧縮伸長器12で可変長圧縮した圧縮データを、ATAコマンドによって転送するデータ転送制御方法を実行する画像処理装置として構築されている。このデータ転送制御プログラムは、アセンブラ、C、C++、C#、Java(登録商標)等のレガシープログラミング言語やオブジェクト指向ブログラミング言語等で記述されたコンピュータ実行可能なプログラムであり、上記記録媒体に格納して頒布することができる。
【0022】
メモリ(転送元メモリ)4は、RAM等が用いられ、スキャナ部で読み取った画像データやネットワークI/Fを介して外部装置(コンピュータ等)から受信した画像データ及び不揮発性メモリ5から読み出された画像データ等のデータが格納される。
【0023】
不揮発性メモリ(転送先メモリ)5は、ハードディスク等で構成され、不揮発性メモリコントローラ2の制御下でデータの書き込み及び読み出しが行われる。不揮発性メモリ5は、ATA I/F5aを備えており、不揮発性メモリコントローラ2とATA I/F5aを介してデータの授受を行う。ATA I/F5aは、不揮発性メモリ5へのATAコマンドによるデータの書き込み及び読み出しを実行する。
【0024】
不揮発性メモリコントローラ2のDMAC(データ読み出し手段)11は、CPU3がメモリ4に記録したディスクリプタに基づいてメモリ4上のデータ(画像データ)を読み取って圧縮伸長器12に渡し、また、圧縮伸長器12が伸長したデータをディスクリプタに基づいてメモリ4上に書き込む。
【0025】
圧縮伸長器(圧縮手段)12は、DMAC11から渡されたデータを、所定の可変長圧縮方式、例えば、JPEG(Joint Photographic Experts Group)等で圧縮してATAコマンド発行器13に渡し、ATAコマンド発行器13から渡された圧縮データを復号してDMAC11に渡す。
【0026】
ATAコマンド発行器(ATAコマンド発行手段)13は、ATA I/F5aを備えた不揮発性メモリ5にデータを書き込むためのATAコマンドを発行し、また、不揮発性メモリ5からデータを読み出すためのATAコマンドを発行する。ATAコマンド発行器13は、所定bit(ビット)、例えば、48bitアドレスのATAコマンドを発行して不揮発性メモリ5へのデータの転送及び不揮発性メモリ5からのデータの転送を行うが、ATAコマンドにおいては、1回の転送量に上限値があって、大量のデータを転送する場合には、ATAコマンドをデータ量に応じた回数発行する必要がある。例えば、48bitアドレスのATAコマンドを用いてデータ転送を行った場合、1回の最大転送サイズは32MBであり、320MBサイズのデータを転送するには、10回のATAコマンドを発行する必要がある。
【0027】
ATAコマンド自動発行器(ATAコマンド自動発行手段)14は、図2に示すように、発行アドレス保存器21、加算器22、転送サイズ保存器23及び演算結果アドレス保存器24を備えており、ATAコマンド発行器13がATAコマンドを発行する毎に次のATAコマンドを自動発行してATAコマンド発行器13に提供する。
【0028】
発行アドレス保存器21は、ATAコマンド発行器13がATAコマンドを発行する毎に、そのATAコマンドの指定する不揮発性メモリ5のアドレスを保存し、転送サイズ保存器23は、ATAコマンド発行器13の発行するATAコマンドによって転送されるデータのサイズ(データ転送サイズ)を保存する。
【0029】
加算器22は、転送サイズ保存器23の保存するデータ転送サイズと発行アドレス保存器21の保存している不揮発性メモリ5のアドレスを参照して、次に発行するATAコマンドのアドレスを計算し、算出した次アドレスを演算結果アドレス保存器24に渡す。
【0030】
演算結果アドレス保存器24は、加算器22の演算した次の発行アドレスを保存し、ATAコマンド発行器13に出力する。
【0031】
ATAコマンド発行器13は、ATAコマンドを発行すると、ATAコマンド自動発行器14の演算結果アドレス保存器24から転送先の次アドレスを取得して、取得した該次アドレスに対してATAコマンドを発行する。
【0032】
次に、本実施例の作用を説明する。本実施例の画像処理装置1は、プログラムが介在することなく、順次アドレス設定してATAコマンドを発行することで、高速データ転送を行う。
【0033】
すなわち、画像処理装置1は、スキャナ部で読み取った画像データ、ネットワークを介して受信した画像データ、任意の画像処理を施した画像データ等のデータがメモリ4に格納され、該メモリ4上の画像データを不揮発性メモリコントローラ2によって不揮発性メモリ5に転送して保存する。
【0034】
画像処理装置1は、このメモリ4上のデータを、不揮発性メモリコントローラ2によって可変長圧縮した後にATAコマンドを用いて不揮発性メモリ5に書き込み、また、不揮発性メモリ5上のデータの読み出しを行う。
【0035】
ATAコマンドによって、メモリ4上のデータを不揮発性メモリ5に転送して書き込む場合、上述のように、通常、1回のデータ転送量に上限値があり、大容量のメモリ4に格納されているデータを不揮発性メモリ5に書き込むときには、何回もソフト処理が介在することとなり、パフォーマンスが低下する。ところが、ATAコマンドによってデータ転送を行う場合、発行するATAコマンドは、不揮発性メモリ5に対するアドレス以外は全て同じ設定で連続アドレスで書き込む場合には、前回転送したアドレスに対して、転送したデータサイズ分だけ加算したアドレスを発行することになる。
【0036】
そこで、本実施例の画像処理装置1の不揮発性メモリコントローラ2は、ATAコマンドによってデータ転送が終了したときに、ハードウェアで構成されているATAコマンド自動発行器14によって、次に発行するATAコマンドのアドレスを自動計算して、プログラムが介在することなく、ATAコマンドを発行する。
【0037】
すなわち、画像処理装置1は、メモリ4のデータを可変長圧縮して不揮発性メモリ5にATAコマンドによって転送して書き込む場合、図3に示すように、CPU3がプログラムによってDMAC11に対して、メモリ4から読み込むメモリアドレスとデータサイズの設定を行い(ステップS101)、ATAコマンドを用いたデータ転送における最大転送量の指定等の不揮発性メモリ5にATAコマンドでデータを書き込むために必要なコマンドを発行して(ステップS102)、不揮発性メモリコントローラ2に対して起動を掛ける(ステップS103)。
【0038】
不揮発性メモリコントローラ2は、起動されると、DMAC11によって、メモリ4の指定されたアドレスからデータの読み出しを開始して圧縮伸長器12に渡して(ステップS104)、圧縮伸長器12で可変長圧縮した圧縮データをATAコマンド発行器13に渡し、ATAコマンド発行器13によってATAコマンドを発行してATA I/F5aを介して不揮発性メモリ5に圧縮データを格納する(ステップS105)。
【0039】
不揮発性メモリコントローラ2は、ATAコマンドで指定した最大サイズのデータの転送が完了すると(ステップS106)、ATAコマンド自動発行器14で次の保存先アドレスを計算して、次のデータ保存先アドレスをATAコマンド発行器13に渡し(ステップS107)、ATAコマンド発行器13が、ATAコマンド自動発行器14から渡された次のデータ保存先アドレスと最大転送サイズをATAコマンドでATA I/F5aに発行して(ステップS108)、メモリ4のデータ読み出しが転送対象データの最後まで終了したかチェックする(ステップS109)。
【0040】
不揮発性メモリコントローラ2は、ステップS109で、DMAC11によるメモリ4のデータ読み出しが終了していないときには、ATAコマンド発行器13が、ATAコマンドで指定した最大サイズのデータ転送を行って(ステップS110)、該データ転送が完了すると、ステップS107に移行して、ATAコマンド自動発行器14で、次の保存先アドレスを計算する処理から上記同様に処理を実行する(ステップS107〜S110)。
【0041】
不揮発性メモリコントローラ2は、ステップS109で、メモリ4のデータ読み出しが終了すると、ATAコマンドで指定した最大サイズのデータ転送が完了するまで「0」のデータで埋める0埋めを行って不揮発性メモリ5へデータ転送して、ATA I/F5aによって不揮発性メモリ5に書き込み、データ転送が完了すると、データ転送制御処理を終了する(ステップS111)。
【0042】
このように、本実施例の画像処理装置1は、DMAC11によってメモリ(転送元メモリ)4から転送対象データを読み出して、圧縮伸長器12で可変長圧縮した後、ATAコマンド発行器13によってアドレスとデータ転送サイズを指定したATAコマンドを発行して、ATA I/F5aを介して、不揮発性メモリ(転送先メモリ)5の指定アドレスに指定データ転送サイズである最大サイズずつ転送するとともに、発行したATAコマンドのアドレスに連続する次アドレスを、ATAコマンド自動発行器14がATAコマンド発行器13に付与している。
【0043】
したがって、従来のようにATAコマンド発行毎にプログラムが介在することなく、ATAコマンドを順次発行して、可変長圧縮したデータを転送データサイズの決まっているATA I/F5aを備えた不揮発性メモリ5に転送して保存することができ、CPU3にかかる負荷を軽減しつつ転送速度を向上させることができる。
【実施例2】
【0044】
図4〜図8は、本発明のデータ転送制御装置、画像処理装置、データ転送制御方法、データ転送制御プログラム及び記録媒体の第2実施例を示す図であり、図4は、本発明のデータ転送制御装置、画像処理装置、データ転送制御方法、データ転送制御プログラム及び記録媒体の第2実施例を適用した画像処理装置100のブロック構成図である。
【0045】
なお、本実施例は、上記第1実施例の画像処理装置1と同様の画像処理装置に適用したのもであり、本実施例の説明においては、第1実施例の画像処理装置1と同様の構成部分には、同一の符号を付して、その詳細な説明を省略または簡略化する。
【0046】
図4において、画像処理装置100は、第1実施例の画像処理装置1と同様のCPU3、メモリ4、ATA I/F5aを搭載した不揮発性メモリ5及び画像処理装置100として必要な各部、例えば、スキャナ部、ネットワークI/F、プリンタ部、操作表示部等を備えているとともに、不揮発性メモリコントローラ101を備えている。
【0047】
不揮発性メモリコントローラ(データ転送制御装置)101は、第1実施例の不揮発性メモリコントローラ2と同様のDMAC11、圧縮伸長器12、ATAコマンド発行器13及びATAコマンド自動発行器14を備えているとともに、メモリ残容量計算器111と平均圧縮率保存器112を備えている。
【0048】
メモリ残容量計算器(データ残容量算出手段)111は、図5に示すように、転送サイズ受信器121、減算器122、総転送サイズ保存器123及びメモリ残容量演算結果保存器124を備えている。
【0049】
転送サイズ受信器121は、DMAC11からCPU3によってデータ転送制御プログラムが設定したデータ転送サイズを受け取って保存する。
【0050】
総転送サイズ保存器123は、CPU3の制御下のデータ転送制御プログラムによって、メモリ4から不揮発性メモリ5に転送する総転送データサイズが渡され、この総転送データサイズを保存する。
【0051】
減算器122は、総転送サイズ保存器123に保存されている総転送サイズデータから転送サイズ受信器121がDMAC11から受信して保存している転送サイズを減算して、メモリ残容量として、メモリ残量量演算結果保存器124に渡す。
【0052】
メモリ残容量演算結果保存器124は、減算器122の演算したメモリ残容量を保存する。
【0053】
平均圧縮率保存器112は、図6に示すように、圧縮結果受信器131、平均値演算器132及び平均圧縮率保存器133を備えており、メモリ4から不揮発性メモリ5に転送するデータを圧縮伸長器12で圧縮したときの圧縮率を順次取得して、その平均値を算出し、算出した平均圧縮率を保持する。
【0054】
すなわち、圧縮結果受信器131は、圧縮伸長器12からDMAC11から受け取ったデータを可変長圧縮してATAコマンド発行器13に渡したときのデータの圧縮率を受け取り、平均値演算器132は、圧縮結果受信器131が圧縮伸長器12から受け取った圧縮率の平均を順次算出して、平均圧縮率保存器133に渡す。平均圧縮率保存器133は、平均値演算器132が演算した平均値(平均圧縮率)を保存する。
【0055】
CPU3は、データ転送制御プログラムによって、メモリ残容量計算器111が計算してそのメモリ残容量演算結果保存器124に保存しているメモリ残容量を確認し、平均圧縮率保存器112の平均圧縮率保存器133に保存している平均圧縮率を読み込んで、該メモリ残容量と平均圧縮率から、次に発行すべきATAコマンドのデータ転送容量(データ転送サイズ)を判断して設定する。
【0056】
そして、DMAC11、圧縮伸長器12、ATAコマンド発行器13及びATAコマンド自動発行器14は、第1実施例と同様である。
【0057】
次に、本実施例の作用を説明する。本実施例の画像処理装置100は、転送データの残容量と平均圧縮率を算出して、次のATAコマンドの転送容量を設定する。
【0058】
すなわち、画像処理装置100は、メモリ4のデータを不揮発性メモリ5にATAコマンドによって転送して書き込む場合、図7に示すように、CPU3がプログラムによってDMAC11に対して、メモリ4から読み込むメモリアドレスとデータサイズの設定を行い(ステップS201)、ATAコマンドを用いたデータ転送における最大転送量の指定等の不揮発性メモリ5に対してATAコマンドでデータを書き込むために必要なコマンドを発行して(ステップS202)、不揮発性メモリコントローラ101に対して起動を掛ける(ステップS203)。
【0059】
不揮発性メモリコントローラ101は、起動されると、DMAC11によって、メモリ4の指定されたアドレスからデータの読み出しを開始して圧縮伸長器12に渡して(ステップS204)、圧縮伸長器12で可変長圧縮した圧縮データをATAコマンド発行器13に渡し、ATAコマンド発行器13によってATAコマンドを発行してATA I/F5aを介して不揮発性メモリ5に圧縮データを格納する(ステップS205)。
【0060】
不揮発性メモリコントローラ101は、ATAコマンドで指定した最大サイズのデータの転送が完了すると、割り込みによってプログラムにデータ転送が完了した旨を通知し(ステップS206)、CPUが、プログラムに基づいて、メモリ残容量計算器111の算出したメモリ4内の転送対象のデータ残容量と平均圧縮率保存器112が算出した圧縮伸長器12の平均圧縮率を読み出して、これらのデータ残容量と平均圧縮率から次の転送サイズを判断して(ステップS207)、算出した次の転送サイズが最大転送量を超えているか否かによって、次のデータ転送が最終データ転送であるかチェックする(ステップS208)。
【0061】
ステップS208で、最終データ転送でないときには、CPU3がプログラムに基づいて不揮発性メモリ5に対する次のデータ転送を開始するために、ATAコマンド自動発行器14を起動させ(ステップS209)、ATAコマンド自動発行器14が、次の保存先アドレスを計算して、ATAコマンド発行器13に渡して、ATAコマンド発行器13が、ATAコマンド自動発行器14の計算した次のデータ保存先アドレスと最大転送サイズをATAコマンドでATA I/F5aに発行して、ステップS204に移行する(ステップS210)。
【0062】
不揮発性メモリコントローラ101は、上記同様に、DMAC11がメモリ4からデータを読み出して圧縮伸長器12で圧縮してATA I/F5aを介して不揮発性メモリ5に格納して、ATAコマンドで指定した最大サイズのデータ転送が終了すると、割り込みでプログラムに最大転送サイズのデータ転送が終了した旨を通知する(ステップS204〜S206)。そして、CPU3が、プログラムに基づいて、データ残容量と平均圧縮率から次のデータ転送サイズを判断して(ステップS207)、算出した次のデータ転送サイズが最大転送量(最大転送サイズ)を超えているか否かによって、次のデータ転送が最終データ転送であるかチェックし(ステップS208)、最終データ転送でないときには、ATAコマンド自動発行器14による次アドレスの算出から上記同様に処理する(ステップS209、S210、S204〜S208)。
【0063】
ステップS208で、ステップS207において算出した次の転送サイズが最大転送量以下であって、最終データ転送であると、CPU3が、プログラムに基づいて、該次の転送サイズからATAコマンド転送容量を計算(メモリ残容量であるデータ残容量と平均圧縮率からATAコマンド転送容量を計算)し(ステップS211)、計算したデータ転送量と転送先アドレスをATAコマンド発行器13に設定して、起動させる。ATAコマンド発行器13は、起動されると、設定されたデータ転送量と転送先アドレスによってATAコマンドを発行して、圧縮伸長器12で圧縮されたデータをATA I/F5aを介して不揮発性メモリ5に格納する(ステップS212)。
【0064】
例えば、図8に示すように、メモリ4内の100MBのデータを不揮発性メモリ5に転送する場合、1回目の転送で60MBを圧縮して32MBとして転送でき、2回目のデータ転送では、40MBを圧縮して、例えば、20MBであった場合、12MB分の余分のデータを付加することなく、20MBをデータ転送サイズとしてATAコマンドで指定して転送する。
【0065】
ATAコマンド発行器13の発行したATAコマンドの転送容量のデータ転送が完了すると、プログラムに割り込みによってデータ転送が完了した旨を通知し、CPU3が、プログラムに基づいて、メモリ残容量をチェックして、メモリ4内の転送対象の全てのデータの転送が終了したかチェックする(ステップS213)。このデータ転送が完了したか否かは、例えば、圧縮率が平均圧縮率を超える圧縮率の場合、メモリ残容量を検査することで、判断することができる。
【0066】
ステップS213で、転送が完了していないときには、CPU3が、プログラムに基づいて、ステップS211に戻って、ATAコマンド転送容量を計算する処理から上記同様に処理し(ステップS211〜S213)、ステップS213で、転送終了であると、不揮発性メモリコントローラ101が、プログラムにその旨を通知して、データ転送制御処理を終了する。
【0067】
このように、本実施例の画像処理装置100は、不揮発性メモリコントローラ101が、メモリ4の転送対象データの総データ量と転送済みデータ量から未転送のデータ残容量を算出するメモリ残容量計算器(データ残容量算出手段)111と、DMAC11の読み出したデータに対する圧縮伸長器12による平均圧縮率を算出する平均圧縮率保存器(平均圧縮率算出手段)112と、を備え、ATAコマンド発行器13によるATAコマンドによるデータ転送サイズである最大サイズの転送毎に、CPU3がプログラムに基づいて、メモリ残容量計算器111の計算したデータ残容量と平均圧縮率保存器112の計算した平均圧縮率からATAコマンド発行器13による次のデータ転送が、ATAコマンドとしての最終データ転送であるか否かを判断して、最終データ転送であると、該データ残容量と該平均圧縮率から、次に発行すべきATAコマンドのデータ転送サイズを算出して、ATAコマンド自動発行器14に該データ転送サイズを該ATAコマンド発行器13に設定させている。
【0068】
したがって、最終データ転送において、「0」を最大サイズになるまで付加することなく、データ転送サイズを適切に設定してATAコマンドによるデータ転送を行うことができ、データ転送効率を向上させることができる。
【実施例3】
【0069】
図9〜図11は、本発明のデータ転送制御装置、画像処理装置、データ転送制御方法、データ転送制御プログラム及び記録媒体の第3実施例を示す図であり、図9は、本発明のデータ転送制御装置、画像処理装置、データ転送制御方法、データ転送制御プログラム及び記録媒体の第3実施例を適用した画像処理装置200のブロック構成図である。
【0070】
なお、本実施例は、上記第1実施例の画像処理装置1及び第2実施例の画像処理装置100と同様の画像処理装置に適用したのもであり、本実施例の説明においては、第1実施例の画像処理装置1及び第2実施例の画像処理装置100と同様の構成部分には、同一の符号を付して、その詳細な説明を省略または簡略化する。
【0071】
図9において、画像処理装置200は、第1実施例の画像処理装置1と同様のCPU3、メモリ4、ATA I/F5aを搭載した不揮発性メモリ5及び画像処理装置200として必要な各部、例えば、スキャナ部、ネットワークI/F、プリンタ部、操作表示部等を備えているとともに、不揮発性メモリコントローラ201を備えている。
【0072】
不揮発性メモリコントローラ(データ転送制御装置)201は、第1実施例の不揮発性メモリコントローラ2と同様のDMAC11、圧縮伸長器12、ATAコマンド発行器13、ATAコマンド自動発行器14及び第2実施例の不揮発性メモリコントローラ101と同様のメモリ残容量計算器111、平均圧縮率保存器112を備えているとともに、最終データ予測検知器211を備えている。
【0073】
最終データ予測検知器(最終データ予測検知手段)211は、図10に示すように、メモリ残容量保存器221、演算器222、圧縮後転送サイズ保存器223、ATA転送サイズ比較器224及び平均圧縮率保存器225を備えており、メモリ残容量計算器111の計算結果であるデータ残容量と平均圧縮率保存器112の計算結果である平均圧縮率から次のデータ転送が最終データ転送であるか否か判定する。
【0074】
すなわち、メモリ残容量保存器221は、メモリ残容量計算器111が算出してそのメモリ残容量演算結果保存器124に保存されているメモリ残容量を取得して保存し、平均圧縮率保存器225は、平均圧縮率保存器112が演算してその平均圧縮率保存器133に保存している平均圧縮率を取得して保存する。
【0075】
演算器222は、メモリ残容量保存器221のメモリ残容量と平均圧縮率保存器225の平均圧縮率に基づいて圧縮後転送サイズを演算して圧縮後転送サイズ保存器223に保存する。ATA転送サイズ比較器224は、ATA転送サイズ圧縮後転送サイズ保存器223に保存されている圧縮後転送サイズとATAコマンドによる最大転送サイズを比較して最終データであるか否かを判定し、その判定結果をレジスタ等に保持する。
【0076】
CPU3は、データ転送制御プログラムによって、最終データ予測検知器211が計算してその圧縮後転送サイズ保存器223に保存している圧縮後転送サイズを確認し、最終転送サイズであるか否か判断して、以降の処理を行う。
【0077】
そして、DMAC11、圧縮伸長器12、ATAコマンド発行器13及びATAコマンド自動発行器14は、第1実施例と同様である。
【0078】
次に、本実施例の作用を説明する。本実施例の画像処理装置200は、転送データの残容量と平均圧縮率を算出し、さらに、これらの値から圧縮後転送サイズを算出して転送最終データを判定して転送制御を行う。
【0079】
すなわち、画像処理装置200は、メモリ4のデータを不揮発性メモリ5にATAコマンドによって転送して書き込む場合、図11に示すように、データ転送制御処理を実行する。なお、図11において、図7と同様の処理ステップには同一のステップナンバーを付与して、その説明を簡略化する。
【0080】
画像処理装置200は、CPU3がプログラムによってDMAC11に対して、メモリ4から読み込むメモリアドレスとデータサイズの設定を行い(ステップS201)、ATAコマンドを用いたデータ転送における最大転送量の指定等の不揮発性メモリ5に対してATAコマンドでデータを書き込むために必要なコマンドを発行して(ステップS202)、不揮発性メモリコントローラ201に対して起動を掛ける(ステップS203)。
【0081】
不揮発性メモリコントローラ201は、起動されると、DMAC11によって、メモリ4の指定されたアドレスからデータの読み出しを開始して圧縮伸長器12に渡して(ステップS204)、圧縮伸長器12で可変長圧縮した圧縮データをATAコマンド発行器13に渡し、ATAコマンド発行器13によってATAコマンドを発行してATA I/F5aを介して不揮発性メモリ5に圧縮データを格納する(ステップS205)。
【0082】
不揮発性メモリコントローラ201は、ATAコマンドで指定した最大サイズのデータの転送が完了すると、割り込みによってプログラムにデータ転送が完了した旨を通知し(ステップS206)、CPUが、プログラムに基づいて、最終データ予測検知器211の最終データ転送か否かの比較結果を確認して(ステップS301)、次のデータ転送が最終データ転送であるかチェックする(ステップS302)。
【0083】
ステップS302で、最終データ転送でないときには、CPU3がプログラムに基づいて不揮発性メモリ5に対する次のデータ転送を開始するために、ATAコマンド自動発行器14を起動させ(ステップS209)、ATAコマンド自動発行器14が、次の保存先アドレスを計算して、ATAコマンド発行器13が、ATAコマンド自動発行器14の計算した次のデータ保存先アドレスと最大転送サイズをATAコマンドでATA I/F5aに発行して、ステップS204に移行する(ステップS210)。
【0084】
不揮発性メモリコントローラ201は、上記同様に、DMAC11によってメモリ4からデータを読み出して圧縮伸長器12で圧縮してATA I/F5aを介して不揮発性メモリ5に格納し、ATAコマンドで指定した最大サイズのデータ転送が終了すると、割り込みでプログラムに最大転送サイズのデータ転送が終了した旨を通知する(ステップS204〜S206)。そして、CPU3が、プログラムに基づいて、最終データ予測検知器211の最終データ転送か否かの比較結果を確認して(ステップS301)、次のデータ転送が最終データ転送であるかチェックし(ステップS302)、最終データ転送でないときには、ATAコマンド自動発行器14による次アドレスの算出から上記同様に処理する(ステップS209、S210、S204〜S206、S301、S302)。
【0085】
ステップS302で、ステップS301で確認した結果が次の転送サイズが最大転送量以下であって、最終データ転送であると、CPU3が、プログラムに基づいて、最終データ予測検知器211の圧縮後転送サイズ保存器2223に保管されている圧縮後転送サイズからATAコマンド転送容量として取得し(ステップS303)、取得したデータ転送量と転送先アドレスをATAコマンド発行器13に設定して、起動させる。ATAコマンド発行器13は、起動されると、設定されたデータ転送量と転送先アドレスによってATAコマンドを発行して、圧縮伸長器12の圧縮したデータをATA I/F5aを介して不揮発性メモリ5に格納する(ステップS212)。
【0086】
ATAコマンド発行器13の発行したATAコマンドの転送容量のデータ転送が完了すると、プログラムに割り込みによってデータ転送が完了した旨を通知し、CPU3が、プログラムに基づいて、メモリ残容量をチェックして、メモリ4内の転送対象となっている全てのデータの転送が終了したかチェックする(ステップS213)。
【0087】
ステップS213で、データ転送が完了していないときには、CPU3が、プログラムに基づいて、ステップS211に戻って、ATAコマンド転送容量を取得する処理から上記同様に処理し(ステップS303、S212、S213)、ステップS213で、転送終了であると、不揮発性メモリコントローラ201が、プログラムにその旨を通知して、データ転送制御処理を終了する。
【0088】
このように、本実施例の画像処理装置200は、不揮発性メモリコントローラ201が、メモリ4の転送対象データの総データ量と転送済みデータ量から未転送のデータ残容量を算出するメモリ残容量計算器(データ残容量算出手段)111と、DMAC11の読み出したデータに対する圧縮伸長器12による平均圧縮率を算出する平均圧縮率保存器(平均圧縮率算出手段)112と、該データ残容量と該平均圧縮率からATAコマンド発行器13による次のデータ転送が、ATAコマンドとしての最終データ転送であるか否かを検知する最終データ予測検知器(最終データ予測検知手段)211と、を備え、ATAコマンド発行器13による次のデータ転送が最終データ転送であることを最終データ予測検知器211が検知すると、CPU3が、プログラムに基づいて該データ残容量と該平均圧縮率から、次に発行すべきATAコマンドのデータ転送サイズを算出して、ATAコマンド自動発行器14に該データ転送サイズをATAコマンド発行器13に設定させている。
【0089】
したがって、最終データ転送をハードウェアである最終データ予測検知器211によって検出して、プログラムが介在する頻度を削減して処理速度を向上させることができるとともに、最終データ転送において、「0」を最大サイズになるまで付加することなく、データ転送サイズを適切に設定してATAコマンドによるデータ転送を行うことができ、データ転送効率をより一層向上させることができる。
【実施例4】
【0090】
図12及び図13は、本発明のデータ転送制御装置、画像処理装置、データ転送制御方法、データ転送制御プログラム及び記録媒体の第4実施例を示す図であり、図12は、本発明のデータ転送制御装置、画像処理装置、データ転送制御方法、データ転送制御プログラム及び記録媒体の第4実施例を適用した画像処理装置300のブロック構成図である。
【0091】
なお、本実施例は、上記第1実施例の画像処理装置1及び第2実施例の画像処理装置100と同様の画像処理装置に適用したものであり、本実施例の説明においては、第1実施例の画像処理装置1及び第2実施例の画像処理装置100と同様の構成部分には、同一の符号を付して、その詳細な説明を省略または簡略化する。
【0092】
図12において、画像処理装置300は、第1実施例の画像処理装置1と同様のCPU3、メモリ4、ATA I/F5aを搭載した不揮発性メモリ5及び画像処理装置300として必要な各部、例えば、スキャナ部、ネットワークI/F、プリンタ部、操作表示部等を備えているとともに、不揮発性メモリコントローラ301を備えている。
【0093】
不揮発性メモリコントローラ(データ転送制御装置)301は、第1実施例の不揮発性メモリコントローラ2と同様のDMAC11、圧縮伸長器12、ATAコマンド発行器13、ATAコマンド自動発行器14及び第2実施例の不揮発性メモリコントローラ101と同様のメモリ残容量計算器111、平均圧縮率保存器112を備えているとともに、最終データ予測検知器311を備えている。
【0094】
最終データ予測検知器(最終データ予測検知手段)311は、図10に示した第3実施例の最終データ予測検知器211と同様の構成であり、メモリ残容量保存器221、演算器222、圧縮後転送サイズ保存器223、ATA転送サイズ比較器224及び平均圧縮率保存器225を備えているとともに、ATAコマンド自動発行器14に接続されている。最終データ予測検知器311は、メモリ残容量計算器111の計算結果と平均圧縮率保存器112の計算結果から次の転送データが最終データであるか否か判定するとともに、データ残容量と平均圧縮率に基づいて次に発行すべきATAコマンドのデータ転送サイズを算出して、判定結果及び次のデータ転送サイズをATAコマンド自動発行器14に通知する。
【0095】
CPU3は、データ転送制御プログラムによって、データ転送最初の設定と起動をかけるのみで、後は、メモリ残容量計算器111、平均圧縮率保存器112及び最終データ予測検知器311が、転送サイズを順次確認しながらATAコマンド自動発行器14がATAコマンド発行器13に起動をかけて最終のデータ転送まで自動で処理する。
【0096】
そして、DMAC11、圧縮伸長器12、ATAコマンド発行器13及びATAコマンド自動発行器14は、第1実施例と同様である。
【0097】
次に、本実施例の作用を説明する。本実施例の画像処理装置300は、転送データの残容量と平均圧縮率を算出し、さらに、これらの値から圧縮データサイズを算出して転送最終データを判定して転送制御を行う。
【0098】
すなわち、画像処理装置300は、メモリ4のデータを不揮発性メモリ5にATAコマンドによって転送して書き込む場合、図13に示すように、データ転送制御処理を実行する。なお、図13において、図11と同様の処理ステップには同一のステップナンバーを付与して、その説明を簡略化する。
【0099】
画像処理装置300は、CPU3がプログラムによってDMAC11に対して、メモリ4から読み込むメモリアドレスとデータサイズの設定を行い(ステップS201)、ATAコマンドを用いたデータ転送における最大転送量の指定等の不揮発性メモリ5に対してATAコマンドでデータを書き込むために必要なコマンドを発行して(ステップS202)、不揮発性メモリコントローラ301に対して起動を掛ける(ステップS203)。
【0100】
不揮発性メモリコントローラ301は、起動されると、DMAC11によって、メモリ4の指定されたアドレスからデータの読み出しを開始して圧縮伸長器12に渡して(ステップS204)、圧縮伸長器12で可変長圧縮した圧縮データをATAコマンド発行器13に渡し、ATAコマンド発行器13によってATAコマンドを発行してATA I/F5aを介して不揮発性メモリ5に圧縮データを格納する(ステップS205)。
【0101】
不揮発性メモリコントローラ301は、ATAコマンドで指定した最大サイズのデータの転送が完了すると(ステップS401)、ATAコマンド自動発行器14が、最終データ予測検知器311の最終データか否かの比較結果を確認して(ステップS402)、次のデータ転送が最終データ転送であるかチェックする(ステップS403)。
【0102】
ステップS403で、最終データ転送でないときには、ATAコマンド自動発行器14が、最大転送サイズをATAコマンド発行器13に通知して、ATAコマンド発行器13が最大転送サイズでのATAコマンドをATA I/F5aに発行して、ステップS204に移行する(ステップS404)。
【0103】
不揮発性メモリコントローラ301は、上記同様に、DMAC11によってメモリ4からデータを読み出して圧縮伸長器12で圧縮してATA I/F5aを介して不揮発性メモリ5に格納して、ATAコマンドで指定した最大サイズのデータ転送が終了すると、ATAコマンド自動発行器14が最終データ予測検知器311を確認して、最終データ転送か判断する(ステップS204、S205、S401〜S403)。ステップS403で、最終データ転送でないときには、最大転送サイズのデータの転送を上記同様に行う(ステップS404、S204、S205、S401〜S403)。
【0104】
そして、ステップS403で、転送サイズが最大転送量以下であって、最終データ転送であると、最終データ予測検知器311が、そのメモリ残容量保存器221のメモリ残容量と平均圧縮率保存器225の平均圧縮率から演算器222が算出して圧縮後転送サイズ保存器223に保存している圧縮後のデータ転送サイズを、ATAコマンド自動発行器14が、ATAコマンド転送量として取得して(ステップS405)、取得したデータ転送量と転送先アドレスをATAコマンド発行器13に設定して、起動させる。ATAコマンド発行器13は、起動されると、設定されたデータ転送量と転送先アドレスによってATAコマンドを発行して、圧縮伸長器12の圧縮したデータをATA I/F5aを介して不揮発性メモリ5に格納する(ステップS406)。
【0105】
ATAコマンド発行器13の発行したATAコマンドの転送容量(データ転送サイズ)のデータ転送が完了すると、プログラムに割り込みによってデータ転送が完了した旨を通知し、CPU3が、プログラムに基づいて、メモリ残容量をチェックして、メモリ4内の転送対象の全てのデータの転送が終了したかチェックする(ステップS213)。
【0106】
ステップS213で、圧縮後のデータの方が元データよりも大きくなっていて転送が完了していないときには、CPU3が、プログラムに基づいて、ステップS405に戻って、ATAコマンド転送量を取得する処理から上記同様に処理し(ステップS405、S406、S213)、ステップS213で、転送終了であると、不揮発性メモリコントローラ301が、プログラムにその旨を通知して、データ転送制御処理を終了する。
【0107】
このように、本実施例の画像処理装置300は、メモリ4の転送対象データの総データ量と転送済みデータ量から未転送のデータ残容量を算出するメモリ残容量計算器111と、DMAC11の読み出したデータに対する圧縮伸長器12による平均圧縮率を算出する平均圧縮率保存器112と、前記データ残容量と前記平均圧縮率からATAコマンド発行器13による次のデータ転送が、ATAコマンドとしての最終データ転送であるか否かを検知して、最終データ転送であると、該データ残容量と該平均圧縮率から、次に発行すべきATAコマンドのデータ転送サイズを算出して、ATAコマンド自動発行器14に出力する最終データ予測検知器311と、を備えている。
【0108】
したがって、ハードウェアである最終データ予測検知器211によって最終データ転送を検出するとともに、最終データ転送におけるデータ転送サイズを算出してATAコマンド自動発行器14に与え、プログラムが介在する頻度をより一層削減して処理速度をより一層向上させることができるとともに、最終データ転送において、「0」を最大サイズになるまで付加することなく、データ転送サイズを適切に設定してATAコマンドによるデータ転送を行うことができ、データ転送効率をより一層向上させることができる。
【実施例5】
【0109】
図14及び図15は、本発明の本発明のデータ転送制御装置、画像処理装置、データ転送制御方法、データ転送制御プログラム及び記録媒体の第5実施例を示す図であり、図14は、本発明のデータ転送制御装置、画像処理装置、データ転送制御方法、データ転送制御プログラム及び記録媒体の第5実施例を適用した画像処理装置400のブロック構成図である。
【0110】
なお、本実施例は、上記第1実施例の画像処理装置1の画像処理装置1、第2実施例の画像処理装置100及び第4実施例の画像処理装置300と同様の画像処理装置に適用したのもであり、本実施例の説明においては、第1実施例の画像処理装置1、第2実施例の画像処理装置100及び第4実施例の画像処理装置300と同様の構成部分には、同一の符号を付して、その詳細な説明を省略または簡略化する。
【0111】
図14において、画像処理装置400は、第1実施例の画像処理装置1と同様のCPU3、メモリ4、ATA I/F5aを搭載した不揮発性メモリ5及び画像処理装置400として必要な各部、例えば、スキャナ部、ネットワークI/F、プリンタ部、操作表示部等を備えているとともに、不揮発性メモリコントローラ401を備えている。
【0112】
不揮発性メモリコントローラ(データ転送制御装置)401は、第1実施例の不揮発性メモリコントローラ2と同様のDMAC11、圧縮伸長器12、ATAコマンド発行器13、ATAコマンド自動発行器14及び第2実施例の不揮発性メモリコントローラ101と同様のメモリ残容量計算器111、平均圧縮率保存器112及び第4実施例の不揮発性メモリコントローラ301と同様の最終データ予測検知器311を備えているとともに、圧縮率監視部411を備えている。
【0113】
最終データ予測検知器311は、第4実施例の最終データ予測検知器311と同様に、メモリ残容量計算器111の計算結果と平均圧縮率保存器112の計算結果から次の転送データが最終データであるか否か判定するとともに、データ残容量と平均圧縮率に基づいて次に発行すべきATAコマンドのデータ転送サイズを算出して、判定結果及び次のデータ転送サイズをATAコマンド自動発行器14に通知する。
【0114】
圧縮率監視部(圧縮率監視手段)411は、DMAC11と圧縮伸長器12に接続されており、DMAC11がメモリ4から読み出したデータ量と圧縮伸長器12が圧縮した圧縮データのデータ量を比較して、圧縮結果が生データ(元データ)のデータサイズを超えているか否か判断する。
【0115】
CPU(元データ転送制御手段)3は、圧縮率監視部411の監視結果に基づいて、圧縮データが元データよりも大きくなるときには、元データを不揮発性メモリ5に転送させて書き込むように制御する。
【0116】
そして、DMAC11、圧縮伸長器12、ATAコマンド発行器13及びATAコマンド自動発行器14は、第1実施例と同様である。
【0117】
次に、本実施例の作用を説明する。本実施例の画像処理装置400は、圧縮データのデータサイズが元データのデータサイズよりも大きくなるときには、元データをATAコマンドで不揮発性メモリ5に転送して格納するデータ転送制御を行う。
【0118】
すなわち、画像処理装置400は、メモリ4のデータを不揮発性メモリ5にATAコマンドによって転送して書き込む場合、図15に示すように、データ転送制御処理を実行する。なお、図15において、図13と同様の処理ステップには同一のステップナンバーを付与して、その説明を簡略化する。
【0119】
画像処理装置400は、CPU3がプログラムによってDMAC11に対して、メモリ4から読み込むメモリアドレスとデータサイズの設定を行い(ステップS201)、ATAコマンドを用いたデータ転送における最大転送量の指定等の不揮発性メモリ5に対してATAコマンドでデータを書き込むために必要なコマンドを発行して(ステップS202)、不揮発性メモリコントローラ401に対して起動を掛ける(ステップS203)。
【0120】
不揮発性メモリコントローラ401は、起動されると、DMAC11によって、メモリ4の指定されたアドレスからデータの読み出しを開始して圧縮伸長器12に渡して(ステップS204)、圧縮伸長器12で可変長圧縮した圧縮データをATAコマンド発行器13に渡し、ATAコマンド発行器13によってATAコマンドを発行してATA I/F5aを介して不揮発性メモリ5に圧縮データを格納する(ステップS205)。
【0121】
不揮発性メモリコントローラ401は、ATAコマンドで指定した最大サイズのデータの転送が完了すると(ステップS401)、ATAコマンド自動発行器14が、最終データ予測検知器311の最終データか否かの比較結果を確認して(ステップS402)、次のデータ転送が最終データ転送であるかチェックする(ステップS403)。
【0122】
ステップS403で、最終データ転送でないときには、ATAコマンド自動発行器14が、最大転送サイズをATAコマンド発行器13に通知して、ATAコマンド発行器13が最大転送サイズでのATAコマンドをATA I/F5aに発行して、ステップS204に移行する(ステップS404)。
【0123】
不揮発性メモリコントローラ401は、上記同様に、DMAC11がメモリ4からデータを読み出して圧縮伸長器12で圧縮してATA I/F5aを介して不揮発性メモリ5に格納して、ATAコマンドで指定した最大サイズのデータ転送が終了すると、ATAコマンド自動発行器14が最終データ予測検知器311を確認して、最終データ転送か判断する(ステップS204、S205、S401〜S403)。ステップS403で、最終データ転送でないときには、最大転送サイズのデータの転送を上記同様に行う(ステップS404、S204、S205、S401〜S403)。
【0124】
そして、ステップS403で、転送サイズが最大転送量以下であって、最終データ転送であると、最終データ予測検知器311が、そのメモリ残容量保存器221のメモリ残容量と平均圧縮率保存器225の平均圧縮率から演算器222が算出して圧縮後転送サイズ保存器223に保存している圧縮後のデータ転送サイズを、ATAコマンド自動発行器14が、ATAコマンド転送量として取得して(ステップS405)、取得したデータ転送量と転送先アドレスをATAコマンド発行器13に設定して、起動させる。ATAコマンド発行器13は、起動されると、設定されたデータ転送量と転送先アドレスによってATAコマンドを発行して、圧縮伸長器12の圧縮したデータをATA I/F5aを介して不揮発性メモリ5に格納する(ステップS406)。
【0125】
ATAコマンド発行器13の発行したATAコマンドの転送容量(データ転送サイズ)のデータ転送が完了すると、プログラムに割り込みによってデータ転送が完了した旨を通知し、CPU3が、プログラムに基づいて、メモリ残容量をチェックして、メモリ4内において転送対象となっている全てのデータの転送が終了したかチェックする(ステップS213)。
【0126】
ステップS213で、圧縮後のデータの方が元データよりも大きくなっていて転送が完了していないときには、CPU3が、プログラムに基づいて、ステップS405に戻って、ATAコマンド転送量を取得する処理から上記同様に処理し(ステップS405、S406、S213)、ステップS213で、転送終了であると、不揮発性メモリコントローラ401が、プログラムにその旨を通知して、CPU3が、プログラムに基づいて、圧縮率監視部411を確認する。圧縮率監視部411は、DMAC11が読み込んだ生のデータ(元データ)と圧縮伸長器12が圧縮した圧縮データのデータサイズを比較して、元データのデータサイズよりも圧縮データのデータサイズが小さいか、すなわち、圧縮結果が「1」以下であるか監視して監視結果を保持しており、CPU3は、この圧縮率監視部4111の監視結果を確認して、圧縮結果が「1」以下であるかチェックする(ステップS501)。
【0127】
ステップS501で、圧縮結果が「1」以下のときには、CPU3は、圧縮データが元データ以下のデータサイズに圧縮されていると判断して、そのままデータ転送を終了する。
【0128】
ステップS501で、圧縮結果が「1」よりも大きいときには、CPU3は、圧縮データが元データのデータサイズよりも大きくなっていると判断して、DMAC11に、メモリ4の同じアドレスから再度データを読み取らせて、DMAC11の読み取ったデータを圧縮伸長器12で圧縮させることなく、そのままスルーさせて、生のデータ(元データ)をATAコマンド発行器13からATA I/F5aを介して不揮発性メモリ5に転送して格納させる(ステップS502)。
【0129】
このように、本実施例の画像処理装置400は、DMAC11がメモリ4から読み出したデータサイズと圧縮伸長器12の圧縮した圧縮データのデータサイズから該圧縮データが元データのデータサイズ以下に圧縮されたか否かを監視する圧縮率監視部(圧縮率監視手段)411を不揮発性メモリコントローラ401が備え、圧縮率監視部411が圧縮データのデータサイズが元データのデータサイズよりも大きいことを検知すると、CPU3が、DMAC11に同じ元データをメモリ4から読み出させて、該データを、圧縮伸長器12を非圧縮状態で通過(スルー)させた後、ATAコマンド発行器13に該元データをそのまま不揮発性メモリ5に転送させている。
【0130】
したがって、圧縮データが元データよりも大きなデータになったときには、元データを不揮発性メモリ5に転送して保存させることができ、無駄な保存領域が使用されることを防止して、不揮発性メモリ5の有効利用を図ることができる。
【実施例6】
【0131】
図16及び図17は、本発明の本発明のデータ転送制御装置、画像処理装置、データ転送制御方法、データ転送制御プログラム及び記録媒体の第6実施例を示す図であり、図16は、本発明のデータ転送制御装置、画像処理装置、データ転送制御方法、データ転送制御プログラム及び記録媒体の第6実施例を適用した画像処理装置500のブロック構成図である。
【0132】
なお、本実施例は、上記第5実施例の画像処理装置400と同様の画像処理装置に適用したものであり、本実施例の説明においては、第5実施例の画像処理装置400と同様の構成部分には、同一の符号を付して、その詳細な説明を省略または簡略化する。
【0133】
図16において、画像処理装置500は、第1実施例の画像処理装置1と同様のCPU3、メモリ4、ATA I/F5aを搭載した不揮発性メモリ5及び画像処理装置400として必要な各部、例えば、スキャナ部、ネットワークI/F、プリンタ部、操作表示部等を備えているとともに、不揮発性メモリコントローラ501を備えている。
【0134】
不揮発性メモリコントローラ(データ転送制御装置)501は、第1実施例の不揮発性メモリコントローラ2と同様のDMAC11、圧縮伸長器12、ATAコマンド発行器13、ATAコマンド自動発行器14、第2実施例の不揮発性メモリコントローラ101と同様のメモリ残容量計算器111、平均圧縮率保存器112、第4実施例の不揮発性メモリ301と同様の最終データ予測検知器311及び第5実施例と同様の圧縮率監視部411を備えている。
【0135】
圧縮率監視部411は、DMAC11と圧縮伸長器12に接続されているとともに、ATAコマンド発行器13に接続されており、DMAC11がメモリ4から読み出したデータ量と圧縮伸長器12が圧縮した圧縮データのデータ量を比較して、圧縮結果が生データ(元データ)のデータサイズを超えているか否か判断して、圧縮データが元データよりも大きくなるときには、ATAコマンド発行器13に、DMAC11が、再度、メモリ4から読み出した元データを、圧縮伸長器12で圧縮することなく、不揮発性メモリ5に転送させて書き込ませる。
【0136】
次に、本実施例の作用を説明する。本実施例の画像処理装置400は、圧縮率監視部411が、圧縮データのデータサイズが元と他のデータサイズよりも大きくなったことを検出すると、元データを不揮発性メモリ5に転送して格納させる転送制御を行う。
【0137】
すなわち、画像処理装置500は、メモリ4のデータを不揮発性メモリ5にATAコマンドによって転送して書き込む場合、図17に示すように、データ転送制御処理を実行する。なお、図17において、図15と同様の処理ステップには同一のステップナンバーを付与して、その説明を簡略化する。
【0138】
画像処理装置500は、CPU3がプログラムによってDMAC11に対して、メモリ4から読み込むメモリアドレスとデータサイズの設定を行い(ステップS201)、ATAコマンドを用いたデータ転送における最大転送量の指定等の不揮発性メモリ5に対してATAコマンドでデータを書き込むために必要なコマンドを発行して(ステップS202)、不揮発性メモリコントローラ501に対して起動を掛ける(ステップS203)。
【0139】
不揮発性メモリコントローラ501は、起動されると、DMAC11によって、メモリ4の指定されたアドレスからデータの読み出しを開始して圧縮伸長器12に渡して(ステップS204)、圧縮伸長器12で可変長圧縮した圧縮データをATAコマンド発行器13に渡し、ATAコマンド発行器13によってATAコマンドを発行してATA I/F5aを介して不揮発性メモリ5に圧縮データを格納する(ステップS205)。
【0140】
不揮発性メモリコントローラ501は、ATAコマンドで指定した最大サイズのデータの転送が完了すると(ステップS401)、ATAコマンド自動発行器14が、最終データ予測検知器311の最終データか否かの比較結果を確認して(ステップS402)、次のデータ転送が最終データ転送であるかチェックする(ステップS403)。
【0141】
ステップS403で、最終データ転送でないときには、ATAコマンド自動発行器14が、最大転送サイズをATAコマンド発行器13に通知して、ATAコマンド発行器13が最大転送サイズでのATAコマンドをATA I/F5aに発行して、ステップS204に移行する(ステップS404)。
【0142】
不揮発性メモリコントローラ501は、上記同様に、DMAC11がメモリ4からデータを読み出して圧縮伸長器12で圧縮してATA I/F5aを介して不揮発性メモリ5に格納して、ATAコマンドで指定した最大サイズのデータ転送が終了すると、ATAコマンド自動発行器14が最終データ予測検知器311を確認して、最終データ転送か判断する(ステップS204、S205、S401〜S403)。ステップS403で、最終データ転送でないときには、最大転送サイズのデータの転送を上記同様に行う(ステップS404、S204、S205、S401〜S403)。
【0143】
そして、ステップS403で、転送サイズが最大転送量以下であって、最終データ転送であると、最終データ予測検知器311が、そのメモリ残容量保存器221のメモリ残容量と平均圧縮率保存器225の平均圧縮率から演算器222が算出して圧縮後転送サイズ保存器223に保存している圧縮後のデータ転送サイズを、ATAコマンド自動発行器14が、ATAコマンド転送量として取得して(ステップS405)、取得したデータ転送量と転送先アドレスをATAコマンド発行器13に設定して、起動させる。ATAコマンド発行器13は、起動されると、設定されたデータ転送量と転送先アドレスによってATAコマンドを発行して、圧縮伸長器12の圧縮したデータをATA I/F5aを介して不揮発性メモリ5に格納する(ステップS406)。
【0144】
ATAコマンド発行器13の発行したATAコマンドの転送容量(データ転送サイズ)のデータ転送が完了すると、最終データ予測検知部311がメモリ残容量と平均圧縮率から算出したATAコマンドで指定するデータ転送量を、ATAコマンド自動発行器14が、取得し(ステップS405)、データ転送量と転送先アドレスをATAコマンド自動発行器14がATAコマンド発行器13に設定して、ATAコマンド発行器13がコマンドを発行する(ステップS406)。メモリ残容量をチェックして、メモリ4内の転送対象となっている全てのデータの転送が終了したかチェックする(ステップS213)。
【0145】
ステップS213で、転送が完了していないときには、不揮発性メモリコントローラ501は、ステップS405に戻って、ATAコマンド転送量を取得する処理から上記同様に処理する(ステップS405、S406、S213)。
【0146】
ステップS213で、転送終了であると、圧縮率監視部411は、圧縮伸長器12による最終データの圧縮率が「1」以下であるか判断して、「1」以下の場合には、圧縮伸長器12の圧縮した最終データをATAコマンド発行器13に不揮発性メモリ5に転送させて格納させる。
【0147】
ところが、ステップS213で、転送終了であっても、圧縮率監視部411は、圧縮伸長器12での最終データの圧縮率が「1」を超えていると、再度、DMAC11に同じアドレスから元データを読み出させて、圧縮伸長器12で圧縮させることなくスルーさせて、ATAコマンド発行器13に不揮発性メモリ5へ転送させて、生データ(元データ)を不揮発性メモリ5に格納させて処理を終了する(ステップS601)。
【0148】
このように、本実施例の画像処理装置500は、不揮発性メモリコントローラ501が、DMAC11によってメモリ4から読み出されたデータサイズと圧縮伸長器12の圧縮した圧縮データのデータサイズから該圧縮データが元データのデータサイズ以下に圧縮されたか否かを監視し、該圧縮データのデータサイズが元データのデータサイズよりも大きいときには、DMAC11に同じ元データをメモリ4から読み出させて、該データを圧縮伸長器12を非圧縮状態で通過(スルー)させた後、ATAコマンド発行器13に該元データをそのまま不揮発性メモリ5に転送させる圧縮率監視部411を搭載している。
【0149】
したがって、プログラムが介在することなく、圧縮データが元データよりも大きなデータになったときには、元データを不揮発性メモリ5に転送して保存させることができ、処理速度を向上させつつ、無駄な保存領域が使用されることを防止して、不揮発性メモリ5の有効利用を図ることができる。
【0150】
以上、本発明者によってなされた発明を好適な実施例に基づき具体的に説明したが、本発明は上記実施例で説明したものに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【0151】
本発明は、ATAコマンドでデータ転送するデータ転送制御装置及びこのデータ転送制御装置を搭載する複合装置、ファクシミリ装置、複写装置等の画像処理装置、データ転送制御方法、データ転送制御プログラム及び記録媒体に利用することができる。
【符号の説明】
【0152】
1 画像処理装置
2 不揮発性メモリコントローラ
3 CPU
4 メモリ
5 不揮発性メモリ
5a ATA I/F
11 DMAC
12 圧縮伸長器
13 ATAコマンド発行器
14 ATAコマンド自動発行器
100 画像処理装置
111 メモリ残容量計算器 112 平均圧縮率保存器
121 転送サイズ受信器
122 減算器
123 総転送サイズ保存器
124 メモリ残容量演算結果保存器
131 圧縮結果受信器
132 平均値演算器
133 平均圧縮率保存器
200 画像処理装置
201 不揮発性メモリコントローラ
211 最終データ予測検知器
221 メモリ残容量保存器
222 演算器
223 圧縮後転送サイズ保存器
224 ATA転送サイズ比較器
225 平均圧縮率保存器
300 画像処理装置
301 不揮発性メモリコントローラ
311 最終データ予測検知器
400 画像処理装置
401 不揮発性メモリコントローラ
411 圧縮率監視部
500 画像処理装置
501 不揮発性メモリコントローラ
【先行技術文献】
【特許文献】
【0153】
【特許文献1】特開2001−282705号公報

【特許請求の範囲】
【請求項1】
転送元メモリから転送対象データを読み出すデータ読み出し手段と、
前記データ読み出し手段の読み出したデータを可変長圧縮する圧縮手段と、
前記圧縮手段の圧縮した圧縮データの転送先メモリにおけるアドレスとデータ転送サイズを指定したATAコマンドを発行して該転送先メモリにデータ転送するATAコマンド発行手段と、
前記ATAコマンド発行手段に該ATAコマンド発行手段が発行したATAコマンドのアドレスに連続する次アドレスを付与するATAコマンド自動発行手段と、
を備えていることを特徴とするデータ転送制御装置。
【請求項2】
前記転送元メモリの転送対象データの総データ量と転送済みデータ量から未転送のデータ残容量を算出するデータ残容量算出手段と、
前記データ読み出し手段の読み出したデータに対する前記圧縮手段による平均圧縮率を算出する平均圧縮率算出手段と、
前記ATAコマンド発行手段によるATAコマンドによる前記データ転送サイズの転送毎に前記データ残容量と前記平均圧縮率から前記ATAコマンド発行手段による次のデータ転送が、ATAコマンドとしての最終データ転送であるか否かを判断して、最終データ転送であると、該データ残容量と該平均圧縮率から、次に発行すべきATAコマンドのデータ転送サイズを算出して、前記ATAコマンド自動発行手段に該データ転送サイズを該ATAコマンド発行手段に設定させる制御手段と、
を備えていることを特徴とする請求項1記載のデータ転送制御装置。
【請求項3】
前記データ転送制御装置は、
前記データ残容量と前記平均圧縮率から前記ATAコマンド発行手段による次のデータ転送が、ATAコマンドとしての最終データ転送であるか否かを検知する最終データ予測検知手段を、
さらに備え、
前記制御手段は、前記ATAコマンド発行手段による次のデータ転送が前記最終データ転送であることを前記最終データ予測検知手段が検知すると、前記データ残容量と前記平均圧縮率から、次に発行すべきATAコマンドのデータ転送サイズを算出して、前記ATAコマンド自動発行手段に該データ転送サイズを前記ATAコマンド発行手段に設定させることを特徴とする請求項2記載のデータ転送制御装置。
【請求項4】
前記転送元メモリの転送対象データの総データ量と転送済みデータ量から未転送のデータ残容量を算出するデータ残容量算出手段と、
前記データ読み出し手段の読み出したデータに対する前記圧縮手段による平均圧縮率を算出する平均圧縮率算出手段と、
前記データ残容量と前記平均圧縮率から前記ATAコマンド発行手段による次のデータ転送が、ATAコマンドとしての最終データ転送であるか否かを検知して、最終データ転送であると、該データ残容量と該平均圧縮率から、次に発行すべきATAコマンドのデータ転送サイズを算出して、前記ATAコマンド自動発行手段に出力する最終データ予測検知手段と、
を備えていることを特徴とする請求項1記載のデータ転送制御装置。
【請求項5】
前記データ転送制御装置は、
前記データ読み出し手段が前記転送元メモリから読み出したデータサイズと前記圧縮手段の圧縮した圧縮データのデータサイズから該圧縮データが元データのデータサイズ以下に圧縮されたか否かを監視する圧縮率監視手段と、
前記圧縮率監視手段が前記圧縮データのデータサイズが元データのデータサイズよりも大きいことを検知すると、前記データ読み出し手段に同じ元データを前記転送元メモリから読み出させて、該データを前記圧縮手段を非圧縮状態で通過させた後、前記ATAコマンド発行手段に該元データをそのまま前記転送先メモリに転送させる元データ転送制御手段と、
を備えていることを特徴とする請求項1から請求項4のいずれかに記載のデータ転送制御装置。
【請求項6】
前記データ転送制御装置は、
前記データ読み出し手段が前記転送元メモリから読み出したデータサイズと前記圧縮手段の圧縮した圧縮データのデータサイズから該圧縮データが元データのデータサイズ以下に圧縮されたか否かを監視し、該圧縮データのデータサイズが元データのデータサイズよりも大きいときには、該データ読み出し手段に同じ元データを該転送元メモリから読み出させて、該データを該圧縮手段を非圧縮状態で通過させた後、前記ATAコマンド発行手段に該元データをそのまま前記転送先メモリに転送させる圧縮率監視手段を、
さらに備えていることを特徴とする請求項1から請求項4のいずれかに記載のデータ転送制御装置。
【請求項7】
揮発性メモリの画像データをATAコマンドを用いて不揮発性メモリに転送して該不揮発性メモリに画像データを格納するデータ転送制御部を備えた画像処理装置において、
前記データ転送制御部として、請求項1から請求項6のいずれかに記載のデータ転送制御装置を搭載していることを特徴とする画像処理装置。
【請求項8】
転送元メモリから転送対象データを読み出すデータ読み出し処理ステップと、
前記データ読み出し処理ステップで読み出されたデータを可変長圧縮する圧縮処理ステップと、
前記圧縮処理ステップで圧縮された圧縮データの転送先メモリにおけるアドレスとデータ転送サイズを指定したATAコマンドを発行して該転送先メモリにデータ転送するATAコマンド発行処理ステップと、
前記ATAコマンド発行処理ステップにおいて該ATAコマンド発行処理ステップで発行したATAコマンドのアドレスに連続する次アドレスを付与するATAコマンド自動発行処理ステップと、
を有していることを特徴とするデータ転送制御方法。
【請求項9】
コンピュータに、
転送元メモリから転送対象データを読み出すデータ読み出し処理と、
前記データ読み出し処理で読み出されたデータを可変長圧縮する圧縮処理と、
前記圧縮処理で圧縮された圧縮データの転送先メモリにおけるアドレスとデータ転送サイズを指定したATAコマンドを発行して該転送先メモリにデータ転送するATAコマンド発行処理と、
前記ATAコマンド発行処理において該ATAコマンド発行処理で発行したATAコマンドのアドレスに連続する次アドレスを付与するATAコマンド自動発行処理と、
を実行させることを特徴とするデータ転送制御プログラム。
【請求項10】
請求項9記載のデータ転送制御プログラムを記録したことを特徴とするコンピュータが読み取り可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2011−243090(P2011−243090A)
【公開日】平成23年12月1日(2011.12.1)
【国際特許分類】
【出願番号】特願2010−116107(P2010−116107)
【出願日】平成22年5月20日(2010.5.20)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】