(57)【要約】      （修正有）【課題】データ書き換え回数を増加させると共に、フラッシュメモリを有効活用する。【解決手段】フラッシュメモリ制御装置は、演算部と、フラッシュメモリとを具備している。フラッシュメモリは、複数の領域ＤＡ１〜ＤＡ３、ＰＡ１〜ＰＡ３を有している。複数の領域ＤＡ１〜ＤＡ３、ＰＡ１〜ＰＡ３は、演算部により実行されるプログラムが格納され、データの書き換えが行われないプログラム領域ＰＡ１〜ＰＡ３と、データが格納され、データの書き換えが行われるデータ領域ＤＡ１〜ＤＡ３とを含んでいる。演算部は、データ領域ＤＡ３／ＤＡ１／ＤＡ２として割り当てられた第１領域に対して、データが書き込まれた累積回数が最大書き換え回数に達したときに、入れ替え処理を実行する。入れ替え処理では、第１領域と、プログラム領域ＰＡ３／ＰＡ２／ＰＡ１として割り当てられた第２領域とを入れ替える。【選択図】図９Ａ
2011175377.tif 000002
【特許請求の範囲】
【請求項１】
演算部と、
前記演算部により実行されるプログラムが格納され、データの書き換えが行われないプログラム領域と、前記データが格納され、前記データの書き換えが行われるデータ領域とを含む複数の領域を有するフラッシュメモリと
を具備し、
前記演算部は、
前記データ領域として割り当てられた第１領域に対して、前記データが書き込まれた累積回数が最大書き換え回数に達したときに、前記第１領域と、前記プログラム領域として割り当てられた第２領域とを入れ替える入れ替え処理を実行する
フラッシュメモリ制御装置。
【請求項２】
前記演算部は、
前記第１領域に対して、前記データが書き込まれた累積回数が前記最大書き換え回数に達したときに、前記入れ替え処理の実行として、
前記第１領域に格納された前記データを消去し、
前記プログラム領域として割り当てられた前記第２領域に格納された前記プログラムを前記第１領域に格納し、
前記第１、２領域をそれぞれ前記プログラム領域、前記データ領域として割り当て、
前記第２領域に格納された前記プログラムを消去する
請求項１に記載のフラッシュメモリ制御装置。
【請求項３】
前記複数の領域の各々に対して、その初期値が０であり、且つ、前記データが書き込まれる回数を表す累積回数が格納され、前記演算部が前記データを処理するときに参照するための書き換え回数管理テーブル
を更に具備し、
前記演算部は、
前記第１領域の累積回数が前記最大書き換え回数に達していないときに、前記第１領域に前記データを書き込み、そのときの書き込みの回数を前記第１領域の累積回数に加算して、この回数を累積回数とし、
前記第１領域の累積回数が前記最大書き換え回数に達したときに、前記入れ替え処理を実行する
請求項２に記載のフラッシュメモリ制御装置。
【請求項４】
前記プログラム領域のうちの前記第２領域の累積回数が０を表している場合、前記第２領域は前記第１領域と入れ替え可能であり、
前記演算部は、
前記第１領域に対して、前記データが書き込まれた累積回数が前記最大書き換え回数に達したときに、前記プログラム領域の中から、その累積回数が０を表している前記第２領域を選択し、前記入れ替え処理を実行する
請求項２又は３に記載のフラッシュメモリ制御装置。
【請求項５】
前記プログラム領域のアドレスが格納され、前記演算部が前記プログラムを実行するときに参照するためのプログラム領域アドレス管理テーブル
を更に具備し、
前記入れ替え処理を実行したとき、前記プログラム領域アドレス管理テーブルに格納された前記プログラム領域のアドレスを前記第２領域のアドレスから前記第１領域のアドレスに変更する
請求項１〜４のいずれかに記載のフラッシュメモリ制御装置。
【請求項６】
前記プログラム領域アドレス管理テーブルには、前記プログラム領域のアドレスに対応付けて、前記プログラムの長さを表す情報が更に格納されている
請求項５に記載のフラッシュメモリ制御装置。
【請求項７】
請求項１〜６のいずれかに記載のフラッシュメモリ制御装置と、
通信又は入力による文字、画像を含む前記データを取得する周辺機器と
を具備する電子機器。
【請求項８】
演算部により実行されるプログラムが格納され、データの書き換えが行われないプログラム領域と、前記データが格納され、前記データの書き換えが行われるデータ領域とを含む複数の領域を有するフラッシュメモリを、前記演算部が制御する方法であって、
前記データ領域として割り当てられた第１領域に対して、前記データが書き込まれた累積回数が最大書き換え回数に達しているか否かを判断するステップと、
前記第１領域に対して、前記データが書き込まれた累積回数が最大書き換え回数に達したときに、前記第１領域と、前記プログラム領域として割り当てられた第２領域とを入れ替える入れ替え処理を実行するステップと
を具備するフラッシュメモリ制御方法。
【請求項９】
前記入れ替え処理を実行するステップは、
前記第１領域に格納された前記データを消去するステップと、
前記プログラム領域として割り当てられた前記第２領域に格納された前記プログラムを前記第１領域に格納するステップと、
前記第１、２領域をそれぞれ前記プログラム領域、前記データ領域として割り当て、
前記第２領域に格納された前記プログラムを消去するステップと
を含む請求項８に記載のフラッシュメモリ制御方法。
【請求項１０】
前記演算部が前記データを処理するときに、前記複数の領域の各々に対して、その初期値が０であり、且つ、前記データが書き込まれる回数を表す累積回数が格納された書き換え回数管理テーブルを参照するステップと、
前記第１領域の累積回数が前記最大書き換え回数に達していないときに、前記第１領域に前記データを書き込むステップと、
そのときの書き込みの回数を前記第１領域の累積回数に加算して、この回数を累積回数として前記書き換え回数管理テーブルを更新するステップと、
前記第１領域の累積回数が前記最大書き換え回数に達したときに、前記入れ替え処理を実行するステップと
を更に具備する請求項９に記載のフラッシュメモリ制御方法。
【請求項１１】
前記プログラム領域のうちの前記第２領域の累積回数が０を表している場合、前記第２領域は前記第１領域と入れ替え可能であり、
前記第１領域に対して、前記データが書き込まれた累積回数が前記最大書き換え回数に達したときに、前記プログラム領域の中から、その累積回数が０を表している前記第２領域を選択し、前記入れ替え処理を実行するステップと
を更に具備する請求項９又は１０に記載のフラッシュメモリ制御方法。
【請求項１２】
前記演算部は、前記プログラム領域のアドレスが格納され、前記演算部が前記プログラムを実行するときに参照するためのプログラム領域アドレス管理テーブルを備え、
前記入れ替え処理を実行するステップの後に、前記プログラム領域アドレス管理テーブルに格納された前記プログラム領域のアドレスを前記第２領域のアドレスから前記第１領域のアドレスに変更するステップ
を更に具備する請求項８〜１１のいずれかに記載のフラッシュメモリ制御方法。
【請求項１３】
前記プログラム領域アドレス管理テーブルには、前記プログラム領域のアドレスに対応付けて、前記プログラムの長さを表す情報が更に格納されている
請求項１２に記載のフラッシュメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリを制御するフラッシュメモリ制御装置及び方法に関する。
【背景技術】
【０００２】
電子機器にはフラッシュメモリを実装した製品が増加し、電子機器のメンテナンスやデータ領域としてフラッシュメモリを活用する場面が増えてきている。近年では、フラッシュメモリに対して、その有効活用やデータの書き換え回数の増加等の要求が高まってきている。
【０００３】
特開２０００−０２０４０５号公報には、データの書き換え回数を増加させる技術（従来のフラッシュメモリ制御装置と称する）が記載されている。
【０００４】
図１は、従来のフラッシュメモリ制御装置１０１が適用される電子機器の構成を示している。
【０００５】
その電子機器は、従来のフラッシュメモリ制御装置１０１と、周辺機器１０３とを具備している。周辺機器１０３は、通信又は入力による文字、画像を含むデータを取得する。
【０００６】
従来のフラッシュメモリ制御装置１０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）演算部１０２と、第１フラッシュメモリ（以下、第１ＦＲＯＭと称する）１０４と、第２フラッシュメモリ（以下、第２ＦＲＯＭと称する）１０５とを具備している。
【０００７】
第１ＦＲＯＭ１０４は、アドレス０２００００ｈ〜０３ＦＦＦＦｈのプログラム記憶エリアに割り当てられている。プログラム記憶エリアは、演算部１０２により実行されるプログラムが格納され、データの書き換えが行われない。
【０００８】
第２ＦＲＯＭ１０５は、アドレス０４００００ｈ〜０５ＦＦＦＦｈの画情報記憶エリアに割り当てられている。画情報記憶エリアは、周辺機器により取得されたデータが格納され、データの書き換えが行われる。
【０００９】
演算部１０２は、第２ＦＲＯＭ１０５が寿命になり、書き換え速度が遅くなった場合、第１ＦＲＯＭ１０４でデータの書き換えを行う。この場合、演算部１０２は、入れ替え処理を実行する。
【００１０】
図２は、従来のフラッシュメモリ制御装置１０１の動作として、入れ替え処理を示すフローチャートである。図３Ａは、入れ替え処理が実行される前に第１、２ＦＲＯＭ１０４、１０５にそれぞれ割り当てられたプログラム記憶エリア、画情報記憶エリアを示している。
【００１１】
入れ替え処理において、まず、演算部１０２は、アドレス０２００００ｈ〜０３ＦＦＦＦｈのプログラム記憶エリアに格納されたプログラムを、アドレス０４００００ｈ〜０５ＦＦＦＦｈの画情報記憶エリアに格納する（ステップＳＴ４０１）。即ち、第１ＦＲＯＭ１０４に格納されたプログラムを第２ＦＲＯＭ１０５に格納する。
【００１２】
次に、演算部１０２は、画情報記憶エリア“アドレス０４００００ｈ〜０５ＦＦＦＦｈ”、プログラム記憶エリア“アドレス０２００００ｈ〜０３ＦＦＦＦｈ”をそれぞれ第１、２ＦＲＯＭ１０４、１０５として割り当てる（ステップＳＴ４０２）。即ち、第１、２ＦＲＯＭ１０４、１０５を入れ替える。
【００１３】
次に、演算部１０２は、アドレス０４００００ｈ〜０５ＦＦＦＦｈの画情報記憶エリアに格納されたプログラムを消去する（ステップＳＴ４０３）。即ち、第１ＦＲＯＭ１０４に格納されたプログラムを消去する。
【００１４】
図３Ｂは、入れ替え処理が実行された後に第１、２ＦＲＯＭ１０４、１０５にそれぞれ割り当てられた画情報記憶エリア、プログラム記憶エリアを示している。
【００１５】
これにより、従来のフラッシュメモリ制御装置１０１では、第２ＦＲＯＭ１０５が寿命になっても、第１ＦＲＯＭ１０４でデータの書き換えを行うことができるため、フラッシュメモリの寿命を約２倍とすることができる。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特開２０００−０２０４０５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１７】
通常、フラッシュメモリは複数の領域を有している。しかし、従来のフラッシュメモリ制御装置１０１では、第２ＦＲＯＭ１０５の複数の領域の各々に対して最大書き換え回数まで使用しないで、第２ＦＲＯＭ１０５が寿命と判断したときに、入れ替え処理を実行している。
【００１８】
即ち、従来のフラッシュメモリ制御装置１０１では、複数の領域の各々に対して最大書き換え回数まで使用しているか否かを判断しないで、それぞれプログラム、データが格納された第１、２ＦＲＯＭ１０４、１０５に対して入れ替え処理を実行し、プログラムを第２ＦＲＯＭ１０５に格納している。このように、従来のフラッシュメモリ制御装置１０１では、２つのフラッシュメモリにより入れ替え処理を実行するため、フラッシュメモリを有効活用しているとはいえない。
【００１９】
このため、データの書き換え回数を増加させると共に、フラッシュメモリを有効活用することができるフラッシュメモリ制御装置が望まれる。
【課題を解決するための手段】
【００２０】
以下に、発明を実施するための形態で使用される符号を括弧付きで用いて、課題を解決するための手段を記載する。この符号は、特許請求の範囲の記載と発明を実施するための形態の記載との対応を明らかにするために付加されたものであり、特許請求の範囲に記載されている発明の技術的範囲の解釈に用いてはならない。
【００２１】
本発明のフラッシュメモリ制御装置（１）は、演算部（２）と、フラッシュメモリ（４）とを具備している。フラッシュメモリ（４）は、複数の領域（ＤＡ１〜ＤＡ３、ＰＡ１〜ＰＡ３）を有している。複数の領域（ＤＡ１〜ＤＡ３、ＰＡ１〜ＰＡ３）は、演算部（２）により実行されるプログラムが格納され、データの書き換えが行われないプログラム領域（ＰＡ１〜ＰＡ３）と、データが格納され、データの書き換えが行われるデータ領域（ＤＡ１〜ＤＡ３）とを含んでいる。演算部（２）は、データ領域（ＤＡ３／ＤＡ１／ＤＡ２）として割り当てられた第１領域（“アドレス０８００００ｈ〜０８ＦＦＦＦｈ”／“アドレス０６００００ｈ〜０６ＦＦＦＦｈ”／“アドレス０７００００ｈ〜０７ＦＦＦＦｈ”）に対して、データが書き込まれた累積回数が最大書き換え回数に達したときに、入れ替え処理を実行する。入れ替え処理では、第１領域（“アドレス０８００００ｈ〜０８ＦＦＦＦｈ”／“アドレス０６００００ｈ〜０６ＦＦＦＦｈ”／“アドレス０７００００ｈ〜０７ＦＦＦＦｈ”）と、プログラム領域（ＰＡ３／ＰＡ２／ＰＡ１）として割り当てられた第２領域（“アドレス０５００００ｈ〜０５ＦＦＦＦｈ”／“アドレス０４００００ｈ〜０４ＦＦＦＦｈ”／“アドレス０３００００ｈ〜０３ＦＦＦＦｈ”）とを入れ替える。
【発明の効果】
【００２２】
以上により、本発明のフラッシュメモリ制御装置（１）では、第１の効果として、１つのフラッシュメモリに対して、プログラム領域とデータ領域とを含む複数の領域に細分化し、複数の領域の各々に対して最大書き換え回数まで使用しているか否かを判断して入れ替え処理を実行するため、１つのフラッシュメモリだけで書き換え回数を増やすことができる。
【００２３】
また、本発明のフラッシュメモリ制御装置（１）では、第２の効果として、１つのフラッシュメモリだけで入れ替え処理を実行するため、フラッシュメモリを有効活用しているといえる。
【００２４】
このため、本発明のフラッシュメモリ制御装置（１）によれば、データ書き換え回数を増加させると共に、フラッシュメモリを有効活用することができる。
【図面の簡単な説明】
【００２５】
【図１】図１は、従来のフラッシュメモリ制御装置１０１が適用される電子機器の構成を示している。
【図２】図２は、従来のフラッシュメモリ制御装置１０１の動作として、入れ替え処理を示すフローチャートである。
【図３Ａ】図３Ａは、入れ替え処理が実行される前に第１、２ＦＲＯＭ１０４、１０５にそれぞれ割り当てられたプログラム記憶エリア、画情報記憶エリアを示している。
【図３Ｂ】図３Ｂは、入れ替え処理が実行された後に第１、２ＦＲＯＭ１０４、１０５にそれぞれ割り当てられた画情報記憶エリア、プログラム記憶エリアを示している。
【図４】図４は、本発明の実施形態によるフラッシュメモリ制御装置１が適用される電子機器の構成を示している。
【図５】図５は、フラッシュメモリ４のデータ領域ＤＡ１〜ＤＡ３を示している。
【図６】図６は、プログラム領域アドレス管理テーブル６を示している。
【図７】図７は、本発明の実施形態によるフラッシュメモリ制御装置１の動作を示すフローチャートである。
【図８Ａ】図８Ａは、１回目の入れ替え処理が実行された後のプログラム領域アドレス管理テーブル６を示している。
【図８Ｂ】図８Ｂは、２回目の入れ替え処理が実行された後のプログラム領域アドレス管理テーブル６を示している。
【図８Ｃ】図８Ｃは、３回目の入れ替え処理が実行された後のプログラム領域アドレス管理テーブル６を示している。
【図９Ａ】図９Ａは、１回目の入れ替え処理が実行される前のフラッシュメモリ４の複数の領域ＰＡ１、ＰＡ２、ＰＡ３、ＤＡ１、ＤＡ２、ＤＡ３を示している。
【図９Ｂ】図９Ｂは、１回目の入れ替え処理が実行された後（２回目の入れ替え処理が実行される前）のフラッシュメモリ４の複数の領域ＰＡ１、ＰＡ２、ＤＡ３、ＤＡ１、ＤＡ２、ＰＡ３を示している。
【図９Ｃ】図９Ｃは、２回目の入れ替え処理が実行された後（３回目の入れ替え処理が実行される前）のフラッシュメモリ４の複数の領域ＰＡ１、ＤＡ１、ＤＡ３、ＰＡ２、ＤＡ２、ＰＡ３を示している。
【図９Ｄ】図９Ｄは、３回目の入れ替え処理が実行された後（４回目の入れ替え処理が実行される前）のフラッシュメモリ４の複数の領域ＤＡ２、ＤＡ１、ＤＡ３、ＰＡ２、ＰＡ１、ＰＡ３を示している。
【図９Ｅ】図９Ｅは、最大書き換え回数まで使用されたフラッシュメモリ４の複数の領域ＤＡ２、ＤＡ１、ＤＡ３、ＰＡ２、ＰＡ１、ＰＡ３を示している。
【図１０Ａ】図１０Ａは、１回目の入れ替え処理が実行される前のフラッシュメモリ４の複数の領域ＰＡ１、ＰＡ２、ＤＡ１を示している。
【図１０Ｂ】図１０Ｂは、１回目の入れ替え処理が実行された後（２回目の入れ替え処理が実行される前）のフラッシュメモリ４の複数の領域ＰＡ１、ＰＡ２、ＤＡ１を示している。
【図１０Ｃ】図１０Ｃは、２回目の入れ替え処理が実行された後（３回目の入れ替え処理が実行される前）のフラッシュメモリ４の複数の領域ＰＡ１、ＰＡ２、ＤＡ１を示している。
【図１１Ａ】図１１Ａは、複数の領域のうちのデータ領域が４セクタ（セクタＳ１０〜Ｓ１３）で構成されているものとし、１セクタが４ＫＢである場合、１６ＫＢのデータ領域を示している。
【図１１Ｂ】図１１Ｂは、複数の領域のうちのデータ領域が４セクタ（セクタＳ２０〜Ｓ２７）で構成されているものとし、１セクタが４ＫＢである場合、３２ＫＢのデータ領域を示している。
【発明を実施するための形態】
【００２６】
以下に添付図面を参照して、本発明の実施形態によるフラッシュメモリ制御装置について詳細に説明する。
【００２７】
図４は、本発明の実施形態によるフラッシュメモリ制御装置１が適用される電子機器の構成を示している。
【００２８】
その電子機器は、本発明の実施形態によるフラッシュメモリ制御装置１と、周辺機器とを具備している。周辺機器は、通信又は入力による文字、画像を含むデータを取得する。
【００２９】
本発明の実施形態によるフラッシュメモリ制御装置１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である演算部２と、フラッシュメモリ４とを具備している。
【００３０】
フラッシュメモリ４は複数の領域を有している。
【００３１】
複数の領域は、データの書き換えが行われないプログラム領域と、データの書き換えが行われるデータ領域とを含んでいる。
【００３２】
プログラム領域には、演算部２により実行されるプログラムが格納されている。
【００３３】
データ領域には、周辺機器１０３により取得されたデータが格納される。
【００３４】
以下、説明の都合上、フラッシュメモリ４の複数の領域のうちのデータ領域の個数を３とし、それぞれデータ領域ＤＡ１〜ＤＡ３と称する。同様に、フラッシュメモリ４の複数の領域のうちのプログラム領域の個数を３とし、それぞれプログラム領域ＰＡ１〜ＰＡ３と称する。
【００３５】
演算部２は、自身がデータを処理するときに参照するための書き換え回数管理テーブル５を備えている。図５は、書き換え回数管理テーブル５を示している。書き換え回数管理テーブル５には、複数の領域ＤＡ１〜ＤＡ３、ＰＡ１〜ＰＡ３の各々に対して、累積回数が格納されている。累積回数は、その初期値が０であり、且つ、データが書き込まれる回数を表している。
【００３６】
演算部２は、自身がプログラムを実行するときに参照するためのプログラム領域アドレス管理テーブル６を備えている。図６は、プログラム領域アドレス管理テーブル６を示している。プログラム領域アドレス管理テーブル６には、プログラム領域ＰＡ１〜ＰＡ３のアドレスと、プログラムの長さ（レングス）を表す情報とが格納されている。
【００３７】
演算部２は、フラッシュメモリ４のデータ領域ＤＡ１〜ＤＡ３として割り当てられた第１領域に対して、データが書き込まれた累積回数が最大書き換え回数に達したときに、第１領域と、プログラム領域ＰＡ１〜ＰＡ３として割り当てられた第２領域とを入れ替える入れ替え処理を実行する。
【００３８】
図７は、本発明の実施形態によるフラッシュメモリ制御装置１の動作を示すフローチャートである。
【００３９】
図９Ａは、１回目の入れ替え処理が実行される前のフラッシュメモリ４の複数の領域ＰＡ１、ＰＡ２、ＰＡ３、ＤＡ１、ＤＡ２、ＤＡ３を示している。例えば、複数の領域ＰＡ１、ＰＡ２、ＰＡ３、ＤＡ１、ＤＡ２、ＤＡ３のアドレスは、それぞれ、０３００００ｈ〜０３ＦＦＦＦｈ、０４００００ｈ〜０４ＦＦＦＦｈ、０５００００ｈ〜０５ＦＦＦＦｈ、０６００００ｈ〜０６ＦＦＦＦｈ、０７００００ｈ〜０７ＦＦＦＦｈ、０８００００ｈ〜０８ＦＦＦＦｈである。
【００４０】
（１回目の入れ替え処理）
演算部２は、データ領域ＤＡ３として割り当てられた第１領域“アドレス０８００００ｈ〜０８ＦＦＦＦｈ”に最新のデータを順次書き込み、その第１領域に書き込みスペースがなくなったときにデータの消去を行い、書き込みスペースを確保する（ステップＦ１）。
【００４１】
演算部２は、そのときの書き込みの回数を、書き換え回数管理テーブル５に格納された第１領域“アドレス０８００００ｈ〜０８ＦＦＦＦｈ”の累積回数に加算して、この回数を累積回数として第１領域“アドレス０８００００ｈ〜０８ＦＦＦＦｈ”を更新する（ステップＦ２）。
【００４２】
演算部２は、書き換え回数管理テーブル５を参照して、第１領域“アドレス０８００００ｈ〜０８ＦＦＦＦｈ”の累積回数が最大書き換え回数に達しているか否かを判断する（ステップＦ３）。説明の都合上、最大書き換え回数を５０とする。
【００４３】
ここで、その累積回数が最大書き換え回数“５０”に達していないときに（ステップＦ３−Ｙｅｓ）、演算部２は、再度、ステップＦ１を実行する。
【００４４】
一方、その累積回数が最大書き換え回数“５０”に達したときに（ステップＦ３−Ｎｏ）、演算部２は、プログラム領域ＰＡ１〜ＰＡ３の中から、第１領域“アドレス０８００００ｈ〜０８ＦＦＦＦｈ”と入れ替え可能な第２領域を選択する。プログラム領域ＰＡ１〜ＰＡ３のうちの第２領域の累積回数が０を表している場合、第２領域は第１領域“アドレス０８００００ｈ〜０８ＦＦＦＦｈ”と入れ替え可能である。この場合、プログラム領域ＰＡ１〜ＰＡ３の累積回数は０を表しているため、第２領域はプログラム領域ＰＡ１〜ＰＡ３のどれでもよい。演算部２は、プログラム領域ＰＡ１〜ＰＡ３の中から、その累積回数が０を表しているプログラム領域ＰＡ３“アドレス０５００００ｈ〜０５ＦＦＦＦｈ”を第２領域として選択する（ステップＦ４−Ｙｅｓ）。
【００４５】
この場合、演算部２は、入れ替え処理を実行する（ステップＦ５）。
【００４６】
まず、演算部２は、第１領域“アドレス０８００００ｈ〜０８ＦＦＦＦｈ”に格納されたデータを消去する。
【００４７】
次に、演算部２は、第２領域“アドレス０５００００ｈ〜０５ＦＦＦＦｈ”に格納されたプログラムを第１領域“アドレス０８００００ｈ〜０８ＦＦＦＦｈ”に格納する。即ち、プログラム領域ＰＡ３に格納されたプログラムをデータ領域ＤＡ３に格納する。
【００４８】
次に、演算部２は、第１領域“アドレス０８００００ｈ〜０８ＦＦＦＦｈ”、第２領域“アドレス０５００００ｈ〜０５ＦＦＦＦｈ”をそれぞれプログラム領域ＰＡ３、データ領域ＤＡ３として割り当てる。即ち、プログラム領域ＰＡ３、データ領域ＤＡ３を入れ替える。
【００４９】
次に、演算部２は、第２領域“アドレス０５００００ｈ〜０５ＦＦＦＦｈ”に格納されたプログラムを消去する。即ち、データ領域ＤＡ３に格納されたプログラムを消去する。
【００５０】
演算部２は、入れ替え処理を実行したとき、プログラム領域アドレス管理テーブル６に格納されたプログラム領域ＰＡ３のアドレスを第２領域のアドレス０５００００ｈ〜０５ＦＦＦＦｈから第１領域のアドレス０８００００ｈ〜０８ＦＦＦＦｈに変更する（ステップＦ６）。
【００５１】
図８Ａは、１回目の入れ替え処理が実行された後のプログラム領域アドレス管理テーブル６を示している。
【００５２】
図９Ｂは、１回目の入れ替え処理が実行された後（２回目の入れ替え処理が実行される前）のフラッシュメモリ４の複数の領域ＰＡ１、ＰＡ２、ＤＡ３、ＤＡ１、ＤＡ２、ＰＡ３を示している。複数の領域ＰＡ１、ＰＡ２、ＤＡ３、ＤＡ１、ＤＡ２、ＰＡ３のアドレスは、それぞれ、０３００００ｈ〜０３ＦＦＦＦｈ、０４００００ｈ〜０４ＦＦＦＦｈ、０５００００ｈ〜０５ＦＦＦＦｈ、０６００００ｈ〜０６ＦＦＦＦｈ、０７００００ｈ〜０７ＦＦＦＦｈ、０８００００ｈ〜０８ＦＦＦＦｈである。
【００５３】
（２回目の入れ替え処理）
演算部２は、データ領域ＤＡ１として割り当てられた第１領域“アドレス０６００００ｈ〜０６ＦＦＦＦｈ”に最新のデータを順次書き込み、その第１領域に書き込みスペースがなくなったときにデータの消去を行い、書き込みスペースを確保する（ステップＦ１）。
【００５４】
演算部２は、そのときの書き込みの回数を、書き換え回数管理テーブル５に格納された第１領域“アドレス０６００００ｈ〜０６ＦＦＦＦｈ”の累積回数に加算して、この回数を累積回数として第１領域“アドレス０６００００ｈ〜０６ＦＦＦＦｈ”を更新する（ステップＦ２）。
【００５５】
演算部２は、書き換え回数管理テーブル５を参照して、第１領域“アドレス０６００００ｈ〜０６ＦＦＦＦｈ”の累積回数が最大書き換え回数“５０”に達しているか否かを判断する（ステップＦ３）。
【００５６】
ここで、その累積回数が最大書き換え回数“５０”に達していないときに（ステップＦ３−Ｙｅｓ）、演算部２は、再度、ステップＦ１を実行する。
【００５７】
一方、その累積回数が最大書き換え回数“５０”を超えたときに（ステップＦ３−Ｎｏ）、演算部２は、プログラム領域ＰＡ１〜ＰＡ３の中から、第１領域“アドレス０６００００ｈ〜０６ＦＦＦＦｈ”と入れ替え可能な第２領域を選択する。プログラム領域ＰＡ１〜ＰＡ３のうちの第２領域の累積回数が０を表している場合、第２領域は第１領域“アドレス０６００００ｈ〜０６ＦＦＦＦｈ”と入れ替え可能である。この場合、プログラム領域ＰＡ１、ＰＡ２の累積回数は０を表しているため、第２領域はプログラム領域ＰＡ１、ＰＡ２のどれでもよい。演算部２は、プログラム領域ＰＡ１〜ＰＡ３の中から、その累積回数が０を表しているプログラム領域ＰＡ２“アドレス０４００００ｈ〜０４ＦＦＦＦｈ”を第２領域として選択する（ステップＦ４−Ｙｅｓ）。
【００５８】
この場合、演算部２は、入れ替え処理を実行する（ステップＦ５）。
【００５９】
まず、演算部２は、第１領域
“アドレス０６００００ｈ〜０６ＦＦＦＦｈ”に格納されたデータを消去する。
【００６０】
次に、演算部２は、第２領域“アドレス０４００００ｈ〜０４ＦＦＦＦｈ”に格納されたプログラムを第１領域“アドレス０６００００ｈ〜０６ＦＦＦＦｈ”に格納する。即ち、プログラム領域ＰＡ２に格納されたプログラムをデータ領域ＤＡ１に格納する。
【００６１】
次に、演算部２は、第１領域“アドレス０６００００ｈ〜０６ＦＦＦＦｈ”、第２領域“アドレス０４００００ｈ〜０４ＦＦＦＦｈ”をそれぞれプログラム領域ＰＡ２、データ領域ＤＡ１として割り当てる。即ち、プログラム領域ＰＡ２、データ領域ＤＡ１を入れ替える。
【００６２】
次に、演算部２は、第２領域“アドレス０４００００ｈ〜０４ＦＦＦＦｈ”に格納されたプログラムを消去する。即ち、データ領域ＤＡ１に格納されたプログラムを消去する。
【００６３】
演算部２は、入れ替え処理を実行したとき、プログラム領域アドレス管理テーブル６に格納されたプログラム領域ＰＡ２のアドレスを第２領域のアドレス０４００００ｈ〜０４ＦＦＦＦｈから第１領域のアドレス０６００００ｈ〜０６ＦＦＦＦｈに変更する（ステップＦ６）。
【００６４】
図８Ｂは、２回目の入れ替え処理が実行された後のプログラム領域アドレス管理テーブル６を示している。
【００６５】
図９Ｃは、２回目の入れ替え処理が実行された後（３回目の入れ替え処理が実行される前）のフラッシュメモリ４の複数の領域ＰＡ１、ＤＡ１、ＤＡ３、ＰＡ２、ＤＡ２、ＰＡ３を示している。複数の領域ＰＡ１、ＤＡ１、ＤＡ３、ＰＡ２、ＤＡ２、ＰＡ３のアドレスは、それぞれ、０３００００ｈ〜０３ＦＦＦＦｈ、０４００００ｈ〜０４ＦＦＦＦｈ、０５００００ｈ〜０５ＦＦＦＦｈ、０６００００ｈ〜０６ＦＦＦＦｈ、０７００００ｈ〜０７ＦＦＦＦｈ、０８００００ｈ〜０８ＦＦＦＦｈである。
【００６６】
（３回目の入れ替え処理）
演算部２は、データ領域ＤＡ２として割り当てられた第１領域“アドレス０７００００ｈ〜０７ＦＦＦＦｈ”に最新のデータを順次書き込み、その第１領域に書き込みスペースがなくなったときにデータの消去を行い、書き込みスペースを確保する（ステップＦ１）。
【００６７】
演算部２は、そのときの書き込みの回数を、書き換え回数管理テーブル５に格納された第１領域“アドレス０７００００ｈ〜０７ＦＦＦＦｈ”の累積回数に加算して、この回数を累積回数として第１領域“アドレス０７００００ｈ〜０７ＦＦＦＦｈ”を更新する（ステップＦ２）。
【００６８】
演算部２は、書き換え回数管理テーブル５を参照して、第１領域“アドレス０７００００ｈ〜０７ＦＦＦＦｈ”の累積回数が最大書き換え回数“５０”に達しているか否かを判断する（ステップＦ３）。
【００６９】
ここで、その累積回数が最大書き換え回数“５０”に達していないときに（ステップＦ３−Ｙｅｓ）、演算部２は、再度、ステップＦ１を実行する。
【００７０】
一方、その累積回数が最大書き換え回数“５０”を超えたときに（ステップＦ３−Ｎｏ）、演算部２は、プログラム領域ＰＡ１〜ＰＡ３の中から、第１領域“アドレス０７００００ｈ〜０７ＦＦＦＦｈ”と入れ替え可能な第２領域を選択する。プログラム領域ＰＡ１〜ＰＡ３のうちの第２領域の累積回数が０を表している場合、第２領域は第１領域“アドレス０７００００ｈ〜０７ＦＦＦＦｈ”と入れ替え可能である。この場合、プログラム領域ＰＡ１の累積回数は０を表しているため、第２領域はプログラム領域ＰＡ１となる。即ち、演算部２は、プログラム領域ＰＡ１〜ＰＡ３の中から、その累積回数が０を表しているプログラム領域ＰＡ１“アドレス０３００００ｈ〜０３ＦＦＦＦｈ”を第２領域として選択する（ステップＦ４−Ｙｅｓ）。
【００７１】
この場合、演算部２は、入れ替え処理を実行する（ステップＦ５）。
【００７２】
まず、演算部２は、第１領域“アドレス０７００００ｈ〜０７ＦＦＦＦｈ”に格納されたデータを消去する。
【００７３】
次に、演算部２は、第２領域“アドレス０３００００ｈ〜０３ＦＦＦＦｈ”に格納されたプログラムを第１領域“アドレス０７００００ｈ〜０７ＦＦＦＦｈ”に格納する。即ち、プログラム領域ＰＡ１に格納されたプログラムをデータ領域ＤＡ２に格納する。
【００７４】
次に、演算部２は、第１領域“アドレス０７００００ｈ〜０７ＦＦＦＦｈ”、第２領域“アドレス０３００００ｈ〜０３ＦＦＦＦｈ”をそれぞれプログラム領域ＰＡ１、データ領域ＤＡ２として割り当てる。即ち、プログラム領域ＰＡ１、データ領域ＤＡ２を入れ替える。
【００７５】
次に、演算部２は、第２領域“アドレス０３００００ｈ〜０３ＦＦＦＦｈ”に格納されたプログラムを消去する。即ち、データ領域ＤＡ２に格納されたプログラムを消去する。
【００７６】
演算部２は、入れ替え処理を実行したとき、プログラム領域アドレス管理テーブル６に格納されたプログラム領域ＰＡ１のアドレスを第２領域のアドレス０３００００ｈ〜０３ＦＦＦＦｈから第１領域のアドレス０７００００ｈ〜０７ＦＦＦＦｈに変更する（ステップＦ６）。
【００７７】
図８Ｃは、３回目の入れ替え処理が実行された後のプログラム領域アドレス管理テーブル６を示している。
【００７８】
図９Ｄは、３回目の入れ替え処理が実行された後（４回目の入れ替え処理が実行される前）のフラッシュメモリ４の複数の領域ＤＡ２、ＤＡ１、ＤＡ３、ＰＡ２、ＰＡ１、ＰＡ３を示している。複数の領域ＰＡ１、ＤＡ１、ＤＡ３、ＰＡ２、ＤＡ２、ＰＡ３のアドレスは、それぞれ、“アドレス０３００００ｈ〜０３ＦＦＦＦｈ”、“アドレス０４００００ｈ〜０４ＦＦＦＦｈ”、“アドレス０５００００ｈ〜０５ＦＦＦＦｈ”、“アドレス０６００００ｈ〜０６ＦＦＦＦｈ”、“アドレス０７００００ｈ〜０７ＦＦＦＦｈ”、“アドレス０８００００ｈ〜０８ＦＦＦＦｈ”である。
【００７９】
このように、本発明の実施形態によるフラッシュメモリ制御装置１では、演算部２がステップＦ１〜Ｆ６を繰り返すことにより、複数の領域ＰＡ１〜ＰＡ３、ＤＡ１〜ＤＡ３の全てに対して最大書き換え回数まで使用することができる。図９Ｅは、最大書き換え回数まで使用されたフラッシュメモリ４の複数の領域ＤＡ２、ＤＡ１、ＤＡ３、ＰＡ２、ＰＡ１、ＰＡ３を示している。この場合、複数の領域ＤＡ２、ＤＡ１、ＤＡ３、ＰＡ２、ＰＡ１、ＰＡ３の累積回数は全て“５０”を表している（ステップＦ４−Ｎｏ）。
【００８０】
なお、上述では、複数の領域として、データ領域ＤＡ１〜ＤＡ３とプログラム領域ＰＡ１〜ＰＡ３とを例にして、データ領域とプログラム領域とが同数である場合について説明しているが、データ領域とプログラム領域との数が異なっていても実現できる。
【００８１】
例えば、図１０Ａに示されるように、１回目の入れ替え処理が実行される前のフラッシュメモリ４の複数の領域が領域ＰＡ１、ＰＡ２、ＤＡ１であるものとする。この場合、１回目の入れ替え処理が実行される場合、図１０Ｂに示されるように、演算部２は、プログラム領域ＰＡ２、データ領域ＤＡ１を入れ替え、２回目の入れ替え処理が実行される場合、図１０Ｃに示されるように、演算部２は、プログラム領域ＰＡ１、データ領域ＤＡ１を入れ替えればよい。
【００８２】
ここで、データの書き換え回数を図１１Ａ、１１Ｂを用いて説明する。
【００８３】
図１１Ａは、複数の領域のうちのデータ領域が４セクタ（セクタＳ１０〜Ｓ１３）で構成されているものとし、１セクタが４ＫＢである場合、１６ＫＢのデータ領域を示している。これを（Ａ）の場合と称する。
【００８４】
例えば、セクタＳ１１が、データの書き換え回数として“最悪”となる最大書き換え回数に達すると、入れ替え処理が実行される。セクタＳ１１が書き換え最大書き換え回数である５０回の書き換えを行うまでに、セクタＳ１１以外の特性の良いセクタＳ１１〜Ｓ１３の書き換えが４０回行われるものとすると、全書き換え回数は、
全書き換え回数＝５０回×１セクタ＋４０回×３セクタ＝１７０回
（ＭＡＸ：５０回×４セクタ＝２００回）
により表される。
【００８５】
図１１Ｂは、複数の領域のうちのデータ領域が４セクタ（セクタＳ２０〜Ｓ２７）で構成されているものとし、１セクタが４ＫＢである場合、３２ＫＢのデータ領域を示している。これを（Ｂ）の場合と称する。
【００８６】
例えば、セクタＳ２２が、データの書き換え回数として“最悪”となる最大書き換え回数に達すると、入れ替え処理が実行される。セクタＳ２２が書き換え最大書き換え回数である５０回の書き換えを行うまでに、セクタＳ２２以外の特性の良いセクタＳ２０、Ｓ２１、Ｓ２３〜Ｓ２７の書き換えが４０回行われるものとすると、全書き換え回数は、
全書き換え回数＝５０回×１セクタ＋４０回×７セクタ＝３３０回
（ＭＡＸ：５０回×８セクタ＝４００回）
により表される。
【００８７】
このように、本発明の実施形態によるフラッシュメモリ制御装置１によれば、（Ａ）、（Ｂ）の場合から、領域の数が増加すればするほど、データの書き換え回数が増加することが分かる。
【００８８】
また、従来のフラッシュメモリ制御装置１０１と本発明の実施形態によるフラッシュメモリ制御装置１との書き換え回数の差を具体的に挙げる。
【００８９】
１セクタサイズ４ＫＢ、全フラッシュメモリ１ＭＢ、１セクタの書き換え回数１００回、入れ替え領域５１２ＫＢの１セクタ辺りの平均書き換え回数を９５回とした場合、従来のフラッシュメモリ制御装置１０１では、トータルの書き換え回数が２４３２０回（２５６セクタ×９５回）であるのに対して、本発明の実施形態によるフラッシュメモリ制御装置１ではトータルの書き換え回数が２５６００回（２５６セクタ×１００回）となる。
【００９０】
このように、本発明の実施形態によるフラッシュメモリ制御装置１によれば、データ領域とプログラム領域の数を増加することで、１つのフラッシュメモリだけで書き換え回数を増やすことができる。
【００９１】
以上の説明により、本発明の実施形態によるフラッシュメモリ制御装置１では、第１の効果として、１つのフラッシュメモリに対して、プログラム領域とデータ領域とを含む複数の領域に細分化し、複数の領域の各々に対して最大書き換え回数まで使用しているか否かを判断して入れ替え処理を実行するため、１つのフラッシュメモリだけで書き換え回数を増やすことができる。
【００９２】
また、本発明の実施形態によるフラッシュメモリ制御装置１では、第２の効果として、１つのフラッシュメモリだけで入れ替え処理を実行するため、フラッシュメモリを有効活用しているといえる。
【００９３】
このため、本発明の実施形態によるフラッシュメモリ制御装置１によれば、データ書き換え回数を増加させると共に、フラッシュメモリを有効活用することができる。
【符号の説明】
【００９４】
１    フラッシュメモリ制御装置、
２    演算部（ＣＰＵ）、
４    フラッシュメモリ、
５    書き換え回数管理テーブル、
６    プログラム領域アドレス管理テーブル、
１０１    フラッシュメモリ制御装置、
１０２    演算部（ＣＰＵ）、
１０３    周辺機器、
１０４    フラッシュメモリ、
ＤＡ１〜ＤＡ３    データ領域、
ＰＡ１〜ＰＡ３    プログラム領域
【図１】
2011175377.tif 000003
【図２】
2011175377.tif 000004
【図３Ａ】
2011175377.tif 000005
【図３Ｂ】
2011175377.tif 000006
【図４】
2011175377.tif 000007
【図５】
2011175377.tif 000008
【図６】
2011175377.tif 000009
【図７】
2011175377.tif 000010
【図８Ａ】
2011175377.tif 000011
【図８Ｂ】
2011175377.tif 000012
【図８Ｃ】
2011175377.tif 000013
【図９Ａ】
2011175377.tif 000014
【図９Ｂ】
2011175377.tif 000015
【図９Ｃ】
2011175377.tif 000016
【図９Ｄ】
2011175377.tif 000017
【図９Ｅ】
2011175377.tif 000018
【図１０Ａ】
2011175377.tif 000019
【図１０Ｂ】
2011175377.tif 000020
【図１０Ｃ】
2011175377.tif 000021
【図１１Ａ】
2011175377.tif 000022
【図１１Ｂ】
2011175377.tif 000023