(57)【特許請求の範囲】
【請求項１】
ＤＶＤの再生を行うドライブ装置と、上記ＤＶＤの記録データであるディスクデータに対するデータ処理並びに上記ドライブ装置の制御を行うシステム制御装置とを備え、上記ドライブ装置と上記システム制御装置とは、上記ディスクデータが転送されるデータバスと、上記ドライブ装置の動作を制御するコマンドがシステム制御装置から当該ドライブ装置へ送信され、上記ドライブ装置が有している情報が記述されたメッセージが当該ドライブ装置から上記システム制御装置へ送信されるコマンドバスとにより接続され、上記ドライブ装置は、上記ディスクデータからナビゲーションパックを検出し、このナビゲーションパックに含まれるディスクデータのサーチ情報を抽出し、このサーチ情報に基づき上記ＤＶＤを再生制御する制御部を有するディスクドライブシステムであって、
上記ドライブ装置と上記システム制御装置とは、
上記ディスクデータを上記データバスを介して転送するデータインターフェースと、上記ドライブ装置の動作を制御するコマンドを当該システム制御装置から上記コマンドバスを介して当該ドライブ装置へ送信し、当該ドライブ装置が有している情報が記述されたメッセージを当該ドライブ装置から上記コマンドバスを介して当該システム制御装置へ送信するコマンドインターフェースとにより接続され、
上記コマンドインターフェースは、当該コマンドインターフェースのハードウェア構造が定義されたハードウェアレイヤと、当該インターフェースの通信プロトコルが定義されたコミュニケーションレイヤと、上記コマンド及びメッセージが定義されたコマンド／メッセージレイヤとで階層構造化されて構成されているディスクドライブシステム。
【請求項２】
上記ハードウェアレイヤは、少なくとも、
伝送データを上記システム制御装置から上記ドライブ装置へ伝送する第１の伝送ラインと、
伝送データを上記ドライブ装置から上記システム制御装置へ伝送する第２の伝送ラインと、
上記ドライブ装置を起動させる起動信号を上記システム制御装置から上記ドライブ装置へ伝送する起動信号ラインと、
上記ドライブ装置の割り込み要求を上記ドライブ装置から上記システム制御装置へ通知する割り込み要求ラインとを有している請求項１記載のディスクドライブシステム。
【請求項３】
上記コミュニケーションレイヤでは、少なくとも、
コマンド又はメッセージを特定するコードと、
コマンド又はメッセージの引数と、
エラーチェックデータとを含む伝送データを伝送する請求項１記載のディスクドライブシステム。
【請求項４】
上記コミュニケーションレイヤでは、さらに、エラーチェックデータに基づき行われたエラーチェック結果に応じて、伝送されたコマンド又はメッセージの承認／非承認を示すアクノーレッジを返信する請求項３記載のディスクドライブシステム。
【請求項５】
ＤＶＤの再生を行う再生部と、上記ＤＶＤの記録データであるディスクデータを、データバスを介して、上記ＤＶＤに対するデータ処理並びに上記再生部の制御を行うシステム制御装置との間で送受信するデータインタフェースと、
上記再生部の動作を制御するコマンドをコマンドバスを介して上記システム制御装置から受信するとともに、上記再生部が有している情報が記述されたメッセージをコマンドバスを介して上記システム制御装置へ送信するコマンドインターフェースと、
上記ディスクデータからナビゲーションパックを検出し、このナビゲーションパックに含まれるディスクデータのサーチ情報を抽出し、このサーチ情報に基づき上記ＤＶＤを再生制御する制御部を備えるドライブ装置であって、
上記コマンドインターフェースは、当該コマンドインターフェースのハードウェア構造が定義されたハードウェアレイヤと、当該インターフェースの通信プロトコルが定義されたコミュニケーションレイヤと、上記コマンド及びメッセージが定義されたコマンド／メッセージレイヤとで階層構造化されて構成されているドライブ装置。
【請求項６】
上記ハードウェアレイヤは、少なくとも、
伝送データを上記システム制御装置から当該ドライブ装置へ伝送する第１の伝送ラインと、
伝送データを当該ドライブ装置から上記システム制御装置へ伝送する第２の伝送ラインと、
当該ドライブ装置を起動させる起動信号を上記システム制御装置から当該ドライブ装置へ伝送する起動信号ラインと、
当該ドライブ装置の割り込み要求を当該ドライブ装置から上記システム制御装置へ通知する割り込み要求ラインとを有している請求項５記載のドライブ装置。
【請求項７】
上記コミュニケーションレイヤでは、少なくとも、
コマンド又はメッセージを特定するコードと、
コマンド又はメッセージの引数と、
エラーチェックデータとを含む伝送データを伝送する請求項５記載のドライブ装置。
【請求項８】
上記コミュニケーションレイヤでは、さらに、エラーチェックデータに基づき行われたエラーチェック結果に応じて、伝送されたコマンド又はメッセージの承認／非承認を示すアクノーレッジを返信する請求項７記載のドライブ装置。
【請求項９】
ＤＶＤの記録データであるディスクデータに対するデータ処理を行うデータ処理並びに上記ＤＶＤの再生を行うドライブ装置の制御を行う制御部と、上記ディスクデータをデータバスを介して上記ドライブ装置との間で送受信するデータインタフェースと、上記ドライブ装置の動作を制御するコマンドをコマンドバスを介して当該ドライブ装置へ送信するとともに、上記ドライブ装置が有している情報が記述されたメッセージをコマンドバスを介して当該ドライブ装置から受信するコマンドインターフェースとを備え、上記ドライブ装置は、上記ディスクデータからナビゲーションパックを検出し、このナビゲーションパックに含まれるディスクデータのサーチ情報を抽出し、このサーチ情報に基づき上記ＤＶＤを再生制御し、上記制御部は、上記ドライブ装置に対応したコマンドを与えるシステム制御装置であって、
上記コマンドインターフェースは、当該コマンドインターフェースのハードウェア構造が定義されたハードウェアレイヤと、当該インターフェースの通信プロトコルが定義されたコミュニケーションレイヤと、上記コマンド及びメッセージが定義されたコマンド／メッセージレイヤとで階層構造化されて構成されているシステム制御装置。
【請求項１０】
上記ハードウェアレイヤは、少なくとも、
伝送データを当該システム制御装置から上記ドライブ装置へ伝送する第１の伝送ラインと、
伝送データを上記ドライブ装置から当該システム制御装置へ伝送する第２の伝送ラインと、
上記ドライブ装置を起動させる起動信号を当該システム制御装置から上記ドライブ装置へ伝送する起動信号ラインと、
上記ドライブ装置の割り込み要求を上記ドライブ装置から当該システム制御装置へ通知する割り込み要求ラインとを有している請求項９記載のシステム制御装置。
【請求項１１】
上記コミュニケーションレイヤでは、少なくとも、
コマンド又はメッセージを特定するコードと、
コマンド又はメッセージの引数と、
エラーチェックデータとを含む伝送データを伝送する請求項９記載のシステム制御装置。
【請求項１２】
上記コミュニケーションレイヤでは、さらに、エラーチェックデータに基づき行われたエラーチェック結果に応じて、伝送されたコマンド又はメッセージの承認／非承認を示すアクノーレッジを返信する請求項１１記載のシステム制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ディスクドライブシステム、ドライブ装置、及び、システム制御装置に関するものである。
【０００２】
【従来の技術】
従来より、ディスクドライブ用ＩＣとシステムコントロール用ＩＣとのディスクドライブインターフェースとして、ＡＴＡＰＩ規格（ Small Form Factor Committe ATA Packet Interface for CD-ROMs SFF8022i 参照）が普及している。
【０００３】
ＡＴＡＰＩ規格のインターフェースでは、ドライブから送出されるデータと、ホストからのコマンド等とのやり取りを、１つのバスで行う。そのため、ドライブからデータを送出中に、新たなコマンドを発行したり、ドライブからのメッセージの返信を行う場合には、一旦バスをリセットして、データ転送を中断しなければならない。
【０００４】
また、ドライブが指定するタイミングでメッセージを発行することができないので、ホストはドライブの状態を定期的に読み出して監視しなければならない。
【０００５】
また、ＡＴＡＰＩ規格のインターフェースでは、その仕様がハードウェア、通信プロトコル、コマンド仕様が一体的に規定されている。そのため、その仕様の変更等をする場合には、全て一体的に変更しなければならなく、その自由度が小さい。
【０００６】
また、ドライブを制御する場合、システムコントローラが常にディスクドライブの状態を管理し、その状態を把握する必要がある。しかしながら、ＡＴＡＰＩ規格のインターフェースを用いて制御をする場合、ドライブの状態を常に的確に把握することが困難であり、例えば、システムコントローラと、ドライブとの動作状態の把握の違いにより、ドライブの動作が暴走してしまうといった問題が生じていた。
【０００７】
また、近年、ＤＶＤを再生するＤＶＤ再生システムが普及している。ＤＶＤでは、複数のカメラアングルから撮影した映像を記録しておき、再生時にシームレスにアングルを切り換える、いわゆるマルチアングルと呼ばれる機能がある。このＤＶＤでは、Ｃｅｌｌと呼ばれる再生単位を設けられており、このＣｅｌｌ単位でアングルを切り換えることによりシームレスに再生を行うことができる。また、各アングルが記録されているアドレスやＣｅｌｌの境界位置等の管理制御情報は、ＤＶＤデータストリーム中のナビパックのＤＳＩに記述されている。
【０００８】
このようなＤＶＤ再生システムでは、通常、ＤＶＤを再生するドライブ用ＩＣと、このドライブ用ＩＣを制御するとともにビデオデコード処理を行うシステムコントロール用ＩＣとにより構成されている。そのため、アングルの切り換え処理を行う場合、システムコントローラがナビパックを抽出し、その中のＤＳＩから切り換え先のアドレスを算出し、算出したアドレスをドライブ装置に対してコマンドで発行し、処理を行わなければならない。
【０００９】
しかしながら、このような処理をシステムコントローラが行うのは、非常に処理負担が大きく、また、システムコントローラからコマンドを発行する場合には、その応答が遅くなることも考えられる。
【００１４】
【発明が解決しようとする課題】
また、本発明は、ＤＶＤを再生する際に、Ｃｅｌｌの境界でのアングルやストーリのシームレスな切り換え、可変速再生時におけるアドレスの算出をドライブ装置に負担させることができ、システム制御装置の処理負担を軽減させることができるディスクドライブシステム、ドライブ装置及びシステム制御装置を提供することを目的とする。
【００２４】
【課題を解決するための手段】
本発明は、ＤＶＤの再生を行うドライブ装置と、上記ＤＶＤの記録データであるディスクデータに対するデータ処理並びに上記ドライブ装置の制御を行うシステム制御装置とを備え、上記ドライブ装置と上記システム制御装置とは、上記ディスクデータが転送されるデータバスと、上記ドライブ装置の動作を制御するコマンドがシステム制御装置から当該ドライブ装置へ送信され、上記ドライブ装置が有している情報が記述されたメッセージが当該ドライブ装置からシステム制御装置へ送信されるコマンドバスとにより接続され、上記ドライブ装置は、上記ディスクデータからナビゲーションパックを検出し、このナビゲーションパックに含まれるディスクデータのサーチ情報を抽出し、このサーチ情報に基づき上記ＤＶＤを再生制御する制御部を有するディスクドライブシステムであって、上記ドライブ装置と上記システム制御装置とは、上記ディスクデータを上記データバスを介して転送するデータインターフェースと、上記ドライブ装置の動作を制御するコマンドを当該システム制御装置から上記コマンドバスを介して当該ドライブ装置へ送信し、当該ドライブ装置が有している情報が記述されたメッセージを当該ドライブ装置から上記コマンドバスを介して当該システム制御装置へ送信するコマンドインターフェースとにより接続され、上記コマンドインターフェースは、当該コマンドインターフェースのハードウェア構造が定義されたハードウェアレイヤと、当該インターフェースの通信プロトコルが定義されたコミュニケーションレイヤと、上記コマンド及びメッセージが定義されたコマンド／メッセージレイヤとで階層構造化されて構成されていることを特徴とする。
【００２５】
本発明は、ＤＶＤの再生を行う再生部と、上記ＤＶＤの記録データであるディスクデータを、データバスを介して、上記ＤＶＤに対するデータ処理並びに上記再生部の制御を行うシステム制御装置との間で送受信するデータインタフェースと、上記再生部の動作を制御するコマンドをコマンドバスを介して上記システム制御装置から受信するとともに、上記再生部が有している情報が記述されたメッセージをコマンドバスを介して上記システム制御装置へ送信するコマンドインターフェースと、上記ディスクデータからナビゲーションパックを検出し、このナビゲーションパックに含まれるディスクデータのサーチ情報を抽出し、このサーチ情報に基づき上記ＤＶＤを再生制御する制御部を備えるドライブ装置であって、上記コマンドインターフェースは、当該コマンドインターフェースのハードウェア構造が定義されたハードウェアレイヤと、当該インターフェースの通信プロトコルが定義されたコミュニケーションレイヤと、上記コマンド及びメッセージが定義されたコマンド／メッセージレイヤとで階層構造化されて構成されていることを特徴とする。
【００２６】
本発明は、ＤＶＤの記録データであるディスクデータに対するデータ処理を行うデータ処理並びに上記ＤＶＤの再生を行うドライブ装置の制御を行う制御部と、上記ディスクデータをデータバスを介して上記ドライブ装置との間で送受信するデータインタフェースと、上記ドライブ装置の動作を制御するコマンドをコマンドバスを介して当該ドライブ装置へ送信するとともに、上記ドライブ装置が有している情報が記述されたメッセージをコマンドバスを介して当該ドライブ装置から受信するコマンドインターフェースとを備え、上記ドライブ装置は、上記ディスクデータからナビゲーションパックを検出し、このナビゲーションパックに含まれるディスクデータのサーチ情報を抽出し、このサーチ情報に基づき上記ＤＶＤを再生制御し、上記制御部は、上記ドライブ装置に対応したコマンドを与えるシステム制御装置であって、上記コマンドインターフェースは、当該コマンドインターフェースのハードウェア構造が定義されたハードウェアレイヤと、当該インターフェースの通信プロトコルが定義されたコミュニケーションレイヤと、上記コマンド及びメッセージが定義されたコマンド／メッセージレイヤとで階層構造化されて構成されていることを特徴とする。
【００３０】
【発明の実施の形態】
本発明の実施の形態として、本発明を適用したディスクドライブシステムについて説明を行う。
【００３１】
全体構成
本発明の実施の形態のディスクドライブシステムは、ＤＶＤ（ＤＶＤｓｐｅｃｉｆｉｃａｔｉｏｎ  ｆｏｒ  Ｒｅａｄ-ｏｎｌｙ-Ｄｉｓｃ）、ＶｉｄｅｏＣＤ（Ｗｈｉｔｅ  ｂｏｏｋ）又はＣＤ-Ａｕｄｉｏ（Ｒｅｄ  Ｂｏｏｋ）に記録されているデータを読み出し、読み出したデータのデコード処理を行ってビデオデータ、オーディオデータ、プログラムデータ等を出力する再生システムである。このディスクドライブシステムは、図１に示すように、ドライブ装置１と、ホストコントローラ２とから構成されている。ドライブ装置１及びホストコントローラ２は、例えばそれぞれ独立した半導体チップにＩＣ化され、ハードウェア化される。
【００３２】
ドライブ装置１は、ＤＶＤ、ＶｉｄｅｏＣＤ、ＣＤ-Ａｕｄｉｏ（以下、総称する場合には単にディスクと呼ぶ。）からディスクデータを読み出し、各ディスクに対応したチャネルデコード処理（復調、誤り訂正）を行う。そして、ドライブ装置１は、チャネルデコード処理を行ったディスクデータを、ホストコントローラ２に転送する。
【００３３】
ホストコントローラ２は、Ａ／Ｖデコーダ２ａ、及び、システムコントローラ２ｂ等を備えており、ドライブ装置１から転送されたデータのＡ／Ｖデコード処理（ＭＰＥＧデコード処理，ＣＤ−ＲＯＭデコード処理等）、システム全体の管理、ドライブ装置１の再生制御、ドライブ装置１の操作等を行う。
【００３４】
このようなドライブ装置１とホストコントローラ２とは、Ａ／Ｖ(Audio/Video)バスインターフェース４とコマンドインターフェース５とによって接続されている。また、必要に応じて、これら２つのインターフェースに加え、ＬｅｇａｃｙＣＤ−ＤＳＰインターフェース６でも接続される。
【００３５】
Ａ／Ｖバスインターフェース４は、ディスクから読み出されたディスクデータを、ドライブ装置１からホストコントローラ２へ転送するパラレルバスインターフェースである。
【００３６】
コマンドインターフェース５は、ドライブ装置１の動作を制御するためのコマンド、及び、ドライブ装置１の状態やディスクの情報等が記述されたメッセージを転送するインターフェースである。
【００３７】
ＬｅｇａｃｙＣＤ−ＤＳＰインターフェース６は、再生対象となるディスクのうちのＶｉｄｅｏＣＤ及びＣＤ-Ａｕｄｉｏから再生されたディスクデータを、ドライブ装置１からホストコントローラ２へ転送するシリアルバスインターフェースである。このＬｅｇａｃｙＣＤ−ＤＳＰインターフェース６は、ホストコントローラ２が、上記Ａ／Ｖバスインタフェース４に対応していない場合に用いることが可能である。なお、ＶｉｄｅｏＣＤ及びＣＤ-Ａｕｄｉｏから再生されたディスクデータは、上記Ａ／Ｖバスインターフェース４によっても転送可能であるため、本ディスクドライブシステムでは、このＬｅｇａｃｙＣＤ−ＤＳＰインターフェース６は、必要に応じて設ければよい。
【００３８】
ドライブ装置の構成
つぎに、ドライブ装置１のブロック構成について図２を参照して説明をする。
【００３９】
ドライブ装置１は、メカユニット１１と、再生制御部１２とから構成される。
【００４０】
メカユニット１１は、ディスクを回転駆動する回転駆動機構、ディスクを着脱自在に上記回転駆動機構に装填するディスクトレイ、ディスクにレーザ光を照射して再生信号を検出するピックアップ、ピックアップのスレッド制御を行うスレッド機構等を備えて構成される。
【００４１】
再生制御部１２は、ＲＦアンプ１３と、サーボコントローラ１４と、ＤＶＤチャネルデコーダ１５と、ＤＶＤエラー訂正回路１６と、ＣＤチャネルデコーダ１７と、ＣＤエラー訂正回路１８と、トラックバッファコントローラ１９と、トラックバッファ２０と、システムコントローラ２１とを備えて構成されている。
【００４２】
ＲＦアンプ１３は、メカユニット１１内のピックアップにより検出された電気信号から、再生信号、フォーカスエラー信号、トラッキングエラー信号を生成する。ＲＦアンプ１３により生成された再生信号は、ＤＶＤチャネルデコーダ１５及びＣＤチャネルデコーダ１７に供給される。また、ＲＦアンプ１３により生成されたフォーカスエラー信号やトラッキングエラー信号等は、サーボコントローラ１４に供給される。
【００４３】
サーボコントローラ１４は、ＲＦアンプ１３から供給されたフォーカスエラー信号やトラッキングエラー信号等に基づき、サーボシステムの制御を行う。すなわち、サーボコントローラ１４は、メカユニット１１のピックアップ、スレッド機構、回転駆動機構等を駆動することによって、フォーカスサーボ制御、トラッキングサーボ制御、スレッドサーボ制御、スピンドルサーボ制御等の各種サーボ制御を行う。
【００４４】
ＤＶＤチャネルデコーダ１５及びＤＶＤエラー訂正回路１６は、ＤＶＤの再生を行う場合に動作する。ＤＶＤチャネルデコーダ１５は、入力された再生信号に対して符号化処理や復調処理等を行って、デジタルデータを出力する。ＤＶＤエラー訂正回路１６は、復調されたデジタルデータに付加されているパリティ（ＰＩ，ＰＯ）を用いてエラー訂正処理を行う。エラー訂正がされたデータは、ＤＶＤデータとしてトラックバッファコントローラ１９及びシステムコントローラ２１に供給される。
【００４５】
ＣＤチャネルデコーダ１７及びＣＤエラー訂正回路１８は、ＶｉｄｅｏＣＤ及びＣＤ-Ａｕｄｉｏの再生を行う場合に動作を行う。ＣＤチャネルデコーダ１７は、入力された再生信号に対して符号化処理や復調処理等を行って、デジタルデータを出力する。ＣＤエラー訂正回路１８は、復調されたデジタルデータに付加されているパリティ（Ｃ１，Ｃ２）を用いてエラー訂正処理を行う。エラー訂正がされたデータは、ＣＤデータとしてトラックバッファコントローラ１９に供給される。また、ＬｅｇｃｙＣＤ−ＤＳＰインターフェース６を用いる場合には、このエラー訂正がされたデータは、トラックバッファコントローラ１９に供給されず、直接ＬｅｇｃｙＣＤ−ＤＳＰインターフェース６を介してホストコントローラ２に送出される。
【００４６】
トラックバッファコントローラ１９は、入力されたディスクデータをトラックバッファ２０に一時的に格納する。そして、トラックバッファコントローラ１９は、トラックバッファ２０に格納したディスクデータを、Ａ／Ｖバスインターフェース４を介して、ホストコントローラ２に送出する。
【００４７】
システムコントローラ２１は、このドライブ装置１のシステム制御を行う。このシステムコントローラ２１は、ホストコントローラ２からコマンドインターフェース５を介して供給されるコマンド等に従いシステム制御を行う。また、システムコントローラ２１は、ＤＶＤの再生を行う場合、ＤＶＤデータからＤＳＩを抽出し、ＤＳＩテーブルを作成する。システムコントローラ２１は、セル単位での再生命令や変速再生命令がホストコントローラ２から与えられたときには、ＤＳＩテーブルを参照して、読み出しアドレスを算出する。また、システムコントローラ２１は、必要に応じて、ホストコントローラ２に対してコマンドインターフェース５を介してメッセージを供給する。なお、このコマンド、メッセージについては、その詳細を後述する。
【００４８】
以上のように本発明の実施の形態のディスクドライブシステムでは、ディスクデータを転送するインターフェースと、コマンド及びメッセージを転送するインターフェースとを分離して構成している。このため、ディスクデータの転送状態に依存することなく、コマンドやメッセージを転送することが可能となる。従って、ディスクデータを転送している最中に別のコマンドを発行する場合などでも、バスリセットを行って転送を中断する必要がなくなり、効率的に処理を行うことができる。
【００４９】
ドライブ装置１のステート
つぎに、ドライブ装置１の動作状態の制御について説明をする。
【００５０】
ドライブ装置１は、本ドライブ装置１の振る舞いを定義する複数のステートから構成されるステートマシーンにより動作が管理及び制御される。ドライブ装置１内のシステムコントローラ２１は、コマンドインターフェース５を介してホストコントローラ２から転送されてくるコマンド、或いは、ディスクの状態等に応じて、ステートを遷移させる。
【００５１】
図３に、このドライブ装置１を管理及び制御するステートマシーンを示す。
【００５２】
このステートマシーンは、リセットステートＳ１、クローズステートＳ２、オープンステートＳ３、レディーステートＳ４、プレイステートＳ５、スリープステートＳ６、Ｎｏ／ＢａｄディスクステートＳ７の７つのステートから構成される。なお、各ステートＳ１〜Ｓ７のうち、リセットステートＳ１は、ドライブ装置１を初期状態とした初期ステートであり、ステートＳ２〜Ｓ７は、ドライブ装置１の動作可能な状態とした動作ステートである。
【００５３】
リセットステートＳ１は、本ドライブ装置１のハードウェアリセットがされた直後の初期状態である。このステートマシーンは、電源投入後、ホストコントローラ２からコマンドインターフェース５を介して、ＤＲＶＲＳＴ信号がアサートされると、まず、このリセットステートＳ１へ遷移する。従って、このドライブ装置１は、電源を投入した直後やリセットボタン等を押した直後に、動作可能な状態となるのではなく、電源が投入され且つホストコントローラ２によって明示的に信号が与えられることにより、ハードウェアリセットされる。このディスクドライブシステムでは、ホストコントローラ２によって明示的にハードウェアリセット状態とされるので、ホストコントローラ２とドライブ装置１との動作状態の不整合を防ぐことが可能となり、安定した起動を行うことができる。なお、ＤＲＶＲＳＴ信号は、コマンドインターフェース５のハードウェアレイヤで規定されている信号であるが、その詳細については後述する。
【００５４】
また、ドライブ装置１は、このリセットステートＳ１で、ホストコントローラ２からＳｅｔＭｏｄｅコマンドが発行されることにより、動作ステート（具体的にはクローズステートＳ２）へ遷移する。このディスクドライブシステムでは、ホストコントローラ２からコマンドを与えられることによって明示的に初期ステートから動作ステートへ遷移するので、ホストコントローラ２とドライブ装置１との動作状態の不整合を防ぐことが可能となり、安定した起動を行うことができる。例えば、ドライブ装置１がホストコントローラ２より先に起動してしまい、コマンド不定によりドライブ装置１が暴走してしまうといった、不測の事態を防ぐことができる。
【００５５】
また、このＳｅｔＭｏｄｅコマンドでは、ドライブのファームウェアの選択や、インターフェースの構成の選択（ハードウェアレイヤ、コミュニケーションレイヤ、コマンド＆メッセージレイヤの選択）等の、ドライブの動作モードの選択を行う。従って、このディスクドライブシステムでは、ホストコントローラ２により、ドライブ装置１の動作モードが選択されるため、ドライブ装置１とホストコントローラ２との動作モードの不整合を防ぐことができる。なお、このＳｅｔＭｏｄｅコマンドについては、その詳細を後述する。
【００５６】
クローズステートＳ２は、ディスクが載置されるディスクトレイが閉じた直後、或いは、リセットステートＳ１から遷移してきた直後に、或いは、Ｒｅｓｔａｒｔコマンドが発行されたのちに、遷移するステートである。クローズステートＳ２は、サーボシステムの起動、メディアタイプの検出、ＴＯＣ等のディスクを再生するための管理データであるメディア情報の新たな読み込み、トラックバッファのクリア、インタフェースのリセットといった、ソフトウェアリセット処理を行うステートである。このクローズステートＳ２で、サーボシステムが起動できなかった場合やメディア情報が検出できなかった場合には、再生不可能なディスクがディスクトレイに装填されている（ｂａｄ  ｄｉｓｃ）、或いは、ディスクトレイにディスクが装填されていない（ｎｏ  ｄｉｓｃ）と判断する。Ｎｏ／Ｂａｄディスクと判断した場合には、このクローズステートＳ２からＮｏ／ＢａｄディスクステートＳ７に遷移する。また、ドライブ装置１に有効なディスクが装填されており、サーボシステムの起動及びメディア情報の検出が完了した場合には、このクローズステートＳ２からレディーステートＳ４に遷移する。
【００５７】
オープンステートＳ３は、ディスクトレイが開いている状態、すなわち、ディスクトレイにディスクを装着、或いは、ディスクトレイからディスクを取り出しできる状態である。ドライブ装置１は、クローズステートＳ２，レディーステートＳ４，プレイステートＳ５，スリープステートＳ６，Ｎｏ／ＢａｄディスクステートＳ７の各ステートで、ＯｐｅｎＴｒａｙコマンドが発行された場合に、このオープンステートＳ３へ遷移する。
【００５８】
レディーステートＳ４は、ディスクをすぐに再生することが可能な待機状態である。すなわち、サーボシステムが起動しており、且つ、システムコントローラ２１がメディア情報を保持していて、再生コマンド（ＰｌａｙＤＶＤコマンド、ＰｌａｙＣＤコマンド等）を受け付けることができる状態である。ドライブ装置１は、クローズステートＳ２で有効なディスクが装填されていると判断された場合、プレイステートＳ５でＳｔｏｐコマンドが発行された場合、プレイステートＳ５で再生が完了した場合、或いは、スリープステートＳ６でＷａｋｅＵｐコマンドが発行された場合、このレディーステートＳ４に遷移する。
【００５９】
プレイステートＳ５は、ディスクを再生している状態である。なお、ここでは、バックワード再生や変速再生等の特殊再生やポーズ等も、このプレイステートＳ５で行われる。ドライブ装置１は、レディーステートＳ４で再生関連のコマンド（ＰｌａｙＤＶＤコマンド、ＰｌａｙＣＤコマンド等）が発行されると、このプレイステートＳ５に遷移する。
【００６０】
スリープステートＳ６は、レーザ、スピンドル、フォーカス、トラッキング、スレッド等のサーボシステムが全てオフした状態である。ただし、このスリープステートＳ６では、ディスクトレイには再生可能なディスクが装填されており、また、そのディスクのメディア情報も保持している。ドライブ装置１は、レディーステートＳ４でＳｌｅｅｐコマンドが発行されると、このスリープステートＳ６に遷移する。
【００６１】
Ｎｏ／ＢａｄディスクステートＳ７は、ディスクを再生することができない動作状態である。すなわち、ディスクトレイにディスクが装填されていないか、或いは、再生できない無効なディスクが装填されている状態である。ドライブ装置１は、クローズステートＳ２で、サーボシステムが起動しなかったり或いはメディア情報を検出できずにＮｏ／Ｂａｄディスクと判断された場合に、このＮｏ／ＢａｄディスクステートＳ７に遷移する。
【００６２】
以上のようにドライブ装置１では、ドライブの各ステートを定め、そのステートにおける振る舞いを定めたステートマシーンにより動作を制御及び管理することによって、ホストコントローラ２側がドライブ装置１の状態を的確に把握することができる。そのため、ホストコントローラ２がドライブ装置１に対する次の制御を、容易且つ的確に行うことができる。
【００６３】
また、このドライブ装置１では、初期ステートとしてリセットステートＳ１を設け、電源投入後、ホストコントローラ２からコマンドインターフェース５を介してＤＲＶＲＳＴ信号がアサートされたときに、初めてこのリセットステートＳ１に遷移するように状態を制御している。従って、ドライブ装置１は、電源を投入した直後やリセットボタン等を押した直後にハードウェアリセット状態とするのではなく、ホストコントローラ２によって明示的にハードウェアリセット状態とされる。このため、ホストコントローラ２によって明示的にハードウェアリセット状態に遷移するので、ホストコントローラ２とドライブ装置１との起動状態の不整合を防ぐことが可能となり、安定した起動動作を行うことができる。
【００６４】
また、このドライブ装置１は、リセットステートＳ１のときにＳｅｔＭｏｄｅコマンドが発行されることにより、初期ステートから動作可能な動作ステートへ遷移する。このＳｅｔＭｏｄｅコマンドでは、ドライブのファームウェアの選択や、インターフェースの構成の選択（ハードウェアレイヤ、コミュニケーションレイヤ、コマンド＆メッセージレイヤの選択）等の、ドライブの動作モードの選択を行う。従って、このディスクドライブシステムでは、ホストコントローラ２により、ドライブ装置１の動作モードが選択されるため、ドライブ装置１とホストコントローラ２との動作モードの不整合を防ぐことができる。
【００６５】
インタフェースのレイヤ構造
つぎに、ドライブ装置１とホストコントローラ２との間のインタフェースについて説明をする。
【００６６】
図４に、ドライブ装置１とホストコントローラ２との間のインターフェースのレイヤ構造を示す。
【００６７】
ＡＶインターフェース（Ａ／Ｖバスインターフェース４及びＬｅｇａｃｙＣＤ−ＤＳＰインターフェース６）は、図４（Ａ）に示すように、ハードウェアレイヤの１階層のみでその仕様が定められている。このＡＶバスインターフェースのハードウェアレイヤでは、信号の仕様、データの伝送タイミングの仕様、データの転送フォーマットの仕様が定められている。
【００６８】
一方、コマンドインターフェースでは、図４（Ｂ）に示すように、ハードウェアレイヤ、コミュニケーションレイヤ、コマンド＆メッセージレイヤの３階層で仕様が定められている。このコマンドインターフェースのハードウェアレイヤでは、信号の仕様、データ伝送タイミングの仕様などのハードウェア的な仕様が定められている。また、コミュニケーションレイヤでは、データの伝送フォーマット等の通信に関する仕様が定められている。また、コマンド＆メッセージレイヤでは、コマンド及びメッセージの記述内容の仕様が定められている。
【００６９】
ドライブ装置１及びホストコントローラ２は、それぞれ、ハードウェアレイヤで規定された仕様のモジュール、コミュニケーションレイヤで規定された仕様に対応したモジュール、コマンド＆メッセージレイヤで規定された仕様に対応したモジュールをソフトウェア或いはハードウェア的に設けて、コマンドインターフェースを構成する。このように各階層毎にそれぞれ定義されたモジュールを設けてインターフェースを構成することにより、例えばインターフェースの仕様変更があった場合であっても、その仕様の変更があった階層のモジュールのみを交換すればよく、他のモジュールは交換せずに対応を図ることができる。例えば、コマンドやメッセージの内容を追加したり変更したりする場合には、コマンドやメッセージが記述された対応テーブル等のソフトウェアモジュールだけを書き換えれば、入出力用のインタフェースＩＣ毎交換するといったことはしなくても、対応することができる。また、異なる信号の仕様のドライブ装置１とホストコントローラ２とを接続する場合には、例えば入出力用のインタフェースＩＣだけを交換すれば、コマンドやメッセージが記述されたテーブルや伝送フォーマット生成用のモジュールを書き換えなくても、対応することができる。
【００７０】
ハードウェアレイヤ
（コマンドインターフェースのハードウェアレイヤ）
つぎに、コマンドインターフェース５のハードウェアレイヤの構成について説明をする。
【００７１】
コマンドインターフェース５では、図５に示すように、ＤＲＶＲＤＹ信号、ＤＲＶＲＸ信号、ＤＲＶＴＸ信号、ＤＲＶＣＬＫ信号、ＤＲＶＲＳＴ信号、ＤＲＶＩＲＱ信号が伝送される。
【００７２】
ＤＲＶＲＤＹ信号は、ホストコントローラ２から発行されるコマンドを、ドライブ装置１が受信可能であることを通知する信号である。このＤＲＶＲＤＹ信号は、ドライブ装置１からホストコントローラ２へアサートされる。ホストコントローラ２は、このＤＲＶＲＤＹ信号がアサートされているときに、コマンドを伝送することが可能である。
【００７３】
ＤＲＶＲＸ信号は、コマンド等のホストコントローラ２からドライブ装置１へ伝送されるシリアルの伝送データである。
【００７４】
ＤＲＶＴＸ信号は、メッセージ等のドライブ装置１からホストコントローラ２へ伝送されるシリアルの伝送データである。
【００７５】
ＤＲＶＣＬＫ信号は、ホストコントローラ２からドライブ装置１へ送出されるクロックである。
【００７６】
ＤＲＶＲＳＴ信号は、ホストコントローラ２側でドライブ装置１をハードウェアレベルでリセットする信号である。このＤＲＶＲＳＴ信号は、ホストコントローラ２からドライブ装置１へアサートされる。ドライブ装置１は、このＤＲＶＲＳＴ信号が一定期間アサートされ続けると、ハードウェア上の動作をリセットする。なお、上述したようにドライブ装置１は、このＤＲＶＲＳＴ信号がアサートされると、状態をリセットステートＳ１へ遷移させる。
【００７７】
ＤＲＶＩＲＱ信号は、ドライブ装置１がホストコントローラ２に割り込み要求を通知する信号である。このＤＲＶＩＲＱ信号は、ドライブ装置１からホストコントローラ２へアサートされる。このＤＲＶＩＲＱ信号は、例えば、非同期コマンド（詳細は後述する）に対する処理が完了したときや、予期しないエラー等が発生したときなど、ドライブ装置１がホストコントローラ２へ非同期にメッセージを発行する際に用いられる。
【００７８】
（ＡＶバスインターフェースのハードウェアレイヤ）
つぎに、Ａ／Ｖバスインターフェース４のハードウェアレイヤの構成について説明をする。
【００７９】
Ａ／Ｖバスインターフェース４では、図６に示すように、ＨＤＲＱ信号、ＸＨＡＣ信号、ＸＳＨＤ信号、ＤＣＫ信号、ＶＤＴ［7..0］信号、ＶＥＦＧ信号が伝送される。
【００８０】
ＨＤＲＱ信号は、読み出されたディスクデータの伝送要求を通知する信号であり、ホストコントローラ２からドライブ装置１へアサートされる。このＨＤＲＱ信号がアサートされているときに、ドライブ装置１は再生したディスクデータをホストコントローラ２へ送信する。
【００８１】
ＸＨＡＣ信号は、ＶＤＴ［7..0］信号の有効性を示す信号であり、ドライブ装置１からホストコントローラ２へ供給される。
【００８２】
ＸＳＨＤ信号は、セクタの開始位置を示す信号であり、ドライブ装置１からホストコントローラ２へ供給される。
【００８３】
ＤＣＫ信号は、データクロックであり、ドライブ装置１からホストコントローラ２へ供給される。
【００８４】
ＶＤＴ［7..0］信号は、ディスクから読み出された８ビットのパラレルのディスクデータであり、ドライブ装置１からホストコントローラ２へ供給される。
【００８５】
ＶＥＦＧ信号は、読み出されたデータがエラー訂正をできたか否かを示すエラーフラグであり、ドライブ装置１からホストコントローラ２へ供給される。
【００８６】
なお、ホストコントローラ２は、再生関連のコマンド（ＰｌａｙＣＤやＰｌａｙＤＶＤ等）を発行している最中、再生の一時停止（ポーズ）を行う場合、新たにポーズ用のコマンドを発行するのではなく、このハードウェアレイヤのＨＤＲＱ信号を無効とすることによって行う。ドライブ装置１は、ディスクの再生中に、ＨＤＲＱ信号が無効とされた場合は、ホストコントローラ２へのデータの送出は停止するが、ディスクの再生自体は停止せずにトラックバッファへのデータを格納しておく。そして、トラックバッファの容量が一杯となったところで、ディスクの再生を停止するようにする。このようにポーズ動作を、ＨＤＲＱ信号を用いて制御することによって、再生を復活した際には、すぐにデータの送出を開始することが可能となる。
【００８７】
コミュニケーションレイヤ
つぎに、コマンドインターフェース５のコミュニケーションレイヤについて説明をする。
【００８８】
コマンドインターフェース５のコミュニケーションレイヤでは、図７に示すように、コマンドを伝送するコマンドフェーズと、メッセージを伝送するメッセージフェーズの２つのフェーズでデータ伝送が行われる。
【００８９】
コマンドフェーズでは、コマンド、並びに、そのコマンドを正しく受信できたことを示す承認（ＡＣＫ）或いはそのコマンドを正しく受信できなかったことを示す非承認（ＮＣＫ）が、コマンドプロトコルに従った伝送フォーマットで伝送される。メッセージフェーズでは、メッセージ、並びに、そのメッセージを正しく受信できたことを示す承認（ＡＣＫ）或いはそのメッセージを正しく受信できなかったことを示す非承認（ＮＣＫ）が、メッセージプロトコルに従った伝送フォーマットで伝送される。
【００９０】
コマンドフェーズは、ホストコントローラ２がドライブ装置１へ対して何らかの動作制御命令を与える場合、或いは、割り込み要求を通知するＤＲＶＩＲＱ信号がドライブ装置１からホストコントローラ２へアサートされた場合に、発生する。また、メッセージフェーズは、コマンドフェーズが終了した後、一定時間内に、発生する。
【００９１】
コマンドフェースの伝送プロトコルであるコマンドプロトコルについて説明をする。
【００９２】
コマンドプロトコルでは、図８に示すように、“ Command Length ”と、“ Command ”と、“ Command Check Sum ”と、“ Acknowledgement ”とが、この順序で伝送される。
【００９３】
“ Command Length ”は、次の“ Command ”のバイト長を示している。この“ Command Length ”は、１バイト長のデータで、ホストコントローラ２からドライブ装置１へ伝送される。この“ Command Length ”は、ドライブ装置１からホストコントローラ２へは伝送されない。
【００９４】
“ Command ”は、コマンドの内容及びその引数を示している。この“ Command ”は、Ｎバイト長のデータで、ホストコントローラ２からドライブ装置１へ伝送される。具体的に、この“ Command ”は、図９に示すように、“ Command Code ”と“ Command Argument ”とで構成されている。“ Command Code ”は、１バイト長のデータで、コマンドの内容を特定するコードである。“ Command Argument ”は、Ｍバイト（Ｍ＝（Ｎ−１）、Ｎは１以上の整数）長のデータで、コマンドの引数を示す値である。コマンドに引数が含まれるかどうか並びに引数のデータ長は、そのコマンドの内容によって異なる。この“ Command ”は、ドライブ装置１からホストコントローラ２へは伝送されない。
【００９５】
“ Command Check Sum ”は、“ Command ”に記述されたデータのバイト毎の加算合計値を示している。この“ Command Check Sum ”は、１バイト長のデータで、ホストコントローラ２からドライブ装置１へ伝送される。ドライブ装置１では、受信した“ Command ”の加算合計値と、この“ Command Check Sum ”に記述された値とを比較し、エラーチェックが行われる。この“ Command Check Sum ”は、ドライブ装置１からホストコントローラ２へは伝送されない。
【００９６】
“ Acknowledgement ”は、伝送された“ Command ”に伝送エラーが生じていたかどうかを通知するための承認（ＡＣＫ）／非承認（ＮＣＫ）を示している。この“ Acknowledgement ”は、１バイト長のデータで、ドライブ装置１からホストコントローラ２へ伝送される。ドライブ装置１は、エラーチェックの結果、受信した“ Command ”にエラーがなければ、すなわち、“ Command ”の加算合計値と“ Command Check Sum ”に記述された値とが一致すれば、“ Command Check Sum ”に記述された値の補数をこの“ Acknowledgement ”に記述し、ホストコントローラ２へ返信する。また、ドライブ装置１は、エラーチェックの結果、受信した“ Command ”にエラーが生じていれば、すなわち、“ Command ”の加算合計値と“ Command Check Sum ”に記述された値とが一致しなければ、“ Command Check Sum ”に記述された値の補数以外の値をこの“ Acknowledgement”に記述し、ホストコントローラ２へ返信する。この“ Acknowledgement ”は、ホストコントローラ２からドライブ装置１へデータは伝送されない。
【００９７】
ホストコントローラ２は、“ Acknowledgement ”を受信して“ Command Check Sum ”の補数が記述されていれば、ドライブ装置１へ正しくコマンドが送信されたと判断し、コマンドフェーズの処理を完了する。一方、ホストコントローラ２は、“ Acknowledgement ”を受信して“ Command Check Sum ”の補数以外値が記述されていれば、ドライブ装置１へ正しくコマンドが送信なかったと判断し、同じコマンドフェーズをリトライする。
【００９８】
以上のようにコマンドプロトコルでは、ホストコントローラ２からドライブ装置１へコマンドを送信することができる。そのため、ドライブ装置１では、そのコマンドに従った動作を行うことができる。
【００９９】
また、このコマンドプロトコルでは、ホストコントローラ２からドライブ装置１へコマンドのエラーチェックデータも送信される。そのため、ドライブ装置１では、コマンドインタフェースで行われた通信にエラーが生じているかどうかを容易に判断することができ、通信エラーによる誤動作が生じなくなる。
【０１００】
また、このコマンドプロトコルでは、伝送されたコマンドに通信エラーが生じていたかどうかを示す承認（ＡＣＫ）／非承認（ＮＣＫ）をドライブ装置１からホストコントローラ２へ返信する。そのため、通信エラーが生じた場合でも、ドライブ装置１とホストコントローラ２との間で動作の不整合が生じず、速やかに復帰処理を行うことができる。
【０１０１】
続いて、メッセージプロトコルについて説明をする。
【０１０２】
メッセージプロトコルは、図１０に示すように、“ Message Length ”と、“ Message ”と、“ Message Check Sum ”と、“ Acknowledgement ”とで構成される。
【０１０３】
“ Message Length ”は、次の“ Message ”のバイト長を示している。この“ Message Length ”は、１バイト長のデータで、ドライブ装置１からホストコントローラ２へ伝送される。この“ Message Length ”は、ホストコントローラ２からドライブ装置１へは伝送されない。
【０１０４】
“ Message ”は、メッセージの内容及びその引数を示している。この“ Message ”は、Ｎバイト長のデータで、ドライブ装置１からホストコントローラ２へ伝送される。具体的に、この“ Message ”は、図１１に示すように、“ Message Code ”と“ Message Argument ”とで構成されている。“ Message Code ”は、１バイト長のデータで、メッセージの内容を特定するコードである。“ Message Argument ”は、Ｍバイト（Ｍ＝（Ｎ−１）、Ｎは１以上の整数）長のデータで、メッセージの引数を示す値である。メッセージに引数が含まれるかどうか並びに引数のデータ長は、そのメッセージの内容によって異なる。この“ Message ”は、ホストコントローラ２からドライブ装置１へは伝送されない。
【０１０５】
“ Message Check Sum ”は、“ Message ”に記述されたデータの加算合計値を示している。この“ Message Check Sum ”は、１バイト長のデータで、ドライブ装置１からホストコントローラ２へ伝送される。ホストコントローラ２では、受信した“ Message ”の加算合計値と、この“ Message Check Sum ”に記述された値とを比較し、エラーチェックが行われる。この“ Message Check Sum ”は、ホストコントローラ２からドライブ装置１へは伝送されない。
【０１０６】
“ Acknowledgement ”は、伝送された“ Message ”に伝送エラーが生じていたかどうかを通知するための承認（ＡＣＫ）／非承認（ＮＣＫ）を示している。この“ Acknowledgement ”は、１バイト長のデータで、ホストコントローラ２からドライブ装置１へ伝送される。ホストコントローラ２は、エラーチェックの結果、受信した“ Message ”にエラーがなければ、すなわち、“ Message ”の加算合計値と“ Message Check Sum ”に記述された値とが一致すれば、“ Message Check Sum ”に記述された値の補数をこの“ Acknowledgement ”に記述し、ドライブ装置１へ返信する。また、ホストコントローラ２は、エラーチェックの結果、受信した“ Message ”にエラーが生じていれば、すなわち、“ Message ”の加算合計値と“ Message Check Sum ”に記述された値とが一致しなければ、“ Message Check Sum ”に記述された値の補数以外の値をこの“ Acknowledgement ”に記述し、ドライブ装置１へ返信する。この“ Acknowledgement ”は、ドライブ装置１からホストコントローラ２へは伝送されない。
【０１０７】
ドライブ装置１は、“ Acknowledgement ”を受信して“ Message Check Sum ”の補数が記述されていれば、ホストコントローラ２へ正しくメッセージが送信されたと判断し、メッセージフェーズの処理を完了する。一方、ドライブ装置１は、“ Acknowledgement ”を受信して“ Message Check Sum ”の補数以外値が記述されていれば、ホストコントローラ２へ正しくメッセージが送信なかったと判断し、同じメッセージフェーズをリトライする。
【０１０８】
以上のようにメッセージプロトコルでは、ドライブ装置１からホストコントローラ２へメッセージが送信される。そのため、ホストコントローラ２では、そのメッセージに従った動作を行うことができる。
【０１０９】
また、このメッセージプロトコルでは、ドライブ装置１からホストコントローラ２へメッセージのエラーチェックデータも送信される。そのため、ホストコントローラ２では、メッセージインタフェースで行われた通信にエラーが生じているかどうかを容易に判断することができ、通信エラーによる誤動作が生じなくなる。
【０１１０】
また、このメッセージプロトコルでは、伝送されたメッセージに通信エラーが生じていたかどうかを示す承認（ＡＣＫ）／非承認（ＮＣＫ）をホストコントローラ２からドライブ装置１へ返信する。そのため、通信エラーが生じた場合でも、ドライブ装置１とホストコントローラ２との間で動作の不整合が生じず、速やかに復帰処理を行うことができる。
【０１１１】
なお、図１２に示すように、コマンドフェーズにおいて“ Command Length ”、“ Command ”、“ Command Check Sum ”、メッセージフェーズ時の“ Acknowledgement ”を送信している最中に、ドライブ装置１から何らかのデータの送信があった場合（本来はドライブ装置１からのデータ伝送はないときに何らかのデータが伝送されてしまった場合）、ホストコントローラ２は、現在のコマンドプロトコルを中断し、再度新たにコマンドプロトコルをリトライし、エラーの回復を行う。同様に、メッセージフェーズにおいて“ Message Length ”、“ Message ”、“ Message Check Sum ”、コマンドフェーズ時の“ Acknowledgement”を送信している最中に、ホストコントローラ２から何らかのデータの送信があった場合（本来はホストコントローラ２からのデータ伝送はないときに何らかのデータが伝送されてしまった場合）、ドライブ装置１は、現在のメッセージプロトコルを中断し、再度新たなコマンドフェーズの要求を行い、エラーを回復する。
【０１１２】
コマンド＆メッセージレイヤ
つぎに、コマンド＆メッセージレイヤについて説明をする。
【０１１３】
コマンド＆メッセージレイヤでは、コマンド及びメッセージの内容、そのコードの定義、引数の定義等が定められている。
【０１１４】
（コマンド＆メッセージシーケンス）
本システムには、コマンド及びメッセージのシーケンスとして、同期コマンドシーケンスと、非同期コマンドシーケンスとがある。また、これらのシーケンスに対応して、コマンドには、同期コマンドと、非同期コマンドの２種類が定義されている。また、同様に、メッセージには、即時メッセージと、非同期メッセージの２種類が定義されている。
【０１１５】
同期コマンドシーケンスは、ホストコントローラ２が同期コマンドを送信し、その同期コマンドに応じてドライブ装置１が即時メッセージを返信するシーケンスである。同期コマンドは、ドライブ装置１側が即時的に応答をすることができる制御内容が記述されたコマンドである。また、即時メッセージは、ドライブ装置１が常に内部メモリ等に格納している情報を返信する場合など、ホストコントローラ２からの命令に対して即時に返答をすることができる情報が記述されたメッセージである。
【０１１６】
例えば、同期コマンドシーケンスは、図１３に示すように、ホストコントローラ２がＧｅｔＶｅｒｓｉｏｎコマンド（ドライブ装置のＩＤ情報の返信要求コマンド。詳細は後述する。）を送信し、ドライブ装置１がこのコマンドに対してＶｅｒｓｉｏｎメッセージ（自己のＩＤ情報を記述したメッセージ。詳細は後述する。）を返信する、といったようなシーケンスである。
【０１１７】
ドライブ装置１は、同期コマンドを受信した場合には、即時コマンドを所定時間内（例えば、１５ｍ秒以内）に返信する。
【０１１８】
非同期コマンドシーケンスは、ホストコントローラ２が非同期コマンドを送信し、その非同期コマンドに対応した非同期メッセージをドライブ装置１が返信するシーケンスである。非同期コマンドは、ドライブ装置１側が即時的に応答ができない制御内容が記述されたコマンドである。例えば、トレイのオープン命令、トレイのクローズ命令、ディスクの再生命令等の、命令を受けてから一定の時間が経過しなければ動作が完了しないような制御命令が記述されている。また、非同期メッセージは、非同期コマンドに応じた動作が完了したことを示す情報、或いは、ドライブ装置１から一方的にホストコントローラ２へ通知する情報が記述されたメッセージである。例えば、トレイのオープンが完了した旨を示す情報、トレイのクローズが完了した旨を示す情報、再生しているディスクデータの最終セクタまでトラックバッファに格納したことを示す情報などが記述されたメッセージである。
【０１１９】
例えば、非同期コマンドシーケンスは、図１４に示すように、ホストコントローラ２が非同期コマンドであるＯｐｅｎＴｒａｙコマンド（ディスクトレイをオープンする動作制御コマンド。詳細は後述する。）を送信し、ドライブ装置１がこの命令に従い動作状態をレディーステートＳ４からオープンステートＳ３まで遷移させ、ＴｒａｙＯｐｅｎｅｄメッセージ（ディスクトレイがオープンしたことを示す情報。詳細は後述する。）を返信する、といったようなシーケンスである。具体的に、この図１４に示すシーケンスの場合、ホストコントローラ２がＯｐｅｎＴｒａｙコマンドを送信すると、ドライブ装置１からそのコマンドを受信した旨を示すＣＭＤ＿ＯＫコマンド（即時メッセージ）が一旦返信される。続いて、ドライブ装置１は、レディーステートＳ４から各種サーボをストップさせ、スリープステートＳ６へ遷移する。このとき、ドライブ装置１は、割り込み要求を通知するＤＲＶＩＲＱ信号をホストコントローラ２にアサートする。ＤＲＶＩＲＱ信号を受けたホストコントローラ２は、ドライブに非同期メッセージの返信要求を与えるＧｅｔＭｓｇコマンドを送信する。このＧｅｔＭｓｇコマンドを受けるとドライブ装置１は、スリープステートＳ６となったことを示す非同期メッセージであるＳｌｅｐｔメッセージを返信する。続いて、ドライブ装置１は、スリープステートＳ６からディスクトレイをオープンさせオープンステートＳ３へ遷移する。このとき、ドライブ装置１は、割り込み要求を通知するＤＲＶＩＲＱ信号をホストコントローラ２にアサートする。ＤＲＶＩＲＱ信号を受けたホストコントローラ２は、ドライブに非同期メッセージの返信要求を与えるＧｅｔＭｓｇコマンドを送信する。このＧｅｔＭｓｇコマンドを受けるとドライブ装置１は、オープンステートＳ３となったことを示す非同期メッセージであるＴｒａｙＯｐｅｎｅｄメッセージを返信する。
【０１２０】
（コマンドのプログラミングモデル）
つぎに、コマンド＆メッセージレイヤでのコマンドインターフェース５のドライブ装置１側のプログラミング構成について説明をする。
【０１２１】
コマンド＆メッセージレイヤにおけるコマンドインターフェース５のドライブ装置１側のプログラミング構成は、図１５に示すように、コマンド及びメッセージの処理を行うコマンド＆メッセージモジュール４１と、ＰｌａｙＤＶＤコマンドを格納するコマンドキュー４２と、非同期メッセージを格納するメッセージキュー４３と、非同期メッセージと即時メッセージとを切り換えて出力するセレクタ４４とを備えて構成される。
【０１２２】
コマンド＆メッセージモジュール４１は、例えばシステムコントローラ２１内に備えられるソフトウェアモジュールであり、コマンドに対するデータ処理、メッセージの生成処理等を行う。
【０１２３】
コマンドキュー４２は、例えばシステムコントローラ２１内に備えられるソフトウェアモジュールである。コマンドキュー４２は、プレイステートの時にホストコントローラ２から、コマンドキューに保持するモードのＰｌａｙＤＶＤコマンド或いはコマンドキューに保持するモードのＰｌａｙＤＶＤＣｅｌｌコマンドが発行された場合、このＰｌａｙＤＶＤコマンド或いはＰｌａｙＤＶＤＣｅｌｌコマンドを保持しておくキューである。なお、コマンドキューに保持するモードのＰｌａｙＤＶＤコマンド及びコマンドキューに保持するモードのＰｌａｙＤＶＤＣｅｌｌコマンド以外のコマンドは、コマンドキューに保持されず、コマンド＆メッセージモジュール４１に処理がされる。
【０１２４】
メッセージキュー４３は、例えばシステムコントローラ２１内に備えられるソフトウェアモジュールであり、コマンド＆メッセージモジュール４１から発行された非同期メッセージを格納するキューである。メッセージキュー４３は、コマンド＆メッセージモジュールから発行された非同期メッセージを格納するキューである。非同期メッセージは、コマンド＆メッセージモジュール４１によって発行されてから、ＤＲＶＩＲＱ信号によりホストコントローラ２に割り込み要求し、ＧｅｔＭｓｇコマンドが返信されてから、送信される。そのため、メッセージキュー４３では、ＧｅｔＭｓｇコマンドが返信されるまで、一時的に非同期メッセージを保持しておく。メッセージキュー４３は、例えば５個の非同期メッセージの格納領域を有しており、発行順に順次非同期メッセージの送出を行う。
【０１２５】
セレクタ４４は、例えばシステムコントローラ２１内に備えられるソフトウェアモジュールであり、コマンド＆メッセージモジュール４１から発行された非同期メッセージと即時メッセージとを切り換えて送出する。
【０１２６】
ドライブ装置１では、以上のようなプログラミング構成によって、コマンド及びメッセージの伝送を行うこととなる。
（コマンド、メッセージ）
つぎに、コマンド及びメッセージの具体的な内容について説明をする。
【０１２７】
同期コマンドセット
図１６に、同期コマンドのコマンドセットテーブルを示す。
【０１２８】
同期コマンドには、ＧｅｔＤｉｓｃＴｙｐｅコマンド、ＧｅｔＴＯＣコマンド、ＧｅｔＴＯＣ＿ＡＬＬコマンド、ＧｅｔＳｔａｔｕｓコマンド、ＧｅｔＬａｓｔＥｒｒコマンド、ＧｅｔＭｓｇコマンド、ＧｅｔＶｅｓｉｏｎコマンド、ＦｌｕｓｈＰｌａｙＱｕｅｕｅコマンド、ＧｅｔＳｕｂＣｏｄｅコマンド、ＳｙｎｃｈｒｏｎｏｕｓＳｔｏｐコマンドがある。
【０１２９】
ＧｅｔＤｉｓｃＴｙｐｅコマンドは、ドライブ装置１に装填されているディスクのメディアタイプの返信命令である。コードは、例えば０ｘ０１である。コマンドが有効なステートは、レディーステートＳ４、プレイステートＳ５、スリープステートＳ６、Ｎｏ／ＢａｄディスクステートＳ７である。コマンドが有効なメディアタイプは、全てである。また、引数はない。返信されるメッセージは、ＤｉｓｃＴｙｐｅメッセージ、Ｅｒｒ＿Ｃｏｎｔｅｘｔメッセージである。
【０１３０】
ＧｅｔＴＯＣコマンドは、ドライブ装置１に装填されているＣＤ（ＣＤ-Ａｕｄｉｏ，ＶｉｄｅｏＣＤ）のＴＯＣ（Table of Contents）の一部の返信命令である。コードは、例えば０ｘ０２である。コマンドが有効なステートは、レディーステートＳ４、プレイステートＳ５、スリープステートＳ６である。コマンドが有効なメディアタイプは、ＣＤ（ＶｉｄｅｏＣＤ，ＣＤ-Ａｕｄｉｏ）である。また、引数は、例えば、特徴点のスタートポイント、第１トラックナンバー、最終トラックナンバー、リードアウト領域のスタートポイント等である。返信されるメッセージは、ＴＯＣメッセージ、Ｅｒｒ＿Ｃｏｎｔｅｘｔメッセージである。
【０１３１】
ＧｅｔＴＯＣ＿ＡＬＬコマンドは、ドライブ装置１に装填されているＣＤ（ＣＤ-Ａｕｄｉｏ，ＶｉｄｅｏＣＤ）のＴＯＣの返信命令である。コードは、例えば０ｘ０３である。コマンドが有効なステートは、レディーステートＳ４、プレイステートＳ５、スリープステートＳ６である。コマンドが有効なメディアタイプは、ＣＤ（ＣＤ-Ａｕｄｉｏ，ＶｉｄｅｏＣＤ）である。また、引数は、例えば特徴点のスタートポイント、第１トラックナンバー、最終トラックナンバー、リードアウト領域のスタートポイント等である。返信されるメッセージは、ＴＯＣ＿ＡＬＬメッセージ、Ｅｒｒ＿Ｃｏｎｔｅｘｔメッセージである。
【０１３２】
ＧｅｔＳｔａｔｕｓコマンドは、ドライブ装置１の現在の各種状態（ドライブ装置のステート、コマンドキューの状態、ディスクトレイの状態、トラックバッファの内部状態等）の返信命令である。コードは例えば０ｘ０４である。コマンドが有効なステートは、全てである。コマンドが有効なメディアタイプは、全てである。また、引数はない。返信されるメッセージは、Ｓｔａｔｕｓメッセージである。
【０１３３】
ＧｅｔＬａｓｔＥｒｒコマンドは、ドライブ装置１に発生した最後のエラー情報（トレイトラブル、フォーカスＮＧ、ディスク判別不能、ディスクなし等の情報）の返信命令である。コードは、例えば０ｘ０５である。コマンドが有効なステートは、全てである。コマンドが有効なメディアタイプは、全てである。また、引数はない。返信されるメッセージは、ＬａｓｔＥｒｒメッセージメッセージである。
【０１３４】
ＧｅｔＭｓｇコマンドは、ドライブ装置１から送信される非同期メッセージの返信命令である。ドライブ装置１からアサートされたＤＲＶＩＲＱ信号に応じて、送信される。コードは、例えば０ｘ０６である。コマンドが有効なステートは、全てである。コマンドが有効なメディアタイプは、全てである。また、引数はない。返信されるメッセージは、全ての非同期メッセージである。
【０１３５】
ＧｅｔＶｅｒｓｉｏｎコマンドは、ドライブ装置１の設定情報、製造者ＩＤ、ファームウェアバージョン等の返信命令である。コードは、例えば、０ｘ０７である。コマンドが有効なステートは、全てである。コマンドが有効なメディアタイプは、全てである。また、引数はない。返信されるメッセージは、Ｖｅｒｓｉｏｎメッセージである。
【０１３６】
ＦｌｕｓｈＰｌａｙＱｕｅｕｅコマンドは、ドライブ装置１のコマンドキュー４３に保持されているＰｌａｙＤＶＤコマンドの消去命令である。コードは、例えば、０ｘ０Ｄである。コマンドが有効なステートは、プレイステートＳ５である。コマンドが有効なメディアタイプは、ＤＶＤである。また、引数はない。返信されるメッセージは、ＣＭＤ＿ＯＫメッセージ、Ｅｒｒ＿ＣｍＱＥｍｐメッセージである。
【０１３７】
ＧｅｔＳｕｂＣｏｄｅコマンドは、ドライブ装置１に装填されているＣＤ（ＶｉｄｅｏＣＤ，ＣＤ-Ａｕｄｉｏ）のサブコードの返信命令である。コードは、例えば、０ｘ０Ｅである。コマンドが有効なステートは、プレイステートＳ５である。コマンドが有効なメディアタイプは、ＣＤ（ＣＤ-Ａｕｄｉｏ，ＶｉｄｅｏＣＤ）である。また、引数には、アブソリュートＭＳＦ（A-Min,A-Sec,A-Frame）の返信命令、ＭＳＦ（Min,Sec,Frame）の返信命令、ＴＮＯ、Ｘの返信命令が記述される。返信されるメッセージは、ＡＭＳＦメッセージ、ＭＳＦメッセージ、ＴＮＯ＿Ｘメッセージ、Ｅｒｒ＿Ｃｏｎｔｅｘｔメッセージである。
【０１３８】
ＳｙｎｃｈｒｏｎｏｕｓＳｔｏｐコマンドは、ドライブ装置１のプレイ状態を中断させ、トラックバッファに格納されているディスクデータを消去する命令である。このＳｙｎｃｈｒｏｎｏｕｓＳｔｏｐコマンドを与えると、ドライブ装置１は、再生を中断し、トラックバッファに格納されているディスクデータを消去するとともに、ステートをプレイステートＳ５からレディーステートＳ４に遷移させる。コードは、例えば、０ｘ０Ｆである。コマンドが有効なステートは、プレイステートＳ５である。コマンドが有効なメディアタイプは、全てである。また、引数はない。返信されるメッセージは、ＣＭＤ＿ＯＫメッセージ、Ｅｒｒ＿Ｃｏｎｔｅｘｔメッセージである。
【０１３９】
非同期コマンドセット
つぎに、非同期コマンドについて説明をする。
【０１４０】
非同期コマンドは、図１７に示すように、ＳｅｔＭｏｄｅコマンド、Ｒｅｓｔａｒｔコマンド、ＯｐｅｎＴｒａｙコマンド、ＣｌｏｓｅＴｒａｙコマンド、ＰｌａｙＤＶＤコマンド、ＰｌａｙＣＤコマンド、ＪｕｍｐＲｅｓｅｔコマンド、Ｓｌｅｅｐコマンド、ＷａｋｅＵｐコマンド、ＡｓｙｎｃｈｒｏｎｏｕｓＳｔｏｐコマンドがある。
【０１４１】
ＳｅｔＭｏｄｅコマンドは、ドライブ装置１のステートをリセットステートＳ１からクローズステートＳ２に遷移させ、ドライブ装置１を初期状態から動作状態に遷移させる命令である。コードは、例えば、０ｘ１０である。コマンドが有効なステートは、リセットステートＳ１である。コマンドが有効なメディアタイプは、全てである。また、引数には、例えばファームウェアのバージョンが記述される。返信されるメッセージは、ＣＭＤ＿ＯＫメッセージ、Ｅｒｒ＿Ｃｏｎｔｅｘｔメッセージ、ＴｒａｙＣｌｏｓｅｄメッセージ、ＷｏｋｅＵｐメッセージである。
【０１４２】
なお、このＳｅｔＭｏｄｅコマンドを送信すると、ドライブ装置１は、初期化動作を行う。その初期化シーケンスは、図１８に示すようになる。すなわち、ホストコントローラ２からＳｅｔＭｏｄｅコマンドが送信され、それに対してドライブ装置１がＣＭＤ＿ＯＫメッセージを返信する。続いて、ドライブ装置１は、ステートをクローズステートＳ２に遷移させ、ディスクトレイを閉じる。ディスクトレイが閉じると、ドライブ装置１は、ＤＲＶＩＲＱ信号を送信し、ホストコントローラ２からＧｅｔＭｓｇコマンドを受け、ＴｒａｙＣｌｏｓｅｄメッセージを返信する。続いて、クローズステートＳ２では、各種サーボループの引き込み動作が行われるとともに、メディア情報が取得される。ドライブ装置１に有効なディスクが装填されている場合には、クローズステートＳ２からレディーステートＳ４に遷移させる。レディーステートＳ４に遷移すると、ドライブ装置１は、ＤＲＶＩＲＱ信号を送信し、ホストコントローラ２からＧｅｔＭｓｇコマンドを受け、ＷｏｋｅＵｐメッセージを返信する。
【０１４３】
Ｒｅｓｔａｒｔコマンドは、サーボシステム、コマンドキュー、メッセージキュー、トラックバッファを全て初期化する命令である。Ｒｅｓｔａｒｔコマンドを受けたドライブ装置１は、ステートをクローズステートＳ２に遷移させる。コードは、例えば０ｘ４１である。コマンドが有効なステートは、リセットステートＳ１以外の全てである。コマンドが有効なメディアタイプは、全てである。また、引数はない。返信されるメッセージは、ＴｒａｙＣｌｏｓｅｄメッセージ、ＷｏｋｅＵｐメッセージ、ＣＭＤ＿ＯＫメッセージ、Ｅｒｒ＿Ｃｏｎｔｅｘｔメッセージである。
【０１４４】
なお、このＲｅｓｔａｒｔコマンドによる初期化シーケンスは、図１９に示すようになる。すなわち、ホストコントローラ２からＲｅｓｔａｒｔコマンドが送信され、それに対してドライブ装置１がＣＭＤ＿ＯＫメッセージを返信する。続いて、ドライブ装置１は、ステートをクローズステートＳ２に遷移させ、ディスクトレイを閉じる。ディスクトレイが閉じると、ドライブ装置１は、ＤＲＶＩＲＱ信号を送信し、ホストコントローラ２からＧｅｔＭｓｇコマンドを受け、ＴｒａｙＣｌｏｓｅｄメッセージを返信する。続いて、クローズステートＳ２では、各種サーボループの引き込み動作が行われるとともに、メディア情報が取得され、さらに、コマンドキュー、メッセージキュー、トラックバッファー等が初期化される。ドライブ装置１に有効なディスクが装填されている場合には、クローズステートＳ２からレディーステートＳ４に遷移させる。レディーステートＳ４に遷移すると、ドライブ装置１は、ＤＲＶＲＩＱ信号を送信し、ホストコントローラ２からＧｅｔＭｓｇコマンドを受け、ＷｏｋｅＵｐメッセージを返信する。
【０１４５】
ＯｐｅｎＴｒａｙコマンドは、ドライブ装置１のディスクトレイをオープンさせる命令である。コードは例えば０ｘ４２である。コマンドが有効なステートは、リセットステートＳ１及びオープンステートＳ３以外の全てである。コマンドが有効なメディアタイプは、全てである。また、引数はない。返信されるメッセージは、Ｓｌｅｐｔメッセージ、ＴｒａｙＯｐｅｎｅｄメッセージ、ＣＭＤ＿ＯＫメッセージ、Ｅｒｒ＿Ｃｏｎｔｅｘｔメッセージである。このＯｐｅｎＴｒａｙコマンドが発行されると、ドライブ装置１のステートが、レディーステートＳ４又はプレイステートＳ５の場合、一旦、スリープステートＳ６を経由して、オープンステートＳ３へ遷移する。クローズステートＳ２又はスリープステートＳ６の場合には、そのままオープンステートＳ３へ遷移する。
【０１４６】
ＣｌｏｓｅＴｒａｙコマンドは、ドライブ装置１のディスクトレイをクローズさせ、さらに、サーボシステム、コマンドキュー、メッセージキュー、トラックバッファを全て初期化する命令である。コードは、例えば０ｘ４３である。コマンドが有効なステートは、オープンステートＳ３である。コマンドが有効なメディアタイプは、全てである。また、引数はない。返信されるメッセージは、ＴｒａｙＣｌｏｓｅｄメッセージ、ＷｏｋｅＵｐメッセージ、ＣＭＤ＿ＯＫメッセージ、Ｅｒｒ＿Ｃｏｎｔｅｘｔメッセージである。
【０１４７】
なお、このＣｌｏｓｅＴｒａｙコマンドによる初期化シーケンスは、図２０に示すようになる。すなわち、ホストコントローラ２からＣｌｏｓｅＴｒａｙコマンドが送信され、それに対してドライブ装置１がＣＭＤ＿ＯＫメッセージを返信する。続いて、ドライブ装置１は、ステートをクローズステートＳ２に遷移させ、ディスクトレイを閉じる。ディスクトレイが閉じると、ドライブ装置１は、ＤＲＶＩＲＱ信号を送信し、ホストコントローラ２からＧｅｔＭｓｇコマンドを受け、ＴｒａｙＣｌｏｓｅｄメッセージを返信する。続いて、クローズステートＳ２では、各種サーボループの引き込み動作が行われるとともに、メディア情報が取得され、さらに、コマンドキュー、メッセージキュー、トラックバッファー等が初期化される。ドライブ装置１に有効なディスクが装填されている場合には、クローズステートＳ２からレディーステートＳ４に遷移させる。レディーステートＳ４に遷移すると、ドライブ装置１は、ＤＲＶＩＲＱ信号を送信し、ホストコントローラ２からＧｅｔＭｓｇコマンドを受け、ＷｏｋｅＵｐメッセージを返信する。
【０１４８】
ＰｌａｙＤＶＤコマンドは、ＤＶＤの再生命令である。ＰｌａｙＤＶＤコマンドでは、読み出しデータのスタートアドレス及びエンドアドレスを指定する。ドライブ装置１は、指定されたスタートアドレスからエンドアドレスまで、ＤＶＤからデータを読み出し、トラックバッファに格納する。コードは、例えば０ｘ４４である。コマンドが有効なステートは、レディーステートＳ４、プレイステートＳ５である。コマンドが有効なメディアタイプは、ＤＶＤである。また、引数には、スタートアドレス及びエンドアドレス、モード設定情報が記述される。スタートアドレス及びエンドアドレスは、ロジカルブロック番号（或いはフィジカルセクタ番号）で記述される。返信されるメッセージは、ＬａｓｔＳｅｃｔｏｒメッセージ、ＲｅｔｕｒｎｅｄＲｅａｄｙメッセージ、ＣＭＤ＿ＯＫメッセージ、Ｅｒｒ＿Ｃｏｎｔｅｘｔメッセージである。エンドアドレスまでトラックバッファにデータが読み込まれると、ＬａｓｔＳｅｃｔｏｒメッセージが返信される。その後、トラックバッファにあるエンドアドレスまでのデータを全てホストコントローラ２が受信し、ドライブ装置１のステートがレディーステートＳ４に遷移したときにＲｅｔｕｒｎｅｄＲｅａｄｙメッセージが返信される。
【０１４９】
ＰｌａｙＣＤコマンドは、ＣＤの再生命令である。ドライブ装置１は、指定されたスタート位置からエンド位置まで、ＣＤからデータを読み出す。また、ＰｌａｙＣＤコマンドでＣＤを再生する場合、インターフェースにＡ／Ｖバスインターフェース４を用いるか、ＬｅｇａｃｙＣＤ−ＤＳＰインターフェース６を用いるかをも選択する。Ａ／Ｖバスインターフェース４を用いる場合には、トラックバッファが使用される。ＬｅｇａｃｙＣＤ−ＤＳＰインターフェース６を用いる場合には、トラックバッファは使用されない。コードは例えば０ｘ４５である。コマンドが有効なステートは、レディーステートＳ４、プレイステートＳ５である。コマンドが有効なメディアタイプは、ＣＤ（ＣＤ-Ａｕｄｉｏ，ＶｉｄｅｏＣＤ)である。また、引数には、スタート位置及びエンド位置、モード設定情報が記述される。スタート位置及びエンド位置は、アブソリュートＭＳＦ（分、秒、フレーム番号）で記述される。返信されるメッセージは、ＬａｓｔＳｅｃｔｏｒメッセージ、ＲｅｔｕｒｅｄＲｅａｄｙメッセージ、ＣＭＤ＿ＯＫメッセージ、Ｅｒｒ＿Ｃｏｎｔｅｘｔメッセージである。エンドアドレスまでトラックバッファにデータが読み込まれると、ＬａｓｔＳｅｃｔｏｒメッセージが返信される。その後、トラックバッファにあるエンドアドレスまでのデータを全てホストコントローラ２が受信し、ドライブ装置１のステートがレディーステートＳ４に遷移したときにＲｅｔｕｒｎｅｄＲｅａｄｙメッセージが返信される。
【０１５０】
ＪｕｍｐＲｅｓｅｔコマンドは、ドライブ装置１のディスクトレイを閉じ、レーザ、スピンドル、フォーカス、トラッキング、スレッド等のサーボシステムを停止した状態にさせ、ステートをリセットステートＳ１に遷移させる命令である。コードは、例えば０ｘ４６である。コマンドが有効なステートは、リセットステートＳ１以外の全てである。コマンドが有効なメディアタイプは全てである。また、引数はない。返信されるメッセージは、ＪｕｍｐｅｄＲｅｓｅｔメッセージ、ＣＭＤ＿ＯＫメッセージ、Ｅｒｒ＿Ｃｏｎｔｅｘｔメッセージである。ディスクトレイが閉じた状態でサーボシステムが停止し、リセットステートＳ１に遷移すると、ＪｕｍｐｅｄＲｅｓｅｔメッセージが返信される。
【０１５１】
Ｓｌｅｅｐコマンドは、レーザ、スピンドル、フォーカス、トラッキング、スレッド等のサーボシステムを停止させ、ステートをスリープステートＳ６に遷移させる命令である。なお、ドライブ装置１は、Ｓｌｅｅｐコマンドが発行されても、ディスクのメディア情報は保持したままとしておく。コードは例えば０ｘ４Ａである。コマンドが有効なステートは、レディーステートＳ４である。コマンドが有効なメディアタイプは、全てである。また、引数はない。返信されるメッセージは、Ｓｌｅｐｔメッセージ、ＣＭＤ＿ＯＫメッセージ、Ｅｒｒ＿Ｃｏｎｔｅｘｔメッセージである。サーボシステムが停止し、スリープステートＳ６に遷移すると、Ｓｌｅｐｔメッセージが返信される。
【０１５２】
ＷａｋｅＵｐコマンドは、レーザ、スピンドル、フォーカス、トラッキング、スレッド等のサーボシステムを起動させ、ステートをスリープステートＳ６からレディーステートＳ４に遷移させる命令である。コードは例えば０ｘ４Ｂである。コマンドが有効なステートは、スリープステートＳ６である。コマンドが有効なメディアタイプは、全てである。また、引数はない。返信されるメッセージは、ＷｏｋｅＵｐメッセージ、ＣＭＤ＿ＯＫメッセージ、Ｅｒｒ＿Ｃｏｎｔｅｘｔメッセージである。サーボシステムが起動し、レディーステートＳ４に遷移すると、ＷｏｋｅＵｐメッセージが返信される。
【０１５３】
ＡｓｙｎｃｈｒｏｎｏｕｓＳｔｏｐコマンドは、このコマンドを受信したときに送信しているセクタデータを転送した後に、ドライブ装置のプレイ状態を中断させ、トラックバッファに格納されているディスクデータを消去するとともにステートをプレイステートＳ５からレディーステートＳ４に遷移させる。コードは、例えば０ｘ４Ｆである。コマンドが有効なステートは、プレイステートＳ５である。コマンドが有効なメディアタイプは、全てである。また、引数はない。返信されるメッセージは、ＲｅｔｕｒｎｅｄＲｅａｄｙメッセージ、ＣＭＤ＿ＯＫメッセージ、Ｅｒｒ＿Ｃｏｎｔｅｘｔメッセージである。転送中のセクタデータをホストコントローラ２に全て転送し、レディーステートＳ４に遷移すると、ＲｅｔｕｒｎｅｄＲｅａｄｙメッセージが返信される。
【０１５４】
つぎに、ＤＶＤ再生用のエクステンションコマンドについて説明をする。
【０１５５】
ＤＶＤの再生用のコマンドには、通常の非同期コマンドであるＰｌａｙＤＶＤコマンドの他に、エクステンションのコマンドセットがある。通常のＰｌａｙＤＶＤコマンドは、ディスクデータをセクタ（或いはブロック）レベルで制御するコマンドである。例えば、セクタ単位で開始位置を特定して再生を行う、といった制御が行われる。それに対して、エクステンションコマンドは、ＤＶＤの再生をＣｅｌｌレベルで制御するためのコマンドである。例えば、ＤＶＤのアングルの切換、セル単位で切り換え位置を特定して再生を行うといった、Ｃｅｌｌレベルでの制御が行われる。
【０１５６】
そのため、ドライブ装置１のシステムコントローラ２１は、ＤＶＤの再生を行う場合、ＤＶＤストリームの中からＤＳＩテーブルを抽出する。そして、アングルの切換の命令が与えられた場合には、ＤＳＩテーブルと与えられたアングル番号とを参照し、目的のアングルのアドレスを算出する。
【０１５７】
ＤＶＤ再生用のエクステンションコマンドは、図２１に示すように、ＡｎｇｌｅＳｅｔコマンド、ＳｃａｎＤＶＤコマンド、ＰｌａｙＤＶＤＣｅｌｌコマンドがある。
【０１５８】
ＡｎｇｌｅＳｅｔコマンドは、再生するアングルを切り換える命令である。ＤＶＤでは、複数のカメラアングルから撮影した映像を記録しておき、再生時にシームレスにアングルを切り換える、いわゆるマルチアングルと呼ばれる機能がある。このＤＶＤでは、Ｃｅｌｌと呼ばれる再生単位を設けられており、このＣｅｌｌ単位でアングルを切り換えることによりシームレスに再生を行うことができる。ＡｎｇｌｅＳｅｔコマンドは、ＰｌａｙＤＶＤＣｅｌｌコマンドによってドライブ装置１がＣｅｌｌ単位で再生制御を行っているときに、有効となる。このＡｎｇｌｅＳｅｔコマンドのコードは、例えば０ｘ０Ａである。コマンドが有効なステートは、ＰｌａｙＤＶＤＣｅｌｌ実行中のプレイステートＳ５である。コマンドが有効なメディアタイプは、ＤＶＤである。また、引数には、アングル番号が記述される。返信されるメッセージは、ＣＭＤ＿ＯＫメッセージ、Ｅｒｒ＿Ｃｏｎｔｅｘｔメッセージである。
【０１５９】
ＳｃａｎＤＶＤコマンドは、可変速順方向再生、可変速逆方向再生を行う命令である。ＳｃａｎＤＶＤコマンドを受けたドライブ装置１は、ＤＶＤデータに含まれているナビパック内のＤＳＩを参照し、再生方向及び再生速度に応じて、次に読み出すＶＯＢＵ（Video Object Unit）を算出する。そして、算出したＶＯＢＵをＤＶＤから順次読み出していくことによって、可変速再生を行うことができる。このＳｃａｎＤＶＤコマンドのコードは、例えば０ｘ０Ｂである。コマンドが有効なステートは、ＰｌａｙＤＶＤＣｅｌｌコマンド実行中のプレイステートＳ５である。コマンドが有効なメディアタイプは、ＤＶＤである。また、引数には、速度、方向、ピクチャの再生枚数等の情報が記述される。返信されるメッセージは、ＣＭＤ＿ＯＫメッセージ、Ｅｒｒ＿Ｃｏｎｔｅｘｔメッセージである。
【０１６０】
ＰｌａｙＤＶＤＣｅｌｌコマンドは、Ｃｅｌｌレベルで再生制御をする命令である。ドライブ装置１には、上述したようにシステムコントローラ２１がＤＶＤデータのナビパックからＤＳＩを抽出する。そのため、ドライブ装置１は、セルレベルでオペレーションを行うことができる。
【０１６１】
このようにドライブ装置１がナビパック内のＤＳＩを抽出して管理することにより、ホストコントローラ２からＣｅｌｌレベルでの再生命令を与えることができる。このため、アングル切り換えやマルチストーリ等のＤＶＤ特有の機能に対応した処理を、ドライブ装置１に負担させることができ、ホストコントローラ２の処理負担を軽減させることができる。
【０１６２】
即時メッセージ
図２２に、即時メッセージのメッセージセットテーブルを示す。
【０１６３】
即時メッセージには、ＤｉｓｃＴｙｐｅメッセージ、ＴＯＣメッセージ、ＴＯＣ＿ＡＬＬメッセージ、Ｓｔａｔｕｓメッセージ、ＬａｓｔＥｒｒメッセージ、Ｖｅｒｓｉｏｎメッセージ、ＡＭＳＦメッセージ、ＭＳＦメッセージ、ＴＮＯ＿Ｘメッセージ、ＳｕｂＱメッセージ、ＣＭＤ＿ＯＫメッセージ、Ｅｒｒ＿ＣＭＤメッセージ、Ｅｒｒ＿ＡＲＧメッセージ、Ｅｒｒ＿Ｃｏｎｔｅｘｔメッセージ、Ｅｒｒ＿ＣＯＭメッセージ、Ｅｒｒ＿ＣｏｍＱＥｍｐメッセージがある。
【０１６４】
ＤｉｓｃＴｙｐｅメッセージは、ドライブ装置１の装填されているディスクのメディアタイプを通知する。コードは例えば０ｘ０１である。関連するコマンドは、ＧｅｔＤｉｓｃＴｙｐｅコマンドである。引数には、ディスクが装填されていない、判別不能、シングルレイヤのＤＶＤ、デュアルレイヤパラレルトラックのＤＶＤ、デュアルレイヤ対向トラックのＤＶＤ、ＶｉｄｅｏＣＤ、ＣＤ-Ａｕｄｉｏ等の情報が記述される。
【０１６５】
ＴＯＣメッセージは、ドライブ装置１に装填されているＣＤ（ＶｉｄｅｏＣＤ，ＣＤ-Ａｕｄｉｏ）のＴＯＣの内容の一部を通知する。コードは例えば０ｘ０２である。関連するコマンドは、ＧｅｔＴＯＣコマンドである。引数には、特徴点のスタートポイント、第１トラックナンバー、最終トラックナンバー、リードアウト領域のスタートポイント等が記述される。
【０１６６】
ＴＯＣ＿ＡＬＬメッセージは、ドライブ装置１に装填されているＣＤのＴＯＣ内容を通知する。コードは、例えば０ｘ０３である。関連するコマンドは、ＧｅｔＴＯＣ＿ＡＬＬコマンドである。引数には、特徴点のスタートポイント、第１トラックナンバー、最終トラックナンバー、リードアウト領域のスタートポイント等が記述される。
【０１６７】
Ｓｔａｔｕｓメッセージは、ドライブ装置１の現在の各種状態を通知する。コードは、例えば０ｘ０４である。関連するコマンドは、ＧｅｔＳｔａｔｕｓコマンドである。引数には、ドライブ装置のステート、コマンドキューの状態、ディスクトレイの状態、トラックバッファの状態等が記述される。
【０１６８】
ＬａｓｔＥｒｒメッセージは、ドライブ装置１に発生した最後のエラー情報を通知する。コードは、例えば０ｘ０５である。関連するコマンドは、ＧｅｔＬａｓｔＥｒｒコマンドである。引数には、トレイトラブル、フォーカスＮＧ、ディスク判別不能、ディスクなし等の情報が記述される。
【０１６９】
Ｖｅｒｓｉｏｎメッセージは、ドライブ装置１の現在の各種設定情報を通知する。コードは、例えば０ｘ０６である。関連するコマンドは、ＧｅｔＶｅｒｓｉｏｎコマンドである。引数には、ファームウェアのバージョン、製造者ＩＤ、ドライブ装置１の設定情報が記述される。
【０１７０】
ＡＭＳＦメッセージは、ドライブ装置１で再生されているＣＤの現在のアブソリュートＭＳＦデータを通知する。コードは、例えば０ｘ０７である。関連するコマンドは、ＧｅｔＳｕｂＣｏｄｅコマンドである。引数には、現在のアブソリュートの分、秒、フレームが記述される。
【０１７１】
ＭＳＦメッセージは、ドライブ装置１で再生されているＣＤの現在のＭＳＦデータを通知する。コードは、例えば０ｘ０８である。関連するコマンドは、ＧｅｔＳｕｂＣｏｄｅコマンドである。引数には、現在のトラックにおける分、秒、フレームが記述される。
【０１７２】
ＴＮＯ＿Ｘメッセージは、ドライブ装置１で再生されているＣＤの現在のＴＮＯ及びＸデータを通知する。コードは、例えば０ｘ０９である。関連するコマンドは、ＧｅｔＳｕｂＣｏｄｅコマンドである。引数には、ＴＮＯ、Ｘが記述される。
【０１７３】
ＳｕｂＱメッセージは、ドライブ装置１で再生されているＣＤの現在のＣＴＬ／ＡＤＬ、ＴＮＯ、Ｘ、ＭＳＦ、ＡＭＳＦ等のデータを通知する。コードは、例えば０ｘ０Ａである。関連するコマンドは、ＧｅｔＳｕｂＣｏｄｅコマンドである。引数には、コントロール／アドレスデータ、現在のトラックナンバー、インデックス、現在のアブソリュートの分、秒、フレーム、現在のトラックにおける分、秒、フレーム等が記述される。
【０１７４】
ＣＭＤ＿ＯＫメッセージは、コマンドを受信したことを通知する。コードは、例えば０ｘ２１である。
【０１７５】
Ｅｒｒ＿ＣＭＤメッセージは、送信されたコマンドのコードのエラーを通知する。コードは、例えば０ｘ２２である。
【０１７６】
Ｅｒｒ＿ＡＲＧメッセージは、送信されたコマンドの引数のエラーを通知する。コードは、例えば０ｘ２３である。
【０１７７】
Ｅｒｒ＿Ｃｏｎｔｅｘｔメッセージは、送信されたコマンドのコンテクストエラーを通知する。コードは、例えば０ｘ２４である。
【０１７８】
Ｅｒｒ＿ＣＯＭメッセージは、送信されたコマンドの通信エラーを通知する。
コードは、例えば０ｘ２７である。
【０１７９】
Ｅｒｒ＿ＣｏｍＱＥｍｐメッセージは、ＦｌｕｓｈＰｌａｙＱｕｅｕコマンドが送信された場合、すでにコマンドキューが空であったときに通知する。コードは、例えば０ｘ２８である。
【０１８０】
非同期メッセージ
図２３に、非同期メッセージのメッセージセットテーブルを示す。
【０１８１】
非同期メッセージには、ＴｒａｙＰｕｓｈｅｄメッセージ、ＴｒａｙＯｐｅｎｅｄメッセージ、ＴｒａｙＣｌｏｓｅｄメッセージ、ＪｕｍｐｅｄＲｅｓｅｔメッセージ、ＷｏｋｅＵｐメッセージ、Ｓｌｅｐｔメッセージ、ＲｅｔｕｒｎｅｄＲｅａｄｙメッセージ、ＬａｓｔＳｅｃｔｏｒメッセージ、ＥｒｒＦａｔａｌＦａｉｌｕｒｅメッセージ、ＭｓｇＮｕｌｌメッセージがある。
【０１８２】
ＴｒａｙＰｕｓｈｅｄメッセージは、開いているディスクトレイがユーザにより押されたことを通知する。コードは、例えば０ｘ４１である。
【０１８３】
ＴｒａｙＯｐｅｎｅｄメッセージは、ディスクトレイが開き、オープンステートＳ３となったことを通知する。コードは、例えば０ｘ４２である。関連するコマンドは、ＯｐｅｎＴｒａｙコマンドである。
【０１８４】
ＴｒａｙＣｌｏｓｅｄメッセージは、ディスクトレイが閉じ、クローズステートＳ２となったことを通知する。コードは、例えば０ｘ４４である。関連するコマンドは、ＣｌｏｓｅＴｒａｙコマンド、ＳｅｔＭｏｄｅコマンド、Ｒｅｓｔａｒｔコマンドである。
【０１８５】
ＪｕｍｐｅｄＲｅｓｅｔメッセージは、ＪｕｍｐＲｅｓｅｔコマンドによりリセットステートＳ１に遷移したことを通知する。コードは、例えば０ｘ４６である。関連するコマンドは、ＪｕｍｐＲｅｓｅｔコマンドである。
【０１８６】
ＷｏｋｅＵｐメッセージは、レディーステートＳ４となったことを通知する。
コードは、例えば０ｘ４７である。関連するコマンドは、ＷａｋｅＵｐコマンド、ＣｌｏｓｅＴｒａｙコマンド、ＳｅｔＭｏｄｅコマンド、Ｒｅｓｔａｒｔコマンドである。
【０１８７】
Ｓｌｅｐｔメッセージは、スリープステートＳ６となったことを通知する。コードは、例えば０ｘ４８である。関連するコマンドは、Ｓｌｅｅｐコマンド、ＯｐｅｎＴｒａｙコマンドである。
【０１８８】
ＲｅｔｕｒｎｅｄＲｅａｄｙメッセージは、再生しているディスクのデータをホストコントローラ２に転送完了し、レディーステートＳ４に遷移したことを通知する。コードは、例えば０ｘ４９である。関連するコマンドは、ＡｓｙｎｃｈｒｏｎｏｕｓＳｔｏｐコマンド、ＰｌａｙＤＶＤコマンド、ＰｌａｙＣＤコマンド、ｐｌａｙＤＶＤＣｅｌｌコマンドである。
【０１８９】
ＬａｓｔＳｅｃｔｏｒメッセージは、再生しているディスクデータの最後のセクタ（ブロック）がトラックバッファに格納されたことを通知する。コードは、例えば０ｘ４Ｃである。関連するコマンドは、ＰｌａｙＤＶＤコマンド、ＰｌａｙＣＤコマンド、ｐｌａｙＤＶＤＣｅｌｌコマンドである。
【０１９０】
ＥｒｒＦａｔａｌＦａｉｌｕｒｅメッセージは、復活不能のエラーが発生したことを通知する。コードは、例えば０ｘ４Ｅである。
【０１９１】
ＭｓｇＮｕｌｌメッセージは、ＧｅｔＭｓｇコマンドを受信した場合に、返信するメッセージがないこと、すなわち、メッセージキューに非同期メッセージがないことを通知する。コードは、例えば０ｘ４Ｆである。
【０１９２】
具体的な伝送例
（同期コマンドシーケンスの伝送例）
図２４に、ホストコントローラ２がＧｅｔＶｅｒｓｉｏｎコマンドを送信し、それに応じてドライブ装置１がＶｅｒｓｉｏｎメッセージを返信する際の具体的なハードウェアレイヤ上の伝送例を示す。
【０１９３】
ＤＲＶＲＸ信号は、ホストコントローラ２からドライブ装置１へ送信されるデータを伝送する。また、ＤＲＶＴＸ信号は、ドライブ装置１からホストコントローラ２へ送信されるデータを伝送する。ＤＲＶＲＸ信号、ＤＲＶＴＸ信号に伝送されるデータは、ＤＲＶＣＬＫ信号に同期して伝送され、さらに、ＤＲＶＲＤＹ信号が有効（０）となっているときに、データの１バイト伝送を開始できる。
【０１９４】
まず、ＧｅｔＶｅｒｓｉｏｎコマンドがコマンドプロトコルに従い、ホストコントローラ２からドライブ装置１へ伝送される。
【０１９５】
コマンドプロトコルでは、まず、ホストコントローラ２からドライブ装置１へ、“ Command ”のバイト長を示す“ Command Length ”が伝送され（０ｘ０１）、続いて、ＧｅｔＶｅｒｓｉｏｎコマンドのコマンドコードである“ Command”が伝送され（０ｘ０７）、続いて、“ Command ”の加算合計値“ Command Check Sum ”が伝送される（０ｘ０７）。つぎに、ドライブ装置１からホストコントローラ２へ、“ Command Check Sum ”の補数が“ Acknowledgement ”として伝送される（０ｘＦ８）。
【０１９６】
ここで、コマンドプロトコルが完了する。コマンドプロトコルが完了した後、所定時間内（例えば１５ｍｓ以内）に、Ｖｅｒｓｉｏｎメッセージがドライブ装置１からホストコントローラ２へ伝送される。
【０１９７】
メッセージプロトコルでは、まず、ドライブ装置１からホストコントローラ２へ、“ Message ”のバイト長を示す“ Message Length ”が伝送され（０ｘ０５）、続いて、Ｖｅｒｓｉｏｎメッセージのメッセージコードである“ Message Code ”が伝送され（０ｘ０６）、続いて、Ｖｅｒｓｉｏｎメッセージの引数である“ Arg.1 ”〜“ Arg.４ ”が伝送され（０ｘ０１，０ｘ０２，０ｘ０３，０ｘ０４）、続いて、“ Message Code ”及び“ Arg.1 ”〜“ Arg.４ ”の加算合計値“ Message Check Sum ”が伝送される（０ｘ１０）。つぎに、ホストコントローラ２からドライブ装置１へ、“ Message Check Sum ”の補数が“ Acknowledgement ”として伝送される（０ｘＥＦ）。
【０１９８】
（非同期コマンドシーケンスの伝送例）
図２５に、ホストコントローラ２がＯｐｅｎＴｒａｙコマンドを送信し、それに応じて、ドライブ装置１がＳｌｅｐｔメッセージ、ＴｒａｙＯｐｅｎｄメッセージを返信する際の際の具体的なハードウェアレイヤ上の伝送例を示す。
【０１９９】
ＤＲＶＲＸ信号は、ホストコントローラ２からドライブ装置１へ送信されるデータを伝送する。また、ＤＲＶＴＸ信号は、ドライブ装置１からホストコントローラ２へ送信されるデータを伝送する。ＤＲＶＲＸ信号、ＤＲＶＴＸ信号に伝送されるデータは、ＤＲＶＣＬＫ信号に同期して伝送され、さらに、ＤＲＶＲＤＹ信号が有効（０）となっているときに、データの１バイト伝送を開始できる。
【０２００】
まず、ＯｐｅｎＴｒａｙコマンドがコマンドプロトコルに従い、ホストコントローラ２からドライブ装置１へ伝送される。
【０２０１】
コマンドプロトコルでは、まず、ホストコントローラ２からドライブ装置１へ、“ Command ”のバイト長を示す“ Command Length ”が伝送され、続いて、ＯｐｅｎＴｒａｙコマンドのコマンドコードである“ Command ”が伝送され、続いて、“ Command ”の加算合計値“ Command Check Sum ”が伝送される。つぎに、ドライブ装置１からホストコントローラ２へ、“ Command Check Sum ”の補数が“ Acknowledgement ”として伝送される。ここで、コマンドプロトコルが完了する。
【０２０２】
コマンドプロトコルが完了した後、所定時間内（例えば１５ｍｓ以内）に、ＣＭＤ＿ＯＫメッセージがメッセージプロトコルに従いドライブ装置１からホストコントローラ２へ伝送される。
【０２０３】
メッセージプロトコルでは、まず、ドライブ装置１からホストコントローラ２へ、“ Message ”のバイト長を示す“ Message Length ”が伝送され、続いて、ＣＭＤ＿ＯＫメッセージのメッセージコードである“ Message Code ”が伝送され、続いて、“ Message Code ”の加算合計値“ Message Check Sum ”が伝送される。つぎに、ホストコントローラ２からドライブ装置１へ、“ Message Check Sum ”の補数が“ Acknowledgement ”として伝送される。ここで、メッセージプロトコルが完了する。
【０２０４】
ドライブ装置１は、ＣＭＤ＿ＯＫメッセージを送信すると、スピンドルサーボ等の各種サーボシステムを停止し、ステートをスリープステートＳ６に遷移させる。
【０２０５】
スリープステートＳ６への遷移が完了すると、ＤＲＶＩＲＱ信号をアクティブ（０）として、ホストコントローラ２へ割り込み要求を行う。
【０２０６】
ホストコントローラ２は、ドライブ装置１から割り込み要求があると、ＧｅｔＭｓｇコマンドをコマンドプロトコルに従い、ドライブ装置１へ送信する。
【０２０７】
コマンドプロトコルでは、まず、ホストコントローラ２からドライブ装置１へ、“ Command ”のバイト長を示す“ Command Length ”が伝送され、続いて、ＧｅｔＭｓｇコマンドのコマンドコードである“ Command ”が伝送され、続いて、“ Command ”の加算合計値“ Command Check Sum ”が伝送される。つぎに、ドライブ装置１からホストコントローラ２へ、“ Command Check Sum ”の補数が“ Acknowledgement ”として伝送される。ここで、コマンドプロトコルが完了する。
【０２０８】
コマンドプロトコルが完了した後、所定時間内（例えば１５ｍｓ以内）に、Ｓｌｅｐｔメッセージがドライブ装置１からホストコントローラ２へ伝送される。
【０２０９】
続いて、ドライブ装置１は、ディスクトレイをオープンさせ、ステートをオープンステートＳ３に遷移させる。
【０２１０】
オープンステートＳ３への遷移が完了すると、ＤＲＶＩＲＱ信号をアクティブ（０）として、ホストコントローラ２へ割り込み要求を行う。
【０２１１】
ホストコントローラ２は、ドライブ装置１から割り込み要求があると、ＧｅｔＭｓｇコマンドをコマンドプロトコルに従い、ドライブ装置１へ送信する。
【０２１２】
コマンドプロトコルが完了した後、所定時間内（例えば１５ｍｓ以内）に、ＴｒａｙＯｐｅｎｅｄメッセージがドライブ装置１からホストコントローラ２へ伝送される。
【０２１３】
ＤＶＤのＣｅｌｌ単位での再生動作
ＤＶＤ（ＤＶＤ−Ｖｉｄｅｏディスク）には、記録されているコンテンツを再生するために必要となる制御データ（ＤＳＩ（ Data Search Information ））が記述されている。ＤＶＤを再生する場合、通常、ＤＳＩを検出してＤＳＩテーブルを作成し、このＤＳＩテーブルに基づき、ＤＶＤデータの読み出し制御を行う。
【０２１４】
ここで、本システムでは、このＤＳＩテーブルをドライブ装置１側で作成して、ＤＶＤデータの読み出し制御が可能となっている。具体的には、ドライブ装置１内のシステムコントローラ２１がＤＳＩテーブルを作成することによって、ホストコントローラ２から与えられるＰｌａｙＤＶＤＣｅｌｌコマンド、ＳｃａｎＤＶＤコマンド、ＡｎｇｌＳｅｔコマンドに対応した、Ｃｅｌｌ単位での通常再生処理、可変速順方向再生、可変速逆方向再生、アングル切り換え処理を行う。なお、可変速順方向再生及び可変速逆方向再生を以下まとめて可変速再生と呼ぶ。
【０２１５】
以下、上記の各処理について説明をする前に、まず、ＤＶＤのフォーマット（ＤＶＤ−Ｖｉｄｅｏディスクのフォーマット）について簡単に説明をする。
【０２１６】
ＤＶＤでは、図２６に示すように、記録されている映画や番組等のプログラムがＰＧＣ（ Program Chain ）と呼ばれる一連のシーケンスで管理されている。ＰＧＣは、Ｖｉｄｅｏデータの実体であるＶＯＢＳと、ＶＯＢＳを再生する手順及びその他の制御手順を記述したＰＣＧＩにより構成されている。
【０２１７】
ＰＧＣで管理されている各プログラムは、複数のＣｅｌｌで構成されている。Ｃｅｌｌは、例えば映画における１シーンや１カット等の再生単位となり、１Ｃｅｌｌが数分から１０数分という時間の単位となる。ＤＶＤ−Ｖｉｄｅｏでは、例えば、１つの映画を複数のストーリー展開で見ることができるマルチストーリといった機能を備えており、このような機能は、複数Ｃｅｌｌの組み合わせにより作成される。
【０２１８】
各Ｃｅｌｌは、図２７に示すように、複数のVideo Object Unit（ＶＯＢＵ）により構成されている。ＶＯＢＵは、動画像で０．４から１．２秒程度の単位であり、ＶＯＢＵの中に通常ＭＰＥＧ２のフォーマットにおける１以上のＧＯＰ（ Group Of Pictures ）が含まれることになる。
【０２１９】
ＶＯＢＵは、当該ＶＯＢＵの管理情報を有するパックであるＮＶ＿ＰＣＫ（ナビパック）と、ビデオデータが格納されるパックであるＶ＿ＰＣＫと、音声データが格納されるパックであるＡ＿ＰＣＫと、副映像データが格納されるパックであるＳＰ＿ＰＣＫとが含まれている。
【０２２０】
ＮＶ＿ＰＣＫは、各ＶＯＢＵの先頭位置に配置されている。従って、ＶＯＢＵの先頭アドレスからデータを読み出せば、当該ＶＯＢＵの管理情報を有するＮＶ＿ＰＣＫをまず読み出すこととなる。ＮＶ＿ＰＣＫは、ヘッダと、ＰＣＩ＿ＰＫＴ（ Presentation Control Information ）と、ＤＳＩ＿ＰＫＴ（Data Serch Information ）から構成されている。そして、ＮＶ＿ＰＣＫ内のＤＳＩ＿ＰＫＴにＤＳＩ（ Data Seachi Information ）が含まれている。
【０２２１】
ＤＳＩは、図２８に示すように、全般の制御情報が含まれるDSI General Information（ＤＳＩ＿ＧＩ）と、シームレス再生をする際の再生制御情報が含まれるSeamless Playback Information（ＳＭＬ＿ＰＢＩ）と、シームレスにアングル切り換えを行う際の他のインタリーブユニットのアドレス情報が含まれるAngle Information for seamless（ＳＭＬ＿ＡＧＬＩ）と、ＶＯＢＵ間の時間間隔等の検索情報が含まれるVOB Unit Search Information（ＶＯＢＵ＿ＳＲＩ）と、音声データ及び副映像データと時間的な一致を示すシンクロ情報が含まれるSynchronous Information（ＳＹＮＣＩ）とが含まれている。
【０２２２】
ＤＳＩ＿ＧＩには、図２９に示すように、ＮＶ＿ＰＣＫ＿ＳＣＲと、ＮＶ＿ＰＣＫ＿ＬＢＮと、ＶＯＢＵ＿ＥＡと、ＶＯＢＵ＿１ＳＴＲＥＦ＿ＥＡと、ＶＯＢＵ＿２ＮＤＲＥＦ＿ＥＡと、ＶＯＢＵ＿３ＲＤＲＥＦ＿ＥＡと、ＶＯＢＵ＿ＶＯＢ＿ＩＤＮと、ＶＯＢＵ＿Ｃ＿ＩＤＮと、Ｃ＿ＥＬＴＭとが含まれている。
【０２２３】
ＮＶ＿ＰＣＫ＿ＳＣＲには、システムクロックの基準が示されている。ＮＶ＿ＰＣＫ＿ＬＢＮには、当該ＮＶ＿ＰＣＫのアドレスが示されている。ＶＯＢＵ＿ＥＡには、当該ＶＯＢＵのエンドアドレスが示されている。ＶＯＢＵ＿１ＳＴＲＥＦ＿ＥＡには、当該ＶＯＢＵ内の最初のＩ−Ｐｉｃｔｕｒｅのエンドアドレスが示されている。ＶＯＢＵ＿２ＮＤＲＥＦ＿ＥＡには、当該ＶＯＢＵ内の最初から２番目のＩ−Ｐｉｃｔｕｒｅ又はＰ−Ｐｉｃｔｕｒｅのエンドアドレスが示されている。ＶＯＢＵ＿３ＲＤＲＥＦ＿ＥＡには、当該ＶＯＢＵの最初から３番目のＩ−Ｐｉｃｔｕｒｅ又はＰ−Ｐｉｃｔｕｒｅのエンドアドレスが示されている。ＶＯＢＵ＿ＶＯＢ＿ＩＤＮには、当該ＶＯＢＵのＩＤ番号が示されている。ＶＯＢＵ＿Ｃ＿ＩＤＮには、当該ＶＯＢＵが含まれるＣｅｌｌのＩＤ番号が示されている。Ｃ＿ＥＬＴＭには、当該ＶＯＢＵが含まれるＣｅｌｌの先頭からの経過時間が示されている。
【０２２４】
ＳＭＬ＿ＡＧＬＩには、図３０に示すように、アングル番号１〜９に対応する各インタリーブユニットのアドレス及びデータサイズが示されている。各インタリーブユニットは、図３１に示すように、再生開始点及び終了点が、各アングル毎全てで同時刻となっている。ユーザによりアングル切換操作が行われたときに、ＤＶＤシステムでは、インタリーブユニットの切れ目の時刻までまってにアングルの切換を行う。このことによって、シームレスにアングル切換をすることができる。
【０２２５】
ＶＯＢＵ＿ＳＲＩには、図３２に示すように、ＦＷＤＮｅｘｔと、ＦＷＤＩｎと、ＦＷＤＩＶｉｄｅｏと、ＢＷＤｐｒｅｖと、ＢＷＤＩｎと、ＢＷＤＶｉｄｅｏとが記述されている。
【０２２６】
ＦＷＤＩｎには、当該ＶＯＢＵから所定時間先のＶＯＢＵのアドレスが示されている。ここで、添字のｎは、時間を表しており、実際には、ｎ×０．５秒の単位である。例えば、０．５秒先のＶＯＢＵのアドレスはＦＷＤＩ１に示されており、５秒後のＶＯＢＵのアドレスはＦＷＤＩ１０に示されており、３０秒先のＶＯＢＵのアドレスはＦＷＤＩ６０に示されている。同様に、ＢＷＤＩｎには、当該ＶＯＢＵから時間軸方向に前のＶＯＢＵのアドレスが示されている。添字のｎは、ＦＷＤＩと同一である。なお、同一のＣｅｌｌ内に、所定時間以降の或いは所定時間以前のＶＯＢＵが無い場合は、このアドレスを示すデータの下３０ｂｉｔはすべて１となる（なお、当該ＶＯＢＵのアドレスを示すデータは、４Ｂｉｔｅで示されている。）。例えば、Ｃｅｌｌの一番最初のＶＯＢＵであれば、それ以前のＶＯＢＵはこのＶＯＢＵ＿ＳＲＩには示されないため各ＢＷＤＩのアドレスを示すデータは、全て１となる。また、Ｃｅｌｌの一番最後のＶＯＢＵであれば、各ＦＷＤＩのアドレスを示すデータは、全て１となる。
【０２２７】
ＦＷＤＩＮｅｘｔには、このＶＯＢＵの直後のＶＯＢＵのアドレスが示されている。また、ＢＷＤＩＰｒｅｖには、このＶＯＢＵの直前のＶＯＢＵのアドレスが示されている。
【０２２８】
ＦＷＤＩＶｉｄｅｏには、当該ＶＯＢＵの次のビデオデータがあるＶＯＢＵのアドレスが示されている。例えば、ビデオデータが存在しないＶＯＢＵが連続して続く場合は、当該ＶＯＢＵの次にビデオデータが存在するＶＯＢＵのアドレスを示している。また、ＢＷＤＩＶｉｄｅｏには、当該ＶＯＢＵの直前のビデオデータがあるＶＯＢＵのアドレスが示されている。例えば、当該ＶＯＢＵ以前のＶＯＢＵにビデオデータが存在していないＶＯＢＵが続いていれば、最後にビデオデータが存在したＶＯＢＵのアドレスである。
【０２２９】
なお、以上説明したＶＯＢＵ＿ＳＲＩのアドレスは、ＶＯＢＵの先頭からの距離を示した相対アドレスである。すなわち、このＶＯＢＵ＿ＳＲＩに示されるアドレスのＶＯＢＵのデータを取得するときは、このＶＯＢＵ＿ＳＲＩが含まれる当該ＶＯＢＵのアドレス（ＮＶ＿ＰＣＫ＿ＬＢＮ）に例えばＦＷＤＩｎを加えることとなる。
【０２３０】
（Ｃｅｌｌ単位での通常再生処理）
一般的にＤＶＤを再生する場合には、Ｃｅｌｌ単位で再生処理が行われる。例えば、あるＣｅｌｌが、図３３に示すように、所定の開始アドレス（address_A）から所定の終了アドレス（address_B）までに格納されているとする。このＣｅｌｌに対して再生を行う場合、従来のシステムでは、図３４に示すように、ホストコントローラ側がＤＳＩを解析して、読み出し開始アドレス（address_A）と終了アドレス（address_B）とを指定し、ドライブ装置に再生命令を与えなければならなかった。例えば、本システムにおける通常のＤＶＤ再生命令であるＰｌａｙＤＶＤコマンドは、このような処理となる。
【０２３１】
しかしながら、本システムでは、ドライブ装置１側にＤＳＩを検索する機能が設けられているため、図３５に示すように、ホストコントローラ２が読み出し開始アドレス（address_A）のみを指定してドライブ装置１に再生命令を与えれば、このドライブ装置１が読み出し開始アドレスが含まれるＣｅｌｌを自動的に最後まで再生することができる。すなわち、ドライブ装置１は、読み出し開始アドレスで指定されたＶＯＢＵのＤＳＩをまず読み出して、そのＶＯＢＵのＤＳＩテーブルを作成し、そのＤＳＩテーブルから続くＶＯＢＵを順次検索していくので、Ｃｅｌｌの終了位置まで自動的に再生することができる。本システムでは、上述したＰｌａｙＤＶＤＣｅｌｌコマンドがこのような処理命令となる。
【０２３２】
また、Ｃｅｌｌは、物理的に不連続にディスク上に記録されている場合もある。例えば、ある１つのＣｅｌｌが、図３６に示すように、address_A〜address_B、address_C〜address_D、address_E〜address_Fといったようにディスク上に離散的に配置されている場合がある。このような場合、従来のシステムでは、図３７に示すように、ホストコントローラ側がＤＳＩを解析して、アドレス（address_A）とアドレス（address_B）とを指定してドライブ装置に再生命令を与え、続いて、アドレス（address_C）とアドレス（address_D）とを指定してドライブ装置に再生命令を与え、続いて、アドレス（address_E）とアドレス（address_F）とを指定してドライブ装置に再生命令を与えなければならなかった。図３４で示したように、ホストコントローラ２が読み出し開始アドレス（address_A）のみを指定してドライブ装置１に再生命令を与えれば、このドライブ装置１が読み出し開始アドレスが含まれるＣｅｌｌを自動的に最後まで再生することができる。
【０２３３】
（再生速度可変処理）
ＤＶＤでは、ＤＳＩのＶＯＢＵ＿ＳＲＩ内に、現在再生しているＶＯＢＵから所定時間先のＶＯＢＵのアドレスが示されている（ＦＷＤＩｎ）。また、現在再生しているＶＯＢＵから所定時間前のＶＯＢＵのアドレスも示されている（ＢＷＤＩｎ）。そのため、逆方向への再生を含めて、速度を可変させて再生することができる。すなわち、図３８及び図３９に示すようにシーケンシャルなプログラムに対して、所定時間間隔のジャンプと所定秒数の再生を繰り返せば、任意倍速の順方向再生や逆方向再生を行うことができる。
【０２３４】
このような可変速再生をする場合、従来のシステムでは、図４０に示すように、ホストコントローラ側がＤＳＩを解析して、まず、読み出し開始アドレス（address_A）と終了アドレス（address_B）とを指定してドライブ装置に再生命令を与える。続いて、再生停止命令を与えて、当該Ｃｅｌｌの再生を停止する。続いて、所定秒数の再生を行う再生部分の開始アドレスと終了アドレスを順次与えていくことにより、可変速再生を行わなければならなかった。例えば、本システムにおける通常のＤＶＤ再生命令であるＰｌａｙＤＶＤコマンドは、このような処理となる。
【０２３５】
しかしながら、本システムでは、ドライブ装置１側にＤＳＩを検索する機能が設けられているため、図４１に示すように、読み出し開始アドレス（address_A）のみを指定してドライブ装置１に再生命令を与え、続いて、再生方向の情報（順方向／逆方向）と、ジャンプする距離（再生速度）と、再生部分の長さ（再生するピクチャ枚数）を指定すれば、ドライブ装置１がＶＯＢＵ＿ＳＲＩを参照して読み出すＶＯＢＵを抽出して、速度を可変して再生することができる。本システムでは、上述したＳｃａｎＤＶＤＣｅｌｌコマンドがこのような処理命令となる。
【０２３６】
（アングル切換）
ＤＶＤでは、いわゆるマルチアングルという機能が設けられている。マルチアングルは、最大９個までの異なるカメラアングルから撮影した映像をディスクに記録しておき、再生中に見たいアングルからの映像を切り換えることができる。特に、このマルチアングルでは、図４２に示すように、同時進行している複数のアングルの映像を、アングルの切換操作に伴い、切れ目なしにシームレスにつなぎあわせながら再生を行うことができる。そのため、ＤＶＤでは、ＤＳＩのＳＭＬ＿ＡＧＬＩを参照し、アングル毎に時間的な同期を取ったインタリーブユニットの切れ目で、アングルの切換が行われる。
【０２３７】
このようなアングル切換を行う場合、従来のシステムでは、図４３に示すように、ホストコントローラ側がＤＳＩを解析して、まず、読み出し開始アドレス（address_A）と終了アドレス（address_B）とを指定してドライブ装置に再生命令を与える。続いて、ユーザからのアングル切換操作に伴い、ホストコントローラ側がＤＳＩを解析して、インタリーブユニットの切れ目を検出し、切換先のアングルの読み出し開始アドレスと終了アドレスとを指定してドライブ装置に再生命令を与えなければならなかった。
【０２３８】
しかしながら、本システムでは、ドライブ装置１側にＤＳＩを検索する機能が設けられているため、図４４に示すように、読み出し開始アドレス（address_A）のみを指定して所定のアングルの再生命令をドライブ装置１に与え、続いて、アングル切換操作があったときに、アングル切換命令とともにアングル番号のみを与えれば、アングル切換を行うことができる。本システムでは、上述したＡｎｇｌｅＳｅｔコマンドがこのような処理命令となる。
【０２３９】
（ドライブ装置１の具体的な処理フロー）
つぎに、ドライブ装置１のシステムコントローラ２１によるＣｅｌｌレベルの再生処理手順について説明をする。
【０２４０】
図４５にＣｅｌｌレベルでの再生処理フローを示す。
【０２４１】
ドライブ装置１のシステムコントローラ２１は、ホストコントローラ２からセルレベルでの再生命令（ＰｌａｙＤＶＤＣｅｌｌコマンド）が与えられると、以下のステップＳ１１からの処理を開始する。ホストコントローラ２は、ＰｌａｙＤＶＤＣｅｌｌコマンドを発行する際に、引数として読み出し開始位置を示す読み出し開始アドレスを指定する。
【０２４２】
ステップＳ１１において、ドライブ装置１は、指定された読み出し開始アドレスから、ＤＶＤデータの読み出しを開始する。
【０２４３】
続いて、ステップＳ１２において、ドライブ装置１は、読み出したＤＶＤデータから所定のＶＯＢＵのＤＳＩを取得する。
【０２４４】
続いて、ステップＳ１３において、ドライブ装置１は、読み出しアドレスで指定されるＶＯＢＵの再生処理を行う。このＶＯＢＵレベルでの再生処理の内容についてはその詳細を後述する。
【０２４５】
続いて、ステップＳ１４において、ドライブ装置１は、ステップＳ１３で再生した当該ＶＯＢＵがＣｅｌｌの終末のＶＯＢＵであるかどうかを判断する。判断した結果、Ｃｅｌｌの終末のＶＯＢＵである場合には、このＣｅｌｌレベルでの再生処理フローを終了する。また、判断した結果、Ｃｅｌｌの終末のＶＯＢＵでない場合には、続くステップＳ１５に進む。なお、このＣｅｌｌの終末のＶＯＢＵであるかどうかの判断処理についてはその詳細を後述する。
【０２４６】
続いて、ステップＳ１５において、ステップＳ１３で再生したＶＯＢＵ内のＤＳＩを参照することによって、次に読み込むＶＯＢＵのスタートアドレスを算出する。そして、再度ステップＳ１２に進み、次のＶＯＢＵにして同様の処理を繰り返していく。なお、この次に読み込むＶＯＢＵのスタートアドレスの算出処理についてはその詳細を後述する。
【０２４７】
次に上記ステップＳ１３のＶＯＢＵレベルでの再生処理フローについて図４６を参照して説明をする。
【０２４８】
まず、ステップＳ２１において、ドライブ装置１は、可変速再生命令（ＳｃａｎＤＶＤコマンド）が与えられているかどうかを判断する。判断した結果、ＳｃａｎＤＶＤコマンドが与えられていない場合には、ステップＳ２２に進む。また、判断した結果、ＳｃａｎＤＶＤ命令が与えられている場合には、ステップＳ２３に進む。
【０２４９】
続いて、ステップＳ２２において、ドライブ装置１は、当該ＶＯＢＵの先頭から当該ＶＯＢＵの終末までのデータを再生し、この再生処理フローを終了する。なお、ＶＯＢＵのエンドアドレスは、ＤＳＩ＿ＧＩ内のＶＯＢＵ＿ＥＡに記述されている。また、当該ＶＯＢＵのスタートアドレスは、最初に再生するＶＯＢＵに関してはホストコントローラ２から与えられており、２番目以降に再生するＶＯＢＵに関しては、上述したステップＳ１５で前のＶＯＢＵのＤＳＩを参照して求められている。
【０２５０】
一方、ステップＳ２３において、ドライブ装置１は、当該ＶＯＢＵを、第１のリファレンスピクチャまで再生をするか、第２のリファレンスピクチャまで再生をするか、第３のリファレンスピクチャまで再生をするかを判断する。これらは、ＳｃａｎＤＶＤコマンドにより引数として与えられる再生ピクチャ数の情報に基づき判断する。当該ＶＯＢＵを第１のリファレンスピクチャまで再生を行う場合にはステップＳ２４に進み、当該ＶＯＢＵを第２のリファレンスピクチャまで再生をする場合にはステップＳ２５に進み、当該ＶＯＢＵを第３のリファレンスピクチャまで再生をする場合にはステップＳ２６に進む。
【０２５１】
続いて、ステップＳ２４において、ドライブ装置１は、当該ＶＯＢＵの先頭から第１のリファレンスピクチャの終末までのデータを再生し、この再生処理フローを終了する。なお、第１のリファレンスピクチャのエンドアドレスは、ＤＳＩのＤＳＩ＿ＧＩ内のＶＯＢＵ＿１ＳＴＲＥＦ＿ＥＡに記述されている。
【０２５２】
続いて、ステップＳ２５において、ドライブ装置１は、当該ＶＯＢＵの先頭から第２のリファレンスピクチャの終末までのデータを再生し、この再生処理フローを終了する。なお、第２のリファレンスピクチャのエンドアドレスは、ＤＳＩのＤＳＩ＿ＧＩ内のＶＯＢＵ＿２ＮＤＲＥＦ＿ＥＡに記述されている。
【０２５３】
続いて、ステップＳ２６において、ドライブ装置１は、当該ＶＯＢＵの先頭から第３のリファレンスピクチャの終末までのデータを再生し、この再生処理フローを終了する。なお、第３のリファレンスピクチャのエンドアドレスは、ＤＳＩのＤＳＩ＿ＧＩ内のＶＯＢＵ＿３ＲＤＲＥＦ＿ＥＡに記述されている。
【０２５４】
次に上記ステップＳ１４での当該ＶＯＢＵがＣｅｌｌの終末であるかどうかの判断処理フローについて図４７を参照して説明をする。
【０２５５】
まず、ステップＳ３１において、ドライブ装置１は、可変速再生命令（ＳｃａｎＤＶＤコマンド）が与えられているかどうかを判断する。判断した結果、ＳｃａｎＤＶＤコマンドが与えられていない場合には、ステップＳ３２に進む。また、判断した結果、ＳｃａｎＤＶＤ命令が与えられている場合には、ステップＳ３３に進む。
【０２５６】
ステップＳ３２において、ドライブ装置１は、当該ＶＯＢＵの次のＶＯＢＵが存在するかどうかを判断する。ＤＶＤ−Ｖｉｄｅｏでは、当該ＶＯＢＵがＣｅｌｌの終末である場合には、当該ＶＯＢＵの次のＶＯＢＵが存在しないため、ＶＯＢＵ＿ＳＲＩ内のＦＷＤＩＮｅｘｔにはアドレスの代わりに“3FFF FFFh”と記述されることが規定されている。従って、ドライブ装置１は、ＶＯＢＵ＿ＳＲＩ内のＦＷＤＩＮｅｘｔを参照し、そこに記述されているアドレスが、“3FFF FFFh”であるか否かを判断することにより、当該ＶＯＢＵの次のＶＯＢＵが存在するかどうかを判断することができる。ドライブ装置１は、ＦＷＤＩＮｅｘｔに“3FFF FFFh”と記述されていればＣｅｌｌの終末であると判断し、ＦＷＤＩＮｅｘｔに“3FFF FFFh”と記述されていなければＣｅｌｌの終末ではないと判断する。
【０２５７】
ステップＳ３３において、ドライブ装置１は、所定の間隔で可変速再生をした際に当該ＶＯＢＵの次に読み出されるＶＯＢＵが当該Ｃｅｌｌ内に存在するかどうかを判断する。すなわち、可変速再生をしてＣｅｌｌの終末を通り越してしまうかどうかを判断する。なお、次に読み込むＶＯＢＵのアドレスは、ＳｃａｎＤＶＤコマンドの引数として与えられる再生速度に基づき判断する。ＤＶＤ−Ｖｉｄｅｏでは、Ｃｅｌｌ内にＦＷＤＩｎ（又はＢＷＤＩｎ）で読み出されるＶＯＢＵが存在しない場合、そのＦＷＤＩｎ（又はＢＷＤＩｎ）にはアドレスの代わりに“3FFF FFFh”と記述されることが規定されている。従って、ドライブ装置１は、ＶＯＢＵ＿ＳＲＩ内のＦＷＤＩｎを参照し、そこに記述されているアドレスが、“3FFF FFFh”であるか否かを判断することにより、当該ＶＯＢＵの所定秒数先のＶＯＢＵが存在するかどうかを判断することができる。ドライブ装置１は、ＦＷＤＩｎに“3FFF FFFh”と記述されていればＣｅｌｌの終末を通り過ぎたと判断し、ＦＷＤＩｎに“3FFF FFFh”と記述されていなければＣｅｌｌの終末ではないと判断する。
【０２５８】
つぎに、上記ステップＳ１５での次のＶＯＢＵのスタートアドレスの算出処理について図４８を参照して説明をする。
【０２５９】
まず、ステップＳ４１において、ドライブ装置１は、可変速再生命令（ＳｃａｎＤＶＤコマンド）が与えられているかどうかを判断する。判断した結果、ＳｃａｎＤＶＤコマンドが与えられている場合には、ステップＳ４２に進む。また、判断した結果、ＳｃａｎＤＶＤ命令が与えられていない場合には、ステップＳ４３に進む。
【０２６０】
続いて、ステップＳ４２において、ドライブ装置１は、現在のＶＯＢＵから、ＳｃａｎＤＶＤコマンドで引数で与えられる再生速度と方向情報とにより、当該ＶＯＢＵから次に再生するＶＯＢＵとの時間間隔を求める。そして、その時間間隔のＤＳＩ＿ＳＲＩのＦＷＤＩｎ（ＢＷＤＩｎ）を検出し、次に再生するＶＯＢＵのスタートアドレスを読み出す。例えば、時間間隔が５０秒であればＦＷＤＩ１０のアドレスを検出し、また、時間間隔が−１００秒（１００秒前のＶＯＢＵ）であればＢＷＤＩ２０のアドレスを検出して、処理を終了する。
【０２６１】
一方ステップＳ４３において、ドライブ装置１は、ホストコントローラ２からアングル切換命令（ＡｎｇｌｅＳｅｔコマンド）があったかどうかを判断する。
ＡｎｇｌｅＳｅｔコマンドがあった場合には、ステップＳ４４に進み、ＡｎｇｌｅＳｅｔコマンドがない場合には、ステップＳ４５に進む。
【０２６２】
続いて、ステップＳ４４において、当該ＶＯＢＵがＩＬＶＵの終末かどうかを判断する。当該ＶＯＢＵがＩＬＶＵの終末であるかどうかは、ＤＳＩのＳＭＬ＿ＰＢＩ内のＶＯＢＵ＿ＳＭＬ＿ＣＡＴの４ビット目にあるＵｎｉｔＥｎｄｆｌａｇを参照することにより判断することができる。当該ＶＯＢＵがＩＬＶＵの終末であると判断した場合には、ステップＳ４６に進み、当該ＶＯＢＵがＩＬＶＵの終末でないと判断した場合には、ステップＳ４４に進む。
【０２６３】
続いて、ステップＳ４５において、ドライブ装置１は、ＤＳＩ＿ＳＲＩのＦＷＤＩＮｅｘｔからアドレスを検出して、処理を終了する。
【０２６４】
続いて、ステップＳ４６において、ドライブ装置１は、ＡｎｇｌｅＳｅｔコマンドの引数として指定されるアングル番号のＳＭＬ＿ＡＧＬ＿Ｃｎ＿ＤＳＴＡからアドレスを検出して、処理を終了する。
【０２６５】
【発明の効果】
本発明にかかるディスクドライブシステム、ドライブ装置及びシステム制御装置では、ディスクデータを転送するデータインタフェースと、コマンド及びメッセージを転送するコマンドインタフェースとを分離している。
【０２６６】
このことにより、本発明では、データバスを用いてディスクデータを転送している最中でも、転送中断することなく、コマンドやメッセージの転送を行うことができ、効率的に処理を行うことができる。
【０２６７】
また、本発明では、ドライブ装置が割り込み要求ラインを用いてシステム制御装置に割り込み要求を通知し、システム制御装置がその割り込み要求を取得すると、メッセージの取得が可能であることを示すコマンドをドライブ装置に送信する。そしてドライブ装置は、システム制御装置からメッセージの取得が可能であることを示すコマンドを受信すると、非同期メッセージを上記システム制御装置に送信する。
【０２６８】
このことにより、本発明では、システム制御装置がドライブ装置の状態を常に監視しなくても、ドライブ装置からのメッセージを受信することができる。そのため、演算処理の負荷の軽減や、トラフィックの低減をすることができ、さらに、ドライブ装置からのメッセージを時間差なく得ることができる。
【０２６９】
本発明にかかるディスクドライブシステム、ドライブ装置、システム制御装置では、ディスクデータを転送するデータインタフェースと、コマンド及びメッセージを転送するコマンドインタフェースとを分離しており、さらに、コマンドインターフェースを、当該コマンドインターフェースのハードウェア構造が定義されたハードウェアレイヤと、当該インターフェースの通信プロトコルが定義されたコミュニケーションレイヤと、上記コマンド及びメッセージが定義されたコマンド／メッセージレイヤとで階層構造化されて構成されている。
【０２７０】
このことにより本発明では、１つの階層のみを入れ替えて、インタフェースの仕様を変更することが可能となり、インターフェースの仕様の自由度が大きくなる。従って、例えば、ハードウェア構成が異なるインターフェースと接続する場合には、ハードウェアレイヤの構成のみを変更すればよく、また、コマンドやメッセージの内容が異なるインターフェースと接続する場合には、コマンド／メッセージレイヤの構成だけを変更すればよい。
【０２７１】
また、本発明では、上記コミュニケーションレイヤで、エラーチェックデータを含む伝送データを伝送する。
【０２７２】
このことにより本発明では、コマンドインターフェースでエラーが生じた場合でも、速やかにエラーを検出することができる。
【０２７３】
本発明にかかるディスクドライブシステム及びドライブ装置では、振る舞いを定義する複数のステートが定められたステートマシーンに応じてドライブ装置が管理される。
【０２７４】
このことにより本発明では、システム制御装置がドライブ装置の動作状態を的確に把握することができ、そのためコマンドを供給することによって次の制御を容易且つ的確に行うことができる。
【０２７５】
また、本発明は、ステートマシーンが、ドライブ装置をハードウェアリセットがされた初期状態に制御する初期ステートを有しており、ハードウェアリセット信号がシステム制御装置から与えられた場合に、初期ステートへ遷移する。
【０２７６】
このことにより本発明では、電源を投入した直後やリセットボタン等を押した直後にハードウェアリセット状態とするのではなく、システム制御装置によって明示的にハードウェアリセット状態とされる。このため、システム制御装置とドライブ装置との起動状態の不整合を防ぐことが可能となり、安定した起動動作を行うことができる。
【０２７７】
また、本発明は、初期ステートのときに起動を指示するコマンドがシステム制御装置から与えられた場合には、ステートマシーンが、上記初期ステートから本装置の動作が定義された動作ステートに遷移することを特徴とする。
【０２７８】
このことにより本発明では、ドライブ装置の動作モードの選択をシステム制御装置と不整合なく安定的に行うことができる。
【０２７９】
本発明にかかるディスクドライブシステム、ドライブ装置及びシステム制御装置では、ドライブ装置がＤＶＤデータからナビゲーションパックを検出し、このナビゲーションパックに含まれるＤＶＤデータのサーチ情報を抽出し、このサーチ情報に基づき上記ＤＶＤを再生制御し、システム制御装置が、ドライブ装置に対して対応したコマンドを与える。
【０２８０】
このことにより本発明では、再生するデータのアドレスをドライブ装置が算出することができるので、例えば、Ｃｅｌｌの境界でのアングルやストーリのシームレスな切り換え、可変速再生時におけるアドレスの算出をドライブ装置に負担させることができ、システム制御装置の処理負担を軽減させることができる。
【０２８１】
本発明にかかるディスクドライブシステム、ドライブ装置及びシステム制御装置では、パラレルデータインターフェースとシリアルデータインタフェースとの２つのインターフェースによって、ディスク状記録媒体のデータが転送される。
【０２８２】
このことにより、ディスクタイプや転送要求するデータタイプに応じて適応的にバスを選択することができ、用途に適応したシステムをフレキシブルに構成することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態のディスクドライブシステムのシステム構成図である。
【図２】上記ディスクドライブシステムのドライブ装置のブロック構成図である。
【図３】ドライブ装置を管理及び制御するステートマシーンを示す図である。
【図４】ドライブ装置１とホストコントローラ２との間のインターフェースのレイヤ構造を示す図である。
【図５】コマンドインタフェースのハードウェア構成を示す図である。
【図６】ＡＶバスインタフェースのハードウェア構成を示す図である。
【図７】コマンドインターフェースのコミュニケーションレイヤのフェーズを示す図である。
【図８】コマンドプロトコルのデータ構成を示す図である。
【図９】コマンドプロトコル内の“ Command ”のデータ構成を示す図である。
【図１０】メッセージプロトコルのデータ構成を示す図である。
【図１１】メッセージプロトコル内の“ Message ”のデータ構成を示す図である。
【図１２】コマンドフェーズ及びメッセージフェーズにおけるエラー回復について説明する図である。
【図１３】同期コマンドシーケンスの一例を示す図である。
【図１４】非同期コマンドシーケンスの一例を示す図である。
【図１５】コマンド＆メッセージレイヤにおけるコマンドインターフェースのドライブ装置側のプログラミング構成を示す図である。
【図１６】同期コマンドのコマンドセットテーブルを示す図である。
【図１７】非同期コマンド（ベーシックコマンド）のコマンドセットテーブルを示す図である。
【図１８】ＳｅｔＭｏｄｅコマンドによるドライブ装置の初期化シーケンスを示す図である。
【図１９】Ｒｅｓｔａｒｔコマンドによるドライブ装置の初期化シーケンスを示す図である。
【図２０】ＣｌｏｓｅＴｒａｙコマンドによるドライブ装置の初期化シーケンスを示す図である。
【図２１】非同期コマンド（エクステンションコマンド）のコマンドセットテーブルを示す図である。
【図２２】即時メッセージのメッセージセットテーブルを示す図である。
【図２３】非同期メッセージのメッセージセットテーブルを示す図である。
【図２４】ホストコントローラがＧｅｔＶｅｒｓｉｏｎコマンドを送信し、それに応じてＶｅｒｓｉｏｎメッセージを返信する際の具体的なハードウェアレイヤ上の伝送例を示す図である。
【図２５】ホストコントローラがＯｐｅｎＴｒａｙコマンドを送信し、それに応じて、ドライブ装置がＳｌｅｐｔメッセージ、ＴｒａｙＯｐｅｎｄメッセージを返信する際の際の具体的なハードウェアレイヤ上の伝送例を示す図である。
【図２６】ＤＶＤ−Ｖｉｄｅｏフォーマットで規定されるＰＣＧについて説明をするための図である。
【図２７】ＤＶＤ−Ｖｉｄｅｏフォーマットで規定されるＣｅｌｌ及びＶＯＢＵについて説明をするための図である。
【図２８】ＤＶＤ−Ｖｉｄｅｏフォーマットで規定されるＤＳＩについて説明をするための図である。
【図２９】ＤＶＤ−Ｖｉｄｅｏフォーマットで規定されるＤＳＩ＿ＧＩについて説明をするための図である。
【図３０】ＤＶＤ−Ｖｉｄｅｏフォーマットで規定されるＡＭＬ＿ＡＧＬＩについて説明をするための図である。
【図３１】アングル切換動作ついて説明をするための図である。
【図３２】ＤＶＤ−Ｖｉｄｅｏフォーマットで規定されるＶＯＢＵ＿ＳＲＩについて説明をするための図である。
【図３３】Ｃｅｌｌ単位での再生処理について説明するための図である。
【図３４】Ｃｅｌｌ単位での再生処理を行う場合のドライブ装置に与えられる一般的な命令を説明するための図である。
【図３５】Ｃｅｌｌ単位での再生処理を行う場合のドライブ装置に与えられる本システムでの命令を説明するための図である。
【図３６】ディスク上に離散的に配置されたＣｅｌｌの再生処理について説明するための図である。
【図３７】ディスク上に離散的に配置されたＣｅｌｌの再生処理を行う場合のドライブ装置に与えられる一般的な命令を説明するための図である。
【図３８】順方向の可変速再生処理について説明するための図である。
【図３９】逆方向の可変速再生処理について説明するための図である。
【図４０】可変速再生処理を行う場合のドライブ装置に与えられる一般的な命令を説明するための図である。
【図４１】可変速再生処理を行う場合のドライブ装置に与えられる本システムでの命令を説明するための図である。
【図４２】アングル切換処理について説明するための図である。
【図４３】アングル切換処理を行う場合のドライブ装置に与えられる一般的な命令を説明するための図である。
【図４４】アングル切換処理を行う場合のドライブ装置に与えられる本システムでの命令を説明するための図である。
【図４５】ドライブ装置によって行われるＣｅｌｌレベルでの再生処理手順を示すフローチャートである。
【図４６】ドライブ装置によって行われるＶＯＢＵレベルでの再生処理手順を示すフローチャートである。
【図４７】ドライブ装置によって行われるＣｅｌｌの終末判断手順を示すフローチャートである。
【図４８】ドライブ装置によって行われる次のＶＯＢＵのアドレス検出処理手順を示すフローチャートである。
【符号の説明】
１  ドライブ装置、２  ホストコントローラ、４  Ａ／Ｖバスインターフェース、５  コマンドインターフェース、６  ＬｅｇａｃｙＣＤ−ＤＳＰインターフェース、１１  メカユニット、１２  再生制御部、１３  ＲＦアンプ、１４  サーボコントローラ、１５  ＤＶＤチャネルデコーダ、１６  ＤＶＤエラー訂正回路、１７  ＣＤチャネルデコーダ、１８  ＣＤエラー訂正回路、１９  トラックバッファコントローラ、２０  トラックバッファ、２１  システムコントローラ、４１  コマンド＆メッセージモジュール、４２  コマンドキュー、４３  メッセージキュー、４４  セレクタ
【図１】
0004581289.tif 000002
【図２】
0004581289.tif 000003
【図３】
0004581289.tif 000004
【図４】
0004581289.tif 000005
【図５】
0004581289.tif 000006
【図６】
0004581289.tif 000007
【図７】
0004581289.tif 000008
【図８】
0004581289.tif 000009
【図９】
0004581289.tif 000010
【図１０】
0004581289.tif 000011
【図１１】
0004581289.tif 000012
【図１２】
0004581289.tif 000013
【図１３】
0004581289.tif 000014
【図１４】
0004581289.tif 000015
【図１５】
0004581289.tif 000016
【図１６】
0004581289.tif 000017
【図１７】
0004581289.tif 000018
【図１８】
0004581289.tif 000019
【図１９】
0004581289.tif 000020
【図２０】
0004581289.tif 000021
【図２１】
0004581289.tif 000022
【図２２】
0004581289.tif 000023
【図２３】
0004581289.tif 000024
【図２４】
0004581289.tif 000025
【図２５】
0004581289.tif 000026
【図２６】
0004581289.tif 000027
【図２７】
0004581289.tif 000028
【図２８】
0004581289.tif 000029
【図２９】
0004581289.tif 000030
【図３０】
0004581289.tif 000031
【図３１】
0004581289.tif 000032
【図３２】
0004581289.tif 000033
【図３３】
0004581289.tif 000034
【図３４】
0004581289.tif 000035
【図３５】
0004581289.tif 000036
【図３６】
0004581289.tif 000037
【図３７】
0004581289.tif 000038
【図３８】
0004581289.tif 000039
【図３９】
0004581289.tif 000040
【図４０】
0004581289.tif 000041
【図４１】
0004581289.tif 000042
【図４２】
0004581289.tif 000043
【図４３】
0004581289.tif 000044
【図４４】
0004581289.tif 000045
【図４５】
0004581289.tif 000046
【図４６】
0004581289.tif 000047
【図４７】
0004581289.tif 000048
【図４８】
0004581289.tif 000049