(57)【要約】【課題】複数のシステムを容易に使い分けることが可能なＡＴＡインターフェイスを有する光学ドライブ装置を実現する。【解決手段】本発明の光学ドライブ装置２０は、ハードディスクドライブに対するコマンドであるＡＴＡコマンドを光学ドライブに対するコマンドであるＡＴＡＰＩコマンドに変換するＡＴＡ／ＡＴＡＰＩ変換部２４とＡＴＡＰＩコマンドに基づいて動作する光学ドライブ部２５とを備えているので、光学ドライブ装置２０が接続されたホストＰＣ１０は、光学ドライブ装置２０をハードディスクドライブとして認識する。従って、複数の光ディスクを用意して各光ディスクにそれぞれ異なるＯＳをインストールしておけば、起動したいＯＳがインストールされた光ディスクを光学ドライブ装置２０に格納してホストＰＣ１０を起動することにより、容易に複数のシステムを使い分けることが出来る。【選択図】図１
2010044816.tif 000002
【特許請求の範囲】
【請求項１】
外部から入力されたハードディスクドライブに対する第１の読み出しコマンドであって連続したセクタからなるハードディスク上の特定領域を指定する第１の領域指定情報を含む第１の読み出しコマンドを、光ディスクドライブに対する第２の読み出しコマンドであって、上記特定領域に相当する光ディスク上の領域を内包する、連続したセクタからなる光ディスク上の領域を指定する第２の領域指定情報を含む第２の読み出しコマンドに変換する変換手段と、
上記第２の読み出しコマンドに基づいて、光ディスクから上記第２の領域指定情報が指定する領域に記録されている情報を読み出す光ディスクドライブと、
上記光ディスクドライブによって光ディスクから読み出された情報から、上記第１の読み出しコマンド及び上記第２の読み出しコマンドに基づいて、上記特定領域に相当する光ディスク上の領域に記録されている情報を抽出する抽出手段と、を備えている、ことを特徴とする光学ドライブ装置。
【請求項２】
外部から入力された読み出しコマンドがハードディスクドライブに対する読み出しコマンドであるか光ディスクドライブに対する読み出しコマンドであるかを判定する判定手段を更に備え、
上記光ディスクドライブは、
上記読み出しコマンドが上記判定手段によりハードディスクドライブに対する読み出しコマンドであると判定された場合、該読み出しコマンドを上記第１の読み出しコマンドとして、上記変換手段により得られた上記第２の読み出しコマンドに基づいて、光ディスクの第１の領域から上記第２の領域指定情報が指定する領域に記録されている情報を読み出し、
上記読み出しコマンドが上記判定手段により光ディスクドライブに対する読み出しコマンドであると判定された場合、該読み出しコマンドに基づいて、光ディスクの第２の領域に記録されている情報を読み出す、ことを特徴とする請求項１に記載の光学ドライブ装置。
【請求項３】
上記光ディスクは、複数の層を備え、
上記第１の領域は上記複数の層に含まれる少なくともひとつの層であり、上記第２の領域は上記複数の層のうち上記少なくともひとつの層以外の層であることを特徴とする請求項２に記載の光学ドライブ装置。
【請求項４】
光ディスクに記録されている情報の少なくとも一部をキャッシュするキャッシュメモリと、
上記特定領域に相当する光ディスク上の領域に記録されている情報が上記キャッシュメモリにキャッシュされている場合、上記抽出手段によって抽出された当該情報の代わりに、上記キャッシュメモリにキャッシュされている当該情報を外部に出力する出力手段と、を更に備えていることを特徴とする請求項１から３のいずれか１項に記載の光学ドライブ装置。
【請求項５】
上記変換手段は、上記特定領域に相当する光ディスク上の領域に記録されている情報が上記キャッシュメモリにキャッシュされていない場合に限って、上記第１の読み出しコマンドを上記第２の読み出しコマンドに変換することを特徴とする、
請求項４に記載の光学ドライブ装置。
【請求項６】
上記第１の読み出しコマンドには、上記特定領域の先頭にあるセクタのセクタ番号ＨｅａｄＳｅｃHDDと、当該領域に属するセクタのセクタ数ＳｅｃＮｕｍHDDとが上記第１の領域指定情報として含まれており、
上記変換手段は、上記特定領域に相当する光ディスク上の領域の先頭にあるセクタのセクタ番号ＨｅａｄＳｅｃODDと、当該領域に属するセクタのセクタ数ＳｅｃＮｕｍODDとを、
ＨｅａｄＳｅｃODD ＝ Ｓ ＋（ＨｅａｄＳｅｃHDD ｄｉｖ ４）
ＳｅｃＮｕｍODD＝（（ＨｅａｄＳｅｃHDDｍｏｄ４）＋３）ｄｉｖ４＋｛（ＳｅｃＮｕｍHDD              −（ＨｅａｄＳｅｃHDD ｍｏｄ ４））＋３｝ｄｉｖ ４
（Ｓは、上記ハードディスク上のセクタ番号０のセクタに相当する領域を含む光ディスク上のセクタのセクタ番号）
に従って算出するとともに、算出したセクタ番号ＨｅａｄＳｅｃODDとセクタ数ＳｅｃＮｕｍODDとを第２の領域指定情報として含む第２の読み出しコマンドに変換する、ことを特徴とする、
請求項１から５のいずれか１項に記載の光学ドライブ装置。
【請求項７】
上記第１の読み出しコマンドには、上記特定領域の先頭にあるセクタのセクタ番号ＨｅａｄＳｅｃHDDと、当該領域に属するセクタのセクタ数ＳｅｃＮｕｍHDDとが上記第１の領域指定情報として含まれており、
上記光ディスクドライブが読み出した情報を格納するためのバッファを更に備え、
上記抽出手段は、上記第２の領域指定情報が指定する領域のうち最小の領域の先頭にあるセクタのセクタアドレスＹ1と当該最小の領域の最後尾にあるセクタのセクタアドレスＹ2とを、
Ｙ1＝ＨｅａｄＳｅｃHDD  ｍｏｄ  ４
Ｙ2＝(ＨｅａｄＳｅｃHDD＋ＳｅｃＮｕｍHDD) ｍｏｄ ４
（Ｓは、上記ハードディスク上のセクタ番号０のセクタに相当する領域を含む光ディスク上のセクタのセクタ番号）
に従って算出するとともに、上記最小の領域の先頭にあるセクタのうちセクタアドレスがＹ1より小さい領域と上記最小の領域の最後尾にあるセクタのうちセクタアドレスがＹ2以上である領域とを上記最小の領域から除いた領域に記録されている情報を抽出することを特徴とする、
請求項１から６のいずれか１項に記載の光学ドライブ装置。
【請求項８】
上記第１の読み出しコマンドはＡＴＡコマンドであり、上記第２の読み出しコマンドはＡＴＡＰＩコマンドであることを特徴とする、
請求項１から７のいずれか１項に記載の光学ドライブ装置。
【請求項９】
ハードディスクドライブに対する第１の書き込みコマンドであって連続したセクタからなるハードディスク上の特定領域を指定する第１の領域指定情報を含む第１の書き込みコマンドを、光ディスクドライブに対する第２の書き込みコマンドであって、上記特定領域に相当する光ディスク上の領域を内包する、連続したセクタからなる光ディスク上の領域を指定する第２の領域指定情報を含む第２の書き込みコマンドに変換する変換手段と、
光ディスクドライブに対する上記第２の領域指定情報を含む読み出しコマンドを生成する生成手段と、
上記読み出しコマンドに基づいて、光ディスクから上記第２の領域指定情報が指定する領域に記録されている情報を読み出す読出手段と、
上記光ディスクドライブによって光ディスクから読み出された情報から、上記第１の書き込みコマンド及び上記第２の書き込みコマンドに基づいて、上記特定領域に相当する光ディスク上の領域に記録されている情報を抽出する抽出手段と、
上記光ディスクドライブによって光ディスクから読み出された情報のうち、上記抽出手段により抽出された情報を上記第１の書き込みコマンドに従って書き込む情報により更新して得られる情報を、上記光ディスク上の上記第２の領域指定情報が指定する領域に記録する記録手段と、を備えている、ことを特徴とする光学ドライブ装置。
【請求項１０】
上記第１の書き込みコマンドには、上記特定領域の先頭にあるセクタのセクタ番号ＨｅａｄＳｅｃHDDと、当該領域に属するセクタのセクタ数ＳｅｃＮｕｍHDDとが上記第１の領域指定情報として含まれており、
上記変換手段は、上記特定領域に相当する光ディスク上の領域の先頭にあるセクタのセクタ番号ＨｅａｄＳｅｃODDと、当該領域に属するセクタのセクタ数ＳｅｃＮｕｍODDとを、
ＨｅａｄＳｅｃODD ＝ Ｓ ＋（ＨｅａｄＳｅｃHDD ｄｉｖ ４）
ＳｅｃＮｕｍODD＝（（ＨｅａｄＳｅｃHDDｍｏｄ４）＋３）ｄｉｖ４＋｛（ＳｅｃＮｕｍHDD              −（ＨｅａｄＳｅｃHDD ｍｏｄ ４））＋３｝ｄｉｖ ４
（Ｓは、上記ハードディスク上のセクタ番号０のセクタに相当する領域を含む光ディスク上のセクタのセクタ番号）
に従って算出するとともに、算出したセクタ番号ＨｅａｄＳｅｃODDとセクタ数ＳｅｃＮｕｍODDとを第２の領域指定情報として含む第２の書き込みコマンドに変換する、ことを特徴とする、
請求項９に記載の光学ドライブ装置。
【請求項１１】
上記第１の書き込みコマンドには、上記特定領域の先頭にあるセクタのセクタ番号ＨｅａｄＳｅｃHDDと、当該領域に属するセクタのセクタ数ＳｅｃＮｕｍHDDとが上記第１の領域指定情報として含まれており、
上記光ディスクドライブが読み出した情報を格納するためのバッファを更に備え、
上記抽出手段は、上記第２の領域指定情報が指定する領域のうち最小の領域の先頭にあるセクタのセクタアドレスＹ1と当該最小の領域の最後尾にあるセクタのセクタアドレスＹ2とを、
Ｙ1＝ＨｅａｄＳｅｃHDD  ｍｏｄ  ４
Ｙ2＝(ＨｅａｄＳｅｃHDD＋ＳｅｃＮｕｍHDD) ｍｏｄ ４
（Ｓは、上記ハードディスク上のセクタ番号０のセクタに相当する領域を含む光ディスク上のセクタのセクタ番号）
に従って算出するとともに、上記最小の領域の先頭にあるセクタのうちセクタアドレスがＹ1より小さい領域と上記最小の領域の最後尾にあるセクタのうちセクタアドレスがＹ2以上である領域とを上記最小の領域から除いた領域に記録されている情報を抽出することを特徴とする、
請求項９または１０に記載の光学ドライブ装置。
【請求項１２】
上記第１の書き込みコマンドはＡＴＡコマンドであり、上記第２の書き込みコマンドはＡＴＡＰＩコマンドであることを特徴とする、
請求項９から１１のいずれか１項に記載の光学ドライブ装置。
【請求項１３】
外部から入力されたハードディスクドライブに対する第１の読み出しコマンドであって連続したセクタからなるハードディスク上の特定領域を指定する第１の領域指定情報を含む第１の読み出しコマンドを、光ディスクドライブに対する第２の読み出しコマンドであって、上記特定領域に相当する光ディスク上の領域を内包する、連続したセクタからなる光ディスク上の領域を指定する第２の領域指定情報を含む第２の読み出しコマンドに変換する変換工程と、
上記第２の読み出しコマンドに基づいて、上記光ディスクドライブが光ディスクから上記第２の領域指定情報が指定する領域に記録されている情報を読み出す読出工程と、
上記読出工程において光ディスクから読み出された情報から、上記第１の読み出しコマンド及び上記第２の読み出しコマンドに基づいて、上記特定領域に相当する光ディスク上の領域に記録されている情報を抽出する抽出工程と、を含んでいる、ことを特徴とする光学ドライブ装置の駆動方法。
【請求項１４】
ハードディスクドライブに対する第１の書き込みコマンドであって連続したセクタからなるハードディスク上の特定領域を指定する第１の領域指定情報を含む第１の書き込みコマンドを、光ディスクドライブに対する第２の書き込みコマンドであって、上記特定領域に相当する光ディスク上の領域を内包する、連続したセクタからなる光ディスク上の領域を指定する第２の領域指定情報を含む第２の書き込みコマンドに変換する変換工程と、
光ディスクドライブに対する上記第２の領域指定情報を含む読み出しコマンドを生成する生成工程と、
上記読み出しコマンドに基づいて、光ディスクから上記第２の領域指定情報が指定する領域に記録されている情報を読み出す読出工程と、
上記光ディスクドライブによって光ディスクから読み出された情報から、上記第１の書き込みコマンド及び上記第２の書き込みコマンドに基づいて、上記特定領域に相当する光ディスク上の領域に記録されている情報を抽出する抽出工程と、
上記光ディスクドライブによって光ディスクから読み出された情報のうち、上記抽出工程において抽出された情報を上記第１の書き込みコマンドに従って書き込む情報により更新して得られる情報を、上記光ディスク上の上記第２の領域指定情報が指定する領域に記録する記録工程と、を含んでいる、ことを特徴とする光学ドライブ装置の駆動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、光ディスクから情報を読み出したり、光ディスクに情報を書き込んだりする光学ドライブ装置、及び、そのような光学ドライブ装置の駆動方法に関する。
【背景技術】
【０００２】
ハードディスクドライブはパーソナルコンピュータ（ＰＣ）に内蔵されている最も一般的なデバイスの１つであり、主にデータの保存と共にシステムの起動を行うことを目的として使用されている。
【０００３】
パーソナルコンピュータにおいてハードディスクドライブから起動することを前提とした複数のシステムを使い分ける場合、ハードディスクドライブを複数のパーティションに区切って各パーティションに各システムを格納し、機器を起動する際に起動するシステムを選択するといったことが考えられる。しかし、ハードディスクドライブから起動することを前提とした複数のシステムを使い分けることは容易ではない。
【０００４】
具体的には、機器に備えられているハードディスクドライブに予め格納されているシステムを使い分けることは容易であるものの、ハードディスクドライブに格納されていないシステムを使用することが容易ではない。ハードディスクドライブに格納されていないシステムを使用するには、ハードディスクドライブに空き領域がある場合、格納されていないシステムのＯＳを空き領域にシステムをインストールする方法、該ハードディスクドライブに格納されていないシステムが格納されている別の内蔵用ハードディスクドライブと機器に内蔵されているハードディスクドライブとを交換する方法、該格納されていないシステムが格納されている外付けハードディスクドライブを機器に接続して外付けハードディスクドライブから起動する方法などが考えられる。
【０００５】
しかし、空き領域にインストールする方法には、ハードディスクドライブに空き容量がない場合には他の少なくとも１つ以上のシステムを削除しなければならず、空き容量があってもＯＳのインストールに手間がかかる。また他のハードディスクドライブを利用する方法には、使用するシステムの種類が増えるほどハードディスクドライブを購入するコストがかかり、さらに内蔵ハードディスクドライブの場合には、ハードディスクドライブの交換に手間がかかるという問題がある。
【０００６】
このような問題を鑑みて、複数のシステムを容易に使い分けることができるようにするためにＰＣに複数の光ディスクを１つ以上のボリュームからなるハードディスクに見せかけるようにすることが特許文献１に記載されている。
【０００７】
また、同様に光学ドライブをハードディスクドライブに見せかけるためのエミュレーションユニットについて特許文献２に記載されている。特許文献３及び特許文献４には、光学ドライブに接続することにより、ソフトウェアの導入なしに光ディスクに対する書き込みをハードディスクに対する書き込みと同様に行うことができる光記録媒体アクセス制御ボード及びそのような光記録媒体アクセス制御ボードのアクセス方式について記載されている。
【０００８】
さらに特許文献５には、ＡＴＡＰＩコマンドをＡＴＡコマンドに変換することにより、ＡＴＡ規格に準拠したハードディスクドライブをＰＣに対して光学ドライブに見せることについて記載されている。
【特許文献１】特開平８−３２８７６１（平成８年１２月１３日公開）
【特許文献２】特開平４−１１１１１３（平成４年４月１３日公開）
【特許文献３】特開平２−５１７２６（平成２年２月２１日公開）
【特許文献４】特開平２−５１７２７（平成２年２月２１日公開）
【特許文献５】特開２００６−２４４４５５（平成１８年９月１４日公開）
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献３〜５の構成では、ハードディスクドライブから起動することを前提とした複数のシステムを容易に使い分けることができないという問題を生じる。
【００１０】
具体的には、特許文献３に記載の光記録媒体アクセス制御用ボード、及び、特許文献４に記載の光記録媒体アクセス方式は、接続された光学ドライブ装置がハードディスクドライブとしてＰＣに認識されるものではないため、ハードディスクドライブから起動することを前提としたＯＳを光学ドライブ装置から起動することはできない。また、特許文献５に記載のシステムはハードディスクドライブを光学ドライブ装置に見せかけるため、同様にハードディスクドライブから起動することを前提としたＯＳを光学ドライブ装置から起動することはできない。
【００１１】
また、特許文献２に記載のエミュレーションユニットは、光学ドライブ装置をハードディスクドライブに見せかけることができるものの、光ディスクに記録されたデータをＰＣとの間で送受信するために必要なバッファとしてハードディスクドライブまたは不揮発性メモリが別途必要であるという問題がある。
【００１２】
さらに、特許文献１に記載の光ディスクライブラリ装置は、ハードディスクドライブから起動することを前提としたＯＳを起動することができるものの、ＰＣとのインターフェイスがＳＣＳＩであり、ＡＴＡインターフェイスの接続端子に接続することができない。
【００１３】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、ＰＣからハードディスクドライブと認識されるＡＴＡインターフェイスを有する光学ドライブ装置を実現することにある。このような光学ドライブ装置を実現すると、ＡＴＡインターフェイスの接続端子を通じてＰＣに接続された光学ドライブ装置に、例えば、使用するシステムがインストールされたＢＤなどの光ディスクを格納してＰＣを起動することにより、ＡＴＡインターフェイスを備えたＰＣにおいて、ハードディスクドライブから起動することを前提としたＯＳを含め複数のシステムを容易に使い分けることができる。
【課題を解決するための手段】
【００１４】
本発明に係る光学ドライブ装置は、上記課題を解決するために、外部から入力されたハードディスクドライブに対する第１の読み出しコマンドであって連続したセクタからなるハードディスク上の特定領域を指定する第１の領域指定情報を含む第１の読み出しコマンドを、光ディスクドライブに対する第２の読み出しコマンドであって、上記特定領域に相当する光ディスク上の領域を内包する、連続したセクタからなる光ディスク上の領域を指定する第２の領域指定情報を含む第２の読み出しコマンドに変換する変換手段と、
上記第２の読み出しコマンドに基づいて、光ディスクから上記第２の領域指定情報が指定する領域に記録されている情報を読み出す光ディスクドライブと、
上記光ディスクドライブによって光ディスクから読み出された情報から、上記第１の読み出しコマンド及び上記第２の読み出しコマンドに基づいて、上記特定領域に相当する光ディスク上の領域に記録されている情報を抽出する抽出手段と、を備えていることを特徴としている。
【００１５】
上記の構成によれば、光学ドライブ装置は、外部から入力されたハードディスクドライブに対する第１の読み出しコマンドであって連続したセクタからなるハードディスク上の特定領域を指定する第１の領域指定情報を含む第１の読み出しコマンドを、光ディスクドライブに対する第２の読み出しコマンドであって、上記特定領域に相当する光ディスク上の領域を内包する、連続したセクタからなる光ディスク上の領域を指定する第２の領域指定情報を含む第２の読み出しコマンドに変換する。例えば、光学ドライブ装置は、ハードディスクの読み出し開始ＬＢＡ及び読み出しセクタ数を含むＲＥＡＤ・ＤＭＡコマンドを、ハードディスクの読み出し開始ＬＢＡ及び読み出しセクタ数が表わす領域に相当するＢＤ上の領域を含む、連続したセクタからなるＢＤ上の領域を指定するＢＤの読み出し開始ＬＢＡ及び読み出しセクタ数を含むＲＥＡＤ（１０）コマンドに変換する。ここで、ＲＥＡＤ・ＤＭＡコマンドはＡＴＡコマンドであり、ＲＥＡＤ（１０）コマンドはＡＴＡＰＩコマンドである。
【００１６】
また、光学ドライブ装置は、第２の読み出しコマンドに基づいて、光ディスクから上記第２の領域指定情報が指定する領域に記録されている情報を読み出す。例えば、光学ドライブ装置は、ＲＥＡＤ（１０）コマンドに基づいて、ＢＤの読み出し開始ＬＢＡ及び読み出しセクタ数が表わすＢＤ上の領域に記録されている情報を読み出す。
【００１７】
また、光学ドライブ装置は、光ディスクドライブによって光ディスクから読み出された情報から、第１の読み出しコマンド及び第２の読み出しコマンドに基づいて、特定領域に相当する光ディスク上の領域に記録されている情報を抽出する。例えば、光学ドライブ装置は、ＢＤドライブによってＢＤから読み出された情報から、ＲＥＡＤ・ＤＭＡコマンド及びＲＥＡＤ（１０）コマンドに基づいて、ハードディスクの読み出し開始ＬＢＡ及び読み出しセクタ数が表すハードディスク上の領域に相当するＢＤ上の領域に記録されている情報を抽出する。
【００１８】
以上のように光学ドライブ装置は、第１の読み出しコマンドを出力するためのインターフェイスを有するＰＣからハードディスクドライブと認識される。従って、光学ドライブ装置は、第１の読み出しコマンドを出力するためのインターフェイスを有するＰＣに接続して使用することにより、ハードディスクドライブから起動することを前提としたＯＳを含め複数のシステムを容易に使い分けることができるという効果を奏する。
【００１９】
本発明に係る光学ドライブ装置の駆動方法は、上記課題を解決するために、外部から入力されたハードディスクドライブに対する第１の読み出しコマンドであって連続したセクタからなるハードディスク上の特定領域を指定する第１の領域指定情報を含む第１の読み出しコマンドを、光ディスクドライブに対する第２の読み出しコマンドであって、上記特定領域に相当する光ディスク上の領域を内包する、連続したセクタからなる光ディスク上の領域を指定する第２の領域指定情報を含む第２の読み出しコマンドに変換する変換工程と、
上記第２の読み出しコマンドに基づいて、上記光ディスクドライブが光ディスクから上記第２の領域指定情報が指定する領域に記録されている情報を読み出す読出工程と、
上記読出工程において光ディスクから読み出された情報から、上記第１の読み出しコマンド及び上記第２の読み出しコマンドに基づいて、上記特定領域に相当する光ディスク上の領域に記録されている情報を抽出する抽出工程と、を含んでいることを特徴としている。
【００２０】
上記の構成によれば、本発明に係る光学ドライブ装置と同様の効果を奏する。
【００２１】
本発明に係る光学ドライブ装置は、外部から入力された読み出しコマンドがハードディスクドライブに対する読み出しコマンドであるか光ディスクドライブに対する読み出しコマンドであるかを判定する判定手段を更に備え、
上記光ディスクドライブは、上記読み出しコマンドが上記判定手段によりハードディスクドライブに対する読み出しコマンドであると判定された場合、該読み出しコマンドを上記第１の読み出しコマンドとして、上記変換手段により得られた上記第２の読み出しコマンドに基づいて、光ディスクの第１の領域から上記第２の領域指定情報が指定する領域に記録されている情報を読み出し、上記読み出しコマンドが上記判定手段により光ディスクドライブに対する読み出しコマンドであると判定された場合、該読み出しコマンドに基づいて、光ディスクの第２の領域に記録されている情報を読み出すものである、ことが望ましい。
【００２２】
上記の構成によれば、判定手段が、読み出しコマンドがハードディスクドライブに対するコマンドであるのか光ディスクドライブに対するコマンドであるかを判定する。次に、読み出しコマンドがハードディスクドライブに対するコマンドであると判定された場合に、光ディスクドライブが光ディスクの第１の領域から情報を読み出す。あるいは、読み出しコマンドが光ディスクドライブに対するコマンドであると判定された場合に、光ディスクドライブが光ディスクの第２の領域から情報を読み出す。ここで、読み出しコマンドがハードディスクドライブに対するコマンドである場合には、該読み出しコマンドを上記第１の読み出しコマンドとして、上記変換手段により得られた上記第２の読み出しコマンドに基づいて、光ディスクの第１の領域から上記第２の領域指定情報が指定する領域に記録されている情報が光ディスクドライブによって読み出される。そして、抽出手段が光ディスクドライブによって光ディスクから読み出された情報から、読み出しコマンド及び第２の読み出しコマンドに基づいて特定領域に相当する光ディスク上の領域に記録されている情報を抽出する。これにより、光学ドライブ装置に格納された光ディスク上の第１の領域が、第１の読み出しコマンドを処理する記憶装置（ハードディスクドライブ）として、光ディスク上の第２の領域が、第２の読み出しコマンドを処理する記憶装置（光ディスクドライブ）として外部から認識されるというさらなる効果を奏する。
【００２３】
なお、上記光ディスクが、複数の層を備え、上記第１の領域は上記複数の層に含まれる少なくともひとつの層であり、上記第２の領域は上記複数の層のうち上記少なくともひとつの層以外の層であってもよい。例えば、上記光ディスクがＬ０層とＬ１層とを備えている場合、第１の領域がＬ０層、第２の領域がＬ１層であってもよい。あるいは、例えば、上記光ディスクがＬ０層とＬ１層とＬ２層とを備えている場合、第１の領域がＬ０層及びＬ１層であり、第２の領域がＬ２層であってもよい。
【００２４】
本発明に係る光学ドライブ装置は、光ディスクに記録されている情報の少なくとも一部をキャッシュするキャッシュメモリと、
上記特定領域に相当する光ディスク上の領域に記録されている情報が上記キャッシュメモリにキャッシュされている場合、上記抽出手段によって抽出された当該情報の代わりに、上記キャッシュメモリにキャッシュされている当該情報を外部に出力する出力手段と、を更に備えていることが望ましい。
【００２５】
上記の構成によれば、出力手段が、特定領域に相当する光ディスク上の領域に記録されている情報がキャッシュメモリにキャッシュされている場合、抽出手段によって抽出された情報の代わりに、キャッシュメモリにキャッシュされている情報を外部に出力することにより、光学ドライブ装置が、当該光学ドライブ装置に光ディスクが格納されていなくても外部からハードディスクドライブと認識されるというさらなる効果を奏する。
【００２６】
本発明に係る光学ドライブ装置は、上記変換手段が、上記特定領域に相当する光ディスク上の領域に記録されている情報が上記キャッシュメモリにキャッシュされていない場合に限って、上記第１の読み出しコマンドを上記第２の読み出しコマンドに変換することが望ましい。
【００２７】
上記の構成によれば、上記変換手段が、特定領域に相当する光ディスク上の領域に記録されている情報がキャッシュメモリにキャッシュされている場合に第１の読み出しコマンドを第２の読み出しコマンドに変換しないことにより、光ディスクドライブが第２の読み出しコマンドを処理する必要がないため、光学ドライブ装置の処理を減らすことができるというさらなる効果を奏する。
【００２８】
本発明に係る光学ドライブ装置は、上記第１の読み出しコマンドには、上記特定領域の先頭にあるセクタのセクタ番号ＨｅａｄＳｅｃHDDと、当該領域に属するセクタのセクタ数ＳｅｃＮｕｍHDDとが上記第１の領域指定情報として含まれており、
上記変換手段は、上記特定領域に相当する光ディスク上の領域の先頭にあるセクタのセクタ番号ＨｅａｄＳｅｃODDと、当該領域に属するセクタのセクタ数ＳｅｃＮｕｍODDとを、
ＨｅａｄＳｅｃODD ＝ Ｓ ＋（ＨｅａｄＳｅｃHDD ｄｉｖ ４）
ＳｅｃＮｕｍODD＝（（ＨｅａｄＳｅｃHDDｍｏｄ４）＋３）ｄｉｖ４＋｛（ＳｅｃＮｕｍHDD              −（ＨｅａｄＳｅｃHDD ｍｏｄ ４））＋３｝ｄｉｖ ４
（Ｓは、上記ハードディスク上のセクタ番号０のセクタに相当する領域を含む光ディスク上のセクタのセクタ番号）
に従って算出するとともに、算出したセクタ番号ＨｅａｄＳｅｃODDとセクタ数ＳｅｃＮｕｍODDとを第２の領域指定情報として含む第２の読み出しコマンドに変換することが望ましい。
【００２９】
ここで、演算Ａ ｄｉｖ ＢはＡをＢで割って得られる商を表わし、演算Ａ ｍｏｄ ＢはＡをＢで割って得られる余りを表わす。
【００３０】
本発明に係る光学ドライブ装置は、上記第１の読み出しコマンドには、上記特定領域の先頭にあるセクタのセクタ番号ＨｅａｄＳｅｃHDDと、当該領域に属するセクタのセクタ数ＳｅｃＮｕｍHDDとが上記第１の領域指定情報として含まれており、
上記光ディスクドライブが読み出した情報を格納するためのバッファを更に備え、
上記抽出手段は、上記第２の領域指定情報が指定する領域のうち最小の領域の先頭にあるセクタのセクタアドレスＹ1と当該最小の領域の最後尾にあるセクタのセクタアドレスＹ2とを、
Ｙ1＝ＨｅａｄＳｅｃHDD ｍｏｄ ４
Ｙ2＝(ＨｅａｄＳｅｃHDD＋ＳｅｃＮｕｍHDD) ｍｏｄ ４
（Ｓは、上記ハードディスク上のセクタ番号０のセクタに相当する領域を含む光ディスク上のセクタのセクタ番号）
に従って算出するとともに、上記最小の領域の先頭にあるセクタのうちセクタアドレスがＹ1より小さい領域と上記最小の領域の最後尾にあるセクタのうちセクタアドレスがＹ2以上である領域とを上記最小の領域から除いた領域に記録されている情報を抽出することが望ましい。
【００３１】
本発明に係る光学ドライブ装置は、上記第１の読み出しコマンドはＡＴＡコマンドであり、上記第２の読み出しコマンドはＡＴＡＰＩコマンドであることが望ましい。
【００３２】
本発明に係る光学ドライブ装置は、上記課題を解決するために、ハードディスクドライブに対する第１の書き込みコマンドであって連続したセクタからなるハードディスク上の特定領域を指定する第１の領域指定情報を含む第１の書き込みコマンドを、光ディスクドライブに対する第２の書き込みコマンドであって、上記特定領域に相当する光ディスク上の領域を内包する、連続したセクタからなる光ディスク上の領域を指定する第２の領域指定情報を含む第２の書き込みコマンドに変換する変換手段と、
光ディスクドライブに対する上記第２の領域指定情報を含む読み出しコマンドを生成する生成手段と、
上記読み出しコマンドに基づいて、光ディスクから上記第２の領域指定情報が指定する領域に記録されている情報を読み出す読出手段と、
上記光ディスクドライブによって光ディスクから読み出された情報から、上記第１の書き込みコマンド及び上記第２の書き込みコマンドに基づいて、上記特定領域に相当する光ディスク上の領域に記録されている情報を抽出する抽出手段と、
上記光ディスクドライブによって光ディスクから読み出された情報のうち、上記抽出手段により抽出された情報を上記第１の書き込みコマンドに従って書き込む情報により更新して得られる情報を、上記光ディスク上の上記第２の領域指定情報が指定する領域に記録する記録手段と、を備えていることを特徴としている。
【００３３】
上記の構成によれば、光学ドライブ装置は、ハードディスクドライブに対する第１の書き込みコマンドであって連続したセクタからなるハードディスク上の特定領域を指定する第１の領域指定情報を含む第１の書き込みコマンドを、光ディスクドライブに対する第２の書き込みコマンドであって、特定領域に相当する光ディスク上の領域を内包する、連続したセクタからなる光ディスク上の領域を指定する第２の領域指定情報を含む第２の書き込みコマンドに変換する。例えば、光学ドライブ装置は、ハードディスクの書き込み開始ＬＢＡ及び書き込みセクタ数を含むＷＲＩＴＥ・ＤＭＡコマンドを、ハードディスクの書き込み開始ＬＢＡ及び書き込みセクタ数が表わす領域に相当するＢＤ上の領域を含む、連続したセクタからなるＢＤ上の領域を指定するＢＤの書き込み開始ＬＢＡ及び書き込みセクタ数を含むＷＲＩＴＥ（１０）コマンドに変換する。ここで、ＷＲＩＴＥ・ＤＭＡコマンドはＡＴＡコマンドであり、ＷＲＩＴＥ（１０）コマンドはＡＴＡＰＩコマンドである。
【００３４】
また、光学ドライブ装置は、光ディスクドライブに対する第２の領域指定情報を含む読み出しコマンドを生成する。例えば、光学ドライブ装置は、ＡＴＡＰＩコマンドであるＢＤの読み出し開始ＬＢＡ及び読み出しセクタ数を含むＲＥＡＤ（１０）コマンドを生成する。
【００３５】
また、光学ドライブ装置は、読み出しコマンドに基づいて光ディスクから第２の領域指定情報が指定する領域に記録されている情報を読み出す。例えば、光学ドライブ装置は、ＲＥＡＤ（１０）コマンドに基づいてＢＤの読み出し開始ＬＢＡ及び読み出しセクタ数が表わす領域に記録されている情報をＢＤから読み出す。
【００３６】
また、光学ドライブ装置は、光ディスクドライブによって光ディスクから読み出された情報から、第１の書き込みコマンド及び第２の書き込みコマンドに基づいて、特定領域に相当する光ディスク上の領域に記録されている情報を抽出する。例えば、光学ドライブ装置は、ＢＤドライブによってＢＤから読み出された情報から、ＷＲＩＴＥ・ＤＭＡコマンド及びＷＲＩＴＥ（１０）コマンドに基づいて、ハードディスクの書き込み開始ＬＢＡ及び書き込みセクタ数が表わす領域に相当するＢＤ上の領域に記録されている情報を抽出する。
【００３７】
また、光学ドライブ装置は、光ディスクドライブによって光ディスクから読み出された情報のうち、抽出された情報を第１の書き込みコマンドに従って書き込む情報により更新して得られる情報を、光ディスク上の第２の領域指定情報が指定する領域に記録する。例えば、光学ドライブ装置は、ＢＤドライブによってＢＤから読み出された情報のうち、抽出された情報をＷＲＩＴＥ・ＤＭＡコマンドに従って書き込む情報により上書きして得られる情報を、ＢＤの読み出し開始ＬＢＡ及び読み出しセクタ数が表すＢＤ上の領域に記録する。
【００３８】
以上のように光学ドライブ装置は、第１の書き込みコマンドを出力するためのインターフェイスを有するＰＣからハードディスクドライブと認識される。従って、光学ドライブ装置は、第１の書き込みコマンドを出力するためのインターフェイスを有するＰＣに接続して使用することにより、ハードディスクドライブから起動することを前提としたＯＳを含め複数のシステムを容易に使い分けることができるという効果を奏する。
【００３９】
本発明に係る光学ドライブ装置の駆動方法は、上記課題を解決するために、ハードディスクドライブに対する第１の書き込みコマンドであって連続したセクタからなるハードディスク上の特定領域を指定する第１の領域指定情報を含む第１の書き込みコマンドを、光ディスクドライブに対する第２の書き込みコマンドであって、上記特定領域に相当する光ディスク上の領域を内包する、連続したセクタからなる光ディスク上の領域を指定する第２の領域指定情報を含む第２の書き込みコマンドに変換する変換工程と、
光ディスクドライブに対する上記第２の領域指定情報を含む読み出しコマンドを生成する生成工程と、
上記読み出しコマンドに基づいて、光ディスクから上記第２の領域指定情報が指定する領域に記録されている情報を読み出す読出工程と、
上記光ディスクドライブによって光ディスクから読み出された情報から、上記第１の書き込みコマンド及び上記第２の書き込みコマンドに基づいて、上記特定領域に相当する光ディスク上の領域に記録されている情報を抽出する抽出工程と、
上記光ディスクドライブによって光ディスクから読み出された情報のうち、上記抽出工程において抽出された情報を上記第１の書き込みコマンドに従って書き込む情報により更新して得られる情報を、上記光ディスク上の上記第２の領域指定情報が指定する領域に記録する記録工程と、を含んでいることを特徴としている。
【００４０】
上記の構成によれば、本発明に係る光学ドライブ装置と同様の効果を奏する。
【００４１】
本発明に係る光学ドライブ装置は、上記第１の書き込みコマンドには、上記特定領域の先頭にあるセクタのセクタ番号ＨｅａｄＳｅｃHDDと、当該領域に属するセクタのセクタ数ＳｅｃＮｕｍHDDとが上記第１の領域指定情報として含まれており、
上記変換手段は、上記特定領域に相当する光ディスク上の領域の先頭にあるセクタのセクタ番号ＨｅａｄＳｅｃODDと、当該領域に属するセクタのセクタ数ＳｅｃＮｕｍODDとを、
ＨｅａｄＳｅｃODD ＝ Ｓ ＋（ＨｅａｄＳｅｃHDD  ｄｉｖ ４）
ＳｅｃＮｕｍODD＝（（ＨｅａｄＳｅｃHDDｍｏｄ４）＋３）ｄｉｖ４＋｛（ＳｅｃＮｕｍHDD              −（ＨｅａｄＳｅｃHDD ｍｏｄ ４））＋３｝ｄｉｖ ４
（Ｓは、上記ハードディスク上のセクタ番号０のセクタに相当する領域を含む光ディスク上のセクタのセクタ番号）
に従って算出するとともに、算出したセクタ番号ＨｅａｄＳｅｃODDとセクタ数ＳｅｃＮｕｍODDとを第２の領域指定情報として含む第２の書き込みコマンドに変換することが望ましい。
【００４２】
本発明に係る光学ドライブ装置は、上記第１の書き込みコマンドには、上記特定領域の先頭にあるセクタのセクタ番号ＨｅａｄＳｅｃHDDと、当該領域に属するセクタのセクタ数ＳｅｃＮｕｍHDDとが上記第１の領域指定情報として含まれており、
上記光ディスクドライブが読み出した情報を格納するためのバッファを更に備え、
上記抽出手段は、上記第２の領域指定情報が指定する領域のうち最小の領域の先頭にあるセクタのセクタアドレスＹ1と当該最小の領域の最後尾にあるセクタのセクタアドレスＹ2とを、
Ｙ1＝ＨｅａｄＳｅｃHDD  ｍｏｄ  ４
Ｙ2＝(ＨｅａｄＳｅｃHDD＋ＳｅｃＮｕｍHDD)ｍｏｄ ４
（Ｓは、上記ハードディスク上のセクタ番号０のセクタに相当する領域を含む光ディスク上のセクタのセクタ番号）
に従って算出するとともに、上記最小の領域の先頭にあるセクタのうちセクタアドレスがＹ1より小さい領域と上記最小の領域の最後尾にあるセクタのうちセクタアドレスがＹ2以上である領域とを上記最小の領域から除いた領域に記録されている情報を抽出することが望ましい。
【００４３】
本発明に係る光学ドライブ装置は、上記第１の書き込みコマンドはＡＴＡコマンドであり、上記第２の書き込みコマンドはＡＴＡＰＩコマンドであることが望ましい。
【発明の効果】
【００４４】
本発明に係る光学ドライブ装置は、以上のように、外部から入力されたハードディスクドライブに対する第１の読み出しコマンドであって連続したセクタからなるハードディスク上の特定領域を指定する第１の領域指定情報を含む第１の読み出しコマンドを、光ディスクドライブに対する第２の読み出しコマンドであって、上記特定領域に相当する光ディスク上の領域を内包する、連続したセクタからなる光ディスク上の領域を指定する第２の領域指定情報を含む第２の読み出しコマンドに変換する。次に、光ディスクドライブが第２の読み出しコマンドに基づいて、光ディスクから第２の領域指定情報が指定する領域に記録されている情報を読み出す。その後、光ディスクドライブによって光ディスクから読み出された情報から、第１の読み出しコマンド及び第２の読み出しコマンドに基づいて特定領域に相当する光ディスク上の領域に記録されている情報を抽出する。
【００４５】
これにより、本発明に係る光学ドライブ装置は、第１の読み出しコマンドを出力するためのインターフェイスを有するＰＣからハードディスクドライブと認識される。従って、第１の読み出しコマンドを出力するためのインターフェイスを有するＰＣに接続して使用することにより、ハードディスクドライブから起動することを前提としたＯＳを含め複数のシステムを容易に使い分けることができるという効果を奏する。
【発明を実施するための最良の形態】
【００４６】
〔実施形態１〕
本発明に係る光学ドライブ装置の一実施形態について、図１〜図１６に基づいて説明すると以下の通りである。
【００４７】
（光学ドライブ装置２０の構成）
本実施形態に係る光学ドライブ装置２０の構成について、図１を参照して以下に説明する。
【００４８】
図１は、光学ドライブ装置２０の要部構成を示すブロック図である。光学ドライブ装置２０は、ホストＰＣ１０から入力されたＡＴＡコマンドを対応するＡＴＡＰＩコマンドに変換し、変換されたＡＴＡＰＩコマンドに基づいて動作する光学ドライブ装置２０である。
【００４９】
光学ドライブ装置２０は、バッファメモリ２１、ＨＯＳＴ・Ｉ／Ｆ処理部２２、システム制御部２３、ＡＴＡ／ＡＴＡＰＩ変換部２４、及び、光学ドライブ部２５を備えている。各部材の機能について、以下に説明する。
【００５０】
（バッファメモリ２１）
バッファメモリ２１は、データの読み出しを行うＡＴＡコマンドであるＲＥＡＤ・ＤＭＡコマンド等、及び、データの書き込みを行うＡＴＡコマンドであるＷＲＩＴＥ・ＤＭＡコマンド等を通じて、ホストＰＣ１０との間で送受信されるデータを一時的に保存する。
【００５１】
（ＨＯＳＴ・Ｉ／Ｆ処理部２２）
ＨＯＳＴ・Ｉ／Ｆ処理部２２は、ホストＰＣ１０から取得したＡＴＡコマンドに応じて値が設定されるレジスタ、ＰＩＯ転送モードでホストＰＣ１０と光学ドライブ装置２０との間で送受信されるデータが格納されるレジスタ、光学ドライブ装置２０の現在の状態を示すレジスタ、ＡＴＡコマンドを処理した結果エラーが発生した場合にエラー値が格納されるレジスタ等のレジスタ群の値を設定する。
【００５２】
ＡＴＡコマンドに応じて設定されるレジスタとしては、ＡＴＡコマンドの種類を示すＣｏｍｍａｎｄレジスタ、転送モードの設定や書き込みキャッシュの有効化など様々な機能の設定を行うＳＥＴ・ＦＥＡＴＵＲＥコマンドが設定する機能の種類を示すサブコマンドコードが格納されるＦｅａｔｕｒｅレジスタ、データの読み出しや書き込みを行うディスク上のセクタ数を示すＳｅｃｔｏｒ・Ｃｏｕｎｔレジスタ、データの読み出しや書き込みを行うディスク上の開始セクタの値を構成するビットの一部を示すＳｅｃｔｏｒ・Ｎｕｍｂｅｒレジスタ、Ｃｙｌｉｎｄｅｒ・Ｌｏｗレジスタ、Ｃｙｌｉｎｄｅｒ・Ｈｉｇｈレジスタ、及びＤｅｖｉｃｅ・Ｈｅａｄレジスタ等が挙げられる。また、ＰＩＯ転送モードでホストＰＣ１０と光学ドライブ装置２０との間で送受信されるデータが格納されるレジスタとしてＤａｔａレジスタが挙げられる。なお、ＤＭＡ転送モードでホストＰＣ１０と光学ドライブ装置２０との間で送受信されるデータはＤａｔａレジスタに格納されず、データポートを通じて送受信される。ＡＴＡコマンドを処理した結果エラーが発生した場合にエラー値が格納されるレジスタとしてはＥｒｒｏｒレジスタが挙げられる。さらに、光学ドライブ装置２０の現在の状態を示すレジスタとして、Ｓｔａｔｕｓレジスタ、Ａｌｔｅｒｎａｔｅ・Ｓｔａｔｕｓレジスタ等が挙げられる。
【００５３】
このように、ＨＯＳＴ・Ｉ／Ｆ処理部２２は、ホストＰＣ１０と光学ドライブ装置２０の内部との間のインターフェイスとなる部分であり、ホストＰＣ１０に対してはＡＴＡ／ＡＴＡＰＩ規格により規定されるレジスタ群として機能し、システム制御部２３からの制御に従って該レジスタ群を設定することにより、ホストＰＣ１０に応答を返す。
【００５４】
また、ＨＯＳＴ・Ｉ／Ｆ処理部２２は、ホストＰＣ１０からのレジスタに対するアクセスに応答して、システム制御部２３に対して割り込みを生成した後、各種通知を出力する。各種通知には、光学ドライブ装置２０をリセットするための通知、ＡＴＡコマンドの発行を知らせるための通知、光学ドライブ装置２０の状態を確認するように要求するための通知、データ転送の完了を知らせるための通知がある。
【００５５】
（システム制御部２３）
システム制御部２３は、ＨＯＳＴ・Ｉ／Ｆ処理部２２により生成される割り込みに応答してホストＰＣ１０から発行されたＡＴＡコマンドを解析し、主にＡＴＡ／ＡＴＡＰＩ変換部２４を制御して、該ＡＴＡコマンドを処理する。なお、ＡＴＡ／ＡＴＡＰＩ変換部２４による制御の詳細については、図７〜図１０を参照して後述する。
【００５６】
（ＡＴＡ／ＡＴＡＰＩ変換部２４）
ＡＴＡ／ＡＴＡＰＩ変換部２４は、システム制御部２３から出力されたＡＴＡコマンドを必要に応じて対応するＡＴＡＰＩコマンドに変換し、光学ドライブ部２５に出力する。
【００５７】
（光学ドライブ部２５）
光学ドライブ部２５は、ハードディスクに対応するデータ領域を記録した光ディスクに対しデータの読み書きを行う。
【００５８】
（光学ドライブ装置２０の動作）
光学ドライブ装置２０の動作を説明する前に、ホストＰＣ１０が光学ドライブ装置２０とホストＰＣ１０との間のバス及び光学ドライブ装置２０がアイドル状態であるか否かの確認要求をしてからＡＴＡコマンドを送信し、光学ドライブ装置２０が受信したＡＴＡコマンドをＡＴＡＰＩコマンドに変換してＡＴＡＰＩコマンドに基づいて光学ドライブ部２５を駆動し、ホストＰＣ１０がＡＴＡコマンドの処理結果を取得するまでの一連のホストＰＣ１０及び光学ドライブ装置２０の動作について図２を用いて簡単に説明する。
【００５９】
図２は、上記動作を示すフローチャートであり、デバイスセレクションプロトコルに従った処理の実行後に、ＡＴＡコマンドの種別に応じてＮｏｎ・ｄａｔａ・ｃｏｍｍａｎｄプロトコル、ＰＩＯ・ｄａｔａ・ｉｎ・ｃｏｍｍａｎｄプロトコル、ＰＩＯ・ｄａｔａ・ｏｕｔ・ｃｏｍｍａｎｄプロトコル、または、ＤＭＡ・ｃｏｍｍａｎｄプロトコルのうちいずれかのプロトコルに従った処理が実行されることを示している。
【００６０】
デバイスセレクションプロトコルは、ホストＰＣ１０と光学ドライブ装置２０との間のバスがアイドル状態であること、及び、光学ドライブ装置２０がアイドル状態であることをホストＰＣ１０が確認するためのプロトコルである。また、Ｎｏｎ・ｄａｔａ・ｃｏｍｍａｎｄプロトコルは、ホストＰＣ１０と光学ドライブ装置２０との間でデータの送受信を行わないようなＡＴＡコマンドを処理するためのプロトコルである。ＰＩＯ・ｄａｔａ・ｉｎ・ｃｏｍｍａｎｄプロトコルはホストＰＣ１０が光学ドライブ装置２０からＰＩＯを用いてデータを受信するために用いるプロトコルであり、ＰＩＯ・ｄａｔａ・ｏｕｔ・ｃｏｍｍａｎｄプロトコルはホストＰＣ１０が光学ドライブ装置２０にＰＩＯ転送モードでデータを送信するためのプロトコルである。さらに、ＤＭＡ・ｃｏｍｍａｎｄプロトコルは、シングルＤＭＡ転送、マルチワードＤＭＡ転送またはＵｌｔｒａ・ＤＭＡ転送を用いてホストＰＣ１０と光学ドライブ装置２０との間でデータの送受信を行うＡＴＡコマンドを処理するためのプロトコルである。
【００６１】
次に、光学ドライブ装置２０が、ホストＰＣ１０からアイドル状態であるか否かの確認要求を受信してから、ＡＴＡコマンドを受信し、ＡＴＡコマンドをＡＴＡＰＩコマンドに変換し、ＡＴＡＰＩコマンドに基づいて光学ドライブ部２５を駆動し、ＡＴＡコマンドの処理結果をホストＰＣ１０に通知するまでの一連の光学ドライブ装置２０の動作について、図２、及び、図７〜図１０を用いて詳細に説明する。
【００６２】
図２において、光学ドライブ装置２０は、Ｓ１におけるデバイスセレクションプロトコルに従って処理を行った後、ＡＴＡコマンドの種類に応じて、Ｓ４のＮｏｎ・ｄａｔａ・ｃｏｍｍａｎｄプロトコルに従った処理、Ｓ５のＰＩＯ・ｄａｔａ・ｉｎ・ｃｏｍｍａｎｄプロトコルに従った処理、Ｓ６のＰＩＯ・ｄａｔａ・ｏｕｔ・ｃｏｍｍａｎｄプロトコルに従った処理、Ｓ７のＤＭＡ・ｃｏｍｍａｎｄプロトコルに従った処理のいずれかの処理を行う。各プロトコルの詳細な動作について以下に説明する。
【００６３】
まず、光学ドライブ装置２０がＳ１のデバイスセレクションプロトコルの処理において行う動作の詳細について図７を用いて説明する。図７は、デバイスセレクションプロトコルに従って、ホストＰＣ１０、並びに、光学ドライブ装置２０を構成するＨＯＳＴ・Ｉ／Ｆ処理部２２、システム制御部２３、ＡＴＡ／ＡＴＡＰＩ変換部２４、及び、光学ドライブ部２５の一例であるＢＤドライブの間で行われる処理の流れを示すシーケンス図である。なお、ここでは光学ドライブ部２５がＢＤドライブであることを前提に説明するが、光学ドライブ部２５は、ＤＶＤ−ＲＷなど他の書き込み可能な光ディスクに対応した光学ドライブであってもよい。
【００６４】
Ｓ１０１において、ＨＯＳＴ・Ｉ／Ｆ処理部２２は、ホストＰＣ１０からＳｔａｔｕｓレジスタまたはＡｌｔｅｒｎａｔｅ・Ｓｔａｔｕｓレジスタを読み込まれたことを検知し、Ｓ１０３に進む。Ｓ１０３においてＨＯＳＴ・Ｉ／Ｆ処理部２２は、割り込みを発生して割り込み要因の確認を行い、Ｓ１０４に進む。Ｓ１０４においてＨＯＳＴ・Ｉ／Ｆ処理部２２は、システム制御部２３に対して、Ｓ１０３において確認した割り込み要因に基づいて光学ドライブ装置２０の状態を確認するように要求する通知を行う。Ｓ１０４における通知を受けると、Ｓ１０５においてシステム制御部２３は、自身の状態確認を行うと共に、ＡＴＡ／ＡＴＡＰＩ変換部２４に対してＡＴＡ／ＡＴＡＰＩ変換部２４及びＢＤドライブの状態確認の要求を行う。ＡＴＡ／ＡＴＡＰＩ変換部２４は、Ｓ１０５における状態確認を要求する通知を受けると、Ｓ１０６において、自身の状態確認を行うと共に、ＢＤドライブに対してＢＤドライブの状態確認の要求を行う。Ｓ１０６における状態確認を要求する通知を受けると、Ｓ１０７においてＢＤドライブは、自身の状態を確認し、ステータス情報としてＡＴＡ／ＡＴＡＰＩ変換部２４に返却する。Ｓ１０８においてＡＴＡ／ＡＴＡＰＩ変換部２４は、Ｓ１０７におけるステータス情報の返却を受けると、Ｓ１０６において確認した自身の状態に関する情報を、返却を受けたステータス情報に追加して得られるステータス情報をシステム制御部２３に返却し、Ｓ１０９に進む。Ｓ１０９においてシステム制御部２３は、取得したステータス情報とＳ１０５において確認した自身の状態に関する情報とに基づいてコマンドの実行が可能か否かを判定し、可能でない場合（Ｓ１０９においてＮＯ）、Ｓ１０５に戻る。
【００６５】
コマンドの実行が可能である場合（Ｓ１０９においてＹＥＳ）、Ｓ１１０に進む。Ｓ１１０において、システム制御部２３は、レジスタのＢＳＹビットに０を格納する。なお、ホストＰＣ１０はこのＢＳＹビットの値が０である場合に光学ドライブ装置２０がアイドル状態であり、ＢＳＹビットの値が１である場合に光学ドライブ装置２０がビジー状態であると判断する。以上がデバイスセレクションプロトコルに従って行われる光学ドライブ装置２０の動作である。
【００６６】
次にＡＴＡコマンドがＮｏｎ・ｄａｔａ・ｃｏｍｍａｎｄである場合において光学ドライブ装置２０が図２のＳ４のＮｏｎ・ｄａｔａ・ｃｏｍｍａｎｄプロトコルに従った処理を行う動作、及び、ＡＴＡコマンドがＤＭＡ・ｃｏｍｍａｎｄである場合において光学ドライブ装置２０が図２のＳ７のＤＭＡ・ｃｏｍｍａｎｄプロトコル従った処理を行う動作について、それぞれ図１０及び図８を用いて説明する。なお、ＡＴＡコマンドがＰＩＯ・ｄａｔａ・ｉｎ・ｃｏｍｍａｎｄである場合において光学ドライブ装置２０が図２のＳ５のＰＩＯ・ｄａｔａ・ｉｎ・ｃｏｍｍａｎｄプロトコルに従った処理を行う動作、及び、ＡＴＡコマンドがＰＩＯ・ｄａｔａ・ｏｕｔ・ｃｏｍｍａｎｄである場合において光学ドライブ装置２０が図２のＳ６のＰＩＯ・ｄａｔａ・ｏｕｔ・ｃｏｍｍａｎｄプロトコルに従った処理を行う動作については省略する。
【００６７】
まず、ＡＴＡコマンドがＮｏｎ・ｄａｔａ・ｃｏｍｍａｎｄである場合において光学ドライブ装置２０が図２のＳ４のＮｏｎ・ｄａｔａ・ｃｏｍｍａｎｄプロトコルの処理を行う動作について図１０を用いて説明する。図１０は、Ｎｏｎ・ｄａｔａ・ｃｏｍｍａｎｄプロトコルを処理する場合における、ホストＰＣ１０、並びに、光学ドライブ装置２０を構成するＨＯＳＴ・Ｉ／Ｆ処理部２２、システム制御部２３、ＡＴＡ／ＡＴＡＰＩ変換部２４、及び、光学ドライブ部２５の一例であるＢＤドライブの間で行われる処理の流れを示すシーケンス図である。
【００６８】
Ｓ１８２において、ＨＯＳＴ・Ｉ／Ｆ処理部２２は、ホストＰＣ１０からＣｏｍｍａｎｄレジスタにコマンドが設定されたことを検知し、Ｓ１８４に進む。Ｓ１８４においてＨＯＳＴ・Ｉ／Ｆ処理部２２は、割り込み通知及び割り込み要因の確認を行い、Ｓ１８５に進む。Ｓ１８５においてＨＯＳＴ・Ｉ／Ｆ処理部２２は、Ｆｅａｔｕｒｅ、Ｓｅｃｔｏｒ  Ｃｏｕｎｔ、Ｓｅｃｔｏｒ・Ｎｕｍｂｅｒ、Ｃｙｌｉｎｄｅｒ・Ｈｉｇｈ、Ｃｙｌｉｎｄｅｒ・Ｌｏｗ、Ｄｅｖｉｃｅ・Ｈｅａｄの各レジスタの値を取得し、Ｓ１８６に進む。Ｓ１８６においてＨＯＳＴ・Ｉ／Ｆ処理部２２は、Ｓ１８５において取得した各レジスタの値に基づいてＡＴＡコマンドを生成し、システム制御部２３に通知する。システム制御部２３は、Ｓ１８６において通知されたＡＴＡコマンドを取得すると、Ｓ１８７において該ＡＴＡコマンドを取得したことを通知するためのコマンド受付情報をＨＯＳＴ・Ｉ／Ｆ処理部２２に返却し、Ｓ１８９に進む。
【００６９】
一方、ＨＯＳＴ・Ｉ／Ｆ処理部２２は、Ｓ１８７のコマンド受付情報を取得すると、Ｓ１８８において、レジスタのＢＳＹビットに１を格納する。
【００７０】
Ｓ１８９において、システム制御部２３は取得したＡＴＡコマンドをＡＴＡ／ＡＴＡＰＩ変換部２４に出力し、Ｓ１９０に進む。
【００７１】
Ｓ１９０においてＡＴＡ／ＡＴＡＰＩ変換部２４は、取得したＳ１８９のＡＴＡコマンドをＡＴＡＰＩコマンドに変換し、ＢＤドライブにＡＴＡＰＩコマンドを出力して、Ｓ１９１に進む。Ｓ１９１においてＢＤドライブは、取得したＳ１９０のＡＴＡＰＩコマンドに基づいた動作を行い、ＡＴＡＰＩコマンドの処理結果をＡＴＡ／ＡＴＡＰＩ変換部２４に返却して、Ｓ１９２に進む。Ｓ１９２においてＡＴＡ／ＡＴＡＰＩ変換部２４は、Ｓ１９１において返却された処理結果がエラーであるか否かを判定し、エラーである場合（Ｓ１９２においてＹＥＳ）、Ｓ２００のエラー処理へ進む。エラー処理については後述する。
【００７２】
判定結果がエラーでない場合（Ｓ１９２においてＮＯ）、Ｓ１９３に進む。Ｓ１９３においてＡＴＡ／ＡＴＡＰＩ変換部２４は、ＡＴＡコマンド処理が完了したことをシステム制御部２３に通知する。Ｓ１９４においてシステム制御部２３は、Ｓ１９３におけるＡＴＡコマンド処理完了の通知を取得すると、ＨＯＳＴ・Ｉ／Ｆ処理部２２に対しＡＴＡコマンドの完了通知を行う。Ｓ１９４においてＡＴＡコマンドの完了通知がされると、Ｓ１９５においてＨＯＳＴ・Ｉ／Ｆ処理部２２は、レジスタのＢＳＹビットに０を格納し、Ｓ１９６に進む。Ｓ１９６においてＨＯＳＴ・Ｉ／Ｆ処理部２２は、Ｄｅｖｉｃｅ・ＣｏｎｔｒｏｌレジスタのｎＩＥＮビットの値が０であるか否かを判定する。ｎＩＥＮビットの値が０でない場合（Ｓ１９６においてＮＯ）、Ｓ１９８に進む。ｎＩＥＮビットの値が０である場合（Ｓ１９６においてＹＥＳ）、Ｓ１９７に進む。Ｓ１９７においてＨＯＳＴ・Ｉ／Ｆ処理部２２は、ホストＰＣ１０に対してＩＮＴＲＱアサートを通知し、Ｓ１９８に進む。Ｓ１９８においてＨＯＳＴ・Ｉ／Ｆ処理部２２は、Ｓｔａｔｕｓレジスタの読み込みを検知し、Ｓ１９９に進む。Ｓ１９９においてＨＯＳＴ・Ｉ／Ｆ処理部２２は、ＩＮＴＲＱのネゲートを行う。以上がＮｏｎ・ｄａｔａ・ｃｏｍｍａｎｄプロトコルに従って行われる光学ドライブ装置２０の動作である。
【００７３】
次に、ＡＴＡコマンドがリード系のＤＭＡ・ｃｏｍｍａｎｄである場合において光学ドライブ装置２０が図２のＳ８のＤＭＡ・ｃｏｍｍａｎｄプロトコルの処理を行う動作について図８を用いて説明する。図８は、ＤＭＡ・ｃｏｍｍａｎｄプロトコルに従ってリード系のＡＴＡコマンドを処理する場合における、ホストＰＣ１０、並びに、光学ドライブ装置２０を構成するＨＯＳＴ・Ｉ／Ｆ処理部２２、システム制御部２３、ＡＴＡ／ＡＴＡＰＩ変換部２４、及び、光学ドライブ部２５の一例であるＢＤドライブの間で行われる処理の流れを示すシーケンス図である。
【００７４】
Ｓ１２２において、ＨＯＳＴ・Ｉ／Ｆ処理部２２は、ホストＰＣ１０からＣｏｍｍａｎｄレジスタにコマンドが設定されたことを検知し、Ｓ１２４に進む。Ｓ１２４においてＨＯＳＴ・Ｉ／Ｆ処理部２２は、割り込み通知及び割り込み要因の確認を行い、Ｓ１２５に進む。Ｓ１２５においてＨＯＳＴ・Ｉ／Ｆ処理部２２は、Ｆｅａｔｕｒｅ、Ｓｅｃｔｏｒ・Ｃｏｕｎｔ、Ｓｅｃｔｏｒ・Ｎｕｍｂｅｒ、Ｃｙｌｉｎｄｅｒ・Ｈｉｇｈ、Ｃｙｌｉｎｄｅｒ・Ｌｏｗ、Ｄｅｖｉｃｅ・Ｈｅａｄの各レジスタの値を取得し、Ｓ１２６に進む。Ｓ１２６においてＨＯＳＴ・Ｉ／Ｆ処理部２２は、Ｓ１２５において取得した各レジスタの値に基づいてＡＴＡコマンドを生成してシステム制御部２３に通知し、Ｓ１２７に進む。Ｓ１２７においてシステム制御部２３は、Ｓ１２６のＡＴＡコマンドを取得したことを通知するためのコマンド受付情報をＨＯＳＴ・Ｉ／Ｆ処理部２２に返却し、Ｓ１２９に進む。
【００７５】
一方、ＨＯＳＴ・Ｉ／Ｆ処理部２２は、Ｓ１２７のコマンド受付を取得すると、Ｓ１２８において、レジスタのＢＳＹビットに１を格納する。
【００７６】
Ｓ１２９においてシステム制御部２３は、ＡＴＡコマンドをＡＴＡ／ＡＴＡＰＩ変換部２４に通知し、Ｓ１３０に進む。Ｓ１３０においてＡＴＡ／ＡＴＡＰＩ変換部２４は、Ｓ１２９のＡＴＡコマンドをＡＴＡＰＩコマンドに変換してＢＤドライブに出力し、Ｓ１３１に進む。Ｓ１３１においてＢＤドライブは、取得したＳ１３０のＡＴＡＰＩコマンドに基づいた動作を行い、ＡＴＡＰＩコマンドの処理結果をＡＴＡ／ＡＴＡＰＩ変換部２４に返却して、Ｓ１３２に進む。Ｓ１３２においてＡＴＡ／ＡＴＡＰＩ変換部２４は、Ｓ１３１において返却された処理結果がエラーであるか否かを判定し、エラーである場合（Ｓ１３２においてＹＥＳ）、Ｓ１４８のエラー処理へ進む。エラー処理については後述する。
【００７７】
判定結果がエラーでない場合（Ｓ１３２においてＮＯ）、Ｓ１３３に進む。Ｓ１３３においてＡＴＡ／ＡＴＡＰＩ変換部２４は、ＡＴＡコマンド処理が完了したことをシステム制御部２３に通知し、Ｓ１３４に進む。Ｓ１３４においてシステム制御部２３は、Ｓ１３３におけるＡＴＡコマンド処理完了の通知を取得すると、ＨＯＳＴ・Ｉ／Ｆ処理部２２に対しＤＭＡ転送設定を行い、Ｓ１３５に進む。Ｓ１３５においてＨＯＳＴ・Ｉ／Ｆ処理部２２は、レジスタのＢＳＹビットに０を格納すると共に該レジスタのＤＲＱビットに１を格納して、Ｓ１３６に進む。Ｓ１３６においてＨＯＳＴ・Ｉ／Ｆ処理部２２は、ホストＰＣ１０に対してＤＭＡＲＱアサートを通知し、Ｓ１３８に進む。Ｓ１３８においてＨＯＳＴ・Ｉ／Ｆ処理部２２は、ホストＰＣ１０からＤＭＡＣＫアサートの通知を受けた後、ホストＰＣ１０との間でデータの送受信を行いＳ１３９に進む。
【００７８】
ここで、リード系のコマンドを処理する場合におけるホストＰＣ１０と光学ドライブ装置２０との間のデータの送受信について詳しく説明する。
【００７９】
すなわち、光学ドライブ装置２０の内部においてホストＰＣ１０に送信するデータに対して行われる処理について説明する。ＡＴＡ／ＡＴＡＰＩ変換部２４は、光学ドライブ部２５に格納された光ディスクからホストＰＣ１０に送信するデータが格納されたセクタ領域のデータを読み込み、バッファメモリ２１に格納する。次にＡＴＡ／ＡＴＡＰＩ変換部２４は、バッファメモリ２１に格納されたデータの該当する領域のデータを読み込み、システム制御部２３に出力する。システム制御部２３は、入力されたデータをＨＯＳＴ・Ｉ／Ｆ処理部２２に出力する。ＨＯＳＴ・Ｉ／Ｆ処理部２２は、ホストＰＣ１０にデータを送信する。受信するデータが格納された光ディスクのセクタ領域、及び、該当する領域の特定方法については後述することにする。
【００８０】
なお、ライト系のコマンドを処理する場合におけるホストＰＣ１０と光学ドライブ装置２０との間のデータの送受信については、以下のようになる。
【００８１】
すなわち、ホストＰＣ１０からデータを受信するとＨＯＳＴ・Ｉ／Ｆ処理部２２は、システム制御部２３にデータを出力する。システム制御部２３は、入力されたデータをＡＴＡ／ＡＴＡＰＩ変換部２４に出力する。ＡＴＡ／ＡＴＡＰＩ変換部２４は、光学ドライブ部２５に格納された光ディスクにおける入力されたデータが格納されるセクタ領域のデータを読み込み、バッファメモリ２１に格納する。次にＡＴＡ／ＡＴＡＰＩ変換部２４は、バッファメモリ２１に格納されたデータの該当する領域にシステム制御部２３から入力されたデータを上書きし、バッファメモリ２１のデータを光学ドライブ部２５に出力する。ここで、入力されたデータが格納される光ディスクのセクタ領域、及び、該当する領域の特定方法についても後述することにする。
【００８２】
Ｓ１３９においてＨＯＳＴ・Ｉ／Ｆ処理部２２は、データ転送が完了したか否かを判定する。データ転送が完了していない場合（Ｓ１３９においてＮＯ）、Ｓ１３６に戻る。データ転送が完了した場合（Ｓ１３９においてＹＥＳ）、Ｓ１４０に進む。Ｓ１４０においてＨＯＳＴ・Ｉ／Ｆ処理部２２は、割り込み通知及び割り込み要因の確認を行い、Ｓ１４１に進む。Ｓ１４１においてＨＯＳＴ・Ｉ／Ｆ処理部２２は、システム制御部２３にデータの転送が完了したことを示す通知を行い、Ｓ１４２に進む。Ｓ１４２においてシステム制御部２３は、Ｓ１４１の通知を取得したことを通知するための完了確認をＨＯＳＴ・Ｉ／Ｆ処理部２２に返却し、Ｓ１４３に進む。Ｓ１４３においてＨＯＳＴ・Ｉ／Ｆ処理部２２は、レジスタのＢＳＹビットに０を格納すると共に該レジスタのＤＲＱビットに０を格納して、Ｓ１４４に進む。Ｓ１４４においてＨＯＳＴ・Ｉ／Ｆ処理部２２は、Ｄｅｖｉｃｅ・ＣｏｎｔｒｏｌレジスタのｎＩＥＮビットの値が０であるか否かを判定する。ｎＩＥＮビットの値が０でない場合（Ｓ１４４においてＮＯ）、Ｓ１４６に進む。ｎＩＥＮビットの値が０である場合（Ｓ１４４においてＹＥＳ）、Ｓ１４５に進む。Ｓ１４５においてＨＯＳＴ・Ｉ／Ｆ処理部２２は、ホストＰＣ１０に対してＩＮＴＲＱアサートを通知することによりＡＴＡコマンドの処理が終了したことを知らせ、Ｓ１４６に進む。Ｓ１４６においてＨＯＳＴ・Ｉ／Ｆ処理部２２は、ホストＰＣ１０からＳｔａｔｕｓレジスタが読み込まれたことを検知し、Ｓ１４７に進む。Ｓ１４７においてＨＯＳＴ・Ｉ／Ｆ処理部２２は、ＩＮＴＲＱのネゲートを行う。以上がＤＭＡ・ｃｏｍｍａｎｄプロトコルに従って行われる光学ドライブ装置２０の動作である。
【００８３】
最後に、図８のエラー処理Ｓ１４８、及び、図１０のエラー処理Ｓ２００の詳細について図９を用いて説明する。図９は、エラー処理を行う際のホストＰＣ１０、並びに、光学ドライブ装置２０を構成するＨＯＳＴ・Ｉ／Ｆ処理部２２、システム制御部２３、ＡＴＡ／ＡＴＡＰＩ変換部２４、及び、光学ドライブ部２５の一例であるＢＤドライブの間で行われる処理の流れを示すシーケンス図である。
【００８４】
Ｓ１６１においてＡＴＡ／ＡＴＡＰＩ変換部２４は、システム制御部２３に対しエラー通知を行う。システム制御部２３は、ＡＴＡ／ＡＴＡＰＩ変換部２４からＳ１６１のエラー通知を受けると、Ｓ１６２においてＨＯＳＴ・Ｉ／Ｆ処理部２２に対しエラー通知を行う。ＨＯＳＴ・Ｉ／Ｆ処理部２２は、システム制御部２３からＳ１６２のエラー通知を受けると、Ｓ１６３においてＥｒｒｏｒレジスタの設定を行い、Ｓ１６４に進む。Ｓ１６４においてＨＯＳＴ・Ｉ／Ｆ処理部２２は、レジスタのＥＲＲビットに１を格納すると共に、該レジスタのＢＳＹビット及び該レジスタのＤＲＱビットに０を格納して、Ｓ１６５に進む。Ｓ１６５においてＨＯＳＴ・Ｉ／Ｆ処理部２２は、Ｄｅｖｉｃｅ・ＣｏｎｔｒｏｌレジスタのｎＩＥＮビットの値が０であるか否かを判定する。ｎＩＥＮビットの値が０でない場合（Ｓ１６５においてＮＯ）、Ｓ１６７に進む。ｎＩＥＮビットの値が０である場合（Ｓ１６５においてＹＥＳ）、Ｓ１６６に進む。Ｓ１６６においてＨＯＳＴ・Ｉ／Ｆ処理部２２は、ホストＰＣ１０に対してＩＮＴＲＱアサートを通知し、Ｓ１６７に進む。Ｓ１６７においてＨＯＳＴ・Ｉ／Ｆ処理部２２は、Ｓｔａｔｕｓレジスタの読み込みを検知し、Ｓ１６８に進む。Ｓ１６８においてＨＯＳＴ・Ｉ／Ｆ処理部２２は、ＩＮＴＲＱのネゲートを行う。以上がエラー処理における光学ドライブ装置２０の動作である。
【００８５】
（光学ドライブ装置２０の利点）
本実施形態の光学ドライブ装置２０は、ホストＰＣ１０からＡＴＡコマンドが送信された場合にＡＴＡコマンドをＡＴＡＰＩコマンドに変換して光学ドライブ部２５に格納されている光ディスクにアクセスするので、格納されている光ディスクをホストＰＣ１０に対してＡＴＡインターフェイスを備えたハードディスクドライブと見せることができる。従って、ＯＳがインストールされている光ディスクが格納された本実施形態の光学ドライブ装置２０をホストＰＣ１０に接続してホストＰＣ１０を起動することにより、光ディスクからＯＳを起動することが可能となる。光ディスクは媒体の交換が容易であることから、ＯＳがインストールされた複数の光ディスクを用意しておけば、複数のシステムを切り替えて起動することが容易になる。
【００８６】
また、これによりＯＳの起動プロセスがサポートしていないファイルシステム（ＵＤＦ２．５など）を採用する光ディスクからもシステムを起動することが可能となる。
【００８７】
（ホストＰＣ１０及び光学ドライブ装置２０からなるシステムの動作）
次に、ＡＴＡコマンドが処理される際の、ホストＰＣ１０及び光学ドライブ装置２０からなるシステムとしての動作について、図２〜図１０を用いて詳細に説明する。なお、光学ドライブ装置２０の内部の詳細な動作については上述したので、ここでは、光学ドライブ装置２０の動作については簡潔に述べるに留めることとする。
【００８８】
再び図２を参照し、ホストＰＣ１０及び光学ドライブ装置２０からなるシステムの動作を、ホストＰＣ１０側に着目して説明する。
【００８９】
最初にＳ１において、ホストＰＣ１０はデバイスセレクションプロトコルの処理を行う。デバイスセレクションプロトコルにおいては、バスがアイドル状態であること、及び、光学ドライブ装置２０がアイドル状態であることを確認する。図３は、図２のデバイスセレクションプロトコルＳ１の具体的な処理の流れを示すフローチャートである。
【００９０】
Ｓ１１（図７のＳ１０１）において、ホストＰＣ１０は、ＨＯＳＴ・Ｉ／Ｆ処理部２２のＳｔａｔｕｓレジスタまたはＡｌｔｅｒｎａｔｅ・Ｓｔａｔｕｓレジスタの値を読み込み、Ｓ１２に進む。Ｓ１２（図７のＳ１０２）においてホストＰＣ１０は、レジスタのＢＳＹビット及びＤＲＱビットが共に０か否かを判定する。ここで、ＢＳＹビット及びＤＲＱビットが共に０であることはバスがアイドル状態であることを意味し、ＢＳＹビット及びＤＲＱビットのいずれかが０でないことはバスがビジー状態であることを意味する。読み込まれたレジスタのＢＳＹビット及びＤＲＱビットのいずれかが０でない場合（Ｓ１２においてＮＯ）、Ｓ１１に戻る。読み込まれたレジスタのＢＳＹビット及びＤＲＱビットが共に０である場合（Ｓ１２においてＹＥＳ）、Ｓ１３に進む。Ｓ１３（図７のＳ１１１及びＳ１１２）においてホストＰＣ１０は、ＨＯＳＴ・Ｉ／Ｆ処理部２２のＤｅｖｉｃｅ／ＨｅａｄレジスタのＤＥＶビットにデバイス番号をセットして４００ｎｓ以上待機し、Ｓ１４に進む。Ｓ１４（図７のＳ１１３）においてホストＰＣ１０は、ＳｔａｔｕｓレジスタまたはＡｌｔｅｒｎａｔｅ・Ｓｔａｔｕｓレジスタの読み込みを行い、Ｓ１５に進む。Ｓ１５（図７のＳ１１４）においてホストＰＣ１０は、レジスタのＢＳＹビット及びＤＲＱビットが共に０か否かを判定する。ここで、ＢＳＹビット及びＤＲＱビットが共に０であることは光学ドライブ装置２０がアイドル状態であることを意味し、ＢＳＹビット及びＤＲＱビットのいずれかが０でないことは光学ドライブ装置２０がビジー状態であることを意味する。レジスタのＢＳＹビット及びＤＲＱビットのいずれかが０でない場合（Ｓ１５においてＮＯ）、Ｓ１４に戻る。読み込まれたレジスタのＢＳＹビット及びＤＲＱビットが共に０である場合（Ｓ１５においてＹＥＳ）、図２のＳ２に進む。
【００９１】
Ｓ２においてホストＰＣ１０は、バスまたは光学ドライブ装置２０のいずれかがビジー状態であるか否かを判定する。バスまたは光学ドライブ装置２０のいずれかがビジー状態である場合（Ｓ２においてＹＥＳ）、ホストＰＣ１０は処理を終了する。バス及び光学ドライブ装置２０が共にビジー状態でない場合（Ｓ２においてＮＯ）、Ｓ３に進む。
【００９２】
Ｓ３においてホストＰＣ１０はＡＴＡコマンドの種別を判定し、コマンドの種別がＮｏｎ・ｄａｔａ・ｃｏｍｍａｎｄである場合（Ｓ３においてＮｏｎ・ｄａｔａ・ｃｏｍｍａｎｄ）にはＳ４のＮｏｎ・ｄａｔａ・ｃｏｍｍａｎｄプロトコルの処理を行う。コマンドの種別がＰＩＯ・ｄａｔａ・ｉｎ・ｃｏｍｍａｎｄである場合（Ｓ３においてＰＩＯ・ｄａｔａ・ｉｎ・ｃｏｍｍａｎｄ）にはＳ５のＰＩＯ・ｄａｔａ・ｉｎ・ｃｏｍｍａｎｄプロトコルの処理を行う。コマンドの種別がＰＩＯ・ｄａｔａ・ｏｕｔ・ｃｏｍｍａｎｄである場合（Ｓ３においてＰＩＯ・ｄａｔａ・ｏｕｔ・ｃｏｍｍａｎｄ）にはＳ６のＰＩＯ・ｄａｔａ・ｏｕｔ・ｃｏｍｍａｎｄプロトコルの処理を行う。コマンドの種別がＤＭＡ・ｃｏｍｍａｎｄである場合（Ｓ３においてＤＭＡ・ｃｏｍｍａｎｄ）にはＳ７のＤＭＡ・ｃｏｍｍａｎｄプロトコルの処理を行う。ここでは、Ｓ４のＮｏｎ・ｄａｔａ・Ｃｏｍｍａｎｄプロトコル、及び、Ｓ７のＤＭＡ・ｃｏｍｍａｎｄプロトコルについて詳細に説明する。
【００９３】
まず、Ｓ４のＮｏｎ・ｄａｔａ・Ｃｏｍｍａｎｄプロトコルについて図５を用いて詳細に説明する。図５は、Ｓ４のＮｏｎ・ｄａｔａ・Ｃｏｍｍａｎｄプロトコルの処理におけるホストＰＣ１０及び光学ドライブ装置２０の動作を示すフローチャートである。
【００９４】
Ｓ４１（図１０のＳ１８１）においてホストＰＣ１０は、Ｆｅａｔｕｒｅ、Ｓｅｃｔｏｒ・Ｃｏｕｎｔ、Ｓｅｃｔｏｒ・Ｎｕｍｂｅｒ、Ｃｙｌｉｎｄｅｒ・Ｈｉｇｈ、Ｃｙｌｉｎｄｅｒ・Ｌｏｗ、Ｄｅｖｉｃｅ／Ｈｅａｄレジスタなど各レジスタにパラメータを設定し、Ｓ４２に進む。Ｓ４２（図１０のＳ１８２及びＳ１８３）においてホストＰＣ１０は、Ｃｏｍｍａｎｄレジスタにコマンドを設定して４００ｎｓ以上待機し、Ｓ４３に進む。Ｓ４３（図１０のＳ１８４〜Ｓ１９１）において光学ドライブ装置２０（デバイス）はＢＳＹビットに１を格納し、Ｓ４４に進む。Ｓ４４（図１０のＳ１９２）において、図１０のＳ１９１において取得したＡＴＡＰＩコマンドの処理結果がエラーである場合（Ｓ４４においてＹＥＳ）、Ｓ４５に進む。エラーでない場合（Ｓ４４においてＮＯ）はＳ４６に進む。Ｓ４５（図９のＳ１６３及びＳ１６４）において光学ドライブ装置２０（デバイス）は、Ｅｒｒｏｒレジスタの設定を行い、ＥＲＲビットに１を格納する。Ｓ４６（図１０のＳ１９５または図９のＳ１６４）において光学ドライブ装置２０（デバイス）は、ＢＳＹビットに０を格納し、Ｓ４７に進む。Ｓ４７（図１０のＳ１９６または図９のＳ１６５）において光学ドライブ装置２０は、Ｄｅｖｉｃｅ・ＣｏｎｔｒｏｌレジスタのｎＩＥＮビットの値が０であるか否かを判定する。
【００９５】
Ｓ４７においてｎＩＥＮ＝０である場合（Ｓ４７においてＹＥＳ）、Ｓ４８に進む。Ｓ４７においてｎＩＥＮが０でない場合（Ｓ４７においてＮＯ）、Ｓ５１において、ホストＰＣ１０は、Ｓｔａｔｕｓレジスタの読み込みを行い、光学ドライブ装置２０は処理を終了する。
【００９６】
Ｓ４８（図１０のＳ１９７または図９のＳ１６６）において光学ドライブ装置２０（デバイス）は、ホストＰＣ１０にＡＴＡコマンドの実行が終了したことを知らせるためにＩＮＴＲＱをアサートし、Ｓ４９に進む。Ｓ４９（図１０のＳ１９８または図９のＳ１６７）においてホストＰＣ１０は、コマンドの実行が正しく行われたかをチェックするためにＳｔａｔｕｓレジスタの読み込みを行いＳ５０に進む。Ｓ５０（図１０のＳ１９９または図９のＳ１６８）において光学ドライブ装置２０（デバイス）は、ＩＮＴＲＱをネゲートし処理を終了する。
【００９７】
次に、Ｓ７のＤＭＡ・Ｃｏｍｍａｎｄプロトコルについて図４を用いて詳細に説明する。図４は、Ｓ７のＤＭＡ・Ｃｏｍｍａｎｄプロトコルに従ったリード系のＡＴＡコマンドを処理するために行われるホストＰＣ１０及び光学ドライブ装置２０の動作を示すフローチャートである。
【００９８】
Ｓ２１（図８のＳ１２１）においてホストＰＣ１０は、Ｆｅａｔｕｒｅ、Ｓｅｃｔｏｒ・Ｃｏｕｎｔ、Ｓｅｃｔｏｒ・Ｎｕｍｂｅｒ、Ｃｙｌｉｎｄｅｒ・Ｈｉｇｈ、Ｃｙｌｉｎｄｅｒ・Ｌｏｗ、Ｄｅｖｉｃｅ／Ｈｅａｄレジスタなど各レジスタにパラメータを設定し、Ｓ２２に進む。Ｓ２２（図８のＳ１２２及びＳ１２３）においてホストＰＣ１０は、Ｃｏｍｍａｎｄレジスタにコマンドを設定して４００ｎｓ以上待機し、Ｓ２３に進む。Ｓ２３（図８のＳ１２４〜Ｓ１３１）において光学ドライブ装置２０（デバイス）は、ＢＳＹビットに１を格納してコマンドを実行しＳ２４に進む。Ｓ２４（図８のＳ１３２）において、図８のＳ１３１において取得したＡＴＡＰＩコマンドの処理結果がエラーである場合（Ｓ２４においてＹＥＳ）、Ｓ２９に進む。エラーでない場合（Ｓ２４においてＮＯ）はＳ２５に進む。
【００９９】
Ｓ２５（図８のＳ１３５）において光学ドライブ装置２０（デバイス）は、ＢＳＹビットに０を格納すると共にＤＲＱビットに１を格納しＳ２６に進む。Ｓ２６（図８のＳ１３６）において光学ドライブ装置２０（デバイス）は、データ転送の準備完了後ＤＭＡＲＱをアサートし、Ｓ２７に進む。Ｓ２７（図８のＳ１３７及びＳ１３８）においてホストＰＣ１０は、データ転送の準備完了後ＤＭＡＣＫをアサートしてデータ転送を開始し、Ｓ２８に進む。Ｓ２８（図８のＳ１３９）において光学ドライブ装置２０（デバイス）は、データ転送が完了したか否かを判定し、データ転送が完了した場合（Ｓ２８においてＹＥＳ）、Ｓ３０に進む。データ転送が完了していない場合（Ｓ２８においてＮＯ）、Ｓ２６に戻る。
【０１００】
Ｓ２９（図９のＳ１６３及びＳ１６４）において光学ドライブ装置２０（デバイス）は、Ｅｒｒｏｒレジスタの設定を行いＥＲＲビットに１を格納して、Ｓ３０に進む。
【０１０１】
Ｓ３０（図８のＳ１４３または図９のＳ１６４）において光学ドライブ装置２０（デバイス）は、ＢＳＹビット及びＤＲＱビットに０を格納して、Ｓ３１に進む。Ｓ３１（図８のＳ１４４または図９のＳ１６５）において光学ドライブ装置２０は、Ｄｅｖｉｃｅ・ＣｏｎｔｒｏｌレジスタのｎＩＥＮビットの値が０であるか否かを判定する。
【０１０２】
Ｓ３１においてｎＩＥＮ＝０である場合（Ｓ３１においてＹＥＳ）、Ｓ３２に進む。Ｓ３１においてｎＩＥＮが０でない場合（Ｓ３１においてＮＯ）、Ｓ３５において、ホストＰＣ１０は、Ｓｔａｔｕｓレジスタの読み込みを行い、光学ドライブ装置２０は処理を終了する。
【０１０３】
Ｓ３２（図８のＳ１４５または図９のＳ１６６）において光学ドライブ装置２０（デバイス）は、ＡＴＡコマンドの実行が終了したことを知らせるためにＩＮＴＲＱをアサートし、Ｓ３３に進む。Ｓ３３（図８のＳ１４６または図９のＳ１６７）においてホストＰＣ１０は、コマンドの実行が正しく行われたかをチェックするためにＳｔａｔｕｓレジスタの読み込みを行いＳ３４に進む。Ｓ３４（図８のＳ１４７または図９のＳ１６８）において光学ドライブ装置２０（デバイス）は、ＩＮＴＲＱをネゲートし処理を終了する。
【０１０４】
（光学ドライブ装置２０が処理するＡＴＡコマンド）
本発明の光学ドライブ装置２０が処理するＡＴＡコマンドについて、図２２〜図２４を用いて説明する。図２２の（ａ）〜（ｃ）は、光学ドライブ装置２０が処理を行う必要のあるＡＴＡコマンドの一覧を示している。処理を行う必要のあるＡＴＡコマンドのうち、図２２（ａ）は、ＡＴＡ／ＡＴＡＰＩ変換部２４が、ＡＴＡＰＩコマンドに変換する必要のあるＡＴＡコマンドを示している。図２２（ｂ）は、ＡＴＡ／ＡＴＡＰＩ変換部２４が、変換せずにそのまま光学ドライブ部２５に出力するＡＴＡコマンドである。図２２（ｃ）は、光学ドライブ部２５に出力しないＡＴＡコマンドである。
【０１０５】
また、図２３及び図２４に記載のコマンド一覧は、図２２（ａ）〜（ｃ）に記載のＡＴＡコマンドを含めた全ＡＴＡコマンドの一覧である。図２３及び図２４に記載の全ＡＴＡコマンド一覧のうち、図２２の（ａ）〜（ｃ）のいずれの図にも記載されていないＡＴＡコマンドは、ＩＤＥＮＴＩＦＹ・ＤＥＶＩＣＥコマンドを使用することにより無効にすることができる。従って、本発明の光学ドライブ装置２０は、最低限図２２（ａ）〜（ｃ）のいずれかには記載のＡＴＡコマンドを処理（ＡＴＡＰＩコマンドへの変換等）すればよく、それ以外のＡＴＡコマンドに関しては、処理をしてもよいし処理をしなくてもよい。
【０１０６】
（ＡＴＡコマンドからＡＴＡＰＩコマンドへの変換例）
本発明に係る光学ドライブ装置２０のＡＴＡ／ＡＴＡＰＩ変換部２４が行うＡＴＡコマンドからＡＴＡＰＩコマンドへの変換例について図１１〜図１７を用いて説明する。
【０１０７】
ここでは、変換例として、データの読み出しを行うためのＡＴＡコマンドであるＲＥＡＤ・ＤＭＡコマンドまたはＲＥＡＤ・ＤＭＡ・ＥＸＴコマンドからＡＴＡＰＩコマンドであるＲＥＡＤ（１０）コマンドへの変換、及び、データの書き込みを行うためのＡＴＡコマンドであるＷＲＩＴＥ・ＤＭＡコマンドまたはＷＲＩＴＥ・ＤＭＡ・ＥＸＴコマンドからＡＴＡＰＩコマンドであるＷＲＩＴＥ（１０）コマンドへの変換について説明する。
【０１０８】
まず、読み出しコマンドの変換例として、ＲＥＡＤ・ＤＭＡコマンドまたはＲＥＡＤ・ＤＭＡ・ＥＸＴコマンドからＲＥＡＤ（１０）コマンドへの変換について、図１１〜図１３を用いて説明する。図１１（ａ）は、ＲＥＡＤ・ＤＭＡコマンドの要求を説明する図である。ＲＥＡＤ・ＤＭＡコマンドのＳｅｃｔｏｒ・Ｃｏｕｎｔレジスタにはデータを読み出すセクタ数が格納されている。Ｓｅｃｔｏｒ・Ｎｕｍｂｅｒレジスタにはデータの読み出し開始位置の論理セクタを示す２８ビットからなるＬＢＡの０ビット目から７ビット目までの値が格納されている。Ｃｙｌｉｎｄｅｒ・Ｌｏｗレジスタには、ＬＢＡの８ビット目から１５ビット目までの値が格納されている。Ｃｙｌｉｎｄｅｒ・Ｈｉｇｈレジスタには、ＬＢＡの１６ビット目から２３ビット目までの値が格納されている。また、Ｄｅｖｉｃｅレジスタの下位４ビットには、ＬＢＡの２４ビット目から２７ビット目までの値が格納されている。
【０１０９】
また、図１１（ｂ）及び図１１（ｃ）は、ＲＥＡＤ・ＤＭＡ・ＥＸＴコマンドの１回目の要求及び２回目の要求を説明する図である。１回目の要求のＳｅｃｔｏｒ・Ｃｏｕｎｔレジスタにはデータを読み出す１６ビットからなるセクタ数の上位８ビットの値が格納されている。１回目の要求のＳｅｃｔｏｒ・Ｎｕｍｂｅｒレジスタにはデータの読み出し開始位置の論理セクタを示す４８ビットからなるＬＢＡの２４ビット目から３１ビット目までの値が格納されている。Ｃｙｌｉｎｄｅｒ・Ｌｏｗレジスタには、ＬＢＡの３２ビット目から３９ビット目までの値が格納されている。Ｃｙｌｉｎｄｅｒ・Ｈｉｇｈレジスタには、ＬＢＡの４０ビット目から４７ビット目までの値が格納されている。また、２回目の要求のＳｅｃｔｏｒ・Ｃｏｕｎｔレジスタにはデータを読み出す１６ビットからなるセクタ数の下位８ビットの値が格納されている。２回目の要求のＳｅｃｔｏｒ・ＮｕｍｂｅｒレジスタにはＬＢＡの０ビット目から７ビット目までの値が格納されている。Ｃｙｌｉｎｄｅｒ・Ｌｏｗレジスタには、ＬＢＡの８ビット目から１５ビット目までの値が格納されている。Ｃｙｌｉｎｄｅｒ・Ｈｉｇｈレジスタには、ＬＢＡの１６ビット目から２３ビット目までの値が格納されている。上記１回目の要求と２回目の要求とから１６ビットのセクタ数及び４８ビットのＬＢＡの値を求めることができる。
【０１１０】
上記２種類のコマンド（ＲＥＡＤ・ＤＭＡコマンド／ＲＥＡＤ・ＤＭＡ・ＥＸＴコマンド）から定まるＬＢＡ及びセクタ数は、ホストＰＣ１０から見た場合の仮想ハードディスクの読み出し開始位置、及び、読み出しセクタ長を示している。
【０１１１】
次に図１２を用いて、ハードディスクドライブ（ＨＤＤ）の読み出し開始位置（ＬＢＡ）、及び、ハードディスクドライブ（ＨＤＤ）の読み出しセクタ長からＢＤの読み出し開始位置（ＬＢＡ）、及び、ＢＤ読み出しセクタ長を算出する方法、及び、算出されたＬＢＡ及びセクタ長の値が格納されたＡＴＡＰＩコマンド（ＲＥＡＤ（１０））について説明する。
【０１１２】
図１２（ａ）はハードディスクドライブ（ＨＤＤ）の読み出し開始ＬＢＡ１、及び、ハードディスクドライブ（ＨＤＤ）の読み出し開始長４から、ＢＤの読み出し開始ＬＢＡ２、及び、ＢＤの読み出しセクタ長５を算出する算出方法について説明する図である。
【０１１３】
図１２（ａ）を見るとわかるように、ハードディスク（ＨＤ）の１セクタは５１２バイトであり、ＢＤの１セクタは２０４８バイトである。すなわち、ＨＤの４セクタ分の領域に格納できるデータのサイズは、ＢＤの１セクタ分の領域に格納できるデータのサイズと等しい。
【０１１４】
従って、ＨＤの０セクタ目に格納されるデータがＢＤのＳセクタ目に格納されるとすると、ＨＤのｎセクタ目に格納されるデータがＢＤのＳ＋ｎ／４セクタ目に格納されるようにすることにより、ＢＤの領域を無駄なく使用することができる。このため、本発明の光学ドライブ装置２０は、ＨＤのｎセクタ目に格納されるデータをＢＤのＳ＋ｎ／４セクタ目に格納する。
【０１１５】
このことから、ＡＴＡ／ＡＴＡＰＩ変換部２４は、ＨＤの０セクタ目に相当するＢＤのセクタＳ、ハードディスクドライブ（ＨＤＤ）の読み出し開始ＬＢＡ１、及び、ハードディスクドライブ（ＨＤＤ）の読み出しセクタ長４から、ＢＤの読み出し開始ＬＢＡ２、及び、ＢＤの読み出しセクタ長５を以下の式に従って算出する。
【０１１６】
ＢＤの読み出し開始ＬＢＡ（２）＝（ＨＤＤの読み出し開始ＬＢＡ（１）  ｄｉｖ４）
＋Ｓ
余り（３）＝ＨＤＤの読み出し開始ＬＢＡ（１）  ｍｏｄ  ４
ＢＤの読み出しセクタ長（５）＝（余り（３）＋３）ｄｉｖ  ４  ＋  ｛（ＨＤＤの読                          み出しセクタ長（４）−余り（３））＋３｝  ｄｉｖ  ４
図１２（ｂ）は、上記計算式により算出されたＢＤの読み出し開始ＬＢＡ（２）、及び、ＢＤの読み出しセクタ長（５）が格納された変換後のＡＴＡＰＩコマンド（ＲＥＡＤ（１０））である。ＡＴＡ／ＡＴＡＰＩ変換部２４は、このＡＴＡＰＩコマンドで表わされるデータを光学ドライブ部２５に出力する。その後、光学ドライブ装置２０は、読み出しコマンドがＲＥＡＤ・ＤＭＡコマンドである場合には、図１３（ａ）で表わされる応答を、ホストＰＣ１０に対し返却する。読み出しコマンドがＲＥＡＤ・ＤＭＡ・ＥＸＴコマンドである場合には、図１３（ｂ）で表わされる応答を、ホストＰＣ１０に対し返却する。
【０１１７】
また、ＡＴＡ／ＡＴＡＰＩ変換部２４は、ＢＤの読み出し開始ＬＢＡ２、及び、ＢＤの読み出しセクタ長５が格納されたＲＥＡＤ（１０）コマンドで読み出したデータをバッファ２１に格納する。バッファ２１に格納されたデータのうち、ＡＴＡコマンド（ＲＥＡＤ・ＤＭＡコマンドまたはＲＥＡＤ・ＤＭＡ・ＥＸＴコマンド）で読み込もうとするデータが格納されている領域の特定方法について図１８を用いて説明する。
【０１１８】
図１８は、ＡＴＡコマンドがデータを読み書きするハードディスク上の領域（セクタ）と、ハードディスク上の領域に相当するハードディスク領域を含む光ディスク上の領域（セクタ）とを対比した図である。ここで、光ディスク上のハードディスク領域は、ＡＴＡコマンドから変換されたＡＴＡＰＩコマンドがデータを読み書きする領域である。図１８の左側にはＯＳの起動イメージなどが記録されたホストＰＣ１０から見たハードディスク上の領域（ＬＢＡ  ０からＬＢＡ  Ｘ３）が示されており、図１８の右側には、図１８の左側に示した領域のデータがＬＢＡ  ＳからＬＢＡ  Ｙ３の領域（ハードディスク領域）に記録されている、光ディスク上の領域を示している。
【０１１９】
ここで、読み込もうとするデータが格納されているハードディスク領域上のＬＢＡ  Ｘ１からＬＢＡ  Ｘ２の斜線領域とすると、対応する光ディスク上の読み込もうとするデータが格納されている実際の領域は、ＬＢＡ  Ｙ１の先頭を起点としたセクタアドレスｙ１で表わされる先頭アドレスからＬＢＡ  Ｙ２−１の先頭を起点としたセクタアドレスｙ２で表わされる最終アドレスまでの斜線領域となる。ＡＴＡ／ＡＴＡＰＩ変換部２４は、Ｙ１、Ｙ２、ｙ１及びｙ２を、次の式により算出する。
【０１２０】
Ｙ１＝Ｓ＋Ｘ１  ｄｉｖ  ４
Ｙ２＝Ｓ＋（Ｘ２＋３）  ｄｉｖ  ４
ｙ１＝Ｘ１  ｍｏｄ  ４
ｙ２＝Ｘ２  ｍｏｄ  ４
以上によって特定された斜線領域のデータがバッファ２１から読み出されホストＰＣ１０に送信される。
【０１２１】
次に、書き込みコマンドの変換例として、ＷＲＩＴＥ・ＤＭＡコマンドまたはＷＲＩＴＥ・ＤＭＡ・ＥＸＴコマンドからＷＲＩＴＥ（１０）コマンドへの変換について、図１４〜図１７を用いて説明する。図１４（ａ）は、ＷＲＩＴＥ・ＤＭＡコマンドの要求を説明する図である。ＷＲＩＴＥ・ＤＭＡコマンドのＳｅｃｔｏｒ・Ｃｏｕｎｔレジスタにはデータを書き込みセクタ数が格納されている。Ｓｅｃｔｏｒ・Ｎｕｍｂｅｒレジスタにはデータの書き込み開始位置の論理セクタを示す２８ビットからなるＬＢＡの０ビット目から７ビット目までの値が格納されている。Ｃｙｌｉｎｄｅｒ・Ｌｏｗレジスタには、ＬＢＡの８ビット目から１５ビット目までの値が格納されている。Ｃｙｌｉｎｄｅｒ・Ｈｉｇｈレジスタには、ＬＢＡの１６ビット目から２３ビット目までの値が格納されている。また、Ｄｅｖｉｃｅレジスタの下位４ビットには、ＬＢＡの２４ビット目から２７ビット目までの値が格納されている。
【０１２２】
また、図１４（ｂ）及び図１４（ｃ）は、ＷＲＩＴＥ・ＤＭＡ・ＥＸＴコマンドの１回目の要求及び２回目の要求を説明する図である。１回目の要求のＳｅｃｔｏｒ・Ｃｏｕｎｔレジスタにはデータを書き込む１６ビットからなるセクタ数の上位８ビットの値が格納されている。１回目の要求のＳｅｃｔｏｒ・Ｎｕｍｂｅｒレジスタにはデータの書き込み開始位置の論理セクタを示す４８ビットからなるＬＢＡの２４ビット目から３１ビット目までの値が格納されている。Ｃｙｌｉｎｄｅｒ・Ｌｏｗレジスタには、ＬＢＡの３２ビット目から３９ビット目までの値が格納されている。Ｃｙｌｉｎｄｅｒ・Ｈｉｇｈレジスタには、ＬＢＡの４０ビット目から４７ビット目までの値が格納されている。また、２回目の要求のＳｅｃｔｏｒ・Ｃｏｕｎｔレジスタにはデータを書き込む１６ビットからなるセクタ数の下位８ビットの値が格納されている。２回目の要求のＳｅｃｔｏｒ・ＮｕｍｂｅｒレジスタにはＬＢＡの０ビット目から７ビット目までの値が格納されている。Ｃｙｌｉｎｄｅｒ・Ｌｏｗレジスタには、ＬＢＡの８ビット目から１５ビット目までの値が格納されている。Ｃｙｌｉｎｄｅｒ・Ｈｉｇｈレジスタには、ＬＢＡの１６ビット目から２３ビット目までの値が格納されている。上記１回目の要求と２回目の要求とから１６ビットのセクタ数及び４８ビットのＬＢＡの値を求めることができる。
【０１２３】
次に図１５を用いて、ハードディスクドライブ（ＨＤＤ）の書き込み開始位置（ＬＢＡ）、及び、ハードディスクドライブ（ＨＤＤ）の書き込みセクタ長から、ＢＤの読み込み開始位置（ＬＢＡ）、及び、ＢＤ読み込みセクタ長を算出し、算出されたＬＢＡ及びセクタ長の値が格納されたＡＴＡＰＩコマンド（ＲＥＡＤ（１０））を生成して、算出されたＬＢＡ及びセクタ長で表わされる領域のデータをバッファ２１に読み込むことについて説明する。
【０１２４】
図１５（ａ）及び（ｂ）は、書き込み要求された仮想ハードディスク上のセクタ領域及びＢＤ上の実際のセクタ領域を示す図である。ハードディスクドライブ（ＨＤＤ）の読み出し開始位置（ＬＢＡ）１及びハードディスクドライブ（ＨＤＤ）の読み出しセクタ長４からＢＤの読み込み開始位置（ＬＢＡ）２、及び、ＢＤ読み込みセクタ長５を算出する方法は、ＲＥＡＤ・ＤＭＡコマンド及びＲＥＡＤ・ＤＭＡ・ＥＸＴコマンドからＲＥＡＤ（１０）コマンドへの変換における算出方法と同様であるので、算出方法の説明は省略する。図１５（ｃ）は、算出されたＢＤの読み出し開始ＬＢＡ（２）、及び、ＢＤの読み出しセクタ長（５）が格納された変換後のＡＴＡＰＩコマンド（ＲＥＡＤ（１０））である。ＡＴＡ／ＡＴＡＰＩ変換部２４は、このＡＴＡＰＩコマンドで表わされるデータを光学ドライブ部２５に出力した後、ＢＤの読み出し開始ＬＢＡ２、及び、ＢＤの読み出しセクタ長５が格納されたＲＥＡＤ（１０）コマンドで読み出したデータをバッファ２１に格納する。
【０１２５】
次に、ＡＴＡコマンド（ＷＲＩＴＥ・ＤＭＡコマンドまたはＷＲＩＴＥ・ＤＭＡ・ＥＸＴコマンド）で書き込もうとするデータによりバッファ２１に格納されたデータを書き換え、ＷＲＩＴＥ（１０）コマンドを生成することについて図１６を用いて説明する。
【０１２６】
ＡＴＡ／ＡＴＡＰＩ変換部２４は、バッファ２１に格納されたデータのうち、ＡＴＡコマンド（ＷＲＩＴＥ・ＤＭＡコマンドまたはＷＲＩＴＥ・ＤＭＡ・ＥＸＴコマンド）で書き込もうとするデータを書き込む領域の特定方法については、ＲＥＡＤ・ＤＭＡコマンド及びＲＥＡＤ・ＤＭＡ・ＥＸＴコマンドにおいて読み込もうとするデータが格納されている領域を特定する方法と同様であるので省略する。バッファ２１の特定された領域にＷＲＩＴＥ・ＤＭＡコマンドまたはＷＲＩＴＥ・ＤＭＡ・ＥＸＴコマンドにより書き込もうとするデータを書き込んだ後、図１６（ｂ）で表わされるＷＲＩＴＥ（１０）コマンドを生成する。生成されたＷＲＩＴＥ（１０）コマンドが光学ドライブ部２５に送信され、バッファ上のデータを図１６（ａ）のように光ディスクの領域に記録する。図１６（ａ）は、ＢＤへの書き込み開始セクタ２及びＢＤへの書き込みセクタ長５で示される領域に書き込もうとするデータ（ＸＸＸＹＸＸＸＹ）が記録されたことを示している。
【０１２７】
ＷＲＩＴＥ（１０）コマンドによる書き込み後、光学ドライブ装置２０はＡＴＡコマンド（ＷＲＩＴＥ・ＤＭＡコマンドまたはＷＲＩＴＥ・ＤＭＡ・ＥＸＴコマンド）の応答をホストＰＣ１０に返却する。書き込みコマンドがＷＲＩＴＥ・ＤＭＡコマンドである場合には、図１７（ａ）で表わされる応答を、ホストＰＣ１０に対し返却する。書き込みコマンドがＷＲＩＴＥ・ＤＭＡ・ＥＸＴコマンドである場合には、図１７（ｂ）で表わされる応答を、ホストＰＣ１０に対し返却する。
【０１２８】
（ＡＴＡＰＩコマンドへ変換しないＡＴＡコマンドの例）
図２１は、ＡＴＡＰＩコマンドに変換せずにそのまま光学ドライブ部２５に送信するＡＴＡコマンドの一例である４種類のＳＥＴ・ＦＥＡＴＵＥＲＳコマンドの要求と応答を示す図である。
【０１２９】
図２１（ａ）及び（ｂ）は、転送モードをＰＩＯフローコントロールモードにするＳＥＴ・ＦＥＡＴＵＲＥＳコマンドの要求と応答を示し、図２１（ｃ）及び（ｄ）は、転送モードをＵｌｔｒａ・ＤＭＡ転送モードにするＳＥＴ・ＦＥＡＴＵＲＥＳコマンドの要求と応答を示し、図２１（ｅ）及び（ｆ）は、電源オン復帰機能をデフォルトで無効にするＳＥＴ・ＦＥＡＴＵＲＥＳコマンドの要求と応答を示し、図２２（ｇ）及び（ｈ）は、書き込みキャッシュを有効にするＳＥＴ・ＦＥＡＴＵＲＥＳコマンドの要求と応答を示している。光学ドライブ装置２０は、例えば図２１（ａ）のようなＳＥＴ・ＦＥＡＴＵＲＥＳコマンドの要求を受信すると、必要に応じてパラメータを内部で保持し、図２１（ｂ）に示すような正常終了応答をホストＰＣ１０に返却する。
【０１３０】
（システム制御部２３の動作）
ＨＯＳＴ・Ｉ／Ｆ処理部２２は、ホストＰＣ１０からのＡＴＡレジスタへのアクセスに応答して、リセット、デバイスセレクションプロトコルの開始、ＡＴＡコマンド発行（Ｃｏｍｍａｎｄレジスタへの書き込み）、または、データ転送完了の各タイミングで割り込みを発生し、システム制御部２３に対して割り込み要因に応じた通知を行う。
【０１３１】
ここではＨＯＳＴ・Ｉ／Ｆ処理部２２から割り込み要因に応じた通知を受けるときのシステム制御部２３の動作について図６を用いて説明する。図６は、システム処理部２３に対して通知が入力された場合における、リード系のＤＭＡ ｃｏｍｍａｎｄプロトコルに則ったシステム制御部２３の動作を示すフローチャートである。
【０１３２】
Ｓ６１において、システム制御部２３は通知を受信する。Ｓ６２においてシステム制御部２３は通知の種別を判定する。ここで、通知がホストＰＣ１０から光学ドライブ装置２０のハードウェアリセットまたはソフトウェアリセットが行われた場合にＨＯＳＴ・Ｉ／Ｆ処理部２２より出力されるリセット通知である場合（Ｓ６２においてリセット）、Ｓ６３に進む。通知がデバイスセレクションプロトコルにおいてホストＰＣ１０からＳｔａｔｕｓレジスタにアクセスが行われた場合にＨＯＳＴ・Ｉ／Ｆ処理部２２より出力されるデバイスセレクション通知である場合（Ｓ６２においてデバイスセレクション）、Ｓ６５に進む。通知が、ホストＰＣ１０からＣｏｍｍａｎｄレジスタに書き込みが行われた場合にＨＯＳＴ・Ｉ／Ｆ処理部２２から各ＡＴＡレジスタの設定値と共に出力されるＡＴＡコマンドであって、Ｎｏ・ｄａｔａ・ｃｏｍｍａｎｄプロトコル、ＰＩＯ・ｄａｔａ−ｉｎ・ｃｏｍｍａｎｄプロトコル、及び、リード系のＤＭＡ・ｃｏｍｍａｎｄプロトコルに従って処理されるＡＴＡコマンド発行の通知である場合（Ｓ６２においてＡＴＡコマンド発行）、Ｓ６７に進む。通知がＰＩＯ・ｄａｔａ・ｉｎ・ｃｏｍｍａｎｄ、ＰＩＯ・ｄａｔａ・ｏｕｔ・ｃｏｍｍａｎｄまたはＤＭＡ・ｃｏｍｍａｎｄプロトコルにおいてＨＯＳＴ・Ｉ／Ｆ処理部２２から出力されるデータ転送の完了を示す通知である場合（Ｓ６２においてデータ転送完了）、Ｓ７０に進む。
【０１３３】
Ｓ６３においてシステム制御部２３は、処理中のコマンドの中断処理を行いＳ６４に進む。Ｓ６４においてシステム制御部２３は、各ブロック（ＨＯＳＴ・Ｉ／Ｆ処理部２２、システム制御部２３、ＡＴＡ／ＡＴＡＰＩ変換部２４、ＢＤドライブ）の再初期化処理を行い、処理を終了する。
【０１３４】
Ｓ６５においてシステム制御部２３は、各ブロック（ＨＯＳＴ・Ｉ／Ｆ処理部２２、システム制御部２３、ＡＴＡ／ＡＴＡＰＩ変換部２４、ＢＤドライブ）がコマンドの処理を可能な状態であるかを確認し、Ｓ６６に進む。Ｓ６６においてシステム制御部２３は、終了ステータスをＨＯＳＴ・Ｉ／Ｆ処理部２２のＡＴＡレジスタに設定し、処理を終了する。
【０１３５】
Ｓ６７においてシステム制御部２３は、発行されたＡＴＡコマンドをＡＴＡ／ＡＴＡＰＩ変換部２４出力し、Ｓ６８に進む（ＡＴＡ／ＡＴＡＰＩ変換部２４において出力されたＡＴＡコマンドが処理される）。Ｓ６８においてシステム制御部２３はデータ転送が必要であるか否かを判定し、必要である場合（Ｓ６８においてＹＥＳ）は処理を終了する。必要でない場合、即ち、ＡＴＡコマンドがＮｏｎ−ｄａｔａ・ｃｏｍｍａｎｄプロトコルである場合（Ｓ６８においてＮＯ）は、Ｓ６９に進む。Ｓ６９においてシステム制御部２３は、終了ステータスをＨＯＳＴ・Ｉ／Ｆ処理部２２のＡＴＡレジスタに設定し、処理を終了する。
【０１３６】
Ｓ６９においてシステム制御部２３は、終了ステータスをＨＯＳＴ・Ｉ／Ｆ処理部２２のＡＴＡレジスタに設定し、処理を終了する。
【０１３７】
以上のように、本実施形態に係る光学ドライブ装置２０は、図１１及び図１２に示したように、ＡＴＡ／ＡＴＡＰＩ変換部２４が、ホストＰＣ１０から入力されたハードディスクドライブに対するＡＴＡの読み出しコマンド（ＲＥＡＤ・ＤＭＡコマンドやＲＥＡＤ・ＤＭＡ・ＥＸＴコマンド等）であってハードディスクの領域指定情報（例えば、ＨＤＤの読み出し開始ＬＢＡ及び読み出しセクタ数）を含むＡＴＡの読み出しコマンドを、ハードディスクの領域指定情報が表わすハードディスク上の領域に相当する光ディスク（例えばＢＤ）上の領域を含む、連続したセクタからなる光ディスク上の領域を表わす光ディスクの領域指定情報（例えば、ＢＤの読み出し開始ＬＢＡ及び読み出しセクタ数）を含むＡＴＡＰＩの読み出しコマンド（ＲＥＡＤ（１０）コマンド）に変換する。
【０１３８】
そして、本実施形態に係る光学ドライブ装置２０は、ＡＴＡＰＩの読み出しコマンドに基づいて、光学ドライブ部２５が、光ディスクの領域指定情報が表す領域に記録されている情報を光ディスクから読み出す。
【０１３９】
また、本実施形態に係る光学ドライブ装置２０は、図１８に示したように、ＡＴＡ／ＡＴＡＰＩ変換部２４が、光学ドライブ部２５によって光ディスクから読み出された情報から、ＡＴＡの読み出しコマンド及びＡＴＡＰＩの読み出しコマンドに基づいて、ハードディスクの領域指定情報が表わすハードディスク上の領域に相当する光ディスク上の領域に記録されている情報を抽出する。
【０１４０】
なお、本実施形態において、光ディスクの例としてＢＤを用いて説明したが、光ディスクはＢＤに限らず、ＣＤ−ＲＯＭ（ＣＤ−Ｒ、ＣＤ−ＲＷ）やＤＶＤ（ＤＶＤ−Ｒ、ＤＤＶ＋Ｒ、ＤＶＤ−ＲＡＭ）等であってもよい。また、ハードディスク及び光ディスクの領域指定情報として読み出し開始ＬＢＡ及び読み出しセクタ数を用いて説明したが、これに限らず読み出し開始ＬＢＡ及び読み出し終了ＬＢＡであってもよいし、読み出し終了ＬＢＡ及び読み出しセクタ数であってもよい。
【０１４１】
〔実施形態２〕
本発明に係る光学ドライブ装置の別の一実施形態について、図１９に基づいて以下に説明する。なお、実施形態１と同様の部材については、同一の番号を付し、その説明を省略する。
【０１４２】
（光学ドライブ装置３０の構成）
本実施形態に係る光学ドライブ装置３０の構成について、図１９を参照して以下に説明する。図１９は、光学ドライブ装置３０の要部構成を示すブロック図である。光学ドライブ装置３０は、ホストＰＣ１０からマスタデバイス（ハードディスクドライブ）としてアクセスされた場合に入力されるコマンド（ＡＴＡコマンド）をＡＴＡＰＩコマンドに変換し、変換されたＡＴＡＰＩコマンドに基づいてＢＤのＬ１層にアクセスするように動作し、ホストＰＣ１０からスレーブデバイス（光ディスクドライブ）としてアクセスされた場合に入力されるコマンド（ＡＴＡＰＩコマンド、又は、ＡＴＡＰＩデバイスによりサポートされているＡＴＡコマンド）に基づいてＢＤのＬ０層にアクセスするように動作する光学ドライブ装置である。
【０１４３】
光学ドライブ装置３０は、バッファメモリ２１、ＨＯＳＴ・Ｉ／Ｆ処理部２６、システム制御部２３、ＡＴＡ／ＡＴＡＰＩ変換部２４、を備えている。
【０１４４】
以下に、本実施形態に係る光学ドライブ装置３０を構成する各部材について説明するが、バッファメモリ２１、システム制御部２３及びＡＴＡ／ＡＴＡＰＩ変換部２４については実施形態１において詳述したため、ここではその説明を省略する。したがって、本実施形態ではＨＯＳＴ・Ｉ／Ｆ処理部２６及び光学ドライブ部２７についてのみ以下に説明する。
【０１４５】
（ＨＯＳＴ・Ｉ／Ｆ処理部２６）
ＨＯＳＴ・Ｉ／Ｆ処理部２６は、ホストＰＣ１０からマスタデバイスに対するコマンドを受信すると、実施形態１の光学ドライブ装置２０と同様に、システム制御部２３に対してＡＴＡコマンド発行の通知を行う。一方、ＨＯＳＴ・Ｉ／Ｆ処理部２６はホストＰＣ１０からスレーブデバイスに対するコマンドを受信すると、受信したコマンドを光学ドライブ部２７に出力する。
【０１４６】
（光学ドライブ部２７）
光学ドライブ部２７はＡＴＡ／ＡＴＡＰＩ変換部２４から変換されたＡＴＡＰＩコマンドを取得すると、取得したＡＴＡＰＩコマンドに基づいて光学ドライブ部２７に格納されているＢＤのＬ１層にアクセスする。また、光学ドライブ部２７はＨＯＳＴ・Ｉ／Ｆ処理部２６からＡＴＡＰＩコマンドを取得すると、取得したＡＴＡＰＩコマンドに基づいて光学ドライブ部２７に格納されているＢＤのＬ０層にアクセスする。
【０１４７】
（光学ドライブ装置３０の利点）
本実施形態の光学ドライブ装置３０は、ホストＰＣ１０からマスタデバイスに対するコマンドが送信された場合にそのコマンドをＡＴＡＰＩコマンドに変換して光学ドライブ部２７に格納されている光ディスクのＬ１層にアクセスし、ホストＰＣ１０からスレーブデバイスに対するコマンドが送信された場合に、光学ドライブ部２７がそのコマンドに基づいて格納されている光ディスクのＬ０層にアクセスするので、格納されている光ディスクのＬ１層をハードディスクドライブとして、Ｌ０層を光学ドライブとしてホストＰＣ１０に対して見せることができる。従って、光ディスクが格納された本実施形態の光学ドライブ装置３０をホストＰＣ１０に接続することにより、ホストＰＣ１０から見て本実施形態の光学ドライブ装置３０がハードディスクドライブ及び光学ドライブの２ドライブの役割を果たすことができる。
【０１４８】
（まとめ）
以上のように、本実施形態に係る光学ドライブ装置３０は、ＨＯＳＴ・Ｉ／Ｆ処理部２６が、ホストＰＣ１０から入力された読み出しコマンドがマスターデバイス（ハードディスクドライブ）に対するコマンドであるかスレーブデバイス（光ディスクドライブ）に対するコマンドであるかを判定する。
【０１４９】
そして、本実施形態に係る光学ドライブ装置３０は、読み出しコマンドがマスターデバイスに対するコマンドであると判定された場合、光学ドライブ部２７が光ディスクのＬ１層から、ＡＴＡ／ＡＴＡＰＩ変換部２４によって読み出しコマンドから変換されたＡＴＡＰＩの読み出しコマンドに基づいて、ＡＴＡの読み出しコマンドが読み出すハードディスク上の領域に相当する光ディスク上の領域を内包する連続したセクタからなる領域に記録されている情報を読み出す。
【０１５０】
また、本実施形態に係る光学ドライブ装置３０は、読み出しコマンドがスレーブデバイスに対するコマンドであると判定された場合、光学ドライブ部２７が光ディスクのＬ０層から、読み出しコマンドに基づいて、光ディスク上の領域に記録されている情報を読み出す。
【０１５１】
さらに、本実施形態に係る光学ドライブ装置３０は、読み出しコマンドがマスターデバイスに対する読み出しコマンドであると判定された場合、ＡＴＡ／ＡＴＡＰＩ変換部２４が、光学ドライブ部２７によって光ディスクから読み出された情報から、ＡＴＡの読み出しコマンド及びＡＴＡＰＩの読み出しコマンドに基づいて、ＡＴＡの読み出しコマンドが読み出すハードディスク上の領域に相当する光ディスク上の領域に記録されている情報を抽出する。
【０１５２】
〔実施形態３〕
本発明に係る光学ドライブ装置のさらに別の一実施形態について、図２０に基づいて以下に説明する。なお、実施形態１と同様の部材については、同一の番号を付し、その説明を省略する。
【０１５３】
（光学ドライブ装置４０の構成）
本実施形態に係る光学ドライブ装置４０の構成について、図２０を参照して以下に説明する。図２０は、光学ドライブ装置４０の要部構成を示すブロック図である。光学ドライブ装置４０は、ホストＰＣ１０から入力されたＡＴＡコマンドによりアクセスされるデータがハードディスク用領域データ格納メモリ２９に格納されている場合にハードディスク用領域データ格納メモリ２９に格納されているデータを処理し、格納されていない場合にＡＴＡコマンドをＡＴＡＰＩコマンドに変換し、変換されたＡＴＡＰＩコマンドに基づいて光学ドライブ部２５が動作する光学ドライブ装置である。
【０１５４】
光学ドライブ装置４０は、バッファメモリ２１、ＨＯＳＴ・Ｉ／Ｆ処理部２２、ＡＴＡ／ＡＴＡＰＩ変換部２４、光学ドライブ部２５、システム制御部２８、及び、ハードディスク用領域データ格納メモリ２９を備えている。
【０１５５】
以下に、本実施形態に係る光学ドライブ装置４０を構成する各部材について説明するが、バッファメモリ２１、ＨＯＳＴ・Ｉ／Ｆ処理部２２、ＡＴＡ／ＡＴＡＰＩ変換部２４及び光学ドライブ部２５については実施形態１において詳述したため、ここではその説明を省略する。したがって、本実施形態では、システム制御部２８及びハードディスク用領域データ格納メモリ２９についてのみ以下に説明する。
【０１５６】
（ハードディスク用領域データ格納メモリ２９）
ハードディスク用領域データ格納メモリ２９は、光ディスク上のハードディスク用領域の全部または一部をコピーして保持するためのメモリである。このメモリはＤＲＡＭ（揮発性メモリ）であっても、ＦＬＡＳＨメモリ（不揮発性メモリ）であってもよい。
【０１５７】
（システム制御部２８）
システム制御部２８は、ＨＯＳＴ・Ｉ／Ｆ処理部２２により生成される割り込みに応答して、ホストＰＣ１０から発行されたＡＴＡコマンドを解析する。ＡＴＡコマンドを解析した結果、ＡＴＡコマンドが読み込みコマンドである場合に、当該特定領域に相当する光ディスク上の領域に記録されたデータがハードディスク用領域データ格納メモリ２９に存在するか否かを判定する。データが存在し、ＡＴＡコマンドが読み出しコマンドである場合には、ハードディスク用領域データ格納メモリ２９から当該データを読み出す。一方、データが存在しない場合、または、ＣＨＥＣＫ・ＰＯＷＥＲ・ＭＯＤＥコマンドといったハードディスク上の領域にアクセスするＡＴＡコマンドではない場合には、主にＡＴＡ／ＡＴＡＰＩ変換部２４を制御して当該ＡＴＡコマンドを処理する。
【０１５８】
（光学ドライブ装置４０の利点）
本実施形態の光学ドライブ装置４０は、ハードディスク用領域データ格納メモリ２９に光ディスク上のハードディスク用領域のデータを全て格納することができ、ホストＰＣ１０から送信されるＡＴＡコマンドがアクセスするデータがハードディスク用領域データ格納メモリ２９に存在する場合、ハードディスク用領域データ格納メモリ２９内の該データが格納されている領域にアクセスするので、光ディスクが光学ドライブ部２５から取りはずされている状態であっても、ホストＰＣ１０に対してハードディスクドライブとして振舞うことができる。
【０１５９】
（まとめ）
以上のように本実施形態に係る光学ドライブ装置４０は、光ディスクに記録されている情報の少なくとも一部をキャッシュするためのハードディスク用領域データ格納メモリ２９を更に備えている。
【０１６０】
また、本実施形態に係る光学ドライブ装置４０は、システム制御部２８が、ＡＴＡの読出しコマンドが読み出すハードディスク上の領域に相当する光ディスク上の領域に記録されている情報がハードディスク用領域データ格納メモリ２９にキャッシュされている場合、ハードディスク用領域データ格納メモリ２９にキャッシュされている当該情報を外部に出力する。なお、ハードディスク用領域データ格納メモリ２９は、ＤＲＡＭであってもよいし、ＦＬＡＳＨメモリであってもよい。
【０１６１】
（付記事項）
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【産業上の利用可能性】
【０１６２】
本発明の光学ドライブ装置は、格納された光ディスクをホストＰＣに対してハードディスクとして見せることができるので、複数の光ディスクを用意して各光ディスクに各々異なるＯＳをインストールしておくことにより、様々なＯＳ上でテストを行う必要があるようなソフトウェア開発分野に適用できる。
【図面の簡単な説明】
【０１６３】
【図１】本発明の実施形態１に係る光学ドライブ装置２０の要部構成を示すブロック図である。
【図２】本発明の実施形態１に係る光学ドライブ装置２０にホストＰＣ１０からＡＴＡコマンドが発行されるときのホストＰＣ１０及び光学ドライブ装置２０の動作を示すフローチャートである。
【図３】デバイスセレクションプロトコルに従って行うホストＰＣ１０の動作を示すフローチャートである。
【図４】ＤＭＡ・ｃｏｍｍａｎｄプロトコルに従って行うホストＰＣ１０及び本発明の実施形態１に係る光学ドライブ装置２０の動作を示すフローチャートである。
【図５】Ｎｏｎ・ｄａｔａ・ｃｏｍｍａｎｄプロトコルに従って行うホストＰＣ１０及び本発明の実施形態１に係る光学ドライブ装置２０の動作を示すフローチャートである。
【図６】ＨＯＳＴ・Ｉ／Ｆ処理部２２から割り込み要因に応じた通知を受けたときのシステム制御部２３の動作を示すフローチャートである。
【図７】本発明の実施形態１に係る光学ドライブ装置２０の各要部構成間、及び、光学ドライブ装置２０とホストＰＣ１０との間のデバイスセレクションプロトコルに従った動作を示すシーケンス図である。
【図８】本発明の実施形態１に係る光学ドライブ装置２０の各要部構成間、及び、光学ドライブ装置２０とホストＰＣ１０との間のＤＭＡ・ｃｏｍｍａｎｄプロトコルに従った動作を示すシーケンス図である。
【図９】ＢＤドライブから通知されるＡＴＡＰＩコマンドの処理結果がエラーである場合のエラー処理における本発明の実施形態１に係る光学ドライブ装置２０の各要部構成間、及び、光学ドライブ装置２０とホストＰＣ１０との間の動作を示すシーケンス図である。
【図１０】本発明の実施形態１に係る光学ドライブ装置２０の各要部構成間、及び、光学ドライブ装置２０とホストＰＣ１０との間のＮｏｎ−ｄａｔａ・ｃｏｍｍａｎｄプロトコルに従った動作を示すシーケンス図である。
【図１１】ＲＥＡＤ・ＤＭＡコマンド及びＲＥＡＤ・ＤＭＡ・ＥＸＴコマンドの要求を説明する図である。
【図１２】読み出し要求に基づいてＢＤの読み出し開始ＬＢＡ及び読み出しセクタ数の算出方法を説明する図、及び、算出されたＬＢＡとセクタ数とを用いて生成されるＲＥＡＤコマンドの図である。
【図１３】ＲＥＡＤ・ＤＭＡコマンド及びＲＥＡＤ・ＤＭＡ・ＥＸＴコマンドの応答を説明する図である。
【図１４】ＷＲＩＴＥ・ＤＭＡコマンド及びＷＲＩＴＥ・ＤＭＡ・ＥＸＴコマンドの要求を説明する図である。
【図１５】書き込み要求に基づいてＢＤの読み出し開始ＬＢＡ及び読み出しセクタ数の算出方法を説明する図、及び、算出されたＬＢＡとセクタ数とを用いて生成されるＲＥＡＤコマンドの図である。
【図１６】生成されるＷＲＩＴＥコマンド及びＷＲＩＴＥコマンドにより光ディスクにデータが書き込まれることを説明する図である。
【図１７】ＷＲＩＴＥ・ＤＭＡコマンド及びＷＲＩＴＥ・ＤＭＡ・ＥＸＴコマンドの応答を説明する図である。
【図１８】ＡＴＡコマンドでアクセスするデータが含まれている光ディスクのセクタ領域から、データが記録されている領域を特定する方法を説明するための図であり、ＡＴＡコマンドがデータを読み書きするハードディスク上の領域と、ハードディスク上の領域に相当するハードディスク領域を含む光ディスク上の領域とを対比した図である。
【図１９】本発明の実施形態２に係る光学ドライブ装置３０の要部構成を示すブロック図である。
【図２０】本発明の実施形態３に係る光学ドライブ装置４０の要部構成を示すブロック図である。
【図２１】ＳＥＴ・ＦＥＡＴＵＲＥＳコマンドの要求と応答とを説明する図である。
【図２２】本発明の光学ドライブ装置が処理する必要のあるＡＴＡコマンドを記載した図である。
【図２３】全ＡＴＡコマンドの一部を記載した図である。
【図２４】全ＡＴＡコマンドのうち図２３に記載したＡＴＡコマンド以外のＡＴＡコマンドを記載した図である。
【符号の説明】
【０１６４】
１０  ホストＰＣ
２０  光学ドライブ装置
２１  バッファメモリ
２２  ＨＯＳＴ・Ｉ／Ｆ処理部
２３  システム制御部
２４  ＡＴＡ／ＡＴＡＰＩ変換部（抽出手段、変換手段、生成手段）
２５  光学ドライブ部（読出手段、記録手段）
２６  ＨＯＳＴ・Ｉ／Ｆ処理部（判定手段）
２７  光学ドライブ部
２８  システム制御部（出力手段）
２９  ハードディスク用領域データ格納メモリ
３０  光学ドライブ装置
４０  光学ドライブ装置
【図１】
2010044816.tif 000003
【図２】
2010044816.tif 000004
【図３】
2010044816.tif 000005
【図４】
2010044816.tif 000006
【図５】
2010044816.tif 000007
【図６】
2010044816.tif 000008
【図７】
2010044816.tif 000009
【図８】
2010044816.tif 000010
【図９】
2010044816.tif 000011
【図１０】
2010044816.tif 000012
【図１１】
2010044816.tif 000013
【図１２】
2010044816.tif 000014
【図１３】
2010044816.tif 000015
【図１４】
2010044816.tif 000016
【図１５】
2010044816.tif 000017
【図１６】
2010044816.tif 000018
【図１７】
2010044816.tif 000019
【図１８】
2010044816.tif 000020
【図１９】
2010044816.tif 000021
【図２０】
2010044816.tif 000022
【図２１】
2010044816.tif 000023
【図２２】
2010044816.tif 000024
【図２３】
2010044816.tif 000025
【図２４】
2010044816.tif 000026