(57)【要約】【目的】  データが記録可能な情報記録媒体に対して記録又は再生するデータを一時的に記憶するメモリを有効に活用して記録ブロック内のデータの書き換えの効率化を図る。【構成】  コントローラ１０は、データが記録可能な光ディスク１１に対してデータの記録又は再生を行う際にそのデータを一時的に記憶するキャッシュメモリ８に対して、光ディスク１１に対するデータ記録の形態に応じて複数個のメモリ領域、つまり記録データ格納用メモリ領域と端数データ格納用メモリ領域とに分割してデータを記憶させる制御を行う。【選択図】        図１
2005129168.tif 000002
【特許請求の範囲】
【請求項１】
データが記録可能な情報記録媒体に対してデータの記録又は再生を行う際に前記データを一時的に記憶する一時記憶手段と、前記情報記録媒体に対するデータ記録の形態に応じて前記一時記憶手段の記憶領域を複数個の領域に分割してデータを記憶させる制御手段を有することを特徴とする情報記録装置。
【請求項２】
前記制御手段は、前記各領域にそれぞれ所定のバッファリング方式でデータを記憶させる手段を有することを特徴とする請求項１記載の情報記録装置。
【請求項３】
前記制御手段は、前記各領域のうち少なくとも１つの領域をリングバッファリング方式でデータを記憶させる手段を有することを特徴とする請求項１記載の情報記録装置。
【請求項４】
前記一時記憶手段はリング開始ポインタとリング終了ポインタが設定可能なリングバッファリング方式でデータを記憶する手段であり、前記制御手段は、前記各領域のうち少なくとも１つの領域に前記リング開始ポインタと前記リング終了ポインタをそれぞれ設定して前記リングバッファリング方式でデータを記憶させる手段を有することを特徴とする請求項１記載の情報記録装置。
【請求項５】
前記情報記録媒体は所定の記録ブロック単位でデータが記録可能であり、前記制御手段は、前記一時記憶手段の記憶領域を少なくとも前記情報記録媒体へ記録するデータを記憶する記録データ記憶用領域と前記記録ブロック単位に満たない端数データを一時的に記憶する端数データ記憶用領域とに分割し、前記記録データ記憶用領域に前記情報記録媒体へ記録するデータを記憶させ、前記端数データ記憶用領域に前記端数データを記憶させる手段であることを特徴とする請求項１乃至４のいずれか一項に記載の情報記録装置。
【請求項６】
前記制御手段は、前記端数データ記憶用領域にデータを記憶させた後、記録要求に対して直ちに完了報告を行う手段を有することを特徴とする請求項５記載の情報記録装置。
【請求項７】
前記制御手段は、前記端数データ記憶用領域にデータを記憶させた後、前記端数データを含む記録ブロックを前記記録データ記憶用領域に読み出し、該読み出したデータへ前記端数データを上書きして前記記録ブロック単位でデータ記録を行う手段を有することを特徴とする請求項５記載の情報記録装置。
【請求項８】
前記制御手段は、記録完了要求を受けた時点で前記記録データ記憶用領域内に前記記録ブロックに満たない端数データが存在するとき、該端数データを前記端数データ記憶用領域に退避し、前記端数データを含む所定の記録ブロックを前記記録データ記憶用領域に読み出し、該読み出したデータへ前記端数データを上書きして前記所定の記録ブロックのデータ記録を行う手段を有することを特徴とする請求項５記載の情報記録装置。
【請求項９】
前記制御手段は、前記端数データ記憶用領域のサイズを前記記録データ記憶用領域のサイズよりも小さくなるように分割する手段を有することを特徴とする請求項５記載の情報記録装置。
【請求項１０】
前記情報記録媒体がデータ記録領域が欠陥を含んでいた場合に所定の交替領域へ交替を行う交替手段を設け、前記制御手段は、前記一時記憶手段の記憶領域を少なくとも前記情報記録媒体へ記録するデータを記憶する記録データ記憶用領域と前記交替先領域のデータを記憶する交替先データ記憶用領域とに分割し、前記記録データ記憶用領域に前記情報記録媒体へ記録するデータを記憶させ、前記交替領域のデータを読み出して前記交替先データ記憶用領域へ記憶させる手段であることを特徴とする請求項１乃至４のいずれか一項に記載の情報記録装置。
【請求項１１】
前記データが記録可能な情報記録媒体は交替先領域に所定の記録ブロック単位に満たない端数データを交替可能な情報記録媒体であり、前記制御手段は、前記端数データの交替先領域の記録ブロックのデータを読み出して前記交替先データ記憶用領域に記憶させた後、該交替先データ記憶用領域に記憶させたデータへ前記端数データを上書きして前記所定の記録ブロック単位でデータ記録を行う手段を有することを特徴とする請求項１０記載の情報記録装置。
【請求項１２】
前記制御手段は、前記交替先データ記憶用領域のサイズを前記記録データ記憶用領域のサイズよりも小さくなるように分割する手段を有することを特徴とする請求項１０又は１１記載の情報記録装置。
【請求項１３】
データが記録可能な情報記録媒体に対してデータの記録又は再生を行う際に前記データを一時的に記憶する一時記憶手段の記憶領域を、前記情報記録媒体に対するデータ記録の形態に応じて複数個の領域に分割してデータを記憶させる制御工程を有することを特徴とする情報記録方法。
【請求項１４】
前記制御工程は、前記各領域にそれぞれ所定のバッファリング方式でデータを記憶させる工程を有することを特徴とする請求項１３記載の情報記録方法。
【請求項１５】
前記制御工程は、前記各領域のうち少なくとも１つの領域をリングバッファリング方式でデータを記憶させる工程を有することを特徴とする請求項１３記載の情報記録方法。
【請求項１６】
前記制御工程は、前記各領域のうち少なくとも１つの領域にリング開始ポインタとリング終了ポインタをそれぞれ設定してリングバッファリング方式でデータを記憶させる工程を有することを特徴とする請求項１３記載の情報記録方法。
【請求項１７】
前記制御工程は、前記一時記憶手段の記憶領域を少なくとも前記情報記録媒体へ記録するデータを記憶する記録データ記憶用領域と前記情報記録媒体にデータを記録するときの所定の記録ブロック単位に満たない端数データを一時的に記憶する端数データ記憶用領域とに分割し、前記記録データ記憶用領域に前記情報記録媒体へ記録するデータを記憶させ、前記端数データ記憶用領域に前記端数データを記憶させる工程であることを特徴とする請求項１３乃至１６のいずれか一項に記載の情報記録方法。
【請求項１８】
前記制御工程は、前記端数データ記憶用領域にデータを記憶させた後、記録要求に対して直ちに完了報告を行う工程を有することを特徴とする請求項１７記載の情報記録方法。
【請求項１９】
前記制御工程は、前記端数データ記憶用領域にデータを記憶させた後、前記端数データを含む記録ブロックを前記記録データ記憶用領域に読み出し、該読み出したデータへ前記端数データを上書きして前記記録ブロック単位でデータ記録を行う工程を有することを特徴とする請求項１７記載の情報記録方法。
【請求項２０】
前記制御工程は、記録完了要求を受けた時点で前記記録データ記憶用領域内に前記記録ブロックに満たない端数データが存在するとき、該端数データを前記端数データ記憶用領域に退避し、前記端数データを含む所定の記録ブロックを前記記録データ記憶用領域に読み出し、該読み出したデータへ前記端数データを上書きして前記所定の記録ブロックのデータ記録を行う工程を有することを特徴とする請求項１７記載の情報記録方法。
【請求項２１】
前記制御工程は、前記端数データ記憶用領域のサイズを前記記録データ記憶用領域のサイズよりも小さくなるように分割する工程を有することを特徴とする請求項１７記載の情報記録方法。
【請求項２２】
前記情報記録媒体がデータ記録領域が欠陥を含んでいた場合に所定の交替領域へ交替を行う交替工程を設け、前記制御工程は、前記一時記憶手段の記憶領域を少なくとも前記情報記録媒体へ記録するデータを記憶する記録データ記憶用領域と前記交替先領域のデータを記憶する交替先データ記憶用領域とに分割し、前記記録データ記憶用領域に前記情報記録媒体へ記録するデータを記憶させ、前記交替領域のデータを読み出して前記交替先データ記憶用領域へ記憶させる工程であることを特徴とする請求項１３乃至１６のいずれか一項に記載の情報記録方法。
【請求項２３】
前記データが記録可能な情報記録媒体は交替先領域に所定の記録ブロック単位に満たない端数データを交替可能な情報記録媒体であり、前記制御工程は、前記端数データの交替先領域の記録ブロックのデータを読み出して前記交替先データ記憶用領域に記憶させた後、該交替先データ記憶用領域に記憶させたデータへ前記端数データを上書きして前記所定の記録ブロック単位でデータ記録を行う工程を有することを特徴とする請求項２２記載の情報記録方法。
【請求項２４】
前記制御工程は、前記交替先データ記憶用領域のサイズを前記記録データ記憶用領域のサイズよりも小さくなるように分割する工程を有することを特徴とする請求項２２又は２３記載の情報記録方法。
【請求項２５】
コンピュータに、データが記録可能な情報記録媒体に対してデータの記録又は再生を行う際に前記データを一時的に記憶する一時記憶手順と、前記情報記録媒体に対するデータ記録の形態に応じて前記一時記憶手順の記憶領域を複数個の領域に分割してデータを記憶させる制御手順を実行させるためのプログラム。
【請求項２６】
前記制御手順は、前記各領域にそれぞれ所定のバッファリング方式でデータを記憶させる手順を有する請求項２５記載のプログラム。
【請求項２７】
前記制御手順は、前記各領域のうち少なくとも１つの領域をリングバッファリング方式でデータを記憶させる手順を有する請求項２５記載のプログラム。
【請求項２８】
前記一時記憶手順はリング開始ポインタとリング終了ポインタが設定可能なリングバッファリング方式でデータを記憶する手順であり、前記制御手順は、前記各領域のうち少なくとも１つの領域に前記リング開始ポインタと前記リング終了ポインタをそれぞれ設定して前記リングバッファリング方式でデータを記憶させる手順を有する請求項２５記載のプログラム。
【請求項２９】
前記情報記録媒体は所定の記録ブロック単位でデータが記録可能であり、前記制御手順は、前記一時記憶手順による記憶領域を少なくとも前記情報記録媒体へ記録するデータを記憶する記録データ記憶用領域と前記記録ブロック単位に満たない端数データを一時的に記憶する端数データ記憶用領域とに分割し、前記記録データ記憶用領域に前記情報記録媒体へ記録するデータを記憶させ、前記端数データ記憶用領域に前記端数データを記憶させる手順である請求項２５乃至２８のいずれか一項に記載のプログラム。
【請求項３０】
前記制御手順は、前記端数データ記憶用領域にデータを記憶させた後、記録要求に対して直ちに完了報告を行う手順を有する請求項２９記載のプログラム。
【請求項３１】
前記制御手順は、前記端数データ記憶用領域にデータを記憶させた後、前記端数データを含む記録ブロックを前記記録データ記憶用領域に読み出し、該読み出したデータへ前記端数データを上書きして前記記録ブロック単位でデータ記録を行う手順を有する請求項２９記載のプログラム。
【請求項３２】
前記制御手順は、記録完了要求を受けた時点で前記記録データ記憶用領域内に前記記録ブロックに満たない端数データが存在するとき、該端数データを前記端数データ記憶用領域に退避し、前記端数データを含む所定の記録ブロックを前記記録データ記憶用領域に読み出し、該読み出したデータへ前記端数データを上書きして前記所定の記録ブロックのデータ記録を行う手順を有する請求項２９記載のプログラム。
【請求項３３】
前記制御手順は、前記端数データ記憶用領域のサイズを前記記録データ記憶用領域のサイズよりも小さくなるように分割する手順を有する請求項２９記載のプログラム。
【請求項３４】
前記情報記録媒体がデータ記録領域が欠陥を含んでいた場合に所定の交替領域へ交替を行う交替手順を設け、前記制御手順は、前記一時記憶手段の記憶領域を少なくとも前記情報記録媒体へ記録するデータを記憶する記録データ記憶用領域と前記交替先領域のデータを記憶する交替先データ記憶用領域とに分割し、前記記録データ記憶用領域に前記情報記録媒体へ記録するデータを記憶させ、前記交替領域のデータを読み出して前記交替先データ記憶用領域へ記憶させる手順である請求項２５乃至２８のいずれか一項に記載のプログラム。
【請求項３５】
前記データが記録可能な情報記録媒体は交替先領域に所定の記録ブロック単位に満たない端数データを交替可能な情報記録媒体であり、前記制御手順は、前記端数データの交替先領域の記録ブロックのデータを読み出して前記交替先データ記憶用領域に記憶させた後、該交替先データ記憶用領域に記憶させたデータへ前記端数データを上書きして前記所定の記録ブロック単位でデータ記録を行う手順を有する請求項３４記載のプログラム。
【請求項３６】
前記制御手順は、前記交替先データ記憶用領域のサイズを前記記録データ記憶用領域のサイズよりも小さくなるように分割する手順を有する請求項３４又は３５記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、情報記録媒体に対してデータの記録又は再生を行う情報記録装置に関し、特に、データ記録の形態に応じてデータ格納メモリを分割して効率的なデータ格納を実現する情報記録装置，記録ブロック以下の単位でのデータ記録やベリファイ処理を伴うデータ記録あるいはタイムシフト再生といった複雑なデータ記録を行う情報記録装置と、情報記録方法と、プログラムとに関する。
【背景技術】
【０００２】
ＣＤ−ＲＷディスクやＤＶＤ＋ＲＷディスクなどの記録型ディスクに対してデータの記録又は再生を行う情報記録装置では、装置内部にデータを一時的に格納するキャッシュメモリを備えて処理の高速化を図る装置が多い。
例えば、ユーザからの連続した記録要求では、データを一旦装置内のキャッシュメモリに格納し、キャッシュメモリ内にデータがある程度格納された時点でディスクへの記録を開始し、キャッシュメモリ内にデータが無くなると記録処理を中断して、再びキャッシュメモリ内に一定量のデータが格納されることを待つといった処理を繰り返している。
また、データ記録中もキャッシュメモリの空き具合を監視して、空きがあればユーザからのデータを受信して、記録処理の中断が極力発生しないようにしている。
【０００３】
ところで、このような情報記録装置の普及に伴い、その処理の高機能化が図られており、データ記録処理も複雑化している。例えば、以下の（１）〜（４）に示すような場合において、単一のキャッシュメモリを備えたのみでは高速な記録処理を実現することは難しく、効率的なデータ記録を行うためには複数のメモリが必要になる場合がある。
（１）記録ブロックに満たない単位でデータ記録を行う場合
（２）ベリファイ処理を伴うデータ記録を行う場合
（３）記録ブロック以下の単位で交替を行う場合
（４）タイムシフト再生を行う場合
【０００４】
例えば、上記のような記録処理を行う場合、複数のキャッシュメモリを備えることによって効率的な記録処理を行うことが可能であるが、キャッシュメモリの増加に伴って製造コストも増加してしまう。
一方、現在備えられているキャッシュメモリを分割的に使用することにより、擬似的に複数のキャッシュメモリを備えることも可能である。
【０００５】
従来、メモリを複数の分割領域に分割してデータを格納するものとして、メモリの種類としてセグメントキャッシュ方式のメモリを対象とし、全キャッシュメモリ容量やセグメント管理用メモリの容量などから、分割するセグメント数や個々の分割メモリサイズを予め設定し、さらに個々の分割メモリのデータ格納状態を管理する管理情報をセグメント管理用メモリに格納する情報記録装置（例えば、特許文献１参照）があった。
【特許文献１】特開平１０−６３５７８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の情報記録装置では、個々の分割メモリがセグメントキャッシュ方式で使用されるため、それぞれの分割メモリに対して複雑なメモリ管理を必要とし、例えば記録ブロック単位で連続的に記録を行うようなデータ記録に対しては適切でないという問題があった。
また、上記のような複雑な記録動作を伴わないデータ記録に対してはキャッシュメモリを分割する必要はなく、その全領域を記録データ格納用に使用して、キャッシュメモリ内の記録データがなくなることによる記録中断を極力避けるようにすることが望ましい。
この発明は上記の点に鑑みてなされたものであり、データが記録可能な情報記録媒体に対して記録又は再生するデータを一時的に記憶するメモリを有効に活用して記録ブロック内のデータの書き換えの効率化を図ることを目的とする。
【課題を解決するための手段】
【０００７】
この発明は上記の目的を達成するため、次の（１）〜（１１）の情報記録装置を提供する。
（１）データが記録可能な情報記録媒体に対してデータの記録又は再生を行う際に上記データを一時的に記憶する一時記憶手段と、上記情報記録媒体に対するデータ記録の形態に応じて上記一時記憶手段の記憶領域を複数個の領域に分割してデータを記憶させる制御手段を有する情報記録装置。
（２）上記（１）の情報記録装置において、上記制御手段は、上記各領域にそれぞれ所定のバッファリング方式でデータを記憶させる手段を有する情報記録装置。
（３）上記（１）の情報記録装置において、上記制御手段は、上記各領域のうち少なくとも１つの領域をリングバッファリング方式でデータを記憶させる手段を有する情報記録装置。
【０００８】
（４）上記（１）の情報記録装置において、上記一時記憶手段はリング開始ポインタとリング終了ポインタが設定可能なリングバッファリング方式でデータを記憶する手段であり、上記制御手段は、上記各領域のうち少なくとも１つの領域に上記リング開始ポインタと上記リング終了ポインタをそれぞれ設定して上記リングバッファリング方式でデータを記憶させる手段を有する情報記録装置。
（５）上記（１）〜（４）のいずれかの情報記録装置において、上記情報記録媒体は所定の記録ブロック単位でデータが記録可能であり、上記制御手段は、上記一時記憶手段の記憶領域を少なくとも上記情報記録媒体へ記録するデータを記憶する記録データ記憶用領域と上記記録ブロック単位に満たない端数データを一時的に記憶する端数データ記憶用領域とに分割し、上記記録データ記憶用領域に上記情報記録媒体へ記録するデータを記憶させ、上記端数データ記憶用領域に上記端数データを記憶させる手段である情報記録装置。
【０００９】
（６）上記（５）の情報記録装置において、上記制御手段は、上記端数データ記憶用領域にデータを記憶させた後、記録要求に対して直ちに完了報告を行う手段を有する情報記録装置。
（７）上記（５）の情報記録装置において、上記制御手段は、上記端数データ記憶用領域にデータを記憶させた後、上記端数データを含む記録ブロックを上記記録データ記憶用領域に読み出し、その読み出したデータへ上記端数データを上書きして上記記録ブロック単位でデータ記録を行う手段を有する情報記録装置。
（８）上記（５）の情報記録装置において、上記制御手段は、記録完了要求を受けた時点で上記記録データ記憶用領域内に上記記録ブロックに満たない端数データが存在するとき、その端数データを上記端数データ記憶用領域に退避し、上記端数データを含む所定の記録ブロックを上記記録データ記憶用領域に読み出し、その読み出したデータへ上記端数データを上書きして上記所定の記録ブロックのデータ記録を行う手段を有する情報記録装置。
【００１０】
（９）上記（５）の情報記録装置において、上記制御手段は、上記端数データ記憶用領域のサイズを上記記録データ記憶用領域のサイズよりも小さくなるように分割する手段を有する情報記録装置。
（１０）上記（１）〜（４）のいずれかの情報記録装置において、上記情報記録媒体がデータ記録領域が欠陥を含んでいた場合に所定の交替領域へ交替を行う交替手段を設け、上記制御手段は、上記一時記憶手段の記憶領域を少なくとも上記情報記録媒体へ記録するデータを記憶する記録データ記憶用領域と上記交替先領域のデータを記憶する交替先データ記憶用領域とに分割し、上記記録データ記憶用領域に上記情報記録媒体へ記録するデータを記憶させ、上記交替領域のデータを読み出して上記交替先データ記憶用領域へ記憶させる手段である情報記録装置。
（１１）上記（１０）の情報記録装置において、上記データが記録可能な情報記録媒体は交替先領域に所定の記録ブロック単位に満たない端数データを交替可能な情報記録媒体であり、上記制御手段は、上記端数データの交替先領域の記録ブロックのデータを読み出して上記交替先データ記憶用領域に記憶させた後、その交替先データ記憶用領域に記憶させたデータへ上記端数データを上書きして上記所定の記録ブロック単位でデータ記録を行う手段を有する情報記録装置。
（１２）上記（１０）又は（１１）の情報記録装置において、上記制御手段は、上記交替先データ記憶用領域のサイズを上記記録データ記憶用領域のサイズよりも小さくなるように分割する手段を有する情報記録装置。
【００１１】
また、次の（１３）〜（２４）の情報記録方法も提供する。
（１３）データが記録可能な情報記録媒体に対してデータの記録又は再生を行う際に上記データを一時的に記憶する一時記憶手段の記憶領域を、上記情報記録媒体に対するデータ記録の形態に応じて複数個の領域に分割してデータを記憶させる制御工程を有する情報記録方法。
（１４）上記（１３）の情報記録方法において、上記制御工程は、上記各領域にそれぞれ所定のバッファリング方式でデータを記憶させる工程を有する情報記録方法。
（１５）上記（１３）の情報記録方法において、上記制御工程は、上記各領域のうち少なくとも１つの領域をリングバッファリング方式でデータを記憶させる工程を有する情報記録方法。
【００１２】
（１６）上記（１３）の情報記録方法において、上記制御工程は、上記各領域のうち少なくとも１つの領域にリング開始ポインタとリング終了ポインタをそれぞれ設定してリングバッファリング方式でデータを記憶させる工程を有する情報記録方法。
（１７）上記（１３）〜（１６）のいずれかの情報記録方法において、上記制御工程は、上記一時記憶手段の記憶領域を少なくとも上記情報記録媒体へ記録するデータを記憶する記録データ記憶用領域と上記情報記録媒体にデータを記録するときの所定の記録ブロック単位に満たない端数データを一時的に記憶する端数データ記憶用領域とに分割し、上記記録データ記憶用領域に上記情報記録媒体へ記録するデータを記憶させ、上記端数データ記憶用領域に上記端数データを記憶させる工程である情報記録方法。
（１８）上記（１７）の情報記録方法において、上記制御工程は、上記端数データ記憶用領域にデータを記憶させた後、記録要求に対して直ちに完了報告を行う工程を有する情報記録方法。
【００１３】
（１９）上記（１７）の情報記録方法において、上記制御工程は、上記端数データ記憶用領域にデータを記憶させた後、上記端数データを含む記録ブロックを上記記録データ記憶用領域に読み出し、その読み出したデータへ上記端数データを上書きして上記記録ブロック単位でデータ記録を行う工程を有する情報記録方法。
（２０）上記（１７）の情報記録方法において、上記制御工程は、記録完了要求を受けた時点で上記記録データ記憶用領域内に上記記録ブロックに満たない端数データが存在するとき、その端数データを上記端数データ記憶用領域に退避し、上記端数データを含む所定の記録ブロックを上記記録データ記憶用領域に読み出し、その読み出したデータへ上記端数データを上書きして上記所定の記録ブロックのデータ記録を行う工程を有する情報記録方法。
（２１）上記（１７）の情報記録方法において、上記制御工程は、上記端数データ記憶用領域のサイズを上記記録データ記憶用領域のサイズよりも小さくなるように分割する工程を有する情報記録方法。
【００１４】
（２２）上記（１３）〜（１６）のいずれかの情報記録方法において、上記情報記録媒体がデータ記録領域が欠陥を含んでいた場合に所定の交替領域へ交替を行う交替工程を設け、上記制御工程は、上記一時記憶手段の記憶領域を少なくとも上記情報記録媒体へ記録するデータを記憶する記録データ記憶用領域と上記交替先領域のデータを記憶する交替先データ記憶用領域とに分割し、上記記録データ記憶用領域に上記情報記録媒体へ記録するデータを記憶させ、上記交替領域のデータを読み出して上記交替先データ記憶用領域へ記憶させる工程である情報記録方法。
（２３）上記（２２）の情報記録方法において、上記データが記録可能な情報記録媒体は交替先領域に所定の記録ブロック単位に満たない端数データを交替可能な情報記録媒体であり、上記制御工程は、上記端数データの交替先領域の記録ブロックのデータを読み出して上記交替先データ記憶用領域に記憶させた後、その交替先データ記憶用領域に記憶させたデータへ上記端数データを上書きして上記所定の記録ブロック単位でデータ記録を行う工程を有する情報記録方法。
（２４）上記（２２）〜（２３）の情報記録方法において、上記制御工程は、上記交替先データ記憶用領域のサイズを上記記録データ記憶用領域のサイズよりも小さくなるように分割する工程を有する情報記録方法。
【００１５】
さらに、次の（２５）〜（３６）のプログラムも提供する。
（２５）コンピュータに、データが記録可能な情報記録媒体に対してデータの記録又は再生を行う際に上記データを一時的に記憶する一時記憶手順と、上記情報記録媒体に対するデータ記録の形態に応じて上記一時記憶手順の記憶領域を複数個の領域に分割してデータを記憶させる制御手順を実行させるためのプログラム。
（２６）上記（２５）のプログラムにおいて、上記制御手順は、上記各領域にそれぞれ所定のバッファリング方式でデータを記憶させる手順を有するプログラム。
（２７）上記（２５）のプログラムにおいて、上記制御手順は、上記各領域のうち少なくとも１つの領域をリングバッファリング方式でデータを記憶させる手順を有するプログラム。
【００１６】
（２８）上記（２５）のプログラムにおいて、上記一時記憶手順はリング開始ポインタとリング終了ポインタが設定可能なリングバッファリング方式でデータを記憶する手順であり、上記制御手順は、上記各領域のうち少なくとも１つの領域に上記リング開始ポインタと上記リング終了ポインタをそれぞれ設定して上記リングバッファリング方式でデータを記憶させる手順を有するプログラム。
（２９）上記（２５）〜（２８）のいずれかのプログラムにおいて、上記情報記録媒体は所定の記録ブロック単位でデータが記録可能であり、上記制御手順は、上記一時記憶手順による記憶領域を少なくとも上記情報記録媒体へ記録するデータを記憶する記録データ記憶用領域と上記記録ブロック単位に満たない端数データを一時的に記憶する端数データ記憶用領域とに分割し、上記記録データ記憶用領域に上記情報記録媒体へ記録するデータを記憶させ、上記端数データ記憶用領域に上記端数データを記憶させる手順であるプログラム。
【００１７】
（３０）上記（２９）のプログラムにおいて、上記制御手順は、上記端数データ記憶用領域にデータを記憶させた後、記録要求に対して直ちに完了報告を行う手順を有するプログラム。
（３１）上記（２９）のプログラムにおいて、上記制御手順は、上記端数データ記憶用領域にデータを記憶させた後、上記端数データを含む記録ブロックを上記記録データ記憶用領域に読み出し、その読み出したデータへ上記端数データを上書きして上記記録ブロック単位でデータ記録を行う手順を有するプログラム。
（３２）上記（２９）のプログラムにおいて、上記制御手順は、記録完了要求を受けた時点で上記記録データ記憶用領域内に上記記録ブロックに満たない端数データが存在するとき、その端数データを上記端数データ記憶用領域に退避し、上記端数データを含む所定の記録ブロックを上記記録データ記憶用領域に読み出し、その読み出したデータへ上記端数データを上書きして上記所定の記録ブロックのデータ記録を行う手順を有するプログラム。
【００１８】
（３３）上記（２９）のプログラムにおいて、上記制御手順は、上記端数データ記憶用領域のサイズを上記記録データ記憶用領域のサイズよりも小さくなるように分割する手順を有するプログラム。
（３４）上記（２５）〜（２８）のいずれかのプログラムにおいて、上記情報記録媒体がデータ記録領域が欠陥を含んでいた場合に所定の交替領域へ交替を行う交替手順を設け、上記制御手順は、上記一時記憶手段の記憶領域を少なくとも上記情報記録媒体へ記録するデータを記憶する記録データ記憶用領域と上記交替先領域のデータを記憶する交替先データ記憶用領域とに分割し、上記記録データ記憶用領域に上記情報記録媒体へ記録するデータを記憶させ、上記交替領域のデータを読み出して上記交替先データ記憶用領域へ記憶させる手順であるプログラム。
（３５）上記（３４）のプログラムにおいて、上記データが記録可能な情報記録媒体は交替先領域に所定の記録ブロック単位に満たない端数データを交替可能な情報記録媒体であり、上記制御手順は、上記端数データの交替先領域の記録ブロックのデータを読み出して上記交替先データ記憶用領域に記憶させた後、その交替先データ記憶用領域に記憶させたデータへ上記端数データを上書きして上記所定の記録ブロック単位でデータ記録を行う手順を有するプログラム。
（３６）上記（３４）又は（３５）のプログラムにおいて、上記制御手順は、上記交替先データ記憶用領域のサイズを上記記録データ記憶用領域のサイズよりも小さくなるように分割する手順を有するプログラム。
【発明の効果】
【００１９】
この発明による情報記録装置と情報記録方法とプログラムは、データが記録可能な情報記録媒体に対して記録又は再生するデータを一時的に記憶するメモリを有効に活用して記録ブロック内のデータの書き換えの効率化を図ることができる。
【発明を実施するための最良の形態】
【００２０】
以下、この発明を実施するための最良の形態を図面に基づいて具体的に説明する。
図１は、この発明の一実施形態である情報記録装置の構成を示すブロック図である。
この情報記録装置は、例えば、ＣＤ−Ｒディスク，ＣＤ−ＲＷディスク，ＣＤ−ＭＲＷディスク，ＤＶＤ＋Ｒディスク，ＤＶＤ＋ＲＷディスク，ＤＶＤ＋ＭＲＷディスク等のデータが記録可能な情報記録媒体である光ディスクに対するデータ（情報）の記録又は再生を行うＤＶＤドライブ等の光ディスク装置である。
この情報記録装置は、データ記録及び再生の命令を受けるホストコンピュータ１２を接続しており、その命令に基づいて情報記録媒体である光ディスク１１に対するデータの記録と再生を行う。
【００２１】
モータ（スピンドルモータ）１は、光ディスク１１のマウント時，データの記録及び再生時に光ディスク１１を回転させる。
光ピックアップ２は、微小動作を行うことができ、光ディスク１１にレーザダイオード等の光源で発生させたレーザ光Ｌを照射して記録面上に記録されたデータの読み取りとデータの記録を行う。粗動モータ３は、光ピックアップ２を光ディスク１１の半径方向に移動させるモータである。回転制御系部４は、モータ１の回転制御を行う。粗動モータ制御系部５は、粗動モータ３の回転制御を行う。
光ピックアップ制御系部６は、光ピックアップ２のレーザ光発光等の制御を行う。
信号処理系部７は、光ピックアップ２からの信号の処理や光ディスク１１にデータ記録を行う為のデータ及び光ディスク１１から再生したデータの送受信を行う。
【００２２】
キャッシュメモリ８は、光ディスク１１から再生したデータ及び光ディスク１１へ記録するデータを一時的に記憶・保存する領域（メモリ領域）である。すなわち、上記一時記憶手段の機能を果たす。
外部インタフェース９は、ホストコンピュータ１２とのデータ通信を司る。
コントローラ１０は、ＣＰＵ，ＲＯＭ及びＲＡＭ等からなるマイクロコンピュータによって実現され、この情報記録装置の全体の制御を行うものであり、データ記録の形態に応じてキャッシュメモリ８のメモリ領域（記憶領域）を分割し、データ記録，ベリファイ，再生などの処理を行う。すなわち、ＲＯＭにこの発明に係る上記各プログラムを記憶して格納し、ＣＰＵがそのプログラムを実行してこの発明に係る上記情報記録方法を実施し、この発明に係る上記制御手段を含む各手段の機能を果たす。
【００２３】
この情報記録装置は、キャッシュメモリ８のメモリ領域を分割して使用する場合、分割されたそれぞれのメモリ領域について最適なバッファリング方式にてデータを格納する。
例えば、複数の分割メモリ領域のうち、記録データ格納用領域（記録データ記憶用領域）や再生データ格納用領域（再生データ記憶用領域）、あるいはベリファイ用などに使用する分割メモリ領域はリングバッファリング方式にて使用することが望ましい。
また、通常、記録データや再生データを格納するためのキャッシュメモリ８はリングバッファリング方式にて使用されることが多い。リングバッファリング方式の利点はキャッシュメモリ８のメモリ領域内の終了アドレスへデータを格納した後は、引き続きメモリ領域の開始アドレスからデータが格納されることである。
【００２４】
例えば、データ記録を行う場合、ホストコンピュータ１２からのデータを受信した際に更新されるキャッシュメモリ８内のポインタと、格納データを光ディスク１１へ記録した際に更新される記録ポインタなどを参照することにより、キャッシュメモリ８内のデータ占有率を容易に計算することができる。
したがって、複数の分割メモリ領域のうち少なくとも記録データ格納用や再生データ格納用、あるいはベリファイ用に使用する分割メモリ領域はリングバッファリング方式にて使用することが望ましい。
【００２５】
さらに、この情報記録装置でキャッシュメモリ８をリングバッファリング方式にて使用する場合、リングバッファとして使用するメモリ領域のリング開始ポインタとリング終了ポインタを設定し、それらのポインタで指定されたメモリ領域内でリングバッファを形成する。
したがって、例えば次の（Ａ）と（Ｂ）の場合はキャッシュメモリ８内に複数のリング開始ポインタ，リング終了ポインタを設定する必要がある。
（Ａ）リングバッファリング方式で使用するキャッシュメモリを分割し、少なくとも１つの分割メモリをリングバッファリング方式にて使用する場合。
（Ｂ）分割されたメモリ領域のうち複数の分割メモリ領域をリングバッファリング方式にて使用する場合。
【００２６】
そのような場合、リング開始ポインタ、リング終了ポインタを複数箇所に同時に設定できればよいが、記録形態に応じてキャッシュメモリ８を分割して使用することが考慮されていない従来装置では、リング開始ポインタ、リング終了ポインタを複数箇所に設定できない場合が多い。
また、上記（Ａ）の場合のように、１つのリングバッファが他のリングバッファを含むように設定される場合、単純にリング開始ポインタ，リング終了ポインタを複数箇所に同時設定するのでは不都合が生じる。
これは、リングバッファとして使用するメモリ領域の範囲内に予期せぬリング開始ポインタ、あるいはリング終了ポインタが存在することにより、誤った位置にデータが格納される可能性があるためである。
【００２７】
次に、上記（１）記録ブロックに満たない単位でデータ記録を行う場合について詳細に説明する。
ＤＶＤ＋ＲＷディスクではホストコンピュータ１２からセクタ単位でデータ記録を行うことが可能であるが、光ディスク１１への書き込みはＥＣＣブロック（１ＥＣＣブロックは１６セクタ、以下「記録ブロック」という）と呼ばれる記録単位で行う必要がある。
したがって、ホストコンピュータ１２から記録ブロックに満たないデータ記録要求を受けた場合、当該記録データを含む記録ブロックを読み出した後、この記録ブロックに要求記録データを上書きして再び記録ブロック単位で光ディスク１１へ書き戻す。
このような記録処理はリードモディファイライト（Ｒｅａｄ  Ｍｏｄｉｆｙ  Ｗｒｉｔｅ）と呼ばれる。
【００２８】
リードモディファイライトでは、要求された記録領域を含む記録ブロックを一旦読み出してデータをキャッシュメモリ８内に格納した後、キャッシュメモリ８内の所定領域にユーザデータを上書きするが、記録ブロックの読み出しが完了するまで要求データの受信を待たせることは、記録要求に対する応答が遅くなるため望ましくない。
したがって、この情報記録装置では、記録ブロックの読み出しに先立ってユーザデータを受信するためには、記録ブロックを格納するメモリ領域とは別の領域へユーザデータを一旦格納する。
【００２９】
また、ホストコンピュータ１２が連続的にデータ記録を行う場合は、ホストコンピュータ１２からの個々の記録要求がセクタ単位であっても記録ブロック分のデータが格納された時点で光ディスク１１への書き込みを行えばよく、そのような場合は直接ユーザデータを記録データ格納用メモリ領域（記録データ記憶用領域）へ格納可能である。
したがって、連続したデータ記録においてリードモディファイライトが必要となるのは、書き始めのアドレスと書き終わりアドレスが記録ブロックの境界でない場合である。
ここで、連続したデータ記録において記録データ格納用メモリ領域へユーザデータを格納している状態において、記録ブロック途中でユーザから記録完了通知を受けた場合、書き終わりの記録ブロックはリードモディファイライトが発生する。
つまり、ユーザデータを格納したメモリ領域とは別領域に記録ブロックを読み出す必要がある。
【００３０】
さらに、この情報記録装置において、連続したデータ記録ではキャッシュメモリ８が大きければ大きいほど、そのメモリ領域内の記録データが無くなることによる記録中断を極力避けることが可能となる。
一方、端数データ格納用メモリ領域（端数データ記憶用領域）は書き始め、あるいは書き終わりの端数データを格納するためのものであり、最低で記録ブロックのサイズ分あればよい。
【００３１】
次に、上記（３）記録ブロック以下の単位で交替を行う場合について詳細に説明する。
ＣＤ−ＲＷディスクのマウントレイニア規格であるＣＤ−ＭＲＷディスクやＤＶＤ＋ＲＷディスクのマウントレイニア規格であるＤＶＤ＋ＭＲＷディスクでは、ユーザはセクタ単位でランダムにデータ記録が可能であり、記録ブロックに満たない場合、光ディスクへの記録はリードモディファイライトを行う必要がある。
ここで、前述のベリファイ処理において、ＤＶＤ＋ＭＲＷディスクでは記録ブロックであるＥＣＣブロック単位で欠陥かどうかの判定を行い、欠陥と判定した場合は記録ブロック単位でデータの交替を行うが、ＣＤ−ＭＲＷディスクでは記録ブロックであるパケットを構成するセクタ単位で欠陥かどうかの判定を行い、欠陥であった場合はセクタ単位でデータの交替を行う。
【００３２】
つまり、交替先となる所定のパケットを読み出した後、このパケットに交替元データを上書きして再び交替先パケットへ書き戻す。
このように、ＣＤ−ＭＲＷディスクにおける交替処理では交替処理においてもリードモディファイライトが行われる。
ところで、前述したようにユーザからの記録データはベリファイ処理が完了するまで保持しておく必要があるため、この情報記録装置では、交替先パケットを読み出す場合は記録データを格納するメモリ領域とは別のメモリ領域へデータを格納する。
また、前述のようにデータ記録のパフォーマンスを維持するためには記録データ格納用メモリ領域は極力大きくしたほうが良く、一方、交替先データ格納用メモリ領域はパケットサイズ分のデータを格納できれば良い。
【００３３】
図２は、図１に示す情報記録装置におけるキャッシュメモリのメモリ分割処理を示すフローチャート図である。
このメモリ分割処理は、例えば、ホストコンピュータ１２からの最初のデータ記録要求を受けた時点で行い、ホストコンピュータ１２からデータ記録完了の要求を受けた時点で分割されたメモリ領域を元に戻すことで、データ記録の形態に応じたキャッシュメモリ８の使用が可能となる。
コントローラ１０は、メモリ分割処理を開始すると、ステップ（図中「Ｓ」で示す）１でリードモディファイライトを行う必要があるか否かを判断する。
【００３４】
例えば、ＣＤ−ＭＲＷディスク，ＤＶＤ＋ＲＷディスク，ＤＶＤ＋ＭＲＷディスクへの記録では、ホストコンピュータ１２はセクタ単位のランダムなデータ記録が可能であるが光ディスク１１への書き込みはパケット単位またはＥＣＣブロック単位で行う必要があり、リードモディファイライトが発生する可能性がある。
したがって、ステップ１でリードモディファイライトを行う必要があると判断すると、ステップ２でキャッシュメモリの記憶領域を分割して記録ブロックに満たないデータを一時的に格納する端数データ格納用メモリ領域（端数データ記憶用領域）を確保する。
一方、ＣＤ−ＭＲＷディスク，ＤＶＤ＋ＲＷディスク，ＤＶＤ＋ＭＲＷディスク以外への記録ではリードモディファイライトは発生しないため、ステップ１でリードモディファイライトを行う必要が無いと判断すると、ステップ２の処理をスキップしてステップ３へ進む。
【００３５】
次に、ステップ３でベリファイ処理を伴うデータ記録か否かを判断する。
例えば、ＣＤ−ＭＲＷディスク，ＤＶＤ＋ＭＲＷディスクではデータ記録後に当該領域のベリファイを行う場合があるため、ステップ３でベリファイ処理を伴うデータ記録と判断すると、ステップ４でキャッシュメモリのメモリ領域（記憶領域）を分割してベリファイ用メモリ領域（ベリファイ用記憶領域）を確保する。
次に、ベリファイ処理において欠陥が検出された場合、ステップ５でセクタ単位で交替を行うか否かを判断する。
例えば、ＣＤ−ＭＲＷディスクにおけるベリファイはセクタ単位で欠陥検出を行い、パケット内の欠陥セクタのみを交替する。
したがって、ステップ５でセクタ単位で交替を行うと判断したら、ステップ６でキャッシュメモリを分割して交替先データ格納用メモリ領域（交替先データ記憶用領域）を確保する。
【００３６】
一方、ＤＶＤ＋ＭＲＷではＥＣＣブロック単位で欠陥検出が行われ、欠陥であった場合はＥＣＣブロック単位で交替されるため、ステップ５でセクタ単位で交替を行わないと判断したら、ステップ６の処理をスキップしてステップ７へ進む。
また、例えばＣＤ−ＭＲＷディスク，ＤＶＤ＋ＭＲＷディスク以外への記録ではベリファイを伴うデータ記録が発生しないため、ステップ３でベリファイ処理を伴うデータ記録ではないと判断すると、ステップ４〜６の処理をスキップしてステップ７へ進む。
次に、ステップ７でタイムシフト再生を行うか否かを判断し、タイムシフト再生を行う場合は、ステップ８でキャッシュメモリのメモリ領域を分割して再生データ格納用メモリ領域（再生データ記憶用領域）を確保し、この処理を終了する。
【００３７】
また、ステップ７の判断でタイムシフト再生を行わない場合はステップ８をスキップしてこの処理を終了する。
なお、上記の分割メモリ領域のうち同時に使用することのない複数の分割メモリ領域は複数に分割する必要はなく、ある分割メモリ領域を複数の目的に使用しても良い。
例えば、ＣＤ−ＭＲＷディスクにおいて、ベリファイ処理と交替先パケットの読み出しが同時に行われることはない。
さらに、ベリファイ用メモリ領域に格納したデータを交替先パケットの読み出し中に保持しておく必要はなく、逆に交替先データ格納用メモリに格納したデータはベリファイ中に保持しておく必要はない。
このような場合は、１つの分割メモリ領域をベリファイ用と交替先データ格納用に使用することも可能である。
【００３８】
図３は、図１に示すコントローラ１０による上記の要領で分割されたメモリ領域のレイアウトを示す図である。
同図の（ａ）は、ＣＤ−Ｒディスク，ＣＤ−ＲＷディスク及びＤＶＤ＋Ｒディスクへデータ記録を行う場合のメモリ領域のレイアウトである。
これらの光ディスクへの記録はリードモディファイライトやベリファイなどの複雑な処理が不要であるため、キャッシュメモリ８のメモリ領域全体を記録データ格納用メモリ領域２０に使用することが可能である。
すなわち、コントローラ１０は、リング開始ポインタ（ＲＳ）にメモリ領域の開始アドレスＭ０を設定し、リング終了ポインタ（ＲＥ）にメモリ領域の終了アドレスＭ１を設定する。
【００３９】
同図の（ｂ）は、ＤＶＤ＋ＭＲＷディスクへデータ記録を行う場合のメモリ領域の分割例である。
ＤＶＤ＋ＭＲＷディスクはユーザからセクタ単位でランダムに記録が可能であり、リードモディファイライトを行う必要があるため、コントローラ１０は、キャッシュメモリ８を記録データ格納用メモリ領域２０と端数データ格納用メモリ領域（端数データ転送用メモリ領域）２１とに分割する。すなわち、キャッシュメモリ８内のアドレスＭ０からＭ２を記録データ格納用メモリ領域２０として使用し、アドレスＭ２からＭ１を端数データ格納用メモリ領域２１として使用する。
また、コントローラ１０は、これらの分割メモリ領域のうち記録データ格納用メモリ領域２０はリングバッファリング方式で使用し、リング開始ポインタ（ＲＳ０）およびリング終了ポインタ（ＲＥ０）に記録データ格納用メモリ領域２０の開始アドレスＭ０および終了アドレスＭ２をそれぞれ設定する。
【００４０】
同図の（ｃ）は、ＣＤ−ＭＲＷディスク及びＤＶＤ＋ＭＲＷディスクへデータ記録を行う場合のメモリ領域の分割例である。
これらの光ディスクは、ＤＶＤ＋ＲＷディスクと同様にホストコンピュータ１２からセクタ単位でランダムに記録が可能であり、リードモディファイライトを行う必要があるため、コントローラ１０は、キャッシュメモリ８を記録データ格納用メモリ領域２０と端数データ格納用メモリ領域２１とに分割する。
さらに、これらの光ディスクはベリファイ処理を伴うデータ記録を行うため、コントローラ１０は、記録データ格納用メモリ領域２０をさらに分割し、ベリファイ用メモリ領域２２を確保する。
【００４１】
なお、ＣＤ−ＭＲＷディスクでは交替処理においてもリードモディファイライトが発生するため、交替データ格納用メモリ領域が必要となるが、交替先パケットのデータをベリファイ用メモリ領域２２へ格納することで新たに交替先データ格納用メモリ領域を確保する必要がなくなる。
以上のように、コントローラ１０は、ＣＤ−ＭＲＷディスク及びＤＶＤ＋ＭＲＷディスクへのデータ記録では、キャッシュメモリ８内のアドレスＭ０からＭ３を記録データ格納用メモリ領域２０、アドレスＭ３からＭ２をベリファイ用メモリ領域（交替先データ格納用メモリ領域）２２、アドレスＭ２からＭ１を端数データ格納用メモリ領域２１として使用する。これらの分割メモリ領域のうち、記録データ格納用メモリ領域２０とベリファイ用メモリ領域２２はリングバッファリング方式にて使用することでそれぞれのメモリ管理が容易になる。
【００４２】
すなわち、コントローラ１０は、記録処理を行う場合はリング開始ポインタ（ＲＳ０）及びリング終了ポインタ（ＲＥ０）に記録データ格納用メモリ領域２０の開始アドレスＭ０及び終了アドレスＭ３をそれぞれ設定し、ベリファイ処理を行う場合はリング開始ポインタ（ＲＳ１）及びリング終了ポインタ（ＲＥ１）にベリファイ用メモリ領域２２の開始アドレスＭ３及び終了アドレスＭ２をそれぞれ設定する。
【００４３】
同図の（ｄ）は、ＤＶＤ＋ＲＷディスクへの記録においてタイムシフト再生を行う場合のメモリ領域の分割例である。
通常、ＴＶ番組の録画などにおいてタイムシフト再生が要求される場合、シーケンシャルなデータ記録が要求される場合が一般的であるが、ＤＶＤ＋ＲＷディスクではホストコンピュータ１２はデータをランダムに記録することが可能であるため、例えば録画したデータの管理情報を記録するような場合はランダムな記録を要求される可能性がある。
したがって、コントローラ１０は、記録データ格納用メモリ領域２０を分割して端数データ格納用メモリ領域２１を確保しておく。
【００４４】
次に、データ記録中にホストコンピュータ１２からの再生要求に対して再生データを格納するため、コントローラ１０は、記録データ格納用メモリ領域２０をさらに分割して再生データ格納用メモリ領域２３を確保する。
以上のようにして、コントローラ１０は、ＤＶＤ＋ＲＷディスクでタイムシフト再生を行う場合は、キャッシュメモリ８内のアドレスＭ０からＭ４を記録データ格納用メモリ領域２０、アドレスＭ４からＭ２を再生データ格納用メモリ領域２３、アドレスＭ２からＭ１を端数データ格納用メモリ領域２１として使用する。これらの分割メモリ領域のうち、記録データ格納用メモリ領域２０と再生データ格納用メモリ領域２３はリングバッファリング方式にて使用することでそれぞれのメモリ管理が容易になる。
【００４５】
すなわち、コントローラ１０は、記録処理を行う場合はリング開始ポインタ（ＲＳ０）およびリング終了ポインタ（ＲＥ０）に記録データ格納用メモリ領域２０の開始アドレスＭ０および終了アドレスＭ４をそれぞれ設定し、データ再生処理を行う場合はリング開始ポインタ（ＲＳ１）およびリング終了ポインタ（ＲＥ１）に再生データ格納用メモリ領域２３の開始アドレスＭ４および終了アドレスＭ２をそれぞれ設定する。
【００４６】
図４乃至図６は、図１に示したコントローラ１０による記録ブロック単位に満たないデータ記録を行う場合のメモリ分割とデータ格納の例を示す説明図である。
コントローラ１０は、図３の（ｂ）に示すようにキャッシュメモリ８の全メモリ領域（メモリアドレスＭ０からＭ１）を記録データ格納用メモリ領域（メモリアドレスＭ０からＭ２）２０と端数データ格納用メモリ領域（メモリアドレスＭ２からＭ１）２１とに分割する。以下、ＤＶＤ＋ＲＷディスクへの記録を例に説明する。
図４の（ａ）〜（ｄ）は、ホストコンピュータ１２がセクタ単位でデータ記録を要求した場合のキャッシュメモリ８の使用例の説明図である。
コントローラ１０は、ホストコンピュータ１２からＥＣＣブロックの境界でないアドレスへの記録要求を受けた場合、要求データを端数データ格納用メモリ領域２１に一時的に格納する（図４の（ａ）参照）。そのとき、コントローラ１０は、ホストコンピュータ１２に対して記録要求に対する完了通知を報告する。
【００４７】
次に、コントローラ１０は、要求された記録アドレスを含むＥＣＣブロックを光ディスク１１から読み出して記録データ格納用メモリ領域２０に格納する（図４の（ｂ）参照）。
次に、コントローラ１０は、端数データ格納用メモリ領域２１に一時的に格納した端数データを、上記読み出したＥＣＣブロックデータの所定位置にコピーし（図４の（ｃ）参照）、ＥＣＣブロック単位で光ディスク１１へ書き戻す（図４の（ｄ）参照）。
このようにして、端数データを格納するためのメモリ領域を確保することにより、所定のＥＣＣブロックデータを光ディスク１１から読み出す前に要求記録データを受信することが可能になる。
また、要求データを格納後にホストコンピュータ１２に対して記録完了通知を報告することでデータ記録のパフォーマンスを向上させることが可能になる。
【００４８】
図５の（ａ）〜（ｃ）と図６の（ａ）〜（ｅ）は、ホストコンピュータ１２が連続的にデータ記録を行う場合のキャッシュメモリ使用例である。
本例では書き始めのアドレスおよび書き終わりアドレスはＥＣＣブロックの境界でないものとする。
コントローラ１０は、例えば、ホストコンピュータ１２がＥＣＣブロックの境界をまたぐように記録要求を行った場合、最初に記録開始アドレスから次のＥＣＣブロックの境界までのデータを端数データ格納用メモリ領域２１に一時的に格納し、残りのデータを記録データ格納用メモリ領域２０に格納する。
【００４９】
このとき、コントローラ１０は、要求データの前半部分は端数データ格納用メモリ領域２１の開始位置（メモリアドレスＭ２）から格納し、後半部分は記録データ格納用メモリ領域２０の開始位置（メモリアドレスＭ０）から１ＥＣＣブロック分空けた位置から格納する（図５の（ａ）参照）。
コントローラ１０は、以上のデータを格納した後にホストコンピュータ１２に対して記録要求に対する完了通知を報告する。
【００５０】
次に、コントローラ１０は、端数データ格納用メモリ領域２１に一時的に格納したデータを含むＥＣＣブロックを光ディスク１１から読み出し、記録データ格納用メモリ領域２０の開始位置（メモリアドレスＭ０）へ格納する。
コントローラ１０は、この間にホストコンピュータ１２からシーケンシャルな記録要求を受けた場合、当該アドレスがＥＣＣブロックの境界であるか否かに関わらず、記録データ格納用メモリ領域２０へ連続的に格納する（図５の（ｂ）参照）。
次に、コントローラ１０は、ＥＣＣブロックの読み出しが完了した場合、端数データ格納用メモリ領域２１に一時的に格納した要求記録データを読み出したＥＣＣブロックデータの所定位置にコピーする（図５の（ｃ）参照）。
【００５１】
ここで、コントローラ１０は、要求記録データの終了アドレスがＥＣＣブロックの境界でない時点で、ホストコンピュータ１２から記録終了の要求を受けた場合（図６の（ａ）参照）、ＥＣＣブロックの端数となる要求データを端数データ格納用メモリ領域２１へいったん退避し（図６の（ｂ）参照）、この端数データを含む所定のＥＣＣブロックを光ディスク１１から読み出して記録データ格納用メモリ領域２０の所定位置へ格納する（図５の（ｃ）参照）。
次に、コントローラ１０は、端数データ格納用メモリ領域２１へ退避したデータを再び記録データ格納用メモリ領域２０の所定位置へコピーして（図６の（ｄ）参照）、ＥＣＣブロック単位で光ディスク１１へ書き戻す（図６の（ｅ）参照）。
【００５２】
なお、コントローラ１０は、ホストコンピュータ１２から記録終了要求を受ける前に記録データ格納用メモリ領域２０のデータ占有量が所定のしきい値を超えた場合は記録を開始する。
また、記録開始後にユーザから記録完了通知を受けた場合は、ＥＣＣブロックの境界となるアドレスで一旦記録を中断してから、書き終わりの端数データを含む所定のＥＣＣブロックを読み出して当該ＥＣＣブロックの記録を行う。
【００５３】
図７及び図８は、コントローラ１０によるＤＶＤ＋ＲＷディスクへのデータ記録動作を示すフローチャート図である。
コントローラ１０は、データ記録処理を開始すると、図７のステップ（図中「Ｓ」で示す）１でキャッシュメモリのメモリ分割処理を行う。
このメモリ分割処理では、図２に基づいて示した処理でキャッシュメモリ８のメモリ分割を行い、その結果、キャッシュメモリ８の記憶領域を、図３の（ｂ）に示すように記録データ格納用メモリ領域２０と端数データ格納用メモリ領域２１とに分割する。
【００５４】
ステップ２でホストコンピュータから記録要求があるか否かを判断し、ここでは記録を要求されているため、ホストコンピュータから記録要求があると判断し、ステップ３でＥＣＣバウンダリか否か（要求記録アドレスＥＣＣブロックの境界であるか否か）を判断する。ステップ３の判断でＥＣＣバウンダリの場合（要求記録アドレスがＥＣＣブロックの境界であった場合）はステップ９へ進んで要求データを受信して記録メモリ（記録データ格納用メモリ領域）へ転送して記憶（格納）する。ここでは要求記録アドレスがＥＣＣブロックの境界でなかったと仮定する。その場合、ステップ３の判断でＥＣＣバウンダリではない場合（要求記録アドレスがＥＣＣブロックの境界ではない場合）、ステップ４で連続アドレスか否か（直前の要求記録アドレスから連続した記録要求であるか否か）を判断する。
【００５５】
ステップ４の判断で連続アドレスの場合（直前の記録要求から連続した記録要求であった場合）、ステップ９へ進んでデータを受信して記録メモリ（記録データ格納用メモリ領域）の所定位置へ転送して記憶（格納）する。データ記録開始時の場合、直前の記録要求は存在しないため、ステップ４の判断で連続アドレスではない場合、ステップ５で要求記録データのうちＥＣＣブロックの境界までの端数データを抽出し、ステップ６で端数メモリ（端数データ格納用メモリ領域）に端数データを転送して記憶（格納）する（図４の（ａ）参照）。端数データ格納用メモリへデータ格納後、ステップ７のＥＣＣ読み出し開始で当該端数データを含むＥＣＣブロックのデータを光ディスク上から読み出す処理を開始する。
【００５６】
次に、ステップ８でホストコンピュータが要求した記録データのうちデータ受信していない未転送データが存在するか否かを判断し、未転送データが存在しない場合、ステップ１１へ進んでＥＣＣ読み出しが完了したか否かを判断する。ここでは未転送データが存在していたと仮定し、ステップ８で未転送データが存在していた場合、ステップ９で記録メモリ（記録データ格納用メモリ領域）へデータを転送して記憶（格納）する。
この場合、記録データ格納用メモリの開始アドレスから１ＥＣＣブロック分後方へデータ格納される（図５の（ａ）参照）。これは光ディスク１１から読み出したデータを記録データ格納用メモリ領域の先頭から格納するためである。
【００５７】
次に、ステップ１０でＥＣＣブロック読み出しが完了したか否かを判断する。ここではＥＣＣブロック読み出しを開始した直後であるため、ステップ１０の判断でＥＣＣ読み出し完了ではない場合、ステップ１１の処理をスキップしてステップ１２へ進む。
次に、ステップ１２で記録データ格納用メモリ領域内のデータ占有量が所定の記録開始しきい値を超えたか否かを判断する。
記録開始の場合、データ占有量は記録開始しきい値を超えていないため、ステップ１２の判断で記録開始しきい値を超えていない場合、ステップ１３の処理をスキップしてステップ１４へ進む。
【００５８】
次に、ステップ１４でホストコンピュータに対してデータ記録要求に対する完了を通知し、ステップ２へ戻って再びホストコンピュータからのデータ記録要求を待つ。
以上が、記録開始時のデータ記録要求に対する処理である。
このように、この情報記録装置ではキャッシュメモリ８を記録データ格納用メモリ領域と端数データ格納用領域とに分割することにより、端数データを含むＥＣＣブロックの読み出しが完了する前に要求記録データを受信することが可能となり、記録要求に対するパフォーマンスを向上させることが可能となる。
【００５９】
さらに、引き続きホストコンピュータ１２からの記録要求を待つ。
このとき、ホストコンピュータ１２から連続的なデータ記録要求を受けた場合は、当該記録アドレスがＥＣＣブロックであるか否かに関わらず、すなわち、ステップ３でＥＣＣバウンダリではないと判断した場合であっても、ステップ４で連続アドレスと判断し、ステップ９で記録データ格納用メモリ領域へデータを転送して記憶（格納）する（図５の（ｂ）参照）。
ステップ１０の判断でデータ受信中にＥＣＣブロック読み出しが完了していた場合は、ステップ１１でステップ６において端数データ格納用メモリ領域に受信した端数データを、読み出したＥＣＣブロックの所定位置へコピーする（図５の（ｃ）参照）。
また、ステップ１２でデータ受信中に記録データ格納用メモリ領域のデータ占有量が所定の記録開始しきい値を超えた場合は、ステップ１３でデータ記録を開始する。
【００６０】
一方、ステップ２の判断においてホストコンピュータからのデータ記録要求がなかった場合、図８のステップ１５へ進んでホストコンピュータからデータ記録終了要求を受けたか否かを判断し、データ記録終了要求を受けていない場合、図７のステップ２へ戻って再びホストコンピュータからのデータ記録要求を受けたか否かを判断し、データ記録要求を待つ。
ホストコンピュータからデータ記録終了要求があった場合、ステップ１６でデータ記録終了アドレスがＥＣＣブロックの境界であるか否か、すなわちデータの書き終わりに端数データが存在するか否かを判断する。ステップ１６で端数データ無しと判断したら、ステップ２８でデータ記録中か否かを判断して、データ記録中ならステップ２５へ進み、データ記録中でなければステップ２４へ進む。
ここではデータの書き終わりに端数データがあると仮定する（図６の（ａ）参照）。
この場合、ステップ１６で端数データがあると判断し、ステップ１７で当該端数データを端数データ格納メモリ領域へ退避する（図６の（ｂ）参照）。
【００６１】
次に、ステップ１８で光ディスクへの記録中か否かを判断し、データ記録中の場合は、ステップ１９で前述の端数データを除き、ＥＣＣブロックの境界となるアドレスでデータ記録を中断するように記録中断ポイントを設定し、ステップ２０でデータ記録完了か否かを判断し、データ記録完了を待つ。
一方、ステップ１８の判断においてデータ記録中でなかった場合は、ステップ１９と２０の処理をスキップし、ステップ２１へ進む。
次に、ステップ２１で当該端数データを含むＥＣＣブロックの読み出しを開始し、ステップ２３でＥＣＣ読み出し完了か否かを判断し、ＥＣＣ読み出し完了を待つ（図６の（ｃ）参照）。
【００６２】
ステップ２２の判断でＥＣＣブロックの読み出しが完了した場合は、ステップ２３でステップ１７において端数データ格納用メモリ領域へ退避した端数データを、読み出したＥＣＣブロックの所定位置へコピーし（図６の（ｄ）参照）、ステップ２４でＥＣＣブロック単位で光ディスクへの記録を開始し（図６の（ｅ）参照）、ステップ２５でデータ記録完了か否かを判断して、データ記録完了を待つ。
ステップ２５の判断でデータ記録処理が完了したら、ステップ２６でホストコンピュータからのデータ記録終了要求に対する完了を通知し、ステップ２７でステップ１において分割したメモリ領域を復帰させて（元の状態に戻して）、この処理を終了する。
【００６３】
図９及び図１０は、図１に示したコントローラ１０によるベリファイ処理及び交替処理を伴うデータ記録を行う場合のメモリ分割とデータ格納の例を示す説明図である。
ここではＣＤ−ＭＲＷディスクへの記録を例に取り、セクタ単位で交替を行う場合について説明する。
なお、ＣＤ−ＭＲＷディスクではユーザからセクタ単位でランダムに記録が可能であるため、端数データ格納用メモリ領域を確保しているが、説明を簡素化するためにここではパケット単位で連続的に記録を行うものとする。
図９の（ａ）〜（ｅ）はベリファイを伴うデータ記録におけるメモリ分割とデータ格納のフォーマットを示す図である。
【００６４】
コントローラ１０は、キャッシュメモリ８の全メモリ領域（メモリアドレスＭ０からＭ１）を記録データ格納用メモリ領域（メモリアドレスＭ０からＭ３）２０、ベリファイ用メモリ領域（メモリアドレスＭ３からＭ２）２２、端数データ格納用メモリ領域（メモリアドレスＭ２からＭ１）２１とに分割する。
また、ホストコンピュータ１２からパケット単位で連続的にデータ記録要求を受けた場合は、記録データ格納用メモリ領域２０へデータを記憶（格納）する（図９の（ａ）参照）。さらに、記録データ格納用メモリ領域２０内のデータ占有量が所定の記録開始しきい値（本例では記録データ格納用メモリ領域のサイズとする）以上となる場合、当該記録データを光ディスクへ記録する（図９の（ｂ）参照）。
【００６５】
なお、コントローラ１０は、データ受信からデータ記録までは、記録データ格納用メモリ領域２０、すなわちメモリアドレスＭ０からＭ３をリングバッファリング方式で使用し、リング開始ポインタ（ＲＳ０）及びリング終了ポインタ（ＲＥ０）をそれぞれメモリアドレスＭ０及びＭ３に設定する。記録データ格納用メモリ領域２０に格納したデータの記録が完了した場合、当該記録領域のベリファイを行う。
ここで、コントローラ１０は、ベリファイ処理を再生処理と同様に、再生したデータをベリファイ用メモリ領域２２内に格納してエラー検出，エラー訂正などを行い、正常に記録されているか否かの判定（欠陥検出）を行う。
【００６６】
このとき、コントローラ１０は、ベリファイ用メモリ領域２２、すなわちメモリアドレスＭ３からＭ２の領域はリングバッファリング方式で使用し、リング開始ポインタ（ＲＳ１）及びリング終了ポインタ（ＲＥ２）をそれぞれメモリアドレスＭ３及びＭ２に設定する。ベリファイ用メモリ領域２２に格納されたデータは欠陥が検出されない限り、次の領域のベリファイデータによって上書きしていく（図９の（ｃ）参照）。
コントローラ１０は、記録した全データのベリファイが完了し、正常に記録されていることが確認された場合は、記録データ格納用メモリ領域２０に保持しておいたデータは不要となるため、記録データ格納用メモリ領域２０を開放して、引き続きホストコンピュータ１２から次の記録データを受信してデータを格納していく（図９の（ｄ）参照）。
【００６７】
なお、ベリファイ処理において正常に記録されていることが確認されたデータについては記録データ格納用メモリ領域２０に保持しておく必要はなく、ベリファイ済みデータから順に記録データ格納用メモリ領域２０を開放して、ホストコンピュータ１２からの記録データを格納しても良い（図９の（ｅ）参照）。
【００６８】
図１０の（ａ）〜（ｅ）は交替処理におけるメモリ使用例のフォーマットを示す図である。
ＣＤ−ＭＲＷディスクではセクタ単位で交替を行うため、交替処理においてもリードモディファイライトを行う必要がある。
ただし、ベリファイで格納したデータを交替処理中も保持しておく、あるいは、交替処理で格納したデータをベリファイ中も保持しておくといった必要はないため、交替先データ格納用メモリはベリファイ用メモリ領域２２で代用することが可能である。
【００６９】
すなわち、コントローラ１０は、キャッシュメモリ８のメモリアドレスＭ３からＭ２を交替先データ格納用メモリ領域２２として使用する。
ここで、ベリファイ処理において記録領域のうちの１セクタが欠陥と判定された場合（図１０の（ａ）参照）、当該欠陥領域へ記録したデータは所定の交替領域へ再度記録する必要がある。
コントローラ１０は、まず所定の交替先パケットのデータを読み出して交替先データ格納用メモリ領域２２へ格納する（図１０の（ｂ）参照）。
次に、欠陥領域へ記録したデータを交替先パケットの所定位置へコピーし（図１０の（ｃ）参照）、パケット単位で交替先パケットへ記録する（図１０の（ｄ）参照）。
【００７０】
そして、コントローラ１０は、交替処理が完了した場合は、残りの記録データのベリファイを再開する（図１０の（ｅ）参照）。
なお、ＤＶＤ＋ＭＲＷディスクではＥＣＣブロック単位で交替を行うため、交替先となるＥＣＣブロックのデータを読み出す必要はない。
したがって、記録データ格納用メモリ領域２０内のデータを直接交替先ＥＣＣブロックへ記録してよい。
【００７１】
図１１及び図１２は、コントローラ１０によるＣＤ−ＭＲＷディスクへのデータ記録動作を示すフローチャート図である。
なお、ＣＤ−ＭＲＷディスクではホストコンピュータ１２からセクタ単位でランダムに記録が可能であるが、説明を簡素化するため、ここではパケット単位で連続的に記録を行うものとする。
コントローラ１０は、図１１に示すように、データ記録処理を開始すると、ステップ（図中「Ｓ」で示す）３１でキャッシュメモリのメモリの分割処理を行う。
このメモリ分割処理では、図２に基づいて示した処理でキャッシュメモリ８のメモリ分割を行い、その結果、キャッシュメモリ８の記憶領域を、図３の（ｃ）に示すように記録データ格納用メモリ領域２０とベリファイ用メモリ領域（交替先データ（パケット）格納用メモリ領域）２２と端数データ格納用メモリ領域２１とに分割する。
【００７２】
本実施例では次に、記録データ格納用メモリ領域２０をリングバッファリング方式で使用するために、ステップ３２の記録用リング設定処理でリング開始ポインタ（ＲＳ０）及びリング終了ポインタ（ＲＥ０）にそれぞれメモリアドレスＭ０及びＭ３を設定し、ステップ３３でホストコンピュータからデータ記録要求があるか否かを判断する。
ここでは記録を要求されているため、ステップ３３でデータ記録要求有りと判断し、ステップ３４で要求データを受信して記録メモリ（記録データ格納用メモリ領域）へ転送して記憶（格納）する（図９の（ａ）参照）。
次に、ステップ３５で記録を開始するか否かの条件を満たしているか否かを判断する。
【００７３】
その条件としては、記録データ格納用メモリ領域２０のデータ占有量が所定の記録開始しきい値を超えたか否か、あるいはホストコンピュータからデータ記録完了要求があるかなどが考えられる。
ステップ３５の判断で記録開始条件を満たしていない場合、ステップ３３へ戻って再びホストコンピュータからのデータ記録要求有りか否かを判断し、データ記録要求を待つ。
一方、ステップ３５の判断で記録開始条件を満たしていた場合、ステップ３６で記録データ格納用メモリ領域へ格納したデータを光ディスクへ記録開始し、ステップ３７で記録完了か否かを判断し、記録の完了を待つ（図９の（ｂ）参照）。
ステップ３７の判断で記録が完了した場合、ベリファイ処理へ移行する。
【００７４】
ここではまず、ステップ３８でベリファイ用メモリ領域をリングバッファリング方式で使用するためにベリファイ用リング設定処理で、リング開始ポインタ（ＲＳ１）及びリング終了ポインタ（ＲＥ１）にそれぞれメモリアドレスＭ３及びＭ２を設定する。
次に、ステップ３９で当該記録領域のベリファイを開始し、ステップ４０でベリファイエラーか否かを判断し、ベリファイエラーなら、図１２のステップ４４へ進み、ベリファイエラーでなければ、ステップ４１でベリファイ完了か否かを判断し、ベリファィ完了でなければステップ４０へ戻り、ベリファイ完了ならステップ４２へ進む。
すなわち、ステップ４０と４１で記録領域内の欠陥検出を行いながら、ベリファイ処理の完了を待つ。
【００７５】
なお、ベリファイ用メモリ領域２２に格納されたデータは欠陥が検出されない限り、次の領域のベリファイデータによって上書きしていく（図９の（ｃ）参照）。
ステップ４１の判断でベリファイ処理が完了し、データが正常に記録されていることが確認された場合は、ステップ４２でホストコンピュータから記録終了要求を受けているか否かを判断し、記録終了要求を受けていなければ、ステップ３２へ戻って再びデータ記録用のリング開始ポインタ，リング終了ポインタを設定し、ホストコンピュータからのデータを受信する（図４の（ｄ）参照）。
【００７６】
一方、ステップ４２の判断で記録終了要求を受けていた場合、ステップ４３でステップ３１において分割したメモリ領域を復帰させて（元の状態に戻して）、この処理を終了する。
ところで、ステップ４０の判断において記録領域内に欠陥が検出された場合は交替処理へ移行する。ここではまず、図１２のステップ４４で欠陥と判定されたセクタを抽出する（図１０の（ａ）参照）。
次に、ステップ４５で所定の交替領域のうち、交替が可能な領域の交替先アドレスを取得し、ステップ４６でその交替先領域を含む交替先パケットのデータを読み出して、交替先データ格納用メモリ領域へ記憶（格納）する（図１０の（ｂ）参照）。
【００７７】
ステップ４７で読み出し完了か否かを判断して、読み出し完了まで、読み出しと交替先データ格納用メモリ領域への記憶を繰り返す。
ステップ４７の判断で交替先パケットの読み出しが完了した場合、ステップ４８で欠陥領域へ記録した交替データを交替先データ格納用メモリ領域内の所定位置へコピーし（図１０の（ｃ）参照）、ステップ４９で交替先パケットへパケット単位でデータ記録を開始し、ステップ５０でデータ記録完了か否かを判断して、完了でなければ完了を待つ（図１０の（ｄ）参照）。
以上の交替処理を完了し、ステップ５０でデータ記録完了と判断した場合、ステップ５１でデータ記録領域のベリファイを再開し、図１１のステップ４１へ戻って欠陥検出処理を続ける。
なお、交替先パケットへ記録したデータが正常に記録されているか否かを確認する場合はベリファイ用メモリ領域を使用してベリファイを行っても良い。
【００７８】
図１３及び図１４は、ＤＶＤ＋ＲＷディスクにおいてタイムシフト再生を行う場合のメモリ分割とデータ格納の例を示す説明図である。
図１３の（ａ）〜（ｄ）は再生データ格納用メモリを持たない従来装置でのタイムシフト再生におけるデータ格納のフォーマットを示す図である。
まず、ホストコンピュータからデータ記録要求を受けた場合、記録データ格納用メモリ領域へデータを格納し、ホストコンピュータに対して処理完了を通知する（図１３の（ａ）参照）。この段階では記録データ格納用メモリ領域内のデータ占有量は所定の記録開始しきい値を超えていないため、光ディスクへの記録を開始していない。
【００７９】
次に、ホストコンピュータからデータ再生要求を受けた場合は記録処理を完了させるため、記録データ格納用メモリ領域内の記憶（格納）されたデータを光ディスクへ記録した後に（図１３の（ｂ）参照）、要求されたデータを再生し、記録データ格納用メモリ領域へ記憶（格納）する（図１３の（ｃ）参照）。
タイムシフト再生ではホストコンピュータから記録と再生が交互に要求され、再びホストコンピュータから記録要求を受けると記録データ格納用メモリ領域へデータを格納し、ホストコンピュータに対して処理完了を通知する（図１３の（ｄ）参照）。
このように、従来装置におけるタイムシフト再生ではホストコンピュータからの記録、再生要求が切り替わるたびに記録処理が中断されてシークが発生してしまう。
つまり、タイムシフト再生ではメモリサイズによらず頻繁に記録の中断が発生することになり、シークエラー等によるリトライ処理に時間がかかるという不具合が発生しやすくなる。
【００８０】
一方、図１４の（ａ）〜（ｄ）は、コントローラ１０によるタイムシフト再生におけるデータ格納のフォーマットを示す図である。
ここでは、コントローラ１０は、図３の（ｄ）に示すように、キャッシュメモリ８の全メモリ領域（メモリアドレスＭ０からＭ１）を記録データ格納用メモリ領域（メモリアドレスＭ０からＭ４）２０と再生データ格納用メモリ領域（メモリアドレスＭ４からＭ１）２３とに分割する。
なお、ＤＶＤ＋ＲＷディスクではホストコンピュータ１２からセクタ単位でランダムに記録が可能であるため、端数データ格納用メモリ領域２１を確保しているが、説明を簡素化するため、ここではＥＣＣブロック単位で連続的に記録を行うものとする。
【００８１】
コントローラ１０は、ホストコンピュータ１２からデータ記録要求を受けた場合、記録データ格納用メモリ領域２０へデータを格納し、ホストコンピュータ１２に対して処理完了を通知する（図１４の（ａ）参照）。この段階では記録データ格納用メモリ領域２０内のデータ占有量は所定の記録開始しきい値を超えていないため、光ディスクへの記録は開始していない。
なお、コントローラ１０は、データ受信からデータ記録までは、記録データ格納用メモリ領域２０、すなわちメモリアドレスＭ０からＭ４をリングバッファリング方式で使用し、リング開始ポインタ（ＲＳ０）及びリング終了ポインタ（ＲＥ０）をそれぞれメモリアドレスＭ０及びＭ４に設定する。
【００８２】
次に、コントローラ１０は、ホストコンピュータ１２からデータ再生要求を受けた場合は、データ記録に先立って、要求されたデータを光ディスクから読み出して再生データ格納用メモリ領域２３に格納する（図１４の（ｂ）参照）。
このとき、コントローラ１０は、再生データ格納用メモリ領域２３をリングバッファリング方式で使用するために、リング開始ポインタ（ＲＳ１）及びリング終了ポインタ（ＲＥ１）にそれぞれメモリアドレスＭ４及びＭ２を設定する。
次に、コントローラ１０は、ホストコンピュータ１２から先ほどの記録データと連続する記録要求を受けた場合は、再びデータ記録用のリングポインタを設定し、記録データ格納用メモリ領域２０内に続けてデータを格納する（図１４の（ｃ）参照）。
このように、ホストコンピュータ１２から連続的な記録と再生の要求を交互に要求された場合は、記録データ格納用メモリ領域２０へのデータ格納と光ディスクからのデータ再生を繰り返す。
【００８３】
また、コントローラ１０は、記録データ格納用メモリ領域２０内のデータ占有量が所定の記録開始しきい値を超えた場合は記録を開始する（図１４の（ｄ）参照）。
以上に述べたように、記録データと再生データをそれぞれ記録データ格納用メモリ領域と再生データ格納用メモリ領域に格納することにより、再生要求のたびにメモリ内に存在するデータを記録してしまう必要がなくなる。
したがって、タイムシフト再生において一定量の記録データが格納されてからデータ記録を開始することができ、安定したデータ記録を行うことが可能となる。
【００８４】
図１５及び図１６は、コントローラ１０によるタイムシフト再生動作を示すフローチャート図である。
本実施例ではＤＶＤ＋ＲＷディスクを対象とする。ＤＶＤ＋ＲＷディスクではホストコンピュータ１２からセクタ単位でランダムに記録が可能であるが、説明を簡素化するため、ここではＥＣＣブロック単位で連続的に記録を行い、記録途中で再生動作を行うものとする。
【００８５】
コントローラ１０は、図１５に示すように、データ記録処理を開始すると、ステップ（図中「Ｓ」で示す）６１でキャッシュメモリのメモリの分割処理を行う。
このメモリ分割処理では、図２に基づいて示した処理でキャッシュメモリ８のメモリ分割を行い、その結果、キャッシュメモリ８の記憶領域を、図３の（ｄ）に示すように記録データ格納用メモリ領域２０と再生データ格納用メモリ領域２３と端数データ格納用メモリ領域２１とに分割する。
本実施例では次に、記録データ格納用メモリをリングバッファリング方式で使用するために、ステップ６２の記録用リング設定処理でリング開始ポインタ（ＲＳ０）及びリング終了ポインタ（ＲＥ０）にそれぞれメモリアドレスＭ０及びＭ４を設定し、ステップ６３でホストコンピュータからデータ記録要求があるか否かを判断する。
【００８６】
ここでは記録を要求されているため、ステップ６３でデータ記録要求有りと判断し、ステップ６４で要求データを受信して記録メモリ（記録データ格納用メモリ領域）へ転送して記憶（格納）する（図１４の（ａ）参照）。
次に、ステップ６５で現在光ディスクへの記録中か否かを判断し、データ記録中の場合は、ステップ６３へ戻って再びホストコンピュータからのデータ記録要求があるか否かの判断を行う。ここでは記録開始前であるため、ステップ６５でデータ記録中では無いと判断し、ステップ６６で次に記録開始の条件を満たしているか否かの判断を行う。
その条件としては、記録データ格納用メモリ領域２０のデータ占有量が所定の記録開始しきい値を超えたか否か、あるいはホストコンピュータから記録完了要求があるかなどが考えられる。
【００８７】
ステップ６６の判断で記録開始条件を満たしていない場合、ステップ６３へ戻って再びホストコンピュータからの記録要求があるか否かの判断を行う。
一方、ステップ６３の判断においてホストコンピュータからのデータ記録要求がなかった場合は、図１６のステップ７４へ進んで再生要求があるか否かを判断し、再生要求があった場合、ステップ７５で現在光ディスクへの記録中か否かを判断し、記録中の場合は、ステップ７６でデータ記録完了か否かを判断して、データ記録完了を待ち、ステップ７６でデータ記録完了と判断したら再生処理へ移行する。
一方、ステップ７５の判断でデータ記録中ではない（光ディスクへの記録前の待機状態である）場合は、記録データ格納用メモリ領域内に書き込み前のデータが存在した場合も、当該データの記録に先立って再生処理へ移行する。
【００８８】
ここでは、まず、ステップ７７で要求再生アドレスのデータが記録メモリ（記録データ格納用メモリ領域）内に存在するか否かを判断し、記録データ格納用メモリ領域内に存在しない場合、ステップ７８の再生用リング設定処理で再生データ格納用メモリ領域をリングバッファリング方式で使用するために、リング開始ポインタ（ＲＳ１）及びリング終了ポインタ（ＲＥ１）にそれぞれメモリアドレスＭ４及びＭ２を設定し、ステップ７９で指定アドレスの再生を開始する（図１４の（ｂ）参照）。
次に、ステップ８０で要求されたデータがキャッシュされたか否かを判断して、要求されたデータが再生データ格納用メモリ領域に記憶（格納）されるのを待ち、格納されれば、ステップ８１でホストコンピュータが要求したデータを転送して記憶（格納）する。
なお、ホストコンピュータが要求したデータを転送した後は、再生データ格納メモリ領域内の当該データは不要になるため、先読みによって読み出されたデータで上書きしていく。
【００８９】
次に、ステップ８２で引き続きホストコンピュータからデータ再生要求が終了か否かを判断し、データ再生要求が終了でなければ、ステップ８０へ戻ってキャッシュされたと判断するまで待ち（先読みによって要求データが再生データ格納用メモリ領域に読み出されるのを待ち）、ステップ８１で当該データを転送して記憶（格納）する。
一方、ステップ８２でホストコンピュータからのデータ再生要求終了と判断したら、図１５のステップ６２へ戻って再び記録用リング設定を行い、ステップ６３の判断でデータ記録要求を待つ。
ところで、この情報記録装置ではホストコンピュータ１２から再生要求を受ける以前に要求されたデータを光ディスクへ記録せずに再生処理を行う場合がある。
【００９０】
つまり、光ディスクへ記録を行う前のデータに対して再生要求を受けた場合は、光ディスク上のデータを再生するのではなく、キャッシュメモリ８内に存在する記録前のデータをホストコンピュータ１２に報告する必要がある。
すなわち、ステップ７７においてホストコンピュータが要求したデータが記録データ格納用メモリ領域内に存在すると判断した場合は、ステップ８３で当該メモリ内のデータをホストコンピュータに転送し、ステップ８４で引き続き再生要求が終了か否かを判断し、データ再生要求があれば、ステップ７７へ戻って再びホストコンピュータが要求したデータが記録データ格納用メモリ領域内に存在するか否かを判断する。
ステップ８４の判断で再生要求終了でなければ、ステップ７７へ戻り、再生要求終了なら、図１５のステップ６２へ戻る。
ステップ８２の判断でデータ再生要求終了ならば、図１５のステップ６２へ戻って再び記録用リング設定を行い、ステップ６３の判断で記録要求を待つ。
【００９１】
次に、ホストコンピュータ１２が要求した再生処理を行った後、再び記録要求を受けた場合の処理について説明する。
コントローラ１０は、図１５に示すように、データ再生処理完了後、ステップ６１で記録データ格納用メモリ領域をリングバッファリング方式で使用するために、リング開始ポインタ（ＲＳ０）及びリング終了ポインタ（ＲＥ０）にそれぞれメモリアドレスＭ０及びＭ４を設定し、ステップ６３でホストコンピュータからデータ記録要求があるか否かを判断する。
ステップ６３でホストコンピュータから直前の記録要求アドレスと連続する記録要求が有った場合は、ステップ６４で記録データ格納用メモリ領域内に続けてデータを転送して記憶（格納）し（図１４の（ｃ）参照）、ステップ６５でデータ記録中か否かを判断し、ステップ６６で記録開始条件を満たしているか否かを判断する。
【００９２】
ステップ６６の判断で記録開始条件を満たしていない場合、ステップ６３へ戻って再びホストコンピュータからの記録要求があるか否かを判断する。
このように、ホストコンピュータ１２が連続的な記録と再生の要求を交互に要求した場合は、記録データ格納用メモリ領域２０へのデータ格納と光ディスクからのデータ再生を繰り返す。
すなわち、記録データと再生データをそれぞれ記録データ格納用メモリ領域と再生データ格納用メモリ領域に格納することにより、再生要求のたびにメモリ内に存在するデータを記録してしまう必要がなくなる。
したがって、タイムシフト再生において一定量の記録データが格納されてからデータ記録を開始することができ、安定したデータ記録を行うことが可能となる。
【００９３】
一方、ステップ６６の判断で記録開始条件を満たしている場合、例えば記録データ格納用メモリ領域のデータ占有量が所定の記録開始しきい値を超えた場合は、ステップ６７で光ディスクへの記録を開始する。
次に、ステップ６８でホストコンピュータから完了要求（記録終了要求）があるか否かを判断し、完了要求がなければ、ステップ６３へ戻って再びホストコンピュータからの記録要求があるか否かを判断する。
一方、ステップ６８の判断でホストコンピュータから完了要求（データ記録終了要求）があった場合は、データ記録終了処理へ移行する。
ここではまず、ステップ６９で記録データ格納用メモリ領域内に未記録（未書き込み）のデータが残っているか否かを判断し、未書き込みデータが残っていた場合、ステップ７０で記録開始前の待機状態であるか否かを判断し、待機状態であれば、ステップ７１でデータ記録を開始し、ステップ７２でデータ記録完了か否を判断して、データ記録完了を待つ。
【００９４】
ステップ７２の判断でデータ記録完了であれば、ステップ７３でステップ６１において分割したメモリ領域を復帰させて（元の状態に戻して）、この処理を終了する。
また、ステップ６３の判断においてデータ記録要求がなかった場合、さらにステップ７４の判断において再生要求がなかった場合は、ステップ６８で完了要求（データ記録終了要求）が有ったか否かを判断し、完了要求があった場合は、上述した記録終了処理へ移行する。
【００９５】
この情報記録装置によれば、データ記録の形態に応じてキャッシュメモリを分割して使用することにより、それぞれの記録に応じて必要なキャッシュメモリを擬似的に生成することができ、複雑な記録処理が要求される場合であっても効率的なデータ記録を行うことが可能になる。
また、複数のキャッシュメモリを必要としない記録処理では、キャッシュメモリの全領域を記録データ格納用に使用することができ、キャッシュメモリ内の記録データがなくなることによる記録中断を極力避けることが可能になる。
さらに、キャッシュメモリ内の複数の分割メモリ領域について、それぞれ最適なバッファリング方式を選択することができ、効率的に分割メモリ領域を使用することが可能になる。
【００９６】
また、複数の分割メモリ領域のうち、少なくとも記録データ格納用メモリ領域や再生データ格納用メモリ領域、あるいはベリファイ用メモリ領域に使用する分割メモリ領域はリングバッファリング方式で使用することができ、効率的なバッファリングが可能になる。
さらに、リングバッファリング方式で使用するメモリ領域について、当該メモリ領域を使用する際にリング開始ポインタ，リング終了ポインタをそれぞれ設定することにより、リング開始ポインタ，リング終了ポインタを複数箇所同時に設定できない従来装置であっても、キャッシュメモリを複数の領域に分割してそれぞれの分割領域をリングバッファとして使用することが可能になる。
【００９７】
また、１つのリングバッファが他のリングバッファを含むように設定される場合であっても、それぞれのリングバッファを使用する際にリング開始ポインタ，リング終了ポインタを設定するため、あるメモリ領域内に予期せぬリング開始ポインタ又はリング終了ポインタが存在して誤った位置にデータが格納される不具合を避けることが可能になる。
さらに、記録ブロックに満たない単位でデータ記録を要求された場合、所定の記録ブロックの読み出しを行う前にユーザデータ受信を行うことができ、記録要求に対する応答を早めることが可能になる。
また、端数データを記録データ格納用メモリ領域とは別の領域に格納することにより、比較的容易にメモリ管理を行うことが可能になる。
【００９８】
さらに、連続したデータ記録において書き終わりアドレスが記録ブロックの境界でない場合も、端数データを格納するメモリ領域とは別領域に記録ブロックを読み出すことができる。
また、端数データ格納用メモリ領域を必要最小限の容量にし、記録データ格納用メモリ領域の容量を確保することにより、メモリ内の記録データがなくなることによる記録中断を極力避けることが可能になる。
さらに、記録データと交替先パケットのデータを、それぞれ記録データ格納用メモリ領域と交替先データ格納用メモリ領域に格納することにより、セクタ単位での交替処理中もメモリ内の記録データを保持しておくことができる。
【００９９】
したがって、当該交替処理に引き続いて行われるベリファイ処理で再度欠陥が検出された場合も欠陥領域に記録したデータを所定の交替領域に再度記録することが可能になる。
また、交替先データ格納用メモリ領域を必要最小限の容量にし、記録データ格納用メモリ領域の容量を確保することにより、ベリファイ処理による記録の中断を極力減らすことができ、データ記録のパフォーマンスを維持することが可能になる。
【産業上の利用可能性】
【０１００】
この発明による情報記録装置と情報記録方法とプログラムは、デスクトップパソコン，ノートブックパソコン等のパーソナルコンピュータにおいても適用することができる。
【図面の簡単な説明】
【０１０１】
【図１】この発明の一実施形態である情報記録装置の構成を示すブロック図である。
【図２】図１に示す情報記録装置におけるキャッシュメモリのメモリ分割処理を示すフローチャート図である。
【図３】図１に示すコントローラ１０による上記の要領で分割されたメモリ領域のレイアウトを示す図である。
【図４】図１に示すコントローラ１０による記録ブロック単位に満たないデータ記録を行う場合のメモリ分割とデータ格納の例を示す説明図である。
【０１０２】
【図５】同じく図１に示すコントローラ１０による記録ブロック単位に満たないデータ記録を行う場合のメモリ分割とデータ格納の例を示す説明図である。
【図６】また同じく図１に示すコントローラ１０による記録ブロック単位に満たないデータ記録を行う場合のメモリ分割とデータ格納の例を示す説明図である。
【図７】図１に示すコントローラ１０によるＤＶＤ＋ＲＷディスクへのデータ記録動作を示すフローチャート図である。
【０１０３】
【図８】図７の続きの処理を示すフローチャート図である。
【図９】図１に示すコントローラ１０によるベリファイ処理及び交替処理を伴うデータ記録を行う場合のメモリ分割とデータ格納の例を示す説明図である。
【図１０】図９の続きの処理を示すフローチャート図である。
【図１１】図１に示すコントローラ１０によるＣＤ−ＭＲＷディスクへのデータ記録動作を示すフローチャート図である。
【０１０４】
【図１２】図１１の続きの処理を示すフローチャート図である。
【図１３】従来装置におけるＤＶＤ＋ＲＷディスクにおいてタイムシフト再生を行う場合のメモリ分割とデータ格納の例を示す説明図である。
【図１４】図１に示すコントローラ１０によるＤＶＤ＋ＲＷディスクにおいてタイムシフト再生を行う場合のメモリ分割とデータ格納の例を示す説明図である。
【図１５】図１に示すコントローラ１０によるタイムシフト再生動作を示すフローチャート図である。
【図１６】図１５の続きの処理を示すフローチャート図である。
【符号の説明】
【０１０５】
１：モータ    ２：光ピックアップ    ３：粗動モータ    ４：回転制御系部    ５：粗動モータ制御系部    ６：光ピックアップ制御系部    ７：信号処理系部    ８：キャッシュメモリ    ９：外部インタフェース    １０：コントローラ    １１：光ディスク    １２：ホストコンピュータ    ２０：記録データ格納用メモリ領域    ２１：端数データ格納用メモリ領域    ２２：ベリファイ用メモリ領域（交替先データ格納用メモリ）    ２３：再生データ格納用メモリ領域
【図１】
2005129168.tif 000003
【図２】
2005129168.tif 000004
【図３】
2005129168.tif 000005
【図４】
2005129168.tif 000006
【図５】
2005129168.tif 000007
【図６】
2005129168.tif 000008
【図７】
2005129168.tif 000009
【図８】
2005129168.tif 000010
【図９】
2005129168.tif 000011
【図１０】
2005129168.tif 000012
【図１１】
2005129168.tif 000013
【図１２】
2005129168.tif 000014
【図１３】
2005129168.tif 000015
【図１４】
2005129168.tif 000016
【図１５】
2005129168.tif 000017
【図１６】
2005129168.tif 000018