(57)【要約】【課題】  フラッシュメモリに対して、効率よくデータの書き込みを行うことができるフラッシュメモリを備えた電子機器を提供する。【解決手段】  セクタ単位毎にデータをアクセスする複数のデータユニットと、該データユニットに記憶されているデータのエントリ情報を記憶するデータ管理ユニットとから構成されるフラッシュメモリと、データユニットのいずれかにデータを書き込む場合に、データ管理ユニットに記憶されているエントリ情報を参照して得られる各データユニットの空きサイズに基づいて、該データを書き込むデータユニットを選択し、データの書き込みを行う制御手段とを備える。【選択図】    図３
2005275722.tif 000002
【特許請求の範囲】
【請求項１】
セクタ単位毎にデータをアクセスする複数のデータユニットと、該データユニットに記憶されているデータのエントリ情報を記憶するデータ管理ユニットとから構成されるフラッシュメモリと、
前記データユニットのいずれかにデータを書き込む場合に、前記データ管理ユニットに記憶されているエントリ情報を参照して得られる各データユニットの空きサイズに基づいて、該データを書き込むデータユニットを選択し、データの書き込みを行う制御手段と
を備えたことを特徴とする電子機器。
【請求項２】
キャッシュメモリと、
前記フラッシュメモリの指定アドレスに対して、データ書き込み要求があった場合に、該指定アドレスで示される領域を含むセクタを前記キャッシュメモリへ読み込み、前記キャッシュメモリに対して、前記データ書き込み要求のデータの書き込みを行い、新たなデータ書き込み要求のデータを書き込みする領域を含むセクタが、前記キャッシュメモリに読み込まれているセクタと異なった場合に、キャッシュメモリに記憶されているデータを前記フラッシュメモリの読み出しを行ったセクタと異なるセクタへ書き込みを行うキャッシュ制御手段と
をさらに備えたことを特徴とする請求項１に記載の電子機器。
【請求項３】
前記フラッシュメモリ内に、スペアユニットを有し、
前記制御手段は、前記データ管理ユニットに記憶されているエントリ情報を参照して、無効セクタ数が所定のしきい値を超えているデータユニットの有効セクタのみを前記スペアユニットにコピーし、コピー元のデータユニット内を消去して、新たなスペアユニットとするガーベッジコレクションを実行することを特徴とする請求項１に記載の電子機器。
【請求項４】
前記ガーベッジコレクションは、待機時に起動することを特徴とする請求項３に記載の電子機器。
【請求項５】
前記フラッシュメモリ内に、スペアユニットを有し、
前記制御手段は、前記データ管理ユニットと前記データユニットそれぞれの消去回数のうち最大消去回数と最小消去回数を求め、最大消去回数と最小消去回数との差が所定のしきい値を超えている場合に、最小消去回数のデータユニットまたはデータ管理ユニットの有効セクタ等を前記スペアユニットにコピーし、コピー元のデータユニット内またはデータ管理ユニット内を消去して、新たなスペアユニットとするウエアレベリングを実行することを特徴とする請求項１に記載の電子機器。
【請求項６】
前記ウエアレベリングは、待機時に起動することを特徴とする請求項５に記載の電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリを備えた電子機器に関する。
【背景技術】
【０００２】
従来からセクタ管理情報とブロック管理情報とに基づいてブロック単位でのデータの書き込み及びセクタ単位でのデータの一括消去を含むアクセス制御を行ない、セクタ消去回数に基づいてデータの書き込み対象のセクタを選択するフラッシュメモリ制御方法が知られている。これは、セクタ消去回数の最も少ないセクタを選択してデータ書き込みを行うものである（例えば、特許文献１参照）。
【特許文献１】特開２０００−３３０８５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、特許文献１に示す制御方法にあっては、書き込みをするとき、必ずしもセクタ消去回数が少ないセクタが空き容量の多いセクタとは限らないため、このセクタに空きが少ないにもかかわらず書き込みを実行し、容量が足りない場合、他の領域を見ることなしにこのセクタをガーベッジコレクションしなければならないため、このガーベッジコレクションを実行することにより処理速度が遅くなるという問題がある。特に、特許文献１に示す制御方法は、書き込み時にガーベッジコレクションを実行する可能性が高いため、データ書き込みの処理時間が長くなるという問題がある。
【０００４】
本発明は、このような事情に鑑みてなされたもので、フラッシュメモリに対して、効率よくデータの書き込みを行うことができるフラッシュメモリを備えた電子機器を提供することを目的とする。
【課題を解決するための手段】
【０００５】
請求項１に記載の発明は、セクタ単位毎にデータをアクセスする複数のデータユニットと、該データユニットに記憶されているデータのエントリ情報を記憶するデータ管理ユニットとから構成されるフラッシュメモリと、前記データユニットのいずれかにデータを書き込む場合に、前記データ管理ユニットに記憶されているエントリ情報を参照して得られる各データユニットの空きサイズに基づいて、該データを書き込むデータユニットを選択し、データの書き込みを行う制御手段とを備えたことを特徴とする。
【０００６】
請求項２に記載の発明は、キャッシュメモリと、前記フラッシュメモリの指定アドレスに対して、データ書き込み要求があった場合に、該指定アドレスで示される領域を含むセクタを前記キャッシュメモリへ読み込み、前記キャッシュメモリに対して、前記データ書き込み要求のデータの書き込みを行い、新たなデータ書き込み要求のデータを書き込みする領域を含むセクタが、前記キャッシュメモリに読み込まれているセクタと異なった場合に、キャッシュメモリに記憶されているデータを前記フラッシュメモリの読み出しを行ったセクタと異なるセクタへ書き込みを行うキャッシュ制御手段とをさらに備えたことを特徴とする。
【０００７】
請求項３に記載の発明は、前記フラッシュメモリ内に、スペアユニットを有し、前記制御手段は、前記データ管理ユニットに記憶されているエントリ情報を参照して、無効セクタ数が所定のしきい値を超えているデータユニットの有効セクタのみを前記スペアユニットにコピーし、コピー元のデータユニット内を消去して、新たなスペアユニットとするガーベッジコレクションを実行することを特徴とする。
【０００８】
請求項４に記載の発明は、前記ガーベッジコレクションは、待機時に起動することを特徴とする。
【０００９】
請求項５に記載の発明は、前記フラッシュメモリ内に、スペアユニットを有し、前記制御手段は、前記データ管理ユニットと前記データユニットそれぞれの消去回数のうち最大消去回数と最小消去回数を求め、最大消去回数と最小消去回数との差が所定のしきい値を超えている場合に、最小消去回数のデータユニットまたはデータ管理ユニットの有効セクタ等を前記スペアユニットにコピーし、コピー元のデータユニット内またはデータ管理ユニット内を消去して、新たなスペアユニットとするウエアレベリングを実行することを特徴とする。
【００１０】
請求項６に記載の発明は、前記ウエアレベリングは、待機時に起動することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、フラッシュメモリのブロックイレーズの単位を一つのユニットとして扱い、データユニット、データ管理ユニット、及びスペアユニットを有するフラッシュメモリシステムとし、データ書き込み時にデータユニットの空きサイズに基づいて書き込み対象のユニットを決定するようにしたため、書き込みの直前にガーベッジコレクションが実行されることがないため、書き込み時の実行速度を向上させることができるという効果が得られる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の一実施形態による電子機器を図面を参照して説明する。図１は同実施形態の構成を示すブロック図である。ここでは、電子機器の一例として、携帯電話端末を例にして説明する。図１において、符号１は、基地局との間で通信回線を確立して通信をする無線部である。符号２は、携帯電話端末の動作を統括して制御を行う制御部である。符号３は、ユーザ特有の情報やデータを一時的に記憶するＲＡＭである。符号４は、携帯電話端末を動作させるためのプログラム等が予め記憶されたＲＯＭである。符号５は、通話音声を集音するマイクと通話音声を発音させるスピーカである。符号６は、ダイヤルキーやファンクションキー等から構成される操作部である。符号７は、液晶のディスプレイで構成される表示部である。符号８は、フラッシュメモリ９に対してデータのアクセスを行うフラッシュメモリドライバである
【００１３】
ここで、図２を参照して、図１に示すフラッシュメモリ９における記憶領域の構成を説明する。図２は、図１に示すフラッシュメモリ９の記憶領域の構成を示す説明図である。フラッシュメモリ９内は、ブロック消去単位毎にユニットに分かれている。ここでは、６つのデータユニットと、１つのデータ管理ユニット及び１つのスペアユニットから構成され、各ユニットは８ｋバイトの容量を有しているものとして説明する。データユニットは、名称のとおりデータを格納するユニットであり、各データユニットは６４バイトで区切られたセクタを有している。このセクタがデータとしての書き込み単位となる。
【００１４】
データ管理ユニットは、データユニットを管理するユニットであり、８バイト単位としてエントリ情報を有する。また、各ユニットの先頭１セクタ分にユニットヘッダを設けてある。このユニットヘッダには、ユニット識別マーク、ブロックイレーズカウンタを設ける。ユニット識別マークは、そのユニットがデータ管理ユニットかスペアユニットか、あるいはデータユニットかを識別するために使用する。所定のブロックがその時点での用途により、このマークはその都度書き換えられる。フォーマット時には、データ管理ユニットは先頭ブロック、スペアユニットは末尾ブロックに割り当てられる。ブロックイレーズカウンタは、そのブロックが消去された回数を記録しておくものであり、フォーマット時は００ｈにする。各ユニットヘッダには、００ｈからＦＦｈの値が格納され、制御によりＦＦｈの次には００ｈに戻る。
【００１５】
スペアユニットは、ガーベッジコレクションやウエアレベリングの実行の際に使用するユニットである。データ管理ユニットのエントリ情報には、６４バイトセクタの先頭アドレス、ユニット番号（データ格納のブロック番号）、セクタ番号、有効／無効の判別部、無効エントリのdirty／clean判別部を有する。有効／無効の判別部は、データ削除されたときに００ｈに上書きする。データは無効であるが、この時点では無効エントリのdirty／cleanの判別部がまだdirtyである。すなわち、フラッシュメモリシステム９上、管理された無効セクタを示す。dirty／cleanの判別部は、ガーベッジコレクションされたときに００ｈに上書きする。すなわち、データは無効であり、かつ、cleanである。データ管理上、完全に削除された状態になる。エントリの更新は、新エントリを空き領域に書き込み、旧エントリを無効にすることにより行う。エントリ情報を含むデータ管理ユニットをガーベッジコレクションするときは、dirtyのエントリはスペアユニットにコピーするが、cleanのエントリのユニットは既にガーベッジコレクション済みであるためcleanのエントリはコピーしない。
【００１６】
次に、ガーベッジコレクションについて説明する。ガーベッジコレクションとは、データを削除／編集等することによりデータユニットに無効セクタが生じ、それを除いて有効セクタのみをスぺアユニットにコピーして、コピー元のユニットはブロックイレーズして、このイレーズしたユニットが次のスペアユニットとすることである。コピーすると同時に、新エントリ情報を書き込んで旧エントリ情報を無効化することにより、データ管理ユニットのエントリ情報も更新する。ガーベッジコレクションの対象ユニットは、最も無効セクタの多いユニットである。また、ガーベッジコレクションの起動条件は、書き込み時（書き込み前）にどのユニットも空きがないと判断したとき、あるいは、書き込み終了時／待機時に無効セクタ数が所定の閾値を超えたときである。データ管理ユニットもガーベッジコレクションの対象になり、起動条件は、無効エン卜リーのdirty／clean判別部のclean部が閾値以上になったと判定したときである。動作は、エントリ上の有効／無効セクタをスぺアユニットヘコピーし、ｃｌｅａｎ部はコピーしない。そして、不要となった元のエントリのブロックを消去し、次のスぺアユニットとする。
【００１７】
次に、ウエアレベリングについて説明する。ウエアレベリングは、消去回数が制限されるフラッシュメモリ９において、全てのブロックを平均的に使用するように管理することで、特定のブロックのみを繰り返し消去して先に寿命が尽きてしまうようなことがないように、メモリ全体を有効に活用するものである。ウエアレベリングの起動については、各ブロックイレーズカウンタをチェックし、ウエアレベリング起動の閾値以上になっていたら、そのカウンタ値が最小であるブロックを選定する。そして、このブロックの全データをスペアユニットにコピーすると同時に、新エントリ情報を書き込み、旧エントリ情報を無効化して、最後に、コピー元をブロック消去し、次のスぺアユニットとする。各ブロックイレーズカウンタの値（最小と最大）が、ウエアレベリング起動の閾値以上に差が開くまでウエアレベリングを実行しない。
【００１８】
書き込み終了時／待機時に起動する、ガーベッジコレクションまたはウエアレベリングには、優先順位を設け、第一はデータ管理ユニットのガーベッジコレクション、第二はデータユニットのガーベッジコレクション、第三はウエアレベリングとする。一回の起動では、優先順位に従っていずれか一つを実行する。
【００１９】
次に、図３を参照して、図１に示すフラッシュメモリドライバ８の構成を説明する。図３は、図１に示すフラッシュメモリドライバ８の構成を示すブロック図である。符号８１は、アプリケーション側からの書き込み／読み出し要求等を受け付け、要求を振り分けて送るアプリケーションＩ／Ｆ部である。符号８２は、セクタサイズと同サイズのキャッシュメモリ８３を有し、後述する制御動作を行うキャッシュ制御部である。符号８４は、フラッシュメモリに対して実行したい操作、すなわち、アプリケーション側からの要求操作を順に手順を踏んでアクセス部を実行制御するシーケンス制御部である。符号８５は、ユニットヘッダに対して、ユニット識別マーク、ブロックイレーズカウンタを書き込み／読み出しするユニットへッダアクセス部である。符号８６は、ユニット番号、セクタ番号、有効／無効の判別部等を書き込み／読み出しするエントリアクセス部である。符号８７は、６４バイトセクタのデータを書き込み／読み出しするセクタデータアクセス部である。符号８８は、データ管理ユニットを検索して無効セクタ数が最大のユニットを取得したり、dirty／clean判別部におけるcleanの数を取得するエントリ検索部である。符号８９は、直接フラッシュメモリに対して書き込み／読み出し等を実行するデバイスＩ／Ｆ部である。
【００２０】
次に、図３を参照して、キャッシュ制御部８２の動作を説明する。アプリケーション側からサイズ指定でデータ書き込み要求があった場合、キャッシュ制御部８２は、指定アドレスを含むセクタをフラッシュメモリ９からキャッシュメモリ８３ヘリードする。このとき、キャッシュ制御部８２は、指定アドレスを基にユニット番号、セクタ番号を求めてデータをリードする。そして、このデータをキャッシュメモリ８３に指定サイズ分、上書きし、キャッシュ保持中フラグをＯＮにする。キャッシュメモリ８３のサイズ超過分のデータがあれば、後で別のセクタにライトする。続いて、キャッシュメモリ８３のデータをフラッシュメモリ９へ書き込み、ライト後、キャッシュ保持中フラグをＯＦＦにする。
【００２１】
一方、アプリケーション側からサイズ指定なしで１バイトデータの書き込み要求があった場合、キャッシュ制御部８２は、指定アドレスを含むセクタをフラッシュメモリ９からキャッシュメモリ８３ヘリードする。そしてデータをキャッシュメモリ８３に上書きし、キャッシュ保持中フラグをＯＮにする。さらに、アドレス、データ指定で１バイトデータ書き込み要求を受ける場合、次のふたつのいずれかの処理を行う。要求の対象が同一セクタであれば、データをキャッシュメモリ８３に上書きし、別セクタアドレスであれば、現在のキャッシュメモリ８３内に記憶されているデータをフラッシュメモリ９へライトし、キャッシュ保持中フラグをＯＦＦにする。そして、指定アドレスを含むセクタをフラッシュメモリ９からキャッシュメモリ８３へリードして、このデータをキャッシュメモリ８３に上書きし、キャッシュ保持中フラグをＯＮにする。
【００２２】
そして、アプリケーション側は最終データの書き込み要求を行った後、キャッシュデータのフラッシュ要求を行う必要がある。これによりキャッシュメモリ８３に最後に残ったデータをフラッシュメモリ９に書き込むことができる。キャッシュ制御部８２がフラッシュ要求を受け取ったら、キャッシュ保持中フラグＯＮのときだけフラッシュメモリ９にライトする。また、リード要求があれば、基本的にはフラッシュメモリ９から直接データリードする。但し、キャッシュメモリ８３にあるデータがまだフラッシュメモリ９にライトされていない時に、リード要求があればキャッシュメモリ８３内のデータを読み出す。
【００２３】
このように、比較的サイズの小さなデータ及び１バイトデータを高い頻度で書換える場合、データ管理ユニットやデータユニットに無効エントリ／セクタが多く発生するという負担が大きいものとなってしまうが、キャッシュ制御部８２を設けることによりこの問題を解決することができる。
【００２４】
次に、図４を参照して、フォーマット処理の動作を説明する。フォーマット処理は、フラッシュメモリ９を読み書きできる状態に初期化することであり、すなわち各ユニットにユニットへッダを付加する処理のことである。アプリケーションからの要求をアプリケーションＩ／Ｆ部８１が受信し、シーケンス制御部８４へ渡す。これを受けてシーケンス制御部８４は、デバイスＩ／Ｆ部８９を介して全てのユニットをイレーズする（ステップＳ１）。次いで、シーケンス制御部８４は、ユニットへッダを生成する（ステップＳ２）。このフォーマット処理後は、ユニットへッダを除いて全てＦＦｈとなる。
【００２５】
次に、図５を参照して、書き込み処理の動作を説明する。書き込み処理は、１セクタ分のデータの書き込みを行う処理であり、複数セクタの書き込みの場合はこの処理の繰り返し行うことになる。まず、書き込み要求を受けると、エントリ検索部８８がデータ管理ユニットのエントリ情報を検索し、ライトするための空き領域のあるユニット番号を決定する（ステップＳ３）。このとき、エントリ検索部８８は空きの最も多いユニットを選択する。具体的には、データ管理ユニットのエントリ情報を先頭から末尾まで検索し、エントリアドレスが書かれていないＦＦＦＦｈが末尾となる。dirty／clean判別部がcleanでないもの、すなわちエントリとして意味をなすものを抽出することで有効、無効セクタのユニット毎の総数を取得する。有効／無効セクタ数が最小のユニットが空きの最も多いユニットとなる。続いて、そのユニットの空きセクタ番号を取得し（ステップＳ４）、フラッシュメモリ９上の物理アドレスを決定する（ステップＳ５）。そして、データ管理ユニットに対してエントリアクセス部８６を介してエントリ情報を書き込み（ステップＳ６）、セクタデータアクセス部８７を介して１セクタデータを書き込む（ステップＳ７）。もし、旧エントリが存在すれば、エントリアクセス部８６によりこの旧エントリを無効化する（ステップＳ８，Ｓ９）。あるエントリの最初の書き込みでは、それが新規になるので対応する旧エントリは存在しない。
【００２６】
次に、図６を参照して、読み出し処理の動作を説明する。読み出し処理は、キャッシュメモリ８３内に読み出し対象のセクタデータがあれば、それを読み出すだけでよい。キャッシュメモリ８３内に対象のセクタデータがないとき、エントリ検索部８８によりエントリデータを読み出す（ステップＳ１０）。そして、アプリケーション側からの指定アドレスデータが格納されているユニット番号、セクタ番号を取得し（ステップＳ１１）、物理アドレスを決定する（ステップＳ１２）。このアドレスのデータをデバイスＩ／Ｆ部８９を介して読み出す（ステップＳ１３）。
【００２７】
次に、図７を参照して、エントリ検索部８８が書き込む対象のユニットを決定する処理の詳細動作を説明する。まず、エントリ検索部８８は、各ユニットの空き容量を算出する（ステップＳ２１）。空き容量は、有効セクタ数（有効／無効の判別部がＦＦｈ）と管理を必要とする無効セクタ数（有効／無効の判別部が００ｈ、かつdirty／clean判別部がＦＦｈ）との和をユニットサイズ（８ｋバイト）から減算した値となる。
【００２８】
次に、エントリ検索部８８は、空き容量が最大値となるユニットが複数あるかを判定する（ステップＳ２２）。この判定の結果、空き容量が最大値となるユニットが１つである場合は、このユニットを書き込み対象のユニットに決定する（ステップＳ２３）。
【００２９】
一方、空き容量が最大値となるユニットが複数ある（空き容量が最大で容量値が同じ値のものがある）場合、エントリ検索部８８は、空き容量が最大値となるユニット間で有効セクタ数を比較する（ステップＳ２４）。そして、エントリ検索部８８は、有効セクタ数が最大値となるユニットが複数あるかを判定する（ステップＳ２５）。この判定の結果、有効セクタ数が最大値となるユニットが１つである場合は、このユニットを書き込み対象のユニットに決定する（ステップＳ２６）。
【００３０】
次に、有効セクタ数が最大値となるユニットが複数ある（有効セクタ数が最大で同じ値のものがある）場合、エントリ検索部８８は、有効セクタ数が最大値となるユニット間でブロック消去回数を取得する（ステップＳ２７）。そして、ステップＳ２２及びＳ２５の条件を満たし、かつ消去回数が最小値であるユニットのいずれかのユニットを選択して書き込み対象のユニットに決定する（ステップＳ２８）。
【００３１】
このように、従来の制御方法のように書き込み時において各ユニットのイレーズ回数で判断せずに、ユニットの空きサイズで書き込み対象のユニットを決定するようにしたため、このユニットに対しては必ず書き込みが可能であり、書き込む直前にガーベッジコレクションが実行されることがないようにすることができる。
【００３２】
また、１バイト毎の連続書き込み要求に対しては、キャッシュメモリ８３を設けることによりセクタの更新を操り返すことはなく、ガーベッジコレクションの増加を防ぐことが可能となる。キャッシュメモリ８３を設けることにより、高速化することができるとともに、効率の悪いフラッシュメモリ９への書き込みを避けることができる。すなわち、キャッシュメモリ８３に存在するセクタデータがアプリケーションからの書き込み要求のデータアドレスを含んでいる場合は、キャッシュメモリ８３に上書きするだけで、その都度フラッシュメモリ９に書き込みを行わずに済む。１バイトデータの書き込みの度に６４バイトセクタデータをフラッシュメモリ９に書き込むと無効セクタが増大することになるが、それが避けられる利点は大きい。また、ガーベッジコレクションの対象ユニットを使用頻度が最低のユニットとするのではなく、無効セクタ数が最大のユニットとすることにより、最も効率のよいガーベッジコレクションを実現することができる。さらに、待機時にガーベッジコレクションまたはウエアレベリングを実行することにより、ユーザが意識しないときにフラッシュメモリ９内のガーベッジ量を少なくし、また、偏ったブロックイレーズを避けることが可能となる。
また、ＦＡＴを使わないことによりシンプルなシステムを提供でき、ＦＡＴを使用しないのでＦＡＴ破壊等で復旧が困難となる事態が避けることができるとともに、ファイルの概念を持たないため、システム構成を簡略化することが可能となる。
【００３３】
また、アプリケーション側は、フラッシュメモリ９上のセクタ配置を意識しないで単純に０からの連続アドレスを指定するだけで、フラッシュメモリ９に対する書き込み／読み出しを行うことができる。このように、アプリケーション側から論理アドレスを指定されると、フラッシュメモリドライバ８は目標の物理アドレスに変換し、書き込み／読み出しを実行することができる。これは、連続アドレスを有するメモリ管理を実施するあらゆる電子機器に適用することができ、例えば移動通信を使用した携帯電話機や移動通信機能を有した携帯情報端末（ＰＤＡ）などに適用可能である。
【００３４】
また、図１における処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによりフラッシュメモリ９制御処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００３５】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【図面の簡単な説明】
【００３６】
【図１】本発明の一実施形態の構成を示すブロック図である。
【図２】図１に示すフラッシュメモリ９の記憶領域の構成を示す説明図である。
【図３】図１に示すフラッシュメモリドライバ８の構成を示すブロック図である。
【図４】図１に示すフラッシュメモリドライバ８の動作を示すフローチャートである。
【図５】図１に示すフラッシュメモリドライバ８の動作を示すフローチャートである。
【図６】図１に示すフラッシュメモリドライバ８の動作を示すフローチャートである。
【図７】図１に示すフラッシュメモリドライバ８の動作を示すフローチャートである。
【符号の説明】
【００３７】
１・・・無線部、２・・・制御部、３・・・ＲＡＭ、４・・・ＲＯＭ、５・・・マイク／スピーカ、６・・・操作部、７・・・表示部、８・・・フラッシュメモリドライバ、９・・・フラッシュメモリ、８１・・・アプリケーションＩ／Ｆ部、８２・・・キャッシュ制御部、８３・・・キャッシュメモリ、８４・・・シーケンス制御部、８５・・・ユニットヘッダアクセス部、８６・・・エントリアクセス部、８７・・・セクタデータアクセス部、８８・・・エントリ検索部、８９・・・デバイスＩ／Ｆ部
【図１】
2005275722.tif 000003
【図２】
2005275722.tif 000004
【図３】
2005275722.tif 000005
【図４】
2005275722.tif 000006
【図５】
2005275722.tif 000007
【図６】
2005275722.tif 000008
【図７】
2005275722.tif 000009