(57)【要約】【課題】ＲＡＭの使用効率を向上させるデータ処理装置を提供する。【解決手段】データ処理装置は、ＣＰＵ１０１と、電気的に書き換え可能な不揮発性メモリ１０７と、ＲＡＭ１０５と、ＲＡＭ１０５を、不揮発性メモリ１０７のプログラムをキャッシュするキャッシュメモリとして動作させる制御を行うキャッシュ制御部１０２と、不揮発性メモリ１０７を書き換えるための書き換えプログラムと書き換え用のデータとを格納するメモリとしてＲＡＭ１０５を利用し、当該書き換えプログラムを実行することにより不揮発性メモリ１０７を書き換える書き換えシーケンスを実行するフラッシュ書換部１０６と、キャッシュ制御部１０２およびフラッシュ書換部１０６を択一的に動作させる切換部１０４とを備える。【選択図】図１
2012022475.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと、
電気的に書き換え可能な不揮発性メモリと、
ＲＡＭと、
前記ＲＡＭを、前記不揮発性メモリのプログラムをキャッシュするキャッシュメモリとして動作させる制御を行うキャッシュ制御部と、
前記不揮発性メモリを書き換えるための書き換えプログラムと、書き換え用のデータとを格納するメモリとして前記ＲＡＭを利用し、当該書き換えプログラムを実行することにより前記不揮発性メモリを書き換える書き換えシーケンスを実行する書換部と、
前記キャッシュ制御部および前記書換部を択一的に動作させる切換部とを備えたデータ処理装置。
【請求項２】
前記キャッシュ制御部は、さらに、前記ＣＰＵから出力されたアドレスに対応するデータが前記ＲＡＭに記憶されている場合、前記不揮発性メモリを低電力モードにする
請求項１記載のデータ処理装置。
【請求項３】
前記切換部は、
前記不揮発性メモリの書き換えの要否に対応する真偽を示す要否フラグを保持するフラグ保持部を備え、
前記要否フラグが偽であるとき、前記キャッシュ制御部を動作させ前記書換部を停止し、
前記要否フラグが真であるとき、前記キャッシュ制御部を停止させ前記書換部を動作させる
請求項２記載のデータ処理装置。
【請求項４】
前記ＣＰＵは、前記不揮発性メモリの書き換え要求として、真を示す前記要否フラグを前記フラグ保持部に設定し、さらに前記ＲＡＭに書き換え用のデータを格納し、
前記キャッシュ制御部は、前記要否フラグが偽から真に変化したとき、前記不揮発性メモリから前記ＲＡＭに前記書き換えプログラムを転送する
請求項３記載のデータ処理装置。
【請求項５】
前記書換部は、前記ＲＡＭから書き換えプログラムを読み出して実行することによって、前記ＲＡＭに格納された前記書き換え用のデータを用いて前記不揮発性メモリに対して書き換えシーケンスを実行し、
前記書き換えシーケンスの完了時に前記要否フラグを真から偽に反転する
請求項４記載のデータ処理装置。
【請求項６】
前記切換部は、
前記不揮発性メモリの書き換えの要否に対応する真偽を示す要否フラグと、前記不揮発性メモリに対する書き換えが中断しているか否かに対応する真偽を示す中断フラグとを保持するフラグ保持部を備え、
前記要否フラグが偽であるとき、および、前記要否フラグが真かつ前記中断フラグが真であるとき、前記キャッシュ制御部を動作させ前記書換部を停止し、
前記要否フラグが真であるとき、前記キャッシュ制御部を停止させ前記書換部を動作させる
請求項２記載のデータ処理装置。
【請求項７】
前記ＲＡＭは、前記書き換えプログラムを記憶するための第１記憶領域と、前記書き換え用のデータを記憶するための第２記憶領域とを有し、
前記キャッシュ制御部は、
前記要否フラグが偽であるとき、前記第１記憶領域および第２記憶領域をキャッシュメモリとして動作させる制御を行い、
前記要否フラグが真かつ前記中断フラグが真であるとき、前記第２記憶領域を使用することなく、前記第１記憶領域をキャッシュメモリとして動作させる制御を行う
請求項６記載のデータ処理装置。
【請求項８】
前記ＣＰＵは、前記不揮発性メモリの書き換え要求として、真を示す前記要否フラグを前記フラグ保持部に設定し、さらに前記ＲＡＭ中に書き換え用のデータを格納し、
前記キャッシュ制御部は、前記要否フラグが偽から真に変化したとき、前記不揮発性メモリから前記ＲＡＭに前記書き換えプログラムを転送する
請求項７記載のデータ処理装置。
【請求項９】
前記書換部は、所定の時間をカウントしたときにタイムアウト信号を発生するタイマーを備え、
前記書換部は、前記ＲＡＭから書き換えプログラムを読み出して実行することによって、前記ＲＡＭに格納された前記書き換え用のデータを用いて前記不揮発性メモリに対して書き換えシーケンスを実行し、
前記書換部は、書き換え中に前記タイムアウト信号が発生したとき、書き換えシーケンスを中断し、前記中断フラグを真に設定し、
前記書換部は、中断中にタイムアウト信号が発生したとき、前記中断フラグを偽に設定し、
前記キャッシュ制御部は、前記中断フラグが真から偽に変化したとき、前記不揮発性メモリから前記ＲＡＭに前記書き換えプログラムを転送し、
前記書換部は、前記書き換えシーケンスの完了時に前記要否フラグを真から偽に反転する
請求項８記載のデータ処理装置。
【請求項１０】
ＣＰＵと、
電気的に書き換え可能な不揮発性メモリと、
ＲＡＭと、
前記ＲＡＭを、前記不揮発性メモリのプログラムをキャッシュするキャッシュメモリとして動作させる制御を行うキャッシュ制御部と、
前記不揮発性メモリを書き換えるための書き換えプログラムと書き換え用のデータとを格納するメモリとして前記ＲＡＭを利用し、当該書き換えプログラムを実行することにより前記不揮発性メモリを書き換える書き換えシーケンスを実行する書換部と、
前記キャッシュ制御部および前記書換部を択一的に動作させる切換部と
を備える半導体装置。
【請求項１１】
ＣＰＵと、電気的に書き換え可能な不揮発性メモリと、ＲＡＭとを備えるデータ処理装置の制御方法であって、
前記ＲＡＭを、前記不揮発性メモリのプログラムをキャッシュするキャッシュメモリとして動作させるステップと、
前記不揮発性メモリの書き換えの要否を判定するステップと、
書き換え要と判定されたとき、前記ＲＡＭのキャッシュメモリとしての動作を停止するステップと、
前記不揮発性メモリを書き換えるための書き換えプログラムと書き換え用のデータとを前記ＲＡＭに格納するステップと、
当該書き換えプログラムを実行することにより前記不揮発性メモリを書き換えるステップと、
前記不揮発性メモリの書き換え完了後に前記ＲＡＭを前記キャッシュメモリとして動作させるステップと
を有するデータ処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は各種プログラムを不揮発性メモリ（ＥＥＰＲＯＭ）に格納し、不揮発性メモリから必要なプログラムを読み出して実行する方式のデータ処理装置、半導体装置および制御方法に関する。
【背景技術】
【０００２】
従来の１チップマイクロコンピュータは、それ自体を動作制御するためのプログラムが記憶されたＲＯＭを内蔵する形となっている。この際、価格、消費電流などを考慮し、マスクＲＯＭを用いるのが一般的である。しかしながら、マスクＲＯＭ内蔵の１チップマイクロコンピュータでは、プログラムの変更を要する場合に、新たなマスク作成および再拡散が必要であり、新たな設計によるコスト高をまねき、かつマイクロコンピュータの製造まで長い時間がかかってしまうという問題がある。そこで、最近では、データの書き込み及び読み出しが可能なＥＥＰＲＯＭ等の不揮発性メモリをプログラムメモリとして使用する１チップマイクロコンピュータが提案されている。このような不揮発性メモリをプログラムメモリとして使用することの利点は、電気的な操作によってＥＥＰＲＯＭのプログラム変更が容易であり、わざわざマスクを変更する必要もなく、ユーザ自身が変更を必要とする記憶領域のみプログラムの書き換えができる為、ＩＣ製造業者を頼ることなくコストを抑えてプログラムの異なる１チップマイクロコンピュータを迅速に作ることができる。
【０００３】
しかしながら、不揮発性メモリとしてＥＥＰＲＯＭを用いる場合には、前記した利点を有する反面、ＥＥＰＲＯＭからプログラムコードを読み出して１チップマイクロコンピュータを動作させている時の、ＥＥＰＲＯＭ自体の消費電流が数ｍＡ〜数十ｍＡと大きく、１チップマイクロコンピュータを用いて時計動作のみを行わせるような場合でも消費電流が大きく、低消費電力モードを実現できない問題があった。特にバッテリー駆動タイプの機器に用いると、機器の駆動可能時間が短くなってしまい、使用者にとっては不都合であった。
【０００４】
このような問題を解消するため、特許文献１では、不揮発性メモリのデータを不揮発性メモリよりも容量の小さい別のＲＡＭに保持し、ＲＡＭに対してアクセスする際はフラッシュＥＥＰＲＯＭを低消費状態にすることで低消費電力を実現させている。
【０００５】
図１１は、特許文献１に開示されたデータ処理装置の構成を示すブロック図である。同図のデータ処理装置１０は、データ処理装置を制御するためのプログラムが格納されたフラッシュＥＥＰＲＯＭ２と、前記プログラムの一部を格納可能でＥＥＰＲＯＭ２よりも小容量のＲＡＭ３と、ＥＥＰＲＯＭ２またはＲＡＭ３をアドレス指定してそれぞれに格納されているプログラムを読み出して命令を解読し実行するＣＰＵ１と、ＥＥＰＲＯＭ２からＲＡＭ３へ前記一部のプログラムを転送する手段（ＣＰＵ）１と、ＥＥＰＲＯＭ２の動作状態をイネーブル状態にするか、ディセーブル状態にするかを指定するフラグ５とを備えており、フラグ５はＲＡＭ３に格納されたプログラムを実行する際にＥＥＰＲＯＭ２の動作状態をディセーブル状態に指定する。
【０００６】
これにより、ＣＰＵ１がＲＡＭ３のプログラムを実行するとき、ＲＡＭ３よりも消費電力の大きなＥＥＰＲＯＭ２がディセーブルとされ、消費電力の低減が可能となる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０００−１０５７０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところが前記公報の技術では、不揮発性メモリの書き換え時には不揮発性メモリを読み出すことができないことから、不揮発性メモリを書き換えるための書き換えプログラムを記憶するための命令メモリが別途必要になる。一般的にＲＡＭは不揮発性メモリに対して単位容量辺りの面積が大きく、命令メモリを実装することによってＬＳＩとしてのコストが高くなってしまう。
【０００９】
本発明は、ＲＡＭを物理的に増加させずコストを増加させずに、ＲＡＭの使用効率を向上させるデータ処理装置、半導体装置および制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
前記目的を達成するために、本発明の一形態におけるデータ処理装置は、ＣＰＵと、電気的に書き換え可能な不揮発性メモリと、ＲＡＭと、前記ＲＡＭを、前記不揮発性メモリのプログラムをキャッシュするキャッシュメモリとして動作させる制御を行うキャッシュ制御部と、前記不揮発性メモリを書き換えるための書き換えプログラムと、書き換え用のデータとを格納するメモリとして前記ＲＡＭを利用し、当該書き換えプログラムを実行することにより前記不揮発性メモリを書き換える書き換えシーケンスを実行する書換部と、前記キャッシュ制御部および前記書換部を択一的に動作させる切換部とを備える。
【００１１】
この構成によれば、ＲＡＭは、（ｉ）不揮発性メモリの書き換え時以外では不揮発性メモリのキャッシュメモリとして用いられ、（ｉｉ）不揮発性メモリ書き換え時には、書き換えプログラムを記憶する命令メモリおよび書き換え作業データを一時的に格納するワークメモリとして用いられる。つまり、ＲＡＭを（ｉ）にも（ｉｉ）にも利用することができ、書き換えプログラムおよび書き換え用のデータを書換部に供給する専用の命令メモリおよびワークメモリを別途備える必要がないので、ＲＡＭを物理的に増加させずつまりコストを増加させずに、ＲＡＭの使用効率を向上させることができる。
【００１２】
ここで、前記キャッシュ制御部は、さらに、前記ＣＰＵから出力されたアドレスに対応するデータが前記ＲＡＭに記憶されている場合、前記不揮発性メモリを低電力モードにする構成としてもよい。
【００１３】
この構成によれば、さらに、キャッシュメモリにヒットしている間は、不揮発性メモリを低電力モードにするので、消費電力を低減することができる。
【００１４】
ここで、前記切換部は、前記不揮発性メモリの書き換えの要否に対応する真偽を示す要否フラグを保持するフラグ保持部を備え、前記要否フラグが偽であるとき、前記キャッシュ制御部を動作させ前記書換部を停止し、前記要否フラグが真であるとき、前記キャッシュ制御部を停止させ前記書換部を動作させるようにしてもよい。
【００１５】
この構成によれば、フラグ保持部という単純な回路によって切換部を構成するので、回路規模を小型化することができる。
【００１６】
ここで、前記ＣＰＵは、前記不揮発性メモリの書き換え要求として、真を示す前記要否フラグを前記フラグ保持部に設定し、さらに前記ＲＡＭに書き換え用のデータを格納し、前記キャッシュ制御部は、前記要否フラグが偽から真に変化したとき、前記不揮発性メモリから前記ＲＡＭに前記書き換えプログラムを転送するようにしてもよい。
【００１７】
ここで、前記書換部は、前記ＲＡＭから書き換えプログラムを読み出して実行することによって、前記ＲＡＭに格納された前記書き換え用のデータを用いて前記不揮発性メモリに対して書き換えシーケンスを実行し、前記書き換えシーケンスの完了時に前記要否フラグを真から偽に反転するようにしてもよい。
【００１８】
ここで、前記切換部は、前記不揮発性メモリの書き換えの要否に対応する真偽を示す要否フラグと、前記不揮発性メモリに対する書き換えが中断しているか否かに対応する真偽を示す中断フラグとを保持するフラグ保持部を備え、前記要否フラグが偽であるとき、および、前記要否フラグが真かつ前記中断フラグが真であるとき、前記キャッシュ制御部を動作させ前記書換部を停止し、前記要否フラグが真であるとき、前記キャッシュ制御部を停止させ前記書換部を動作させるようにしてもよい。
【００１９】
この構成によれば、不揮発性メモリの書き換えが中断している間に、ＣＰＵが不揮発性メモリをアクセスすることができるので、データ処理装置の処理が軽いとき（例えばアイドル状態）だけでなく、重い処理をしているときでも、不揮発性メモリの書き換えに起因するＣＰＵの処理遅延を少なくすることができる。また、２つのフラグを保持するフラグ保持部という単純な回路によって切換部を構成するので、回路規模を小型化することができる。
【００２０】
ここで、前記ＲＡＭは、前記書き換えプログラムを記憶するための第１記憶領域と、前記書き換え用のデータを記憶するための第２記憶領域とを有し、前記キャッシュ制御部は、前記要否フラグが偽であるとき、前記第１記憶領域および第２記憶領域をキャッシュメモリとして動作させる制御を行い、前記要否フラグが真かつ前記中断フラグが真であるとき、前記第２記憶領域を使用することなく、前記第１記憶領域をキャッシュメモリとして動作させる制御を行うようにしてもよい。
【００２１】
この構成によれば、不揮発性メモリの書き換えが中断している間に、ＲＡＭの一部の領域（第１記憶領域）をキャッシュメモリとして利用するので、ＣＰＵが重い処理をしているときでも、不揮発性メモリの書き換えに起因するＣＰＵの処理遅延をもっと少なくすることができる。
【００２２】
ここで、前記ＣＰＵは、前記不揮発性メモリの書き換え要求として、真を示す前記要否フラグを前記フラグ保持部に設定し、さらに前記ＲＡＭ中に書き換え用のデータを格納し、前記キャッシュ制御部は、前記要否フラグが偽から真に変化したとき、前記不揮発性メモリから前記ＲＡＭに前記書き換えプログラムを転送するようにしてもよい。
【００２３】
ここで、前記書換部は、所定の時間をカウントしたときにタイムアウト信号を発生するタイマーを備え、前記書換部は、前記ＲＡＭから書き換えプログラムを読み出して実行することによって、前記ＲＡＭに格納された前記書き換え用のデータを用いて前記不揮発性メモリに対して書き換えシーケンスを実行し、前記書換部は、書き換え中に前記タイムアウト信号が発生したとき、書き換えシーケンスを中断し、前記中断フラグを真に設定し、前記書換部は、中断中にタイムアウト信号が発生したとき、前記中断フラグを偽に設定し、前記キャッシュ制御部は、前記中断フラグが真から偽に変化したとき、前記不揮発性メモリから前記ＲＡＭに前記書き換えプログラムを転送し、前記書換部は、前記書き換えシーケンスの完了時に前記要否フラグを真から偽に反転するようにしてもよい。
【００２４】
また、本発明の一形態における半導体装置は、ＣＰＵと、電気的に書き換え可能な不揮発性メモリと、ＲＡＭと、前記ＲＡＭを、前記不揮発性メモリのプログラムをキャッシュするキャッシュメモリとして動作させる制御を行うキャッシュ制御部と、前記不揮発性メモリを書き換えるための書き換えプログラムと書き換え用のデータとを格納するメモリとして前記ＲＡＭを利用し、当該書き換えプログラムを実行することにより前記不揮発性メモリを書き換える書き換えシーケンスを実行する書換部と、前記キャッシュ制御部および前記書換部を択一的に動作させる切換部とを備える。
【００２５】
この構成によれば、上記のデータ処理装置と同じ効果を奏する。
【００２６】
また、本発明の一形態におけるデータ処理装置の制御方法は、ＣＰＵと、電気的に書き換え可能な不揮発性メモリと、ＲＡＭとを備えるデータ処理装置の制御方法であって、前記ＲＡＭを、前記不揮発性メモリのプログラムをキャッシュするキャッシュメモリとして動作させるステップと、前記不揮発性メモリの書き換えの要否を判定するステップと、書き換え要と判定されたとき、前記ＲＡＭのキャッシュメモリとしての動作を停止するステップと、前記不揮発性メモリを書き換えるための書き換えプログラムと書き換え用のデータとを前記ＲＡＭに格納するステップと、当該書き換えプログラムを実行することにより前記不揮発性メモリを書き換えるステップと、前記不揮発性メモリの書き換え完了後に前記ＲＡＭを前記キャッシュメモリとして動作させるステップとを有する。
【００２７】
この構成によれば、上記のデータ処理装置と同じ効果を奏する。
【発明の効果】
【００２８】
本発明によれば、ＲＡＭを、（ｉ）不揮発性メモリのキャッシュメモリとしても、（ｉｉ）不揮発性メモリを書き換えるための書き換えプログラムを記憶する命令メモリおよび書き換え作業データを一時的に格納するワークメモリとしても利用することができる。書き換えプログラムおよび書き換え用のデータを書換部に供給する専用の命令メモリおよびワークメモリを別途備える必要がないので、ＲＡＭを物理的に増加させずつまりコストを増加させずに、ＲＡＭの使用効率を向上させることができる。
【００２９】
また、不揮発性メモリの消費電力を低減することができる。
【図面の簡単な説明】
【００３０】
【図１】本発明に係わる実施の形態１におけるデータ処理装置の構成を示すブロック図である。
【図２】本発明に係わる不揮発性メモリのデータ領域を示す図である。
【図３】本発明に係わる不揮発性メモリ書き換え動作を示す説明図である。
【図４Ａ】本発明に関わる不揮発性メモリの書き換え中におけるＲＡＭのデータ領域を示す図である。
【図４Ｂ】本発明に関わるキャッシュメモリとしてのＲＡＭのデータ領域を示す図である。
【図４Ｃ】本発明に関わるキャッシュメモリとしてのＲＡＭのデータ領域を示す図である。
【図５】本発明の実施の形態１に係わる不揮発性メモリとＲＡＭの使用状況を示す図である。
【図６】本発明の実施の形態１に係わるキャッシュ制御部の処理フローを示す図である。
【図７】本発明に係わるフラッシュ書換部の処理フローを示す図である。
【図８】本発明に係わる実施の形態２におけるデータ処理装置の構成を示すブロック図である。
【図９】本発明の実施の形態１に係わる不揮発性メモリとＲＡＭの使用状況を示す図である。
【図１０】本発明の実施の形態２に係わるキャッシュ制御部の処理フローを示す図である。
【図１１】従来技術におけるデータ処理装置の構成を示すブロック図である。
【発明を実施するための形態】
【００３１】
（実施の形態１）
以下、本発明に係わる実施の形態１について、図面を参照しながら説明する。
【００３２】
＜構成＞
続いて、本実施の形態１におけるデータ処理装置の構成について説明する。
【００３３】
図１は、本実施の形態１におけるデータ処理装置の構成を示す図である。図１に示されるように、データ処理装置は、ＣＰＵ１０１、キャッシュ制御部１０２、低電力フラグ保持部１０３、切換部１０４、ＲＡＭ１０５、フラッシュ書換部１０６、不揮発性メモリ１０７を備える。
【００３４】
ＣＰＵ１０１は不揮発性メモリ１０７に対するアクセスをするためにアドレスをキャッシュ制御部１０２に発行する。
【００３５】
キャッシュ制御部１０２は、ＲＡＭ１０５を、不揮発性メモリ１０７のプログラムをキャッシュするキャッシュメモリとして動作させる制御を行う。つまり、キャッシュ制御部１０２は指定されたアドレスの不揮発性メモリ１０７のデータがＲＡＭ１０５上に存在すればＲＡＭ１０５からデータを取得し、取得したデータをリードデータとしてＣＰＵ１０１に出力する。また、キャッシュ制御部１０２は、ＣＰＵ１０１から出力されたアドレスに対応するデータがＲＡＭ１０５に記憶されている場合、不揮発性メモリ１０７を低電力モードにする。具体的には、キャッシュ制御部１０２は、ＣＰＵ１０１から出力されたアドレスに対応するデータがＲＡＭ１０５に記憶されている場合、低電力フラグ保持部１０３に保持された低電力フラグをセットすることにより不揮発性メモリ１０７を低消費電力状態にする。
【００３６】
低電力フラグ保持部１０３は、キャッシュ制御部１０２によって設定される低電力フラグを保持し、低電力フラグが１である場合に、不揮発性メモリ１０７を低電力モードにする。
【００３７】
切換部１０４は、キャッシュ制御部１０２およびフラッシュ書換部１０６を択一的に動作させる。このとき、切換部１０４は、不揮発性メモリ１０７が中断状態であるかどうかの情報を元にＲＡＭ１０５の使用領域を変更し、変更したＲＡＭの使用領域をキャッシュ制御部１０２に入力する。
【００３８】
ＲＡＭ１０５は、揮発性メモリであり、例えばＳＲＡＭであり、ＤＲＡＭでもよい。ＲＡＭ１０５は、（ｉ）不揮発性メモリの書き換え時以外では不揮発性メモリのキャッシュメモリとして用いられ、（ｉｉ）不揮発性メモリ書き換え時には、書き換えプログラムを記憶する命令メモリおよび書き換え作業データを一時的に格納するワークメモリとして用いられる。
【００３９】
フラッシュ書換部１０６は、不揮発性メモリ１０７を書き換えるための書き換えプログラムと書き換え用のデータとを格納するメモリとしてＲＡＭ１０５を利用し、書き換えプログラムを実行することにより不揮発性メモリ１０７を書き換える書き換えシーケンスを実行する。つまり、フラッシュ書換部１０６はＲＡＭ１０５から書き換えプログラム中の命令を取得しながら不揮発性メモリ１０７を制御して書き換えを実施するシーケンサである。また、フラッシュ書換部１０６は、所定の時間をカウントしたときにタイムアウト信号を発生するタイマー１０６ａを備える。ここで、所定の時間は、書き換えシーケンスにおける、（ａ）中断から再開までの時間、および、（ｂ）起動または再開から中断または完了までの時間を決定するために定められ、一定の時間であってもよいし、（ａ）、（ｂ）の各時間個別に定められてもよい。
【００４０】
不揮発性メモリ１０７は、フラッシュＥＥＰＲＯＭ（いわゆるフラッシュメモリ）等の電気的に書き換え可能な不揮発性のメモリである。
【００４１】
また、上記の切換部１０４は、不揮発性メモリ１０７の書き換えの要否に対応する真偽を示す要否フラグＲと、不揮発性メモリ１０７に対する書き換えが中断しているか否かに対応する真偽を示す中断フラグＳとを保持するフラグ保持部１０８を備える。要否フラグＲが真かつ中断フラグＳが真であるとき、書き換えが中断していることを意味する。
【００４２】
切換部１０４は、要否フラグＲが偽であるとき、および、要否フラグＲが真かつ中断フラグＳが真であるとき、キャッシュ制御部１０２を動作させ前記書換部を停止する。このとき、切換部１０４は、要否フラグＲが真であっても、中断フラグが真である場合、キャッシュ制御部を動作させなくてもよい。この場合でも、ＣＰＵ１０１は直接不揮発性メモリをリードすることができる。
【００４３】
図２は、不揮発性メモリ１０７のデータ領域の一例を示す図である。同図において、書換制御用領域３０１には書き換えプログラムつまり、フラッシュ書換部によって実行される命令例が格納されている。一般的にフラッシュＥＥＰＲＯＭの書き換えのアルゴリズムはＬＳＩを製造して評価しながら決めることがあり、予めマスクＲＯＭ等で製造することは困難である。また、フラッシュＥＥＰＲＯＭはコスト削減のため書き換え中は格納データを読めなくなっており本書き換えプログラムの命令は、ＲＡＭ１０５に転送された後にＲＡＭ１０５からフラッシュ書換部１０６によって読み出される。
【００４４】
ユーザーデータ格納領域３０２には本データ処理装置のユーザーのデータが格納される。書換対象領域３０３は、ユーザーデータ格納領域３０２中の任意の領域であり、ユーザーがデータを更新したい領域である。書換対象領域３０３は、ＣＰＵ１０１によって指定された書き換え後のデータに書き換えられる。
【００４５】
図３は、不揮発性メモリ（フラッシュＥＥＰＲＯＭ）１０７の書き換え動作の一例を示す説明図である。期間Ａ２０１は、書き換えプログラムの実行前の期間であり、フラッシュＥＥＰＲＯＭのデータを読み出すことが可能である。期間Ｂ２０２は、書き換えプログラムを起動してから中断するまでの期間であり、データを読み出すことが不可能である。期間Ｃ２０３は、中断から再開までの期間であり、書き換え対象のデータ以外はデータを読み出すことが可能である。期間Ｄ２０４は、再開から書き換えが完了するまでの期間であり、データを読み出すことが不可能である。書き換えが完了した後の期間Ｅ２０５はデータを読み出すことが可能である。
【００４６】
なお、図３では、中断と再開とを含む書き換えシーケンスを説明したが、起動から完了まで中断することなく書き換える書き換えシーケンスも可能である。中断することなく書き換える書き換えシーケンスでは、数ｍＳから数Ｓの間、不揮発性メモリを読み出し不能になるため、ＣＰＵの処理を著しく遅延させることがある。図３の書き換えシーケンスでは、この遅延を回避することができる。ＣＰＵ１０１は、書き換えシーケンスにおいて中断するかしないか、中断から再開までの時間、起動または再開から中断または完了までの時間を指定可能である。書き換えプログラムは、これらの指定に従って書き換えシーケンスをフラッシュ書換部１０６に実行させる。また、指定された時間はタイマー１０６ａによってカウントされる。
【００４７】
図４Ａは、本発明に関わる不揮発性メモリの書き換え中におけるＲＡＭのデータ領域を示す図である。
【００４８】
同図の復帰可能データ領域４０１は、書き換えプログラムを記憶する第１記憶領域であり、不揮発性メモリの書き換え中に使用するデータの内、復帰可能なデータ領域である。復帰可能データ領域４０１には、不揮発性メモリ１０７の書換制御用領域３０１に格納された書き換えプログラムが転送される。
【００４９】
復帰不可データ領域４０２は不揮発性メモリ１０７の書き換え用のデータおよび書き換え中に発生する書き換え作業データを記憶する第２記憶領域であり、復帰不可データを格納する領域である。書き換え中、所定ビット数単位でデータ書き込みが実施されるが、不揮発性メモリ１０７は書き換え中は全領域（書換制御用領域３０１、ユーザーデータ格納領域３０２）のデータの読み出しが不能になり、一般的な書き換えに必要な時間は数ミリ秒と長く、１チップマイクロコンピュータとして許容できる時間でないので、図３のような書き換えを数回に分割し途中で中断することで、中断中に不揮発性メモリ１０７のデータを読出せるようにしている。
【００５０】
図４Ｂは、本発明に関わるキャッシュメモリとしてのＲＡＭのデータ領域を示す図である。同図は、不揮発性メモリ１０７の書き換えが中断してから再開するまでの期間以外（書き換えが起動される前および書き換えが完了した後）のＲＡＭ１０５の状態を示しており、ＲＡＭ１０５の全領域がキャッシュメモリとして利用されている。
【００５１】
図４Ｃは、本発明に関わるキャッシュメモリとしてのＲＡＭのデータ領域を示す図である。同図は、不揮発性メモリ１０７の書き換えが中断してから再開するまでの期間におけるＲＡＭ１０５の状態を示しており、ＲＡＭ１０５の復帰可能データ領域（第１記憶領域）４０１がキャッシュメモリ領域４０４として利用され、復帰不可データ領域（第２記憶領域）４０２はキャッシュメモリ利用されない。  図５は不揮発性メモリ１０７およびＲＡＭ１０５の使用状態を示す図である。使用状態が異なる期間Ａ〜Ｅを示している。さらに、同図では、期間Ａ〜Ｅに対応する要否フラグＲの真偽と中断フラグＳの真偽を示している。
【００５２】
期間Ａ（６０１）では、不揮発性メモリ１０７がリード可能な状態であり、ＲＡＭ１０５は図４Ｂの状態である。図４Ｂに示すようにＲＡＭ１０５は、全面利用可能であり、キャッシュ制御部１０２によって不揮発性メモリ１０７のデータがＲＡＭ１０５の前記憶領域にリフィルされる。
【００５３】
期間Ｂ（６０２）では、不揮発性メモリ１０７が書き換え中であることから、不揮発性メモリ１０７のリード不可能な状態である。ＲＡＭ１０５は、図４Ａの状態であり、復帰不可データ領域と復帰可能データ領域共にキャッシュメモリとして利用不可の状態である。
【００５４】
期間Ｃ（６０３）では、不揮発性メモリ１０７が中断でリード可能である状態である。ＲＡＭ１０５は、図４Ｃの状態であり、復帰可能データ領域はキャッシュメモリとして利用可能であるが、復帰不可データ領域はキャッシュメモリとして利用不可である。
【００５５】
期間Ｄ（６０４）は、書き換えを再開後の書き換え中の状態であり、期間Ｂと同様に、不揮発性メモリ１０７はリード不可であり、ＲＡＭ１０５は復帰可能データ領域と復帰不可データ領域共にキャッシュメモリとして利用不可である。
【００５６】
期間Ｅ（６０５）では、不揮発性メモリ１０７の書き換え完了後の状態であり、期間Ａと同様に不揮発性メモリ１０７はリード可能で、ＲＡＭ１０５は全面キャッシュメモリとして利用可能である。
【００５７】
本実施の形態では、キャッシュ制御部１０２は、期間Ｂと期間Ｄの最初にＲＡＭ１０５に対して復帰可能データ領域に書き換えプログラム（書換制御用命令）を不揮発性メモリ１０７から転送する。なお、この転送は、キャッシュ制御部１０２ではなく、ＣＰＵ１０１またはフラッシュ書換部１０６が行ってもよい。
【００５８】
図６は、図１の構成例の切換部１０４およびキャッシュ制御部１０２の動作フローチャートを示す。まず、切換部１０４は、書き換え中かどうかを判断する（ステップ１１０１）。このとき、切換部１０４は、要否フラグＲが真であり、かつ中断フラグが偽であれば、書き換え中と判断する。書き換え中であれば、切換部１０４は、キャッシュ制御不可と判断し（ステップ１１０５）、キャッシュ制御部１０２を停止し、フラッシュ書換部１０６を動作させる。書き換え中でなければ、切換部１０４は、中断状態かどうか（中断フラグＳが真か偽か）の判断し（ステップ１１０２）、中断中であればＲＡＭ１０５の復帰可能領域のみを使用してキャッシュ制御可能であると判断し（ステップ１１０４）、中断中でなければＲＡＭ１０５の全面を使用してのキャッシュ制御可能であると判断し（ステップ１１０３）、判断結果をキャッシュ制御部１０２に指示する。キャッシュ制御部１０２は判断結果に従って動作する。さらに、キャッシュ制御を実施した場合はＲＡＭ１０５の復帰可能データ領域の書き換えプログラムが上書きされてしまうので、書き換えが再開されたかまたは起動されたかを判断する（ステップ１１０６）。このとき、切換部１０４は、要求フラグRが１でかつ中断フラグSが０から１に変化したとき、書き換えが再開されると判断し、要求フラグRが０から１に変化したとき、書き換えシーケンスが起動されると判断する。再開または起動されたと判断された場合には、キャッシュ制御部１０２は、不揮発性メモリからＲＡＭ１０５の復帰可能データ領域にデータを転送する（ステップ１１０７）。
【００５９】
このように、キャッシュ制御部１０２は、要否フラグＲが偽であるとき、第１記憶領域（４０１）および第２記憶領域（４０２）をキャッシュメモリとして動作させる制御を行う。また、要否フラグＲが真かつ中断フラグＳが真であるとき、第２記憶領域４０２を使用することなく、前記第１記憶領域４０１をキャッシュメモリとして動作させる制御を行う。  なお、本発明は、データ処理装置として実現される以外に、データ処理装置を制御する制御方法、データ処理装置の機能が組み込まれた半導体装置として実現されてもよい。半導体装置には、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）、その機能をＦＰＧＡ、ＣＰＬＤなどのプログラマブル・ロジック・デバイスに形成するＩＰコア等が含まれる。さらに、そのＩＰコアを記録した記録媒体などとして実現されるとしてもよい。
【００６０】
図７は、フラッシュ書換部１０６における書き換え処理フローを示す図である。
【００６１】
フラッシュ書換部１０６は、書き換えシーケンスが起動されたとき（要否フラグが０から１に変化したとき）、書き換え用データ作成ステップ（ステップ５０１）として、書換対象領域３０３に対して更新したい書き換え用のデータを復帰可能データ領域４０１内に用意する。この書き換え用のデータはＣＰＵ１０１から指示される。その後、書き換えステップ（ステップ５０２）で、書換対象領域３０３に対して所定ビット数の書き換えを実施し、書き換えが正常に完了したかどうかを書き換えチェックステップ（ステップ５０３）で確認する。ここで全ビットが書き換え完了していた場合は、要否フラグを１から０にリセットして（ステップ５０９）そのまま完了する。但し、フラッシュＥＥＰＲＯＭはビット単位で書き換え完了するかどうかが異なる。よって、全ビット書き換え完了判定（ステップ５０４）により完了していない場合は書き換え用データ更新ステップ（ステップ５０５）において、完了しているビットは書換対象から外すよう書き換え用のデータを更新する。ここで、中断をする（タイマー１０６ａがタイムアウト信号を発生した）場合（ステップ５０６）はフラッシュＥＥＰＲＯＭを読める状態にして中断フラグＳをセットする（ステップ５０７）。中断しない場合は書き換えステップ（ステップ５０２）に遷移して書き換えを継続する。中断した後、再開する（中断フラグＳが１でかつタイマー１０６ａがタイムアウト信号を発生した）場合は、中断フラグＳをリセットし（ステップ５０８）、書き換えステップ（ステップ５０２）を実行する。
【００６２】
以上説明してきたように、本実施の形態におけるデータ処理装置は、ＣＰＵ１０１と、電気的に書き換え可能な不揮発性メモリ１０７と、ＲＡＭ１０５と、ＲＡＭ１０５を、不揮発性メモリ１０７のプログラムをキャッシュするキャッシュメモリとして動作させる制御を行うキャッシュ制御部１０２と、不揮発性メモリ１０７を書き換えるための書き換えプログラムと書き換え用のデータとを格納するメモリとしてＲＡＭ１０５を利用し、当該書き換えプログラムを実行することにより不揮発性メモリを書き換える書き換えシーケンスを実行するフラッシュ書換部１０６と、キャッシュ制御部１０２およびフラッシュ書換部１０６を択一的に動作させる切換部１０４とを備える。
【００６３】
キャッシュ制御部１０２は、さらに、ＣＰＵ１０１から出力されたアドレスに対応するデータがＲＡＭ１０５に記憶されている場合、不揮発性メモリ１０７を低電力モードにしてもよい。
【００６４】
切換部１０４は、不揮発性メモリ１０７の書き換えの要否に対応する真偽を示す要否フラグＲを保持するフラグ保持部１０８を備え、要否フラグＲが偽であるとき、キャッシュ制御部１０２を動作させフラッシュ書換部１０６を停止し、要否フラグＲが真であるとき、キャッシュ制御部１０２を停止させフラッシュ書換部１０６を動作させてもよい。
【００６５】
ＣＰＵ１０１は、不揮発性メモリ１０７の書き換え要求として、真を示す要否フラグＲをフラグ保持部に設定し、さらにＲＡＭ１０５に書き換え用のデータを格納し、キャッシュ制御部１０２は、要否フラグＲが偽から真に変化したとき、不揮発性メモリ１０７からＲＡＭ１０５に書き換えプログラムを転送してよい。
【００６６】
フラッシュ書換部は、ＲＡＭ１０５から書き換えプログラムを読み出して実行することによって、ＲＡＭ１０５に格納された書き換え用のデータを用いて不揮発性メモリ１０７に対して書き換えシーケンスを実行し、書き換えシーケンスの完了時に要否フラグＲを真から偽に反転する。
【００６７】
また、切換部１０４は、不揮発性メモリ１０７の書き換えの要否に対応する真偽を示す要否フラグＲと、不揮発性メモリ１０７に対する書き換えが中断しているか否かに対応する真偽を示す中断フラグＳとを保持するフラグ保持部１０８を備え、要否フラグＲが偽であるとき、および、要否フラグＲが真かつ中断フラグＳが真であるとき、キャッシュ制御部を動作させフラッシュ書換部１０６を停止し、要否フラグＲが真であるとき、キャッシュ制御部を停止させフラッシュ書換部１０６を動作させてもよい。
【００６８】
ＲＡＭ１０５は、書き換えプログラムを記憶するための第１記憶領域４０１と、書き換え用のデータを記憶するための第２記憶領域４０２とを有し、キャッシュ制御部１０２は、要否フラグＲが偽であるとき、第１記憶領域４０２および第２記憶領域４０２をキャッシュメモリとして動作させる制御を行い、要否フラグＲが真かつ中断フラグＳが真であるとき、第２記憶領域４０２を使用することなく、第１記憶領域４０１をキャッシュメモリとして動作させる制御を行うようにしてもよい。
【００６９】
ＣＰＵは、不揮発性メモリ１０７の書き換え要求として、真を示す要否フラグＲをフラグ保持部に設定し、さらにＲＡＭ１０５中に書き換え用のデータを格納し、キャッシュ制御部１０２は、要否フラグＲが偽から真に変化したとき、不揮発性メモリ１０７からＲＡＭ１０５に書き換えプログラムを転送するようにしてもよい。
【００７０】
フラッシュ書換部１０６は、所定の時間をカウントしたときにタイムアウト信号を発生するタイマー１０６ａを備え、フラッシュ書換部１０６は、ＲＡＭ１０５から書き換えプログラムを読み出して実行することによって、ＲＡＭ１０５に格納された書き換え用のデータを用いて不揮発性メモリ１０７に対して書き換えシーケンスを実行し、フラッシュ書換部１０６は、書き換え中にタイムアウト信号が発生したとき、書き換えシーケンスを中断し、中断フラグＳを真に設定し、フラッシュ書換部１０６は、中断中にタイムアウト信号が発生したとき、中断フラグＳを偽に設定する。キャッシュ制御部１０２は、中断フラグＳが真から偽に変化したとき、不揮発性メモリ１０７からＲＡＭ１０５に書き換えプログラムを転送し、フラッシュ書換部１０６は、書き換えシーケンスの完了時に要否フラグＲを真から偽に反転するようにしてもよい。
【００７１】
また、本実施の形態におけるデータ処理装置の制御方法は、ＣＰＵ１０１と、電気的に書き換え可能な不揮発性メモリ１０７と、ＲＡＭ１０５とを備えるデータ処理装置の制御方法であって、ＲＡＭ１０５を、不揮発性メモリ１０７のプログラムをキャッシュするキャッシュメモリとして動作させるステップと、不揮発性メモリ１０７の書き換えの要否を判定するステップと、書き換え要と判定されたとき、ＲＡＭ１０５のキャッシュメモリとしての動作を停止するステップと、不揮発性メモリ１０７を書き換えるための書き換えプログラムと書き換え用のデータとをＲＡＭ１０５に格納するステップと、当該書き換えプログラムを実行することにより不揮発性メモリ１０７を書き換えるステップと、不揮発性メモリ１０７の書き換え完了後にＲＡＭ１０５をキャッシュメモリとして動作させるステップとを有する。  以上のように本実施の形態に拠れば、キャッシュ用ＲＡＭを不揮発性メモリの書き換えプログラムを記憶するＲＡＭとできるため、ＲＡＭの面積、更にはデータ処理装置を実現するマイクロコンピュータを小型化することができる。
【００７２】
（実施の形態２）
以下、本発明に係わる実施の形態２について、図面を参照しながら説明する。
【００７３】
本実施の形態におけるデータ処理装置は、実施の形態１と比べて、図５の期間Ｃ（６０３）つまり中断から再開までの期間において、ＲＡＭ１０５をキャッシュメモリとして動作させない点が異なっている。これにより、キャッシュ制御部１０２が期間Ｄの最初に不揮発性メモリ１０７から復帰可能データ領域４０１に書き換えプログラムを転送する必要がなくなり、書き換え時間が長くなることを回避できる。
【００７４】
＜構成＞
続いて、本実施の形態２におけるデータ処理装置の構成について説明する。
【００７５】
図８は、本実施の形態２におけるデータ処理装置の構成を示す図である。図８は、図１と比べて、キャッシュ制御部１０２、切換部１０４およびフラッシュ書換部１０６の代わりにキャッシュ制御部８０２、切換部８０４およびフラッシュ書換部８０６を備える点が異なっている。同じ点は説明を省略し、以下異なる点を中心に説明する。
【００７６】
図９は不揮発性メモリ１０７とＲＡＭ１０５が書き換えにより状態が変更されることを期間Ａ〜Ｅに分割して示している。ＲＡＭ１０５は図４Ａで示したように復帰可能データ領域と復帰不可データ領域に分割されている。
【００７７】
期間Ａ（９０１）では不揮発性メモリ１０７がリード可能でありＲＡＭ１０５はキャッシュ制御８０２が不揮発性メモリ１０７のデータをリフィルするために全面利用可能である。
【００７８】
期間Ｂ（９０２）では不揮発性メモリ１０７を書き換え中であり不揮発性メモリ１０７はリード不可能であり、ＲＡＭ１０５は復帰不可データ領域と復帰可能データ領域共に利用不可である。
【００７９】
期間Ｃ（９０３）では不揮発性メモリ１０７が中断でリード可能である期間であるが、ＲＡＭ１０５の全面をキャッシュ制御として利用しない。
【００８０】
期間Ｄ（９０４）では書き換えを再開させて書き換え中となり、不揮発性メモリ１０７はリード不可であり、ＲＡＭ１０５は復帰可能データ領域と復帰不可データ領域共にキャッシュ制御として利用不可である。
【００８１】
期間Ｅ（９０５）では不揮発性メモリ１０７の書き換えが完了し、不揮発性メモリ１０７はリード可能で、ＲＡＭ１０５は全面キャッシュ制御として利用可能である。本実施の形態では期間Ｄの最初にＲＡＭ１０５に対して復帰可能データ領域に書換制御用命令を不揮発性メモリ１０７から転送する必要がない。このように本実施の形態２では再開時にＲＡＭ１０５に対して不揮発性メモリ１０７からのデータ転送（書き換えプログラムの転送）が不要になり、書き換え時間が長くなることを回避できる。
【００８２】
図１０は図８の構成例のキャッシュ制御フローチャートを示す。書き換え中かどうかを判断し（ステップ１２０１）、書き換え中であれば、キャッシュ制御不可１２０４である。書き換え中でなければ中断状態かどうかを判断し（ステップ１２０２）、中断中であればキャッシュ制御不可と判断し（ステップ１２０４）、中断中でなければＲＡＭ１０５の全面領域を使用してのキャッシュ制御可能（ステップ１２０３）と判断する。
【００８３】
但し、新たに書き換えシーケンスが起動される場合つまり要否フラグＲが０から１に変化した場合（ステップ１２０５）はＲＡＭ１０５の復帰可能データ領域が上書きされているので、データ転送（ステップ１２０６）により不揮発性メモリ１０７からＲＡＭ１０５の復帰可能データ領域にデータ（書き込みプログラム）を転送する必要がある。
【００８４】
なお、実施の形態１、２において、不揮発性メモリ１０７は、通常のＥＥＰＲＯＭやＦｅＲＡＭ（強誘電体メモリ）、ＲｅＲＡＭ（抵抗変化型メモリ）のように書き換えができる不揮発性メモリであれば、同様の効果を得ることができるということは言うまでもない。
【産業上の利用可能性】
【００８５】
本発明によるデータ処理装置は、キャッシュに使用するＲＡＭを不揮発性メモリの書き換えに使用できるため、小型で低消費電力のデータ処理装置として有用である。
【符号の説明】
【００８６】
１０１  ＣＰＵ
１０２、８０２  キャッシュ制御部
１０３  低電力フラグ保持部
１０４、８０４  切換部
１０５  ＲＡＭ
１０６、８０６  フラッシュ書換部
１０７  不揮発性メモリ
１０８  フラグ保持部
【図１】
2012022475.tif 000003
【図２】
2012022475.tif 000004
【図３】
2012022475.tif 000005
【図４Ａ】
2012022475.tif 000006
【図４Ｂ】
2012022475.tif 000007
【図４Ｃ】
2012022475.tif 000008
【図５】
2012022475.tif 000009
【図６】
2012022475.tif 000010
【図７】
2012022475.tif 000011
【図８】
2012022475.tif 000012
【図９】
2012022475.tif 000013
【図１０】
2012022475.tif 000014
【図１１】
2012022475.tif 000015