(57)【要約】【課題】  不揮発メモリを備えた端末装置で、不揮発メモリを脱着する場合でも、不揮発メモリの再書き込みを行う最適な時期を検出し、再書き込みを行う手段を提供する。【解決手段】  端末装置は、装置内部の温度を検出し、検出した温度に応じて割り込み信号を出力する高温検出カウンタ回路を備え、不揮発メモリのブロックの管理領域には、データが書き込まれた時、及び装置が停止される直前のシステム時間とストレス加速時間とが記録され、装置が再起動される時には、装置が停止される直前のストレス加速時間から継続してストレス加速時間をカウントすることで、不揮発メモリを脱着する場合でも、不揮発メモリの再書き込みを行う最適な時期を検出し、再書き込みすることができる。【選択図】  図５
2011243132.tif 000002
【特許請求の範囲】
【請求項１】
着脱可能な不揮発メモリと、標準時刻を出力するタイマ回路と、装置内部の温度を測定する温度センサを搭載し、高温検出時にＣＰＵに割り込み信号を出力する高温検出カウンタ回路と、前記割り込み信号をストレス加速時間としてカウントするＣＰＵと、を備え、
不揮発メモリのそれぞれのブロックの管理領域に、それぞれのブロックにデータが書き込まれた時のシステム時間と、ストレス加速時間と、を記録し、
不揮発メモリを取り出す場合には、取り出す不揮発メモリの任意のブロックの管理領域に、不揮発メモリを取り出す直前のシステム時間と、ストレス加速時間と、を記録し、
前記取り出した不揮発メモリを再び取り付ける場合には、前記不揮発メモリを取り出す直前のストレス加速時間を初期値として、前記割り込み信号をカウントアップすることで、現在のストレス加速時間とし、
前記それぞれのブロックにデータが書き込まれた時のシステム時間と、ストレス加速時間と、タイマ回路からの現在におけるシステム時間と、前記現在のストレス加速時間とを用いて、それぞれのブロック毎のストレス時間を算出し、前記ストレス時間が設定されたストレス管理時間を超えた不揮発性メモリのブロックに再書き込みを行うことを特徴とする端末装置。
【請求項２】
前記不揮発メモリを取り出す直前のシステム時間と、ストレス加速時間とが記録される前記不揮発メモリの任意のブロックは、前記不揮発メモリのブロックで、データ領域にデータが書き込まれていない未使用ブロックのうちのいずれか１つであることを特徴とする請求項１に記載の端末装置。
【請求項３】
前記取り出した不揮発メモリを再び取り付ける場合の初期値となるストレス加速時間は、それぞれのブロックの管理領域に記録されている全てのシステム時間を読み出し、読み出したシステム時間のなかで最も新しいシステム時間が記録されているブロックに記録されているストレス加速時間であることを特徴とする請求項１または請求項２に記載の端末装置。
【請求項４】
前記ブロック毎のストレス時間は、現在におけるシステム時間と、それぞれのブロックにデータが書き込まれた時のシステム時間との差分と、現在におけるストレス加速時間と、それぞれのブロックにデータが書き込まれた時のストレス加速時間との差分とを算出し、前記２つの差分を加算した時間であることを特徴とする請求項１乃至請求項３のいずれかに記載の端末装置。
【請求項５】
前記現在におけるシステム時間とストレス加速時間、前記それぞれのブロックにデータが書き込まれた時のシステム時間とストレス加速時間、前記ストレス時間、及び前記ストレス管理時間、を格納する管理テーブルが揮発メモリに設けられていることを特徴とする請求項１乃至請求項４のいずれかに記載の端末装置。
【請求項６】
前記高温検出カウンタ回路は、装置内部の高温を検出する温度センサと、前記温度センサからの高温検出信号によりクロック信号を出力する発振回路と、前記クロック信号が入力された回数を、検出した温度に応じて重み付けしたストレスカウント値としてカウントするカウンタ回路と、を有し、前記ストレスカウント値が設定された値以上になったときにＣＰＵに割り込み信号を出力することを特徴とする請求項１乃至請求項５のいずれかに記載の端末装置。
【請求項７】
前記高温検出カウンタ回路は、検出する温度しきい値がそれぞれ異なる複数の温度センサを備え、前記複数の温度センサのうち一番低い温度を検出する温度センサが高温であることを検出した時に、前記発振回路が駆動され、クロック信号が出力されることを特徴とする請求項６に記載の端末装置。
【請求項８】
前記カウンタ回路は、ストレスカウント値が設定された最大値以上になった場合に、割り込み信号を発生するとともに、前記ストレスカウント値をリセットすることを特徴とする請求項６又は請求項７に記載の端末装置。
【請求項９】
装置内部の温度をそれぞれが異なる温度しきい値を用いて検出する複数の温度センサと、
前記複数の温度センサのうち一番低い温度を検出する温度センサからの高温検出信号によりクロック信号を出力する発振回路と、
前記クロック信号が入力された回数を前記複数の温度センサからの高温検出信号のそれぞれに対応させて重み付けしたストレスカウント値として積算するカウンタ回路と、を有し、
前記カウンタ回路は、前記ストレスカウント値が設定された最大値以上になった場合に、割り込み信号を出力するとともに、前記ストレスカウント値をリセットすることを特徴とすることを特徴とする高温検出カウンタ回路。
【請求項１０】
ＣＰＵが、タイマ回路から読み出した現在のシステム時間を揮発メモリの管理テーブルのシステム時間として書き込み、不揮発メモリの取り出し直前のストレス加速時間を、揮発メモリの管理テーブルのストレス加速時間の初期値として書き込む初期化ステップと、
高温検出カウンタ回路が装置内部温度の監視を開始し、検出した温度に応じてストレス値をカウントしたストレスカウント値により割り込み信号を出力し、ＣＰＵが前記ストレス加速時間の初期値に前記割り込み信号を加算し、現在のストレス加速時間をカウントするステップと、
ＣＰＵが、現在のシステム時間とストレス加速時間と、不揮発メモリのそれぞれのブロックに対する書き込み時のシステム時間とストレス加速時間と、を用いて、不揮発メモリのそれぞれのブロックのストレス時間を算出するステップと、
算出したストレス時間が、ストレス管理時間をオーバーしていたブロックに対して再書き込みを行うステップと、を備えたことを特徴とする不揮発メモリへの再書き込み方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、端末装置に関し、特に脱着可能な不揮発メモリのリテンション特性が劣化する前に不揮発メモリにデータに再書き込みするための再書き込み時間を算出し、再書き込みを行う端末装置に関する。
【背景技術】
【０００２】
携帯端末装置や情報端末装置には、装置内部が高温になった場合に特性の劣化するデバイス、例えば不揮発メモリが使用されている。携帯端末装置や情報端末装置では、装置の動作に必要なアプリケーションプログラムを不揮発メモリに格納している。近年、装置の高機能化に伴い、このようなアプリケーションプログラムは非常に規模が大きくなっており、大容量の不揮発メモリを使用する必要が生じている。大容量の不揮発メモリとして、ＳＬＣ（Ｓｉｎｇｌｅ  Ｌｅｖｅｌ  Ｃｅｌｌ）−ＮＡＮＤおよび、ＭＬＣ（Ｍｕｌｔｉ  Ｌｅｖｅｌ  Ｃｅｌｌ）−ＮＡＮＤの２種類のＮＡＮＤデバイスがある。この２種類のＮＡＮＤデバイスのうち、ＭＬＣ−ＮＡＮＤは１つのメモリセルに複数のビットを記録することができるため、ＳＬＣ−ＮＡＮＤに比べ大容量化が容易である。そのためＭＬＣ−ＮＡＮＤが、携帯端末装置や情報端末装置のように小型化が求められる装置では多用されている。
【０００３】
しかしながら、ＭＬＣ−ＮＡＮＤは、１つのメモリセルに複数のビットを記録するために、メモリセルの閾値レベル（Ｖｔ）を細かく制御する必要があり、ＳＬＣ−ＮＡＮＤに比べ信頼性が劣る。デバイス周囲温度が高温の環境で長時間使用すると、リテンション特性の悪化で、書き込みデータのデータ化けが発生する場合がある。リテンション特性とは、書き込まれたデータが正しく保持されているかどうかのデータ保持特性のことである。例えば、リテンション特性が悪化した場合には、メモリセルの電子がリークし、メモリセルのＶｔが変動することで、書き込み時と異なるデータに変化してしまう。このように書き込み時と異なるデータに化けることを、データ化けが発生したという。特に、温度が高い場合に影響が大きく、リテンション特性が悪化しやすい。リテンション特性の劣化によりデータ化けが発生してしまうと、装置の動作に不具合を発生させてしまう可能性があるため、これを防止する手段が必要である。
【０００４】
さらに、近年の携帯端末装置や情報端末装置は、ますます装置内部の温度が高くなる傾向にある。第１の要因として、アプリケーション性能や、通信性能向上の必要性から、中央演算処理装置（ＣＰＵ）の処理性能を上げる必要があり、ＣＰＵの処理性能アップに伴い装置内部の温度が高くなっている。第２の要因として、防水機能など装置そのものの仕様で気密性を高くする必要があり、装置内部の温度が高くなる傾向がある。さらに、第３の要因として、メモリデバイスの製造プロセスの微細化で、不揮発メモリセルの１セルあたりに蓄える電子数も少なくなることから、デバイス自体のリテンション特性（データ保持特性）も低下している傾向がある。
【０００５】
さらに近年、装置の小型化が進むなかで、商品性の高い装置のデザインを実現するために、設計の自由度が重要になっている。商品性の高い装置のためには、さまざまな部品が使用されるが、これらの部品の配置位置が制限された場合には、小型化設計が不可能となる。従って、部品の配置位置は、自由に配置できることが望まれている。例えば、携帯端末装置や情報端末装置用のメモリとして、内蔵の不揮発メモリの他に、さらに大容量で脱着可能な不揮発メモリが使われるケースが増えている。脱着可能な不揮発メモリを取り付けるためのソケットの搭載位置が、装置内部で発熱しやすい部品（例えばＣＰＵ）の近くに配置できない制約があると、設計の自由度が損なわれる恐れがでてくる。
【０００６】
このように脱着可能な不揮発メモリは、そのデータを他の装置で利用するため、いろいろな装置のなかで、発熱しやすい部品の近くに配置されることがある。そのため、不揮発メモリが装置内部の高温により、予想以上のストレスを受ける場合も考えられる。不揮発メモリが、装置内部が高温になった場合に保持特性が劣化し、温度が高いときのリテンション特性起因でのデータ化けの発生が高くなることについては、非特許文献１に記載されている。
【０００７】
このように、装置自体が高温になりやすい傾向にあり、デバイス自体もリテンション特性（データ保持特性）が低下している傾向にある。そのため近年の携帯端末装置や情報端末装置（以下、総称として、端末装置と略記することがある）におけるリテンション特性起因でのデータ化けが発生するリスクは、高まっている。また、脱着可能な不揮発メモリの利用が増えており、装置内部の高温により受けるストレスをモニタすることは、重要になっている。そのため端末装置には、脱着可能な不揮発メモリが、装置内温度が高温時に受けたストレスの履歴を継続的に保管し、あらかじめ設定されたストレスを受けた時にＣＰＵに通知する手段が必要となる。
【０００８】
装置温度をモニタし、トラブルの発生を防止する先行特許文献として下記文献がある。特許文献１には、一定経過時間ごとに装置温度を計測し、計測した温度にしたがって重み付けした経過時間をカウントする。重み付けした経過時間が所定時間を超えた場合には、不揮発性メモリに再度書き込み動作を行う技術が示されている。また特許文献２には、周囲温度を定期的に計測する温度検出装置と、検出温度が規格範囲内ならばカウント値を＋１、規格範囲外ならばカウント値を＋２、加算する演算装置と、カウント値が設定値を超えた場合には警報を出力する技術が示されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０００−１１６７０号公報
【特許文献２】特開２００１−１４４２４３号公報
【非特許文献】
【００１０】
【非特許文献１】（株）東芝、信頼性試験資料（http://www.semicon.toshiba.co.jp/shared/reliability_pdf/bdj0128e_chap03.pdf）
【非特許文献２】ニューモニクス製ＮＡＮＤデバイスのデータシート（http://www.numonyx.com/Documents/Datasheets/NAND_08GW3C2B.pdf）
【発明の概要】
【発明が解決しようとする課題】
【００１１】
上記したように、端末装置では、アプリケーションを動作させるとＣＰＵ、メモリ、および周辺回路が発熱するため、装置内部が高温になる。装置内部の温度が高温になると、信頼性の低い不揮発メモリでは、リテンション特性の悪化が原因で、書き込みデータのデータ化けが発生してしまい、システムの信頼性を低下させる要因となる。データ化けが発生する前に、データの再書き込みを実施することで、データ化けを防止することができる。しかし、上記した特許文献の技術は、脱着可能な不揮発メモリには適用されない。このようにメモリカードのような形で携帯端末装置や情報端末装置から取り出し、再び取り付けるような使い方の場合、高温時に受けたストレスの履歴で、データ化けが発生する前に、再書き込みを行う最適な時期を検知する手段がないという問題がある。
【００１２】
本発明は、高温で特性の劣化する不揮発メモリデバイスを使った携帯端末装置や情報端末装置で、不揮発メモリを脱着する場合でも、不揮発メモリの再書き込みを行う最適な時期を算出し、再書き込みを行う手段を提供する。
【課題を解決するための手段】
【００１３】
本発明の１つの観点によれば、着脱可能な不揮発メモリと、標準時刻を出力するタイマ回路と、装置内部の温度を測定する温度センサを搭載し、高温検出時にＣＰＵに割り込み信号を出力する高温検出カウンタ回路と、前記割り込み信号をストレス加速時間としてカウントするＣＰＵと、を備え、不揮発メモリのそれぞれのブロックの管理領域に、それぞれのブロックにデータが書き込まれた時のシステム時間と、ストレス加速時間と、を記録し、不揮発メモリを取り出す場合には、取り出す不揮発メモリの任意のブロックの管理領域に、不揮発メモリを取り出す直前のシステム時間と、ストレス加速時間と、を記録し、前記取り出した不揮発メモリを再び取り付ける場合には、前記不揮発メモリを取り出す直前のストレス加速時間を初期値として、前記割り込み信号をカウントアップすることで、現在のストレス加速時間とし、前記それぞれのブロックにデータが書き込まれた時のシステム時間と、ストレス加速時間と、タイマ回路からの現在におけるシステム時間と、前記現在のストレス加速時間とを用いて、それぞれのブロック毎のストレス時間を算出し、前記ストレス時間が設定されたストレス管理時間を超えた不揮発性メモリのブロックに再書き込みを行うことを特徴とする端末装置が得られる。
【００１４】
本発明の他の観点によれば、装置内部の温度をそれぞれが異なる温度しきい値を用いて検出する複数の温度センサと、前記複数の温度センサのうち一番低い温度を検出する温度センサからの高温検出信号によりクロック信号を出力する発振回路と、前記クロック信号が入力された回数を前記複数の温度センサからの高温検出信号のそれぞれに対応させて重み付けしたストレスカウント値として積算するカウンタ回路と、を有し、前記カウンタ回路は、前記ストレスカウント値が設定された最大値以上になった場合に、割り込み信号を出力するとともに、前記ストレスカウント値をリセットすることを特徴とすることを特徴とする高温検出カウンタ回路が得られる。
【００１５】
本発明のさらなる他の観点によれば、ＣＰＵが、タイマ回路から読み出した現在のシステム時間を揮発メモリの管理テーブルのシステム時間として書き込み、不揮発メモリの取り出し直前のストレス加速時間を、揮発メモリの管理テーブルのストレス加速時間の初期値として書き込む初期化ステップと、高温検出カウンタ回路が装置内部温度の監視を開始し、検出した温度に応じてストレス値をカウントしたストレスカウント値により割り込み信号を出力し、ＣＰＵが前記ストレス加速時間の初期値に前記割り込み信号を加算し、現在のストレス加速時間をカウントするステップと、ＣＰＵが、現在のシステム時間とストレス加速時間と、不揮発メモリのそれぞれのブロックに対する書き込み時のシステム時間とストレス加速時間と、を用いて、不揮発メモリのそれぞれのブロックのストレス時間を算出するステップと、算出したストレス時間が、ストレス管理時間をオーバーしていたブロックに対して再書き込みを行うステップと、を備えたことを特徴とする不揮発メモリへの再書き込み方法が得られる。
【発明の効果】
【００１６】
本発明の端末装置は、不揮発メモリが取り出される直前のシステム時間とストレス加速時間を記録し、不揮発メモリが再び取り付けられる時には、取り出される直前のストレス加速時間から継続してストレス加速時間をカウントする。不揮発メモリが取り出される直前のストレス加速時間を記録することで、不揮発メモリが取り出され、再び取り付けられる時にも継続したストレス加速時間が得られる。この継続したストレス加速時間を用いてストレス時間を算出し、ストレス時間がストレス管理時間をオーバーした場合には、ブロック単位に再書き込みを実施する。本発明を用いることで、脱着可能な不揮発メモリにおいても再書き込みすべき時間を算出し、再書き込みできることで、不揮発メモリのリテンション特性の劣化により発生するデータ化けを防止することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の端末装置における（Ａ）システム構成図、（Ｂ）高温検出カウンタ回路の回路ブロック図である。
【図２】本発明の高温検出カウンタ回路仕様を示す図である。
【図３】本発明の管理テーブル項目を示す図である。
【図４】本発明の不揮発メモリのデータ構成を示す図である。
【図５】本発明の構成を携帯電話に用いた場合の動作例を示すフローチャートである。
【図６】本発明のリテンションチェックのフローチャートである。
【発明を実施するための形態】
【００１８】
（第一の実施の形態）
以下、本発明の実施形態を、図面を参照して詳細に説明する。図１（Ａ）に携帯端末装置や情報端末装置のシステム構成、図１（Ｂ）にその高温検出カウンタ回路の回路ブロック図を示す。図２は高温検出カウンタ回路の仕様、図３は管理テーブルの項目、図４は不揮発メモリのデータ構成、を、それぞれ示す。図５は、本発明の構成を携帯電話に用いた場合の動作を示すフローチャート、図６は、リテンションチェックのフローチャート、を示す。
【００１９】
本発明の端末装置は、内蔵または脱着可能、あるいはその両方の不揮発メモリを備えることができる。これらの不揮発メモリのデータ保持（リテンション）特性の劣化によるデータ化けが発生する前に、それぞれの不揮発メモリにデータを再書き込みする再書き込み時間を算出する手段を備えている。内蔵の不揮発メモリと脱着可能な不揮発メモリとは、不揮発メモリが取り出しできるかどうかが異なるだけである。以下の説明は、内蔵と脱着可能な不揮発メモリとを区別せずに、脱着可能な不揮発メモリとして説明する。しかし、脱着可能な不揮発メモリで、デバイス取り出しがない場合が、内蔵の不揮発メモリに相当することは容易に理解できるであろう。
【００２０】
図１に示す端末装置は、揮発メモリ（ＤＲＡＭ）（１０１）、周辺回路（１０２）、タイマ回路（１０３）、ＣＰＵ（１０４）、高温検出カウンタ回路（１０５）、内蔵の不揮発メモリ１（１０６）、装置から脱着可能な不揮発メモリ２（１０７）から構成されている。揮発メモリ（１０１）は、アプリケーションを動作させるための揮発メモリ（ＤＲＡＭ）である。周辺回路（１０２）には、無線回路、ＬＣＤ、キー入出力装置などが含まれている。タイマ回路（１０３）は、標準時間を出力する電波時計を備えている。ＣＰＵ（１０４）は、端末装置全体の動作を制御する。高温検出カウンタ回路（１０５）は、装置内部が高温になると、あらかじめ設定した高温でのストレス加速時間をストレスカウント値として積算する回路である。不揮発メモリ１（１０６）は、プログラムコードやデータが格納されている不揮発メモリである。不揮発メモリ２（１０７）は、主にユーザデータを格納し、装置から脱着可能な不揮発メモリである。
【００２１】
ＣＰＵ（１０４）は、端末装置全体の動作を制御する。例えば、携帯電話システムの一般的な動作としては、システムを起動する時に、ＣＰＵ（１０４）は、不揮発メモリ（１０６）に格納してあるアプリケーションプログラムを読み出し、揮発メモリ（１０１）に展開する。次に、ＣＰＵ（１０４）は、揮発メモリ（１０１）に展開されたアプリケーションプログラムを用い、アプリケーションプログラムを実行する仕組みになっている。このように、ＣＰＵ（１０４）は、プログラムコードやアプリケーションプログラムの記述に従って、様々な、周辺回路（１０２）を制御することにより、装置に求められる機能を実現している。
【００２２】
例えば、携帯端末装置で行われる通話の動作は以下のように実現される。ユーザが通話の操作のために、周辺回路（１０２）のダイヤルキーと通話ボタンを押すと、周辺回路（１０２）の中のキー入力でその操作を検知する。ＣＰＵ（１０４）が通話に必要なアプリケーションプログラムを、不揮発メモリ１（１０６）から、揮発メモリ（１０１）に展開する。次に、ＣＰＵ（１０４）は、そのアプリケーションプログラムで、周辺回路（１０２）の無線回路を制御し、基地局との無線通信を行う。
【００２３】
また、携帯端末装置で行われるカメラ機能の動作は以下のように実現される。ユーザがカメラ機能を使用するために、カメラ機能の割り当てキーを押すと、周辺回路（１０２）の中のキー入力でその操作を検知する。ＣＰＵ（１０４）がカメラ機能に必要なアプリケーションプログラムを、不揮発メモリ１（１０６）から、揮発メモリ（１０１）に展開する。次に、ＣＰＵ（１０４）は、そのアプリケーションプログラムで、周辺回路（１０２）のカメラモジュールを制御し、撮影を行う。また、撮影された画像データは、ＣＰＵ（１０４）が周辺回路（１０２）のカメラモジュール内のメモリ内から読み出し、不揮発メモリ２（１０７）に書き込みを行う。このようにして、カメラ機能としての撮影、及びその撮影したデータの保存を実現している。本実施の形態では、不揮発メモリ１（１０６）、不揮発メモリ２（１０７）は一般的なＮＡＮＤデバイスであり、例えば非特許文献２に示すような一般的なＮＡＮＤデバイスを使用することができる。
【００２４】
図１（Ｂ）は、本発明の高温検出カウンタ回路（１０５）の回路構成を説明した回路ブロック図である。高温検出カウンタ回路（１０５）は、カウンタ回路（１０８）、発振回路（１０９）、温度センサ１（１１０）、温度センサ２（１１１）、温度センサ３（１１２）、温度センサ４（１１３）から構成される。温度センサ１（１１０）と、温度センサ２（１１１）と、温度センサ３（１１２）と、温度センサ４（１１３）とは検出する温度しきい値がそれぞれ異なるように設定されている。温度センサ１（１１０）は、温度しきい値である第１の高温以上を検出すると高温検出信号として“Ｈ”を出力する。温度センサ２（１１１）は、温度しきい値として温度センサ１よりも高い温度である第２の高温以上を検出すると高温検出信号として“Ｈ”を出力する。温度センサ３（１１２）は、温度しきい値として温度センサ１、２よりも高い温度である第３の高温以上を検出すると高温検出信号として“Ｈ”を出力する。温度センサ４（１１３）は、温度しきい値として温度センサ１、２、３よりも高い温度である第４の高温以上を検出すると高温検出信号として“Ｈ”を出力する。
【００２５】
発振回路（１０９）は、温度センサ１（１１０）が高温を検出し、高温検出信号として“Ｈ”を出力している場合にのみ、クロック信号を出力する。カウンタ回路（１０８）は、発振回路のクロック信号（１０９）の立ち上がりエッジに同期し、各温度センサからの出力によって重み付けされたストレス値をカウントし、ストレスカウント値としてレジスタに累積する。これらの各温度センサからの出力によって重み付けされたストレス値は後述（図２）する。カウンタ回路（１０８）は、その最大値（ＭＡＸ値）が設定されており、内部のレジスタに累積されたストレスカウント値が、そのＭＡＸ値以上になるとＣＰＵに対して割り込み信号を出力する。カウンタ回路は、割り込み信号を出力するとともに、そのレジスタのストレスカウント値をリセットする。さらにカウンタ回路は、ＣＰＵからのリセット信号を受信時には、内部のレジスタに累積されているストレスカウント値を、“０”にリセットする。
【００２６】
図２に、高温検出カウンタ回路仕様としての不揮発メモリの温度に対するデータ保持特性のストレス加速度を示す。不揮発メモリは、常温動作においては一般的に１０年間以上のデータ保持特性を有し、書き込まれたデータが変動し、データ化けが発生することはない。しかしながら、高温状態では、データ保持特性が劣化し、データ化けが発生する虞がある。ストレス加速度とは、高温時に、常温に比較して何倍にストレスが加速されるかを示す係数である。
【００２７】
高温検出カウンタ回路（１０５）の備考（２０１）欄の条件１〜３のそれぞれに、装置内部温度区間（Ａ≦ｔ＜Ｂ）（２０２）、時間あたりのストレス値（ｎ−１）（２０３）、ストレス加速度ｎ倍（２０４）が示されている。温度センサ１〜４により装置温度が測定され、条件１〜３の装置内部温度区間が判定される。高温時の温度区間に応じて、デバイスが受けるストレス量が常温のｎ倍となり、そのストレスカウント値が蓄積され、一時間あたり（ｎ−１）回（２０３）の割り込み信号をＣＰＵ（１０４）に出力する。
【００２８】
ここで、高温検出カウンタ回路（１０５）の発振回路（１０９）のクロック信号の周波数を１Ｈｚ、カウンタ回路（１０８）の最大値（ＭＡＸ値）を３６００と設定したとする。この場合には、温度センサからの出力は１秒間隔でカウンタ回路に取り込まれる。取り込まれたストレス値が最大値３６００、即ちストレス時間が常温で３６００秒（１時間）に到達した時点で、カウンタ回路から割り込み信号がＣＰＵに出力されることになる。しかし、この発振回路のクロック周波数、カウンタ回路の最大値は特に限定されるものではない。クロック周波数は端末装置の温度変化、カウンタ回路の最大値は端末装置を連続して使用する時間等に基づいて決めることができる。
【００２９】
具体例として、図１（Ｂ）では温度センサが４個の場合であり、温度センサ１、２、３、４が検出する温度しきい値をそれぞれ、７０℃、８０℃、９０℃、１００℃とする。条件１（７０℃≦ｔ＜８０℃）の場合は、温度センサ１が“Ｈ”を出力、温度センサ２、３、４が“Ｌ”を出力している場合である。条件２（８０℃≦ｔ＜９０℃）の場合は、温度センサ１、２が“Ｈ”を出力、温度センサ３、４が“Ｌ”を出力している場合である。条件３（９０℃≦ｔ＜１００℃）の場合は、温度センサ１、２、３が“Ｈ”を出力、温度センサ４が“Ｌ”を出力している場合である。
【００３０】
条件１の７０℃≦ｔ＜８０℃の場合、常温の３倍のストレス加速度で、時間あたり２倍の余分な温度ストレスを受けたことになる。この場合には最大値３６００には、半時間（３０分）で到達することから、結果的に１時間に２回割り込み信号が出力されることになる。条件２の８０℃≦ｔ＜９０℃の場合、常温の１０倍のストレス加速度で、時間あたり９倍の余分な温度ストレスを受けたことになる。この場合には、結果的に１時間に９回割り込み信号が出力されることになる。条件３の９０℃≦ｔ＜１００℃の場合、常温の３０倍のストレス加速度で、時間あたり２９倍の余分な温度ストレスを受けたことになる。この場合には、結果的に１時間に２９回割り込み信号が出力されることになる。このように温度が高くなると指数的に、温度に対するストレス加速度が増している。
【００３１】
図１（Ｂ）の高温検出カウント回路（１０５）の回路ブロックを再び参照して説明する。一般的に端末装置の内部温度は、アプリケーションプログラムの使用状態に応じて、時々刻々変化し、常温、条件１〜３の温度区間を行き来する。例えば最初に端末装置が動作することで、装置温度が常温から上昇し、内部温度が７０℃を超え、条件１（７０℃≦ｔ＜８０℃）となる。内部温度が７０℃を超えることで発振回路（１０９）がクロック信号を出力する。クロック信号の立ち上がりエッジに同期して温度ストレス値をカウンタ回路（１０８）に蓄積する。ここでは条件１（７０℃≦ｔ＜８０℃）であることから、１クロックあたり２倍の温度ストレス値となる。
【００３２】
従って、カウンタ回路には、条件１（７０℃≦ｔ＜８０℃）の期間では、クロックの立ち上がりエッジ毎に、＋２加算され、ストレスカウント値が積算されていく。また装置の温度が、さらに上昇し、条件２（８０℃≦ｔ＜９０℃）の場合には、クロックの立ち上がりエッジ毎に、＋９加算される。条件３（９０℃≦ｔ＜１００℃）の場合には、クロックの立ち上がりエッジ毎に、＋２９加算される。このように装置温度が７０℃以上の場合には、カウンタ回路は、検出した温度に応じて重み付けされたストレス値を加算する。しかし、装置温度が７０℃未満の場合には、発振回路がクロック信号を停止することで、カウンタ回路も加算することを停止する。このように、カウンタ回路は、端末装置の内部温度の変化に応じて時々刻々ストレスカウント値を積算（カウントアップ）する。
【００３３】
端末装置が動作を継続し、高温状態が続いた場合、カウンタ回路で積算されたストレスカウント値が設定されたＭＡＸ値以上になる。ストレスカウント値が、例えばＭＡＸ値（３６００）以上になった場合には、高温検出カウンタ回路は割り込み信号をＣＰＵに出力し、カウンタ回路のストレスカウント値をリセットする。ストレスカウント値をリセットすることで、継続して装置の温度を検出し、温度ストレス値を再びカウントすることが可能となる。ＣＰＵは、入力された割り込み信号によりストレス加速時間ｔｔ２を、＋１カウントアップする。このように高温検出カウンタ回路は、数秒単位に変動する装置内部の温度に応じて重み付けされたストレス値をストレスカウント値として積算する。そのストレスカウント値が、ＭＡＸ値となった時点で、そのストレスカウント値を１ショットの割り込み信号としてＣＰＵに出力する。高温検出カウンタ回路は秒単位で、ＣＰＵは時間単位として構成することができる。
【００３４】
図３は、ＣＰＵ（１０４）が読み書きすることのできる、揮発メモリ（１０１）に格納されている管理テーブル（３００）である。管理テーブル（３００）のレジスタに格納された時間としては、以下がある。システム時間ｔｔ１（３０１）は、携帯端末装置や情報端末装置内に配置された電波時計を搭載した標準時間を出力するタイマ回路（１０３）からＣＰＵ（１０４）が読み出すことで得られる現在の時刻である。システム時間とは、常温状態で、不揮発メモリの時間経過によるストレス量を算出するものである。
【００３５】
ストレス加速時間ｔｔ２（３０２）は、高温検出カウンタ回路からの割り込み信号の回数をカウントし、装置が高温のために加速された常温相当でのストレス時間である。ストレス加速時間は、装置内温度の高温が原因で、デバイスが受けたストレス量であり、常温で受けるストレス量を基本単位とし、どの程度加速されたストレス量であるかを示すものである。例えば、装置内温度の高温が原因で、１時間の経過時間に対して、常温２時間相当分のストレス量を余計に受けた場合、高温検出カウンタ回路は１時間あたり２回の割り込み信号を出力する。ＣＰＵは、ストレス加速時間を、一時間あたり  ＋２加算する。このように、ＣＰＵは、装置内に配置された高温検出カウンタ回路の割り込み信号を受信すると、この管理テーブル内のストレス加速時間ｔｔ２をインクリメントする。そのインクリメントした値は、現在のストレス加速時間であり、揮発メモリ上の管理テーブルにストレス加速時間ｔｔ２として格納される。
【００３６】
ストレス加速時間ｔｔ３（３０３）は、ＣＰＵ（１０４）が不揮発メモリのストレス量をチェックするときに、不揮発メモリのチェック対象ブロックから読み出した書き込み時点のストレス加速時間である。このストレス加速時間ｔｔ３（３０３）は、不揮発メモリのそれぞれのブロックの管理領域に、そのブロックの書き込み時点のストレス加速時間が管理情報（ｔｔ２＿ｂ）として記録されていたものである。システム時間ｔｔ４（３０４）は、ＣＰＵ（１０４）が不揮発メモリのストレス量をチェックするときに、不揮発メモリのチェック対象ブロックから読み出した書き込み時点のシステム時間である。このシステム時間ｔｔ４は、不揮発メモリのそれぞれのブロックの管理領域に、そのブロックの書き込み時点のシステム時間が管理情報（ｔｔ１＿ｂ）として記録されていたものである。
【００３７】
ストレス時間ｔｔ５（３０５）は、上記ｔｔ１、ｔｔ２、ｔｔ３、ｔｔ４から算出されるチェック対象ブロックのストレス時間の総和である。ストレス管理時間ｔｔ６（３０６）は、不揮発メモリの書き込み時点からのストレス量を管理するためのストレス管理時間である。チェック対象ブロックのストレス時間ｔｔ５が、このストレス管理時間ｔｔ６より大きくなった場合には、不揮発メモリのチェック対象ブロックに、再書き込みを行う。再書き込みされた不揮発メモリのブロックの管理領域は、再書き込みされた時点のシステム時間、ストレス加速時間に書き換えられる。
【００３８】
これらの管理テーブルのそれぞれの時間について、簡単に総括する。不揮発メモリのメモリセルは、高温でない常温状態でも、不揮発メモリの書き込みを行ってからの、時間経過でリテンション特性に起因するデータ化けが発生する。この常温状態での経過時間によるストレスを「常温で受けるストレス量」と考え、システム時間として示す。また、不揮発メモリのリテンション特性は、高温になると、その特性劣化が激しくなる。装置が動作することで装置内部が高温になり、この高温での経過時間は常温における経過時間より数倍の、加速された時間に相当する。この高温における加速された経過時間によるストレスを「高温で受けるストレス量」と考え、ストレス加速時間として示す。
【００３９】
この「常温で受けるストレス量」と「高温で受けるストレス量」を合計したストレス量が、デバイスの受けた全体のストレス量となる。この全体ストレス量が、あらかじめ設定した管理値（ストレス管理時間、例えば、常温で１０年相当のストレス）を超えた場合に、データの再書き込みを実施するようにする。このようにすることで、不揮発メモリのリテンション特性によるデータ化けが発生することが防止できる。
【００４０】
これら「常温で受けるストレス量」と、「高温で受けるストレス量」を得るための方法を、以下説明する。
【００４１】
「常温で受けるストレス量」は、標準時間を出力する電波時計付のタイマ回路からのシステム時間を用い、書き込み時点からの経過時間で算出する。ストレス量をチェックする時点（リテンションチェック）で、電波時計付のタイマ回路から、ＣＰＵは現在のシステム時間ｔｔ１を取得する。チェック対象のブロックの管理領域を読み出し、そのブロックに書き込みを行った時のシステム時間ｔｔ４を取得する。書き込みを行ってから経過した時間、すなわち、「常温で受けるストレス量」は、現在のシステム時間ｔｔ１から、書き込み時のシステム時間ｔｔ４との差分（ｔｔ１―ｔｔ４）で算出する。
【００４２】
「高温で受けるストレス量」は、装置内部に設けた高温検出カウンタ回路を用いて、その温度に応じた重み付けされたストレスカウント値を加算したストレス加速時間を用いる。ストレス量をチェックする時点で、ＣＰＵは揮発メモリから、現在のストレス加速時間ｔｔ２を取得する。さらに、チェック対象のブロックの管理領域を読み出し、そのブロックの書き込みを行った時のストレス加速時間ｔｔ３を取得する。書き込みを行ってからの「高温で受けるストレス量」は、現在のストレス加速時間ｔｔ２から、書き込み時のストレス加速時間ｔｔ３との差分（ｔｔ２−ｔｔ３）として、算出する。
【００４３】
不揮発メモリが受けた全体のストレス時間ｔｔ５は、「常温で受けるストレス量（ｔｔ１―ｔｔ４）」と「高温で受けるストレス量（ｔｔ２−ｔｔ３）」の和で求められる。あらかじめ決めた時間ごとに（例えば、システム時間が１時間経過する毎に）、このストレス時間ｔｔ５を計算し、ストレス管理時間ｔｔ６と比較する。ストレス管理時間ｔｔ６は、不揮発メモリの書き込み時点からのストレス量を管理する時間である。両者を比較し、ストレス時間ｔｔ５が、ストレス管理時間ｔｔ６を超えたブロックに対しては、再書き込みの処理を行なう動作を行う。このようにストレス時間ｔｔ５が、ストレス管理時間ｔｔ６を超えた場合は、データリテンション特性が劣化しデータ化けが発生する虞があることから、データの再書き込みを実施する。
【００４４】
次に、ＣＰＵが脱着可能な不揮発メモリを取り出す信号を受信し、不揮発メモリをメモリカードのように取り出す場合を考える。不揮発メモリを取り出す場合には、取り出す直前におけるシステム時間とストレス加速時間を不揮発メモリの任意ブロックの管理情報に書き込んでから、取り出す。ここでの任意ブロックとは、不揮発メモリのブロックで、未使用のブロックであれば、どのブロックでもよい。次に、脱着可能な不揮発メモリが取り付けられた場合、ＣＰＵは脱着可能な不揮発メモリが取り付けられた信号を受信することで、不揮発メモリ上の管理情報（ストレス加速時間）を読み出す。読み出したストレス加速時間を揮発メモリ上の管理テーブルに格納し、前回不揮発メモリを取り出した時点のストレス加速時間を初期値として、カウントを再開する。
【００４５】
また端末装置の電源をオフする場合にも、同様に電源オフする直前のシステム時間とストレス加速時間を任意ブロックの管理情報に書き込んでから、電源オフする。次に電源オンする場合、書き込んだ電源をオフする直前のストレス加速時間を読み出し、揮発メモリ上の管理テーブルに格納し、電源オフ直前のストレス加速時間からのカウントを再開する。このように不揮発メモリを取り出し、再び取り付けられる場合の動作と、装置の電源をオフ、オンする場合の動作は同じである。そのため以下の説明においては、不揮発メモリを取り出し、あるいは装置の電源をオフする場合を纏めて不揮発メモリ（あるいはシステム、又は装置）を停止させると称することがある。また、不揮発メモリを取り付け、あるいは装置の電源をオンする場合を纏めて不揮発メモリ（あるいはシステム、又は装置）を起動させると称することがある。
【００４６】
上記のように、本発明の不揮発メモリ管理方法は、「常温で受けるストレス量」と「高温で受けるストレス量」を分けて、不揮発メモリが受けるストレス量を算出する。さらに、端末装置から不揮発メモリを取り出し、取り付けるような場合には、不揮発メモリの取り出し直前のストレス加速時間を記録することで、継続的にストレスの履歴を保管することができる。そして、あらかじめ設定された以上の大きなストレス量を受けたブロックがあった場合にＣＰＵが検知することができる。このように、持続的に不揮発メモリのブロックごとの再書き込みの最適な時期をチェックし、ＣＰＵは、メモリセルの再書き込みを行うことで、不揮発メモリのデータの信頼性を高める手段が提供できる。
【００４７】
図４は、装置から脱着可能な不揮発メモリ２（１０７）のデータ構成（４００）である。簡単に一般的な不揮発メモリ（ＮＡＮＤ）のデータ構成を説明すると、不揮発メモリ２（１０７）は、消去の単位である複数のブロック（Ｂｌｏｃｋ）と、それぞれのブロックは書き込みの単位である複数（図４では、６４個）のページ（Ｐａｇｅ）で構成されている。書き込みの単位であるページは、データ領域（４０１）と管理領域（４０２）の二つの領域で構成されている。
【００４８】
データ領域（４０１）は、ユーザデータなどを保存する領域である。管理領域（４０２）は、ユーザデータなどの本来保存するデータとは別に、エラー訂正のためのパリティービットや、データ管理のためのフラグ情報などを保管するための領域として使われている。例えば、消去状態のブロックに対して、初めて書き込みを行う場合には、データ領域（４０１）のデータとともに、ブロックの先頭ページ０の管理領域（４０２）へ、書き込み時点のシステム時間（４０３、４０５）と、書き込み時点のストレス加速時間（４０４、４０６）を記録する。このように、それぞれのシステム時間と、ストレス加速時間はセット（対）として同じブロックの管理領域に記録する。
【００４９】
具体的な例としては、ブロック０に対して初めて書き込みを行う場合、領域（４０３）に書き込み時点のシステム時間（ｔｔ１＿０）と、領域（４０４）に書き込み時点のストレス加速時間（ｔｔ２＿０）を書き込む。同様にブロック１に対して初めて書き込みを行う場合、領域（４０５）、（４０６）に、書き込み時点のシステム時間（ｔｔ１＿１）、書き込み時点のストレス加速時間（ｔｔ２＿１）を書き込む。また、不揮発メモリ２（１０７）を、装置から取り外す場合や電源オフ時、即ちシステムを停止する時には、システム停止直前のストレス加速時間を残す必要がある。そのため、任意のブロックｎの管理領域４０７と４０８に、システム停止直前のシステム時間（ｔｔ１＿ｎ）と、ストレス加速時間（ｔｔ２＿ｎ）とを書き込む。この任意のブロックｎは、データが書き込まれていないブロックであれば、特に限定されることなく、どのブロックでもよい。
【００５０】
システムを停止する時に、不揮発メモリにシステム停止直前のストレス加速時間を記録する理由は、システムを再起動させ、不揮発メモリを再び動作させる時に、ストレス加速時間のカウントを開始するための初期値を得るためである。不揮発メモリを再び動作させる場合には、管理領域（４０２）のすべてのブロック先頭ページを読み出す。読み出したシステム時間（ｔｔ１＿ｂ）のなかで、最も新しいシステム時間（ｔｔ１＿ｎ）のブロックに書き込まれたストレス加速時間（ｔｔ２＿ｎ）を取得する。取得したストレス加速時間（ｔｔ２＿ｎ）を、揮発メモリ（１０１）に配置される管理テーブルのストレス加速時間（ｔｔ２）に書き込むことにより、システム再起動時のストレス加速時間（ｔｔ２）の初期値とする。
【００５１】
不揮発メモリの管理領域に記録されているシステム時間は、それぞれのブロックにデータが書き込まれた時点のシステム時間、あるいはシステムが停止される直前のシステム時間である。従って、これらのシステム時間のなかで、最も新しいシステム時間はシステムを停止する直前のシステム時間である。従って、最も新しいシステム時間を示す領域に、対として記録されているストレス加速時間を選択し、初期値とする。このように停止する直前のストレス加速時間（ｔｔ２＿ｎ）を初期値とすることで、システムの停止時点と再起動時点のストレス加速時間とが連続することになり、継続したストレス加速時間をカウントすることができる。本発明におけるシステム時間及びストレス加速時間は、時間単位であり、端末装置の動作速度から考えて、システムの停止時点の時間と、システムの停止直前の時間とは同一として考えることができる。
【００５２】
なお、上記は、脱着可能な不揮発メモリ２（１０７）の不揮発メモリを例として、管理テーブル（図３）、不揮発メモリのデータ構成（図４）を説明した。しかし、不揮発メモリ１（１０６）に対しても、本発明を適用することができる。不揮発メモリ１（１０６）用の、管理テーブル（図３）を別個に揮発メモリ内に配置し、不揮発メモリ１（１０６）のデータ構成も同様（図４）にすることができる。このように不揮発メモリ１（１０６）に対しても、発明の構成を適用することができる。
【００５３】
次に実施例として、本発明を携帯電話に用いた場合の動作例を説明する。図５に本発明の構成を携帯電話に搭載した場合のフローチャート、図６にリテンションチェックのフローチャートを示す。
【００５４】
フローチャートの最初のステップ５０１は、本発明の不揮発メモリ管理を開始する初期状態とすることである。初期状態とは、端末装置の電源をオンし、端末装置を起動させた状態である。まず、管理テーブルの初期化として、以下の動作を行う（ステップ５０２）。ＣＰＵ（１０４）は、タイマ回路（１０３）から現在のシステム時間を読み出し、揮発メモリ（１０１）の内部にある管理テーブルのシステム時間ｔｔ１（３０１）に書き込む。脱着可能な不揮発メモリ２（１０７）が取り付けられている場合は、ＣＰＵ（１０４）は、不揮発メモリ２（１０７）の管理領域（４０２）の中の全てのブロックの書き込み時のシステム時間（ｔｔ１＿ｂ）を読み出す。
【００５５】
最も新しいシステム時間情報をもつブロックのストレス加速時間（ｔｔ２＿ｂ）を揮発メモリ（１０１）の内部にある管理テーブルのストレス加速時間ｔｔ２（３０２）として書き込む。書き込まれたストレス加速時間ｔｔ２は、前回不揮発メモリが取り出される直前のストレス加速時間であり、今回管理テーブルのストレス加速時間の初期値となる。また、初めて不揮発メモリを使用する場合などには、管理領域（４０２）の中にシステム時間情報が書き込まれていない。この場合は、初期値の“０”を揮発メモリ（１０１）の内部にある管理テーブルのストレス加速時間ｔｔ２（３０２）として書き込む。不揮発メモリ２（１０７）が取り付けられていない場合は、不揮発メモリ２（１０７）が取り付けられるまで、（ステップ５０２）の状態を保持する。
【００５６】
次のステップ５０３では、高温検出カウンタ回路の動作を開始し、装置内部温度の監視を開始する。次のステップ５０４では、ＣＰＵ（１０４）は、高温検出カウンタ回路（１０５）からの割り込み信号があるか、をチェックする。割り込み信号がない場合は、次のステップ５０６へ進む。割り込み信号がある場合は、揮発メモリ（１０１）の内部にある管理テーブルのストレス加速時間ｔｔ２（３０２）を＋１インクリメント（ステップ５０５）した後、次のステップ５０６へ進む。次のステップ５０６では、ＣＰＵ（１０４）はタイマ回路（１０３）の時間情報を読み出し、前もって決めた設定時間（例えば、１時間ごと）が経過したかを確認する。設定時間になっていれば、リテンションチェックの動作（ステップ５０７）を実施し、次（ステップ５０８）に進む。設定時間になっていなければ、次（ステップ５０８）に進む。
【００５７】
次のステップ５０８では、ＣＰＵ（１０４）が不揮発メモリの取り出し信号を検出したか、を確認する。不揮発メモリの取り出しキーのある周辺回路（１０２）の状態を確認し、取り出し信号を検出した場合は、現在のストレス加速時間を残す目的で、任意のブロックｎに対して、取り出し直前のシステム時間とストレス加速時間とを書き込む。データが書き込まれている場合の管理領域には、書き込み時点のシステム時間と、ストレス加速時間が書き込まれる。しかし、現在の取り出し直前のシステム時間（ｔｔ１）と、ストレス加速時間（ｔｔ２）とは、データが書き込まれていない任意のブロックｎの管理領域４に書き込む（ステップ５０９）。そして、不揮発メモリが装置から取り出される（ステップ５１０）。その後、不揮発メモリが再び装置に装着され（ステップ５１４）、初期状態（ステップ５０１）に戻る。取り出し信号を検出しなかった場合は、次（ステップ５１１）に進む。
【００５８】
次のステップ（ステップ５１１）では、ＣＰＵ（１０４）はシステムの電源オフのシーケンスであるかどうか、を確認する。電源オフキーのある周辺回路（１０２）の状態を確認し、システム電源オフ信号を検出した場合は、現在の電源オフ直前のストレス加速時間を残す目的で、任意のブロックｎに対して、データを書き込む。例えば、任意のブロックｎの管理領域４０７と、４０８とには、書き込み時点のシステム時間と、ストレス加速時間の代わりに、電源オフ直前のシステム時間（ｔｔ１）と、ストレス加速時間（ｔｔ２）を書き込む（ステップ５１２）。そして、システムの電源オフが行われる（ステップ５１３）。システム電源オフ信号を検出しなかった場合は、再びステップ５０４に進み、ステップ５０４からのフローを繰り返す。
【００５９】
図５の動作フローチャートでは、端末装置の不揮発メモリに対し、ステップ５０９として不揮発メモリの取り出し直前のストレス加速時間の書き込み、ステップ５１２としてシステム電源オフ直前のストレス加速時間の書き込み処理を行っている。それぞれのステップ５０９、５１２の書き込み処理では、不揮発メモリ２（１０７）の任意のブロックｎに対して、システム時間（ｔｔ１＿ｎ）と、ストレス加速時間（ｔｔ２＿ｎ）を書き込んでいる。このように脱着可能な不揮発メモリのデータ領域に書き込みがないブロックの管理領域に不揮発メモリの取り出し直前、あるいは電源オフ直前のシステム時間と、ストレス加速時間とを記録する。ここに記録されたストレス加速時間を用いて、不揮発メモリとして継続的なストレス加速時間を求めている。
【００６０】
しかし、不揮発メモリ２（１０７）が、脱着可能であるが、ある固定された端末装置でのみ使用される場合には、下記の記録方法を用いることもできる。上記した実施例では、システム停止直前の時間を不揮発メモリ２のデータ領域が未使用であるブロックの管理領域に記録した。ここでは不揮発メモリ２（１０７）に割り当てられた個別のＩＤ（識別子）と一緒に、システム停止直前のシステム時間と、ストレス加速時間を不揮発メモリ１（１０６）の決められた固定エリアに書き込むようにしても良い。この場合、次回、システムを再起動する時の管理テーブルの初期化（５０２）として、個別のＩＤごとに管理された、これら情報を不揮発メモリ１（１０６）から取得する。そうすると、不揮発メモリ２（１０７）を取り出す操作をユーザが行った場合に、ストレス時間を不揮発メモリに残す目的で行われる書き込み手順が省略できるから、不揮発メモリを取り出すときの待ち時間は少なくすることができる。
【００６１】
図６には、ステップ５０７のリテンションチェックの動作フローチャートを示す。前もって決めた設定時間が経過している場合には、リテンションチェックが開始される（ステップ６０１）。ＣＰＵ（１０４）は、チェック対象のブロック番号を表すＣＰＵ内部のレジスタｂを“０”に設定する（ステップ６０２）。
【００６２】
次に、ＣＰＵ（１０４）は、不揮発メモリのブロック番号ｂの書き込み時のシステム時間（ｔｔ１＿ｂ）を読み出し、揮発メモリ（１０１）の内部にある管理テーブルのチェック対象ブロックの書き込みのシステム時間ｔｔ４に書き込む（ステップ６０３）。次に、ＣＰＵ（１０４）は、不揮発メモリのブロック番号ｂの書き込み時のストレス加速時間（ｔｔ２＿ｂ）を読み出し、揮発メモリ（１０１）の内部にある管理テーブルのチェック対象ブロックの書き込み時のストレス加速時間ｔｔ３に書き込む（ステップ６０４）。
【００６３】
次に、ＣＰＵ（１０４）は、現在のシステム時間（ｔｔ１）とストレス加速時間（ｔｔ２）を読み出し、不揮発メモリのそれぞれのブロックのストレス時間（ｔｔ５）を以下のように算出する。「不揮発メモリの受けたストレス量」（ｔｔ５）  ＝  「常温で受けるストレス量」（ｔｔ１−ｔｔ４）  ＋  「高温で受けるストレス量」（ｔｔ２−ｔｔ３）。  これを揮発メモリ（１０１）の内部にある管理テーブルのチェック対象ブロックのストレス時間ｔｔ５として書き込む（ステップ６０５）。
【００６４】
次に、ＣＰＵ（１０４）は、チェック対象ブロックｂのストレス時間ｔｔ５が、ストレス管理時間ｔｔ６を超えたかどうか、を確認する（ステップ６０６）。超えていれば、ブロック番号ｂの再書き込みを実施する（ステップ６０７）。再書き込みを実施したブロックの管理領域は、新しく再書き込み時のシステム時間（ｔｔ１＿ｂ）と、ストレス加速時間（ｔｔ２＿ｂ）とに書き換える。再書き込み後に、ステップ６０８に進む。チェック対象ブロックｂのストレス時間ｔｔ５が、ストレス管理時間ｔｔ６を超えていなければ、そのまま、次のステップ６０８に進む。
【００６５】
次に、ＣＰＵ（１０４）は、チェック対象ブロック番号ｂが、不揮発メモリの最終ブロックｎかどうか、を確認（ステップ６０８）する。最終ブロックでなければ、チェック対象ブロック番号を表すＣＰＵ内部のレジスタｂの値を１つインクリメントし、ステップ６０３のフローに戻り、すべてのブロックに対するリテンションチェックを繰り返す。最終ブロックであれば、リテンションチェックの動作を終了する。上記を行うことで、ＣＰＵ（１０４）は、すべてのブロックの書き込み時点からのストレス時間を調査し、ストレス時間が、管理値を超えていれば、再書き込みを行うため、リテンションチェック終了時には、すべてのブロックのストレス時間は、ストレス管理値以下になる。
【００６６】
このように、ＣＰＵ（１０４）は、装置内温度が高温によるストレスを高温検出カウンタ回路（１０５）の割り込み信号で検出し、ストレス加速時間（３０２）をインクリメントする。ストレス加速時間をカウントしながら、設定時間（たとえば、１時間ごと）にリテンションチェックをするというフローのなかで、不揮発メモリの中の各ブロックは、設定されたストレス管理時間（３０６）を超えないように管理する。このような動作を継続的に行うことで、リテンション特性によるデータ化けを防止することができる。
【００６７】
本発明の携帯端末装置や情報端末装置は、高温になった場合に特性の劣化するデバイスの近傍に複数の温度センサを配置し、装置が動作中の装置内部温度をモニタする。複数の温度センサは、温度しきい値として第１の温度と、その第１の温度よりもそれぞれ異なる高い温度を検出できるように設定する。複数の温度センサのうち、最も低い第１の温度を検出する温度センサが高温を検出している間だけ、カウンタ回路のクロックとなる発振回路を動作させる。装置内部が高温になっている時間の履歴を取るために、発振回路からのクロックに同期し、複数の温度センサごとに重み付けしたストレスカウント値をカウンタ回路でカウントしていく。
【００６８】
このように、端末装置が動作中は装置内部温度をモニタし、複数の温度センサごとに重み付けされたストレス値をカウントする。このストレスカウント値から、装置内部が高温になり、デバイスが受けたストレス量が、常温の何倍に相当する量に加速されたかを知ることができる。そして、カウンタ回路のストレスカウント値が、上限値（ＭＡＸ）になったときにＣＰＵに割り込み信号として、通知する。ＣＰＵは通知された割り込み信号の回数をカウントすることで、デバイスが、装置内温度の高温時に受けた「高温で受けるストレス量」をストレス加速時間として、把握する。
【００６９】
不揮発メモリのリテンション特性は、「常温で受けるストレス量」と「高温で受けるストレス量」との総和である。「常温で受けるストレス量」は、不揮発メモリへ書き込みを行った時刻と、現在の時刻の差分を用いて算出され、書き込みが行われてからの経過時間であり、システム時間として表される。「高温で受けるストレス量」は、装置内温度の高温時に受けたストレス加速時間として表される。これらの「常温で受けるストレス量」と、「高温で受けるストレス量」は、いずれも時間として表わされることから、その和である「現在のストレス量」もストレス時間として表される。この「現在のストレス時間」が、前もって設定されたストレス管理時間を越えていれば、ＣＰＵは、不揮発メモリの再書き込みを実施する。
【００７０】
ここで不揮発メモリのストレス量の管理として、不揮発メモリのそれぞれのブロックの管理領域に、そのブロックに書き込みされた時のシステム時間（ｔｔ１＿ｂ）と、ストレス加速時間（ｔｔ２＿ｂ）とを記録する。さらに、装置から取り外す場合や、電源オフし、システムを停止する場合には、任意の未使用のブロックの管理領域に、システム停止直前のシステム時間と、ストレス加速時間とを記録する。システムを再起動する場合は、システム停止直前のストレス加速時間を読出し、ストレス加速時間の初期値として、さらに割り込み信号の回数を加算することで、新たなストレス加速時間（ｔｔ２）とする。
【００７１】
「常温で受けるストレス量」は、タイマ回路が出力する現在のシステム時間と、そのブロックの書き込み時のシステム時間の差分として算出する。「高温で受けるストレス量」は、システム停止直前のストレス加速時間に新たに追加された割り込み信号の回数を加算した現在のストレス加速時間と、そのブロックへの書き込み時のシステム時間の差分として算出する。この「常温で受けるストレス量」と、「高温で受けるストレス量」の和が、そのブロックの現在のストレス時間となる。このように、ブロック単位に不揮発メモリのリテンション特性時間を管理する。ストレス時間が設定されたストレス管理時間を越えていれば、ＣＰＵは、不揮発メモリの再書き込みを実施する。
【００７２】
このように本発明においては、ストレス時間をモニタすることで、不揮発メモリのデータ保持特性の悪化によるデータ化けに対して、データ化けが発生する前に、再書き込みを行うことで、システムの信頼性を高めることができる。
【００７３】
本発明を用いることで、装置内臓の不揮発メモリ、及び脱着可能な不揮発メモリにおいて、不揮発メモリのリテンション特性の劣化により発生するデータ化けを防止することができる。例えば、一般的な不揮発メモリの書き込みデータは、常温で約１０年間のデータ保持を保証されるものが多い。しかしながら不揮発メモリが使用される装置の温度が上昇し、常温換算のストレス時間が管理時間を越え、不揮発メモリのデータ化けが発生する虞がある。本発明では、データ保持の保証時間内にアプリケーションプログラムや、ユーザデータを再書き込みする構成を装置内部に備える。装置を再書き込み可能とすることで、ユーザが意識することなく、不揮発メモリのリテンション特性起因で発生する不具合を未然に防止することができる。
【００７４】
また本発明を用いることで、装置温度高温による不揮発メモリのリテンション特性に起因して発生するデータ化けを防止できることから、携帯電話の設計において以下の効果が得られる。最近の携帯電話では、ＣＰＵは動作中に熱を発生するため、メモリデバイスのリテンション特性に少なからず影響がある。メモリデバイスのリテンション特性確保のために、熱の発生を抑える目的で、ＣＰＵの動作周波数を下げた場合、携帯電話の操作性が低下し、商品性が損なわれるというデメリットが発生する。しかし本発明の構成を用いることにより、不揮発メモリのリテンション特性に起因する不具合を防止することができることから、装置の熱設計を容易にできる。また、不揮発メモリを取り付ける位置についての制約がなくなるため、ソケットの配置位置の制限がない等の、デザインの自由度が高くなり、商品性の高い装置デザインを行うことができる。
【００７５】
さらに本発明は、不揮発メモリの管理領域に、不揮発メモリが取り出される直前の不揮発メモリ自身のストレス加速時間とシステム時間のデータを記録している。この記録されているデータに新たに装着した装置におけるストレス加速時間とシステム時間をそれぞれ加算することで、不揮発メモリとしての継続したストレス加速時間とシステム時間が得られる。
【００７６】
このように脱着可能な不揮発メモリを、異なる別の端末で、デバイス周囲温度が高温の環境で使用した場合においても、データ化けが発生する前に、再書き込みを行う最適な時期を検知し、再書き込みを行うことができる。本方法を用いることで、脱着可能な不揮発メモリに対して、不揮発メモリのリテンション特性に起因して発生するデータ化けを防止することができるため、システムの信頼性を高めることができる。
【００７７】
以上、本発明を好ましい実施の形態、実施例として詳細に説明したが、本発明はこれら実施の形態、実施例に限定されるものではなく、本発明の要旨を逸脱しない範囲内において適宜の変更が可能なものである。
【符号の説明】
【００７８】
１０１    揮発メモリ
１０２    周辺回路
１０３    タイマ回路
１０４    中央演算処理装置（ＣＰＵ）
１０５    高温検出カウンタ回路
１０６    不揮発メモリ（内蔵）
１０７    不揮発メモリ（脱着可能）
１０８    カウンタ回路
１０９    発振回路
１１０    温度センサ１
１１１    温度センサ２
１１２    温度センサ３
１１３    温度センサ４
【図１】
2011243132.tif 000003
【図２】
2011243132.tif 000004
【図３】
2011243132.tif 000005
【図４】
2011243132.tif 000006
【図５】
2011243132.tif 000007
【図６】
2011243132.tif 000008