(57)【要約】【課題】画像情報の読出の遅延と、制御情報のデータの欠落の抑止との両立を図る。【解決手段】ハードディスクドライブ装置１００は、ディスク媒体１１５と、ディスク媒体１１５から情報の読出制御を行う読出制御部４０２と、読み出し対象となる情報に対して、当該情報の種類に基づいて、当該情報のリードエラーを無視するか否かを決定する決定部４０５と、リードエラーを無視すると決定された場合に、読出制御部４０２により読み出された情報に対してリードエラーの検出を行わずに、当該情報をホスト装置１５０に対して送信する送信制御部４０７と、を備えた。【選択図】図４
2011008879.tif 000002
【特許請求の範囲】
【請求項１】
ディスク媒体と、
前記ディスク媒体から情報の読出制御を行う読出制御部と、
読み出し対象となる情報に対して、当該情報の種類に基づいて、当該情報のリードエラーを無視するか否かを決定する決定部と、
前記決定部によりリードエラーを無視すると決定された場合に、前記読出制御部により読み出された前記情報に対してリードエラーの検出を行わずに、当該情報をホスト装置に対して送信する送信部と、
を備えたことを特徴とするディスクドライブ装置。
【請求項２】
前記ディスク媒体は、前記情報の種類に応じて、格納先の物理的な位置が異なり、
前記決定部は、前記ディスク媒体における、読み出す対象となる前記情報の物理的な位置に基づいて、当該情報のリードエラーを無視するか否かを決定すること、
を特徴とする請求項１に記載のディスクドライブ装置。
【請求項３】
前記決定部は、ＲＣ（Read Continuous）機能で読出のリトライを行わない設定がなされていた際、読み出す情報の格納されている物理的な位置が、リトライを行う領域に割り当てられている場合、前記読出制御部が読出制御を行った前記情報に対して、リードエラーの検出を行う検出部と、
前記検出部によりリードエラーが検出された場合に、当該情報の読み出しのリトライを行うリトライ制御部と、
をさらに備えたことを特徴とする請求項２に記載のディスクドライブ装置。
【請求項４】
前記ディスク媒体上の物理的な位置に対して、当該位置に格納された情報のリードエラーを無視するか否かを設定する設定部を、さらに備えたことを特徴とする請求項２に記載のディスクドライブ装置。
【請求項５】
情報の読み出す命令を受信する受信部をさらに備え、
前記決定部は、受信した前記命令に付与されていた、リードエラーを無視するか否かを示すフラグに基づいて、当該情報のリードエラーを無視するか否かを決定すること、
を特徴とする請求項１に記載のディスクドライブ装置。
【請求項６】
前記決定部が、当該情報のリードエラーを無視しないと決定した場合に、前記読出制御部が読出制御を行った前記情報に対して、リードエラーの検出を行う検出部と、
前記検出部によりリードエラーが検出された場合に、当該情報の読み出しのリトライを行うリトライ制御部と、
をさらに備えたことを特徴とする請求項５に記載のディスクドライブ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスク媒体から情報を読み出し制御するディスクドライブ装置に関する。
【背景技術】
【０００２】
従来から、ディスクにアクセスしてデータの読み出し、又は書込を行う装置では、アクセスする際に、エラーが生じる場合がある。エラーが生じた場合には、状況に応じて様々な制御が行われる。
【０００３】
例えば、ハードディスクドライブ装置でリードエラーが生じた場合に、当該データを完全に読み込むために、リトライ制御が一般的に行われる。しかしながら、このリトライ制御が行われると、当然ながらデータの転送に遅延が生じる。そこで、読み込むデータの種類によっては、１セクタのデータをビット単位で完全に読み込むことよりも、リトライ制御に基づくデータ転送の遅延の与える影響が大きい場合もある。
【０００４】
これは特に読み出すデータが動画データの場合に影響が大きい。なぜならば、動画データにおいては、１セクタ(標準:５１２バイト)程度のデータが読み出せなくても、前後のデータが読み出せるのであれば、人間の視覚的には問題ないレベル(画像のちらつきレベル)でしか、画像データの劣化は生じない。これに対し、１セクタのデータを厳密に読み込むために磁気ディスクのリトライが繰り返し行われた場合、データ転送の遅延が生じ、最終的には画像表示が停止、スローダウンすることになる。
【０００５】
ところで、データのアクセスの遅延を抑止する技術としては、例えば、引用文献１に記載された技術がある。この引用文献１では、画像ファイルと画像ファイルを制御するための、再生順を管理する管理番号とが格納され、情報記録媒体上に多量の欠陥領域が存在しても、その影響を受けることなく、安定に連続記録を行う技術が記載されている。つまり、領域を適切に管理することで、欠陥領域が生じた場合でも、安定に連続記録、画像データの再生を行うことができる。しかしながら、当該技術を用いたとしても、当該管理番号で管理された領域から、データの読み出しでエラーが生じた場合には、従来通りリトライが繰り返し行われることになる。
【０００６】
このリトライの繰り返しによるデータ転送の遅延を生じるための機能は、従来からハードディスクドライブ装置に実装されている。このモードは一般的にＲＣ(Read  Continuous)機能と呼ばれANSI仕様(SCSI  Block  Commands-3(SBC-3))において定義されている。
【０００７】
このＲＣ機能を使用すると、ホストから当該ＲＣ機能が有効になるよう指示された場合、セクタの読み出しでリードエラーが生じた場合でもリードエラーを無視し、データをそのままホストに転送することができる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０００−１１２６７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述した技術においては、ＲＣ機能が有効にセットされた場合、磁気ディスク上の全てのユーザデータのリードでリトライを実施せず、ホストに対してデータ転送されることになる。これは、動画データ等では問題は生じないが、磁気ディスクには動画データ以外の様々なデータが格納されており、例えば、画像データの管理、識別を行う制御情報(ファイルシステム情報など)も同時に格納される場合が多い。この制御情報はビットレベルで誤りが許されない情報である。このため、制御情報の読み出しでリードエラーが生じた場合には、装置側で適切に内部リトライを行い、リトライで修復できた場合のみデータの転送と共に、交替セクタの割り当てを行い、修復できないのであればエラーを報告する必要がある。
【００１０】
このようにデータの種類によりリトライするか否かを切り替える必要がある。そして、ホスト側から、データの種類によりＲＣ機能の有効、無効を変更すれば対応可能ではあるが、管理方法が煩雑である。
【００１１】
開示の技術は、上記に鑑みてなされたものであって、リードエラーが生じた場合に、データの種別に応じて、適切な制御を行うディスクドライブ装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本願の開示するディスクドライブ装置は、一つの態様において、ディスク媒体と、前記ディスク媒体から情報の読出制御を行う読出制御部と、読み出し対象となる情報に対して、当該情報の種類に基づいて、当該情報のリードエラーを無視するか否かを決定する決定部と、前記決定部によりリードエラーを無視すると決定された場合に、前記読出制御部により読み出された前記情報に対してリードエラーの検出を行わずに、当該情報をホスト装置に対して送信する送信部と、を備える。
【発明の効果】
【００１３】
本願の開示するディスクドライブ装置の一つの態様によれば、データの種類に応じて、リードエラーを無視するか否かを切り替えることで、データの種類に適した読み出し制御を行うことができるという効果を奏する。
【図面の簡単な説明】
【００１４】
【図１】図１は、ディスクドライブ装置の実施例１の構成を示す図である。
【図２】図２は、ディスク媒体の構造を示した概念図である。
【図３】図３は、セクタの構成の例を示した図である。
【図４】図４は、ＭＰＵがファームウェアプログラムを読み込むことで実現される、実施例１のソフトウェア構成を示した図である。
【図５】図５は、実施例１にかかるディスク媒体のゾーン毎に割り当てられた領域を示した概念図である。
【図６】図６は、決定部が、リードエラーを無視するか否かの決定する条件を示したテーブルである。
【図７】図７は、実施例１のハードディスクドライブ装置における、ＲＣ機能＝１の時の、データの読み出し時の処理を示すフローチャートである。
【図８】図８は、ＭＰＵがファームウェアプログラムを読み込むことで実現される、実施例２のソフトウェア構成を示した図である。
【図９】図９は、ハードディスクドライブ装置が備える複数のディスク媒体と、これらディスク媒体におけるシリンダを示した図である。
【図１０】図１０は、ディスク媒体のシリンダ毎に割り当てられた領域を示した概念図である。
【図１１】図１１は、ＭＰＵがファームウェアプログラムを読み込むことで実現される、実施例３のソフトウェア構成を示した図である。
【図１２】図１２は、実施例３のハードディスクドライブ装置における、データの読み出し時の処理を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下に、本願の開示するディスクドライブ装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１６】
図１は、ディスクドライブ装置の実施例１の構成を示す図である。図１は、実施例１に係るハードディスクドライブ装置１００の内部の構成を示すブロック図である。図１に示すように、ハードディスクドライブ装置１００は、ホストインタフェース制御部１０１と、メモリ制御部１０２と、バッファメモリ１０３と、不揮発メモリ１０４と、フォーマット制御回路１０５と、リードチャネル１０６と、ヘッドＩＣ１０７と、ＭＰＵ１０８と、ＲＡＭ１０９と、プログラム用不揮発性メモリ１１０と、サーボ制御部１１１と、ＳＰＭ１１２と、ＶＣＭ１１３と、ヘッド１１４と、ディスク媒体１１５と、コモンバス１１６と、から構成される。また、ハードディスクドライブ装置１００は、ホスト装置１５０と接続されている。
【００１７】
ホストインタフェース制御部（以下、ホストＩＦ制御部とも称す）１０１は、ホストＩＦ１２０を介してホスト装置１５０に接続され、ホスト装置１５０との間の通信を制御する。コモンバス１１６は、ハードディスクドライブ装置１００内部各処理部を接続し、処理部間における種々の情報の受け渡しを行うバスとする。
【００１８】
バッファメモリ１０３は、ホスト装置１５０とハードディスクドライブ装置１００との間で送受信される情報などを一時的に記憶する。そして、バッファメモリ１０３に記憶されたデータは、ホスト装置１５０に出力される。
【００１９】
不揮発メモリ１０４は、ハードディスクドライブ装置の電源が落とされた場合でも保持したい設定情報等のデータを記憶する。
【００２０】
メモリ制御部１０２は、ＭＰＵ１０８から入力される指示に従って、バッファメモリ１０３及び不揮発メモリ１０４の制御を行う。
【００２１】
ＶＣＭ（ヴォイスコイルモータ）１１３は、サーボ制御部１１１によって駆動されるヘッド駆動機構であり、アームをディスク媒体１１５上で回動させる。ＳＰＭ１１４（スピンドルモータ）は、サーボ制御部１１１によって駆動される機構であり、ディスク媒体１１５を回転させる。
【００２２】
サーボ制御部１１１は、ＭＰＵ１０８から入力される指示に従って、ＶＣＭ１１３およびＳＰＭ１１４を駆動する。
【００２３】
ヘッド１１４は、ディスク媒体１１５の回転によって生じる揚力によって、ディスク媒体１１５の表面からわずかに浮いた状態を維持してデータの読み書きを実行する。なお、ヘッド１１４は、データを読み出すためのリードヘッドと、データを書き込むためのライトヘッドとを示すものとする。
【００２４】
ディスク媒体１１５は、読み書き可能なデータ領域を備えている。図２は、ディスク媒体１１５の構造を示した概念図である。図２に示すようにディスク媒体１１５は、異なる径毎にトラックを備えている。図２に示すように、各トラックには、ホストシステムから転送されるデータを記録するための領域(データ領域)が配置されている。そして、データ領域は、複数のセクタで構成されている。セクタは、ディスク媒体１１５に書き込まれるデータの最少単位である。
【００２５】
また、ディスク媒体１１５は、複数のゾーンで構成されており、各ゾーンには複数のトラックが含まれている。本実施例では、ディスク媒体を構成する複数のゾーンのうち、内側の少なくとも一つ以上のゾーンをインナゾーンとする。そして、本実施例におけるディスク媒体１１５では、格納する情報の種類に応じて格納先のゾーンが異ならせるが、具体的な説明については後述する。
【００２６】
そして、ヘッド１１４が、ディスク媒体１１５の半径方向に移動することで、任意のトラックの任意のセクタに対して、ヘッド１１４が走査を行うことができる。そして、ヘッド１１４がディスク媒体１１５のセクタを走査することで、データの読み出し及び書き込みを行うことができる。
【００２７】
また、各トラックに含まれているセクタは、格納するデータの種類の異なるゾーンであっても、常に一定のフォーマットとする。図３は、セクタの構成の例を示した図である。図３に示すようにセクタは、図３に示すように、ディスク媒体１１５の通常セクタは、ＳＢ（sync  byte）と、ユーザデータと、ＣＲＣ（Cyclic  Redundancy  Check）と、ＥＣＣ（Error  Correcting  Code）との領域に分けられる。
【００２８】
ＳＢ（ＳＢ１及びＳＢ２）は、ユーザデータ（Ｄａｔａ１及びＤａｔａ２）の開始を示す信号が読み出される領域である。ユーザデータ（Ｄａｔａ１及びＤａｔａ２）は、ユーザデータが記憶される領域である。ＣＲＣは、データの整合性を検証するためのデータが記憶される領域である。ＥＣＣは、通常セクタデータに含まれるエラーを訂正するためのＥＣＣ情報が記憶される領域である。
【００２９】
図１に戻り、フォーマット制御回路１０５は、ホスト装置１５０とハードディスクドライブ装置１００との間で転送されるデータのエラーチェックなどを行う。例えば、フォーマット制御回路１０５は、データ読み出し時に、リードチャネル１０６からデータを受け付け、必要に応じてかかるデータのエラー訂正を行い、メモリ制御部１０２へ出力する。
【００３０】
リードチャネル１０６は、ホスト装置１５０とハードディスクドライブ装置１００との間で転送されるデータをＡＤ変換したり、変調および復調したりする。例えば、リードチャネル１０６は、データの読み出し時に、ヘッドＩＣ１０７から出力されるデータ信号を増幅し、ＡＤ変換および復調などの所定の処理を施す。また、例えば、リードチャネル１０６は、データの書き込み時に、フォーマット制御回路１０５から入力されたデータをコード変調したりする。
【００３１】
ＲＡＭ１０９は、ＭＰＵ１０８が作業領域として用いられるメモリであり、例えば、制御用のデータやＭＰＵ１０８が読み出したファームウェアプログラム等を格納する。
【００３２】
プログラム用不揮発性メモリ１１０は、ＭＰＵ１０８が読み出すファームウェアプログラムを格納するメモリ（ＦＲＯＭ）とする。
【００３３】
ＭＰＵ１０８は、ファームウェアプログラムによりハードディスクドライブ装置１００の主制御を行う。すなわち、ＭＰＵ１０８は、ホスト装置１５０からのコマンドを解読して各処理部を制御し、ディスク媒体１１５のデータの読み書きを統括制御する。なお、ＭＰＵ１０８は、ＭＣＵ（Micro  Controller  Unit）やＣＰＵ（Central  Processing  Unit）であってもよい。
【００３４】
ここで、実施例１におけるＭＰＵ１６０における処理について具体的に説明する。図４は、ＭＰＵ１６０がファームウェアプログラムを読み込むことで実現される、実施例１のソフトウェア構成を示した図である。
【００３５】
図４に示すように、ハードディスクドライブ装置１００においては、ＭＰＵ１６０がファームウェアプログラムを読み込むことで、書込制御部４０１と、読出制御部４０２と、検出部４０３と、リトライ制御部４０４と、決定部４０５と、受信制御部４０６と、送信制御部４０７と、を含む構成を実現する。
【００３６】
本実施例にかかるハードディスクドライブ装置１００のファームウェアプログラムにおいては、ディスク媒体１１５からデータを読み出す物理的な位置に基づいて、ＲＣ機能に従ってデータを読み出すか否か決定する。つまり、画像データなどのある程度の欠損が生じても問題のないデータが格納された領域であれば、ＲＣ機能に従って読出制御を行い、ビットレベルで誤りが許されないデータ（例えば制御情報）が格納された領域であれば、ＲＣ機能を無視し、必ずリードエラーの検出を行う。
【００３７】
なお、本実施例においては、ＲＣ機能が有効にセットされたということは、リードエラーを無視し、リトライを行わない設定がなされたことを意味する。
【００３８】
具体的には、本実施例においては、ＲＣ機能が有効にセットされた場合、画像データ等が格納された領域であれば、ＲＣ機能に従ってリードエラーは無視される。これに対し、ＲＣ機能が有効にセットされた場合であっても、ビットレベルで誤りが許されないデータ（例えば制御情報）が格納された領域であれば、ＲＣ機能が無視され、リードエラーの検出が行われる。
【００３９】
なお、ＲＣ機能が有効にセットとは、本実施例ではＲＣ機能に‘１’が設定されている場合を示し、ＲＣ機能がセットされていない場合とは、ＲＣ機能に‘０’が設定されている場合を示す。
【００４０】
そして、本実施例にかかるハードディスクドライブ装置１００の、ディスク媒体１１５では、ゾーン毎にＲＣ機能を無視する領域か否か予め設定されているものとする。
【００４１】
図５は、実施例１にかかるディスク媒体１１５のゾーン毎に割り当てられた領域を示した概念図である。図５に示す例では、ディスク媒体１１５は、ゾーン‘０’〜ゾーン‘ｎ’で構成されているものとする。これらゾーンのうち、インナゾーンであるゾーン‘０’〜ゾーン‘ｍ’に制御情報領域が割り当てられ、これら以外のゾーンである‘ｍ＋１’〜ゾーン‘ｎ’は、画像情報領域が割り当てられるものとする。なお、ｍはｎより小さい整数とする。
【００４２】
そして、制御情報領域には、制御情報等のビットレベルで誤りが許されないデータが格納される。そして、画像情報領域には、画像データなどのさまざまなユーザデータが格納されるものとする。このように本実施の形態では、データの種類に応じて、ディスク媒体１１５の格納領域を異ならせている。次に、各処理部が実行する処理について説明する。
【００４３】
受信制御部４０６は、ホストＩＦ制御部１０１に命令を行うことで、ホスト装置１５０との間のデータや命令の受信制御を行う。受信したデータは、必要に応じて、メモリ制御部１０２の制御により、一時的にバッファメモリ１０３に格納されることもある。
【００４４】
送信制御部４０７は、ホストＩＦ制御部１０１に命令を行い、ホスト装置１５０に対してデータの送信制御を行う。
【００４５】
書込制御部４０１は、サーボ制御部１１１に命令を行い、ディスク媒体１１５へ書き込む制御を行う。書き込み制御の対象となるデータは、ホスト装置１５０から書込命令とともに受信したデータであって、一時的にバッファメモリ１０３に格納されたデータも含まれる。
【００４６】
そして、本実施例にかかる書込制御部４０１は、ホスト装置１５０から、制御情報領域内に該当するＬＢＡ（Logical  Block  Address）にデータを書き込む旨の命令を受け付けた場合、ディスク媒体１１５のインナゾーンである制御情報領域にデータを書き込む制御を行う。また、それ以外のデータについては、書込制御部４０１は、書き込み命令と共に受け付けたＬＢＡが指し示すその他の領域（画像情報領域）に、データを書き込む制御を行う。
【００４７】
読出制御部４０２は、サーボ制御部１１１に命令を行うことで、ディスク媒体１１５から、リードチャネル１０６を介してデータの読み出し制御を行う。
【００４８】
決定部４０５は、ディスク媒体１１５からデータを読み出す際に、当該データのリードエラーを無視するか否かを決定する。本実施例においては、読み出されたデータが格納されているゾーンがインナゾーンであるか否か、及びＲＣ機能が有効か無効かに基づいて、リードエラーを無視するか否かを決定する。
【００４９】
決定部４０５がリードエラーを無視すると決定した場合、読出制御部４０２により読み出されたデータは、後述する検出部４０３によるリードエラーの検出が行われないものとする。つまり、リードエラーを無視すると決定した場合、読み出されたデータは、リードエラーの検出が行われることなく、送信制御部４０７からの命令によりホストＩＦ制御部１０１から送信制御がなされる。
【００５０】
図６は、決定部４０５が、リードエラーを無視するか否かの決定する条件を示したテーブルである。図６に示したように、ＲＣ機能が有効にセット（ＲＣ機能＝１）され、且つ画像情報領域からデータが読み出された場合に、決定部４０５はリードエラーを無視すると決定する。そして、ＲＣ機能が無効にセット（ＲＣ機能＝０）され、又は制御情報領域からデータが読み出された場合には、決定部４０５はリードエラーの検出を行うものと決定する。つまり、本実施例にかかるハードディスクドライブ装置１００においては、制御情報領域からデータを読み出す場合、既に設定されているＲＣ機能の影響を受けず、常にＲＣ機能＝０が設定されているものとして、読み出し制御が行われる。
【００５１】
例えば、画像情報領域からデータの読み出し等を行っている際に、リードエラーが多発しパフォーマンスが低下した時点で、ホスト装置１５０が、ＲＣ機能を有効にセットした場合、画像情報領域からのデータの読み出しに限り、リトライ無効で動作可能となる。
【００５２】
なお、ＲＣ機能の有効、無効は、ＡＮＳＩの規定によればＭｏｄｅ  Ｓｅｌｅｃｔコマンドのように装置側の制御を規定するコマンドにより一律に設定されるものとして、説明を省略する。
【００５３】
図４に戻り、検出部４０３は、決定部４０５がリードエラーを無視しないと決定した場合に、読出制御部４０２が読出制御を行ったデータに対して、リードエラーの検出を行う。
【００５４】
リトライ制御部４０４は、検出部４０３によりリードエラーが検出された場合に、リードエラーが検出されたデータの読み出しのリトライの制御を、読出制御部４０２に対して行う。
【００５５】
次に、読み出しの際の処理手順について説明する。図７は、本実施例のハードディスクドライブ装置１００における、ＲＣ機能＝１の時の、データの読み出し時の処理を示すフローチャートである。このように、図７で示す処理手順においては、既にＲＣ機能＝１が設定されているものとする。
【００５６】
まず、受信制御部４０６が、ホスト装置１５０から、ホストＩＦ制御部１０１を制御して、読出命令の受信制御を行う（ステップＳ７０１）。
【００５７】
そして、受信制御部４０６は、受信した読出命令の付与されているＣＤＢ（Command  Descriptor  Block）に格納されている各パラメータの妥当性をチェックする（ステップＳ７０２）。
【００５８】
その後、読出制御部４０２が、受信した読出命令で、読み込み先として示されていたＬＢＡ（Logical  Block  Address）を、ＣＨＳ（Cylinder/Head/Sector）に変換した後、変換先のＣＨＳについてディフェクトチェック（欠陥領域であるか否かの確認）を行う（ステップＳ７０３）。そして、欠陥領域の場合には正常の領域に書き込まれるように制御を行う。
【００５９】
その後、書込制御部４０１は、ヘッド１１４が目標のＣＨＳをシークするよう、サーボ制御部１１１を制御する（ステップＳ７０４）。
【００６０】
そして、サーボ制御部１１１は、ヘッド１１４のオントラックが完了したか否か判定する（ステップＳ７０５）。オントラックが完了しない場合（ステップＳ７０５：Ｎｏ）、ステップＳ７０４の制御を繰り返し行う。
【００６１】
一方、サーボ制御部１１１は、ヘッド１１４のオントラックが完了したと判定した場合（ステップＳ７０５：Ｙｅｓ）、ヘッド１１４の位置まで、目標のセクタが来るのを待機しつつ、フォーマット制御部１０５がフォーマッタを起動する（ステップＳ７０６）。
【００６２】
そして、読出制御部４０２が読み出し開始を指示することで、ヘッドＩＣ１０７が、目標のセクタに対する読み出しを開始する（ステップＳ７０７）。
【００６３】
次に、決定部４０５は、データを読み出したセクタが、制御情報領域であるか否かを判定する（ステップＳ７０８）。
【００６４】
そして、決定部４０５が、制御情報領域ではないと判定した場合（ステップＳ７０８：Ｎｏ）、ＲＣ機能＝１なので、リードエラー検出及びリトライ制御は行わないと決定する。そして、ヘッドＩＣ１０７が、目標のセクタからのデータの読み出しが完了する（ステップＳ７０９）。その際、ステップＳ７０８の決定に基づいて、ＥＣＣチェック等は行わない。
【００６５】
そして、送信制御部４０７が、ホストＩＦ制御部１０１を介して、読み出したデータを、ホスト装置１５０に送信する制御を行う（ステップＳ７１６）。
【００６６】
一方、決定部４０５が、制御情報領域であると判定した場合（ステップＳ７０８：Ｙｅｓ）、ＲＣ機能＝１であっても、リードエラー検出及びリトライ制御を必ず行うと決定する。そして、ヘッドＩＣ１０７が、目標のセクタからデータの読み出しが完了した後、読出制御部４０２が、読み出したデータのＥＣＣチェックを行う（ステップＳ７１０）。
【００６７】
そして、読出制御部４０２は、当該ＥＣＣチェックでエラーが発生したか否かを判定する（ステップＳ７１１）。エラーが発生していないと判定した場合（ステップＳ７１１：Ｎｏ）、次に、読出制御部４０２はＣＲＣデータが正当であるか否かを判定する（ステップＳ７１２）。そして、ＣＲＣデータが正当であると判定した場合（ステップＳ７１２：Ｙｅｓ）、送信制御部４０７が、ホストＩＦ制御部１０１を介して、読み出したデータを、ホスト装置１５０に送信する制御を行う（ステップＳ７１６）。
【００６８】
一方、ステップＳ７１１でエラーが発生したと判定された場合（ステップＳ７１１：Ｙｅｓ）、又はＣＲＣデータが正当でないと判定された場合（ステップＳ７１２：Ｎｏ）、リトライ制御部４０４が、リトライアウトか否か判定する（ステップＳ７１３）。
【００６９】
リトライアウトでないと判定した場合（ステップＳ７１３：Ｎｏ）、リトライ制御部４０４による制御に基づいて、再び目標のセクタの読み出しを行うためにリトライ制御を行う（ステップＳ７１４）。その後、再びステップＳ７０６から処理を開始する。
【００７０】
一方、リトライ制御部４０４が、リトライアウトと判定した場合（ステップＳ７１３：Ｙｅｓ）、ホスト装置１５０に対してエラー報告するよう送信制御部４０７を制御し、コマンドエラーとして処理を終了する（ステップＳ７１５）。これにより、送信制御部４０７が、ホスト装置１５０に対して、読み出しでエラーが生じたことを送信することになる。
【００７１】
また、ハードディスクドライブ装置１００において、ステップＳ７１６でホスト装置１５０にデータを送信した後、セクタリードが継続して行われる、また、全てのセクタリードが終了した場合に処理が終了する。
【００７２】
本実施例においては、上述した処理手順を行うことで、制御情報領域に格納されたデータについては、ＲＣ機能＝１と設定した場合でも、リードエラーの検出が行われるため、精度の良い読取処理が行われると共に、画像情報領域についてはデータ転送の遅延を抑止することが可能となった。
【００７３】
すなわち、従来の処理手順においては、ＲＣ機能＝０の場合には、読み出した全てのデータについて、ＥＣＣチェックとＣＲＣによるデータの正当性のチェックとを行うと共に、ＲＣ機能＝１の場合には、読み出した全てのデータについて、ＥＣＣチェックとＣＲＣによるデータの正当性のチェックを全く行っていなかった。このために、ＲＣ＝１の時に制御情報に誤りが含まれる可能性が向上すると共に、ＲＣ＝０の時には画像データの読み出しに遅延が生じる可能性があった。つまり、情報を区別することなく読み出しを行っていたために、ある種類の情報に対しては適切な処理であったとしても、別の種類の情報については不適切な処理を行っていたという問題があった。
【００７４】
これに対し、本実施例にかかるハードディスクドライブ装置１００では、制御情報と、画像情報等を格納する物理的な位置を変更し、読み出しを行う位置に基づいて、読み出し処理を切り替えるため、各種類の情報について適切な読出制御を行うことができる。
【００７５】
なお、本実施例ではゾーン毎に制御情報領域、又は画像情報領域を割り当てたが、ゾーン毎に制限するものではなく、トラックやシリンダ毎であっても良い。
【００７６】
上述してきたように、本実施例１では、多少の読み取り誤りが許容される動画ファイル、イメージファイルと読み取り誤りの許されない制御情報が、ディスク媒体に混在している場合、ディスクの品質が悪くとも動画再生のパフォーマンス低下を最小限に抑えながら、適切に制御情報の管理を実施できる。これにより従来のＲＣによる一律制御の不具合を解消できるので、ＲＣ機能をより広範で容易に使用可能にする共に、ビット単位で欠落できない制御情報による制御品質を維持することが可能になる。
【実施例２】
【００７７】
上述した第１の実施例においては、予めゾーン毎に格納する情報が定められている例について説明した。しかしながら、制御情報を格納する領域を予め定められている場合に制限するものではなく、ホスト装置１５０からの指定により変更するようにしても良い。そこで、実施例２では、ホスト装置１５０からの指示により制御情報領域を変更する例について説明する。
【００７８】
図８は、実施例２のハードディスクドライブ装置８００における、ＭＰＵ１６０がファームウェアプログラムを読み込むことで実現される、実施例２のソフトウェア構成を示した図である。
【００７９】
図８に示すように、ハードディスクドライブ装置８００においては、ＭＰＵ１６０がファームウェアプログラムを読み込むことで、書込制御部４０１と、読出制御部４０２と、検出部４０３と、リトライ制御部４０４と、決定部８０２と、受信制御部４０６と、送信制御部４０７と、設定部８０１を含む構成を実現する。なお、実施例２は、設定部８０１が追加され、決定部４０５と処理が異なる決定部８０２に変更された点で実施例１と異なる。以下の説明では、上述した実施例１と同一の構成要素には同一の符号を付してその説明を省略している。
【００８０】
そして、実施例１ではゾーン毎に領域が設定されていたのに対し、実施例２では、シリンダ毎に制御情報領域又は画像情報領域を設定するものとする。
【００８１】
図９は、ハードディスクドライブ装置８００が備える複数のディスク媒体１１５と、これらディスク媒体１１５におけるシリンダを示した図である。図に示すように、ディスク媒体１１５の各面を、シリンダとする。本実施の形態では、シリンダ‘０’〜シリンダ‘ｎ’を備えているものとする。
【００８２】
設定部８０１は、受信制御部４０６が、ホスト装置１５０から制御情報領域を示すシリンダの変更命令を受信した場合に、当該変更命令に基づいて、制御情報領域となるシリンダの設定を行う。
【００８３】
図１０は、ディスク媒体１１５のシリンダ毎に割り当てられた領域を示した概念図である。図１０に示す例では、複数のディスク媒体１１５に基づいて、シリンダ‘０’〜シリンダ‘ｎ’で構成されているものとする。これらシリンダのうち、シリンダ‘０’〜シリンダ ‘ｍ’に制御情報領域が割り当てられ、これら以外のシリンダであるシリンダ‘ｍ＋１’〜シリンダ‘ｎ’は、画像情報領域が割り当てられるものとする。なお、ｍはｎより小さい整数とする。
【００８４】
そして、設定部８０１は、シリンダと領域との対応関係を示す情報を、メモリ制御部１０２を介して、不揮発メモリ１０４に対して書込制御を行う。これにより、不揮発メモリ１０４を参照することで、各シリンダに割り当てられた領域が、制御情報領域又は画像情報領域であるのかを特定できる。なお、設定部８０１で設定したことのない場合、初期状態として、予め定められたシリンダが、制御情報領域として設定されているものとする。
【００８５】
そして、データの種類と、各シリンダと領域の対応関係と、を把握しているホスト装置１５０が、書込命令と共に、各データの書き込み先となるアドレス（ＬＢＡ）を指示する。これにより、書込制御部４０１は、制御情報領域又は画像情報領域が割り当てられたシリンダ毎に、適切な種類のデータを書き込むことができる。
【００８６】
決定部８０２は、ディスク媒体１１５からデータを読み出す際に、メモリ制御部１０２を介して不揮発メモリ１０４に格納された各シリンダと領域との対応関係を参照し、読み出すデータについてリードエラーを無視するか否かを決定する。つまり、読み出されたデータが格納されているシリンダが、制御情報領域であるか否かに基づいて、リードエラーを無視するか否かを決定する。
【００８７】
なお、本実施例では、シリンダ毎に制御情報領域又は画像情報領域を割り当てることしたが、シリンダに制限するものではなく、例えばゾーン毎などであっても良い。
【００８８】
上述してきたように、本実施例２では、上述した構成を備えることで、ホスト装置１５０の指示に従って、シリンダ毎に制御情報領域を変更できると共に、各領域に従った読出制御を行うことができる。つまり、実施例２では、実施例１で示した効果の他に、格納するデータに応じて制御情報領域のサイズを変更できるので、データを効率よく格納することができる。
【実施例３】
【００８９】
上述した実施例１〜２においては、データが格納されている位置に基づいてエラー検出等を行うか否か決定する例について説明した。しかしながら、エラー検出等を切り替えるのを、データが格納されている位置に制限するものではなく、読み出すデータの種類に応じて切り替えられればよい。そこで、実施例３では、ホスト装置１５０からの命令に付与されているＣＲＣに格納されたデータで、エラー検出等を切り替える例について説明する。
【００９０】
ところで、従来、ＲＣの有効、無効は、ＡＮＳＩの規定によれば、Mode  Selectコマンドのようにホスト装置１５０側の制御を規定するコマンドにより一律に設定されていた。
【００９１】
しかしながら、ホスト装置１５０は、読出命令を送信している以上、読み出されるデータがどのようなデータ（制御情報又は画像情報）であるか把握している。であるならば、コマンドで設定するのではなく、読み出し命令単位でＲＣ機能を設定する方が、より柔軟にＲＣの有効、無効を切り替えられることができる。
【００９２】
そこで、本実施例では、ホスト装置１５０がＲＣ機能付きの読出命令の発行を可能とした上で、ハードディスクドライブ装置１１００側では、読出命令に付与されたＲＣ機能により、リトライを行うか否かの決定を行う。
【００９３】
なお、本実施の形態では、読出命令毎に含まれている（８、１２、１６又は３２Ｂｙｔｅの）ＣＲＣ(Command  Desriptor  Block)内にＲＣビットを設けることで、ＲＣ機能が有効であるか否かを設定可能とする。
【００９４】
図１１は、ＭＰＵ１６０がファームウェアプログラムを読み込むことで実現される、実施例３のソフトウェア構成を示した図である。
【００９５】
図１１に示すように、実施例３のハードディスクドライブ装置１１００においては、決定部４０５と処理が異なる決定部１１０１に変更された点で実施例１と異なる。以下の説明では、上述した実施例１と同一の構成要素には同一の符号を付してその説明を省略している。
【００９６】
決定部１１０１は、ディスク媒体１１５からデータを読み出す際に、受信制御部４０６が受信した読出命令のＣＲＣに基づいて、読み出すデータのリードエラーを無視するか否かを決定する。
【００９７】
次に、本実施例における、読み出しの際の処理手順について説明する。図１２は、本実施例のハードディスクドライブ装置１１００における、データの読み出し時の処理を示すフローチャートである。
【００９８】
まず、受信制御部４０６が、ホスト装置１５０から、ホストＩＦ制御部１０１を制御して、読出命令の受信制御を行う（ステップＳ１２０１）。
【００９９】
そして、受信制御部４０６は、受信した読出命令の付与されているＣＤＢ（Command  Descriptor  Block）に格納されている各パラメータの妥当性をチェックする（ステップＳ１２０２）。
【０１００】
その後、決定部１１０１が、ＣＤＢに格納されているＲＣパラメータに‘１’がセットされているか否か判定する（ステップＳ１２０３）。決定部１１０１は、ＲＣパラメータに‘１’がセットされていると判定した場合（ステップＳ１２０３：Ｙｅｓ）、ＲＣ機能に‘１’を設定する（ステップＳ１２０４）。
【０１０１】
一方、決定部１１０１は、ＲＣパラメータに‘０’がセットされていると判定した場合（ステップＳ１２０３：Ｎｏ）、ＲＣ機能に‘０’を設定する（ステップＳ１２０５）。
【０１０２】
その後、読出制御部４０２が、受信した読出命令で、読み込み先として示されていたＬＢＡ（Logical  Block  Address）を、ＣＨＳ（Cylinder/Head/Sector）に変換した後、変換先のＣＨＳについてディフェクトチェック（欠陥領域であるか否かの確認）を行う（ステップＳ１２０６）。そして、欠陥領域の場合には正常の領域に書き込まれるように制御を行う。
【０１０３】
その後、書込制御部４０１は、ヘッド１１４が目標のＣＨＳをシークするよう、サーボ制御部１１１を制御する（ステップＳ１２０７）。
【０１０４】
そして、サーボ制御部１１１は、ヘッド１１４のオントラックが完了したか否か判定する（ステップＳ１２０８）。オントラックが完了しない場合（ステップＳ１２０８：Ｎｏ）、ステップＳ１２０７の制御を繰り返し行う。
【０１０５】
一方、サーボ制御部１１１は、ヘッド１１４のオントラックが完了したと判定した場合（ステップＳ１２０８：Ｙｅｓ）、ヘッド１１４の位置まで、目標のセクタが来るのを待機しつつ、フォーマット制御部１０５がフォーマッタを起動する（ステップＳ１２０９）。
【０１０６】
そして、読出制御部４０２が読み出し開始を指示することで、ヘッドＩＣ１０７が、目標のセクタに対する読み出しを開始する（ステップＳ１２１０）。
【０１０７】
次に、決定部１１０１は、ＲＣ機能が‘１’が設定されているか否かを判定する（ステップＳ１２１１）。
【０１０８】
そして、決定部１１０１が、ＲＣ機能が‘１’と判定した場合（ステップＳ１２１１：Ｎｏ）、リードエラー検出及びリトライ制御は行わないと決定する。ヘッドＩＣ１０７が、目標のセクタからのデータの読み出しが完了する（ステップＳ１２１２）。その際、ステップＳ１２１１の決定に基づいて、ＥＣＣチェック等は行わない。
【０１０９】
そして、送信制御部４０７が、ホストＩＦ制御部１０１を介して、読み出したデータを、ホスト装置１５０に送信する制御を行う（ステップＳ１２１６）。
【０１１０】
一方、決定部４０５が、ＲＣ機能が‘１’ではない（ＲＣ機能＝０）と判定した場合（ステップＳ１２１１：Ｙｅｓ）、リードエラー検出及びリトライ制御を必ず行うと決定する。そして、ヘッドＩＣ１０７が、目標のセクタからデータの読み出しが完了するまで制御を行った後、読出制御部４０２が、読み出したデータのＥＣＣチェックを行う（ステップＳ１２１３）。そして、以降の処理は、実施例１のステップＳ７１１〜Ｓ７１６と同様の処理が行われた後に、終了する（ステップＳ１２１４〜Ｓ１２１９）。
【０１１１】
上述してきたように、本実施例３では、読出命令毎に、ＲＣ機能が切り替えられる、換言すれば読み出すデータ毎にＲＣ機能を切り替えられるため、データ毎に適切な読出処理を行うことができる。
【０１１２】
さらに、実施例３では、御情報についてはビット単位で欠落が生じることなくデータを読み出すことができるとともに、画像データなどの早く読み出すことが求められるデータについては、リトライを行わないことで、高速にデータの読出を行うことができる。
【０１１３】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１１４】
（付記１）ディスク媒体と、前記ディスク媒体から情報の読出制御を行う読出制御部と、読み出し対象となる情報に対して、当該情報の種類に基づいて、当該情報のリードエラーを無視するか否かを決定する決定部と、前記決定部によりリードエラーを無視すると決定された場合に、前記読出制御部により読み出された前記情報に対してリードエラーの検出を行わずに、当該情報をホスト装置に対して送信する送信部と、を備えたことを特徴とするディスクドライブ装置。
【０１１５】
（付記２）前記ディスク媒体は、前記情報の種類に応じて、格納先の物理的な位置が異なり、前記決定部は、前記ディスク媒体における、読み出す対象となる前記情報の物理的な位置に基づいて、当該情報のリードエラーを無視するか否かを決定すること、を特徴とする付記１に記載のディスクドライブ装置。
【０１１６】
（付記３）前記決定部は、ＲＣ（Read Continuous）機能で読出のリトライを行わない設定がなされていた際、読み出す情報の格納されている物理的な位置が、リトライを行う領域に割り当てられている場合、前記読出制御部が読出制御を行った前記情報に対して、リードエラーの検出を行う検出部と、前記検出部によりリードエラーが検出された場合に、当該情報の読み出しのリトライを行うリトライ制御部と、をさらに備えたことを特徴とする付記２に記載のディスクドライブ装置。
【０１１７】
（付記４）前記送信部は、前記リトライ制御部によるリトライで前記情報の読み出しを行っても、適切に当該情報を読み出せなかった場合に、前記ホスト装置に対して、読み出しでエラーが生じたことを送信すること、を特徴とする付記３に記載のディスクドライブ装置。
【０１１８】
（付記５）前記ディスク媒体上の物理的な位置に対して、当該位置に格納された情報のリードエラーを無視するか否かを設定する設定部を、さらに備えたことを特徴とする付記２に記載のディスクドライブ装置。
【０１１９】
（付記６）前記決定部は、さらに、前記設定部により、リードエラーを無視する前記物理的な位置が設定されていない場合に、予め定められた物理的な位置から読み出した情報について、リードエラーを無視すると決定すること、を特徴とする付記５に記載のディスクドライブ装置。
【０１２０】
（付記７）情報の読み出す命令を受信する受信部をさらに備え、前記決定部は、受信した前記命令に付与されていた、リードエラーを無視するか否かを示すフラグに基づいて、当該情報のリードエラーを無視するか否かを決定すること、を特徴とする付記１に記載のディスクドライブ装置。
【０１２１】
（付記８）前記決定部が、当該情報のリードエラーを無視しないと決定した場合に、前記読出制御部が読出制御を行った前記情報に対して、リードエラーの検出を行う検出部と、前記検出部によりリードエラーが検出された場合に、当該情報の読み出しのリトライを行うリトライ制御部と、をさらに備えたことを特徴とする付記７に記載のディスクドライブ装置。
【０１２２】
（付記９）前記送信部は、前記リトライ制御部によるリトライで前記情報の読み出しを行っても、適切に当該情報を読み出せなかった場合に、前記ホスト装置に対して、読み出しでエラーが生じたことを送信すること、を特徴とする付記８に記載のディスクドライブ装置。
【符号の説明】
【０１２３】
１００、８００、１１００  ハードディスクドライブ装置
１０１  ホストインタフェース制御部
１０２  メモリ制御部
１０３  バッファメモリ
１０４  不揮発メモリ
１０５  フォーマット制御回路
１０６  リードチャネル
１０７  ヘッドＩＣ
１０８  ＭＰＵ
１０９  ＲＡＭ
１１０  プログラム用不揮発性メモリ
１１１  サーボ制御部
１１２  ＳＰＭ
１１３  ＶＣＭ
１１４  ヘッド
１１５  ディスク媒体
１１６  コモンバス
１２０  ホストＩＦ
１５０  ホスト装置
４０１  書込制御部
４０２  読出制御部
４０３  検出部
４０４  リトライ制御部
４０５、８０２、１１０１  決定部
４０６  受信制御部
４０７  送信制御部
８０１  設定部
【図１】
2011008879.tif 000003
【図２】
2011008879.tif 000004
【図３】
2011008879.tif 000005
【図４】
2011008879.tif 000006
【図５】
2011008879.tif 000007
【図６】
2011008879.tif 000008
【図７】
2011008879.tif 000009
【図８】
2011008879.tif 000010
【図９】
2011008879.tif 000011
【図１０】
2011008879.tif 000012
【図１１】
2011008879.tif 000013
【図１２】
2011008879.tif 000014