JP4148834B2 - データ転送装置、画像形成装置、データ転送制御方法、コンピュータプログラム及び記録媒体 - Google Patents
データ転送装置、画像形成装置、データ転送制御方法、コンピュータプログラム及び記録媒体 Download PDFInfo
- Publication number
- JP4148834B2 JP4148834B2 JP2003140830A JP2003140830A JP4148834B2 JP 4148834 B2 JP4148834 B2 JP 4148834B2 JP 2003140830 A JP2003140830 A JP 2003140830A JP 2003140830 A JP2003140830 A JP 2003140830A JP 4148834 B2 JP4148834 B2 JP 4148834B2
- Authority
- JP
- Japan
- Prior art keywords
- data transfer
- data
- command
- cache
- contents
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Record Information Processing For Printing (AREA)
- Bus Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Storing Facsimile Image Data (AREA)
Description
【発明の属する技術分野】
本発明は、各種データを転送するデータ転送装置、このデータ転送装置を備えた画像形成装置、データ転送制御方法、このデータ転送制御方法を実行するコンピュータプログラム及びこのコンピュータプログラムを記録した記録媒体に関する。
【0002】
【従来の技術】
複写機、プリンタ、ファクシミリなどの画像形成装置においては、ハードディスクのような磁気ディスク装置や大容量の不揮発性メモリなどの記憶装置は、例えばプリンタや複写機といった印刷装置の大容量記憶装置としても利用され、フォントなどの文字情報のキャッシュや印刷情報を一時的に蓄積し電子ソートを行うなどで使用することが、例えば特許文献1に開示されている。
【0003】
【特許文献1】
特開2001−282705号公報
【0004】
【発明が解決しようとする課題】
通常、これらの記憶装置は大容量であることや電源を切断しても記録内容が失われないなどの利点がある代わりに、書き込みや読み出し速度が遅いといった欠点もある。このような速度の遅さをカバーするためハードディスク装置(以下、HDDと称する)などでは、内部にキャッシュメモリを持ち、データの読み書きの際に直接HDDにアクセスするのではなく、高速なキャッシュメモリを利用して読み書き速度の効率を上げている。そのためデータ書き込み時にプリンタや複写機の制御装置(コントローラ)側からキャッシュメモリに対してデータ転送が終了していても、実際に不揮発性の記憶装置部分に書き込みが終了するまでには時間差が発生している。
【0005】
装置の終了動作が正常に行われている場合は、このキャッシュ内容が記憶装置に書き込まれたことを確認後に電源切断処理に移るが、停電やユーザによる電源スイッチ操作などによる不意の電源切断があった時には、記憶装置側のディスクあるいは不揮発性メモリ部分では書き込みが行われていなかったり、書き込みが行われていないにも関わらず、装置側ではデータ転送が終了したものとしてデータ保持を終了してしまうといった不整合が発生し、キャッシュメモリに記憶されたデータが記憶装置に書き込まれる前に失われてしまうことがあった。
【0006】
本発明はこのような従来技術の実情に鑑みてなされたもので、その目的は、キャッシュメモリに記憶されたデータが記憶装置に書き込まれる前に失われてしまうことがなく、書き込みデータの安全性を高めることができるデータ転送装置、このデータ転送装置を備えた画像形成装置、データ転送制御方法、このデータ転送制御方法を実行するコンピュータプログラム及び記録媒体を提供することにある。
【0007】
【課題を解決するための手段】
前記目的を達成するため、第1の手段は、データ転送対象となる記憶装置に制御コマンドをDMA転送するデータ転送装置において、コマンド発行用のコマンドDMAコントローラとデータ転送のためのデータDMAコントローラを含む制御手段を備え、前記制御手段は前記コマンドDMAコントローラが前記記憶装置のコマンドレジスタに書き込む内容をDMA転送する前に、前記キャッシュメモリの内容をキャッシュフラッシュするか否かを判断し、キャッシュフラッシュを行う場合には、前記キャッシュメモリのキャッシュ内容を前記記憶装置に書き込む制御コマンドを発行し、前記記憶装置は予め設定された転送条件に従って、前記キャッシュメモリのキャッシュ内容を書き込むことを特徴とする。
【0008】
前記転送条件としては、例えば1回のデータ転送毎、予め設定されたDMA転送回数、予め設定したデータ転送量、予め設定した時間間隔、前記記憶装置上の予め設定されたアドレス範囲に書き込みがあった場合、予め設定されたDMAの転送元アドレスからの書き込みデータが転送されたとき、のいずれかである。
【0009】
第2の手段は、データ転送対象となる記憶装置に制御コマンドをDMA転送するデータ転送装置において、コマンド発行用のコマンドDMAコントローラとデータ転送のためのデータDMAコントローラを含む制御手段を備え、前記制御手段は前記コマンドDMAコントローラが前記記憶装置のコマンドレジスタに書き込む内容をDMA転送する前に、前記キャッシュメモリの内容をキャッシュフラッシュするか否かを判断し、キャッシュフラッシュを行う場合には、予め設定した時間を超えたとき、前記キャッシュメモリのキャッシュ内容を前記記憶装置に書き込む制御コマンドを発行し、前記記憶装置は前記キャッシュメモリのキャッシュ内容を書き込むことを特徴とする。
【0010】
第3の手段は、第1または第2の手段に係るデータ転送装置と、記録媒体に画像を形成する画像形成手段とを備えていることを特徴とする。
【0011】
第4の手段は、データ転送対象となる記憶装置に制御コマンドをDMA転送するデータ転送方法において、コマンド発行用のコマンドDMAコントローラとデータ転送のためのデータDMAコントローラを含む制御手段を備え、前記制御手段は、前記コマンドDMAコントローラが前記キャッシュメモリへのデータ書き込み指示のコマンドをDMA転送する前に、前記キャッシュメモリの内容をキャッシュフラッシュするか否かを判断し、キャッシュフラッシュを行う場合には、前記キャッシュメモリのキャッシュ内容を前記記憶装置に書き込む制御コマンドを発行し、前記記憶装置は予め設定された転送条件に従って、前記キャッシュメモリのキャッシュ内容を書き込むことを特徴とする。
【0012】
第5の手段は、データ転送対象となる記憶装置に制御コマンドをDMA転送するデータ転送方法において、コマンド発行用のコマンドDMAコントローラとデータ転送のためのデータDMAコントローラを含む制御手段を備え、前記制御手段は前記コマンドDMAコントローラが前記キャッシュメモリへのデータ書き込み指示のコマンドをDMA転送する前に、前記キャッシュメモリの内容をキャッシュフラッシュするか否かを判断し、キャッシュフラッシュを行う場合には、予め設定した時間を超えたとき、前記キャッシュメモリのキャッシュ内容を前記記憶装置に書き込む制御コマンドを発行し、前記記憶装置は前記キャッシュメモリのキャッシュ内容を書き込むことを特徴とする。
【0013】
第6の手段は、第4または第5の手段に係るデータ転送制御方法をコンピュータプログラムによって構築し、コンピュータで実行させるようにしたことを特徴とする。
【0014】
第7の手段は、第6の手段に係るコンピュータプログラムが、コンピュータによって読み出され、実行可能に記録媒体に記録されていることを特徴とする。
【0015】
【発明の実施の形態】
以下、図面を参照し、本発明の実施の形態について説明する。
【0016】
<第1の実施形態>
図1は本発明に係るデータ転送装置の実施の形態を示すブロック図、図2はコマンドDMACのディスクリプタの構成図である。図1において、データ転送装置は、CPU101と、入出力ブロック(以下I/Oと称する)102と、システムASIC103と、システムメモリ104と、外部記憶装置であるハードディスクドライブ(以下、HDDと称する)105とを備えている。CPU101は、ASIC103を介してシステムメモリ104からプログラムコードを取り出しデータの処理などを行う。ASIC103は、システムメモリ104、HDD105、あるいはI/O102に接続された外部装置などとデータの伝達制御を行うものであり、データ転送のためのデータDMAコントローラ(以下、データDMACと称する)202と、コマンド発行用のコマンドDMAコントローラ(以下、コマンドDMACと称する)203が設けられている。
【0017】
HDD105はデータなどを保存するものであり、システムASIC103のデータDMAC202とコマンドDMAC203に接続されている。HDD105には、図示していないが、データレジスタ、書き込み時にフィーチャレジスタとして機能し、読み取り時にはエラーレジスタとして機能するレジスタ、セクタカウントレジスタ、セクタナンバーレジスタ、シリンダローレジスタ、シリンダハイレジスタ、デバイスヘッドレジスタ、コマンドレジスタ、ステータレジスタなどを備えている。コマンドDMAC203のレジスタにHDD105の各レジスタへ書き込むコマンドが格納されている。
【0018】
コマンドDMAC203のメモリには、図2に示すように、全体が4ワード(32バイト)のディスクリプタ314を備えている。このディスクリプタ314は、ネクストディスクリプタポインタ301、デバイスヘッド302、シリンダハイ303、シリンダロー304、セクタナンバー305、セクタカウント306、コマンド307、未使用エリア308,309,310,312、nカウンタ311、PMODE/CINT313、POL315を有している。
【0019】
ネクストディスクリプタポインタ301は、ここが0のとき、次のディスクリプタが無いことを示す。デバイスヘッド302は、HDD105のレジスタのデバイスヘッドに書くべき内容を格納する。シリンダハイ303は、HDD105のレジスタのシリンダハイに書くべき内容を格納する。シリンダロー304は、HDD105のレジスタのシリンダローに書くべき内容を格納する。セクタナンバー305は、HDD105のレジスタのセクタナンバーに書くべき内容を格納する。セクタカウント306は、HDD105のレジスタのセクタカウントに書くべき内容を格納する。コマンド307は、HDD105のレジスタのコマンドに書くべき内容を格納する。nカウンタ311は、このディスクリプタ314が繰り返される回数を格納する。PMODE/CINT313のPMODEは、このディスクリプタ314が終了したら、一時停止することを示すフラグであり、CINTはこのディスクリプタ314が終了して、チェーンする時に割り込みを発生することを示すフラグである。POL315は、コマンドがポーリングを必要とすることを示すフラグである。
【0020】
このようにHDD105にアクセスするデータ転送部であるASIC103は、データ転送用のデータDMAC202と、コマンド転送用のコマンドDMAC203とを備え、コマンドDMAC203はHDD105のコマンドレジスタに書き込む内容の転送を行い、HDD105のヘッド、シリンダ、セクタ数、動作モード、繰り返し回数などを指定する。あらかじめデータ転送に必要な制御コマンド列を複数準備しておくことにより、いったんデータ転送が開始されるとデータDMAC202、コマンドDMAC203が自動的にデータ転送のコマンド発行を継続する。
【0021】
ここで、データ書き込み指示のコマンドをDMA転送する前にキャッシュ内容をHDD105に書き込む制御コマンドを発行することによって、1回のデータDMA転送ごとにデータをHDD105に書き込んでキャッシュメモリにデータを残さないようにする制御を図3のフローチャートにより説明する。図3はデータ転送装置における動作制御の処理手順を示すフローチャートである。この実施例は、デバイスヘッド302、シリンダハイ303、シリンダロー304、セクタナンバー305の情報からHDD105内のすべてのセクタに通し番号を振り、その通し番号によってセクタを指定するLBA(Logical BlockAddressing)方式を想定して説明する。なお、LBAには、48bitに拡張されたLarge LBAの規格もあるが、この実施例では28bit LBAを想定して説明を行っている。
【0022】
コマンドDMAC203はディスクリプタ314を取得し(ステップS101)、ステータスをリードする(ステップS102)。そしてステータスがレディであるか否かをチェックし(ステップS103)、レディでない場合はステップs102に戻す。レディの場合は、HDD105のコマンドレジスタ以外のレジスタの値をセットし(ステップS104),コマンドレジスタにコマンドをセットする(ステップS105)。次いで、データDMAC202によってデータの転送を行い(ステップS106)、HDD105の状態の確認を行う(ステップS107)。
【0023】
このステップS107の詳細を図4により説明する。図4は図3のハードディスクの状態確認のステップの動作を詳細に示すフローチャートである。
【0024】
この処理では、まず、データが割り込み系かポーリング系かをチェックし(ステップS201)、割り込み系の場合は、割込みがあったときにコマンドDMAC203はステータスをリードし(ステップS202,S203)、エラーがあれば、エラー処理をして(ステップS204,S205)、終了する。エラーが発生していない場合は、次の動作に移るための準備が完了しているかをチェックし(ステップS204,S206)、準備が完了した場合は、次のステップに進む。
【0025】
また、ステップS201でデータがポーリング系と判定されたときは、そのときのデータ転送が終了するまで待ち(ステップS207)、ステータスをリードし(ステップS208)、エラーが発生している場合は、エラー処理をして(ステップS209,S210)、終了する。エラーが発生していない場合は、次の動作に移るための準備が完了しているかをチェックし(ステップS209,S211)、準備が完了した場合は、次のステップに進み、準備が完了していない場合はステップS207に戻る。
【0026】
このようにしてHDD105の状態を確認して、次の動作に移るための準備が完了している場合は、図3のステップS108に進み、 キャッシュフラッシュを実行するか否かをチェックする。実行する場合は、キャッシュ内容をHDD105に書き込む制御コマンド(FLASH CACHEコマンド)をHDD105に発行する(ステップS109)。ここでキャッシュフラッシュコマンドを実行するか否かの判断には、ユーザによるキャッシュフラッシュの動作設定の反映以外に、リード動作時には無駄にキャッシュフラッシュコマンドを実行しないといった判断も含む。次いで、HDD105の状態を確認し(ステップS110)、次のディスクリプタ314があるか否かをチェックする(ステップS111)。次のディスクリプタ314がある場合には、nカウンタ311の設定値を確認し(ステップS112)、nカウンタ311が「0」の場合はネクストディスクリプタポインタ301のアドレスからディスクリプタを取得し(ステップS113)、ステップs102に戻って上記の処理を繰り返す。一方、nカウンタ311が「0」でない場合は、nカウンタ311の設定値から1を減算し(ステップS114)、HDD105へのロジカルブロックアドレス(LBA)に「0x100」を足してレジスタにセットする。この場合、HDD105のデバイスヘッドレジスタの上位4ビットはそのままにしておく。そしてステップS105に戻り、コマンドレジスタをセットして上記処理を繰り返す。
【0027】
このようにして、HDD105はキャッシュ内のデータをディスクに書き込み終了後に再度コントローラ側に割り込み信号を発行して書き込み終了を通知する。キャッシュデータの書き込みが正常に終了し、HDD105の状態確認動作でステータスがREADYになっていれば、コマンドDMAC203は次のデータ転送に必要な制御コマンドをHDD105に発行してCPU101による制御を介さずにデータ転送の動作を続ける。HDD105の状態確認は、図4に示すように、割り込み信号を用いなくてもステータスのポーリングや他の制御信号の状態監視などでも実現可能である。
【0028】
このように、HDD105への書き込みごとにキャッシュメモリ上のデータを残さずに書き込み完了させるので、HDD105を利用している機器に不意のトラブルが発生した場合でも書き込みデータを損失するリスクを軽減することができ、データの信頼性を向上させることが可能となる。また、CPU101を介さずに処理可能になり、コントローラの負荷を軽減させることができる。
【0029】
<第2の実施形態>
上記第1の実施形態の動作では、コマンド発行のタイミングで毎回キャッシュ内のデータを書き込みするため、書き込み時のデータ転送速度が落ちてしまう。そこで、第2の実施形態では、フラッシュキャッシュコマンドの発行頻度を制御コマンドの発行ごとのタイミングではなく、制御コマンドの複数回に対してフラッシュキャッシュコマンドを1回発行するといった回数選択を可能とし、フラッシュキャッシュコマンドの間引き処理を行う。その処理動作は、図3の点線で囲まれたステップS108からステップS110までのステップを図5に示すように変更することにより実施できる。図5はデータ転送装置における第2の実施形態の動作制御の処理手順を示すフローチャートである。
【0030】
この処理手順では、図3のステップS107においてHDD105の状態の確認を行った後、キャッシュフラッシュを実行するか否かをチェックし(ステップS301)、実行する場合は書き込みコマンドの実行回数が設定値に達したか否かをチェックする(ステップS302)。設定値に達していない場合は、書き込みコマンドの実行回数を加算し(ステップS303)、図3のステップS111に進む。一方、設定値に達した場合は書き込み回数の実行回数をクリアにし(ステップS304)、キャッシュ内容をHDD105に書き込むフラッシュキャッシュコマンドをHDD105に発行する(ステップS305)。次いで、HDD105の状態を確認し(ステップS306)、図3のステップS111に進む。ステップS301において、キャッシュフラッシュを実行しない場合も、図3のステップS111に進む。
【0031】
このように、データ転送回数に対して必要なキャッシュフラッシュ回数を設定することで、データ安全性を高めるとともに、キャッシュの使用効率を上げることができる。この動作制御により、第1の実施例に比べてデータ転送性能を一段と向上させることができる。
【0032】
その他、特に説明しない各部は前述の第1の実施形態と同等に構成され、同等に機能するので、重複する説明は省略する。
【0033】
<第3の実施形態>
大容量のデータを少数回DMA転送を行うような設定の場合、上記第2の実施形態の動作制御では、フラッシュキャッシュコマンドの発行頻度が減って、データがキャッシュメモリ上に残っている時間が長くなってしまう。そこで、第3の実施形態では、フラッシュキャッシュコマンドの発行頻度を制御コマンドの発行回数ではなく、データ転送量あるいは転送数を元に発行回数を決定するように制御している。その処理動作は、図3の点線で囲まれたステップS108からステップS110までのステップを図6に示すように変更することにより実施できる。図6はデータ転送装置における第3の実施形態の動作制御の処理手順を示すフローチャートである。
【0034】
この処理手順では、図3のステップS107においてHDD105の状態の確認を行った後、キャッシュフラッシュを実行するか否かをチェックし(ステップS401)、実行する場合はデータ書き込み数が設定値に達したか否かをチェックする(ステップS402)。データ書き込み数が設定値に達していない場合は、書き込みデータ数を加算した後(ステップS403)、図3のステップS111に進む。キャッシュフラッシュを実行しない場合も、図3のステップS111に進む。
【0035】
ステップS402において、データ書き込み数が設定値に達した場合は、書き込みデータ数をクリアにし(ステップS404)、キャッシュ内容をHDD105に書き込むフラッシュキャッシュコマンドをHDD105に発行し(ステップS405)、HDD105の状態を確認し(ステップS406)、図3のステップS111に進む。このようにして、任意に設定した量のデータ書き込みを行った後の制御コマンド発行のタイミングでフラッシュキャッシュコマンドの発行を行う。
【0036】
データ転送量は、コマンドDMAC203により発行される制御コマンドのセクタ数、コマンド繰り返し回数より算出するほか、データDMAC202に転送済みデータ数をカウントする機能を持たせるとともに、転送データ数を参照する機能を持つ手段を設けることなどで対応可能である。
【0037】
このように、データ転送量から必要なキャッシュフラッシュ回数を設定し、データ安全性を高めるとともにキャッシュの使用効率を上げることで第1の実施例の動作に比べデータ転送性能を向上させることができる。また、データ転送量でキャッシュフラッシュ回数を決めることで、不意のトラブルでデータが失われることがあった場合でも、どこまでのデータが書き込み保証されているかの予測が立て易い。
【0038】
その他、特に説明しない各部は前述の第1の実施形態と同等に構成され、同等に機能するので、重複する説明は省略する。
【0039】
<第4の実施形態>
一方、データ転送回数も、転送量も頻繁でない場合、上記第2、第3の実施形態の動作制御では、フラッシュキャッシュコマンドの発行頻度が減ってしまう。そこで、第4の実施形態においては、フラッシュキャッシュコマンドの発行頻度を時間設定により制御し、一定時間経過後の制御コマンド発行時に、フラッシュキャッシュコマンドを発行する処理を行うことで、データがキャッシュメモリ上に残っている時間が長くなりすぎないように制御するようにしている。時間の監視はハードウェアタイマなどで構成することによりCPU101によるソフトウェア処理を介さずに実現する。またフラッシュキャッシュコマンドの発行は、書き込み動作の時だけでなく読み出し動作中の制御コマンド発行時に実行することも選択可能としている。
【0040】
その処理動作は、図3の点線で囲まれたステップS108からステップS110までのステップを図7に示すように変更することにより実施できる。図7はデータ転送装置における第4の実施形態の動作制御の処理手順を示すフローチャートである。
【0041】
この処理手順では、図3のステップS107においてHDD105の状態の確認を行った後、キャッシュフラッシュを実行するか否かをチェックし(ステップS501)、実行する場合は時間情報をハードウェアタイマなどにより取得し(ステップS502)、前回コマンドDMAC203が実行してから予め設定された所定時間が経過したかをチェックする(ステップS503)。所定時間が経過していない場合は、キャッシュフラッシュを実行しない場合と同様に、図3のステップS111に進む。
【0042】
ステップS503において、所定時間が経過している場合は、キャッシュ内容をHDD105に書き込むフラッシュキャッシュコマンドをHDD105に発行し(ステップS504)、HDD105の状態を確認し(ステップS505)、図3のステップS111に進む。
【0043】
このように、設定時間経過以後の制御コマンド発行時に、キャッシュフラッシュを実行させることにより、データの転送回数/転送量が少ない場合でも長時間キャッシュメモリ上にデータを残さずに書き込みを実行することが可能になる。また、時間監視の機能をハードウェアタイマなどで構成することでCPUを介さずに処理することが可能となり、コントローラの負荷が軽減できる。
【0044】
その他、特に説明しない各部は前述の第1の実施形態と同等に構成され、同等に機能するので、重複する説明は省略する。
【0045】
<第5の実施形態>
この第4の実施形態の動作制御に加え、一定時間経過後は制御コマンド発行要求がなくても、フラッシュキャッシュコマンドを自動発行する処理を選択可能とすることもできる。この場合、第4の実施形態の動作制御と同様に、キャッシュメモリ上に残っている時間が長くなりすぎないように制御可能であり、CPUによる制御も不要でコントローラの負荷を軽減することができる。その動作制御は、HDD105へのリードあるいはライトの動作の後だけに限らず、一定時間経過後単独でキャッシュフラッシュコマンドの発行を可能とすることができる。また、コマンドDMAC203やデータDMAC202、CPU101によるHDD105へのレジスタアクセスなど、他のアクセス要求がある場合はそちらを優先的に処理を行う。単独での動作制御は、図8に示すようになる。図8はデータ転送装置の第5の実施形態の動作制御の処理手順を示すフローチャートである。
【0046】
この処理手順では、キャッシュフラッシュを実行するか否かをチェックし(ステップS601)、実行しない場合には処理を終え、実行する場合は時間情報をハードウェアタイマなどにより取得し(ステップS602)、前回のキャッシュフラッシュ実行時から所定時間が経過したか否かをチェックする(ステップ603)。所定時間が経過していない場合は、処理を終える。所定時間が経過している場合は、フラッシュキャッシュコマンドをHDD105に発行し(ステップS604)、HDD105の状態を確認する(ステップS605)。なお、コマンドDMAC203の要求と重なった場合の例は第4の実施形態の動作制御と同等になる。
【0047】
このように、第5に実施形態によれば、設定時間経過以後に制御コマンド発行要求がなくとも単独でキャッシュフラッシュを実行させるので、第4の実施形態の動作と比較してより確実にデータの書き込み保証を行うことが可能になる。
【0048】
その他、特に説明しない各部は前述の第1の実施形態と同等に構成され、同等に機能するので、重複する説明は省略する。
【0049】
<第6の実施形態>
第6の実施形態においては、データの書き込み後、キャッシュメモリ内にデータを蓄えることなく、即時HDD105に書き込みを行いたい領域を事前に設定するようにしている。領域の範囲は、HDD105であればLBAなどで指定される領域を、記憶素子であればアドレスで指定される領域を即時データ書き込みを実行する範囲として設定する。また、このアドレス範囲は任意に設定変更を可能とする。その処理動作は、図3の点線で囲まれたステップS108からステップS110までのステップを図9に示すように変更することにより実施できる。図9はデータ転送装置における第6の実施形態の動作制御の処理手順を示すフローチャートである。すなわち、図3のステップS107においてHDD105の状態の確認を行った後、キャッシュフラッシュを実行するか否かをチェックし(ステップS701)、実行する場合は、さらに書き込み先アドレスがキャッシュフラッシュの対象範囲内にあるか否かをチェックする(ステップS702)。キャッシュフラッシュの対象範囲内にある場合は、キャッシュ内容をHDD105に書き込むフラッシュキャッシュコマンドをHDD105に発行し(ステップS703)、HDD105の状態を確認し(ステップS704)、図3のステップS111に進む。キャッシュフラッシュを実行しない場合、およびデータ転送先アドレスがキャッシュフラッシュの対象範囲内ではない場合はいずれも図3のステップS111に進む。
【0050】
このように、HDD105への書き込みごとにキャッシュメモリ上のデータを残さずに書き込み完了させることにより、HDD105を利用している機器に不意のトラブルが発生した場合でも書き込みデータを損失するリスクを軽減し、データの信頼性向上につなげることができる。また、あらかじめ設定したアドレス範囲に書き込み動作を行ったときに、キャッシュデータの書き込み実行をCPU101を介さずに処理することができるので、コントローラの負荷を軽減することが可能になる。同時に、不要なキャッシュデータの書き込み実行を防ぐことができるので、処理能力低下を防ぐことが可能となる。
【0051】
その他、特に説明しない各部は前述の第1の実施形態と同等に構成され、同等に機能するので、重複する説明は省略する。
【0052】
<第7の実施形態>
上記第6の実施形態においては、書き込み先のアドレスでコマンド発行の決定を行っていたが、この第7の実施形態では転送元のアドレスによりフラッシュキャッシュコマンドの発行を決定するようにしている。すなわち、HDD105に即時書き込みを行いたいデータが格納されている領域を事前に設定し、データDMAC203により設定された領域範囲内からデータを読み出してHDD105へ転送を実行した際に、フラッシュキャッシュコマンドの要求を行い、データ転送終了後にフラッシュキャッシュコマンドをHDD105に対して発行する処理を実行する。この処理は設定範囲外からのデータ読み出しを実行するまで継続される。
【0053】
その処理動作は、図3の点線で囲まれたステップS108からステップS110までのステップを図10に示すように変更することにより実施できる。図10はデータ転送装置における第7の実施形態の動作制御の処理手順を示すフローチャートである。
【0054】
この処理手順では、図3のステップS107においてHDD105の状態の確認を行った後、キャッシュフラッシュを実行するか否かをチェックし(ステップS801)、実行する場合はデータ転送元アドレス範囲がキャッシュフラッシュの対象範囲内にあるか否かをチェックする(ステップS802)。キャッシュフラッシュの対象範囲内にある場合は、キャッシュ内容をHDD105に書き込むフラッシュキャッシュコマンドをHDD105に発行し(ステップS803)、HDD105の状態を確認し(ステップS804)、図3のステップS111に進む。キャッシュフラッシュを実行しない場合、およびデータ転送先アドレスがキャッシュフラッシュの対象範囲外の場合はいずれも図3のステップS111に進む。
【0055】
この第7の実施形態では、予め設定したアドレス範囲からのデータの書き込み動作を行ったときにCPU101を介さずに処理することができるので、コントローラの負荷を軽減することが可能となる。更に、書き込み先でなく元データのある場所で処理実行の判定を行うため、HDD105の利用者がデータ内容によりキャッシュデータの書き込み実行可否を判断しやすいという利点がある。
【0056】
<第8の実施形態>
第1ないし第7の実施形態にデータ転送装置は、例えば画像形成装置の画像データの転送に使用される。このデータ転送装置のI/O101に図11に示す画像処理ブロック300を接続し、システム化すれば、複写機やデジタル複合機(MFP−Multi Function Peripheral)などの1つの画像形成装置を構成することができる。画像処理ブロック300は、原稿の画像を読み取る画像入力部301、複写枚数や濃度の濃淡や複写サイズの設定や動作状態を表示する操作表示部302、プリンタエンジンを有し記録紙などに画像を形成して出力する画像出力部303、外部のホスト装置400からコマンドをを授受してデータを入力するホストインターフェイス(I/F)303で構成されている。
【0057】
このように構成すると、ホスト装置400の指示により、あるいはあるいは自身の画像入力部301から取り込んだ画像データを一旦、メモリ104を介してHDD105に取り込み、画像出力するときにHDD105からメモリ104に読み出し、このメモリ104から取得した画像データに基づいて画像出力部から記録紙に可視画像として出力することができる。
【0058】
なお、第1ないし第7の実施形態に係る処理は予め図示しないROMに書き込まれたプログラムにより、あるいは記録媒体やサーバからHDDにダウンロードしたプログラムに従ってCPU101によって実行される。
【0059】
【発明の効果】
以上のように、本発明によれば、キャッシュに記憶されたデータが記憶装置に書き込まれる前に失われてしまうことがなく、書き込みデータの安全性を高めることができる。
【図面の簡単な説明】
【図1】本発明の実施形態に係るデータ転送装置の構成を示すブロック図である。
【図2】コマンドDMACのディスクリプタの構成図である。
【図3】第1の実施形態に係るデータ転送装置における処理手順を示すフローチャートである。
【図4】図4のハードディスクの状態確認のステップの動作を詳細に示すフローチャートである。
【図5】第2の実施形態に係るデータ転送装置における処理手順を示すフローチャートである。
【図6】第3の実施形態に係るデータ転送装置における処理手順を示すフローチャートである。
【図7】第4の実施形態に係るデータ転送装置における処理手順を示すフローチャートである。
【図8】第5の実施形態に係るデータ転送装置における処理手順を示すフローチャートである。
【図9】第6の実施形態に係るデータ転送装置における処理手順を示すフローチャートである。
【図10】第7の実施形態に係るデータ転送装置における処理手順を示すフローチャートである。
【図11】第8の実施形態に係る画像形成装置の構成を示すブロック図である。
【符号の説明】
101 CPU
102 入出力(I/O)ブロック
103 システムASIC103
104 システムメモリ
105 ハードディスクドライブ(HDD)
202 データDMAコントローラ(データDMAC)
203 コマンドDMAコントローラ(コマンドDMAC)
300 外部装置
301 画像入力部
302 操作表示部
303 画像出力部
Claims (13)
- データ転送対象となる記憶装置に制御コマンドをDMA転送するデータ転送装置において、
コマンド発行用のコマンドDMAコントローラとデータ転送のためのデータDMAコントローラを含む制御手段を備え、
前記制御手段は、前記コマンドDMAコントローラが前記記憶装置のコマンドレジスタに書き込む内容をDMA転送する前に、前記キャッシュメモリの内容をキャッシュフラッシュするか否かを判断し、キャッシュフラッシュを行う場合には、前記キャッシュメモリのキャッシュ内容を前記記憶装置に書き込む制御コマンドを発行し、
前記記憶装置は、予め設定された転送条件に従って、前記キャッシュメモリのキャッシュ内容を書き込むこと
を特徴とするデータ転送装置。 - 前記転送条件は、1回のデータ転送毎であることを特徴とする請求項1記載のデータ転送装置。
- 前記転送条件は、予め設定されたデータ転送回数であることを特徴とする請求項1記載のデータ転送装置。
- 前記転送条件は、予め設定したデータ転送量であることを特徴とする請求項1記載のデータ転送装置。
- 前記転送条件は、予め設定した時間間隔であることを特徴とする請求項1記載のデータ転送装置。
- 前記転送条件は、前記記憶装置上の予め設定されたアドレス範囲に書き込みがあった場合であること特徴とする請求項1記載のデータ転送装置。
- 前記転送条件は、予め設定されたDMAの転送元アドレス範囲が前記キャッシュメモリのキャッシュフラッシュ対象範囲内であること特徴とする請求項1記載のデータ転送装置。
- データ転送対象となる記憶装置に制御コマンドをDMA転送するデータ転送装置において、
コマンド発行用のコマンドDMAコントローラとデータ転送のためのデータDMAコントローラを含む制御手段を備え、
前記制御手段は、前記コマンドDMAコントローラが前記記憶装置のコマンドレジスタに書き込む内容をDMA転送する前に、前記キャッシュメモリの内容をキャッシュフラッシュするか否かを判断し、キャッシュフラッシュを行う場合には、予め設定した時間を超えたとき、前記キャッシュメモリのキャッシュ内容を前記記憶装置に書き込む制御コマンドを発行し、
前記記憶装置は前記キャッシュメモリのキャッシュ内容を書き込むこと
を特徴とするデータ転送装置。 - 請求項1ないし8のいずれか1項に記載のデータ転送装置と、
記録媒体に画像を形成する画像形成手段と、
を備えていることを特徴とする画像形成装置。 - データ転送対象となる記憶装置に制御コマンドをDMA転送するデータ転送方法において、
コマンド発行用のコマンドDMAコントローラとデータ転送のためのデータDMAコントローラを含む制御手段を備え、
前記制御手段は、前記コマンドDMAコントローラが前記キャッシュメモリへのデータ書き込み指示のコマンドをDMA転送する前に、前記キャッシュメモリの内容をキャッシュフラッシュするか否かを判断し、キャッシュフラッシュを行う場合には、前記キャッシュメモリのキャッシュ内容を前記記憶装置に書き込む制御コマンドを発行し、
前記記憶装置は予め設定された転送条件に従って、前記キャッシュメモリのキャッシュ内容を書き込むこと
を特徴とするデータ転送方法。 - データ転送対象となる記憶装置に制御コマンドをDMA転送するデータ転送方法において、
コマンド発行用のコマンドDMAコントローラとデータ転送のためのデータDMAコントローラを含む制御手段を備え、
前記制御手段は、前記コマンドDMAコントローラが前記キャッシュメモリへのデータ書き込み指示のコマンドをDMA転送する前に、前記キャッシュメモリの内容をキャッシュフラッシュするか否かを判断し、キャッシュフラッシュを行う場合には、予め設定した時間を超えたとき、前記キャッシュメモリのキャッシュ内容を前記記憶装置に書き込む制御コマンドを発行し、
前記記憶装置は前記キャッシュメモリのキャッシュ内容を書き込むことを特徴とするデータ転送方法。 - 請求項10または11に記載のデータ転送制御方法をコンピュータで実行するためのコンピュータプログラム。
- 請求項12記載のコンピュータプログラムが、コンピュータによって読み出され、実行可能に記録された記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003140830A JP4148834B2 (ja) | 2003-05-19 | 2003-05-19 | データ転送装置、画像形成装置、データ転送制御方法、コンピュータプログラム及び記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003140830A JP4148834B2 (ja) | 2003-05-19 | 2003-05-19 | データ転送装置、画像形成装置、データ転送制御方法、コンピュータプログラム及び記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004342037A JP2004342037A (ja) | 2004-12-02 |
JP4148834B2 true JP4148834B2 (ja) | 2008-09-10 |
Family
ID=33529432
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003140830A Expired - Fee Related JP4148834B2 (ja) | 2003-05-19 | 2003-05-19 | データ転送装置、画像形成装置、データ転送制御方法、コンピュータプログラム及び記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4148834B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007058253A1 (ja) * | 2005-11-16 | 2007-05-24 | Nikon Corporation | 電子スチルカメラ |
JP2007241588A (ja) * | 2006-03-08 | 2007-09-20 | Kyocera Mita Corp | データ転送装置及び画像形成装置 |
JP2011008570A (ja) * | 2009-06-26 | 2011-01-13 | Buffalo Inc | ストレージ装置、情報処理システム、およびコンピュータプログラム |
JP2011087202A (ja) * | 2009-10-19 | 2011-04-28 | Sony Corp | 記憶装置およびデータ通信システム |
-
2003
- 2003-05-19 JP JP2003140830A patent/JP4148834B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004342037A (ja) | 2004-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5126595B2 (ja) | 画像処理装置及び画像処理システム | |
US20120120523A1 (en) | Command suspension in response, at least in part, to detected acceleration and/or orientation change | |
JP6875808B2 (ja) | 情報処理装置 | |
US6806882B2 (en) | Method of and apparatus for forming image | |
JP4148834B2 (ja) | データ転送装置、画像形成装置、データ転送制御方法、コンピュータプログラム及び記録媒体 | |
JP4245021B2 (ja) | ストレージ装置、ストレージシステム、ストレージ装置の制御方法 | |
US20160307585A1 (en) | Information processing apparatus, method of controlling the same, program and storage medium | |
JP2019220787A (ja) | 制御装置、画像形成装置、制御方法及び制御プログラム | |
JP2005115562A (ja) | フラッシュrom制御装置 | |
JP2004220575A (ja) | カード型メモリのインターフェース回路、その回路を搭載したasic、及びそのasicを搭載した画像形成装置 | |
US7042582B1 (en) | Printer and printer data processing method | |
US11687287B2 (en) | Control apparatus and information processing system | |
US11842066B2 (en) | Control apparatus and information processing system for providing a bridge apparatus between a host controller and a non-volatile storage medium to encrypt and decrypt data | |
JP2007280373A (ja) | データ処理装置、画像処理装置、画像形成装置及びコンピュータプログラム | |
JP3951084B2 (ja) | 記憶制御装置及び該記憶制御装置を有するプリンタ | |
JP4658796B2 (ja) | 画像形成装置 | |
JP2008005105A (ja) | 画像形成装置 | |
JP2010027140A (ja) | ハードディスクドライブ装置の読取装置及びハードディスクドライブ装置の読取装置を備えたコピー装置。 | |
JP5734469B2 (ja) | メモリ制御装置、メモリ制御方法、及びプログラム | |
JP2021074974A (ja) | 画像形成装置および画像形成装置の制御方法 | |
JP2022057869A (ja) | 制御装置及び情報処理システム | |
JP2022067916A (ja) | 制御装置および制御装置の制御方法 | |
JP2005173707A (ja) | キャッシュメモリ制御方法 | |
JP2023021707A (ja) | 情報処理装置、情報処理装置の制御方法、及びプログラム | |
JP2005258783A (ja) | データ転送装置、データ転送方法、画像形成装置及びオプションボード |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050711 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080304 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080318 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080519 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080610 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080624 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110704 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110704 Year of fee payment: 3 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080519 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120704 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120704 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130704 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |