説明

処理方法及び携帯電子機器

【課題】ユーザデータを書き込む際に管理領域が破壊される危険性を回避することができる処理方法及び携帯電子機器を提供すること。
【解決手段】所定の容量で規定されているページ単位で読み出し及び書き込みを行うフラッシュメモリ12と、フラッシュメモリ12へ格納されるFATファイル形式にしたがったファイルを作成する制御部13を備える。制御部13は、実データを格納するデータ領域の一部と、データ領域を管理する管理情報を格納する管理領域の一部とが、同一のページに配置されず異なるページに配置されるように管理領域の容量をページ単位の整数倍にする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、フラッシュメモリに対する処理方法及び携帯電子機器に関する。
【背景技術】
【0002】
記憶装置に記録されているデータを管理するファイルシステムの中に、FATファイルシステムがある。FATファイルシステムでは、BPB(BIOS Parameter Block)や、FATや、ルートディレクトリエントリが記憶される管理領域と、データが記憶されるユーザデータ領域とから構成されている(例えば、特許文献1を参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2003−15928号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、フラッシュメモリにデータを記憶する際には、書き込み対象となるページの全体を読み出し、読み出したページの空き領域にデータを追加し、その後再びページ単位で書き込みを行う。
【0005】
ここで、例えば、管理領域の一部とユーザデータ領域の一部とが同一のページに配されており、当該ページのユーザデータ領域にデータを書き込む場合には、このページの全体を読み出して、データを追加した後に、ページ単位で書き込みを行う際にエラーが生じると、管理領域が破壊される可能性がある。
【0006】
そこで本発明は、ユーザデータを書き込む際に管理領域が破壊される危険性を回避することができる処理方法及び携帯電子機器を提供することを一つの目的とする。
【課題を解決するための手段】
【0007】
本発明に係る処理方法は、上記課題を解決するために、FAT(File allocation table)ファイル形式にしたがい、所定の容量で規定されているページ単位で読み出し及び書き込みを行うフラッシュメモリに対する処理方法であって、実データを格納するデータ領域の一部と、前記データ領域を管理する管理情報を格納する管理領域の一部とが、同一のページに配置されず異なるページに配置されるように前記管理領域の容量を前記ページ単位の整数倍に調整する調整工程を有する。
【0008】
また、処理方法では、前記管理領域には、BPB(BIOS Parameter Block)とルートディレクトリエントリが含まれており、前記調整工程は、前記管理領域において、前記BPB及び前記ルートディレクトリエントリ以外の領域の容量を大きくすることにより、前記管理領域の容量を前記ページ単位の整数倍に調整する構成でも良い。
【0009】
また、処理方法では、前記BPB及び前記ルートディレクトリエントリの領域の容量は、固定であり、前記BPB及び前記ルートディレクトリエントリ以外の領域には、前記フラッシュメモリの全体のクラスタ数に基づいて特定されるFAT領域が含まれており、前記調整工程は、前記FTA領域の容量を調整することにより、前記管理領域の容量を前記ページ単位の整数倍に調整する構成でも良い。
【0010】
また、処理方法では、前記FAT領域は、同じデータが格納される2つの領域から構成されており、前記調整工程は、(ページの容量/2)−1の分だけ切り上げてFAT領域を調整する構成でも良い。
【0011】
また、本発明に係る携帯電子機器は、上記課題を解決するために、所定の容量で規定されているページ単位で読み出し及び書き込みを行うフラッシュメモリと、前記フラッシュメモリへ格納されるFAT(File allocation table)ファイル形式にしたがったファイルを作成する制御部を備え、前記制御部は、実データを格納するデータ領域の一部と、前記データ領域を管理する管理情報を格納する管理領域の一部とが、同一のページに配置されず異なるページに配置されるように前記管理領域の容量を前記ページ単位の整数倍にする構成である。
【発明の効果】
【0012】
本発明によれば、ユーザデータを書き込む際に管理領域が破壊される危険性を回避することができる。
【図面の簡単な説明】
【0013】
【図1】携帯通信端末の構成を示すブロック図である。
【図2】フラッシュメモリの構成を模式的に示す図である。
【図3】フラッシュメモリに対するFATフォーマットの処理についての説明に供するフローチャートである。
【図4】BPBセクタの生成処理についての説明に供するフローチャートである。
【図5】FAT当りのセクタ数算出処理についての説明に供するフローチャートである。
【発明を実施するための形態】
【0014】
以下、本発明の好適な実施形態の一例について説明する。ここで、携帯電子機器の一例である携帯通信端末1の全体を図1に示す。携帯通信端末1は、フラッシュメモリドライバ11と、フラッシュメモリ12と、制御部13と、キー操作部14と、表示部15と、無線部16と、マイク17と、スピーカ18と、RAM19を備える。
【0015】
フラッシュメモリドライバ11は、制御部13からの要求を受け付け、フラッシュメモリ12に対してアクセスし、データの書き込み、読み出し及び消去を実行する。キー操作部14は、ユーザのキー操作を検出し、制御部13にキー情報を送る。制御部13は、キー情報に応じて所定の動作(例えば、電話発信の動作等)を行う。表示部15は、制御部13の制御にしたがって、画像を表示する。
【0016】
無線部16は、制御部13の制御にしたがって、制御基地局との間で通信を行う。マイク17は、入力された音を音信号に変換して制御部13に送信する。スピーカ18は、制御部13から受信した音信号を音に変換して外部に出力する。例えば、無線部16により音声通話を行う場合には、携帯通信端末1は、音声入力にマイク17を使用し、音声出力にスピーカ18を使用する。また、RAM19は、例えば、ワーキングメモリとして機能し、制御部13の処理の用に供される。
【0017】
詳細は後述するが、フラッシュメモリ12は、複数のブロックと呼ばれる単位で構成され、さらにブロックは、複数のページと呼ばれる単位で構成されている。フラッシュメモリドライバ11は、フラッシュメモリ12に対して、ページ単位でデータの書き込み及び読み出しを行う。なお、フラッシュメモリドライバ11は、データの消去についてはブロック単位で行う。
【0018】
ここで、管理領域の終端セクタ(ルートディレクトリエントリの最後のセクタ)とユーザデータ領域の先頭セクタが、同一ページ(以下、ページP1という。)に配置されており、このページP1にユーザデータを新たに書き込む処理が生じた場合には、携帯通信端末1は、管理領域の終端セクタが配置されているページP1をRAM19に読み出し、ユーザデータ領域にデータを書き込んで新たなページP1を生成し、このページP1をフラッシュメモリ12に書き込む。ところで、「フラッシュメモリ12からページP1を読み出す→RAM19にページP1を書き込む→ページP1に新たなユーザデータを書き込む→ページP1をフラッシュメモリ12に書き込む」処理の過程において、書き込みエラー等により管理領域の終端セクタが不用意に書き換えられてしまった場合には、その後、フラッシュメモリ12の管理を行うことができず、記憶されているデータを失う可能性がある。
【0019】
本実施例に係る携帯通信端末1では、フラッシュメモリ12をFFS(フラッシュファイルシステム)、特にFAT(File allocation table)ファイルシステムによってデータの書き込み等の処理を行う場合において、上述した問題を回避し、処理の信頼性を確保するための機能を有している。
【0020】
具体的には、携帯通信端末1は、フラッシュメモリ12をフォーマットする時に、管理領域のFATのセクタ数を調整することで、管理領域の終端セクタ(ルートディレクトリエントリの最後のセクタ)とユーザデータ領域の先頭セクタが、同一ページに入らないようにページ区切りの境界を調整する機能を有している。
【0021】
このようにして、携帯通信端末1は、管理領域の終端セクタとユーザデータ領域の先頭セクタの境界がページ区切りになるように調整するので、ユーザデータの書き換えの際に、管理領域が不用意に書き換えられる問題がなくなり、データ処理の信頼性向上を図ることができる。
【0022】
ここで、フラッシュメモリ12の構成について説明する。フラッシュメモリ12は、図2に示すように、管理領域Aとユーザデータ領域Bから構成されている。
【0023】
管理領域Aは、BPB(BIOS Parameter Block)と、FAT1、FAT2、及びルートディレクトリエントリ(Root Directory Entry)から構成されている。また、管理領域Aでは、BPBは1個のセクタで構成され、ルートディレクトリエントリは15個のセクタで構成されている。したがって、BPBとルートディレクトリエントリは、合わせて16セクタである。ここで、1セクタ当り512バイトなので、16×512=8Kバイトが、FAT1及びFAT2を除いた管理領域の容量(以下、サイズという)になる。
【0024】
また、一般的にフラッシュメモリは、1ページのサイズが2Kバイトであるので、本実施例においても1ページのサイズは、2Kバイトとして説明するが、これに限られない。
【0025】
ここで、FAT1及びFAT2を除いた管理領域のサイズが8Kバイトであるので、ページのサイズが2Kバイトであれば、4つのページで構成されることになる。
【0026】
管理領域Aの全体のサイズが2Kバイトで割り切ることができれば、ページの区切りが管理領域Aとユーザデータ領域Bの境界になり、一つのページの中に管理領域Aのデータとユーザデータ領域Bのデータが混在することはない。
【0027】
また、管理領域AにおいてFATは、図2で示すように、FAT1とFAT2の2面を設けている。FAT2は、FAT1のバックアップ用のFATなので、FAT1と同じサイズである。よって、管理領域Aのデータとユーザデータ領域Bのデータが同一ページに配されず、異なるページに配されるようにするには、一つのFAT当りのサイズを1Kバイトで割り切れるサイズにすれば良い。以下に、具体的な構成と動作について説明する。
【0028】
携帯通信端末1は、上述したように、フラッシュメモリ12と、制御部13を備える。フラッシュメモリ12は、所定のサイズで規定されているページ単位で読み出し及び書き込みを行う。制御部13は、フラッシュメモリ12へ格納されるFAT(File allocation table)ファイル形式にしたがったファイルを作成する。また、制御部13は、ユーザデータ(ユーザデータとは、画像データや、音声データ等の実データを意味している)を格納するユーザデータ領域Bの一部と、ユーザデータ領域Bを管理する管理情報を格納する管理領域Aの一部とが、同一のページに配置されず異なるページに配置されるように管理領域Aのサイズをページ単位の整数倍にする。
【0029】
このようにして、携帯通信端末1は、管理領域Aの終端セクタ(ルートディレクトリエントリの最後のセクタ)とユーザデータ領域Bの先頭セクタが、同一ページに入らないようにページ区切りの境界を調整するので、ユーザデータの書き換えの際に、管理領域が不用意に書き換えられる問題を回避することができる。
【0030】
また、携帯通信端末1に備えられているフラッシュメモリ12に対する処理方法は、FAT(File allocation table)ファイル形式にしたがい、所定のサイズで規定されているページ単位で読み出し及び書き込みを行うものであって、調整工程により行われる。なお、調整工程による処理は、制御部13により実行されるものである。
【0031】
調整工程は、ユーザデータを格納するユーザデータ領域Bの一部と、ユーザデータ領域Bを管理する管理情報を格納する管理領域Aの一部とが、同一のページに配置されず異なるページに配置されるように管理領域Aのサイズをページ単位の整数倍に調整する工程である。
【0032】
このようにして、携帯通信端末1は、管理領域Aの終端セクタ(ルートディレクトリエントリの最後のセクタ)とユーザデータ領域Bの先頭セクタが、同一ページに入らないようにページ区切りの境界を調整するので、ユーザデータの書き換えの際に、管理領域が不用意に書き換えられる問題を回避することができる。
【0033】
また、上述したように、管理領域Aには、BPB(BIOS Parameter Block)とルートディレクトリエントリが含まれている。調整工程は、管理領域Aにおいて、BPB及びルートディレクトリエントリ以外の領域のサイズを大きくすることにより、管理領域Aのサイズをページ単位の整数倍に調整する。
【0034】
このようにして、携帯通信端末1は、BPB及びルートディレクトリエントリのサイズを固定としながら、その他の領域のサイズを調整することにより、管理領域Aの終端セクタ(ルートディレクトリエントリの最後のセクタ)とユーザデータ領域Bの先頭セクタが、同一ページに入らないようにページ区切りの境界を調整するので、ユーザデータの書き換えの際に、管理領域が不用意に書き換えられる問題を回避することができる。
【0035】
また、BPB及びルートディレクトリエントリの領域のサイズは、固定であり、BPB及びルートディレクトリエントリ以外の領域には、フラッシュメモリ12の全体のクラスタ数に基づいて特定されるFAT領域が含まれている。調整工程は、FTA領域のサイズを調整することにより、管理領域Aのサイズをページ単位の整数倍に調整する。
【0036】
このようにして、携帯通信端末1は、フラッシュメモリ12をフォーマットする時に、適切なFAT当りのセクタ数(例えば、1Kバイト)になるように制御するので、管理領域Aの終端セクタ(ルートディレクトリエントリの最後のセクタ)とユーザデータ領域Bの先頭セクタが、同一ページに入らないようにページ区切りの境界を調整することができ、ユーザデータの書き換えの際に、管理領域が不用意に書き換えられる問題を回避することができる。
【0037】
また、FAT領域は、同じデータが格納される2つの領域から構成されている。また、調整工程は、(ページのサイズ/2)−1の分だけ切り上げてFAT領域を調整する。
【0038】
このようにして、携帯通信端末1は、フラッシュメモリ12をフォーマットする時に、適切なFAT当りのセクタ数(例えば、1Kバイト)になるように制御するので、管理領域Aの終端セクタ(ルートディレクトリエントリの最後のセクタ)とユーザデータ領域Bの先頭セクタが、同一ページに入らないようにページ区切りの境界を調整することができ、ユーザデータの書き換えの際に、管理領域が不用意に書き換えられる問題を回避することができる。
【0039】
つぎに、制御部13により行われるフラッシュメモリ12に対するFATフォーマットの処理について、図3に示すフローチャートを参照して説明する。なお、以下では、制御部13を主体にして説明するが、調整工程を主体にしても良い。
【0040】
ステップST1において、制御部13は、サイズ情報からトータルセクタ数を算出する。ここで、FATフォーマットをする際には、フォーマット対象となるフラッシュメモリ12の全体サイズがいくらかという情報が必要になる。本実施例では、セクタサイズは、512バイトである。制御部13は、フォーマット対象になるフラッシュメモリ12のサイズをセクタサイズで割ることによりトータルセクタ数を算出することができる。
【0041】
ステップST2において、制御部13は、ステップST1によって算出したトータルセクタ数に基づいて、BPBセクタを生成する。なお、BPBセクタの生成処理の詳細については、後述する。
【0042】
ステップST3において、制御部13は、BPBセクタが生成されたら、そのセクタデータをフラッシュメモリ12に書き込む処理を行う。
【0043】
ステップST4において、制御部13は、FATセクタを生成する。現在は、フォーマットを行っている最中なので特にユーザデータは存在しないが、FAT1とFAT2のセクタを生成する。なお、上述したように、FAT2は、FAT1のバックアップ用のFATなので、FAT1とFAT2は、同じサイズである。
【0044】
ステップST5において、制御部13は、ステップST4の工程によりFAT1とFAT2のセクタが生成されたら、それらをフラッシュメモリ12に書き込む処理を行う。
【0045】
ステップST6において、制御部13は、ルートディレクトリエントリのセクタを生成する。なお、現在は、フォーマットを行っている最中なので特にユーザデータは存在しないが、ボリュームラベル情報のみを生成しておく。
【0046】
ステップST7において、制御部13は、ステップST6の工程によりルートディレクトリエントリのセクタが生成された場合には、それをフラッシュメモリ12に書き込む処理を行う。
【0047】
つぎに、上述したステップST2の工程により行われるBPBセクタの生成処理について、図4に示すフローチャートを参照しながら説明する。
【0048】
ステップST11において、制御部13は、各種BPBパラメータを決定する。これは、1セクタ当りのバイト数(例えば、512バイト)やFAT数(2Kバイト)等をパラメータとして確定しておき、BPBセクタの所定バイト位置に埋め込まれることとなる。
【0049】
ステップST12において、制御部13は、クラスタ当りのセクタ数を決定する。FATファイルシステムでは、データをクラスタ単位で書き込み及び読み出しを行う。セクタサイズが512バイトなので、クラスタ当りのセクタ数が4つであれば、乗算することにより2048なので、制御部13は、2Kバイト単位でアクセスすることになる。
【0050】
ステップST13において、制御部13は、クラスタ数を決定する。クラスタ数は、トータルセクタ数をクラスタ当りのセクタ数で割ることにより算出することができる。
【0051】
ステップST14において、制御部13は、FATサイズを決定する。FATサイズは、クラスタ数に依存して決まる。例えば、FAT16のシステムでは、一つのクラスタに16ビット(2バイト)使用する。したがって、概算として、クラスタ数を2倍した値(バイト単位)がFATサイズとなる。
【0052】
ステップST15において、制御部13は、FAT当りのセクタ数の算出を行う。なお、FAT当りのセクタ数算出処理の詳細については、後述する。
【0053】
つぎに、上述したステップST15の工程により行われるFAT当りのセクタ数算出処理について、図5に示すフローチャートを参照しながら説明する。
【0054】
ステップST21において、制御部13は、ステップST14の工程により決定したバイト単位のFATサイズに、「ページサイズ/2」を加算し、1を引く処理を行う。この処理の結果を「a」とする。ここで、ページサイズが2Kバイトの場合、「ページサイズ/2」は、1Kバイトである。つまり、「/2」は、FATが2面存在することによるものであり、一つのFATにつきページサイズの半分(1Kバイト)で切り上げるように境界調整すれば良いことを意味している。
【0055】
ステップST22において、制御部13は、ステップST21の工程で算出した「a」を「ページサイズ/2」で除算する処理を行う。この処理の結果を「b」とする。ステップST22の処理を実行することにより、1Kバイト単位でFATサイズが算出されたことになる。つまり、FATサイズは、1Kバイトが何個あるかという単位で求まる。
【0056】
ステップST23において、制御部13は、ステップST22の工程で算出した「b」に「(ページサイズ/2)/セクタサイズ」を乗算する処理を行う。つまり、1Kバイトに含まれるセクタ数を掛けて、FAT当りのセクタ数を最終的に求める。
【0057】
つぎに、FAT当りのセクタ数を算出する具体的な手順について説明する。なお、以下では、最初の入力にあたるFATサイズが500バイトとする。
制御部13は、ステップST21の工程で、ページサイズが2Kバイトとして、a=500+1024−1=1523を算出する。
制御部13は、ステップST22の工程で、b=1523/1024=1を算出する。これは、1Kバイト単位で1個分のサイズとなることを示す。
【0058】
そして、制御部13は、ステップST23の工程で、所定の演算(1×(1024/512)=2)を行い、FAT当りのセクタ数を算出する。
このようにして、FATサイズが500バイト(1セクタ)であったものが、2セクタに切り上げられたものとなる。
【0059】
このようにして、携帯通信端末1は、管理領域Aの終端セクタ(ルートディレクトリエントリの最後のセクタ)とユーザデータ領域Bの先頭セクタが、同一ページに入らないようにページ区切りの境界を調整するので、ユーザデータの書き換えの際に、管理領域が不用意に書き換えられる問題を回避することができる。
【符号の説明】
【0060】
1 携帯通信端末
11 フラッシュメモリドライバ
12 フラッシュメモリ
13 制御部

【特許請求の範囲】
【請求項1】
FAT(File allocation table)ファイル形式にしたがい、所定の容量で規定されているページ単位で読み出し及び書き込みを行うフラッシュメモリに対する処理方法であって、
実データを格納するデータ領域の一部と、前記データ領域を管理する管理情報を格納する管理領域の一部とが、同一のページに配置されず異なるページに配置されるように前記管理領域の容量を前記ページ単位の整数倍に調整する調整工程を有する処理方法。
【請求項2】
前記管理領域には、BPB(BIOS Parameter Block)とルートディレクトリエントリが含まれており、
前記調整工程は、前記管理領域において、前記BPB及び前記ルートディレクトリエントリ以外の領域の容量を大きくすることにより、前記管理領域の容量を前記ページ単位の整数倍に調整する請求項1記載の処理方法。
【請求項3】
前記BPB及び前記ルートディレクトリエントリの領域の容量は、固定であり、
前記BPB及び前記ルートディレクトリエントリ以外の領域には、前記フラッシュメモリの全体のクラスタ数に基づいて特定されるFAT領域が含まれており、
前記調整工程は、前記FTA領域の容量を調整することにより、前記管理領域の容量を前記ページ単位の整数倍に調整する請求項2記載の処理方法。
【請求項4】
前記FAT領域は、同じデータが格納される2つの領域から構成されており、
前記調整工程は、(ページの容量/2)−1の分だけ切り上げてFAT領域を調整する請求項3記載の処理方法。
【請求項5】
所定の容量で規定されているページ単位で読み出し及び書き込みを行うフラッシュメモリと、
前記フラッシュメモリへ格納されるFAT(File allocation table)ファイル形式にしたがったファイルを作成する制御部を備え、
前記制御部は、実データを格納するデータ領域の一部と、前記データ領域を管理する管理情報を格納する管理領域の一部とが、同一のページに配置されず異なるページに配置されるように前記管理領域の容量を前記ページ単位の整数倍にする携帯電子機器。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate