(57)【要約】【課題】  コマンド発行型記憶媒体へのデータの再転送を行う場合におけるＣＰＵの負担の低減とパフォーマンス低下の軽減を図る。【解決手段】  ディスクリプタ制御部６２は、ＨＤＤへのデータ転送の制御に必要なディスクリプタを取得し、その中のコマンドをコマンド発行制御部６１によりＨＤＤへ転送した後、上記ディスクリプタ中のパラメータと上記コマンドの転送によってＨＤＤから発行されるコマンドに基づいてデータ転送制御部６３により上記データ転送を制御する。また、上記ディスクリプタをディスクリプタ保持部７２に保持し、通信エラー検出時に、リトライ制御部７１が、そのディスクリプタ中のコマンド，パラメータをコマンド発行制御部６１，データ転送制御部６３へ送信して上記データ転送の制御を再度行わせる。【選択図】        図５
2007334555.tif 000002
【特許請求の範囲】
【請求項１】
コマンド発行型記憶媒体へのデータ転送を行うデータ転送装置であって、
前記データ転送の制御に必要なディスクリプタを取得するディスクリプタ取得手段と、該ディスクリプタ取得手段によって取得した前記ディスクリプタに含まれている所要のコマンドを前記コマンド発行型記憶媒体へ転送するコマンド転送制御手段と、前記ディスクリプタ取得手段によって取得した前記ディスクリプタに含まれているパラメータと前記所要のコマンドの転送によって前記コマンド発行型記憶媒体から発行されるコマンドとに基づいて前記データ転送を制御するデータ転送制御手段とを設けたことを特徴とするデータ転送装置。
【請求項２】
請求項１記載のデータ転送装置において、
前記ディスクリプタを保持するディスクリプタ保持手段と、該ディスクリプタ保持手段に保持されている前記ディスクリプタに含まれている前記コマンドを前記コマンド発行制御手段へ、該ディスクリプタに含まれている前記パラメータを前記データ転送制御手段へそれぞれ送信して前記データ転送の制御を再度行わせるリトライ制御を実行するリトライ制御手段とを設けたことを特徴とするデータ転送装置。
【請求項３】
請求項２記載のデータ転送装置において、
前記コマンド発行型記憶媒体から発行されるエラーを検出するエラー検出手段を設け、
前記リトライ制御手段は、前記エラー検出手段によってエラーが検出された場合に、前記リトライ制御を実行することを特徴とするデータ転送装置。
【請求項４】
請求項３記載のデータ転送装置において、
前記リトライ制御手段は、前記リトライ制御を前記エラー検出手段によってエラーが検出されている間繰り返し実行し、その実行回数が予め設定された所定回数に達した場合には、前記リトライ制御を停止することを特徴とするデータ転送装置。
【請求項５】
請求項３又は４記載のデータ転送装置において、
前記リトライ制御手段は、前記リトライ制御を前記エラー検出手段によってエラーが検出されている間繰り返し実行し、その実行回数が予め設定された所定回数に達した場合には、エラーが発生した旨を外部に通知することを特徴とするデータ転送装置。
【請求項６】
請求項１乃至５のいずれか一項に記載のデータ転送装置を備え、該データ転送装置によって前記コマンド発行型記憶媒体へのデータ転送を行わせるようにしたことを特徴とする電子装置。
【請求項７】
請求項６記載の電子装置において、
前記コマンド発行型記憶媒体とは異なるメモリを備え、
前記データ転送装置の前記データ転送制御手段は、前記メモリから前記コマンド発行型記憶媒体へのデータ転送を制御する手段であることを特徴とする電子装置。
【請求項８】
請求項７記載の電子装置において、
前記コマンド発行型記憶媒体は、ハードディスク装置であることを特徴とする電子装置。
【請求項９】
請求項７又は８記載の電子装置において、
前記メモリ上で前記ディスクリプタを作成するディスクリプタ作成手段を設け、
前記データ転送装置の前記ディスクリプタ取得手段は、前記メモリから前記ディスクリプタを取得する手段であることを特徴とする電子装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、コマンド発行型記憶媒体へのデータ転送を行うデータ転送装置、およびそれを有するスキャナ装置，プリンタ装置，又はデジタル複写機等の電子装置に関し、特にコマンド発行型記憶媒体へのデータの再転送を行う場合におけるＣＰＵの負担を低減したり、パフォーマンス低下を軽減するための技術に関する。
【背景技術】
【０００２】
例えば、デジタル複合機（以下「ＭＦＰ」ともいう）では、スキャナ装置（画像入力部）によって読み取った原稿の画像をデジタル画像信号に変換した後、このデジタル画像信号を出力可能な画像信号に変換してＰＣＩバス等の汎用バスを介してメモリに格納し、出力時にメモリから画像信号を読み出して汎用バス経由でプリンタエンジン（画像出力装置）に送ることによって用紙上に複写画像を形成したり、デジタル画像信号を出力可能に変換した画像信号を一旦ハードディスク等の記憶媒体（コマンド発行型記憶媒体）に格納し、出力時に記憶媒体からメモリに１ページあるいは複数ページ分の画像信号を転送した後、この画像信号をプリンタエンジン（画像出力部）に送ることによって用紙上に複写画像を形成するようにしている。
【０００３】
このようなＭＦＰでは、デジタル画像信号等のデータを高速で転送するために、例えば図９に示すように、データをＤＭＡ（Direct Memory Access）転送するＤＭＡコントローラであるデータＤＭＡコントローラ（以下「データＤＭＡＣ」と略称する）１１１を含むＡＳＩＣ（Application Specific Integrated Circuit）１１０を使用したコントローラボード１００を備えている。
【０００４】
このコントローラボード１００では、ＡＳＩＣ１１０のデータＤＭＡＣ１１１を使用してデータを転送するとき、ＣＰＵ１０１が、メモリ１０２の転送開始アドレスや転送するデータ数などの入出力制御情報をＡＳＩＣ１１０内のデータＤＭＡＣ１１１に与え、記憶媒体（以下「インタフェース」を「Ｉ／Ｆ」という）１１２を介してコマンド発行型記憶媒体（以下単に「記憶媒体」ともいう）１２１にコマンドを発行するだけで、データ転送には介在しないで済む。そして、１回のＤＭＡ転送で１ブロック単位でデータを転送するようにしている。
【０００５】
しかしながら、ＣＰＵ１０１は以下の（１）（２）に示す処理（図１０参照）を行っているため、全体のデータ量が非常に多く、１ブロックのサイズが小さい場合、（１）（２）の処理に関与する回数も増えて、ＣＰＵ１０１の負担がかなり多くなる。
（１）１ブロック転送毎に、データＤＭＡＣ１１１にコマンドを発行する。
（２）１ブロック転送終了する毎に、記憶媒体１２１から発生する転送終了割り込み信号に対する処理（割り込み処理）を行う。
【０００６】
そこで、例えば図１１に示すように、ＡＳＩＣ１１０に、データＤＭＡＣ１１１の他に、コマンドをＤＭＡ転送するＤＭＡコントローラであるコマンドＤＭＡコントローラ（以下「コマンドＤＭＡＣ」と略称する）１１３を設け、上述のコマンド発行および割り込み処理をそのコマンドＤＭＡＣ１１３に行わせることにより、例えば図１２に示すように、ＣＰＵ１０１の負担を低減できるようにしたものも提案されている（例えば特許文献１参照）。
【特許文献１】特開２００１−２８２７０５号公報
【０００７】
ところで、記憶媒体に代表されるＨＤＤ（ハードディスク装置）は、近年、転送速度向上のため、Ｉ／Ｆのシリアル化（Ｓｅｒｉａｌ・ＡＴＡ）が進んでいる。
Ｓｅｒｉａｌ・ＡＴＡは、Ｕｌｔｒａ・ＡＴＡなどの従来のＡＴＡ仕様で採用されていたパラレル転送方式を、シリアル転送方式に変更したものである。また、Ｓｅｒｉａｌ・ＡＴＡは、Ｕｌｔｒａ・ＡＴＡとソフト互換性を保ちつつ、Ｉ／Ｆ転送速度が１．５Ｇｂｐｓ（１５０ＭＢ／ｓ）まで向上する。なお、Ｕｌｔｒａ・ＡＴＡは、Ｍａｘ・１３３ＭＢ／ｓ（Ｕｌｔｒａ・ＡＴＡ／１３３）である。
Ｓｅｒｉａｌ・ＡＴＡ規格では、３Ｇｂｐｓ、更には６Ｇｂｐｓに引き上げられる予定もある。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、Ｉ／Ｆをシリアル化したシステム（データ転送装置）を構築する上でビットエラーに注意が必要である。
ここで、伝送品質の劣化により受信端でパルスの消滅や不要なパルスが発生することをビットエラーという。また、送出したビット数に対して受信端でいくつビットエラーが生じたかを定量化したものをビットエラーレートという。以後、ビットエラーを通信エラーともいう。
【０００９】
Ｓｅｒｉａｌ・ＡＴＡ規格において、ビットエラーレートは１０（−１２）と定義されている。これは１０（１２乗）ビット転送して１ｂｉｔエラーが発生する可能性があるということである。時間で換算すれば、約１１分に１回通信エラーが発生することと等価である（１０（１２乗）／１．５Ｇ＝約１１分）。この場合、システム的に大きなパフォーマンス低下につながる。シリアルＡＴＡ規格では、通信エラーが発生した場合には、コマンド再発行が必要である。
【００１０】
図１１に示したデータ転送装置において、例えば記憶媒体Ｉ／Ｆ１１２がシリアルＡＴＡであった場合、コマンドＤＭＡＣ１１３が発行する総コマンドの転送量とデータＤＭＡＣ１１１が転送するデータ転送量の相関はあるが、各コマンドとデータ位置の相関がない転送が可能であり、例えば図１３に示すような転送時、通信エラー（図中×)が発生した場合、コマンドとデータ転送の位置に相関がないため、最初から転送をやり直す必要がある。この場合、システム的に大きなパフォーマンス低下につながる。
【００１１】
この発明は、上記の点に鑑みてなされたものであり、コマンド発行型記憶媒体へのデータ転送を行うデータ転送装置およびそれを用いた電子装置において、コマンド発行型記憶媒体へのデータの再転送を行う場合におけるＣＰＵの負担の低減とパフォーマンス低下の軽減を図ることを目的とする。
【課題を解決するための手段】
【００１２】
この発明は、上記の目的を達成するため、データ転送装置およびそれを備えた電子装置を提供する。
請求項１の発明によるデータ転送装置は、コマンド発行型記憶媒体へのデータ転送を行うデータ転送装置であって、上記データ転送の制御に必要なディスクリプタを取得するディスクリプタ取得手段と、該ディスクリプタ取得手段によって取得した上記ディスクリプタに含まれている所要のコマンドを上記コマンド発行型記憶媒体へ転送するコマンド転送制御手段と、上記ディスクリプタ取得手段によって取得した上記ディスクリプタに含まれているパラメータと上記所要のコマンドの転送によって上記コマンド発行型記憶媒体から発行されるコマンドとに基づいて上記データ転送を制御するデータ転送制御手段とを設けたものである。
【００１３】
請求項２の発明によるデータ転送装置は、請求項１のデータ転送装置において、上記ディスクリプタを保持するディスクリプタ保持手段と、該ディスクリプタ保持手段に保持されている上記ディスクリプタに含まれている上記コマンドを上記コマンド発行制御手段へ、該ディスクリプタに含まれている上記パラメータを上記データ転送制御手段へそれぞれ送信して上記データ転送の制御を再度行わせるリトライ制御を実行するリトライ制御手段とを設けたものである。
【００１４】
請求項３の発明によるデータ転送装置は、請求項２のデータ転送装置において、上記コマンド発行型記憶媒体から発行されるエラーを検出するエラー検出手段を設け、上記リトライ制御手段が、該エラー検出手段によってエラーが検出された場合に、上記リトライ制御を実行するものである。
請求項４の発明によるデータ転送装置は、請求項３のデータ転送装置において、上記リトライ制御手段が、上記リトライ制御を上記エラー検出手段によってエラーが検出されている間繰り返し実行し、その実行回数が予め設定された所定回数に達した場合には、上記リトライ制御を停止するものである。
【００１５】
請求項５の発明によるデータ転送装置は、請求項３又は４のデータ転送装置において、上記リトライ制御手段が、上記リトライ制御を上記エラー検出手段によってエラーが検出されている間繰り返し実行し、その実行回数が予め設定された所定回数に達した場合には、エラーが発生した旨を外部に通知するものである。
請求項６の発明によるデータ転送装置は、請求項１〜５のいずれかのデータ転送装置を備え、該データ転送装置によって上記コマンド発行型記憶媒体へのデータ転送を行わせるようにしたものである。
【００１６】
請求項７の発明によるデータ転送装置は、請求項６の電子装置において、上記コマンド発行型記憶媒体とは異なるメモリを備え、上記データ転送装置の上記データ転送制御手段を、上記メモリから上記コマンド発行型記憶媒体へのデータ転送を制御する手段としたものである。
請求項８の発明によるデータ転送装置は、請求項７の電子装置において、上記コマンド発行型記憶媒体をハードディスク装置としたものである。
【００１７】
請求項９の発明によるデータ転送装置は、請求項７又は８の電子装置において、上記メモリ上で上記ディスクリプタを作成するディスクリプタ作成手段を設け、上記データ転送装置の上記ディスクリプタ取得手段を、上記メモリから上記ディスクリプタを取得する手段としたものである。
【発明の効果】
【００１８】
この発明によれば、データ転送装置又はそれを備えた電子装置が、コマンド発行型記憶媒体へのデータ転送の制御に必要なディスクリプタをディスクリプタ取得手段によって取得し、そのディスクリプタに含まれている所要のコマンドをコマンド転送制御手段によって上記コマンド発行型記憶媒体へ転送した後、上記ディスクリプタに含まれているパラメータと上記所要のコマンドの転送によって上記コマンド発行型記憶媒体から発行されるコマンドとに基づいてデータ転送制御手段によって上記データ転送を制御するので、例えば上記ディスクリプタを保持しておき、そのディスクリプタに含まれている上記コマンドを上記コマンド発行制御手段へ、そのディスクリプタに含まれている上記パラメータを上記データ転送制御手段へそれぞれ送信して上記データ転送の制御を再度行わせるリトライ制御を実行することにより、コマンド発行型記憶媒体からのエラー（通信エラー）の発行等によりそのコマンド発行型記憶媒体へのデータの再転送を行う場合におけるＣＰＵの負担の低減とパフォーマンス低下の軽減を図ることができる。
【発明を実施するための最良の形態】
【００１９】
以下、この発明を実施するための最良の形態を図面に基づいて具体的に説明する。
〔ＭＦＰの構成例〕
まず、この発明の実施形態であるデータ転送装置を備えた電子装置であるデジタル複合機（以下「ＭＦＰ」ともいう）の構成例について図１を参照して説明する。ここでは、コマンド発行型記憶媒体として特定のサイズ単位でのアクセスが必要なＨＤＤを用いるものとする。
【００２０】
図１は、この発明の実施形態であるデータ転送装置を備えたＭＦＰの構成例を示すブロック図である。
このＭＦＰは、コントローラ１０とエンジン２０と操作部３０とを備えている。それらのうち、コントローラ１０とエンジン２０とはＰＣＩバス４０を介して接続されている。
【００２１】
コントローラ１０は、このＭＦＰ全体の制御を行うボードであり、ＡＳＩＣ１１，ＣＰＵ１２，ＲＯＭ１３，メモリ１４，ネットワークインタフェース（以下「インタフェース」を「Ｉ／Ｆ」という）１５，およびＨＤＤ（ハードディスク装置）１６を備えている。
ＡＳＩＣ１１は、ＲＯＭ１３，メモリ１４，ネットワークＩ／Ｆ１５，ＨＤＤ１６，操作部３０，ＰＣＩバス４０の制御を行う。このＡＳＩＣ１１は、データ転送装置であるＨＤＤコントローラ５０を備えている。
【００２２】
ＣＰＵ１２は、ＲＯＭ１３およびメモリ１４内のプログラムを実行し、ＡＳＩＣ１１の制御を行う中央処理装置である。このＣＰＵ１２とＲＯＭ１３およびメモリ１４とにより、マイクロコンピュータを構成する。このマイクロコンピュータが、ディスクリプタ作成手段としての機能を果たす。
ＲＯＭ１３は、ＣＰＵ１２が実行するプログラムやフォントデータ等の固定データを格納している読み出し専用メモリである。
【００２３】
メモリ１４は、ＨＤＤ１６から読み出されたプログラムを展開したり、スキャン動作（読み取り動作）時又はコピー動作にはスキャナによって読み取った画像データ（イメージデータ）を、プリント時には図示しないパーソナルコンピュータ又はファクシミリ装置等の外部機器から受信した画像データをそれぞれ格納する際に使用する読み書き可能なメモリである。なお、外部機器から受信したデータが書き込み用の画像データでなく、文字コードデータや描画データであれば、それらに基づいてＣＰＵ１２が書き込み用の画像データに展開する処理を行う。
【００２４】
ネットワークＩ／Ｆ１５は、ＬＡＮ（ローカル・エリア・ネットワーク）等のネットワークを介して外部機器と通信するためのＩ／Ｆである。
ＨＤＤ１６は、多量の画像データ、各種プログラムなど、各種のデータを保存（記憶）するためのコマンド発行型記憶媒体（ストレージ）である。なお、ＨＤＤ１６の代わりに、光ディスク装置等の他のコマンド発行型記憶媒体を使用することもできる。
【００２５】
エンジン２０は、原稿の画像を読み取るスキャナ（画像読取手段）、そのスキャナによって読み取られた画像データあるいは外部機器から受信した画像データ（又は文字コードデータや描画データに基づいて展開された画像データ）を可視画像として用紙（他の記録媒体でもよい）上にプリントするプロッタ（画像形成部）や、原稿をスキャナの画像読取位置へ自動給送する自動原稿給送装置（ＡＤＦ）、プロッタでプリントがなされた用紙に対してソート（仕分け），パンチ（穴開け），ステープル処理等の後処理を行う後処理装置などのハードウェアデバイスに相当するものである。
【００２６】
操作部３０は、コントローラ１０に対する動作指示等のデータを入力するための各種の操作キー（操作スイッチ又は操作ボタンともいう）およびＬＣＤ又はＣＲＴの文字表示器（表示部）を有する操作手段である。その文字表示器は、その表面にタッチパネルを備えている。そのタッチパネル上に各種機能を利用可能にするための操作画面を表示し、その画面上の各キーを選択的にタッチ（押下）することにより、対応する動作を指示することができる。
【００２７】
〔ＨＤＤコントローラの構成例〕
次に、図１のＨＤＤコントローラ（記憶媒体コントローラ）５０の構成例について、図２を参照して説明する。
図２は、図１のＨＤＤコントローラ５０の構成例を示すブロック図である。
このＨＤＤコントローラ５０は、ＨＤＤ１６の制御を行うものであり、シリアルＡＴＡ・Ｉ／Ｆ５１，ＨＤＤ・Ｉ／Ｆコントローラ５２，およびＣＭＤ＋ＤＡＴＡ・ＤＭＡＣ５３によって構成されている。
【００２８】
シリアルＡＴＡ・Ｉ／Ｆ５１は、ＰＨＹ・Ｌａｙｅｒ，Ｌｉｎｋ・Ｌａｙｅｒ，Ｔｒａｎｓｐｏｒｔ・Ｌａｙｅｒ（図示省略）によって構成され、パラレル・シリアル変換，８Ｂ／１０Ｂ変換，通信エラーの検出，転送データのＳｅｒｉａｌ・ＡＴＡ規格のパケットへの構成又は分解を行う。よって、このシリアルＡＴＡ・Ｉ／Ｆ５１が、エラー検出手段としての機能を果たす。なお、後述するＨＤＤ１６の内部にも、同じＬａｙｅｒ（レイヤ）構造を持っている。
【００２９】
通信エラーは各Ｌａｙｅｒから検出される。ＰＨＹ・Ｌａｙｅｒからは８Ｂ／１０Ｂエラー，Ｄｉｓｐａｒｉｔｙエラー、通信遮断エラーが検出される。Ｌｉｎｋ・ＬａｙｅｒからはＣＲＣエラー，エラーパケット受信エラーが検出される。Ｔｒａｎｓｐｏｒｔ・Ｌａｙｅｒからはイリーガルパケットエラーが検出される。これら各Ｌａｙｅｒから検出されたエラーはシリアルＡＴＡエラーとして後述するＣＭＤ＋ＤＡＴＡ・ＤＭＡＣ５３へ入力される。
【００３０】
ＨＤＤ１６は、上述したように画像データ等を保存するものであり、例えば図３に示すように、データレジスタと、ライト（書き込み）時にはフィーチャレジスタとして機能し、リード（読み出し）時にはエラーレジスタとして機能するレジスタと、セクタカウントレジスタと、セクタナンバレジスタと、シリンダローレジスタと、シリンダハイレジスタと、デバイスヘッドレジスタと、ライト時にはコマンドレジスタとして機能し、リード時にはステータスレジスタとして機能するレジスタとを有する。
【００３１】
このＨＤＤ１６は、ＨＤＤコントローラ５０からコマンドレジスタにライトされた時点のフィーチャレジスタ，セクタカウントレジスタ，セクタナンバレジスタ，シリンダローレジスタ，シリンダハイレジスタ，デバイスヘッドレジスタの情報を元にアクセスを開始する。そして、データ転送が終了すると、その旨を示す終了情報をステータスレジスタに反映し（書き込み）、割り込み信号としてＨＤＤコントローラ５０へ送信する。エラーレジスタに反映する値はＨＤＤ１６の内部エラーに関するものである。
【００３２】
ＨＤＤ・Ｉ／Ｆコントローラ５２は、図３に示したレジスタ群と等価なレジスタ群（以下「シャドーレジスタ群」という）を保持しており、ＣＭＤ＋ＤＡＴＡ・ＤＭＡＣ５３からのパラメータおよびデータを享受し、シリアルＡＴＡ・Ｉ／Ｆ５１へ渡す。
すなわち、パラメータ転送に関しては、ＣＭＤ＋ＤＡＴＡ・ＤＭＡＣ５３から受信した後述するＡＴＡレジスタ部のパラメータ（コマンド）をＣＰＵ１２の介在なしでシャドーレジスタ群に設定し、その設定が完了した時点でその設定したＡＴＡレジスタ部のパラメータをシリアルＡＴＡ・Ｉ／Ｆ５１へ渡す。
【００３３】
データ転送に関しては、ライト転送の場合、ＣＭＤ＋ＤＡＴＡ・ＤＭＡＣ５３から受信したデータをシリアルＡＴＡ・Ｉ／Ｆ５１へ渡し、リード転送の場合、シリアルＡＴＡ・Ｉ／Ｆ５１から受信したデータをＣＭＤ＋ＤＡＴＡ・ＤＭＡＣ５３へ渡す。
また、シリアルＡＴＡ・Ｉ／Ｆ５１から発生する転送終了等の割り込み信号（図示省略）を、ＣＰＵ１２が介在することなく内部で処理する。つまり、ＡＴＡレジスタ部のステータスレジスタをリードし、割り込みクリアし、コマンド転送が終了した旨をＣＭＤ＋ＤＡＴＡ・ＤＭＡＣ５３へ伝える。
【００３４】
ＣＭＤ＋ＤＡＴＡ・ＤＭＡＣ５３は、メモリ１４上にあるディスクリプタをロードし、そのディスクリプタに設定してある情報を元にコマンド発行制御およびデータ転送制御を行う。
図４は、メモリ１４上にあるディスクリプタの構成例を示す図である。
「ＮＥＸＴ ＤＥＳＣＲＩＰＴＯＲ ＰＯＩＮＴＥＲ」は、ディスクリプタが置いてあるメモリ１４上のアドレスを格納する。
【００３５】
「ＤＥＶＩＣＥ ＨＥＡＤ」,「ＣＹＬＩＮＤＥＲ ＨＩ」,「ＣＹＬＩＮＤＥＲ ＬＯＷ」,「ＳＥＣＴＯＲ ＮＵＭＢＥＲ」，「ＳＥＣＴＯＲ ＣＮＴ」，「ＣＯＭＭＡＮＤ」は、ＡＴＡレジスタ部のパラメータを構成する。
それらのうち、「ＤＥＶＩＣＥ ＨＥＡＤ」,「ＣＹＬＩＮＤＥＲ ＨＩ」,「ＣＹＬＩＮＤＥＲ ＬＯＷ」，および「ＳＥＣＴＯＲ ＮＵＭＢＥＲ」は、アクセスするＨＤＤ１６のアドレスを格納する。「ＳＥＣＴＯＲ ＣＮＴ」は、データ転送量を格納する。「ＣＯＭＭＡＮＤ」は、ＨＤＤ１６への転送命令を格納する。
【００３６】
「ＳＴＡＲＴ ＡＤＤＲＥＳＳ」および「ＴＲＡＮＳＦＥＲ ＣＮＴ」は、データ転送パラメータを構成する。それらのうち、「ＳＴＡＲＴ ＡＤＤＲＥＳＳ」は、データ転送元・先のメモリ１４のアドレスを格納する。
「ＴＲＡＮＳＦＥＲ ＣＮＴ」は、転送するデータ量を表す。
「ｎＣＯＵＮＴ」は、ディスクリプタが繰り返される回数を格納する。
「ＰＭＯＤＥ／ＣＩＮＴ」は、このディスクリプタが終了したら、一時停止することを示すフラグを格納し、ディスクリプタが終了してチェーンする時に割り込みを発生することを示すフラグを格納する。
【００３７】
図５は、ＣＭＤ＋ＤＡＴＡ・ＤＭＡＣ５３の構成例を示すブロック図である。
このＣＭＤ＋ＤＡＴＡ・ＤＭＡＣ５３は、コマンド発行制御部６１（コマンド転送制御手段），ディスクリプタ制御部６２（ディスクリプタ取得手段），データ転送制御部６３（データ転送制御手段），および制御レジスタ群６４によって構成される。
【００３８】
図５のディスクリプタ制御部６２は、リトライ制御部７１（リトライ制御手段）と、ディスクリプタ保持部７２（ディスクリプタ保持手段）とによって構成される。
図１のＣＰＵ１２が制御レジスタ群６４のコントロールレジスタの所定ビット（起動ビット）をアサートすることによってＣＭＤ＋ＤＡＴＡ・ＤＭＡＣ５３が起動すると、ディスクリプタ制御部６２は、以下の制御を行う。
【００３９】
すなわち、制御レジスタ群６４のディスクリプタポインタレジスタに設定されているメモリ１４上のアドレスからディスクリプタをロードし、ディスクリプタ保持部７２に保持する。また、そのロードしたディスクリプタのうち、ＡＴＡレジスタ部のパラメータ「ＤＥＶＩＣＥ ＨＥＡＤ」，「ＣＹＬＩＮＤＥＲ ＨＩ」，「ＣＹＬＩＮＤＥＲ ＬＯＷ」，「ＳＥＣＴＯＲ ＮＵＭＢＥＲ」，「ＳＥＣＴＯＲ ＣＮＴ」，「ＣＯＭＭＡＮＤ」をコマンド発行制御６１へ、データ転送パラメータ「ＳＴＡＲＴ ＡＤＤＲＥＳＳ」，「ＴＲＡＮＳＦＥＲ ＣＮＴ」をデータ転送制御部６３へそれぞれ送信する。その後、コマンド発行制御部６１およびデータ転送制御部６３から転送終了信号（図示省略）を受信したとき、「ｎＣＯＵＮＴ」「ＰＭＯＤＥ／ＣＩＮＴ」に基づいてＣＭＤ＋ＤＡＴＡ・ＤＭＡＣ５３の制御を行う。
【００４０】
コマンド発行制御部６１は、ディスクリプタ制御部６２から受信した「ＤＥＶＩＣＥ ＨＥＡＤ」，「ＣＹＬＩＮＤＥＲ ＨＩ」，「ＣＹＬＩＮＤＥＲ ＬＯＷ」，「ＳＥＣＴＯＲ ＮＵＭＢＥＲ」，「ＳＥＣＴＯＲ ＣＮＴ」，「ＣＯＭＭＡＮＤ」をＨＤＤ・Ｉ／Ｆコントローラ５２へ転送する。
データ転送制御部６３は、ディスクリプタ制御部６２から受信した「ＳＴＡＲＴ ＡＤＤＲＥＳＳ」，「ＴＲＡＮＳＦＥＲ ＣＮＴ」を元に、ライトの場合には、メモリ１４からデータをリードし、それをＨＤＤ・Ｉ／Ｆコントローラ５２へ転送し、リードの場合には、ＨＤＤ・Ｉ／Ｆコントローラ５２から受信したデータをメモリ１４へ転送する。
【００４１】
ディスクリプタ制御部６２は、コマンド発行制御部６１およびデータ転送制御部６３からそれぞれ転送終了信号を受信すると、ディスクリプタ保持部７２に保持している「ＮＥＸＴ ＤＩＳＣＲＩＰＴＯＲ ＰＯＩＮＴＥＲ」に設定されているアドレスをリードし、新しいディスクリプタをリードする。
もし、転送中に通信エラーを受信した場合には、ディスクリプタ制御部６２のリトライ制御部７１を通じてコマンド発行制御部６１およびデータ転送制御部６３へ転送停止命令を転送する。その場合、ディスクリプタ保持部７２よりディスクリプタをリロード（再び読み込み）し、再度、コマンド発行制御部６１およびデータ転送制御部６３へそれぞれ転送命令を送信する。
【００４２】
〔ＨＤＤコントローラの動作例〕
次に、ＨＤＤコントローラ５０のＨＤＤライト動作（メモリ１４→ＨＤＤ１６へのデータ転送処理）を例にして図６を用いて説明する。
図６は、ＣＰＵ１２，メモリ１４，ＨＤＤコントローラ５０内の各部の動作例を示すタイミングチャートである。
【００４３】
（１）ＣＰＵ１２は、データ転送前に初期設定を行う。このとき、メモリ１４上に図７に示すようなディスクリプタ（ＤＰＲ）を３つ作成する（それらを「ディスクリプタ１，２，３」とする）。また、ＨＤＤ１６へライトするデータを用意する（それらを「ブロックデータ１，２，３」とする）。
ここで、ディスクリプタ１，２，３の設定値はそれぞれ、ここでは図８に示すＡＴＡレジスタ部のパラメータおよびデータ転送パラメータからなるものとする。また、ディスクリプタ１に対応するデータをブロックデータ１、ディスクリプタ２に対応するデータをブロックデータ２、ディスクリプタ３に対応するデータをブロックデータ３とする。
ＣＰＵ１２は次に、制御レジスタ群６４のディスクリプタポインタレジスタにアドレス「０ｘＡ０００＿００００」を設定する。
【００４４】
（２）ＣＰＵ１２は、制御レジスタ群６４のコントロールレジスタの起動ビットをアサートし、ＣＭＤ＋ＤＡＴＡ・ＤＭＡＣ５３を起動させる。
（３）ＣＭＤ＋ＤＡＴＡ・ＤＭＡＣ５３のディスクリプタ制御部６２は、制御レジスタ群６４のディスクリプタポインタレジスタに設定しているメモリ１４上のアドレス「０ｘＡ０００＿００００」からディスクリプタ１（ＤＰＲ１）をロード（取得）する。
【００４５】
そして、そのロードしたディスクリプタ１のうち、ＡＴＡレジスタ部のパラメータ（コマンド１）を構成する「ＤＥＶＩＣＥ ＨＥＡＤ（０ｘ００）」，「ＣＹＬＩＮＤＥＲ ＨＩ（０ｘ００）」，「ＣＹＬＩＮＤＥＲ ＬＯＷ（０ｘ００）」，「ＳＥＣＴＯＲ ＮＵＭＢＥＲ（０ｘ００）」，「ＳＥＣＴＯＲ ＣＮＴ（０ｘ０１）」，「ＣＯＭＭＡＮＤ（Ｗｒｉｔｅ）」をコマンド発行制御部６１へ、データ転送パラメータを構成する「ＳＴＡＲＴ ＡＤＤＲＥＳＳ（＝０ｘＡ１００＿００００）」，「ＴＲＡＮＳＦＥＲ ＣＮＴ（＝０ｘ２００）」をデータ転送制御部６３へそれぞれ送信する。同時に、ロードしたディスクリプタ１をディスクリプタ保持部７２に保持する。
【００４６】
（４）コマンド発行制御部６１は、ディスクリプタ制御部６２から受信したＡＴＡレジスタ部のパラメータを元に、ＨＤＤ・Ｉ／Ｆコントローラ５２へコマンドを発行する。つまり、その受信したＡＴＡレジスタ部のパラメータをコマンドとしてＨＤＤ・Ｉ／Ｆコントローラ５２へ転送する。
ＨＤＤ・Ｉ／Ｆコントローラ５２は、そのコマンド（ＡＴＡレジスタ部のパラメータ）を内部のシャドーレジスタ群（図３に示したレジスタ群と等価）に設定し、その設定が完了した時点でその設定したコマンド（ＡＴＡレジスタ部のパラメータ）をシリアルＡＴＡ・Ｉ／Ｆ５１を介してＨＤＤ１６へ転送する。
【００４７】
（５）ＨＤＤ１６は、そのコマンドを受信すると、シリアルＡＴＡ・Ｉ／Ｆ５１へＷＲＩＴＥ転送要求を送信する。そのＷＲＩＴＥ転送要求は、ＨＤＤ・Ｉ／Ｆコントローラ５２を仲介し、ＣＭＤ＋ＤＡＴＡ・ＤＭＡＣ５３のデータ転送制御部６３へ伝わる。
ＷＲＩＴＥ転送要求を受信したデータ転送制御部６３は、メモリ１４上の「ＳＴＡＲＴ ＡＤＤＲＥＳＳ（＝０ｘＡ１００＿００００）」からデータ（ブロックデータ１）をリードし、それをＨＤＤ・Ｉ／Ｆコントローラ５２へ渡す。
ＨＤＤ・Ｉ／Ｆコントローラ５２は、そのデータをシリアルＡＴＡ・Ｉ／Ｆ５１を介してＨＤＤ１６へライトする。
【００４８】
（６）ＨＤＤ１６へのデータ転送（データライト）が「ＴＲＡＮＳＦＥＲ ＣＮＴ（＝０ｘ２００）」分終了すると、ＨＤＤ１６は、転送終了割り込み信号をシリアルＡＴＡ・Ｉ／Ｆ５１を介してＨＤＤ・Ｉ／Ｆコントローラ５２へ送信する。
ＨＤＤ・Ｉ／Ｆコントローラ５２は、その転送終了割り込み信号を受信すると、割り込み処理を行い、それが終了すると、ＣＭＤ＋ＤＡＴＡ・ＤＭＡＣ５３へ転送終了信号を送信する。
【００４９】
（７）転送終了信号を受信したＣＭＤ＋ＤＡＴＡ・ＤＭＡＣ５３のディスクリプタ制御部６２は、ディスクリプタ１の「ＮＥＸＴ ＤＥＳＣＲＩＰＴＯＲ ＰＯＩＮＴＥＲ（０ｘＡ０００＿００２０）のアドレスにあるディスクリプタ２（ＤＰＲ２）をメモリ１４からロードする。
【００５０】
そして、そのロードしたディスクリプタ２のうち、ＡＴＡレジスタ部のパラメータ（コマンド２）である「ＤＥＶＩＣＥ ＨＥＡＤ（０ｘ００）」，「ＣＹＬＩＮＤＥＲ ＨＩ（０ｘ００）」，「ＣＹＬＩＮＤＥＲ ＬＯＷ（０ｘ０２）」，「ＳＥＣＴＯＲ ＮＵＭＢＥＲ（０ｘ００）」，「ＳＥＣＴＯＲ ＣＮＴ（０ｘ０２）」，「ＣＯＭＭＡＮＤ（Ｗｒｉｔｅ）」をコマンド発行制御部６１へ、データ転送パラメータである「ＳＴＡＲＴ ＡＤＤＲＥＳＳ（＝０ｘＡ１００＿０２００）」，「ＴＲＡＮＳＦＥＲ ＣＮＴ（＝０ｘ４００）」をデータ転送制御部６３へそれぞれ送信する。同時に、ロードしたディスクリプタ２をディスクリプタ保持部７２へ保持する。
【００５１】
（８）コマンド発行制御部６１は、ディスクリプタ制御部６２から受信したＡＴＡレジスタ部のパラメータを元に、ＨＤＤ・Ｉ／Ｆコントローラ５２へコマンドを発行する。
ＨＤＤ・Ｉ／Ｆコントローラ５２は、そのコマンドを内部のシャドーレジスタ群に設定し、その設定が完了した時点でシリアルＡＴＡ・Ｉ／Ｆ５１を介してＨＤＤ１６へコマンドを発行する。
【００５２】
（９）ＨＤＤ１６は、そのコマンドを受信すると、シリアルＡＴＡ・Ｉ／Ｆ５１へＷＲＩＴＥ転送要求を送信する。そのＷＲＩＴＥ転送要求は、ＨＤＤ・Ｉ／Ｆコントローラ５２を仲介し、ＣＭＤ＋ＤＡＴＡ・ＤＭＡＣ５３のデータ転送制御部６３へ伝わる。
ＷＲＩＴＥ転送要求を受信したデータ転送制御部６３は、メモリ１４上の「ＳＴＡＲＴ ＡＤＤＲＥＳＳ（＝０ｘＡ１００＿０２００）」からデータをリードし、それをＨＤＤ・Ｉ／Ｆコントローラ５２へ渡す。
ＨＤＤ・Ｉ／Ｆコントローラ５２は、そのデータをシリアルＡＴＡ・Ｉ／Ｆ５１を介してＨＤＤ１６へライトする。
【００５３】
（１０）ＨＤＤ１６へのデータのライト（転送）中に、ＨＤＤ１６でビットエラーが発生すると、その情報がシリアルＡＴＡ・Ｉ／Ｆ５１へ送られる。
シリアルＡＴＡ・Ｉ／Ｆ５１は、そのビットエラーの情報を受信すると、そのビットエラーを通信エラーとして検出し、その情報をＣＭＤ＋ＤＡＴＡ・ＤＭＡＣ５３へ送信する。
ＤＭＤ＋ＤＡＴＡ・ＤＭＡＣ５３のリトライ制御部７１は、その通信エラーの情報を受信すると、リトライ制御を開始し、ディスクリプタ保持部７２に保持しているディスクリプタ２のＡＴＡレジスタ部のパラメータ（コマンド２）をコマンド発行制御部６１へ、データ転送パラメータをデータ転送制御部６３へそれぞれ再送信する。
【００５４】
（１１）コマンド発行制御部６１は、ディスクリプタ制御部６２から再度受信したＡＴＡレジスタ部のパラメータを元に、ＨＤＤ・Ｉ／Ｆコントロ−ラ５２へコマンドを再発行する。
ＨＤＤ・Ｉ／Ｆコントローラ５２は、そのコマンドを内部のシャドーレジスタ群に設定し、その設定が完了した時点でシリアルＡＴＡ・Ｉ／Ｆ５１を介してＨＤＤ１６へコマンドを発行する。
【００５５】
（１２）ＨＤＤ１６は、そのコマンドを受信すると、シリアルＡＴＡ・Ｉ／Ｆ５１へＷＲＩＴＥ転送要求を送信する。そのＷＲＩＴＥ転送要求は、ＨＤＤ・Ｉ／Ｆコントローラ５２を仲介し、ＣＭＤ＋ＤＡＴＡ・ＤＭＡＣ５３のデータ転送制御部６３へ伝わる。
転送要求を受信したデータ転送制御部６３は、メモリ１４上の「ＳＴＡＲＴ ＡＤＤＲＥＳＳ（＝０ｘＡ１００＿０２００）」からデータ（ブロックデータ２）をリードし、それをＨＤＤ・Ｉ／Ｆコントローラ５２へ渡す。
ＨＤＤ・Ｉ／Ｆコントローラ５２は、そのデータをシリアルＡＴＡ・Ｉ／Ｆ５１を介してＨＤＤ１６へライトする。
【００５６】
（１３）ＨＤＤ１６へのデータ転送（データライト）が「ＴＲＡＮＳＦＥＲ ＣＮＴ（＝０ｘ４００）」分終了すると、ＨＤＤ１６は、転送終了割り込み信号をシリアルＡＴＡ・Ｉ／Ｆ５１を介してＨＤＤ・Ｉ／Ｆコントローラ５２へ送信する。
ＨＤＤ・Ｉ／Ｆコントローラ５２は、その転送終了割り込み信号を受信すると、割り込み処理を行い、それが終了すると、ＣＭＤ＋ＤＡＴＡ・ＤＭＡＣ５３へ転送終了信号を送信する。
【００５７】
なお、ＨＤＤ１６へのデータの再ライト（再転送）中に、ＨＤＤ１６でビットエラーが発生すると、その情報が再度シリアルＡＴＡ・Ｉ／Ｆ５１へ送られ、以後、上述と同様の処理が繰り返し行われる。但し、この処理の繰り返し回数（リトライ制御の実行回数）が規定回数（予め設定された回数）に達すると、ＣＭＤ＋ＤＡＴＡ・ＤＭＡＣ５３のリトライ制御部７１は、リトライ制御を停止し、ＨＤＤ１６へのデータ転送（データライト）にエラー（異常）が発生した旨をＣＰＵ１２へ通知する。ＣＰＵ１２は、その通知内容を操作部３０上に表示する。
【００５８】
あるいは、ＨＤＤ１６へのデータ転送にエラーが発生した旨の通知内容を示す画像データをエンジン２０（プロッタ）へ出力して用紙上に可視画像としてプリント（画像形成）させることもできる。あるいは、スピーカー等の音声出力部を備えるようにした場合には、上記通知内容を音声出力部によって音声出力させることもできる。
【００５９】
（１４）転送終了信号を受信したＣＭＤ＋ＤＡＴＡ・ＤＭＡＣ５３のディスクリプタ制御部６２は、ディスクリプタ２の「ＮＥＸＴ ＤＥＳＣＲＩＰＴＯＲ ＰＯＩＮＴＥＲ（０ｘＡ０００＿００４０）」のアドレスにあるディスクリプタ３（ＤＰＲ３）をメモリ１４からロードする。
【００６０】
そして、そのロードしたディスクリプタのうち、ＡＴＡレジスタ部のパラメータ（コマンド３）である「ＤＥＶＩＣＥ ＨＥＡＤ（０ｘ００）」，「ＣＹＬＩＮＤＥＲ ＨＩ（０ｘ００）」，「ＣＹＬＩＮＤＥＲ ＬＯＷ（０ｘ０６）」，「ＳＥＣＴＯＲ ＮＵＭＢＥＲ（０ｘ００）」，「ＳＥＣＴＯＲ ＣＮＴ（０ｘ０１）」，「ＣＯＭＭＡＮＤ（Ｗｒｉｔｅ）」をコマンド発行制御部６１へ、データ転送パラメータである「ＳＴＡＲＴ ＡＤＤＲＥＳＳ（＝０ｘＡ１００＿０６００）」，「ＴＲＡＮＳＦＥＲ ＣＮＴ（＝０ｘ４００）」をデータ転送制御部６３へそれぞれ送信する。同時に、ロードしたディスクリプタ３をディスクリプタ保持部７２へ保持する。
【００６１】
（１５）コマンド発行制御部６１は、ディスクリプタ制御部６２から受信したＡＴＡレジスタ部のパラメータを元に、ＨＤＤ・Ｉ／Ｆコントローラ５２へコマンドを発行する。
ＨＤＤ・Ｉ／Ｆコントローラ５２は、そのコマンドを内部のシャドーレジスタ群に設定し、その設定が完了した時点でシリアルＡＴＡ・Ｉ／Ｆ５１を介してＨＤＤ１６へコマンドを発行する。
【００６２】
（１６）ＨＤＤ１６は、そのコマンドを受信すると、シリアルＡＴＡ・Ｉ／Ｆ５１へＷＲＩＴＥ転送要求を送信する。そのＷＲＩＴＥ転送要求は、ＨＤＤ・Ｉ／Ｆコントローラ５２を仲介し、ＣＭＤ＋ＤＡＴＡ・ＤＭＡＣ５３のデータ転送制御部６３へ伝わる。
ＷＲＩＴＥ転送要求を受信したデータ転送制御部６３は、メモリ１４上の「ＳＴＡＲＴ ＡＤＤＲＥＳＳ（＝０ｘＡ１００＿０６００）」からデータをリードし、それをＨＤＤ・Ｉ／Ｆコントローラ５２へ渡す。
ＨＤＤ・Ｉ／Ｆコントローラ５２は、そのデータをシリアルＡＴＡ・Ｉ／Ｆ５１を介してＨＤＤ１６へライトする。
【００６３】
（１７）ＨＤＤ１６へのデータ転送が「ＴＲＡＮＳＦＥＲ ＣＮＴ（＝０ｘ４００）分終了すると、ＨＤＤ１６は、転送終了割り込み信号をシリアルＡＴＡ・Ｉ／Ｆ５１を介してＨＤＤ・Ｉ／Ｆコントローラ５２へ送信する。
ＨＤＤ・Ｉ／Ｆコントローラ５２は、その転送終了割り込み信号を受信すると、割り込み処理を行い、それが終了すると、ＣＭＤ＋ＤＡＴＡ・ＤＭＡＣ５３へ転送終了信号を送信する。
【００６４】
（１８）転送終了信号を受信したＣＭＤ＋ＤＡＴＡ・ＤＭＡＣ５３のディスクリプタ制御部６２は、ディスクリプタ３の「ＮＥＸＴ ＤＥＳＣＲＩＰＴＯＲ ＰＯＩＮＴＥＲ（０ｘＡ０００＿００００）のアドレスを確認し、そのアドレスが“０”であることからデータ転送が終了したと判断して、ＣＰＵ１２に転送終了割り込み信号を送信する。
ＣＰＵ１２は、その転送終了割り込み信号を受信すると、転送終了割り込み処理を行って、データ転送処理を終了する。
【００６５】
このように、ＣＭＤ＋ＤＡＴＡ・ＤＭＡＣ５３のディスクリプタ制御部６２は、ＨＤＤ１６へのデータ転送の制御に必要なディスクリプタを取得し、そのディスクリプタに含まれている所要のコマンド（ＡＴＡレジスタ部のパラメータ）をコマンド発行制御部６１によってＨＤＤ１６へ転送した後、上記ディスクリプタに含まれているパラメータ（データ転送パラメータ）と上記所要のコマンドの転送によってＨＤＤ１６から発行されるコマンドとに基づいてデータ転送制御部６３によって上記データ転送を制御するので、上記ディスクリプタを保持しておき、ＨＤＤ１６から発行される通信エラーの検出時に（他のタイミングでもよい）、そのディスクリプタに含まれている上記コマンドをコマンド発行制御部６１へ、そのディスクリプタに含まれている上記パラメータをデータ転送制御部６３へそれぞれ送信して上記データ転送の制御を再度行わせるリトライ制御を実行することにより、ＨＤＤ１６へのデータの再転送を行う場合におけるＣＰＵ１２の負担の低減とパフォーマンス低下の軽減を図ることができる。
【００６６】
また、ディスクリプタ制御部６２が、ＣＰＵ１２によって作成されたコマンド（ＡＴＡレジスタ部のパラメータ）とパラメータ（データ転送パラメータ）を統合したディスクリプタを用いて制御を行っているため、そのディスクリプタを取得保持して一元管理でき、ＨＤＤ１６から発行されるエラー発生時のリトライ制御のオーバヘッドを最小限に抑えることができる。
【００６７】
さらに、ディスクリプタ制御部６２が、上記リトライ制御をＨＤＤ１６からのエラーを検出している間は繰り返し実行し、その実行回数が予め設定された所定回数に達した場合には、上記リトライ制御を停止することにより、ＨＤＤ１６へのデータの再転送を無駄に行わずに済む。
さらにまた、ディスクリプタ制御部６２が、上記実行回数が上記所定回数に達した場合には、エラーが発生した旨を外部のＣＰＵ１２に通知することにより、その通知を受けたＣＰＵ１２が表示部，音声出力部，又は画像形成部にエラーが発生した旨を出力させてユーザに知らせることができる。
【００６８】
以上、この発明によるデータ転送装置を備えた電子装置の例としてＭＦＰ（デジタル複合機）について説明したが、この発明はそれに限られるものではなく、デジタル複合機，プリンタ，ファクシミリ装置等の他の画像形成装置には勿論、スキャナ装置，デジタルカメラ，携帯電話，ＡＶ機器（ＤＶＤレコーダ等），医療機器（ＣＴ，ＭＲＩ等の画像診断装置など），コンピュータ等の各種電子装置に適用可能である。
【産業上の利用可能性】
【００６９】
以上の説明から明らかなように、この発明によれば、データ転送装置又はそれを備えた電子装置が、コマンド発行型記憶媒体へのデータの再転送を行う場合におけるＣＰＵの負担の低減とパフォーマンス低下の軽減を図ることができる。したがって、この発明を利用すれば、高速データ処理が可能なデータ転送装置および電子装置を提供することができる。
【図面の簡単な説明】
【００７０】
【図１】この発明の実施形態であるデータ転送装置を備えたＭＦＰの構成例を示すブロック図である。
【図２】図１のＨＤＤコントローラ５０の構成例を示すブロック図である。
【図３】図２のＨＤＤ１６内の各レジスタの説明図である。
【図４】図１のメモリ１４上にあるディスクリプタの構成例を示す図である。
【図５】図２のＣＭＤ＋ＤＡＴＡ・ＤＭＡＣ５３の構成例を示すブロック図である。
【００７１】
【図６】図１に示したＣＰＵ１２，メモリ１４，ＨＤＤコントローラ５０内の各部の動作例を示すタイミング図である。
【図７】図１のメモリ１４上の３つディスクリプタとブロックデータの格納位置の一例を示すメモリマップ図である。
【図８】図８の各ディスクリプタの構成例を示す図である。
【図９】従来のＭＦＰの制御系の構成例を示すブロック図である。
【００７２】
【図１０】図９のＣＰＵ１０１およびデータＤＭＡＣ１１１の動作例を示すタイミング図である。
【図１１】従来のＭＦＰの制御系の他の構成例を示すブロック図である。
【図１２】図１１のＣＰＵ１０１，データＤＭＡＣ１１１，およびコマンドＤＭＡＣ１１３の動作例を示すタイミング図である。
【図１３】図１１のＣＰＵ１０１，データＤＭＡＣ１１１，およびコマンドＤＭＡＣ１１３の他の動作例を示すタイミング図である。
【符号の説明】
【００７３】
１０：コントローラ    １１：ＡＳＩＣ    １２：ＣＰＵ    １３：ＲＯＭ
１４：メモリ    １５：ネットワークＩ／Ｆ    １６：ＨＤＤ    ２０：エンジン
３０：操作部    ４０：ＰＣＩバス    ５０：ＨＤＤコントローラ
５１：シリアルＡＴＡ・Ｉ／Ｆ    ５２：ＨＤＤ・Ｉ／Ｆコントローラ
５３：ＣＭＤ＋ＤＡＴＡ・ＤＭＡＣ    ６１：コマンド発行制御部
６２：ディスクリプタ制御部    ６３：データ転送制御部    ６４：制御レジスタ群
７１：リトライ制御部    ７２：ディスクリプタ保持部
【図１】
2007334555.tif 000003
【図２】
2007334555.tif 000004
【図３】
2007334555.tif 000005
【図４】
2007334555.tif 000006
【図５】
2007334555.tif 000007
【図６】
2007334555.tif 000008
【図７】
2007334555.tif 000009
【図８】
2007334555.tif 000010
【図９】
2007334555.tif 000011
【図１０】
2007334555.tif 000012
【図１１】
2007334555.tif 000013
【図１２】
2007334555.tif 000014
【図１３】
2007334555.tif 000015