(57)【特許請求の範囲】
【請求項１】
現在までのデータの書き込み回数に依存した不揮発性能を個々に有する第一及び第二の記憶ブロックを有する、書き換え可能な不揮発性メモリにおける前記第一の記憶ブロックに対してデータが書き込まれたときに、前記第一の記憶ブロックに対する、それまでの前記書き込み回数を測定する回数測定手段と、
前記第二の記憶ブロックに対する書き込みが最後に行われてからの経過時間を測定する時間測定手段と、
前記回数測定手段により測定された前記書き込み回数が、所定の回数条件を満たすか否かを判定するとともに、前記時間測定手段により測定された前記経過時間が所定の時間閾値に達したか否かを判定する判定手段と、
前記判定手段により、前記書き込み回数が前記回数条件を満たす、あるいは前記経過時間が前記時間閾値に達したと判定されたときに、前記第一の記憶ブロックに書き込まれた前記データを、前記第二の記憶ブロックに対して書き込む書き込み手段と、
を備える、
メモリ制御回路。
【請求項２】
前記回数測定手段は、前記書き込み回数が所定の回数閾値に達するのに応じて、前記書き込み回数を初期値にリセットし、
前記判定手段は、前記回数条件として、前記書き込み回数が前記回数閾値に達したか否かを判定する、
請求項１に記載のメモリ制御回路。
【請求項３】
前記判定手段は、前記書き込み回数が前記回数閾値に達するのに応じて、前記回数閾値を小さくする、
請求項２に記載のメモリ制御回路。
【請求項４】
前記判定手段は、前記書き込み回数が前記回数閾値に達するのに応じて、前記時間閾値を小さくする、
請求項２または３に記載のメモリ制御回路。
【請求項５】
前記不揮発性メモリの温度を測定する温度測定手段をさらに備え、
前記判定手段は、前記温度測定手段により測定された前記不揮発性メモリの温度に応じて、前記回数条件の内容、及び、前記時間閾値の少なくとも何れかを変更する、
請求項１乃至４のいずれか一項に記載のメモリ制御回路。
【請求項６】
前記回数測定手段は、複数のサブブロックを含む前記第一の記憶ブロックに対して前記データが書き込まれるのに応じて、前記データの書き込み先である前記サブブロックがラウンドロビン方式によって移動する場合に、前記複数のサブブロックへの書き込み回数の合計値を測定する、
請求項１乃至５のいずれか一項に記載のメモリ制御回路。
【請求項７】
請求項１乃至６のいずれか一項に記載のメモリ制御回路と、
前記不揮発性メモリと、
を有するメモリ制御システム。
【請求項８】
情報処理装置によって、
現在までのデータの書き込み回数に依存した不揮発性能を個々に有する第一及び第二の記憶ブロックを有する、書き換え可能な不揮発性メモリにおける前記第一の記憶ブロックに対してデータが書き込まれたときに、前記第一の記憶ブロックに対する、それまでの前記書き込み回数を測定し、
前記第二の記憶ブロックに対する書き込みが最後に行われてからの経過時間を測定し、
測定された前記書き込み回数が、所定の回数条件を満たすか否かを判定するとともに、測定された前記経過時間が所定の時間閾値に達したか否かを判定し、
前記書き込み回数が前記回数条件を満たす、あるいは前記経過時間が前記時間閾値に達したと判定されたときに、前記第一の記憶ブロックに書き込まれた前記データを、前記第二の記憶ブロックに対して書き込む、
メモリ制御方法。
【請求項９】
現在までのデータの書き込み回数に依存した不揮発性能を個々に有する第一及び第二の記憶ブロックを有する、書き換え可能な不揮発性メモリにおける前記第一の記憶ブロックに対してデータが書き込まれたときに、前記第一の記憶ブロックに対する、それまでの前記書き込み回数を測定する回数測定処理と、
前記第二の記憶ブロックに対する書き込みが最後に行われてからの経過時間を測定する時間測定処理と、
前記回数測定処理により測定された前記書き込み回数が、所定の回数条件を満たすか否かを判定するとともに、前記時間測定処理により測定された前記経過時間が所定の時間閾値に達したか否かを判定する判定処理と、
前記判定処理により、前記書き込み回数が前記回数条件を満たす、あるいは前記経過時間が前記時間閾値に達したと判定されたときに、前記第一の記憶ブロックに書き込まれた前記データを、前記第二の記憶ブロックに対して書き込む書き込み処理と、
をコンピュータに実行させるためのメモリ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、書き換え可能な不揮発性メモリに対するデータの書き込みを制御する技術に関する。
【背景技術】
【０００２】
組み込みシステムなどでは、ＮＯＲ（否定論理和）型フラッシュメモリ、あるいは、ＮＡＮＤ（否定論理積）型フラッシュメモリのような、書き換え可能な不揮発性メモリが広く使用されている。組み込みシステムは、このようなフラッシュメモリ（書き換え可能な不揮発性メモリ）に格納された制御用プログラム及び設定情報等に基づいて動作する。以降、本願では、このようなフラッシュメモリを、ＦＲＯＭ（Flash Read Only Memory）と称する。
【０００３】
ＦＲＯＭが備える不揮発性能は、データの書き込みや消去を何度も行うことによって次第に劣化することが知られている。図６は、ＦＲＯＭに対する書き換え回数と、ＦＲＯＭによるデータ保持の保障時間と、ＦＲＯＭの温度との関係を概念的に説明する図である。データ保持の保障時間（以降、保障時間と称する）は、データがＦＲＯＭに格納されたのち、当該データが揮発により失われないことを保障可能な経過時間である。
【０００４】
図６に示す通り、ＦＲＯＭの温度が例えば５５℃（℃は摂氏温度を表す記号）の場合において、保障時間は、ＦＲＯＭに対する書き換え回数によって異なる。すなわち、データの書き換えがＮ回（ＮはＦＲＯＭの特性により定まるいずれかの自然数）行われたＦＲＯＭの保障時間が１０Ｔ時間（ＴはＦＲＯＭの特性により定まるいずれかの数）であるのに対し、データの書き換えが１０Ｎ回行われたＦＲＯＭの保障時間は、１Ｔ時間に低下する。また、図６に示す通り、保障時間は、ＦＲＯＭの温度が高いほど低下する。したがって、ＦＲＯＭを使用するシステムでは、重要なデータが失われることが無いように、ＦＲＯＭが備える不揮発性能が次第に劣化することを考慮したデータの書き込み制御を行う技術が必要となる。
【０００５】
このような技術の一例として、特許文献１には、バックアップ対象とされる第１の論理記憶領域に対して更新データの書き込み要求を受信した場合、更新前のデータを維持した状態で、第１の物理記憶領域をバックアップ用記憶領域として管理するストレージシステムが開示されている。このストレージシステムは、その際、第１の論理記憶領域に新たに第２の物理記憶領域を割り当てて更新データを書き込む。このストレージシステムは、バックアップ非対象とされる第２の論理記憶領域に対して更新データの書き込み要求を受信した場合、第２の論理記憶領域に割り当てられていた第３の物理記憶領域を無効記憶領域として管理する。このストレージシステムは、その際、第２の論理記憶領域に新たに割り当てられた第４の物理記憶領域に更新データを書き込む。
【０００６】
また、特許文献２には、データ記録領域を、独立に書き換え可能な複数の記憶ブロックに分け、通常運用時にデータ記録に使用するアクティブブロックと、通常運用時には使用しない予備ブロックとに割り当てた半導体記憶装置が開示されている。この半導体記憶装置は、ブロック毎の、または全ブロックでの書き換え回数を計数し、予め設定された回数毎にアクティブブロックの１つを予備ブロックと交替することで書き換え頻度を平均化する。交替する予備ブロックは、最も過去に予備となった、または、最も書き換え回数の少ないブロックを選定する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特表2013-541743号公報
【特許文献２】特開平08-096589号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
例えば、ＦＲＯＭに制御用プログラムを格納した組み込みシステムなどでは、ＦＲＯＭが備える不揮発性が劣化することによって、当該制御用プログラムが消失した場合、システムを動作させることができなくなる。したがってこのような問題を回避できるように、ＦＲＯＭにデータを格納することが必要となる。
【０００９】
図７は、ＦＲＯＭに格納されたデータが消失する場合を考慮して、格納されたデータを更新する一般的な第１の方法例を示す図である。図７に例示するＦＲＯＭ５０は、５１２個の記憶部ブロック５０−１乃至５０−５１２を含んでいる。記憶部ブロック５０−１乃至５０−５１２は、個々に独立して書き換え可能である。
【００１０】
図７（ａ）に示すとおり、当初、記憶ブロック５０−１及び５０−５１２は出荷時プログラムを格納し、記憶ブロック５０−２は当該出荷時プログラムに関する設定データを格納している。記憶ブロック５０−３乃至５０−５１１は、空の状態にあることとする。この状態において当該出荷時プログラムが更新された場合、図７（ｂ）に示す通り、更新後プログラムは、空の状態にある記憶ブロック５０−３に格納され、記憶ブロック５０−１に格納されている出荷時プログラムは削除される。記憶ブロック５０−５１２は、プログラムの更新にかかわらず、出荷時プログラムを継続して格納する。図７（ｂ）に示す状態において、プログラムがさらに更新された場合、その更新後プログラムは、空の状態にある記憶ブロック５０−４（不図示）に格納され、記憶ブロック５０−３に格納されているプログラムは削除される。
【００１１】
図７に例示する方法では、プログラムが更新されるごとに、その格納先が、ラウンドロビン方式によって、空の状態にある記憶ブロック５０−１乃至５０−５１１のいずれかに移動する。記憶ブロック５０−５１２は、プログラムの更新にかかわらず、出荷時プログラムを継続して格納するので、記憶ブロック５０−５１２に対するデータの書き換えは発生しない。この場合、記憶ブロック５０−５１２の不揮発性能はほとんど劣化しないので、記憶ブロック５０−５１２に格納されている出荷時プログラムが消失する可能性は極めて小さい。したがって、プログラムが更新されるたびに不揮発性能が次第に劣化する記憶ブロック５０−１乃至５０−５１１のいずれかに格納されている最新のプログラムが消失した場合であっても、記憶ブロック５０−５１２に格納されている出荷時プログラムを使用して、システムを動作させることができる。しかしながら、出荷時プログラムからの更新量が多い場合は、出荷時プログラムではシステムが正常に機能しない可能性があるという問題がある。
【００１２】
図８は、ＦＲＯＭに格納されたデータが消失する場合を考慮して、格納されたデータを更新する一般的な第２の方法例を示す図である。図８に示す第２の方法例も、図７に示すＦＲＯＭ５０を使用することとする。
【００１３】
図８（ａ）に示すとおり、当初、記憶ブロック５０−１及び５０−２は出荷時プログラムを格納し、記憶ブロック５０−３は当該出荷時プログラムに関する設定データを格納している。記憶ブロック５０−４乃至５０−５１２は、空の状態にあることとする。この状態において当該出荷時プログラムが更新された場合、図８（ｂ）に示す通り、更新後プログラムは、空の状態にある記憶ブロック５０−４に格納され、記憶ブロック５０−１に格納されている出荷時プログラムは削除される。この際、記憶ブロック５０−２は、出荷時プログラムを継続して格納する。図８（ｂ）に示す状態において、プログラムがさらに更新された場合、その更新後プログラムは、空の状態にある記憶ブロック５０−５（不図示）に格納され、記憶ブロック５０−２に格納されている出荷時プログラムは削除される。
【００１４】
図８に示す第２の方法例でも、プログラムが更新されるごとに、その格納先が、ラウンドロビン方式によって、空の状態にある記憶ブロック５０−１乃至５０−５１２のいずれかに移動する。この際、ＦＲＯＭ５０は、記憶ブロック５０−１乃至５０−５１２のいずれかに２つに、最新のプログラムと、その１つ前の版のプログラムとを格納している。図８に示す第２の方法例では、図７に示す第１の方法例が有する、出荷時プログラムではシステムが正常に機能しない可能性があるという問題を回避できる。しかしながら、この第２の方法例では、プログラムが更新されるたびに、記憶ブロック５０−１乃至５０−５１２の不揮発性能が次第に劣化するので、格納されている最新のプログラムと、その１つ前の版のプログラムとが、両方とも消失する可能性があるという問題がある。
【００１５】
このように、不揮発性能が劣化しないように、出荷後に更新を行わない記憶ブロックを設けた場合は、当該記憶ブロックに格納されたデータの最新性が低下する。本願において、最新性とは、データについて、最新の状態を基準とする新しさの度合いを表す。そして、データの最新性が低下しないようにデータを更新する場合は、記憶ブロックの不揮発性能が低下するという問題がある。実際のシステムでは、データが消失することと、データの最新性が低下することと、を両方とも回避することが求められるので、これを実現することが課題である。特許文献１及び２は、この課題について言及していない。本願発明の主たる目的は、この課題を解決したメモリ制御回路等を提供することである。
【課題を解決するための手段】
【００１６】
本願発明の一態様に係るメモリ制御回路は、現在までのデータの書き込み回数に依存した不揮発性能を個々に有する第一及び第二の記憶ブロックを有する、書き換え可能な不揮発性メモリにおける前記第一の記憶ブロックに対してデータが書き込まれたときに、前記第一の記憶ブロックに対する、それまでの前記書き込み回数を測定する回数測定手段と、前記回数測定手段により測定された前記書き込み回数が、所定の回数条件を満たすか否かを判定する判定手段と、前記判定手段により、前記書き込み回数が前記回数条件を満たすと判定されたときに、前記第一の記憶ブロックに書き込まれた前記データを、前記第二の記憶ブロックに対して書き込む書き込み手段と、を備える。
【００１７】
上記目的を達成する他の見地において、本願発明の一態様に係るメモリ制御方法は、情報処理装置によって、現在までのデータの書き込み回数に依存した不揮発性能を個々に有する第一及び第二の記憶ブロックを有する、書き換え可能な不揮発性メモリにおける前記第一の記憶ブロックに対してデータが書き込まれたときに、前記第一の記憶ブロックに対する、それまでの前記書き込み回数を測定し、測定された前記書き込み回数が、所定の回数条件を満たすか否かを判定し、前記書き込み回数が前記回数条件を満たすと判定されたときに、前記第一の記憶ブロックに書き込まれた前記データを、前記第二の記憶ブロックに対して書き込む。
【００１８】
また、上記目的を達成する更なる見地において、本願発明の一態様に係るメモリ制御プログラムは、現在までのデータの書き込み回数に依存した不揮発性能を個々に有する第一及び第二の記憶ブロックを有する、書き換え可能な不揮発性メモリにおける前記第一の記憶ブロックに対してデータが書き込まれたときに、前記第一の記憶ブロックに対する、それまでの前記書き込み回数を測定する回数測定処理と、前記回数測定処理により測定された前記書き込み回数が、所定の回数条件を満たすか否かを判定する判定処理と、前記判定処理により、前記書き込み回数が前記回数条件を満たすと判定されたときに、前記第一の記憶ブロックに書き込まれた前記データを、前記第二の記憶ブロックに対して書き込む書き込み処理と、をコンピュータに実行させるためのプログラムである。
【００１９】
更に、本願発明は、係るメモリ制御プログラム（コンピュータプログラム）が格納された、コンピュータ読み取り可能な、不揮発性の記録媒体によっても実現可能である。
【発明の効果】
【００２０】
本願発明は、書き換え可能な不揮発性メモリに記憶されたデータの最新性が低下することを回避しつつ、当該データが消失することを回避することを可能とする。
【図面の簡単な説明】
【００２１】
【図１】本願発明の第１の実施形態に係るメモリ制御システム１の構成を示すブロック図である。
【図２】本願発明の第１の実施形態に係るメモリ制御回路１０が、ＣＰＵ２から受信したデータをＦＲＯＭ２０に書き込む動作を示すフローチャートである。
【図３】本願発明の第１の実施形態に係るメモリ制御回路１０が、通常時アクセス用ブロックに格納されているデータを、非常時アクセス用ブロック２２に書き込む動作を示すフローチャートである。
【図４】本願発明の第２の実施形態に係るメモリ制御回路３０の構成を示すブロック図である。
【図５】本願発明の各実施形態に係るメモリ制御回路を実行可能な情報処理回路の構成を示すブロック図である。
【図６】フラッシュメモリの書き換え回数と、データ保持保障時間と、フラッシュメモリの温度との関係を概念的に説明する図である。
【図７】フラッシュメモリに格納されたデータが消失する場合を考慮して、格納されたデータを更新する一般的な第１の方法例を示す図である。
【図８】フラッシュメモリに格納されたデータが消失する場合を考慮して、格納されたデータを更新する一般的な第２の方法例を示す図である。
【図９】第１の実施形態に係るＦＲＯＭ２０について、使用を開始してからの時間とデータ保持保障時間との関係を概念的に説明する図である。
【発明を実施するための形態】
【００２２】
以下、本願発明の実施の形態について図面を参照して詳細に説明する。
【００２３】
＜第１の実施形態＞
図１は、本願発明の第１の実施の形態に係るメモリ制御システム１を概念的に示すブロック図である。メモリ制御システム１は、大別して、メモリ制御回路１０、及び、ＦＲＯＭ２０を備える。メモリ制御システム１は、ＣＰＵ（Central Processing Unit）２と通信可能に接続されている。メモリ制御システム１と通信可能に接続されるＣＰＵ２は、複数であってもよい。メモリ制御回路１０は、ＣＰＵ２からＦＲＯＭ２０に対する、データの読み出し要求及びデータの書き込み要求について処理する回路である。メモリ制御システム１は、例えば１つの半導体チップの中に構築されてもよい。
【００２４】
ＦＲＯＭ２０は、ＣＰＵ２が使用するデータを記憶するフラッシュメモリである。ＦＲＯＭ２０は、通常時アクセス用ブロック（第１の記憶ブロック）２１、及び、非常時アクセス用ブロック（第２の記憶ブロック）２２を備えている。通常時アクセス用ブロック２１、及び、非常時アクセス用ブロック２２は、互いに独立して、記憶するデータを書き換え可能である。通常時アクセス用ブロック２１は、ＣＰＵ２からの要求に応じて更新されるデータを記憶する記憶ブロックである。非常時アクセス用ブロック２２は、通常時アクセス用ブロック２１に記憶されたデータが消失した場合に備えて、当該データのバックアップを記憶する記憶ブロックである。
【００２５】
通常時アクセス用ブロック２１は、５１１個のサブブロック２１−１乃至２１−５１１を備えている。サブブロック２１−１乃至２１−５１１は、互いに独立して、記憶するデータを書き換え可能である。通常時アクセス用ブロック２１が備えるサブブロックの数は５１１個に限定されず、ＦＲＯＭ２０の記憶容量等に応じて、異なる値を取り得る。サブブロックの数は１個でもよい。
【００２６】
このように、サブブロック２１−１乃至２１−５１１、及び、非常時アクセス用ブロック２２は、互いに独立して、記憶するデータを書き換え可能である。したがって、これらの記憶ブロックは、個々に、現在までの自記憶ブロックに対するデータの書き込み回数に依存した不揮発性能を有する。
【００２７】
本実施形態に係るメモリ制御回路１０は、ＣＰＵ２からの要求に従い、サブブロック２１−ｉ（ｉは１乃至５１１のいずれかの整数）に格納されているデータを更新する場合、未使用のサブブロック２１−ｊ（ｊはｉとは異なる１乃至５１１のいずれかの整数）に更新後のデータを格納する。メモリ制御回路１０は、この際、サブブロック２１−ｉに格納されていた更新前のデータを削除する。メモリ制御回路１０は、例えば、データを更新するたびに、当該データの格納先が、ラウンドロビン方式によって、空の状態にあるサブブロック２１−１乃至２１−５１１のいずれかに移動するように、格納先であるサブブロックを選択する。尚、メモリ制御回路１０は、これとは異なる方法によって、格納先であるサブブロックを選択してもよい。
【００２８】
本実施形態に係るメモリ制御回路１０は、回数測定部１１、時間測定部１２、温度測定部１３、判定部１４、及び、書き込み部１５を備えている。回数測定部１１、判定部１４、及び、書き込み部１５は、電子回路の場合もあれば、コンピュータプログラムとそのコンピュータプログラムに従って動作するプロセッサによって実現される場合もある。時間測定部１２は、時計（計時手段）を内包するデバイスである。温度測定部１３は、温度センサーを内包するデバイスである。
【００２９】
回数測定部１１は、現在までに、通常時アクセス用ブロック２１に対してデータが書き込まれた回数（書き込み回数）、すなわち、サブブロック２１−１乃至２１−５１１に対しる書き込み回数の合計値を測定する。回数測定部１１は、その書き込み回数が、システム管理者等によって定められた所定の回数閾値に達するたびに、測定結果であるカウント値を初期値（例えば０）にリセットする。この回数閾値を、例えば、サブブロック２１−１乃至２１−５１１に対して１０回ずつ書き込みが行われたときの回数とする場合、その値は５１１０回となる。回数測定部１１は、測定したカウント値を、判定部１４へ通知する。
【００３０】
時間測定部１２は、所定のタイミング（例えば定期的）に、通常時アクセス用ブロク２１に対する書き込みが最後に行われてからの経過時間を測定する。時間測定部１２は、測定した経過時間を、判定部１４へ通知する。時間測定部１２は、その経過時間が、システム管理者等によって定められた所定の時間閾値に達するたびに、測定結果である経過時間を初期値（例えば０）にリセットする。尚、この時間閾値としては、例えば、ＦＲＯＭ２０の不揮発性能に依存するデータ保持保障時間であることが望ましいい。
【００３１】
温度測定部１３は、ＦＲＯＭ２０の表面等に設置された温度センサーを介して、ＦＲＯＭ２０の温度を測定する。温度測定部１３は、測定したＦＲＯＭ２０の温度を、判定部１４へ通知する。
【００３２】
判定部１４は、回数測定部１１から通知されたカウント値（書き込み回数）が、所定の回数条件を満たすか否かを判定する。この回数条件は、例えば、カウント値が回数閾値に達したか否か等である。判定部１４は、時間計測部１２から通知された経過時間が、時間閾値に達したか否かを判定する。判定部１４は、これらの判定結果を、書き込み部１５へ通知する。
【００３３】
判定部１４は、カウント値が回数閾値に達するごとに、回数閾値を徐々に小さくしてもよい。例えば、回数閾値が、当初、サブブロック２１−１乃至２１−５１１に対して１０回ずつ書き込みが行われたときの回数（即ち５１１０回）に設定されていることとする。この場合、判定部１４は、カウント値が５１１０回に達したのち、回数閾値を、例えばサブブロック２１−１乃至２１−５１１に対して９回ずつ書き込みが行われたときの回数（即ち４５９９回）に小さくする。判定部１４は、その後、カウント値が４５９９回に達したのち、回数閾値を、例えばサブブロック２１−１乃至２１−５１１に対して８回ずつ書き込みが行われたときの回数（即ち４０８８回）に小さくする。判定部１４は、同様の処理を繰り返すことによって、回数閾値を徐々に小さくする。判定部１４は、同様に、カウント値が回数閾値に達するごとに、時間閾値を徐々に小さくしてもよい。
【００３４】
判定部１４は、温度測定部１３から通知されたＦＲＯＭ２０の温度に応じて、回数条件の内容を変更してもよい。判定部１４は、例えば、ＦＲＯＭ２０の温度が高いほど、回数閾値を小さくする。判定部１４は、また、温度測定部１３から通知されたＦＲＯＭ２０の温度に応じて、時間閾値を変更してもよい。判定部１４は、例えば、ＦＲＯＭ２０の温度が高いほど、時間閾値を小さくする。
【００３５】
書き込み部１５は、判定部１４により、書き込み回数が回数条件を満たすと判定されたときに、通常時アクセス用ブロック２１におけるサブブロック２１−ｊに書き込まれた、ＣＰＵ２から受信したデータを、非常時アクセス用ブロック２２に書き込む。書き込み部１５は、また、判定部１４により、時間測定部１２により測定された経過時間が時間閾値に達したと判定されたときに、サブブロック２１−ｊに書き込まれているデータを、非常時アクセス用ブロック２２に書き込む。
【００３６】
次に図２及び図３のフローチャートを参照して、本実施形態に係るメモリ制御回路１０の動作（処理）について詳細に説明する。
【００３７】
図２は、実施形態に係るメモリ制御回路１０が、ＣＰＵ２から受信したデータをＦＲＯＭ２０に書き込む動作を示すフローチャートである。
【００３８】
書き込み部１５は、ＣＰＵ２から受信した更新後データをサブブロック２１−ｊに書き込む（ステップＳ１０１）。書き込み部１５は、サブブロック２１−ｉに記憶されている更新前データを消去する（ステップＳ１０２）。回数測定部１１は、カウント値を１加算する（ステップＳ１０３）。判定部１４は、カウント値を回数閾値と比較する（ステップＳ１０４）。
【００３９】
カウント値が回数閾値でない場合（ステップＳ１０５でＮｏ）、全体の処理は終了する。カウント値が回数閾値である場合（ステップＳ１０５でＹｅｓ）、回数測定部は、カウント値を０にリセットする（ステップＳ１０６）。書き込み部１５は、ＣＰＵ２から受信した更新後データを非常時アクセス用ブロック２２に書き込み（ステップＳ１０７）、全体の処理は終了する。
【００４０】
図３は、実施形態に係るメモリ制御回路１０が、通常時アクセス用ブロック２１に格納されているデータを、非常時アクセス用ブロック２２に書き込む動作を示すフローチャートである。
【００４１】
時間測定部１２は、所定のタイミングに、非常時アクセス用ブロック２２に対する書き込みが最後に行われてからの経過時間を測定する（ステップＳ２０１）。判定部１４は、経過時間を時間閾値と比較する（ステップＳ２０２）。
【００４２】
経過時間が時間閾値以上でない場合（ステップＳ２０３でＮｏ）、全体の処理は、ステップＳ２０１へ戻る。経過時間が時間閾値以上である場合（ステップＳ２０３でＹｅｓ）、時間測定部１２は、経過時間の測定値を０にリセットする。書き込み部１５は、通常時アクセス用ブロック２１に格納されているデータを、非常時アクセス用ブロック２２に書き込み（ステップＳ２０５）、全体の処理は、ステップＳ２０１へ戻る。
【００４３】
本実施形態に係るメモリ制御回路１０は、書き換え可能な不揮発性メモリに記憶されたデータの最新性が低下することを回避しつつ、当該データが消失することを回避することができる。その理由は、回数測定部１１は、ＦＲＯＭ２０における通常時アクセス用ブロック２１に対してデータが書き込まれる際に、これまでの書き込み回数を測定し、書き込み部１５は、その書き込み回数が回数閾値に達した場合に、当該データを、ＦＲＯＭ２０における非常時アクセス用ブロック２２に書き込むからである。
【００４４】
以下に、本実施形態に係るメモリ制御回路１０によって実現される効果について、詳細に説明する。
【００４５】
フラッシュメモリにデータを格納するシステムにおいて、データが消失しないようにするために、出荷後にデータの更新を行わない記憶ブロックを設けることによって、当該記憶ブロックの不揮発性能が劣化することを回避する場合は、当該記憶ブロックに格納されたデータの最新性が低下するという問題がある。一方、係るシステムにおいて、データの最新性が低下しないようにデータを更新する場合は、記憶ブロックの不揮発性能が低下するという問題がある。実際のシステムでは、データが消失することと、データの最新性が低下することと、を両方とも回避することが求められるので、これを実現することが課題である。
【００４６】
これに対して、本実施形態に係るメモリ制御回路１０では、回数測定部１１は、通常時アクセス用ブロック２１に対してデータが書き込まれたときに、通常時アクセス用ブロック２１に対する、それまでの前記書き込み回数を測定する。判定部１４は、回数測定部１１により測定された書き込み回数が、所定の回数条件を満たす（回数閾値に達した）か否かを判定する。書き込み部１５は、判定部１４により、書き込み回数が回数条件を満たすと判定されたときに、通常時アクセス用ブロック２１に書き込まれたデータを、非常時アクセス用ブロック２２に対して書き込む。これにより、本実施形態に係るメモリ制御回路３０は、フラッシュメモリに記憶されたデータの最新性が低下することを回避しつつ、当該データが消失することを回避することができる。
【００４７】
図９は、本実施形態に係るＦＲＯＭ２０について、使用を開始してからの時間とデータ保持保障時間との関係を概念的に説明する図である。図９は、ＦＲＯＭ２０における通常時アクセス用ブロック２１の各サブブロックに対して、Ｔ時間の周期でまとめて１０Ｎ回のデータの書き換えが行われた場合における、通常時アクセス用ブロック２１の各サブブロック、及び、非常時アクセス用ブロック２２について、データ保持保障時間の推移を示している。尚、実際のシステムでは、通常時アクセス用ブロック２１の各サブブロックに対して、まとめて１０Ｎ回のデータの書き換えが行われることはないが、説明を簡略化するために、このような動作が行われることとする。また、ＦＲＯＭ２０は、図６に示す特性を有し、ＦＲＯＭ２０の温度は５５℃であることとする。
【００４８】
図９に示す太線は、ＦＲＯＭ２０の使用を開始してからの時間における、通常時アクセス用ブロック２１及び非常時アクセス用ブロック２２のデータ保持保障時間の長さを表す。図９に示す通り、ＦＲＯＭ２０の使用を開始してから１Ｔ時間後に通常時アクセス用ブロック２１の各サブブロックに対して１０Ｎ回の書き換えが行われる。このときの通常時アクセス用ブロック２１のデータ保持保障時間は、図６に示す通り１Ｔ時間である。本実施形態では、上述の通り、通常時アクセス用ブロック２１の各サブブロックに対して、１０回書き換えが行われるたびに、非常時アクセス用ブロック２２に対して、１回書き換えが行われる。したがって、ＦＲＯＭ２０の使用を開始してから１Ｔ時間後に、非常時アクセス用ブロック２２に対して、１Ｎ回の書き換えが行われる。このときの非常時アクセス用ブロック２２のデータ保持保障時間は、図６に示す通り１０Ｔ時間である。
【００４９】
図９に示す通り、ＦＲＯＭ２０の使用を開始してから２Ｔ時間後に、通常時アクセス用ブロック２１の各サブブロックに対して、２０Ｎ回の書き換えが行われる。このときの通常時アクセス用ブロック２１のデータ保持保障時間は、０．９Ｔ時間に低下する。そして、ＦＲＯＭ２０の使用を開始してから２Ｔ時間後に、非常時アクセス用ブロック２２に対して２Ｎ回の書き換えが行われる。このときの非常時アクセス用ブロック２２のデータ保持保障時間は、９Ｔ時間に低下する。
【００５０】
このように、通常時アクセス用ブロック２１及び非常時アクセス用ブロック２２のデータ保持保障時間は、ＦＲＯＭ２０の使用を開始してから１Ｔ時間経過するたびに１０％ずつ減少する。そして、非常時アクセス用ブロック２２に対するデータの書き換え回数は、通常時アクセス用ブロック２１の各サブブロックに対するデータの書き換え回数の１０分の１である。したがって、同じ時間における、非常時アクセス用ブロック２２のデータ保持保障時間は、通常時アクセス用ブロック２１のデータ保持保障時間の１０倍を維持することができる。そして、非常時アクセス用ブロック２２に記憶されているデータは、適宜更新される。したがって、本実施形態に係るメモリ制御回路１０によれば、通常時アクセス用ブロック２１に記憶されたデータが消失した場合であっても、当該データに関する最新性をある程度維持した状態で、当該データを復旧することができる。
【００５１】
また、本実施形態に係るメモリ制御回路１０では、時間測定部１２は、所定のタイミングに、非常時アクセス用ブロック２２に対する書き込みが最後に行われてからの経過時間を測定する。書き込み部１５は、判定部１４が、当該経過時間が時間閾値に達したと判定した場合に、通常時アクセス用ブロック２１に記憶されているデータを、非常時アクセス用ブロック２２に対して書き込む。これにより、本実施形態に係るメモリ制御回路１０は、通常時アクセス用ブロック２１に記憶されているデータが消失する可能性がある時間が経過したときに、当該データのバックアップとして、当該データを非常時アクセス用ブロック２２に書き込むので、データが消失することを、より確実に回避することができる。
【００５２】
また、図６及び図９に示す通り、ＦＲＯＭ２０のデータ保持保障時間は、ＦＲＯＭ２０に対する書き換え回数が増えるとともに減少する。そして、本実施形態に係るメモリ制御回路１０では、判定部１４は、回数測定部１１により測定された書き込み回数が回数閾値に達するごとに、回数閾値、あるいは、時間閾値を小さくすることができる。したがって、本実施形態に係るメモリ制御回路１０は、ＦＲＯＭ２０の不揮発性能が低下するにしたがい、より頻繁に、データのバックアップを非常時アクセス用ブロック２２に書き込むようにするので、データが消失することを、より確実に回避することができる。
【００５３】
さらに、本実施形態に係るメモリ制御回路１０では、温度測定部１３は、ＦＲＯＭ２０の温度を測定する。そして、判定部１４は、温度測定部１３により測定された温度に応じて、回数閾値及び時間閾値の少なくとも何れかを変更することができる。図６に示す通り、ＦＲＯＭ２０の不揮発性能は、その温度が高くなるにしたがって低下する。判定部１４は、ＦＲＯＭ２０の温度が高くなるにしたがって、回数閾値及び時間閾値の少なくとも何れかを小さくする。これにより、本実施形態に係るメモリ制御回路１０は、ＦＲＯＭ２０の温度が高くなるにしたがい、より頻繁に、データのバックアップを非常時アクセス用ブロック２２に書き込むようにするので、データが消失することを、より確実に回避することができる。
【００５４】
＜第２の実施形態＞
図４は、第２の実施形態に係るメモリ制御回路３０の構成を概念的に示すブロック図である。
【００５５】
本実施形態に係るメモリ制御回路３０は、回数測定部３１、判定部３４、及び、書き込み部３５を備えている。
【００５６】
メモリ制御回路３０が制御の対象とする書き換え可能な不揮発性メモリ４０は、現在までのデータの書き込み回数に依存した不揮発性能を個々に有する、第１の記憶ブロック４１及び第２の記憶ブロック４２を有している。
【００５７】
回数測定部３１は、第１の記憶ブロック４１に対してデータが書き込まれたときに、第１の記憶ブロック４１に対する、それまでの書き込み回数を測定する。
【００５８】
判定部３４は、回数測定部３１により測定された書き込み回数が、所定の回数条件を満たすか否かを判定する。
【００５９】
書き込み部３５は、判定部３４により、当該書き込み回数が当該回数条件を満たすと判定されたときに、第１の記憶ブロック４１に書き込まれた当該データを、第２の記憶ブロック４２に対して書き込む。
【００６０】
本実施形態に係るメモリ制御回路３０は、書き換え可能な不揮発性メモリに記憶されたデータの最新性が低下することを回避しつつ、当該データが消失することを回避することができる。その理由は、回数測定部３１は、第１の記憶ブロック４１に対してデータが書き込まれる際に、これまでの書き込み回数を測定し、書き込み部３５は、その書き込み回数が回数閾値に達した場合に、当該データを、第２の記憶ブロック４２に書き込むからである。
【００６１】
＜ハードウェア構成例＞
上述した各実施形態において図１、及び、図４に示した各部は、専用のＨＷ（ＨａｒｄＷａｒｅ）（電子回路）によって実現することができる。また、図１及び図４において、少なくとも、下記構成は、ソフトウェアプログラムの機能（処理）単位（ソフトウェアモジュール）と捉えることができる。
・回数測定部１１及び３１、
・判定部１４及び３４、
・書き込み部１５及び３５。
【００６２】
但し、これらの図面に示した各部の区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。この場合のハードウェア環境の一例を、図５を参照して説明する。
【００６３】
図５は、本願発明の各実施形態に係るメモリ制御回路を実行可能な情報処理回路９００（コンピュータ）の構成を例示的に説明する図である。即ち、図５は、図１及び図４に示したメモリ制御回路を実現可能なコンピュータ（情報処理回路）の構成であって、上述した実施形態における各機能を実現可能なハードウェア環境を表す。
【００６４】
図５に示した情報処理回路９００は、構成要素として下記を備えている。
・ＣＰＵ（Ｃｅｎｔｒａｌ＿Ｐｒｏｃｅｓｓｉｎｇ＿Ｕｎｉｔ）９０１、
・ＲＯＭ（Ｒｅａｄ＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）９０２、
・ＲＡＭ（Ｒａｎｄｏｍ＿Ａｃｃｅｓｓ＿Ｍｅｍｏｒｙ）９０３、
・バス９０４（通信線）。
【００６５】
即ち、上記構成要素を備える情報処理回路９００は、これらの構成がバス９０４を介して接続された一般的なコンピュータである。
【００６６】
そして、上述した実施形態を例に説明した本願発明は、図５に示した情報処理回路９００に対して、次の機能を実現可能なコンピュータプログラムを供給する。その機能とは、その実施形態の説明において参照したブロック構成図（図１及び図４）における上述した構成、或いはフローチャート（図２及び図３）の機能である。本願発明は、その後、そのコンピュータプログラムを、当該ハードウェアのＣＰＵ９０１に読み出して解釈し実行することによって達成される。また、当該装置内に供給されたコンピュータプログラムは、読み書き可能な揮発性のメモリ（ＲＡＭ９０３）等の不揮発性の記憶デバイスに格納すれば良い。
【００６７】
以上、上述した実施形態を模範的な例として本願発明を説明した。しかしながら、本願発明は、上述した実施形態には限定されない。即ち、本願発明は、本願発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【符号の説明】
【００６８】
１    メモリ制御システム
１０    メモリ制御回路
１１    回数測定部
１２    時間測定部
１３    温度測定部
１４    判定部
１５    書き込み部
２０    ＦＲＯＭ
２１    通常時アクセス用ブロック
２１−１乃至２１−５１１    サブブロック
２２    非常時アクセス用ブロック
２    ＣＰＵ
３０    メモリ制御回路
３１    回数測定部
３４    判定部
３５    書き込み部
４０    不揮発性メモリ
４１    第１の記憶ブロック
４２    第２の記憶ブロック
５０    ＦＲＯＭ
５０−１乃至５０−５１２    記憶ブロック
９００    情報処理回路
９０１    ＣＰＵ
９０２    ＲＯＭ
９０３    ＲＡＭ
９０４    バス
【図１】
0006329185.tif 000002
【図２】
0006329185.tif 000003
【図３】
0006329185.tif 000004
【図４】
0006329185.tif 000005
【図５】
0006329185.tif 000006
【図６】
0006329185.tif 000007
【図７】
0006329185.tif 000008
【図８】
0006329185.tif 000009
【図９】
0006329185.tif 000010