(57)【要約】【課題】不揮発性メモリに保存すべきデータのデータ量の変化に応じて、必要なデータ容量の確保と端末のシステム全体の効率との適切なバランスをとる。【解決手段】不揮発性メモリ４０上に、第１のセクタサイズの複数のセクタからなるバンク＃１と、第１のセクタサイズより大きいセクタサイズの複数のセクタからなるバンク＃２とを確保する。不揮発性メモリへのデータの書き込みの度にバンク＃１の複数のセクタ間でアクティブセクタを更新していく。不揮発性メモリへのデータの書き込みの際に１セクタ内に保存する総データ量をチェックし、総データ量が第１のセクタサイズのセクタ内に収納しきれないと判断されたとき、バンク＃２の複数のセクタの中からアクティブセクタを決定する。不揮発性メモリへのデータの書き込みの際にはアクティブセクタにデータを書き込む。【選択図】図６
2006155144.tif 000002
【特許請求の範囲】
【請求項１】
携帯端末において利用されるデータを携帯端末内の再書き込み可能な不揮発性メモリに保存するための方法であって、
不揮発性メモリ上に、第１のセクタサイズの複数のセクタからなる第１のバンクと、前記第１のセクタサイズより大きいセクタサイズの複数のセクタからなる第２のバンクとを確保するステップと、
前記第１のバンクの複数のセクタのうち一時に１つのセクタをアクティブセクタと決定するとともに、前記不揮発性メモリへのデータの書き込みの度に前記第１のバンクの複数のセクタ間でアクティブセクタを更新していくステップと、
不揮発性メモリへのデータの書き込みの際に１セクタ内に保存する総データ量をチェックするステップと、
チェックされた総データ量が前記第１のセクタサイズのセクタ内に収納しきれないと判断されたとき、前記第２のバンクの複数のセクタの中からアクティブセクタを決定するステップと、
不揮発性メモリへのデータの書き込みの際に前記アクティブセクタにデータを書き込むステップと
を備えたことを特徴とする不揮発性メモリのデータ保存方法。
【請求項２】
携帯端末において利用されるデータを携帯端末内の再書き込み可能な不揮発性メモリに保存するためのコンピュータプログラムであって、
不揮発性メモリ上に、第１のセクタサイズの複数のセクタからなる第１のバンクと、前記第１のセクタサイズより大きいセクタサイズの複数のセクタからなる第２のバンクとを確保するステップと、
前記第１のバンクの複数のセクタのうち一時に１つのセクタをアクティブセクタと決定するとともに、前記不揮発性メモリへのデータの書き込みの度に前記第１のバンクの複数のセクタ間でアクティブセクタを更新していくステップと、
不揮発性メモリへのデータの書き込みの際に１セクタ内に保存する総データ量をチェックするステップと、
チェックされた総データ量が前記第１のセクタサイズのセクタ内に収納しきれないと判断されたとき、前記第２のバンクの複数のセクタの中からアクティブセクタを決定するステップと、
不揮発性メモリへのデータの書き込みの際に前記アクティブセクタにデータを書き込むステップと
を実行することを特徴とするコンピュータプログラム。
【請求項３】
前記コンピュータプログラムは、アプリケーションまたは上位システムからの要求に応じて、不揮発性メモリの読み書きを制御するデバイスドライバを制御することを特徴とする請求項２記載のコンピュータプログラム。
【請求項４】
再書き込み可能な不揮発性メモリと、
バッファメモリと、
不揮発性メモリ上に、第１のセクタサイズの複数のセクタからなる第１のバンクと、前記第１のセクタサイズより大きいセクタサイズの複数のセクタからなる第２のバンクとを確保する手段と、
前記第１のバンクの複数のセクタのうち一時に１つのセクタをアクティブセクタと決定するとともに、前記不揮発性メモリへのデータの書き込みの度に前記第１のバンクの複数のセクタ間でアクティブセクタを更新していく手段と、
不揮発性メモリへのデータの書き込みの際に１セクタ内に保存する総データ量をチェックする手段と、
チェックされた総データ量が前記第１のセクタサイズのセクタ内に収納しきれないと判断されたとき、前記第２のバンクの複数のセクタの中からアクティブセクタを決定する手段と、
電源立ち上げ時に前記アクティブセクタの内容を前記バッファメモリに格納する手段と、
不揮発性メモリへのデータの書き込みの際に、前記バッファメモリに書き込み対象のデータを書き込んだ後、当該バッファメモリの内容を前記アクティブセクタに書き込む手段と、
データの読み出し時に前記バッファメモリから読み出し対象のデータを読み出す手段と
を備えたことを特徴とする携帯端末。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、携帯電話機を代表とする携帯端末、特にその不揮発性メモリへのデータ保存の方法、そのコンピュータプログラムおよびこれを使用する携帯端末に関する。
【背景技術】
【０００２】
携帯電話機は近年、高機能化が進み、単なる通話機能だけでなく、電子メール送受信機能、ウェブ閲覧機能、ＧＰＳ機能、非接触ＩＣカード機能、等種々の機能を搭載するようになってきている。
【０００３】
携帯端末においては、端末固有の端末ＩＤ等の他、このような各種機能に対応するアプリケーション（プログラム）の動作に必要な初期的なデータやパラメータを、電源遮断中にも保持できるように、再書き込み可能な不揮発性(NV: Non-Volatile)メモリに保存している。本明細書では、ＮＶメモリに格納するデータやパラメータをＮＶアイテムと呼ぶ。再書き込み可能な不揮発性メモリとしては例えばフラッシュメモリが知られている。
【０００４】
図１３に、従来知られているＮＶメモリシステムの構成を示す。この従来システムでは、ＮＶ領域のサイズに対する厳しい制限を課さないために、ファイルシステム上に構築されている。すなわち、アプリケーションからの要求に応じてＮＶタスクを実行するＮＶシステムは、埋込みファイルシステムを用いてデバイスドライバによりＮＶメモリをアクセスする。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
他方、ＮＶドライバ（デバイスドライバ）を用いて直接ＮＶメモリ上のＮＶアイテムにアクセスする手法も考えられる。この場合、ＮＶドライバでＮＶメモリに対してデータ（ＮＶアイテム）を読み書きする処理単位をセクタと呼ぶ。セクタのサイズは固定（例えば８Ｋバイト）であり、すべてのＮＶアイテムは１セクタ内に格納される。この構成により、複雑な処理プログラムであるファイルシステムを不要とすることができる。
【０００６】
ファイルシステムを用いずＮＶドライバで直接ＮＶメモリをアクセスする手法において、ＮＶメモリに設けられるセクタとしては、その用途の違いにより、携帯端末の工場出荷時に書き込まれた後は読み出し専用となるＲＯ（Read Only）セクタと、読み出し及び書き込みが許されるＲＷ（Read Write）セクタとが設けられる。
【０００７】
図１４に示すように、ＮＶアイテムを格納するためのセクタは、通常複数（図では８個、１個あたり８Ｋバイト）設けられる。これは、ＮＶメモリへのデータの書き込み動作中の電源断などの理由によりデータが破損するような場合の対策として、直前の書き込み時のデータが残存するように、同サイズの複数のセクタを用意しておき、新たなデータの書き込み時には別のセクタに書き込むためである。また、セクタの許容書き込み回数は有限なので、セクタ数を多くすることにより１セクタ当たりの書き込み頻度を軽減し、不揮発性メモリの使用可能な時間を延ばすことができる。
【０００８】
ＮＶメモリに複数のセクタを用意した場合でも、１時点では有効なセクタが１つだけ存在し、これをアクティブセクタと呼ぶ。このアクティブセクタは全てのＮＶアイテムの最新の値を記憶している。
【０００９】
例えば携帯電話機の場合、通常、その機能の追加、新たなデジタル通信技術（例えば高速データ通信サービスのサポート）の採用等の要因により、ＮＶメモリに必要とされるデータ容量は増加していく。
【００１０】
ＮＶメモリのメモリ容量の節約のみならず、セクタ消去や書き込みに要する時間の短縮の観点、ひいては端末の動作効率の観点からはセクタサイズは小さいことが好ましい。反面、ＮＶアイテムが増加していき、当該セクタサイズに収納しきれない状態となったとき、これは端末の動作上、重大な支障となる。
【００１１】
したがって、セクタサイズはＮＶアイテムの総データ容量に応じて定めることが好ましい。しかし、端末開発の初期の段階で、ＮＶメモリに将来必要となる最大容量を適正に判断することは、極めて困難である。
【００１２】
本発明は、このような背景においてなされたものであり、その目的は、不揮発性メモリに保存すべきデータのデータ量の変化に応じて、必要なデータ容量の確保と端末のシステム全体の効率との適切なバランスをとることができる不揮発性メモリのデータ保存方法、コンピュータプログラムおよび携帯端末を提供することにある。
【課題を解決するための手段】
【００１３】
本発明による不揮発性メモリのデータ保存方法は、携帯端末において利用されるデータを携帯端末内の再書き込み可能な不揮発性メモリに保存するための方法であって、不揮発性メモリ上に、第１のセクタサイズの複数のセクタからなる第１のバンクと、前記第１のセクタサイズより大きいセクタサイズの複数のセクタからなる第２のバンクとを確保するステップと、前記第１のバンクの複数のセクタのうち一時に１つのセクタをアクティブセクタと決定するとともに、前記不揮発性メモリへのデータの書き込みの度に前記第１のバンクの複数のセクタ間でアクティブセクタを更新していくステップと、不揮発性メモリへのデータの書き込みの際に１セクタ内に保存する総データ量をチェックするステップと、チェックされた総データ量が前記第１のセクタサイズのセクタ内に収納しきれないと判断されたとき、前記第２のバンクの複数のセクタの中からアクティブセクタを決定するステップと、不揮発性メモリへのデータの書き込みの際に前記アクティブセクタにデータを書き込むステップとを備えたことを特徴とする。
【００１４】
すなわち、本発明では、不揮発性メモリにセクタサイズの異なる複数のセクタからなる第１および第２のバンクを用意しておき、初期的には小サイズのセクタからなる第１のバンクを利用することにより、セクタ消去時間やメモリ書き込み時間の増加によるシステム効率の低下を防止する。これとともに、セクタに保存するデータの総量が小サイズのセクタに収納しきれなくなった段階で、使用するバンクを大サイズのセクタからなる第２のバンクに切り替える。
【００１５】
本発明は、携帯端末において利用されるデータを携帯端末内の再書き込み可能な不揮発性メモリに保存するためのコンピュータプログラムとしても把握することができる。このコンピュータプログラムはメモリに格納され、ＣＰＵにより読み出されて実行される。
【００１６】
本発明による携帯端末は、再書き込み可能な不揮発性メモリと、バッファメモリと、不揮発性メモリ上に、第１のセクタサイズの複数のセクタからなる第１のバンクと、前記第１のセクタサイズより大きいセクタサイズの複数のセクタからなる第２のバンクとを確保する手段と、前記第１のバンクの複数のセクタのうち一時に１つのセクタをアクティブセクタと決定するとともに、前記不揮発性メモリへのデータの書き込みの度に前記第１のバンクの複数のセクタ間でアクティブセクタを更新していく手段と、不揮発性メモリへのデータの書き込みの際に１セクタ内に保存する総データ量をチェックする手段と、チェックされた総データ量が前記第１のセクタサイズのセクタ内に収納しきれないと判断されたとき、前記第２のバンクの複数のセクタの中からアクティブセクタを決定する手段と、電源立ち上げ時に前記アクティブセクタの内容を前記バッファメモリに格納する手段と、不揮発性メモリへのデータの書き込みの際に、バッファメモリに書き込み対象のデータを書き込んだ後、当該バッファメモリの内容を前記アクティブセクタに書き込む手段と、データの読み出し時にバッファメモリから読み出し対象のデータを読み出す手段とを備えたことを特徴とする。
【発明の効果】
【００１７】
本発明によれば、初期的には小サイズのセクタからなる第１のバンクを利用することにより、セクタ消去時間やメモリ書き込み時間の増加によるシステム効率の低下を防止するとともに、セクタに保存するデータの総量が小サイズのセクタに収納しきれなくなった段階で、使用するバンクを大サイズのセクタからなる第２のバンクに切り替えることにより、保存対象のデータの増加に対処することができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の好適な実施の形態について、詳細に説明する。
【００１９】
まず、図１に、本発明の不揮発性メモリのデータ保存方法を利用する携帯端末の一例としての携帯電話機１００のハードウェア構成を示す。
【００２０】
この携帯電話機１００は、電話機能に関連した部位として、アンテナ１０１、デュプレクサ(Duplexer）１０２、受信部１０３、送信部１０４、スピーカ１０５、デジタル信号処理部ＤＳＰ(Digital Signal Processor）１０６、マイク１０７、イヤレシーバ１０８を含む。携帯電話機１００は、さらに、この携帯電話機の制御に関連した部位として、ＣＰＵ(Central Processing Unit)を含む制御部１１０、ＲＯＭ(Read Only Memory)１１１、ＲＡＭ(Random Access Memory)１１２、液晶ディスプレイ等を含む表示部１１４、テンキーなどの各種キーやジョグダイヤルなどの操作部を有する入力操作部１１５、現在の日付や時間を管理するＲＴＣ(Real Time Clock）部１１６、等を有する。制御部１１０は中央処理装置（ＣＰＵ）などから構成される。入力操作部１１５は携帯端末の各種キーやボタン、ジョグダイヤル等に相当する。ＲＯＭ１１１は、本実施の形態の後述する動作を実現するための制御プログラムや必要なデータが格納されている不揮発性メモリであり、本発明に係る再書き込み可能な不揮発性メモリ（ＮＶメモリ）４０を含む。ＮＶメモリ４０は、後述する第１のバンク（＃１）４１および第２のバンク（＃２）４２を含んでいる。本実施の形態におけるＮＶメモリ４０はフラッシュメモリ、特にＮＯＲ型のフラッシュメモリを用いている。フラッシュメモリとしては、ＮＯＲ型とＮＡＮＤ型が知られている。ＮＯＲ型はＮＡＮＤ型に比べて小容量であるが、バイトやワード単位の読み出しが可能である（ＮＡＮＤ型はページ単位の読み出しのみ）。また、いずれの型のフラッシュメモリもそのデータの消去は、所定のサイズ（ブロック）単位の消去となる。ＲＡＭ１１２はＣＰＵによる作業領域やデータの一時記憶領域を提供するメモリである。本実施の形態では、ＲＡＭ１１２内に、特に、ＮＶメモリ４０に保存されたＮＶアイテムのコピーを格納するＮＶバッファ１１３を有している。このＮＶバッファ１１３は、ＮＶメモリ４０の遅い処理速度を補償するための高速のキャッシュメモリとして機能する。
【００２１】
なお、図１には示していないが、ＧＰＳ受信部、メモリカードを装着するためのメモリカードインタフェース部、非接触ＩＣカード機能部等、他の機能部を備えてもよい。
【００２２】
図２に、本発明のＮＶメモリシステム２００のソフトウェア構成を示す。
【００２３】
アプリケーション（または上位システム）１０は、本発明のＮＶメモリシステム２００を介してＮＶメモリ４０にアクセスする。ＮＶメモリシステム２００は図１の制御部１１０のプログラム制御によって実現される。ＮＶメモリシステム２００は、アプリケーションが直接ＮＶメモリを制御することがないように、そのインタフェースを提供している。
【００２４】
ＮＶメモリシステム２００は、ＮＶ制御部２０とＮＶドライバ３０とにより構成される。ＮＶ制御部２０は、アプリケーションからの要求に応じてＮＶメモリ４０への所定の動作を行うよう、ＮＶドライバ３０を制御する機能を有する。この具体的な処理については後に詳述する。
【００２５】
ＮＶドライバ３０はＮＶメモリ４０にアクセスして、その具体的な制御（書き込み、読み出し、消去等）を行うデバイスドライバである。このデバイスドライバとしては、好ましくは、ＮＶメモリのメーカ毎にデバイスドライバを複数用意しておく。
【００２６】
図３は、ＮＶ制御部２０の内部構成例を示している。ＮＶ制御部２０は、ＮＶインタフェース部２１、ＮＶエンジン部２２、およびデバイス制御インタフェース部２３を有している。
【００２７】
ＮＶインタフェース部２１は、アプリケーション（または上位システム）に対して、本ＮＶメモリシステムの機能を利用させるため部位である。これにより、アプリケーションはＮＶメモリの実際のデバイスを意識することなく、ＮＶアイテムの書き込みおよび読み出しを行うことができる。なお、端末の製造工程や調整時にのみ必要な機能と、その後の通常の機能とは異なるので、両者のインタフェースを別々に用意してもよい。
【００２８】
ＮＶエンジン部２２は、本ＮＶメモリシステム２００の種々の機能を実現するために必要な共通関数を有する部位である。共通関数としては、初期化時の動作を行うための初期化関数２２１、セクタの読み出しを行うためのセクタリード関数２２２、セクタの書き込みを行うためのセクタライト関数２２３、現在どのセクタがアクティブとなっているかを確認するためのアクティブセクタ取得関数２２５、新たにアクティブセクタとすべきセクタを決定する新アクティブセクタ取得関数２２６、本発明に係るセクタサイズの切替を行うためのバンク切替関数２２７、等を有する。
【００２９】
デバイス制御インタフェース部２３は、種々の製造メーカのＮＶメモリデバイスに対応できるように、初期化時にデバイスの形式を自動確認して、対応するメーカのＮＶドライバを選択できるようにするものである。
【００３０】
ここで、本実施の形態におけるセクタの内容および構成について説明する。
【００３１】
本実施の形態におけるセクタの属性としては、前述したと同様に、読み出し専用のＲＯセクタと、読み出しおよび書き込みが可能なＲＷセクタがある。本実施の形態におけるＮＶメモリ内に用意されるＮＶアイテムを格納するためのセクタの総数は８に設定される。これら８つのセクタの内容は、図４に示す通りである。
【００３２】
セクタ０（ＲＯ）：  このセクタは、工場出荷時の初期値、調整値等の若干数のＮＶアイテムが書き込まれ、以後は読み出し専用として利用されるセクタである。
【００３３】
セクタ１（ＲＯ）：  端末にとって重要な若干数のＮＶアイテム（例えば端末ＩＤなど）を格納するための読み出し専用のセクタである。
【００３４】
セクタ２〜６（ＲＷ）：  通常のＮＶアイテムを格納するための読み出し／書き込み可能なセクタである。
【００３５】
セクタ７（ＲＷ）：  特別ＮＶアイテム（例えばメモリカードのセキュリティキー）を格納するための読み出し／書き込み可能なセクタである。
【００３６】
このように、本実施の形態では、全８つのセクタのうちセクタ２〜６が通常のＮＶアイテムを格納するために使用される通常のセクタである。セクタ７については、本発明に直接関係しないので、ここでは詳述しない。
【００３７】
図５に、セクタ２〜６の各セクタの構成を示す。セクタ４００は、セクタヘッダ部４０１とユーザデータ部４０２とセクタフッタ部４０３とからなる。セクタヘッダ部４０１は、保存データを管理するためのデータ領域であり、セクタのデータ保存の有無、セクタ属性、セクタ管理ＩＤ、書き込み時間データ（年月日日時分秒）、保存データ長等を保持する。ユーザデータ部４０２は、実際のユーザデータとしてのＮＶアイテムを格納する領域である。セクタフッタ部４０３は、当該セクタのデータのチェックサム、全セクタのエラー情報等を格納する。全セクタのエラー情報はアクティブセクタ内のもののみが有効となる。
【００３８】
前述のように、セクタ２〜６のうち一時に１つのセクタのみがアクティブとなり、このアクティブセクタが全てのＮＶアイテムの最新の値を記憶する。他の通常のセクタは、データの書き込み動作中の電源断などの理由によりデータが破損するような場合の対策として、ＮＶデータのバックアップのために使われる。
【００３９】
本実施の形態では、図６に示すように、ＮＶメモリ４０のＮＶアイテムを格納するＮＶ領域として、第１のバンク＃１と第２のバンク＃２を用意する。図中の各セクタ内の数値はそのセクタの開始アドレスを示している。それぞれ８セクタを有するが、第２のバンクの１セクタのサイズはそれより大きいサイズ（ここでは８倍）としている。具体的には次の通りである。
バンク＃１：ベースアドレス（0x01FF0000）、セクタサイズ８Ｋバイト
バンク＃２：ベースアドレス（0x0lE00000）、セクタサイズ６４Ｋバイト
【００４０】
携帯電話機の例では、経験的に、ＮＶアイテムの全データ量が初期的に８Ｋバイトを上回ることはないので、ＮＶ領域は通常小さいセクタサイズを有するバンク＃１を利用するように設定される。その後、携帯電話機の機能追加等に応じて、ＮＶアイテムの種類やデータ量が増加していったとき、ＮＶデータの総データ量はバンク＃１のセクタサイズ（ここでは８Ｋバイト）を越える場合がある。このような場合には、アクティブセクタを、より大きいセクタサイズ（６４Ｋバイト＞８Ｋバイト）のバンク＃２のセクタから選択する。
【００４１】
以下、本実施の形態における具体的な動作についてフローチャート等を参照しながら説明する。
【００４２】
図７は、図２に示したＮＶメモリシステム２００のＮＶ制御部２０が実行するＮＶタスクの処理例を示している。端末電源立ち上げ時等に起動されるＮＶタスクは、まず、デバイスドライバ（ＮＶドライバ）の初期化を行う（Ｓ１１）。この処理の詳細については後述する。ついで、ＮＶタスクの初期化を行う（Ｓ１２）。初期値が必要なＮＶアイテムについては、このステップで設定される。例えば、送受信部（ＲＦ）に関連したＮＶアイテム、バッテリに関連したＮＶアイテム、ＧＰＳに関連してＮＶアイテム等がある。なお、これらの初期値の設定の有無を示すフラグを記憶し、各フラグに基づいて初期値設定の要否を判断するようにしてもよい。
【００４３】
その後、アプリケーション（または上位システム）からコマンドを受信したら（Ｓ１３，Ｙｅｓ）、そのコマンドを判別する（Ｓ１４）。コマンドが読み出しであればＮＶアイテムの読み出し処理を行う（Ｓ１５）。コマンドが“ＮＶＷｒｉｔｅ”であればＮＶアイテムの書き込み処理を行う（Ｓ１６）。本実施の形態における読み出しコマンドには、ＮＶバッファ１１３からデータを読み出すＲｅａｄコマンドとＮＶメモリ４０からデータを読み出すＤｅｖＲｅａｄコマンドとがある。その他のコマンドについては、当該その他のコマンド処理を実行する（Ｓ１７）。
【００４４】
図８は図７のステップＳ１１のデバイスドライバ初期化のステップを詳細を示している。まず、ＮＶバッファ１１３をクリア（消去）するとともに（Ｓ２１）、デバイスドライバを初期状態とする（Ｓ２２）。ついで、このＮＶタスクの起動が当該端末での初めての起動であれば（Ｓ２３，Ｙｅｓ）、ＮＶメモリを全クリア（消去）して（Ｓ２５）、製造工程を開始する（Ｓ２６）。製造工程開始処理では、ＮＶバッファのセクタ０、１、７のクリア、およびその後の初期値の設定、書き込みを行う。初めての起動でなければ、ＮＶメモリ４０のアクティブセクタの全内容をＮＶバッファ１１３に読み出す（Ｓ２４）。
【００４５】
図９は、図７のステップＳ１５のＮＶアイテム読み出し処理の処理例を示している。図１０は、図９に対応するＮＶアイテム読み出し処理においてＲｅａｄコマンドを受信した場合とＤｅｖＲｅａｄコマンドを受信した場合の要求およびデータの流れを示している。まず、読み出しコマンドがＲｅａｄコマンドかＤｅｖＲｅａｄコマンドかをチェックする（Ｓ３１）。Ｒｅａｄコマンドであれば、ＮＶタスク２２ａが直接ＮＶバッファ１１３からそのＮＶアイテムを読み出す（Ｓ３２）。ＤｅｖＲｅａｄコマンドであれば、ＮＶタスク２２ａは、ＮＶドライバ３０経由で、ＮＶメモリ４０のアクティブセクタから当該ＮＶアイテムを読み出す（Ｓ３３）。
【００４６】
図１１は、図７のステップＳ１６のＮＶアイテム書き込み処理の処理例を示している。また、この処理は、図７のステップＳ１６に限らず、図８の製造工程（Ｓ２７）でのＮＶアイテム書き込み処理、開発段階でのＮＶアイテム書き込み処理として利用できる。図１２は、図１１の処理に対応したＮＶタスク２２ａとＮＶドライバ３０とＮＶバッファ１１３とＮＶメモリ４０の間の、要求およびデータの流れを示している。
【００４７】
まず、ＮＶタスク２２ａは、書き込み対象のＮＶアイテムを含む全ＮＶアイテムの総データ量を確認する（Ｓ４１）。この総データ量が予め定めた閾値（ここでは８Ｋバイト）を越えた場合には（Ｓ４２，Ｙｅｓ）、ＮＶメモリのバンク切り替え、すなわち、バンク＃１からバンク＃２への切替を行う（Ｓ４３）。これに伴って、アクティブセクタをバンク＃１からバンク＃２のセクタに移動させる。なお、ここでは総データ量が増加するときに閾値を越える場合を想定しているが、総データ量が減少したときに閾値を逆向きに越える場合に逆の切替を行うことも可能である。
【００４８】
次いで、書き込み対象のＮＶアイテムをＮＶバッファ１１３に書き込む（Ｓ４４）。そこで、アクティブセクタを新たなセクタに更新する（Ｓ４５）。この更新のアルゴリズムは特にここでは言及しないが、有効なセクタについて順番に選択する等のアルゴリズムを利用することができる。決定された新たなアクティブセクタを消去した後（Ｓ４６）、このアクティブセクタに対してＮＶバッファ１１３の内容を書き込む（Ｓ４７）。
【００４９】
以上、本発明の好適な実施の形態について説明したが、上記で言及した以外にも種々の変形、変更を行うことが可能である。すなわち、上述した具体的なセクタサイズ、セクタ数、アドレス値、処理ステップ等はすべて例示であり、本発明はそれらに限定されるものではない。
【００５０】
また、セクタの管理は、実際の物理的なアドレスに対応するセクタでなく、これに論理的に対応づけられた論理セクタで行ってもよい。
【００５１】
ＮＶアイテムによっては、電源オン／オフの度、基地局からの所定の信号の受信時等、ＮＶメモリへの書き込みが高頻度に行われるものも存在しうる。それらの書き込みが発生する度にＮＶメモリへ書き込みを行っていると、デバイスが老朽化したり、電源オン／オフ時間が長くなってしまう。そこで、そのような書き込み頻度の高いＮＶアイテムについては初期的にＮＶメモリに書き込むと共にバッテリバックアップされた小容量のＳＲＡＭ(Static Random Access Memory)に書き込み、以後はＳＲＡＭを読み書きし、ＮＶメモリの更新は最小限にとどめるなどの措置をとってもよい。
【図面の簡単な説明】
【００５２】
【図１】本発明の不揮発性メモリシステムを利用する携帯端末の一例としての携帯電話機のハードウェア構成を示すブロック図である。
【図２】本発明のＮＶメモリシステムのソフトウェア構成を示すブロック図である。。
【図３】図２内に示したＮＶ制御部の内部構成例を示すブロック図である。
【図４】ＮＶアイテムを格納するためのＮＶメモリの８つのセクタの内容の説明図である。
【図５】図４に示したセクタ２〜６の各セクタの構成を示す図である。
【図６】本発明の実施の形態における、ＮＶメモリのＮＶアイテムを格納するＮＶ領域としての第１のバンク＃１と第２のバンク＃２の構成例を示すメモリマップ図である。
【図７】図２に示したＮＶメモリシステム２００のＮＶ制御部が実行するＮＶタスクの処理例を示すフローチャートである。
【図８】図７のステップＳ１１のデバイスドライバ初期化のステップを詳細を示すフローチャートである。
【図９】図７のステップＳ１５のＮＶアイテム読み出し処理の処理例を示すフローチャートである。
【図１０】図９に対応するＮＶアイテム読み出し処理においてＲｅａｄコマンドを受信した場合とＤｅｖＲｅａｄコマンドを受信した場合の要求およびデータの流れを示す説明図である。
【図１１】図７のステップＳ１６のＮＶアイテム書き込み処理の処理例を示すフローチャートである。
【図１２】図１１の処理に対応したＮＶタスクと、ＮＶドライバと、ＮＶバッファと、ＮＶメモリの間の、要求およびデータの流れを示す説明図である。
【図１３】従来知られているＮＶメモリシステムの構成を示すブロック図である。
【図１４】ＮＶアイテムを格納するためのセクタの説明図である。
【符号の説明】
【００５３】
２０…制御部、２１…インタフェース部、２２…エンジン部、２２ａ…タスク、２３…デバイス制御インタフェース部、３０…ＮＶドライバ、４０…ＮＶメモリ、１００…携帯電話機、１０１…アンテナ、１０３…受信部、１０４…送信部、１０５…スピーカ、１０６…デジタル信号処理部（ＤＳＰ）、１０７…マイク、１０８…イヤレシーバ、１１０…制御部、１１３…バッファ、１１４…表示部、１１５…入力操作部、１１６…ＲＴＣ部、２００…メモリシステム、４００…セクタ、４０１…セクタヘッダ部、４０２…ユーザデータ部、４０３…セクタフッタ部
【図１】
2006155144.tif 000003
【図２】
2006155144.tif 000004
【図３】
2006155144.tif 000005
【図４】
2006155144.tif 000006
【図５】
2006155144.tif 000007
【図６】
2006155144.tif 000008
【図７】
2006155144.tif 000009
【図８】
2006155144.tif 000010
【図９】
2006155144.tif 000011
【図１０】
2006155144.tif 000012
【図１１】
2006155144.tif 000013
【図１２】
2006155144.tif 000014
【図１３】
2006155144.tif 000015
【図１４】
2006155144.tif 000016