(57)【要約】【課題】書き込み時間が極性によって異なる不揮発メモリにおいて、書き込み速度の低下を解消するシステム、方法を提供する。【解決手段】ＣＰＵ（１０１）は、不揮発メモリ（１０４、１０５）のワーク領域等所定の領域を、書き込みが遅い極性の値で予め書き込んでおき、不揮発メモリの所定の領域への書き込み時には、書き込みが早い極性の値を書き込む。【選択図】図１
2009205483.tif 000002
【特許請求の範囲】
【請求項１】
書き込みが遅い極性のデータが予め書き込まれている領域を有し、
前記領域への書き込み時には、書き込みが早い極性のデータの書き込みが行われる、ことを特徴とする不揮発メモリ装置。
【請求項２】
書き込み時間が書き込みデータの極性に依存する不揮発メモリと、
前記不揮発メモリに接続するＣＰＵと、
を備え、
前記ＣＰＵは、前記不揮発メモリの所定の領域を書き込みが遅い極性のデータで予め書き込んでおき、
前記不揮発メモリの前記所定の領域へのデータの書き込み時には、書き込みが早い極性のデータを書き込む、
ことを特徴とするメモリシステム。
【請求項３】
書き込みが早い極性のデータはデータ１と０のうちどちらであるかを管理するデータ極性情報を前記不揮発メモリに備えている、ことを特徴とする請求項２記載のメモリシステム。
【請求項４】
前記ＣＰＵは、データ１と０をそれぞれを前記不揮発メモリに書き込み、それぞれの前記書き込み時間を測定し、
書き込みが早い極性のデータはどちらであるかを示すデータ極性情報を、前記不揮発メモリに記憶する、ことを特徴とする請求項２又は３記載のメモリシステム。
【請求項５】
前記ＣＰＵは、前記不揮発メモリの領域の一部又は全体を、前記データ極性情報をもとに、書き込み時間の遅い極性のデータを書き込んで初期化する、ことを特徴とする請求項３又は４に記載のメモリシステム。
【請求項６】
前記不揮発メモリの領域の使用状況を管理する管理テーブルを前記不揮発メモリ内に有し、
前記ＣＰＵは、前記管理テーブルを参照して、前記不揮発メモリにおいて未使用になった領域を、前記データ極性情報をもとに、書き込み時間の遅い極性のデータを書き込んで初期化する、ことを特徴とする請求項３乃至５のいずれか１項に記載のメモリシステム。
【請求項７】
前記不揮発メモリの領域が解放されて使用から未使用となると、前記ＣＰＵは、前記解放された領域を、前記データ極性情報をもとに、書き込み時間の遅い極性のデータを書き込んで初期化する、ことを特徴とする請求項３乃至６のいずれか１項に記載のメモリシステム。
【請求項８】
前記不揮発メモリは、消去不要で書き込み可能である、請求項２乃至７のいずれか１項記載のメモリシステム。
【請求項９】
請求項２乃至８のいずれか１項記載のメモリシステムを備えた電子装置。
【請求項１０】
請求項２乃至８のいずれか１項記載のメモリシステムを備えた通信端末。
【請求項１１】
不揮発メモリの所定の領域を、書き込みが遅い極性のデータで予め書き込んでおき、
前記不揮発メモリの前記所定の領域へのデータ書き込み時には、書き込みが早い極性のデータを書き込む、
ことを特徴とするメモリ制御方法。
【請求項１２】
書き込みが早い極性のデータはデータ１と０のうちどちらであるかを管理するデータ極性情報を前記不揮発メモリに記憶する、ことを特徴とする請求項１１記載のメモリ制御方法。
【請求項１３】
データ１と０をそれぞれを前記不揮発メモリに書き込み、それぞれの前記書き込み時間を測定し、
書き込みが早い極性のデータはどちらであるかを示すデータ極性情報を、前記不揮発メモリに記憶する、ことを特徴とする請求項１１又は１２記載のメモリ制御方法。
【請求項１４】
前記不揮発メモリの領域の一部又は全体を、前記データ極性情報をもとに、書き込み時間の遅い極性のデータを書き込んで初期化する、ことを特徴とする請求項１１乃至１３のいずれか１項に記載のメモリ制御方法。
【請求項１５】
前記不揮発メモリの領域が解放され使用から未使用となると、前記解放された領域を、前記データ極性情報をもとに、書き込み時間の遅い極性のデータを書き込んで初期化する、ことを特徴とする請求項１１乃至１４のいずれか１項に記載のメモリ制御方法。
【請求項１６】
前記不揮発メモリの領域の使用状況を管理し、
未使用になった不揮発メモリの一部の領域を、前記データ極性情報をもとに、書き込み時間の遅い極性のデータを書き込んで初期化する、ことを特徴とする請求項１１乃至１５のいずれか１項に記載のメモリ制御方法。
【請求項１７】
不揮発メモリに接続しデータの書き込み・読み出しを行うＣＰＵに、不揮発メモリの所定の領域を、書き込みが遅い極性のデータで予め書き込んでおき、
前記不揮発メモリの前記所定の領域へのデータ書き込み時には、書き込みが早い極性のデータを書き込む処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発メモリ及びその制御方法に関し、特に携帯通信端末に用いて好適な及び不揮発メモリシステム及びその制御方法に関する。
【背景技術】
【０００２】
不揮発メモリの書き込み時間は、通常のＤＲＡＭ（揮発メモリ）に比べて一般的に遅い。また、近年、消去不要で書き換えのできる不揮発メモリ（例えば相変化メモリ）が用いられている。相変化メモリは、相変化材料（例えばカルコゲナイト）を記憶セルとして用い、例えば結晶状態と非晶質状態と変化（相変化）する材料を用いて、変化した状態により抵抗値を変化させることで１又は０のデータを記憶する。変非晶質状態から結晶状態とするときは、融点よりも低い結晶化温度となってから一定時間（結晶化するための時間）その温度を保つような電流を流し、結晶状態から非晶質状態とするときは融点以上に熱して急冷するような電流を流すことで相変化を起こすことができる。
【０００３】
この種の不揮発メモリでは、書き込み時間（書き込み速度）が、セルの物理的な特性から、
０データ書き込み（“データ１”→”データ０”）と、
１データ書き込み（“データ０”→”データ１”）で
数倍違う特徴がある。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
以下に本発明による関連技術の分析を与える。
【０００５】
このような不揮発メモリを使用する場合、書き込み時間は、データの遅い極性のデータ書き込みビット数に依存することになり、結果的に、書き込み時間が長くなってしまう。
【０００６】
不揮発メモリに対してデータを書き込む時の、書き込み時間は、携帯電話機の処理速度を遅らせる要因となっている。
【０００７】
本発明の目的は、書き込み時間が極性によって異なる不揮発メモリにおいて、書き込み速度の低下を解消する不揮発メモリシステム、方法、プログラムを提供することにある。
【課題を解決するための手段】
【０００８】
本願で開示される発明は、前記課題を解決するため、概略以下の構成とされる。
【０００９】
本発明の１つの側面によれば、書き込みが遅い極性のデータが予め書き込まれている領域を有し、前記領域への書き込み時には、書き込みが早い極性のデータの書き込みが行われる、不揮発メモリ装置が提供される。
【００１０】
本発明の他の側面によれば、書き込み時間が書き込みデータの極性に依存する不揮発メモリと、前記不揮発メモリに接続するＣＰＵと、を備え、前記ＣＰＵは、前記不揮発メモリの所定の領域を書き込みが遅い極性のデータで予め書き込んでおき、
前記不揮発メモリの所定の領域への書き込み時には、書き込みが早い極性のデータを書き込むメモリシステムが提供される。
【００１１】
本発明において、書き込みが早い極性のデータはデータ１と０のうちどちらであるかを管理するデータ極性情報を前記不揮発メモリに備えている。
【００１２】
本発明において、前記ＣＰＵは、データ１と０をそれぞれを前記不揮発メモリに書き込み、それぞれの前記書き込み時間を測定し、
書き込みが早い極性のデータはどちらであるかを示すデータ極性情報を、前記不揮発メモリに記憶する。
【００１３】
本発明において、前記ＣＰＵは、前記不揮発メモリの領域の一部又は全体を、前記データ極性情報をもとに、書き込み時間の遅い極性のデータを書き込んで初期化するようにしてもよい。
【００１４】
本発明において、前記不揮発メモリの領域の使用状況を管理する管理テーブルを前記不揮発メモリ内に有し、前記ＣＰＵは、前記管理テーブルを参照して、前記不揮発メモリにおいて未使用になった領域を、前記データ極性情報をもとに、書き込み時間の遅い極性のデータを書き込んで初期化するようにしてもよい。
【００１５】
本発明において、前記不揮発メモリの領域が解放されて使用から未使用となると、前記ＣＰＵは、前記解放された領域を、前記データ極性情報をもとに、書き込み時間の遅い極性のデータを書き込んで初期化するようにしてもよい。
【００１６】
本発明によれば、不揮発メモリの所定の領域を、書き込みが遅い極性のデータで予め書き込んでおき、
前記不揮発メモリの所定の領域への書き込み時には、書き込みが早い極性のデータを書き込む、メモリ制御方法が提供される。
【００１７】
本発明に係る方法において、書き込みが早い極性のデータはデータ１と０のうちどちらであるかを管理するデータ極性情報を前記不揮発メモリに記憶する。
【００１８】
本発明に係る方法において、データ１と０をそれぞれを前記不揮発メモリに書き込み、それぞれの前記書き込み時間を測定し、書き込みが早い極性のデータはどちらであるかを示すデータ極性情報を、前記不揮発メモリに記憶する。
【００１９】
本発明に係る方法において、前記不揮発メモリの領域の一部又は全体を、前記データ極性情報をもとに、書き込み時間の遅い極性のデータを書き込んで初期化する。
【００２０】
本発明に係る方法において、前記不揮発メモリの領域が解放され使用から未使用となると、前記解放された領域を、前記データ極性情報をもとに、書き込み時間の遅い極性のデータを書き込んで初期化する。
【００２１】
本発明に係る方法において、前記不揮発メモリの領域の使用状況を管理し、未使用になった不揮発メモリの一部の領域を、前記データ極性情報をもとに、書き込み時間の遅い極性のデータを書き込んで初期化するようにしてもよい。
【００２２】
本発明によれば、不揮発メモリに接続しデータの書き込み・読み出しを行うＣＰＵに、不揮発メモリの所定の領域を、書き込みが遅い極性のデータで予め書き込んでおき、前記不揮発メモリの所定の領域への書き込み時には、書き込みが早い極性のデータを書き込む処理を実行させるプログラムが提供される。
【発明の効果】
【００２３】
本発明によれば、書き込みの遅い極性のデータであらかじめ初期化しておき、実使用時の不揮発メモリへの書き込みは、書き込みの速いビット極性だけを書き込めばよく、結果的に、書き込み転送速度が向上する。
【発明を実施するための最良の形態】
【００２４】
上記した本発明をさらに詳細に説述すべく、添付図面を参照して以下に説明する。本発明においては、不揮発メモリ（図１の１０４、１０５）の所定の領域には、書き込みの遅い極性のデータであらかじめ初期化しておく。不揮発メモリ（図１の１０４、１０５）において、書き込みを行う領域（ワーク領域等）に、予め、書き込み時間の遅い極性のデータを書き込んでおき、不揮発メモリの該領域への書き込み時には、書き込み時間の速いビット極性だけを書き込めばよいようにしている。また、予め書き込まれている、書き込み時間の遅い極性のデータと同一のデータは、書き込み不用とされ、ＣＰＵから不揮発メモリへの書き込みデータの転送、不揮発メモリへの書き込みを不用としている。その結果、書き込み時間を短縮し、書き込み転送速度を向上する。
【００２５】
本発明においては、消去動作が不要な不揮発メモリに対して、まず、ビット極性”１データ書き込み”、又は”０データ書き込み”のどちらの書き込み時間が速いかをチェックしておく。なお、消去不要で書き換えのできる不揮発メモリには種類は様々あり、メモリの書き込み速度に極性のあるメモリ（“１”→”０”と“０”→”１”で書き込み速度が異なる）が、今後増加していくと考えられる。
【００２６】
携帯通信端末等の装置起動時に、自動的にそれぞれの不揮発メモリに対し、最適な極性のデータで初期化することで、メモリの種類を意識することなく、装置の設計を行うことができる。
【００２７】
より詳しくは、本発明の一態様においては、携帯通信端末等で使用する消去動作が不要な不揮発メモリに対して、ビット極性”１”又は”０”のどちらの書き込みが速いかをチェックし、書き込みが速いビット極性”１”又は”０”がどちらであるデータ極性テーブル（図３の３０１）として不揮発領域に記憶しておく。本発明の一態様においては、データ極性テーブル（図３の３０１）は、例えば、不揮発メモリに対して、１データ（“０”→”１”）の書き込みが速いか、０データ（“１”→”０”）の書き込みが速いかを示す情報（Ｆａｓｔビットフラグ）を有する。
【００２８】
次に、この情報を基に、不揮発メモリのワーク領域として用いるエリアを書き込み速度が遅い極性のデータで初期化する。
【００２９】
また、不揮発メモリを搭載した装置（携帯通信端末等）が動作中は、不要になった不揮発メモリ領域をある決められた頻度で書き込み速度の遅い極性のデータで初期化する。
【００３０】
不揮発メモリへの書き込みが発生した場合に、書き込みの速い極性のビットデータだけを書き込めばよく、その結果、書き込み転送速度が向上する。
【００３１】
不揮発メモリを搭載した装置が携帯通信端末の場合等において、ＣＰＵで実行されるプログラムコード及びデータを格納するために、ＤＲＡＭ（揮発メモリ）および消去動作が不要な不揮発メモリが接続されている。
【００３２】
携帯通信端末の電源投入時、不揮発メモリに格納されているプログラムコードは、通常、高速なＤＲＡＭに展開され、ＤＲＡＭ上でコード実行が行われる。ＣＰＵで実行されるプログラムコードは、該プログラムを実行するために、ワーク領域が必要であり、通常、書き換えが高速なＤＲＡＭ上に確保される。
【００３３】
プログラムを実行するためのワーク領域を、不揮発メモリに確保する。実行速度にあまり制約のないものは、ワーク領域を不揮発メモリ上に確保する。例えば、通信によりダウンロード中のメールデータや画像データ、音声データなどは、一時的に、不揮発メモリ上に確保されたワーク領域を使用する。
【００３４】
不揮発メモリのワーク領域は、管理番号と、確保したメモリ範囲のスタートアドレス（Ｓｔａｒｔ  Ａｄｄ）とエンドアドレス（Ｅｎｄ  Ａｄｄ）、および、その領域番号のワーク領域の使用状態の情報（Ｕｓｅフラグ）がワーク領域用管理テーブル（図２の２０１）で管理される。
【００３５】
不揮発メモリのワーク領域は、プログラムコードで不要になった時は、ワーク領域用管理テーブルの使用状態情報を”使用中”から”未使用”に書き換えることで、メモリ領域は解放される。ワーク領域用管理テーブル（図２の２０１）は、不揮発メモリ領域に配置されている。
【００３６】
ある領域番号のワーク領域が解放され、未使用になった場合、プログラムコードからは利用されなくなる。そのため、そのワーク領域に格納されている値は、どんな値であっても携帯通信端末の動作に影響はない。
【００３７】
そこで、ある一定時間ごとにワーク領域用管理テーブル（図２の２０１）の使用状態の情報を調べ、未使用領域に対しては、固定値のデータで初期化を行う。固定値のデータで初期化する理由は、以下のとおりである。
【００３８】
不揮発メモリをワーク領域として使う場合、不揮発メモリの書き込み時間は、通常のＤＲＡＭ（揮発メモリ）に比べて遅いため、この書き込み時間は、携帯通信端末の処理速度を遅らせる要因となり、できるだけ高速に書き込む手段をとる必要がある。
【００３９】
前述したように、不揮発メモリの種類によっては（例えば、相変化メモリ）、メモリの書き込み速度が、セルの物理的な特性で、０データ書き込み（“データ１”→”データ０”）と１データ書き込み（“データ０”→”データ１”）間で、数倍の違いがある。書き込み時間が、データの遅い極性のデータ書き込みビット数に大きく依存してしまう。
【００４０】
そこで、ワーク領域として、プログラムコードが使用する前に、
０データ書き込み（“データ１”→”データ０”）と、
１データ書き込み（“データ０”→”データ１”）
のどちらの極性が、書き込みが遅いかを調べておく。
【００４１】
不揮発メモリの領域を書き込み速度の遅い極性のデータで書き込んでおくことで、次回のワーク領域への書き込み時間が短縮される。
【００４２】
メモリ領域で、０データ書き込み（“データ１”→”データ０”）の方が、１データ書き込み（“データ０”→”データ１”）よりも遅い場合、”０”を予め書き込んでおく。
【００４３】
携帯通信端末では、通信によりダウンロードしたデータを一時的に格納するような使い方が多い。この場合、不揮発メモリをワーク領域として用いる場合がある。この場合の動作を説明する。
【００４４】
ダウンロード及びダウンロード・データを利用するアプリケーションのプログラムコードが、ダウンロードするサイズ情報をもとに、ワーク領域用管理テーブル（図２の２０１）の管理番号とスタートアドレスとエンドアドレスをセットし使用状態情報を、”未使用”から”使用中”に書き換える。
【００４５】
複数の管理番号に跨る場合も同じでワーク領域用管理テーブル（図２の２０１）は、”未使用”から”使用中”に書き換えた後、ダウンロードしたデータを、ワーク領域用管理テーブル（図２の２０１）で指定されたとおりのアドレスへ書き込む。ダウンロードが完了し、アプリケーションが終了した場合は、ワーク領域用管理テーブル（図２の２０１）の使用状態情報を”使用中”から”未使用”に書き換えることで、そのメモリ領域を解放する。以下実施例に即して説明する。
【実施例】
【００４６】
図１は、本発明の一実施例の構成を示す図である。図１を参照すると、携帯通信端末プラットフォームは、ＣＰＵ（１０１）と、主記憶装置として揮発メモリ１（１０２）、および揮発メモリ２（１０３）を備えている。
【００４７】
また、ＣＰＵ（１０１）には、消去不要な不揮発メモリ１（１０４）と、消去不要な不揮発メモリ２（１０５）とが接続されている。
【００４８】
ＣＰＵ（１０１）は、それぞれのメモリ（１０２、１０３、１０４、１０５）を制御する。
【００４９】
図２は、不揮発メモリ１（１０４）に配置されたワーク領域管理用の管理テーブル（２０１）である。
【００５０】
図３は、不揮発メモリ１（１０４）に配置された、不揮発メモリの初期化データ極性を記憶するためのデータ極性テーブル（３０１）である。図３には、不揮発メモリが２個の場合のデータ極性テーブル（３０１）の内容の一例が示されている。データ極性テーブル（３０１）は、不揮発メモリ番号と、設定フラグ（設定済みは１、未設定は０）、１データ（“０”→”１”）の書き込みが速いか、０データ（“１”→”０”）の書き込みが速いかを示すＦａｓｔビットフラグを有する。なお、本発明において、不揮発メモリの数は２個に限定されるものでないことは勿論である。
【００５１】
図４は、本実施例の処理を説明するための図である。図４には、携帯通信端末に初めて電源が投入され、ＣＰＵ（１０１）で、各記憶装置に対して制御できる状態になった時に行われる動作フローが示されている。特に制限されないが、この作業は、携帯通信端末の製造ラインでのテスト時に行われる。
【００５２】
まず、データ極性テーブル（３０１）の設定手順について説明する。図３に示すように、データ極性テーブル（３０１）には、設定フラグと、Ｆａｓｔビットフラグが、各不揮発メモリ毎の情報として格納されている。
【００５３】
ＣＰＵ（１０１）は、不揮発メモリ１（１０４）に格納してある、図３のデータ極性テーブル（３０１）を参照して、設定フラグを確認する。
【００５４】
不揮発メモリのデータ極性テーブル（３０１）の設定フラグの初期値は、未設定を示す”０”があらかじめ書かれているものとする。
【００５５】
まず、ＣＰＵ（１０１）は、データ極性テーブル（３０１）において、着目する不揮発メモリの設定フラグが”１”であるか否かの確認を行なう（ステップ４０１）。
【００５６】
設定済み”１”であれば（ステップ４０１のＹｅｓ分岐）、ＣＰＵ（１０１）は、Ｆａｓｔビットフラグの設定手順を終了する。
【００５７】
設定フラグが未設定”０”であれば（ステップ４０１のＮｏ分岐）、ＣＰＵ（１０１）は、当該不揮発メモリに対して、ある特定アドレス領域に対し”１”データの書き込みを行う（ステップ４０２）。
【００５８】
次に、”０”Ｄａｔａの書き込み時間ｔ０を測定するために、ステップ４０２で書き込みを行った領域に”０”データの書き込みを行い、ＣＰＵ（１０１）内のタイマー（不図示）で書き込み時間を測定する（ステップ４０３）。なお、不揮発メモリ（１０４、１０５）には、不揮発メモリのメモリコントローラが含まれ、ＣＰＵ（１０１）は、書き込み要求としてアドレス、書き込みデータ、書き込み要求信号をメモリコントローラに送信する構成としてもよい。メモリコントローラは、不揮発メモリ（１０４、１０５）に共通に１つ備えた構成としてもよい。例えば、ＣＰＵ（１０１）は、書き込み要求をメモリコントローラに発行した時点でタイマーをスタートさせ、ターゲットの不揮発メモリに対する当該書き込み要求の完了応答をメモリコントローラから受け取った時点でタイマーをストップさせる。
【００５９】
次に、”１”Ｄａｔａの書き込み時間ｔ１を測定するために、ステップ４０３で書き込みを行った領域に、”１”データの書き込みを行い、ＣＰＵ（１０１）内のタイマー（不図示）で書き込み時間を測定する（ステップ４０４）。
【００６０】
次に、ＣＰＵ（１０１）は、”０”Ｄａｔａの書き込み時間ｔ０と”１”Ｄａｔａの書き込み時間ｔ１のどちらが速いのかを判定する（ステップ４０５）。
【００６１】
もし、”１”Ｄａｔａの書き込み時間ｔ１のほうが小さければ（すなわちｔ０＜ｔ１でなければ）（ステップ４０５のＮｏ分岐）、ＣＰＵ（１０１）は、データ極性テーブル（３０１）のＦａｓｔビットフラグに対し、”１”を書きこむ（ステップ４０６）。
【００６２】
また、逆に、”０”Ｄａｔａの書き込み時間ｔ０のほうが小さければ（ステップ４０５のＹｅｓ分岐）、ＣＰＵ（１０１）は、データ極性テーブル（３０１）のＦａｓｔビットフラグに対し、”０”を書きこむ（ステップ４０７）。
【００６３】
複数の不揮発メモリ（図１では、不揮発メモリ（１０４、１０５））が存在していれば、複数の不揮発メモリに対して、図４の手順を繰り返し行う。
【００６４】
携帯通信端末等に実装される不揮発メモリ（例えば相変化メモリ）に関して、結晶状態、非晶質状態のどちらを０とするか１とするかで異なる場合がある。すなわち、”１”Ｄａｔａの書き込み時間が早い不揮発メモリもあれば、”０”Ｄａｔａの書き込み時間が早い不揮発メモリもある。本実施例によれば、ＣＰＵ（１０１）でそれぞれの不揮発メモリの書き込み速度の極性依存性を測定することで、データ極性テーブル（３０１）には、不揮発メモリの実際の構成を反映させることができる。なお、図４の各ステップは、ＣＰＵ（１０１）で実行されるプログラム制御により実現してもよい。
【００６５】
図５は、本実施例における不揮発メモリの初期化の手順を説明する流れ図である。図５を参照して、不揮発メモリの初期化の手順を説明する。ＣＰＵ（１０１）は不揮発メモリ１（１０４）に格納してあるデータ極性テーブル（３０１）を参照し、Ｆａｓｔビットフラグの値を確認する（ステップ５０１）。
【００６６】
Ｆａｓｔビットフラグ設定フラグは、”０”Ｄａｔａの書き込み時間と”１”Ｄａｔａの書き込み時間のどちらが速いかを示す情報である。
【００６７】
もし、Ｆａｓｔビットフラグが”１”であれば（ステップ５０１のＹｅｓ分岐）、不揮発メモリのワーク領域として使用予定の全領域に”０”Ｄａｔａの書き込みを行う（ステップ５０２）。
【００６８】
逆に、Ｆａｓｔビットフラグが”０”であれば（ステップ５０１のＮｏ分岐）、不揮発メモリのワーク領域として使用予定の全領域に”１”Ｄａｔａの書き込みを行う（ステップ５０３）。これにより、不揮発メモリのワーク領域として使用予定の全領域は、書き込みの遅いデータ極性で埋められることになる。
【００６９】
不揮発メモリのワーク領域として使用予定のアドレス範囲は、不揮発メモリ１（１０４）の配置された管理テーブル（２０１）に初期値として格納されているものとする。
【００７０】
次に、ＣＰＵ（１０１）でプログラムコードを動作させるときの動作について説明する。ＣＰＵ（１０１）でプログラムコードを動作させるためには、ワーク領域が必要となり、通常、書き換えが高速なＤＲＡＭ上に確保される。実行速度にあまり制約のないものは、ワーク領域を不揮発メモリ上に確保する。ワーク領域を不揮発メモリ上に確保するときの動作は、以下のようになる。
【００７１】
プログラムコードが不揮発メモリにワーク領域を確保する場合、図２の管理テーブル（２０１）の管理番号に対し、スタートアドレス（Ｓｔａｒｔ  Ａｄｄｒｅｓｓ）と、エンドアドレス（Ｅｎｄ  Ａｄｄｒｅｓｓ）を書き込む。
【００７２】
また、ワーク領域への書き込み前に管理テーブル（２０１）のＵｓｅフラグに対し、使用中を示す”１”を書き込む。
【００７３】
次にＣＰＵ（１０１）はプログラムコードにしたがって、確保したワーク領域に対して、データを書き込む。
【００７４】
プログラムコードが不揮発メモリのワーク領域が不要になり、解放する場合、図２の管理テーブル（２０１）の管理番号のＵｓｅフラグに対し、未使用を示す”０”を書き込む。なお、図５の各ステップは、ＣＰＵ（１０１）で実行されるプログラム制御により実現してもよい。
【００７５】
図６は、不揮発メモリの解放されたワーク領域に対する初期化手順を説明するための流れ図である。図６を参照して、不揮発メモリの解放されたワーク領域に対する初期化手順を説明する。
【００７６】
ＣＰＵ（１０１）は、ＣＰＵ内部タイマーで決められた時間（例えば１秒）間隔で決められた時間（例えば１０ｍｓ）の割り込み処理を行う。
【００７７】
不揮発メモリ１（１０４）に配置された管理テーブル（２０１）を参照しながら、以下の手順の動作を行う。
【００７８】
ＣＰＵ（１０１）内部のカウンタ（不図示）のカウント値（Ｃｎｔ）に、カウント初期値（Ｃｎｔ＿ｉｎｉｔ）を格納する（ステップ６０１）。Ｃｎｔ＿ｉｎｉｔ値は、初期値として０が格納されている。
【００７９】
次に、ＣＰＵ（１０１）は、カウント値（Ｃｎｔ）と管理テーブル（２０１）の管理番号の最大値（Ｎ）とを比較する（ステップ６０２）。
【００８０】
もし、カウント値（Ｃｎｔ）が管理番号の最大値（Ｎ；管理番号の数）を超えていれば（すなわちＣｎｔ＞Ｎであれば）（ステップ６０２のＮｏ分岐）、カウント初期値（Ｃｎｔ＿ｉｎｉｔ）を０に戻し（ステップ６０６）、手順を終了する。
【００８１】
もし、カウント値（Ｃｎｔ）が管理番号の最大値（Ｎ）以下（すなわちＣｎｔ≦Ｎ）であれば（ステップ６０２のＹｅｓ分岐）、管理テーブル（２０１）の管理番号ＣｎｔのＵｓｅフラグを参照する（ステップ６０３）。
【００８２】
管理番号Ｃｎｔのワーク領域が使用中であれば（すなわち、Ｕｓｅフラグ＝１）（ステップ６０３のＹｅｓ分岐）、ＣＰＵ（１０１）は、カウント値Ｃｎｔを１つインクリメントし、ステップ６０２に戻る（ステップ６０５）。
【００８３】
管理番号Ｃｎｔのワーク領域が未使用であれば（すなわち、Ｕｓｅフラグ＝０）（ステップ６０３のＮｏ分岐）、部分的な不揮発メモリの初期化処理を実行する（ステップ６０４）。次のステップ６０５でＣＰＵ（１０１）は、カウント値Ｃｎｔを１つインクリメントし、ステップ６０２に戻る（ステップ６０５）。なお、図６の各ステップは、ＣＰＵ（１０１）で実行されるプログラム制御により実現してもよい。
【００８４】
図７は、図６のステップ６０４の詳細手順を示す流れ図である。
【００８５】
図７を参照すると、不揮発メモリ１（１０４）に配置された管理テーブル（２０１）を参照しながら、ＣＰＵ（１０１）は以下の手順の動作を行う。
【００８６】
ＣＰＵ（１０１）はカウント値Ｃｎｔに対応する管理テーブル（２０１）の管理番号のスタートアドレス（Ｓｔａｒｔ  Ａｄｄｒｅｓｓ）をアドレスカウンタＡｄｄ（不図示）に格納する（ステップ７０１）。
【００８７】
アドレスカウンタＡｄｄの値が、管理テーブル（２０１）の管理番号ＣｎｔのＥｎｄ  Ａｄｄｒｅｓｓを超えている場合は（ステップＳ７０２のＹｅｓ分岐）、ＣＰＵ（１０１）は手順を終了し、図６のステップ６０５に戻る。
【００８８】
アドレスカウンタＡｄｄの値が、Ｅｎｄ  Ａｄｄｒｅｓｓを超えていない場合は（ステップＳ７０２のＮｏ分岐）、ＣＰＵ（１０１）はデータ極性テーブル（３０１）を参照し、Ｆａｓｔビットフラグの値を確認する（ステップ７０３）。
【００８９】
Ｆａｓｔビットフラグが”１”であれば（ステップ７０３のＹｅｓ分岐）、ＣＰＵ（１０１）はアドレスカウンタＡｄｄの示すアドレスに対し、”０”Ｄａｔａの書き込みを行う（ステップ７０４）。
【００９０】
Ｆａｓｔビットフラグが”０”であれば（ステップ７０３のＮｏ分岐）、アドレスカウンタＡｄｄの示すアドレスに対し、”１”Ｄａｔａの書き込みを行う（ステップ７０５）。
【００９１】
次に、ＣＰＵ（１０１）は、アドレスカウンタＡｄｄを１つインクリメントし（ステップＳ７０６）、ステップ７０２に戻る。なお、図７の各ステップは、ＣＰＵ（１０１）で実行されるプログラム制御により実現してもよい。
【００９２】
不揮発メモリの解放されたワーク領域に対する初期化手順は、ＣＰＵ内部の割り込みで、決められた時間間隔で、決められた時間内だけ、実施される。このため、割り込みから復帰する際に、どこまで初期化処理を行ったかをカウント初期値（Ｃｎｔ＿ｉｎｉｔ）として不揮発メモリに記憶しておく。
【００９３】
図６の手順が再開する際には、このカウント初期値（Ｃｎｔ＿ｉｎｉｔ）から再開する。この結果、管理テーブル（２０１）の管理番号Ｃｎｔで示されるワーク領域は、書き込みの遅い極性のデータで埋められることになり、データは固定値で初期化される。
【００９４】
上記の手順で、ＣＰＵの動作中は、不揮発領域のワーク領域の確保、解放および、解放されたワーク領域の初期化を繰り返し行うことになる。
【００９５】
解放されたワーク領域は、常に、書き込みの速い極性の遅いビット極性で初期されており、プログラムコードがワーク領域を確保し、実際にデータが書き込む際には、書き込みの速いビット極性のみ書き込むことになり、結果的に書き込み転送速度があがる。
【００９６】
また、本実施例では、不揮発メモリに格納するデータが、プログラムコードのワーク領域である例を示したが、不揮発メモリに格納するデータは、携帯通信端末の通信機能を利用して入手したプログラムコード等でも良い。
【００９７】
本実施例の作用効果を説明する。
【００９８】
消去不要で書き換えのできる不揮発メモリ（例えば相変化メモリ）では、メモリの書き込み速度が、セルの物理的な特性から、
０データ書き込み（“データ１”→”データ０”）と
１データ書き込み（“データ０”→”データ１”）で、約３〜５倍程度違い。本発明によれば、不揮発メモリへの書き込みが、データ書き込みの速い極性の書き込みだけになる。
【００９９】
したがって、その効果は、ワーストケースに比べて、単純に書き込み時の転送速度が約３〜５倍早くなる。
【０１００】
書き込み時の転送速度が上がれば、ワーク領域としてＤＲＡＭ（揮発メモリ）の替わりに不揮発メモリをワーク領域として使用できるプログラムコードを増すことができる。この結果、ＤＲＡＭに保存するワーク領域を減らすことができ、携帯通信端末の待ち受けモードの電流に大きな影響を与えているＤＲＡＭデータ保持を行う領域を減らすことができる。
【０１０１】
具体的には、ＤＲＡＭのワーク領域が、待ち受けモード時に揮発メモリ２（ＤＲＡＭ２）を使用せずに揮発メモリ１（ＤＲＡＭ１）のみにすることができれば、揮発メモリ２（ＤＲＡＭ２）の電源を落とすことができる。
【０１０２】
前記実施例においては、１つの不揮発メモリデバイスに対し、１つの書き込み時間のデータ極性テーブルの例を示したが、１つの不揮発メモリに対し、複数のエリアに分割して、書き込み時間のデータ極性テーブルを持たせても良い。例えば、不揮発メモリのバンク毎に書き込み時間のデータ極性テーブルを設定すれば、バンク毎にメモリセルの特性が異なる場合に対しても、発明の効果が得ることができる。
【０１０３】
本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【図面の簡単な説明】
【０１０４】
【図１】本発明の一実施例の構成を示す図である。
【図２】本発明の一実施例に管理テーブルの内容の一例を示す図である。
【図３】本発明の一実施例にデータ極性テーブルの内容の一例を示す図である。
【図４】本発明の一実施例におけるデータ極性テーブルの設定手順を示す流れ図である。
【図５】本発明の一実施例における不揮発メモリの初期化手順を示す流れ図である
【図６】本発明の一実施例における解放されたワーク領域の初期化手順を示す流れ図である。
【図７】本発明の一実施例における部分的な不揮発メモリの初期化手順を示す流れ図である。
【符号の説明】
【０１０５】
１０１  ＣＰＵ
１０２、１０３  揮発メモリ
１０４、１０５  不揮発メモリ
【図１】
2009205483.tif 000003
【図２】
2009205483.tif 000004
【図３】
2009205483.tif 000005
【図４】
2009205483.tif 000006
【図５】
2009205483.tif 000007
【図６】
2009205483.tif 000008
【図７】
2009205483.tif 000009