(57)【要約】【課題】迅速な処理でウェアレベリングを実現する記憶装置を提供すること。【解決手段】不揮発性メモリ５２は、アドレスが付されたブロックを複数有し、当該複数のブロックに当該ブロックの数よりも少ない数のユーザデータを記憶するユーザデータ領域５２Ａと、ユーザデータ領域５２Ａへのユーザデータの記憶を制御するデータを含む管理データを記憶する管理データ領域５２Ｂとを備え、管理データ領域５２Ｂは、制御部により最も新しく記憶されたユーザデータが記憶されているユーザデータ領域５２Ａのブロックに付されているアドレスを管理データとして記憶するアドレス記憶部５２１Ｂを有し、制御部は、新たにユーザデータを記憶させる場合、アドレス記憶部５２１Ｂに記憶されたアドレスより大きいアドレスが付されたユーザデータ領域５２Ａのブロックにユーザデータを記憶させた後、当該ブロックに付されたアドレスをアドレス記憶部５２１Ｂに記憶させる。【選択図】図３
2011175449.tif 000002
【特許請求の範囲】
【請求項１】
アドレスが付されたブロックを複数有し、当該複数のブロックに当該ブロックの数よりも少ない数のユーザデータを記憶するユーザデータ領域と、
前記ユーザデータ領域への前記ユーザデータの記憶を制御するデータを含む管理データを記憶する管理データ領域と、
前記管理データに基づいて、前記ユーザデータ領域の複数のブロックへの前記ユーザデータの記憶制御を行う制御部と、を備え、
前記管理データ領域は、前記制御部により最も新しく記憶されたユーザデータが記憶されている前記ユーザデータ領域のブロックに付されているアドレスを前記管理データとして記憶するアドレス記憶部を有し、
前記制御部は、新たにユーザデータを記憶させる場合、前記アドレス記憶部に記憶されたアドレスより大きいアドレスが付された前記ユーザデータ領域のブロックに前記ユーザデータを記憶させた後、当該ブロックに付されたアドレスを前記アドレス記憶部に記憶させる記憶装置。
【請求項２】
請求項１に記載の記憶装置であって、
前記制御部は、新たにユーザデータを記憶させる場合、前記アドレス記憶部に記憶されたアドレスより１つ大きいアドレスが付された前記ユーザデータ領域のブロックに前記ユーザデータを記憶させた後、当該ブロックに付されたアドレスを前記アドレス記憶部に記憶させる記憶装置。
【請求項３】
請求項１又は２に記載の記憶装置であって、
前記管理データ領域は、ブロックを複数有し、当該複数のブロックに前記管理データを記憶する記憶装置。
【請求項４】
請求項２に記載の記憶装置であって、
前記管理データ領域は、複数の前記ユーザデータそれぞれについて、当該ユーザデータのデータ名と、当該ユーザデータが記憶されているブロックのアドレスとを関連付けて、前記管理データとして記憶するデータマップ記憶部を有し、
前記制御部は、新たにユーザデータを記憶させる場合、
前記アドレス記憶部に記憶されたアドレスより１つ大きいアドレスが前記データマップ記憶部に記憶されていないときに、当該１つ大きいアドレスのブロックに当該ユーザデータを記憶させ、
前記アドレス記憶部に記憶されたアドレスより１つ大きいアドレスが前記データマップ記憶部に記憶されているときに、前記データマップ記憶部に記憶されていないアドレスを特定するまで、当該１つ大きいアドレスに１つずつアドレスを加算し、アドレスが特定された場合に、当該特定されたアドレスのブロックに当該ユーザデータを記憶させる記憶装置。
【請求項５】
請求項４に記載の記憶装置であって、
前記制御部は、前記ユーザデータ領域に、前記アドレス記憶部に記憶されたアドレスより１つ大きいアドレスのブロックが存在しない場合、前記データマップ記憶部に記憶されていないアドレスを特定するまで、当該ユーザデータ領域の先頭アドレスに１つずつアドレスを加算し、アドレスが特定された場合に、当該特定されたアドレスのブロックに新たにユーザデータを記憶させる記憶装置。
【請求項６】
アドレスが付されたブロックを複数有し、当該複数のブロックに当該ブロックの数よりも少ない数のユーザデータを記憶するユーザデータ領域と、
前記ユーザデータ領域への前記ユーザデータの記憶を制御するデータを含む管理データを記憶する管理データ領域と、
前記管理データに基づいて、前記ユーザデータ領域の複数のブロックへの前記ユーザデータの記憶制御を行う制御部と、を備え、
前記管理データ領域は、前記制御部により最も新しく記憶されたユーザデータが記憶されている前記ユーザデータ領域のブロックに付されているアドレスを前記管理データとして記憶するアドレス記憶部を有し、
前記制御部は、新たにユーザデータを記憶させる場合、前記アドレス記憶部に記憶されたアドレスより小さいアドレスが付された前記ユーザデータ領域のブロックに前記ユーザデータを記憶させた後、当該ブロックに付されたアドレスを前記アドレス記憶部に記憶させる記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザデータを記憶する記憶装置に関する。
【背景技術】
【０００２】
近年、携帯電話等の電子機器には、データを記憶する記憶媒体としてフラッシュメモリが使用されることが多い。このフラッシュメモリは、アドレスが設けられているブロックを複数備えており、このブロックは、複数のページにより構成されている。また、ページは、複数のメモリセルにより構成される。
【０００３】
ところで、フラッシュメモリは、このブロック単位でデータの書き込み及び消去を行うが、メモリセルの構造上、それぞれのブロックへのデータの書き込みが所定回数（例えば、１０万回）に制限されている。このため、フラッシュメモリでは、特定のブロックへのデータの書き込みが集中しないように平準に書き込みを制御するウェアレベリングが行われている。
【０００４】
例えば、特許文献１には、データが消去された回数を記憶するカウンタをブロックごとに設け、データの書き込みを行う際に、カウンタを参照して消去された回数が最も少ないブロックを選択する方法が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平９−９７２１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に提案された方法では、消去された回数が最も少ないブロックを選択するために、ブロックごとに設けられたカウンタを全て参照する必要がある。このため、特許文献１に提案された方法では、データの書き込みに係る処理が開始されてから、実際にデータの書き込みをブロックに行うまでに、全てのカウンタを参照する時間が余分に掛かるという問題があった。
【０００７】
本発明は、迅速な処理でウェアレベリングを実現することができる記憶装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係る記憶装置は、アドレスが付されたブロックを複数有し、当該複数のブロックに当該ブロックの数よりも少ない数のユーザデータを記憶するユーザデータ領域と、前記ユーザデータ領域への前記ユーザデータの記憶を制御するデータを含む管理データを記憶する管理データ領域と、前記管理データに基づいて、前記ユーザデータ領域の複数のブロックへの前記ユーザデータの記憶制御を行う制御部と、を備え、前記管理データ領域は、前記制御部により最も新しく記憶されたユーザデータが記憶されている前記ユーザデータ領域のブロックに付されているアドレスを前記管理データとして記憶するアドレス記憶部を有し、前記制御部は、新たにユーザデータを記憶させる場合、前記アドレス記憶部に記憶されたアドレスより大きいアドレスが付された前記ユーザデータ領域のブロックに前記ユーザデータを記憶させた後、当該ブロックに付されたアドレスを前記アドレス記憶部に記憶させることを特徴とする。
【０００９】
また、上記記憶装置は、前記制御部は、新たにユーザデータを記憶させる場合、前記アドレス記憶部に記憶されたアドレスより１つ大きいアドレスが付された前記ユーザデータ領域のブロックに前記ユーザデータを記憶させた後、当該ブロックに付されたアドレスを前記アドレス記憶部に記憶させることが好ましい。
【００１０】
また、上記記憶装置は、管理データ領域は、ブロックを複数有し、当該複数のブロックに前記管理データを記憶することが好ましい。
【００１１】
また、上記記憶装置は、前記管理データ領域は、複数の前記ユーザデータそれぞれについて、当該ユーザデータのデータ名と、当該ユーザデータが記憶されているブロックのアドレスとを関連付けて、前記管理データとして記憶するデータマップ記憶部を有し、前記制御部は、新たにユーザデータを記憶させる場合、前記アドレス記憶部に記憶されたアドレスより１つ大きいアドレスが前記データマップ記憶部に記憶されていないときに、当該１つ大きいアドレスのブロックに当該ユーザデータを記憶させ、前記アドレス記憶部に記憶されたアドレスより１つ大きいアドレスが前記データマップ記憶部に記憶されているときに、前記データマップ記憶部に記憶されていないアドレスを特定するまで、当該１つ大きいアドレスに１つずつアドレスを加算し、アドレスが特定された場合に、当該特定されたアドレスのブロックに当該ユーザデータを記憶させることが好ましい。
【００１２】
また、上記記憶装置は、前記制御部は、前記ユーザデータ領域に、前記アドレス記憶部に記憶されたアドレスより１つ大きいアドレスのブロックが存在しない場合、前記データマップ記憶部に記憶されていないアドレスを特定するまで、当該ユーザデータ領域の先頭アドレスに１つずつアドレスを加算し、アドレスが特定された場合に、当該特定されたアドレスのブロックに新たにユーザデータを記憶させることが好ましい。
【００１３】
本発明に係る記憶装置は、アドレスが付されたブロックを複数有し、当該複数のブロックに当該ブロックの数よりも少ない数のユーザデータを記憶するユーザデータ領域と、前記ユーザデータ領域への前記ユーザデータの記憶を制御するデータを含む管理データを記憶する管理データ領域と、前記管理データに基づいて、前記ユーザデータ領域の複数のブロックへの前記ユーザデータの記憶制御を行う制御部と、を備え、前記管理データ領域は、前記制御部により最も新しく記憶されたユーザデータが記憶されている前記ユーザデータ領域のブロックに付されているアドレスを前記管理データとして記憶するアドレス記憶部を有し、前記制御部は、新たにユーザデータを記憶させる場合、前記アドレス記憶部に記憶されたアドレスより小さいアドレスが付された前記ユーザデータ領域のブロックに前記ユーザデータを記憶させた後、当該ブロックに付されたアドレスを前記アドレス記憶部に記憶させることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、迅速な処理でウェアレベリングを実現することができる。
【図面の簡単な説明】
【００１５】
【図１】携帯電話装置の外観斜視図である。
【図２】携帯電話装置の機能を示す機能ブロック図である。
【図３】不揮発性メモリの構成を模式的に示す図である。
【図４】最も大きいシーケンス番号が記憶されているブロックを特定する処理を示すフローチャートである。
【図５】新たにユーザデータを記憶するブロックのアドレスを決定する処理を示すフローチャートである。
【図６】新たにユーザデータが記憶される様子を示す図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態について説明する。図１は、本発明に係る記憶装置を内蔵する携帯電話装置１の外観斜視図を示す。なお、図１は、いわゆる折り畳み型の携帯電話装置の形態を示しているが、本発明に係る携帯電話装置の形態としては、特にこれに限られない。例えば、両筺体を重ね合わせた状態から一方の筺体を一方向にスライドさせるようにしたスライド式や、重ね合わせ方向に沿う軸線を中心に一方の筺体を回転させるようにした回転式（ターンタイプ）や、操作部と表示部とが１つの筺体に配置され、連絡部を有さない形式（ストレートタイプ）でもよい。
【００１７】
携帯電話装置１は、操作部側筺体部２と、表示部側筺体部３とを備えて構成される。操作部側筺体部２は、表面部１０に、操作部１１と、携帯電話装置１の使用者が通話時に発した音声が入力されるマイク１２とを備えて構成される。操作部１１は、各種設定や電話帳機能やメール機能等の各種機能を作動させるための機能設定操作キー１３と、電話番号の数字やメール等の文字等を入力するための入力操作キー１４と、各種操作における決定やスクロール等を行う決定操作キー１５とから構成されている。
また、表示部側筺体部３は、表面部２０に、各種情報を表示するためのＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）表示部２１と、通話の相手側の音声を出力するスピーカ２２とを備えて構成されている。
【００１８】
また、操作部側筺体部２の上端部と表示部側筺体部３の下端部とは、ヒンジ機構４を介して連結されている。また、携帯電話装置１は、ヒンジ機構４を介して連結された操作部側筺体部２と表示部側筺体部３とを相対的に回転することにより、操作部側筺体部２と表示部側筺体部３とを互いに開いた状態（開放状態）にしたり、操作部側筺体部２と表示部側筺体部３とを折り畳んだ状態（折畳み状態）にしたりできる。
【００１９】
また、図２は、携帯電話装置１の機能を示す機能ブロック図である。携帯電話装置１は、図２に示すように、操作部１１と、マイク１２と、メインアンテナ４０と、ＲＦ回路部４１と、ＬＣＤ制御部４２と、音声処理部４３と、メモリ５０と、制御部６０とが操作部側筺体部２に備えられ、ＬＣＤ表示部２１と、スピーカ２２と、ＬＣＤドライバ２３とが表示部側筺体部３に備えられている。
【００２０】
メインアンテナ４０は、デュアルバンド対応構成であり、第１の使用周波数帯（例えば、８００ＭＨｚ）で基地局等と通信を行い、第２の使用周波数帯（例えば、１．５ＧＨｚ）でＧＰＳ衛星と通信を行う。
【００２１】
ＲＦ回路部４１は、メインアンテナ４０によって受信した信号を復調処理し、処理後の信号を制御部６０に供給する。また、ＲＦ回路部４１は、制御部６０から供給された信号を変調処理し、メインアンテナ４０を介して外部装置（基地局）に送信する。また、その一方で、ＲＦ回路部４１は、メインアンテナ４０によって受信する信号の強度を制御部６０に通知する。
【００２２】
ＬＣＤ制御部４２は、制御部６０の制御にしたがって、所定の画像処理を行い、処理後の画像データをＬＣＤドライバ２３に出力する。ＬＣＤドライバ２３は、フレームメモリを備えており、ＬＣＤ制御部４２から供給された画像データをフレームメモリに蓄える。そして、ＬＣＤドライバ２３は、フレームメモリに蓄えられた画像データを所定のタイミングでＬＣＤ表示部２１又はサブＬＣＤ表示部（図示省略）に出力する。
【００２３】
音声処理部４３は、制御部６０の制御にしたがって、ＲＦ回路部４１から供給された信号に対して所定の音声処理を行い、処理後の信号をスピーカ２２に出力する。スピーカ２２は、音声処理部４３から供給された信号を外部に出力する。
また、音声処理部４３は、制御部６０の制御にしたがって、マイク１２から入力された信号を処理し、処理後の信号をＲＦ回路部４１に出力する。ＲＦ回路部４１は、音声処理部４３から供給された信号に所定の処理を行い、処理後の信号をメインアンテナ４０に出力する。
【００２４】
メモリ５０は、揮発性メモリ５１（例えば、ＳＤＲＡＭ（ＳｙｎｃｈｒｏｎｏｕｓＤＲＡＭ））と、不揮発性メモリ５２（例えば、ＮＡＮＤ型フラッシュメモリ）とを備える。
揮発性メモリ５１は、制御部６０による演算処理に利用されるワーキングメモリとしての機能を有する。
【００２５】
不揮発性メモリ５２は、アドレスが設けられているブロックを複数備えており、このブロックは、複数のページにより構成される。このページは、１ビットの情報を記憶するメモリセルにより構成される。不揮発性メモリ５２が、ＮＡＮＤ型フラッシュメモリである場合、データの記憶は、ブロック単位で行われるが、メモリセルは、構造上、書き換え回数に制限がある。このため、不揮発性メモリ５２は、ブロックへのデータの書き込みが所定回数に制限されている。
この不揮発性メモリ５２は、複数のアプリケーションや当該アプリケーションが必要とする各種のテーブル等を記憶する。
【００２６】
制御部６０は、携帯電話装置１の全体を制御しており、中央処理装置（ＣＰＵ）等を用いて構成される。
【００２７】
本実施形態に係る携帯電話装置１では、不揮発性メモリ５２の複数のブロックに対して、平準に書き込みを制御するウェアレベリング機能を有している。
携帯電話装置１は、制御部６０とメモリ５０との協調動作によって当該機能を発揮する。ここで、制御部６０とメモリ５０との詳細な構成及び動作について説明する。
【００２８】
図３は、不揮発性メモリ５２の構成を模式的に示す図である。
不揮発性メモリ５２は、図３に示されるように、アドレスが設けられているブロックを複数備える。具体的には、不揮発性メモリ５２は、複数のブロックＡ１〜Ａｎにより構成されるユーザデータ領域５２Ａと、複数のブロックＢ１〜Ｂｍにより構成される管理データ領域５２Ｂとを備える。
【００２９】
ユーザデータ領域５２Ａは、複数のブロックＡ１〜Ａｎにユーザデータを当該ブロックの数よりも少なく記憶する。
管理データ領域５２Ｂは、複数のブロックＢ１〜Ｂｍにユーザデータ領域５２Ａへの前記ユーザデータの記憶するデータを含む管理データを記憶する。
【００３０】
具体的には、図３に示すように、管理データ領域５２Ｂは、複数のブロックＢ１〜Ｂｍそれぞれに、制御部６０により最も新しく記憶されたユーザデータが記憶されているユーザデータ領域５２Ａのブロックに付されているアドレスを管理データとして記憶するアドレス記憶部５２１Ｂを備える。
【００３１】
制御部６０は、管理データに基づいて、ユーザデータ領域５２Ａの複数のブロックＡ１〜Ａｎへのユーザデータの記憶制御を行う。ここで、制御部６０は、ユーザデータの記憶制御をブロック単位で行う。
具体的には、制御部６０は、ユーザデータ領域５２Ａに対して、新たにユーザデータを記憶させる場合に、アドレス記憶部５２１Ｂに記憶されたアドレスより大きいアドレスが付されたユーザデータ領域５２Ａのブロックにユーザデータを記憶させる。その後、制御部６０は、当該ブロックに付されたアドレスをアドレス記憶部５２１Ｂに記憶させる。
【００３２】
このようにして、制御部６０は、アドレス記憶部５２１Ｂに記憶されている最後に記憶されたアドレスより大きいアドレスを有するユーザデータ領域５２Ａのブロックに対して、新たにユーザデータを記憶させる。すなわち、制御部６０は、アドレス記憶部５２１Ｂに記憶されているアドレスに基づいて、ユーザデータ領域５２Ａの複数のブロックそれぞれに対してアドレスが小さい順にユーザデータを記憶させることで、ユーザデータ領域５２Ａの複数のブロックの使用頻度を平準化することができる。
よって、ユーザデータ領域５２Ａの全ブロックのアドレスを参照することなく、迅速なウェアレベリングを実現することができる。
【００３３】
また、制御部６０は、ユーザデータ領域５２Ａに対して、新たにユーザデータを記憶させる場合に、アドレス記憶部５２１Ｂに記憶されたアドレスより１つ大きいアドレスが付されたユーザデータ領域５２Ａのブロックにユーザデータを記憶させる。その後、制御部６０は、当該ブロックに付されたアドレスをアドレス記憶部５２１Ｂに記憶させる。
【００３４】
このようにして、制御部６０は、新たにユーザデータが記憶される場合に、アドレス記憶部５２１Ｂに記憶されている最後に記憶されたアドレスより１つ大きいアドレスを有するユーザデータ領域５２Ａのブロックに対して、新たにユーザデータを記憶させる。よって、制御部６０は、ユーザデータ領域５２Ａの複数のブロックに対して、アドレス順にユーザデータを記憶させるので、ユーザデータ領域５２Ａの複数のブロックの使用頻度を平準化することができる。
【００３５】
また、管理データ領域５２Ｂは、図３に示すように、複数のブロックＢ１〜Ｂｍそれぞれに、管理データとしてシーケンス番号を記憶するシーケンス番号記憶部５２２Ｂを備える。このシーケンス番号は、ブロックに記憶されている管理データが更新された順番を示すものである。
【００３６】
また、管理データ領域５２Ｂは、図３に示すように、複数のブロックＢ１〜Ｂｍそれぞれに、複数のユーザデータそれぞれについて、ユーザデータのデータ名と、ユーザデータが記憶されているブロックのアドレスとを関連付けて、管理データとして記憶するデータマップ記憶部５２３Ｂを備える。
【００３７】
また、制御部６０は、新たにユーザデータを記憶させる場合、シーケンス番号記憶部５２２Ｂを参照して、複数のブロックＢ１〜Ｂｍから、最も大きいシーケンス番号が記憶されているブロックのアドレス記憶部５２１Ｂを参照して、最後に記憶されたユーザデータ領域５２Ａのブロックのアドレスを特定する。
【００３８】
続いて、制御部６０は、特定されたユーザデータ領域５２Ａのブロックのアドレスより１つ大きいアドレスが、データマップ記憶部５２３Ｂに記憶されていない場合、この１つ大きいアドレスのブロックに、新たにユーザデータを記憶させる。
また、制御部６０は、特定されたユーザデータ領域５２Ａのブロックのアドレスより１つ大きいアドレスが、データマップ記憶部５２３Ｂに記憶されている場合、データマップ記憶部５２３Ｂに記憶されていないアドレスを特定するまで、この１つ大きいアドレスに１つずつアドレスを加算し、アドレスが特定された場合に、この特定されたアドレスのブロックにユーザデータを記憶させる。
【００３９】
続いて、制御部６０は、最も大きいシーケンス番号が記憶されているブロックのアドレスより１つ大きいアドレスのブロックのアドレス記憶部５２１Ｂに、新たにユーザデータを記憶させるブロックのアドレスを記憶させる。また、制御部６０は、最も大きいシーケンス番号が記憶されているブロックのデータマップ記憶部５２３Ｂのデータマップを抽出する。そして、制御部６０は、このデータマップに、新たに記憶されたユーザデータが記憶されたブロックアドレスと、ユーザデータ名とを対応付けた情報を反映させて、最も大きいシーケンス番号が記憶されているブロックのアドレスより１つ大きいアドレスのブロックのデータマップ記憶部５２３Ｂに記憶させる。続いて、制御部６０は、最も大きいシーケンス番号が記憶されているブロックのアドレスより１つ大きいアドレスのブロックのシーケンス番号記憶部５２２Ｂに、最も大きいシーケンス番号より１つ大きいシーケンス番号を記憶させる。
【００４０】
このようにして、制御部６０は、データマップ記憶部５２３Ｂに記憶されていないアドレスのブロックにユーザデータを記憶させる。よって、制御部６０は、データマップに記憶されているユーザデータ、すなわち、比較的新しく記憶されているユーザデータを更新することなく、新たにユーザデータを記憶させることができる。
また、制御部６０は、データマップ記憶部５２３Ｂを複数のブロックそれぞれに備えているので、管理データ領域５２Ｂのブロック数ｍよりも、ユーザデータ領域５２Ａのブロック数ｎが大きい場合、最大で、ｎ−ｍ回前にユーザデータが記憶された状態まで、ユーザデータを戻すことが可能になる。
【００４１】
また、管理データ領域５２Ｂは、シーケンス番号記憶部５２２Ｂのシーケンス番号が大きいブロックから順に新しい管理データを記憶する。よって、制御部６０は、シーケンス番号により管理データの新旧に係る情報を管理できる。
【００４２】
また、制御部６０は、データマップを管理データ領域５２Ｂに記憶させてから、シーケンス番号の更新を行う。よって、制御部６０は、ユーザデータ領域ユーザデータの更新中に電源断等により、管理データ領域５２Ｂへの記憶が中断した場合であっても、最も大きいシーケンス番号が記憶されているブロックを参照することで、ユーザデータの整合性が取れているデータマップを参照することができる。
【００４３】
また、制御部６０は、ユーザデータ領域５２Ａに、アドレス記憶部５２１Ｂに記憶されたアドレスより１つ大きいアドレスのブロックが存在しない場合、データマップ記憶部５２３Ｂに記憶されていないアドレスを特定するまで、ユーザデータ領域５２Ａの先頭アドレスに１つずつアドレスを加算してブロックを検索し、アドレスが特定された場合に、この特定されたアドレスのブロックに新たにユーザデータを記憶させる。
【００４４】
また、制御部６０は、管理データ領域５２Ｂに、最も大きいシーケンス番号が記憶されているブロックのアドレスより１つ大きいアドレスが存在しない場合、管理データ領域６２Ｂの先頭アドレスのブロックのアドレス記憶部５２１Ｂに、新たにユーザデータを記憶させるブロックのアドレスを記憶させる。また、制御部６０は、管理データ領域６２Ｂの先頭アドレスのブロックのデータマップ記憶部５２３Ｂに、新たに記憶されたユーザデータ名と、このユーザデータが記憶されたブロックアドレスとを対応付けた情報を反映させたデータマップを記憶させる。続いて、制御部６０は、管理データ領域６２Ｂの先頭アドレスのブロックのシーケンス番号記憶部５２２Ｂに、最も大きいシーケンス番号より１つ大きいシーケンス番号を記憶させる。
【００４５】
このようにして、制御部６０は、新たにユーザデータが記憶される場合に、ユーザデータ領域５２Ａに循環的にユーザデータを記憶させるので、ユーザデータ領域５２Ａのブロックに複数回ユーザデータを記憶させる場合でも、これら複数のブロックの使用頻度を平準化することができる。
また、制御部６０は、新たにユーザデータが記憶される場合に、管理データ領域５２Ｂに循環的に管理データを記憶させるので、管理データ領域５２Ｂのブロックに複数回管理データを記憶させる場合でも、これら複数のブロックの使用頻度を平準化することができる。
【００４６】
続いて、携帯電話装置１により、最も大きいシーケンス番号が記憶されているブロックのアドレスを特定する処理について、図４に示すフローチャートを参照して説明する。
【００４７】
ステップＳ１において、制御部６０は、最大のシーケンス番号Ｙ’を０とする。
ステップＳ２において、制御部６０は、シーケンス番号記憶部５２２Ｂのシーケンス番号Ｙを読み込む。
【００４８】
ステップＳ３において、制御部６０は、読み込まれたシーケンス番号Ｙが最大のシーケンス番号Ｙ’より大きいか否かを判定する。制御部６０は、この判定がＹＥＳの場合、処理をステップＳ１４に移し、ＮＯの場合、ステップＳ１４に続く、繰り返しの判定処理に処理を移す。
【００４９】
ステップＳ４において、制御部６０は、最大のシーケンス番号Ｙ’を、シーケンス番号Ｙとする。
制御部６０は、繰り返しの判定処理を実行する。具体的には、制御部６０は、ステップＳ２からステップＳ４までの処理を、管理データ領域５２Ｂの先頭ブロックから最後のブロックまで、繰り返し実行する。
【００５０】
ステップＳ５において、制御部６０は、シーケンス番号Ｙ’のブロックを使用するブロックとする。具体的には、制御部６０は、シーケンス番号Ｙ’が記憶されている管理データ領域５２Ｂのブロックを、最も大きいシーケンス番号が記憶されている管理データ領域５２Ｂのブロックとする。
【００５１】
続いて、携帯電話装置１により、新たにユーザデータを記憶するブロックのアドレスを決定する処理について、図５に示すフローチャートを参照して説明する。
ステップＳ１１において、制御部６０は、最も大きいシーケンス番号が記憶されている管理データ領域５２Ｂのブロックを参照して、最後に記憶されたユーザデータ領域５２ＡのブロックのアドレスＸを特定する。そして、制御部６０は、新たにユーザデータを記憶するブロックのアドレスの候補であるアドレスＸ’を、アドレスＸに１加算したアドレスとする。
【００５２】
ステップＳ１２において、制御部６０は、アドレスＸ’がユーザデータ領域５２Ａに対応するアドレスの範囲外か否かを判定する。制御部６０は、この判定がＹＥＳの場合、処理をステップＳ１３に移し、ＮＯの場合、処理をステップＳ１４に移す。
【００５３】
ステップＳ１３において、制御部６０は、ユーザデータ領域５２Ａの先頭アドレスをアドレスＸ’とする。
【００５４】
ステップＳ１４において、制御部６０は、最も大きいシーケンス番号が記憶されている管理データ領域５２Ｂのブロックに記憶されているデータマップ記憶部５２３Ｂを参照して、アドレスＸ’がこのデータマップ記憶部５２３Ｂに存在するか否かを判定する。制御部６０は、この判定がＹＥＳの場合、処理をステップＳ１１に移し、ＮＯの場合、処理をステップＳ１５に移す。
【００５５】
ステップＳ１５において、制御部６０は、新たにユーザデータを記憶するブロックのアドレスをアドレスＸ’に決定する。
【００５６】
続いて、図６を用いて、新たにユーザデータが記憶される様子について説明する。
図６は、ユーザデータＡ、Ｂ、Ｃが既にユーザデータ領域５２Ａに記憶されている状態から、ユーザデータＡ、Ｂ、Ｃ、Ａの順にデータが更新される場合におけるユーザデータ領域５２Ａと管理データ領域５２Ｂの状態を示す図である。なお、図６のそれぞれの状態において、新た（最後）に記憶されたデータ、更新されたデータには、下線を付している。なお、本説明では、ユーザデータ領域５２Ａは、アドレスが「１０３」のブロックＡ１、アドレスが「１０４」のブロックＡ２、アドレスが「１０５」のブロックＡ３、アドレスが「１０６」のブロックＡ４、アドレスが「１０７」のブロックＡ５を備えるものとする。また、管理データ領域５２Ｂは、アドレスが「１００」のブロックＢ１、アドレスが「１０１」のブロックＢ２、アドレスが「１０２」のブロックＢ３を備えるものとする。
【００５７】
図６において、状態１は、ユーザデータＡ、Ｂ、Ｃが既にユーザデータ領域５２Ａに記憶されている状態である。
状態１において、ユーザデータ領域５２Ａのアドレス「１０３」、「１０４」、「１０５」のブロックには、それぞれユーザデータＡ、Ｂ、Ｃが記憶されている。また、ユーザデータ領域５２Ａのアドレス「１０６」、「１０７」には、ユーザデータが記憶されていない。また、ユーザデータ領域５２Ａに最後に記憶されたユーザデータは、ユーザデータＣである。
【００５８】
状態１において、管理データ領域５２Ｂのアドレス「１００」、「１０１」、「１０２」のブロック内のシーケンス番号記憶部５２２Ｂには、それぞれシーケンス番号「１」、「２」、「３」、が記憶されている。つまり、最も大きいシーケンス番号が記憶されている管理データ領域５２Ｂのブロックのアドレスは、「１０２」である。なお、図６では、アドレス「１００」のブロックＢ１、アドレス「１０１」のブロックＢ２、アドレス「１０２」のブロックＢ３には、それぞれシーケンス番号のみ記載しているが、これらのブロックには、シーケンス番号以外の情報も記憶されている。
【００５９】
アドレス「１０２」のブロックのアドレス記憶部５２１Ｂには、最も新しく記憶されたユーザデータが記憶されているユーザデータ領域５２Ａのブロックに付されているアドレスとして、「１０５」が記憶されている。
また、アドレス「１０２」のブロックのデータマップ記憶部５２３Ｂには、ユーザデータのデータ名と、ユーザデータが記憶されているブロックのアドレスとが関連付けて記憶されている。
【００６０】
状態１において、ユーザデータＡが更新等により新たに記憶される場合、制御部６０は、最も大きいシーケンス番号が記憶されている管理データ領域５２Ｂのアドレス「１０２」のブロックＢ３を参照して、最後に記憶されたユーザデータ領域５２Ａのブロックのアドレスが「１０５」であることを特定する。続いて、制御部６０は、「１０５」に１加算したアドレス「１０６」を、新たにユーザデータを記憶するブロックのアドレスの候補であるアドレスＸ’とする。続いて、制御部６０は、アドレスＸ’（１０６）がユーザデータ領域５２Ａに存在するか否かを判定する。本実施例では、アドレス「１０６」のブロックＡ４がユーザデータ領域５２Ａに存在するので、制御部６０は、アドレスＸ’（１０６）がユーザデータ領域５２Ａに存在すると判定する。当該判定の後、制御部６０は、アドレス「１０２」のブロックＢ３のデータマップ記憶部５２３ＢにアドレスＸ’（１０６）が存在しないか否かを判定する。本実施例では、ブロックＢ３内のデータマップ記憶部５２３Ｂには、アドレス「１０６」は記憶されていないので、制御部６０は、アドレスＸ’（１０６）がデータマップ記憶部５２３Ｂに存在しないと判定する。続いて、制御部６０は、新たにユーザデータＡを記憶するブロックのアドレスをアドレスＸ’、すなわち、「１０６」に決定し、このアドレス「１０６」のブロックＡ４にユーザデータＡを記憶させる。さらに、制御部６０は、アドレス「１００」のブロックＢ１のアドレス記憶部５２１Ｂに、アドレス「１０６」を記憶させるとともに、アドレス「１００」のブロックＢ１のデータマップ記憶部５２３Ｂの情報を更新する。具体的には、制御部６０は、ブロックＢ３のデータマップ記憶部５２３ＢのユーザデータＡに係る情報をユーザデータＡがアドレス「１０６」のブロックＡ４に記憶されているという情報に更新したデータマップを、ブロックＢ１のデータマップ記憶部５２３Ｂに記憶させる。続いて、制御部６０は、アドレス「１００」のブロックＢ１のシーケンス番号記憶部５２２Ｂに、アドレス「１０２」のブロックＢ３のシーケンス番号「３」よりも１つ大きいシーケンス番号「４」を記憶させる。このようにして、ユーザデータ領域５１Ａ及び管理データ領域５２Ｂの状態は、状態２となる。
【００６１】
状態２において、ユーザデータＢが更新等により新たに記憶される場合、制御部６０は、最も大きいシーケンス番号が記憶されている管理データ領域５２Ｂのアドレス「１００」のブロックＢ１を参照して、最後に記憶されたユーザデータ領域５２Ａのブロックのアドレスが「１０６」であることを特定する。続いて、制御部６０は、「１０６」に１加算したアドレス「１０７」を、新たにユーザデータを記憶するブロックのアドレスの候補であるアドレスＸ’とする。続いて、制御部６０は、アドレスＸ’（１０７）がユーザデータ領域５２Ａに存在するか否かを判定する。本実施例では、アドレス「１０７」のブロックＡ５がユーザデータ領域５２Ａに存在するので、制御部６０は、アドレスＸ’（１０７）がユーザデータ領域５２Ａに存在すると判定する。当該判定の後、制御部６０は、アドレス「１００」のブロックＢ１のデータマップ記憶部５２３ＢにアドレスＸ’（１０７）が存在しないか否かを判定する。本実施例では、ブロックＢ１内のデータマップ記憶部５２３Ｂには、アドレス「１０７」は記憶されていないので、制御部６０は、アドレスＸ’（１０７）がデータマップ記憶部５２３Ｂに存在しないと判定する。続いて、制御部６０は、新たにユーザデータＢを記憶するブロックのアドレスをアドレスＸ’、すなわち、「１０７」に決定し、このアドレス「１０７」のブロックＡ５にユーザデータＢを記憶させる。さらに、制御部６０は、アドレス「１０１」のブロックＢ２のアドレス記憶部５２１Ｂに、アドレス「１０７」を記憶させるとともに、アドレス「１０１」のブロックＢ２のデータマップ記憶部５２３Ｂの情報を更新する。具体的には、制御部６０は、ブロックＢ１のデータマップ記憶部５２３ＢのユーザデータＢに係る情報をユーザデータＢがアドレス「１０７」のブロックＡ５に記憶されているという情報に更新したデータマップを、ブロックＢ２のデータマップ記憶部５２３Ｂに記憶させる。続いて、制御部６０は、アドレス「１０１」のブロックＢ２のシーケンス番号記憶部５２２Ｂに、アドレス「１００」のブロックＢ１のシーケンス番号「４」よりも１つ大きいシーケンス番号「５」を記憶させる。このようにして、ユーザデータ領域５１Ａ及び管理データ領域５２Ｂの状態は、状態３となる。
【００６２】
状態３において、ユーザデータＣが更新等により新たに記憶される場合、制御部６０は、最も大きいシーケンス番号が記憶されている管理データ領域５２Ｂのアドレス「１０１」のブロックＢ２を参照して、最後に記憶されたユーザデータ領域５２Ａのブロックのアドレスが「１０７」であることを特定する。続いて、制御部６０は、「１０７」に１加算したアドレス「１０８」を、新たにユーザデータを記憶するブロックのアドレスの候補であるアドレスＸ’とする。続いて、制御部６０は、アドレスＸ’（１０８）がユーザデータ領域５２Ａに存在するか否かを判定する。本実施例では、アドレス「１０８」のブロックがユーザデータ領域５２Ａに存在しないので、制御部６０は、アドレスＸ’（１０８）がユーザデータ領域５２Ａに存在しないと判定する。当該判定の後、制御部６０は、アドレスＸ’をユーザデータ領域５２Ａの先頭アドレス「１０３」にする。続いて、制御部６０は、アドレス「１０１」のブロックＢ２のデータマップ記憶部５２３ＢにアドレスＸ’（１０３）が存在しないか否かを判定する。本実施例では、ブロックＢ２内のデータマップ記憶部５２３Ｂには、アドレス「１０３」は記憶されていないので、制御部６０は、アドレスＸ’（１０３）がデータマップ記憶部５２３Ｂに存在しないと判定する。続いて、制御部６０は、新たにユーザデータＣを記憶するブロックのアドレスをアドレスＸ’、すなわち、「１０３」に決定し、このアドレス「１０３」のブロックＡ１にユーザデータＣを記憶させる。さらに、制御部６０は、アドレス「１０２」のブロックＢ３のアドレス記憶部５２１Ｂに、アドレス「１０３」を記憶させるとともに、アドレス「１０２」のブロックＢ３のデータマップ記憶部５２３Ｂの情報を更新する。具体的には、制御部６０は、ブロックＢ２のデータマップ記憶部５２３ＢのユーザデータＣに係る情報をユーザデータＣがアドレス「１０３」のブロックＡ１に記憶されているという情報に更新したデータマップを、ブロックＢ３のデータマップ記憶部５２３Ｂに記憶させる。続いて、制御部６０は、アドレス「１０２」のブロックＢ３のシーケンス番号記憶部５２２Ｂに、アドレス「１０１」のブロックＢ２のシーケンス番号「５」よりも１つ大きいシーケンス番号「６」を記憶させる。このようにして、ユーザデータ領域５１Ａ及び管理データ領域５２Ｂの状態は、状態４となる。
【００６３】
状態４において、ユーザデータＡが更新等により新たに記憶される場合、制御部６０は、最も大きいシーケンス番号が記憶されている管理データ領域５２Ｂのアドレス「１０２」のブロックＢ３を参照して、最後に記憶されたユーザデータ領域５２Ａのブロックのアドレスが「１０３」であることを特定する。続いて、制御部６０は、「１０３」に１加算したアドレス「１０４」を、新たにユーザデータを記憶するブロックのアドレスの候補であるアドレスＸ’とする。続いて、制御部６０は、アドレスＸ’（１０４）がユーザデータ領域５２Ａに存在するか否かを判定する。本実施例では、アドレス「１０４」のブロックＡ２がユーザデータ領域５２Ａに存在するので、制御部６０は、アドレスＸ’（１０４）がユーザデータ領域５２Ａに存在すると判定する。当該判定の後、制御部６０は、アドレス「１０２」のブロックＢ３のデータマップ記憶部５２３ＢにアドレスＸ’（１０４）が存在しないか否かを判定する。本実施例では、ブロックＢ３内のデータマップ記憶部５２３Ｂには、アドレス「１０４」は記憶されていないので、制御部６０は、アドレスＸ’（１０４）がデータマップ記憶部５２３Ｂに存在しないと判定する。続いて、制御部６０は、新たにユーザデータＡを記憶するブロックのアドレスをアドレスＸ’、すなわち、「１０４」に決定し、このアドレス「１０４」のブロックＡ２にユーザデータＡを記憶させる。さらに、制御部６０は、アドレス「１００」のブロックＢ１のアドレス記憶部５２１Ｂに、アドレス「１０４」を記憶させるとともに、アドレス「１００」のブロックＢ１のデータマップ記憶部５２３Ｂの情報を更新する。具体的には、制御部６０は、ブロックＢ３のデータマップ記憶部５２３ＢのユーザデータＡに係る情報をユーザデータＡがアドレス「１０４」のブロックＡ２に記憶されているという情報に更新したデータマップを、ブロックＢ１のデータマップ記憶部５２３Ｂに記憶させる。続いて、制御部６０は、アドレス「１００」のブロックＢ１のシーケンス番号記憶部５２２Ｂに、アドレス「１０２」のブロックＢ３のシーケンス番号「６」よりも１つ大きいシーケンス番号「７」を記憶させる。このようにして、ユーザデータ領域５１Ａ及び管理データ領域５２Ｂの状態は、状態５となる。
【００６４】
このようにして、制御部６０は、新たにユーザデータが記憶される場合に、ユーザデータ領域５２Ａに循環的にユーザデータを記憶させるので、ユーザデータ領域５２Ａのブロックに複数回ユーザデータを記憶させる場合でも、これら複数のブロックの使用頻度を平準化することができる。
【００６５】
以上、好適な実施形態について説明したが、本発明は前述した実施形態に限定されることなく種々の形態で実施することができる。また、前述の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、前述のものに限定されない。
【００６６】
なお、本実施形態においては、制御部６０は、新たにユーザデータをユーザデータ領域５２Ａに記憶させる場合、ユーザデータを、アドレス「１０３」、「１０４」、「１０５」・・・のように、アドレスが小さいブロックから大きくなる順に書き込むこととしているが、これに限らない。すなわち、制御部６０は、新たにユーザデータをユーザデータ領域５２Ａに記憶させる場合、ユーザデータを、アドレス「１０５」、「１０４」、「１０３」・・・のように、アドレスが大きいブロックから小さくなる順に書き込むこととしてもよい。この場合、アドレスが小さいユーザデータ領域５２Ａのブロックから順に書き込む場合と同様の効果を得られることはいうまでもない。なお、アドレスが大きいブロックから小さくなる順に書き込む場合、新たにユーザデータを記憶するブロックのアドレスの候補であるアドレスＸ’の特定は、アドレス記憶部５２１Ｂに記憶されたアドレスより小さいアドレスのブロックのうち、大きいブロックから順に検索することにより実現される。
【符号の説明】
【００６７】
１  携帯電話装置
５２  不揮発性メモリ
５２Ａ  ユーザデータ領域
５２Ｂ  管理データ領域
５２１Ｂ  アドレス記憶部
５２２Ｂ  シーケンス番号記憶部
５２３Ｂ  データマップ記憶部
【図１】
2011175449.tif 000003
【図２】
2011175449.tif 000004
【図３】
2011175449.tif 000005
【図４】
2011175449.tif 000006
【図５】
2011175449.tif 000007
【図６】
2011175449.tif 000008