JP2007018528A - メモリ装置、ファイル管理方法及び記録再生装置 - Google Patents

メモリ装置、ファイル管理方法及び記録再生装置 Download PDF

Info

Publication number
JP2007018528A
JP2007018528A JP2006239414A JP2006239414A JP2007018528A JP 2007018528 A JP2007018528 A JP 2007018528A JP 2006239414 A JP2006239414 A JP 2006239414A JP 2006239414 A JP2006239414 A JP 2006239414A JP 2007018528 A JP2007018528 A JP 2007018528A
Authority
JP
Japan
Prior art keywords
data
file
recorded
entry
recording
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
JP2006239414A
Other languages
English (en)
Inventor
Kaoru Suzuki
馨 鈴木
Manabu Onodera
学 小野寺
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP2006239414A priority Critical patent/JP2007018528A/ja
Publication of JP2007018528A publication Critical patent/JP2007018528A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】データ格納媒体としてライトワンス型メモリを用いても、複数回書き込みが可能なメモリを用いたメモリ装置との間で互換性を可能とする。
【解決手段】データをビット単位で1回だけ書き込み可能な記録媒体であって、ファイルの実体データが記録される実体データ記録領域と、記録されているファイルの管理データ及び実体データの更新データが記録される予備領域を有する記録媒体を備え、予備領域には、管理データが、実体データ記録領域のデータ記録方向とは逆方向に記録されていく。
【選択図】図11

Description

本発明は、データをビット単位で1回だけ書き込み可能な記録媒体を有するメモリ装置、並びに、このメモリ装置に対するファイル管理方法及び記録再生装置に関する。
従来、情報携帯端末、デスクトップ型コンピュータ、ノート型コンピュータ、携帯電話機、オーディオ装置、家電装置等々のホスト機器に着脱自在に装着される外部記憶メディアとして、半導体メモリを内蔵したカード型の小型ICメモリ装置が知られている。この種のメモリ装置は、一般にフラッシュメモリ等の不揮発性の半導体メモリ(ICメモリ)を内部に有しており、この半導体メモリに静止画像データ、動画像データ、音声データ、音楽データ等の各種デジタルデータを格納する。フラッシュメモリは、データの書き込み及び消去を、繰り返し行うことを可能とする書き換え可能なメモリである。そのため、フラッシュメモリを内蔵したメモリ装置は、書き換え可能なディスク媒体等を前提として作られたMS−DOS(商標)フォーマットのような一般的な階層ディレクトリ構造のファイル管理システムを適用することができる。
ところで、フラッシュメモリは、比較的高価なデバイスである。そのため、フラッシュメモリよりも安価に提供されているPROM(Programmable Read Only Memory)等のライトワンス型の不揮発性の半導体メモリをデータ格納デバイスとして用いることによりメモリ装置を安価に製造することができる。
このようにメモリ装置のデータ格納デバイスとして、ライトワンス型の半導体メモリを用いた場合も、ユーザの利便性を鑑みれば、従来の書き換え可能なメモリ装置と同様に、MS−DOS(商標)フォーマットのような階層ディレクトリ構造でファイルを管理することが望ましい。
また、メモリ装置のデータ格納デバイスとしてライトワンス型の半導体メモリを用いた場合、記録したデータの実体を消去することはできない。しかし、ユーザの利便性を鑑みれば、ファイル管理システム上で擬似的にファイル等を消去することができることが望ましい。
また、データ格納デバイスとしてライトワンス型の半導体メモリを用いたメモリ装置であっても、読み出し処理自体は、書き換え可能な半導体メモリを用いたメモリ装置と同一である。そのため、ユーザの利便性を鑑みれば、データの読み出しに関しては、従来の書き換え可能な半導体メモリを備えた従来のICメモリ装置との間で互換性がある物理構成並びにファイル管理システムとすることが望ましい。
本発明は、このような実情を鑑みて提案されるものであり、データ格納媒体としてライトワンス型メモリを用い、階層ディレクトリ構造でファイルの管理を行うことが可能なメモリ装置、このメモリ装置に対するファイル管理方法、並びに、このメモリ装置に対してデータの記録又は再生を行う記録再生装置を提供することを目的とする。
また、本発明は、データ格納媒体としてライトワンス型メモリを用いても、ファイルシステム上でファイル等の消去を行うことが可能な物理構成とされたメモリ装置、並びに、このメモリ装置に対してデータの記録又は再生を行う記録再生装置を提供することを目的とする。
さらに、本発明は、データ格納媒体としてライトワンス型メモリを用いても、複数回書き込みが可能なメモリを用いたメモリ装置との間で互換性を有するメモリ装置、このメモリ装置に対するファイル管理方法、並びに、このメモリ装置に対してデータの記録又は再生を行う記録再生装置を提供することを目的とする。
上述した目的を達成するために提案される本発明に係るメモリ装置は、データをビット単位で1回だけ書き込み可能な記録媒体であって、ファイルの実体データが記録される実体データ記録領域と、記録されているファイルの管理データ及び上記実体データの更新データが記録される予備領域と有する記録媒体を備え、上記予備領域には上記管理データが上記実体データ記録領域のデータ記録方向とは逆方向に記録されていくことを特徴とする。
また、本発明は、データをビット単位で1回だけ書き込み可能な記録媒体に対するファイル管理方法において、上記記録媒体上のデータ記録領域を、ファイルの実体データが記録される実体データ記録領域と、記録されているファイルの管理データ及び上記実体データの更新データが記録される予備領域とに分割して管理し、上記予備領域に対して、上記管理データを上記実体データ記録領域のデータ記録方向とは逆方向に記録していくことを特徴とする。
さらに、本発明は、データをビット単位で1回だけ書き込み可能な記録媒体であって、ファイルの実体データが記録される実体データ記録領域と、記録されているファイルの管理データ及び上記実体データの更新データが記録される予備領域と有する記録媒体を備えるメモリ装置に対して、ファイルの記録又は再生を行う記録再生部を有し、上記記録再生部は、上記予備領域に対して、上記管理データを上記実体データ記録領域のデータ記録方向とは逆方向に記録していくことを特徴とする。
本発明は、データをビット単位で1回だけ書き込み可能な記録媒体であって、ファイルの実体データが記録される実体データ記録領域と、記録されているファイルの管理データ及び上記実体データの更新データが記録される予備領域と有する記録媒体を備え、上記予備領域に上記管理データが上記実体データ記録領域のデータ記録方向とは逆方向に記録するようにしたしたことにより、データ格納媒体としてライトワンス型メモリを用いたメモリ装置に対して、複数回書き込みが可能なメモリを用いたメモリ装置との互換性をもたせることができる。
以下、本発明の実施の形態として、例えば、情報携帯端末、デスクトップ型コンピュータ、ノート型コンピュータ、携帯電話機、オーディオ装置、家電装置等々の外部記憶メディアとして機能するリムーバルなカード状の小型ICメモリ装置、並びに、この小型ICメモリを外部記憶メディアとして利用するデータ処理装置について説明する。なお、本発明の実施の形態として説明するカード状の小型ICメモリ装置のことを、以下、メモリスティック(商標)という。また、このメモリスティックを利用するデータ処理装置を、ホスト機器という。
概要
本実施の形態のホスト機器及びメモリスティックの外観斜視図を図1に示す示す。
本発明が適用されるメモリスティック1は、データを1回だけ書き込むことが可能な不揮発性のメモリ、即ち、ライトワンス型の半導体メモリ(以下ライトワンスメモリと呼ぶ。)を、データ格納媒体として内蔵している。メモリスティック1は、ホスト機器2に設けられているスロット3に挿入された状態で使用される。メモリスティック1のスロット3に対する挿入及び抜出は、ユーザが自在に行うことができる。そのため、例えば、あるホスト機器に挿入されていたメモリスティック1を抜き出して、他のホスト機器に挿入することもできる。すなわち、本メモリスティック1は、異なるホスト機器間のデータのやり取りに用いることが可能である。
メモリスティック1の内部に設けられたライトワンスメモリは、1ビット単位でデータの書き込みを行うことが可能なダイオード破壊型等のメモリセルを用いたPROM( Programmable Read Only Memory )である。このダイオード破壊型のメモリセルは、例えば、図2に示すように、互いに逆方向にしてライン−カラム間に直列接続したpnダイオードD1,D2から構成されている。ダイオード破壊型のメモリセルは、一方のpnダイオードを逆バイアスをかけて破壊することにより、ビット保持値が反転されることとなる。なお、メモリスティック1に適用するライトワンスメモリは、ダイオード破壊型に限らず、いわゆるヒューズ型やフローティングゲート型等のPROMを用いてもよい。
また、メモリスティック1に用いられるライトワンスメモリでは、各メモリセルで保持されているビット値が、初期状態において“1”(high)となっている。すなわち、データを何ら書き込んでいない状態では、各メモリセルからは、“1”が読み出される。この初期状態のメモリセルに対して“0”(low)を書き込むとpnダイオードが破壊され、メモリセルの保持値が“0”に変化する。メモリセルの保持値が一旦“0”となると、以後そのメモリセルに対して“1”を書き込んでも“0”を書き込んでも、保持値は変化せずに“0”の状態を維持する。一方、初期状態のメモリセルに対して“1”を書き込んだ場合には、そのメモリセルの保持値は“1”の状態のままである。この場合、まだダイオードは破壊されていないので、その後、そのメモリセルに対して“0”を書き込むことができる。
ところで、以上のような本実施の形態のメモリスティック1に対して、従来のメモリスティックは、フラッシュメモリと呼ばれる複数回書き換え可能な不揮発性の半導体メモリを、データ格納デバイスとして内蔵している。本実施の形態のメモリスティック1は、フラッシュメモリを用いた従来のメモリスティックと、外観的な機械形状、接続端子、ホスト機器とのデータ転送インタフェース等の互換性をもった構成としている。従って、本実施の形態のメモリスティック1は、フラッシュメモリを用いた従来のメモリスティックのみに対応したホスト機器に挿入して用いることができる。また、反対に、本実施の形態のメモリスティック1に対応したホスト機器2は、フラッシュメモリを用いた従来のメモリスティックを外部記憶メディアとして用いることもできる。すなわち、本実施の形態のメモリスティックは、従来のフラッシュメモリを用いたメモリスティックと、インターフェース上の互換性を有している。
以下、本実施の形態のメモリスティックについて、フラッシュメモリを用いた従来のメモリスティックと適宜比較をしながら詳細に説明をしていく。なお、以下説明の際に、フラッシュメモリを用いた従来のメモリスティックと、本実施の形態のメモリスティックとの区別を明確にする場合には、フラッシュメモリを用いた従来のメモリスティック及びこれに対応したホスト機器のことをVer1といい、本実施の形態のメモリスティック及びこれに対応したホスト機器のことをVer2という場合もある。
外観
図3は、本発明の実施の形態のメモリスティック1を表面側から見た斜視図であり、図4は、本発明の実施の形態のメモリスティック1を裏面側から見た斜視図である。
メモリスティック1は、主面(表面1a及び裏面1b)が略長方形とされた薄板形状となっている。メモリスティック1は、主面の長手方向の長さが約50mm、主面の短辺方向の長さが約21.45mm、厚さが約2.8mmとなっている。また、メモリスティック1は、主面が、表面1aと裏面1bとに区別される。裏面1bの長手方向の一端には、10個の平面電極(接続端子群4)が、短辺方向に一列に並んで設けられている。また、電極と電極との各間には、裏面1bから垂直に立ち上がったガード5が設けられ、接続端子への接触防止が図られている。また、メモリスティック1の裏面1bには、誤消去禁止用のスライドスイッチ6が設けられている。
また、ホスト機器2のスロット3は、以上のような形状のメモリスティック1に対応した凹状の形状となっていて、メモリスティック1が挿入可能である。さらに、このスロット3は、メモリスティック1が挿入されたときには、このメモリスティック1が脱落しないように保持することができる。また、スロット3には、メモリスティック1の10個の平面電極に対応した位置に、10個の接点が設けられている。そのため、メモリスティック1が接続端子群4の方向からスロット内部に差し込まれることにより(図3のX方向にメモリスティック1が差し込まれることにより)、これらのスロット3内の接点と、メモリスティック1の各接続端子とが電気的に接続されることとなる。
次に、メモリスティック1の接続端子図5を参照して説明をする。
ピン1(VSS端子)は、VSS(基準0ボルト電圧)が接続される。このVSS端子は、ホスト機器側のグランドとメモリスティック側のグランドとを接続し、ホスト機器とメモリスティックとの0ボルト基準電位を一致させる。
ピン2(BS端子)は、バスステート信号がホスト機器からメモリスティックへ入力される。
ピン3(VCC端子)は、電源電圧(VCC)がホスト機器からメモリスティックへ供給される。メモリスティックの動作可能な電源電圧は例えば2.7〜3.6ボルトであり、この範囲の電圧が供給される。
ピン4(SDIO端子)は、メモリスティックとホスト機器との間に転送されるシリアルデータ信号が入出力される。
ピン5(Reserved端子)は、予備の端子で、特に機能は付与されていない。
ピン6(INS端子)は、メモリスティックがスロットに挿入されているか、或いは、挿入されていないかを、ホスト機器が判断するための挿入/抜出検出に用いられる。
ピン7(Reserved端子)は、予備の端子で、特に機能は付与されていない。
ピン8(SCLK)は、SDIO端子を転送するシリアルデータのクロック信号が、ホスト機器からメモリスティックへ入力される。
ピン9(VCC端子)は、電源電圧(VCC)がホスト機器からメモリスティックへ供給される。ピン9は、ピン3と内部で接続されている。
ピン10(VSS端子)は、VSSと接続される。ピン1と内部で接続されている。
なお、メモリスティック1及びスロット3(Ver2)の形状及び接続端子は、フラッシュメモリを用いた従来のメモリスティック(Ver1)と、同一となっており、相互に機械的な互換性を有している。
本実施の形態のメモリスティックの内部回路の構成
図6に、メモリスティック1の内部ブロックの構成図を示す。このメモリスティック1は、インタフェース回路(I/F)12と、レジスタ回路13と、データバッファ回路14と、ECC回路15と、メモリI/Fシーケンス回路16と、ライトワンスメモリ17と、発振制御回路18とを備えている。
I/F回路12は、3線式半2重シリアルプロトコルを用いて、ホスト機器2との間でデータの転送を行う回路である。
レジスタ回路13は、例えば、ホスト機器から転送されたコマンド、メモリスティック1内の内部状態、アクセスするデータのアドレス、コマンドを実行する際に必要な諸処のパラメータ、ライトワンスメモリ17内のファイル管理情報等を記憶する回路である。このレジスタ回路13に記憶されている情報は、メモリI/Fシーケンス回路16からアクセスされたり、或いは、ホスト機器2から所定のコマンドを与えることによりアクセスされたりする。
データバッファ回路14は、ライトワンスメモリ17へ書き込まれるデータ、並びに、ライトワンスメモリ17から読み出されたデータを、一時的に保存するメモリ回路である。データバッファ回路14は、所定のデータ書き込み単位(512バイト。後述するページサイズである)分のデータ容量を有している。
ECC回路15は、ライトワンスメモリ17へ書き込まれるデータに対して誤り訂正コード(ECC)を付加する。また、ECC回路15は、ライトワンスメモリ17から読み出したデータに付加されている誤り訂正コードに基づき、この読み出したデータに対する誤り訂正処理を行う。例えば、誤り訂正コードは、512バイトのデータ単位に対して3バイト分付加される。
メモリI/Fシーケンス回路16は、レジスタ回路13内に格納されているコマンドや各種情報に従い、データバッファ14とライトワンスメモリ17との間のデータのやり取りを制御する。
ライトワンスメモリ17は、上述したように、保持しているデータ内容を1回だけ書き換えることが可能な半導体メモリである。
発振制御回路18は、本メモリスティック1内の動作クロックを発生する。
以上のような構成のメモリスティック1では、例えば、ホスト機器2からインタフェースを介して与えられる各種コマンドに従い、例えば、データの書き込み、データの読み出し、消去(ファイルシステム上の消去)等の動作を行う。
メモリスティックとホスト機器間のインタフェースのシステム構成
図7に、本実施の形態のメモリスティックとホスト機器との間のデータ伝送をするためのインタフェースの機能構成図を示す。
ホスト機器2は、ファイルマネージャ31と、TPCインタフェース32と、シリアルインタフェース33とから構成される。また、メモリスティック1は、シリアルインタフェース35と、レジスタ37と、データバッファ38と、メモリコントローラ39と、メモリ40とから構成される。
ファイルマネージャ31は、ホスト機器のオペレーションシステム上で、メモリスティック1内に格納されているファイル、並びに、ホスト機器の他のメディアに格納されているファイルの管理を行う。
TPCインタフェース32は、ファイルマネージャ31の下位レイヤとなる。TPCインタフェース32は、本メモリスティック1のインタフェース特有のコマンド(TPC:Transfer Protocol Command)により、メモリスティック1内のレジスタ37及びデータバッファ38へアクセスを行う。
シリアルインタフェース33,35は、TPCインタフェースの下位レイヤとなり、本インタフェースシステムの物理階層である。シリアルインタフェース33,35は、1ビットシリアルデータ,クロック,バスステート信号の3つの信号を転送する3線式半2重シリアルプロトコルに従い、データ転送を行う。
レジスタ37は、ホストから転送されたコマンド、メモリスティックの内部状態、メモリのデータアドレス、コマンドを実行する際に必要な諸処のパラメータ、メモリ内のファイル管理情報等を格納する。
データバッファ38は、メモリ40へ書き込まれるデータ、並びに、メモリ40から読み出されたデータを、一時的に保存するバッファ領域である。
メモリコントローラ39は、レジスタ回路13内に格納されているコマンド並びに各種情報に従い、データバッファ38とメモリ40との間のデータのやり取りを制御し、データの読み出し、書き込みを行う。
メモリ40は、データのメモリ領域であり、メモリコントローラ39を通して、独自のモデルとして仮想化されている。
以上のような構成のホスト機器及びメモリスティックでは、ファイルマネージャ31に管理されている他のメディアに格納されているデータを、上記シリアルインタフェースを介してメモリ40に転送することができる。また、メモリ40に格納されているデータを、上記シリアルインタフェースを介してファイルマネージャに管理されている他のメディアに転送することができる。
なお、本実施の形態のメモリスティック1(Ver2)のインターフェースの構成並びにデータ転送プロトコルは、フラッシュメモリを用いた従来のメモリスティック(Ver1)と、同一となっており、相互に互換性を有している。
メモリスティックのデータ格納領域の物理フォーマット
次に、本実施の形態のメモリスティック1のデータ格納領域の物理フォーマットについて説明をする。
メモリスティック1が格納できるデータ容量は、例えば16Mバイト、32Mバイト、64Mバイト、128Mバイトである。
本実施の形態のメモリスティック1では、ブロックと呼ぶデータ単位を定義し、このブロックを基本としてデータ格納領域が物理的に管理されている。1ブロックのデータサイズは例えば16Kバイトである。従って、16Mバイトのメモリスティックであれば総ブロック数が1024個となり、32Mバイトのメモリスティックであれば総ブロック数が2048個となり、64Mバイトのメモリスティックであれば総ブロック数が4096個となり、128Mバイトのメモリスティックであれば総ブロック数が8192個となる。このブロックは、フラッシュメモリを用いた従来のメモリスティックにおける消去ブロックと同一である。
ブロックには、有効ブロックと、予備ブロックとがある。有効ブロックは、ファイルの実体データ等が記録されるブロックである。予備ブロックは、後発性の不良の代替データ、並びに、ファイル管理用のデータが記録される領域である。1つのメモリスティック1内における全予備ブロック数は、例えば、16Mバイトのメモリスティックであれば31個であり、32Mバイトのメモリスティックであれば63個であり、64Mバイトのメモリスティックであれば127個であり、128Mバイトのメモリスティックであれば255個である。
各ブロックには、ブロックの格納位置を特定する物理ブロック番号が設定されている。この物理ブロック番号は、有効ブロック及び予備ブロックの区別に関わらず、0から連続番号で設定されている。
各ブロックには、論理アドレスが記録される。この論理アドレスは、ブロック内の所定の領域に書き込まれる。有効ブロックは、例えば工場出荷時等に予め論理アドレスが記録されており、予備ブロックは、工場出荷時には論理アドレスが記録されていない。特定の論理アドレスのブロックに後発不良が生じた場合には、未記録の予備ブロックに対して、不良ブロックの論理アドレスを書き込んで、代替が行われる。すなわち、有効ブロックに関しては、物理ブロック番号とともに論理アドレスも予め設定された状態とされており、予備ブロックに関しては、論理アドレスが工場出荷後に設定されることとなる。
メモリスティック1では、512ブロックのまとまりをセグメントと定義している。セグメント番号は、0から連続番号で設定される。各セグメント内は、有効ブロックと予備ブロックとで構成されている。0セグメントの有効ブロックの数は495個であり、予備ブロックの数は15個である。その他のセグメントの有効ブロックの数は496個であり、予備ブロックの数は16個である。なお、0セグメントの有効ブロック数及び予備ブロック数が少ないのは後述するブートブロックがあるからである。
以上説明したセグメントとブロックの関係、並びに、物理ブロック番号と論理アドレスとの関係を図に表すと、図8に示すようになる。
また、図9に示すように、0セグメントの先頭の2つのブロック(物理ブロック番号“0”及び“1”のブロック、このブロックには論理アドレスは記録されない。)は、ブート領域とされている。ブート領域は、ホスト機器が、本メモリスティック1をブートした際に、最初にデータを読み込む領域である。このブート領域のブロックには、そのメモリスティックに関する情報や属性等が記録されている。このブートが記録された領域をブート領域、それ以外の領域をユーザ領域と呼ぶ。
各ブロックは、図10に示すように、32個のページから構成されている。ページは、512バイトのデータ領域と、エキストラデータエリアとから構成された単位である。データ領域には、データの実体が記録される。すなわち、ファイルの実体データ、管理データ等が記録される。
エキストラデータエリアには、先頭から、1バイト(8ビット)のオーバーライトフラグ領域と、1バイトの管理フラグ領域、2バイトの論理アドレス領域と、5バイトのフォーマットリザーブ領域と、第1のECC領域と、第2のECC領域が、先頭から順番に形成されている。
オーバーライトフラグ領域には、先頭から、1ビット目にブロックステータス、2,3ビット目にページステータス、4ビット目に更新ステータス、5ビット目にデータ使用ステータスが記録される。6〜8ビット目は、リザーブ領域である。
ブロックステータスは、そのページが含まれているブロックが不良状態であるか、或いは、そのページが含まれているブロックに記録してあるデータを削除した状態であるか示す1ビットの識別フラグである。ブロックステータスは、その値が“0”のときにはそのブロックがブロック不良状態又はデータ削除状態であることを示し、その値が“1”のときにはそのブロックがアクセス可能状態であることを示している。このブロックステータスは、工場出荷時等の初期状態のときには“1”となっている。そして、ブロックステータスは、ブロックに不良が生じた場合、或いは、ブロックに書き込まれたデータをファイル管理システム上で擬似的に消去する場合に、その値が書き換えられて“0”とされる。
ページステータスは、ページ毎の修正不可エラーの発生状態を示す2ビットの識別フラグである。ページステータスは、その値が“00”のときにはページ内のデータにECCにより修正が可能なエラーが発生している状態を示し、その値が“01”のときにはページ内のデータにECCにより修正が不可能なエラーが発生している状態を示し、その値が“11”のときにはページ内のデータにエラーが発生していない状態を示している。
更新ステータスは、そのページが含まれているブロックの更新状態を示す1ビットのフラグである。更新ステータスは、その値が“0”のときには、そのブロックにデータを記録済みである状態、或いは、そのブロックにデータを更新中である状態を示し、その値が“1”のときには、そのブロックにデータを未記録である状態を示している。
データ使用ステータスは、そのページが含まれているブロックに対してデータが記録されており、既にそのブロックが使用されている意味する1ビットの識別フラグである。データ使用ステータスは、その値が“0”のときには、そのブロックに対して既にデータが記録された状態であることを示し、その値が“1”のときには、そのページに対してまだデータが記録されていない状態であることを示す。
管理フラグには、そのページが含まれているブロックがブートブロックであるか、それ以外のブロックであるかを示すシステムビット、そのページに対するコピー制限ビット、そのページに対するアクセス制限ビット等が含まれている。
論理アドレスは、ブロックのアドレス情報が記録される。
第1のECCは、1バイトの管理フラグ、2バイトの論理アドレス、5バイト分のフォーマットリザーブに対するエラー訂正コードである。
第2のECCは、512バイトのページデータに対するエラー訂正コードである。
本実施の形態のメモリスティック1の物理フォーマットは、上述したような構成を備える。
ここで、メモリスティック1の物理フォーマットは、フラッシュメモリを用いた複数回書換可能な従来のメモリスティックの物理フォーマットと比較した場合、その基本構成は同一となっているが、本メモリスティック1では物理フォーマットにデータ使用ステータスが定義されている点で従来のものとは異なっている。即ち、本メモリスティック1では、オーバーライトフラグ領域内の5ビット目が、データ使用ステータスとなっているが、フラッシュメモリを用いた複数回書換可能な従来のメモリスティックでは、オーバーライトフラグ領域の5ビット目は、リザーブとなっている。
本実施の形態のメモリスティック1では、以上のように物理フォーマットでデータ使用ステータスとブロックステータスとを規定していることによって、そのブロックにデータがまだ記録されていない状態、そのブロックにデータが記録された状態、そのブロックに記録されたデータが消去された状態、の3状態を区別することができる。従って、ライトワンス型のメモリスティック1であっても、ファイル管理システム上、データの消去状態を擬似的に管理することができる。
また、メモリスティック1では、フラッシュメモリを用いた複数回記録可能な従来のメモリスティックのリザーブ領域に、新たなデータ使用ステータスフラグを定義しているので、物理フォーマット上データ読み出しの互換性をもつことができる。すなわち、本メモリスティック1のみで規定されているデータ使用ステータスの内容が、従来のメモリスティックに対して影響を与えることがない。
また、ページ内のエキストラデータエリアに記録される情報には、ブロック毎に固有の内容を示す情報と、ページ毎に固有の内容を示す情報とがある。ブロックステータス、更新ステータス、データ使用ステータス及び論理アドレスは、ブロック毎に固有の内容を示す情報である。ページステータス及び管理フラグは、ページ毎に固有の内容を示す情報である。すなわち、ブロックステータス、更新ステータス、データ使用ステータス及び論理アドレスは、同一ブロック内の全てのページに対して同一の情報内容となる。従って、これらの情報は、ブロック内の先頭ページに対してのみ記録するようにしてもよい。
なお、本メモリスティック1では、物理フォーマット上、物理ブロック番号と論理アドレスとの対応付けを行うテーブルが記録される領域は設けられていない。そのため、ホスト機器は、メモリスティック1をブートした際に、全ブロックの先頭ページにアクセスして論理アドレスを検出し、物理ブロック番号と論理アドレスの対応付けを行うテーブルを作成する。
メモリスティックの論理フォーマット
次に、本実施の形態のメモリスティック1に記録されるデータの論理フォーマットについて説明をする。
フラッシュメモリを用いた複数回書込可能な従来のメモリスティックでは、論理フォーマットとして、MS−DOS互換フォーマットを採用している。このMS−DOS互換フォーマットは、階層ディレクトリ構造で記録媒体内に記録されているデータファイルを管理するファイルシステムである。MS−DOS互換フォーマットでは、記録されているデータを管理するに当たり、記録媒体に対するデータの記録再生単位(クラスタ)を定めている。従来のメモリスティックでは、MS−DOSによって規定されているデータの記録再生単位(クラスタ)を、上記ブロック単位としている。
これに対して、ライトワンス型の本メモリスティック1は、MS−DOS互換フォーマットとは異なる独自の論理フォーマット(以下、ライトワンスフォーマットと呼ぶ。)と、上記MS−DOS互換フォーマットとの両者で、ファイル管理を行う。ライトワンスフォーマットは、MS−DOS互換フォーマットと同様に、階層ディレクトリ構造でファイル管理を行う。
本メモリスティック1に対応したホスト機器(Ver2)は、ライトワンスフォーマットにより、本メモリスティック1に対してデータの記録再生を行う。これに対して、従来のメモリスティックに対応したホスト機器(Ver1)は、MS−DOS互換フォーマットにより、メモリスティック1に対してデータの記録再生を行う。本メモリスティック1では、通常の状態では、メモリスティック1に対応したホスト機器(Ver2)によりデータの記録が行い、MS−DOS互換フォーマットではデータの管理を行わない。メモリスティック1に対して記録したデータを、従来のメモリスティックに対応したホスト機器(Ver2)により読み出す場合には、MS−DOS互換フォーマットの管理データを記録するセッションクローズ処理を行う。このセッションクローズ処理を行うことにより、従来機器との読み出し互換が図られることになる。
また、本メモリスティック1では、セッションクローズ処理を複数回行うことができる。すなわち、1回セッションクローズ処理をしたのちもライトワンスフォーマットでファイルの追記や更新を行うことができ、さらに、再度セッションクローズ処理を行うことにより、追記や更新をしたファイルも従来のメモリスティックに対応した機器(Ver1)で読み出すことができる。
以下、本メモリスティック1に適用されるライトワンスフォーマット、並びに、セッションクローズ処理について以下詳細に説明を行う。
ライトワンスフォーマット
(ファイルの実体データの記録方法)
ライトワンスフォーマットでは、ファイルの実体データを、予め論理アドレスが割り付けられているブロック、即ち、有効ブロックに記録する。ライトワンスフォーマットでは、ファイルの実体データを、ブロック単位で記録する。即ち、1つのブロック内には、複数のファイルの実体データが混在しないように記録される。ライトワンスフォーマットでは、ファイルの実体データの記録を、ブロックの先頭ページから開始する。また、ライトワンスフォーマットでは、1つのファイルの実体データを、複数のブロックに亘って記録する場合には、連続した論理アドレスのブロックに対して記録する。論理アドレスの連続方向は、順方向、即ち、小さい値から大きい値に向かう方向である。ただし、例えばMS−DOS互換フォーマットにおけるサブディレクトリエントリ等が途中に記録されており、1つのファイルの実体データを、論理アドレスが連続した1つの領域に記録することができない場合には、ファイルの実体データを2分断して記録してもよい。もっとも、この場合にも2分断されたそれぞれの領域内は、論理アドレスが連続しているブロックにより形成する。
なお、MS−DOS互換フォーマットの場合、ファイルの実体データをクラスタ毎のランダム記録が可能であるが、以上のライトワンスフォーマットの規則に従い実体データを記録したとしても、少なくともクラスタ(ブロック)単位での記録となっている。従って、ライトワンスフォーマットに従い記録されたファイルの実体データは、MS−DOS互換フォーマットにも従った記録がされていることとなる。
また、ライトワンスフォーマットでは、論理アドレスが連続している領域にファイルの実体データが記録されるため、いわゆるFAT(File Allocation Table)のようなクラスタの接続順序を示す情報を管理データとして記録しなくても、アクセスが可能となる。
(管理データの記録方法)
ライトワンスフォーマットでは、エントリページと呼ぶ管理データを、論理アドレスが予め割り付けられていないブロック(論理アドレスの値が初期値(0xFFFF)の状態となっているブロック)、即ち、予備ブロックに記録する。ライトワンスフォーマットでは、ファイルを1個生成又は1個更新、若しくは、ルートディレクトリ及びサブディレクトリを1個生成する毎に、1つのエントリページを生成して、予備ブロックに記録する。エントリページは、1ページ分の容量を有している。従って、ファイル、ルートディレクトリ及びサブディレクトリを生成又は更新する毎に、予備ブロックの1ページを消費することとなる。
ライトワンスフォーマットでは、全予備ブロックの全ページに対して、予備ブロック管理番号を設定している。1ブロック内のページ数は32個であるので、予備ブロック管理番号が設定される全ページ数は、16Mバイトのメモリスティックであれば992個、32Mバイトのメモリスティックであれば2046個、64Mバイトのメモリスティックであれば4064個、128Mバイトのメモリスティックであれば8160個となる。
予備ブロック管理番号は、図11に示すように、全ての予備ブロックのうち、最も下位の物理ブロック番号の予備ブロック(即ち、最も物理ブロック番号が大きい予備ブロック)から、上位の物理ブロック番号の予備ブロックの方向へ向かい、順次番号が付けられている。例えば、128MBのメモリスティック1であれば、以下のように予備ブロック管理番号が設定されている。
Figure 2007018528
ライトワンスフォーマットでは、1つのファイル等を生成又は更新する度に、以上のような予備ブロック管理番号に従った順序で、エントリページを記録していく。つまり、エントリページは、メモリスティック1内の最も後ろの予備ブロックから、通常の実体データの記録方向とは逆の方向に記録されていく。
(エントリページの種類)
次に、エントリページについて説明をする。
エントリページは、ファイルエントリ、ルートエントリ、サブエントリ、セッションアンカ、ディレクトリマーカの5つの種類に分類される。
ファイルエントリは、当該メモリスティック1に記録されたファイルを指示する管理データである。メモリスティック1に1つのファイルを記録すると、そのファイルに対応して予備ブロック内にファイルエントリが一つ記録される。ファイルエントリの中には、当該ファイルエントリが指示しているファイルの名称、そのファイルの属性、そのファイルの実体データの記録位置情報、そのファイルの生成日付、親ポインタ、及び、フラグメントが記述される。親ポインタは、そのファイルの親ディレクトリを指示するエントリ(ルートエントリ又はサブエントリ)が記録されている予備ブロック管理番号である。フラグメントは、そのファイルの実体データが、連続領域に記録されずに、2分断されて記録されていることを示す情報である。このフラグメントには、後段の記録領域の開始アドレスも示されている。
ルートエントリは、ルートディレクトリを指示する管理データである。ルートディレクトリは、階層ディレクトリ構造における最上位のディレクトリである。階層ディレクトリ構造でファイル管理をする場合、このルートディレクトリは、1つだけ存在することとなり、その存在は変更されない。そのため、ライトワンス型のメモリスティック1では、予備ブロック管理番号の先頭ページに、工場出荷時等に予めこのルートエントリを1つ記録しておくことが望ましい。
サブエントリは、サブディレクトリを指示する管理データである。サブディレクトリは、階層ディレクトリ構造におけるルートディレクトリ以外のディレクトリである。サブディレクトリは、ルートディレクトリ下に配置してもよいし、サブディレクトリ下に配置してもよい。メモリスティック1に1つのサブディレクトリを生成すると、そのサブディレクトリに対応して予備ブロック内にサブエントリが1つ記録される。サブエントリの中には、当該サブエントリが指示しているサブディレクトリの名称、そのサブディレクトリの生成日付、そのサブディレクトリの親ディレクトリを特定する情報が記述されている。
セッションアンカは、セッションクローズ処理を行ったことを示す管理データである。セッションアンカは、2つペアで一回のセッションクローズ処理を行ったことを表すこととなる。セッションクローズ処理を開始すると、まず最初にセッションアンカが予備ブロック内に1つ記録され、そのセッションクローズ処理の最後に、もう一度セッションアンカが予備ブロック内に1つ記録される。このセッションアンカには、メモリスティック1に対してセッションクローズ処理を行った回数情報が記述される。この回数情報は、上記のペアで同一の値が記録されるため、ファイルエントリの読み出しを行った際に、上記のペアを判断することができる。このようにセッションクローズ処理の開始時と終了時にセッションアンカを記録すると、例えばセッションクローズ処理中に電源がOFFとなりセッションクローズを失敗した場合、セッションアンカが1つしか記録されていないこととなり、セッションクローズが失敗したことをあとで認識することができる。
ディレクトリマーカは、セッションクローズ処理をして生成されたMS−DOS互換フォーマットの管理データであるサブディレクトリエントリの記録位置を示している。このディレクトリマーカは、セッションクローズ処理をした際に、一回目のセッションアンカを記録した後、2回目のセッションアンカを記録する前に記録される。すなわち、ペアとなるセッションアンカの間に挟まれたページに記録される。このディレクトリマーカは、そのセッションクローズ処理時に新たに記録される1つのサブディレクトリエントリに対して、1つ記録される。ただし、サブディレクトリエントリエントリが複数ブロックに亘り記録される場合には、1つのサブディレクトリエントリに対して、そのブロック分のディレクトリマーカが記録される。
(エントリページの構成)
次に、エントリページの構成について具体的に説明をする。エントリページは、図12に示すように、ページ内の152バイトのデータ領域に記録される。
エントリページ内の記述フィールドは、名称フィールド、ファイル属性フィールド、種別フィールド、先頭ブロックポインタフィールド、データサイズフィールド、生成日付フィールド、親ポインタフィールド、フラグメントフィールド、予備フィールドとから構成される。
名称フィールドは、0〜10バイト目に配置されている。当該エントリページがファイルエントリ又はサブエントリである場合、この名称フィールドには、当該エントリページが指し示すファイルの名称、又は、サブディレクトリの名称が記述される。ファイル及びサブディレクトリの名称を記述する場合には、MS−DOSフォーマットで使用可能な文字列で記録される。なお、ファイル名がMS−DOS互換フォーマットで規定されたロングファイル名である場合には、この名称フィールドの先頭1バイトに“0”が記述され、続く2バイトにファイル名のデータ長が記述され、予備フィールドにファイル名称が記述される。当該エントリページが、ルートエントリ又はディレクトリマーカである場合、この名称フィールドは空白とされる。当該エントリページが、セッションアンカである場合、この名称フィールドには、先頭の0〜1バイト目に、当該メモリスティック1に対してセッションクローズ処理を行った回数を示すペア識別用IDが記録される。ペア識別用IDは、当該メモリスティック1に対してセッションクローズ処理を行った回数に応じて、1→2→3…とインクリメントされていく。セッションクローズ処理の回数の最大値は8であり、ペア識別用IDも8までしか記述されない。なお、セッションクローズ処理の回数が8未満の場合であっても、メモリスティック1自体に追記する容量がなくなった場合には、ペア識別用IDは256(0xFFFF)とされる。
属性フィールドは、11バイト目に配置される。当該エントリページがファイルエントリである場合、この属性フィールドには、当該ファイルエントリが指し示しているファイルの属性が記述される。属性フィールドには、ファイルの属性が通常ファイルである場合には“0”、読み出し専用ファイルである場合には“1”、隠しファイルである場合には“2”、ボリュームラベルである場合には“3”が記述される。属性フィールドは、当該エントリページがファイルエントリ以外である場合には、空白とされる。
種別フィールドは、12バイト目に配置される。この種別フィールドには、当該エントリページの種別が記述される。すなわち、当該エントリページが、ファイルエントリであるか、ルートエントリであるか、サブエントリであるか、セッションアンカであるか、ディレクトリマーカであるかを区別する情報が記述される。種別フィールドには、ファイルエントリである場合には“0”、ルートエントリである場合には“1”、サブエントリである場合には“2”、セッションアンカである場合には“3”、ディレクトリアンカである場合には“4”が記述される。
先頭ブロックポインタフィールドは、13〜14バイト目に配置される。先頭ブロックポインタフィールドには、当該エントリページがファイルエントリである場合、ファイルの実体データが格納されている先頭ブロックの論理アドレスが記述される。当該エントリページがルートエントリである場合、MS−DOS互換フォーマットのルートディレクトリエントリが格納されているブロックの論理アドレスが記述される。当該エントリページがサブエントリ又はセッションアンカの場合、空白とされる。また、当該エントリページがディレクトリマーカである場合、当該ディレクトリマーカが指し示しているブロックの論理アドレスが記述される。
データサイズフィールドは、15〜18バイト目に配置される。このデータサイズフィールドには、当該エントリページがファイルエントリである場合、当該ファイルエントリが指し示すファイルの実体データのサイズがバイトオーダで記述される。このデータサイズフィールドには、当該エントリページがディレクトリマーカである場合、0,1バイト目には、当該ディレクトリマーカが指し示すブロック内に記録されているエントリのうち、最初のエントリが記述され、2,3バイト目には当該ブロック内に記述されているエントリのうち、最後のエントリが記述される。
生成日付フィールドは、19〜22バイト目に配置される。生成日時フィールドには、エントリページがファイルエントリ、ルートエントリ又はサブエントリの場合、ファイルやディレクトリを生成した日付が記述される。この生成日付の記述は、MS−DOSフォーマットと同一とする。エントリページがセッションアンカ又はディレクトリマーカの場合には、この生成日付フィードは空白とされる。
親ポインタフィールドは、23〜24バイト目に配置される。親ポインタフィールドは、当該エントリページがファイルエントリ又はサブエントリの場合、親ポインタが記述される。親ポインタは、親のディレクトリを指し示しているルートエントリ又はサブエントリの予備ブロック管理番号である。当該エントリページがルートエントリの場合、この親ポインタには、自分自身のエントリの予備ブロック管理番号が記述される。
フラグメントフィールドは、25〜28バイト目に配置される。フラグメントフィールドには、当該エントリページがファイルエントリの場合にのみ情報が記述される。本ライトワンスフォーマットでは、ファイルの実体データは、連続した論理アドレスに格納されることが基本となるが、例外的に2つの領域に分断されてしまう場合がある。フラグメントフィールドには、このようなファイルの実体データが2つの領域に分断されてしまっている場合に、その旨を示すフラグが記述される。具体的には、フラグメントフィールドには、ファイルの実体データが分断されている場合4バイトのうち0,1バイト目に0(0x0000)が記述され、分断されていない場合には0,1バイト目にこれ以外の値が記述される。また、ファイルの実体データが分断されている場合、2,3バイト目には、後半部分が記録されている先頭ブロックの論理アドレスが記述される。
各エントリページの種別毎のイメージ図を図13に示す。図13(A)はファイルエントリのイメージ図である。図13(B)はロングファイル名の時のファイルエントリのイメージ図である。図13(C)はルートエントリのイメージである。図13(D)はサブエントリのイメージ図である。図13(E)はセッションアンカのイメージ図である。図13(F)はディレクトリアンカのイメージ図である。
(エントリページの具体的な使用例及び効果)
図14に、メモリスティック1に記録されたファイルの階層ディレクトリ構成の一例を示し、このような階層ディレクトリ構成のファイルがメモリスティック1に記録された場合のエントリページのイメージを図15に示す。なお、図15に示す矢印は、各ファイルエントリ及びサブエントリに記述されている親ポインタの行き先を示している。
以上のように本ライトワンスフォーマットでは、生成したファイル及びディレクトリに対応して、上記ルートエントリ、サブエントリ及びファイルエントリを記録することによって、ファイルを階層ディレクトリ構造で管理することができる。すなわち、ホスト機器では、メモリスティック1がブートされた場合、まず、予備ブロック管理番号が0のページから順番に、全エントリページを読み出していく。全てのエントリページを読み出して、各ファイルエントリ及びサブエントリに記述されている親ポインタの値を検出する。このように親ポインタを検出すると、メモリスティック1に記録されているファイル及びディレクトリの親子関係を管理することができる。
また、ファイルエントリには、ファイル名称及びファイルの格納位置情報が記述されている。そのため、ホスト機器は、このファイルエントリを参照することによって、ファイルの実体データの読み出しを行うことができる。
本ライトワンスフォーマットでは、任意のファイルの消去を行う場合には、そのファイルを指し示すファイルエントリが記録されているページのページステータスを“0”として、そのページを無効にする。例えば、図16に示すように“ファイル6”を消去する場合、図17に示すようにそのファイル6を指し示す“ファイルエントリ7”が記録されたページ(予備ブロック管理番号が“8”ページ)のページステータスを“00”とすればよい。このように本ライトワンスフォーマットでは、階層ディレクトリ構造でファイルを管理しながら、ファイルの消去も行うことができるので、従来の複数回書換可能なメモリスティックに対するアクセスと同様に、容易にファイル操作を行うことができる。
なお、サブディレクトリを消去や移動は、そのサブディレクトリの子ファイル及び子サブディレクトリに関する全てのエントリを再生成して、全てを記録しなおせば、可能である。しかしながら、処理が非常に煩雑になるので、親子の関係を途中で変更することは、行わない方が望ましい。
セッションクローズ処理
次に、セッションクローズ処理について説明をする。
MS−DOS互換フォーマットには、実体データ以外のファイル管理データとして、MBR(Master Boot Record)、PBR(Partition Boot Record)、FAT(File Allocation Table)、ルートディレクトリエントリ、サブディレクトリエントリがある。
MBRは、ユーザ領域の先頭に配置される情報で、各パーティションへのブート情報が記述されている。本メモリスティック1の場合、パーティションは1つだけとしている。PBRは、パーティションの先頭セクタに配置される情報であり、各パーティションに関する諸処の情報が記述されている。FATは、ユーザ領域で扱われるクラスタ(ブロック)の連結状態が記録されている。本メモリスティック1では、バックアップのために2つのFAT(FAT1,FAT2)を記録している。ルートディレクトリエントリは、ルートディレクトリに配置される各ファイル及びサブディレクトリのエントリが記述される。また、サブディレクトリエントリは、サブディレクトリに配置される各ファイル及びサブディレクトリのエントリが記述される。1つのエントリは、2バイトで構成され、その中に、ファイル名、属性、記録日付、開始クラスタ(ブロック)番号、ファイルサイズ(バイト単位)が記述される。
MS−DOS互換フォーマットでは、これらの管理データを、論理アドレスが割り振られたクラスタ(メモリスティックの場合においてはブロック)に記録することが規定されている。セッションクローズ処理は、ライトワンスフォーマットで記録された管理データの内容を参照して、上記のMS−DOS互換フォーマットの管理データを、論理アドレスが割り振られたブロックに追加記録することにより、従来のメモリスティックに対応した機器との読み出し互換を可能とする処理である。なお、MBRには、PBRの論理アドレスが記述されているが、PBRの論理アドレスが変わらない限り、書き換える必要はない。それに対して、PBR、FAT、ルートディレクトリ、サブディレクトリエントリは、ファイルやディレクトリ構造の追記に応じて、書き換える必要がある。従って、セッションクローズ処理では、MBRを除いた、PBR、FAT、ルートディレクトリエントリ及びサブディレクトリエントリの生成、記録を行うこととなる。
図18に、セッションクローズ処理のフローチャートを示す。
まず、ステップS1において、ホスト機器は、最後に記録したエントリページに続く予備ブロック管理番号に、第1のセッションアンカの書き込みを行う。この際に、ホスト機器は、第1のセッションアンカの名称フィールドに、ペア識別用IDを記述する。このペア識別用IDには、本メモリスティック1に対してセッションクローズ処理が行われた回数を示す番号が記述される。例えば、一回目のセッションクローズ処理の場合には“1”と記述され、二回目のセッションクローズ処理の場合には“2”と記述される。
続いて、ステップS2において、ホスト機器は、ライトワンスフォーマットの管理データに基づき、現時点におけるファイル管理状態に対応したPBR及びFATを生成し、生成したPBR及びFATをメモリスティック1に記録する。
FATには、ブロック(クラスタ)の接続順序が記述されるが、この接続順序は、ライトワンスフォーマットにおけるファイルエントリ、ルートエントリ、サブエントリ及びディレクトリマーカを解析することにより生成することができる。これは、ライトワンスフォーマットでは、1つのファイルを構成する実体データは、基本的には、連続した論理アドレスのブロック内に記録されること、実体データが2分割される場合にはファイルエントリのフラグメントにより後段部分の論理アドレスが記述されていることが規定されているためである。
ここで、1回目のセッションクローズ処理時には、ホスト機器は、予め論理アドレスが割り振ってあるブロックである有効ブロックに、PBR及びFATを記録する。PBR及びFATが記録されるブロックは、MBR内に記述されている(例えば論理アドレスが1,2のブロック)。すなわち、ホスト機器は、1回目のセッションクローズ処理時には、このMBRに示された論理アドレスのブロックに対して、PBR及びFATを記録する。
一方、2回目以降のセッションクローズ処理時には、ホスト機器は、予め論理アドレスが割り振られてないブロックである予備ブロックに、PBR及びFATを記録する。また、この予備ブロックの中でも、0セグメント内の予備ブロックにPBR及びFATを記録する。すなわち、ライトワンスフォーマットの管理データ(エントリページ)と反対の領域から、予備領域を消費していくように、PBR及びFATを記録する。また、ホスト機器は、記録したブロックのブロック使用ステータスを“0”とし、論理アドレスも記録する。論理アドレスの値は、前回のセッションクローズ処理時に記録した元のPBR及びFATが記録されたブロックの論理アドレスと、同一の値とする。次に、ホスト機器は、前回のセッションクローズ処理時に記録した元のPBR及びFATが記録されたブロックのブロックステータスを“0”とする。そして、最後に、ホスト機器は、内部に保持している論理アドレス−物理ブロック番号の変換テーブルを更新する。
続いて、ステップS3において、ホスト機器は、ライトワンスフォーマットの管理データに基づき、現時点におけるファイル管理状態に対応したルートディレクトリエントリ及びサブディレクトリエントリを生成して、生成したルートディレクトリエントリ及びサブディレクトリエントリを記録する。
ここで、1回目のセッションクローズ処理時には、ホスト機器は、予め論理アドレスが割り振ってあるブロックである有効ブロックに、ルートディレクトリエントリ及びサブディレクトリエントリを記録する。ルートディレクトリエントリが記録されるブロックは、PBR内に記述されている。従って、ホスト機器は、1回目のセッションクローズ処理時には、このPBRに示された論理アドレスのブロックに対して、ルートディレクトリエントリを記録する。また、ホスト機器は、サブディレクトリエントリを、1セグメント以降の有効ブロックに記録する。
一方、2回目以降のセッションクローズ処理時には、ホスト機器は、予め論理アドレスが割り振られてないブロックである予備ブロックに、ルートディレクトリエントリ及びサブディレクトリエントリを記録する。ホスト機器は、ルートディレクトリエントリに関しては、この予備ブロックの中でも、0セグメントの予備ブロックに記録する。すなわち、ライトワンスフォーマットの管理データ(エントリページ)と反対の領域から、予備領域を消費していくように、ルートディレクトリエントリを記録する。また、ホスト機器は、サブディレクトリエントリに関しては、予備ブロックの中でも、1セグメント以降の予備ブロックに記録する。ただし、2回目以降のセッションクローズ処理であっても、初めて生成したサブディレクトリに関しては、即ち、前回のセッションクローズ処理以降に新規に生成されたサブディレクトリに関しては、そのサブディレクトリエントリを、論理アドレスが予め割り振られたブロックである有効ブロックに記録する。なお、この場合にも、1セグメント以降の有効ブロックに記録する。そして、ホスト機器は、ルートディレクトリエントリ又はサブディレクトリエントリを予備ブロックに記録した場合には、そのブロックのブロック使用ステータスを“0”とするとともに、論理アドレスを記録する。記録する論理アドレスの値は、前回のセッションクローズ処理時に記録した元のルートディレクトリエントリ又はサブディレクトリエントリが記録されていたブロックの論理アドレスと、同一の値とする。ルートディレクトリエントリ又はサブディレクトリエントリを予備ブロックに記録した場合には、ホスト機器は、前回のセッションクローズ処理時に記録した元のルートディレクトリエントリ又はサブディレクトリエントリが記録されていたブロックのブロックステータスを“0”とする。そして、最後に、ホスト機器は、内部に保持している論理アドレス−物理ブロック番号の変換テーブルを更新する。
続いて、ステップS4において、ホスト機器は、サブディレクトリエントリの追加又は更新をした場合には、その追加又は更新をしたサブディレクトリエントリに対するディレクトリマーカを、ステップS1で記録したセッションアンカに続けて、予備ブロックに対して書き込みを行う。
なお、MS−DOS互換フォーマットでは、ルートディレクトリやサブディレクトリを構成する個々のエントリのデータサイズは、4バイト(32ビット)となっている。また、MS−DOS互換フォーマットでは、ルートディレクトリ下のファイル及びサブディレクトリの数(即ちエントリ数)が512個までと規定されているため、ルートディレクトリエントリの実体データの容量は、最大でも1ブロック分(512バイト×32ページ)となる。すなわち、ルートディレクトリエントリは、必ず1ブロック内に収まることとなる。それに対して、サブディレクトリの支配下のファイル及びサブディレクトリの数は、MS−DOS互換フォーマット上では特に規定がない。従って、サブディレクトリエントリの実体データの容量は、1ブロックを越える場合がある。このような場合、サブディレクトリエントリは、複数ブロックに亘り記録されることとなる。
サブディレクトリエントリが複数ブロックに亘り記録された場合、ホスト機器は、ディレクトリマーカも1つのサブディレクトリに対して複数個記録する。具体的には、サブディレクトリ内のエントリ数が512個まで(1ブロック分)の場合には、1つのディレクトリマーカで、サブディレクトリエントリの実体データが記述されるブロックの論理アドレスを記述する。サブディレクトリ内のエントリ数が512個を越えた分に関しては、ブロック毎にディレクトリマーカを作り、そのブロック内に示されたエントリの範囲を示して識別する。
また、サブディレクトリが更新された場合には、前回以前のセッションクローズ処理時に記録したディレクトリマーカが存在する。この場合には、前回以前のセッションクローズ処理時に記録したディレクトリマーカが含まれるページのページステータスを“0”として、消去する。
続いて、ステップS5において、ホスト機器は、ステップS4でディレクトリマーカを記録した場合にはそのディレクトリマーカーに続けて、ステップS4でディレクトリマーカを記録しなかった場合にはステップS1で記録した第1のセッションアンカに続けて、第2のセッションアンカを記録する。この際に、ホスト機器は、第1のセッションアンカに記録したペア識別用IDと同一のペア識別用IDを、第2のセッションアンカに記述する。
ホスト機器は、以上のようにセッションクローズ処理を行うことによって、ライトワンスフォーマットで管理されたいたメモリスティック1をMS−DOS互換フォーマットに変換することができる。
セッションクローズ処理の具体例
次に、以下メモリスティック1に記録されたファイルの階層ディレクトリ構成の一例を示すとともに、このような階層ディレクトリ構成のファイルがメモリスティック1に記録された場合のエントリページの記録イメージ並びにデータ記録領域の記録イメージを示して、セッションクローズ処理の具体的な処理例について説明をする。
(1回目のセッションクローズ処理)
本メモリスティック1は、1回目のセッションクローズ処理が工場出荷時に行われ、ユーザに提供される。例えば、1回目のセッションクローズ前(工場出荷前)に、図19に示すように、ルートディレクトリと“MEMSTICK.ind”ファイルがメモリスティック1に記録される。そして、このようなファイル等を記録した後に、1回目のセッションクローズ処理をしたとする。なお、“MEMSTICK.ind”ファイルは、本デバイスがライトワンス型のメモリスティックであることを示す情報が記述されたファイルであり、ルートディレクトリ下に生成されている。メモリスティック1は、この記録状態で、1回目のセッションクローズ処理が行われる。
1回目のセッションクローズ処理をした後の、ライトワンスフォーマットの管理データの記録イメージを図20に示す。1回目のセッションクローズ処理をする前には、メモリスティック1には、予備ブロック管理番号0〜1のページ領域に、ルートエントリと、ファイルMEMSTICK.indを指し示すファイルエントリ(MEM)とが記録されている。セッションクローズ処理がされた後に、メモリスティック1には、予備ブロック管理番号2〜3のページ領域に、2つのセッションアンカ(ペア識別用IDが“1”となっている)が記録される。
1回目のセッションクローズ処理をした後の、MS−DOS互換フォーマットの管理データ及び実体データの記録イメージを図21に示す。この図21に示すように、物理アドレスが“0”〜“1”のブロックにはブートが記録される。また、論理アドレスが“0”のブロック(物理ブロック番号2)にはMBRが記録され、論理アドレスが“1”〜“2”のブロック(物理ブロック番号3〜4)にはPBR及びFATが記録され、論理アドレスが“3”のブロック(物理ブロック番号5)にはルートディレクトリエントリが記録され、論理アドレスが“4”のブロックには“MEMSTICK.ind”の実体データが記録されている。
(2回目のセッションクローズ処理)
次に、上述のような1回目のセッションクローズ処理をした後のメモリスティック1に対して、例えば、図22に示すようなファイルを追記したとする。すなわち、ルートディレクトリ下に、第1のファイル(File1)と、第2のファイル(File2)と、第1のサブディレクトリ(Sub1)とを追記する。さらに、第1のサブディレクトリ(Sub1)の下に第3のファイル(File3)を追記したとする。そして、その後に2回目のセッションクローズ処理をしたとする。
図23に、2回目のセッションクローズ処理をした後のライトワンスフォーマットの管理データの記録イメージを示す。また、図24に、2回目のセッションクローズ処理をした後のMS−DOS互換フォーマットの管理データ及び実体データの記録イメージを示す。
1回目のセッションクローズ処理をした後、2回目のセッションクローズ処理をする前には、メモリスティック1の予備ブロック管理番号4〜7のページ領域に、第1のファイル(File1)を指し示すファイルエントリ(1)と、第2のファイル(File2)を指し示すファイルエントリ(2)と、第1のサブディレクトリ(Sub1)を指し示すサブエントリ(1)と、第2のファイル(File3)を指し示すファイルエントリ(3)とが記録される。また、第1のファイル(File1)、第2のファイル(File2)、第3のファイル(File3)の各実体データは、0セグメントのデータ記録領域にそれぞれ記録される。
以上の状態から2回目のセッションクローズ処理が行われると、予備ブロック管理番号8〜10のページ領域に、第1のセッションアンカ(ペア識別用IDが“2”となっている)と、第1のサブディレクトリ(Sub1)の実体であるサブディレクトリエントリが格納されているブロックを示すディレクトリマーク(1)と、第2のセッションアンカ(ペア識別用IDが“2”となっている)とが記録される。
さらに、更新されたPBR、FAT及びルートディレクトリが、0セグメント内の先頭の予備ブロック(物理ブロック番号494〜496)に記録される。この際、PBR、FAT及びルートディレクトリが記録された各ブロックには、更新前の元のPBR、FAT及びルートディレクトリが記録されていたブロックの論理アドレスと同一の論理アドレスが記録される。具体的には、物理ブロック番号494〜496のブロックに、論理アドレス1〜3が記録される。また、2回目のセッションクローズ処理を行うことによって、第1のサブディレクトリ(Sub1)のサブディレクトリエントリ(1)が新規に作成され、1セグメントのデータ記録領域(物理ブロック番号512,論理アドレス492のブロック)に記録される。続いて、1回目のセッションクローズ処理時に記録されたPBR、FAT、ルートディレクトリエントリが消去される。すなわち、物理ブロック番号3,4,5のブロックのブロックステータスが“0”とされる。
(3回目のセッションクローズ処理)
次に、上述のような2回目のセッションクローズ処理をした後のメモリスティック1に対して、例えば、図25に示すようなファイル等を追記したとする。すなわち、ルートディレクトリ下に第4のファイル(File4)を追記し、第1のサブディレクトリ(Sub1)下に第2のサブディレクトリ(Sub2)を追記し、第2のサブディレクトリ(Sub2)下に第5のファイル(File5)を追記し、第1のサブディレクトリ(Sub1)下に第6のファイル(File6)を追記したとする。そして、その後に、3回目のセッションクローズ処理をしたとする。
図26に、3回目のセッションクローズ処理をした後のライトワンスフォーマットの管理データの記録イメージを示す。また、図27に、3回目のセッションクローズ処理をした後のMS−DOS互換フォーマットの管理データ及び実体データの記録イメージを示す。
2回目のセッションクローズ処理をした後、3回目のセッションクローズ処理をする前には、メモリスティック1の予備ブロック管理番号11〜14のページ領域に、第4のファイル(File4)を指し示すファイルエントリ(4)と、第2のサブディレクトリ(Sub2)を指し示すサブエントリ(2)と、第5のファイル(File5)を指し示すファイルエントリ(5)と、第6のファイル(File6)を指し示すファイルエントリ(6)とが記録される。また、第4のファイル(File1)〜第5のファイル(File5)の各実体データは、0セグメントのデータ記録領域に記録される。第6のファイル(File6)の実体データは、0セグメントのデータ領域と1セグメントのデータ領域とに2分割されて記録されている。この第6のファイルの実体データは、第1のサブディレクトリエントリ(1)が途中に入り、2分断されている領域の論理アドレスが連続していない。このような場合、ファイルエントリ(6)には、フラグメントとが記録される。
以上の状態から3回目のセッションクローズ処理が行われると、予備ブロック管理番号15〜17のページ領域に、第1のセッションアンカ(ペア識別用IDが“3”となっている)と、第1のサブディレクトリ(Sub2)の実体であるサブディレクトリエントリが格納されているブロックを示すディレクトリマーク(2)と、第2のセッションアンカ(ペア識別用IDが“3”となっている)とが記録される。
さらに、更新されたPBR、FAT及びルートディレクトリが、0セグメント内の予備ブロック(物理ブロック番号497〜499)に記録される。この際、PBR、FAT及びルートディレクトリが記録された各ブロックには、更新前の元のPBR、FAT及びルートディレクトリが記録されていたブロックの論理アドレスと同一の論理アドレスが記録される。具体的には、物理ブロック番号497〜499のブロックに、論理アドレス1〜3が記録される。また、更新された第1のサブディレクトリ(Sub1)のサブディレクトリエントリ(1)が、1セグメント内の先頭の予備ブロック(物理ブロック番号1006)に記録される。この際、サブディレクトリエントリ(1)が記録されたブロックには、更新前の元のサブディレクトリエントリ(1)が記録されていたブロックの論理アドレスと同一の論理アドレスが記録される。具体的には、物理ブロック番号1004のブロックに、論理アドレス494が記録される。
また、3回目のセッションクローズ処理を行うことによって、第2のサブディレクトリ(Sub1)のサブディレクトリエントリ(1)が新規に作成され、1セグメントのデータ記録領域の空きブロックの先頭(例えば物理ブロック番号613,論理アドレス593のブロック)に記録される。続いて、2回目のセッションクローズ処理時に記録されたPBR、FAT、ルートディレクトリエントリ、並びに、第1のサブディレクトリのサブディレクトリエントリ(1)が消去される。すなわち、物理ブロック番号494,495,496のブロック並びに物理ブロック番号510のブロックの、ブロックステータスが“0”とされる。
本発明の実施の形態のライトワンス型の小型ICメモリ装置及びホスト機器の外観斜視図である。 上記小型ICメモリ装置のメモリセルの構成を示す図である。 表面側から見たときの上記小型ICメモリ装置の斜視図である。 裏面側から見たときの上記小型ICメモリ装置の斜視図である。 上記小型ICメモリ装置のピン配置を説明するための図である。 上記小型ICメモリ装置の内部回路を示すブロック構成図である。 上記小型ICメモリ装置のインタフェース構成を説明するための図である。 上記小型ICメモリ装置の物理フォーマット上で定義されているセグメントとブロックの関係、並びに、物理ブロック番号と論理アドレスとの関係を表した図である。 上記小型ICメモリ装置の物理フォーマット上で定義されているブート領域及びユーザ領域を説明するための図である。 上記小型ICメモリ装置の物理フォーマット上で定義されているページを説明するための図である。 上記小型ICメモリ装置の論理フォーマット上で定義されている予備ブロック管理番号を説明するための図である。 上記小型ICメモリ装置の論理フォーマット上で定義されているエントリページを説明するための図である。 上記エントリページの種別毎フィールドイメージを説明するための図である。 上記小型ICメモリ装置内に記録されたファイル等のディレクトリ構成例を示す図である。 図14で示したディレクトリ構成でファイルを記録した場合におけるエントリページの記録イメージを示す図である。 図14で示したディレクトリ構成のファイルから任意のファイルを削除したのちのディレクトリ構成を示す図である。 図16で示したファイルを削除した場合におけるエントリページの記録イメージを示す図である。 セッションクローズ処理の処理順序を示すフローチャートである。 1回目のセッションクローズ処理時に上記小型ICメモリ内に記録されているファイルのディレクトリ構成を示す図である。 1回目のセッションクローズ処理後のエントリページの記録イメージを示す図である。 1回目のセッションクローズ処理後のデータ記録領域の記録イメージを示す図である。 2回目のセッションクローズ処理時に上記小型ICメモリ内に記録されているファイルのディレクトリ構成を示す図である。 2回目のセッションクローズ処理後のエントリページの記録イメージを示す図である。 2回目のセッションクローズ処理後のデータ記録領域の記録イメージを示す図である。 3回目のセッションクローズ処理時に上記小型ICメモリ内に記録されているファイルのディレクトリ構成を示す図である。 3回目のセッションクローズ処理後のエントリページの記録イメージを示す図である。 3回目のセッションクローズ処理後のデータ記録領域の記録イメージを示す図である。
符号の説明
1 メモリスティック、2 ホスト機器

Claims (12)

  1. データをビット単位で1回だけ書き込み可能な記録媒体であって、ファイルの実体データが記録される実体データ記録領域と、記録されているファイルの管理データ及び上記実体データの更新データが記録される予備領域と有する記録媒体を備え、
    上記予備領域は、上記管理データが、上記実体データ記録領域のデータ記録方向とは逆方向に記録されていくことを特徴とするメモリ装置。
  2. 上記予備領域は、管理番号が設定された所定のデータ単位であるページに分割され、
    上記管理データは、管理番号の上位又は下位の一方から連続に記録され、
    上記更新データは、管理番号の上位又は下位のうち上記管理データが記録されていな一方から連続に記録されることを特徴とする請求項1記載のメモリ装置。
  3. 上記予備領域には、上記管理データとして、当該記録媒体に記録されたファイルを指示するファイルエントリ、階層ディレクトリ構造における最上位ディレクトリを指示するルートエントリ、及び、階層ディレクトリ構造におけるサブディレクトリを指示するサブエントリが、生成された各ファイル、ルートディレクトリ及びサブディレクトリに対応して記録され、
    上記ファイルエントリには、指示しているファイルの名称と、当該ファイルの親ディレクトリを指示するルートエントリ又はサブエントリを特定する情報と、当該ファイルの実体データの記録位置を特定する情報とが含められ、
    上記サブエントリには、指示しているサブディレクトリの名称と、当該サブディレクトリの親ディレクトリを指示するルートエントリ又はサブエントリを特定する情報とが含められていることを特徴とする請求項2記載のメモリ装置。
  4. 上記予備領域には、上記更新データとして、MS−DOSフォーマットにおけるPBR、ファイルアロケーションテーブル、ルートディレクトリエントリ及びサブディレクトリエントリが記録されることを特徴とする請求項3記載のメモリ装置。
  5. データをビット単位で1回だけ書き込み可能な記録媒体に対するファイル管理方法において、
    上記記録媒体上のデータ記録領域を、ファイルの実体データが記録される実体データ記録領域と、記録されているファイルの管理データ及び上記実体データの更新データが記録される予備領域とに分割して管理し、
    上記予備領域に対して、上記管理データを、上記実体データ記録領域のデータ記録方向とは逆方向に記録していくことを特徴とするファイル管理方法。
  6. 上記予備領域を、管理番号が設定された所定のデータ単位であるページに分割し、上記管理データを、予備領域の管理番号の上位又は下位の一方から連続に記録し、上記更新データを、予備領域の管理番号の上位又は下位のうち上記管理データが記録されていな一方から連続に記録することを特徴とする請求項5記載のファイル管理方法。
  7. 上記予備領域に、上記管理データとして、当該記録媒体に記録されたファイルを指示するファイルエントリ、階層ディレクトリ構造における最上位ディレクトリを指示するルートエントリ、及び、階層ディレクトリ構造におけるサブディレクトリを指示するサブエントリを、生成された各ファイル、ルートディレクトリ及びサブディレクトリに対応して記録し、
    上記ファイルエントリには、指示しているファイルの名称と、当該ファイルの親ディレクトリを指示するルートエントリ又はサブエントリを特定する情報と、当該ファイルの実体データの記録位置を特定する情報とが含められ、
    上記サブエントリには、指示しているサブディレクトリの名称と、当該サブディレクトリの親ディレクトリを指示するルートエントリ又はサブエントリを特定する情報とが含められていることを特徴とする請求項6記載のファイル管理方法。
  8. 上記予備領域に、上記更新データとして、MS−DOSフォーマットにおけるPBR、ファイルアロケーションテーブル、ルートディレクトリエントリ及びサブディレクトリエントリを記録することを特徴とする請求項7記載のファイル管理方法。
  9. データをビット単位で1回だけ書き込み可能な記録媒体であって、ファイルの実体データが記録される実体データ記録領域と、記録されているファイルの管理データ及び上記実体データの更新データが記録される予備領域と有する記録媒体を備えるメモリ装置に対して、ファイルの記録又は再生を行う記録再生部を有し、
    上記記録再生部は、上記予備領域に対して、上記管理データを、上記実体データ記録領域のデータ記録方向とは逆方向に記録していくことを特徴とする記録再生装置。
  10. 上記予備領域は、管理番号が設定された所定のデータ単位であるページに分割されており、
    上記記録再生部は、上記管理データを、予備領域の管理番号の上位又は下位の一方から連続に記録し、上記更新データを、予備領域の管理番号の上位又は下位のうち上記管理データが記録されていな一方から連続に記録することを特徴とする請求項9記載の記録再生装置。
  11. 上記記録再生部は、上記予備領域に対して、上記管理データとして、当該記録媒体に記録されたファイルを指示するファイルエントリ、階層ディレクトリ構造における最上位ディレクトリを指示するルートエントリ、及び、階層ディレクトリ構造におけるサブディレクトリを指示するサブエントリを、生成された各ファイル、ルートディレクトリ及びサブディレクトリに対応して記録し、
    上記ファイルエントリには、指示しているファイルの名称と、当該ファイルの親ディレクトリを指示するルートエントリ又はサブエントリを特定する情報と、当該ファイルの実体データの記録位置を特定する情報とが含められ、
    上記サブエントリには、指示しているサブディレクトリの名称と、当該サブディレクトリの親ディレクトリを指示するルートエントリ又はサブエントリを特定する情報とが含められていることを特徴とする請求項10記載の記録再生装置。
  12. 上記記録再生部は、上記予備領域に対して、上記更新データとして、MS−DOSフォーマットにおけるPBR、ファイルアロケーションテーブル、ルートディレクトリエントリ及びサブディレクトリエントリを記録することを特徴とする請求項11記載の記録再生装置。
JP2006239414A 2006-09-04 2006-09-04 メモリ装置、ファイル管理方法及び記録再生装置 Pending JP2007018528A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006239414A JP2007018528A (ja) 2006-09-04 2006-09-04 メモリ装置、ファイル管理方法及び記録再生装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006239414A JP2007018528A (ja) 2006-09-04 2006-09-04 メモリ装置、ファイル管理方法及び記録再生装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2001392453A Division JP2003196142A (ja) 2001-12-25 2001-12-25 ライトワンス型メモリ装置及びファイル管理方法

Publications (1)

Publication Number Publication Date
JP2007018528A true JP2007018528A (ja) 2007-01-25

Family

ID=37755592

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006239414A Pending JP2007018528A (ja) 2006-09-04 2006-09-04 メモリ装置、ファイル管理方法及び記録再生装置

Country Status (1)

Country Link
JP (1) JP2007018528A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8255438B2 (en) 2008-06-25 2012-08-28 Nikon Corporation Storage control device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8255438B2 (en) 2008-06-25 2012-08-28 Nikon Corporation Storage control device

Similar Documents

Publication Publication Date Title
US7634613B2 (en) Memory device and recording and/or reproducing apparatus employing this memory device
US7039754B2 (en) Detachably mounted removable data storage device
US7472251B2 (en) Data storage apparatus detachably mounted to a host apparatus
US7752412B2 (en) Methods of managing file allocation table information
US7681008B2 (en) Systems for managing file allocation table information
US6895490B1 (en) Method for making a write-once memory device read compatible with a write-many file system
US7051251B2 (en) Method for storing data in a write-once memory array using a write-many file system
KR20010037155A (ko) 플래시 파일 시스템
WO2008042594A1 (en) Managing file allocation table information
JP2007018528A (ja) メモリ装置、ファイル管理方法及び記録再生装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070703

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070903

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20071023