不揮発性メモリのデータ保存方法、コンピュータプログラムおよび携帯端末
【課題】不揮発性メモリに保存すべきデータのデータ量の変化に応じて、必要なデータ容量の確保と端末のシステム全体の効率との適切なバランスをとる。
【解決手段】不揮発性メモリ40上に、第1のセクタサイズの複数のセクタからなるバンク#1と、第1のセクタサイズより大きいセクタサイズの複数のセクタからなるバンク#2とを確保する。不揮発性メモリへのデータの書き込みの度にバンク#1の複数のセクタ間でアクティブセクタを更新していく。不揮発性メモリへのデータの書き込みの際に1セクタ内に保存する総データ量をチェックし、総データ量が第1のセクタサイズのセクタ内に収納しきれないと判断されたとき、バンク#2の複数のセクタの中からアクティブセクタを決定する。不揮発性メモリへのデータの書き込みの際にはアクティブセクタにデータを書き込む。
【解決手段】不揮発性メモリ40上に、第1のセクタサイズの複数のセクタからなるバンク#1と、第1のセクタサイズより大きいセクタサイズの複数のセクタからなるバンク#2とを確保する。不揮発性メモリへのデータの書き込みの度にバンク#1の複数のセクタ間でアクティブセクタを更新していく。不揮発性メモリへのデータの書き込みの際に1セクタ内に保存する総データ量をチェックし、総データ量が第1のセクタサイズのセクタ内に収納しきれないと判断されたとき、バンク#2の複数のセクタの中からアクティブセクタを決定する。不揮発性メモリへのデータの書き込みの際にはアクティブセクタにデータを書き込む。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、携帯電話機を代表とする携帯端末、特にその不揮発性メモリへのデータ保存の方法、そのコンピュータプログラムおよびこれを使用する携帯端末に関する。
【背景技術】
【0002】
携帯電話機は近年、高機能化が進み、単なる通話機能だけでなく、電子メール送受信機能、ウェブ閲覧機能、GPS機能、非接触ICカード機能、等種々の機能を搭載するようになってきている。
【0003】
携帯端末においては、端末固有の端末ID等の他、このような各種機能に対応するアプリケーション(プログラム)の動作に必要な初期的なデータやパラメータを、電源遮断中にも保持できるように、再書き込み可能な不揮発性(NV: Non-Volatile)メモリに保存している。本明細書では、NVメモリに格納するデータやパラメータをNVアイテムと呼ぶ。再書き込み可能な不揮発性メモリとしては例えばフラッシュメモリが知られている。
【0004】
図13に、従来知られているNVメモリシステムの構成を示す。この従来システムでは、NV領域のサイズに対する厳しい制限を課さないために、ファイルシステム上に構築されている。すなわち、アプリケーションからの要求に応じてNVタスクを実行するNVシステムは、埋込みファイルシステムを用いてデバイスドライバによりNVメモリをアクセスする。
【発明の開示】
【発明が解決しようとする課題】
【0005】
他方、NVドライバ(デバイスドライバ)を用いて直接NVメモリ上のNVアイテムにアクセスする手法も考えられる。この場合、NVドライバでNVメモリに対してデータ(NVアイテム)を読み書きする処理単位をセクタと呼ぶ。セクタのサイズは固定(例えば8Kバイト)であり、すべてのNVアイテムは1セクタ内に格納される。この構成により、複雑な処理プログラムであるファイルシステムを不要とすることができる。
【0006】
ファイルシステムを用いずNVドライバで直接NVメモリをアクセスする手法において、NVメモリに設けられるセクタとしては、その用途の違いにより、携帯端末の工場出荷時に書き込まれた後は読み出し専用となるRO(Read Only)セクタと、読み出し及び書き込みが許されるRW(Read Write)セクタとが設けられる。
【0007】
図14に示すように、NVアイテムを格納するためのセクタは、通常複数(図では8個、1個あたり8Kバイト)設けられる。これは、NVメモリへのデータの書き込み動作中の電源断などの理由によりデータが破損するような場合の対策として、直前の書き込み時のデータが残存するように、同サイズの複数のセクタを用意しておき、新たなデータの書き込み時には別のセクタに書き込むためである。また、セクタの許容書き込み回数は有限なので、セクタ数を多くすることにより1セクタ当たりの書き込み頻度を軽減し、不揮発性メモリの使用可能な時間を延ばすことができる。
【0008】
NVメモリに複数のセクタを用意した場合でも、1時点では有効なセクタが1つだけ存在し、これをアクティブセクタと呼ぶ。このアクティブセクタは全てのNVアイテムの最新の値を記憶している。
【0009】
例えば携帯電話機の場合、通常、その機能の追加、新たなデジタル通信技術(例えば高速データ通信サービスのサポート)の採用等の要因により、NVメモリに必要とされるデータ容量は増加していく。
【0010】
NVメモリのメモリ容量の節約のみならず、セクタ消去や書き込みに要する時間の短縮の観点、ひいては端末の動作効率の観点からはセクタサイズは小さいことが好ましい。反面、NVアイテムが増加していき、当該セクタサイズに収納しきれない状態となったとき、これは端末の動作上、重大な支障となる。
【0011】
したがって、セクタサイズはNVアイテムの総データ容量に応じて定めることが好ましい。しかし、端末開発の初期の段階で、NVメモリに将来必要となる最大容量を適正に判断することは、極めて困難である。
【0012】
本発明は、このような背景においてなされたものであり、その目的は、不揮発性メモリに保存すべきデータのデータ量の変化に応じて、必要なデータ容量の確保と端末のシステム全体の効率との適切なバランスをとることができる不揮発性メモリのデータ保存方法、コンピュータプログラムおよび携帯端末を提供することにある。
【課題を解決するための手段】
【0013】
本発明による不揮発性メモリのデータ保存方法は、携帯端末において利用されるデータを携帯端末内の再書き込み可能な不揮発性メモリに保存するための方法であって、不揮発性メモリ上に、第1のセクタサイズの複数のセクタからなる第1のバンクと、前記第1のセクタサイズより大きいセクタサイズの複数のセクタからなる第2のバンクとを確保するステップと、前記第1のバンクの複数のセクタのうち一時に1つのセクタをアクティブセクタと決定するとともに、前記不揮発性メモリへのデータの書き込みの度に前記第1のバンクの複数のセクタ間でアクティブセクタを更新していくステップと、不揮発性メモリへのデータの書き込みの際に1セクタ内に保存する総データ量をチェックするステップと、チェックされた総データ量が前記第1のセクタサイズのセクタ内に収納しきれないと判断されたとき、前記第2のバンクの複数のセクタの中からアクティブセクタを決定するステップと、不揮発性メモリへのデータの書き込みの際に前記アクティブセクタにデータを書き込むステップとを備えたことを特徴とする。
【0014】
すなわち、本発明では、不揮発性メモリにセクタサイズの異なる複数のセクタからなる第1および第2のバンクを用意しておき、初期的には小サイズのセクタからなる第1のバンクを利用することにより、セクタ消去時間やメモリ書き込み時間の増加によるシステム効率の低下を防止する。これとともに、セクタに保存するデータの総量が小サイズのセクタに収納しきれなくなった段階で、使用するバンクを大サイズのセクタからなる第2のバンクに切り替える。
【0015】
本発明は、携帯端末において利用されるデータを携帯端末内の再書き込み可能な不揮発性メモリに保存するためのコンピュータプログラムとしても把握することができる。このコンピュータプログラムはメモリに格納され、CPUにより読み出されて実行される。
【0016】
本発明による携帯端末は、再書き込み可能な不揮発性メモリと、バッファメモリと、不揮発性メモリ上に、第1のセクタサイズの複数のセクタからなる第1のバンクと、前記第1のセクタサイズより大きいセクタサイズの複数のセクタからなる第2のバンクとを確保する手段と、前記第1のバンクの複数のセクタのうち一時に1つのセクタをアクティブセクタと決定するとともに、前記不揮発性メモリへのデータの書き込みの度に前記第1のバンクの複数のセクタ間でアクティブセクタを更新していく手段と、不揮発性メモリへのデータの書き込みの際に1セクタ内に保存する総データ量をチェックする手段と、チェックされた総データ量が前記第1のセクタサイズのセクタ内に収納しきれないと判断されたとき、前記第2のバンクの複数のセクタの中からアクティブセクタを決定する手段と、電源立ち上げ時に前記アクティブセクタの内容を前記バッファメモリに格納する手段と、不揮発性メモリへのデータの書き込みの際に、バッファメモリに書き込み対象のデータを書き込んだ後、当該バッファメモリの内容を前記アクティブセクタに書き込む手段と、データの読み出し時にバッファメモリから読み出し対象のデータを読み出す手段とを備えたことを特徴とする。
【発明の効果】
【0017】
本発明によれば、初期的には小サイズのセクタからなる第1のバンクを利用することにより、セクタ消去時間やメモリ書き込み時間の増加によるシステム効率の低下を防止するとともに、セクタに保存するデータの総量が小サイズのセクタに収納しきれなくなった段階で、使用するバンクを大サイズのセクタからなる第2のバンクに切り替えることにより、保存対象のデータの増加に対処することができる。
【発明を実施するための最良の形態】
【0018】
以下、本発明の好適な実施の形態について、詳細に説明する。
【0019】
まず、図1に、本発明の不揮発性メモリのデータ保存方法を利用する携帯端末の一例としての携帯電話機100のハードウェア構成を示す。
【0020】
この携帯電話機100は、電話機能に関連した部位として、アンテナ101、デュプレクサ(Duplexer)102、受信部103、送信部104、スピーカ105、デジタル信号処理部DSP(Digital Signal Processor)106、マイク107、イヤレシーバ108を含む。携帯電話機100は、さらに、この携帯電話機の制御に関連した部位として、CPU(Central Processing Unit)を含む制御部110、ROM(Read Only Memory)111、RAM(Random Access Memory)112、液晶ディスプレイ等を含む表示部114、テンキーなどの各種キーやジョグダイヤルなどの操作部を有する入力操作部115、現在の日付や時間を管理するRTC(Real Time Clock)部116、等を有する。制御部110は中央処理装置(CPU)などから構成される。入力操作部115は携帯端末の各種キーやボタン、ジョグダイヤル等に相当する。ROM111は、本実施の形態の後述する動作を実現するための制御プログラムや必要なデータが格納されている不揮発性メモリであり、本発明に係る再書き込み可能な不揮発性メモリ(NVメモリ)40を含む。NVメモリ40は、後述する第1のバンク(#1)41および第2のバンク(#2)42を含んでいる。本実施の形態におけるNVメモリ40はフラッシュメモリ、特にNOR型のフラッシュメモリを用いている。フラッシュメモリとしては、NOR型とNAND型が知られている。NOR型はNAND型に比べて小容量であるが、バイトやワード単位の読み出しが可能である(NAND型はページ単位の読み出しのみ)。また、いずれの型のフラッシュメモリもそのデータの消去は、所定のサイズ(ブロック)単位の消去となる。RAM112はCPUによる作業領域やデータの一時記憶領域を提供するメモリである。本実施の形態では、RAM112内に、特に、NVメモリ40に保存されたNVアイテムのコピーを格納するNVバッファ113を有している。このNVバッファ113は、NVメモリ40の遅い処理速度を補償するための高速のキャッシュメモリとして機能する。
【0021】
なお、図1には示していないが、GPS受信部、メモリカードを装着するためのメモリカードインタフェース部、非接触ICカード機能部等、他の機能部を備えてもよい。
【0022】
図2に、本発明のNVメモリシステム200のソフトウェア構成を示す。
【0023】
アプリケーション(または上位システム)10は、本発明のNVメモリシステム200を介してNVメモリ40にアクセスする。NVメモリシステム200は図1の制御部110のプログラム制御によって実現される。NVメモリシステム200は、アプリケーションが直接NVメモリを制御することがないように、そのインタフェースを提供している。
【0024】
NVメモリシステム200は、NV制御部20とNVドライバ30とにより構成される。NV制御部20は、アプリケーションからの要求に応じてNVメモリ40への所定の動作を行うよう、NVドライバ30を制御する機能を有する。この具体的な処理については後に詳述する。
【0025】
NVドライバ30はNVメモリ40にアクセスして、その具体的な制御(書き込み、読み出し、消去等)を行うデバイスドライバである。このデバイスドライバとしては、好ましくは、NVメモリのメーカ毎にデバイスドライバを複数用意しておく。
【0026】
図3は、NV制御部20の内部構成例を示している。NV制御部20は、NVインタフェース部21、NVエンジン部22、およびデバイス制御インタフェース部23を有している。
【0027】
NVインタフェース部21は、アプリケーション(または上位システム)に対して、本NVメモリシステムの機能を利用させるため部位である。これにより、アプリケーションはNVメモリの実際のデバイスを意識することなく、NVアイテムの書き込みおよび読み出しを行うことができる。なお、端末の製造工程や調整時にのみ必要な機能と、その後の通常の機能とは異なるので、両者のインタフェースを別々に用意してもよい。
【0028】
NVエンジン部22は、本NVメモリシステム200の種々の機能を実現するために必要な共通関数を有する部位である。共通関数としては、初期化時の動作を行うための初期化関数221、セクタの読み出しを行うためのセクタリード関数222、セクタの書き込みを行うためのセクタライト関数223、現在どのセクタがアクティブとなっているかを確認するためのアクティブセクタ取得関数225、新たにアクティブセクタとすべきセクタを決定する新アクティブセクタ取得関数226、本発明に係るセクタサイズの切替を行うためのバンク切替関数227、等を有する。
【0029】
デバイス制御インタフェース部23は、種々の製造メーカのNVメモリデバイスに対応できるように、初期化時にデバイスの形式を自動確認して、対応するメーカのNVドライバを選択できるようにするものである。
【0030】
ここで、本実施の形態におけるセクタの内容および構成について説明する。
【0031】
本実施の形態におけるセクタの属性としては、前述したと同様に、読み出し専用のROセクタと、読み出しおよび書き込みが可能なRWセクタがある。本実施の形態におけるNVメモリ内に用意されるNVアイテムを格納するためのセクタの総数は8に設定される。これら8つのセクタの内容は、図4に示す通りである。
【0032】
セクタ0(RO): このセクタは、工場出荷時の初期値、調整値等の若干数のNVアイテムが書き込まれ、以後は読み出し専用として利用されるセクタである。
【0033】
セクタ1(RO): 端末にとって重要な若干数のNVアイテム(例えば端末IDなど)を格納するための読み出し専用のセクタである。
【0034】
セクタ2〜6(RW): 通常のNVアイテムを格納するための読み出し/書き込み可能なセクタである。
【0035】
セクタ7(RW): 特別NVアイテム(例えばメモリカードのセキュリティキー)を格納するための読み出し/書き込み可能なセクタである。
【0036】
このように、本実施の形態では、全8つのセクタのうちセクタ2〜6が通常のNVアイテムを格納するために使用される通常のセクタである。セクタ7については、本発明に直接関係しないので、ここでは詳述しない。
【0037】
図5に、セクタ2〜6の各セクタの構成を示す。セクタ400は、セクタヘッダ部401とユーザデータ部402とセクタフッタ部403とからなる。セクタヘッダ部401は、保存データを管理するためのデータ領域であり、セクタのデータ保存の有無、セクタ属性、セクタ管理ID、書き込み時間データ(年月日日時分秒)、保存データ長等を保持する。ユーザデータ部402は、実際のユーザデータとしてのNVアイテムを格納する領域である。セクタフッタ部403は、当該セクタのデータのチェックサム、全セクタのエラー情報等を格納する。全セクタのエラー情報はアクティブセクタ内のもののみが有効となる。
【0038】
前述のように、セクタ2〜6のうち一時に1つのセクタのみがアクティブとなり、このアクティブセクタが全てのNVアイテムの最新の値を記憶する。他の通常のセクタは、データの書き込み動作中の電源断などの理由によりデータが破損するような場合の対策として、NVデータのバックアップのために使われる。
【0039】
本実施の形態では、図6に示すように、NVメモリ40のNVアイテムを格納するNV領域として、第1のバンク#1と第2のバンク#2を用意する。図中の各セクタ内の数値はそのセクタの開始アドレスを示している。それぞれ8セクタを有するが、第2のバンクの1セクタのサイズはそれより大きいサイズ(ここでは8倍)としている。具体的には次の通りである。
バンク#1:ベースアドレス(0x01FF0000)、セクタサイズ8Kバイト
バンク#2:ベースアドレス(0x0lE00000)、セクタサイズ64Kバイト
【0040】
携帯電話機の例では、経験的に、NVアイテムの全データ量が初期的に8Kバイトを上回ることはないので、NV領域は通常小さいセクタサイズを有するバンク#1を利用するように設定される。その後、携帯電話機の機能追加等に応じて、NVアイテムの種類やデータ量が増加していったとき、NVデータの総データ量はバンク#1のセクタサイズ(ここでは8Kバイト)を越える場合がある。このような場合には、アクティブセクタを、より大きいセクタサイズ(64Kバイト>8Kバイト)のバンク#2のセクタから選択する。
【0041】
以下、本実施の形態における具体的な動作についてフローチャート等を参照しながら説明する。
【0042】
図7は、図2に示したNVメモリシステム200のNV制御部20が実行するNVタスクの処理例を示している。端末電源立ち上げ時等に起動されるNVタスクは、まず、デバイスドライバ(NVドライバ)の初期化を行う(S11)。この処理の詳細については後述する。ついで、NVタスクの初期化を行う(S12)。初期値が必要なNVアイテムについては、このステップで設定される。例えば、送受信部(RF)に関連したNVアイテム、バッテリに関連したNVアイテム、GPSに関連してNVアイテム等がある。なお、これらの初期値の設定の有無を示すフラグを記憶し、各フラグに基づいて初期値設定の要否を判断するようにしてもよい。
【0043】
その後、アプリケーション(または上位システム)からコマンドを受信したら(S13,Yes)、そのコマンドを判別する(S14)。コマンドが読み出しであればNVアイテムの読み出し処理を行う(S15)。コマンドが“NVWrite”であればNVアイテムの書き込み処理を行う(S16)。本実施の形態における読み出しコマンドには、NVバッファ113からデータを読み出すReadコマンドとNVメモリ40からデータを読み出すDevReadコマンドとがある。その他のコマンドについては、当該その他のコマンド処理を実行する(S17)。
【0044】
図8は図7のステップS11のデバイスドライバ初期化のステップを詳細を示している。まず、NVバッファ113をクリア(消去)するとともに(S21)、デバイスドライバを初期状態とする(S22)。ついで、このNVタスクの起動が当該端末での初めての起動であれば(S23,Yes)、NVメモリを全クリア(消去)して(S25)、製造工程を開始する(S26)。製造工程開始処理では、NVバッファのセクタ0、1、7のクリア、およびその後の初期値の設定、書き込みを行う。初めての起動でなければ、NVメモリ40のアクティブセクタの全内容をNVバッファ113に読み出す(S24)。
【0045】
図9は、図7のステップS15のNVアイテム読み出し処理の処理例を示している。図10は、図9に対応するNVアイテム読み出し処理においてReadコマンドを受信した場合とDevReadコマンドを受信した場合の要求およびデータの流れを示している。まず、読み出しコマンドがReadコマンドかDevReadコマンドかをチェックする(S31)。Readコマンドであれば、NVタスク22aが直接NVバッファ113からそのNVアイテムを読み出す(S32)。DevReadコマンドであれば、NVタスク22aは、NVドライバ30経由で、NVメモリ40のアクティブセクタから当該NVアイテムを読み出す(S33)。
【0046】
図11は、図7のステップS16のNVアイテム書き込み処理の処理例を示している。また、この処理は、図7のステップS16に限らず、図8の製造工程(S27)でのNVアイテム書き込み処理、開発段階でのNVアイテム書き込み処理として利用できる。図12は、図11の処理に対応したNVタスク22aとNVドライバ30とNVバッファ113とNVメモリ40の間の、要求およびデータの流れを示している。
【0047】
まず、NVタスク22aは、書き込み対象のNVアイテムを含む全NVアイテムの総データ量を確認する(S41)。この総データ量が予め定めた閾値(ここでは8Kバイト)を越えた場合には(S42,Yes)、NVメモリのバンク切り替え、すなわち、バンク#1からバンク#2への切替を行う(S43)。これに伴って、アクティブセクタをバンク#1からバンク#2のセクタに移動させる。なお、ここでは総データ量が増加するときに閾値を越える場合を想定しているが、総データ量が減少したときに閾値を逆向きに越える場合に逆の切替を行うことも可能である。
【0048】
次いで、書き込み対象のNVアイテムをNVバッファ113に書き込む(S44)。そこで、アクティブセクタを新たなセクタに更新する(S45)。この更新のアルゴリズムは特にここでは言及しないが、有効なセクタについて順番に選択する等のアルゴリズムを利用することができる。決定された新たなアクティブセクタを消去した後(S46)、このアクティブセクタに対してNVバッファ113の内容を書き込む(S47)。
【0049】
以上、本発明の好適な実施の形態について説明したが、上記で言及した以外にも種々の変形、変更を行うことが可能である。すなわち、上述した具体的なセクタサイズ、セクタ数、アドレス値、処理ステップ等はすべて例示であり、本発明はそれらに限定されるものではない。
【0050】
また、セクタの管理は、実際の物理的なアドレスに対応するセクタでなく、これに論理的に対応づけられた論理セクタで行ってもよい。
【0051】
NVアイテムによっては、電源オン/オフの度、基地局からの所定の信号の受信時等、NVメモリへの書き込みが高頻度に行われるものも存在しうる。それらの書き込みが発生する度にNVメモリへ書き込みを行っていると、デバイスが老朽化したり、電源オン/オフ時間が長くなってしまう。そこで、そのような書き込み頻度の高いNVアイテムについては初期的にNVメモリに書き込むと共にバッテリバックアップされた小容量のSRAM(Static Random Access Memory)に書き込み、以後はSRAMを読み書きし、NVメモリの更新は最小限にとどめるなどの措置をとってもよい。
【図面の簡単な説明】
【0052】
【図1】本発明の不揮発性メモリシステムを利用する携帯端末の一例としての携帯電話機のハードウェア構成を示すブロック図である。
【図2】本発明のNVメモリシステムのソフトウェア構成を示すブロック図である。。
【図3】図2内に示したNV制御部の内部構成例を示すブロック図である。
【図4】NVアイテムを格納するためのNVメモリの8つのセクタの内容の説明図である。
【図5】図4に示したセクタ2〜6の各セクタの構成を示す図である。
【図6】本発明の実施の形態における、NVメモリのNVアイテムを格納するNV領域としての第1のバンク#1と第2のバンク#2の構成例を示すメモリマップ図である。
【図7】図2に示したNVメモリシステム200のNV制御部が実行するNVタスクの処理例を示すフローチャートである。
【図8】図7のステップS11のデバイスドライバ初期化のステップを詳細を示すフローチャートである。
【図9】図7のステップS15のNVアイテム読み出し処理の処理例を示すフローチャートである。
【図10】図9に対応するNVアイテム読み出し処理においてReadコマンドを受信した場合とDevReadコマンドを受信した場合の要求およびデータの流れを示す説明図である。
【図11】図7のステップS16のNVアイテム書き込み処理の処理例を示すフローチャートである。
【図12】図11の処理に対応したNVタスクと、NVドライバと、NVバッファと、NVメモリの間の、要求およびデータの流れを示す説明図である。
【図13】従来知られているNVメモリシステムの構成を示すブロック図である。
【図14】NVアイテムを格納するためのセクタの説明図である。
【符号の説明】
【0053】
20…制御部、21…インタフェース部、22…エンジン部、22a…タスク、23…デバイス制御インタフェース部、30…NVドライバ、40…NVメモリ、100…携帯電話機、101…アンテナ、103…受信部、104…送信部、105…スピーカ、106…デジタル信号処理部(DSP)、107…マイク、108…イヤレシーバ、110…制御部、113…バッファ、114…表示部、115…入力操作部、116…RTC部、200…メモリシステム、400…セクタ、401…セクタヘッダ部、402…ユーザデータ部、403…セクタフッタ部
【技術分野】
【0001】
本発明は、携帯電話機を代表とする携帯端末、特にその不揮発性メモリへのデータ保存の方法、そのコンピュータプログラムおよびこれを使用する携帯端末に関する。
【背景技術】
【0002】
携帯電話機は近年、高機能化が進み、単なる通話機能だけでなく、電子メール送受信機能、ウェブ閲覧機能、GPS機能、非接触ICカード機能、等種々の機能を搭載するようになってきている。
【0003】
携帯端末においては、端末固有の端末ID等の他、このような各種機能に対応するアプリケーション(プログラム)の動作に必要な初期的なデータやパラメータを、電源遮断中にも保持できるように、再書き込み可能な不揮発性(NV: Non-Volatile)メモリに保存している。本明細書では、NVメモリに格納するデータやパラメータをNVアイテムと呼ぶ。再書き込み可能な不揮発性メモリとしては例えばフラッシュメモリが知られている。
【0004】
図13に、従来知られているNVメモリシステムの構成を示す。この従来システムでは、NV領域のサイズに対する厳しい制限を課さないために、ファイルシステム上に構築されている。すなわち、アプリケーションからの要求に応じてNVタスクを実行するNVシステムは、埋込みファイルシステムを用いてデバイスドライバによりNVメモリをアクセスする。
【発明の開示】
【発明が解決しようとする課題】
【0005】
他方、NVドライバ(デバイスドライバ)を用いて直接NVメモリ上のNVアイテムにアクセスする手法も考えられる。この場合、NVドライバでNVメモリに対してデータ(NVアイテム)を読み書きする処理単位をセクタと呼ぶ。セクタのサイズは固定(例えば8Kバイト)であり、すべてのNVアイテムは1セクタ内に格納される。この構成により、複雑な処理プログラムであるファイルシステムを不要とすることができる。
【0006】
ファイルシステムを用いずNVドライバで直接NVメモリをアクセスする手法において、NVメモリに設けられるセクタとしては、その用途の違いにより、携帯端末の工場出荷時に書き込まれた後は読み出し専用となるRO(Read Only)セクタと、読み出し及び書き込みが許されるRW(Read Write)セクタとが設けられる。
【0007】
図14に示すように、NVアイテムを格納するためのセクタは、通常複数(図では8個、1個あたり8Kバイト)設けられる。これは、NVメモリへのデータの書き込み動作中の電源断などの理由によりデータが破損するような場合の対策として、直前の書き込み時のデータが残存するように、同サイズの複数のセクタを用意しておき、新たなデータの書き込み時には別のセクタに書き込むためである。また、セクタの許容書き込み回数は有限なので、セクタ数を多くすることにより1セクタ当たりの書き込み頻度を軽減し、不揮発性メモリの使用可能な時間を延ばすことができる。
【0008】
NVメモリに複数のセクタを用意した場合でも、1時点では有効なセクタが1つだけ存在し、これをアクティブセクタと呼ぶ。このアクティブセクタは全てのNVアイテムの最新の値を記憶している。
【0009】
例えば携帯電話機の場合、通常、その機能の追加、新たなデジタル通信技術(例えば高速データ通信サービスのサポート)の採用等の要因により、NVメモリに必要とされるデータ容量は増加していく。
【0010】
NVメモリのメモリ容量の節約のみならず、セクタ消去や書き込みに要する時間の短縮の観点、ひいては端末の動作効率の観点からはセクタサイズは小さいことが好ましい。反面、NVアイテムが増加していき、当該セクタサイズに収納しきれない状態となったとき、これは端末の動作上、重大な支障となる。
【0011】
したがって、セクタサイズはNVアイテムの総データ容量に応じて定めることが好ましい。しかし、端末開発の初期の段階で、NVメモリに将来必要となる最大容量を適正に判断することは、極めて困難である。
【0012】
本発明は、このような背景においてなされたものであり、その目的は、不揮発性メモリに保存すべきデータのデータ量の変化に応じて、必要なデータ容量の確保と端末のシステム全体の効率との適切なバランスをとることができる不揮発性メモリのデータ保存方法、コンピュータプログラムおよび携帯端末を提供することにある。
【課題を解決するための手段】
【0013】
本発明による不揮発性メモリのデータ保存方法は、携帯端末において利用されるデータを携帯端末内の再書き込み可能な不揮発性メモリに保存するための方法であって、不揮発性メモリ上に、第1のセクタサイズの複数のセクタからなる第1のバンクと、前記第1のセクタサイズより大きいセクタサイズの複数のセクタからなる第2のバンクとを確保するステップと、前記第1のバンクの複数のセクタのうち一時に1つのセクタをアクティブセクタと決定するとともに、前記不揮発性メモリへのデータの書き込みの度に前記第1のバンクの複数のセクタ間でアクティブセクタを更新していくステップと、不揮発性メモリへのデータの書き込みの際に1セクタ内に保存する総データ量をチェックするステップと、チェックされた総データ量が前記第1のセクタサイズのセクタ内に収納しきれないと判断されたとき、前記第2のバンクの複数のセクタの中からアクティブセクタを決定するステップと、不揮発性メモリへのデータの書き込みの際に前記アクティブセクタにデータを書き込むステップとを備えたことを特徴とする。
【0014】
すなわち、本発明では、不揮発性メモリにセクタサイズの異なる複数のセクタからなる第1および第2のバンクを用意しておき、初期的には小サイズのセクタからなる第1のバンクを利用することにより、セクタ消去時間やメモリ書き込み時間の増加によるシステム効率の低下を防止する。これとともに、セクタに保存するデータの総量が小サイズのセクタに収納しきれなくなった段階で、使用するバンクを大サイズのセクタからなる第2のバンクに切り替える。
【0015】
本発明は、携帯端末において利用されるデータを携帯端末内の再書き込み可能な不揮発性メモリに保存するためのコンピュータプログラムとしても把握することができる。このコンピュータプログラムはメモリに格納され、CPUにより読み出されて実行される。
【0016】
本発明による携帯端末は、再書き込み可能な不揮発性メモリと、バッファメモリと、不揮発性メモリ上に、第1のセクタサイズの複数のセクタからなる第1のバンクと、前記第1のセクタサイズより大きいセクタサイズの複数のセクタからなる第2のバンクとを確保する手段と、前記第1のバンクの複数のセクタのうち一時に1つのセクタをアクティブセクタと決定するとともに、前記不揮発性メモリへのデータの書き込みの度に前記第1のバンクの複数のセクタ間でアクティブセクタを更新していく手段と、不揮発性メモリへのデータの書き込みの際に1セクタ内に保存する総データ量をチェックする手段と、チェックされた総データ量が前記第1のセクタサイズのセクタ内に収納しきれないと判断されたとき、前記第2のバンクの複数のセクタの中からアクティブセクタを決定する手段と、電源立ち上げ時に前記アクティブセクタの内容を前記バッファメモリに格納する手段と、不揮発性メモリへのデータの書き込みの際に、バッファメモリに書き込み対象のデータを書き込んだ後、当該バッファメモリの内容を前記アクティブセクタに書き込む手段と、データの読み出し時にバッファメモリから読み出し対象のデータを読み出す手段とを備えたことを特徴とする。
【発明の効果】
【0017】
本発明によれば、初期的には小サイズのセクタからなる第1のバンクを利用することにより、セクタ消去時間やメモリ書き込み時間の増加によるシステム効率の低下を防止するとともに、セクタに保存するデータの総量が小サイズのセクタに収納しきれなくなった段階で、使用するバンクを大サイズのセクタからなる第2のバンクに切り替えることにより、保存対象のデータの増加に対処することができる。
【発明を実施するための最良の形態】
【0018】
以下、本発明の好適な実施の形態について、詳細に説明する。
【0019】
まず、図1に、本発明の不揮発性メモリのデータ保存方法を利用する携帯端末の一例としての携帯電話機100のハードウェア構成を示す。
【0020】
この携帯電話機100は、電話機能に関連した部位として、アンテナ101、デュプレクサ(Duplexer)102、受信部103、送信部104、スピーカ105、デジタル信号処理部DSP(Digital Signal Processor)106、マイク107、イヤレシーバ108を含む。携帯電話機100は、さらに、この携帯電話機の制御に関連した部位として、CPU(Central Processing Unit)を含む制御部110、ROM(Read Only Memory)111、RAM(Random Access Memory)112、液晶ディスプレイ等を含む表示部114、テンキーなどの各種キーやジョグダイヤルなどの操作部を有する入力操作部115、現在の日付や時間を管理するRTC(Real Time Clock)部116、等を有する。制御部110は中央処理装置(CPU)などから構成される。入力操作部115は携帯端末の各種キーやボタン、ジョグダイヤル等に相当する。ROM111は、本実施の形態の後述する動作を実現するための制御プログラムや必要なデータが格納されている不揮発性メモリであり、本発明に係る再書き込み可能な不揮発性メモリ(NVメモリ)40を含む。NVメモリ40は、後述する第1のバンク(#1)41および第2のバンク(#2)42を含んでいる。本実施の形態におけるNVメモリ40はフラッシュメモリ、特にNOR型のフラッシュメモリを用いている。フラッシュメモリとしては、NOR型とNAND型が知られている。NOR型はNAND型に比べて小容量であるが、バイトやワード単位の読み出しが可能である(NAND型はページ単位の読み出しのみ)。また、いずれの型のフラッシュメモリもそのデータの消去は、所定のサイズ(ブロック)単位の消去となる。RAM112はCPUによる作業領域やデータの一時記憶領域を提供するメモリである。本実施の形態では、RAM112内に、特に、NVメモリ40に保存されたNVアイテムのコピーを格納するNVバッファ113を有している。このNVバッファ113は、NVメモリ40の遅い処理速度を補償するための高速のキャッシュメモリとして機能する。
【0021】
なお、図1には示していないが、GPS受信部、メモリカードを装着するためのメモリカードインタフェース部、非接触ICカード機能部等、他の機能部を備えてもよい。
【0022】
図2に、本発明のNVメモリシステム200のソフトウェア構成を示す。
【0023】
アプリケーション(または上位システム)10は、本発明のNVメモリシステム200を介してNVメモリ40にアクセスする。NVメモリシステム200は図1の制御部110のプログラム制御によって実現される。NVメモリシステム200は、アプリケーションが直接NVメモリを制御することがないように、そのインタフェースを提供している。
【0024】
NVメモリシステム200は、NV制御部20とNVドライバ30とにより構成される。NV制御部20は、アプリケーションからの要求に応じてNVメモリ40への所定の動作を行うよう、NVドライバ30を制御する機能を有する。この具体的な処理については後に詳述する。
【0025】
NVドライバ30はNVメモリ40にアクセスして、その具体的な制御(書き込み、読み出し、消去等)を行うデバイスドライバである。このデバイスドライバとしては、好ましくは、NVメモリのメーカ毎にデバイスドライバを複数用意しておく。
【0026】
図3は、NV制御部20の内部構成例を示している。NV制御部20は、NVインタフェース部21、NVエンジン部22、およびデバイス制御インタフェース部23を有している。
【0027】
NVインタフェース部21は、アプリケーション(または上位システム)に対して、本NVメモリシステムの機能を利用させるため部位である。これにより、アプリケーションはNVメモリの実際のデバイスを意識することなく、NVアイテムの書き込みおよび読み出しを行うことができる。なお、端末の製造工程や調整時にのみ必要な機能と、その後の通常の機能とは異なるので、両者のインタフェースを別々に用意してもよい。
【0028】
NVエンジン部22は、本NVメモリシステム200の種々の機能を実現するために必要な共通関数を有する部位である。共通関数としては、初期化時の動作を行うための初期化関数221、セクタの読み出しを行うためのセクタリード関数222、セクタの書き込みを行うためのセクタライト関数223、現在どのセクタがアクティブとなっているかを確認するためのアクティブセクタ取得関数225、新たにアクティブセクタとすべきセクタを決定する新アクティブセクタ取得関数226、本発明に係るセクタサイズの切替を行うためのバンク切替関数227、等を有する。
【0029】
デバイス制御インタフェース部23は、種々の製造メーカのNVメモリデバイスに対応できるように、初期化時にデバイスの形式を自動確認して、対応するメーカのNVドライバを選択できるようにするものである。
【0030】
ここで、本実施の形態におけるセクタの内容および構成について説明する。
【0031】
本実施の形態におけるセクタの属性としては、前述したと同様に、読み出し専用のROセクタと、読み出しおよび書き込みが可能なRWセクタがある。本実施の形態におけるNVメモリ内に用意されるNVアイテムを格納するためのセクタの総数は8に設定される。これら8つのセクタの内容は、図4に示す通りである。
【0032】
セクタ0(RO): このセクタは、工場出荷時の初期値、調整値等の若干数のNVアイテムが書き込まれ、以後は読み出し専用として利用されるセクタである。
【0033】
セクタ1(RO): 端末にとって重要な若干数のNVアイテム(例えば端末IDなど)を格納するための読み出し専用のセクタである。
【0034】
セクタ2〜6(RW): 通常のNVアイテムを格納するための読み出し/書き込み可能なセクタである。
【0035】
セクタ7(RW): 特別NVアイテム(例えばメモリカードのセキュリティキー)を格納するための読み出し/書き込み可能なセクタである。
【0036】
このように、本実施の形態では、全8つのセクタのうちセクタ2〜6が通常のNVアイテムを格納するために使用される通常のセクタである。セクタ7については、本発明に直接関係しないので、ここでは詳述しない。
【0037】
図5に、セクタ2〜6の各セクタの構成を示す。セクタ400は、セクタヘッダ部401とユーザデータ部402とセクタフッタ部403とからなる。セクタヘッダ部401は、保存データを管理するためのデータ領域であり、セクタのデータ保存の有無、セクタ属性、セクタ管理ID、書き込み時間データ(年月日日時分秒)、保存データ長等を保持する。ユーザデータ部402は、実際のユーザデータとしてのNVアイテムを格納する領域である。セクタフッタ部403は、当該セクタのデータのチェックサム、全セクタのエラー情報等を格納する。全セクタのエラー情報はアクティブセクタ内のもののみが有効となる。
【0038】
前述のように、セクタ2〜6のうち一時に1つのセクタのみがアクティブとなり、このアクティブセクタが全てのNVアイテムの最新の値を記憶する。他の通常のセクタは、データの書き込み動作中の電源断などの理由によりデータが破損するような場合の対策として、NVデータのバックアップのために使われる。
【0039】
本実施の形態では、図6に示すように、NVメモリ40のNVアイテムを格納するNV領域として、第1のバンク#1と第2のバンク#2を用意する。図中の各セクタ内の数値はそのセクタの開始アドレスを示している。それぞれ8セクタを有するが、第2のバンクの1セクタのサイズはそれより大きいサイズ(ここでは8倍)としている。具体的には次の通りである。
バンク#1:ベースアドレス(0x01FF0000)、セクタサイズ8Kバイト
バンク#2:ベースアドレス(0x0lE00000)、セクタサイズ64Kバイト
【0040】
携帯電話機の例では、経験的に、NVアイテムの全データ量が初期的に8Kバイトを上回ることはないので、NV領域は通常小さいセクタサイズを有するバンク#1を利用するように設定される。その後、携帯電話機の機能追加等に応じて、NVアイテムの種類やデータ量が増加していったとき、NVデータの総データ量はバンク#1のセクタサイズ(ここでは8Kバイト)を越える場合がある。このような場合には、アクティブセクタを、より大きいセクタサイズ(64Kバイト>8Kバイト)のバンク#2のセクタから選択する。
【0041】
以下、本実施の形態における具体的な動作についてフローチャート等を参照しながら説明する。
【0042】
図7は、図2に示したNVメモリシステム200のNV制御部20が実行するNVタスクの処理例を示している。端末電源立ち上げ時等に起動されるNVタスクは、まず、デバイスドライバ(NVドライバ)の初期化を行う(S11)。この処理の詳細については後述する。ついで、NVタスクの初期化を行う(S12)。初期値が必要なNVアイテムについては、このステップで設定される。例えば、送受信部(RF)に関連したNVアイテム、バッテリに関連したNVアイテム、GPSに関連してNVアイテム等がある。なお、これらの初期値の設定の有無を示すフラグを記憶し、各フラグに基づいて初期値設定の要否を判断するようにしてもよい。
【0043】
その後、アプリケーション(または上位システム)からコマンドを受信したら(S13,Yes)、そのコマンドを判別する(S14)。コマンドが読み出しであればNVアイテムの読み出し処理を行う(S15)。コマンドが“NVWrite”であればNVアイテムの書き込み処理を行う(S16)。本実施の形態における読み出しコマンドには、NVバッファ113からデータを読み出すReadコマンドとNVメモリ40からデータを読み出すDevReadコマンドとがある。その他のコマンドについては、当該その他のコマンド処理を実行する(S17)。
【0044】
図8は図7のステップS11のデバイスドライバ初期化のステップを詳細を示している。まず、NVバッファ113をクリア(消去)するとともに(S21)、デバイスドライバを初期状態とする(S22)。ついで、このNVタスクの起動が当該端末での初めての起動であれば(S23,Yes)、NVメモリを全クリア(消去)して(S25)、製造工程を開始する(S26)。製造工程開始処理では、NVバッファのセクタ0、1、7のクリア、およびその後の初期値の設定、書き込みを行う。初めての起動でなければ、NVメモリ40のアクティブセクタの全内容をNVバッファ113に読み出す(S24)。
【0045】
図9は、図7のステップS15のNVアイテム読み出し処理の処理例を示している。図10は、図9に対応するNVアイテム読み出し処理においてReadコマンドを受信した場合とDevReadコマンドを受信した場合の要求およびデータの流れを示している。まず、読み出しコマンドがReadコマンドかDevReadコマンドかをチェックする(S31)。Readコマンドであれば、NVタスク22aが直接NVバッファ113からそのNVアイテムを読み出す(S32)。DevReadコマンドであれば、NVタスク22aは、NVドライバ30経由で、NVメモリ40のアクティブセクタから当該NVアイテムを読み出す(S33)。
【0046】
図11は、図7のステップS16のNVアイテム書き込み処理の処理例を示している。また、この処理は、図7のステップS16に限らず、図8の製造工程(S27)でのNVアイテム書き込み処理、開発段階でのNVアイテム書き込み処理として利用できる。図12は、図11の処理に対応したNVタスク22aとNVドライバ30とNVバッファ113とNVメモリ40の間の、要求およびデータの流れを示している。
【0047】
まず、NVタスク22aは、書き込み対象のNVアイテムを含む全NVアイテムの総データ量を確認する(S41)。この総データ量が予め定めた閾値(ここでは8Kバイト)を越えた場合には(S42,Yes)、NVメモリのバンク切り替え、すなわち、バンク#1からバンク#2への切替を行う(S43)。これに伴って、アクティブセクタをバンク#1からバンク#2のセクタに移動させる。なお、ここでは総データ量が増加するときに閾値を越える場合を想定しているが、総データ量が減少したときに閾値を逆向きに越える場合に逆の切替を行うことも可能である。
【0048】
次いで、書き込み対象のNVアイテムをNVバッファ113に書き込む(S44)。そこで、アクティブセクタを新たなセクタに更新する(S45)。この更新のアルゴリズムは特にここでは言及しないが、有効なセクタについて順番に選択する等のアルゴリズムを利用することができる。決定された新たなアクティブセクタを消去した後(S46)、このアクティブセクタに対してNVバッファ113の内容を書き込む(S47)。
【0049】
以上、本発明の好適な実施の形態について説明したが、上記で言及した以外にも種々の変形、変更を行うことが可能である。すなわち、上述した具体的なセクタサイズ、セクタ数、アドレス値、処理ステップ等はすべて例示であり、本発明はそれらに限定されるものではない。
【0050】
また、セクタの管理は、実際の物理的なアドレスに対応するセクタでなく、これに論理的に対応づけられた論理セクタで行ってもよい。
【0051】
NVアイテムによっては、電源オン/オフの度、基地局からの所定の信号の受信時等、NVメモリへの書き込みが高頻度に行われるものも存在しうる。それらの書き込みが発生する度にNVメモリへ書き込みを行っていると、デバイスが老朽化したり、電源オン/オフ時間が長くなってしまう。そこで、そのような書き込み頻度の高いNVアイテムについては初期的にNVメモリに書き込むと共にバッテリバックアップされた小容量のSRAM(Static Random Access Memory)に書き込み、以後はSRAMを読み書きし、NVメモリの更新は最小限にとどめるなどの措置をとってもよい。
【図面の簡単な説明】
【0052】
【図1】本発明の不揮発性メモリシステムを利用する携帯端末の一例としての携帯電話機のハードウェア構成を示すブロック図である。
【図2】本発明のNVメモリシステムのソフトウェア構成を示すブロック図である。。
【図3】図2内に示したNV制御部の内部構成例を示すブロック図である。
【図4】NVアイテムを格納するためのNVメモリの8つのセクタの内容の説明図である。
【図5】図4に示したセクタ2〜6の各セクタの構成を示す図である。
【図6】本発明の実施の形態における、NVメモリのNVアイテムを格納するNV領域としての第1のバンク#1と第2のバンク#2の構成例を示すメモリマップ図である。
【図7】図2に示したNVメモリシステム200のNV制御部が実行するNVタスクの処理例を示すフローチャートである。
【図8】図7のステップS11のデバイスドライバ初期化のステップを詳細を示すフローチャートである。
【図9】図7のステップS15のNVアイテム読み出し処理の処理例を示すフローチャートである。
【図10】図9に対応するNVアイテム読み出し処理においてReadコマンドを受信した場合とDevReadコマンドを受信した場合の要求およびデータの流れを示す説明図である。
【図11】図7のステップS16のNVアイテム書き込み処理の処理例を示すフローチャートである。
【図12】図11の処理に対応したNVタスクと、NVドライバと、NVバッファと、NVメモリの間の、要求およびデータの流れを示す説明図である。
【図13】従来知られているNVメモリシステムの構成を示すブロック図である。
【図14】NVアイテムを格納するためのセクタの説明図である。
【符号の説明】
【0053】
20…制御部、21…インタフェース部、22…エンジン部、22a…タスク、23…デバイス制御インタフェース部、30…NVドライバ、40…NVメモリ、100…携帯電話機、101…アンテナ、103…受信部、104…送信部、105…スピーカ、106…デジタル信号処理部(DSP)、107…マイク、108…イヤレシーバ、110…制御部、113…バッファ、114…表示部、115…入力操作部、116…RTC部、200…メモリシステム、400…セクタ、401…セクタヘッダ部、402…ユーザデータ部、403…セクタフッタ部
【特許請求の範囲】
【請求項1】
携帯端末において利用されるデータを携帯端末内の再書き込み可能な不揮発性メモリに保存するための方法であって、
不揮発性メモリ上に、第1のセクタサイズの複数のセクタからなる第1のバンクと、前記第1のセクタサイズより大きいセクタサイズの複数のセクタからなる第2のバンクとを確保するステップと、
前記第1のバンクの複数のセクタのうち一時に1つのセクタをアクティブセクタと決定するとともに、前記不揮発性メモリへのデータの書き込みの度に前記第1のバンクの複数のセクタ間でアクティブセクタを更新していくステップと、
不揮発性メモリへのデータの書き込みの際に1セクタ内に保存する総データ量をチェックするステップと、
チェックされた総データ量が前記第1のセクタサイズのセクタ内に収納しきれないと判断されたとき、前記第2のバンクの複数のセクタの中からアクティブセクタを決定するステップと、
不揮発性メモリへのデータの書き込みの際に前記アクティブセクタにデータを書き込むステップと
を備えたことを特徴とする不揮発性メモリのデータ保存方法。
【請求項2】
携帯端末において利用されるデータを携帯端末内の再書き込み可能な不揮発性メモリに保存するためのコンピュータプログラムであって、
不揮発性メモリ上に、第1のセクタサイズの複数のセクタからなる第1のバンクと、前記第1のセクタサイズより大きいセクタサイズの複数のセクタからなる第2のバンクとを確保するステップと、
前記第1のバンクの複数のセクタのうち一時に1つのセクタをアクティブセクタと決定するとともに、前記不揮発性メモリへのデータの書き込みの度に前記第1のバンクの複数のセクタ間でアクティブセクタを更新していくステップと、
不揮発性メモリへのデータの書き込みの際に1セクタ内に保存する総データ量をチェックするステップと、
チェックされた総データ量が前記第1のセクタサイズのセクタ内に収納しきれないと判断されたとき、前記第2のバンクの複数のセクタの中からアクティブセクタを決定するステップと、
不揮発性メモリへのデータの書き込みの際に前記アクティブセクタにデータを書き込むステップと
を実行することを特徴とするコンピュータプログラム。
【請求項3】
前記コンピュータプログラムは、アプリケーションまたは上位システムからの要求に応じて、不揮発性メモリの読み書きを制御するデバイスドライバを制御することを特徴とする請求項2記載のコンピュータプログラム。
【請求項4】
再書き込み可能な不揮発性メモリと、
バッファメモリと、
不揮発性メモリ上に、第1のセクタサイズの複数のセクタからなる第1のバンクと、前記第1のセクタサイズより大きいセクタサイズの複数のセクタからなる第2のバンクとを確保する手段と、
前記第1のバンクの複数のセクタのうち一時に1つのセクタをアクティブセクタと決定するとともに、前記不揮発性メモリへのデータの書き込みの度に前記第1のバンクの複数のセクタ間でアクティブセクタを更新していく手段と、
不揮発性メモリへのデータの書き込みの際に1セクタ内に保存する総データ量をチェックする手段と、
チェックされた総データ量が前記第1のセクタサイズのセクタ内に収納しきれないと判断されたとき、前記第2のバンクの複数のセクタの中からアクティブセクタを決定する手段と、
電源立ち上げ時に前記アクティブセクタの内容を前記バッファメモリに格納する手段と、
不揮発性メモリへのデータの書き込みの際に、前記バッファメモリに書き込み対象のデータを書き込んだ後、当該バッファメモリの内容を前記アクティブセクタに書き込む手段と、
データの読み出し時に前記バッファメモリから読み出し対象のデータを読み出す手段と
を備えたことを特徴とする携帯端末。
【請求項1】
携帯端末において利用されるデータを携帯端末内の再書き込み可能な不揮発性メモリに保存するための方法であって、
不揮発性メモリ上に、第1のセクタサイズの複数のセクタからなる第1のバンクと、前記第1のセクタサイズより大きいセクタサイズの複数のセクタからなる第2のバンクとを確保するステップと、
前記第1のバンクの複数のセクタのうち一時に1つのセクタをアクティブセクタと決定するとともに、前記不揮発性メモリへのデータの書き込みの度に前記第1のバンクの複数のセクタ間でアクティブセクタを更新していくステップと、
不揮発性メモリへのデータの書き込みの際に1セクタ内に保存する総データ量をチェックするステップと、
チェックされた総データ量が前記第1のセクタサイズのセクタ内に収納しきれないと判断されたとき、前記第2のバンクの複数のセクタの中からアクティブセクタを決定するステップと、
不揮発性メモリへのデータの書き込みの際に前記アクティブセクタにデータを書き込むステップと
を備えたことを特徴とする不揮発性メモリのデータ保存方法。
【請求項2】
携帯端末において利用されるデータを携帯端末内の再書き込み可能な不揮発性メモリに保存するためのコンピュータプログラムであって、
不揮発性メモリ上に、第1のセクタサイズの複数のセクタからなる第1のバンクと、前記第1のセクタサイズより大きいセクタサイズの複数のセクタからなる第2のバンクとを確保するステップと、
前記第1のバンクの複数のセクタのうち一時に1つのセクタをアクティブセクタと決定するとともに、前記不揮発性メモリへのデータの書き込みの度に前記第1のバンクの複数のセクタ間でアクティブセクタを更新していくステップと、
不揮発性メモリへのデータの書き込みの際に1セクタ内に保存する総データ量をチェックするステップと、
チェックされた総データ量が前記第1のセクタサイズのセクタ内に収納しきれないと判断されたとき、前記第2のバンクの複数のセクタの中からアクティブセクタを決定するステップと、
不揮発性メモリへのデータの書き込みの際に前記アクティブセクタにデータを書き込むステップと
を実行することを特徴とするコンピュータプログラム。
【請求項3】
前記コンピュータプログラムは、アプリケーションまたは上位システムからの要求に応じて、不揮発性メモリの読み書きを制御するデバイスドライバを制御することを特徴とする請求項2記載のコンピュータプログラム。
【請求項4】
再書き込み可能な不揮発性メモリと、
バッファメモリと、
不揮発性メモリ上に、第1のセクタサイズの複数のセクタからなる第1のバンクと、前記第1のセクタサイズより大きいセクタサイズの複数のセクタからなる第2のバンクとを確保する手段と、
前記第1のバンクの複数のセクタのうち一時に1つのセクタをアクティブセクタと決定するとともに、前記不揮発性メモリへのデータの書き込みの度に前記第1のバンクの複数のセクタ間でアクティブセクタを更新していく手段と、
不揮発性メモリへのデータの書き込みの際に1セクタ内に保存する総データ量をチェックする手段と、
チェックされた総データ量が前記第1のセクタサイズのセクタ内に収納しきれないと判断されたとき、前記第2のバンクの複数のセクタの中からアクティブセクタを決定する手段と、
電源立ち上げ時に前記アクティブセクタの内容を前記バッファメモリに格納する手段と、
不揮発性メモリへのデータの書き込みの際に、前記バッファメモリに書き込み対象のデータを書き込んだ後、当該バッファメモリの内容を前記アクティブセクタに書き込む手段と、
データの読み出し時に前記バッファメモリから読み出し対象のデータを読み出す手段と
を備えたことを特徴とする携帯端末。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2006−155144(P2006−155144A)
【公開日】平成18年6月15日(2006.6.15)
【国際特許分類】
【出願番号】特願2004−343698(P2004−343698)
【出願日】平成16年11月29日(2004.11.29)
【出願人】(501431073)ソニー・エリクソン・モバイルコミュニケーションズ株式会社 (810)
【Fターム(参考)】
【公開日】平成18年6月15日(2006.6.15)
【国際特許分類】
【出願日】平成16年11月29日(2004.11.29)
【出願人】(501431073)ソニー・エリクソン・モバイルコミュニケーションズ株式会社 (810)
【Fターム(参考)】
[ Back to top ]