JP2010044816A - 光学ドライブ装置、及び、光学ドライブ装置の駆動方法 - Google Patents
光学ドライブ装置、及び、光学ドライブ装置の駆動方法 Download PDFInfo
- Publication number
- JP2010044816A JP2010044816A JP2008207038A JP2008207038A JP2010044816A JP 2010044816 A JP2010044816 A JP 2010044816A JP 2008207038 A JP2008207038 A JP 2008207038A JP 2008207038 A JP2008207038 A JP 2008207038A JP 2010044816 A JP2010044816 A JP 2010044816A
- Authority
- JP
- Japan
- Prior art keywords
- area
- command
- optical
- read
- sector
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
【課題】複数のシステムを容易に使い分けることが可能なATAインターフェイスを有する光学ドライブ装置を実現する。
【解決手段】本発明の光学ドライブ装置20は、ハードディスクドライブに対するコマンドであるATAコマンドを光学ドライブに対するコマンドであるATAPIコマンドに変換するATA/ATAPI変換部24とATAPIコマンドに基づいて動作する光学ドライブ部25とを備えているので、光学ドライブ装置20が接続されたホストPC10は、光学ドライブ装置20をハードディスクドライブとして認識する。従って、複数の光ディスクを用意して各光ディスクにそれぞれ異なるOSをインストールしておけば、起動したいOSがインストールされた光ディスクを光学ドライブ装置20に格納してホストPC10を起動することにより、容易に複数のシステムを使い分けることが出来る。
【選択図】図1
【解決手段】本発明の光学ドライブ装置20は、ハードディスクドライブに対するコマンドであるATAコマンドを光学ドライブに対するコマンドであるATAPIコマンドに変換するATA/ATAPI変換部24とATAPIコマンドに基づいて動作する光学ドライブ部25とを備えているので、光学ドライブ装置20が接続されたホストPC10は、光学ドライブ装置20をハードディスクドライブとして認識する。従って、複数の光ディスクを用意して各光ディスクにそれぞれ異なるOSをインストールしておけば、起動したいOSがインストールされた光ディスクを光学ドライブ装置20に格納してホストPC10を起動することにより、容易に複数のシステムを使い分けることが出来る。
【選択図】図1
Description
本発明は、光ディスクから情報を読み出したり、光ディスクに情報を書き込んだりする光学ドライブ装置、及び、そのような光学ドライブ装置の駆動方法に関する。
ハードディスクドライブはパーソナルコンピュータ(PC)に内蔵されている最も一般的なデバイスの1つであり、主にデータの保存と共にシステムの起動を行うことを目的として使用されている。
パーソナルコンピュータにおいてハードディスクドライブから起動することを前提とした複数のシステムを使い分ける場合、ハードディスクドライブを複数のパーティションに区切って各パーティションに各システムを格納し、機器を起動する際に起動するシステムを選択するといったことが考えられる。しかし、ハードディスクドライブから起動することを前提とした複数のシステムを使い分けることは容易ではない。
具体的には、機器に備えられているハードディスクドライブに予め格納されているシステムを使い分けることは容易であるものの、ハードディスクドライブに格納されていないシステムを使用することが容易ではない。ハードディスクドライブに格納されていないシステムを使用するには、ハードディスクドライブに空き領域がある場合、格納されていないシステムのOSを空き領域にシステムをインストールする方法、該ハードディスクドライブに格納されていないシステムが格納されている別の内蔵用ハードディスクドライブと機器に内蔵されているハードディスクドライブとを交換する方法、該格納されていないシステムが格納されている外付けハードディスクドライブを機器に接続して外付けハードディスクドライブから起動する方法などが考えられる。
しかし、空き領域にインストールする方法には、ハードディスクドライブに空き容量がない場合には他の少なくとも1つ以上のシステムを削除しなければならず、空き容量があってもOSのインストールに手間がかかる。また他のハードディスクドライブを利用する方法には、使用するシステムの種類が増えるほどハードディスクドライブを購入するコストがかかり、さらに内蔵ハードディスクドライブの場合には、ハードディスクドライブの交換に手間がかかるという問題がある。
このような問題を鑑みて、複数のシステムを容易に使い分けることができるようにするためにPCに複数の光ディスクを1つ以上のボリュームからなるハードディスクに見せかけるようにすることが特許文献1に記載されている。
また、同様に光学ドライブをハードディスクドライブに見せかけるためのエミュレーションユニットについて特許文献2に記載されている。特許文献3及び特許文献4には、光学ドライブに接続することにより、ソフトウェアの導入なしに光ディスクに対する書き込みをハードディスクに対する書き込みと同様に行うことができる光記録媒体アクセス制御ボード及びそのような光記録媒体アクセス制御ボードのアクセス方式について記載されている。
さらに特許文献5には、ATAPIコマンドをATAコマンドに変換することにより、ATA規格に準拠したハードディスクドライブをPCに対して光学ドライブに見せることについて記載されている。
特開平8−328761(平成8年12月13日公開)
特開平4−111113(平成4年4月13日公開)
特開平2−51726(平成2年2月21日公開)
特開平2−51727(平成2年2月21日公開)
特開2006−244455(平成18年9月14日公開)
しかしながら、特許文献3〜5の構成では、ハードディスクドライブから起動することを前提とした複数のシステムを容易に使い分けることができないという問題を生じる。
具体的には、特許文献3に記載の光記録媒体アクセス制御用ボード、及び、特許文献4に記載の光記録媒体アクセス方式は、接続された光学ドライブ装置がハードディスクドライブとしてPCに認識されるものではないため、ハードディスクドライブから起動することを前提としたOSを光学ドライブ装置から起動することはできない。また、特許文献5に記載のシステムはハードディスクドライブを光学ドライブ装置に見せかけるため、同様にハードディスクドライブから起動することを前提としたOSを光学ドライブ装置から起動することはできない。
また、特許文献2に記載のエミュレーションユニットは、光学ドライブ装置をハードディスクドライブに見せかけることができるものの、光ディスクに記録されたデータをPCとの間で送受信するために必要なバッファとしてハードディスクドライブまたは不揮発性メモリが別途必要であるという問題がある。
さらに、特許文献1に記載の光ディスクライブラリ装置は、ハードディスクドライブから起動することを前提としたOSを起動することができるものの、PCとのインターフェイスがSCSIであり、ATAインターフェイスの接続端子に接続することができない。
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、PCからハードディスクドライブと認識されるATAインターフェイスを有する光学ドライブ装置を実現することにある。このような光学ドライブ装置を実現すると、ATAインターフェイスの接続端子を通じてPCに接続された光学ドライブ装置に、例えば、使用するシステムがインストールされたBDなどの光ディスクを格納してPCを起動することにより、ATAインターフェイスを備えたPCにおいて、ハードディスクドライブから起動することを前提としたOSを含め複数のシステムを容易に使い分けることができる。
本発明に係る光学ドライブ装置は、上記課題を解決するために、外部から入力されたハードディスクドライブに対する第1の読み出しコマンドであって連続したセクタからなるハードディスク上の特定領域を指定する第1の領域指定情報を含む第1の読み出しコマンドを、光ディスクドライブに対する第2の読み出しコマンドであって、上記特定領域に相当する光ディスク上の領域を内包する、連続したセクタからなる光ディスク上の領域を指定する第2の領域指定情報を含む第2の読み出しコマンドに変換する変換手段と、
上記第2の読み出しコマンドに基づいて、光ディスクから上記第2の領域指定情報が指定する領域に記録されている情報を読み出す光ディスクドライブと、
上記光ディスクドライブによって光ディスクから読み出された情報から、上記第1の読み出しコマンド及び上記第2の読み出しコマンドに基づいて、上記特定領域に相当する光ディスク上の領域に記録されている情報を抽出する抽出手段と、を備えていることを特徴としている。
上記第2の読み出しコマンドに基づいて、光ディスクから上記第2の領域指定情報が指定する領域に記録されている情報を読み出す光ディスクドライブと、
上記光ディスクドライブによって光ディスクから読み出された情報から、上記第1の読み出しコマンド及び上記第2の読み出しコマンドに基づいて、上記特定領域に相当する光ディスク上の領域に記録されている情報を抽出する抽出手段と、を備えていることを特徴としている。
上記の構成によれば、光学ドライブ装置は、外部から入力されたハードディスクドライブに対する第1の読み出しコマンドであって連続したセクタからなるハードディスク上の特定領域を指定する第1の領域指定情報を含む第1の読み出しコマンドを、光ディスクドライブに対する第2の読み出しコマンドであって、上記特定領域に相当する光ディスク上の領域を内包する、連続したセクタからなる光ディスク上の領域を指定する第2の領域指定情報を含む第2の読み出しコマンドに変換する。例えば、光学ドライブ装置は、ハードディスクの読み出し開始LBA及び読み出しセクタ数を含むREAD・DMAコマンドを、ハードディスクの読み出し開始LBA及び読み出しセクタ数が表わす領域に相当するBD上の領域を含む、連続したセクタからなるBD上の領域を指定するBDの読み出し開始LBA及び読み出しセクタ数を含むREAD(10)コマンドに変換する。ここで、READ・DMAコマンドはATAコマンドであり、READ(10)コマンドはATAPIコマンドである。
また、光学ドライブ装置は、第2の読み出しコマンドに基づいて、光ディスクから上記第2の領域指定情報が指定する領域に記録されている情報を読み出す。例えば、光学ドライブ装置は、READ(10)コマンドに基づいて、BDの読み出し開始LBA及び読み出しセクタ数が表わすBD上の領域に記録されている情報を読み出す。
また、光学ドライブ装置は、光ディスクドライブによって光ディスクから読み出された情報から、第1の読み出しコマンド及び第2の読み出しコマンドに基づいて、特定領域に相当する光ディスク上の領域に記録されている情報を抽出する。例えば、光学ドライブ装置は、BDドライブによってBDから読み出された情報から、READ・DMAコマンド及びREAD(10)コマンドに基づいて、ハードディスクの読み出し開始LBA及び読み出しセクタ数が表すハードディスク上の領域に相当するBD上の領域に記録されている情報を抽出する。
以上のように光学ドライブ装置は、第1の読み出しコマンドを出力するためのインターフェイスを有するPCからハードディスクドライブと認識される。従って、光学ドライブ装置は、第1の読み出しコマンドを出力するためのインターフェイスを有するPCに接続して使用することにより、ハードディスクドライブから起動することを前提としたOSを含め複数のシステムを容易に使い分けることができるという効果を奏する。
本発明に係る光学ドライブ装置の駆動方法は、上記課題を解決するために、外部から入力されたハードディスクドライブに対する第1の読み出しコマンドであって連続したセクタからなるハードディスク上の特定領域を指定する第1の領域指定情報を含む第1の読み出しコマンドを、光ディスクドライブに対する第2の読み出しコマンドであって、上記特定領域に相当する光ディスク上の領域を内包する、連続したセクタからなる光ディスク上の領域を指定する第2の領域指定情報を含む第2の読み出しコマンドに変換する変換工程と、
上記第2の読み出しコマンドに基づいて、上記光ディスクドライブが光ディスクから上記第2の領域指定情報が指定する領域に記録されている情報を読み出す読出工程と、
上記読出工程において光ディスクから読み出された情報から、上記第1の読み出しコマンド及び上記第2の読み出しコマンドに基づいて、上記特定領域に相当する光ディスク上の領域に記録されている情報を抽出する抽出工程と、を含んでいることを特徴としている。
上記第2の読み出しコマンドに基づいて、上記光ディスクドライブが光ディスクから上記第2の領域指定情報が指定する領域に記録されている情報を読み出す読出工程と、
上記読出工程において光ディスクから読み出された情報から、上記第1の読み出しコマンド及び上記第2の読み出しコマンドに基づいて、上記特定領域に相当する光ディスク上の領域に記録されている情報を抽出する抽出工程と、を含んでいることを特徴としている。
上記の構成によれば、本発明に係る光学ドライブ装置と同様の効果を奏する。
本発明に係る光学ドライブ装置は、外部から入力された読み出しコマンドがハードディスクドライブに対する読み出しコマンドであるか光ディスクドライブに対する読み出しコマンドであるかを判定する判定手段を更に備え、
上記光ディスクドライブは、上記読み出しコマンドが上記判定手段によりハードディスクドライブに対する読み出しコマンドであると判定された場合、該読み出しコマンドを上記第1の読み出しコマンドとして、上記変換手段により得られた上記第2の読み出しコマンドに基づいて、光ディスクの第1の領域から上記第2の領域指定情報が指定する領域に記録されている情報を読み出し、上記読み出しコマンドが上記判定手段により光ディスクドライブに対する読み出しコマンドであると判定された場合、該読み出しコマンドに基づいて、光ディスクの第2の領域に記録されている情報を読み出すものである、ことが望ましい。
上記光ディスクドライブは、上記読み出しコマンドが上記判定手段によりハードディスクドライブに対する読み出しコマンドであると判定された場合、該読み出しコマンドを上記第1の読み出しコマンドとして、上記変換手段により得られた上記第2の読み出しコマンドに基づいて、光ディスクの第1の領域から上記第2の領域指定情報が指定する領域に記録されている情報を読み出し、上記読み出しコマンドが上記判定手段により光ディスクドライブに対する読み出しコマンドであると判定された場合、該読み出しコマンドに基づいて、光ディスクの第2の領域に記録されている情報を読み出すものである、ことが望ましい。
上記の構成によれば、判定手段が、読み出しコマンドがハードディスクドライブに対するコマンドであるのか光ディスクドライブに対するコマンドであるかを判定する。次に、読み出しコマンドがハードディスクドライブに対するコマンドであると判定された場合に、光ディスクドライブが光ディスクの第1の領域から情報を読み出す。あるいは、読み出しコマンドが光ディスクドライブに対するコマンドであると判定された場合に、光ディスクドライブが光ディスクの第2の領域から情報を読み出す。ここで、読み出しコマンドがハードディスクドライブに対するコマンドである場合には、該読み出しコマンドを上記第1の読み出しコマンドとして、上記変換手段により得られた上記第2の読み出しコマンドに基づいて、光ディスクの第1の領域から上記第2の領域指定情報が指定する領域に記録されている情報が光ディスクドライブによって読み出される。そして、抽出手段が光ディスクドライブによって光ディスクから読み出された情報から、読み出しコマンド及び第2の読み出しコマンドに基づいて特定領域に相当する光ディスク上の領域に記録されている情報を抽出する。これにより、光学ドライブ装置に格納された光ディスク上の第1の領域が、第1の読み出しコマンドを処理する記憶装置(ハードディスクドライブ)として、光ディスク上の第2の領域が、第2の読み出しコマンドを処理する記憶装置(光ディスクドライブ)として外部から認識されるというさらなる効果を奏する。
なお、上記光ディスクが、複数の層を備え、上記第1の領域は上記複数の層に含まれる少なくともひとつの層であり、上記第2の領域は上記複数の層のうち上記少なくともひとつの層以外の層であってもよい。例えば、上記光ディスクがL0層とL1層とを備えている場合、第1の領域がL0層、第2の領域がL1層であってもよい。あるいは、例えば、上記光ディスクがL0層とL1層とL2層とを備えている場合、第1の領域がL0層及びL1層であり、第2の領域がL2層であってもよい。
本発明に係る光学ドライブ装置は、光ディスクに記録されている情報の少なくとも一部をキャッシュするキャッシュメモリと、
上記特定領域に相当する光ディスク上の領域に記録されている情報が上記キャッシュメモリにキャッシュされている場合、上記抽出手段によって抽出された当該情報の代わりに、上記キャッシュメモリにキャッシュされている当該情報を外部に出力する出力手段と、を更に備えていることが望ましい。
上記特定領域に相当する光ディスク上の領域に記録されている情報が上記キャッシュメモリにキャッシュされている場合、上記抽出手段によって抽出された当該情報の代わりに、上記キャッシュメモリにキャッシュされている当該情報を外部に出力する出力手段と、を更に備えていることが望ましい。
上記の構成によれば、出力手段が、特定領域に相当する光ディスク上の領域に記録されている情報がキャッシュメモリにキャッシュされている場合、抽出手段によって抽出された情報の代わりに、キャッシュメモリにキャッシュされている情報を外部に出力することにより、光学ドライブ装置が、当該光学ドライブ装置に光ディスクが格納されていなくても外部からハードディスクドライブと認識されるというさらなる効果を奏する。
本発明に係る光学ドライブ装置は、上記変換手段が、上記特定領域に相当する光ディスク上の領域に記録されている情報が上記キャッシュメモリにキャッシュされていない場合に限って、上記第1の読み出しコマンドを上記第2の読み出しコマンドに変換することが望ましい。
上記の構成によれば、上記変換手段が、特定領域に相当する光ディスク上の領域に記録されている情報がキャッシュメモリにキャッシュされている場合に第1の読み出しコマンドを第2の読み出しコマンドに変換しないことにより、光ディスクドライブが第2の読み出しコマンドを処理する必要がないため、光学ドライブ装置の処理を減らすことができるというさらなる効果を奏する。
本発明に係る光学ドライブ装置は、上記第1の読み出しコマンドには、上記特定領域の先頭にあるセクタのセクタ番号HeadSecHDDと、当該領域に属するセクタのセクタ数SecNumHDDとが上記第1の領域指定情報として含まれており、
上記変換手段は、上記特定領域に相当する光ディスク上の領域の先頭にあるセクタのセクタ番号HeadSecODDと、当該領域に属するセクタのセクタ数SecNumODDとを、
HeadSecODD = S +(HeadSecHDD div 4)
SecNumODD=((HeadSecHDDmod4)+3)div4+{(SecNumHDD −(HeadSecHDD mod 4))+3}div 4
(Sは、上記ハードディスク上のセクタ番号0のセクタに相当する領域を含む光ディスク上のセクタのセクタ番号)
に従って算出するとともに、算出したセクタ番号HeadSecODDとセクタ数SecNumODDとを第2の領域指定情報として含む第2の読み出しコマンドに変換することが望ましい。
上記変換手段は、上記特定領域に相当する光ディスク上の領域の先頭にあるセクタのセクタ番号HeadSecODDと、当該領域に属するセクタのセクタ数SecNumODDとを、
HeadSecODD = S +(HeadSecHDD div 4)
SecNumODD=((HeadSecHDDmod4)+3)div4+{(SecNumHDD −(HeadSecHDD mod 4))+3}div 4
(Sは、上記ハードディスク上のセクタ番号0のセクタに相当する領域を含む光ディスク上のセクタのセクタ番号)
に従って算出するとともに、算出したセクタ番号HeadSecODDとセクタ数SecNumODDとを第2の領域指定情報として含む第2の読み出しコマンドに変換することが望ましい。
ここで、演算A div BはAをBで割って得られる商を表わし、演算A mod BはAをBで割って得られる余りを表わす。
本発明に係る光学ドライブ装置は、上記第1の読み出しコマンドには、上記特定領域の先頭にあるセクタのセクタ番号HeadSecHDDと、当該領域に属するセクタのセクタ数SecNumHDDとが上記第1の領域指定情報として含まれており、
上記光ディスクドライブが読み出した情報を格納するためのバッファを更に備え、
上記抽出手段は、上記第2の領域指定情報が指定する領域のうち最小の領域の先頭にあるセクタのセクタアドレスY1と当該最小の領域の最後尾にあるセクタのセクタアドレスY2とを、
Y1=HeadSecHDD mod 4
Y2=(HeadSecHDD+SecNumHDD) mod 4
(Sは、上記ハードディスク上のセクタ番号0のセクタに相当する領域を含む光ディスク上のセクタのセクタ番号)
に従って算出するとともに、上記最小の領域の先頭にあるセクタのうちセクタアドレスがY1より小さい領域と上記最小の領域の最後尾にあるセクタのうちセクタアドレスがY2以上である領域とを上記最小の領域から除いた領域に記録されている情報を抽出することが望ましい。
上記光ディスクドライブが読み出した情報を格納するためのバッファを更に備え、
上記抽出手段は、上記第2の領域指定情報が指定する領域のうち最小の領域の先頭にあるセクタのセクタアドレスY1と当該最小の領域の最後尾にあるセクタのセクタアドレスY2とを、
Y1=HeadSecHDD mod 4
Y2=(HeadSecHDD+SecNumHDD) mod 4
(Sは、上記ハードディスク上のセクタ番号0のセクタに相当する領域を含む光ディスク上のセクタのセクタ番号)
に従って算出するとともに、上記最小の領域の先頭にあるセクタのうちセクタアドレスがY1より小さい領域と上記最小の領域の最後尾にあるセクタのうちセクタアドレスがY2以上である領域とを上記最小の領域から除いた領域に記録されている情報を抽出することが望ましい。
本発明に係る光学ドライブ装置は、上記第1の読み出しコマンドはATAコマンドであり、上記第2の読み出しコマンドはATAPIコマンドであることが望ましい。
本発明に係る光学ドライブ装置は、上記課題を解決するために、ハードディスクドライブに対する第1の書き込みコマンドであって連続したセクタからなるハードディスク上の特定領域を指定する第1の領域指定情報を含む第1の書き込みコマンドを、光ディスクドライブに対する第2の書き込みコマンドであって、上記特定領域に相当する光ディスク上の領域を内包する、連続したセクタからなる光ディスク上の領域を指定する第2の領域指定情報を含む第2の書き込みコマンドに変換する変換手段と、
光ディスクドライブに対する上記第2の領域指定情報を含む読み出しコマンドを生成する生成手段と、
上記読み出しコマンドに基づいて、光ディスクから上記第2の領域指定情報が指定する領域に記録されている情報を読み出す読出手段と、
上記光ディスクドライブによって光ディスクから読み出された情報から、上記第1の書き込みコマンド及び上記第2の書き込みコマンドに基づいて、上記特定領域に相当する光ディスク上の領域に記録されている情報を抽出する抽出手段と、
上記光ディスクドライブによって光ディスクから読み出された情報のうち、上記抽出手段により抽出された情報を上記第1の書き込みコマンドに従って書き込む情報により更新して得られる情報を、上記光ディスク上の上記第2の領域指定情報が指定する領域に記録する記録手段と、を備えていることを特徴としている。
光ディスクドライブに対する上記第2の領域指定情報を含む読み出しコマンドを生成する生成手段と、
上記読み出しコマンドに基づいて、光ディスクから上記第2の領域指定情報が指定する領域に記録されている情報を読み出す読出手段と、
上記光ディスクドライブによって光ディスクから読み出された情報から、上記第1の書き込みコマンド及び上記第2の書き込みコマンドに基づいて、上記特定領域に相当する光ディスク上の領域に記録されている情報を抽出する抽出手段と、
上記光ディスクドライブによって光ディスクから読み出された情報のうち、上記抽出手段により抽出された情報を上記第1の書き込みコマンドに従って書き込む情報により更新して得られる情報を、上記光ディスク上の上記第2の領域指定情報が指定する領域に記録する記録手段と、を備えていることを特徴としている。
上記の構成によれば、光学ドライブ装置は、ハードディスクドライブに対する第1の書き込みコマンドであって連続したセクタからなるハードディスク上の特定領域を指定する第1の領域指定情報を含む第1の書き込みコマンドを、光ディスクドライブに対する第2の書き込みコマンドであって、特定領域に相当する光ディスク上の領域を内包する、連続したセクタからなる光ディスク上の領域を指定する第2の領域指定情報を含む第2の書き込みコマンドに変換する。例えば、光学ドライブ装置は、ハードディスクの書き込み開始LBA及び書き込みセクタ数を含むWRITE・DMAコマンドを、ハードディスクの書き込み開始LBA及び書き込みセクタ数が表わす領域に相当するBD上の領域を含む、連続したセクタからなるBD上の領域を指定するBDの書き込み開始LBA及び書き込みセクタ数を含むWRITE(10)コマンドに変換する。ここで、WRITE・DMAコマンドはATAコマンドであり、WRITE(10)コマンドはATAPIコマンドである。
また、光学ドライブ装置は、光ディスクドライブに対する第2の領域指定情報を含む読み出しコマンドを生成する。例えば、光学ドライブ装置は、ATAPIコマンドであるBDの読み出し開始LBA及び読み出しセクタ数を含むREAD(10)コマンドを生成する。
また、光学ドライブ装置は、読み出しコマンドに基づいて光ディスクから第2の領域指定情報が指定する領域に記録されている情報を読み出す。例えば、光学ドライブ装置は、READ(10)コマンドに基づいてBDの読み出し開始LBA及び読み出しセクタ数が表わす領域に記録されている情報をBDから読み出す。
また、光学ドライブ装置は、光ディスクドライブによって光ディスクから読み出された情報から、第1の書き込みコマンド及び第2の書き込みコマンドに基づいて、特定領域に相当する光ディスク上の領域に記録されている情報を抽出する。例えば、光学ドライブ装置は、BDドライブによってBDから読み出された情報から、WRITE・DMAコマンド及びWRITE(10)コマンドに基づいて、ハードディスクの書き込み開始LBA及び書き込みセクタ数が表わす領域に相当するBD上の領域に記録されている情報を抽出する。
また、光学ドライブ装置は、光ディスクドライブによって光ディスクから読み出された情報のうち、抽出された情報を第1の書き込みコマンドに従って書き込む情報により更新して得られる情報を、光ディスク上の第2の領域指定情報が指定する領域に記録する。例えば、光学ドライブ装置は、BDドライブによってBDから読み出された情報のうち、抽出された情報をWRITE・DMAコマンドに従って書き込む情報により上書きして得られる情報を、BDの読み出し開始LBA及び読み出しセクタ数が表すBD上の領域に記録する。
以上のように光学ドライブ装置は、第1の書き込みコマンドを出力するためのインターフェイスを有するPCからハードディスクドライブと認識される。従って、光学ドライブ装置は、第1の書き込みコマンドを出力するためのインターフェイスを有するPCに接続して使用することにより、ハードディスクドライブから起動することを前提としたOSを含め複数のシステムを容易に使い分けることができるという効果を奏する。
本発明に係る光学ドライブ装置の駆動方法は、上記課題を解決するために、ハードディスクドライブに対する第1の書き込みコマンドであって連続したセクタからなるハードディスク上の特定領域を指定する第1の領域指定情報を含む第1の書き込みコマンドを、光ディスクドライブに対する第2の書き込みコマンドであって、上記特定領域に相当する光ディスク上の領域を内包する、連続したセクタからなる光ディスク上の領域を指定する第2の領域指定情報を含む第2の書き込みコマンドに変換する変換工程と、
光ディスクドライブに対する上記第2の領域指定情報を含む読み出しコマンドを生成する生成工程と、
上記読み出しコマンドに基づいて、光ディスクから上記第2の領域指定情報が指定する領域に記録されている情報を読み出す読出工程と、
上記光ディスクドライブによって光ディスクから読み出された情報から、上記第1の書き込みコマンド及び上記第2の書き込みコマンドに基づいて、上記特定領域に相当する光ディスク上の領域に記録されている情報を抽出する抽出工程と、
上記光ディスクドライブによって光ディスクから読み出された情報のうち、上記抽出工程において抽出された情報を上記第1の書き込みコマンドに従って書き込む情報により更新して得られる情報を、上記光ディスク上の上記第2の領域指定情報が指定する領域に記録する記録工程と、を含んでいることを特徴としている。
光ディスクドライブに対する上記第2の領域指定情報を含む読み出しコマンドを生成する生成工程と、
上記読み出しコマンドに基づいて、光ディスクから上記第2の領域指定情報が指定する領域に記録されている情報を読み出す読出工程と、
上記光ディスクドライブによって光ディスクから読み出された情報から、上記第1の書き込みコマンド及び上記第2の書き込みコマンドに基づいて、上記特定領域に相当する光ディスク上の領域に記録されている情報を抽出する抽出工程と、
上記光ディスクドライブによって光ディスクから読み出された情報のうち、上記抽出工程において抽出された情報を上記第1の書き込みコマンドに従って書き込む情報により更新して得られる情報を、上記光ディスク上の上記第2の領域指定情報が指定する領域に記録する記録工程と、を含んでいることを特徴としている。
上記の構成によれば、本発明に係る光学ドライブ装置と同様の効果を奏する。
本発明に係る光学ドライブ装置は、上記第1の書き込みコマンドには、上記特定領域の先頭にあるセクタのセクタ番号HeadSecHDDと、当該領域に属するセクタのセクタ数SecNumHDDとが上記第1の領域指定情報として含まれており、
上記変換手段は、上記特定領域に相当する光ディスク上の領域の先頭にあるセクタのセクタ番号HeadSecODDと、当該領域に属するセクタのセクタ数SecNumODDとを、
HeadSecODD = S +(HeadSecHDD div 4)
SecNumODD=((HeadSecHDDmod4)+3)div4+{(SecNumHDD −(HeadSecHDD mod 4))+3}div 4
(Sは、上記ハードディスク上のセクタ番号0のセクタに相当する領域を含む光ディスク上のセクタのセクタ番号)
に従って算出するとともに、算出したセクタ番号HeadSecODDとセクタ数SecNumODDとを第2の領域指定情報として含む第2の書き込みコマンドに変換することが望ましい。
上記変換手段は、上記特定領域に相当する光ディスク上の領域の先頭にあるセクタのセクタ番号HeadSecODDと、当該領域に属するセクタのセクタ数SecNumODDとを、
HeadSecODD = S +(HeadSecHDD div 4)
SecNumODD=((HeadSecHDDmod4)+3)div4+{(SecNumHDD −(HeadSecHDD mod 4))+3}div 4
(Sは、上記ハードディスク上のセクタ番号0のセクタに相当する領域を含む光ディスク上のセクタのセクタ番号)
に従って算出するとともに、算出したセクタ番号HeadSecODDとセクタ数SecNumODDとを第2の領域指定情報として含む第2の書き込みコマンドに変換することが望ましい。
本発明に係る光学ドライブ装置は、上記第1の書き込みコマンドには、上記特定領域の先頭にあるセクタのセクタ番号HeadSecHDDと、当該領域に属するセクタのセクタ数SecNumHDDとが上記第1の領域指定情報として含まれており、
上記光ディスクドライブが読み出した情報を格納するためのバッファを更に備え、
上記抽出手段は、上記第2の領域指定情報が指定する領域のうち最小の領域の先頭にあるセクタのセクタアドレスY1と当該最小の領域の最後尾にあるセクタのセクタアドレスY2とを、
Y1=HeadSecHDD mod 4
Y2=(HeadSecHDD+SecNumHDD)mod 4
(Sは、上記ハードディスク上のセクタ番号0のセクタに相当する領域を含む光ディスク上のセクタのセクタ番号)
に従って算出するとともに、上記最小の領域の先頭にあるセクタのうちセクタアドレスがY1より小さい領域と上記最小の領域の最後尾にあるセクタのうちセクタアドレスがY2以上である領域とを上記最小の領域から除いた領域に記録されている情報を抽出することが望ましい。
上記光ディスクドライブが読み出した情報を格納するためのバッファを更に備え、
上記抽出手段は、上記第2の領域指定情報が指定する領域のうち最小の領域の先頭にあるセクタのセクタアドレスY1と当該最小の領域の最後尾にあるセクタのセクタアドレスY2とを、
Y1=HeadSecHDD mod 4
Y2=(HeadSecHDD+SecNumHDD)mod 4
(Sは、上記ハードディスク上のセクタ番号0のセクタに相当する領域を含む光ディスク上のセクタのセクタ番号)
に従って算出するとともに、上記最小の領域の先頭にあるセクタのうちセクタアドレスがY1より小さい領域と上記最小の領域の最後尾にあるセクタのうちセクタアドレスがY2以上である領域とを上記最小の領域から除いた領域に記録されている情報を抽出することが望ましい。
本発明に係る光学ドライブ装置は、上記第1の書き込みコマンドはATAコマンドであり、上記第2の書き込みコマンドはATAPIコマンドであることが望ましい。
本発明に係る光学ドライブ装置は、以上のように、外部から入力されたハードディスクドライブに対する第1の読み出しコマンドであって連続したセクタからなるハードディスク上の特定領域を指定する第1の領域指定情報を含む第1の読み出しコマンドを、光ディスクドライブに対する第2の読み出しコマンドであって、上記特定領域に相当する光ディスク上の領域を内包する、連続したセクタからなる光ディスク上の領域を指定する第2の領域指定情報を含む第2の読み出しコマンドに変換する。次に、光ディスクドライブが第2の読み出しコマンドに基づいて、光ディスクから第2の領域指定情報が指定する領域に記録されている情報を読み出す。その後、光ディスクドライブによって光ディスクから読み出された情報から、第1の読み出しコマンド及び第2の読み出しコマンドに基づいて特定領域に相当する光ディスク上の領域に記録されている情報を抽出する。
これにより、本発明に係る光学ドライブ装置は、第1の読み出しコマンドを出力するためのインターフェイスを有するPCからハードディスクドライブと認識される。従って、第1の読み出しコマンドを出力するためのインターフェイスを有するPCに接続して使用することにより、ハードディスクドライブから起動することを前提としたOSを含め複数のシステムを容易に使い分けることができるという効果を奏する。
〔実施形態1〕
本発明に係る光学ドライブ装置の一実施形態について、図1〜図16に基づいて説明すると以下の通りである。
本発明に係る光学ドライブ装置の一実施形態について、図1〜図16に基づいて説明すると以下の通りである。
(光学ドライブ装置20の構成)
本実施形態に係る光学ドライブ装置20の構成について、図1を参照して以下に説明する。
本実施形態に係る光学ドライブ装置20の構成について、図1を参照して以下に説明する。
図1は、光学ドライブ装置20の要部構成を示すブロック図である。光学ドライブ装置20は、ホストPC10から入力されたATAコマンドを対応するATAPIコマンドに変換し、変換されたATAPIコマンドに基づいて動作する光学ドライブ装置20である。
光学ドライブ装置20は、バッファメモリ21、HOST・I/F処理部22、システム制御部23、ATA/ATAPI変換部24、及び、光学ドライブ部25を備えている。各部材の機能について、以下に説明する。
(バッファメモリ21)
バッファメモリ21は、データの読み出しを行うATAコマンドであるREAD・DMAコマンド等、及び、データの書き込みを行うATAコマンドであるWRITE・DMAコマンド等を通じて、ホストPC10との間で送受信されるデータを一時的に保存する。
バッファメモリ21は、データの読み出しを行うATAコマンドであるREAD・DMAコマンド等、及び、データの書き込みを行うATAコマンドであるWRITE・DMAコマンド等を通じて、ホストPC10との間で送受信されるデータを一時的に保存する。
(HOST・I/F処理部22)
HOST・I/F処理部22は、ホストPC10から取得したATAコマンドに応じて値が設定されるレジスタ、PIO転送モードでホストPC10と光学ドライブ装置20との間で送受信されるデータが格納されるレジスタ、光学ドライブ装置20の現在の状態を示すレジスタ、ATAコマンドを処理した結果エラーが発生した場合にエラー値が格納されるレジスタ等のレジスタ群の値を設定する。
HOST・I/F処理部22は、ホストPC10から取得したATAコマンドに応じて値が設定されるレジスタ、PIO転送モードでホストPC10と光学ドライブ装置20との間で送受信されるデータが格納されるレジスタ、光学ドライブ装置20の現在の状態を示すレジスタ、ATAコマンドを処理した結果エラーが発生した場合にエラー値が格納されるレジスタ等のレジスタ群の値を設定する。
ATAコマンドに応じて設定されるレジスタとしては、ATAコマンドの種類を示すCommandレジスタ、転送モードの設定や書き込みキャッシュの有効化など様々な機能の設定を行うSET・FEATUREコマンドが設定する機能の種類を示すサブコマンドコードが格納されるFeatureレジスタ、データの読み出しや書き込みを行うディスク上のセクタ数を示すSector・Countレジスタ、データの読み出しや書き込みを行うディスク上の開始セクタの値を構成するビットの一部を示すSector・Numberレジスタ、Cylinder・Lowレジスタ、Cylinder・Highレジスタ、及びDevice・Headレジスタ等が挙げられる。また、PIO転送モードでホストPC10と光学ドライブ装置20との間で送受信されるデータが格納されるレジスタとしてDataレジスタが挙げられる。なお、DMA転送モードでホストPC10と光学ドライブ装置20との間で送受信されるデータはDataレジスタに格納されず、データポートを通じて送受信される。ATAコマンドを処理した結果エラーが発生した場合にエラー値が格納されるレジスタとしてはErrorレジスタが挙げられる。さらに、光学ドライブ装置20の現在の状態を示すレジスタとして、Statusレジスタ、Alternate・Statusレジスタ等が挙げられる。
このように、HOST・I/F処理部22は、ホストPC10と光学ドライブ装置20の内部との間のインターフェイスとなる部分であり、ホストPC10に対してはATA/ATAPI規格により規定されるレジスタ群として機能し、システム制御部23からの制御に従って該レジスタ群を設定することにより、ホストPC10に応答を返す。
また、HOST・I/F処理部22は、ホストPC10からのレジスタに対するアクセスに応答して、システム制御部23に対して割り込みを生成した後、各種通知を出力する。各種通知には、光学ドライブ装置20をリセットするための通知、ATAコマンドの発行を知らせるための通知、光学ドライブ装置20の状態を確認するように要求するための通知、データ転送の完了を知らせるための通知がある。
(システム制御部23)
システム制御部23は、HOST・I/F処理部22により生成される割り込みに応答してホストPC10から発行されたATAコマンドを解析し、主にATA/ATAPI変換部24を制御して、該ATAコマンドを処理する。なお、ATA/ATAPI変換部24による制御の詳細については、図7〜図10を参照して後述する。
システム制御部23は、HOST・I/F処理部22により生成される割り込みに応答してホストPC10から発行されたATAコマンドを解析し、主にATA/ATAPI変換部24を制御して、該ATAコマンドを処理する。なお、ATA/ATAPI変換部24による制御の詳細については、図7〜図10を参照して後述する。
(ATA/ATAPI変換部24)
ATA/ATAPI変換部24は、システム制御部23から出力されたATAコマンドを必要に応じて対応するATAPIコマンドに変換し、光学ドライブ部25に出力する。
ATA/ATAPI変換部24は、システム制御部23から出力されたATAコマンドを必要に応じて対応するATAPIコマンドに変換し、光学ドライブ部25に出力する。
(光学ドライブ部25)
光学ドライブ部25は、ハードディスクに対応するデータ領域を記録した光ディスクに対しデータの読み書きを行う。
光学ドライブ部25は、ハードディスクに対応するデータ領域を記録した光ディスクに対しデータの読み書きを行う。
(光学ドライブ装置20の動作)
光学ドライブ装置20の動作を説明する前に、ホストPC10が光学ドライブ装置20とホストPC10との間のバス及び光学ドライブ装置20がアイドル状態であるか否かの確認要求をしてからATAコマンドを送信し、光学ドライブ装置20が受信したATAコマンドをATAPIコマンドに変換してATAPIコマンドに基づいて光学ドライブ部25を駆動し、ホストPC10がATAコマンドの処理結果を取得するまでの一連のホストPC10及び光学ドライブ装置20の動作について図2を用いて簡単に説明する。
光学ドライブ装置20の動作を説明する前に、ホストPC10が光学ドライブ装置20とホストPC10との間のバス及び光学ドライブ装置20がアイドル状態であるか否かの確認要求をしてからATAコマンドを送信し、光学ドライブ装置20が受信したATAコマンドをATAPIコマンドに変換してATAPIコマンドに基づいて光学ドライブ部25を駆動し、ホストPC10がATAコマンドの処理結果を取得するまでの一連のホストPC10及び光学ドライブ装置20の動作について図2を用いて簡単に説明する。
図2は、上記動作を示すフローチャートであり、デバイスセレクションプロトコルに従った処理の実行後に、ATAコマンドの種別に応じてNon・data・commandプロトコル、PIO・data・in・commandプロトコル、PIO・data・out・commandプロトコル、または、DMA・commandプロトコルのうちいずれかのプロトコルに従った処理が実行されることを示している。
デバイスセレクションプロトコルは、ホストPC10と光学ドライブ装置20との間のバスがアイドル状態であること、及び、光学ドライブ装置20がアイドル状態であることをホストPC10が確認するためのプロトコルである。また、Non・data・commandプロトコルは、ホストPC10と光学ドライブ装置20との間でデータの送受信を行わないようなATAコマンドを処理するためのプロトコルである。PIO・data・in・commandプロトコルはホストPC10が光学ドライブ装置20からPIOを用いてデータを受信するために用いるプロトコルであり、PIO・data・out・commandプロトコルはホストPC10が光学ドライブ装置20にPIO転送モードでデータを送信するためのプロトコルである。さらに、DMA・commandプロトコルは、シングルDMA転送、マルチワードDMA転送またはUltra・DMA転送を用いてホストPC10と光学ドライブ装置20との間でデータの送受信を行うATAコマンドを処理するためのプロトコルである。
次に、光学ドライブ装置20が、ホストPC10からアイドル状態であるか否かの確認要求を受信してから、ATAコマンドを受信し、ATAコマンドをATAPIコマンドに変換し、ATAPIコマンドに基づいて光学ドライブ部25を駆動し、ATAコマンドの処理結果をホストPC10に通知するまでの一連の光学ドライブ装置20の動作について、図2、及び、図7〜図10を用いて詳細に説明する。
図2において、光学ドライブ装置20は、S1におけるデバイスセレクションプロトコルに従って処理を行った後、ATAコマンドの種類に応じて、S4のNon・data・commandプロトコルに従った処理、S5のPIO・data・in・commandプロトコルに従った処理、S6のPIO・data・out・commandプロトコルに従った処理、S7のDMA・commandプロトコルに従った処理のいずれかの処理を行う。各プロトコルの詳細な動作について以下に説明する。
まず、光学ドライブ装置20がS1のデバイスセレクションプロトコルの処理において行う動作の詳細について図7を用いて説明する。図7は、デバイスセレクションプロトコルに従って、ホストPC10、並びに、光学ドライブ装置20を構成するHOST・I/F処理部22、システム制御部23、ATA/ATAPI変換部24、及び、光学ドライブ部25の一例であるBDドライブの間で行われる処理の流れを示すシーケンス図である。なお、ここでは光学ドライブ部25がBDドライブであることを前提に説明するが、光学ドライブ部25は、DVD−RWなど他の書き込み可能な光ディスクに対応した光学ドライブであってもよい。
S101において、HOST・I/F処理部22は、ホストPC10からStatusレジスタまたはAlternate・Statusレジスタを読み込まれたことを検知し、S103に進む。S103においてHOST・I/F処理部22は、割り込みを発生して割り込み要因の確認を行い、S104に進む。S104においてHOST・I/F処理部22は、システム制御部23に対して、S103において確認した割り込み要因に基づいて光学ドライブ装置20の状態を確認するように要求する通知を行う。S104における通知を受けると、S105においてシステム制御部23は、自身の状態確認を行うと共に、ATA/ATAPI変換部24に対してATA/ATAPI変換部24及びBDドライブの状態確認の要求を行う。ATA/ATAPI変換部24は、S105における状態確認を要求する通知を受けると、S106において、自身の状態確認を行うと共に、BDドライブに対してBDドライブの状態確認の要求を行う。S106における状態確認を要求する通知を受けると、S107においてBDドライブは、自身の状態を確認し、ステータス情報としてATA/ATAPI変換部24に返却する。S108においてATA/ATAPI変換部24は、S107におけるステータス情報の返却を受けると、S106において確認した自身の状態に関する情報を、返却を受けたステータス情報に追加して得られるステータス情報をシステム制御部23に返却し、S109に進む。S109においてシステム制御部23は、取得したステータス情報とS105において確認した自身の状態に関する情報とに基づいてコマンドの実行が可能か否かを判定し、可能でない場合(S109においてNO)、S105に戻る。
コマンドの実行が可能である場合(S109においてYES)、S110に進む。S110において、システム制御部23は、レジスタのBSYビットに0を格納する。なお、ホストPC10はこのBSYビットの値が0である場合に光学ドライブ装置20がアイドル状態であり、BSYビットの値が1である場合に光学ドライブ装置20がビジー状態であると判断する。以上がデバイスセレクションプロトコルに従って行われる光学ドライブ装置20の動作である。
次にATAコマンドがNon・data・commandである場合において光学ドライブ装置20が図2のS4のNon・data・commandプロトコルに従った処理を行う動作、及び、ATAコマンドがDMA・commandである場合において光学ドライブ装置20が図2のS7のDMA・commandプロトコル従った処理を行う動作について、それぞれ図10及び図8を用いて説明する。なお、ATAコマンドがPIO・data・in・commandである場合において光学ドライブ装置20が図2のS5のPIO・data・in・commandプロトコルに従った処理を行う動作、及び、ATAコマンドがPIO・data・out・commandである場合において光学ドライブ装置20が図2のS6のPIO・data・out・commandプロトコルに従った処理を行う動作については省略する。
まず、ATAコマンドがNon・data・commandである場合において光学ドライブ装置20が図2のS4のNon・data・commandプロトコルの処理を行う動作について図10を用いて説明する。図10は、Non・data・commandプロトコルを処理する場合における、ホストPC10、並びに、光学ドライブ装置20を構成するHOST・I/F処理部22、システム制御部23、ATA/ATAPI変換部24、及び、光学ドライブ部25の一例であるBDドライブの間で行われる処理の流れを示すシーケンス図である。
S182において、HOST・I/F処理部22は、ホストPC10からCommandレジスタにコマンドが設定されたことを検知し、S184に進む。S184においてHOST・I/F処理部22は、割り込み通知及び割り込み要因の確認を行い、S185に進む。S185においてHOST・I/F処理部22は、Feature、Sector Count、Sector・Number、Cylinder・High、Cylinder・Low、Device・Headの各レジスタの値を取得し、S186に進む。S186においてHOST・I/F処理部22は、S185において取得した各レジスタの値に基づいてATAコマンドを生成し、システム制御部23に通知する。システム制御部23は、S186において通知されたATAコマンドを取得すると、S187において該ATAコマンドを取得したことを通知するためのコマンド受付情報をHOST・I/F処理部22に返却し、S189に進む。
一方、HOST・I/F処理部22は、S187のコマンド受付情報を取得すると、S188において、レジスタのBSYビットに1を格納する。
S189において、システム制御部23は取得したATAコマンドをATA/ATAPI変換部24に出力し、S190に進む。
S190においてATA/ATAPI変換部24は、取得したS189のATAコマンドをATAPIコマンドに変換し、BDドライブにATAPIコマンドを出力して、S191に進む。S191においてBDドライブは、取得したS190のATAPIコマンドに基づいた動作を行い、ATAPIコマンドの処理結果をATA/ATAPI変換部24に返却して、S192に進む。S192においてATA/ATAPI変換部24は、S191において返却された処理結果がエラーであるか否かを判定し、エラーである場合(S192においてYES)、S200のエラー処理へ進む。エラー処理については後述する。
判定結果がエラーでない場合(S192においてNO)、S193に進む。S193においてATA/ATAPI変換部24は、ATAコマンド処理が完了したことをシステム制御部23に通知する。S194においてシステム制御部23は、S193におけるATAコマンド処理完了の通知を取得すると、HOST・I/F処理部22に対しATAコマンドの完了通知を行う。S194においてATAコマンドの完了通知がされると、S195においてHOST・I/F処理部22は、レジスタのBSYビットに0を格納し、S196に進む。S196においてHOST・I/F処理部22は、Device・ControlレジスタのnIENビットの値が0であるか否かを判定する。nIENビットの値が0でない場合(S196においてNO)、S198に進む。nIENビットの値が0である場合(S196においてYES)、S197に進む。S197においてHOST・I/F処理部22は、ホストPC10に対してINTRQアサートを通知し、S198に進む。S198においてHOST・I/F処理部22は、Statusレジスタの読み込みを検知し、S199に進む。S199においてHOST・I/F処理部22は、INTRQのネゲートを行う。以上がNon・data・commandプロトコルに従って行われる光学ドライブ装置20の動作である。
次に、ATAコマンドがリード系のDMA・commandである場合において光学ドライブ装置20が図2のS8のDMA・commandプロトコルの処理を行う動作について図8を用いて説明する。図8は、DMA・commandプロトコルに従ってリード系のATAコマンドを処理する場合における、ホストPC10、並びに、光学ドライブ装置20を構成するHOST・I/F処理部22、システム制御部23、ATA/ATAPI変換部24、及び、光学ドライブ部25の一例であるBDドライブの間で行われる処理の流れを示すシーケンス図である。
S122において、HOST・I/F処理部22は、ホストPC10からCommandレジスタにコマンドが設定されたことを検知し、S124に進む。S124においてHOST・I/F処理部22は、割り込み通知及び割り込み要因の確認を行い、S125に進む。S125においてHOST・I/F処理部22は、Feature、Sector・Count、Sector・Number、Cylinder・High、Cylinder・Low、Device・Headの各レジスタの値を取得し、S126に進む。S126においてHOST・I/F処理部22は、S125において取得した各レジスタの値に基づいてATAコマンドを生成してシステム制御部23に通知し、S127に進む。S127においてシステム制御部23は、S126のATAコマンドを取得したことを通知するためのコマンド受付情報をHOST・I/F処理部22に返却し、S129に進む。
一方、HOST・I/F処理部22は、S127のコマンド受付を取得すると、S128において、レジスタのBSYビットに1を格納する。
S129においてシステム制御部23は、ATAコマンドをATA/ATAPI変換部24に通知し、S130に進む。S130においてATA/ATAPI変換部24は、S129のATAコマンドをATAPIコマンドに変換してBDドライブに出力し、S131に進む。S131においてBDドライブは、取得したS130のATAPIコマンドに基づいた動作を行い、ATAPIコマンドの処理結果をATA/ATAPI変換部24に返却して、S132に進む。S132においてATA/ATAPI変換部24は、S131において返却された処理結果がエラーであるか否かを判定し、エラーである場合(S132においてYES)、S148のエラー処理へ進む。エラー処理については後述する。
判定結果がエラーでない場合(S132においてNO)、S133に進む。S133においてATA/ATAPI変換部24は、ATAコマンド処理が完了したことをシステム制御部23に通知し、S134に進む。S134においてシステム制御部23は、S133におけるATAコマンド処理完了の通知を取得すると、HOST・I/F処理部22に対しDMA転送設定を行い、S135に進む。S135においてHOST・I/F処理部22は、レジスタのBSYビットに0を格納すると共に該レジスタのDRQビットに1を格納して、S136に進む。S136においてHOST・I/F処理部22は、ホストPC10に対してDMARQアサートを通知し、S138に進む。S138においてHOST・I/F処理部22は、ホストPC10からDMACKアサートの通知を受けた後、ホストPC10との間でデータの送受信を行いS139に進む。
ここで、リード系のコマンドを処理する場合におけるホストPC10と光学ドライブ装置20との間のデータの送受信について詳しく説明する。
すなわち、光学ドライブ装置20の内部においてホストPC10に送信するデータに対して行われる処理について説明する。ATA/ATAPI変換部24は、光学ドライブ部25に格納された光ディスクからホストPC10に送信するデータが格納されたセクタ領域のデータを読み込み、バッファメモリ21に格納する。次にATA/ATAPI変換部24は、バッファメモリ21に格納されたデータの該当する領域のデータを読み込み、システム制御部23に出力する。システム制御部23は、入力されたデータをHOST・I/F処理部22に出力する。HOST・I/F処理部22は、ホストPC10にデータを送信する。受信するデータが格納された光ディスクのセクタ領域、及び、該当する領域の特定方法については後述することにする。
なお、ライト系のコマンドを処理する場合におけるホストPC10と光学ドライブ装置20との間のデータの送受信については、以下のようになる。
すなわち、ホストPC10からデータを受信するとHOST・I/F処理部22は、システム制御部23にデータを出力する。システム制御部23は、入力されたデータをATA/ATAPI変換部24に出力する。ATA/ATAPI変換部24は、光学ドライブ部25に格納された光ディスクにおける入力されたデータが格納されるセクタ領域のデータを読み込み、バッファメモリ21に格納する。次にATA/ATAPI変換部24は、バッファメモリ21に格納されたデータの該当する領域にシステム制御部23から入力されたデータを上書きし、バッファメモリ21のデータを光学ドライブ部25に出力する。ここで、入力されたデータが格納される光ディスクのセクタ領域、及び、該当する領域の特定方法についても後述することにする。
S139においてHOST・I/F処理部22は、データ転送が完了したか否かを判定する。データ転送が完了していない場合(S139においてNO)、S136に戻る。データ転送が完了した場合(S139においてYES)、S140に進む。S140においてHOST・I/F処理部22は、割り込み通知及び割り込み要因の確認を行い、S141に進む。S141においてHOST・I/F処理部22は、システム制御部23にデータの転送が完了したことを示す通知を行い、S142に進む。S142においてシステム制御部23は、S141の通知を取得したことを通知するための完了確認をHOST・I/F処理部22に返却し、S143に進む。S143においてHOST・I/F処理部22は、レジスタのBSYビットに0を格納すると共に該レジスタのDRQビットに0を格納して、S144に進む。S144においてHOST・I/F処理部22は、Device・ControlレジスタのnIENビットの値が0であるか否かを判定する。nIENビットの値が0でない場合(S144においてNO)、S146に進む。nIENビットの値が0である場合(S144においてYES)、S145に進む。S145においてHOST・I/F処理部22は、ホストPC10に対してINTRQアサートを通知することによりATAコマンドの処理が終了したことを知らせ、S146に進む。S146においてHOST・I/F処理部22は、ホストPC10からStatusレジスタが読み込まれたことを検知し、S147に進む。S147においてHOST・I/F処理部22は、INTRQのネゲートを行う。以上がDMA・commandプロトコルに従って行われる光学ドライブ装置20の動作である。
最後に、図8のエラー処理S148、及び、図10のエラー処理S200の詳細について図9を用いて説明する。図9は、エラー処理を行う際のホストPC10、並びに、光学ドライブ装置20を構成するHOST・I/F処理部22、システム制御部23、ATA/ATAPI変換部24、及び、光学ドライブ部25の一例であるBDドライブの間で行われる処理の流れを示すシーケンス図である。
S161においてATA/ATAPI変換部24は、システム制御部23に対しエラー通知を行う。システム制御部23は、ATA/ATAPI変換部24からS161のエラー通知を受けると、S162においてHOST・I/F処理部22に対しエラー通知を行う。HOST・I/F処理部22は、システム制御部23からS162のエラー通知を受けると、S163においてErrorレジスタの設定を行い、S164に進む。S164においてHOST・I/F処理部22は、レジスタのERRビットに1を格納すると共に、該レジスタのBSYビット及び該レジスタのDRQビットに0を格納して、S165に進む。S165においてHOST・I/F処理部22は、Device・ControlレジスタのnIENビットの値が0であるか否かを判定する。nIENビットの値が0でない場合(S165においてNO)、S167に進む。nIENビットの値が0である場合(S165においてYES)、S166に進む。S166においてHOST・I/F処理部22は、ホストPC10に対してINTRQアサートを通知し、S167に進む。S167においてHOST・I/F処理部22は、Statusレジスタの読み込みを検知し、S168に進む。S168においてHOST・I/F処理部22は、INTRQのネゲートを行う。以上がエラー処理における光学ドライブ装置20の動作である。
(光学ドライブ装置20の利点)
本実施形態の光学ドライブ装置20は、ホストPC10からATAコマンドが送信された場合にATAコマンドをATAPIコマンドに変換して光学ドライブ部25に格納されている光ディスクにアクセスするので、格納されている光ディスクをホストPC10に対してATAインターフェイスを備えたハードディスクドライブと見せることができる。従って、OSがインストールされている光ディスクが格納された本実施形態の光学ドライブ装置20をホストPC10に接続してホストPC10を起動することにより、光ディスクからOSを起動することが可能となる。光ディスクは媒体の交換が容易であることから、OSがインストールされた複数の光ディスクを用意しておけば、複数のシステムを切り替えて起動することが容易になる。
本実施形態の光学ドライブ装置20は、ホストPC10からATAコマンドが送信された場合にATAコマンドをATAPIコマンドに変換して光学ドライブ部25に格納されている光ディスクにアクセスするので、格納されている光ディスクをホストPC10に対してATAインターフェイスを備えたハードディスクドライブと見せることができる。従って、OSがインストールされている光ディスクが格納された本実施形態の光学ドライブ装置20をホストPC10に接続してホストPC10を起動することにより、光ディスクからOSを起動することが可能となる。光ディスクは媒体の交換が容易であることから、OSがインストールされた複数の光ディスクを用意しておけば、複数のシステムを切り替えて起動することが容易になる。
また、これによりOSの起動プロセスがサポートしていないファイルシステム(UDF2.5など)を採用する光ディスクからもシステムを起動することが可能となる。
(ホストPC10及び光学ドライブ装置20からなるシステムの動作)
次に、ATAコマンドが処理される際の、ホストPC10及び光学ドライブ装置20からなるシステムとしての動作について、図2〜図10を用いて詳細に説明する。なお、光学ドライブ装置20の内部の詳細な動作については上述したので、ここでは、光学ドライブ装置20の動作については簡潔に述べるに留めることとする。
次に、ATAコマンドが処理される際の、ホストPC10及び光学ドライブ装置20からなるシステムとしての動作について、図2〜図10を用いて詳細に説明する。なお、光学ドライブ装置20の内部の詳細な動作については上述したので、ここでは、光学ドライブ装置20の動作については簡潔に述べるに留めることとする。
再び図2を参照し、ホストPC10及び光学ドライブ装置20からなるシステムの動作を、ホストPC10側に着目して説明する。
最初にS1において、ホストPC10はデバイスセレクションプロトコルの処理を行う。デバイスセレクションプロトコルにおいては、バスがアイドル状態であること、及び、光学ドライブ装置20がアイドル状態であることを確認する。図3は、図2のデバイスセレクションプロトコルS1の具体的な処理の流れを示すフローチャートである。
S11(図7のS101)において、ホストPC10は、HOST・I/F処理部22のStatusレジスタまたはAlternate・Statusレジスタの値を読み込み、S12に進む。S12(図7のS102)においてホストPC10は、レジスタのBSYビット及びDRQビットが共に0か否かを判定する。ここで、BSYビット及びDRQビットが共に0であることはバスがアイドル状態であることを意味し、BSYビット及びDRQビットのいずれかが0でないことはバスがビジー状態であることを意味する。読み込まれたレジスタのBSYビット及びDRQビットのいずれかが0でない場合(S12においてNO)、S11に戻る。読み込まれたレジスタのBSYビット及びDRQビットが共に0である場合(S12においてYES)、S13に進む。S13(図7のS111及びS112)においてホストPC10は、HOST・I/F処理部22のDevice/HeadレジスタのDEVビットにデバイス番号をセットして400ns以上待機し、S14に進む。S14(図7のS113)においてホストPC10は、StatusレジスタまたはAlternate・Statusレジスタの読み込みを行い、S15に進む。S15(図7のS114)においてホストPC10は、レジスタのBSYビット及びDRQビットが共に0か否かを判定する。ここで、BSYビット及びDRQビットが共に0であることは光学ドライブ装置20がアイドル状態であることを意味し、BSYビット及びDRQビットのいずれかが0でないことは光学ドライブ装置20がビジー状態であることを意味する。レジスタのBSYビット及びDRQビットのいずれかが0でない場合(S15においてNO)、S14に戻る。読み込まれたレジスタのBSYビット及びDRQビットが共に0である場合(S15においてYES)、図2のS2に進む。
S2においてホストPC10は、バスまたは光学ドライブ装置20のいずれかがビジー状態であるか否かを判定する。バスまたは光学ドライブ装置20のいずれかがビジー状態である場合(S2においてYES)、ホストPC10は処理を終了する。バス及び光学ドライブ装置20が共にビジー状態でない場合(S2においてNO)、S3に進む。
S3においてホストPC10はATAコマンドの種別を判定し、コマンドの種別がNon・data・commandである場合(S3においてNon・data・command)にはS4のNon・data・commandプロトコルの処理を行う。コマンドの種別がPIO・data・in・commandである場合(S3においてPIO・data・in・command)にはS5のPIO・data・in・commandプロトコルの処理を行う。コマンドの種別がPIO・data・out・commandである場合(S3においてPIO・data・out・command)にはS6のPIO・data・out・commandプロトコルの処理を行う。コマンドの種別がDMA・commandである場合(S3においてDMA・command)にはS7のDMA・commandプロトコルの処理を行う。ここでは、S4のNon・data・Commandプロトコル、及び、S7のDMA・commandプロトコルについて詳細に説明する。
まず、S4のNon・data・Commandプロトコルについて図5を用いて詳細に説明する。図5は、S4のNon・data・Commandプロトコルの処理におけるホストPC10及び光学ドライブ装置20の動作を示すフローチャートである。
S41(図10のS181)においてホストPC10は、Feature、Sector・Count、Sector・Number、Cylinder・High、Cylinder・Low、Device/Headレジスタなど各レジスタにパラメータを設定し、S42に進む。S42(図10のS182及びS183)においてホストPC10は、Commandレジスタにコマンドを設定して400ns以上待機し、S43に進む。S43(図10のS184〜S191)において光学ドライブ装置20(デバイス)はBSYビットに1を格納し、S44に進む。S44(図10のS192)において、図10のS191において取得したATAPIコマンドの処理結果がエラーである場合(S44においてYES)、S45に進む。エラーでない場合(S44においてNO)はS46に進む。S45(図9のS163及びS164)において光学ドライブ装置20(デバイス)は、Errorレジスタの設定を行い、ERRビットに1を格納する。S46(図10のS195または図9のS164)において光学ドライブ装置20(デバイス)は、BSYビットに0を格納し、S47に進む。S47(図10のS196または図9のS165)において光学ドライブ装置20は、Device・ControlレジスタのnIENビットの値が0であるか否かを判定する。
S47においてnIEN=0である場合(S47においてYES)、S48に進む。S47においてnIENが0でない場合(S47においてNO)、S51において、ホストPC10は、Statusレジスタの読み込みを行い、光学ドライブ装置20は処理を終了する。
S48(図10のS197または図9のS166)において光学ドライブ装置20(デバイス)は、ホストPC10にATAコマンドの実行が終了したことを知らせるためにINTRQをアサートし、S49に進む。S49(図10のS198または図9のS167)においてホストPC10は、コマンドの実行が正しく行われたかをチェックするためにStatusレジスタの読み込みを行いS50に進む。S50(図10のS199または図9のS168)において光学ドライブ装置20(デバイス)は、INTRQをネゲートし処理を終了する。
次に、S7のDMA・Commandプロトコルについて図4を用いて詳細に説明する。図4は、S7のDMA・Commandプロトコルに従ったリード系のATAコマンドを処理するために行われるホストPC10及び光学ドライブ装置20の動作を示すフローチャートである。
S21(図8のS121)においてホストPC10は、Feature、Sector・Count、Sector・Number、Cylinder・High、Cylinder・Low、Device/Headレジスタなど各レジスタにパラメータを設定し、S22に進む。S22(図8のS122及びS123)においてホストPC10は、Commandレジスタにコマンドを設定して400ns以上待機し、S23に進む。S23(図8のS124〜S131)において光学ドライブ装置20(デバイス)は、BSYビットに1を格納してコマンドを実行しS24に進む。S24(図8のS132)において、図8のS131において取得したATAPIコマンドの処理結果がエラーである場合(S24においてYES)、S29に進む。エラーでない場合(S24においてNO)はS25に進む。
S25(図8のS135)において光学ドライブ装置20(デバイス)は、BSYビットに0を格納すると共にDRQビットに1を格納しS26に進む。S26(図8のS136)において光学ドライブ装置20(デバイス)は、データ転送の準備完了後DMARQをアサートし、S27に進む。S27(図8のS137及びS138)においてホストPC10は、データ転送の準備完了後DMACKをアサートしてデータ転送を開始し、S28に進む。S28(図8のS139)において光学ドライブ装置20(デバイス)は、データ転送が完了したか否かを判定し、データ転送が完了した場合(S28においてYES)、S30に進む。データ転送が完了していない場合(S28においてNO)、S26に戻る。
S29(図9のS163及びS164)において光学ドライブ装置20(デバイス)は、Errorレジスタの設定を行いERRビットに1を格納して、S30に進む。
S30(図8のS143または図9のS164)において光学ドライブ装置20(デバイス)は、BSYビット及びDRQビットに0を格納して、S31に進む。S31(図8のS144または図9のS165)において光学ドライブ装置20は、Device・ControlレジスタのnIENビットの値が0であるか否かを判定する。
S31においてnIEN=0である場合(S31においてYES)、S32に進む。S31においてnIENが0でない場合(S31においてNO)、S35において、ホストPC10は、Statusレジスタの読み込みを行い、光学ドライブ装置20は処理を終了する。
S32(図8のS145または図9のS166)において光学ドライブ装置20(デバイス)は、ATAコマンドの実行が終了したことを知らせるためにINTRQをアサートし、S33に進む。S33(図8のS146または図9のS167)においてホストPC10は、コマンドの実行が正しく行われたかをチェックするためにStatusレジスタの読み込みを行いS34に進む。S34(図8のS147または図9のS168)において光学ドライブ装置20(デバイス)は、INTRQをネゲートし処理を終了する。
(光学ドライブ装置20が処理するATAコマンド)
本発明の光学ドライブ装置20が処理するATAコマンドについて、図22〜図24を用いて説明する。図22の(a)〜(c)は、光学ドライブ装置20が処理を行う必要のあるATAコマンドの一覧を示している。処理を行う必要のあるATAコマンドのうち、図22(a)は、ATA/ATAPI変換部24が、ATAPIコマンドに変換する必要のあるATAコマンドを示している。図22(b)は、ATA/ATAPI変換部24が、変換せずにそのまま光学ドライブ部25に出力するATAコマンドである。図22(c)は、光学ドライブ部25に出力しないATAコマンドである。
本発明の光学ドライブ装置20が処理するATAコマンドについて、図22〜図24を用いて説明する。図22の(a)〜(c)は、光学ドライブ装置20が処理を行う必要のあるATAコマンドの一覧を示している。処理を行う必要のあるATAコマンドのうち、図22(a)は、ATA/ATAPI変換部24が、ATAPIコマンドに変換する必要のあるATAコマンドを示している。図22(b)は、ATA/ATAPI変換部24が、変換せずにそのまま光学ドライブ部25に出力するATAコマンドである。図22(c)は、光学ドライブ部25に出力しないATAコマンドである。
また、図23及び図24に記載のコマンド一覧は、図22(a)〜(c)に記載のATAコマンドを含めた全ATAコマンドの一覧である。図23及び図24に記載の全ATAコマンド一覧のうち、図22の(a)〜(c)のいずれの図にも記載されていないATAコマンドは、IDENTIFY・DEVICEコマンドを使用することにより無効にすることができる。従って、本発明の光学ドライブ装置20は、最低限図22(a)〜(c)のいずれかには記載のATAコマンドを処理(ATAPIコマンドへの変換等)すればよく、それ以外のATAコマンドに関しては、処理をしてもよいし処理をしなくてもよい。
(ATAコマンドからATAPIコマンドへの変換例)
本発明に係る光学ドライブ装置20のATA/ATAPI変換部24が行うATAコマンドからATAPIコマンドへの変換例について図11〜図17を用いて説明する。
本発明に係る光学ドライブ装置20のATA/ATAPI変換部24が行うATAコマンドからATAPIコマンドへの変換例について図11〜図17を用いて説明する。
ここでは、変換例として、データの読み出しを行うためのATAコマンドであるREAD・DMAコマンドまたはREAD・DMA・EXTコマンドからATAPIコマンドであるREAD(10)コマンドへの変換、及び、データの書き込みを行うためのATAコマンドであるWRITE・DMAコマンドまたはWRITE・DMA・EXTコマンドからATAPIコマンドであるWRITE(10)コマンドへの変換について説明する。
まず、読み出しコマンドの変換例として、READ・DMAコマンドまたはREAD・DMA・EXTコマンドからREAD(10)コマンドへの変換について、図11〜図13を用いて説明する。図11(a)は、READ・DMAコマンドの要求を説明する図である。READ・DMAコマンドのSector・Countレジスタにはデータを読み出すセクタ数が格納されている。Sector・Numberレジスタにはデータの読み出し開始位置の論理セクタを示す28ビットからなるLBAの0ビット目から7ビット目までの値が格納されている。Cylinder・Lowレジスタには、LBAの8ビット目から15ビット目までの値が格納されている。Cylinder・Highレジスタには、LBAの16ビット目から23ビット目までの値が格納されている。また、Deviceレジスタの下位4ビットには、LBAの24ビット目から27ビット目までの値が格納されている。
また、図11(b)及び図11(c)は、READ・DMA・EXTコマンドの1回目の要求及び2回目の要求を説明する図である。1回目の要求のSector・Countレジスタにはデータを読み出す16ビットからなるセクタ数の上位8ビットの値が格納されている。1回目の要求のSector・Numberレジスタにはデータの読み出し開始位置の論理セクタを示す48ビットからなるLBAの24ビット目から31ビット目までの値が格納されている。Cylinder・Lowレジスタには、LBAの32ビット目から39ビット目までの値が格納されている。Cylinder・Highレジスタには、LBAの40ビット目から47ビット目までの値が格納されている。また、2回目の要求のSector・Countレジスタにはデータを読み出す16ビットからなるセクタ数の下位8ビットの値が格納されている。2回目の要求のSector・NumberレジスタにはLBAの0ビット目から7ビット目までの値が格納されている。Cylinder・Lowレジスタには、LBAの8ビット目から15ビット目までの値が格納されている。Cylinder・Highレジスタには、LBAの16ビット目から23ビット目までの値が格納されている。上記1回目の要求と2回目の要求とから16ビットのセクタ数及び48ビットのLBAの値を求めることができる。
上記2種類のコマンド(READ・DMAコマンド/READ・DMA・EXTコマンド)から定まるLBA及びセクタ数は、ホストPC10から見た場合の仮想ハードディスクの読み出し開始位置、及び、読み出しセクタ長を示している。
次に図12を用いて、ハードディスクドライブ(HDD)の読み出し開始位置(LBA)、及び、ハードディスクドライブ(HDD)の読み出しセクタ長からBDの読み出し開始位置(LBA)、及び、BD読み出しセクタ長を算出する方法、及び、算出されたLBA及びセクタ長の値が格納されたATAPIコマンド(READ(10))について説明する。
図12(a)はハードディスクドライブ(HDD)の読み出し開始LBA1、及び、ハードディスクドライブ(HDD)の読み出し開始長4から、BDの読み出し開始LBA2、及び、BDの読み出しセクタ長5を算出する算出方法について説明する図である。
図12(a)を見るとわかるように、ハードディスク(HD)の1セクタは512バイトであり、BDの1セクタは2048バイトである。すなわち、HDの4セクタ分の領域に格納できるデータのサイズは、BDの1セクタ分の領域に格納できるデータのサイズと等しい。
従って、HDの0セクタ目に格納されるデータがBDのSセクタ目に格納されるとすると、HDのnセクタ目に格納されるデータがBDのS+n/4セクタ目に格納されるようにすることにより、BDの領域を無駄なく使用することができる。このため、本発明の光学ドライブ装置20は、HDのnセクタ目に格納されるデータをBDのS+n/4セクタ目に格納する。
このことから、ATA/ATAPI変換部24は、HDの0セクタ目に相当するBDのセクタS、ハードディスクドライブ(HDD)の読み出し開始LBA1、及び、ハードディスクドライブ(HDD)の読み出しセクタ長4から、BDの読み出し開始LBA2、及び、BDの読み出しセクタ長5を以下の式に従って算出する。
BDの読み出し開始LBA(2)=(HDDの読み出し開始LBA(1) div4)
+S
余り(3)=HDDの読み出し開始LBA(1) mod 4
BDの読み出しセクタ長(5)=(余り(3)+3)div 4 + {(HDDの読 み出しセクタ長(4)−余り(3))+3} div 4
図12(b)は、上記計算式により算出されたBDの読み出し開始LBA(2)、及び、BDの読み出しセクタ長(5)が格納された変換後のATAPIコマンド(READ(10))である。ATA/ATAPI変換部24は、このATAPIコマンドで表わされるデータを光学ドライブ部25に出力する。その後、光学ドライブ装置20は、読み出しコマンドがREAD・DMAコマンドである場合には、図13(a)で表わされる応答を、ホストPC10に対し返却する。読み出しコマンドがREAD・DMA・EXTコマンドである場合には、図13(b)で表わされる応答を、ホストPC10に対し返却する。
+S
余り(3)=HDDの読み出し開始LBA(1) mod 4
BDの読み出しセクタ長(5)=(余り(3)+3)div 4 + {(HDDの読 み出しセクタ長(4)−余り(3))+3} div 4
図12(b)は、上記計算式により算出されたBDの読み出し開始LBA(2)、及び、BDの読み出しセクタ長(5)が格納された変換後のATAPIコマンド(READ(10))である。ATA/ATAPI変換部24は、このATAPIコマンドで表わされるデータを光学ドライブ部25に出力する。その後、光学ドライブ装置20は、読み出しコマンドがREAD・DMAコマンドである場合には、図13(a)で表わされる応答を、ホストPC10に対し返却する。読み出しコマンドがREAD・DMA・EXTコマンドである場合には、図13(b)で表わされる応答を、ホストPC10に対し返却する。
また、ATA/ATAPI変換部24は、BDの読み出し開始LBA2、及び、BDの読み出しセクタ長5が格納されたREAD(10)コマンドで読み出したデータをバッファ21に格納する。バッファ21に格納されたデータのうち、ATAコマンド(READ・DMAコマンドまたはREAD・DMA・EXTコマンド)で読み込もうとするデータが格納されている領域の特定方法について図18を用いて説明する。
図18は、ATAコマンドがデータを読み書きするハードディスク上の領域(セクタ)と、ハードディスク上の領域に相当するハードディスク領域を含む光ディスク上の領域(セクタ)とを対比した図である。ここで、光ディスク上のハードディスク領域は、ATAコマンドから変換されたATAPIコマンドがデータを読み書きする領域である。図18の左側にはOSの起動イメージなどが記録されたホストPC10から見たハードディスク上の領域(LBA 0からLBA X3)が示されており、図18の右側には、図18の左側に示した領域のデータがLBA SからLBA Y3の領域(ハードディスク領域)に記録されている、光ディスク上の領域を示している。
ここで、読み込もうとするデータが格納されているハードディスク領域上のLBA X1からLBA X2の斜線領域とすると、対応する光ディスク上の読み込もうとするデータが格納されている実際の領域は、LBA Y1の先頭を起点としたセクタアドレスy1で表わされる先頭アドレスからLBA Y2−1の先頭を起点としたセクタアドレスy2で表わされる最終アドレスまでの斜線領域となる。ATA/ATAPI変換部24は、Y1、Y2、y1及びy2を、次の式により算出する。
Y1=S+X1 div 4
Y2=S+(X2+3) div 4
y1=X1 mod 4
y2=X2 mod 4
以上によって特定された斜線領域のデータがバッファ21から読み出されホストPC10に送信される。
Y2=S+(X2+3) div 4
y1=X1 mod 4
y2=X2 mod 4
以上によって特定された斜線領域のデータがバッファ21から読み出されホストPC10に送信される。
次に、書き込みコマンドの変換例として、WRITE・DMAコマンドまたはWRITE・DMA・EXTコマンドからWRITE(10)コマンドへの変換について、図14〜図17を用いて説明する。図14(a)は、WRITE・DMAコマンドの要求を説明する図である。WRITE・DMAコマンドのSector・Countレジスタにはデータを書き込みセクタ数が格納されている。Sector・Numberレジスタにはデータの書き込み開始位置の論理セクタを示す28ビットからなるLBAの0ビット目から7ビット目までの値が格納されている。Cylinder・Lowレジスタには、LBAの8ビット目から15ビット目までの値が格納されている。Cylinder・Highレジスタには、LBAの16ビット目から23ビット目までの値が格納されている。また、Deviceレジスタの下位4ビットには、LBAの24ビット目から27ビット目までの値が格納されている。
また、図14(b)及び図14(c)は、WRITE・DMA・EXTコマンドの1回目の要求及び2回目の要求を説明する図である。1回目の要求のSector・Countレジスタにはデータを書き込む16ビットからなるセクタ数の上位8ビットの値が格納されている。1回目の要求のSector・Numberレジスタにはデータの書き込み開始位置の論理セクタを示す48ビットからなるLBAの24ビット目から31ビット目までの値が格納されている。Cylinder・Lowレジスタには、LBAの32ビット目から39ビット目までの値が格納されている。Cylinder・Highレジスタには、LBAの40ビット目から47ビット目までの値が格納されている。また、2回目の要求のSector・Countレジスタにはデータを書き込む16ビットからなるセクタ数の下位8ビットの値が格納されている。2回目の要求のSector・NumberレジスタにはLBAの0ビット目から7ビット目までの値が格納されている。Cylinder・Lowレジスタには、LBAの8ビット目から15ビット目までの値が格納されている。Cylinder・Highレジスタには、LBAの16ビット目から23ビット目までの値が格納されている。上記1回目の要求と2回目の要求とから16ビットのセクタ数及び48ビットのLBAの値を求めることができる。
次に図15を用いて、ハードディスクドライブ(HDD)の書き込み開始位置(LBA)、及び、ハードディスクドライブ(HDD)の書き込みセクタ長から、BDの読み込み開始位置(LBA)、及び、BD読み込みセクタ長を算出し、算出されたLBA及びセクタ長の値が格納されたATAPIコマンド(READ(10))を生成して、算出されたLBA及びセクタ長で表わされる領域のデータをバッファ21に読み込むことについて説明する。
図15(a)及び(b)は、書き込み要求された仮想ハードディスク上のセクタ領域及びBD上の実際のセクタ領域を示す図である。ハードディスクドライブ(HDD)の読み出し開始位置(LBA)1及びハードディスクドライブ(HDD)の読み出しセクタ長4からBDの読み込み開始位置(LBA)2、及び、BD読み込みセクタ長5を算出する方法は、READ・DMAコマンド及びREAD・DMA・EXTコマンドからREAD(10)コマンドへの変換における算出方法と同様であるので、算出方法の説明は省略する。図15(c)は、算出されたBDの読み出し開始LBA(2)、及び、BDの読み出しセクタ長(5)が格納された変換後のATAPIコマンド(READ(10))である。ATA/ATAPI変換部24は、このATAPIコマンドで表わされるデータを光学ドライブ部25に出力した後、BDの読み出し開始LBA2、及び、BDの読み出しセクタ長5が格納されたREAD(10)コマンドで読み出したデータをバッファ21に格納する。
次に、ATAコマンド(WRITE・DMAコマンドまたはWRITE・DMA・EXTコマンド)で書き込もうとするデータによりバッファ21に格納されたデータを書き換え、WRITE(10)コマンドを生成することについて図16を用いて説明する。
ATA/ATAPI変換部24は、バッファ21に格納されたデータのうち、ATAコマンド(WRITE・DMAコマンドまたはWRITE・DMA・EXTコマンド)で書き込もうとするデータを書き込む領域の特定方法については、READ・DMAコマンド及びREAD・DMA・EXTコマンドにおいて読み込もうとするデータが格納されている領域を特定する方法と同様であるので省略する。バッファ21の特定された領域にWRITE・DMAコマンドまたはWRITE・DMA・EXTコマンドにより書き込もうとするデータを書き込んだ後、図16(b)で表わされるWRITE(10)コマンドを生成する。生成されたWRITE(10)コマンドが光学ドライブ部25に送信され、バッファ上のデータを図16(a)のように光ディスクの領域に記録する。図16(a)は、BDへの書き込み開始セクタ2及びBDへの書き込みセクタ長5で示される領域に書き込もうとするデータ(XXXYXXXY)が記録されたことを示している。
WRITE(10)コマンドによる書き込み後、光学ドライブ装置20はATAコマンド(WRITE・DMAコマンドまたはWRITE・DMA・EXTコマンド)の応答をホストPC10に返却する。書き込みコマンドがWRITE・DMAコマンドである場合には、図17(a)で表わされる応答を、ホストPC10に対し返却する。書き込みコマンドがWRITE・DMA・EXTコマンドである場合には、図17(b)で表わされる応答を、ホストPC10に対し返却する。
(ATAPIコマンドへ変換しないATAコマンドの例)
図21は、ATAPIコマンドに変換せずにそのまま光学ドライブ部25に送信するATAコマンドの一例である4種類のSET・FEATUERSコマンドの要求と応答を示す図である。
図21は、ATAPIコマンドに変換せずにそのまま光学ドライブ部25に送信するATAコマンドの一例である4種類のSET・FEATUERSコマンドの要求と応答を示す図である。
図21(a)及び(b)は、転送モードをPIOフローコントロールモードにするSET・FEATURESコマンドの要求と応答を示し、図21(c)及び(d)は、転送モードをUltra・DMA転送モードにするSET・FEATURESコマンドの要求と応答を示し、図21(e)及び(f)は、電源オン復帰機能をデフォルトで無効にするSET・FEATURESコマンドの要求と応答を示し、図22(g)及び(h)は、書き込みキャッシュを有効にするSET・FEATURESコマンドの要求と応答を示している。光学ドライブ装置20は、例えば図21(a)のようなSET・FEATURESコマンドの要求を受信すると、必要に応じてパラメータを内部で保持し、図21(b)に示すような正常終了応答をホストPC10に返却する。
(システム制御部23の動作)
HOST・I/F処理部22は、ホストPC10からのATAレジスタへのアクセスに応答して、リセット、デバイスセレクションプロトコルの開始、ATAコマンド発行(Commandレジスタへの書き込み)、または、データ転送完了の各タイミングで割り込みを発生し、システム制御部23に対して割り込み要因に応じた通知を行う。
HOST・I/F処理部22は、ホストPC10からのATAレジスタへのアクセスに応答して、リセット、デバイスセレクションプロトコルの開始、ATAコマンド発行(Commandレジスタへの書き込み)、または、データ転送完了の各タイミングで割り込みを発生し、システム制御部23に対して割り込み要因に応じた通知を行う。
ここではHOST・I/F処理部22から割り込み要因に応じた通知を受けるときのシステム制御部23の動作について図6を用いて説明する。図6は、システム処理部23に対して通知が入力された場合における、リード系のDMA commandプロトコルに則ったシステム制御部23の動作を示すフローチャートである。
S61において、システム制御部23は通知を受信する。S62においてシステム制御部23は通知の種別を判定する。ここで、通知がホストPC10から光学ドライブ装置20のハードウェアリセットまたはソフトウェアリセットが行われた場合にHOST・I/F処理部22より出力されるリセット通知である場合(S62においてリセット)、S63に進む。通知がデバイスセレクションプロトコルにおいてホストPC10からStatusレジスタにアクセスが行われた場合にHOST・I/F処理部22より出力されるデバイスセレクション通知である場合(S62においてデバイスセレクション)、S65に進む。通知が、ホストPC10からCommandレジスタに書き込みが行われた場合にHOST・I/F処理部22から各ATAレジスタの設定値と共に出力されるATAコマンドであって、No・data・commandプロトコル、PIO・data−in・commandプロトコル、及び、リード系のDMA・commandプロトコルに従って処理されるATAコマンド発行の通知である場合(S62においてATAコマンド発行)、S67に進む。通知がPIO・data・in・command、PIO・data・out・commandまたはDMA・commandプロトコルにおいてHOST・I/F処理部22から出力されるデータ転送の完了を示す通知である場合(S62においてデータ転送完了)、S70に進む。
S63においてシステム制御部23は、処理中のコマンドの中断処理を行いS64に進む。S64においてシステム制御部23は、各ブロック(HOST・I/F処理部22、システム制御部23、ATA/ATAPI変換部24、BDドライブ)の再初期化処理を行い、処理を終了する。
S65においてシステム制御部23は、各ブロック(HOST・I/F処理部22、システム制御部23、ATA/ATAPI変換部24、BDドライブ)がコマンドの処理を可能な状態であるかを確認し、S66に進む。S66においてシステム制御部23は、終了ステータスをHOST・I/F処理部22のATAレジスタに設定し、処理を終了する。
S67においてシステム制御部23は、発行されたATAコマンドをATA/ATAPI変換部24出力し、S68に進む(ATA/ATAPI変換部24において出力されたATAコマンドが処理される)。S68においてシステム制御部23はデータ転送が必要であるか否かを判定し、必要である場合(S68においてYES)は処理を終了する。必要でない場合、即ち、ATAコマンドがNon−data・commandプロトコルである場合(S68においてNO)は、S69に進む。S69においてシステム制御部23は、終了ステータスをHOST・I/F処理部22のATAレジスタに設定し、処理を終了する。
S69においてシステム制御部23は、終了ステータスをHOST・I/F処理部22のATAレジスタに設定し、処理を終了する。
以上のように、本実施形態に係る光学ドライブ装置20は、図11及び図12に示したように、ATA/ATAPI変換部24が、ホストPC10から入力されたハードディスクドライブに対するATAの読み出しコマンド(READ・DMAコマンドやREAD・DMA・EXTコマンド等)であってハードディスクの領域指定情報(例えば、HDDの読み出し開始LBA及び読み出しセクタ数)を含むATAの読み出しコマンドを、ハードディスクの領域指定情報が表わすハードディスク上の領域に相当する光ディスク(例えばBD)上の領域を含む、連続したセクタからなる光ディスク上の領域を表わす光ディスクの領域指定情報(例えば、BDの読み出し開始LBA及び読み出しセクタ数)を含むATAPIの読み出しコマンド(READ(10)コマンド)に変換する。
そして、本実施形態に係る光学ドライブ装置20は、ATAPIの読み出しコマンドに基づいて、光学ドライブ部25が、光ディスクの領域指定情報が表す領域に記録されている情報を光ディスクから読み出す。
また、本実施形態に係る光学ドライブ装置20は、図18に示したように、ATA/ATAPI変換部24が、光学ドライブ部25によって光ディスクから読み出された情報から、ATAの読み出しコマンド及びATAPIの読み出しコマンドに基づいて、ハードディスクの領域指定情報が表わすハードディスク上の領域に相当する光ディスク上の領域に記録されている情報を抽出する。
なお、本実施形態において、光ディスクの例としてBDを用いて説明したが、光ディスクはBDに限らず、CD−ROM(CD−R、CD−RW)やDVD(DVD−R、DDV+R、DVD−RAM)等であってもよい。また、ハードディスク及び光ディスクの領域指定情報として読み出し開始LBA及び読み出しセクタ数を用いて説明したが、これに限らず読み出し開始LBA及び読み出し終了LBAであってもよいし、読み出し終了LBA及び読み出しセクタ数であってもよい。
〔実施形態2〕
本発明に係る光学ドライブ装置の別の一実施形態について、図19に基づいて以下に説明する。なお、実施形態1と同様の部材については、同一の番号を付し、その説明を省略する。
本発明に係る光学ドライブ装置の別の一実施形態について、図19に基づいて以下に説明する。なお、実施形態1と同様の部材については、同一の番号を付し、その説明を省略する。
(光学ドライブ装置30の構成)
本実施形態に係る光学ドライブ装置30の構成について、図19を参照して以下に説明する。図19は、光学ドライブ装置30の要部構成を示すブロック図である。光学ドライブ装置30は、ホストPC10からマスタデバイス(ハードディスクドライブ)としてアクセスされた場合に入力されるコマンド(ATAコマンド)をATAPIコマンドに変換し、変換されたATAPIコマンドに基づいてBDのL1層にアクセスするように動作し、ホストPC10からスレーブデバイス(光ディスクドライブ)としてアクセスされた場合に入力されるコマンド(ATAPIコマンド、又は、ATAPIデバイスによりサポートされているATAコマンド)に基づいてBDのL0層にアクセスするように動作する光学ドライブ装置である。
本実施形態に係る光学ドライブ装置30の構成について、図19を参照して以下に説明する。図19は、光学ドライブ装置30の要部構成を示すブロック図である。光学ドライブ装置30は、ホストPC10からマスタデバイス(ハードディスクドライブ)としてアクセスされた場合に入力されるコマンド(ATAコマンド)をATAPIコマンドに変換し、変換されたATAPIコマンドに基づいてBDのL1層にアクセスするように動作し、ホストPC10からスレーブデバイス(光ディスクドライブ)としてアクセスされた場合に入力されるコマンド(ATAPIコマンド、又は、ATAPIデバイスによりサポートされているATAコマンド)に基づいてBDのL0層にアクセスするように動作する光学ドライブ装置である。
光学ドライブ装置30は、バッファメモリ21、HOST・I/F処理部26、システム制御部23、ATA/ATAPI変換部24、を備えている。
以下に、本実施形態に係る光学ドライブ装置30を構成する各部材について説明するが、バッファメモリ21、システム制御部23及びATA/ATAPI変換部24については実施形態1において詳述したため、ここではその説明を省略する。したがって、本実施形態ではHOST・I/F処理部26及び光学ドライブ部27についてのみ以下に説明する。
(HOST・I/F処理部26)
HOST・I/F処理部26は、ホストPC10からマスタデバイスに対するコマンドを受信すると、実施形態1の光学ドライブ装置20と同様に、システム制御部23に対してATAコマンド発行の通知を行う。一方、HOST・I/F処理部26はホストPC10からスレーブデバイスに対するコマンドを受信すると、受信したコマンドを光学ドライブ部27に出力する。
HOST・I/F処理部26は、ホストPC10からマスタデバイスに対するコマンドを受信すると、実施形態1の光学ドライブ装置20と同様に、システム制御部23に対してATAコマンド発行の通知を行う。一方、HOST・I/F処理部26はホストPC10からスレーブデバイスに対するコマンドを受信すると、受信したコマンドを光学ドライブ部27に出力する。
(光学ドライブ部27)
光学ドライブ部27はATA/ATAPI変換部24から変換されたATAPIコマンドを取得すると、取得したATAPIコマンドに基づいて光学ドライブ部27に格納されているBDのL1層にアクセスする。また、光学ドライブ部27はHOST・I/F処理部26からATAPIコマンドを取得すると、取得したATAPIコマンドに基づいて光学ドライブ部27に格納されているBDのL0層にアクセスする。
光学ドライブ部27はATA/ATAPI変換部24から変換されたATAPIコマンドを取得すると、取得したATAPIコマンドに基づいて光学ドライブ部27に格納されているBDのL1層にアクセスする。また、光学ドライブ部27はHOST・I/F処理部26からATAPIコマンドを取得すると、取得したATAPIコマンドに基づいて光学ドライブ部27に格納されているBDのL0層にアクセスする。
(光学ドライブ装置30の利点)
本実施形態の光学ドライブ装置30は、ホストPC10からマスタデバイスに対するコマンドが送信された場合にそのコマンドをATAPIコマンドに変換して光学ドライブ部27に格納されている光ディスクのL1層にアクセスし、ホストPC10からスレーブデバイスに対するコマンドが送信された場合に、光学ドライブ部27がそのコマンドに基づいて格納されている光ディスクのL0層にアクセスするので、格納されている光ディスクのL1層をハードディスクドライブとして、L0層を光学ドライブとしてホストPC10に対して見せることができる。従って、光ディスクが格納された本実施形態の光学ドライブ装置30をホストPC10に接続することにより、ホストPC10から見て本実施形態の光学ドライブ装置30がハードディスクドライブ及び光学ドライブの2ドライブの役割を果たすことができる。
本実施形態の光学ドライブ装置30は、ホストPC10からマスタデバイスに対するコマンドが送信された場合にそのコマンドをATAPIコマンドに変換して光学ドライブ部27に格納されている光ディスクのL1層にアクセスし、ホストPC10からスレーブデバイスに対するコマンドが送信された場合に、光学ドライブ部27がそのコマンドに基づいて格納されている光ディスクのL0層にアクセスするので、格納されている光ディスクのL1層をハードディスクドライブとして、L0層を光学ドライブとしてホストPC10に対して見せることができる。従って、光ディスクが格納された本実施形態の光学ドライブ装置30をホストPC10に接続することにより、ホストPC10から見て本実施形態の光学ドライブ装置30がハードディスクドライブ及び光学ドライブの2ドライブの役割を果たすことができる。
(まとめ)
以上のように、本実施形態に係る光学ドライブ装置30は、HOST・I/F処理部26が、ホストPC10から入力された読み出しコマンドがマスターデバイス(ハードディスクドライブ)に対するコマンドであるかスレーブデバイス(光ディスクドライブ)に対するコマンドであるかを判定する。
以上のように、本実施形態に係る光学ドライブ装置30は、HOST・I/F処理部26が、ホストPC10から入力された読み出しコマンドがマスターデバイス(ハードディスクドライブ)に対するコマンドであるかスレーブデバイス(光ディスクドライブ)に対するコマンドであるかを判定する。
そして、本実施形態に係る光学ドライブ装置30は、読み出しコマンドがマスターデバイスに対するコマンドであると判定された場合、光学ドライブ部27が光ディスクのL1層から、ATA/ATAPI変換部24によって読み出しコマンドから変換されたATAPIの読み出しコマンドに基づいて、ATAの読み出しコマンドが読み出すハードディスク上の領域に相当する光ディスク上の領域を内包する連続したセクタからなる領域に記録されている情報を読み出す。
また、本実施形態に係る光学ドライブ装置30は、読み出しコマンドがスレーブデバイスに対するコマンドであると判定された場合、光学ドライブ部27が光ディスクのL0層から、読み出しコマンドに基づいて、光ディスク上の領域に記録されている情報を読み出す。
さらに、本実施形態に係る光学ドライブ装置30は、読み出しコマンドがマスターデバイスに対する読み出しコマンドであると判定された場合、ATA/ATAPI変換部24が、光学ドライブ部27によって光ディスクから読み出された情報から、ATAの読み出しコマンド及びATAPIの読み出しコマンドに基づいて、ATAの読み出しコマンドが読み出すハードディスク上の領域に相当する光ディスク上の領域に記録されている情報を抽出する。
〔実施形態3〕
本発明に係る光学ドライブ装置のさらに別の一実施形態について、図20に基づいて以下に説明する。なお、実施形態1と同様の部材については、同一の番号を付し、その説明を省略する。
本発明に係る光学ドライブ装置のさらに別の一実施形態について、図20に基づいて以下に説明する。なお、実施形態1と同様の部材については、同一の番号を付し、その説明を省略する。
(光学ドライブ装置40の構成)
本実施形態に係る光学ドライブ装置40の構成について、図20を参照して以下に説明する。図20は、光学ドライブ装置40の要部構成を示すブロック図である。光学ドライブ装置40は、ホストPC10から入力されたATAコマンドによりアクセスされるデータがハードディスク用領域データ格納メモリ29に格納されている場合にハードディスク用領域データ格納メモリ29に格納されているデータを処理し、格納されていない場合にATAコマンドをATAPIコマンドに変換し、変換されたATAPIコマンドに基づいて光学ドライブ部25が動作する光学ドライブ装置である。
本実施形態に係る光学ドライブ装置40の構成について、図20を参照して以下に説明する。図20は、光学ドライブ装置40の要部構成を示すブロック図である。光学ドライブ装置40は、ホストPC10から入力されたATAコマンドによりアクセスされるデータがハードディスク用領域データ格納メモリ29に格納されている場合にハードディスク用領域データ格納メモリ29に格納されているデータを処理し、格納されていない場合にATAコマンドをATAPIコマンドに変換し、変換されたATAPIコマンドに基づいて光学ドライブ部25が動作する光学ドライブ装置である。
光学ドライブ装置40は、バッファメモリ21、HOST・I/F処理部22、ATA/ATAPI変換部24、光学ドライブ部25、システム制御部28、及び、ハードディスク用領域データ格納メモリ29を備えている。
以下に、本実施形態に係る光学ドライブ装置40を構成する各部材について説明するが、バッファメモリ21、HOST・I/F処理部22、ATA/ATAPI変換部24及び光学ドライブ部25については実施形態1において詳述したため、ここではその説明を省略する。したがって、本実施形態では、システム制御部28及びハードディスク用領域データ格納メモリ29についてのみ以下に説明する。
(ハードディスク用領域データ格納メモリ29)
ハードディスク用領域データ格納メモリ29は、光ディスク上のハードディスク用領域の全部または一部をコピーして保持するためのメモリである。このメモリはDRAM(揮発性メモリ)であっても、FLASHメモリ(不揮発性メモリ)であってもよい。
ハードディスク用領域データ格納メモリ29は、光ディスク上のハードディスク用領域の全部または一部をコピーして保持するためのメモリである。このメモリはDRAM(揮発性メモリ)であっても、FLASHメモリ(不揮発性メモリ)であってもよい。
(システム制御部28)
システム制御部28は、HOST・I/F処理部22により生成される割り込みに応答して、ホストPC10から発行されたATAコマンドを解析する。ATAコマンドを解析した結果、ATAコマンドが読み込みコマンドである場合に、当該特定領域に相当する光ディスク上の領域に記録されたデータがハードディスク用領域データ格納メモリ29に存在するか否かを判定する。データが存在し、ATAコマンドが読み出しコマンドである場合には、ハードディスク用領域データ格納メモリ29から当該データを読み出す。一方、データが存在しない場合、または、CHECK・POWER・MODEコマンドといったハードディスク上の領域にアクセスするATAコマンドではない場合には、主にATA/ATAPI変換部24を制御して当該ATAコマンドを処理する。
システム制御部28は、HOST・I/F処理部22により生成される割り込みに応答して、ホストPC10から発行されたATAコマンドを解析する。ATAコマンドを解析した結果、ATAコマンドが読み込みコマンドである場合に、当該特定領域に相当する光ディスク上の領域に記録されたデータがハードディスク用領域データ格納メモリ29に存在するか否かを判定する。データが存在し、ATAコマンドが読み出しコマンドである場合には、ハードディスク用領域データ格納メモリ29から当該データを読み出す。一方、データが存在しない場合、または、CHECK・POWER・MODEコマンドといったハードディスク上の領域にアクセスするATAコマンドではない場合には、主にATA/ATAPI変換部24を制御して当該ATAコマンドを処理する。
(光学ドライブ装置40の利点)
本実施形態の光学ドライブ装置40は、ハードディスク用領域データ格納メモリ29に光ディスク上のハードディスク用領域のデータを全て格納することができ、ホストPC10から送信されるATAコマンドがアクセスするデータがハードディスク用領域データ格納メモリ29に存在する場合、ハードディスク用領域データ格納メモリ29内の該データが格納されている領域にアクセスするので、光ディスクが光学ドライブ部25から取りはずされている状態であっても、ホストPC10に対してハードディスクドライブとして振舞うことができる。
本実施形態の光学ドライブ装置40は、ハードディスク用領域データ格納メモリ29に光ディスク上のハードディスク用領域のデータを全て格納することができ、ホストPC10から送信されるATAコマンドがアクセスするデータがハードディスク用領域データ格納メモリ29に存在する場合、ハードディスク用領域データ格納メモリ29内の該データが格納されている領域にアクセスするので、光ディスクが光学ドライブ部25から取りはずされている状態であっても、ホストPC10に対してハードディスクドライブとして振舞うことができる。
(まとめ)
以上のように本実施形態に係る光学ドライブ装置40は、光ディスクに記録されている情報の少なくとも一部をキャッシュするためのハードディスク用領域データ格納メモリ29を更に備えている。
以上のように本実施形態に係る光学ドライブ装置40は、光ディスクに記録されている情報の少なくとも一部をキャッシュするためのハードディスク用領域データ格納メモリ29を更に備えている。
また、本実施形態に係る光学ドライブ装置40は、システム制御部28が、ATAの読出しコマンドが読み出すハードディスク上の領域に相当する光ディスク上の領域に記録されている情報がハードディスク用領域データ格納メモリ29にキャッシュされている場合、ハードディスク用領域データ格納メモリ29にキャッシュされている当該情報を外部に出力する。なお、ハードディスク用領域データ格納メモリ29は、DRAMであってもよいし、FLASHメモリであってもよい。
(付記事項)
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
本発明の光学ドライブ装置は、格納された光ディスクをホストPCに対してハードディスクとして見せることができるので、複数の光ディスクを用意して各光ディスクに各々異なるOSをインストールしておくことにより、様々なOS上でテストを行う必要があるようなソフトウェア開発分野に適用できる。
10 ホストPC
20 光学ドライブ装置
21 バッファメモリ
22 HOST・I/F処理部
23 システム制御部
24 ATA/ATAPI変換部(抽出手段、変換手段、生成手段)
25 光学ドライブ部(読出手段、記録手段)
26 HOST・I/F処理部(判定手段)
27 光学ドライブ部
28 システム制御部(出力手段)
29 ハードディスク用領域データ格納メモリ
30 光学ドライブ装置
40 光学ドライブ装置
20 光学ドライブ装置
21 バッファメモリ
22 HOST・I/F処理部
23 システム制御部
24 ATA/ATAPI変換部(抽出手段、変換手段、生成手段)
25 光学ドライブ部(読出手段、記録手段)
26 HOST・I/F処理部(判定手段)
27 光学ドライブ部
28 システム制御部(出力手段)
29 ハードディスク用領域データ格納メモリ
30 光学ドライブ装置
40 光学ドライブ装置
Claims (14)
- 外部から入力されたハードディスクドライブに対する第1の読み出しコマンドであって連続したセクタからなるハードディスク上の特定領域を指定する第1の領域指定情報を含む第1の読み出しコマンドを、光ディスクドライブに対する第2の読み出しコマンドであって、上記特定領域に相当する光ディスク上の領域を内包する、連続したセクタからなる光ディスク上の領域を指定する第2の領域指定情報を含む第2の読み出しコマンドに変換する変換手段と、
上記第2の読み出しコマンドに基づいて、光ディスクから上記第2の領域指定情報が指定する領域に記録されている情報を読み出す光ディスクドライブと、
上記光ディスクドライブによって光ディスクから読み出された情報から、上記第1の読み出しコマンド及び上記第2の読み出しコマンドに基づいて、上記特定領域に相当する光ディスク上の領域に記録されている情報を抽出する抽出手段と、を備えている、ことを特徴とする光学ドライブ装置。 - 外部から入力された読み出しコマンドがハードディスクドライブに対する読み出しコマンドであるか光ディスクドライブに対する読み出しコマンドであるかを判定する判定手段を更に備え、
上記光ディスクドライブは、
上記読み出しコマンドが上記判定手段によりハードディスクドライブに対する読み出しコマンドであると判定された場合、該読み出しコマンドを上記第1の読み出しコマンドとして、上記変換手段により得られた上記第2の読み出しコマンドに基づいて、光ディスクの第1の領域から上記第2の領域指定情報が指定する領域に記録されている情報を読み出し、
上記読み出しコマンドが上記判定手段により光ディスクドライブに対する読み出しコマンドであると判定された場合、該読み出しコマンドに基づいて、光ディスクの第2の領域に記録されている情報を読み出す、ことを特徴とする請求項1に記載の光学ドライブ装置。 - 上記光ディスクは、複数の層を備え、
上記第1の領域は上記複数の層に含まれる少なくともひとつの層であり、上記第2の領域は上記複数の層のうち上記少なくともひとつの層以外の層であることを特徴とする請求項2に記載の光学ドライブ装置。 - 光ディスクに記録されている情報の少なくとも一部をキャッシュするキャッシュメモリと、
上記特定領域に相当する光ディスク上の領域に記録されている情報が上記キャッシュメモリにキャッシュされている場合、上記抽出手段によって抽出された当該情報の代わりに、上記キャッシュメモリにキャッシュされている当該情報を外部に出力する出力手段と、を更に備えていることを特徴とする請求項1から3のいずれか1項に記載の光学ドライブ装置。 - 上記変換手段は、上記特定領域に相当する光ディスク上の領域に記録されている情報が上記キャッシュメモリにキャッシュされていない場合に限って、上記第1の読み出しコマンドを上記第2の読み出しコマンドに変換することを特徴とする、
請求項4に記載の光学ドライブ装置。 - 上記第1の読み出しコマンドには、上記特定領域の先頭にあるセクタのセクタ番号HeadSecHDDと、当該領域に属するセクタのセクタ数SecNumHDDとが上記第1の領域指定情報として含まれており、
上記変換手段は、上記特定領域に相当する光ディスク上の領域の先頭にあるセクタのセクタ番号HeadSecODDと、当該領域に属するセクタのセクタ数SecNumODDとを、
HeadSecODD = S +(HeadSecHDD div 4)
SecNumODD=((HeadSecHDDmod4)+3)div4+{(SecNumHDD −(HeadSecHDD mod 4))+3}div 4
(Sは、上記ハードディスク上のセクタ番号0のセクタに相当する領域を含む光ディスク上のセクタのセクタ番号)
に従って算出するとともに、算出したセクタ番号HeadSecODDとセクタ数SecNumODDとを第2の領域指定情報として含む第2の読み出しコマンドに変換する、ことを特徴とする、
請求項1から5のいずれか1項に記載の光学ドライブ装置。 - 上記第1の読み出しコマンドには、上記特定領域の先頭にあるセクタのセクタ番号HeadSecHDDと、当該領域に属するセクタのセクタ数SecNumHDDとが上記第1の領域指定情報として含まれており、
上記光ディスクドライブが読み出した情報を格納するためのバッファを更に備え、
上記抽出手段は、上記第2の領域指定情報が指定する領域のうち最小の領域の先頭にあるセクタのセクタアドレスY1と当該最小の領域の最後尾にあるセクタのセクタアドレスY2とを、
Y1=HeadSecHDD mod 4
Y2=(HeadSecHDD+SecNumHDD) mod 4
(Sは、上記ハードディスク上のセクタ番号0のセクタに相当する領域を含む光ディスク上のセクタのセクタ番号)
に従って算出するとともに、上記最小の領域の先頭にあるセクタのうちセクタアドレスがY1より小さい領域と上記最小の領域の最後尾にあるセクタのうちセクタアドレスがY2以上である領域とを上記最小の領域から除いた領域に記録されている情報を抽出することを特徴とする、
請求項1から6のいずれか1項に記載の光学ドライブ装置。 - 上記第1の読み出しコマンドはATAコマンドであり、上記第2の読み出しコマンドはATAPIコマンドであることを特徴とする、
請求項1から7のいずれか1項に記載の光学ドライブ装置。 - ハードディスクドライブに対する第1の書き込みコマンドであって連続したセクタからなるハードディスク上の特定領域を指定する第1の領域指定情報を含む第1の書き込みコマンドを、光ディスクドライブに対する第2の書き込みコマンドであって、上記特定領域に相当する光ディスク上の領域を内包する、連続したセクタからなる光ディスク上の領域を指定する第2の領域指定情報を含む第2の書き込みコマンドに変換する変換手段と、
光ディスクドライブに対する上記第2の領域指定情報を含む読み出しコマンドを生成する生成手段と、
上記読み出しコマンドに基づいて、光ディスクから上記第2の領域指定情報が指定する領域に記録されている情報を読み出す読出手段と、
上記光ディスクドライブによって光ディスクから読み出された情報から、上記第1の書き込みコマンド及び上記第2の書き込みコマンドに基づいて、上記特定領域に相当する光ディスク上の領域に記録されている情報を抽出する抽出手段と、
上記光ディスクドライブによって光ディスクから読み出された情報のうち、上記抽出手段により抽出された情報を上記第1の書き込みコマンドに従って書き込む情報により更新して得られる情報を、上記光ディスク上の上記第2の領域指定情報が指定する領域に記録する記録手段と、を備えている、ことを特徴とする光学ドライブ装置。 - 上記第1の書き込みコマンドには、上記特定領域の先頭にあるセクタのセクタ番号HeadSecHDDと、当該領域に属するセクタのセクタ数SecNumHDDとが上記第1の領域指定情報として含まれており、
上記変換手段は、上記特定領域に相当する光ディスク上の領域の先頭にあるセクタのセクタ番号HeadSecODDと、当該領域に属するセクタのセクタ数SecNumODDとを、
HeadSecODD = S +(HeadSecHDD div 4)
SecNumODD=((HeadSecHDDmod4)+3)div4+{(SecNumHDD −(HeadSecHDD mod 4))+3}div 4
(Sは、上記ハードディスク上のセクタ番号0のセクタに相当する領域を含む光ディスク上のセクタのセクタ番号)
に従って算出するとともに、算出したセクタ番号HeadSecODDとセクタ数SecNumODDとを第2の領域指定情報として含む第2の書き込みコマンドに変換する、ことを特徴とする、
請求項9に記載の光学ドライブ装置。 - 上記第1の書き込みコマンドには、上記特定領域の先頭にあるセクタのセクタ番号HeadSecHDDと、当該領域に属するセクタのセクタ数SecNumHDDとが上記第1の領域指定情報として含まれており、
上記光ディスクドライブが読み出した情報を格納するためのバッファを更に備え、
上記抽出手段は、上記第2の領域指定情報が指定する領域のうち最小の領域の先頭にあるセクタのセクタアドレスY1と当該最小の領域の最後尾にあるセクタのセクタアドレスY2とを、
Y1=HeadSecHDD mod 4
Y2=(HeadSecHDD+SecNumHDD) mod 4
(Sは、上記ハードディスク上のセクタ番号0のセクタに相当する領域を含む光ディスク上のセクタのセクタ番号)
に従って算出するとともに、上記最小の領域の先頭にあるセクタのうちセクタアドレスがY1より小さい領域と上記最小の領域の最後尾にあるセクタのうちセクタアドレスがY2以上である領域とを上記最小の領域から除いた領域に記録されている情報を抽出することを特徴とする、
請求項9または10に記載の光学ドライブ装置。 - 上記第1の書き込みコマンドはATAコマンドであり、上記第2の書き込みコマンドはATAPIコマンドであることを特徴とする、
請求項9から11のいずれか1項に記載の光学ドライブ装置。 - 外部から入力されたハードディスクドライブに対する第1の読み出しコマンドであって連続したセクタからなるハードディスク上の特定領域を指定する第1の領域指定情報を含む第1の読み出しコマンドを、光ディスクドライブに対する第2の読み出しコマンドであって、上記特定領域に相当する光ディスク上の領域を内包する、連続したセクタからなる光ディスク上の領域を指定する第2の領域指定情報を含む第2の読み出しコマンドに変換する変換工程と、
上記第2の読み出しコマンドに基づいて、上記光ディスクドライブが光ディスクから上記第2の領域指定情報が指定する領域に記録されている情報を読み出す読出工程と、
上記読出工程において光ディスクから読み出された情報から、上記第1の読み出しコマンド及び上記第2の読み出しコマンドに基づいて、上記特定領域に相当する光ディスク上の領域に記録されている情報を抽出する抽出工程と、を含んでいる、ことを特徴とする光学ドライブ装置の駆動方法。 - ハードディスクドライブに対する第1の書き込みコマンドであって連続したセクタからなるハードディスク上の特定領域を指定する第1の領域指定情報を含む第1の書き込みコマンドを、光ディスクドライブに対する第2の書き込みコマンドであって、上記特定領域に相当する光ディスク上の領域を内包する、連続したセクタからなる光ディスク上の領域を指定する第2の領域指定情報を含む第2の書き込みコマンドに変換する変換工程と、
光ディスクドライブに対する上記第2の領域指定情報を含む読み出しコマンドを生成する生成工程と、
上記読み出しコマンドに基づいて、光ディスクから上記第2の領域指定情報が指定する領域に記録されている情報を読み出す読出工程と、
上記光ディスクドライブによって光ディスクから読み出された情報から、上記第1の書き込みコマンド及び上記第2の書き込みコマンドに基づいて、上記特定領域に相当する光ディスク上の領域に記録されている情報を抽出する抽出工程と、
上記光ディスクドライブによって光ディスクから読み出された情報のうち、上記抽出工程において抽出された情報を上記第1の書き込みコマンドに従って書き込む情報により更新して得られる情報を、上記光ディスク上の上記第2の領域指定情報が指定する領域に記録する記録工程と、を含んでいる、ことを特徴とする光学ドライブ装置の駆動方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008207038A JP2010044816A (ja) | 2008-08-11 | 2008-08-11 | 光学ドライブ装置、及び、光学ドライブ装置の駆動方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008207038A JP2010044816A (ja) | 2008-08-11 | 2008-08-11 | 光学ドライブ装置、及び、光学ドライブ装置の駆動方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010044816A true JP2010044816A (ja) | 2010-02-25 |
Family
ID=42016084
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008207038A Pending JP2010044816A (ja) | 2008-08-11 | 2008-08-11 | 光学ドライブ装置、及び、光学ドライブ装置の駆動方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010044816A (ja) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0251726A (ja) * | 1988-08-16 | 1990-02-21 | Csk Corp | 光記録媒体アクセス用制御ボード |
JPH0251727A (ja) * | 1988-08-16 | 1990-02-21 | Csk Corp | 光記録媒体アクセス方式 |
JPH04111113A (ja) * | 1990-08-31 | 1992-04-13 | Kawasaki Steel Corp | ハードディスクエミュレータ |
JPH08328761A (ja) * | 1995-05-31 | 1996-12-13 | Fujitsu Ltd | 光ディスクライブラリ装置 |
JP2002222087A (ja) * | 2000-11-24 | 2002-08-09 | Mitsubishi Chemicals Corp | 書換可能型情報記録媒体及び情報記録媒体並びにブートストラップ方法 |
JP2005267669A (ja) * | 2004-03-16 | 2005-09-29 | Sony Corp | 情報処理装置および方法、プログラム記録媒体、並びにプログラム |
JP2006244455A (ja) * | 2005-03-01 | 2006-09-14 | Sunplus Technology Co Ltd | パソコン装置における音声映像データの読み書き方法とシステム |
-
2008
- 2008-08-11 JP JP2008207038A patent/JP2010044816A/ja active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0251726A (ja) * | 1988-08-16 | 1990-02-21 | Csk Corp | 光記録媒体アクセス用制御ボード |
JPH0251727A (ja) * | 1988-08-16 | 1990-02-21 | Csk Corp | 光記録媒体アクセス方式 |
JPH04111113A (ja) * | 1990-08-31 | 1992-04-13 | Kawasaki Steel Corp | ハードディスクエミュレータ |
JPH08328761A (ja) * | 1995-05-31 | 1996-12-13 | Fujitsu Ltd | 光ディスクライブラリ装置 |
JP2002222087A (ja) * | 2000-11-24 | 2002-08-09 | Mitsubishi Chemicals Corp | 書換可能型情報記録媒体及び情報記録媒体並びにブートストラップ方法 |
JP2005267669A (ja) * | 2004-03-16 | 2005-09-29 | Sony Corp | 情報処理装置および方法、プログラム記録媒体、並びにプログラム |
JP2006244455A (ja) * | 2005-03-01 | 2006-09-14 | Sunplus Technology Co Ltd | パソコン装置における音声映像データの読み書き方法とシステム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI432987B (zh) | 記憶體儲存裝置、其記憶體控制器與病毒掃描方法 | |
TWI421692B (zh) | 具有資料夾分享功能的虛擬媒體之系統及其執行方法 | |
JP5621909B2 (ja) | 情報処理装置、ストレージシステムおよび書き込み制御方法 | |
TWI420305B (zh) | 記憶體儲存裝置、其記憶體控制器與自動產生填充檔案的方法 | |
US9235583B2 (en) | Virtual media with folder-mount function | |
JP2007310637A (ja) | データ記憶装置およびデータ記憶方法 | |
JP2015082269A (ja) | ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法 | |
JP6540363B2 (ja) | ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム | |
JP2006523882A (ja) | ユニバーサルなドライブ装置のためのフォーマットマッピング方式 | |
TWI450099B (zh) | 模擬可覆寫光碟裝置的儲存系統、控制器、電腦系統及方法 | |
JP6350090B2 (ja) | ストレージ制御装置、コピー制御プログラム、およびコピー制御方法 | |
JP2007233638A (ja) | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム | |
US7716412B2 (en) | Data storage apparatus and data access method for controlling address information for data writing using a free area control table | |
JP5059493B2 (ja) | アクセス制御装置、アクセス制御方法、アクセス制御プログラムおよび記録媒体 | |
JP2007034467A (ja) | デバイスコントローラ | |
US20050152251A1 (en) | Method and apparatus for recording check data of file system on recording medium | |
JP2005182615A (ja) | エミュレーションシステムおよびエミュレーション方法 | |
JP2010044816A (ja) | 光学ドライブ装置、及び、光学ドライブ装置の駆動方法 | |
JP6015752B2 (ja) | 情報処理装置、情報処理プログラム、およびアクセス制御方法 | |
JP2007108853A (ja) | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム | |
JP2015064685A (ja) | ストレージ管理システム、ストレージ管理方法、プログラム、および、情報処理システム | |
US20150281361A1 (en) | Wireless access device and wireless access system | |
US8209452B2 (en) | External device having a virtual storage device | |
JP2009129453A (ja) | ハードディスクデータ保護装置、ハードディスク、コンピュータ及びハードディスクデータ保護方法 | |
JP2005115983A (ja) | 記録再生装置及び記録方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100826 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20111024 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111206 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120327 |