(57)【特許請求の範囲】
【請求項１】
所定データ単位で記録媒体上にデータを書き込む情報記録方法において、
上記所定データ単位でなる第１のデータを上記記録媒体上に書き込むコマンドを所定のフアイルシステムから上記記録媒体の書込み手段に送信した後、所定コマンド数だけ遅延したタイミングで上記第１のデータの実際の書込み結果を上記書込み手段から上記フアイルシステムに返送する
ことを特徴とする情報記録方法。
【請求項２】
上記情報記録方法は、
上記第１のデータの書込みコマンドを上記フアイルシステムから上記書込み手段に送信後、上記第１のデータの書込みが完了する前に上記第１のデータのコマンド終了結果を上記書込み手段から上記フアイルシステムに返送する
ことを特徴とする請求項１に記載の情報記録方法。
【請求項３】
上記情報記録方法は、
上記フアイルシステム側に設けられた複数のバツフアに対して上記所定データ単位のデータを交互に準備し、当該準備されたデータを上記記録媒体に書き込む
ことを特徴とする請求項１又は請求項２に記載の情報記録方法。
【請求項４】
上記記録媒体は、追記型記録媒体である
ことを特徴とする請求項１に記載の情報記録方法。
【請求項５】
所定データ単位で記録媒体上にデータを書き込む情報記録装置において、
上記所定データ単位でなる第１のデータをフアイルシステム側で記憶する記憶手段と、
上記記録媒体上に上記第１のデータを書き込むためのコマンドを上記フアイルシステムから上記記録媒体の書込み手段に送信する送信手段と、
上記送信手段から上記書込み手段に対して上記書込みコマンドが送信された後、所定コマンド数だけ遅延したタイミングで上記第１のデータの実際の書込み結果を上記書込み手段から上記フアイルシステムに返送する返送手段を具える
ことを特徴とする情報記録装置。
【請求項６】
上記情報記録装置は、
上記第１のデータの書込みコマンドを上記フアイルシステムから上記書込み手段に送信後、上記第１のデータの書込みが完了する前に上記第１のデータのコマンド終了結果を上記書込み手段から上記フアイルシステムに返送する返送手段を具える
ことを特徴とする請求項５に記載の情報記録装置。
【請求項７】
上記情報記録装置は、上記フアイルシステム側に複数のバツフアを具え、
上記複数のバツフアに対して上記所定データ単位のデータを交互に準備し、当該準備されたデータを上記記録媒体に書き込む
ことを特徴とする請求項５又は請求項６に記載の情報記録装置。
【請求項８】
上記記録媒体は、追記型記録媒体である
ことを特徴とする請求項５に記載の情報記録装置。
【発明の詳細な説明】
【０００１】
【目次】
以下の順序で本発明を説明する。
発明の属する技術分野
従来の技術（図１５）
発明が解決しようとする課題（図１６〜図１９）
課題を解決するための手段
発明の実施の形態（図１〜図１４）
発明の効果
【０００２】
【発明の属する技術分野】
本発明は情報記録方法及びその装置に関し、例えば追記可能なデイスク状記録媒体にデータを所定単位で書き込む情報記録方法及びその装置に適用して好適なものである。
【０００３】
【従来の技術】
従来、大容量のデータ記録媒体としてCD-ROM(Compact Disc-Read Only Memory) と呼ばれる読出し専用のものがある。このCD-ROMでは、CD-ROM専用のフアイルシステムが用いられている。
【０００４】
このCD-ROMに新たに記録層を形成するこによつて１回だけ書込みを可能としたCD-R(Compact Disc-Recordable) と呼ばれる追記型のデイスク状記録媒体がある。このCD-Rでは上述したCD-ROM専用のフアイルシステムに代えてCD-R用のパケツト記録用フアイルシステムを用いてデータを記録再生するようになされている。
【０００５】
この種の記録方法として図１５に示すように、ホストコンピユータ側のフアイルシステムはステツプＳＰ１においてデータを１パケツト分集めた後、ステツプＳＰ２に移つてCD-Rドライブ装置側に対してパケツトの書込み命令（ライトコマンド）を送信すると共に当該パケツトのデータ（書込みデータ）を転送する。
【０００６】
CD-Rドライブ装置は、ステツプＳＰ２において転送された書込みデータに対して、ステツプＳＰ３において、ピツクアツプを指定された書込み位置よりも少し手前に移動し、その位置から記録トラツクをトレースすることによつて再生を開始する。
【０００７】
その後、ステツプＳＰ４においてCD-Rドライブ装置は、CD-Rデイスクのドライブサーボが安定するのを待ち、ステツプＳＰ５に移つてCD-Rデイスク上に記録されている信号とこれからCD-Rデイスク上に記録しようとするデータとをエンコーダにおいて同期させる。そしてCD-Rドライブ装置はステツプＳＰ６に移つてエンコーダでのデータの遅延分だけ早いタイミングでエンコードを開始し、ステツプＳＰ７においてピツクアツプが所定の書込み位置に達したときレーザ出力を大きくしてエンコーダから出力された書込み信号をデイスクに書き込む。このようにしてCD-Rドライブ装置は、実際に書込みデータを書込み開始する前に、ステツプＳＰ３〜ステツプＳＰ７におけるセツトアツプを実行する。
【０００８】
ステツプＳＰ７においてデータの書込みが開始されると、CD-Rドライブ装置はステツプＳＰ８に移り、１パケツト分のエンコードを終了して所定の書込み停止位置に達したときレーザ出力を小さくして書込み動作を停止する。これによりCD-Rドライブ装置における１パケツト分のデータ書込みが完了し、このときCD-Rドライブ装置はステツプＳＰ９に移つて、当該パケツトの書き込みに成功したことをフアイルシステムに送信することによつて、当該１パケツト分のデータ書込みを完了する。
【０００９】
このようにして１パケツト分のデータの書込みが完了する度に、CD-Rドライブ装置は書込み完了をフアイルシステム側に報告することにより、図１６に示すように、フアイルシステムは当該報告が受信される度に次の１パケツト分のデータを集めてCD-Rドライブ装置側に転送することにより、図１５について上述したステツプＳＰ１〜ステツプＳＰ９を繰り返す。
【００１０】
【発明が解決しようとする課題】
ところがかかる方法によつてパケツト毎にデータをCD-Rデイスク上に書き込もうとすると、図１６に示す各パケツトの書き込み動作（ステツプＳＰ３〜ステツプＳＰ９）が終了した時点でフアイルシステムが次のパケツトデータを集める処理を開始することにより、CD-Rドライブ装置側でデータの書き込みをしている間（ステツプＳＰ３〜ステツプＳＰ９）においてフアイルシステム側の動作が中断し、書き込み動作全体としての処理時間が長時間化することを避け得ない問題があつた。特に、CD-Rデイスク装置はハードデイスク装置等に比べてシーク速度が遅く、図１５について上述したセツトアツプ（ステツプＳＰ３〜ステツプＳＰ７）に要する時間が長くなることにより、この間フアイルシステムが処理を待たされることになる。
【００１１】
この問題点を解決するための一つの方法として、ライトキヤツシユを用いて書込み成功の情報を実際のデータ書込み前に返送する方法が考えられる。すなわち図１５との対応部分に同一符号を付して示す図１７において、ホストコンピユータ側のフアイルシステムは、ステツプＳＰ１においてのバツフアに書込みデータを１パケツト分だけまとめ、ステツプＳＰ２においてCD-Rドライブ装置に対して当該パケツトの書込み命令（ライトコマンド）及び書込みデータを送出する。CD-Rドライブ装置は、ステツプＳＰ２においてフアイルシステム側から送出されたライトコマンド及び書込みデータを受け取ると、データの書込みを始める前に、ステツプＳＰ９において当該ライトコマンドで書込み指定されたパケツトの書込み成功情報（すなわち当該パケツトのライトコマンドの終了情報）をフアイルシステム側に返送する。これによりフアイルシステム側では、当該パケツトに続くパケツトのデータを集める処理が開始される。
【００１２】
CD-Rドライブ装置は、ステツプＳＰ９において書込み成功情報（コマンド終了情報）をフアイルシステムに返送すると、ステツプＳＰ３に移つて、上述のステツプＳＰ９において書込み成功情報を前もつて返送したパケツトの書込みデータを実際に書き込む処理を開始する。
すなわちステツプＳＰ３においてCD-Rドライブ装置は、ピツクアツプを指定された書込み位置よりも少し手前に移動し、その位置から記録トラツクをトレースすることによつて再生を開始する。
【００１３】
その後、ステツプＳＰ４においてCD-Rデイスクのドライブサーボが安定するのを待ち、ステツプＳＰ５に移つてCD-Rデイスク上に記録されている信号とこれからCD-Rデイスク上に記録しようとするデータとをエンコーダにおいて同期させる。そしてCD-Rドライブ装置はステツプＳＰ６に移つてエンコーダでのデータの遅延分だけ早いタイミングでエンコードを開始し、ステツプＳＰ７においてピツクアツプが所定の書込み位置に達したときレーザ出力を大きくしてエンコーダから出力された書込み信号をデイスクに書き込む。このようにステツプＳＰ３〜ステツプＳＰ７のセツトアツプが完了すると、データの書込みが開始され、CD-Rドライブ装置はステツプＳＰ８に移り、１パケツト分のエンコードを終了して所定の書込み停止位置に達したときレーザ出力を小さくして書込み動作を停止する。これによりCD-Rドライブ装置における１パケツト分のデータ書込みが完了する。
【００１４】
このようにして、ステツプＳＰ３〜ステツプＳＰ７のセツトアツプが行われる前にステツプＳＰ９の処理を実行して書込みが開始されていないパケツトの書込み成功情報をフアイルシステム側に返送することにより、フアイルシステムはステツプＳＰ８において実際に書込みが完了する前（すなわちセツトアツプ前）に当該書込み処理が実行されるパケツトに続く次のパケツトのデータを集める処理を開始できる。
【００１５】
このようなライトキヤツシユの手法を用いて、CD-Rデイスク上にデータを連続的に記録する方法が考えられる。すなわち図１８（Ａ）に示すように、ホストコンピユータ側のフアイルシステムは、CD-Rドライブ装置側のバツフアメモリに対して、図１７について上述したライトキヤツシユの手法を用いて順次パケツト単位のデータを連続的に蓄積して行く。このときCD-Rドライブ装置のバツフアメモリは蓄積データが無くなるまで連続的に当該データをCD-Rデイスク上に書き込んで行き、図１８（Ｂ）に示すようにバツフアメモリ内のデータが無くなつたとき、このときCD-Rデイスク上に書き込まれたデータを１パケツトとして当該パケツトの終了を表すランアウト情報ＲＯ１及びＲＯ２を書き込んでデータの書込みを完結させる。これにより図１９に示すような１データトラツク分のデータを連続的に書き込むようないわゆるトラツクアツトワンス(Track At Once) と呼ばれる書込み方法が考えられる。
【００１６】
ところが、フアイルシステム側において図１７に示すライトキヤツユを用いると、データの書込みが実際に完了する前に書込みが成功した情報をCD-Rドライブ装置からホストコンピユータのフアイルシステムに返送することにより、フアイルシステム側は、書込み完了前のデータを破棄して次のパケツトの準備を開始することになり、実際のデータの書込みが失敗した場合はデータの修復が困難になる問題があつた。
【００１７】
また図１８に示すように、CD-Rドライブ装置側においてバツフアメモリ内のデータが無くなるまで連続的にデータの書込みを行つて可変長パケツトを生成する場合、実際にCD-Rデイスク上に書き込まれる当該書込みパケツトの長さはCD-Rドライブ装置のバツフアメモリのデータ量に依存することになり、ホストコンピユータ側のフアイルシステムでは当該パケツト長を認識することが困難である。CD-Rデイスク上に形成された可変長のパケツトが完結すると、当該パケツトの終端部分にランアウトと呼ばれる完結情報が書き込まれるとともに、再び次のパケツトのデータ書込みが開始されると、パケツトの境界を表すリンクブロツクとパケツトの開始情報を表す４ブロツクのランイン情報とが書き込まれる。従つてCD-Rドライブ装置側のバツフアメモリのデータ量に応じてパケツトが完結されると、これに応じて次のパケツトの書込み位置がリンクブロツク及びその前後のランアウトブロツク、ランインブロツクの分だけずれるアドレスシフトが発生する。このアドレスシフトはフアイルシステム側では認識することが困難であり、この結果フアイルシステム側で認識する書込みアドレスと実際にデータが書き込まれたアドレスとの間に差異が生じる問題があつた。
【００１８】
本発明は以上の点を考慮してなされたもので、書込みエラーの修復を行うことができるとともにアドレスシフトの発生を未然に回避しながら、書込み処理に要する時間を一段と短縮し得る情報記録方法及びその装置を提案しようとするものである。
【００１９】
【課題を解決するための手段】
かかる課題を解決するため本発明においては、所定データ単位で記録媒体上にデータを書き込む情報記録方法において、所定データ単位でなる第１のデータを記録媒体上に書き込むコマンドを所定のフアイルシステムから記録媒体の書込み手段に送信した後、所定コマンド数だけ遅延したタイミングで第１のデータの実際の書込み結果を上記書込み手段からフアイルシステムに返送するとともに、第１のデータの書込みコマンドをフアイルシステムから書込み手段に送信後、第１のデータの書込みが完了する前に第１のデータのコマンド終了結果を書込み手段からフアイルシステムに返送する。
【００２０】
また本発明においては、フアイルシステム側に複数のバツフアを設け、連続する所定データ単位ごとのデータを交互に準備し、当該準備されたデータを記録媒体上に書き込む。
【００２１】
本発明では、書込みコマンドを実際の書込み前に直ちに終了させることにより、実際に書込み中のデータを一方のバツフアに保存しながら、他方のバツフアで次のデータを準備することができる。これにより書込みエラーの修復を可能としながら、記録媒体へのデータの書込みを連続的にすることができる。かくしてデータの書込み処理を全体として短時間化し得る。
【００２２】
【発明の実施の形態】
以下図面について、本発明の一実施例を詳述する。
【００２３】
図１において１は全体として情報処理装置を示し、ホストコンピユータ部１０は、ユーザがキーボード１２等の入力装置を操作することによつて当該ユーザによるコマンドがＩ／Ｏ(Input/ Output) １１を介してＣＰＵ２に入力され、必要なデータがモニタ１３の表示画面に出力される。
ハードデイスクに格納されているOSプログラムは、ＣＰＵ２の制御によりインタフエイス３を介してハードデイスクドライブ４から読み出され、ＲＡＭ５に格納される。ＣＰＵ２は、このOSプログラムに基づいて、CD-ROMドライブ装置８又はCD-Rドライブ装置７によつてドライブされるデイスクからデータを読み出し又は書き込む。
【００２４】
CD-Rドライブ装置７は図２に示すように、ホストコンピユータ部１０（図１）においてＣＰＵ２の制御によつてＲＡＭ５から出力された書込みデータＤＷを書込み命令（ライトコマンドＣＯＭ）とともに外部インタフエイス回路２１に入力する。ＣＰＵブロツク２６はライトコマンドＣＯＭに応じて外部インタフエイス回路２１を制御することにより、書込みデータＤＷをバツフアメモリ２２に送出する。バツフアメモリ２２はＣＰＵブロツク２６から出力される制御信号ＣＯＮＴ２によつて制御され、書込みデータＤＷを少なくとも１パケツト（この実施例の場合２[Kbyte] のブロツクを３２ブロツク集めて１パケツトとする）分だけ集めた後、これをエンコード回路２３に送出する。エンコード回路２３はＣＰＵブロツク２６から出力される制御信号ＣＯＮＴ３によつて制御され、バツフアメモリ２２から送出された１パケツト分の書込みデータＤＷに対してリードソロモン符号を結合させるＣＩＲＣ(Cross Interleaved Reed-Solomon Code) エンコードを実行してCD-Rデイスク６に対する記録時の誤り補償を行う。
【００２５】
このようにして誤り補償が施された書込みデータＤＷは、信号変調回路２４に送出され、ＥＦＭ変調（８−１４変調）を行うとともに、ＣＰＵブロツク２６から出力される同期信号ＳＹＮＣが付加され、当該同期信号ＳＹＮＣに応じたタイミングで光学ブロツク３２に送出される。
【００２６】
光学ブロツク３２は、CD-Rデイスク６を再生することによつて得られるサーボ検出信号ＤＥＴ（トラツキングエラー信号、フオーカスエラー信号等）をサーボ回路２８に送出する。サーボ回路２８はサーボ検出信号ＤＥＴに基づいてスピンドルモータ２９を所定回転数に回転制御する。またサーボ回路２８は、サーボ検出信号ＤＥＴに基づいて制御信号ＣＯＮＴ６をスレツド３１に送出することにより当該スレツド３１によつて光学ブロツク３２の位置を粗調整するとともに、制御信号ＣＯＮＴ７を光学ブロツク３２側に送出することにより、当該光学ブロツク３２の位置を微調整する。
これにより、所定位置に位置決めされた光学ブロツク３２の光学系ＬＥＮを介して、信号変調回路２４から出力される記録信号ＳＷを、レーザビームＬＡによつてCD-Rデイスク６の記録面の所定位置に書き込む。
【００２７】
これに対してCD-Rデイスク６から記録済のデータを読み出す場合、光学ブロツク３２を介して得られた再生信号ＳＲは信号復調回路２５に入力される。信号復調回路２５は再生信号ＳＲに対してＥＦＭ復調を実行するとともに、当該再生信号ＳＲから同期信号ＳＹＮＣを検出し、これをＣＰＵブロツク２６に送出する。
【００２８】
信号復調回路２５においてＥＦＭ復調された再生信号は、デコード回路２３に送出され、ＣＩＲＣデコードによる誤り訂正が実行される。かくしてデコード回路２３において読出しデータＤＲが得られ、バツフアメモリ２２及び外部インタフエイス回路２１を介してホストコンピユータ部１０に送出される。因みにCD-Rドライブ装置７のメモリ２７は、ＣＰＵブロツク２６を動作させるためのワーキングメモリである。
【００２９】
ここで図３はホストコンピユータ部１０及びCD-Rドライブ装置７におけるパケツト記録のためのソフトウエアシステムを示し、ユーザはアプリケーシヨンソフトウエアＡＰに対してフアイルの書込み又は削除を指示すると、当該アプリケーシヨンソフトウエアＡＰはユーザによる命令をオペレーテイングシステムＯＳのシステムコールに変換し、これをオペレーテイングシステムＯＳに送出する。オペレーテイングシステムＯＳはシステムコールを受け取ると、CD-Rドライブ装置７に対応したフアイルシステム（CDRFS:Compact Disc Recordable File System)ＦＳに対してフアイルの操作命令を渡す。
【００３０】
フアイルシステムＦＳは、渡されたフアイル操作命令を解釈し、CD-Rドライブ装置７でドライブされるCD-Rデイスク６上の書込み位置又は読出し位置等を判断し、当該判断結果をデバイスコントロール命令としてデバイスドライバＤＤに渡す。デバイスドライバＤＤは、デバイスコントロール命令を各ドライブ装置ごとに異なるコマンドに変換する。図３の場合、デバイスドライバＤＤはデバイスコントロール命令をCD-Rドライブ装置７のコマンドに変換し、これをCD-Rドライブ装置のインタフエイス命令としてCD-Rドライブ装置７に送出する。かくしてCD-Rドライブ装置７は、ユーザによる命令に従つて所望のデータを書き込み又は読み出すことができる。
【００３１】
ここで図４は複数のセツシヨンを構成するマルチセツシヨン(Multi Session) のCD-Rデイスクの論理構造を示し、CD-Rデイスクの中心部から外周部に向かつて記録トラツクが螺旋状に形成される。この記録トラツクは、図４（Ａ）に示すようにデイスクの中心(Disc Center) から外側に向かつて最適なパワーを調べるための試し書き領域であるPCA(Power Calibration Area) 、TOC(Table Of Contents)情報を記録したPMA(Program Memory Area)から始まり、プログラムデータを記録する複数のセツシヨンが設定されている。各セツシヨンは、プログラムデータを記録するプログラムエリア(Program Area)が書込み完了した後にガードエリア(Gurd Area) であるリードインエリア(Lead-In Area)及びリードアウトエリア(Lead-Out Area) によつて始めと終わりが閉じられるようになされている。リードインエリアにはTOC が設定されており、追記された最新セツシヨンの先頭位置情報を得ることができる。
【００３２】
図４（Ｂ）は、各セツシヨンが例えば３データトラツク(Data Track)の場合、３つのトラツクから形成されていることを示している。図４（Ｃ）に示すように各トラツクは、トラツク識別子(Track Descriptor)を設定したインデツクス(Index)=00に続いて設定される固定長の複数パケツト(Packet)によつて形成される。また図４（Ｄ）に示すように各パケツトは例えば固定長３２の場合、リンクブロツク(Link Block:ＬＢ）とランインブロツク(Run-in-Block:ＲＩ）とランアウトブロツク(Run-out-Block：ＲＯ）との間にパケツト長32のユーザデータ(User Data) を記録するようにしている。
【００３３】
因みに、図４に示す論理構造において、各セツシヨンの先頭及び終わり部分にリードインエリア及びリードアウトエリアを形成することにより、当該CD-Rデイスク６の記録データをCD-ROMドライブ８（図１）によつて読み出す場合に、当該デイスクのリードインエリア及びリードアウトエリアに挟まれたプログラムエリアを、CD-ROM用の読出し専用フアイルシステムが１つのセツシヨンであることを認識し得るようになされている。
【００３４】
これに対して追記型であるCD-Rデイスクに対してデータを書込み又は読み出すフアイルシステムCDRFS を用いて、当該CD-Rデイスクに対してデータを書込み又は読み出す場合は、完成前のセツシヨンに対して順次データを記録するようになされていることから、セツシヨンのプログラムエリアが完成した後に記録されるリードインエリア及びリードアウトエリアが未だ形成されていない作成中のセツシヨン（パケツト単位で記録されている）であつても、これをパケツト単位でアクセスすることができる。
【００３５】
図５は図４（Ｄ）に示す各パケツトのリンク部の詳細構成を示し、第１のパケツトPACKET１の最後に設けられた２つのランアウトブロツクＲＯ１及びＲＯ２と、第２のパケツトPACKET２の始めに設けられた４つのランインブロツクＲＩ１、ＲＩ２、ＲＩ３及びＲＩ４との間にリンクブロツク（Link) が設けられる。かくして図６に示すように、固定長の各パケツト(PACKET)をリンクブロツクＬＢで繋ぐことによつて１データトラツクが構成される。このデータトラツクの先頭部分には、当該データトラツクが固定長パケツトで構成されていること及び、各パケツトを構成するブロツク数（パケツトサイズ情報）がトラツク情報(Track Descriptor:ＴＤ）として記録される。
【００３６】
ここでホストコンピユータ部１０のフアイルシステムCDRFS は、ＲＡＭ５に設けられた２つのバツフア領域（第１のバツフアＢＵＦ１及び第２のバツフアＢＵＦ２）を交互に用いることにより、一方のパケツトのデータが実際に書き込み完了するまでそのデータを保存するようになされている。
【００３７】
すなわち図１５との対応部分に同一符号を付して示す図７は、連続するパケツト（PACKET０、PACKET１、PACKET２、……）を交互にバツフアＢＵＦ１及びＢＵＦ２に格納しながら、各パケツトを連続的にCD-Rデイスク６上に記録する処理を示し、フアイルシステム側（すなわちホストコンピユータ１０側）で第１のバツフアＢＵＦ１に書込みデータを１パケツト分まとめ、これを第１のパケツトPACKET０として当該パケツトPACKET０のライトコマンド（書込みコマンド）及び書込みデータをCD-Rドライブ装置７に送出する。CD-Rドライブ装置７は、当該ライトコマンドに基づいて第１のパケツトPACKET０のデータをCD-Rデイスク６の新たな書込み位置に書き込む。
【００３８】
これに対してフアイルシステム（ホストコンピユータ１０側）の第２のバツフアＢＵＦ２は、第１のパケツトに続く書込みデータを１パケツト分まとめ、これを第２のパケツトPACKET１として当該第２のパケツトPACKET１のライトコマンド及び書込みデータをCD-Rドライブ装置７に送出する。CD-Rドライブ装置７は、当該第２のパケツトPACKET１のライトコマンドに基づき、第１のパケツトPACKET０に続けて当該第２のパケツトPACKET１の書込みデータをCD-Rデイスク６に書き込む。このとき第１のパケツトPACKET０及び第２のパケツトPACKET１の間には図５について上述したリンクブロツク部ＬＢが形成される。
【００３９】
第１のパケツトPACKET０の書込みデータが書込み完了すると、フアイルシステム側では第１のバツフアＢＵＦ１に第２のパケツトPACKET１に続く第３のパケツトPACKET２の書込みデータを１パケツト分まとめ、これを第３のパケツトPACKET２として当該第３のパケツトPACKET２のライトコマンド及び書込みデータをCD-Rドライブ装置７に送出する。CD-Rドライブ装置７は、当該第３のパケツトPACKET２のライトコマンドに基づき、第２のパケツトPACKET１に続けて当該第３のパケツトPACKET２の書込みデータをCD-Rデイスク６に書き込む。このとき第２のパケツトPACKET１及び第３のPACKET２の間にはリンクブロツク部ＬＢが形成される。
【００４０】
このようにして、第１のバツフアＢＵＦ１では、第１のパケツトPACKET０、第３のパケツトPACKET２、第５のパケツトPACKET４、……のデータを処理し、第２のバツフアＢＵＦ２では、第２のパケツトPACKET１、第４のパケツトPACKET３、第６のパケツトPACKET５、……のデータを処理しながら、１パケツト分ずつ交互にCD-Rドライブ装置７にデータを送出する。この結果、CD-Rドライブ装置７では、バツフアメモリ２２（図２）内にほぼ連続的にパケツト単位でデータが格納されて行き、図８（Ａ）に示すように、CD-Rドライブ装置７のＣＰＵブロツク２６は、バツフアメモリ２２内に書込みデータがある限り、当該書込みデータをリンクブロツク部ＬＢによつてパケツト単位で区切つてCD-Rデイスク６上に連続的なタイミングで書き込んで行く。
【００４１】
このように、CD-Rデイスク６上に書き込まれる各パケツトの書込み時において、図１７について上述したステツプＳＰ３〜ステツプＳＰ８のセツトアツプ処理が行われる前に次のパケツトが書き込まれることにより、各パケツト間においてセツトアツプが行われずに、各パケツトが連続的なタイミングで書き込まれる。従つて当該連続書込みによつて書込み処理の時間が短縮化される。
【００４２】
因みに図８（Ｂ）に示すように、バツフアメモリ２２内にデータが無くなると、ＣＰＵブロツク２６はCD-Rデイスク６上へのデータの書込みを停止する。このときCD-Rデイスク６上には最終パケツトがランアウト（ＲＯ１、ＲＯ２）が書き込まれて完結した状態となつているが、このときバツフアメモリ２２内に１パケツト分以下のデータが残つていても、ＣＰＵブロツク２６は当該バツフアメモリ２２内のデータ量が予め決められた１パケツト分のデータ量となるまで次のパケツトの書込みを停止する。これにより、CD-Rデイスク６上には予め決められたデータ量（３２ブロツク）のパケツトのみが形成されることになる。
【００４３】
ここで、２つのバツフアＢＵＦ１及びＢＵＦ２を用いた書込み処理（図７）においては、第１のバツフアＢＵＦ１の１パケツト分の書込みデータをCD-Rデイスク６上に書き込んだ後、これに連続したタイミングで第２のバツフアＢＵＦ２のデータを書き込む際に、第１のバツフアＢＵＦ１のデータ（例えばPACKET０）のライトコマンドが終了する前に第２のバツフアＢＵＦ２のデータ（例えばPACKET１）のライトコマンドをCD-Rドライブ装置７に送出しておく必要がある。
【００４４】
従つてCD-Rドライブ装置７では、２つのライトコマンドが重なるオーバラツプ部ＶＲ（図７）が生じる。ここでCD-Rドライブ装置７及びホストコンピユータ部１０間でデータの授受を行うSCSI(Small Computer System Interface) においては、同時に２つのコマンドを受けることが困難であり、オーバラツプ部ＶＲにおいて２つのライトコマンドを１つのコマンドに見せかける処理を行う。
【００４５】
すなわち図９において、第２のバツフアＢＵＦ２の書込みデータ（PACKET０）を書き込むためにホストコンピユータ部１０のＣＰＵ２からCD-Rドライブ装置７に送信されるライトコマンドＣＯＭ０´及び当該第２のバツフアＢＵＦ２における次の書込みデータ（PACKET２）を書き込むために送信されるライトコマンドＣＯＭ２´は、第１のバツフアＢＵＦ１の書込みデータ（PACKET１）を書き込むために送信されるライトコマンドＣＯＭ１´とそれぞれオーバラツプ部ＶＲで重なることになる。従つてホストコンピユータ部１０のＣＰＵ２は、ライトコマンドＣＯＭ１´の発行をそのまま実際のライトコマンドＣＯＭ１としてCD-Rドライブ装置７に送信し、このライトコマンドＣＯＭ１によつて第１のバツフアＢＵＦ１の書込みデータ（PACKET１）をCD-Rデイスク６上に書き込む。
【００４６】
このとき、すでにCD-Rドライブ装置７においてCD-Rデイスク６上に書込みが完了した第２のバツフアＢＵＦ２の書込みデータ（PACKET０）に関する本来のライトコマンドＣＯＭ０´のコマンド終了を、これから書込みを開始する第１のバツフアＢＵＦ１の書込みデータ（PACKET１）のコマンド終了（ＣＯＭ１終了）としてCD-Rドライブ装置７からホストコンピユータ部１０（すなわちフアイルシステム）に返送する。これにより、実際に書込みデータ（PACKET１）を書き込むためのライトコマンドＣＯＭ１は、書込みデータPACKET０の書込み完了に応じて（すなわち書込みデータPACKET１の書込みを待たずに）コマンド終了となる。
【００４７】
このように、ライトコマンドＣＯＭを送信して第２の書込みデータをCD-Rデイスク６上に書き込むとともに、当該第２の書込みデータの前に書き込まれた第１の書込みデータの書込み完了を、第２の書込みデータのコマンド終了（ＣＯＭ終了）として当該第２の書込みデータの書込み前にフアイルシステム側に返送することにより、疑似的なライトキヤツシユの手法が実現され、第１の書込みデータの書込み前に第２の書込みデータの準備が開始される。
【００４８】
かかるオーバラツプシーケンスの場合、図１０に示すように、フアイルシステム（ホストコンピユータ部１０）において２つのバツフア（バツフアＢＵＦ１及びＢＵＦ２）に連続するパケツトを交互に準備することにより、第１のライトコマンドＣＯＭ１によつて第１のバツフアＢＵＦ１の書込みデータPACKET１の書込みが開始されたとき、ライトコマンドＣＯＭ１の終了（ＣＯＭ１終了）が返送されても、フアイルシステムは当該ライトコマンドＣＯＭ１を第１のバフツアＢＵＦ１のデータの書込み完了として認識せず、当該第１のバツフアＢＵＦ１内の書込みデータPACKET１は保存されながら、第２のバツフアＢＵＦ２において次の書込みデータPACKET２が準備される。
【００４９】
従つて第１のバツフアＢＵＦ１の書込みデータPACKET１の書込みが実際に完了して、第２のバツフアＢＵＦ２の書込みデータPACKET２のライトコマンドＣＯＭ２のコマンド終了（ＣＯＭ２終了）が返送されると、フアイルシステムは当該ライトコマンド終了（ＣＯＭ２終了）を書込みデータPACKET１の実際の書込み完了として認識し、第１のバツフアＢＵＦ１はそのときまで保存していた書込みデータPACKET１を破棄して続く書込みデータPACKET３の準備を開始する。このように、フアイルシステムは第１のライトコマンドＣＯＭ１のコマンド終了（ＣＯＭ１終了）から１コマンド分遅延して返送される第２のライトコマンドＣＯＭ２のコマンド終了（ＣＯＭ２終了）を書込みデータPACKET１の実際の書込み完了として認識することにより、書込みデータPACKET１が確実にCD-Rデイスク６上に書き込まれるまで、当該書込みデータPACKET１をバツフア内に保存することができる。
【００５０】
従つて図１１に示すように、書込みデータPACKET１の書込みが失敗しても、当該書込みエラー発生時に直ちにエラー情報ＥＲＲがフアイルシステム側に返送されることにより、このとき第１のバツフアＢＵＦ１に保存されている書込みデータPACKET１は、ライトコマンドＣＯＭ１の再発行によつてCD-Rデイスク６上の新たな書込み位置に再書込みされる。
【００５１】
このように２つのバツフアＢＵＦ１及びＢＵＦ２を用いて連続するパケツトを交互に準備及び保存することにより、ライトコマンドＣＯＭの送信後、当該ライトコマンドＣＯＭによつて書き込まれるべきデータの書込み開始前にコマンドの終了（すなわち書込み完了）を返送しても、図１７について上述したような１つのバツフアを用いたライトキヤツシユの手法に比べて、バツフア内の書込みデータを保存し得る分、書込みエラー時の修復を可能にできる。
【００５２】
因みに図１２は先頭パケツトを書き込む場合を示し、第２のバツフアＢＵＦ２で準備された書込みデータPACKET０は、ライトコマンドＣＯＭ０によつてCD-Rデイスク６上に書き込まれる。このとき、当該書込みデータPACKET０の前に書き込まれているデータが無いことにより、コマンドＣＯＭ０の疑似的な終了をCD-Rドライブ装置７からフアイルシステムに返送する。これにより、フアイルシステムは第１のバツフアＢＵＦ１において次の書込みデータPACKET１の準備を開始する。
【００５３】
また図１３は最終パケツトの書込み終了動作を示し、例えば第１０のパケツトで終了する場合、フアイルシステム側の第２のバツフアＢＵＦ２で準備された書込みデータPACKET１０がライトコマンドＣＯＭ１０によつてCD-Rデイスク６上に書き込まれた後、当該オーバラツプシーケンスの終了を示すフラツシユコマンドＣＯＭFLASH をフアイルシステムからCD-Rドライブ装置７に送信することにより、当該フラツシユコマンドＣＯＭFLASH の終了によつて当該オーバラツプシーケンスによる全てのパケツトの書込みを終了する。
【００５４】
以上の構成において、ホストコンピユータ部１０のフアイルシステムは、ライトキヤシユの手法によつてライトコマンドＣＯＭをCD-Rドライブ装置７に送信後、直ちにコマンド終了をフアイルシステムに返送する。このとき、ライトコマンドＣＯＭによつてCD-Rデイスク上に書込中のデータを２つのバツフアＢＵＦ１又はＢＵＦ２のいずれか一方にデイスク上の書き込みが完了するまで（すなわち１コマンド分だけ遅延したタイミングまで）保存すると共に、デイスク上のデータの書込前に返送されるコマンドＣＯＭの終了に基づいて次の書込みデータを他方のバツフアに準備する。
【００５５】
これにより、書込エラー時の修復を可能にしながら、ライトキヤツシユの手法によつてCD-Rドライブ装置７のバツフアメモリ２２内に連続的にデータが蓄積される。従つて当該バツフアメモリ２２内にデータが有る限り、連続的にCD-Rデイスク６上にデータが書き込まれ、図１７について上述したセツトアツプ（ＳＰ３〜ＳＰ８）が省かれる。このときバツフアメモリ２２内で１パケツト（３２ブロツク）分よりも多いデータ量が蓄積されていても、CD-Rデイスク６上には３２ブロツク単位で構成されるデータ単位（パケツト）ごとに強制的にリンクブロツクＬＢを形成するとともに、バツフアメモリ２２内に１パケツト分のデータが無い場合には、当該蓄積データ量が１パケツト分に達するまでCD-Rデイスク６上へのデータの書き込みを開始しない。
【００５６】
これによりCD-Rデイスク６上には、確実に１パケツト分のデータ単位でリンクブロツクＬＢにより完結したデータが構成される。従つてバツフアメモリ２２のデータ量に応じてCD-Rデイスク６上における書込位置がシフトするといつたアドレスシフトの発生を未然に防止し得、ホストコンピユータ部１０側のフアイルシステムにおいて管理されるCD-Rデイスク６上の書込アドレスと、実際にCD-Rデイスク６上に書き込まれるアドレスとを確実に一致させることができる。
かくして以上の構成によれば、アドレスシフトの無いデータ書込みを、書込エラーの修復を可能にしながら、高速で行うことができる。
【００５７】
なお上述の実施例においては、CD-Rデイスク６上へのデータの書き込みを、固定長パケツト単位で行う場合について述べたが、本発明はこれに限らず、例えば図１４に示すように、可変長パケツトで書き込むようにしても良い。この場合、フアイルシステム側では、実際にCD-Rデイスク６上に書き込まれるパケツトの長さを予め管理すれば良い。
【００５８】
また上述の実施例においては、１つのライトコマンドＣＯＭで１つのパケツトデータの書込みを行う場合について述べたが、本発明はこれに限らず、２つ以上のライトコマンドで１つのパケツトデータの書込みを行うようにしても良い。
【００５９】
また上述の実施例においては、ＳＣＳＩを用いたシステムについて述べたが、本発明はこれに限らず、他の種々のインタフエイスを用いる場合に適用し得る。
【００６０】
また上述の実施例においては、CD-Rドライブ装置７におけるライトコマンドの終了を前の書込みデータの完了に基づいてフアイルシステム側に返送する場合について述べたが、本発明はこれに限らず、前データの書込み完了とは別にコマンドの終了を返送するようにしても良い。
【００６１】
また上述の実施例においては、フアイルシステム（ホストコンピユータ部１０）において２つのバツフア領域（バツフアＢＵＦ１及びＢＵＦ２）を用意した場合について述べたが、本発明はこれに限らず、３つ以上のバツフアを用いるようにしても良い。この場合、１つのバツフアにおいて書込みデータを保存する期間は、例えば３つのバツフアを用いる場合は２つのコマンド分だけ遅延した期間であり、４つのバツフアを用いる場合３つのコマンド分だけ遅延した期間である。
【００６２】
また上述の実施例においては、１パケツトを３２ブロツクとした場合について述べたが、本発明はこれに限らず、種々のブロツク数（データ長）のパケツトを用いることができる。
【００６３】
さらに上述の実施例においては、追記型記録媒体にデータを書き込む際に本発明を適用した場合について述べたが、本発明はこれに限らず、ハードデイスク装置等の書き換え可能な記録装置においてデータを連続領域に書き込む場合に広く適用し得る。
【００６４】
【発明の効果】
上述のように本発明によれば、記録媒体上に記録されるデータ列にリンクブロツクを挿入して複数のパケツトを連続的に書き込むことにより、書込み位置のシフトを防止し得ると共に、実際の書込み結果を予め決められたコマンド数分だけ遅延させて返送することにより、エラーの修復が可能なライトキヤツシユによるデータの書き込みを実現し得る。
【図面の簡単な説明】
【図１】本発明による情報処理装置の一実施例を示すブロツク図である。
【図２】  CD-Rドライブ装置の構成を示すブロツク図である。
【図３】パケツト記録システムを示すブロツク図である。
【図４】  CD-Rデイスクの論理構造を示す略線図である。
【図５】リンクブロツク部の構成を示す略線図である。
【図６】固定長パケツトの書込み状態を示す略線図である。
【図７】実施例の書込み動作を示すタイミングチヤートである。
【図８】複数パケツトの連続書込みの説明に供する略線図である。
【図９】書込みコマンドの共用の説明に供する略線図である。
【図１０】正常時の書込み処理を示すタイミングチヤートである。
【図１１】書込みエラー時の処理を示すタイミングチヤートである。
【図１２】書込み開始時の処理を示すタイミングチヤートである。
【図１３】書込み終了時の処理を示すタイミングチヤートである。
【図１４】可変長パケツトによる書込み状態を示す略線図である。
【図１５】従来の１パケツト分の書込み動作を示すフローチヤートである。
【図１６】従来の書込み動作の説明に供するフローチヤートである。
【図１７】ライトキヤツシユを使つた１パケツト分の書込み動作を示すフローチヤートである。
【図１８】従来の連続書込みの動作を説明に供する略線図である。
【図１９】トラツクアツトワンスの説明に供する略線図である。
【符号の説明】
１……情報処理装置、２……ＣＰＵ、３、９……インターフエイス、４……ハードデイスクドライブ、５……ＲＡＭ、６……CD-Rデイスク、７……CD-Rドライブ、８……CD-ROMドライブ、１１……Ｉ／Ｏ、１２……キーボード、１３……モニタ、１０……ホストコンピユータ部、２２……バツフアメモリ、２６……ＣＰＵブロツク。
【図１】
0003874211.tif 000002
【図２】
0003874211.tif 000003
【図３】
0003874211.tif 000004
【図４】
0003874211.tif 000005
【図５】
0003874211.tif 000006
【図６】
0003874211.tif 000007
【図７】
0003874211.tif 000008
【図８】
0003874211.tif 000009
【図９】
0003874211.tif 000010
【図１０】
0003874211.tif 000011
【図１１】
0003874211.tif 000012
【図１２】
0003874211.tif 000013
【図１３】
0003874211.tif 000014
【図１４】
0003874211.tif 000015
【図１５】
0003874211.tif 000016
【図１６】
0003874211.tif 000017
【図１７】
0003874211.tif 000018
【図１８】
0003874211.tif 000019
【図１９】
0003874211.tif 000020