JP2007334555A - データ転送装置と電子装置 - Google Patents

データ転送装置と電子装置 Download PDF

Info

Publication number
JP2007334555A
JP2007334555A JP2006164483A JP2006164483A JP2007334555A JP 2007334555 A JP2007334555 A JP 2007334555A JP 2006164483 A JP2006164483 A JP 2006164483A JP 2006164483 A JP2006164483 A JP 2006164483A JP 2007334555 A JP2007334555 A JP 2007334555A
Authority
JP
Japan
Prior art keywords
data transfer
descriptor
command
data
hdd
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
JP2006164483A
Other languages
English (en)
Inventor
Takumi Komori
匠 小守
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 JP2006164483A priority Critical patent/JP2007334555A/ja
Publication of JP2007334555A publication Critical patent/JP2007334555A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

【課題】 コマンド発行型記憶媒体へのデータの再転送を行う場合におけるCPUの負担の低減とパフォーマンス低下の軽減を図る。
【解決手段】 ディスクリプタ制御部62は、HDDへのデータ転送の制御に必要なディスクリプタを取得し、その中のコマンドをコマンド発行制御部61によりHDDへ転送した後、上記ディスクリプタ中のパラメータと上記コマンドの転送によってHDDから発行されるコマンドに基づいてデータ転送制御部63により上記データ転送を制御する。また、上記ディスクリプタをディスクリプタ保持部72に保持し、通信エラー検出時に、リトライ制御部71が、そのディスクリプタ中のコマンド,パラメータをコマンド発行制御部61,データ転送制御部63へ送信して上記データ転送の制御を再度行わせる。
【選択図】 図5

Description

この発明は、コマンド発行型記憶媒体へのデータ転送を行うデータ転送装置、およびそれを有するスキャナ装置,プリンタ装置,又はデジタル複写機等の電子装置に関し、特にコマンド発行型記憶媒体へのデータの再転送を行う場合におけるCPUの負担を低減したり、パフォーマンス低下を軽減するための技術に関する。
例えば、デジタル複合機(以下「MFP」ともいう)では、スキャナ装置(画像入力部)によって読み取った原稿の画像をデジタル画像信号に変換した後、このデジタル画像信号を出力可能な画像信号に変換してPCIバス等の汎用バスを介してメモリに格納し、出力時にメモリから画像信号を読み出して汎用バス経由でプリンタエンジン(画像出力装置)に送ることによって用紙上に複写画像を形成したり、デジタル画像信号を出力可能に変換した画像信号を一旦ハードディスク等の記憶媒体(コマンド発行型記憶媒体)に格納し、出力時に記憶媒体からメモリに1ページあるいは複数ページ分の画像信号を転送した後、この画像信号をプリンタエンジン(画像出力部)に送ることによって用紙上に複写画像を形成するようにしている。
このようなMFPでは、デジタル画像信号等のデータを高速で転送するために、例えば図9に示すように、データをDMA(Direct Memory Access)転送するDMAコントローラであるデータDMAコントローラ(以下「データDMAC」と略称する)111を含むASIC(Application Specific Integrated Circuit)110を使用したコントローラボード100を備えている。
このコントローラボード100では、ASIC110のデータDMAC111を使用してデータを転送するとき、CPU101が、メモリ102の転送開始アドレスや転送するデータ数などの入出力制御情報をASIC110内のデータDMAC111に与え、記憶媒体(以下「インタフェース」を「I/F」という)112を介してコマンド発行型記憶媒体(以下単に「記憶媒体」ともいう)121にコマンドを発行するだけで、データ転送には介在しないで済む。そして、1回のDMA転送で1ブロック単位でデータを転送するようにしている。
しかしながら、CPU101は以下の(1)(2)に示す処理(図10参照)を行っているため、全体のデータ量が非常に多く、1ブロックのサイズが小さい場合、(1)(2)の処理に関与する回数も増えて、CPU101の負担がかなり多くなる。
(1)1ブロック転送毎に、データDMAC111にコマンドを発行する。
(2)1ブロック転送終了する毎に、記憶媒体121から発生する転送終了割り込み信号に対する処理(割り込み処理)を行う。
そこで、例えば図11に示すように、ASIC110に、データDMAC111の他に、コマンドをDMA転送するDMAコントローラであるコマンドDMAコントローラ(以下「コマンドDMAC」と略称する)113を設け、上述のコマンド発行および割り込み処理をそのコマンドDMAC113に行わせることにより、例えば図12に示すように、CPU101の負担を低減できるようにしたものも提案されている(例えば特許文献1参照)。
特開2001−282705号公報
ところで、記憶媒体に代表されるHDD(ハードディスク装置)は、近年、転送速度向上のため、I/Fのシリアル化(Serial・ATA)が進んでいる。
Serial・ATAは、Ultra・ATAなどの従来のATA仕様で採用されていたパラレル転送方式を、シリアル転送方式に変更したものである。また、Serial・ATAは、Ultra・ATAとソフト互換性を保ちつつ、I/F転送速度が1.5Gbps(150MB/s)まで向上する。なお、Ultra・ATAは、Max・133MB/s(Ultra・ATA/133)である。
Serial・ATA規格では、3Gbps、更には6Gbpsに引き上げられる予定もある。
しかしながら、I/Fをシリアル化したシステム(データ転送装置)を構築する上でビットエラーに注意が必要である。
ここで、伝送品質の劣化により受信端でパルスの消滅や不要なパルスが発生することをビットエラーという。また、送出したビット数に対して受信端でいくつビットエラーが生じたかを定量化したものをビットエラーレートという。以後、ビットエラーを通信エラーともいう。
Serial・ATA規格において、ビットエラーレートは10(−12)と定義されている。これは10(12乗)ビット転送して1bitエラーが発生する可能性があるということである。時間で換算すれば、約11分に1回通信エラーが発生することと等価である(10(12乗)/1.5G=約11分)。この場合、システム的に大きなパフォーマンス低下につながる。シリアルATA規格では、通信エラーが発生した場合には、コマンド再発行が必要である。
図11に示したデータ転送装置において、例えば記憶媒体I/F112がシリアルATAであった場合、コマンドDMAC113が発行する総コマンドの転送量とデータDMAC111が転送するデータ転送量の相関はあるが、各コマンドとデータ位置の相関がない転送が可能であり、例えば図13に示すような転送時、通信エラー(図中×)が発生した場合、コマンドとデータ転送の位置に相関がないため、最初から転送をやり直す必要がある。この場合、システム的に大きなパフォーマンス低下につながる。
この発明は、上記の点に鑑みてなされたものであり、コマンド発行型記憶媒体へのデータ転送を行うデータ転送装置およびそれを用いた電子装置において、コマンド発行型記憶媒体へのデータの再転送を行う場合におけるCPUの負担の低減とパフォーマンス低下の軽減を図ることを目的とする。
この発明は、上記の目的を達成するため、データ転送装置およびそれを備えた電子装置を提供する。
請求項1の発明によるデータ転送装置は、コマンド発行型記憶媒体へのデータ転送を行うデータ転送装置であって、上記データ転送の制御に必要なディスクリプタを取得するディスクリプタ取得手段と、該ディスクリプタ取得手段によって取得した上記ディスクリプタに含まれている所要のコマンドを上記コマンド発行型記憶媒体へ転送するコマンド転送制御手段と、上記ディスクリプタ取得手段によって取得した上記ディスクリプタに含まれているパラメータと上記所要のコマンドの転送によって上記コマンド発行型記憶媒体から発行されるコマンドとに基づいて上記データ転送を制御するデータ転送制御手段とを設けたものである。
請求項2の発明によるデータ転送装置は、請求項1のデータ転送装置において、上記ディスクリプタを保持するディスクリプタ保持手段と、該ディスクリプタ保持手段に保持されている上記ディスクリプタに含まれている上記コマンドを上記コマンド発行制御手段へ、該ディスクリプタに含まれている上記パラメータを上記データ転送制御手段へそれぞれ送信して上記データ転送の制御を再度行わせるリトライ制御を実行するリトライ制御手段とを設けたものである。
請求項3の発明によるデータ転送装置は、請求項2のデータ転送装置において、上記コマンド発行型記憶媒体から発行されるエラーを検出するエラー検出手段を設け、上記リトライ制御手段が、該エラー検出手段によってエラーが検出された場合に、上記リトライ制御を実行するものである。
請求項4の発明によるデータ転送装置は、請求項3のデータ転送装置において、上記リトライ制御手段が、上記リトライ制御を上記エラー検出手段によってエラーが検出されている間繰り返し実行し、その実行回数が予め設定された所定回数に達した場合には、上記リトライ制御を停止するものである。
請求項5の発明によるデータ転送装置は、請求項3又は4のデータ転送装置において、上記リトライ制御手段が、上記リトライ制御を上記エラー検出手段によってエラーが検出されている間繰り返し実行し、その実行回数が予め設定された所定回数に達した場合には、エラーが発生した旨を外部に通知するものである。
請求項6の発明によるデータ転送装置は、請求項1〜5のいずれかのデータ転送装置を備え、該データ転送装置によって上記コマンド発行型記憶媒体へのデータ転送を行わせるようにしたものである。
請求項7の発明によるデータ転送装置は、請求項6の電子装置において、上記コマンド発行型記憶媒体とは異なるメモリを備え、上記データ転送装置の上記データ転送制御手段を、上記メモリから上記コマンド発行型記憶媒体へのデータ転送を制御する手段としたものである。
請求項8の発明によるデータ転送装置は、請求項7の電子装置において、上記コマンド発行型記憶媒体をハードディスク装置としたものである。
請求項9の発明によるデータ転送装置は、請求項7又は8の電子装置において、上記メモリ上で上記ディスクリプタを作成するディスクリプタ作成手段を設け、上記データ転送装置の上記ディスクリプタ取得手段を、上記メモリから上記ディスクリプタを取得する手段としたものである。
この発明によれば、データ転送装置又はそれを備えた電子装置が、コマンド発行型記憶媒体へのデータ転送の制御に必要なディスクリプタをディスクリプタ取得手段によって取得し、そのディスクリプタに含まれている所要のコマンドをコマンド転送制御手段によって上記コマンド発行型記憶媒体へ転送した後、上記ディスクリプタに含まれているパラメータと上記所要のコマンドの転送によって上記コマンド発行型記憶媒体から発行されるコマンドとに基づいてデータ転送制御手段によって上記データ転送を制御するので、例えば上記ディスクリプタを保持しておき、そのディスクリプタに含まれている上記コマンドを上記コマンド発行制御手段へ、そのディスクリプタに含まれている上記パラメータを上記データ転送制御手段へそれぞれ送信して上記データ転送の制御を再度行わせるリトライ制御を実行することにより、コマンド発行型記憶媒体からのエラー(通信エラー)の発行等によりそのコマンド発行型記憶媒体へのデータの再転送を行う場合におけるCPUの負担の低減とパフォーマンス低下の軽減を図ることができる。
以下、この発明を実施するための最良の形態を図面に基づいて具体的に説明する。
〔MFPの構成例〕
まず、この発明の実施形態であるデータ転送装置を備えた電子装置であるデジタル複合機(以下「MFP」ともいう)の構成例について図1を参照して説明する。ここでは、コマンド発行型記憶媒体として特定のサイズ単位でのアクセスが必要なHDDを用いるものとする。
図1は、この発明の実施形態であるデータ転送装置を備えたMFPの構成例を示すブロック図である。
このMFPは、コントローラ10とエンジン20と操作部30とを備えている。それらのうち、コントローラ10とエンジン20とはPCIバス40を介して接続されている。
コントローラ10は、このMFP全体の制御を行うボードであり、ASIC11,CPU12,ROM13,メモリ14,ネットワークインタフェース(以下「インタフェース」を「I/F」という)15,およびHDD(ハードディスク装置)16を備えている。
ASIC11は、ROM13,メモリ14,ネットワークI/F15,HDD16,操作部30,PCIバス40の制御を行う。このASIC11は、データ転送装置であるHDDコントローラ50を備えている。
CPU12は、ROM13およびメモリ14内のプログラムを実行し、ASIC11の制御を行う中央処理装置である。このCPU12とROM13およびメモリ14とにより、マイクロコンピュータを構成する。このマイクロコンピュータが、ディスクリプタ作成手段としての機能を果たす。
ROM13は、CPU12が実行するプログラムやフォントデータ等の固定データを格納している読み出し専用メモリである。
メモリ14は、HDD16から読み出されたプログラムを展開したり、スキャン動作(読み取り動作)時又はコピー動作にはスキャナによって読み取った画像データ(イメージデータ)を、プリント時には図示しないパーソナルコンピュータ又はファクシミリ装置等の外部機器から受信した画像データをそれぞれ格納する際に使用する読み書き可能なメモリである。なお、外部機器から受信したデータが書き込み用の画像データでなく、文字コードデータや描画データであれば、それらに基づいてCPU12が書き込み用の画像データに展開する処理を行う。
ネットワークI/F15は、LAN(ローカル・エリア・ネットワーク)等のネットワークを介して外部機器と通信するためのI/Fである。
HDD16は、多量の画像データ、各種プログラムなど、各種のデータを保存(記憶)するためのコマンド発行型記憶媒体(ストレージ)である。なお、HDD16の代わりに、光ディスク装置等の他のコマンド発行型記憶媒体を使用することもできる。
エンジン20は、原稿の画像を読み取るスキャナ(画像読取手段)、そのスキャナによって読み取られた画像データあるいは外部機器から受信した画像データ(又は文字コードデータや描画データに基づいて展開された画像データ)を可視画像として用紙(他の記録媒体でもよい)上にプリントするプロッタ(画像形成部)や、原稿をスキャナの画像読取位置へ自動給送する自動原稿給送装置(ADF)、プロッタでプリントがなされた用紙に対してソート(仕分け),パンチ(穴開け),ステープル処理等の後処理を行う後処理装置などのハードウェアデバイスに相当するものである。
操作部30は、コントローラ10に対する動作指示等のデータを入力するための各種の操作キー(操作スイッチ又は操作ボタンともいう)およびLCD又はCRTの文字表示器(表示部)を有する操作手段である。その文字表示器は、その表面にタッチパネルを備えている。そのタッチパネル上に各種機能を利用可能にするための操作画面を表示し、その画面上の各キーを選択的にタッチ(押下)することにより、対応する動作を指示することができる。
〔HDDコントローラの構成例〕
次に、図1のHDDコントローラ(記憶媒体コントローラ)50の構成例について、図2を参照して説明する。
図2は、図1のHDDコントローラ50の構成例を示すブロック図である。
このHDDコントローラ50は、HDD16の制御を行うものであり、シリアルATA・I/F51,HDD・I/Fコントローラ52,およびCMD+DATA・DMAC53によって構成されている。
シリアルATA・I/F51は、PHY・Layer,Link・Layer,Transport・Layer(図示省略)によって構成され、パラレル・シリアル変換,8B/10B変換,通信エラーの検出,転送データのSerial・ATA規格のパケットへの構成又は分解を行う。よって、このシリアルATA・I/F51が、エラー検出手段としての機能を果たす。なお、後述するHDD16の内部にも、同じLayer(レイヤ)構造を持っている。
通信エラーは各Layerから検出される。PHY・Layerからは8B/10Bエラー,Disparityエラー、通信遮断エラーが検出される。Link・LayerからはCRCエラー,エラーパケット受信エラーが検出される。Transport・Layerからはイリーガルパケットエラーが検出される。これら各Layerから検出されたエラーはシリアルATAエラーとして後述するCMD+DATA・DMAC53へ入力される。
HDD16は、上述したように画像データ等を保存するものであり、例えば図3に示すように、データレジスタと、ライト(書き込み)時にはフィーチャレジスタとして機能し、リード(読み出し)時にはエラーレジスタとして機能するレジスタと、セクタカウントレジスタと、セクタナンバレジスタと、シリンダローレジスタと、シリンダハイレジスタと、デバイスヘッドレジスタと、ライト時にはコマンドレジスタとして機能し、リード時にはステータスレジスタとして機能するレジスタとを有する。
このHDD16は、HDDコントローラ50からコマンドレジスタにライトされた時点のフィーチャレジスタ,セクタカウントレジスタ,セクタナンバレジスタ,シリンダローレジスタ,シリンダハイレジスタ,デバイスヘッドレジスタの情報を元にアクセスを開始する。そして、データ転送が終了すると、その旨を示す終了情報をステータスレジスタに反映し(書き込み)、割り込み信号としてHDDコントローラ50へ送信する。エラーレジスタに反映する値はHDD16の内部エラーに関するものである。
HDD・I/Fコントローラ52は、図3に示したレジスタ群と等価なレジスタ群(以下「シャドーレジスタ群」という)を保持しており、CMD+DATA・DMAC53からのパラメータおよびデータを享受し、シリアルATA・I/F51へ渡す。
すなわち、パラメータ転送に関しては、CMD+DATA・DMAC53から受信した後述するATAレジスタ部のパラメータ(コマンド)をCPU12の介在なしでシャドーレジスタ群に設定し、その設定が完了した時点でその設定したATAレジスタ部のパラメータをシリアルATA・I/F51へ渡す。
データ転送に関しては、ライト転送の場合、CMD+DATA・DMAC53から受信したデータをシリアルATA・I/F51へ渡し、リード転送の場合、シリアルATA・I/F51から受信したデータをCMD+DATA・DMAC53へ渡す。
また、シリアルATA・I/F51から発生する転送終了等の割り込み信号(図示省略)を、CPU12が介在することなく内部で処理する。つまり、ATAレジスタ部のステータスレジスタをリードし、割り込みクリアし、コマンド転送が終了した旨をCMD+DATA・DMAC53へ伝える。
CMD+DATA・DMAC53は、メモリ14上にあるディスクリプタをロードし、そのディスクリプタに設定してある情報を元にコマンド発行制御およびデータ転送制御を行う。
図4は、メモリ14上にあるディスクリプタの構成例を示す図である。
「NEXT DESCRIPTOR POINTER」は、ディスクリプタが置いてあるメモリ14上のアドレスを格納する。
「DEVICE HEAD」,「CYLINDER HI」,「CYLINDER LOW」,「SECTOR NUMBER」,「SECTOR CNT」,「COMMAND」は、ATAレジスタ部のパラメータを構成する。
それらのうち、「DEVICE HEAD」,「CYLINDER HI」,「CYLINDER LOW」,および「SECTOR NUMBER」は、アクセスするHDD16のアドレスを格納する。「SECTOR CNT」は、データ転送量を格納する。「COMMAND」は、HDD16への転送命令を格納する。
「START ADDRESS」および「TRANSFER CNT」は、データ転送パラメータを構成する。それらのうち、「START ADDRESS」は、データ転送元・先のメモリ14のアドレスを格納する。
「TRANSFER CNT」は、転送するデータ量を表す。
「nCOUNT」は、ディスクリプタが繰り返される回数を格納する。
「PMODE/CINT」は、このディスクリプタが終了したら、一時停止することを示すフラグを格納し、ディスクリプタが終了してチェーンする時に割り込みを発生することを示すフラグを格納する。
図5は、CMD+DATA・DMAC53の構成例を示すブロック図である。
このCMD+DATA・DMAC53は、コマンド発行制御部61(コマンド転送制御手段),ディスクリプタ制御部62(ディスクリプタ取得手段),データ転送制御部63(データ転送制御手段),および制御レジスタ群64によって構成される。
図5のディスクリプタ制御部62は、リトライ制御部71(リトライ制御手段)と、ディスクリプタ保持部72(ディスクリプタ保持手段)とによって構成される。
図1のCPU12が制御レジスタ群64のコントロールレジスタの所定ビット(起動ビット)をアサートすることによってCMD+DATA・DMAC53が起動すると、ディスクリプタ制御部62は、以下の制御を行う。
すなわち、制御レジスタ群64のディスクリプタポインタレジスタに設定されているメモリ14上のアドレスからディスクリプタをロードし、ディスクリプタ保持部72に保持する。また、そのロードしたディスクリプタのうち、ATAレジスタ部のパラメータ「DEVICE HEAD」,「CYLINDER HI」,「CYLINDER LOW」,「SECTOR NUMBER」,「SECTOR CNT」,「COMMAND」をコマンド発行制御61へ、データ転送パラメータ「START ADDRESS」,「TRANSFER CNT」をデータ転送制御部63へそれぞれ送信する。その後、コマンド発行制御部61およびデータ転送制御部63から転送終了信号(図示省略)を受信したとき、「nCOUNT」「PMODE/CINT」に基づいてCMD+DATA・DMAC53の制御を行う。
コマンド発行制御部61は、ディスクリプタ制御部62から受信した「DEVICE HEAD」,「CYLINDER HI」,「CYLINDER LOW」,「SECTOR NUMBER」,「SECTOR CNT」,「COMMAND」をHDD・I/Fコントローラ52へ転送する。
データ転送制御部63は、ディスクリプタ制御部62から受信した「START ADDRESS」,「TRANSFER CNT」を元に、ライトの場合には、メモリ14からデータをリードし、それをHDD・I/Fコントローラ52へ転送し、リードの場合には、HDD・I/Fコントローラ52から受信したデータをメモリ14へ転送する。
ディスクリプタ制御部62は、コマンド発行制御部61およびデータ転送制御部63からそれぞれ転送終了信号を受信すると、ディスクリプタ保持部72に保持している「NEXT DISCRIPTOR POINTER」に設定されているアドレスをリードし、新しいディスクリプタをリードする。
もし、転送中に通信エラーを受信した場合には、ディスクリプタ制御部62のリトライ制御部71を通じてコマンド発行制御部61およびデータ転送制御部63へ転送停止命令を転送する。その場合、ディスクリプタ保持部72よりディスクリプタをリロード(再び読み込み)し、再度、コマンド発行制御部61およびデータ転送制御部63へそれぞれ転送命令を送信する。
〔HDDコントローラの動作例〕
次に、HDDコントローラ50のHDDライト動作(メモリ14→HDD16へのデータ転送処理)を例にして図6を用いて説明する。
図6は、CPU12,メモリ14,HDDコントローラ50内の各部の動作例を示すタイミングチャートである。
(1)CPU12は、データ転送前に初期設定を行う。このとき、メモリ14上に図7に示すようなディスクリプタ(DPR)を3つ作成する(それらを「ディスクリプタ1,2,3」とする)。また、HDD16へライトするデータを用意する(それらを「ブロックデータ1,2,3」とする)。
ここで、ディスクリプタ1,2,3の設定値はそれぞれ、ここでは図8に示すATAレジスタ部のパラメータおよびデータ転送パラメータからなるものとする。また、ディスクリプタ1に対応するデータをブロックデータ1、ディスクリプタ2に対応するデータをブロックデータ2、ディスクリプタ3に対応するデータをブロックデータ3とする。
CPU12は次に、制御レジスタ群64のディスクリプタポインタレジスタにアドレス「0xA000_0000」を設定する。
(2)CPU12は、制御レジスタ群64のコントロールレジスタの起動ビットをアサートし、CMD+DATA・DMAC53を起動させる。
(3)CMD+DATA・DMAC53のディスクリプタ制御部62は、制御レジスタ群64のディスクリプタポインタレジスタに設定しているメモリ14上のアドレス「0xA000_0000」からディスクリプタ1(DPR1)をロード(取得)する。
そして、そのロードしたディスクリプタ1のうち、ATAレジスタ部のパラメータ(コマンド1)を構成する「DEVICE HEAD(0x00)」,「CYLINDER HI(0x00)」,「CYLINDER LOW(0x00)」,「SECTOR NUMBER(0x00)」,「SECTOR CNT(0x01)」,「COMMAND(Write)」をコマンド発行制御部61へ、データ転送パラメータを構成する「START ADDRESS(=0xA100_0000)」,「TRANSFER CNT(=0x200)」をデータ転送制御部63へそれぞれ送信する。同時に、ロードしたディスクリプタ1をディスクリプタ保持部72に保持する。
(4)コマンド発行制御部61は、ディスクリプタ制御部62から受信したATAレジスタ部のパラメータを元に、HDD・I/Fコントローラ52へコマンドを発行する。つまり、その受信したATAレジスタ部のパラメータをコマンドとしてHDD・I/Fコントローラ52へ転送する。
HDD・I/Fコントローラ52は、そのコマンド(ATAレジスタ部のパラメータ)を内部のシャドーレジスタ群(図3に示したレジスタ群と等価)に設定し、その設定が完了した時点でその設定したコマンド(ATAレジスタ部のパラメータ)をシリアルATA・I/F51を介してHDD16へ転送する。
(5)HDD16は、そのコマンドを受信すると、シリアルATA・I/F51へWRITE転送要求を送信する。そのWRITE転送要求は、HDD・I/Fコントローラ52を仲介し、CMD+DATA・DMAC53のデータ転送制御部63へ伝わる。
WRITE転送要求を受信したデータ転送制御部63は、メモリ14上の「START ADDRESS(=0xA100_0000)」からデータ(ブロックデータ1)をリードし、それをHDD・I/Fコントローラ52へ渡す。
HDD・I/Fコントローラ52は、そのデータをシリアルATA・I/F51を介してHDD16へライトする。
(6)HDD16へのデータ転送(データライト)が「TRANSFER CNT(=0x200)」分終了すると、HDD16は、転送終了割り込み信号をシリアルATA・I/F51を介してHDD・I/Fコントローラ52へ送信する。
HDD・I/Fコントローラ52は、その転送終了割り込み信号を受信すると、割り込み処理を行い、それが終了すると、CMD+DATA・DMAC53へ転送終了信号を送信する。
(7)転送終了信号を受信したCMD+DATA・DMAC53のディスクリプタ制御部62は、ディスクリプタ1の「NEXT DESCRIPTOR POINTER(0xA000_0020)のアドレスにあるディスクリプタ2(DPR2)をメモリ14からロードする。
そして、そのロードしたディスクリプタ2のうち、ATAレジスタ部のパラメータ(コマンド2)である「DEVICE HEAD(0x00)」,「CYLINDER HI(0x00)」,「CYLINDER LOW(0x02)」,「SECTOR NUMBER(0x00)」,「SECTOR CNT(0x02)」,「COMMAND(Write)」をコマンド発行制御部61へ、データ転送パラメータである「START ADDRESS(=0xA100_0200)」,「TRANSFER CNT(=0x400)」をデータ転送制御部63へそれぞれ送信する。同時に、ロードしたディスクリプタ2をディスクリプタ保持部72へ保持する。
(8)コマンド発行制御部61は、ディスクリプタ制御部62から受信したATAレジスタ部のパラメータを元に、HDD・I/Fコントローラ52へコマンドを発行する。
HDD・I/Fコントローラ52は、そのコマンドを内部のシャドーレジスタ群に設定し、その設定が完了した時点でシリアルATA・I/F51を介してHDD16へコマンドを発行する。
(9)HDD16は、そのコマンドを受信すると、シリアルATA・I/F51へWRITE転送要求を送信する。そのWRITE転送要求は、HDD・I/Fコントローラ52を仲介し、CMD+DATA・DMAC53のデータ転送制御部63へ伝わる。
WRITE転送要求を受信したデータ転送制御部63は、メモリ14上の「START ADDRESS(=0xA100_0200)」からデータをリードし、それをHDD・I/Fコントローラ52へ渡す。
HDD・I/Fコントローラ52は、そのデータをシリアルATA・I/F51を介してHDD16へライトする。
(10)HDD16へのデータのライト(転送)中に、HDD16でビットエラーが発生すると、その情報がシリアルATA・I/F51へ送られる。
シリアルATA・I/F51は、そのビットエラーの情報を受信すると、そのビットエラーを通信エラーとして検出し、その情報をCMD+DATA・DMAC53へ送信する。
DMD+DATA・DMAC53のリトライ制御部71は、その通信エラーの情報を受信すると、リトライ制御を開始し、ディスクリプタ保持部72に保持しているディスクリプタ2のATAレジスタ部のパラメータ(コマンド2)をコマンド発行制御部61へ、データ転送パラメータをデータ転送制御部63へそれぞれ再送信する。
(11)コマンド発行制御部61は、ディスクリプタ制御部62から再度受信したATAレジスタ部のパラメータを元に、HDD・I/Fコントロ−ラ52へコマンドを再発行する。
HDD・I/Fコントローラ52は、そのコマンドを内部のシャドーレジスタ群に設定し、その設定が完了した時点でシリアルATA・I/F51を介してHDD16へコマンドを発行する。
(12)HDD16は、そのコマンドを受信すると、シリアルATA・I/F51へWRITE転送要求を送信する。そのWRITE転送要求は、HDD・I/Fコントローラ52を仲介し、CMD+DATA・DMAC53のデータ転送制御部63へ伝わる。
転送要求を受信したデータ転送制御部63は、メモリ14上の「START ADDRESS(=0xA100_0200)」からデータ(ブロックデータ2)をリードし、それをHDD・I/Fコントローラ52へ渡す。
HDD・I/Fコントローラ52は、そのデータをシリアルATA・I/F51を介してHDD16へライトする。
(13)HDD16へのデータ転送(データライト)が「TRANSFER CNT(=0x400)」分終了すると、HDD16は、転送終了割り込み信号をシリアルATA・I/F51を介してHDD・I/Fコントローラ52へ送信する。
HDD・I/Fコントローラ52は、その転送終了割り込み信号を受信すると、割り込み処理を行い、それが終了すると、CMD+DATA・DMAC53へ転送終了信号を送信する。
なお、HDD16へのデータの再ライト(再転送)中に、HDD16でビットエラーが発生すると、その情報が再度シリアルATA・I/F51へ送られ、以後、上述と同様の処理が繰り返し行われる。但し、この処理の繰り返し回数(リトライ制御の実行回数)が規定回数(予め設定された回数)に達すると、CMD+DATA・DMAC53のリトライ制御部71は、リトライ制御を停止し、HDD16へのデータ転送(データライト)にエラー(異常)が発生した旨をCPU12へ通知する。CPU12は、その通知内容を操作部30上に表示する。
あるいは、HDD16へのデータ転送にエラーが発生した旨の通知内容を示す画像データをエンジン20(プロッタ)へ出力して用紙上に可視画像としてプリント(画像形成)させることもできる。あるいは、スピーカー等の音声出力部を備えるようにした場合には、上記通知内容を音声出力部によって音声出力させることもできる。
(14)転送終了信号を受信したCMD+DATA・DMAC53のディスクリプタ制御部62は、ディスクリプタ2の「NEXT DESCRIPTOR POINTER(0xA000_0040)」のアドレスにあるディスクリプタ3(DPR3)をメモリ14からロードする。
そして、そのロードしたディスクリプタのうち、ATAレジスタ部のパラメータ(コマンド3)である「DEVICE HEAD(0x00)」,「CYLINDER HI(0x00)」,「CYLINDER LOW(0x06)」,「SECTOR NUMBER(0x00)」,「SECTOR CNT(0x01)」,「COMMAND(Write)」をコマンド発行制御部61へ、データ転送パラメータである「START ADDRESS(=0xA100_0600)」,「TRANSFER CNT(=0x400)」をデータ転送制御部63へそれぞれ送信する。同時に、ロードしたディスクリプタ3をディスクリプタ保持部72へ保持する。
(15)コマンド発行制御部61は、ディスクリプタ制御部62から受信したATAレジスタ部のパラメータを元に、HDD・I/Fコントローラ52へコマンドを発行する。
HDD・I/Fコントローラ52は、そのコマンドを内部のシャドーレジスタ群に設定し、その設定が完了した時点でシリアルATA・I/F51を介してHDD16へコマンドを発行する。
(16)HDD16は、そのコマンドを受信すると、シリアルATA・I/F51へWRITE転送要求を送信する。そのWRITE転送要求は、HDD・I/Fコントローラ52を仲介し、CMD+DATA・DMAC53のデータ転送制御部63へ伝わる。
WRITE転送要求を受信したデータ転送制御部63は、メモリ14上の「START ADDRESS(=0xA100_0600)」からデータをリードし、それをHDD・I/Fコントローラ52へ渡す。
HDD・I/Fコントローラ52は、そのデータをシリアルATA・I/F51を介してHDD16へライトする。
(17)HDD16へのデータ転送が「TRANSFER CNT(=0x400)分終了すると、HDD16は、転送終了割り込み信号をシリアルATA・I/F51を介してHDD・I/Fコントローラ52へ送信する。
HDD・I/Fコントローラ52は、その転送終了割り込み信号を受信すると、割り込み処理を行い、それが終了すると、CMD+DATA・DMAC53へ転送終了信号を送信する。
(18)転送終了信号を受信したCMD+DATA・DMAC53のディスクリプタ制御部62は、ディスクリプタ3の「NEXT DESCRIPTOR POINTER(0xA000_0000)のアドレスを確認し、そのアドレスが“0”であることからデータ転送が終了したと判断して、CPU12に転送終了割り込み信号を送信する。
CPU12は、その転送終了割り込み信号を受信すると、転送終了割り込み処理を行って、データ転送処理を終了する。
このように、CMD+DATA・DMAC53のディスクリプタ制御部62は、HDD16へのデータ転送の制御に必要なディスクリプタを取得し、そのディスクリプタに含まれている所要のコマンド(ATAレジスタ部のパラメータ)をコマンド発行制御部61によってHDD16へ転送した後、上記ディスクリプタに含まれているパラメータ(データ転送パラメータ)と上記所要のコマンドの転送によってHDD16から発行されるコマンドとに基づいてデータ転送制御部63によって上記データ転送を制御するので、上記ディスクリプタを保持しておき、HDD16から発行される通信エラーの検出時に(他のタイミングでもよい)、そのディスクリプタに含まれている上記コマンドをコマンド発行制御部61へ、そのディスクリプタに含まれている上記パラメータをデータ転送制御部63へそれぞれ送信して上記データ転送の制御を再度行わせるリトライ制御を実行することにより、HDD16へのデータの再転送を行う場合におけるCPU12の負担の低減とパフォーマンス低下の軽減を図ることができる。
また、ディスクリプタ制御部62が、CPU12によって作成されたコマンド(ATAレジスタ部のパラメータ)とパラメータ(データ転送パラメータ)を統合したディスクリプタを用いて制御を行っているため、そのディスクリプタを取得保持して一元管理でき、HDD16から発行されるエラー発生時のリトライ制御のオーバヘッドを最小限に抑えることができる。
さらに、ディスクリプタ制御部62が、上記リトライ制御をHDD16からのエラーを検出している間は繰り返し実行し、その実行回数が予め設定された所定回数に達した場合には、上記リトライ制御を停止することにより、HDD16へのデータの再転送を無駄に行わずに済む。
さらにまた、ディスクリプタ制御部62が、上記実行回数が上記所定回数に達した場合には、エラーが発生した旨を外部のCPU12に通知することにより、その通知を受けたCPU12が表示部,音声出力部,又は画像形成部にエラーが発生した旨を出力させてユーザに知らせることができる。
以上、この発明によるデータ転送装置を備えた電子装置の例としてMFP(デジタル複合機)について説明したが、この発明はそれに限られるものではなく、デジタル複合機,プリンタ,ファクシミリ装置等の他の画像形成装置には勿論、スキャナ装置,デジタルカメラ,携帯電話,AV機器(DVDレコーダ等),医療機器(CT,MRI等の画像診断装置など),コンピュータ等の各種電子装置に適用可能である。
以上の説明から明らかなように、この発明によれば、データ転送装置又はそれを備えた電子装置が、コマンド発行型記憶媒体へのデータの再転送を行う場合におけるCPUの負担の低減とパフォーマンス低下の軽減を図ることができる。したがって、この発明を利用すれば、高速データ処理が可能なデータ転送装置および電子装置を提供することができる。
この発明の実施形態であるデータ転送装置を備えたMFPの構成例を示すブロック図である。 図1のHDDコントローラ50の構成例を示すブロック図である。 図2のHDD16内の各レジスタの説明図である。 図1のメモリ14上にあるディスクリプタの構成例を示す図である。 図2のCMD+DATA・DMAC53の構成例を示すブロック図である。
図1に示したCPU12,メモリ14,HDDコントローラ50内の各部の動作例を示すタイミング図である。 図1のメモリ14上の3つディスクリプタとブロックデータの格納位置の一例を示すメモリマップ図である。 図8の各ディスクリプタの構成例を示す図である。 従来のMFPの制御系の構成例を示すブロック図である。
図9のCPU101およびデータDMAC111の動作例を示すタイミング図である。 従来のMFPの制御系の他の構成例を示すブロック図である。 図11のCPU101,データDMAC111,およびコマンドDMAC113の動作例を示すタイミング図である。 図11のCPU101,データDMAC111,およびコマンドDMAC113の他の動作例を示すタイミング図である。
符号の説明
10:コントローラ 11:ASIC 12:CPU 13:ROM
14:メモリ 15:ネットワークI/F 16:HDD 20:エンジン
30:操作部 40:PCIバス 50:HDDコントローラ
51:シリアルATA・I/F 52:HDD・I/Fコントローラ
53:CMD+DATA・DMAC 61:コマンド発行制御部
62:ディスクリプタ制御部 63:データ転送制御部 64:制御レジスタ群
71:リトライ制御部 72:ディスクリプタ保持部

Claims (9)

  1. コマンド発行型記憶媒体へのデータ転送を行うデータ転送装置であって、
    前記データ転送の制御に必要なディスクリプタを取得するディスクリプタ取得手段と、該ディスクリプタ取得手段によって取得した前記ディスクリプタに含まれている所要のコマンドを前記コマンド発行型記憶媒体へ転送するコマンド転送制御手段と、前記ディスクリプタ取得手段によって取得した前記ディスクリプタに含まれているパラメータと前記所要のコマンドの転送によって前記コマンド発行型記憶媒体から発行されるコマンドとに基づいて前記データ転送を制御するデータ転送制御手段とを設けたことを特徴とするデータ転送装置。
  2. 請求項1記載のデータ転送装置において、
    前記ディスクリプタを保持するディスクリプタ保持手段と、該ディスクリプタ保持手段に保持されている前記ディスクリプタに含まれている前記コマンドを前記コマンド発行制御手段へ、該ディスクリプタに含まれている前記パラメータを前記データ転送制御手段へそれぞれ送信して前記データ転送の制御を再度行わせるリトライ制御を実行するリトライ制御手段とを設けたことを特徴とするデータ転送装置。
  3. 請求項2記載のデータ転送装置において、
    前記コマンド発行型記憶媒体から発行されるエラーを検出するエラー検出手段を設け、
    前記リトライ制御手段は、前記エラー検出手段によってエラーが検出された場合に、前記リトライ制御を実行することを特徴とするデータ転送装置。
  4. 請求項3記載のデータ転送装置において、
    前記リトライ制御手段は、前記リトライ制御を前記エラー検出手段によってエラーが検出されている間繰り返し実行し、その実行回数が予め設定された所定回数に達した場合には、前記リトライ制御を停止することを特徴とするデータ転送装置。
  5. 請求項3又は4記載のデータ転送装置において、
    前記リトライ制御手段は、前記リトライ制御を前記エラー検出手段によってエラーが検出されている間繰り返し実行し、その実行回数が予め設定された所定回数に達した場合には、エラーが発生した旨を外部に通知することを特徴とするデータ転送装置。
  6. 請求項1乃至5のいずれか一項に記載のデータ転送装置を備え、該データ転送装置によって前記コマンド発行型記憶媒体へのデータ転送を行わせるようにしたことを特徴とする電子装置。
  7. 請求項6記載の電子装置において、
    前記コマンド発行型記憶媒体とは異なるメモリを備え、
    前記データ転送装置の前記データ転送制御手段は、前記メモリから前記コマンド発行型記憶媒体へのデータ転送を制御する手段であることを特徴とする電子装置。
  8. 請求項7記載の電子装置において、
    前記コマンド発行型記憶媒体は、ハードディスク装置であることを特徴とする電子装置。
  9. 請求項7又は8記載の電子装置において、
    前記メモリ上で前記ディスクリプタを作成するディスクリプタ作成手段を設け、
    前記データ転送装置の前記ディスクリプタ取得手段は、前記メモリから前記ディスクリプタを取得する手段であることを特徴とする電子装置。
JP2006164483A 2006-06-14 2006-06-14 データ転送装置と電子装置 Pending JP2007334555A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006164483A JP2007334555A (ja) 2006-06-14 2006-06-14 データ転送装置と電子装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006164483A JP2007334555A (ja) 2006-06-14 2006-06-14 データ転送装置と電子装置

Publications (1)

Publication Number Publication Date
JP2007334555A true JP2007334555A (ja) 2007-12-27

Family

ID=38933992

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006164483A Pending JP2007334555A (ja) 2006-06-14 2006-06-14 データ転送装置と電子装置

Country Status (1)

Country Link
JP (1) JP2007334555A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011160268A (ja) * 2010-02-02 2011-08-18 Ricoh Co Ltd 画像処理装置、画像処理方法、画像処理プログラム及び記録媒体
JP2014010759A (ja) * 2012-07-02 2014-01-20 Toshiba Corp ブリッジ装置およびその方法、ストレージ装置、ならびにプログラム
JP2015043237A (ja) * 2010-09-29 2015-03-05 株式会社東芝 メモリシステム
JP2015046050A (ja) * 2013-08-28 2015-03-12 京セラドキュメントソリューションズ株式会社 通信装置、及び通信方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011160268A (ja) * 2010-02-02 2011-08-18 Ricoh Co Ltd 画像処理装置、画像処理方法、画像処理プログラム及び記録媒体
JP2015043237A (ja) * 2010-09-29 2015-03-05 株式会社東芝 メモリシステム
US9473273B2 (en) 2010-09-29 2016-10-18 Kabushiki Kaisha Toshiba Memory system capable of increasing data transfer efficiency
JP2014010759A (ja) * 2012-07-02 2014-01-20 Toshiba Corp ブリッジ装置およびその方法、ストレージ装置、ならびにプログラム
US9122779B2 (en) 2012-07-02 2015-09-01 Kabushiki Kaisha Toshiba Bridge device with an error tolerant DMA transfer function
JP2015046050A (ja) * 2013-08-28 2015-03-12 京セラドキュメントソリューションズ株式会社 通信装置、及び通信方法

Similar Documents

Publication Publication Date Title
US8171190B2 (en) Direct image formation method and apparatus
JP2006270441A (ja) ログデータ記録装置、ログデータ記録方法及びログデータ記録プログラム
JP2008030287A (ja) 印刷装置、印刷システム及びプログラム
JP2007334555A (ja) データ転送装置と電子装置
JP6447564B2 (ja) 画像形成装置、プログラム及び情報処理システム
US10931834B2 (en) Information processing apparatus
JP7073634B2 (ja) 電子装置及びプログラム
JP3161031B2 (ja) 画像処理装置
JP4928497B2 (ja) 画像処理装置、画像処理方法、画像処理プログラム及び記憶媒体
JP4965996B2 (ja) 画像処理装置、画像処理方法、画像処理プログラム並びに記憶媒体
JP3970728B2 (ja) データ通信装置
JP2008269335A (ja) データ転送集積回路およびデータ転送装置
JP2007280373A (ja) データ処理装置、画像処理装置、画像形成装置及びコンピュータプログラム
US20080080014A1 (en) Composite machine having facsimile function, method for holding facsimile data, and computer program product
JP5004322B2 (ja) データ転送制御方法,装置および画像形成装置
JP4455566B2 (ja) Dma転送方式
JP2006260273A (ja) サブシステムモジュール、情報処理装置およびサブシステムモジュールにおけるデータ転送方法
JP2004223967A (ja) 画像形成システム、画像形成方法およびこの方法をコンピュータに実行させるためのプログラム
JP3654124B2 (ja) 画像読取制御装置及びコンピュータ読取可能な記録媒体
JP4812662B2 (ja) 画像形成装置
JP5397085B2 (ja) 印刷システムおよび印刷装置
JP2005258783A (ja) データ転送装置、データ転送方法、画像形成装置及びオプションボード
JP2007193454A (ja) 複数のメモリ領域を有する記憶装置を有するユニット及びメモリ制御システム
JP2008162146A (ja) 印刷装置
JP2006253946A (ja) 画像処理装置、補助記憶装置制御プログラム及び記録媒体