JP2001195198A - ドライブ装置及び、バッファ管理方法 - Google Patents

ドライブ装置及び、バッファ管理方法

Info

Publication number
JP2001195198A
JP2001195198A JP2000335629A JP2000335629A JP2001195198A JP 2001195198 A JP2001195198 A JP 2001195198A JP 2000335629 A JP2000335629 A JP 2000335629A JP 2000335629 A JP2000335629 A JP 2000335629A JP 2001195198 A JP2001195198 A JP 2001195198A
Authority
JP
Japan
Prior art keywords
sector
data
medium
drive device
buffer
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
Application number
JP2000335629A
Other languages
English (en)
Inventor
Masahiro Kawasaki
雅弘 川崎
Masayuki Imada
正幸 今田
Tsutomu Hayabuchi
努 早渕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2000335629A priority Critical patent/JP2001195198A/ja
Publication of JP2001195198A publication Critical patent/JP2001195198A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)

Abstract

(57)【要約】 【課題】 送信すべきでないセクタに遭遇してもバッフ
ァリングを止めて無駄な待ち時間を発生させることな
く、さらに送信すべきでないセクタを誤ってホストに送
ることの無いドライブ装置及び、バッファ管理方法を提
供する。 【解決手段】 メディア上のセクタの種別を記憶するセ
クタ情報バッファと、ホストに送信すべきでないセクタ
のセクタ種別を含めた判定及び書き込みを行うセクタ判
定手段と、記憶されたセクタ種別を参照するセクタ管理
手段と、参照された結果に基づいてデータをホストに送
信するデータ送信手段を備えるドライブ装置及びバッフ
ァ管理方法を提供する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、CD−ROMドラ
イブやCD−Rドライブ、DVD−ROMドライブ等の
ドライブ装置及び、当該ドライブ装置のバッファ管理方
法に関するものである。
【0002】
【従来の技術】近年、その必要性及び扱いやすさから大
容量記憶メディア(以下メディアと称する)としてCD
(CompactDisc:CD-ROM CD-R CD-RW 等) 、DVD(Digi
tal Versatile Disc:DVD-R DVD-RW DVD-RAM DVD-ROM
等) 等が利用されている。また、上記メディアを読み書
きするドライブ装置としてCD−ROMドライブやCD
−Rドライブ、DVD−ROMドライブ等が用いられ
る。
【0003】上記各メディアは、所定の仕様に従ってデ
ータを記憶しており、CDは例えば1セクタ(MODE
1の場合、ユーザ領域は2048バイト)を1つの単位
としてデータを記憶している。また、DVDは1ブロッ
ク(=16セクタ)を1つの単位としてデータを記憶
し、当該DVDからの読み出しは1ブロック単位で行わ
れる。但し、当該DVDより読み出されたデータは、ホ
スト、即ち接続されるパーソナルコンピュータ等に対し
て1セクタ単位で転送される。
【0004】上記各メディア上のそれぞれのセクタに
は、連続した固有の物理アドレスが割り振られている。
通常、ホストからは論理アドレスを用いて読み出し要求
が行われるため、上記メディアを読み出すドライブ装置
では、論理アドレスを物理アドレスに変換し、当該物理
アドレスを用いてメディアからデータを読み出す。さら
にメディアに記録された各ファイルがどのアドレスに記
録されているかを記述したファイル管理構造を有する。
尚、CDの場合にはMSF(Min/Sec/Fram
e)で表される物理アドレスで指定することができるド
ライブもある。
【0005】ところで、ドライブ装置はホストから要求
されたアドレスをメディアから読み出すが、メディア上
に書かれているファイルは通常、連続した領域に記憶さ
れている。このため、ドライブ装置は要求されたアドレ
スに続く部分も先読みし、次のホストからの要求に対し
てキャッシュバッファ上のデータを読み出すことによ
り、効率の良い応答を可能にしている。
【0006】以下、従来の実施の形態として、パケット
ライティングで記録されたメディアに対するバッファ管
理方式について図面を参照しながら説明する。
【0007】図30に従来のバッファリング処理のフロ
ーを示す。尚、ホストへのデータの送信(転送)とメデ
ィアからの読み出しは並行して処理できるようにするた
め、ドライブ装置内部ではホストにデータを送信する送
信側と、メディアからデータを読み出す読み出し側の処
理は、時分割やタスク処理などによって分かれている。
【0008】まず、上記送信側の処理として、ホストか
ら要求されたアドレスが、既にメディアから読みだされ
キャッシュバッファに存在するかキャッシュ管理手段を
用いてチェックする(図30:S3001〜S300
2)。キャッシュバッファに上記目的とするアドレスに
対応するデータが存在する場合には、キャッシュバッフ
ァからホストに送信する(図30:S3002Yes〜
S3006)。キャッシュに存在しない場合には、読み
出し側に読み出し要求を出し、要求したセクタが読み出
されるのを待つ(図30:S3002No〜S300
3)。読み出したデータがエラーであれば、ホストにエ
ラーを返す(図30:S3004Yes〜S300
5)。読み出したデータが正常であれば、ホストにデー
タ転送を行う(図30:S3004No〜S300
6)。
【0009】一方、読み出し側は指定されたセクタか
ら、メディア上のデータを読み出す処理を開始する(図
30:S3008)。メディアからの読み出しは、目的
位置であるセクタの手前にピック(レンズ)を動かすS
EEK処理を行い、目的位置に到達した時点からキャッ
シュバッファに読み出したデータを記録していく(図3
0:S3009〜S3010)。メディアからの読み出
しがエラーであれば、エラー処理を行う(図30:S3
011Yes〜S3012)。この時、通常は何回かリ
トライ処理を行うがここでは説明を省略する。
【0010】正常に読み出せた場合、メディアから読み
出したセクタのヘッダ情報を確認し、継ぎ目でない場合
には、キャッシュバッファ管理用のポインタを1つ進
め、先読みを続ける(図30:S3011No→S30
13No→S3015、S3016No〜S301
0)。尚、継ぎ目については後述する。
【0011】規定の先読み分だけ読んだならば、先読み
処理を終了する(図30:S3016Yes〜S301
7)。ここにポインタとは、読み書きするデータが格納
されている場所のアドレスを示すものである。
【0012】以上により、ドライブ装置はその構造によ
るデータ転送速度のスピード、即ちホストの読み出し要
求に対するレスポンスを高めている。
【0013】しかしながら、メディア上に記憶されるデ
ータには、仕様上ホストに対して送ってはならないセク
タが存在する。
【0014】例えば、図26に示されるメディア上のユ
ーザ領域は、ディスクの先頭にあるLeadIn領域と
ディスクの最後にあるLeadOut領域に挟まれてい
るが、当該ユーザ領域以外の部分は、仮にホストから要
求されてもエラーを返す。
【0015】また、DVDの場合にはユーザ領域の一部
にコピープロテクトがかけられたものがあり、プロテク
トのかかっているアドレスの読出しをホストより要求さ
れた場合で所定の認証手続きが完了していない場合には
エラーを返す。さらに、DVDの場合、1ブロック単位
でデータが記録されているが、メディア上の最後のブロ
ックが5セクタ分のデータしかない場合には、残りの1
1セクタは”0”で埋められたダミーセクタが記録され
る。当該ダミーセクタの読出しの際も、上記LeadO
ut領域の場合と同様にドライブ装置がホストにエラー
を返す必要がある。
【0016】上記ダミーセクタは、DVDの2層ディス
クの場合、各層に存在することもある。即ち、当該2層
ディスクの1層目の最後にダミーセクタがある場合、論
理アドレスは1層目のダミーセクタの手前と2層目の先
頭が続いている。よって、1層目の最後からデータを連
続してホストに転送する際に、2層目の先頭の替わり
(先頭の前)にダミーセクタを誤って送ってしまわない
ように、1層目の終わりでいったん読み出しを中止し、
1層目のデータ(ダミーセクタを除く)をホストに送っ
てから2層目の読み出しを行う。
【0017】また、CD−R/RWのパケット・ライテ
ィングと呼ばれる書き込み方式を用いた場合、図27に
示すように1回の書き込み単位毎にスプライス(以下、
継ぎ目と称する)が作られる。この継ぎ目の部分は、上
記ファイル管理構造の情報に含まれていないため、ホス
トがファイル管理構造に従ってメディアから読み出す限
り、この継ぎ目の部分を要求することはない。但し、例
えば特殊なソフトウェア等により当該継ぎ目部分のデー
タを要求された場合にはドライブ装置はホストにエラー
を返す必要がある。
【0018】ところで、図29に示すように、上記CD
−R/RWの継ぎ目は7セクタと規定されており、1つ
のパケット2901の記録終了時には、最後のセクタ1
02に続いてROUT1、ROUT2、LINKを書い
て終了する。次のパケットの記録開始時には、LIN
K、RIN1、RIN2、RIN3、RIN4を書き込
み、続くセクタ110からデータを書き込む。尚、LI
NKのセクタは部分的に上書きされていることと、記録
開始/停止のためのレーザー出力が安定性するまで時間
がかかるという問題から、LINKセクタおよびその前
後のセクタは正常に読めないことがあるが、継ぎ目の両
端のROUT1およびRIN4は問題なく読める場合が
多い。但し、継ぎ目の部分はメディアから正常に読めた
としてもホストにエラーを返さなければならない。
【0019】DVD−R/RWの場合も、Linkin
g Lossと呼ばれる継ぎ目があるため、上記同様ホ
ストから当該継ぎ目のデータを要求された場合にはエラ
ーを返す。
【0020】さらに、物理アドレスとしては存在する
が、論理アドレスに割り振られていないためにホストか
ら要求されることはないが、ドライブ装置が誤って送ら
ないようにしなければならないセクタがある。
【0021】即ち、例えば上記CD−R/RWのパケッ
ト・ライティングによる書き込み方式には、metho
d1とmethod2がある。method1は継ぎ目
の部分にも論理アドレスが割り当てられており、ファイ
ル管理構造に継ぎ目の部分を含めないことによってホス
トが継ぎ目の部分を要求することがないようにしている
が、図28に示すmethod2は継ぎ目の部分に論理
アドレスを割り当てず、データの記録された部分だけを
連続した論理アドレスとして割り当てる方式である。
【0022】上記method2では、ホストからは通
常論理アドレスで要求されるため、ドライブ装置はこの
論理アドレスをメディア上の物理アドレスに変換して読
み出しを行う。継ぎ目の部分は論理アドレスが割り当て
られていないため、ホストから論理アドレスとして要求
されることは有りえないが、ドライブが誤ってホストに
当該継ぎ目の部分を送信しないようにしなければならな
い。
【0023】尚、上記method2では、継ぎ目の部
分を詰めて論理アドレスが振られているため、当該方式
で記録されたデータの後ろに、継ぎ目のセクタ分だけ、
対応する物理アドレスが存在しない領域が発生する。こ
の部分はLeadOut領域を要求された場合と同様
に、ホストに対してエラーを返す。
【0024】以上に挙げた様に、メディア上にはホスト
に対して送信してはならないセクタが複数存在してお
り、その内容に応じてエラーを返すなどの適切な動作を
する必要がある。
【0025】さらに図29に示すように、ドライブ装置
は、先読み中に上述したようなホストに転送してはなら
ないセクタに遭遇すると、誤ってホストに送信してしま
わないようにするために先読みを停止する。
【0026】
【発明が解決しようとする課題】しかしながら、ドライ
ブ装置がホストに送ってはならないセクタに遭遇して先
読みバッファリングを止めた場合、当該ホストに送って
はいけないセクタは有効なセクタと見なされていない。
このために、もしホストからそのセクタに対する読み出
し要求を受けた場合、一度読んでいるにも関わらず、再
度メディアから読み出す処理を行うため、無駄な処理と
なってしまう。
【0027】即ち、図29において、アドレス103が
継ぎ目であり、ドライブ装置におけるバッファ管理では
アドレス103に遭遇すると、送信してはならないセク
タであるために先読みを停止する。ここで、上記バッフ
ァ管理は、アドレス102までが有効であるとしている
ため、さらにホストからアドレス103を要求された場
合、まだメディアから読み出されていないセクタである
として、再度メディアから読み出してしまう。しかし、
メディアから読み出す処理は、ドライブ装置において物
理的な動作、即ちピックの移動が生じるために、データ
転送レベルからみると非常に遅いものである。
【0028】これらの問題点に対する解決策として「D
VDのバッファ管理方式」(特開平11−30595
2)があり、読み出した部分までのポインタと転送して
も良い部分のポインタを持たせ、複数のポインタで管理
することで、ホストに送ってはならないセクタを誤って
送ることをなくすと共に、一度メディアから読み出した
ホストに送ってはならないセクタに対して、ホストから
読み出し要求をされた場合に、すでに読み出されている
セクタに対しては再度メディアから読み出すことなく、
エラーを返すことができる。
【0029】しかし、この方法の場合、ホストに送って
はならない領域の後に、再びホストに送っても良い領域
が現れるような場合に対応できないという問題がある。
【0030】即ち、例えばDVDの2層メディア等の映
画再生中に2つの層をまたがる部分において、1層目の
最後のホストに送ってはならないダミーセクタ部分の後
に、ホストに送っても良い2層目の先頭のセクタを続け
てバッファリング管理することができない。即ち、2層
目の先頭がホストに送っても良い領域として管理できな
い。このため、2層目の先頭部分に対する先読みができ
ず、ホストから要求されてからメディアから読み出すこ
とになり、データの転送までに時間がかかり、例えば画
面が一時的に止まってしまうという現象が発生する。
【0031】また、上述した管理方式においてダミーセ
クタを送らないようなシステムを作ると、バッファ管理
が複雑になる。
【0032】さらに、パケット・ライティングにより書
き込みされた場合では、一般に1つのパケットは100
〜200セクタであるため、継ぎ目も100〜200セ
クタ毎に現れる。このためホストに送ってはならないセ
クタと送っても良いセクタが頻繁に切り替わる。ホスト
がファイル管理構造に従って読出要求を出す場合、継ぎ
目の部分を飛ばしてデータの読出を要求してくる。この
ため、ドライブ装置が継ぎ目を検出して先読み停止し、
続いてホストが継ぎ目の後ろのユーザ領域を要求する
と、キャッシュバッファ上に先読みされていないため、
メディアからの読み出し処理が必要となる。このとき、
上述した、ピックを目的位置に移動するシーク処理が発
生するため、連続して読み出しているときに比べて非常
に多くの時間がかかる。
【0033】また、継ぎ目に遭遇した際にエラーが発生
しても先読みを止めないようにした場合、エラーのため
にリトライを繰り返すことになる。こうなると逆にリト
ライに時間がかかり、先読みを止める方法よりも処理が
遅くなってしまうことが十分に考えられる。さらに、上
述したように、継ぎ目を構成するLINKセクタ前後の
複数セクタは正常に読めない可能性が高く、複数回のリ
トライが発生するために一層遅くなることが容易に予想
できる。
【0034】また、ホストが継ぎ目の部分を要求するこ
とがないと仮定して、継ぎ目の部分の7セクタを飛ばし
てバッファリングを続けると、もしホストが継ぎ目の部
分を要求した場合に、エラーを返すことができず不正デ
ータを送ってしまう等、規格外の動作をしてしまう。ま
た、パケット・ライティングの規格に従わず、即ち継ぎ
目が7セクタ以外で記録されたメディアには対応するこ
とができない。
【0035】さらに、SCSIやATAPIなどのイン
ターフェース規格では、読み出したセクタがエラー訂正
できない場合であっても、ホストに転送するという設定
が可能なものがある。これらを用いたシステムにおいて
は、エラー時にはデータを送信しない通常の設定にして
いる状態で、読み出したセクタにエラーがあった場合
に、エラーでも送信する設定に変更して読み直すと、一
度キャッシュバッファに読み出しているにも関わらず、
再度メディアから読み出すという無駄が生じる。
【0036】逆に、エラーでもデータを送信する設定に
している状態で読み出したセクタにエラーがあった場合
には、キャッシュバッファ上のセクタは有効としてホス
トに送信されるが、エラー時は送信しない設定に戻し
て、同じセクタを要求した場合にエラーのセクタを送信
してしまう。エラー時に転送するかどうかの設定を変更
するたびに、キャッシュバッファをクリアする方法でこ
の問題は回避できるが、エラーのセクタ以外のセクタも
キャッシュバッファ上からクリアされてしまうため、結
局再度メディアから読み出すという無駄が生じる。
【0037】また、映像や音楽の再生などでは、メディ
アから読み出しながら映像再生をするため、多少のエラ
ーがあったとしてもメディアからの読み出しを止めない
ようなリアルタイム性が要求される。このため、読み出
した結果がエラーであってもそのセクタを送るような仕
組みが用いられる。実際には映像再生の速度に対して、
メディアからの読み出しの方が速いため、先読み処理が
進んでおり、エラーのあったセクタは、キャッシュバッ
ファが空になりホストへの送信が途切れる直前までリト
ライをすることができる。
【0038】リトライした結果がエラーであった場合に
は、そのエラーセクタがホストに送られるが、もしホス
トが同じアドレスを再度要求した場合にはキャッシュヒ
ットとなり、すでにキャッシュバッファにあるエラーセ
クタを送ってしまう。ここでエラーセクタであればリト
ライすることにより、正常なセクタが読める可能性があ
るにも関わらず、そのセクタがエラーであるかどうかの
管理を行っていないため、処理ができない。
【0039】従って本発明は、上記問題点に鑑み、送信
すべきでないセクタに遭遇してもバッファリングを止め
て無駄な待ち時間を発生させることなく、さらに送信す
べきでないセクタを誤ってホストに送ることの無いドラ
イブ装置及び、バッファ管理方法を提供することを目的
とする。
【0040】
【課題を解決するための手段】本発明は、上記目的を達
成するために以下の手段を備える。
【0041】すなわち、ホストからのデータ読出要求に
基づいて、所定のメディアからデータを読み出すデータ
読出手段と、当該データを上記ホストに送信すると共
に、キャッシュバッファを用いて当該データを管理する
データ送信手段を備えたドライブ装置を前提としてい
る。
【0042】ここで、セクタ情報バッファが、メディア
上においてデータが記憶されるセクタの種別を記憶す
る。このセクタ種別の判定及び書き込みは、セクタ判定
手段が行う。上記記憶されたセクタ種別は、セクタ管理
手段により必要に応じて参照され、参照された結果に基
づいて、データ送信手段がデータをホストに送信、又は
エラーを送信する。
【0043】従って、通常例えば上記セクタ種別が「継
ぎ目」や「エラー」等を意味するものであった場合に
は、当該データ(セクタ)はキャッシュバッファには記
憶されず、さらに先読みが止まっていたものが、上記セ
クタ情報バッファを備えることで、セクタ種別が「継ぎ
目」や「エラー」であることを判定し、記憶可能とな
る。即ち、上記ホストが「継ぎ目」や「エラー」等に該
当するセクタを要求した場合には、再度メディアを読み
だすことなく上記セクタ情報バッファのみで判断し、直
ちにデータまたはエラーを返すことが可能となる。
【0044】尚、上記セクタ判定手段は、上記データ読
出手段が読み出した、ホストに送信すべきでないセクタ
のセクタ種別も上記セクタ情報バッファに書き込む構成
や、上記データ読出手段は、上記ホストに送信すべきで
ないセクタをメディアから読み出した後に、当該送信す
べきでないセクタの後部にあるセクタの先読みを行う構
成がある。
【0045】また、セクタ判定手段が、セクタ種別の情
報が記憶されている領域のみ、即ち、データ領域のエラ
ー等に関わらず、セクタ種別を判定する構成では、ユー
ザデータ部分が正しく読めない可能性が高い部分でも当
該セクタの種別を判断できる確率が高くなる。このた
め、不必要なセクタであればユーザデータ部分がエラー
であってもリトライをしないといった制御が可能にな
る。
【0046】さらに、セクタ情報バッファは、上記キャ
ッシュバッファに記憶されるデータの、セクタ種別の情
報が記憶されている領域により構成することで、キャッ
シュバッファとセクタ情報バッファを兼用することが可
能になる。
【0047】上記メディアがCD(コンパクトディス
ク)である場合には、セクタ判定手段は、パケットライ
ティング方式におけるROUT1、ROUT2、LIN
K、RIN1、RIN2、RIN3、RIN4を判定
し、セクタ情報バッファに書き込む構成にしてもよい。
【0048】上記メディアがDVDである場合には、セ
クタ判定手段は、当該メディアのヘッダ部を参照してイ
ンクリメンタルライティング方式におけるLinkin
gLoss領域を判定することで、CDにおける継ぎ目
の判定と同様に扱うことができる。
【0049】さらに、セクタ判定手段は、DVDメディ
アのRMD(Recording ManagementData)を参照するこ
とでインクリメンタルライティング方式におけるLin
kingLoss領域を判定する構成としてもよい。
【0050】また、上記データ読出手段は、DVDメデ
ィアから複数のセクタを読み出すと共に、当該複数のセ
クタ単位で所定のセクタ種別の有無を判定する構成があ
る。
【0051】この構成では、読み出したブロックの最後
のセクタまでをセクタ情報バッファに記憶してキャッシ
ュヒットの有効範囲とすることが可能となるため、当該
ブロックのどのセクタに対する読み出し(先読み)に対
しても継ぎ目を即座に判定可能とすることができる。
【0052】また、データ読出手段は、セクタ判定手段
が判定したセクタ種別に基づいて、連続する所定数のセ
クタを読み飛ばす構成がある。
【0053】この構成では、継ぎ目の部分に遭遇したら
継ぎ目の部分だけバッファを空けてバッファリングを続
けるため、ホストが継ぎ目の直後のデータを要求しても
キャッシュに存在しており処理時間が速くなる。
【0054】また、データ読出手段は、さらに上記読み
飛ばしたセクタに対応するセクタ種別を上記セクタ情報
バッファに書き込む構成とし、さらに、セクタ種別は、
パケットライティング方式におけるROUT1、ROU
T2、LINK、RIN1、RIN2、RIN3、RI
N4とすることで、ホストから読み飛ばしたセクタの読
出要求があった場合には、上記7つのセクタ種別各々に
対応する数のセクタを読み飛ばすことが可能になる。
【0055】また、セクタ判定手段は、上記読み飛ばし
たセクタに対応するセクタ情報バッファに「未確定」を
示すセクタ種別を書き込むと共に、データ送信手段は、
上記「未確定」を示すセクタ種別をセクタ管理手段が読
み出した場合には、当該「未確定」に対応するセクタの
読み出し指示を行う構成がある。
【0056】この構成では、継ぎ目であると確定したセ
クタに続く、継ぎ目であると推定されるセクタに対して
ホストから要求がきても、継ぎ目であると確定するまで
はエラーを返さない。このため継ぎ目が例えば7セクタ
でないメディアや、継ぎ目の途中を読出要求された場合
でも、正しい処理を行うことができる。
【0057】また、データ送信手段は、「未確定」に対
応するセクタの読み出し指示に際して、上記キャッシュ
バッファのクリアを行わない構成がある。
【0058】この構成では、未確定であってもその他の
有効なキャッシュまでクリアしないため、効率のよいバ
ッファリングを行うことができる。
【0059】また、データ読出手段は、上記「未確定」
セクタに連続する「未確定」セクタを続けて読み出す構
成もある。この場合2回目の「未確定」部分の読出要求
に対する応答を早くすることができる。尚、上記データ
読出手段は、上記所定数のセクタを読み飛ばした後に
は、連続して上記所定数の読み飛ばしを行わない構成と
することで、有効なセクタを無駄に読み飛ばすことを防
ぐことができる。
【0060】尚、上記「未確定」に対応するセクタが継
ぎ目の場合に、上記所定数以下の読み飛ばしを行う構成
では、既に読みだされたセクタ情報バッファに「未確
定」として上書きしてしまうことを防ぐことができる。
【0061】さらに、所定のセクタ種別をカウントする
カウンタを備えると共に、データ読出手段が、カウンタ
のカウント数に基づいて、読み飛ばす数を変更する構成
では、読み飛ばす数を実際のメディア上の継ぎ目に動的
に併せることが可能となり、無駄なシーク処理を減少さ
せることができる。
【0062】また、データ読出手段は、所定のメディア
の種別を判断すると共に、当該判断結果に基づいて、セ
クタ種別の判定方法やセクタの先読み条件を切り替える
構成では、例えばCDとDVDのセクタ情報バッファを
共用可能とすることができる。
【0063】また、プロテクトがかけられているメディ
アを読みだす場合に、当該プロテクトの解除が行われた
際に、上記セクタ情報バッファに記憶されている「プロ
テクト未解除」を示すセクタ種別を「プロテクト解除」
又は「送信可能」を示すセクタ種別に変更する構成があ
る。この構成では、プロテクトの解除によって既に読出
し済のプロテクトがかけられたセクタを無駄にすること
なく、効率のよいバッファ管理が可能である。
【0064】また、セクタ判定手段が、メディアにおけ
るホストに送信可能なアドレスを記憶し、当該アドレス
に該当しない場合には「送信不可能」を示すセクタ種別
を、該当する場合には「送信可能」を示すセクタ種別を
上記セクタ情報バッファに書き込むとともに、データ送
信手段が、当該セクタ種別に基づいてデータの送信を制
御する構成がある。
【0065】さらに、セクタ判定手段が、メディアから
のセクタ読み出し時にエラーがあった場合には、当該エ
ラーのセクタに対応するセクタ情報バッファに「エラ
ー」を示すセクタ種別を書き込むことで、エラーセクタ
の読出要求が再度行われた場合でも即座に応答すること
ができる。尚、上記構成に加えて、データ読出手段が、
エラーのセクタから連続する所定数のセクタを読み飛ば
す構成や、セクタ判定手段が、上記読み飛ばしたセクタ
に対応するセクタ情報バッファに「未確定」を示すセク
タ種別を書き込む構成もある。
【0066】また、データ送信手段が、上記ホストから
セクタ情報バッファに記憶されているセクタ種別が「エ
ラー」であるセクタの読出要求を受けた場合、再度当該
「エラー」に対応するセクタをメディアから読み出すリ
トライ処理を行う構成や、リトライ処理の指示を受けた
場合には、規定のリトライ回数よりも少ない回数のリト
ライ処理を行う構成では、効率のよいリトライが可能と
なる。
【0067】さらに、ポインタ管理手段が、キャッシュ
バッファ及び上記セクタ情報バッファを複数のポインタ
で管理し、データ読出手段は、メディアから読み出した
セクタが所定のセクタ種別の場合には、上記複数のポイ
ンタを切り替える構成では、継ぎ目の部分のセクタをキ
ャッシュバッファ上に持つ必要が無くなり、バッファの
利用効率を上げることができる。
【0068】さらに、所定のセクタ種別をカウントする
カウンタを備えると共に、データ読出手段が、当該カウ
ンタのカウント数に基づいて、キャッシュバッファ及び
セクタ情報バッファの制御方法を切り替える構成では、
継ぎ目の部分を要求される場合とされない場合とでそれ
ぞれ利点、欠点があるバッファ管理方法のそれぞれ欠点
を補い、効率のよいバッファ管理を行うことができる。
【0069】また、セクタ判定手段が、ホストへの送信
が不可能であることを示すセクタ種別を複数種設け、当
該複数種のセクタ種別を上記セクタ情報バッファに書き
込むと共に、データ送信手段が、上記複数種のセクタ種
別それぞれに対応するエラーコードをホストへ送信する
構成では、本発明に関連しない他の処理とセクタ情報バ
ッファを共用することができ、メモリの利用サイズを抑
えることができる。また、いずれの「転送不可(ホスト
に転送してはならないセクタ)」の情報にも該当しない
場合には、1回の判断で「転送可能」と判断することが
できるため、通常時の処理が高速にできる。
【0070】
【発明の実施の形態】以下、添付図面を参照して、本発
明の実施の形態につき説明し、本発明の理解に供する。
尚、以下の実施の形態は、本発明を具体化した一例であ
って、本発明の技術的範囲を限定する性格のものではな
い。
【0071】〔実施の形態1〕まず図1を用いて、本実
施の形態1に係るドライブ装置の概要について説明す
る。図1に示すドライブ装置101は、パーソナルコン
ピュータ等に代表されるホスト102とデータの送受信
可能に接続されている。また、上記ホスト102は、必
要に応じてドライブ装置101を構成するデータ送信手
段103にデータ読出要求を送信する。ここで、上記デ
ータ読出要求には論理アドレスが用いられる。データ送
信手段103は、キャッシュ管理手段104を介して、
キャッシュバッファ105やメディア107より目的と
するデータを受け取り、上記ホストへ送信するが詳細は
後述する。尚、ドライブ装置101は、例えばメディア
としてCD(CompactDisc:CD-ROM CD-R CD-RW ) 、DV
D(Digital Versatile Disc:DVD-R DVD-RW DVD-RAM DV
D-ROM ) 、その他同様のセクタ構造を有するメディアを
読み出し可能であればよい。
【0072】図4はパケット・ライティングを用いて書
き込まれたメディア107のセクタ構造の一例で、継ぎ
目403付近を拡大したものである。図中に書かれてい
る数値はメディア上の物理アドレスを示す。この例で
は、アドレス103〜109の7セクタが継ぎ目403
である。なお、図中のアドレスは説明のためのものであ
り、実際のCD−R/RWメディアでは物理アドレスは
MSF形式である。さらにメディアのユーザ領域の先頭
付近にはファイル管理構造の情報を記録する。このた
め、継ぎ目が現れるのはもう少し後のアドレスである。
【0073】ここに、上記継ぎ目403は規格で7セク
タと決められており、ユーザデータの直後にROUT
1、ROUT2、そしてLINK、RIN1、RIN
2、RIN3、RIN4と続いて、次のユーザデータと
なる。継ぎ目に囲まれた部分、すなわちRIN4から次
のROUT1の間のユーザデータをパケットと呼ぶ。
ドライブ装置101はメディア107から読み出したデ
ータをキャッシュバッファ105に読み出し、そこから
ホストに送信するが、本発明では、さらにセクタ情報バ
ッファ110を設け、そこに読み出したセクタに関する
情報を記録するものである。
【0074】続いて、図1、図2、図3、図4を用い
て、本実施の形態1に係るドライブ装置の処理の詳細に
ついて説明する。尚、図2は、本実施の形態1における
バッファリング処理の処理フローである。まず、ホスト
においてメディア107上のデータが必要になった場合
に、データ読出要求をドライブ装置101を構成するデ
ータ送信手段104に送信する(図2:S201)。上
記データ読出要求を受信すると、データ送信手段104
は、上記データ読出要求に含まれるアドレスに対応する
データが既にメディアから読みだされキャッシュバッフ
ァ105に存在するかキャッシュ管理手段104を用い
てチェックする(図2:202)。
【0075】ここで、上記データ読出要求が初めての場
合を仮定すると、上記キャッシュバッファ105にはデ
ータが存在しない(図2:S202No)。
【0076】この場合、メディア107からの読み出し
を行い、当該読み出し結果がエラーの場合にはエラー終
了となる(図2:S203→S210、S222→S2
04Yes→S205)。当該読み出しは、上記キャッ
シュ管理手段104からデータ読出手段106への読み
出し要求により行われる。上記読み出し要求を受信した
データ読出手段106は、メディア上の目的位置の手前
にピックを動かすSEEK処理を行い、該ピックが目的
位置に到達した時点から読み出したデータをキャッシュ
バッファ105に記録していく(図2:S211、S2
12)。但し、メディア107からの読み出しがエラー
(読み出し不可能等)であれば、エラー処理を行い読み
出しを終了する(図2:S213Yes〜S214)。
この時、通常は何回かリトライ処理を行うが、ここでは
説明を省略する。
【0077】メディア107より正常に読み出せた場
合、セクタ判定手段109はメディアから読み出したセ
クタのヘッダ情報を確認する(図2:S215)。ここ
で継ぎ目でない場合、上記セクタ判定手段109は、セ
クタ情報バッファ110にセクタ種別を通常セクタとし
て記録し、ポインタ管理手段112に格納されるポイン
タを1つ(1セクタ分)進め、先読みを続ける(図2:
S215No→S221No→S212)。規定の先読
み分だけ読んだならば、先読み処理を終了する(図2:
S221Yes→S222)。尚、本実施の形態1で
は、上記ポインタは、キャッシュバッファ及びセクタ情
報バッファ双方を同時に管理するものであり、ポインタ
を1つ進めることにより、セクタ情報バッファの読み出
し(書き込み)位置も同時に進むようになっている。
【0078】尚、上記セクタ判定手段109による上記
セクタのヘッダ情報の確認は以下のように行われる。即
ち、図3はCDの例えばセクタ301のフォーマットを
示し、ヘッダ部分のMode領域302のbit7〜5
に継ぎ目であるかどうかの情報が記録されている。この
3bitが”000”である場合は通常セクタ、それ以
外の場合には継ぎ目であると判断する。
【0079】セクタ判定手段109がメディアから読み
出したセクタのヘッダ情報を確認し、データが継ぎ目で
ある場合には、セクタ情報バッファ110にセクタ種別
を「継ぎ目」と記録してポインタを1加算し、いったん
エラーで終了することで先読みバッファリングを停止さ
せる(図2:S215Yes〜S218、S219、S
220)。図4の場合を例に挙げると、アドレス103
で継ぎ目を検出し、当該アドレス103に対応するセク
タ情報バッファに「継ぎ目」であると記録する。即ちキ
ャッシュバッファ105上の有効範囲はアドレス103
の部分も含むことになる。
【0080】上記メディアからの読み出し処理(図2:
S210〜S222)が終了すると、その旨及び結果が
データ読出手段106より上記キャッシュ管理手段10
4に送信され、当該キャッシュ管理手段104は上記セ
クタを読み出した結果を判定する(図2:S203〜2
04)。
【0081】上記結果がエラーであった場合(即ち図
2:S214又はS220により終了)、データ送信手
段103はホストに対してエラーを返して終了する(図
2:S204Yes〜S205)。
【0082】上記結果がエラーでなかった場合(即ち図
2:S222により終了)、セクタ管理手段111は、
セクタ情報バッファ110の内容を参照して上記ホスト
からのデータ読出要求に対応するセクタの種別を判定す
る(図2:S204No〜S206)。
【0083】ここで、上記セクタが「継ぎ目」である場
合、データ送信手段103はホストに対してエラーを返
して終了する(図2:S206Yes〜S207)。こ
のときのエラーコードは、例えば「Illegal Mode for T
his Track 」である。
【0084】また、上記セクタが「正常」である場合、
データ送信手段103はキャッシュバッファ105より
所定のデータを読み出してホストに送信する(図2:S
206No〜S208)。
【0085】以上により、ホストからのデータ読出要求
に対応するデータ及び、当該データに連続するデータが
キャッシュバッファ105に記憶されるとともに、当該
キャッシュバッファに記憶されたセクタの情報、即ちセ
クタ種別もセクタ情報バッファ110に記憶される。
【0086】続いて、ホストよりデータ読出要求がデー
タ送信手段104に送信されると、データ送信手段10
4は、上記データ読出要求に含まれるアドレスに対応す
るデータが既にメディア107から読みだされキャッシ
ュバッファ105に存在するかキャッシュ管理手段10
4を用いてチェックする(図2:S201〜S20
2)。
【0087】ここで、上記キャッシュバッファ105に
対応するデータが無い場合、上記同様メディア107か
らの読み出し処理を行う(図2:S210〜S22
2)。
【0088】また、上記キャッシュバッファ105に対
応するデータが有る場合、セクタ管理手段111がセク
タ情報バッファ110よりセクタの情報を得ることで継
ぎ目か否かの判定を行い、継ぎ目でない場合にはデータ
を送信する(図2:S202Yes〜S209)。ここ
で、継ぎ目である場合でも、当該継ぎ目である情報はセ
クタ情報バッファ110に記憶されているので、メディ
ア107からの読み出し、即ち物理的な移動を伴わない
ため、即座にホストにエラーを返すことが可能となる。
【0089】以上のように、例えばパケット・ライティ
ングの場合、継ぎ目の部分はファイル管理構造から外さ
れているので、基本的にホストから継ぎ目の部分が要求
されることはないが、ホスト側のOSやデバイスドライ
バが先読みを行う機能を持つ場合などに、継ぎ目の部分
を要求される場合がある。このような場合には、従来の
方式では継ぎ目の部分に対して読み出し要求された場
合、キャッシュ管理用のポインタは加算されない状態で
ドライブの先読みが止まっていた。このため図29に示
すアドレス103(継ぎ目)が要求されると、ドライブ
はキャッシュヒットの判断でキャッシュバッファに無い
ものと判断し、一度メディアから読んでいるにも関わら
ず、再度メディアから読み出す処理を行い、そこで改め
て継ぎ目の検出をした結果エラーをホストに送信してい
た。
【0090】本実施の形態1では、図4に示すように、
アドレス103はキャッシュヒットの有効範囲であり、
さらにホストへの転送時にはセクタ情報バッファを確認
することで、セクタの情報を得ることができるため、再
度メディアから読み出すことなく即座にホストにエラー
を返すことができる。
【0091】尚、これらの処理はドライブ内部のCPU
が処理を行うプログラムとして作成しても良いし、ハー
ドウェア、即ちメディアから読みだしたデータをエラー
訂正しバッファメモリに入れる処理を行う光ディスクコ
ントローラと呼ばれるLSIが行っても良い。また、セ
クタのヘッダ部に記録されている継ぎ目かどうかの情報
の判断などの一部処理のみを上記光ディスクコントロー
ラが行い、ホストへ送ってもよいかどうかの判断はCP
U側のプログラムとして実装してもよい。
【0092】また、本実施の形態1ではパケット・ライ
ティングの場合を例として継ぎ目を見つけたらエラーを
返すようにしたが、継ぎ目を検出した場合にエラーを返
すことに限ったものではなく、エラーとせずに継ぎ目の
部分のデータをそのまま返したり、セクタを”0”で埋
めたデータを返したりしてもよい。また、エラーコード
は「Illegal Mode for This Track 」でなくとも良い。
【0093】また、セクタ情報バッファは、1セクタあ
たり1ビットの情報でも良いし、2ビット以上であって
もよい。さらに、セクタ情報バッファを新規に領域を確
保しても良いし、キャッシュバッファ上の未使用領域を
使っても良い。また、キャッシュバッファに入るセクタ
数だけ設けても良いし、継ぎ目に遭遇したならば先読み
は止まるため、どこまで読み出したかを示すポインタの
位置にある1セクタのみ情報(即ち図4におけるアドレ
ス103の情報)を持たせるように、1セクタ分のセク
タ情報バッファを設けるようにしてもよい。この構成で
は、セクタ情報バッファを小さくすることが可能であ
る。
【0094】尚、上記ホストからのデータ読出要求時
に、データ送信手段はキャッシュバッファのデータを確
認しているが、先にセクタ情報バッファやポインタを確
認することでキャッシュバッファ内の目的とするデータ
の有無を判断することもできる。
【0095】また、CDの場合には読み出したセクタデ
ータのヘッダ部に継ぎ目かどうかの情報が含まれている
ため、セクタ情報バッファを新たに設けず、既に読みだ
してキャッシュバッファに記憶されているデータ内の、
ヘッダ部分の情報を用いてセクタ情報バッファを構成し
てもよい。この場合には、別途セクタ情報バッファを設
けるためのメモリが不要になる。
【0096】さらに、ドライブ装置に各セクタの内容が
MODE1/XAF1/XAF2/CDDAであるとい
ったモード情報を既に持たせている場合、このモード情
報領域を共用して「継ぎ目」というセクタ情報を残すこ
ともできる。一般に、ドライブ装置内部では、キャッシ
ュバッファに読み出されたセクタが、Mode1かMo
de2かといった、モード/フォーム情報を記憶する情
報バッファを持っている。これは、ホストから読出要求
されたモードと違う場合にはエラーを返したり、あるい
はモードによってユーザデータのサイズが違うため、1
セクタあたり何バイト転送するかといった判断をするた
めのものである。これらの情報も、セクタ情報バッファ
に記載することで、モード/フォーム用に設けていた情
報バッファが不要になるとともに、処理の共通化を計る
ことが可能になる。
【0097】また、継ぎ目部分の判断については、デー
タがエラー訂正できない場合であっても、セクタのヘッ
ダ部分、即ち図3のMode302にエラーがなければ
当該ヘッダ部分のみで判定可能である。このため、図2
のエラー判定処理(S213)でエラーと判断された場
合であっても、ヘッダ部がエラーでなければ継ぎ目であ
るかどうかの判断が可能となり、判断処理(S21
5)、継ぎ目であった場合のセクタ情報バッファに情報
を記録する処理(S218)、ポインタ加算処理(S2
19)及びエラ−終了(バッファリング終了処理:S2
20)を行っても良い。尚、ヘッダ部分の判定時に継ぎ
目でない場合にはエラー終了する(S214)。上記場
合においては、CD−R/RWのパケットライティング
の継ぎ目など、ユーザデータ部分が正しく読めない可能
性が高い部分でも当該セクタの種別を判断できる確率が
高くなる。このため、不必要なセクタであればユーザデ
ータ部分がエラーであってもリトライをしないといった
制御が可能になる。
【0098】〔実施の形態2〕次に、図1、図5、図
6、図7を用いて、本実施の形態2に係るドライブ装置
について説明する。なお、実施の形態1ではCD−Rメ
ディアのパケット・ライティング方式を用いたメディア
の例を挙げたが、DVD−R/RWのインクリメンタル
・ライティング方式を用いたメディアにも同様に適用す
ることもできる。尚、本実施の形態2では、図1に示し
たドライブ装置において、メディア107をDVD−R
/RWにすると共に、データ読出手段106をDVD−
R/RWを読み出し可能に設計することで対応可能であ
るため、以後図1を用いて説明を行う。
【0099】図6はDVD−R/RWのLinking
Loss領域の例である。Linking Loss
領域とは、CDにおけるパケットライティング時の継ぎ
目と同様に、メディアへの書き込みの中断/再開を行っ
た部分である。DVDにおけるダミーセクタを意味す
る。DVDの場合はCDと異なり、メディア上は16セ
クタを1ブロックとしたブロック単位で記録されてい
る。このためインクリメンタル・ライティングで記録し
たデータの最後のブロック603が16セクタに満たな
い場合には、残りのセクタ601、602はダミーセク
タとなるが、これらはセクタ606と同様にLinki
ngLoss領域601、602として管理される。こ
のダミーセクタは実際には継ぎ目とは言えないが、管理
上、継ぎ目と同様に扱う。
【0100】実際の継ぎ目の部分は次のブロック60
4、605で、規格上、図6(a)に示すように2KB
(1セクタ)のものと、図6(b)に示すように32K
B(16セクタ)のものがある。
【0101】2KBの形式の場合、次のブロック604
の先頭の1セクタ606もLinking Loss領
域となり、ブロック604のうちセクタ606よりも後
ろのセクタからがデータが記録される領域となる。ま
た、32KBの形式の場合、次のブロック605の16
セクタすべてがLinkingLoss領域となり、そ
れ以降のブロック609がデータが記録される領域とな
る。
【0102】セクタがLinking Loss領域で
あるかどうかは、各セクタのヘッダ情報を参照すること
により判断することができる。図7はDVD−R/RW
のセクタのフォーマットを示す。ヘッダ部分のID部7
01のbit25にLinkDataであるかどうかの
情報が記録されている。このbitが”1”である場合
はLinkデータ、”0”である場合には再記録可能な
領域であることを示す。(他のビットの内容については
省略)但し、ID部701のbit25が1でLink
データであると示されいていた場合であっても、そのセ
クタがLinking Loss領域であることを示し
ているのではなく、図6に示すように、次のセクタがL
inking Loss領域であることを示している。
また、32KB形式の場合には先頭の1セクタ607の
IDバイトのbit0は”0”になっているため、次の
セクタがLinking Lossではないと判断され
ないようにする必要がある。
【0103】以下、Linking Loss領域をま
とめて「継ぎ目」と表現する。
【0104】続いて、図1、図5、図7を用いて、本実
施の形態2に係るドライブ装置の処理の詳細について説
明する。尚、図5は、本実施の形態2におけるバッファ
リング処理の処理フローであるが、特に一点破線501
に示した、実施の形態1と異なる点のみ説明を行う。ま
た、同一の処理には同一の番号を付す。
【0105】まず、ホストにおいて、メディア107
(但し、実施の形態2ではDVD)上のデータ読出要求
をデータ送信手段104に送信し、キャッシュバッファ
105にデータが存在しない場合に、メディアからの読
み出し処理を行う点は実施の形態1と同様である(図
5:S201〜S203、S210〜S214)メディ
ア107より正常に読み出せた場合、セクタ判定手段1
09はメディアから読み出したセクタのヘッダ情報を確
認する(図5:S502)。ここで継ぎ目でない場合、
セクタ判定手段109は、セクタ情報バッファ110に
セクタ種別を「通常セクタ」として記録し、ポインタ管
理手段112に格納されるポインタを1つ(1セクタ
分)進める(図5:S502No〜S505)。また、
継ぎ目である場合、セクタ情報バッファ110に「継ぎ
目」と記録してポインタを1加算する(図5:S502
Yes〜S505)。
【0106】上記処理を1ブロックのセクタ数である1
6セクタ分だけ繰り返し、16セクタ分の処理が終わっ
た時点で処理した1ブロック内での継ぎ目の有無を判定
する(図5:S501〜S506、S507)。継ぎ目
があった場合には、いったんエラーで終了することで先
読みバッファリングを停止させる(図5:S507Ye
s〜S508)。継ぎ目がなかった場合には、続くブロ
ックの先読みを続ける(図5:S507No→S221
No→S212)。規定の先読み分だけ読んだならば、
先読み処理を終了する(図5:S221Yes〜S22
2)。
【0107】尚、上記セクタ判定手段109による上記
セクタのヘッダ情報の確認は、上述した図7に示すDV
Dのセクタフォーマットに基づいて行われる。
【0108】上記結果がエラーであった場合(即ち図
5:S214又はS508により終了)、データ送信手
段103はホストに対してエラーを返して終了する(図
5:S204Yes〜S205)。
【0109】以後、キャッシュバッファ105にデータ
が存在する場合には、継ぎ目の判定を行い、エラー終了
またはホストへのデータ転送を行う点も実施の形態1と
同様である(図5:S202Yes〜S207、S20
9)以上のように、DVDにおけるインクリメンタル・
ライティングの場合、継ぎ目の部分はファイル管理構造
から外されているので、基本的にホストから継ぎ目の部
分が要求されることはないが、ホスト側のデバイスドラ
イバが先読みを行う機能を持つ場合などに、継ぎ目の部
分を要求される場合がある。この場合、従来の方式で
は、キャッシュ管理用のポインタは加算されない状態で
ドライブの先読みが止まっていたため、最後に記録され
たユーザデータの次のセクタが継ぎ目であり、そのセク
タを要求されると、ドライブはキャッシュヒット判断で
キャッシュバッファに無いものと判断し、一度メディア
から読んでいるにも関わらず、再度メディアから読み出
す処理を行い、そこで改めて継ぎ目の検出でエラーとな
っていた。
【0110】DVDの場合には、継ぎ目は1ブロックの
うちの一部である場合があるが、ホストが最初の継ぎ目
の部分を要求すると、同じブロックに属する「通常セク
タ」の部分も読み直しとなる。もし「通常セクタ」が、
ホストに転送している最中であった場合には、キャッシ
ュバッファ内のデータが上書きされることになり、例え
ばメモリ上にデータを読み出してからエラー訂正やデス
クランブルをするシステムの場合、一時的にデータ化け
が発生する可能性もある。
【0111】本実施の形態2では、読み出しを16回繰
り返すことで1ブロックを全て読み出し、その後に継ぎ
目の判断を行っている(図5:S507)。このため、
読み出したブロックの最後のセクタまでをセクタ情報バ
ッファに記憶してキャッシュヒットの有効範囲とするこ
とが可能となる。よって、当該ブロックのどのセクタに
対する読み出し(先読み)に対しても継ぎ目を即座に判
定可能であり、即ち物理的な移動を伴わずに、即座にホ
ストにエラーを返すことが可能である。また、複数セク
タまとめて継ぎ目判断を行っているため、処理を高速化
することが可能である。
【0112】尚、CD同様、セクタ情報バッファにはD
VD−R/RWの場合には読み出したセクタデータのヘ
ッダ部に継ぎ目かどうかの情報が含まれているため、セ
クタ情報バッファを新たに設けず、読みだしたセクタデ
ータ中のヘッダ部分の情報を利用してもよい。
【0113】また、継ぎ目であるかどうか、即ち、Li
nking Loss領域であるかは、ヘッダ部の情報
から判断したが、DVD−R/RWのRMA(Recordin
g Management Area )領域に、RMD(Recording Manag
ement Data) 情報があり、当該情報にインクリメンタル
・ライティングで記録した通常データの開始位置と終了
位置がすべて記録されているため、このRMDの内容か
ら継ぎ目であるかどうかを判断しても良い。この場合に
は、LinkingLossかどうかを、予め読み出し
ておいたRMDを参照することにより目的のセクタを読
み出すことなく判断可能であり、即ち高速に判断でき
る。
【0114】また、セクタ情報バッファは、1セクタあ
たり1ビットの情報でも良いし、2ビット以上であって
もよい。また、新規に領域を確保しても良いし、キャッ
シュバッファ上の未使用領域を使っても良い。さらに、
キャッシュバッファに入るセクタ数だけ設けても良い
し、継ぎ目を含むブロックに遭遇したならば先読みは止
まるため、ポインタの位置にある1セクタのみ情報を持
たせるように、1セクタ分のセクタ情報バッファを設け
るようにしてもよい。
【0115】また、本実施の形態2では、継ぎ目を検出
してもそのブロックの分だけはデータの読み出しを続け
るようにしたが、継ぎ目を検出した時点で判断処理を終
了しても良い。
【0116】さらに、本実施の形態2では継ぎ目を検出
したならば、先読みを停止するようにしたが、Link
ing Lossが2KBの形式では、先頭の1セクタ
のみが継ぎ目で、残りの15セクタは通常セクタであ
る。このため、図5における継ぎ目があったことを判断
する処理(S507) では、1ブロック中の最後のセク
タが継ぎ目であった場合のみ、エラー終了処理(S50
8)を行うことで処理を簡略化することができる。
【0117】さらに、DVDドライブでは、CDとDV
Dの両メディアを読むことができるのが一般的である。
このため、メディア挿入時等に当該メディアがCDかD
VDかを判断する処理を行うことで、本実施の形態2及
び上記実施の形態1におけるドライブ装置の、メディア
の違いによる部分、即ちセクタ種別の判定方法や、継ぎ
目の規定数(7セクタや16セクタ等)の切り替え、さ
らには後述する読み飛ばし数の切り替えを行い、その他
の構成を共通化することが可能である。尚、上記CDと
DVDの違いの判断はレーザーの反射の信号を調べるこ
とで、電気的に判断することが可能である。
【0118】以上のように、CDかDVDかを判断する
処理を行うことにより、当該処理の判断結果に基づいて
セクタ情報バッファ内の情報を区別するようにすること
で、セクタ情報バッファを共有することができ、メモリ
の使用を少なくすることができる。
【0119】〔実施の形態3〕次に、図1、図4、図
8、図9を用いて、本実施の形態3に係るドライブ装置
について説明する。なお、実施の形態1では、メディア
107からのデータの読み出し時に継ぎ目を検出する
と、セクタ情報バッファ110に1セクタ分「継ぎ目」
であると記録し、そこで先読みバッファリングを止めて
いた。しかし、パケット・ライティングの場合、継ぎ目
の部分はファイル管理構造から外されているので、継ぎ
目の手前までを読み出したホストは、継ぎ目の後ろに続
く次のパケットを要求するのが通常である。このため、
要求された次のパケットはキャッシュバッファ105に
なく、結果として再度SEEK処理を含むメディアから
の読み出しが必要となり、ホスト側からみた読み出し速
度が遅くなってしまう。
【0120】そこで、本実施の形態3では、パケット・
ライティングの継ぎ目のサイズが規格上7セクタと決め
られていることを利用して、ホスト側からみた読み出し
速度を高速化するものである。
【0121】即ち、パケット・ライティングの継ぎ目の
サイズは、規格上7セクタと決められているため、図4
の例では、アドレス103でセクタ判定手段109が継
ぎ目を検出したならば、次のパケットはアドレス110
から始まっていると判断することができる。
【0122】以下、図1、図8、図9を用いて、本実施
の形態3に係るドライブ装置の処理の詳細について説明
する。尚、図8は、本実施の形態3におけるバッファリ
ング処理の処理フローであるが、特に一点破線801に
示した、実施の形態1、2と異なる点のみ説明を行う。
また、同一の処理には同一の番号を付す。
【0123】まず、ホストにおいて、メディア107
(但し、実施の形態3ではCD)上のデータ読出要求を
データ送信手段104に送信し、キャッシュバッファ1
05にデータが存在しない場合に、メディアからの読み
出し処理を行う点は実施の形態1と同様である(図5:
S201〜S203、S210〜S214)メディア1
07より正常に読み出せた場合、セクタ判定手段109
はメディアから読み出したセクタのヘッダ情報を確認す
る(図8:S801)。ここで継ぎ目でない場合、セク
タ判定手段109は、セクタ情報バッファ110に「通
常セクタ」であるという情報を記録し、ポインタ管理手
段112に格納されるポインタを1つ(1セクタ分)進
める(図8:S801No〜S803)。
【0124】ここで、継ぎ目である場合、セクタ情報バ
ッファ110に「継ぎ目」であると記録してポインタを
規定セクタ分加算する(図8:S801Yes〜S80
4)。ここに規定セクタ数は7セクタである。但し、連
続する6つのセクタについても、セクタ情報バッファ1
10に「継ぎ目」であると書き込むようにしてもよい。
【0125】以後、規定の先読み分だけ読んだならば、
先読み処理を終了する(図8:S221Yes〜S22
2)。
【0126】即ち、本実施の形態3ではアドレス103
で継ぎ目を検出し、ポインタを7つ進めてアドレス11
0からバッファリングを再開する。キャッシュバッファ
105上は図9のキャッシュバッファ901に示すよう
に、残りの継ぎ目に対応するキャッシュデータ6セクタ
分を空けた形になる。
【0127】以上のように、パケット・ライティングの
場合、継ぎ目の部分はファイル管理構造から外されてい
るので、基本的にホストから継ぎ目の部分が要求される
ことはない。従来方式では継ぎ目に遭遇するとエラーで
バッファリングが止まっていたため、継ぎ目の後のアド
レス110以降のデータを要求するとキャッシュに存在
しておらず、SEEK処理が発生し読み出しまでに時間
がかかっていた。本実施の形態3では、継ぎ目の部分に
遭遇したならば継ぎ目の部分だけ読み飛ばし、かつバッ
ファを空けてバッファリング(先読み)を続けるため、
先読みを高速に行うことができると共に、ホストが継ぎ
目の直後のデータを要求してもキャッシュに存在してお
りホストへの送信(回答)処理時間が速くなる。また、
もしホストが継ぎ目の部分を要求したとしてもセクタ情
報バッファより継ぎ目と判断され、即座にエラーを返す
ことができる。また、継ぎ目の部分もセクタ情報バッフ
ァにより管理しているため、もしホストが継ぎ目の部分
を要求しても、謝ったセクタを送るという誤動作を行う
ことがない。
【0128】なお、本実施の形態ではCD−Rメディア
のパケット・ライティングでの例を挙げたが、DVD−
R/RWのインクリメンタル・ライティングも同様に利
用することもできる。継ぎ目の検出手段と継ぎ目の数の
規定セクタ数が異なるため、メディアがCDかDVDか
を判断する処理を入れて、その他の部分は共通化しても
よい。
【0129】また、本実施の形態ではパケット・ライテ
ィングの規格にあわせて継ぎ目を7セクタ固定とした
が、利用するシステムに応じて異なる値にしても良い。
また1つのメディア上では継ぎ目のセクタ数は1種類で
あると制限するものではなく、例えば1つのメディアを
複数のZONEにわけ、ZONE毎に継ぎ目のセクタ数
を変えるシステムや、記録時におけるドライブ装置の回
転速度に応じて継ぎ目のセクタ数を変えるシステムで
は、継ぎ目検出時の処理(S804〜S805)を、そ
れぞれのシステムの継ぎ目セクタ数に応じて変えてもよ
い。尚、継ぎ目の後ろのパケットを読む場合、わずか7
セクタであるためSEEK処理を行わず、読み出しを行
っているが、SEEK処理を行っても問題はない。
【0130】尚、ホストから突然継ぎ目の途中を要求さ
れた場合、即ち、例えば図9のアドレス107を要求さ
れた場合、ドライブ装置は読み出しを開始したアドレス
が継ぎ目であることを検出してそこから7セクタを継ぎ
目であると記録すると、通常セクタであるアドレス11
0以降が継ぎ目となってしまう。このため、単に継ぎ目
であるという判断ではなく、図3に示すようにヘッダ部
の情報から、検出したのがROUT1であれば継ぎ目は
そこから7セクタ、ROUT2であれば6セクタ、LI
NKであれば5セクタ、RIN1であれば4セクタ、R
IN2であれば3セクタ、RIN3であれば2セクタ、
RIN4であれば1セクタとして処理するようにしても
良い。さらに、セクタ情報バッファには単に「継ぎ目」
として記録したが、パケット・ライティングの場合に
は、ROUT1/ROUT2/LINK/RIN1/R
IN2/RIN3/RIN4と7セクタの継ぎ目のそれ
ぞれに個別の名称がつけられているため、継ぎ目の種類
が区別できるような情報を記録してもよい。
【0131】以上のように、継ぎ目の種類を7種類のい
ずれかまで判断することで、ホストが継ぎ目の途中を要
求した場合などにも、その位置から後何セクタ継ぎ目が
あるかを判断でき、継ぎ目が終わって次にユーザデータ
領域が始まる位置を正確に知ることができる。
【0132】〔実施の形態4〕次に、図1、図4、図1
0、図11を用いて、本実施の形態4に係るドライブ装
置について説明する。尚、図10は、本実施の形態4に
おけるバッファリング処理の処理フローであるが、上述
した他の実施の形態と異なる点のみ説明を行う。また、
同一の処理には同一の番号を付している。
【0133】上記実施の形態3では、メディア107か
らの読み出し時に継ぎ目を検出すると、パケット・ライ
ティングの規格に従い7セクタ分を「継ぎ目」であると
記録すると共にポインタを7つ進め、続くセクタからバ
ッファリングを続けていた。しかしながら上記7セクタ
のうち、最初の1セクタは実際にメディアから読み出し
て継ぎ目であることが確定しているが、残りの6セクタ
は未確定であり、継ぎ目でない可能性もありえる。
【0134】実際に、パケット・ライティングの規格が
正式に決まる前には、継ぎ目が5セクタであるメディア
(及び書込み方式)が存在している。また、図4の例に
おいて、ホストがパケットの部分ではなく突然継ぎ目の
途中であるアドレス105を要求した場合、ドライブは
そこから7セクタを継ぎ目と判断すると、アドレス11
0とアドレス111は継ぎ目と判断され、正常に読める
セクタにも関わらず、ホストにエラーが返るという問題
がある。
【0135】そこで本実施の形態4によるドライブ装置
では、図10に示すように、メディアから読み出し時に
継ぎ目を検出すると、セクタ情報バッファに1セクタ分
「継ぎ目」であると記録し、ポインタを1つ進める(図
10:S801Yes→S1002→S1003)。続
いて、さらに続くセクタ情報バッファの6セクタ分にセ
クタ種別を「未確定」と記録し、ポインタを6つ進めて
から、続くセクタのバッファリングを続ける(図10:
S1004〜S1005)。以上により、セクタ情報バ
ッファ上は図11のように、1セクタ1101が「継ぎ
目」で続く6セクタ1102が「未確定」となる。
【0136】続いて、ホストから要求されたアドレスが
既にキャッシュバッファ105に存在し、さらにセクタ
管理手段111を用いてセクタ情報バッファの内容を参
照した際に、セクタ種別が「未確定」であった場合、キ
ャッシュに存在しないものとして扱い、キャッシュをク
リアしてメディア107からの読み出しを再度行う(図
10:S1001Yes〜S203)。これにより、改
めてホストから要求されたアドレスからキャッシュバッ
ファ105に読み出されるため、そのセクタが継ぎ目で
あった場合はエラーが返り、通常セクタであった場合に
はホストにセクタのデータが送信される。
【0137】以上により、継ぎ目であると確定したセク
タに続く、継ぎ目であると推定されるセクタに対してホ
ストから要求がきても、継ぎ目であると確定するまでは
エラーを返さない。このため継ぎ目が7セクタでないメ
ディアや、継ぎ目の途中から要求された場合でも、正し
い処理を行うことができる。
【0138】尚、ポインタは1セクタ進めた後に6セク
タ進めるという二段階に分けて処理をしているが、まと
めて7セクタ進めてもよい(図10:S1003、S1
005)。
【0139】〔実施の形態5〕次に、図1、図12、図
13、図14を用いて、本実施の形態5に係るドライブ
装置について説明する。尚、図12は、本実施の形態5
におけるバッファリング処理の処理フローであるが、上
述した実施の形態4と異なる点、即ち一点破線1201
にて示される処理のみ説明を行う。また、同一の処理に
は同一の番号を付している。
【0140】上記実施の形態4では、セクタ管理手段1
11がセクタ情報バッファ110の内容を参照し、目的
とするセクタ種別が「未確定」であると判断した場合、
キャッシュバッファ105をクリアして、再度メディア
107から所定のデータを読み出していた。
【0141】しかしながら、キャッシュバッファ105
をクリアする方法は、ホストから継ぎ目の部分を要求さ
れることがない場合には処理が簡単になるという利点が
あるが、頻繁に継ぎ目の部分を要求される場合には、既
に読み出し済みである継ぎ目の後ろのデータまで破棄す
るという無駄が発生する。
【0142】また、例えば既にホストへ送信済みのセク
タでも、キャッシュバッファに残っていれば有効とする
ドライブを使用している場合には、一旦継ぎ目の部分が
要求されるとキャッシュをクリアするため、継ぎ目より
も手前の部分を再び要求されると、再度メディアから読
み出す必要が生じてしまう。
【0143】上記問題を解決する本実施の形態5におけ
るドライブ装置の処理を、図12、図13を参照しなが
ら説明する。
【0144】図13には、ドライブ装置は継ぎ目を7セ
クタであるとして処理をしているが、メディア107は
継ぎ目が5セクタである場合の例を示す。セクタ判定手
段109がアドレス103で継ぎ目を検出すると、7セ
クタ空けてアドレス110よりバッファリングを続け
る。この処理は、上記実施の形態4におけるメディアか
らの読み出し処理である。
【0145】ここで、メディア107は継ぎ目を5セク
タとして記憶されているため、当然ファイル管理構造上
にアドレス108が含まれ、通常、ホスト102に続い
てアドレス108が要求される。ホスト102からアド
レス108が要求された場合、セクタ管理手段111
は、セクタ情報バッファ110を参照し、当該アドレス
108のセクタ種別が「未確定」であると判定する(図
12:S1201Yes)。
【0146】続いて、上記キャッシュ管理手段104
は、ポインタ管理手段112に格納されるポインタを退
避し、一時的に空けていたキャッシュバッファのアドレ
ス108に対応する位置に変更する(図12:S120
2)。当該退避とは、退避前の位置(アドレス)を所定
のメモリに記憶しておくことを指し、退避後に必要に応
じて退避前の位置を読み出すことで、退避前の位置にポ
インタを戻せるようにする処理を指す。
【0147】次に、上記データ送信手段103は、デー
タ読出手段106にメディア107からアドレス108
に対応するセクタを読み出す旨を送信し、データ読出手
段106がアドレス108に対応するセクタを読み出す
とともに、セクタ判定手段109が当該セクタの種別を
判定し、セクタ情報バッファ110への書き込み等を行
う(図12:S210〜S222、メディアからの読み
出し処理)。
【0148】続いてデータ送信手段103は、メディア
からの読み出し処理終了後、当該処理がエラーか否かを
判定し、エラーであればホストにその旨を送信する(図
12:S1203→S1204Yes→S1206)。
エラーでない場合、上記キャッシュ管理手段104は、
ポインタを変更する前の位置に復元する(図12:S1
204Yes〜S1205)。
【0149】以上の処理により、セクタ情報バッファ1
10には、アドレス108に対応するセクタ種別130
1が記憶されるため、セクタ管理手段111が継ぎ目の
判定処理(図12:S206)を行うことで、アドレス
108のセクタ種別を判定可能である。
【0150】以上のように、実施の形態5では、既に読
み出し済みであって、キャッシュバッファ105に記憶
されている継ぎ目の前後の情報を破棄しないため、キャ
ッシュを効率よく使用することができる。また、ここで
読み出したセクタに対してはセクタ情報バッファ110
に「継ぎ目」あるいは「通常」といったセクタ種別が記
録されるため、読み出したセクタを再び要求された場合
でもメディアから再度読みだすことなく処理することが
可能である。さらに、ドライブが想定していた継ぎ目の
セクタ数よりも実際のメディア上の継ぎ目のセクタ数が
少なかった場合でも、正しく処理を行うことができる。
【0151】次に、図14に、メディア上の継ぎ目が7
セクタであり、ホストが継ぎ目の途中を要求した場合の
例を示す。
【0152】アドレス103で継ぎ目を検出し、7セク
タ読み飛ばして(スキップして)アドレス110から先
読みを続けている状態で、ホスト102からアドレス1
08が要求されると、セクタ管理手段111は、当該ア
ドレス108のセクタ種別を未確定と判断し、メディア
から読みだす。
【0153】ここで、もし読み出したアドレス108が
継ぎ目であった場合、実施の形態4の方法であれば7セ
クタを読み飛ばし、セクタ情報バッファを7セクタ分書
き込むため、既に読み出し済みで「通常」と記録されて
いるアドレス110〜アドレス115のセクタ種別が
「未確定」として上書きされてしまう。前記の場合でも
間違ったセクタデータを送ることはなく、単にホストか
ら要求された場合に再度メディアから読み出すため処理
に時間がかかるだけではあるが、無駄な処理時間であ
る。
【0154】この場合には、未確定の部分に対して再読
み込みをした場合に、ポインタを所定の数(ここでは
7)のセクタ分進めるのではなく1セクタ分のみ進める
ようにする。即ち、未確定の場合、アドレス108が継
ぎ目であってもポインタを次のアドレス109に移動し
てバッファリングを止めることで、停止後に待避してあ
った元のポインタ位置に戻されて、アドレス111以降
の先読み処理に入るため、継ぎ目以降の読み出し済みの
データ(即ちキャッシュデータ)をクリアする必要がな
い。
【0155】〔実施の形態6〕次に、図1、図15を用
いて、本実施の形態6に係るドライブ装置について説明
する。尚、図15は、本実施の形態6におけるポインタ
移動を示す図であるが、上述した実施の形態5と異なる
点のみ説明を行う。
【0156】上記実施の形態5では、ホスト102か
ら、セクタ情報バッファ110が「未確定」であるセク
タを要求されると、該当位置を1セクタのみメディア1
07から読み出す処理が行われる。しかしながら、もし
連続する次のアドレスを要求された場合、当該次のアド
レスが「未確定」であれば再度メディア107から読み
出すため再びSEEK処理が発生し、処理に時間がかか
る。
【0157】通常、ホストが要求したアドレスが継ぎ目
であったならば、さらに次のアドレスを要求することは
稀ではあるが全く無いとは言えない。また、パケット・
ライティングの場合、規格上は継ぎ目は7セクタである
が、規格制定以前に作られたメディアで継ぎ目が5セク
タのものがあるのは上述したとおりである。
【0158】継ぎ目が5セクタの場合、ドライブ側が継
ぎ目を見つけて7セクタほどポインタを進めると、実際
の継ぎ目直後の2セクタは未確定とされてしまうが、当
該2セクタはファイル管理構造に含まれているため、ホ
ストから読出要求され得る。
【0159】図14に示した例では、実施の形態5にて
述べたように、アドレス108が読みだされているが、
ポインタは元に戻されている。実際の動きとしてはアド
レス108の次にはアドレス109が要求されるため、
1セクタずつ処理すると時間がかかってしまう。また、
ファイル管理構造に関係なく処理するシステム、例えば
ベンチマークやディスクテスト等を行うソフトウェアで
ディスク(メディア)の全アドレスを読み出す場合に
は、当然継ぎ目の部分も全て要求される可能性がある。
【0160】本実施の形態6では、実施の形態5のよう
にセクタ情報バッファ110上で未確定のセクタをホス
トが要求した場合に、以下の処理を行う。
【0161】即ち、図15の例では、ホスト102から
アドレス108の読出要求があった場合、キャッシュ管
理手段104は一旦ポインタを退避しアドレス108に
移動(戻す)する(図15:S1501)。この処理
は、上記実施の形態5におけるS1201と同一の処理
である。
【0162】続いて、当該未確定のセクタ108をメデ
ィアから読み出し、セクタ種別を判定してセクタ情報バ
ッファ110に書き込んだ後、ポインタを1つ進めて続
くアドレス109のセクタ情報バッファ110の内容を
参照する(図15:S1502)。尚、上記続くアドレ
ス109に対応するセクタ情報バッファ110の確認
は、セクタ判定手段109が行ってもよいし、セクタ管
理手段111が行ってもよい。
【0163】続くアドレス109に対応するセクタ情報
バッファ110の内容が未確定であった場合にはポイン
タを元に戻さず、セクタ109の読み出しを行う。そし
て、先程と同様にセクタ種別を判定し、さらにポインタ
を1つ進めて続くアドレス110を調べる(図15:S
1503)。以上の処理を繰り返し、セクタ情報バッフ
ァ110の内容が「未確定」でない場合、すなわち通常
セクタあるいは継ぎ目であった場合(ここではアドレス
110が通常セクタであるとする)にはメディア107
からの読み出しを中断する(図15:S1504)。
尚、ポインタを元に戻した後、必要であれば先読みを続
けてもよい。
【0164】以上のように、一度未確定部を要求される
と続く未確定部も含めてメディアから読み出してセクタ
種別を確定するため、継ぎ目付近を連続して要求するよ
うなシステムでの無駄なSEEK処理を減少させ、即ち
処理の高速化を計ることが可能になる。
【0165】なお、継ぎ目の部分はエラー訂正ができず
に正常に読めない場合もあるが、例えばCDの場合に
は、上述したように、各セクタのヘッダ部さえ読めれば
ユーザデータ部は正しく読めなくても継ぎ目かどうかの
判断が可能である。また、ヘッダさえも読めない場合、
セクタ情報バッファに「読み出しエラー」である旨を記
録して、次のアドレスの処理に移ってもよい。
【0166】以上のように、本実施の形態6ではホスト
から継ぎ目の部分を要求された場合に、空けておいたバ
ッファ位置に読み込むが、次のセクタのセクタ情報バッ
ファの内容が未確定であれば、次のセクタも続けてバッ
ファリングを行う。従って、ホストが継ぎ目の部分を続
けて要求した場合に無駄なSEEK処理を発生すること
なく高速に処理を行うことができる。これは特に、ホス
ト側のOSやデバイスドライバが、エラーが発生しても
続けて先読みを行う場合や、ドライブ装置が想定してい
る継ぎ目のセクタ数よりも実際のメディア上の継ぎ目の
セクタ数のほうが短い場合に有効である。
【0167】〔実施の形態7〕次に、図1、図16、図
17を用いて、本実施の形態7に係るドライブ装置につ
いて説明する。尚、図17は、本実施の形態7における
ポインタ移動を示す図であるが、上述した実施の形態6
と異なる点のみ説明を行う。
【0168】上記実施の形態6では、ドライブ装置がメ
ディアの継ぎ目を7セクタとして処理し、さらにメディ
アの継ぎ目が5セクタの場合でも、上記実施の形態5よ
り高速処理を可能とするものである。しかしながら、上
記実施の形態6でも、継ぎ目に遭遇する度にポインタの
退避を伴う無駄なSEEK処理が発生してしまう。
【0169】実施の形態7では、継ぎ目を検出したなら
ば、本来ドライブ装置が想定している継ぎ目のセクタ数
よりもあえてnセクタ手前までしかポインタを進めな
い。例えば、継ぎ目が7セクタであると想定している場
合で、メディアから読み出したセクタが継ぎ目であった
場合には、上記実施の形態5ではセクタ情報バッファ1
10に1セクタ「継ぎ目」と記録する。続いて、連続す
る6セクタを「未確定」としてトータルで7セクタ分ポ
インタを進めていたが、図16に示すように1セクタ
「継ぎ目」と記録した後、続く「未確定」は4セクタと
してリードポインタは5セクタしか進めない。これによ
り、図16に示した継ぎ目が5セクタのメディアであれ
ば通常セクタとして処理できる。
【0170】しかしながら上記処理では、図17に示す
ように、継ぎ目が7セクタのメディアであればアドレス
103の次に読むアドレス108は継ぎ目であるため、
当該継ぎ目(アドレス108)を検出して再び5セクタ
進むと、本来は通常セクタである筈のアドレス110〜
112までも未確定としてスキップしてしまうことにな
る。スキップが発生すると、ホストがスキップした部分
を要求した場合に無駄なSEEK処理が発生してしま
う。
【0171】ここで、本実施の形態7では、継ぎ目を検
出後に読み飛ばし(5つ)を行い、読みだしたセクタ
(アドレス108)がまた継ぎ目であった場合には、規
定のスキップ数(5つ)進めるのではなく、ポインタを
1つ(又は上記規定数以下)だけ進めて次のアドレスを
読み出す(図17:S1701〜S1702)。図17
に示す例では1セクタスキップした先のアドレス109
も再び継ぎ目であるのでポインタは更に1進み、アドレ
ス110より通常通りバッファリングされていく(図1
7:S1703〜S1704)。
【0172】一般に7セクタある継ぎ目の部分のうち、
両端の1〜3セクタ(図17に示すアドレス103〜1
05及び107〜109)はエラー訂正に失敗すること
なく読めることが多いため、7セクタを想定して5セク
タしかスキップさせなかったとしても、続く2セクタの
継ぎ目はエラーなく読め、不要なリトライによるSEE
K処理が発生しにくい。
【0173】以上により、当初想定した継ぎ目セクタ数
以外の継ぎ目セクタ数を有するメディアであっても、無
駄なSEEK処理を行わずにデータを読み出すことが可
能となり、即ちホスト側からみた読み出し速度を高速化
することができる。又、未確定であるセクタをメディア
から読み出した際に、当該セクタが継ぎ目であることを
検出したならば、今度は読み飛ばしを行わないようにす
ることで、既に読み出し済のセクタを未確定として書き
換えて無効にしてしまうことを防ぐことができる。
【0174】なお、本実施の形態7では継ぎ目の想定値
よりも2セクタ手前にポインタを移動させるようにした
が、2セクタに限定するものではなく、1セクタ手前で
も、あるいは3セクタ以上手前でも良い。
【0175】〔実施の形態8〕次に、図1、図18、図
19を用いて、本実施の形態8に係るドライブ装置につ
いて説明する。尚、図18は、本実施の形態8における
ポインタ移動を示す図である。
【0176】上記実施の形態4以降ではキャッシュバッ
ファをポインタで管理し、継ぎ目を見つけたならば、規
定される継ぎ目全体の数、例えば7セクタだけポインタ
を進めることで、実際のキャッシュバッファ105には
7セクタ分の空き領域を設けている。
【0177】上記方法の場合、ホストから継ぎ目を要求
されることがないのであれば、継ぎ目が検出されるたび
にキャッシュバッファ105に無駄な領域が発生してし
まうことになる。これは例えば、図28に示したmet
hod2で記録されたメディアを読むに際して、ドライ
ブ装置でアドレス変換する場合等が該当する。
【0178】パケット・ライティングの場合、継ぎ目が
どのくらいの間隔で発生するかについては規定されてい
ないが、通常は100〜200セクタ毎に発生し、即ち
比較的頻繁に発生するといえる。
【0179】本実施の形態8では、図18に示すよう
に、キャッシュ管理用のポインタを複数個用意し、継ぎ
目を検出したならばポインタを切り替えることで、バッ
ファリングを続ける。尚、上記複数個のポインタは、ポ
インタ管理手段112により管理される。
【0180】以下、図18を用いてポインタの切換処理
及びキャッシュヒット判定処理の詳細を説明する。
【0181】まず、図18に示したように、データ送信
手段103は、「ポインタ1」と「ポインタ2」という
2つのポインタを用意する。ドライブ装置はまずポイン
タ1を使ってメディアからデータを読み出す(図18:
S1801)。アドレス103で継ぎ目を検出したなら
ば、ポインタ1はアドレス102までを有効範囲として
先読みが止まった形となる(図18:S1802)。続
いて、規定の数(ここでは7つ)先のアドレス110よ
り、ポインタ2に切り替えて読み出しを開始する。
【0182】尚、1つのポインタは、1つ以上の変数か
らなる。例えば、図18において、ポインタとしてその
ポインタの開始時点のアドレス変数と、何セクタ有効で
あるかを示すポインタ変数を設けたとする。初期値とし
て、開始アドレス変数とポインタ変数はポインタ1、2
共に0にしておく。ここに開始アドレス変数は、アドレ
ス情報を指し、ポインタ変数は読み出したセクタ数を指
す。実際に読み出しを行い、図18の状態にあるとき、
ポインタ1の開始アドレス変数は100、ポインタ変数
は3、ポインタ2の開始アドレス変数は110、ポイン
タ変数は4となる。
【0183】以上により、ポインタ1及びポインタ2を
用いてキャッシュバッファ105及びセクタ情報バッフ
ァ110にメディアから読み出されたデータが記憶され
る。
【0184】続いて、ホストからデータ読出要求があっ
た場合、キャッシュ管理手段104はキャッシュ判断を
行う。ここではまず、上記データ読出要求に含まれるア
ドレスがポインタ1の範囲内にあるかどうか調べ、ない
場合にはポインタ2の範囲内を調べる。
【0185】具体的には、例えばアドレス102が要求
されたならば、ポインタ1の開始アドレス変数(数値:
100)とポインタ変数(数値:3)から、アドレス1
00〜102がキャッシュバッファ105に記憶されて
いることが判断できるため、データ送信手段103は、
ホスト102にキャッシュバッファ105の3セクタ目
のデータを送信する。
【0186】又、アドレス112が要求されたならばポ
インタ1の範囲内にはないが、ポインタ2のアドレス変
数とポインタ変数から、アドレス110〜113がキャ
ッシュバッファ105にあることが判断できる。さらに
ポインタ1のポインタ変数(数値:3)から、ポインタ
2はキャッシュバッファの4セクタ目から始まっている
ことが判断できるため、ホスト102にキャッシュバッ
ファ105の6セクタ目のデータを送信することが可能
である。
【0187】又、ホスト102から継ぎ目であるアドレ
ス103が要求された場合、ポインタ1の範囲にもポイ
ンタ2の範囲にもないが、ポインタ1とポインタ2の間
にあることがわかるため、継ぎ目であることが判断で
き、即ち、ホストに即座にエラーを返すことができる。
【0188】以上のように、ポインタを切り替えること
で、実際のキャッシュバッファ105には継ぎ目の部分
の空きを用意せずに続けてバッファリングすることが可
能になり、無駄な領域がなくなる。もし、継ぎ目の部分
が要求された場合には、いずれのポインタにもキャッシ
ュヒットしないため、キャッシュ上にないものと判断し
てメディアから読み出すことで対応できる。また、バッ
ファ管理上、複数のポインタを用いているシステム(ド
ライブ装置)への応用も容易になる。
【0189】なお、ポインタは通常2つあれば十分であ
るが、キャッシュバッファのサイズが大きい場合にはシ
ーケンシャルで読むと継ぎ目が2回以上バッファに入る
ことも考えられるため、ポインタを2つ以上設けても良
い。
【0190】また、本実施の形態8では1つのポインタ
に対して、開始アドレス変数とポインタ変数の2つを設
けたが、継ぎ目は7セクタであることからポインタ2の
開始アドレスは計算によって求めることができるため省
略しても良い。また、ポインタ1の開始アドレス変数
も、キャッシュバッファ105上にあるセクタのヘッダ
部にアドレスが記録されているため、それを参照しても
良い。また、キャッシュ判定時の処理速度を上げるため
に、さらに終了アドレスを変数として持たせても良い。
【0191】尚、図18において、セクタ情報バッファ
の内容はすべて「通常」となるため、ここをポインタの
代わりとして使用しても良い。図19に具体的な例を示
す。
【0192】図19において、アドレス100〜102
に対応するセクタ情報バッファは「パケット1」を意味
する「P1」が記憶される。また、アドレス110〜1
13のセクタ情報バッファには「パケット2」を意味す
る「P2」が記憶される。キャッシュバッファの管理は
上記したように、キャッシュバッファの先頭の開始アド
レス変数と、ポインタ変数で行う。
【0193】ホストからアドレス112が要求された場
合、ポインタが示す有効な最初のセクタ情報1901が
示す「P1」と、最後のセクタ1902が示す「P2」
との比較により、キャッシュバッファには1回継ぎ目が
あることが判断できる。
【0194】このことから、キャッシュバッファにはポ
インタが示す有効セクタ数7セクタに加えて、継ぎ目分
の7セクタの合計14セクタ分のアドレス100〜11
3までがキャッシュヒット対象となる。
【0195】従って、アドレス112はキャッシュヒッ
トと判断され、ホストへの転送はセクタ情報バッファの
パケット切り替え地点1903をサーチすることで、ア
ドレス112が6セクタ目にあることが判断でき、ホス
トに6セクタ目のデータを送信する。
【0196】尚、上記判断は以下のように行う。即ち、
ポインタには、開始アドレス変数とポインタ変数を持っ
ており、開始アドレス変数に”100”、ポインタ変数
に”7”が記憶されている。今、アドレス112が要求
された場合、バッファの先頭はアドレス100であり、
その時点のセクタ情報バッファの値を読み出すと「P
1」が記憶されている。次に、セクタ情報バッファを順
にサーチし、セクタ情報バッファの値が同じであれば、
前のアドレスの続きであることがわかるため、アドレス
102まではそのままサーチすることができる。
【0197】続いて、4セクタ目のセクタ情報バッファ
までサーチが進むと、当該セクタ情報バッファに記憶さ
れている値は「P2」となる。即ち、ここで継ぎ目が現
れたと判断することができるため、7セクタの読み飛ば
しを行っている場合には、4セクタ目のアドレスは11
0であると判断する。さらに、このまま上記サーチを続
けると、上記アドレス112は6セクタ目であると判断
できる。この方法では、上記セクタ情報バッファは、1
セクタあたり最低1ビットあれば実現することが可能で
ある。
【0198】尚、上記処理において、セクタ情報バッフ
ァ110をサーチせず、キャッシュバッファ105上の
ヘッダ部に書かれたアドレス情報を参照するようにして
も良い。また、パケットの切り替わり地点を示すポイン
タを設けても良い。さらに、有効な最後のセクタのパケ
ット番号を示す変数を設けても良い。
【0199】また、セクタ情報バッファ110にはパケ
ット1、パケット2、パケット3、パケット4...の
ようにパケット番号を加算していくのではなく、継ぎ目
によるパケットの区切りがわかるようにパケット1、パ
ケット2、パケット1、パケット2...のように情報
が交互に現れるようにしても良い。この場合、セクタ情
報バッファは1ビット以上であればよい。
【0200】なお、実施の形態8では継ぎ目の部分を空
けずに続けてバッファリングするように記述したが、キ
ャッシュバッファを空けておくと共に、セクタ情報バッ
ファ110に当該セクタ種別を例えば「未確定」として
記憶することにより、上記実施の形態5、6、7等と組
み合わせても良い。
【0201】具体的には、例えば、継ぎ目が7セクタと
想定したシステムにおいて5セクタのメディアを読んだ
場合の対応として、ポインタを切り替えた際に、バッフ
ァの先頭に2セクタだけ空けておくという方法も有効で
ある。この方法の場合、セクタ情報バッファ110には
未確定(又は通常)の情報を記録する。
【0202】また、セクタ情報バッファを設けずにポイ
ンタだけで管理し、継ぎ目の部分が要求されたならばポ
インタの範囲内に含まれないとして要求されたアドレス
をメディアから読み出すことで対応してもよい。
【0203】〔実施の形態9〕次に、図1、図20を用
いて、本実施の形態9に係るドライブ装置について説明
する。尚、図20は、本実施の形態9におけるアドレス
情報バッファを示す図である。
【0204】これまでに記述した実施の形態ではバッフ
ァ管理にポインタを用いたが、本実施の形態9では図2
0に示すように、アドレス情報バッファを備える。当該
アドレス情報バッファは、メディア上のアドレスと、当
該メディア上のアドレスに対応するキャッシュバッファ
のアドレス、及びセクタ情報バッファのアドレスを備
え、メディアからのデータ読み出し時に例えばデータ読
出手段106により書き込みが行われる。尚、アドレス
情報バッファは例えば他のバッファと独立して別途設け
てもよいが、キャッシュバッファやセクタ情報バッファ
と同じ領域に設けてもよい。
【0205】即ち、ホスト102からデータ読出要求が
あると、当該データ読出要求に含まれるアドレス情報を
用いて、上記アドレス情報バッファを検索する。当該検
索においてヒットした場合、ヒットしたアドレス情報に
対応するキャッシュバッファのアドレス及び、セクタ情
報バッファのアドレスを参照することが可能である。
【0206】この方法は、CD−ROMのようなシーケ
ンシャルで読み出すことを前提としたシステムではキャ
ッシュ判断処理に時間がかかるという問題があるが、ハ
ードディスクなどのランダムリードも考慮したシステム
ではキャッシュバッファを効率良く使えるという利点が
ある。
【0207】さらに、メディアからのデータ読み出し中
に継ぎ目を検出した場合、次に読み出すアドレスを継ぎ
目分だけ加算し、キャッシュバッファ上には継ぎ目の分
を空けずに続けてバッファリングすることで、継ぎ目が
頻繁に発生するメディアでは効率良くバッファリングで
きる。また、バッファ管理をアドレスを用いて行ってい
るシステム(ドライブ装置)への応用も容易になる。
【0208】尚、上記アドレス情報の管理のための加
算、減算は、上述したポインタと同様に扱うことが可能
であるため、上記各実施の形態におけるポインタにかえ
て、アドレス情報バッファを利用できることは言うまで
もない。
【0209】〔実施の形態10〕次に、図1、図21を
用いて、本実施の形態10に係るドライブ装置について
説明する。尚、図21は、本実施の形態10におけるキ
ャッシュバッファを示す図である。
【0210】上述した実施の形態ではバッファ管理に1
つのキャッシュバッファ105を用いた。しかしなが
ら、例えば連続しない2箇所以上の領域を管理するため
に、複数のキャッシュバッファを備えたドライブ装置が
存在する。このようなドライブ装置に、本発明に係る継
ぎ目の検出機構を実装する際に有効である。
【0211】即ち、本実施の形態10では図21に示す
ように複数個のキャッシュバッファを持たせ、継ぎ目を
検出したらキャッシュバッファを切り替えることで管理
を行なう。
【0212】図21に示す例では、キャッシュバッファ
AとキャッシュバッファBの2つのキャッシュバッファ
105を備え、キャッシュバッファAでバッファリング
中に継ぎ目を検出するとバッファBに切り替え、キャッ
シュバッファBは継ぎ目の後ろの部分から先読みを続け
る。
【0213】以上のように、継ぎ目を境にして複数のキ
ャッシュバッファを切り替えることにより、例えばパケ
ット単位でデータを各キャッシュバッファに割り当てる
ことが可能になるためキャッシュバッファの管理を容易
にすることができる。
【0214】以上のような継ぎ目を境とした、複数のキ
ャッシュバッファの管理方法は、例えば、図21のよう
にバッファリングされている状態で、アドレス103の
継ぎ目の部分を要求されたならば、再びバッファAに切
り替えてアドレス102の次の空いた部分にバッファリ
ングするようにしても良い。また、バッファBに切り替
えた際に継ぎ目の直後のデータをバッファBの先頭から
読み出すのではなく、バッファBの先頭を2セクタほど
空けておいて、7セクタと想定したシステムにおいて5
セクタのメディアを読んだ場合の対応をしても良い。
【0215】また、本実施の形態10ではバッファが2
つの場合を記述したが、バッファの数は3つ以上であっ
てもよい。また、各々のバッファのサイズは同じである
必要はなく、各々のバッファのサイズは可変長であって
もよい。
【0216】〔実施の形態11〕次に、図1、図11、
図18、図22を用いて、本実施の形態11に係るドラ
イブ装置について説明する。尚、図22は、本実施の形
態11におけるカウンタを示す図である。但し、ドライ
ブ装置101の他の部分については省略している。
【0217】前述の実施の形態ではホストが継ぎ目の部
分を要求する場合と要求しない場合とで、それぞれ利点
/欠点がある。例えば、上記実施の形態4や実施の形態
5に示したドライブ装置では、継ぎ目を検出すると図1
1に示すように、常にキャッシュバッファ105に7セ
クタの無駄なセクタ1101〜1102が発生する欠点
がある。但し、ホスト102から継ぎ目を要求された場
合には、空けていたセクタにデータを読み出すことがで
きるため、継ぎ目前後の読み出し済みのデータを有効に
利用できるという利点がある。一方、実施の形態8に示
したドライブ装置では、図18に示すようにキャッシュ
バッファ105に空きを作らないようにすることがで
き、キャッシュバッファを効率良く使用できる。但し、
その反面、ホスト102が継ぎ目を要求した場合にはキ
ャッシュバッファを一旦クリアする必要があり、既に読
み出し済みのデータが無駄になってしまうという欠点が
ある。
【0218】本実施の形態11では、図22に示すカウ
ンタ2201を設け、セクタ判定手段109がセクタ情
報の判定時に、当該セクタが継ぎ目であった場合には、
上記カウンタ2201のカウントを1つ加算する処理を
行う。
【0219】即ち、最初は上記実施の形態4、又は5に
て示した方法でキャッシュバッファ105を管理してお
く。尚、例えばメディア107交換時には上記カウンタ
2201はクリアされるものとする。
【0220】データ送信手段103がホストから所定の
セクタの読出要求をうけ、当該セクタ読出要求をデータ
読出手段106が受信すると、上記データ読出手段10
6はメディア107から目的とするセクタを読み出す。
ここで、上述したように、セクタ判定手段109は当該
読み出したセクタの種別を判定するのであるが、この際
に継ぎ目であった場合には上記カウンタ2201のカウ
ントを1つ加算する。ただし、先読みで読みだした場合
には必ずしも加算する必要はなく、ホストから直接読出
要求が有ったものが継ぎ目であった場合のみ加算するの
が望ましい。以後、データ読出手段106は、カウンタ
2201の値を所定のタイミングでチェックする。ここ
で、上記カウンタ2201の数値が所定の数値n以下な
らば、ホストから継ぎ目が要求される可能性が少ないも
のとして、以後、データ読出手段106は、バッファリ
ングの方法を実施の形態8の方法に切り替える。以上に
より、バッファを効率よく使用することができる。
【0221】さらに、上記カウンタ2201の数値が所
定の数値n以上になれば、ホストから継ぎ目のアドレス
が要求されることを意味し、空けていたセクタにデータ
を読み出すことで、継ぎ目前後の読み出し済みのデータ
を有効に利用できるのは上記実施の形態4、5で説明し
たとおりである。
【0222】逆に、最初は上記実施の形態8の方法でキ
ャッシュバッファを管理しておき、前記カウンタ220
1の数値がn回以上記録されたならば、ホストから継ぎ
目が要求される可能性が高いものとして、以後のバッフ
ァリングを実施の形態4又は5の方法に切り替えてもよ
い。さらに、あるタイミング、即ち例えば1000セク
タ分を読み出す度に、上記バッファリングの方法を判定
して切り替え、カウンタ2201をリセットするように
してもよい。
【0223】尚、ホストが継ぎ目の部分を要求する可能
性が低いと判断する基準として、継ぎ目あるいは未確定
の部分を要求されることを示したが、継ぎ目部分だけで
判断しても良い。また、前記情報はメディア交換時にク
リアしても良いし、継ぎ目の部分を読むかどうかはパケ
ット・ライティングのメディアである以上、メディアで
はなくホスト側のシステムに依存することが多いため、
メディア交換時にクリアしないようにしてもよい。ま
た、パケット・ライティングで記録されていないメディ
アでは、前記判断処理(数値nのチェック)が処理され
ないようにしてもよい。
【0224】尚、本実施の形態ではバッファの切り替え
例として実施の形態5と実施の形態8の例をあげたが、
上記実施の形態に限定するものではなく、別の方法に切
り替えるものでもよい。
【0225】以上のように、ホストが継ぎ目の部分を読
出要求する可能性が低いことを検出してバッファ管理の
方法を動的に切り替えることで、継ぎ目の部分を要求さ
れる場合とされない場合とでそれぞれ利点、欠点がある
バッファ管理方法の、欠点を補い、効率のよいバッファ
管理を行うことができる。
【0226】〔実施の形態12〕次に、図1、図13、
図22を用いて、本実施の形態12に係るドライブ装置
について説明する。
【0227】従来のメディアに対する記録方式は継ぎ目
が5セクタや7セクタに限らず、様々なフォーマットが
存在する。しかしながら、通常1つのメディアには同じ
継ぎ目で記録されている可能性が高いと言える。上記実
施の形態5および実施の形態6で、継ぎ目が7セクタと
想定しているドライブで実際のメディアの継ぎ目が5セ
クタの場合の対応について記述した。ここでは、上記同
じ継ぎ目で記録されている可能性が高いということを利
用して、継ぎ目が何セクタなのかを検出することで効率
の良いバッファリングを行なう。
【0228】即ち、本実施の形態12では、セクタ情報
バッファ110に「未確定」として記録され、ホストが
未確定セクタを要求したためにメディア上から読み出し
たところ、図13に示すアドレス108のように継ぎ目
ではなく通常セクタであった場合に、セクタ判定手段1
09は、図22に示すカウンタ2201のカウンタを1
加算する。
【0229】上記カウンタ2201が所定の数値n以上
記録されたならば、メディア上の継ぎ目は7セクタより
短いものと判断して、上記データ読出手段106は、セ
クタの読み飛ばし数(スキップ数)をさらに短くする。
例えば、ホストが要求したアドレスが継ぎ目の先頭から
数えて7セクタ目であれば、以後の継ぎ目検出では6セ
クタ読み飛ばしするようにし、ホストが要求したアドレ
スが継ぎ目の先頭から数えて6セクタ目および7セクタ
目であれば、以後の継ぎ目検出では5セクタ読み飛ばし
するように例えばポインタの数を調節する。
【0230】逆に、想定した継ぎ目の長さより実際の継
ぎ目の長さが長い場合には以下のような処理を行う。
【0231】即ち、データ読出手段106が継ぎ目を検
出して7セクタ読み飛ばしを行い、継ぎ目の直後から先
読みを再開した際に、読みだしたセクタが継ぎ目である
とセクタ判定手段109が判定すると、カウンタ220
1に1を加算する。当該カウンタ2201が所定の数値
n以上記録されたならば、継ぎ目の計算が7セクタより
長いものと判断して、データ読出手段106は、より大
きい読み飛ばし数に切り替える。例えば、想定した継ぎ
目の直後の1セクタ目が継ぎ目と判断されたならば、以
後の継ぎ目検出では8セクタ読み飛ばしするようにし、
想定した継ぎ目の直後の1セクタ目と2セクタ目が継ぎ
目と判断されたならば、以後の継ぎ目検出では9セクタ
読み飛ばしするようにする。即ち、段階的に読み飛ばし
数を増加させる。尚、ここで読み飛ばし数の増加/減少
を両方行う場合には、カウンタ2201を増加用と加算
用に2つ持たせても良いし、読み飛ばし数の減少の場合
にはカウンタ2201を1減算し、−n以下になったな
らば読み飛ばし数を減少させるようにカウンタを共用さ
せても良い。
【0232】以上により、ドライブ装置101は、メデ
ィア107の書込み形式に基づいて、継ぎ目の読み出し
時のセクタのスキップ数を動的に変化させ、即ち無駄な
シーク処理を無くした効率よいバッファリングを行うこ
とが可能となる。
【0233】また、パケット・ライティングの場合では
規格上は継ぎ目は7セクタと規定されているが、規格制
定以前に作られた継ぎ目が5セクタというディスクへの
対応に有効である。さらに、将来、規格が拡張されて継
ぎ目が7セクタ以外のものも作られた場合にもそのまま
の処理で対応することができる。
【0234】〔実施の形態13〕次に、図1、図23、
図24を用いて、本実施の形態13に係るドライブ装置
について説明する。
【0235】上述したDVDメディアには著作権等の問
題により、プロテクトがかけられているものがある。こ
のプロテクトは通常ファイル単位で設定されるが、ファ
イルはメディアの1セクタ単位で記憶されるため、ドラ
イブ側からみた場合、1セクタ単位でプロテクトの設定
ができることになる。
【0236】従来の方式ではプロテクトの掛けられたセ
クタに対して読み出し要求された場合であって、さらに
認証が完了していない場合、キャッシュ管理用のポイン
タは加算されない状態で先読みが止まっていた。
【0237】即ち、図23に示すDVDメディアのセク
タ110以降にプロテクトがかけられている例(但し従
来ではセクタ情報バッファは備えていない)を用いて説
明すると、ドライブが先読みによってセクタ110を読
み出した場合、一旦セクタ110を読み出してエラーと
し、ポインタを加算せずに先読みを終了する。このた
め、後にホストからセクタ110が要求されるとキャッ
シュ管理手段は、キャッシュヒット判断でキャッシュバ
ッファに無いものと判断する。このため、一度メディア
から読んでいるにも関わらず、再度メディアから読み出
す処理を行い、そこで改めてプロテクトエラーとなって
いた。尚、上記認証とは、プロテクトがかけられている
セクタを読み出すための手続きであり、本発明とは直接
関連しないため説明を省略する。
【0238】又、DVDの場合には、プロテクトは1ブ
ロックのうちの一部のセクタ(セクタ110〜115)
だけである場合があるため、図23の場合、ホストが最
初のプロテクトが掛けられたセクタ110を要求する
と、同じブロックに属する通常記録セクタ100〜10
9の部分も読み直しとなる。もし当該通常記録セクタを
ホストに転送している最中であった場合には、データが
上書きされることになる。このため、メモリ上に読み出
してからエラー訂正やデスクランブルをするシステムの
場合、一時的にデータ化けが発生する可能性もある。
【0239】本実施の形態13では、ポインタは読み出
したブロックの最後のセクタまでを有効なセクタとし、
プロテクトに関する情報はキャッシュヒットの有効範囲
にすると共に、さらにセクタ情報バッファに記録するこ
とで、再度メディアから読み出すことなくホストにエラ
ーを返すことができる。以下、処理の詳細について説明
を行う。尚、DVDの場合、メディアからは1ブロック
単位で読み出すが、プロテクトは1セクタ単位で指定で
きる。このため、通常、ドライブ装置101は読み出し
た1ブロックの1セクタ目から16セクタ目まで、プロ
テクトがかけられているか否かのチェックを行う。
【0240】図24に本実施の形態13のバッファリン
グ処理のフローを示す。尚、実施の形態2(図5)と同
一の処理を行っている部分については同一の番号を付
し、処理の説明を省略する。
【0241】ホストと認証手続きが完了していない状態
において、図23に示すアドレス100から115の1
ブロックをメディアから読み出した場合を考える。尚、
1ブロックの前半10セクタ100〜109は通常の転
送可のセクタで、後半6セクタがプロテクトがかけられ
ているものである。
【0242】まず、ホスト102から要求されたアドレ
スが既にメディア107から読みだされキャッシュバッ
ファ105に存在するかキャッシュ管理手段104を用
いてチェックする(図24:S202)。
【0243】キャッシュバッファ105に存在しない場
合、メディアからの読み出しを行う(図24:S20
3、S210)。メディアからの読み出しは、目的位置
の手前にピックを動かすSEEK処理を行い、目的位置
に到達した時点からキャッシュバッファ105に読み出
したデータを記録していく(図24:S211〜S21
2)。メディアからの読み出しがエラーであれば、エラ
ー処理を行う(図24:S214)。この時、通常は何
回かリトライ処理を行うが、ここでは説明を省略する。
【0244】正常に読み出せた場合、認証手続きが完了
しておらず、なおかつメディアから読み出したセクタが
プロテクトが掛けられたセクタであるかをセクタ判定手
段109が判定する。ここで認証手続きが完了している
かあるいはプロテクトが掛けられていないセクタである
場合には、セクタ情報バッファ110に通常セクタであ
るという情報を記録しポインタを1つ進める(図24:
S2402No→S503→S505)。
【0245】尚、認証手続きが完了しておらず、なおか
つメディアから読み出したセクタがプロテクトが掛けら
れたセクタである場合にはセクタ情報バッファ110に
「転送不可」であると記録し、ポインタを1加算する
(図24:S2402Yes→S2403→S50
5)。
【0246】上記処理を1ブロックのセクタ数である1
6セクタ分だけ繰り返し、16セクタ分の処理が終わっ
たならば、処理した1ブロック内に転送不可としたセク
タの有無を判定する(図24:S501〜S506、S
2404)。ここで、転送不可セクタが有る場合、いっ
たんエラーで終了することで先読みバッファリングを停
止させる(図24:S2404Yes〜S508)。転
送不可としたセクタが無い場合、続くブロックの先読み
を続け、規定の先読み分だけ読んだならば、先読み処理
を終了する(図24:S221〜S222)。
【0247】以上の処理により、キャッシュバッファ1
05に、ホスト102より要求されたデータ及び、先読
みされたデータが記憶される。
【0248】次に、再度ホスト102より読出要求がき
た場合に、キャッシュ判定手段104は、当該読出要求
に含まれるセクタの有無をキャッシュバッファ105を
参照して確認する(図24:S202)。キャッシュバ
ッファ105に当該セクタが存在する場合には、セクタ
管理手段111はセクタ情報バッファ110の内容を参
照する(図24:S202Yes〜S2401)。「転
送不可」であったならば、そのセクタは認証手続きが完
了していない状態でメディアから読んだことがあり、プ
ロテクトが掛けられたセクタであることが確認できる。
この場合には、ホストに対してエラーを返す(図24:
S2401Yes〜S207)。このときのエラーコー
ドは例えば「Read without proper Authentication」で
ある。
【0249】セクタ情報バッファの内容が「通常」であ
れば、キャッシュバッファ105の該当するデータをホ
ストに送信する(図24:S209)。
【0250】以上のように、本実施の形態13では、ポ
インタは読み出したブロックの最後のセクタまでを有効
なセクタとし、検出した転送不可情報をキャッシュヒッ
トの有効範囲にすると共に、ホストへの転送時にセクタ
情報バッファを確認することにより、「転送不可」であ
る場合でも、再度メディアから読み出すことなく、即座
にホストにエラーを返すことができる。
【0251】ここで、セクタ情報バッファはキャッシュ
バッファに入るセクタ数だけ設けても良いし、プロテク
トの掛けられたセクタに遭遇したならば先読みは止まる
ため、どこまで読み出したかを示すポインタの位置にあ
る1セクタのみ情報を持たせるように、1セクタ分のセ
クタ情報バッファを設けるようにしてもよいし、1ブロ
ック分のセクタ情報バッファを設けるようにしても良
い。
【0252】また、本実施の形態13では、プロテクト
の掛けられたセクタを検出してもそのブロックの分だけ
は転送不可の判断を続けるようにしたが、プロテクトの
掛けられたセクタを検出した時点で判断処理を終了して
も良い。
【0253】さらに、本実施の形態13では、プロテク
トの掛けられたブロックを検出したならば、先読みを停
止するようにしたが、1ブロックの先頭にプロテクトが
掛けられており、それ以降は通常セクタの場合もあるた
め、図24の認証手続きが完了していない状態でプロテ
クトの掛けられたセクタがあったことを判断する処理
(S2404)は、1ブロック中の最後のセクタがプロ
テクトの掛けられたセクタであった場合のみ、先読みを
止め、エラー終了処理(図24:S508)を行うにし
ても良い。
【0254】尚、ホストとの認証手続きが完了している
場合、メディアから読み出した時のプロテクトの有無の
チェック処理を行わないようにすることで、無駄な処理
をなくすようにしているが、ホストへの送信時にセクタ
情報バッファをチェックする処理を行わないようにして
も良い。
【0255】また、メディアから読み出した際にセクタ
情報バッファへ転送可の情報を書き込む処理と、ホスト
への送信時にセクタ情報バッファをチェックする処理の
両方を行わないようにすることで、さらに無駄な処理を
なくすようにしても良い。
【0256】尚、プロテクトのかけられた部分は、通常
連続した長い領域であるため、先読みを続けてもずっと
プロテクトのかけられたセクタである。このため、ホス
トは認証手続きを行うことなく、プロテクトのかけられ
た領域に対して読み出し要求をすることはない。よっ
て、プロテクトのかけられたセクタを検出したならば、
その次のブロック以降の先読みを行わないようにした
が、先読みを止めないようにしても良い。
【0257】また、認証手続きが終わった時点で、セク
タ情報バッファにおいて転送不可の情報が記録されてい
る部分をすべて転送可(通常)に書き換える処理を行っ
てもよい。この場合には、セクタ情報バッファの書き換
えによるプロテクト解除によって、既に読み出し済みの
プロテクトのかけられたセクタを無駄にすることなく、
メディアからの再読み出しを無くすことが可能となる。
【0258】〔実施の形態14〕次に、図1を用いて、
本実施の形態14に係るドライブ装置について説明す
る。 上述したように、DVDは16セクタを1ブロッ
クとして、1ブロック単位でメディアから読み出す。し
かしながら、ホストへの転送は1セクタ単位で行われる
ため、管理は1セクタ単位で行われている。
【0259】このため、メディア全体に記録されたファ
イルのサイズによっては、メディアの最終ブロックが1
6セクタすべてデータに使われているとは限らない。例
えば、2層ディスクの場合、最後のブロックの使われて
いないセクタには、すべて”0”で埋められたダミーセ
クタを付加し、トータルで16セクタとしてメディア上
に記録されることは上述した通りである。
【0260】上記ダミーセクタは、物理アドレスは割り
当てられているが、論理アドレスは割り当てられおら
ず、規格上、ホストに送信してはいけない。よって、ド
ライブ装置は、何らかの方法を用いて、ダミーセクタを
誤って送ってしまわないようにしなければならない。
【0261】本実施の形態14においては、セクタ情報
バッファ110を用いて、上記ホストに送信してはなら
ないセクタを管理しようとするものである。
【0262】即ち、本実施の形態14では、例えばデー
タ読出手段106及び、データ送信手段103が各層の
最後の論理アドレス(最終論理アドレス)を予め記憶し
ておき、メディアから読み出したブロックがその層の最
終論理アドレスを越える場合には、超えたアドレスの部
分に対応するセクタ情報バッファ110に、ダミーセク
タであるという情報を記憶する。
【0263】ここで、上記ダミーセクタであるという情
報を記憶した後に読み出した最後のブロックが、1層メ
ディアの1層目の最後あるいは、2層メディアの2層目
の最後である場合は、そこで先読み処理を中断する。
又、2層メディアの1層目の最後である場合には、2層
目の先頭から先読みを続ける。
【0264】続いて、データ送信手段103が、ホスト
102から2層メディアの1層目の最後から2層目の先
頭にまたがるような読出要求を受信した場合、ドライブ
装置101は、キャッシュバッファ105及び、セクタ
情報バッファ110をチェックし、1層目の最後のブロ
ックのダミーセクタの手前までは通常通りホストに転送
する。この処理は上述した実施の形態において通常行わ
れる処理である。
【0265】次にデータ送信手段103(セクタ管理手
段111)は、セクタ情報バッファ110を参照するこ
とで、転送しようとしたセクタに対応するセクタ情報バ
ッファがダミーセクタであると判定すると、当該ブロッ
クの最後まではダミーセクタであるため、次のブロック
の先頭が読み出されているはずの位置まで、ポインタを
移動する。もし、そのポインタが示す位置に2層目の先
頭がバッファリングされていたならば、ホストに2層目
の先頭部分の送信を行い、もしバッファリングされてい
なければ、メディアから2層目の先頭ブロックを読み出
してホストに送信する。
【0266】以上の処理により、セクタ情報バッファ1
10をもちいてダミーセクタを判定可能となり、即ち、
規格上、ホストに送信してはならないセクタを管理する
ことができる。また、言い換えれば、セクタ情報バッフ
ァ上に、ダミーセクタという情報を記憶するのみで、通
常ホストにセクタを送信している処理をそのまま用い
て、ホストに送信してはならないセクタを管理すること
を可能にすることができる。また、DVDの2層メディ
ア等では、当該2層メディアの読み出しを連続してキャ
ッシュバッファに記録するため、映画再生画面等が一時
的にとまる現象を防止することができる。
【0267】尚、1層メディアの1層目の最後、あるい
は2層メディアの2層目の最後で、ホストがダミーセク
タ部分を含むような読み出し要求をした場合、ドライブ
装置101はダミーセクタの手前までをホストに転送
し、その後に有効な論理アドレスを越えたというエラー
を返す。このエラーの判断は、予めデータ送信手段10
3又は、データ読出手段106等が記憶しておいた各層
の最終論理アドレスを超えたかどうかでチェックを行え
ばよい。
【0268】次に、各層の最後のブロックが16セクタ
すべて使われてダミーセクタがない場合の処理を説明す
る。
【0269】ダミーセクタがない場合、セクタ情報判定
手段109は、セクタ情報バッファ110に2層メディ
アの1層目の最後が、ダミーセクタであるという情報を
書き込むことなく、2層目の先頭への先読みを続ける。
【0270】1層メディアの1層目の最後、および2層
メディアの2層目の最後にダミーセクタがない場合、次
のブロックはホストに送ってはならないLead−Ou
t領域であるため、セクタ判定手段109は、セクタ情
報バッファ110に「Lead−Out」という情報を
書き込む。
【0271】以上により、ホストからディスクの最終論
理アドレスを越える読み出し要求がされた場合や、セク
タ情報バッファ110にLead−Outと記述されて
いた場合には、有効な論理アドレスを越えたというエラ
ーを返すという処理を入れておくことで、2層メディア
の1層目の最後のダミーセクタの検出処理と処理を共通
化することができる。
【0272】尚、セクタ情報領域にダミーセクタとLe
ad−Outという別の情報をもたせずに、ホストへの
転送不可という1つの情報としてまとめても良い。
【0273】〔実施の形態15〕次に、図1を用いて、
本実施の形態15に係るドライブ装置について説明す
る。 メディア107に記録されているデータは、当該
メディアの傷や汚れなどによって正常に読めない可能性
がある。CDやDVDなどは強力なエラー訂正機能を持
っているが、それでもエラー訂正できない場合がある。
【0274】ホストからの読出要求があったアドレスを
メディアから読み出そうとした際に、エラー訂正できず
正常に読み出せなかった場合、ホストに対してエラーを
返す。ところが、上述した実施の形態で述べた継ぎ目に
遭遇した場合と同様、その時点で先読みバッファリング
が止まってしまうため、ホストがエラーのあった部分は
諦めて、次のアドレスを要求した場合に、先読みされて
いないことになる。
【0275】そこで本実施の形態15では、セクタ情報
バッファ110に、当該エラーという情報を記憶するこ
とで、継ぎ目と同様、エラーまでも管理しようとするも
のである。
【0276】即ち、メディア107からのデータの読み
出し時に、何らかの原因で当該データが記憶されている
セクタを読みだせなかった場合、セクタ判定手段109
は、セクタ情報バッファ110に「エラー」と記録す
る。さらに上記実施の形態で説明したように、エラーの
発生した次のアドレスから先読みバッファリングを続け
ることで、ホストがエラーの発生した次のアドレスを要
求した場合でもキャッシュにヒットし、即ち、直ちにホ
ストにデータを送信(又はエラーを送信)することが可
能となる。
【0277】尚、DVDの場合には1セクタ単位ではな
く1ブロック単位でメディアから読み出すため、「エラ
ー」と記録するのはセクタ情報バッファ上での16セク
タ分となる。
【0278】しかし、実際には、傷などによる影響によ
りエラー訂正できなかった場合、エラーになるのはその
1セクタだけではなく、続く数セクタもエラーになる可
能性が高い。
【0279】そこで、エラーを検出したならば、その1
セクタはセクタ情報バッファに「エラー」と記録し、そ
こからnセクタはセクタ情報バッファに「未確定」と記
録するのが有効である。もしホストが未確定のセクタを
要求した場合には、メディア107から読み出すこと
で、読み出し可能の場合には当該読み出したデータを送
信することが可能である。尚、DVDの場合には「エラ
ー」と記録するのは最初の16セクタで、「未確定」と
記録するのはn×16セクタとなる。
【0280】以上のように、先読み中にエラーを見つけ
た場合に、そこで先読みを止めずに、続くセクタを読ん
でおくことでキャッシュヒットの効率を上げることが可
能となる。さらに、エラーがあった場合、多くの場合は
キズや汚れが原因で、続く数セクタも読めない可能性が
高いため、その部分はスキップさせることで、先読み再
開時のリトライ発生確率を減らし、ホストへのデータの
送信が先読みに追いつく前により多くのセクタを先読み
させることで、キャッシュヒット率をあげることができ
る。これは、パーソナルコンピュータ等を使ってファイ
ルをコピーする場合等ではエラーがでた時点で処理は止
まるので、先読みしても無意味な場合があるが、エラー
のでたファイルのみ無視して次のファイルからコピーを
再開する場合などでは、ある程度スキップしても先読み
をしていたほうが効率が良いといえる。
【0281】尚、未確定とするnの値は、固定値であっ
ても良いし、エラー後にホストが要求してくるアドレス
位置やエラーが連続して発生している回数などによって
可変にしてもよい。上記エラーが連続して発生している
回数を管理するためには図22に示したカウンタ220
1を用いればよい。また、CDやDVDは外周側に行く
ほどディスク1周あたりのセクタ数が多くなるため、n
の値を外周側に行くほど大きくするようにしてもよい。
また、DVD−RAMの場合にはZONEと呼ばれる区
間で分割されているため、ZONE毎にnの値を変える
ようにしてもよい。
【0282】また、エラーを検出した後、nセクタ先か
ら先読みバッファリングを再開させた場合に、やはりエ
ラーだった場合には、次回からnの値を多くしたり、逆
にnセクタ先から先読みバッファリングを再開させた場
合に、正常に読めた場合には、次回からnの値を少なく
するなどの処理を行っても良い。
【0283】また、「エラー」とするのはエラー訂正で
きなかった場合としたが、目的のアドレスに到達できな
かった場合のエラーや、オーディオトラックに対してデ
ータトラック用の読み出し要求がきた場合などのモード
が異なる場合のエラーなども同様にセクタ情報バッファ
110に記録して、先読みを続けてもよい。この時、す
べて同じ「エラー」として記録しても良いし、「エラー
訂正エラー」、「目的位置到達エラー」、「モードエラ
ー」など個々に異なる情報として記録し、ホストへのエ
ラーコードを切り替えるなどのエラーの種類によって異
なる処理をさせても良い。
【0284】以上のように、メディア読み出し時のエラ
ーをセクタ情報バッファに記憶することにより、ホスト
がエラーの発生した次のアドレスを要求した場合でもキ
ャッシュにヒットし、即ち、直ちにホストにデータを送
信(又はエラーを送信)することが可能となる。さら
に、エラー時にはnセクタの読み飛ばしを行うことによ
り連続して起こりやすいエラーに対しても効率よく対応
することができる。また、nを可変にすることにより、
エラー状況に応じた読み飛ばしが可能である。
【0285】〔実施の形態16〕次に、図1、図25を
用いて、本実施の形態16に係るドライブ装置について
説明する。
【0286】メディアから読み出したデータにエラーが
あった場合、通常はホストにエラーを返すが、場合によ
ってはエラーであってもホストにデータを返すことがあ
る。これは、メディアに記録されているデータがプログ
ラムであった場合には、データが化けていると致命的な
問題が発生する可能性があるが、映像データや音声デー
タの場合には、多少データが化けていてもノイズがのる
程度で、大きな問題にはならないという理由等によるも
のである。
【0287】具体的には、Video−CDと呼ばれる
MODE2Form2形式でCDに映像データが記録さ
れたものや、音楽CD、またDVD−RAMやDVD−
RWを使ったDVD Recorderで録画されたR
TR(Real Time Recording)規格の映像などがこれに該
当する。
【0288】上記した規格を用いて記憶されいているデ
ータを読み出した際にエラー訂正できないエラーが発生
した場合、基本的にドライブは時間の許す限りあるいは
規定された回数だけリトライを行い、正常なデータを読
むことを試みるが、それでもだめな場合は、エラーがあ
ってもホストに送信する。
【0289】ホスト側は送られたセクタにエラーがある
かどうかは関係なく処理するため、エラーのあるセクタ
は映像や音声にノイズがのるが、一時的なものであり、
正常なデータが読み出し可能なセクタに到達することで
当該ノイズ等は無くなることになる。尚、データの種類
によっては内部にCRCなどのエラーチェック用の情報
を持つものがあり、この場合にはホスト側が送られてき
たセクタのエラーチェックを行い、エラーがある場合に
は前回のデータを使うなどしてノイズがのりにくくして
いるものもある。
【0290】また、パソコン用のCD−ROMドライブ
などで使われているSCSIやATAPIなどの規格で
は、MODE SELECTコマンドを使うことによ
り、Video−CDや音楽CD以外の一般的なデータ
が記録されたメディアに対して、エラーでも転送するよ
うに設定することが可能である。
【0291】そこで、本実施の形態16においては、ホ
ストから要求されたアドレスが、セクタ情報バッファに
「エラー」と記録されていた場合には、そのセクタはエ
ラーでも送ってよいセクタであるかを判断する。さらに
ホストから要求したコマンドがエラーでも送ってよいコ
マンドであるか判断し、エラーでも送ってよいと判断さ
れたならば、エラーのセクタをホストに転送する。エラ
ーの場合は送ってはならないと判断されたならばホスト
にはエラーを返す構成とする。
【0292】図25に本実施の形態16のバッファリン
グ処理のフローを示す。又、上述した実施の形態と異な
る点のみ説明を行う。尚、上記実施の形態に示したもの
と同一の処理には同一の番号を付す。
【0293】まず、ホスト102から要求されたアドレ
スが既にメディア107から読みだされキャッシュバッ
ファ105に存在するかキャッシュ管理手段104を用
いてチェックする(図25:S202)。キャッシュバ
ッファ105に存在する場合には、セクタ情報バッファ
110の内容を参照し、「エラー」であったならば、す
でにそのセクタはメディアから読んだことがあり、エラ
ーであることが確認されているため、エラーでも転送し
てよいか確認する(図25:S202Yes〜S250
2Yes〜S2502)。
【0294】尚、エラーでも転送してよいか否かの確認
は例えば以下のように行われる。即ち、Mode2Fo
rm2で記録されているVideo−CDの場合を例に
上げる。上記Mode2Form2かどうかの情報は、
各セクタのフォーマットを示す図3の、Mode情報3
02の、bit1〜bit0に記憶されている。まず、
データ読出手段は、上記bit1〜bit0を参照し、
ここに”10”が記憶されていればMode2を表す。
続いて、Mode2の場合には、図3でUserDat
aと記録されている部分の先頭にサブヘッダと呼ばれる
情報が割り当てられるため、当該サブヘッダを参照する
ことでForm1かForm2かの判断が可能である。
読み出したセクタが、Mode2Form2であった場
合、そのセクタがエラーであってもホストに送ることを
意味する。以上によりエラーでも転送してよいか否かが
確認可能である。但し、正しいデータが読めるのであれ
ば、正しいデータを送るほうが望ましい。このため、一
般にはMode2Form2であっても、エラーの場合
にはリトライを行い、それでも正しいデータが読めなけ
れば、エラーのあるセクタをホストに送る。この時、M
ode2Form2の場合には、他のMode1などに
比べてエラー時のリトライ回数を減らしたり、あるいは
キャッシュバッファの残りを監視し、バッファが空にな
るまで(すなわち、Video−CDの映像が途切れな
い限り)、リトライをするという手段をとっても良い。
【0295】エラーでは転送不可の場合、ホストに対し
てエラーを返す(図25:S207)。セクタ情報バッ
ファ110の内容が「通常」である場合、あるいはセク
タ情報バッファの内容が「エラー」であるけれども、エ
ラーでも転送可であれば、キャッシュバッファ105か
ら転送する(図25:S2501No〜S209又は、
S2501Yes→S2502Yes→S209)。
【0296】キャッシュに存在しない場合、メディアか
らの読み出しを行う(図25:S210〜S222)。
メディアからの読み出しは、目的位置の手前にピックを
動かすSEEK処理を行い、目的位置に到達した時点か
らキャッシュバッファに読み出したデータを記録してい
く(図25:S211〜S212)。
【0297】続いてデータ読出手段106はメディア1
07からデータが正常に読みだせたかどうかを判定する
(図25:S2503)。メディア107から正常に読
み出せた場合、セクタ情報バッファ110に通常セクタ
であるという情報を記録し、ポインタを1つ進め、先読
みを続ける(図25:S2503No→S2504→S
2506→S221No)。規定の先読み分だけ読んだ
ならば、先読み処理を終了する(図25:S222)。
【0298】読み出したデータがエラーである場合には
セクタ情報バッファ110に「エラー」であると記録
し、ポインタを1つ進め、先読みを続ける。(図25:
S2503Yes〜S2505〜S2506〜S221
No)以上の処理により、セクタ情報バッファを用いて
エラーを管理することで、エラー時でもホストに直ちに
対応する応答を行うことが可能である。また、エラー時
でも、ホストにデータを送信してよいかを確認すること
で、エラー時における対応も問題なく行うことができ
る。さらに、SCSIやATAPI等の上述した設定が
切り替えられても、キャッシュバッファをクリアするこ
となく、エラーのあるセクタを送るか、エラーを返すか
を直ちに判断することができる。
【0299】尚、エラーかどうかの判断については、エ
ラーであると判断した時点でセクタ情報バッファに「エ
ラー」と記録するのではなく、1回以上のリトライを行
い、それでもエラーの場合のみ記録するようにしても良
い。
【0300】また、映像や音楽をリアルタイムで再生す
る場合には、映像の途切れや音飛びが発生するのを防ぐ
ため、キャッシュバッファ105の残り容量に応じて、
エラーと判断するためのリトライ回数を制限するように
しても良い。さらに、エラーの種類によっては、セクタ
情報バッファに「エラー」であると記録して先読みを続
けず、エラー終了するようにしても良い。
【0301】さらに、図25のS2505に示す、セク
タ情報バッファへの「エラー」書き込み後に、上述した
実施の形態に示す読み飛ばしを行ってもよいことは言う
までもない。
【0302】〔実施の形態17〕次に、図1を用いて、
本実施の形態17に係るドライブ装置について説明す
る。
【0303】セクタ情報バッファに「エラー」と記録さ
れていた場合、ホストに対してはエラーを返すか、ある
いはエラーのセクタを送信するが、ドライブ装置として
は、できる限りエラーとせずに正常なセクタとして読み
出し、ホストに正常なセクタを送信するのが望ましい。
【0304】本実施の形態17では、ホストから要求さ
れたアドレスがキャッシュにヒットしており、そのセク
タのセクタ情報バッファに「エラー」と記録されていた
場合、すぐにエラー処理をせず、そのセクタに対してリ
トライを行う構成とする。
【0305】ホストから要求されたアドレスがキャッシ
ュにヒットしていない場合は、その時点でメディアから
読み出すため、通常のリード処理によるリトライが行わ
れるが、キャッシュにヒットしていた場合には、すでに
このリトライはされており、さらにもう一度リトライ処
理を行うことになるため、トータルのリトライ回数を増
やしたことと同じとなり、エラーのあったセクタが正常
に読める可能性が高くなる。
【0306】通常、ドライブ装置で行われるエラー時の
リトライは、回数をあまり増やすことができない。即
ち、ホストからのコマンドを受けてから最終的にエラー
と判断してホストにエラーを返すまでの時間が長くな
り、一定の時間を超えても応答がないとホスト側がドラ
イブの異常と判断してしまうためである。
【0307】しかし、過去に一度エラーとなったものに
対して再度リトライを行う場合は、コマンドを受けてか
らの処理時間は通常のリトライ時と同じため、ホスト側
がドライブ異常と判断することはない。即ち、先読み時
のリトライと、実際のホストからの読出要求時のリトラ
イを行うことができ、通常の2倍の回数のリトライが可
能となるわけである。
【0308】尚、何度リトライしても読めない場合もあ
るため、キャッシュヒット時にセクタ情報バッファに
「エラー」と記録されていた場合の、メディアからの再
読み出しは、リトライ回数を減らすようにしてもよい。
【0309】また、キャッシュヒット時にセクタ情報バ
ッファに「エラー」と記録されていた場合であって、メ
ディアからの再読み出しをしても読めなかった場合、セ
クタ情報バッファに「リトライ失敗」と記録し、次にホ
ストから同じアドレスの読み出し要求がきた場合には、
リトライをしないようにしてもよい。エラーのあったセ
クタに対して、ホストから読出要求があり、再度メディ
アからの読出しを試みたけれどもやはりエラーであった
場合、再び同じところをホストが要求してきても読めな
い可能性のほうが高い。このため、3回目のメディアか
らの読み出しは行わずにすぐにエラーを返すことで、通
常の2倍の回数のリトライを行う利点と、既に十分なリ
トライを行っているが読めないセクタに対しては直ちに
エラーを回答可能であるという利点の双方を備えること
ができる。
【0310】以上のように、セクタ情報バッファを設
け、さらに当該セクタ情報バッファ上で読み出しエラー
の情報を管理することにより、エラーの有るセクタを再
度要求された場合に、過去にエラーが有ったことが瞬時
に判断できる。よって、正常なデータを再度読み出す試
みが可能となり、エラー時のリトライ回数を実質的に増
加させることが可能となる。また、リトライしても無駄
な場合には、リトライをしないことでホストへのエラー
の回答、即ち、処理時間を短縮することができる。
【0311】尚、上記「リトライ失敗」に限らず、上述
した「継ぎ目」や「プロテクト」、「ディスクの終了ア
ドレス」、「ダミーセクタ」、「エラーセクタ」などの
情報を全て異なる情報としてセクタ情報バッファに記録
することで、本発明に関連しない他の処理とセクタ情報
バッファを共用することができ、メモリの利用サイズを
抑えることができる。
【0312】さらに、いずれの「転送不可(ホストに転
送してはならないセクタ)」の情報にも該当しない場合
には、1回の判断で「転送可能」と判断することができ
るため、通常時の処理が高速にできる。また、「転送不
可」の種類に応じて、ホストに返すエラーコードの内容
を決めたり、エラーであってもホストにデータを転送し
たりといった処理をセクタ情報バッファにて一元管理す
ることができるとともに、他の処理との共用化により、
プログラムの簡略化、小サイズ化ができる。
【図面の簡単な説明】
【図1】本実施の形態1におけるドライブ装置の概略を
示すハードウェアブロック図。
【図2】実施の形態1におけるバッファリング処理のフ
ロー。
【図3】CDのセクタのフォーマットを示す図。
【図4】パケット・ライティング方式を用いて書き込ま
れたメディアのセクタ構造の一例。
【図5】実施の形態2におけるバッファリング処理のフ
ロー。
【図6】インクリメンタル・ライティング方式を用いて
書き込まれたメディアのセクタ構造の一例。
【図7】DVDのセクタのフォーマットを示す図。
【図8】実施の形態3におけるバッファリング処理のフ
ロー。
【図9】実施の形態3におけるキャッシュバッファの一
例を示す図。
【図10】実施の形態4におけるバッファリング処理の
フロー。
【図11】実施の形態4におけるセクタ情報バッファの
一例を示す図。
【図12】実施の形態5におけるバッファリング処理の
フロー。
【図13】実施の形態5におけるポインタ移動を示す
図。
【図14】実施の形態5におけるポインタ移動を示す
図。
【図15】実施の形態6におけるポインタ移動を示す
図。
【図16】実施の形態7におけるポインタ移動を示す
図。
【図17】実施の形態7におけるポインタ移動を示す
図。
【図18】実施の形態8におけるポインタ移動を示す
図。
【図19】実施の形態8におけるポインタ移動を示す
図。
【図20】実施の形態9におけるアドレス情報バッファ
を示す図。
【図21】実施の形態10における2つのバッファを示
す図。
【図22】実施の形態11におけるカウンタを示すブロ
ック図。
【図23】DVDのプロテクト領域を示す図。
【図24】実施の形態13におけるバッファリング処理
のフロー。
【図25】実施の形態16におけるバッファリング処理
のフロー。
【図26】メディア上のユーザ領域を示す図。
【図27】メディア上のユーザ領域における継ぎ目を示
す図。
【図28】CDR/RWにおけるmethod2適用時
のCDのアドレスを示す図。
【図29】パケット・ライティングを用いて書き込まれ
たメディアのセクタ構造の一例。
【図30】従来におけるバッファリング処理のフロー。
【符号の説明】 101−ドライブ装置 102−ホスト 103−データ送信手段 104−キャッシュ管理手段 105−キャッシュバッファ 106−データ読出手段 107−メディア 108−モーター 109−セクタ判定手段 110−セクタ情報バッファ 111−セクタ管理手段 112−ポインタ管理手段

Claims (44)

    【特許請求の範囲】
  1. 【請求項1】 ホストからのデータ読出要求に基づい
    て、所定のメディアからデータを読み出すデータ読出手
    段と、当該データを上記ホストに送信すると共に、キャ
    ッシュバッファを用いて当該データを管理するデータ送
    信手段を備えたドライブ装置において、 上記メディア上においてデータが記憶されるセクタの種
    別を記憶するセクタ情報バッファと、 上記セクタ種別を判定すると共に当該セクタ種別を上記
    セクタ情報バッファに書き込むセクタ判定手段と、 上記セクタ情報バッファに記憶されたセクタ種別を参照
    するセクタ管理手段とを備えるとともに、 上記データ送信手段が、上記参照したセクタ種別に基づ
    いて上記データの送信を制御することを特徴とするドラ
    イブ装置。
  2. 【請求項2】 上記セクタ判定手段は、上記データ読出
    手段が読み出した、ホストに送信すべきでないセクタの
    セクタ種別も上記セクタ情報バッファに書き込む請求項
    1に記載のドライブ装置。
  3. 【請求項3】 上記データ読出手段は、上記ホストに送
    信すべきでないセクタをメディアから読み出した後に、
    当該送信すべきでないセクタの後部にあるセクタの先読
    みを行う請求項2に記載のドライブ装置。
  4. 【請求項4】 上記セクタ判定手段が、セクタ種別の情
    報が記憶されている領域のみに基づいてセクタ種別を判
    定する請求項3に記載のドライブ装置。
  5. 【請求項5】 上記セクタ情報バッファは、上記キャッ
    シュバッファに記憶されるデータの、セクタ種別の情報
    が記憶されている領域により構成される請求項4に記載
    のドライブ装置。
  6. 【請求項6】 上記セクタ情報バッファは、さらに各セ
    クタのモード又はフォーム情報を含む請求項5に記載の
    ドライブ装置。
  7. 【請求項7】 上記メディアがCD(コンパクトディス
    ク)であると共に、上記セクタ判定手段は、パケットラ
    イティング方式におけるROUT1、ROUT2、LI
    NK、RIN1、RIN2、RIN3、RIN4を判定
    する請求項3に記載のドライブ装置。
  8. 【請求項8】 上記メディアがDVDであると共に、 上記セクタ判定手段は、当該メディアのヘッダ部を参照
    することでインクリメンタルライティング方式における
    LinkingLoss領域を判定する請求項3に記載
    のドライブ装置。
  9. 【請求項9】 上記メディアがDVDであると共に、 上記セクタ判定手段は、当該メディアのRMD(Record
    ing Management Data)を参照することでインクリメンタ
    ルライティング方式におけるLinkingLoss領
    域を判定する請求項3に記載のドライブ装置。
  10. 【請求項10】 上記データ読出手段は、上記メディア
    から複数のセクタを読み出すと共に、当該複数のセクタ
    単位で所定のセクタ種別の有無を判定する請求項8又は
    9に記載のドライブ装置。
  11. 【請求項11】 上記データ読出手段は、セクタ判定手
    段が判定したセクタ種別に基づいて、連続する所定数の
    セクタを読み飛ばす請求項3に記載のドライブ装置。
  12. 【請求項12】 上記データ読出手段は、さらに上記読
    み飛ばしたセクタに対応するセクタ種別を上記セクタ情
    報バッファに書き込む請求項11に記載のドライブ装
    置。
  13. 【請求項13】 上記セクタ種別は、パケットライティ
    ング方式におけるROUT1、ROUT2、LINK、
    RIN1、RIN2、RIN3、RIN4のいずれかで
    あると共に、 上記データ読出手段は、上記7つのセクタ種別各々に対
    応する数のセクタを読み飛ばす請求項12に記載のドラ
    イブ装置。
  14. 【請求項14】 上記セクタ判定手段は、上記読み飛ば
    したセクタに対応するセクタ情報バッファに「未確定」
    を示すセクタ種別を書き込むと共に、 上記データ送信手段は、上記「未確定」を示すセクタ種
    別をセクタ管理手段が読み出した場合には、当該「未確
    定」に対応するセクタの読み出し指示を行う請求項12
    に記載のドライブ装置。
  15. 【請求項15】 上記データ送信手段は、「未確定」に
    対応するセクタの読み出し指示に際して、上記キャッシ
    ュバッファのクリアを行わない請求項14に記載のドラ
    イブ装置。
  16. 【請求項16】 さらに、上記データ読出手段は、上記
    「未確定」セクタに連続する「未確定」セクタを続けて
    読み出す請求項15に記載のドライブ装置。
  17. 【請求項17】 上記データ読出手段は、上記所定数の
    セクタを読み飛ばした後には、連続して上記所定数の読
    み飛ばしを行わない請求項11に記載のドライブ装置。
  18. 【請求項18】 上記「未確定」に対応するセクタが特
    定のセクタ種別の場合に、上記所定数以下の読み飛ばし
    を行う請求項14に記載のドライブ装置。
  19. 【請求項19】 上記特定のセクタ種別が、「継ぎ目」
    である請求項18に記載のドライブ装置。
  20. 【請求項20】 さらに、所定のセクタ種別をカウント
    するカウンタを備えると共に、上記データ読出手段は、
    当該カウンタのカウント数に基づいて、上記所定数を変
    更する請求項11に記載のドライブ装置。
  21. 【請求項21】 上記所定数の変更が、数値の減少であ
    る請求項20に記載のドライブ装置。
  22. 【請求項22】 上記所定数の変更が、数値の増加であ
    る請求項20に記載のドライブ装置。
  23. 【請求項23】 上記データ読出手段は、上記所定のメ
    ディアの種別を判断すると共に、当該判断結果に基づい
    て、上記セクタ種別の判定方法、及び/又は上記セクタ
    の先読み条件を切り替える請求項3に記載のドライブ装
    置。
  24. 【請求項24】 上記セクタ判定手段は、セクタ種別と
    して読み出したセクタの送信に関するプロテクトの解除
    の未済を上記セクタ情報バッファに書き込むと共に、 上記データ送信手段は、上記プロテクトの解除の未済に
    基づいて上記データの送信を制御する請求項3に記載の
    ドライブ装置。
  25. 【請求項25】 上記プロテクトの解除が行われた際
    に、上記セクタ情報バッファに記憶されている「プロテ
    クト未解除」を示すセクタ種別を「プロテクト解除」又
    は「送信可能」を示すセクタ種別に変更する請求項24
    に記載のドライブ装置。
  26. 【請求項26】 上記セクタ判定手段は、上記メディア
    におけるホストに送信可能なアドレスを記憶し、当該ア
    ドレスに該当しない場合には「送信不可能」を示すセク
    タ種別を、該当する場合には「送信可能」を示すセクタ
    種別を上記セクタ情報バッファに書き込むとともに、 上記データ送信手段は、上記セクタ情報バッファに記憶
    した「送信不可能」又は「送信可能」を示すセクタ種別
    に基づいて上記データの送信を制御する請求項3に記載
    のドライブ装置。
  27. 【請求項27】 上記メディアがDVDであり、 上記セクタ判定手段の判定結果がダミーセクタの場合に
    は「ダミーセクタ」を示すセクタ種別を、含まない場合
    には「送信可能」を示すセクタ種別を上記セクタ情報バ
    ッファに書き込むと共に、 上記データ読出手段は、メディア上の連続する上記ダミ
    ーセクタを読み飛ばす請求項11に記載のドライブ装
    置。
  28. 【請求項28】 上記メディアが2層DVDであり、 上記セクタ判定手段は、上記メディアにおける1層目の
    最後のブロックがダミーセクタを含むか否かを判断し、
    当該ダミーセクタを含む場合には「ダミーセクタ」を示
    すセクタ種別を、含まない場合には「送信可能」を示す
    セクタ種別を上記セクタ情報バッファに書き込むととも
    に、 上記データ送信手段は、上記セクタ情報バッファに記憶
    した「ダミーセクタ」を示すセクタ種別を参照した際に
    は、上記キャッシュバッファをクリアするとともにメデ
    ィアから2層目の先頭の読み出しを行う請求項11に記
    載のドライブ装置。
  29. 【請求項29】 上記セクタ判定手段は、上記メディア
    からのセクタ読み出し時にエラーがあった場合には、当
    該エラーのセクタに対応するセクタ情報バッファに「エ
    ラー」を示すセクタ種別を書き込む請求項3に記載のド
    ライブ装置。
  30. 【請求項30】 さらに、上記データ読出手段は、上記
    エラーのセクタから連続する所定数のセクタを読み飛ば
    す請求項29に記載のドライブ装置。
  31. 【請求項31】 上記セクタ判定手段は、上記読み飛ば
    したセクタに対応するセクタ情報バッファに「未確定」
    を示すセクタ種別を書き込む請求項30に記載のドライ
    ブ装置。
  32. 【請求項32】 上記データ送信手段は、上記ホストか
    らセクタ情報バッファに記憶されているセクタ種別が
    「エラー」であるセクタの読出要求を受けた場合、再度
    当該「エラー」に対応するセクタをメディアから読み出
    すリトライ処理をデータ読出手段に対して指示する請求
    項29に記載のドライブ装置。
  33. 【請求項33】 上記データ読出手段は、上記リトライ
    処理の指示を受けた場合には、規定のリトライ回数より
    も少ない回数のリトライ処理を行う請求項32に記載の
    ドライブ装置。
  34. 【請求項34】 上記リトライ処理によるメディアから
    のセクタ読み出しがエラーであった場合、当該セクタに
    対応するセクタ情報バッファに「リトライ失敗」を示す
    セクタ種別を書き込む請求項33に記載のドライブ装
    置。
  35. 【請求項35】 上記データ送信手段は、上記セクタ情
    報バッファに「エラー」を示すセクタ種別が記憶されて
    いるセクタの読出要求を受けた場合に、当該エラーのセ
    クタに記憶されているデータを上記ホストに送信する請
    求項29に記載のドライブ装置。
  36. 【請求項36】 上記キャッシュバッファ及び上記セク
    タ情報バッファを複数のポインタで管理するポインタ管
    理手段を備え、 上記データ読出手段は、上記メディアから読み出したセ
    クタが所定のセクタ種別の場合には、上記複数のポイン
    タを切り替える請求項3に記載のドライブ装置。
  37. 【請求項37】 上記メディア上のアドレスと、当該メ
    ディア上のアドレスに対応するキャッシュバッファのア
    ドレス、及びセクタ情報バッファのアドレスを備えたア
    ドレス情報バッファを具備し、 上記データ読出手段は、上記アドレス情報バッファを用
    いてセクタを管理する請求項3に記載のドライブ装置。
  38. 【請求項38】 複数個の上記キャッシュバッファを備
    えるとともに、 上記データ読出手段は、上記セクタ判定手段が判定した
    セクタ種別に基づいて上記複数個のキャッシュバッファ
    を切り替える請求項3に記載のドライブ装置。
  39. 【請求項39】 さらに、所定のセクタ種別をカウント
    するカウンタを備えると共に、 上記データ読出手段は、当該カウンタのカウント数に基
    づいて、上記キャッシュバッファ及びセクタ情報バッフ
    ァの制御方法を切り替える請求項11に記載のドライブ
    装置。
  40. 【請求項40】 上記制御方法の切り替えは、上記読み
    飛ばしたセクタに対応する領域を、予め上記キャッシュ
    バッファに設けるか否かである請求項39に記載のドラ
    イブ装置。
  41. 【請求項41】 上記セクタ判定手段は、ホストへの送
    信が不可能であることを示すセクタ種別を複数種設け、
    当該複数種のセクタ種別を上記セクタ情報バッファに書
    き込むと共に、 上記データ送信手段は、上記複数種のセクタ種別それぞ
    れに対応するエラーコードをホストへ送信する請求項3
    に記載のドライブ装置。
  42. 【請求項42】 所定のメディアからデータを読み出
    し、当該データをホストに送信すると共に、キャッシュ
    バッファを用いて当該データを管理するバッファ管理方
    法において、 上記メディア上においてデータが記憶されるセクタの種
    別を記憶し、 上記記憶したセクタ種別を必要に応じて参照し、 上記参照したセクタ種別に基づいて上記データの上記ホ
    ストへの送信を制御することを特徴とするバッファ管理
    方法。
  43. 【請求項43】 上記メディアから読み出したデータの
    セクタ種別であって、ホストに送信すべきでないセクタ
    のセクタ種別も記憶する請求項42に記載のバッファ管
    理方法。
  44. 【請求項44】 上記ホストに送信すべきでないセクタ
    をメディアから読み出した後に、当該送信すべきでない
    セクタの後部にあるセクタの先読みを行う請求項43に
    記載のバッファ管理方法。
JP2000335629A 1999-11-04 2000-11-02 ドライブ装置及び、バッファ管理方法 Pending JP2001195198A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000335629A JP2001195198A (ja) 1999-11-04 2000-11-02 ドライブ装置及び、バッファ管理方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP31339399 1999-11-04
JP11-313393 1999-11-04
JP2000335629A JP2001195198A (ja) 1999-11-04 2000-11-02 ドライブ装置及び、バッファ管理方法

Publications (1)

Publication Number Publication Date
JP2001195198A true JP2001195198A (ja) 2001-07-19

Family

ID=26567542

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000335629A Pending JP2001195198A (ja) 1999-11-04 2000-11-02 ドライブ装置及び、バッファ管理方法

Country Status (1)

Country Link
JP (1) JP2001195198A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005057576A1 (ja) * 2003-12-11 2005-06-23 Matsushita Electric Industrial Co., Ltd. 信号処理回路
JP2007508659A (ja) * 2003-10-17 2007-04-05 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ デジタル情報信号再生装置及び方法
KR101190210B1 (ko) 2003-10-06 2012-10-16 코닌클리케 필립스 일렉트로닉스 엔.브이. 다층 광 디스크 및 상기 디스크에 기록하는 장치

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101190210B1 (ko) 2003-10-06 2012-10-16 코닌클리케 필립스 일렉트로닉스 엔.브이. 다층 광 디스크 및 상기 디스크에 기록하는 장치
US9076460B2 (en) 2003-10-06 2015-07-07 Koninklijke Philips N.V. Multiple layer optical disc, and device for writing such disc
US9489134B2 (en) 2003-10-06 2016-11-08 Koninklijke Philips N.V. Multiple layer optical disc, and device for writing such disc
JP2007508659A (ja) * 2003-10-17 2007-04-05 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ デジタル情報信号再生装置及び方法
US7885513B2 (en) 2003-10-17 2011-02-08 Koninklijke Philips Electronics N.V. Seamless reproduction from a signal recorded on a first and a second layer of a record carrier
WO2005057576A1 (ja) * 2003-12-11 2005-06-23 Matsushita Electric Industrial Co., Ltd. 信号処理回路

Similar Documents

Publication Publication Date Title
JP4744569B2 (ja) Avデータの記録再生に適した記録方法と再生方法及び、その記録ドライブと再生ドライブ及び、情報記録システムと情報再生システム及び、情報記録媒体
JP4279515B2 (ja) 記録再生装置
EP0703581B1 (en) Preprocess method, information read/write method, input/output device and read/write device
EP1441345A2 (en) An optical disc recording and reproducing apparatus for performing a fomatting process as a background process and a method for formatting an optical disc by a background process
JP3796858B2 (ja) 光ディスク読出装置
JP2004119014A (ja) 光記録メディアへデータを書込みまたは光記録メディアからデータを再生する方法とそのための光記録メディア
US6701413B2 (en) Disk drive performing a read-ahead operation of the data from the disk
US6771575B1 (en) Defect area management system and method for optical storage medium
KR100391740B1 (ko) 재생 오류의 처리 방법 및 이를 이용한 디스크 장치
JPH08147879A (ja) 光ディスク記録装置
JP2001195198A (ja) ドライブ装置及び、バッファ管理方法
JP3637346B1 (ja) 情報記録装置と情報記録方法とプログラム
WO2005041186A1 (ja) 情報記録装置と情報記録方法と記録媒体
KR100611828B1 (ko) 기록장치, 기록방법, 프로그램 및 기록매체
JP3240860B2 (ja) 光ディスク記録装置
JP4196512B2 (ja) Avデータの記録再生に適した記録方法と再生方法及び、その記録ドライブと再生ドライブ及び、情報記録システムと情報再生システム及び、情報記録媒体
US6735156B2 (en) Recording method for rewritable optical disk
US6772282B2 (en) Method of continuous burn for storage medium
JP2002170322A (ja) 記録再生ディスク制御装置、記録再生ディスク制御方法および記録再生ディスク装置
JP2006324010A (ja) データ再生装置及びデータ記録装置
JP2005056519A (ja) ストリーム系コマンドを使用する場合の読取処理方法及び媒体記憶装置
KR20030029904A (ko) 정보매체 상에 저장된 콘텐트의 보호방법
JPH1196679A (ja) 光ディスク記録装置
JPH06162684A (ja) 情報記録/再生方式
JP2004070979A (ja) ディスク装置