(57)【要約】  データ記憶システム（１）は、データの記憶空間（３）を有する光ディスク（２）（好ましくは、CD、DVDやBD）、ディスク（２）との間での情報の読み出し／書き込みに適したディスク・ドライブ（１０）、及びディスク・ドライブと協働することができるホスト装置（２０）とを備える。ディスク・ドライブ（１０）は、ホスト装置（２０）から、書き込みコマンド（WRITE（１０）；WRITE（１２）｛SB=0｝；WRITE（１２）｛SB=1｝）又は読み出しコマンド（READ（１０）；READ（１２）｛SB=0｝；READ（１２）｛SB=1｝）を受け取るよう企図される。ディスク・ドライブは、通常モード、及び少なくとも一拡張モードで動作することができる。ディスク・ドライブは、ホスト（２０）から受け取られたモード選択コマンドに応答して、その動作モードを、モードのうちの対応する一モードにセットする。少なくとも、書き込み中に誤りが生じた場合、媒体アクセス装置は、通常モードと比較して拡張モードでは違ったふうに動作する。
2009505319.tif 000002
【特許請求の範囲】
【請求項１】
データを受け取るための記憶空間を有する記憶媒体に情報を書き込むのに適した媒体アクセス装置であって、前記記憶媒体に書き込む対象の書き込みコマンド(WRITE(10);WRITE(12){SB=O};WRITE(12){SB=1})及びデータをホスト装置から受け取るよう企図され、
通常モード及び少なくとも１つの拡張モードで動作することができ、前記ホスト装置から受け取られたモード選択コマンドに応答して、前記モードのうちの対応する一モードに前記媒体アクセス装置の動作モードをセットし、
少なくとも、書き込み中に誤りが生じた場合、前記媒体アクセス装置が、前記通常モードと比較して前記拡張モードでは違ったふうに動作する媒体アクセス装置。
【請求項２】
請求項１記載の媒体アクセス装置であって、前記モード選択コマンドが、MODE  PAGEコマンドに含まれている媒体アクセス装置。
【請求項３】
請求項2記載の媒体アクセス装置であって、前記モード選択コマンドが、前記MODE  PAGEコマンドのバイト0のビット6に含まれている媒体アクセス装置。
【請求項４】
請求項１記載の媒体アクセス装置であって、書き込み中に誤りが生じた場合、前記媒体アクセス装置は、前記拡張モードで動作する場合、エラー・メッセージをホストに常に送出するよう企図された媒体アクセス装置。
【請求項５】
請求項４記載の媒体アクセス装置であって、前記エラー・メッセージを前記ホストに送出した後、書き込み処理を停止し、前記ホスト装置からの更なる命令を待つよう企図された媒体アクセス装置。
【請求項６】
請求項１記載の媒体アクセス装置であって、前記拡張モードで動作する場合、WRITE(10)コマンドの受け取りに応答して、前記受け取ったデータを前記媒体に書き込み、書き込み誤りの生起を求めて検査し、書き込み誤りが生じていることを検出した場合、前記データを代替場所に割り当て直し、欠陥リストを更新し、次いで、エラー・メッセージをホストに送出するよう企図された媒体アクセス装置。
【請求項７】
請求項１記載の媒体アクセス装置であって、前記拡張モードで動作する場合、WRITE(12){SB=1}コマンドの受け取りに応答して、前記受け取ったデータを前記媒体に書き込み、書き込み誤りの生起を求めて検査し、書き込み誤りが生じていることを検出した場合、エラー・メッセージをホストに送出するよう企図された媒体アクセス装置。
【請求項８】
請求項１記載の媒体アクセス装置であって、前記拡張モードで動作する場合、WRITE(12){SB=0}コマンドの受け取りに応答して、前記受け取ったデータを前記媒体に書き込み、書き込み誤りの生起を求めて検査し、書き込み誤りが生じていることを検出した場合、前記データを代替場所に割り当て直し、欠陥リストを更新し、次いで、エラー・メッセージを前記ホストに送出するよう企図された媒体アクセス装置。
【請求項９】
請求項１記載の媒体アクセス装置と協働することができるホスト装置であって、前記媒体アクセス装置に、前記媒体アクセス装置の前記拡張モードをセットする旨のモード選択コマンドを送出するよう企図されたホスト装置。
【請求項１０】
請求項９記載のホスト装置であって、前記媒体アクセス装置にMODE  PAGEコマンドを送出するよう企図され、前記MODE  PAGEコマンドのバイト0のビット6が1にセットされるホスト装置。
【請求項１１】
データを含めるための記憶空間を有する記憶媒体から情報を読み出すのに適した媒体アクセス装置であって、ホスト装置から読み出しコマンド(READ(10);READ(12){SB=0};READ(12){SB=1}}を受け取り、前記媒体から読み出されたデータを前記ホストに送出するよう企図され、
通常モード及び少なくとも１つの拡張モードで動作することができ、前記ホスト装置から受け取られたモード選択コマンドに応答して、前記モードのうちの対応する一モードに前記媒体アクセス装置の動作モードをセットし、少なくとも、読み出し中に誤りが生じた場合、前記媒体アクセス装置が、前記通常モードと比較して前記拡張モードでは違ったふうに動作する媒体アクセス装置。
【請求項１２】
請求項11記載の媒体アクセス装置であって、前記モード選択コマンドが、MODE  PAGEコマンドに含まれている媒体アクセス装置。
【請求項１３】
請求項12記載の媒体アクセス装置であって、前記モード選択コマンドが、前記MODE  PAGEコマンドのバイト0のビット6に含まれている媒体アクセス装置。
【請求項１４】
請求項11記載の媒体アクセス装置であって、読み出し中に、訂正することが可能でない誤りが生じた場合、前記媒体アクセス装置は、前記拡張モードで動作する場合、エラー・メッセージをホストに常に送出するよう企図された媒体アクセス装置。
【請求項１５】
請求項11記載の媒体アクセス装置であって、前記拡張モードで動作する場合、READ(10)コマンドの受け取りに応答して、前記媒体からデータを読み出し、読み出し誤りの生起を求めて検査し、読み出し誤りが生じていることを検出した場合、エラー・メッセージをホストに送出するよう企図された媒体アクセス装置。
【請求項１６】
請求項15記載の媒体アクセス装置であって、前記エラー・メッセージを前記ホストに送出した後、読み出し処理を停止し、前記ホスト装置からの更なる命令を待つよう企図された媒体アクセス装置。
【請求項１７】
請求項11記載の媒体アクセス装置であって、前記拡張モードで動作する場合、READ(12){SB=1}コマンドの受け取りに応答して、前記媒体からデータを読み出し、読み出し誤りの生起を求めて検査し、読み出し誤りが生じた旨が検出された場合、アドレス指定されているセクタのデータがリプレースメント・セクタに割り当て直されているか否かを求めて検査し、肯定の場合、エラー・メッセージをホストに送出し、次いで、次の割り当て直されていないセクタからの読み出し処理に進むよう企図された媒体アクセス装置。
【請求項１８】
請求項１１記載の媒体アクセス装置であって、出力バッファを備え、前記拡張モードで動作する場合、READ(12){SB=1}コマンドの受け取りに応答して、前記媒体からデータを読み出し、読み出し誤りの生起を求めて検査し、読み出し誤りが生じたことを検出した場合、前記読み出し誤りの理由が不良セクタであるか否かを検査し、肯定の場合、前記媒体アクセス装置の出力バッファ内のデータの量を判定するよう企図された媒体アクセス装置。
【請求項１９】
請求項１８記載の媒体アクセス装置であって、前記媒体アクセス装置の出力バッファに、十分なデータが存在している場合、前記データを前記セクタから読み出し直そうとし、さもなければ、前記媒体アクセス装置の出力バッファに、十分なデータが存在していない場合、エラー・メッセージをホストに送出し、読み出し処理に進むよう企図された媒体アクセス装置。
【請求項２０】
請求項１９記載の媒体アクセス装置であって、再試行が首尾良く行われた場合、前記データを前記ホストに送出し、次いで、前記読み出し処理を続けるよう企図された媒体アクセス装置。
【請求項２１】
請求項１１記載の媒体アクセス装置であって、前記拡張モードで動作する場合、READ(12){SB=0}コマンドの受け取りに応答して、前記媒体からデータを読み出し、読み出し誤りの生起を求めて検査し、読み出し誤りが生じた旨が検出された場合、アドレス指定されているセクタのデータがリプレースメント・セクタに割り当て直されているか否かを求めて検査し、肯定の場合、エラー・メッセージをホストに送出し、次いで、次の割り当て直されていないセクタからの読み出し処理に進むよう企図された媒体アクセス装置。
【請求項２２】
請求項１１記載の媒体アクセス装置であって、前記拡張モードで動作する場合、READ(12){SB=0}コマンドの受け取りに応答して、前記媒体からデータを読み出し、読み出し誤りの生起を求めて検査し、読み出し誤りが生じたことを検出した場合、前記読み出し誤りの理由が不良セクタであるか否かを検査し、肯定の場合、前記セクタからの前記データの所定回数の読み出し直しを試行するよう企図された媒体アクセス装置。
【請求項２３】
請求項22記載の媒体アクセス装置であって、前記再試行が首尾良く行われた場合、前記データをホストに送出し、読み出し処理を続け、さもなければ、再試行が首尾良く行われなかった場合、エラー・メッセージを前記ホストに送出し、次いで、前記読み出し処理を続ける媒体アクセス装置。
【請求項２４】
請求項11記載の媒体アクセス装置と協働することができるホスト装置であって、前記媒体アクセス装置に、前記媒体アクセス装置の前記拡張モードをセットする旨のモード選択コマンドを前記媒体アクセス装置に送出するよう企図されたホスト装置。
【請求項２５】
請求項24記載のホスト装置であって、前記媒体アクセス装置にMODE  PAGEコマンドを送出するよう企図され、前記MODE  PAGEコマンドのバイト0のビット6が1にセットされるホスト装置。
【請求項２６】
データ記憶システムであって、
データを受け取るための記憶空間を有する記憶媒体と、
請求項１記載の媒体アクセス装置と、
請求項９記載のホスト装置とを備えるデータ記憶システム。
【請求項２７】
データ記憶システムであって、
データを受け取るための記憶空間を有する記憶媒体と、
請求項11記載の媒体アクセス装置と、
請求項24記載のホスト装置とを備えるデータ記憶システム。
【請求項２８】
請求項26又は27に記載のデータ記憶システムであって、前記記憶媒体が、光ディスク、好ましくは、CD、DVD又はBDであり、前記媒体アクセス装置がディスク・ドライブであるデータ記憶システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に、記録可能な媒体上にデータを記憶する分野に関する。本発明は特に、光学記憶装置（CD、DVD、ブルーレイなど）の分野に関する。以下、本発明はブルーレイの場合について説明するが、これは例としてのみであり、本発明の範囲を限定することを意図するものでない。本発明の要旨は、光学式であるか否かにかかわらず、他のタイプの記録ディスクにも適用可能である。本発明の要旨は、ディスク型以外の記録可能な媒体にも適用可能である。
【背景技術】
【０００２】
光ディスクに情報を記憶することが可能なやり方を含む、一般的な光学データ記憶の手法は一般に知られているので、本明細書では、この手法を詳説しないものとする。簡潔に要約すれば、光記憶ディスクは、データ・パターンの形式で情報を記憶することができる記憶空間の、連続スパイラルの形式又は複数の同心円の形式の少なくとも１つのトラックを備える。記憶空間はブロックに分割される。書き込む対象のデータは、データ・セクタに編成される。各セクタはユーザ・データ部分及びヘッダ部分を備える。データ・セクタは、記憶ブロックに書き込まれる。
【０００３】
光ディスクは読み出し専用タイプであり得る。その場合、製造工程中にディスク上に載せられる情報は、ユーザによってしか読み出すことが可能でない。しかし、光記憶ディスクは、書き込み可能型又は記録可能型でもあり得る。その場合、情報はユーザによって記憶することができる。その場合、この情報は後に取り出すことが可能である。
【０００４】
書き込み可能な光記憶ディスクの記憶空間への情報の書き込み、又は書き込み可能な光記憶ディスク若しくは読み出し専用光記憶ディスクの記憶空間からの情報の読み出しの場合、記憶トラックが、光ビーム（通常、レーザ・ビ―ム）によって走査される。記憶ディスクの実際の処理は、ディスク・ドライブ装置として示す装置によって行われる。この処理は、ディスクを受容する機能、収容する機能、及び回転させる機能を含む。この処理は、レーザ・ビームを生成する機能、レーザ・ビームを誘導し、フォーカスし、ずらす機能、書き込むためにレーザ・ビームを適切に変調する機能、及び読み出すために反射ビームを検出する機能も含む。この処理は、誤り訂正の機能、どの物理アドレスにどの情報を書き込むかを決定する機能等も含む。
【０００５】
ディスク・ドライブ装置の前述の汎用機能は固有に知られている。本発明は、前述の汎用機能の改良を狙いとするものでない。実際に、本発明は、従来技術による汎用機能を用いる一方で実現することができる。したがって、前述の汎用機能の更に詳細な説明は本明細書では省略している。ディスク・ドライブ装置が、記憶する対象のデータを受け取るためのデータ入力、及びディスクから読み出されたデータを出力するためのデータ出力を有することは言うまでもない。
【０００６】
通常、記録媒体としての光ディスク、及びディスクを処理するためのディスク・ドライブ装置以外に、光記憶システムはホスト装置を有する。適切なプログラムを実行するPC、又は、ビデオ・レコーダなどの消費者向装置のアプリケーションであり得るホスト装置は、何をするかをディスク・ドライブに命令する旨のコマンドをディスク・ドライブに送出して、ディスク・ドライブと通信する。読み出しモードでは、ホスト装置は、特定の記憶場所からデータを読み出す旨をディスク・ドライブに命令する読み出しコマンドをディスク・ドライブに送出する。それに応答して、ディスク・ドライブは、ディスクからデータを読み出し、そのデータをホスト装置に転送する。書き込みモードでは、ホスト装置はデータをディスク・ドライブに転送し、特定の記憶場所にデータを書き込むようディスク・ドライブに命令する旨の書き込みコマンドをディスク・ドライブに送出する。それに応答して、ディスク・ドライブは、ホストから受け取られたデータを書き込む。
【０００７】
よって、ディスク・ドライブと通信するために、ホスト装置は、記憶する対象のデータを転送するためのデータ出力、及びディスクから読み出されたデータを受け取るためのデータ入力を有する。更に、ホストは、コマンド信号をディスク・ドライブに送出するためのコマンド出力を有し、ディスク・ドライブは、ホストからコマンド信号を受け取るためのコマンド入力を有する。コマンド出力は、データ出力とは別個であっても、組み合わせた一出力であってもよい。
【０００８】
基本的には、ディスク・ドライブは、命令されたこと（すなわち、読み出し又は書き込みのみ）しか行うことが可能でない。しかし、誤りが前述の動作において生じ得る。ディスク・ドライブは、前述の誤りを訂正しようとし得るが、これは時間を要し、よって、情報スループット・レートを削減する。ホストの「意図」に応じて、情報スループット・レートの削減は許容可能であることもないこともある。問題は、ディスク・ドライブが、データからホストの意図を導き出すことが可能でないという点である。ディスク・ドライブにとっては、全てのデータは、等しい（すなわち、連続したバイトである）。
【０００９】
例えば、データがテキスト文書に関する場合、転送処理に多くかかっても、全てのデータの誤りが、できる限り少ないことが重要である。一方、データがビデオ又はオーディオ記録に関する場合、データ・ストリームが続くことが重要である。誤りは画像内にアーチファクトをもたらし得るが、誤り訂正処理に時間がかかると、画像が全くない画面をもたらし得る。
【００１０】
よって、特に誤りの場合にディスク・ドライブがデータを処理すべきやり方に関する命令をホストがディスク・ドライブに送出することができることが望ましい。特に、データの完全性が重要であるか否か、又は、高いスループットが重要であるか否かに応じて、ディスク・ドライブの動作特性をホストが変えることができるべきである。
【００１１】
基本的に、前述の課題は、対応する命令を書き込みコマンド又は読み出しコマンドそれぞれに含めることによって解決することが可能である。しかし、書き込みコマンドの形式及び読み出しコマンドの形式は、当業者に明らかになるように、対応する標準で定まっている。やはり、基本的には、書き込みコマンド及び読み出しコマンドの形式を再定義することが可能であるが、これは、再定義された形式が、既存の形式と互換でないという課題をもたらすことになる。旧い形式を実現する旧いホストは、新たな形式を実現する新たなディスク・ドライブと協働することができないことになり、新たな形式を実現する新たなホストは、旧い形式を実現する旧いディスク・ドライブと協働できないことになる。
【００１２】
現在、適用可能な標準は、読み出しコマンドの２つのコマンド構造（READ（10）及びREAD（12）それぞれとして示す）。同様に、適用可能な標準は、書き込みコマンドの２つのコマンド構造（WRITE（10）及びWRITE（12）それぞれとして示す）。READ(10)／WRITE(10)コマンドに関しては、READ(12)／WRITE(12)コマンドは、より大きなデータ記憶容量を有するディスク・ドライブにアドレス指定することができるために、より多くのビットを含む。前述のREAD（１２）／WRITE（１２）コマンドは、ディスク・ドライブの動作品質を変えるために、ホストに利用可能な１ビットを含む。これは、いわゆる「ストリーミング・ビット」であり、以下、SBとして示す。READ（１０）／WRITE（１０）コマンドは前述のビットを有しない。
【００１３】
現行の標準によれば、このビットSBを用いて、ディスク・ドライブの完全性のレベルをセットする。このビットがセットされている（SB=1である。ホストが、ストリーミング・モード（ビデオなど）で動作しており、よって、連続したデータ・ストリームが来ることを見込んでいる旨を示す）場合、ディスク・ドライブ（読み出しモード）は、その完全性（すなわち、誤りの生起の可能性）にかかわらず、ディスクから読み出されたデータをホストに供給し、ディスク・ドライブは、誤りが発生したか否かにかかわらず、ホストに通知さえしないことになる。これはCDの場合、差しつかえないことがあり得る。この場合、ホストは、データが損なわれているか否か、及び誤り訂正コードが利用可能であるか否かを、受け取られたデータから検査することによって判定することができる。しかし、DVD、BD、HDの場合、これは、ホストにとって可能でない。よって、データが損なわれている可能性についてホストが通知されることが更に望ましい。
【００１４】
対照的に、ビットがセットされない（SB=0である、ディスク・ドライブに、最高レベルのデータ処理の完全性を見込むモードでホストが動作する旨を示す）場合、ディスク・ドライブ（読み出しモード）は、不良ブロックからのデータの読み出しを再試行することにより、又は代替場所との間をジャンプすることにより、時間を費やし得る。よって、現在利用可能なコマンドを用いれば、ホストは、スループットが高く、完全性が低い（少なくとも規定されていない。SB＝１）データ処理モードと、スループットが低く、完全性が高い（SB=0）データ処理モードとの間でしか選ぶことが可能でない。これは、READ（１２）／WRITE（１２）コマンドを用いることができるホストにしか該当しない。READ（１０）／WRITE（１０）コマンドしか用いることができないホストの場合、結果として生じるディスク・ドライブ動作は、READ（１２）／WRITE（１２）コマンドのSB=0の場合に対応する。
【発明の開示】
【発明が解決しようとする課題】
【００１５】
よって、本発明の重要な目的は、前述の課題を解決することである。
【課題を解決するための手段】
【００１６】
本発明の重要な局面によれば、ディスク・ドライブは、拡張モードで動作することができ、拡張モードにおける動作と通常モードにおける動作との間で切り換える旨のホスト・コマンドに応答する。ホスト・コマンドは効果的には、全米技術標準委員会（NCITS）によってその形式が提案されているコマンドである（Working  Draft,  T10/1361-D,  Revision  10g,  November  12,  2001,  「INFORMATION  TECHNOLOGY  -  SCSI  Multimedia  Commands」  (revision  MMC10g。以下、MMC-3として略示する)）、モード・ページ・コマンドに組み入れられるモード選択コマンドである。
【００１７】
モード選択コマンドは、モード・ページ・コマンドの１ビットに相当し得る。本発明を実現しないホストは、このビットの値ゼロにセットする。本発明によって実現されるディスク・ドライブは、通常モードで動作する旨のコマンドを示すものとしてこれを解釈する。通常モードでは、ディスク・ドライブは、前述の通り、従来技術のディスク・ドライブのように動作する。本発明を実現しないディスク・ドライブは、モード選択コマンドを無視し、以前と同様に（以下、「通常モード」と呼ぶやり方で）動作する。
【００１８】
本発明を実現するホストは、モード選択コマンド・ビットを１にセットすることができる。本発明を実現するディスク・ドライブは、拡張モードにおいて動作する旨のコマンドを示すものとしてこれを解釈する。拡張モードでは、ディスク・ドライブは、通常モードと比較して、READ（１０）／WRITE（１０）コマンド、SB=0であるREAD（１２）／WRITE（１２）コマンド、及びSB=1であるREAD（１２）／WRITE（１２）コマンドに違ったふうに応答する。いずれにせよ、エラー・メッセージがホストに送出される。
【発明を実施するための最良の形態】
【００１９】
本発明の前述並びに他の局面、特徴及び効果は、図面を参照した以下の説明によって更に説明されるであろう。図面では、同じ参照符号は同一又は同様な部分を示す。
【実施例】
【００２０】
図１は、データ記憶媒体２と、媒体アクセス装置１０と、ホスト装置２０とを備えたデータ記憶システム１を略示するブロック図である。通常の実用的な実現形態では、ホスト装置２０は、適切にプログラムされたパソコン（PC）であり得る。データ記憶装置１が、ビデオ・レコーダなどの専用ユーザ装置として実現されることも考えられる。その場合、ホスト装置２０は、前述の装置のアプリケーション部分である。特定の実施例では、データ記憶媒体２は、光ディスク（例えば、DVDやBD）として実現され、その場合、媒体アクセス装置１０は、ディスク・ドライブとして実現される。以下、本発明は、特に光ディスクの実現形態について説明するが、本発明は光ディスクに限定されない。
【００２１】
光ディスク２は記憶空間３を有する。記憶空間３は、連続した螺旋形状の１つ若しくは複数のトラック、又は複数の同心円の形式の１つ若しくは複数のトラックを有する。ここでは、情報をデータ・パターンの形式に記憶することが可能である。この手法は、当業者に一般に知られているので、更に詳細に説明しないものとする。
【００２２】
図１では、ホスト装置２０とディスク・ドライブ１０との間のホスト／ドライブ通信リンクを５で示す。同様に、ディスク・ドライブ１０とディスク２との間のドライブ／ディスク通信リンクを６で示す。ドライブ／ディスク通信リンク６は、記憶空間３のブロックの物理（光学）読み取り／書き込み動作及び物理アドレス指定を表す。ホスト／ドライブ通信リンク５は、データ転送パス及びコマンド転送パスを表す。
【００２３】
ホスト装置２０は、ディスク２上の特定の情報にアクセスしたい場合、情報を見つける対象の、ディスク上の論理アドレスを示す旨のコマンドをディスク・ドライブ１０に送出する。これに応答して、ディスク・ドライブ１０は、上記論理アドレスから始めて情報を読み出し始め、読み出されたデータをホストにリンク５を介して転送する。ディスク・ドライブからホストへのデータ転送の処理は固有に知られているので、前述の処理を本明細書において詳説しないものとする。
【００２４】
図２Aは、READ（１２）コマンド記述子ブロックを示すテーブルである。図２Aのテーブル１によって示すように、READ（１２）コマンドは、それぞれが８ビットの１２バイトを有する。バイト0は演算コードを含み、バイト2乃至5は、データを読み出すべき記憶空間の論理ブロック・アドレスを示すために用い、バイト6乃至9は、転送する対象のデータ・セクタの長さを示すために用いる。バイト１１は制御バイトである。バイト１０のビット７は、前述のストリーミング・ビットである。
【００２５】
バイト１のビット１、２及び５乃至７、並びに、バイト１０のバイト0乃至6は、後に定義するために予約されている（すなわち、定義された意味をまだ有していない）。よって、前述のビットの何れか１つをモード・コマンド・ビットとして用いることができる。
【００２６】
ＲＥＡＤ（１０）コマンドはＲＥＡＤ（１２）コマンドと同様であるが、１０バイトしか有しない。これにより、このコマンドによってアドレス指定することが可能な最大ブロック・アドレスが削減される。
【００２７】
図2Bは、READ（１０）コマンド記述子ブロックを示すテーブルである。図2Bのテーブル２によって示すように、READ（10）コマンドは、それぞれが８ビットの１０バイトを有する。バイト0は演算コードを含み、バイト２乃至５は、データを読み出すべき記憶空間の論理ブロック・アドレスを示すために用い、バイト７乃至８は、転送する対象のデータ・セクタの長さを示すために用いる。バイト9は制御バイトである。
【００２８】
バイト１のビット１、２及び５乃至７、並びに、バイト6のバイト0乃至7は、後に定義するために予約されている（すなわち、定義された意味をまだ有していない）。よって、前述のビットの何れか１つをモード・コマンド・ビットとして用いることができる。
【００２９】
ホスト装置２０は、特定の情報をディスク２に書き込みたい場合、情報を書き込む対象のディスク上の論理アドレスを示す旨のコマンドをディスク・ドライブ１０に送出し、ディスク・ドライブ１０にリンク５を介して書き込む対象のデータをリンクを介して転送する。これに応じて、ディスク・ドライブ１０は、上記論理アドレスから始めて、受け取られた情報を書き込み始める。ホストからディスク・ドライブへのデータ転送の処理は固有に知られているので、本明細書では前述の処理を詳説しないものとする。
【００３０】
図3Aは、WRITE（１２）コマンド記述子ブロックを示すテーブルである。図3Aのテーブル３によって示すように、WRITE（１２）コマンドは、それぞれが８ビットの１２バイトを有する。バイト0は演算コードを含み、バイト2乃至5は、データを記憶すべき記憶空間の論理ブロック・アドレスを示すために用い、バイト6乃至9は、転送する対象のデータ・セクタの長さを示すために用いる。バイト１１は制御バイトである。バイト１０のビット７は、前述のストリーミング・ビットである。
【００３１】
バイト１のビット１、５乃至７、及び、バイト１０のバイト0乃至6は、後に定義するために予約されている（すなわち、定義された意味をまだ有していない）。よって、前述のビットの何れか１つをモード・コマンド・ビットとして用いることができる。
【００３２】
WRITE（１０）コマンドはWRITE（１２）コマンドと同様であるが、１０バイトしか有しない。これにより、このコマンドによってアドレス指定することが可能な最大ブロック・アドレスが削減される。
【００３３】
図3Bは、WRITE（１０）コマンド記述子ブロックを示すテーブルである。図３Bのテーブル４に示すように、WRITE（１０）コマンドは、それぞれ8ビットの１０バイトを有する。バイト0は演算コードを含み、バイト2乃至5は、データを記憶すべき記憶空間の論理ブロック・アドレスを示すために用い、バイト7乃至8は、転送する対象のデータ・セクタの長さを示すために用いる。バイト9は制御バイトである。
【００３４】
バイト１のビット１、２及び５乃至７、並びに、バイト6のバイト0乃至7は、後に定義するために予約されている（すなわち、定義された意味をまだ有していない）。よって、前述のビットの何れか１つをモード・コマンド・ビットとして用いることができる。
【００３５】
READコマンド又はWRITEコマンドのビットの１つをモード・コマンド・ビットとして用いることは、READコマンド又はWRITEコマンドそれぞれのパラメータが、コマンド毎に修正すべきであり、特定のコマンドにのみ該当することを示唆している。実際には、これは不都合であり得る。本発明によれば、前述のアプリケーションを修正する必要なく、ドライブにアクセスするアプリケーション全てに該当する動作モードにドライブをセットすることが好ましい。したがって、本発明の好ましい実施例によれば、MODE  PAGEコマンドのビットをモード・コマンド・ビットとして用いる。
【００３６】
図４Aは、MODE  PAGEコマンド記述子ブロックを一般的に示すテーブルである。図４Bは、MODE  PAGEコマンドの記述子ブロックを特にCDについて示すテーブルである。図４Aのテーブルによって示すように、MODE  PAGEコマンドのサイズは固定でない。サイズはバイト１において定義される。バイト0のビット0乃至5はページ・コードを含む。これは図４Bの例では0Dhである。その同じ例では、バイト２、及びバイト３のビット４乃至７は、後に定義するために予約されている（すなわち、定義された意味をまだ有しない）。同様のことが、一般に、バイト0のビット6についてあてはまる。よって、前述のビットの何れか１つをモード・コマンド・ビットとして用いることができる。本発明の好ましい実施例では、バイト0のビット6をモード・コマンド・ビットとして用いる。これは以下でMCBとして示す。
【００３７】
値MCB=0は「通常モード」を意味する。これは、現行のホスト２０及び現行のディスク・ドライブ１０と互換である。本願のホスト、及び本発明を実現しないホストはこのビットをセットしないので、このビットは、デフォールト値ゼロを有することになる。本発明を実現するディスク・ドライブは、MCBの値を読み出し、動作モードを「通常モード」にセットするか、又はこのモードを維持することによって値MCB=0に応答する。現行のディスク・ドライブ、及び本発明を実現しないディスク・ドライブはMCBを無視し、従来技術と同様に（すなわち、「通常モード」で）動作する。
【００３８】
本発明を実現するホストは、ディスク・ドライブにホストが見込んでいる品質サービスのタイプに応じて、MCB=0のMODE  PAGEコマンドを送出し、よって、「通常モード」のモード・コマンドを事実上送出することができるか、又は、MCB=1のMODE  PAGEコマンドを送出し、よって、「拡張モード」のモード・コマンドを事実上送出することができる。MCB=1のMODE  PAGEコマンドを送出しても、ディスク・ドライブが現行ディスク・ドライブ（又は、いずれにせよ、本発明を実現しないディスク・ドライブ）の場合、影響はない。本発明を実現するディスク・ドライブは、MCBの値を読み出し、動作モードを「拡張モード」にセットするか、又はこのモードを維持することによって値MCB=1に応答する。
【００３９】
ディスク・ドライブがMODEコマンドを受け取らない限り、次のMODEコマンドを受け取るまで、最後のMODEコマンドによってセットされる動作モードを維持する。電源オン又はリセット後、ディスク・ドライブは通常モードで起動する。
【００４０】
図５は、本発明を実現するディスク・ドライブ１０の動作５０の実施例を略示するフロー図である。この実施例は、「通常モード」と「拡張モード」との差をできる限りはっきりと明確にするよう選択される。
【００４１】
工程５１では、ディスク・ドライブ１０は、ホストからコマンドを受け取るか否かを検査する。肯定の場合、ディスク・ドライブ１０は工程５２で、コマンドがMODEコマンドか否かを検査する。肯定の場合、ディスク・ドライブ１０は工程５３で、MCB=1か否かを検査する。肯定の場合、ディスク・ドライブ１０は、（当業者に分かるように、メモリ場所にフラグをセットすることなどにより、）その動作モードを「拡張モード」にセットする（工程５４）。さもなければ、ディスク・ドライブ１０はその動作モードを「通常モード」にセットする（工程５５）。次いで、ディスク・ドライブ１０は工程５１に戻って、更なるコマンドを待つ。
【００４２】
工程５２で、受け取られたコマンドがMODEコマンドでないようである場合、ディスク・ドライブ１０は工程６０で、コマンドがREADコマンドか、WRITEコマンドか、又は本発明に適切でない特定の他のコマンドであるかを検査する。最後のケースの場合、ディスク・ドライブ１０は、工程６１で、指令されたタスクの実行を続ける。
【００４３】
工程６０で、受け取られたコマンドがREAD（１２）コマンドであるような場合、ディスク・ドライブ１０は工程６２でSBの値を検査する。同様に、工程６０で、受け取られたコマンドがWRITE（１２）コマンドであるような場合、ディスク・ドライブ１０は工程63でSBの値を検査する。よって、別々の６つの状況が考えられる。受け取られるコマンドは、READ(10)コマンド、WRITE(10)コマンド、READ(12){SB=0}コマンド、WRITE(12){SB=O}コマンド、READ(12)(SB=I}コマンド,WRITE(12){SB=1}コマンドである。前述の状況毎に、ディスク・ドライブ１０の動作を、図６A乃至図６Gを参照して別個に説明する（動作１１０、１３０、１４０、１６０、１８０、２２０）。
【００４４】
コマンドがWRITE(10)コマンドの場合、ディスク・ドライブは、図６Aに示す動作１１０を行う。ディスク・ドライブは、ホストからデータを受け取り（工程１１１）、前述のデータをディスクに書き込む（工程１１２）。工程１１３で、ディスク・ドライブは、誤りが生じたか否かを検査する。否定の場合、ディスク・ドライブは工程１１１に進む。
【００４５】
誤りが生じた場合、ディスク・ドライブは、通常モードと拡張モードとの何れで動作するかを判定する（工程１１４）。通常モードでは、ディスク・ドライブは、データを交替セクタに割り当て直し（工程１１５）、欠陥リストを更新し（工程１１５）、欠陥リストを更新し（工程１１６）、ホストからのデータの受け取り（工程１１１）に進む（工程１１７）。
【００４６】
ディスク・ドライブが拡張モードで動作する場合、ディスク・ドライブは、データを交替セクタに割り当て直しようとし（工程１１８）、欠陥リストを更新しようとする（工程１１９）（通常モードの工程１１５及び１１６に相当する）。次いで、通常モードから逸脱して、ディスク・ドライブはエラー・メッセージをホストに送出し（工程１２０）、書き込み処理を停止させてホストからの命令を待つ（工程１２１）。一変形では、工程１１５及び１１８を、工程１１４前に実行される一工程に組み合わせることが可能である。同じことが、工程１１６及び１１９にあてはまる。
【００４７】
コマンドがWRITE(12)コマンド{SB=1}の場合、ディスク・ドライブは、図6Bに示す動作130を行う。工程１３１乃至１３４は、動作１１０の工程１１１乃至１１４それぞれと同一である。誤りが見つかり、ディスク・ドライブが通常モードで動作する場合、ディスク・ドライブは、動作１１０の工程１１７と同様に、動作１１０の工程１１５及び１１６を飛ばして、工程１３１に進む（工程１３５）。誤りが生じ、ディスク・ドライブが拡張モードで動作する場合、ディスク・ドライブはエラー・メッセージをホストに送出し（工程１３６）、動作１１０の工程１２０及び１２１と同様に、ホストから命令を待つよう停止し（工程１３７）、よって動作１１０の工程１１８及び１１９を飛ばす。
【００４８】
コマンドがWRITE(12){SB=0}コマンドの場合、ディスク・ドライブは、図6Cに示す動作140を行う。動作１４０の工程１４１乃至１５１は、動作１１０の工程１１１乃至１２１それぞれと同一である。よって、前述の工程を再度説明しないものとする。基本的には、動作１４０は動作１１０と同じである。
【００４９】
コマンドがREAD(10)コマンドの場合、ディスク・ドライブは、図６Dに示す動作160を行う。工程１６１で、ディスク・ドライブは、ディスクからデータを読み出し、工程１６２で、ディスク・ドライブは、誤りが生じたか否かを検査する。誤りが生じていない場合、ディスク・ドライブはデータをホスト（工程１７１）に送出し、次のデータの読み出しに続く（工程１７２）。
【００５０】
データに誤りが含まれていることが見つかった場合、ディスク・ドライブは、通常モードと拡張モードとの何れで動作するかを判定する（工程164）。ディスク・ドライブは、通常モードで動作する場合、欠陥リストを照会して（工程１６５）、データがリプレ―スメント・セクタに割り当て直されているか否かを判定する（工程１６６）。肯定の場合、ディスク・ドライブはリプレースメント・セクタ（工程１６７）に飛び、工程１６２に進む。割り当て直しが行われていない場合、ディスク・ドライブは、工程１６８で、誤りの理由が不良セクタであるか否かを確認する。肯定の場合、ディスク・ドライブは再度、このセクタを数回読み出そうとし得る（工程１６９）。これが首尾良く行われた場合（工程１７０）、ディスク・ドライブはデータをホストに送出する（工程１７１）。再試行が首尾良く行われない場合、又は誤りの理由が不良セクタでない場合、ディスク・ドライブは、誤りを無視し、次のデータの読み出しに進む（工程１７２）。
【００５１】
ディスク・ドライブが拡張モードで動作している間に誤りが生じた場合、ディスク・ドライブは、エラー・メッセージをホストに送出し（工程１７５）、データの読み出しを停止して、ホストからの命令を待つ（工程１７６）。
【００５２】
コマンドがREAD(12){SB=1}コマンドの場合、ディスク・ドライブは、図6E及び図6Fに示す動作180を行う。動作181乃至192は、動作160の工程161乃至172と同一である。よって、前述の工程を再度説明しないものとする。なお、ディスク・ドライブが通常モードで動作する場合、READ(12){SB=1}コマンドの効果は、READ(10)コマンドの効果と同じである。
【００５３】
ディスク・ドライブが拡張モードで動作する場合、ディスク・ドライブは、続いて（工程２００）、欠陥リストを照会して（工程２０１）、リプレースメント・セクタにデータが割り当てられているか否かを確かめる。肯定の場合、ディスク・ドライブは、リプレースメント・セクタを無視し、単にエラー・メッセージをホストに送出し（工程２０９）、次いで、工程１８１にもう一度飛ぶことによって次のデータを読み出す準備が整う。
【００５４】
工程２０２で、データが割り当て直されていないようにみえる場合、ディスク・ドライブは、工程２０３で、誤りの理由が不良セクタであるか否かを判定する。否定の場合、ディスク・ドライブは、前述のように工程２０９に続く。
【００５５】
誤りの理由が不良セクタの場合、再試行によってデータを得ることが可能であり得るが、ホストへのデータ・フローが中断される状況を避けるために、ディスク・ドライブはまず、その出力バッファ１１にデータが十分存在している（新たなデータをディスク・ドライブが直ちに供給する必要なしで一定期間中、ホストがデータを受け取ることが可能である旨を示す）か、否かを検査する。出力バッファ１１内のデータの量が不十分な場合、ディスク・ドライブは、前述の工程２０９に進む。対照的に、出力バッファ１１にデータが十分存在している場合、ディスク・ドライブはもう一度データを読み出そうとし（工程２０５）、工程２０６では、再試行が首尾良く行われているか否かを判定する。否定の場合、ディスク・ドライブは、工程２０４にもう一度飛ぶことによって再度、再試行することが可能である。再試行が首尾良く行われた場合、ディスク・ドライブはデータをホストに送出し（工程２０７）、工程１８１にもう一度飛ぶことによって次のデータ（工程２０８）を受け取る準備が整う。
【００５６】
コマンドがREAD(12){SB=0}コマンドの場合、ディスク・ドライブは、図6Gに示す動作220を行う。動作220の工程221乃至224は、動作160の工程161乃至164と同一である。よって、前述の工程を再度説明しないものとする。ディスク・ドライブは、通常モードで動作する場合、エラー・メッセージをホストに送出し（工程225）、読み出しを停止させてホストからの命令を待つ（工程226）。これは、READ(10)コマンドの場合の拡張モードに対応する（工程１７５乃至１７６）。
【００５７】
ディスク・ドライブは、拡張モードで動作する場合、欠陥リストを照会して（工程２２７）、データがリプレースメント・セクタに割り当て直されているかを検出する。肯定の場合、ディスク・ドライブはリプレースメント・セクタを無視し、単にエラー・メッセージをホストに送出し（工程２３５）、工程２２１に再度飛ぶことによって次のデータを読み出す準備が整う（工程２３３）。
【００５８】
工程２２８で、データが割り当て直されていないようにみえる場合、ディスク・ドライブは工程２２９で、データにおける誤りの理由が不良セクタであるか否かを判定する。否定の場合、ディスク・ドライブは、前述の通り、工程２３５に進むが、誤りの理由が不良セクタの場合、ディスク・ドライブは、再度、不良セクタを数回読み出すことによって、要求データを最善努力で得ようとすることができる（工程２３０）。ディスク・ドライブが再度、不良セクタを読み出そうとする回数(x)は、固定であってもよく、状況に応じて変動してもよい。より高いxの場合、データを首尾良く読み出す可能性が高くなるが、読み出し処理に要する時間が長くなることにもなる。
【００５９】
再試行が首尾良く行われた場合（工程２３１）、ディスク・ドライブは、データをホストに送出し（工程２３２）、次いで、工程２２１に戻ることによって、次のデータを読み出す準備が整う（工程２３３）。さもなければ、数回試行した後、ディスク・ドライブは試行をやめ（工程２３１）、前述の通り、工程２３５に進む。
【００６０】
本発明が前述の例示的な実施例に限定されないが、いくつかの変形及び修正が特許請求の範囲記載の本発明の保護範囲内で考えられることは当業者に明らかである。
【００６１】
以上、本発明による装置の機能ブロックを示すブロック図を参照して本発明を説明してきた。前述の機能ブロックの１つ又は複数はハードウェアで実現することができる。前述の機能ブロックの機能は、個々のハードウェア構成部分によって行われるが、前述の機能ブロックの１つ又は複数がソフトウェアで実現され、よって、前述の機能ブロックの機能が、コンピュータ・プログラムの一若しくは複数のプログラム行、又は、プログラム可能な装置（マイクロプロセッサ、マイクロコントローラ、ディジタル信号プロセッサ等など）によって行われることも考えられる。
【図面の簡単な説明】
【００６２】
【図１】データ記憶システムを略示するブロック図である。
【図２Ａ】読み出しコマンドのコマンド記述子ブロックを示すテーブルである。
【図２Ｂ】読み出しコマンドのコマンド記述子ブロックを示すテーブルである。
【図３Ａ】書き込みコマンドのコマンド記述子ブロックを示すテーブルである。
【図３Ｂ】書き込みコマンドのコマンド記述子ブロックを示すテーブルである。
【図４Ａ】モード・ぺージ・コマンドのコマンド記述子ブロックを示すテーブルである。
【図４Ｂ】モード・ぺージ・コマンドのコマンド記述子ブロックを示すテーブルである。
【図５】本発明による、ディスク・ドライブの動作を示すフロー図である。
【図６Ａ】本発明による、ディスク・ドライブの動作を示すフロー図である。
【図６Ｂ】本発明による、ディスク・ドライブの動作を示すフロー図である。
【図６Ｃ】本発明による、ディスク・ドライブの動作を示すフロー図である。
【図６Ｄ】本発明による、ディスク・ドライブの動作を示すフロー図である。
【図６Ｅ】本発明による、ディスク・ドライブの動作を示すフロー図である。
【図６Ｆ】本発明による、ディスク・ドライブの動作を示すフロー図である。
【図６Ｇ】本発明による、ディスク・ドライブの動作を示すフロー図である。
【図１】
2009505319.tif 000003
【図２Ａ】
2009505319.tif 000004
【図２Ｂ】
2009505319.tif 000005
【図３Ａ】
2009505319.tif 000006
【図３Ｂ】
2009505319.tif 000007
【図４Ａ】
2009505319.tif 000008
【図４Ｂ】
2009505319.tif 000009
【図５】
2009505319.tif 000010
【図６Ａ】
2009505319.tif 000011
【図６Ｂ】
2009505319.tif 000012
【図６Ｃ】
2009505319.tif 000013
【図６Ｄ】
2009505319.tif 000014
【図６Ｅ】
2009505319.tif 000015
【図６Ｆ】
2009505319.tif 000016
【図６Ｇ】
2009505319.tif 000017
【国際調査報告】
2009505319.tif 000018
2009505319.tif 000019