(57)【要約】【課題】不揮発性メモリの消去上限回数以上の書換えを可能にすることを目的とする。【解決手段】消去上限回数を有すると共に、ソフトウエア本体を格納する低頻度書換え領域１６Ｃと、ソフトウエア本体を拡張する処理内容を予め定めた書込み単位毎に格納する高頻度書換え領域１６Ｂとに分割された不揮発性メモリ１６と、高頻度書換え領域１６Ｂに格納された書換え対象の処理内容を書き換える際に、高頻度書換え領域１６Ｂのブランク領域に書換え対象の処理内容を書込み単位毎に書込み、ブランク領域が不足する場合は、高頻度書換え領域１６Ｂを消去してから全処理内容を書込み単位毎に書き込むように不揮発性メモリを制御するＣＰＵ１２と、を備える。【選択図】図１
2018128924.tif 000002
【特許請求の範囲】
【請求項１】
消去上限回数を有すると共に、予め定めた情報を格納する第１領域と、前記情報を拡張する処理内容を予め定めた書込み単位毎に格納する第２領域とに分割された不揮発性メモリと、
前記第２領域に格納された書換え対象の処理内容を書き換える際に、前記第２領域のブランク領域に書換え対象の処理内容を前記書込み単位毎に書込み、前記書込み単位分の前記ブランク領域が不足する場合は、前記第２領域内の全処理内容を消去して全処理内容を取得し、全処理内容を前記書込み単位毎に前記第２領域に書き込む制御を行う制御部と、
を備えた電子制御装置。
【請求項２】
前記制御部は、書換え対象の処理内容を前記第２領域に書き込む際に、アドレス順に書込み、処理内容を読み出す際に、アドレス順に基づいて最新の処理内容を実行可能な状態に制御する請求項１に記載の電子制御装置。
【請求項３】
前記制御部は、書換え対象の処理内容を前記第２領域に書き込む際に、最新を表す属性値を付与し、処理内容を読み出す際に、前記属性値に基づいて最新の処理内容を実行可能な状態に制御する請求項１に記載の電子制御装置。
【請求項４】
前記第１領域はアプリケーションを格納し、前記第２領域は前記アプリケーションを拡張する処理内容を前記書込み単位毎に格納する請求項１〜３の何れか１項記載の電子制御装置。
【請求項５】
前記書込み単位は、次の前記処理内容のアドレス、前記処理内容のステータス、及び前記処理内容の呼び出し元を関連付ける識別情報を含む属性情報、並びに前記情報を拡張する処理内容である請求項１に記載の電子制御装置。
【請求項６】
前記制御部は、前記ステータスに問題がある場合は、予め定めた例外処理を行うように更に制御する請求項５に記載の電子制御装置。
【請求項７】
コンピュータを請求項１〜６の何れか１項に記載の電制御装置における制御部として機能させるための不揮発性メモリの書換えプログラム。
【請求項８】
消去上限回数を有すると共に、予め定めた情報を格納する第１領域と、前記情報を拡張する処理内容を予め定めた書込み単位毎に格納する第２領域とに分割された不揮発性メモリの前記第２領域に格納された書換え対象の処理内容を制御部の制御によって書き換える際に、前記第２領域のブランク領域に書換え対象の前記処理内容を前記書込み単位毎に書込み、
前記書込み単位分の前記ブランク領域が不足する場合は、使用中の処理内容及び書換え対象の処理内容を退避してから前記第２領域内の処理内容を消去し、退避した使用中の処理内容及び書換え対象の処理内容を前記書込み単位毎に前記第２領域に書き込むように前記不揮発性メモリの書換えを行う不揮発性メモリの書換え方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリの書換えを制御する電子制御装置、不揮発性メモリの書換えプログラム、及び不揮発性メモリの書換え方法に関する。
【背景技術】
【０００２】
自動車に搭載された電子制御装置では、不揮発性メモリに格納されるプログラムの書換えについて種々の方法が提案されている（例えば、特許文献１）。
【０００３】
特許文献１には、不揮発性メモリに書き込まれていたリプログラミング（以下、リプログと称す。）に従って、不揮発性メモリに書き込まれていたアプリケーションを消去する第１消去処理と、第１消去処理後、不揮発性メモリに書き込まれていたリプログに従って、新たなリプログを不揮発性メモリに書き込む第１書き込み処理と、第１書き込み処理後、第１書き込み処理にて書き込まれたリプログに従って、不揮発性メモリに書き込まれていたリプログを消去する第２消去処理と、第２消去処理後、アプリケーションを不揮発性メモリに書き込む第２書き込み処理と、を含む書換処理を行う電子制御装置が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−２４７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１では、不揮発性メモリの書換え回数については考慮していないため、改善の余地がある。
【０００６】
フラッシュＲＯＭ（Read-Only Memory）等の不揮発性メモリでは、リプログの上限回数が、不揮発性メモリの消去上限回数によって決まっており、消去上限回数を超えるソフトウエアの書換えができない。
【０００７】
本発明は、上記事実を考慮して成されたもので、不揮発性メモリの消去上限回数以上の書換えを可能にすることを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために請求項１に記載の発明は、消去上限回数を有すると共に、予め定めた情報を格納する第１領域と、前記情報を拡張する処理内容を予め定めた書込み単位毎に格納する第２領域とに分割された不揮発性メモリと、前記第２領域に格納された書換え対象の処理内容を書き換える際に、前記第２領域のブランク領域に書換え対象の処理内容を前記書込み単位毎に書込み、前記書込み単位分の前記ブランク領域が不足する場合は、前記第２領域内の全処理内容を消去して全処理内容を取得し、全処理内容を前記書込み単位毎に前記第２領域に書き込む制御を行う制御部と、を備える。
【０００９】
請求項１に記載の発明によれば、不揮発性メモリは、消去上限回数を有すると共に、予め定めた情報を格納する第１領域と、当該情報を拡張する処理内容を予め定めた書込み単位毎に格納する第２領域とに分割されている。拡張する処理内容を第１領域とは別の第２領域に格納することで、拡張する処理内容を書き換える毎に第１領域を書き換える必要がなくなるので、第１領域の書換え回数を抑制することが可能となる。なお、請求項４に記載の発明のように、第１領域はアプリケーションを格納し、第２領域はアプリケーションを拡張する処理内容を書込み単位毎に格納してもよい。
【００１０】
そして、制御部では、第２領域に格納された書換え対象の処理内容を書き換える際に、第２領域のブランク領域に書換え対象の処理内容を書込み単位毎に書き込む制御が行われる。これにより、第２領域全体を消去することなく、ブランク領域に書換え対象の処理内容が書込み単位毎に格納される。そして、書込み単位分のブランク領域が不足する場合、すなわち、残っているブランク領域よりも追加で書き込む分（データ容量）の方が大きい場合は、第２領域内の全処理内容を消去して全処理内容を取得し、全処理内容を書込み単位毎に第２領域に書き込む制御が行われる。これにより、消去回数以上のソフトウエアの書換えが可能となる。
【００１１】
制御部は、請求項２に記載の発明のように、書換え対象の処理内容を第２領域に書き込む際に、アドレス順に書込み、処理内容を読み出す際に、アドレス順に基づいて最新の処理内容を実行可能な状態に制御するようにしてもよい。或いは、制御部は、請求項３に記載の発明のように、書換え対象の処理内容を第２領域に書き込む際に、最新を表す属性値を付与し、処理内容を読み出す際に、属性値に基づいて最新の処理内容を実行可能な状態に制御するようにしてもよい。これらにより、古い処理内容を格納したままで新しい処理内容を読み出すことが可能となる。
【００１２】
なお、書込み単位は、請求項５に記載の発明のように、次の前記処理内容のアドレス、前記処理内容のステータス、及び前記処理内容の呼び出し元を関連付ける識別情報を含む属性情報、並びに前記処理内容を適用してもよい。この場合、請求項６に記載の発明のように、制御部は、ステータスに問題がある場合は、例えば、リセットや異常通知処理等の予め定めた例外処理を行うように更に制御してもよい。
【００１３】
なお、本発明は、請求項７に記載の発明のように、コンピュータを請求項１〜６の何れか１項に記載の電制御装置における制御部として機能させるための不揮発性メモリの書換えプログラムとしてもよい。
【００１４】
或いは、請求項８に記載の発明のように、消去上限回数を有すると共に、予め定めた情報を格納する第１領域と、前記情報を拡張する処理内容を予め定めた書込み単位毎に格納する第２領域とに分割された不揮発性メモリの前記第２領域に格納された書換え対象の処理内容を制御部の制御によって書き換える際に、前記第２領域のブランク領域に書換え対象の前記処理内容を前記書込み単位毎に書込み、前記書込み単位分の前記ブランク領域が不足する場合は、使用中の処理内容及び書換え対象の処理内容を退避してから前記第２領域内の処理内容を消去し、退避した使用中の処理内容及び書換え対象の処理内容を前記書込み単位毎に前記第２領域に書き込むように前記不揮発性メモリの書換えを行う不揮発性メモリの書換え方法としてもよい。
【発明の効果】
【００１５】
以上説明したように本発明によれば、不揮発性メモリの消去上限回数以上のソフトウエアの書換えが可能となる、という効果がある。
【図面の簡単な説明】
【００１６】
【図１】本実施形態に係るマイクロコンピュータの概略構成を示す図である。
【図２】本実施形態に係るマイクロコンピュータの不揮発性メモリの構造を示す図である。
【図３】高頻度書換え領域の構造を示す図である。
【図４】処理内容の実行方法を説明するための図である。
【図５】不揮発性メモリの消去上限回数以上の書換えを説明するための図である。
【図６】本実施形態に係るマイクロコンピュータで行われる関数アドレスのテーブルを作成する処理の一例を示すフローチャートである。
【図７】本実施形態に係るマイクロコンピュータの不揮発性メモリの書換えを行う際にＰＣで行われる処理の流れの一例を示すフローチャートである。
【図８】本実施形態に係るマイクロコンピュータで行われる不揮発性メモリの書換え時の処理の流れの一例を示すフローチャートである。
【図９】本実施形態に係るマイクロコンピュータの不揮発性メモリの書換え時のＰＣとマイクロコンピュータとの通信を説明するための図である。
【図１０】高頻度書換え領域に書き込まれた処理内容の一例を示す図である。
【発明を実施するための形態】
【００１７】
以下、図面を参照して本発明の実施の形態の一例を詳細に説明する。本実施形態では、電子制御装置としてのマイクロコンピュータを一例として説明する。図１は、本実施形態に係るマイクロコンピュータの概略構成を示す図である。
【００１８】
本実施形態に係るマイクロコンピュータ１０は、制御部の一例としてのＣＰＵ(Central Processing Unit)１２、メモリ１４、及び通信モジュール２０等を含んだ１チップマイコンとして構成されている。なお、マイクロコンピュータ１０は、通信モジュール２０を省略して別に通信モジュール２０を設けた構成としてもよい。或いは、上記の構成の他にタイマ等の他の構成を含むようにしてもよい。
【００１９】
通信モジュール２０は、ＰＣ（パーソナルコンピュータ）２２等の外部の装置と接続可能とされている。また、通信モジュール２０は、例えば、無線通信によって動作するネットワーク通信を行うモジュールを適用してもよいし、ＣＡＮプロトコルで動作するネットワーク通信を行うためモジュールを適用してもよい。例えば、車両内に設けられたネットワークに接続された各種機器との通信を行う。
【００２０】
メモリ１４は、例えば、フラッシュＲＯＭ（Read-Only Memory）などの不揮発性メモリ１６やＲＡＭ(Random Access Memory)などの揮発性メモリ１８を含み、ＣＰＵ１２は、メモリ１４を用いて各種プログラムの実行等を制御する。例えば、フラッシュＲＯＭ等の不揮発性メモリ１６に記憶されたプログラムをＲＡＭ等の揮発性メモリ１８に展開してＣＰＵ１２が実行することにより各種処理を行う。
【００２１】
本実施形態では、ＰＣ２２等の外部の装置を用いて、例えば、通信モジュール２０を介してネットワークを利用して、マイクロコンピュータ１０のメモリ１４に記憶されたプログラムを書き換えることが可能とされている。
【００２２】
図２は、本実施形態に係るマイクロコンピュータ１０の不揮発性メモリ１６の構造を示す図である。
【００２３】
不揮発性メモリ１６は、プログラムＲＯＭ領域を含んで構成されており、当該プログラムＲＯＭ領域は、図２に示すように、複数の領域（図２では３領域）に分割されている。
【００２４】
詳細には、プログラムＲＯＭ領域は、書換え禁止領域１６Ａ、第２領域の一例としての高頻度書換え領域１６Ｂ、及び第１領域の一例としての低頻度書換え領域１６Ｃの３つの領域に分割されている。
【００２５】
書換え禁止領域１６Ａは、リプログラミング（以下、リプログという。）制御を行うためのプログラムが記憶され、書換え非対象の領域とされている。
【００２６】
低頻度書換え領域１６Ｃは、従来のリプログ対象である書換え対象のソフトウエア本体（アプリケーション）を格納する領域である。
【００２７】
高頻度書換え領域１６Ｂは、消去上限回数を超えるソフトウエアの書換えを実現するための領域である。具体的には、ソフトウエア本体を拡張する処理内容を格納する。ソフトウエア本体を拡張する処理内容をアプリケーション本体とは別の領域に格納して、高頻度書換え領域１６Ｂの処理内容を更新することにより、低頻度書換え領域１６Ｃの書換え回数を抑制することが可能となる。
【００２８】
ここで、高頻度書換え領域１６Ｂについて図３を参照して説明する。図３は、高頻度書換え領域の構造を示す図である。
【００２９】
高頻度書換え領域１６Ｂは、図３に示すように、ヘッダ（<Header>）と処理内容（Function()）を格納する領域とされている。高頻度書換え領域は、ヘッダと処理内容を最小単位の書込み単位として書換えを行う。
【００３０】
処理内容は、ソフトウエア本体の拡張したい処理内容を示し、低頻度書換え領域１６Ｃに格納されたソフトウエア本体から読み出される。
【００３１】
ヘッダは、個々の処理内容の属性情報を示す。例えば、次の処理内容のヘッダのアドレスや、処理内容のステータス（改ざんあり／なし等）、処理内容の読み出し元を関連付ける識別情報(以下、ＩＤ値と称す。）などの属性情報を示す。これらのヘッダの情報を使って、ソフトウエア本体が読み出す処理内容が問題ないか、最新の処理内容としてどの処理内容を呼び出すかなどを判定する。
【００３２】
なお、図３中の<Blank>は、ブランク領域を示す。ブランク領域（<Blank>）は、消去が実行され、プログラムが未書込みの領域を示す。
【００３３】
次に、処理内容の実行方法について説明する。図４は、処理内容の実行方法を説明するための図である。
【００３４】
処理内容の実行は、処理内容を特定するＩＤと実行する関数アドレスのテーブルを用いて行う。すなわち、低頻度書換え領域１６Ｃに格納されたソフトウエア本体から関数呼び出し時に当該テーブルを参照して処理内容のアドレスを取得する。そして、取得したアドレスに対応する処理内容を読み出して実行する。
【００３５】
テーブルは、例えば、起動時に、全ての処理内容のヘッダの属性値を確認して揮発性メモリ１８に作成する。すなわち、不揮発性メモリ１６の高頻度書換え領域１６Ｂに格納された処理内容のヘッダのＩＤ値とテーブルのＩＤ値を比較してＩＤ値と処理内容の対応を以下の手順に従って確認していく。
【００３６】
ステータスを確認し、改ざんなしであれば処理内容のアドレスを更新し、改ざんありの場合は、予め定めた例外処理（リセットまたは異常通知処理等）を実施する。
【００３７】
また、同じＩＤ値の処理内容が存在する場合は最新の処理内容のアドレスに更新する。最新であるか否かを判定する方法としては、例えば、処理内容の書換えを行う際に、アドレス順に処理内容の書込みを行うことにより、アドレス順に基づいて後から探索する処理内容が最新になるようにしてもよい。或いは、ヘッダの属性に最新であることを表す属性値を設けて最新か否かを判定してもよい。
【００３８】
そして、全てのＩＤ値のアドレスが確定して末尾まで到達した場合に処理を終了して通常の起動制御に移行する。全てのＩＤ値のアドレスが確定しなかった場合には、予め定めた例外処理（リセットまたは異常通知処理）等を実施する。なお、末尾到達の判定は、例えば、ＲＯＭのブランクを検出する機能があれば当該機能を使用して判定してもよい。或いは、データ保存用のフラッシュメモリ等にブランク領域の開始アドレスを保存して、保存した開始アドレスに到達したか否かを判定することで末尾到達を判定してもよい。
【００３９】
このように作成したテーブルを用いて処理内容を読み出すことにより、古い処理内容が高頻度書換え領域１６Ｂに残っていても最新の処理内容を読み出すことが可能となる。
【００４０】
次に、不揮発性メモリの消去上限回数以上の書換えについて説明する。図５は、不揮発性メモリの消去上限回数以上の書換えを説明するための図である。
【００４１】
低頻度書換え領域１６Ｃについて、書換えを行う際に、消去せずにブランク領域に順次書込みを行っていく。図５では、古い処理内容はＩＤ値を含めて消去せずに、ブランク領域に新しい処理内容をＩＤ値と共に書き込む。
【００４２】
そして、書込み対象の新しい処理内容を書き込む際にブランク領域が不足する場合に、１度に高頻度書換え領域１６Ｂの全てを消去して書換えを行う。高頻度書換え領域１６Ｂの全てを消去する際には、書込み対象の処理内容だけではなく、全処理内容（未使用の処理内容は消去した使用中の処理内容を含む全処理内容）の送信要求をＰＣ２２に対して行って、ＰＣ２２から送信された全処理内容を高頻度書換え領域１６Ｂに書き込む。消去した未使用の処理内容の領域はブランク領域となり、以降の書換え領域として使用する。すなわち、書換え毎に高頻度書換え領域の全てを消去せずに、書込み単位分のブランク領域が不足する場合に消去して書き換えるので、消去上限回数以上の書換えを行うことが可能となる。例えば、図５に示すように、書換え回数１回目〜３回目までは消去することなく書換えを行い、ブランク領域が不足した場合に、消去して書換えを行う。これにより、１回消去するまでに複数回の書換えを行うことが可能となる。
【００４３】
続いて、本実施形態に係るマイクロコンピュータ１０で行われる関数アドレスのテーブルを作成する処理の具合的な処理について説明する。図６は、本実施形態に係るマイクロコンピュータ１０で行われる関数アドレスのテーブルを作成する処理の一例を示すフローチャートである。なお、図６の処理はマイクロコンピュータ１０の起動が指示された場合に開始する。
【００４４】
ステップ１００では、ＣＰＵ１２が、高頻度書換え領域１６Ｂに格納された注目の処理内容のヘッダ情報を取得してステップ１０２へ移行する。具体的には、高頻度書換え領域１６Ｂの最初のアドレスに格納された処理内容を注目の処理内容として該処理内容のヘッダ情報を取得する。
【００４５】
ステップ１０２では、ＣＰＵ１２が、ヘッダのステータスを確認してステップ１０４へ移行する。
【００４６】
ステップ１０４では、ＣＰＵ１２が、ステータスの確認結果に基づいて、異常ステータスなしであるか否かを判定する。例えば、改ざん等の異常なステータスがないか否かを判定し、該判定が否定された場合にはステップ１０６へ移行し、肯定された場合にはステップ１０８へ移行する。
【００４７】
ステップ１０６では、ＣＰＵ１２が、予め定めた例外処理を行って一連の処理を終了する。なお、例外処理としては、例えば、リセットを行って始めからやり直す処理を行ったり、予め定めた異常通知処理等を行う。
【００４８】
ステップ１０８では、ＣＰＵ１２が、処理内容のアドレスをテーブルに更新してステップ１１０へ移行する。すなわち、テーブルに注目の処理内容のＩＤ値が既に存在する場合には新しい処理内容のアドレスに更新する。一方、テーブルに注目の処理内容のＩＤ値が存在しない場合にはＩＤ値と処理内容のアドレスを新たに登録する。
【００４９】
ステップ１１０では、ＣＰＵ１２が、高頻度書換え領域１６Ｂの末尾まで到達したか否かを判定する。該判定は、ブランク領域まで到達したか否かを判定し、該判定が否定された場合にはステップ１１２へ移行し、肯定された場合にはステップ１１４へ移行する。
【００５０】
ステップ１１２では、ＣＰＵ１２が、次の処理内容を注目の処理内容としてヘッダ情報を取得してステップ１０２へ戻って上述の処理を繰り返す。
【００５１】
ステップ１１４では、ＣＰＵ１２が、全てのＩＤ値のアドレスが確定したか否かを判定し、該判定が肯定された場合にはステップ１１６へ移行し、否定された場合には上述のステップ１０６へ移行して例外処理を行う。
【００５２】
ステップ１１６では、ＣＰＵ１２が、起動処理へ移行するように制御して一連の処理を終了する。
【００５３】
続いて、高頻度書換え領域１６Ｂの書換えを行う際の具体的な処理について説明する。図７は、本実施形態に係るマイクロコンピュータ１０の不揮発性メモリの書換えを行う際にＰＣ２２で行われる処理の流れの一例を示すフローチャートである。
【００５４】
ステップ２００では、ＰＣ２２が、書換え対象の処理内容のサイズ情報をマイクロコンピュータ１０へ送信してステップ２０２へ移行する。
【００５５】
ステップ２０２では、ＰＣ２２が、書込み対象の処理内容を書込み可能であるか否かを判定する。該判定は、マイクロコンピュータ１０から書込み可能が通知されたか否かを判定する。そして、書込み可能が通知されずに全処理内容の送信要求が行われた場合に該判定が否定されてステップ２０４へ移行し、肯定された場合にはステップ２０６へ移行する。
【００５６】
ステップ２０４では、ＰＣ２２が、未使用の処理内容を除く、使用中の処理内容及び書込み対象の処理内容を含む全処理内容をマイクロコンピュータ１０に送信して一連の処理を終了する。
【００５７】
一方、ステップ２０６では、ＰＣ２２が、書込み対象の処理内容をマイクロコンピュータ１０に送信して一連の処理を終了する。
【００５８】
次に、マイクロコンピュータ１０側で行われる処理について説明する。図８は、本実施形態に係るマイクロコンピュータ１０で行われる不揮発性メモリ１６の書換え時の処理の流れの一例を示すフローチャートである。なお、図８の処理は、高頻度書換え領域１６Ｂの書換えが指示された場合に開始する。
【００５９】
ステップ３００では、ＣＰＵ１２が、通信モジュール２０を介してＰＣ２２から書き換え対象のサイズ情報を受信してステップ３０２へ移行する。すなわち、上述のステップ２００で送信された書換え対象の処理内容のサイズ情報を受信する。
【００６０】
ステップ３０２では、ＣＰＵ１２が、高頻度書換え領域のブランク領域が不足するか否かを判定する。該判定は、受信したサイズ情報に基づいて、書換え対象の処理内容の書込み単位分のブランク領域が不足するか否かを判定し、該判定が否定された場合にはステップ３０４へ移行し、肯定された場合にはステップ３０８へ移行する。
【００６１】
ステップ３０４では、ＣＰＵ１２が、書込み対象の処理内容の書込みが可能であることをＰＣ２２へ通知してステップ３０６へ移行する。これにより、書込み対象の処理内容がＰＣ２２からマイクロコンピュータ１０に送信される。
【００６２】
ステップ３０６では、ＣＰＵ１２が、ブランク領域に書換え対象の処理内容を書き込んで一連の処理を終了する。
【００６３】
一方、ステップ３０８では、ＣＰＵ１２が、全処理内容の送信要求をＰＣ２２に行うことによって全処理内容を取得してステップ３１０へ移行する。これにより、ＰＣ２２では、未使用の処理内容を除く、使用中の処理内容及び書込み対象の処理内容を含む全処理内容の送信が行われる。
【００６４】
ステップ３１０では、ＣＰＵ１２が、高頻度書換え領域１６Ｂの全消去を行ってステップ３１２へ移行する。
【００６５】
ステップ３１２では、ＣＰＵ１２が、受信した全処理内容にヘッダを付与して高頻度書換え領域１６Ｂに書き込んで一連の処理を終了する。
【００６６】
すなわち、図９に示すように、ＰＣ２２から書込み対象の処理内容のサイズ情報をマイクロコンピュータ１０に送信し、マイクロコンピュータ１０が書込み可能（ＯＫ）または書込み不能（ＮＧ）の応答をＰＣ２２に送信する。
【００６７】
そして、処理内容の書込みが可能な場合に、ＰＣ２２が書込み対象の処理内容のみをマイクロコンピュータ１０に送信することで、高頻度書換え領域１６Ｂのブランク領域に書込み対象の処理内容を書き込む。
【００６８】
一方、処理内容の書込みが不可能な場合は、ＰＣ２２が全処理内容をマイクロコンピュータ１０に送信し、マイクロコンピュータ１０が、高頻度書換え領域１６Ｂを全消去して、受信した全処理内容を書き込む。
【００６９】
このように、高頻度書換え領域１６Ｂの書換えを行うことで、書換え毎に高頻度書換え領域１６Ｂの全てを消去せずに、ブランク領域が不足する場合に消去して書き換えるので、消去上限回数以上の書換えを行うことが可能となる。
【００７０】
なお、上記の実施形態におけるマイクロコンピュータ１０で行われる処理は、プログラムとして記憶媒体に記憶して流通させるようにしてもよい。
【００７１】
また、本発明は、上記に限定されるものでなく、上記以外にも、その主旨を逸脱しない範囲内において種々変形して実施可能であることは勿論である。
【符号の説明】
【００７２】
１０    マイクロコンピュータ
１２    ＣＰＵ
１４    メモリ
１６    不揮発性メモリ
１６Ａ    書換え禁止領域
１６Ｂ    高頻度書換え領域
１６Ｃ    低頻度書換え領域
１８    揮発性メモリ
【図１】
2018128924.tif 000003
【図２】
2018128924.tif 000004
【図３】
2018128924.tif 000005
【図４】
2018128924.tif 000006
【図５】
2018128924.tif 000007
【図６】
2018128924.tif 000008
【図７】
2018128924.tif 000009
【図８】
2018128924.tif 000010
【図９】
2018128924.tif 000011
【図１０】
2018128924.tif 000012