JP2008310547A - 画像形成装置 - Google Patents

画像形成装置 Download PDF

Info

Publication number
JP2008310547A
JP2008310547A JP2007157037A JP2007157037A JP2008310547A JP 2008310547 A JP2008310547 A JP 2008310547A JP 2007157037 A JP2007157037 A JP 2007157037A JP 2007157037 A JP2007157037 A JP 2007157037A JP 2008310547 A JP2008310547 A JP 2008310547A
Authority
JP
Japan
Prior art keywords
data
transfer
command
register
dmac
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.)
Pending
Application number
JP2007157037A
Other languages
English (en)
Inventor
Naoya Ohashi
直弥 大橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2007157037A priority Critical patent/JP2008310547A/ja
Publication of JP2008310547A publication Critical patent/JP2008310547A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

【課題】データ転送時のエラーに伴う異常の発生を低減可能な画像形成技術を提供する。
【解決手段】ASIC11は、データが記憶されたHDD14を制御するHDC13を有し、HDC13は、コマンドDMAC13a、データDMAC13b及びリトライレジスタ13cを有する。コマンドDMAC13aは、HDD14に対してコマンドをDMA方式により転送する。データDMAC13bは、HDD14に対するデータの送受信をDMA方式により行う。リトライレジスタ13cは、データ転送のエラー時におけるデータの転送箇所を特定するためのものである。コマンドDMAC13a及びデータDMAC13bを介してHDD14からエンジン部3にデータを転送中にエラーが発生した場合、CPU10は、リトライレジスタ13cを用いて、コマンドDMAC13a及びデータDMAC13bを再設定して、データの転送をリトライする。
【選択図】 図1

Description

本発明は、画像形成エンジンを備える画像形成装置に関するものであり、特にHDD(Hard Disk Drive)に記憶されたデータを画像形成エンジンに転送する画像形成装置に関するものである。
従来より、画像形成エンジンを備える複写機等の画像形成装置では、コピーやプリントの画像形成処理を行う場合、HDD(Hard Disk Drive)に記憶された画像データを画像形成エンジンに転送する場合がある。このHDDなどのデバイスがATA/ATAPI規格に準拠している場合には、まず、データの書き込みや読み出しなどのコマンドをデバイスに対して転送し、その後、データの転送を行う。このデータ転送は、通常、画像形成装置に備わるCPU(Central Processing Unit)の負担を減らすため、DMA(Direct Memory Access)方式によりCPUを介さずにデータ転送を行うDMAコントローラ(以下、データDMACという)を用いて行っている。このデータDMACは、例えば、画像形成装置に備わるASIC(Application Specific Integrated Circuit)に搭載されたHDDコントローラ(以下、HDCという)に備えられる。また、コマンドの転送は、CPUが介在するPIO(Programmed I/O)転送により行っている。このコマンドの転送は、データ転送を1ブロック行うごとに発生する。このため、1ブロックの転送量が小さい場合には、コマンドのPIO転送が頻繁に発生し、CPUの負担がかなり大きくなる。このような問題を解決すべく、データDMACに加えて、コマンドをDMA方式により転送するDMAC(以下、コマンドDMACという)を備える画像形成装置が開発されている(例えば、特許文献1参照)。特許文献1の画像形成装置によれば、コマンドDMACを用いてコマンドの転送を行うことにより、CPUの負荷を軽減し、より高速なデータ転送を実現している。また、同じコマンドを連続して発行する場合には、データ転送のサイズに応じてパラメータを計算し、メモリ上のディスクリプタを読み出すことなくコマンドDMACによりコマンドの発行を行うことにより、メモリ消費量を小さくすることを可能にしている。
特開2001−282705号公報
しかしながら、特許文献1の画像形成装置においては、基本的に、コマンドDMACにより転送されるコマンドとデータDMACにより転送されるデータとは、1対1の関係には無い。データ転送の開始時にコマンドDMACにおいて必要なパラメータを一旦設定すると、その後はデータDMACにより転送されるデータサイズに応じて、コマンドのパラメータをHDCが自動的に計算してレジスタにセットし、これに応じてコマンドDMACがコマンドを発行するからである。このような場合、データ転送が正常に終了した場合は特に問題は無いが、仮にデータ転送中にエラーが発生した場合、データ転送がどこまで終了したかが判別できない恐れがある。このため、コマンドDMACにおいてパラメータを再度設定して、データ転送を最初からやり直す必要がある。HDDでは、1014ビットの割合でエラーが発生する可能性がある(約11分に1回の割合)。特にIDEのHDDに比べてSATAのHDDは、転送レートが高くなっており、また、シリアルでデータ転送を行うため、エラーが発生する割合が高く、データ転送のやり直しを行う頻度が多くなる。また、エラーが発生したときに転送中であったデータを特定できず、転送の必要のないデータの転送をやり直す恐れがあり、データ転送のやり直しに不必要に時間が掛かる恐れがある。このため、最悪の場合、データ転送が正常に終了せずに、コピーやプリントなどの処理でエラーが発生したり、出力する画像に異常が発生したりする恐れがある。
本発明は、上記に鑑みてなされたものであって、テータ転送時のエラーに伴う異常の発生を低減可能な画像形成装置を提供することを目的とする。
上述した課題を解決し、目的を達成するために、請求項1にかかる発明は、画像形成装置であって、装置全体を制御する制御手段と、データを記憶する記憶手段と、前記記憶手段に記憶されたデータをDMA(Direct Memory Access)方式により転送する第1転送手段と、前記第1転送手段が前記データを転送する際に前記記憶手段に対してコマンドを発行してこれをDMA方式により転送する第2転送手段と、前記第1転送手段が前記記憶手段から転送した前記データに対して画像処理を行う画像処理手段と、前記画像処理手段が画像処理を行った前記データを用いて画像を形成する画像形成手段と、前記第1転送手段が前記データを転送する際及び前記第2転送手段が前記コマンドを転送する際の少なくとも一方においてエラーが発生したときの前記データの転送箇所を特定する情報を記憶する記憶素子とを備え、前記制御手段は、前記第1転送手段が前記データを転送する際及び前記第2転送手段が前記コマンドを転送する際の少なくとも一方においてエラーが発生したとき、前記記憶素子に記憶された前記情報に基づいて、前記データの転送箇所を特定して、特定した転送箇所以降のデータの転送を前記第1転送手段に再開させると共に、前記コマンドの転送を前記第2転送手段に再開させることを特徴とする。
請求項2にかかる発明は、請求項1にかかる発明において、前記第1転送手段は、第1ディスクリプタと、当該第1ディスクリプタの先頭アドレスが設定された第1レジスタとを有し、前記制御手段は、前記データの転送を開始する際に、前記第1ディスクリプタに転送対象のデータの先頭アドレスを少なくとも設定し、前記第1レジスタに転送対象のデータのデータ量を示すサイズ情報を少なくとも設定し、前記第1転送手段を起動させることを特徴とする。
請求項3にかかる発明は、請求項2にかかる発明において、前記第2転送手段は、前記データのブロック毎に前記コマンドを前記記憶手段に対して発行しこれをDMA方式により転送し、前記エラーが発生したとき、前記記憶素子には、前記第1レジスタに設定された前記第1ディスクリプタの先頭アドレスと、前記エラーが発生したときの前記転送箇所を含む前記ブロックに含まれるデータであり且つ当該転送箇所以降のデータのデータ量を示すサイズ情報とが少なくとも設定され、前記制御手段は、前記エラーが発生したとき、前記記憶素子に設定された前記第1ディスクリプタの先頭アドレス及び前記サイズ情報を読み出すことにより前記データの転送箇所を特定し、前記第1ディスクリプタの先頭アドレスを前記第1ディスクリプタに再設定すると共に前記サイズ情報を前記第1レジスタに再設定して、前記データの転送を前記第1転送手段に再開させることを特徴とする。
請求項4にかかる発明は、請求項2又は請求項3にかかる発明において、前記第2転送手段は、前記データのブロック毎に前記コマンドを前記記憶手段に対して発行しこれをDMA方式により転送し、前記画像処理手段は、前記エラーが発生したとき、前記記憶素子に、前記第1レジスタに設定された前記第1ディスクリプタの先頭アドレスと、前記エラーが発生したときの前記転送箇所を含む前記ブロックに含まれるデータであり且つ当該転送箇所以降のデータのデータ量を示すサイズ情報とを少なくとも設定することを特徴とする。
請求項5にかかる発明は、請求項1乃至請求項4のいずれか一項にかかる発明において、前記第2転送手段は、第2ディスクリプタを有し、前記制御手段は、前記データの転送を開始する際に、前記第2ディスクリプタに、前記記憶手段に格納すべきコマンド情報を少なくとも設定し、前記第2転送手段を起動させることを特徴とする。
請求項6にかかる発明は、請求項5にかかる発明において、前記制御手段は、前記エラーが発生したとき、前記記憶素子に設定された前記コマンド情報を読み出して前記第2ディスクリプタに再設定して、前記コマンドの転送を前記第2転送手段に再開させることを特徴とする。
請求項7にかかる発明は、請求項5又は請求項6にかかる発明において、前記画像処理手段は、前記エラーが発生したとき、前記記憶素子に、前記第2ディスクリプタに設定された前記コマンド情報を少なくとも設定することを特徴とする。
請求項8にかかる発明は、請求項1乃至請求項7のいずれか一項にかかる発明において、前記記憶手段へのデータのアクセスを制御する記憶制御手段を更に備え、前記記憶制御手段が、前記第1転送手段、前記第2転送手段及び前記記憶素子のうち少なくとも1つを有することを特徴とする。
本発明によれば、データ転送時にエラーが発生したとき、データの転送箇所を特定して当該転送箇所以降のデータの転送を再開することにより、データの転送のやり直しに不必要に時間を掛けることがないため、テータ転送時のエラーに伴う異常の発生を低減することができる。
以下に添付図面を参照して、この発明にかかる画像形成装置の最良な実施の形態を詳細に説明する。
(1)構成
図1は、本実施の形態に係る画像形成装置のハードウェア構成を例示するブロック図である。画像形成装置1は、コントローラ2とエンジン部(Engine)3とをPCI(Peripheral Component Interconnect)バス4で接続した構成となる。コントローラ2は、画像形成装置1全体を制御する。エンジン部3は、プリンタエンジン等であり、たとえば白黒プロッタ、1ドラムカラープロッタ、4ドラムカラープロッタ、スキャナまたはファックスユニット等である。なお、このエンジン部3には、プロッタ等のいわゆるエンジン部分に加えて、誤差拡散やガンマ変換等の画像処理部分が含まれる。
コントローラ2は、CPU10と、2つのASIC11,12とを有する。ASIC11は、CPU10と、HDD14と、ローカルメモリ(MEM)15と接続される。ASIC12には、操作部19と、SD(Secure Digital Memory)16と、ROM(Read Only Memory)17と、NVRAM(Non Volatile Random Access Memory)18とが接続される。更に、ASIC12は、USB(Universal Serial Bus)30とネットワーク31とに接続される。ASIC11,12は、バス21を介して接続される。スロット20a〜20eは、各種サブシステムを接続するためのものである。
CPU10は、ROM17やHDD14に記憶された各種プログラムを実行することにより、画像形成装置1全体を制御する。
ASIC11,12は、ビデオ出力器(VOUT)や圧縮伸張器(CEP)やFIFOバッファなどの画像処理用のハードウェア要素を有する画像処理用途向けのIC(Integrated Circuit)である。ASIC11は、HDD14を制御するHDコントローラ(HDC)13を有する。HDC13は、コマンドDMAC13aと、データDMAC13bと、リトライレジスタ13cとを有する。データDMAC13bは、DMA方式によりHDD14からデータを読み出したりHDD14に対してデータを転送したりする。コマンドDMAC13aは、HDD14からのデータの転送時に当該データのブロック毎にHDD14に対してコマンドを発行してこれをDMA方式により転送する。尚、ブロックの単位は、所定のデータ量によるものであっても良いし、データに挿入されたマーカなどによるものであっても良い。リトライレジスタ13cは、データ転送時におけるエラーが発生した時のデータの転送箇所を特定するためのものである。これらの構成の詳細については後述する。HDD14は、画像データ、フォントデータ、フォームなどの各種データや各種プログラムを記憶する。MEM15は、バッファとして機能し、コピー処理時における画像データや、符号処理時における符号データなどを記憶する。
操作部19は、ユーザからの操作入力を受け付ける。ROM17は、各種プログラムや各種データを記憶する読み出し専用のメモリである。NVRAM18は、各種プログラムや各種データを一時的に記憶したり、プリント処理時に描画された画像データを記憶したりする、書き込み及び読み出し可能なメモリである。
ここで、HDD14におけるレジスタの構成について説明する。図2は、HDD14におけるレジスタの構成を例示する図である。同図に示されるように、HDD14は、データレジスタ91と、書き込み時にフィーチャレジスタとして機能し読み出し時にエラーレジスタとして機能するレジスタ92と、セクタカウントレジスタ93と、セクタナンバーレジスタ94と、シリンダローレジスタ95と、シリンダハイレジスタ96と、デバイスヘッドレジスタ97と、書き込み時にコマンドレジスタとして機能し読み出し時にステータスレジスタとして機能するレジスタ98とを有する。
次に、コマンドDMAC13aの構成について説明する。コマンドDMAC13aは、ディスクリプタとレジスタ群とを有する。図3は、コマンドDMAC13aの有するディスクリプタのデータ構成を例示する図である。同図に示されるディスクリプタ100は、ネクストディスクリプタポインタ101と、デバイスヘッド102と、シリンダハイ103と、シリンダロー104と、セクタナンバー105と、セクタカウント106と、コマンド107と、拡張セクタカウント108と、拡張セクタナンバー109と、nカウンタ111と、ワーク(WORK)112と、PMODE/CINT113とを有する。ネクストディスクリプタポインタ101には、次に参照すべきディスクリプタの値が設定される。尚、その値が「0」のとき、次のディスクリプタが無いことを示す。デバイスヘッド102にはHDD14のデバイスヘッドレジスタ97に格納すべき情報が設定される。シリンダハイ103にはHDD14のシリンダハイレジスタ96に格納すべき情報が設定される。シリンダロー104にはHDD14のシリンダローレジスタ95に格納すべき情報が設定される。セクタナンバー105にはHDD14のセクタナンバーレジスタ94に格納すべき情報が設定される。セクタカウント106にはHDD14のセクタカウント93に格納すべき情報が設定される。コマンド107にはHDD14のコマンドレジスタ98に格納すべき情報が設定される。拡張セクタカウント108にはHDD14のセクタカウント93に格納すべき情報が設定される。拡張セクタナンバー109にはHDD14のセクタナンバーレジスタ94に格納すべき情報が設定される。nカウンタ111にはディスクリプタ100が繰り返される回数が格納される。PMODE/CINT113には、このディスクリプタ100が終了したら一時停止することを示すフラグが設定され、ディスクリプタ100が終了してチェーンする時に割り込みを発生することを示すフラグが設定される。
図4は、コマンドDMAC13aの有するレジスタ群のデータ構成を例示する図である。同図に示されるレジスタ群200は、ディスクリプタ100の存在するアドレスが設定されるディスクリプタポインタレジスタ201とコントロールレジスタ202とを有する。コントロールレジスタ202には、要因関係と要因マスク関係及び実行関係のビットがある。要因のビットとしては完了を示すコンプリートビット203と一時停止を示すポーズビット204とエラーを示すエラービット205及びチェーンが起きたことを示すチェーンビット206を有する。また、それぞれに対応してマスクビットが存在し、マスクコンプリートビット207はコンプリート割り込みのマスク、マスクポーズビット208は一時停止割り込みのマスク、マスクエラービット209はエラー割り込みのマスク、マスクチェーンビット210はチェーン割り込みのマスクである。実行関係のビットとしては、一時停止を再開するための連続ビット211とコマンドDMAC13aそのものの動作を開始する実行ビット212を有する。
次に、データDMAC13bの構成について説明する。データDMAC13bも、コマンドDMAC13aと同様に、ディスクリプタとレジスタ群とを有する。図5は、データDMAC13bの有するディスクリプタのデータ構成を例示する図である。データDMAC13bの有するディスクリプタ300は、ネクストディスクリプタポインタ301と、対象となるデータのスタートアドレスが設定されるスタートアドレス302と、ラインアップ303と、ライン数が設定されるライン304と、nカウンタ305と、ワーク(WORK)306と、セル(sel)307と、イメージ(img)308と、PMODE/CINT309とを有する。
図6は、データDMAC13bの有するレジスタ群のデータ構成を例示する図である。同図に示されるレジスタ群400は、ディスクリプタ300の存在するアドレスが設定されるディスクリプタポインタレジスタ401と、メモリ幅が設定されるメモリウィズスレジスタ402と、画像幅が設定されるイメージウィズスレジスタ403と、コントロールレジスタ404とを有する。コントロールレジスタ404の構成は、コマンドDMAC13aの有するコントロールレジスタ202の構成と略同様であるため、その説明を省略する。
尚、データDMAC13bの構成や、コマンドDMAC13a及びデータDMAC13bへ情報の設定方法については、従来技術と同様であり、例えば、特開2001−282705号公報に示されるため、ここではその説明を省略する。
次に、リトライレジスタ13cの構成について説明する。図7は、リトライレジスタ13cのデータ構成を例示する図である。同図に示されるリトライレジスタ13cは、ディスクリプタポインタレジスタ500に加え、リトライデータDMACディスクリプタポインタレジスタ501と、リトライパラムレジスタ502〜507と、コントロールレジスタ508とを有する。リトライデータDMACディスクリプタポインタレジスタ501には、エラーが発生した時のデータDMAC13bのディスクリプタポインタが設定される。リトライパラムレジスタ502〜503には、エラーが発生した時のHDD14に転送したコマンド群が設定される。具体的には、リトライパラムレジスタ502には、図3に示したデバイスヘッド102と、シリンダハイ103と、シリンダロー104と、セクタナンバー105とに設定された情報が、デバイスヘッド502aと、シリンダハイ502bと、シリンダロー502cと、セクタナンバー502dとに設定される。リトライパラムレジスタ503には、図3に示したセクタカウント106と、コマンド107と、拡張セクタカウント108と、拡張セクタナンバー109とに設定された情報が、セクタカウント503aと、コマンド503bと、拡張セクタカウント503cと、拡張セクタナンバー503dと設定される。リトライパラムレジスタ504には、エラーが発生したときの転送箇所以降に転送すべきデータのライン数が設定される。リトライパラムレジスタ505には、エラーが発生したときの転送箇所のスタートアドレスが設定される。リトライパラムレジスタ506には、エラーが発生したときの転送箇所を含むブロックに含まれるデータであり且つ当該転送箇所以降のデータについてその画像幅の値が設定される。リトライパラムレジスタ507には、エラーが発生したときの転送箇所を含むブロックに含まれるデータであり且つ当該転送箇所以降のデータについてそのメモリ幅の値が設定される。コントロールレジスタ508の構成は図4に示したコントロールレジスタ202の構成と同様である。
尚、HDC13におけるデータの転送中は、リトライレジスタ13cの各値は不定である、もしくはリトライレジスタ13cへのアクセスを禁止するように制御する。エラーが発生したときに初めてリトライレジスタ13cの各値が反映されるものとする。
図8(a),(b)は、HDD14にアクセスするために必要なロジカルブロックアドレス(LBA)を各レジスタから求めるときの関係を示す図である。このLBAの計算方法には、デフォルトLBAモード(図8(a))と、拡張LBAモード(図8(b))との2種類が存在する。これらの計算方法については周知技術であるため、ここではその詳細な説明を省略する。
ここで、操作部19を介してコピー処理やプリント処理の指示入力を受け付け、HDD14に格納されたデータを用いて画像を印刷する処理の概略について説明する。図9は、HDD14に格納されたデータを用いて画像を印刷する処理の概略を示す図である。HDD14には、4色(C,M,Y,K)の画像が圧縮された符号データが記憶されているものとする。操作部19を介してコピー処理やプリント処理の指示入力が受け付けられると、ASIC11は、HDD14に格納された各色の符号データをHDC13を介して例えばMEM15などのメモリに読み出し、読み出された符号データをCEP11dで伸張しながらオンザフライでVOUT11eに備わるFIFOバッファ11fに出力する。このようにしてASIC11は、HDD14に格納されたデータに対して画像処理を行う。FIFOバッファ11fに出力されたデータはエンジン部3により読み出される。このようにしてHDD14からエンジン部3にデータが転送される。そしてエンジン部3は、ASIC11により画像処理が行われ転送されたデータを用いて画像を形成してこれを出力する。
以上のような画像処理において、操作部19を介してコピー処理やプリント処理の指示入力を受け付け、HDD14に格納されたデータをエンジン部3に転送するとき、CPU10は、コマンドDMAC13a及びデータDMAC13bのディスクリプタ及びレジスタ群を各々設定してこれらを起動させる。そして、コマンドDMAC13aは、HDD14へコマンドを発行し、データDMAC13bはHDD14からデータ転送を行う。更に、データ転送時にエラーが発生したとき、ASIC11は、コマンドDMAC13a及びデータDMAC13bに設定されている情報に基づいて、リトライレジスタ13cに情報を設定し、CPU10は、当該リトライレジスタ13cに設定された情報を読み出すことによりデータの転送箇所を特定し、当該読み出した情報に基づいて、コマンドDMAC13a及びデータDMAC13bのディスクリプタ及びレジスタ群を各々再設定する。このようにして、CPU10は、データ転送のリトライを行うためのコマンド及びデータの再設定を行う。尚、上述したHDD14からFIFOバッファ11fに対するデータとコマンドとがOPEという単位で管理され、キュー構造により処理されてキューとして複数蓄積されうる。そして、CPU10は、再設定したデータ及びコマンドに係るキュー(リトライキュー)の優先順位を変更する処理を行った後、データ転送のリトライを行う。
尚、キューの優先順位を変更するのは以下の理由による。データ転送のリトライを行う場合、リトライキューの他に、実行すべきキューがFIFOバッファ11fに既に存在する可能性が高い。FIFOバッファ11fにおける先入れ先出しのデータ処理方式によれば、リトライキューの優先順位が一番最後になる可能性が高い。このため、リトライキューの優先順位を変えて、一番最初に実行させる必要があるからである。以上のような理由により、CPU10は、リトライキューの優先順位が1番となるように、FIFOバッファ11fに存在する各キューの優先順位を変更する。
(2)動作
次に、画像形成装置1においてHDD14からエンジン部3へデータ転送を行う場合の処理の手順について説明する。図10は、HDD14からエンジン部3へデータ転送を行う場合の処理の手順を示す図である。CPU10は、画像形成装置1に接続されるHDD14に関するステータスをHDC13から読み出して(ステップS1)、当該HDD14についてbusy状態が全て解除されておりready状態になっているかを判断する(ステップS2)。当該判断結果が肯定的である場合、CPU10は、HDC13のデータDMAC13bのレジスタ群400のディスクリプタポインタレジスタ401にディスクリプタ300の先頭アドレスを設定する等各種設定を行うと共に、HDC13のコマンドDMAC13aのレジスタ群200のディスクリプタポインタレジスタ201にディスクリプタ100の先頭アドレスを設定する等各種設定を行う(ステップS3)。更に、CPU10が、データDMAC13bのコントロールレジスタ404の実行ビット(EXEC)に「1」を書き込むと、データDMAC13bが起動する(ステップS4)。また、CPU10が、コマンドDMAC13aのコントロールレジスタ202の実行ビット(EXEC)212に「1」を書き込むと、コマンドDMAC13aが起動する(ステップS5)。コマンドDMAC13aは起動すると、レジスタ群200のディスクリプタポインタレジスタ201に設定されているディスクリプタの先頭アドレスを参照してディスクリプタ100を読み出し、当該ディスクリプタ100に設定されている情報を用いて、HDD14にフィーチャレジスタ92,セクタカウントレジスタ93,セクタナンバーレジスタ94,シリンダローレジスタ95,シリンダハイレジスタ96及びデバイスヘッドレジスタ97の順番で書き込み、最後にコマンドレジスタ98にコマンドを書き込む。コマンドレジスタ98にコマンドを書き込むとHDD14は動作を開始する。この状態で、データDMAC13bがコマンドで示された所定のセクタ数のデータの転送を行う(ステップS6)。このデータ転送中にエラーが発生せず、コマンドで示されたセクタ数のデータ転送が正常に終了した場合(ステップS7:NO)且つ全てのデータの転送が終了していない場合(ステップS8:NO)、HDC13はコマンドDMAC13aに対して割り込みを発生させる。そして、HDC13は、データDMAC13bのディスクリプタ300のライン304に設定されたライン数、データDMAC13bのレジスタ群400のメモリウィズスレジスタ402に設定されたメモリ幅及びイメージウィズスレジスタ403に設定された画像幅から、データの転送サイズを計算し、これに基づいて、コマンドDMAC13aの各レジスタに情報を再設定する。コマンドDMAC13aはHDD14からの割り込みが発生する度にディスクリプタ100の内容を読み出してHDD14へコマンドを発行する。その後、上述したステップS6に進み、データDMAC13bがコマンドで示された所定のセクタ数のデータの転送を行う。尚、データ転送中にエラーが発生した場合(ステップS7:YES)、CPU10は、リトライ処理を行う(ステップS10)。
図11は、リトライ処理の詳細な処理の手順を示すフローチャートである。CPU10は、エラーの発生を検出すると、エラーの発生しているHDD14についてそのエラー要因をHDC13から読み出し、当該エラー要因に基づいて、当該エラーに対処するためのエラー処理を行う(ステップS100)。また、ASIC11は、エラーが発生したときにコマンドDMAC13a及びデータDMAC13bに設定された情報を用いて、エラーが発生したときの転送箇所を含むブロックに含まれるデータであり且つ当該転送箇所以降のデータのデータ量を求め、これらの情報及びデータ量を用いて、リトライレジスタ13cに、図7に示したような情報を各々設定する。そして、CPU10は、データDMAC13bのコントロールレジスタ404の実行ビット及びコマンドDMAC13aのコントロールレジスタ202の実行ビット212に「0」を各々書き込み、データDMAC13b及びコマンドDMAC13aを停止させる(ステップS101)。次いで、CPU10は、リトライレジスタ13cのリトライデータDMACディスクリプタポインタ501及びリトライパラムレジスタ502〜507に設定された情報を読み出す(ステップS102)。そして、CPU10は、ステップS102で読み出した情報を用いて、コマンドDMAC13a及びデータDMAC13bに情報を再設定する(ステップS103)。このステップS103の処理の詳細については後述する。
その後、CPU10は、コマンドDMAC13a及びデータDMAC13bに情報を再設定した後、キューの優先順位を変更する(ステップS104)。即ち、CPU10は、情報を再設定したコマンドDMAC13a及びデータDMAC13bのキューの優先順位が1番となるように各キューの優先順位を変更する。次いで、CPU10は、ソフトスイッチに「1」を書き込んでソフトウェアをリセットし(ステップS105)、ハードスイッチに「1」を書き込んでハードウェアをリセットする(ステップS106)。その後、CPU10は、ハードスイッチに「1」を書き込んでハードウェアのリセットを解除し(ステップS107)、ソフトスイッチに「1」を書き込んでソフトウェアのリセットを解除する(ステップS108)。
その後、図10に戻り、CPU10は、ステップS4以降の処理を行い、データ転送を行う処理を再開する。この結果、エラーが発生した時のデータの転送がリトライされる。以降、エラーが発生しなければ、所定のセクタ数毎のデータの転送が繰り返し行われる。そして、全てのデータの転送が終了すると(ステップS8:YES)、その旨(COMPLETE)を示す割り込みを発生させる。
次に、ステップS103で行うコマンドDMAC13a及びデータDMAC13bに情報を再設定する処理の詳細な手順について説明する。図12は、コマンドDMAC13a及びデータDMAC13bに情報を再設定する処理の詳細な手順を示すフローチャートである。CPU10は、まず、再設定するコマンドDMAC13aのディスクリプタ100及びデータDMAC13bのディスクリプタ300のためのメモリ領域を確保する(ステップS1030)。そして、CPU10は、図11のステップS102で読み出したリトライレジスタ13cのリトライパラムレジスタ502のデバイスヘッド502aと、シリンダハイ502bと、シリンダロー502cと、セクタナンバー502dとに各々設定された情報を、コマンドDMAC13aのディスクリプタ100のデバイスヘッド102と、シリンダハイ103と、シリンダロー104と、セクタナンバー105とに各々書き込む(ステップS1031)。また、CPU10は、リトライレジスタ13cのリトライパラムレジスタのセクタカウント503aと、コマンド503bと、拡張セクタカウント503cと、拡張セクタナンバー503dと各々設定された情報を、コマンドDMAC13aのディスクリプタ100のセクタカウント106と、コマンド107と、拡張セクタカウント108と、拡張セクタナンバー109とに各々書き込む(ステップS1032)。また、CPU10は、リトライレジスタ13cのリトライパラムレジスタ504を、データDMAC13bのディスクリプタ300のライン304に書き込む(ステップS1033)。また、CPU10は、リトライレジスタ13cのリトライパラムレジスタ505を、データDMAC13bのディスクリプタ300のスタートアドレス302に書き込む(ステップS1034)。また、CPU10は、リトライレジスタ13cのリトライパラムレジスタ506を、データDMAC13bのレジスタ群400のメモリウィズスレジスタ402に書き込み、リトライレジスタ13cのリトライパラムレジスタ507を、データDMAC13bのレジスタ群400のイメージウィズスレジスタ403に書き込み、リトライレジスタ13cのリトライデータDMACディスクリプタポインタ501を、データDMAC13bのレジスタ群400のディスクリプタポインタ401に書き込む(ステップS1035)。
以上のような構成によれば、データ転送中にエラーが発生したときに、データの転送箇所を特定して、特定した転送箇所を含むブロックに含まれるデータであり且つ当該転送箇所以降のデータの転送をリトライすることにより、リトライするデータを必要最小限にすることができる。また、以上のようにして、データ転送のエラーが発生したときに即座にデータ転送のリトライを行うことにより、エンジン部3にバッファを備えず、HDD14から転送されたデータをエンジン部3においてVOUT11eへ逐次出力する場合に、リトライによるデータ転送の遅延による影響を最小限に抑えることができる。例えば、上述した4色(C,M,Y,K)全ての符号データの転送が完了する前に先行してVOUT11eへ出力する先出し方式において、データの転送時にエラーが発生した場合、従来では、エラー発生時におけるデータ転送箇所を特定できず、必要以上のデータの転送をリトライする可能性があった。例えば、一番初めに転送される色の次に転送される色の符号データの転送時にエラーが発生した場合、エラーの発生したタイミングやデータ量によっては、リトライによるデータ転送に必要以上に時間が掛かることになる。即ち、本来行われるべきデータ転送の遅延が大きい場合、その色を出力できない恐れがあり、出力される画像の異常が発生する恐れがあった。しかし、本実施の形態においては、リトライによるデータ転送の遅延時間を、コマンドDMAC13a及びデータDMAC13bを再設定する時間に略抑えることができるため、出力される画像の異常の発生を抑えることができる。
[変形例]
また、上述した各実施の形態に限定されるものではなく、以下に例示するような種々の変形が可能である。
<変形例1>
上述した実施の形態においては、画像形成装置1は、リトライレジスタ13cをASIC11の有するHDC13内に備えるように構成した。しかし、画像形成装置1は、リトライレジスタ13cをASIC11とHDD14との間に備えるように構成しても良い。
また、画像形成装置1がリトライレジスタ13cを備えず、データDMAC13bとコマンドDMAC13aとを相関させてソフトウェアのみによりエラー発生時のデータ転送箇所を特定するように構成しても良い。
従来技術においては、ブロック毎のデータとコマンドとの相関関係はあるものの、転送1回毎のデータとコマンドとが必ずしも相関付けされているわけではなく、コマンドには、1回に転送可能なデータ量以上のデータが相関付けされている。そして、基点となる最初の必要なパラメータ(LBA等)をコマンドDMAC13aにより1回だけ設定し、データDMAC13bによりデータ転送を開始すると、コマンドに関する設定はHDC13により自動的に行うため、コマンドDMAC13aとデータDMAC13bとの相関がなくなり、データ転送中にエラーが発生した場合は、どこまでのデータの転送が終了したのかが判断できず、コマンドに対応するデータの最初からデータDMAC13bとコマンドDMAC13aとを再設定し、データ転送をやり直さなければならない。このため、本変形例においては、1回に転送可能なデータ量の1つのデータに対して1つのコマンドを相関付けるように構成する。図13は、コマンドDMAC13aにおけるコマンドとデータDMAC13bにおけるデータとの相関関係を模式的に示した図であり、(a)は従来技術における相関関係を示し、(b)は本変形例における相関関係を示す。本変形例においては、具体的には、例えば、1回に転送するデータ量の最大量(例えば、非BigDriveでは256セクタ、BigDriveでは65536セクタ)以下のデータをデータDMAC13bに書き込む。
図14は、本変形例の画像形成装置1においてHDD14からエンジン部3へデータ転送を行う場合の処理の手順を示すフローチャートである。CPU10は、上述のステップS1〜S5の処理を行った後、データDMAC13b及びコマンドDMAC13aが起動すると、データDMAC13bが、上述のように設定されたデータ量のデータの転送を行う(ステップS6´)。ここでのデータ転送には、CPU10は関与せず、データDMAC13bが、1回のデータ転送で転送可能なデータ量のデータの転送を逐次行う。そして、全てのデータの転送が終了すると、その旨(COMPLETE)を示す割り込みを発生させる(ステップS11)。
以上のような構成によれば、エラーが発生したときのデータの転送箇所の特定が容易であり、必要最低限のデータ転送のみのリトライが可能である。
<変形例2>
上述した実施の形態においては、画像形成装置1はHDDを1つ備える構成としたが、HDDを複数備える構成であっても良い。
<変形例3>
上述した実施の形態においては、リトライレジスタ13cに、エラーが発生したときの特定した転送箇所を含むブロックに含まれるデータであり且つ当該転送箇所以降のデータのデータ量を示すサイズ情報として、ライン数、メモリ幅及び画像幅を用いたが、本実施の形態においてはこれに限らない。
以上のように、本発明は、画像形成エンジンを備える画像形成装置に有用であり、特にHDDに記憶されたデータを画像形成エンジンに転送する画像形成装置に用いて好適である。
本発明の一実施の形態に係る画像形成装置のハードウェア構成を例示するブロック図である。 同実施の形態に係るHDD14におけるレジスタの構成を例示する図である。 同実施の形態に係るコマンドDMAC13aの有するディスクリプタのデータ構成を例示する図である。 同実施の形態に係るコマンドDMAC13aの有するレジスタ群のデータ構成を例示する図である。 同実施の形態に係るデータDMAC13bの有するディスクリプタのデータ構成を例示する図である。 同実施の形態に係るデータDMAC13bの有するレジスタ群のデータ構成を例示する図である。 同実施の形態に係るリトライレジスタ13cのデータ構成を例示する図である。 同実施の形態に係るHDD14にアクセスするために必要なロジカルブロックアドレス(LBA)を各レジスタから求めるときの関係を示し、(a)は、デフォルトLBAモードを示し、(b)は、拡張LBAモードを示す図である。 同実施の形態に係るHDD14に格納されたデータを用いて画像を印刷する処理の概略を示す図である。 同実施の形態に係るHDD14からエンジン部3へデータ転送を行う場合の処理の手順を示す図である。 同実施の形態に係るリトライ処理の詳細な処理の手順を示すフローチャートである。 同実施の形態に係るコマンドDMAC13a及びデータDMAC13bに情報を再設定する処理の詳細な手順を示すフローチャートである。 本発明の変形例に係るコマンドDMAC13aにおけるコマンドとデータDMAC13bにおけるデータとの相関関係を模式的に示した図であり、(a)は従来技術における相関関係を示し、(b)は本変形例における相関関係を示す。 同変形例の画像形成装置1においてHDD14からエンジン部3へデータ転送を行う場合の処理の手順を示すフローチャートである。
符号の説明
1 画像形成装置
2 コントローラ
3 エンジン部(画像形成手段)
4 PCIバス
10 CPU(制御手段)
11 ASIC(画像処理手段)
12 ASIC(画像処理手段)
13 HDC
13a コマンドDMAC(第2転送手段)
13b データDMAC(第1転送手段)
13c リトライレジスタ(記憶素子)
14 HDD
15 MEM
16 SD
17 ROM
18 NVRAM
19 操作部
21 バス
30 USB
31 ネットワーク

Claims (8)

  1. 装置全体を制御する制御手段と、
    データを記憶する記憶手段と、
    前記記憶手段に記憶されたデータをDMA(Direct Memory Access)方式により転送する第1転送手段と、
    前記第1転送手段が前記データを転送する際に前記記憶手段に対してコマンドを発行してこれをDMA方式により転送する第2転送手段と、
    前記第1転送手段が前記記憶手段から転送した前記データに対して画像処理を行う画像処理手段と、
    前記画像処理手段が画像処理を行った前記データを用いて画像を形成する画像形成手段と、
    前記第1転送手段が前記データを転送する際及び前記第2転送手段が前記コマンドを転送する際の少なくとも一方においてエラーが発生したときの前記データの転送箇所を特定する情報を記憶する記憶素子とを備え、
    前記制御手段は、前記第1転送手段が前記データを転送する際及び前記第2転送手段が前記コマンドを転送する際の少なくとも一方においてエラーが発生したとき、前記記憶素子に記憶された前記情報に基づいて、前記データの転送箇所を特定して、特定した転送箇所以降のデータの転送を前記第1転送手段に再開させると共に、前記コマンドの転送を前記第2転送手段に再開させる
    ことを特徴とする画像形成装置。
  2. 前記第1転送手段は、第1ディスクリプタと、当該第1ディスクリプタの先頭アドレスが設定された第1レジスタとを有し、
    前記制御手段は、前記データの転送を開始する際に、前記第1ディスクリプタに転送対象のデータの先頭アドレスを少なくとも設定し、前記第1レジスタに転送対象のデータのデータ量を示すサイズ情報を少なくとも設定し、前記第1転送手段を起動させる
    ことを特徴とする請求項1に記載の画像形成装置。
  3. 前記第2転送手段は、前記データのブロック毎に前記コマンドを前記記憶手段に対して発行しこれをDMA方式により転送し、
    前記エラーが発生したとき、前記記憶素子には、前記第1レジスタに設定された前記第1ディスクリプタの先頭アドレスと、前記エラーが発生したときの前記転送箇所を含む前記ブロックに含まれるデータであり且つ当該転送箇所以降のデータのデータ量を示すサイズ情報とが少なくとも設定され、
    前記制御手段は、前記エラーが発生したとき、前記記憶素子に設定された前記第1ディスクリプタの先頭アドレス及び前記サイズ情報を読み出すことにより前記データの転送箇所を特定し、前記第1ディスクリプタの先頭アドレスを前記第1ディスクリプタに再設定すると共に前記サイズ情報を前記第1レジスタに再設定して、前記データの転送を前記第1転送手段に再開させる
    ことを特徴とする請求項2に記載の画像形成装置。
  4. 前記第2転送手段は、前記データのブロック毎に前記コマンドを前記記憶手段に対して発行しこれをDMA方式により転送し、
    前記画像処理手段は、前記エラーが発生したとき、前記記憶素子に、前記第1レジスタに設定された前記第1ディスクリプタの先頭アドレスと、前記エラーが発生したときの前記転送箇所を含む前記ブロックに含まれるデータであり且つ当該転送箇所以降のデータのデータ量を示すサイズ情報とを少なくとも設定する
    ことを特徴とする請求項2又は請求項3に記載の画像形成装置。
  5. 前記第2転送手段は、第2ディスクリプタを有し、
    前記制御手段は、前記データの転送を開始する際に、前記第2ディスクリプタに、前記記憶手段に格納すべきコマンド情報を少なくとも設定し、前記第2転送手段を起動させる
    ことを特徴とする請求項1乃至請求項4のいずれか一項に記載の画像形成装置。
  6. 前記制御手段は、前記エラーが発生したとき、前記記憶素子に設定された前記コマンド情報を読み出して前記第2ディスクリプタに再設定して、前記コマンドの転送を前記第2転送手段に再開させる
    ことを特徴とする請求項5に記載の画像形成装置。
  7. 前記画像処理手段は、前記エラーが発生したとき、前記記憶素子に、前記第2ディスクリプタに設定された前記コマンド情報を少なくとも設定する
    ことを特徴とする請求項5又は請求項6に記載の画像形成装置。
  8. 前記記憶手段へのデータのアクセスを制御する記憶制御手段を更に備え、
    前記記憶制御手段が、前記第1転送手段、前記第2転送手段及び前記記憶素子のうち少なくとも1つを有する
    ことを特徴とする請求項1乃至請求項7のいずれか一項に記載の画像形成装置。
JP2007157037A 2007-06-14 2007-06-14 画像形成装置 Pending JP2008310547A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007157037A JP2008310547A (ja) 2007-06-14 2007-06-14 画像形成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007157037A JP2008310547A (ja) 2007-06-14 2007-06-14 画像形成装置

Publications (1)

Publication Number Publication Date
JP2008310547A true JP2008310547A (ja) 2008-12-25

Family

ID=40238098

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007157037A Pending JP2008310547A (ja) 2007-06-14 2007-06-14 画像形成装置

Country Status (1)

Country Link
JP (1) JP2008310547A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9742958B2 (en) 2015-06-15 2017-08-22 Ricoh Company, Ltd. Image processing system and method for transferring a parameter by different transfer modes

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9742958B2 (en) 2015-06-15 2017-08-22 Ricoh Company, Ltd. Image processing system and method for transferring a parameter by different transfer modes

Similar Documents

Publication Publication Date Title
US8661209B2 (en) Data processing apparatus, data processing method, and computer-readable recording medium for writing and reading data to and from a storage
US20120137170A1 (en) Information processing apparatus, control method of the information processing apparatus, and recording medium
JP2018120490A (ja) メモリアクセスシステム、その制御方法、プログラム、及び画像形成装置
US9172839B2 (en) Image forming apparatus, control method and storage medium
US7552362B2 (en) Bridge, error notification method therefor and system
JP2006113689A (ja) バスブリッジ装置およびデータ転送方法
US20180182059A1 (en) Information processing apparatus and communication control method having communication mode based on function
JP4928497B2 (ja) 画像処理装置、画像処理方法、画像処理プログラム及び記憶媒体
JP4829408B2 (ja) 画像処理方法及び画像処理装置
JP2007122369A (ja) データ処理装置及びデータ処理方法
JP7024621B2 (ja) 制御装置、画像形成装置、制御方法及び制御プログラム
US8526039B2 (en) Image processing apparatus, and control method thereof and program
JP2008310547A (ja) 画像形成装置
JP2003208394A (ja) 情報処理システム、インタフェース装置、情報処理装置、情報記憶装置
CN107544761B (zh) 图像形成装置及信息处理方法
JP2009048298A (ja) 情報処理装置、情報処理方法、当該情報処理方法を実行するためのプログラム及び当該プログラムを記録した媒体、並びにdmaコントローラ、dma転送方法、当該dma転送方法を実行するためのプログラム及び当該プログラムを記録した媒体
JP2006018642A (ja) Dma転送制御装置
JP2007280373A (ja) データ処理装置、画像処理装置、画像形成装置及びコンピュータプログラム
JP2003063118A (ja) 記録装置、インタフェース制御装置およびインタフェース制御方法
JP2005258783A (ja) データ転送装置、データ転送方法、画像形成装置及びオプションボード
JP5780768B2 (ja) 情報処理装置、その制御方法、およびプログラム
US20200288031A1 (en) Information processing apparatus equipped with storage device, control method therefor, and storage medium
JP4671357B2 (ja) 画像転送方法,装置および画像形成装置
JP2016154001A (ja) 画像処理装置、画像処理用データ転送制御方法、及び画像処理用データ転送制御プログラム
JP2021074974A (ja) 画像形成装置および画像形成装置の制御方法