図1は、本発明の記録媒体管理方法を応用したミニディスク装置の一実施例の外観構成を示している。ディスクカートリッジ1aには、ミニディスク1(図2)が内部に収容されており、このカートリッジ1aは、挿入口42から本体41に対して装填することができるようになされている。本体41の右側下方には、電源釦19aとイジェクト釦19bなどを含む操作入力部19が設けられている。電源釦19aは、電源をオンまたはオフするとき操作され、イジェクト釦19bは、カートリッジ1aをイジェクトするとき操作される。また、本体41の上面中央部には、表示部18が配置されている。本体41は、SCSIバス30を介してホストCPU31(図2)に接続されている。
図2は、本体41の内部構成を示している。同図において、例えば複数の楽曲(オーディオデータ)とコンピュータデータの両方、またはコンピュータデータのみが記録されているミニディスク(光磁気ディスク)1は、スピンドルモータ2により回転駆動される。光学ヘッド3は、ミニディスク1に対して記録/再生時にレーザ光を照射する。即ち、記録時には、記録トラックをキュリー温度まで加熱するための高レベルのレーザ光が出力され、また再生時には、磁気カー効果により反射光からデータを検出するための比較的低レベルのレーザ光が出力される。
このため、光学ヘッド3は、レーザ光を出力するレーザダイオード、偏光ビームスプリッタ、対物レンズ等からなる光学系、および反射光を検出するためのディテクタを有している。このうち、対物レンズ3aは、2軸機構4によって、ディスク半径方向(トラッキング方向)およびディスクに接離する方向(フォーカス方向)に変位可能に保持されており、また、光学ヘッド3の全体は、スレッド機構5によりディスク半径方向に移動可能とされている。
また、磁気ヘッド6は、供給されたデータによって変調された磁界をミニディスク1に印加するように、ミニディスク1を挟んで光学ヘッド3と対向する位置に配置されている。
再生動作によって、光学ヘッド3によりミニディスク1から検出された情報はRFアンプ7に供給される。RFアンプ7は、供給された情報の演算処理により、再生RF信号、トラッキングエラー信号、フォーカスエラー信号、ATIP情報(ミニディスク1にプリグルーブ(ウォブリンググルーブ)として記録されている絶対時間情報)、アドレス情報、サブコード情報、フォーカスモニタ信号等を抽出する。
そして、抽出された再生RF信号はエンコーダ/デコーダ部8に供給される。また、トラッキングエラー信号、フォーカスエラー信号は、サーボ回路9に供給され、アドレス情報はアドレスデコーダ10に供給される。さらに、ATIP情報、フォーカスモニタ信号は、例えばマイクロコンピュータ(CPU)によって構成されるシステムコントローラ11に供給される。
サーボ回路9は、RFアンプ7より供給されたトラッキングエラー信号、フォーカスエラー信号、システムコントローラ11からのトラックジャンプ指令、シーク指令、回転速度検出情報等により各種サーボ駆動信号を発生させ、2軸機構4およびスレッド機構5を制御して、フォーカスおよびトラッキング制御を行わせ、またスピンドルモータ2を一定角速度(CAV)または一定線速度(CLV)に制御する。
再生RF信号は、エンコーダ/デコーダ部8でEFM復調され、さらにCIRC等のデコード処理がなされた後、メモリコントローラ12によって一旦バッファRAM13に書き込まれる。尚、光学ヘッド3によるミニディスク1からのデータの読み取り、および光学ヘッド3からバッファRAM13までの再生データの転送は、1.41Mbit/secの転送レートで行われる。
バッファRAM13に書き込まれたデータは、SCSIインタフェース14を介してホストCPU31に供給される。
また、アドレスデコーダ10から出力されるアドレス情報は、エンコーダ/デコーダ部8を介してシステムコントローラ11に供給され、各種の制御動作に用いられる。
さらに、記録/再生動作のビットクロックを発生させるPLL回路のロック検出信号、および再生データのフレーム同期信号の欠落状態のモニタ信号も、システムコントローラ11に供給される。
ミニディスク1に対して記録動作が実行される際には、記録データが、ホストCPU31よりSCSIインタフェース14を介してメモリコントローラ12に供給される。そして、メモリコントローラ12によって一旦バッファRAM13に書き込まれ、また所定のタイミングで読み出されて、エンコーダ/デコーダ部8に送られる。そして、エンコーダ/デコーダ部8でCIRCエンコード、EFM変調等のエンコード処理が施された後、磁気ヘッド駆動回路15に供給される。
磁気ヘッド駆動回路15は、エンコード処理された記録データに応じて、磁気ヘッド6に磁気ヘッド駆動信号を供給する。つまり、ミニディスク1に対して磁気ヘッド6によるNまたはSの磁界印加を実行させる。また、このとき、システムコントローラ11は、光学ヘッド3に対して、記録レベルのレーザ光を出力するように制御信号を供給する。
例えば、液晶ディスプレイによって構成される表示部18には、システムコントローラ11からの指令に対応して、所定の文字等が表示される。操作入力部19は、上述した電源釦19a、イジェクト釦19bの他、再生キー、停止キー、AMSキー、サーチキー等を有し、その操作に対応する信号をシステムコントローラ11に入力する。
RAM(以下、TOCメモリという)16は、ミニディスク1におけるTOC情報を保持する。ミニディスク1が装填された時点、あるいは記録または再生動作の直前において、システムコントローラ11は、スピンドルモータ2および光学ヘッド3を駆動させ、ミニディスク1の例えば最内周側に設定されているTOC領域のデータを抽出させる。そして、RFアンプ7、エンコーダ/デコーダ部8を介してシステムコントローラ11に供給されたTOC情報は、TOCメモリ16に蓄えられ、以後、そのミニディスク1に対する記録/再生動作の制御に用いられる。メモリ17は、後述するFAT(File Allocation Table)情報、またはビットマップを記憶する。
ホストCPU31は、コンピュータデータの送受信の制御だけでなく、FAT情報またはビットマップの送受信や更新を制御する。尚、メモリ17は、本体41側に設けることもできる。
書き込み可能なミニディスク1にはまた、一連の楽曲を、1または複数に分割したセグメント(パーツ)として離散的に(勿論、連続的でもよいが)記録/再生できるようにするためのセグメント管理データが記録されている。つまり記録データ領域の管理のために、データの記録や消去に応じて内容が書き換えられるユーザTOC(以下、U−TOCという)が、例えば図3に示すようなデータ構造で記録されている。
このU−TOCは、データ領域中の、例えば4バイト×587の領域に記録され、その領域には、先頭位置に、オール0ビットまたはオール1ビットの1バイトデータよりなる同期パターンを有するヘッダが設けられている。
また、所定アドレス位置に、このミニディスク1に記録されている最初の楽曲の曲番(First TNO)、最後の楽曲の曲番(Last TNO)、セクタ使用状況、ディスクID等のデータが記録される。さらに、記録されている各楽曲等を後述する管理テーブルに対応させる各種の対応テーブル指示データ(P-DFA〜P-TNO255)を記録する領域が用意されている。
一方、管理テーブルとして、番号(01h)〜(FFh)までの255個のパーツテーブルが設けられ、それぞれのパーツテーブルには、あるセグメントについて起点となるスタートアドレス、終端となるエンドアドレス、そのセグメント(トラック)のモード情報、およびそのセグメントが他のセグメントへ続いて連結される場合は、その連結されるセグメントのスタートアドレスおよびエンドアドレスが記録されているパーツテーブルを示すリンク情報が記録できるようになされている。
トラックのモード情報とは、そのトラックが、例えばオーバライト禁止やデータ複写禁止に設定されているのか否かの情報、オーディオ情報、コンピュータ情報などの種類を表す情報、モノラル/ステレオの種別を示す情報などである。リンク情報は、例えば各パーツテーブルに与えられた番号(01h)〜(FFh)によって、連結すべきパーツテーブルを指定している。
つまり管理テーブルにおいては、1つのパーツテーブルが1つのセグメントを表現しており、例えば3つのセグメントが連結されて構成される楽曲については、リンク情報によって連結される3つのパーツテーブルによって、そのセグメント位置の管理がなされる。尚、このため、パーツテーブルの番号(01h)〜(FFh)は、そのままセグメント(パーツ)番号とすることができる。
管理テーブルにおける(01h)〜(FFh)までの各パーツテーブルは、対応テーブル指示データ(P-DFA〜P-TNO255)によって、そのセグメントの内容が 示される。
P−DFAは、ミニディスク1上の欠陥領域を示しており、傷などによる欠陥領域となるトラック部分(=セグメント)が示された1つのパーツテーブル、または複数のパーツテーブル内の先頭のパーツテーブルを指定している。つまり、欠陥セグメントが存在する場合、対応テーブル指示データP−DFAに、(01h)〜(FFh)のいずれかが記録されており、それに対応するパーツテーブルには、欠陥セグメントがスタートおよびエンドアドレスによって示されている。また、他にも欠陥セグメントが存在する場合は、そのパーツテーブルにおけるリンク情報として、他のパーツテーブルが指定され、そのパーツテーブルにも欠陥セグメントが示されている。そして、そのセグメントが最後の欠陥セグメントである場合は、リンク情報は、例えば(00h)とされ、それ以降にセグメントがリンクされていないことが表される。
P−EMPTYは、管理テーブルにおける1または複数の未使用のパーツテーブルの先頭のパーツテーブルを示すものであり、未使用のパーツテーブルが存在する場合は、対応テーブル指示データP−EMPTYとして、(01h)〜(FFh)のいずれかが記録される。未使用のパーツテーブルが複数存在する場合は、対応テーブル指示データP−EMPTYによって指定されたパーツテーブルから、リンク情報によって順次パーツテーブルが指定されていき、全ての未使用のパーツテーブルが管理テーブル上で連結(リンク)される。
例えば、全く記録がなされておらず、欠陥もない光磁気ディスクであれば、パーツテーブルは全て使用されていないため、例えば対応テーブル指示データP−EMPTYによってパーツテーブル(01h)が指定され、また、パーツテーブル(01h)のリンク情報としてパーツテーブル(02h)が指定され、パーツテーブル(02h)のリンク情報としてパーツテーブル(03h)が指定され、というように、パーツテーブル(FFh)まで連結される。この場合、パーツテーブル(FFh)のリンク情報は、それ以降に連結がないことを示す(00h)とされる。
P−FRAは、ミニディスク1上のデータの未記録領域(消去領域を含む)を示しており、未記録領域となるトラック部分(=セグメント)が示された、1または複数のパーツテーブル内の先頭のパーツテーブルを指定している。つまり、未記録領域が存在する場合、対応テーブル指示データP−FRAに、(01h)〜(FFh)のいずれかが記録されており、それに対応するパーツテーブルには、未記録領域であるセグメントが、スタートおよびエンドアドレスによって示されている。また、このようなセグメントが複数個ある場合、つまりパーツテーブルが複数個ある場合は、リンク情報により、リンク情報が(00h)となるパーツテーブルまで順次指定されている。
図4に、未記録領域となるセグメントのパーツテーブルによる管理状態を模式的に示す。これは、スタートアドレスとエンドアドレスが、それぞれ、(S03h,E03h),(S18h,E18h),(S1Fh,E1Fh),(S2Bh,E2Bh),(SE3h,EE3h)で表されるセグメントが未記録領域とされているとき、この状態が対応テーブル指示データP−FRAに引き続き、パーツテーブル(03h),(18h),(1Fh),(2Bh),(E3h)のリンクによって表現されている状態を示している。尚、上記した欠陥領域や、未使用パーツテーブルの管理形態も、これと同様となる。
P−TNO1〜P−TNO255は、ミニディスク1上に記録された、それぞれの楽曲(トラック)について示しており、例えば対応テーブル指示データP−TNO1では、1曲目のデータが記録された、1または複数のセグメントのうちの時間的に先頭となるセグメントが示されたパーツテーブルを指定している。
例えば、1曲目とされた楽曲がディスク上でトラックが分断されずに(つまり1つのセグメントで)記録されている場合は、その1曲目の記録領域は、対応テーブル指示データP−TNO1で示されるパーツテーブルにおけるスタートおよびエンドアドレスとして記録されている。
また、例えば2曲目とされた楽曲がディスク上で複数のセグメントに離散的に記録されている場合は、その楽曲の位置を示すため、各セグメントが時間的な順序に従って指定(リンク)される。つまり、対応テーブル指示データP−TNO2に指定されたパーツテーブルから、さらにリンク情報によって他のパーツテーブルが順次時間的な順序に従って指定されて、リンク情報が(00h)となるパーツテーブルまで連結される(上記、図4と同様の形態)。
このように、例えば2曲目を構成するデータが記録された全セグメントが順次指定、記憶されていることにより、このU−TOCデータを用いて、2曲目の再生時や、その2曲目の領域へのオーバライトを行う際に、光学ヘッド3および磁気ヘッド6をアクセスさせ、離散的なセグメントから連続的な音楽情報を取り出したり、記録エリアを効率使用した記録が可能になる。
このように、ミニディスク1に記録されているU−TOCデータが読み出され、TOCメモリ16に記憶される。そして、TOCメモリ16に読み込んだU−TOCデータを用いて、ディスク上の記録領域の管理を行って記録再生動作を制御することができる。
以上のU−TOCデータは、通常の楽曲を記録するミニディスクにおいても同様に記録されるものである。そして、本実施例のミニディスクにおいては、オーディオデータ(楽曲)以外に、例えばコンピュータデータを記録することができるように、LOFAT(Location of FAT)が16ビットのデータとして記録されるようになされている。このLOFATについては後述する。
図5は、U−TOCの管理テーブル(パーツテーブル)と、ミニディスク1のデータ記録領域のクラスタとの関係を模式的に表している。この実施例は、ミニディスク1上におけるデータの未記録領域を表している。未記録領域の先頭クラスタを示すパーツテーブル番号は、対応テーブル指示データP−FRAに(01h)として規定されている。即ち、データの未記録領域としての先頭のセグメントの位置が、パーツテーブル(01h)に記述されていることになる。
そこで、この番号(01h)のパーツテーブルを参照すると、そのスタートアドレスはクラスタ9とされ、エンドアドレスはクラスタ12とされている。このことから、データ記録領域のクラスタ9からクラスタ12までが、連続して未記録領域とされていることがわかる。そして、この番号(01h)のパーツテーブルには、リンク情報として、(0Ah)が記述されている。このことは、クラスタ9からクラスタ12までのセグメントに続く未記録領域のセグメントに関するデータが、番号(0Ah)のパーツテーブルに記述されていることを表している。
そこで、番号(0Ah)のパーツテーブルを見ると、そのスタートアドレスはクラスタ29とされ、エンドアドレスはクラスタ30とされている。即ち、クラスタ29からクラスタ30までのセグメントが、データ記録領域中に未記録領域として存在していることがわかる。
また、この番号(0Ah)のリンク情報としては、(04h)が記述されている。そこで、この(04h)の番号のパーツテーブルを見ると、そのスタートアドレスはクラスタ104とされ、エンドアドレスはクラスタ105とされている。即ち、クラスタ29とクラスタ30に続く第3のセグメントとして、クラスタ104とクラスタ105からなる未記録領域が存在することがわかる。
さらに、この(04h)のパーツテーブルには、(07h)のリンク情報が記述されている。そこで、(07h)のパーツテーブルを見ると、そのスタートアドレスはクラスタ82とされ、エンドアドレスはクラスタ87とされている。即ち、クラスタ82からクラスタ87までの第4番目のセグメントが未記録領域とされている。そして、この(07h)のパーツテーブルのリンク情報には、(00h)が記述されているため、この第4番目のセグメントが未記録領域の最後のセグメントであることがわかる。
上述したように、データ記録領域の各クラスタには、基本的にはデジタルオーディオデータが記録されるのであるが、その所定の範囲(クラスタ)にデジタルオーディオデータではなく、コンピュータデータを記録する場合、例えば図6に示すように、まずコンピュータデータを記録する範囲がホストCPU31によりクラスタを単位として指定される。
図6の実施例においては、クラスタ16からクラスタ27までの12クラスタよりなるセグメントが、コンピュータデータを記録するためのセグメントとして指定されている。そして、このセグメントは5番目のセグメントなので、上述したU−TOCの対応テーブル指示データP−TNO5には、コンピュータデータ記録用の先頭のセグメントに関するパーツテーブルの番号として(02h)が記述される。そこで、この(02h)のパーツテーブルを見ると、スタートアドレスとしてクラスタ16が記述され、エンドアドレスとしてクラスタ27が記述されている。そして、そのリンク情報としては、(00h)が記述されているため、クラスタ16からクラスタ27までの12クラスタからなる1つのセグメントだけが、コンピュータデータ記録用として用意されていることがわかる。
このように、管理テーブル(パーツテーブル)にコンピュータデータを記録する領域が指定されると、図7に示すような、コンピュータデータを記録するファイルを管理するテーブルとしてのFATが、ミニディスク1上のデータ記録領域の所定のトラックに形成される。例えば図6に示すように、クラスタ16からクラスタ27までの、コンピュータデータ記録用の領域の先頭のクラスタ16にFATを記録する(勿論、FATは、例えばU−TOC領域に記録することもできる)。また、このとき、FATの記録位置がわかるように、LOFATに(02h)が記述される。
FATの1つのブロックは、2バイトにより構成され、各ブロックは、データ記録領域の所定の大きさの領域(例えばクラスタ)に対応している。即ち、図6に示した実施例においては、データ記録領域中のクラスタ16乃至27までのセグメントが、コンピュータデータ記録領域として指定されたため、FATにおいては、このクラスタ16乃至27に対応するブロック16乃至27に、使用可能未使用ブロックであることを示すデータ(FFEh)が記述される。但し、クラスタ16にFATが記録されたときは、このクラスタに対応するFATのブロック16に、(FFDh)が記録される。これは、そこ(対応するクラスタ16)にデータが記録されており、そのデータは、そこ(対応するクラスタ16)で終了していることを表している。
データ記録領域のクラスタ16乃至27以外の各クラスタは、コンピュータデータを記録する領域として指定されていないため、換言すれば、コンピュータデータを記録する領域として使用することが禁止されているため、使用禁止ブロックであることを表すデータ(FFFh)が記述される。
図8は、このようにして確保したクラスタ16乃至27の所定の範囲に、コンピュータデータを記録した状態におけるFATを示している。この実施例においては、クラスタ17に対応するブロック17には、ブロック18の番号が記述され、ブロック18には、ブロック19の番号が記述され、ブロック19にはブロック20の番号が記述され、さらにブロック20には、セグメントの最後のブロックであることを表すデータ(FFDh)が記述されている。従って、クラスタ17からクラスタ20までの4つのクラスタからなるセグメントに、一連のコンピュータデータが記録されていることがわかる。
さらに、ブロック21にはブロック番号22が、ブロック22にはブロック番号23が、ブロック23にはブロック番号24が、ブロック24にはブロック番号25が、そしてブロック25には(FFDh)が記述されている。即ち、クラスタ21からクラスタ25までの5個のクラスタに、一連のコンピュータデータが記録されていることになる。
尚、ブロック26とブロック27のデータは、(FFEh)のままであるため、クラスタ26とクラスタ27は、まだコンピュータデータが記録されていない未使用領域のままとされていることになる。
図9は、コンピュータデータを記録再生するためのミニディスク装置の本体41にミニディスク1(カートリッジ1a)を装着し、初期化を指令したとき、ホストCPU31が行う処理の例を示している。最初にステップS1において、ミニディスク1のU−TOCのLOFATに所定の管理テーブル上のパーツテーブルを示す番号が記述されているか否かが判定される。LOFATに所定のパーツテーブルの番号が記述されている場合、既にコンピュータデータを記録するための初期化が完了している(記録領域が確保されている)ため、初期化処理は終了される。
ステップS1において、LOFATに所定の番号が記述されていないと判定された場合、ステップS2に進み、U−TOCの中から空き領域(空きパーツテーブル)が確保される(データトラックが確保される)。例えば図6に示すように、データ記録領域中の空き領域(空き領域か否かは、U−TOCのP−TNO1〜P−TNO255からわかる)の中から、所定の12クラスタ(図6においては、クラスタ16からクラスタ27までの12クラスタ)が、コンピュータデータ記録用トラックとして確保される。そして、このセグメントがP−TNO5に登録され、そのスタートアドレスとエンドアドレスが、パーツテーブル(02h)に登録される。
次にステップS3に進み、ステップS2で確保したデータトラックの領域内の(12クラスタ中の)任意のクラスタ(例えば、先頭のクラスタ16)に、図7に示したようなFATが書き込まれる。そして、FATにおいては、図7に示すように、FATの書き込まれたクラスタ16に対応するブロック16に、使用ブロックであり、かつ、リンクするブロックが存在しないことを表すデータ(FFDh)が記録される。FATが記録されていないクラスタ17乃至27に対応するFATのブロック17乃至27には、使用可能未使用ブロックとしてデータ(FFEh)が記録される。さらに、それ以外のクラスタに対応するFATのブロックには、使用禁止ブロックとして、データ(FFFh)が記録される。
次にステップS4に進み、U−TOCのLOFATに、FATを記録したクラスタに対応するパーツテーブルの番号を記述する。
尚、FATデータは、一旦メモリ17に記憶され、所定のタイミングでミニディスク1上のFATに記録される。
次に図10は、ミニディスク1にコンピュータデータを記録する場合のホストCPU31が行う処理例について表している。最初にステップS11において、ホストCPU31は、ミニディスク1に記録されているU−TOCのLOFATが示すFAT(図6のデータ記録領域のクラスタ16のFAT)を読み込む。このデータは、メモリ17に一旦記憶され、ホストCPU31は、このデータを、所定のタイミングで読み込むことになる。
次にステップS12に進み、いま読み込んだFATのエントリに使用可能な未使用ブロックがあるか否かが判定される。初めてコンピュータデータを記録する場合、使用可能未使用ブロックが存在するため、ステップS12からステップS15に進む。ステップS15では、未使用ブロックから1つのブロック(例えば、図8のFATのブロック17)を選択し、このブロックを、いまデータを書き込もうとしているファイルに対応させる。そして、そのブロックが対応するクラスタ(例えば、図6のデータ記録領域のクラスタ17)に、実際にデータが書き込まれる。
次にステップS16に進み、いま割り当てられたブロックの前に、そのファイルに割り当てたブロックが存在するか否かが判定される。初めての記録である場合、以前に割り当てたブロックは存在しないため、ステップS16からステップS18に進む。ステップS18では、全てのデータの書込が終了したか否かが判定され、終了していなければ、ステップS12に戻る。
以上のような動作が繰り返される。2回目以降の処理においては、ステップS16において、以前にファイルに割り当てたブロックが存在すると判定されるため、この場合、ステップS16からステップS17に進み、前のブロックのFATのエントリに、現在のブロック番号を登録する。即ち、図8を参照して説明したように、例えばブロック17に、現在のブロック番号18を登録する。そして、同様に、ブロック18にブロック番号19が、ブロック19にブロック番号20が、それぞれ記録される。
また、以上の動作を繰り返すうちに、確保した領域が一杯になり、ステップS12においてFATのエントリに使用可能な未使用ブロックが存在しないと判定された場合においては、即ち、コンピュータデータを記録する空き領域がなくなったときは、ステップS13に進み、U−TOCの空き領域を確保し、その空き領域をコンピュータデータを記録するデータトラックとして追加する。そして、ステップS14に進み、データトラック追加した領域のブロックを使用可能未使用ブロックとしてFATのエントリに登録する。即ち、図9の初期化処理におけるステップS2,S3と同様の処理を行い、新たに12クラスタのデータ記録領域を確保(追加)する。但し、FATは既に作成されているため、新たに作成せず、そのデータのみを更新する。
このステップS13,S14の処理を行うことにより、ミニディスク1上の空き領域が随時コンピュータデータを記録するためのデータトラックとして追加される。従って、パーティションとして予め所定の範囲を区分する場合のように、ディスクに空き領域が存在するにも拘らず、コンピュータデータを記録することができなくなるようなことが防止される。
ステップS18において、全てのデータの書込が終了したと判定された場合においては、ステップS19に進み、現在のブロックのFATエントリを最終ブロックとして登録し、FATを更新する。即ち、図8のFATのブロック20における場合のように、当該ブロックにデータ(FFDh)を記録する。
尚、以上においては、LOFATにパーツテーブルの番号(01h)〜(FFh)を記述するようにしたが、LOFATは16ビット確保してあるため、データ記録領域中のアドレスを直接記録させるようにすることもできる。
例えば、いま、ミニディスク1の領域全体のクラスタ数を2200とし、1クラスタの容量を64kバイトとすると、ミニディスク1全体の容量は、140Mバイト(=2200×64kバイト)となる。
FATの1個のブロックに、記録データ領域の8kバイトの範囲を対応させると、FATのブロックの個数(エントリ数)は、17,600(=140Mバイト/8kバイト)個必要となる。1つのエントリ(ブロック)を2バイト(16ビット)で形成すると、FATの容量としては、約35kバイト(=17,600×2バイト)必要となる。結局、FATの1ブロックに、データ記録領域における8kバイト(1クラスタである64kバイトの1/8の範囲)を対応させると、ディスク1枚の全体の範囲を管理するのに、35kバイトの容量のFATが必要となる。
FATの1ブロックの割当量が、データ記録の単位となる。上述したように、この割当量を64kバイト(1クラスタ)とすると、通常のミニディスクと同様の書込が可能となる。しかしながら、コンピュータデータを効率的に転送することを考えると、64kバイトより小さい8kバイト程度にするのが好ましい。また、このようにすると、クラスタより小さい単位でデータの記録が可能になる。
但し、8kバイト単位でデータを記録する場合、一旦ミニディスク1から、その8kバイトのブロックを含む1クラスタ分のデータが読み出され、RAM13に記憶される。次に、RAM13に記憶された1クラスタ分のデータのうち、その8kバイトに相当するデータが新たに記憶される。そして、ミニディスク1には、その1クラスタ分のデータが書き込まれる。即ち、実質的に、その8kバイトのみの記録が行われることになる。また、再生時においては、ホストCPU31は、1セクタ単位でデータを読み取る。
このようにして、コンピュータデータ(勿論、その他のデータでもよい)がオーディオデータとともに混在するように記録されたミニディスクを、通常の楽曲用のミニディスク装置に装着した場合、コンピュータデータは再生不能であるが、オーディオデータは再生可能である。また、空き領域があれば、オーディオデータを追加記録することができる。
以上の実施例においては、FATを用いてデータトラックを管理するようにしたが、FATを用いないでデータトラックを管理する実施例について、次に説明する。
図11は、この実施例を実現する場合における書き込み可能なミニディスク1の記録フォーマットを表している。同図に示すように、最内周(図中、左側)から最外周(図中、右側)までのインフォメーションエリア(Information area)のうち、最内周側と最外周側に、それぞれリードインエリア(Lead−in area)とリードアウトエリア(Lead−out area)が設けられている。このリードインエリアとリードアウトエリアには、TOC(Table of Contents)データなどが必要に応じて記録される。これらの領域には、一般の使用者は情報を記録することができない。
インフォメーションエリアのうち、リードインエリアとリードアウトエリアを除くエリアが、レコーダブルエリア(Recordable area)とされ、そこに一般の使用者がデータを記録または再生することができるようになされている。レコーダブルエリアの最内周側には、UTOC(User TOC)エリアが設けられ、その外側にプログラムエリア(Program area)が設けられている。UTOCエリアには、上述したU−TOCデータが記録される。プログラムエリアには、オーディオデータやコンピュータで処理するデータ、その他のデータを記録することができるようになされている。
プログラムエリアにおいては、各データは離散的に記録される。図11の実施例においては、トラックTrk1にオーディオデータが記録されている。即ち、このトラックは、オーディオトラックとされている。このトラックTrk1は、2つのパーツ(Trk1−1,Trk1−2)から構成されている。パーツ(トラック)Trk1−1とTrk1−2は、ディスク上において離れた位置に形成されているが、例えば、そのデータを再生するとき、パーツTrk1−1の再生が終了したとき、光学ヘッド3は、パーツTrk1−2にシークし、そこを再生する。このため、再生データは、連続して得ることができる。
この実施例においては、この他、オーディオトラックTrk2−1とTrk4−1が、それぞれ1つのパーツで構成され、オーディオデータが記録されている。
さらに、この実施例においては、パーツTrk3−1乃至3−3から構成されるトラックTrk3が形成され、そこには、ホストCPU31により処理されるデータが記録されている。
EFM・CIRCエンコーダ/デコーダ8は、プログラムエリアの各トラックに対して、クラスタ(64キロバイト)を単位としてデータが記録再生されるように処理する。
データトラックは、ボリュームマネジメントエリア(Volume Management Area)とイクステントエリア(Extent Area)により構成されている。ボリュームマネジメントエリアは、プログラムエリアに最初に形成されたデータトラックの先頭に形成される。イクステントエリアは、それ以外の領域とされる。
ボリュームマネジメントエリアとイクステントエリアのデータの割当単位(Allocation Block)は単独の管理とされ、前者は、2キロバイトとされ、後者は、4キロバイト、8キロバイト、16キロバイト、32キロバイト、または64キロバイトのいずれかの値(例えば8キロバイト)とされる。
ボリュームマネジメントエリアは、図12に示すように、16個のクラスタより構成される。ボリュームマネジメントエリアの1クラスタ前には、必要に応じて、ブートクラスタ(Boot−Cluster)が配置される。
図13は、ボリュームマネジメントエリアのフォーマットを表している。ボリュームマネジメントエリアは、16クラスタから構成され、1クラスタは64キロバイトにより構成されるため、ボリュームマネジメントエリアには、2キロバイトのブロックが1024個形成されることになる。
最初の番号0のブロックには、ボリュームディスクリプタVD(Volume Descriptor)が記録される。このボリュームディスクリプタには、例えばルートディレクトリが記録されているブロックの番号(0乃至1023のいずれかの値(この実施例の場合、4))や、ボリュームスペースビットマップの位置情報等が記録される。
番号1のブロックには、ボリュームスペースビットマップ(Volume Space Bitmap(VSB))が配置される。このVSBには、ミニディスク1全体の使用状態を表すビットマップが記録される。このビットマップについては後述する。
番号2と番号3の合計4キロバイトのブロックには、マネージメントテーブル(Management Table(MT))が配置される。このMTには、ボリュームマネジメントエリアの使用状態が記録される。
図14は、番号2と番号3の2つのブロックにより構成されるマネージメントテーブルを模式的に表している。同図に示すように、0乃至1023の番号で示す4バイトの大きさの各ブロックは、図13における0乃至1023のブロックの番号で示す2キロバイトのブロックに対応している。図13において、番号0乃至3のブロックは、予め規格により定められているものであるため、図14のマネージメントテーブル上の対応する領域(ブロック)には、特にデータは記録されない(Reservedとされている)。
図13に示すように、番号4以降のブロックには、ディレクトリレコードブロック(Directory Records Block(DRB))またはイクステントレコードブロック(Extent Records Block(ERB))が配置されている。
このディレクトリレコードブロックDRBには、次のような情報(ディレクトリ管理情報とファイル管理情報)が記録される。
Directory (Name, Index to DRB, ID, Size, Date, etc.)
File(Name, Index to ER(Index to ERB, Offset of ER), Extent start Location, Number of Blocks, ID, Size, Date, etc.)
このディレクトリレコードブロックDRBのデータを記録するためのマネージメントテーブルのディレクトリレコードブロックエントリ(Directory Records Block Entry)は、図15または図16乃至図18に示すように構成される。
図15に示すフォーマットは、ディレクトリレコードブロックDRBが単独である場合におけるフォーマットを表している。この場合、4バイトのデータのうちの最初のビット31に0がセットされ、残りのビット30からビット0までの31ビットにIDが記録される。例えば、図14の番号4のブロックに対応するディレクトリレコードブロックエントリは、このフォーマットで構成されている。この実施例の場合、IDとして、00000002が記録されている。このIDはルートディレクトリを表している。
ディレクトリレコードブロックDRBが複数のブロックで構成される場合においては、最初のディレクトリレコードブロックエントリが図16に示すようなフォーマットで構成され、最後のエントリが図18に示すようなフォーマットで構成され、その間のエントリは、図17に示すようなフォーマットで構成される。
図16のフォーマットにおいては、最初の1バイトにF0が記録され、次の1バイトに、4バイトのIDのうちのMSB側の1バイトのIDが記録される。そして次の2バイトには、次のDRBへのインデックス(Index to Next DRB)が配置されている。
図17のエントリにおいては、最初の1バイトにFEが配置され、次の1バイトは未使用とされている。そして、残りの2バイトに次のDRBへのインデックスが配置されている。
また、図18のエントリにおいては、最初の1バイトにFFが配置され、残りの3バイトに、図16の2バイト目に記録した1バイトのMSBを除く、残りの3バイトのIDが記録されるようになされている。
図14の番号7、番号8または番号10で示すエントリが、この図16、図17または図18で示すフォーマットで規定されている。ブロック番号7に対応するエントリの最後の2バイトには0008が記録され、これは、関連するデータが記録されている次のDRBが、番号8で表されるディレクトリレコードブロックDRBであることを表している。また、番号8に対応するブロックのエントリの最後の2バイトにおいては、000A(16進)が記録されており、これは番号10(16進数のAに対応する10進法による値)のディレクトリレコードブロックが続いていることを表している。
そして、番号7の2番目のバイトに00が記録されており、番号10のブロックに対応するエントリに000005のIDが記録されているため、結局、この3つのブロックにより規定されるディレクトリのIDは、00000005であることが判る。
図19は、図14のマネージメントテーブルのイクステントレコードブロックエントリ(Extent Records Block Entry)のフォーマットを表している。このフォーマットにおいては、最初の1バイトに80が配置され、残りの2バイトは未使用とされ、最後の1バイトには、ユーズドカウント(Used Count)が配置されている。このユーズドカウントは、後述する図20のイクステントレコードブロック(Extent Records Block)の0乃至63の番号に対応するレコードのうち、使用済みのイクステントレコードの数を表すようになされている。
図14のマネージメントテーブルにおいては、番号5で表すブロックに対応するエントリが、図19で示すイクステントレコードブロックエントリのフォーマットで表されている。その一番最後の1バイトには、04の値が記録されている。これは、図20に示すイクステントレコードブロックの0乃至63の64個の番号で表されるイクステントレコードERのうち、使用済みのイクステントレコードの数が4(番号0,1,2,4の各イクステントレコードが使用済み)であることを表している。
図13に示したイクステントレコードブロックERBは、例えば図20に示すように構成されている。同図に示すように、2キロバイトのイクステントレコードブロックERBは、それぞれが、32バイトの、番号0から番号63で表される64個のイクステントレコードERにより構成される。
各イクステントレコードERは、最初の1バイトにFFFFが記録された4バイトのデータと、図21に示すイクステントレコードインデックス(Extent Record Index)が7個集められて構成されるか、あるいはまた、図22に示す4バイトのイクステントディスクリプタ(Extent Descriptor)が8個集められて構成されている。
図21に示すように、イクステントレコードインデックスの最初の2バイトには、ロジカルブロックオフセット(Logical Block Offset)が配置され、次の2バイトには、インデックストゥERB(Index to ERB)が配置され、最後の1バイトには、オフセットオブER(Offset of ER)が配置されている。
イクステントエリアにおいては、アロケーションブロックを割当の最小単位としてデータが記録される。ロジカルブロックオフセットは、インデックスによって示されるデータがファイル中で先頭からどの位のところに位置しているかを表している。また、インデックストゥERBは、10ビットの構成とされ、イクステントレコードブロックERBへのインデックスを、番号0乃至1023のいずれかの値により表すようになされている。また、オフセットオブERは、6ビットにより構成され、0乃至63のいずれかの番号により、図20に示すイクステントレコードブロックの64個のイクステントレコードのうちのいずれかを表している。
図22に示すように、イクステントディスクリプタのうち、最初の2バイトには、イクステントスタートロケーション(Extent Start Location)が配置され、残りの2バイトには、ナンバオブブロック(Number of Blocks)が配置されている。このイクステントスタートロケーションは、イクステントエリアに記録されているファイルのスタート位置を表している。また、ナンバオブブロックは、そのスタート位置よりスタートするファイルのブロックの数を表している。
図20において、番号1で表される32バイトのイクステントレコードは、インデックスを表している。最初の4バイトのうちの先頭の2バイトには、FFFFが記録されている。そして、この実施例の場合、次のイクステントレコードインデックスには、最初の2バイトにロジカルブロックオフセットとして、0000が配置され、インデックストゥERBとして5が、また、オフセットオブERとして2が、それぞれ記憶されている。
オフセットオブERが2であるということは、図20において、番号2で表されるイクステントレコードが存在することを示している。そして、そのロジカルブロックオフセットは、0000であるが、これは、番号2で表されるイクステントレコードに表されているファイルの最初のブロックの番号は、0000である(即ち、一番最初のブロックである)ことを表している。そして、番号2のイクステントレコードには、例えば、その先頭(図中、左側)に、データトラック上の絶対的な位置(イクステントスタートロケーション)で15番目のブロックに、1個のブロックが存在することが示されている。
尚、インデックストゥERBが5であるということは、その(図20に示す)イクステントレコードブロックの番号が5であることを示している。
次のオフセットオブERが4であるということは、番号が4で表されるイクステントレコードのデータが存在することを示している。そして、この場合、ロジカルブロックオフセットが000B(10進数で11)である。即ち、この実施例においては、番号2で表されるイクステントレコードのブロック数の合計が11(=1+1+2+1+1+1+3+1)となる。このため、番号4で表されるイクステントレコードに記録されているミニディスク1上の絶対的位置としてのイクステントスタートロケーションが053Cである位置には、第12個目(ブロック番号11)から始まるファイルが存在する。
尚、図20に示すように、1つのイクステントレコードインデックスにより、7つのイクステントレコードしか表すことができないが、イクステントレコードがそれ以上増えた場合においては、さらに他のイクステントレコードインデックスが生成され、複数のイクステントレコードインデックスをまとめるインデックスがさらに生成される。
図23は、イクステントレコードブロックに記録されているインデックスとイクステントレコードの関係を模式的に表している。同図に示すように、所定のディレクトリレコードブロックのディレクトリレコードから所定のイクステントレコードブロックERBのインデックスが指定される(Index to ER)。そして、指定したインデックスには、最大7個のインデックスが記録されている。
そして、各インデックスには、最大8個のファイルのスタート位置(イクステントスタートロケーション)と、そのファイルを構成するブロックの数(ナンバオブブロック)が記録されている。
この実施例においては、図7に示したようなFATは用いられない。このため、この実施例におけるU−TOCは、例えば図24に示すように構成される。図24を図3と比較して明らかなように、図24のU−TOCには、図3に示したLOFATが記録されないようになされている。U−TOCのその他のフォーマットは、図3に示した場合と同様である。
この実施例においては、FATに代えて、図25に示すようなビットマップが用いられる。このビットマップは、図13のVSBに記録されるものである。
この実施例においては、ビットマップの1エントリが2ビットにより構成される。各エントリは、図7に示したFATにおける場合と同様に、ミニディスク1上の所定の大きさのブロック(4キロバイト、8キロバイト、16キロバイト、32キロバイト、または64キロバイト)に対応している。従って、このエントリの数は、ミニディスク1の記録容量に対応する数だけ形成される。
ビットマップの2ビットの各エントリには、00,01,10または11のいずれかの2ビットのデータが記録される。00は、ミニディスク1上の対応するブロックが使用可能であり、かつ、未使用のブロックであることを表している。01は、ミニディスク1上の対応するブロックが、既にデータが記録されている使用済みのブロックであることを表している。10は、ミニディスク1上の対応するブロックが、何らかの欠陥を有しているブロックであることを表している。また、11は、ミニディスク1上の対応するブロックが、その使用を禁止されているブロックであることを表している。
このように、ビットマップには、図7と図8に示したFATとは異なり、FFDh、あるいは、リンクすべきブロックの番号といったようなリンク情報は、記録されないようになされている。これらのリンク情報は、上述したディレクトリ情報あるいはファイル情報(特にイクステントレコードER)により管理される。
図26は、この実施例において、コンピュータデータを記録再生するためのミニディスク装置の本体41にミニディスク1(カートリッジ1a)を装着し、初期化を指令したとき、ホストCPU31が行う処理の例を示している。最初にステップS31において、ミニディスク1に、データトラックが形成されているか否かが判定される。データトラックが形成されているか否かは、U−TOCのトラックモードから判別することができる。データトラックが存在する場合、既にコンピュータデータを記録するための初期化が完了している(記録領域が確保されている)ため、初期化処理は終了される。
ステップS31において、データトラックが形成されていないと判定された場合、ステップS32に進み、U−TOCの中から空き領域(空きパーツテーブル)が確保される(データトラックが確保される)。例えば、プログラムエリア中の空き領域(空き領域か否かは、U−TOCのP−TNO1〜P−TNO255から判る)の中から、所定の数のブロックが、コンピュータデータ記録用のデータトラックとして確保される。即ち、このパーツが、例えばP−TNO5に登録され、そのスタートアドレスとエンドアドレスが、パーツテーブルに登録される。さらに、パーツテーブルのトラックモードにコンピュータデータ記録用であることを示すデータが登録される。また、U−TOCのP−FRAが更新される。
上述したように、データトラックの先頭の16クラスタは、VMAとされ、それに続くイクステントエリアに実際のデータが記録される(図12)。このイクステントエリアの大きさを、例えば10クラスタ分確保すると、合計26クラスタ(=16+10)分の領域が、データトラックとされる。
次にステップS33に進み、ステップS32で確保したデータトラックの先頭の16クラスタにより構成されるVMA(図12)のVSB(図13)に、ビットマップが書き込まれる。そして、ビットマップにおいては、図25に示すように、データが書き込まれる。
即ち、VMAが書き込まれる16クラスタ分に対応するエントリには、使用済ブロックであることを表すデータ(01)が記録される。また、それに続く、イクステントエリア上の50クラスタ(本来のコンピュータデータを記録するための領域)に対応するビットマップのエントリには、使用可能未使用ブロックを意味するデータ(00)が記録される。さらに、それ以外のイクステントエリア上のブロックに対応するビットマップのエントリには、使用禁止ブロックを意味するデータ(11)が記録される。
尚、ビットマップデータをデータトラックの管理に用いる場合、ビットマップデータは、図2のメモリ17に記憶され、所定のタイミングでミニディスク1上のビットマップに記録される。
次に図27は、ミニディスク1にコンピュータデータを記録する場合のホストCPU31が行う処理例について表している。最初にステップS41において、ホストCPU31は、ミニディスク1に記録されているビットマップのデータを読み込む。
上述したように、ビットマップのデータを含むボリュームマネジメントエリアは、プログラムエリアに最初に形成されたデータトラックの先頭に形成されている。よって、U−TOCから、最初に形成されたデータトラックの先頭に対応するパーツテーブルのスタートアドレスを検出し、このスタートアドレスに基づいて、ボリュームディスクリプタを読み出し、そこに記録されたビットマップの位置情報基づいてビットマップを読み出すことにより、ホストCPU31にビットマップを読み込むことができる。このビットマップデータは、メモリ17に一旦記憶され、ホストCPU31は、このデータを所定のタイミングで読み込むことになる。
次にステップS42に進み、いま読み込んだビットマップに使用可能な未使用のエントリ(00のブロック)があるか否かが判定される。初めてコンピュータデータを記録する場合、使用可能未使用ブロックが存在するため、ステップS42からステップS45に進む。ステップS45では、未使用ブロックから1つのエントリ(例えば、図28のビットマップのエントリ80)を選択し、このエントリを、いまデータを書き込もうとしているファイルに対応させる。そして、そのエントリが対応するイクステントエリア上のブロックに、実際にデータが書き込まれる。
次にステップS46に進み、記録が行われたイクステントエリアのブロックに対応するビットマップのエントリに、使用領域を表すデータ(01)が記録される(図28)。さらにステップS47に進み、そのイクステントエリアのブロックをイクステントレコードER(図13、図20)に登録する。
次にステップS47からステップS48に進む。ステップS48では、全てのデータの書込が終了したか否かが判定され、終了していなければ、ステップS42に戻る。以上のような動作が繰り返される。
図28には、以上のようにして、ビットマップ上のエントリ80乃至89に対応するイクステントエリアのブロックにデータが記録された場合のビットマップの状態が表されている。
また、以上の動作を繰り返すうちに、確保した領域が一杯になり、ステップS42において、ビットマップに使用可能な未使用ブロックを示すエントリが存在しないと判定された場合においては、即ち、コンピュータデータを記録する空き領域がなくなったときは、ステップS43に進み、U−TOCの空き領域を確保し、その空き領域を、コンピュータデータを記録するデータトラックとして追加する。そしてステップS44に進み、データトラックの追加した領域のブロックを使用可能未使用ブロックとしてビットマップに登録する。即ち、図26の初期化処理におけるステップS32,S33と同様の処理を行い、新たに12ブロックのデータ記録領域を確保(追加)する。尚、このとき追加するブロックの数は、任意である。但し、ビットマップは既に作成されているため、新たに作成せず、そのデータのみを更新する。
ステップS48において、全てのデータの書込が終了したと判定された場合においては、処理を終了する。
尚、以上の各実施例において、FATまたはビットマップで管理する単位を1クラスタより小さい値にした場合、1つの単位に対してデータを記録するには、本体41は、一旦ミニディスク1からその単位を含む1クラスタ分のデータを読み出し、RAM13に記憶する。次に、その単位に相当するデータが、ホストCPU31から転送され、新たにRAM13に記憶される。そして、RAM13から読み出された1クラスタ分のデータがミニディスク1に書き込まれる。即ち、実質的に、1クラスタより小さい単位での記録が可能となる。一方、再生は、セクタ単位で行われる。
尚、上記実施例においては、書き込み可能なミニディスク1についての記録データの管理を説明したが、上述の実施例の記録データ管理は、読み出し専用のミニディスク1についても適用することができる。但し、読み出し専用のミニディスク1については、U−TOCエリアは設けられない。よって、上述の実施例のU−TOCとほぼ同様の構成のテーブルをTOCエリアに設定し、プログラムエリアに上述の実施例と同様のVMAを設定することにより、上述の記録データ管理を実現する。