(57)【要約】【課題】  高い書き込み速度を実現可能なホスト機器を提供する。【解決手段】  ホスト機器１は、プログラムに従って所定の動作を行い、書き込み関数呼び出しを発行するアプリケーション２を含む。管理システム３は、メモリ領域上で区画された単位領域を書き込みデータが記憶される書き込み領域として順次割り当てる機能を有し、単位領域の自然数倍の大きさからなる管理単位を割り当て位置の決定単位として用い、書き込み関数呼び出しを受けて管理単位ごとの実現可能な書き込み速度順に従って管理単位を前記書き込み領域として割り当てる。コントローラ４は、管理システムが割り当てた単位領域に書き込みデータを書き込む旨の指示をメモリカードに出す。【選択図】図１
2006285669.tif 000002
【特許請求の範囲】
【請求項１】
プログラムに従って所定の動作を行い、書き込み関数呼び出しを発行するアプリケーションと、
メモリ領域上で区画された単位領域を書き込みデータが記憶される書き込み領域として順次割り当てる機能を有し、且つ前記単位領域の自然数倍の大きさからなる管理単位を割り当て位置の決定単位として用い、且つ前記書き込み関数呼び出しを受けて前記管理単位ごとの実現可能な書き込み速度順に従って前記管理単位を前記書き込み領域として割り当てる管理システムと、
前記管理システムが割り当てた前記単位領域に前記書き込みデータを書き込む旨の指示をメモリカードに出すコントローラと、
を具備することを特徴とするホスト機器。
【請求項２】
前記管理システムが、
前記管理単位内の最後に書き込みされた前記単位領域以降の単位領域群が使用されていない第１条件を満たす場合に、前記単位領域群の先頭の前記単位領域から順に前記書き込み領域として割り当て、
前記第１条件を満たさない時点から、使用されていない前記単位領域からなる前記管理単位から順に書き込みデータを割り当てる、
ことを特徴とする請求項１に記載のホスト機器。
【請求項３】
プログラムに従って所定の動作を行い、領域確保関数を発行するアプリケーションと、
メモリ領域上で区画された単位領域を書き込みデータが記憶される書き込み領域として順次割り当てる機能を有する管理システムと、
前記管理システムが割り当てた前記単位領域に前記書き込みデータを書き込む旨の指示をメモリカードに出すコントローラと、
を具備し、
前記管理システムは、領域確保関数を受けると、前記書き込みデータの大きさに応じた大きさ分の前記単位領域からなる予約領域を予約し、前記予約領域に対する暫定的な管理用データを書き込む指示を出し、前記予約領域を前記書き込み領域として割り当てた後に、管理用データを書き込むこと無く前記書き込みデータを書き込む指示を出し、前記書き込みデータの書き込み終了後に最終的な管理用データを書き込む指示を出す、
ことを特徴とするホスト機器。
【請求項４】
プログラムに従って所定の動作を行い、要求書き込み速度の情報を含んだ領域問い合わせ関数を発行するアプリケーションと、
メモリ領域上で区画された単位領域を書き込みデータが記憶される書き込み領域として順次割り当てる機能を有し、且つ前記領域問い合わせ関数を受けると、前記要求書き込み速度以上の速度での書き込みが可能な前記単位領域の数を前記アプリケーションに通知する管理システムと、
前記管理システムが割り当てた前記単位領域に前記書き込みデータを書き込む旨の指示をメモリカードに出すコントローラと、
を具備することを特徴とするホスト機器。
【請求項５】
前記アプリケーションが、書き込みが可能な前記単位領域の数を考慮して、指定書き込み速度を得られる前記単位領域からなる指定書き込み領域のみに前記書き込みデータを書き込むためのファイルを開くファイルオープン関数を発行する機能、および前記指定書き込み領域のみに前記書き込みデータを書き込む旨の指示の書き込み関数呼び出しを発行する機能をさらに有することを特徴とする請求項４に記載のホスト機器。
【請求項６】
前記管理システムが、前記メモリカードへの電源供給の開始の際に前記メモリカードから読み出される前記メモリカードの性能予測パラメータを用いて前記要求書き込み速度以上の速度での書き込みが可能な前記単位領域の数を算出することを特徴とすることを特徴とする請求項４に記載のホスト機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホスト機器に関し、例えば、メモリカードを挿入されるホスト機器に関する。
【背景技術】
【０００２】
現在、音楽データや映像データの記録メディアとしてフラッシュメモリ等の不揮発性半導体メモリを用いたメモリカードが使われている。メモリカードに使用されるフラッシュメモリの代表例としては、ＮＡＮＤ型フラッシュメモリが挙げられる。
【０００３】
ＮＡＮＤ型フラッシュメモリは、以下の特徴を有する。１）データの書き込みはページ単位で行われる。２）データの消去はブロックと呼ばれる複数のページをまとめた単位で行われる。このため、書き込み済みのページを有するブロック内に含まれるページ内のデータがランダムに更新される場合、「引越し書き込み」と呼ばれる以下の処理が行われる。引越し書き込みでは、書き込まれるデータ（新データ）がデータの書き込まれていない新ブロックに書き込まれ、旧データ（新データに書き換えられるデータ）を含む旧ブロックから、書き換えられない残りのデータが新ブロックにコピーされる。このため、ひとつのページの書き込みにかなりの時間がかかる場合がある。なお、同じブロック内で先頭ページから連続したページに順次シーケンシャルにデータが書き込まれる場合は引越し書き込みは発生せず、効率的なデータ書き込みが可能である。
【０００４】
現在、メモリカードのファイルシステムとしてはＦＡＴ（file allocation table）ファイルシステムが用いられている。ＦＡＴファイルシステムは、クラスタと呼ばれるデータ単位でデータの読み書きが行われ、各データがどのクラスタに割り当てられているかがＦＡＴと呼ばれるテーブルで管理される。ＦＡＴファイルシステムでは、ＦＡＴやクラスタデータの書き込み、更新がランダムに発生する。
【０００５】
このため、ＮＡＮＤ型フラッシュメモリとＦＡＴファイルシステムが併用されたメモリカードでは、通常、引越し書き込みが発生する頻度が高い。この結果、ファイルの書き込み、書換え速度が低下する場合がある。
【０００６】
現在、このようなメモリカードを利用するホスト機器のファイルシステムにおいて、上記のような特性を考慮したＡＰＩ(application program interface)が用意されていない。このため、アプリケーションがこのようなメモリカードの特性を考慮したデータ書き込み制御を行うことが困難であった。このことは、特に一定以上のデータ書き込み速度が要求されるＡＶデータを扱うアプリケーションにとって問題となっていた。
【０００７】
この出願の発明に関連する先行技術文献情報としては次のものがある。
【特許文献１】特開2003-296177号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、高い書き込み速度を実現可能なホスト機器を提供しようとするものである。
【課題を解決するための手段】
【０００９】
本発明の第１の視点によるホスト機器は、プログラムに従って所定の動作を行い、書き込み関数呼び出しを発行するアプリケーションと、メモリ領域上で区画された単位領域を書き込みデータが記憶される書き込み領域として順次割り当てる機能を有し、且つ前記単位領域の自然数倍の大きさからなる管理単位を割り当て位置の決定単位として用い、且つ前記書き込み関数呼び出しを受けて前記管理単位ごとの実現可能な書き込み速度順に従って前記管理単位を前記書き込み領域として割り当てる管理システムと、前記管理システムが割り当てた前記単位領域に前記書き込みデータを書き込む旨の指示をメモリカードに出すコントローラと、を具備することを特徴とする。
【００１０】
本発明の第２の視点によるホスト機器は、プログラムに従って所定の動作を行い、領域確保関数を発行するアプリケーションと、メモリ領域上で区画された単位領域を書き込みデータが記憶される書き込み領域として順次割り当てる機能を有する管理システムと、前記管理システムが割り当てた前記単位領域に前記書き込みデータを書き込む旨の指示をメモリカードに出すコントローラと、を具備し、前記管理システムは、領域確保関数を受けると、前記書き込みデータの大きさに応じた大きさ分の前記単位領域からなる予約領域を予約し、前記予約領域に対する暫定的な管理用データを書き込む指示を出し、前記予約領域を前記書き込み領域として割り当てた後に、管理用データを書き込むこと無く前記書き込みデータを書き込む指示を出し、前記書き込みデータの書き込み終了後に最終的な管理用データを書き込む指示を出す、ことを特徴とする。
【００１１】
本発明の第３の視点によるホスト機器は、プログラムに従って所定の動作を行い、要求書き込み速度の情報を含んだ領域問い合わせ関数を発行するアプリケーションと、メモリ領域上で区画された単位領域を書き込みデータが記憶される書き込み領域として順次割り当てる機能を有し、且つ前記領域問い合わせ関数を受けると、前記要求書き込み速度以上の速度での書き込みが可能な前記単位領域の数を前記アプリケーションに通知する管理システムと、前記管理システムが割り当てた前記単位領域に前記書き込みデータを書き込む旨の指示をメモリカードに出すコントローラと、を具備することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、高い書き込み速度を実現可能なホスト機器を提供できる。
【発明を実施するための最良の形態】
【００１３】
以下に本発明の実施の形態について図面を参照して説明する。なお、以下の説明において、略同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【００１４】
（１）（第１実施形態）  
［１−１］構成  
図１は、本発明の第１実施形態に係るホスト機器の主要部の構成を示す図である。ホスト機器（以下、ホストと称する）１は、接続されるメモリカード１１に対してアクセスを行うためのハードウエアおよびソフトウエア（システム）を備えている。より具体的には、ホストは、少なくとも、図１に示すように、アプリケーション２、ファイルシステム（管理システム）３、ホストコントローラ４を有する。メモリカード１１は、カードコントローラ１２、ＮＡＮＤ型フラッシュメモリ（以下、フラッシュメモリ）１３を有する。メモリカード１１の構成については、後に詳述する。
【００１５】
アプリケーション２は、ＲＯＭ（read-only memory）および（または）ＲＡＭ（random access memory）上のプログラムにより実現される。ＣＰＵ（central processing unit）は、ＲＡＭ上に読み出されたプログラムに応じて所定の処理を実行する。アプリケーション２は、メモリカード１１にデータを書き込む際、その旨の信号をファイルシステム３に供給する。
【００１６】
ファイルシステム３は、アプリケーション２が書き込みを要求したデータをファイルシステムに従って管理するための動作を行う。すなわち、ファイルシステム３は、クラスタと呼ばれるデータ単位でファイルデータの読み書きを行い、各ファイルデータがどのクラスタに割り当てられているかをファイルシステム３内のメモリに記憶されるテーブルで管理する。アプリケーション２とファイルシステム３との間の命令および応答の授受は、ＡＰＩにより行われる。ファイルシステム３として、典型的には、ＦＡＴファイルシステムが用いられる。
【００１７】
ホストコントローラ４は、ファイルシステム３からの要求に従って、メモリカード１１からデータを読み出したり、メモリカード１１にデータを書き込んだりするための動作を司る機能を有する。すなわち、ホストコントローラ４は、データの書き込み、読み出し、消去をメモリカード１１に行わせるためのコマンドをメモリカード１１に供給する。ホストコントローラ４は、メモリカード１１とのインタフェースを有し、このインタフェースを介して、メモリカード１１と通信を行う。
【００１８】
次に、図１のホストに用いられるメモリカードについて、図２を参照して説明する。図２は、本発明の第１実施形態に係るホストに用いられるメモリカード１１の構成を示すブロック図である。メモリカード１１は、ホスト１に接続された時に電源供給を受けて動作し、ホスト１からのアクセスに応じた処理を行う。
【００１９】
カードコントローラ１２は、フラッシュメモリ１３内部の物理状態（どこの物理ブロックアドレスに、何番目の論理セクタアドレスデータが含まれているか、あるいは、どこのブロックが消去状態であるか）を管理するものとして構築されている。図２に示すように、カードコントローラ１２は、ＣＰＵ２１、ＲＯＭ２２、メモリインタフェース部２３、ホストインタフェース部２４、バッファ２５、ＲＡＭ２６を有する。
【００２０】
メモリインタフェース部２３は、カードコントローラ１２とフラッシュメモリ１３との間のインタフェース処理を行う。ホストインタフェース部２４は、カードコントローラ１２とホスト１との間のインタフェース処理を行う。
【００２１】
バッファ２５は、ホスト１から送られてくるデータがフラッシュメモリ１３へ書き込まれる際に、一定量のデータ（例えば１ページ分）を一時的に記憶する。また、バッファ２５は、フラッシュメモリ１３から読み出されるデータがホスト１へ送り出される際に、一定量のデータを一時的に記憶する。
【００２２】
ＣＰＵ２１は、メモリカード１１全体の動作を司る。ＣＰＵ２１は、例えば、メモリカード１１が電源供給を受けた際に、ＲＯＭ２２の中に格納されているファームウェア（後述する制御プログラム）をＲＡＭ２６上にロードして所定の処理を実行する。この処理により、各種のテーブル（後述）がＲＡＭ２６上で作成される。ＣＰＵ２１は、また、ホスト１から書き込コマンド、読出コマンド、消去コマンドを受けてフラッシュメモリ１３上の所定の処理を実行したり、バッファ２５を通じたデータ転送処理を制御したりする。
【００２３】
ＲＯＭ２２は、ＣＰＵ２１により制御される制御プログラムなどを格納する。ＲＡＭ２６は、ＣＰＵ２１の作業エリアとして使用され、制御プログラムや各種のテーブルを記憶する。
【００２４】
フラッシュメモリ１３は、消去時の消去ブロックサイズ（消去単位のブロックサイズ）が、例えば２５６ｋバイト（２５６ｋＢ）に定められている不揮発性半導体メモリであり、例えば１６ｋＢ単位でデータの書き込み・読み出しを行う。なお、フラッシュメモリ３は、１つのメモリセルに１ビットの情報を記憶する２値メモリであっても良いし、１つのメモリセルに２ビット以上の情報を記憶する多値メモリであっても良い。また、フラッシュメモリ３およびコントローラ４は、基板上に個別に設けられていても良いし、同一のＬＳＩ（large-scale integrated circuit）基板上に配置されていても良い。
【００２５】
フラッシュメモリ１３のデータが書き込まれる領域（データ記憶領域）は、保存されるデータに応じて複数の領域に区分けされている。フラッシュメモリ１３は、データ記憶領域として、ユーザデータ領域３４と、管理データ領域３１と、機密データ領域３２と、保護データ領域３３とを備えている。
【００２６】
ユーザデータ領域３４は、ユーザデータを格納し、メモリカードを使用するユーザが自由にアクセスおよび使用することが可能な領域である。
【００２７】
管理データ領域３１は、主にメモリカードに関する管理情報を格納し、メモリカード１１のセキュリティ情報やメディアＩＤなどのカード情報を格納する。
【００２８】
機密データ領域３２は、機密データを格納し、暗号化に用いられる鍵情報や認証時に使用される機密データを保存し、ホスト１からはアクセス不可能な領域である。
【００２９】
保護データ領域３３は、重要なデータを格納し、メモリカード１１に接続されたホスト１との相互認証によりホスト１の正当性が証明された場合にのみアクセスが可能となる領域である。
【００３０】
図３は、フラッシュメモリ１３のデータ配置を示している。フラッシュメモリ１３の各ページは、例えば２１１２Ｂ（５１２Ｂ分のデータ記憶部×４＋１０Ｂ分の冗長部×４＋２４Ｂ分の管理データ記憶部）を有している。また、例えば１２８ページ分が一つの消去単位（すなわち、２５６ｋＢ＋８ｋＢ）である。なお、以下の説明においては、便宜上、このフラッシュメモリの消去単位を２５６ｋＢと呼ぶ。
【００３１】
また、フラッシュメモリ１３は、フラッシュメモリ１３へのデータ入出力を行うためのページバッファ１３Ａを備えている。ページバッファ１３Ａの記憶容量は、例えば２１１２Ｂ（２０４８Ｂ＋６４Ｂ）である。データ書き込みなどの際には、ページバッファは１３Ａ、フラッシュメモリ１３に対するデータ入出力処理を自身の記憶容量に相当する１ページ分の単位で実行する。
【００３２】
また、図３においては消去単位が２５６ｋＢブロックである場合を例示しているが、消去単位が例えば１６ｋＢブロックとなるように構築することもできる。この場合、各ページは５２８Ｂ（５１２Ｂ分のデータ記憶部＋１６Ｂ分の冗長部）を有しており、３２ページ分が１つの消去単位（すなわち、１６ｋＢ＋０．５ｋＢ（ｋは１０２４））である。
【００３３】
上記のように、ファイルシステム３は、クラスタ単位で書き込み・読み出しを管理している。一方、フラッシュメモリ１３では、ページ（例えば１６ｋＢ）単位で書き込み・読み出しが行われ、ブロック（例えば２５６ｋＢ）単位で消去が行われる。この比較を図４、図５に示す。図４は、ホスト１から見たときのフラッシュメモリ１３の領域分割を示し、図５は、フラッシュメモリ１３内部での実際の記憶領域分割の概要を示す。図４に示すように、ホスト１から見た場合はクラスタ４１が記憶単位（単位領域）であり、複数のクラスタの集合として１つのＡＵ（管理領域）４２が定義される。なお、ＡＵについては後述する。
【００３４】
一方、フラッシュメモリ１３においては、図５に示すように、複数のページ４３からブロック４４が構成される。この関係は、図５のホスト機器側から見た場合のクラスタ４１とＡＵ４２とのの関係に類似している。しかしながらページ４３とクラスタ４１は同一である必要はなく、クラスタ４１はページ４３の自然数倍にすることができる。同様にＡＵ４２はブロック４４の自然数倍にすることができる。
【００３５】
［１−２］パラメータ  
フラッシュメモリ１３のユーザデータ領域３４のＢＰＢ（BIOS parameter block）に記憶媒体の物理的なパラメータ（属性）が書き込まれている。このパラメータは、ファイルシステムで使用される。ホスト１は、フラッシュメモリ１３をフォーマットする時、後述のように、このパラメータ（属性）を書き込む。ファイルシステムは、起動時にＢＰＢを読み込むことにより、フラッシュメモリ１３のパラメータを認識する。
【００３６】
図６は、本発明の第１実施形態に係るＢＰＢに書き込まれているパラメータを示している。図６に示すＢＰＢは、ファイルシステムがＦＡＴ３２の場合である。図６に示すように、ＢＰＢには、ＯＥＭ名、セクタサイズ、セクタ数／クラスタ、予約セクタ数、ＦＡＴの数、メディアディスクリプタ−（Descriptor）、セクタ数／ＦＡＴ、セクタ数／トラック、ヘッド数、隠しセクタ数、全Ｂｉｇセクタ数、Ｂｉｇセクタ数／ＦＡＴ、拡張フラグ、ファイルシステムバージョン、ルートの最初のクラスタ、ファイルシステム情報セクタ位置、バックアップブートセクタ位置、ドライブＩＤ、拡張ブートサイン、シリアル番号、ボリューム名、ファイルシステムタイプ、フラッシュデバイスフラグ（ＦＤＦ）、のパラメータが書き込まれている。
【００３７】
フラッシュデバイスフラグは、対象とするメディアがフラッシュメモリデバイスであることを示す。例えば、フラッシュデバイスフラグが“０”の場合、フラッシュメモリデバイスではない（フロッピー（登録商標）ディスク、ハードディスクなど）ことを示す。フラッシュデバイスフラグが、“１”の場合、メディアがフラッシュメモリデバイスであることを示す。
【００３８】
消去ブロックサイズには、消去ブロックの自然数倍の大きさ、すなわち、ＡＵサイズが格納される。ファイルシステムは、ＢＰＢのＡＵサイズ（消去ブロックサイズ）を参照して、ＡＵ境界位置を識別する。
【００３９】
ＢＰＢに、フラッシュデバイスフラグが書き込まれることにより、ファイルシステム３は、この情報を直接読み取ることができる。そして、ファイルシステム３およびアプリケーション２が、この情報を使用して書き込み方法を制御することにより、書き込み速度を向上させることができる。
【００４０】
次に、ホスト１がメモリカード１１をフォーマットする時の動作を説明する。メモリカードリーダーのスロットにメモリカード１１が挿入されると、ホスト１はＦＡＴを読み込む。もし、ＦＡＴが読み込めない、つまりフラッシュメモリ１３がフォーマットされておらず、さらにユーザがフラッシュメモリをフォーマットすることを希望する場合、ホストはフラッシュメモリ１３のフォーマットを開始する。
【００４１】
次に、ブートセクタ、ディレクトリ領域、ＦＡＴ領域、データ領域が確保される。次に、ブートセクタにＢＰＢが書き込まれる。図６の、上から順にＯＥＭ名乃至ファイルシステムタイプのパラメータの取得は、従来と同様である。
【００４２】
フラッシュデバイスフラグのパラメータは、ホスト１がメモリカード１１に対してフラッシュメモリ１３の情報を得るためのコマンドを送り、このコマンドに対する応答から取り出された情報に従って書き込まれる。ホスト１がフラッシュメモリ１３の情報を得るためのコマンドは、メモリカード１１の規格で用意されている。しかし、このようなコマンドが用意されていないホストの場合、必要に応じてフォーマットソフトウェアの使用者が、手動で上記のパラメータの値を設定し、フォーマットソフトウェアはその値をＢＰＢに書き込む。
【００４３】
［１−３］書き込み動作  
データの書き込み動作について、図７、図８を参照して説明する。図７は、本発明の第１実施形態に係るホスト機器の書き込み動作を示すフローチャートである。図８は、第１実施形態に係るホスト機器によって書き込まれるクラスタの順序を示す図である。
【００４４】
アプリケーション２とファイルシステム３との間のＡＰＩは、以下に示される書き込み動作を実現可能な書き込み関数呼び出しを含んでいる。アプリケーション２は、この書き込み関数呼び出しを介してファイルシステム３に書き込みを指示する。ファイルシステム３は、図７、図８に示される動作が行われるように、データを適当なクラスタ４１に割り当て、且つデータが、割り当てられたクラスタ４１に実際に書き込まれるようにカードコントローラ１２に指示を行う。以下、ファイルシステム３がデータを“書き込む”と記載した場合、ファイルシステム３が、使用されていないクラスタ４１をデータの書き込み領域として割り当て、割り当てられた書き込み領域にデータが実際に書き込まれるようにメモリカードに指示を出すことを意味するものとする。クラスタ４１にデータが“書き込まれた”場合も、同様である。
【００４５】
図７に示すように、まず、ファイルシステム３は、ＢＰＢ内のＦＤＦを参照し、書き込み対象のメディアがフラッシュメモリを用いたデバイスであるかどうかをチェックする（ステップＳ１）。メディアがフラッシュデバイスでなければ、消去ブロックサイズなどを意識せず、通常のフロッピー（登録商標）ディスクやハードディスクと同様のランダム書込み処理が行われる（ステップＳ２）。
【００４６】
メディアがフラッシュメモリデバイスである場合、ファイルシステム３は、ＦＡＴをチェックする。そして、ファイルシステム３は、直前の書き込みデータが、ＡＵ４２の途中のクラスタ４１に割り当てられており、且つ、そのＡＵ４２のそれ以降のクラスタ４１が使用されていないクラスタ（非使用）であるか否かを判断する（ステップＳ３）。この判定が真であった場合、図８に示すように、ＡＵ４２ａ中の最後に書き込まれたクラスタ４１ａの次のクラスタ４１ｂから順に書き込まれる（ステップＳ４）。連続する非使用クラスタに、順次書き込みが行われるので、フラッシュメモリ１３の書き込み能力範囲内で最大のスピードで書き込まれる。なお、図８中の参照符号４１ｃは、書き込み済みのクラスタである。
【００４７】
次に、直前の書き込みの際に途中で終了したＡＵ４２ａに対する書き込みが終了すると、ファイルシステム３は、ＦＡＴをチェックし、使用済みのクラスタを有さないＡＵ４２（クリーンなＡＵ４２）を検索する。そして、クリーンなＡＵ４２ｂ、４２ｄ、４２ｅに書き込みが行われる（ステップＳ５）。なお、クリーンなＡＵ４２ｂ、４２ｄ、４２ｅの書き込みの順番は、これに限られない。
【００４８】
一方、ステップＳ３の判定が、偽であった場合、ファイルシステム３は、ステップＳ５に移行する。
【００４９】
全てのクリーンなＡＵ４２に対する書き込みが終了した後にも書き込み要求が続いている場合、書き込み済みのクラスタ４１ｃを有するＡＵ４２ｃ内のクラスタ４１にデータが書き込まれる。
【００５０】
データの削除が適宜行われることにより、あるＡＵ４２内の全てのクラスタ４１が不使用状態（有効なデータが書き込まれていない状態）になった際に、そのＡＵ４２を消去する。そして、このＡＵ４２が、以降、クリーンなＡＵ４２として扱われる。
【００５１】
本発明の第１実施形態に係るホストは、アプリケーション２とファイルシステム３との間で授受される、所定の書き込み動作を実現するための書き込み関数呼び出しを有する。ファイルシステム３は、この書き込み関数呼び出しを受けると、ＡＵ４２内の書き込み済み（割り当て済み）のクラスタの配置（フラグメンテーション）に応じた書き込み速度の低下の少ないＡＵ４２内のクラスタ４１から順にデータを書き込む。このため、フラッシュデバイスにおけるデータ書込み速度の低下を抑えることができる。
【００５２】
（２）（第２実施形態）  
第２実施形態では、アプリケーションとファイルシステムとの間のＡＰＩが、ファイルシステムの更新を効率的に行うことを目的とした関数を含んでいる。構成は、ＡＰＩが異なることを除いて、第１実施形態と同じである。
【００５３】
ファイルシステムでは、通常、データの書き込み（更新）中に一定時間（１秒〜数秒）ごとにＦＡＴとディレクトリエントリ（directory entry）のファイルサイズ（以下、ＦＡＴと記載して、ＦＡＴとディレクトリエントリを意味することがある）などの更新が行われる。これによって、データの書き込み中にシステムハングアップなどのアクシデントによってデータの書き込みが完了しなかった場合でも、その書き込みがすべて無効になることを防ぎ、最後のＦＡＴの更新までのデータを復活させることができる。
【００５４】
しかし、上記のように、フラッシュデバイスの場合、データの更新する動作に時間がかかる。このため、ＦＡＴの更新にかなり時間がかかる場合があり、一定時間ごとのＦＡＴの更新はデータ書き込み速度の低下に繋がる。
【００５５】
［２−１］書き込み動作  
本発明の第２実施形態に係るホストによるデータの書き込み動作について、図９を参照して説明する。図９は、第２実施形態に係るホストの書き込み動作を示すフローチャートである。アプリケーション２とファイルシステム３との間のＡＰＩは、以下に示される書き込み動作を実現可能な関数を含んでいる。
【００５６】
図９に示すように、ユーザがデータの書き込みを要求した場合等、データの書き込みが必要となると、アプリケーション２は、ファイルシステム３に対して、書き込みを行うためのファイルを開く旨のファイルオープン関数を発行する（ステップＳ１１）。アプリケーション２は、図９に示す一連の書き込み動作の実行に先立ち、アプリケーション２上での動作に基づいて、書き込むデータ項目のサイズ（バイト数）、書き込むデータ項目の数を予測する。
【００５７】
ファイルシステム３は、ファイルオープン関数を受けると、書き込みファイルを開く（ステップＳ１２）。次に、アプリケーション２は、ファイルシステム３に対して領域確保関数を発行する。領域確保関数の入力パラメータとして、アプリケーション２が要求する、書き込むデータ項目のサイズ（バイト数）、書き込むデータ項目の数、データを書き込むためのファイルストリームが含まれる。
【００５８】
ファイルシステム３は、領域確保関数を受け取ると、メモリ領域内に、書き込むデータ項目のサイズおよび数に応じた大きさの書き込み可能領域を確保する（Ｓ１４）。なお、この確保される領域（予約領域）は、書き込み速度を上げる観点から、第１実施形態に記載の方法に従った優先順位で選択されるようにすることが好ましい。ファイルシステム３は、領域の確保後、実際に確保できた領域をアプリケーション２に通知する。
【００５９】
次に、ファイルシステム３は、予約領域に、データ書き込み終了時点での予測される、暫定的なＦＡＴを書き込む（ステップＳ１５）。
【００６０】
アプリケーション２は、書き込み関数呼び出しをファイルシステム３に発行する（ステップＳ１６）。ファイルシステム３は、書き込み関数呼び出しを受けると、予約領域に、ＦＡＴの更新を行わずに、データを書き込む（ステップＳ１７）。ここで、確保された領域が、データを書き込むのに不十分であった場合、ステップＳ１３乃至ステップＳ１７が繰り返される。
【００６１】
データの書き込みが終了すると、ファイルシステム３は、実際に書き込まれたデータに基づいて、本来の領域のＦＡＴを更新する（ステップＳ１８）。
【００６２】
書き込みが終了すると、アプリケーション２は、ファイルシステム３に対して、書き込みファイルを閉じる旨のファイルクローズ関数を発行する（ステップＳ１９）。ファイルシステム３は、この関数を受けて、書き込みファイルを閉じる（ステップＳ２０）。
【００６３】
本発明の第２実施形態に係るホストは、アプリケーション２とファイルシステム３との間で授受される領域確保関数を有する。ファイルシステム３は、領域確保関数を受けると、アプリケーション２が指定するサイズの書き込み領域を予約し、その予約領域に暫定的なＦＡＴを事前に書き込む。そして、データ書き込み中にはＦＡＴの更新は行われない。データ書き込み中のＦＡＴの更新を行わないことによって、書き込み速度の低下を防止できる。
【００６４】
また、ＦＡＴの事前書き込みによって、システムハングアップなどによってデータ書き込みの途中で処理が中断した場合でも、管理データとしてのＦＡＴは確保されるため、書き込みデータが失われることが回避される。
【００６５】
（３）（第３実施形態）  
第３実施形態では、アプリケーションとファイルシステムとの間のＡＰＩが、メモリカードに対するデータの書き込み速度を管理するための関数を含んでいる。
【００６６】
［３−１］構成  
構成は、以下に述べる点を除いて、第１実施形態と同じである。まず、第３実施形態に係るホストに用いられるメモリカード１１のＢＰＢには、図６に示すように、消去ブロックサイズ（ＥＢＳ）、書き込みページサイズのパラメータ、書き込みパフォーマンス（図示せぬ）、移動パフォーマンス（図示せぬ）が書き込まれている。
【００６７】
消去ブロックサイズは、対象とするメディアがフラッシュメモリデバイスであるときに消去ブロックのサイズを、例えば５１２Ｂ単位で示す。消去ブロックサイズが５１２ＫＢのＮＡＮＤフラッシュメモリを使用するメモリカードの場合、このフィールドの値は１０２４である。
【００６８】
書き込みページサイズは、対象とするメディアがフラッシュメモリデバイスであるときにページサイズを、例えば５１２Ｂ単位で示す。ページサイズが２ｋＢのフラッシュメモリを使用するメモリカードの場合、このフィールドの値は４である。
【００６９】
書き込みパフォーマンスおよび移動パフォーマンスに関しては、後に詳述する。
【００７０】
ＢＰＢに、消去ブロックサイズ、書き込みページサイズ、書き込みパフォーマンス、移動パフォーマンスが書き込まれることにより、ファイルシステム３は、これらの情報を直接読み取ることができる。そして、ファイルシステム３およびアプリケーション２は、これらの情報を参照することにより、メモリカード１１の書き込み速度を知得し、且つ書き込みの制御を容易に行うことができる。
【００７１】
ホスト１は、ＢＰＢに消去ブロックサイズ、書き込みページサイズのパラメータを書き込む機能を有する。ホスト１は、メモリカード１１をフォーマットする際、第１実施形態に示した各パラメータ取得に加えて、消去ブロックサイズ、書き込みページサイズ、書き込みパフォーマンス、移動パフォーマンスのパラメータを取得する。これらのパラメータは、フラッシュデバイスフラグのパラメータを取得する手順と同じである（第１実施形態を参照）。
【００７２】
［３−２］書き込み動作  
第３実施形態に係るホストによるデータの書き込み動作について、図１０を参照して説明する。図１０は、第３実施形態に係るホストの書き込み動作を示すフローチャートである。アプリケーション２とファイルシステム３との間のＡＰＩは、以下に示される書き込み動作を実現可能な書き込み関数呼び出しを含んでいる。
【００７３】
図１０に示すように、アプリケーション２は、自らのアプリケーションの特性に応じて、（ＡＶデータストリーム用などに）必要なデータ書き込み速度と必要なメモリ領域のサイズを算出する（ステップＳ２１）。なお、ホスト１によっては、アプリケーション２の種類に応じて数種類の異なったビットレートのモードに対応していることがある。この場合、ホスト１は、ユーザが選んだモードに応じて選ばれたアプリケーションが必要とするデータ書き込み速度と必要なメモリ領域のサイズを決める必要がある。
【００７４】
アプリケーション２は、領域問い合わせ関数をファイルシステム３に発行することにより、ファイルシステム３に対して必要書き込み速度以上の速度が得られるメモリ領域のサイズを問い合わせる（ステップＳ２２）。領域問い合わせ関数の入力パラメータとしては、必要な書き込み速度、ある所定期間内でのＦＡＴの更新の頻度等がある。
【００７５】
ファイルシステム３は、領域問い合わせ関数を受けると、必要速度を実現可能なメモリの空き領域のサイズを以下の工程により算出する。まず、ファイルシステム３は、ＦＡＴを検索し、各ＡＵ４２におけるデータの書き込み速度を予測する（ステップＳ２３）。書き込み速度の予測の詳しい方法は後述する。なお、ここでの書き込み速度の予測には、領域問い合わせ関数内のＦＡＴ更新頻度も加味される。ＦＡＴ更新頻度が高ければ、その分、書き込み速度は低下する。
【００７６】
ファイルシステム３は、求めた各ＡＵの書き込み速度のうち、領域問い合わせ関数に既述されている、必要書き込み速度以上の速度を実現できるＡＵ４２を検索し、その数を計数する（ステップＳ２４）。
【００７７】
ファイルシステム３は、必要書き込み速度以上の速度を実現できるＡＵ４２の数にＡＵ４２のサイズを掛け合わせることにより、必要書き込み速度以上の速度を実現できるメモリ領域のサイズを算出する。次いで、ファイルシステム３は、この算出されたメモリ領域サイズを、領域問い合わせ関数の戻り値として、アプリケーション２に返信する（ステップＳ２５）。アプリケーション２は、少なくとも、ステップＳ２５で受信したサイズのメモリ領域には、必要速度以上で書き込みを行えることを知得する。
【００７８】
アプリケーション２は、ステップＳ２１で算出された必要メモリ領域サイズと、ステップＳ２５で得られた必要速度を実現可能なメモリ領域サイズとを、比較する（ステップＳ２６）。アプリケーション２は、必要速度を実現可能なメモリ領域サイズが必要メモリ領域サイズより大きい場合、後述の工程によりデータの書き込みを行う。
【００７９】
一方、必要速度を実現可能なメモリ領域サイズが必要メモリ領域サイズに満たない場合、アプリケーション２は、ディスプレイに表示する等することにより、ユーザにその旨を通知する。そして、例えば、書き込みの中止、書き込める量のみ書き込む、等の選択ダイアログを、ディスプレイに表示する。ユーザが書き込みの中止を選択した場合、書き込み処理は、ここで停止する。
【００８０】
アプリケーション２は、書き込みファイルを開く旨のファイルオープン関数を発行する（ステップＳ２７）。このステップでのファイルオープン関数の入力パラメータとしては、必要な書き込み速度やＦＡＴの更新の頻度が含まれる。アプリケーション２は、先に知得した必要速度を実現可能なメモリ領域サイズを考慮する等して、ファイルオープン関数に含める必要速度（指定速度）を設定する。必要速度を実現可能なメモリ領域サイズが十分な場合、典型的には、ファイルオープン関数で指定される入力パラメータ（書き込み速度、ＦＡＴ更新頻度）は、領域問い合わせ関数で指定されたものと同じである。
【００８１】
ファイルシステム３は、ファイルオープン関数を受けて、書き込みファイルを開く（ステップＳ２８）。ファイルシステム３は、ファイルオープン関数によって指定された書き込み速度を実現可能なＡＵ４２を、ステップＳ２３と同様の方法により検索する（ステップＳ２９）。
【００８２】
次に、ファイルシステム３は、条件を満たすＡＵ４２に対してのみ、指定速度によってデータを書き込む（ステップＳ３０）。ここで、データが書き込む際、第２実施形態の方法を用いて、暫定的なＦＡＴをデータ書き込みの前に書き込み、データ書き込み後に最終的なＦＡＴを更新するようにすることもできる。こうすることにより、書き込み速度を向上できる。この場合、ファイルオープン関数によって指定されるＦＡＴ更新頻度は、０である。
【００８３】
なお、ファイルオープン関数で指定される入力パラメータが領域問い合わせ関数で指定されたものと同じである場合、ステップＳ２４において検索されたＡＵ４２に書き込むことができる。この場合、ステップＳ２９は不要である。
【００８４】
書き込みが終了すると、アプリケーション２は、ファイルシステム３に対して、書き込みファイルを閉じる旨のファイルクローズ関数を発行する（ステップＳ３１）。ファイルシステム３は、この関数を受けて、書き込みファイルを閉じる（ステップＳ３２）。
【００８５】
［３−３］書き込み速度の算出  
次に、図１１（ａ）および図１１（ｂ）乃至図１４を参照して、データ書き込み速度を算出する方法について説明する。ファイルシステム３は、以下の、書き込み速度（パフォーマンス）と、ファイルシステムの書き込み（典型的にはＦＡＴの書き込み）時間、領域問い合わせ関数内の入力パラメータであるファイルシステムの更新頻度を用いて、ＡＵ４２での書き込み速度を算出する。
【００８６】
［３−３−１］パフォーマンスカーブの定義  
ホスト１によりクラスタ単位のデータがメモリ領域内のＡの場所からＢの場所まで順次記入される場合を例にとって、図１１（ａ）および図１１（ｂ）を用いて説明する。
【００８７】
図１１（ａ）および図１１（ｂ）に示すように、複数のクラスタ４１の集合体であるＡＵ４２に新規にデータを記入する場合について検討する。このＡＵ４２の論理アドレスをＡとする。このＡＵ４２中のクラスタ４１に新規にデータを書き込む場合、いわゆる引越し書き込みが行われる。より具体的には、実際には当初論理アドレスＡのデータが書き込まれていた物理ブロックＡＡから別の物理ブロックＡＢに、既に書かれていたクラスタ４１（図中、Ｕｓｅｄ）のデータを書き写し、同時に新規に書き込むデータを書き込む作業が必要になる。この作業の終了後以降、物理ブロックＡＢが論理アドレスＡとして認識される。
【００８８】
この作業の実施に際して、当初記入されていないクラスタ４１（図中、ｆｒｅｅ）に新規にデータを書き込む時間は単純に書き込み時間である。これをＰｗ（書き込みパフォーマンス）とする。
【００８９】
一方、すでにクラスタ４１に書き込みされている（図中、Ｕｓｅｄのクラスタ４１）データを別のブロックに書き写す場合には、新規のクラスタ４１に書き込む時間に加え、元のクラスタから読み出す時間がかかる。さらに、予定された順序からすれば、新規に書き込まれるクラスタ４１が空であれば、そこに書き込まれる予定の新規のデータ（例えば、図中、Ｄａｔａ３）の書き込み動作は、書き込み済みデータが新しい物理ブロックへ書き写される間、停止する。これらに要する時間をデータの移動パフォーマンス（Ｐｍ）とする。
【００９０】
新規データ記入の合計の所要時間は、書き込み時間の総計と、移動時間の総計との合計時間である。
【００９１】
以上の説明から平均パフォーマンスＰ（Ｎｕ）は、［数式１］のようになる。
【００９２】
［数式１］  
平均パフォーマンス：Ｐ（Ｎｕ）
＝［Ｓｃ×（Ｎｔ−Ｎｕ）］／［Ｓｃ×（Ｎｔ−Ｎｕ）／Ｐｗ＋Ｓｃ×Ｎｕ／Ｐｍ］
＝［（Ｎｔ−Ｎｕ）×Ｐｍ×Ｐｗ］／［（Ｎｔ−Ｎｕ）×Ｐｍ＋Ｎｕ×Ｐｗ］
ここで、
Ｓｃ：クラスタの寸法（通常ファイルシステムの書き込み単位として用いるクラスタの寸法とは異なる）
Ｎｔ：ＡとＢとの間に順次書き込むクラスタ数の合計
Ｎｕ：ＡとＢとの間の使用済みクラスタ数
Ｐｗ：書き込みパフォーマンス（全て未記入クラスタの場合のパフォーマンス）
Ｐｍ：移動パフォーマンス（ＭＢ／ｓｅｃ）
である。
【００９３】
図１２は、ＡＵ４２のクラスタ数を１６としたときのカードパフォーマンスを示している。使用済みクラスタ比ｒ（横軸）ごとのパフォーマンス（縦軸）をそれぞれ結ぶと、パフォーマンスカーブが得られる。パフォーマンスカーブはＰｗとＰｍで規定される。Ｐｗは、ｒ＝０の場合、すなわちフルパフォーマンスと等価である。Ｐｗは、記憶デバイス（フラッシュメモリ１３）のプログラム時間によって変わる。また、Ｐｍはフラッシュメモリ１３のプログラム時間に加え、読み出し時間、データ移動方法にも依存して変化する。なお、データ移動は、メモリカード１１内部で処理されるものであるため、ホスト１が直接制御するものではない。
【００９４】
ここで、使用済みクラスタ比ｒは、
ｒ＝Ｎｕ／Ｎｔ
と記載できる。これは
Ｎｕ＝ｒ×Ｎｔ
とも記載できる。
【００９５】
ｒは０から１の範囲で可変である。ｒ＝０はすべてのクラスタが未記入であることを意味し、ｒ＝１はすべてのクラスタが記入済みであること、すなわちパフォーマンスが０であることを意味する。言い換えれば、Ｐ（１）＝０である。
【００９６】
このことから、いかなるパフォーマンスカーブも（１，０）点を通ることがわかる。［数式１］をｒを使って書き直すと、［数式２］となる。
【００９７】
［数式２］  
平均パフォーマンスカーブ：Ｐ（ｒ）
＝［（１−ｒ）×Ｐｗ×Ｐｍ］／［ｒ×Ｐｗ＋（１−ｒ）×Ｐｍ］
ただし、０≦ｒ≦１である。
【００９８】
図１３は、［数式２］のパフォーマンスカーブの特徴を示している。図１３において、直線Ｌ（ｒ）は、Ｙ軸上の点ＰｗとＸ軸上の点１を結ぶ直線である。図１３に示すように、パフォーマンスカーブＰ（ｒ）は、直線Ｌ（ｒ）よりも常に小さい（常に原点側にある）ことがわかる。
【００９９】
言い換えれば、
Ｌ（ｒ）−Ｐ（ｒ）＝Ｐｗ×（Ｐｗ−Ｐｍ）×（ｒ−ｒ２）≧０
である。
【０１００】
［３−３−２］ファイルシステム書き込み時間について  
ファイルシステムの書き込み（典型的には、ＦＡＴの書き込み）はリアルタイム記録中の任意のクラスタ４１間あるいはＡＵ４２間に挿入可能である。図１４はリアルタイム記録中のファイルシステムの更新の典型的なシーケンスを示している。ファイルシステムの更新はどのクラスタ４１の間にも起こり得る。ファイルシステムの更新は定期的に行われるが、あるファイルシステムの更新と次のファイルシステムの更新との間に書き込まれるクラスタ４１の数はファイルシステム更新間隔ＴFUによって規定される。ファイルシステム更新間隔ＴFUは、領域問い合わせ関数内の入力パラメータであるファイルシステムの更新頻度から求められる。
【０１０１】
ファイルスシステム書き込みシーケンスは３つの書き込み動作からなる。図１４に示す処理ＦＡＴ１およびＦＡＴ２は、１つのマルチブロック書き込みコマンド（連続した複数のブロックを１つの書き込みコマンドで書き込む）を用いたＦＡＴ１、ＦＡＴ２それぞれへのファイルシステムの書き込みである。ファイルシステム書き込みは任意のバイトアドレスから開始可能であり、１６ｋＢまでの任意の長さまでの書き込みとして定義可能である。処理ＤＩＲは、ＤＩＲの書き込みである。ディレクトリエントリはデータの書き込みに先立って生成され、ディレクトリエントリの変更した部分にのみ書き込まれる。ファイルシステム書き込み時間ＴFWは上記のファイルスシステム書き込みシーケンスの合計時間として規定される。ファイルシステム書き込み時間ＴFWはカードコントローラ１２の仕様によって変わる。
【０１０２】
［３−３−３］ファイルシステム書き込み時間（ＴFW）の平均を求めるための測定条件  
ホスト１はパフォーマンスを平均値として計算する必要がある。［数式３］は平均ファイルシステム書き込み時間ＴFW(ave.)を規定する式であり、任意の８回のファイルシステム書き込み時間の平均値の最悪値として測定できる。
【０１０３】
［数式３］  
平均ファイルシステム書き込み時間：ＴFW(ave.)
＝［ｍａｘ（ＴFW（１）＋ＴFW（２）＋・・・＋ＴFW（７）＋ＴFW（８））］／８
［３−３−４］パフォーマンスの算出  
ファイルシステム更新による時間的ロスを考慮すると、アプリケーション２が要求するパフォーマンスＰａを満足するためには、実際には、これより高いパフォーマンスＰｃを得られることが求められる。アプリケーション２が、必要とされるパフォーマンスＰａを求める方法は、［数式４］によって算出できる。
【０１０４】
［数式４］  
アプリケーションが必要とするパフォーマンス：Ｐａ
＝［Ｓｃ×Ｎｄ］／［Ｓｃ×Ｎｄ／Ｐｃ＋ＴFW］
ただし、Ｎｄ＝ファイルシステム更新の間に書き込まれるクラスタ数
パフォーマンスＰａを満足するためのパフォーマンスＰｃは、［数式６］によって算出できる。
【０１０５】
［数式５］  
パフォーマンスＰａを満足するためのパフォーマンス：Ｐｃ
＝［Ｓｃ×Ｎｄ×Ｐａ］／［Ｓｃ×Ｎｄ−Ｐａ×ＴFW］
本発明の第３実施形態に係るホストは、アプリケーション２とファイルシステム３との間で授受される、ある書き込み速度を達成可能なメモリ領域の大きさを調べるための関数を含んでいる。ファイルシステム３は、この関数を受けると、ある書き込み速度を達成可能なＡＵ４２の大きさをアプリケーション３に通知する。このため、アプリケーション２が、メモリカード１１での書き込み速度の管理を容易に行うことができる。そして、アプリケーション３は、通知されたメモリ領域の大きさに応じて、再度、書き込み速度を指定して、この書き込み速度を達成可能なＡＵ４２のみにデータを書き込む旨を、ファイルシステム３に指示する等、することができる。
【０１０６】
なお、上記各実施形態において、ＦＡＴファイルシステムの例を記述したが、類似のファイルアクセス方式を持つ別のファイルシステムにも適用可能である。
【０１０７】
また、ＰＣ（personal computer）でのプログラム構造を念頭においた形態で、第１乃至第３実施形態の説明を行ったが、各実施形態を情報家電機器など他のマイコン応用機器にも応用できる。
【０１０８】
また、フラッシュメモリ１３を有するメモリカード１１に関して説明を行ったが、第１乃至第３実施形態は、同様の特徴・機能を持つ他の記憶媒体にも適用可能である。
【０１０９】
その他、本発明の思想の範疇において、当業者であれば、各種の変更例及び修正例に想到し得るものであり、それら変更例及び修正例についても本発明の範囲に属するものと了解される。
【図面の簡単な説明】
【０１１０】
【図１】本発明の第１実施形態に係るホスト機器の主要部の構成を示す図。
【図２】第１実施形態に係るホスト機器に用いられるメモリカードの構成を示すブロック図。
【図３】フラッシュメモリのデータ配置を示す図。
【図４】ホスト機器側から見たときのフラッシュメモリの領域分割を示す図。
【図５】フラッシュメモリ内部での実際の記憶領域分割の概要を示す図。
【図６】第１実施形態に係るＢＰＢに書き込まれているパラメータを示す図。
【図７】第１実施形態に係るホスト機器の書き込み動作を示すフローチャート。
【図８】第１実施形態に係るホスト機器によって書き込まれるクラスタの順序を示す図。
【図９】本発明の第２実施形態に係るホスト機器の書き込み動作を示すフローチャート。
【図１０】本発明の第３実施形態に係るホスト機器の書き込み動作を示すフローチャート。
【図１１】データの移動を説明する図。
【図１２】パフォーマンスカーブを例示する図。
【図１３】パフォーマンスカーブの特徴を示す図。
【図１４】リアルタイム記録中のファイルシステム更新のシーケンスを例示する図。
【符号の説明】
【０１１１】
１…ホスト機器、２…アプリケーション、３…ファイルシステム、４…ホストコントローラ、１１…メモリカード、１２…カードコントローラ１３…ＮＡＮＤ型フラッシュメモリ、２１…ＣＰＵ、２２…ＲＯＭ、２３…メモリインタフェース部、２４…ホストインタフェース部、２５…バッファ、２６…ＲＡＭ、３１…管理データ領域、３２…機密データ領域、３３…保護データ領域、３４…ユーザデータ領域、４１…クラスタ、４２…アロケーションユニット、４３…ページ、４４…ブロック。
【図１】
2006285669.tif 000003
【図２】
2006285669.tif 000004
【図３】
2006285669.tif 000005
【図４】
2006285669.tif 000006
【図５】
2006285669.tif 000007
【図６】
2006285669.tif 000008
【図７】
2006285669.tif 000009
【図８】
2006285669.tif 000010
【図９】
2006285669.tif 000011
【図１０】
2006285669.tif 000012
【図１１】
2006285669.tif 000013
【図１２】
2006285669.tif 000014
【図１３】
2006285669.tif 000015
【図１４】
2006285669.tif 000016