(57)【要約】【課題】複数個の不揮発性メモリを用いた多重化時にこれら複数個の不揮発性メモリの更新及びリードチェックを容易に行えること。【解決手段】単一のメモリマップ上で第１の不揮発性メモリ２ａ，第２の不揮発性メモリ２ｂに対し連続する領域を分割し、バックアップ領域に割り当てられた第２の不揮発性メモリ２ｂに対して更新を行う。この後、セレクタ６ａ，６ｂによってメモリ領域を入れ替えて主領域となった第２の不揮発性メモリ２ｂに更新されたプログラムでシステムを起動させ、新たにバックアップ領域に割り当てられた第１の不揮発性メモリ２ａを更新する。これによって、単一のＣＰＵを用いて第１，第２の不揮発性メモリ２ａ，２ｂを更新できる。【選択図】　　　図１
2004013719.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを格納する不揮発性メモリを複数備え、各不揮発性メモリを更新する不揮発性メモリの更新回路であって、
前記複数の不揮発性メモリによって形成されるメモリアドレスを、ＣＰＵのリセットベクタを有する主領域とバックアップ領域によって構成し、該主領域とバックアップ領域によって連続する一つのアドレス空間を形成させるマッピング手段と、
前記マッピング手段によって設定された主領域と、バックアップ領域に対し前記各不揮発性メモリが有する領域をそれぞれ割り当て、相互に入れ替え可能に制御する切替手段と、
前記バックアップ領域に割り当てられた不揮発性メモリに対するデータ更新を行う更新手段と、
を具備することを特徴とする多重化された不揮発性メモリの更新回路。
【請求項２】
前記切替手段は、前記主領域及びバックアップ領域に対する前記各不揮発性メモリの割り当て状態を保持する保持手段を備え、
該保持手段は更新時のＣＰＵライト信号の入力に基づき、前記割り当て領域を入れ替えることを特徴とする請求項１に記載の多重化された不揮発性メモリの更新回路。
【請求項３】
前記保持手段は、電源状態に影響を受けず電気的に値を変更でき、変更状態を保持する不揮発性メモリからなることを特徴とする請求項２に記載の多重化された不揮発性メモリの更新回路。
【請求項４】
プログラムを格納する不揮発性メモリを複数備え、各不揮発性メモリを更新する不揮発性メモリの更新方法であって、
前記各不揮発性メモリが有するメモリアドレスを、ＣＰＵのリセットベクタを有する主領域と、バックアップ領域とにそれぞれ割り当て、該主領域とバックアップ領域によって連続する一つのアドレス空間を形成させるマッピング工程と、
ＣＰＵライトに基づき前記マッピング工程によって設定されたバックアップ領域に割り当てられた前記不揮発性メモリに対するデータ更新を行う第１の更新工程と、
システムリセットに基づき、前記各不揮発性メモリに対する主領域とバックアップ領域の割り当てを相互に入れ替え、新たに主領域に割り当てられた旧バックアップ領域の不揮発性メモリによってシステム起動させる領域入れ替え工程と、
ＣＰＵライトに基づき前記割り当ての入れ替えの状態で新たにバックアップ領域に割り当てられた他の不揮発性メモリに対するデータ更新を行う第２の更新工程と、
を含むことを特徴とする多重化された不揮発性メモリの更新方法。
【請求項５】
プログラムを格納する不揮発性メモリを複数備え、各不揮発性メモリを更新する不揮発性メモリの更新方法であって、
前記各不揮発性メモリが有するメモリアドレスを、ＣＰＵのリセットベクタを有する主領域と、バックアップ領域とにそれぞれ割り当て、該主領域とバックアップ領域によって連続する一つのアドレス空間を形成させるマッピング工程と、
ＣＰＵライトに基づき前記マッピング工程によって設定されたバックアップ領域に割り当てられた前記不揮発性メモリに対するデータ更新を行う第１の更新工程と、
再度のＣＰＵライトに基づき前記各不揮発性メモリに対する主領域とバックアップ領域の割り当てを相互に入れ替える領域入れ替え工程と、
新たに主領域に割り当てられた旧バックアップ領域の不揮発性メモリをシステムが用い、新たにバックアップ領域に割り当てられた他の不揮発性メモリに対するデータ更新を行う第２の更新工程と、
を含むことを特徴とする多重化された不揮発性メモリの更新方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、不揮発性メモリの更新に関し、特に、複数個の不揮発性メモリを用いて多重化した構成において各不揮発性メモリの更新を行う多重化された不揮発性メモリの更新回路、及び多重化された不揮発性メモリの更新方法に関する。
【０００２】
【従来の技術】
ＣＰＵは、電源投入時リセットベクタから実行を開始する。そのため、リセットベクタから起動するプログラムが存在するＬＳＩ等の電子デバイスは、電源が切れても内容を保持するため不揮発性メモリ（Ｆｌａｓｈ−ＲＯＭ）内蔵品を使用することが多い。このような、不揮発性メモリ内のプログラムに変更が必要となった場合には、そのＬＳＩを一度プリント基板から取り外してＲＯＭライタ等によって再書込みを行う。
【０００３】
不揮発性メモリとして用いられるＥＥＰＲＯＭは、電気的に再書込みができるため、ＬＳＩにＣＰＵと共に内蔵させた構成においては、ＣＰＵの処理によって、不揮発性メモリの内容の変更が可能となる。ＬＳＩ内部での不揮発性メモリの更新について説明する。図１２は、不揮発性メモリの更新時の全体の流れを示すフローチャートである。消去（ｅｒａｓｅ）の工程（ステップＳ１）、書き込み（ｗｒｉｔｅ）の工程（ステップＳ２）、リードチェック（ｒｅａｄ　ｃｈｅｃｋ）の工程（ステップＳ３）、判定工程（ステップＳ４）を含んでいる。
【０００４】
図１３は、消去工程（ステップＳ１）の手順を示すフローチャートである。消去工程では、不揮発性メモリのコマンドレジスタへｅｒａｓｅコマンドをライトする（ステップＳ１１）。これによって、不揮発性メモリ内のデータは全て消去される（例えばデータは０ｘＦＦに更新される）。
【０００５】
図１４は、書き込み工程（ステップＳ２）の手順を示すフローチャートである。書き込み工程では、不揮発性メモリのコマンドレジスタへ、ｗｒｉｔｅコマンドをライトし（ステップＳ２１）、その後ライトするアドレスとデータをライトする（ステップＳ２２）。これによって、不揮発性メモリ内の指定されたアドレスへデータが書き込まれる。次に、ライトすべきアドレスをインクリメントし（ステップＳ２３）、最終アドレスに至るまでの間は（ステップＳ２４：Ｎｏ）、ステップＳ２２に復帰して全てのデータを更新し、最終アドレスに達したら（ステップＳ２４：Ｙｅｓ）、書き込み工程を終了する。
【０００６】
図１５は、リードチェック工程（ステップＳ３）の手順を示すフローチャートである。リードチェック工程では、不揮発性メモリのコマンドレジスタへリード／リセットコマンドをライトする（ステップＳ３１）。これによって、不揮発性メモリは通常状態となり、データのリードが可能となる。その後、データをリードして期待値と比較する（ステップＳ３２）。
【０００７】
比較結果が一致すれば（ステップＳ３２：ＯＫ）、アドレスをインクリメントし（ステップＳ３３）、最終アドレスに至るまでの間は（ステップＳ３４：Ｎｏ）、ステップＳ３２に復帰して全てのデータを比較し、最終アドレスに達したら（ステップＳ３４：Ｙｅｓ）、正常終了（ｎｏｒｍａｌ　ｅｎｄ）となる。一方、比較結果が一致しなければ（ステップＳ３２：ＮＧ）、エラーカウンタ１をインクリメントし（ステップＳ３５）、エラーカウンタ１が予め定めた回数（例えば１００回）に至るまでは（ステップＳ３６：Ｎｏ）、ステップＳ３２に復帰してリトライを行う。リトライが予め定めた回数（エラーカウンタ１が例えば１００回）に達した場合には（ステップＳ３６：Ｙｅｓ）、エラーフラグを「１」にして異常終了（ａｂｎｏｒｍａｌ　ｅｎｄ）となる。
【０００８】
この後、図１２に示す判定工程Ｓ４に移行してエラー対応処理を行う。リードチェック工程（ステップＳ３）でエラーが発生せずエラーフラグが「０」であれば（ステップＳ５：Ｎｏ）、書き換えが正常終了（ｎｏｒｍａｌ　ｅｎｄ）と判定し終了する。一方、リードチェック工程（ステップＳ３）でエラーが発生しエラーフラグが「１」であれば（ステップＳ５：Ｙｅｓ）、エラーカウンタ２を更新し（ステップＳ６）、エラーカウンタが所定値（例えば１００００回）に達するまでは（ステップＳ７：Ｎｏ）、消去工程（ステップＳ１）に復帰させる。そして、ｅｒａｓｅコマンドからやり直し、このやり直しが所定回数（上記１００００回）に達した場合は（ステップＳ７：Ｙｅｓ）、不揮発性メモリに物理的なエラーがあり書き換えが異常終了（ａｂｎｏｒｍａｌ　ｅｎｄ）と判定し、不揮発性メモリの更新を終了する。
【０００９】
【発明が解決しようとする課題】
しかしながら、このような不揮発性メモリが１個のみ備えたシステムにおいて、上記の不揮発性メモリ更新中に永久的なエラーが発生し不揮発性メモリ更新プログラムが異常終了した場合には、以後システムが起動しなくなる可能性を有している。このため、不揮発性メモリを２個用いる等、多重化することによって、一方の不揮発性メモリ更新に失敗しても他方の不揮発性メモリからシステムを起動できる方式が考えられている。
【００１０】
このような不揮発性メモリをシステムに複数個配置した構成においては、各不揮発性メモリの更新作業と、互いのデータのリードチェックにかかる作業を効率的に行える方法が望まれている。また、ＣＰＵと不揮発性メモリを内蔵したＬＳＩは、プリント基板上に配置され、着脱が不可能であるため、プリント基板上に搭載されたままの状態で、且つシステムを動作させながら多重化された不揮発性メモリの内容の更新及びリードチェックできる方法が望まれている。
【００１１】
この発明は、上記問題点に鑑みてなされたものであって、複数個の不揮発性メモリを用いた多重化時にこれら複数個の不揮発性メモリの更新及びリードチェックを容易に行える多重化された不揮発性メモリの更新回路、及び方法を提供することを目的とする。
【００１２】
【課題を解決するための手段】
上記目的を達成するため、本発明は、単一のメモリマップ上で複数個の不揮発性メモリに対し領域を主領域とバックアップ領域とに分割し、バックアップ側領域に割り当てられた不揮発性メモリに対して更新を行う。この後、メモリ領域を入れ替えて主領域となった旧バックアップ領域の更新データによってシステム起動させ、新たにバックアップ領域に割り当てられた他の不揮発性メモリを更新することを特徴とする。
【００１３】
この発明によれば、単一のＣＰＵを用いて多重化された複数の不揮発性メモリを順次更新できるようになる。主領域とバックアップ領域に割り当てられた不揮発性メモリにそれぞれプログラムを格納する多重化によって、いずれか一つの不揮発性メモリを用いてシステム起動が可能となる。また更新中に異常終了した場合であってもシステムの復旧が可能となる。
【００１４】
【発明の実施の形態】
以下に添付図面を参照して、この発明に係る多重化された不揮発性メモリの更新回路、及び方法の好適な実施の形態を詳細に説明する。本発明では、不揮発性メモリ（Ｆｌａｓｈ−ＲＯＭ）を２個用いる構成を前提に説明する。これら双方の不揮発性メモリは、両方とも同じデータ内容を有し、設定によってマッピングを入れ替えることが可能なよう構成したものである。
【００１５】
（実施の形態１）
図１は、本発明の多重化不揮発性メモリを備えた電子デバイスの実施の形態１の構成を示すブロック図である。ＬＳＩ１内部には、ＣＰＵ（不図示）と、第１，第２の不揮発性メモリ（Ｆｌａｓｈ−ＲＯＭ１，２）２ａ，２ｂが内蔵され、ＣＰＵによってこれら第１，第２の不揮発性メモリ２ａ，２ｂを順次更新する。
【００１６】
図２は、ＣＰＵがアクセスするメモリマップを示す図である。図示のように、主領域Ａとバックアップ領域Ｂは、個別の領域として確保され、互いにアドレス上で連続するようマッピングされており、かつ、同一のデータ内容を有している。主領域Ａ及びバックアップ領域Ｂには、第１の不揮発性メモリ２ａ、あるいは第２の不揮発性メモリ２ｂのメモリ領域が割り当てられ、セレクタ６ａ，６ｂの選択によって、領域の入れ替えが可能となっている。なお、領域Ｃは、内蔵ＲＡＭ等周辺回路の設定データ等の格納領域である。また、リセットベクタは主領域Ａ側の所定アドレスに一つのみ存在している。
【００１７】
通常時においては、ＣＰＵは主領域である第１の不揮発性メモリ２ａのリセットベクタから実行を開始し、第１の不揮発性メモリ２ａに格納されたデータのみを用いてシステム起動させる。そして、異常時においては、バックアップ領域側に設定された第２の不揮発性メモリ２ｂから実行を開始することができる。
【００１８】
図１に示すように、ＬＳＩ１内部には、第１，第２の不揮発性メモリ２ａ，２ｂ更新のための切替手段３を備えている。切替手段３は、設定を保持可能なＦｌａｓｈ−ＲＯＭ等の不揮発性メモリからなる設定保持用メモリ４と、第１，第２の不揮発性メモリ２ａ，２ｂに対応して２系統に分割された回路を有する。各系統には、それぞれデコーダ５ａ，５ｂと、セレクタ６ａ，６ｂと、ＯＲゲートからなる論理和回路７ａ，７ｂが設けられる。設定保持用メモリ４の出力には保持回路８が接続される。
【００１９】
設定保持用メモリ４には、ＣＰＵの暴走を検出するウォッチドッグタイマー１０が接続されている。ウォッチドッグタイマー１０は、第１，第２の不揮発性メモリ２ａ，２ｂの更新処理中、ＣＰＵによって定期的にリセットされる。このウォッチドッグタイマー１０は、ＣＰＵの暴走によってリセットされなかったときに、ＣＰＵへ割込みの発生またはＣＰＵのリセット等を行いＣＰＵの暴走検出を行う。
【００２０】
設定保持用メモリ４は、ウォッチドッグタイマー１０が正常にリセットされている状態でＣＰＵからＣＰＵライト信号２０が入力されると、書き込み要求信号２３を保持回路８に出力する。保持回路８はＤ型フリップフロップ（Ｄ−Ｆ／Ｆ）からなり、Ｄ端子に書き込み要求信号２１が入力され、リセット端子にリセット信号２２が入力される。保持回路８は、書き込み要求信号２１を保持した状態でＱ端子から切替信号２３を出力し、リセット信号２２の入力で切替信号２３を反転保持しＱ端子から出力する。
【００２１】
デコーダ５ａ，５ｂには、第１，第２の不揮発性メモリ２ａ，２ｂの更新時のアドレスが入力される。これらデコーダ５ａ，５ｂによる２つのアドレスデコードによって、デコーダ５ａは、ＣＰＵが図２に示す主領域Ａに割り当てられた第１の不揮発性メモリ２ａ（あるいは第２の不揮発性メモリ２ｂ）をアクセスしたことを示すアクセス信号２４ａを生成し、デコーダ５ｂは、バックアップ領域Ｂに割り当てられた第２の不揮発性メモリ２ｂ（あるいは第１の不揮発性メモリ２ａ）をアクセスしたことを示すアクセス信号２４ｂを生成する。
【００２２】
セレクタ６ａ，６ｂは、それぞれアクセス信号２４ａ，２４ｂが入力され、セレクト端子Ｓへの切替信号２３の入力によって、いずれか一方の入力を選択する。これらセレクタ６ａ，６ｂは、互いに入力端子Ｑ，Ｌが反転して接続されており、更新時にはいずれか一方の系統が選択される。
【００２３】
具体的には、切替信号２３が「０」の時には、アクセス信号２４ａが「１」になると主領域Ａに第１の不揮発性メモリ２ａが割り当てられ、アクセス信号２４ｂが「１」になると主領域Ａに第２の不揮発性メモリ２ｂが割り当てられる。一方、切替信号２３が「１」の時には、アクセス信号２４ａが「１」になると主領域Ａに第２の不揮発性メモリ２ｂが割り当てられ、アクセス信号２４ｂが「１」になると主領域Ａに第１の不揮発性メモリ２ａが割り当てられる。このように、セレクタ６ａ，６ｂの切替によって、主領域Ａとバックアップ領域Ｂに対する第１，第２の不揮発性メモリ２ａ，２ｂの割り当てを切り替えることができる。同時に、主領域Ａに割り当てられた第１，第２の不揮発性メモリ２ａ，２ｂからシステム起動することになる。
【００２４】
セレクタ６ａの出力は、論理和回路７ａを介して第１の不揮発性メモリ２ａに対する制御用の選択信号２５ａとして供給される。セレクタ６ｂの出力は、論理和回路７ｂを介して第２の不揮発性メモリ２ｂに対する制御用の選択信号２５ｂとして供給される。論理和回路７ａ，７ｂには、パラレルモード信号２７が入力される。このパラレルモード信号２７は、第１，第２の不揮発性メモリ２ａ，２ｂの内容照合（リードチェック）を同時に行う際にＣＰＵから出力される。
【００２５】
次に、上記構成による第１，第２の不揮発性メモリ２ａ，２ｂの更新処理について説明する。図３は、実施の形態１による多重化された不揮発性メモリの更新手順を示すフローチャートである。ＬＳＩ内部に設けられたＣＰＵによって不揮発性メモリを更新する場合、ウォッチドッグタイマー１０を起動させてＣＰＵの暴走による不揮発性メモリの誤書込みを防ぐ。次に、設定保持用メモリ４は、ＣＰＵからのＣＰＵライト信号を受けて書き込み要求信号２１を出力する。これによって保持回路８は切替信号２３を出力し、セレクタ６ａ，６ｂが切り替えられる。図４は、メモリマップの配置替えを示す図である。この際、配置替え前に図４（ａ）に示すように、一方の系統（バックアップ領域Ｂ側）に第２の不揮発性メモリ２ｂが選択された（割り当てられた）とする。
【００２６】
この状態で、ＣＰＵはバックアップ領域Ｂ側の不揮発性メモリ（第２の不揮発性メモリ２ｂ）に対してデータの更新処理を実行する（ステップＳ４１）。この更新処理は、前述した消去の工程と、更新データの書き込みの工程、リードチェックの工程からなる。書き込みの工程では、バックアップ領域Ｂの更新開始アドレスからデータの書き込みをアドレスをインクリメントしながら行う。リードチェックの工程で、異常が検出された場合には、第２の不揮発性メモリ２ｂの更新に失敗したと判断し、不揮発性メモリ更新エラーの通知を行う。
【００２７】
図５は、実施の形態１による第１，第２の不揮発性メモリ２ａ，２ｂの選択制御を示すタイミングチャートである。第２の不揮発性メモリ２ｂの更新処理が正常終了した場合、ＣＰＵは再度ＣＰＵライト信号２０を出力する（図５（ａ））。これによって、設定保持用メモリ４は、元の値を反転した値を保持し、この反転した値を書き込み要求信号２１として保持回路８に出力する（ステップＳ４２，図５（ｂ））。これによって、配置替え後は図４（ｂ）に示すように、第１，第２の不揮発性メモリ２ａ，２ｂの配置が入れ替えられる。
【００２８】
その後、システムをリセットすると（ステップＳ４３）、リセット信号２２が保持回路８に入力される（図５（ｃ））。対応して、保持回路８はリセット信号２２の立ち上がりで切替信号２３を切り替える（図５（ｄ））。これによって、第１，第２の不揮発性メモリ２ａ，２ｂへのアクセスが切り替わり、上記更新された第２の不揮発性メモリ２ｂが主領域Ａに割り当てられる。
【００２９】
これによって、ＣＰＵは第２の不揮発性メモリ２ｂのリセットベクタにアクセスしてシステム起動が実行開始する（ステップＳ４４）。この際、バックアップ領域Ｂには第１の不揮発性メモリ２ａが割り当てられている。そして、この第１の不揮発性メモリ２ａに対する更新処理を実行する（ステップＳ４５）。第１の不揮発性メモリ２ａに対する更新処理についても、上述した第２の不揮発性メモリ２ｂに対する更新処理と処理内容は同一であり詳細は省略する。
【００３０】
上記手順によれば、ＬＳＩ１がプリント基板上に搭載された状態のまま、内蔵されている第１，第２の不揮発性メモリ２ａ，２ｂの内容を、同じＬＳＩに内蔵された単一のＣＰＵを用いてシステムリセットすることによって順次更新できるようになる。これによって、ＬＳＩ１をプリント基板から取り外さなくても容易に更新できるようになる。
【００３１】
（実施の形態２）
図６は、本発明の多重化不揮発性メモリを備えた電子デバイスの実施の形態２の構成を示すブロック図である。実施の形態２では、多重化された不揮発性メモリの更新時にシステムリセットを不要とした構成である。実施の形態２も、実施の形態１同様に、ＬＳＩ内部にＣＰＵ及び２個の不揮発性メモリを備えた構成を前提とする。
【００３２】
図示のように、実施の形態２の構成は、切替手段３の構成部のうち、保持回路８を省いてある。設定保持用メモリ４の出力の信号線は、直接、２系統のセレクタ６ａ，６ｂのセレクト端子Ｓに接続される。
【００３３】
次に、上記構成による第１，第２の不揮発性メモリ２ａ，２ｂの更新処理について説明する。図７は、実施の形態２による多重化された不揮発性メモリの更新手順を示すフローチャートである。同図を用いた説明において実施の形態と同一の処理内容の説明は簡略化してある。
【００３４】
まず始めに、ウォッチドッグタイマー１０を起動させてＣＰＵの暴走による不揮発性メモリの誤書込みを防ぐ。次に、設定保持用メモリ４は、ＣＰＵからのＣＰＵライト信号を受けて書き込み要求信号２１を出力する。図８は、メモリマップの配置替えを示す図である。この際、配置替え前において図８（ａ）に示すように、一方の系統（バックアップ領域Ｂ側）に第２の不揮発性メモリ２ｂが選択された（割り当てられた）とする。その後、第２の不揮発性メモリ２ｂに対するデータの更新処理を実行する（ステップＳ５１）。
【００３５】
この更新処理のリードチェック工程で、第２の不揮発性メモリ２ｂの内容をリードして確実に更新できたことを確認する。この後、アプリケーションが第１，第２の不揮発性メモリ２ａ，２ｂ内のプログラムを使用していないことを確認し、使用していればプログラムを終了させ、システムで使用している外部割込み及びソフトウェア割込みを全部禁止する（ステップＳ５２）。
【００３６】
図９は、実施の形態２による第１，第２の不揮発性メモリ２ａ，２ｂの選択制御を示すタイミングチャートである。第２の不揮発性メモリ２ｂの更新処理が正常終了した場合、ＣＰＵは再度ＣＰＵライト信号２０を出力する（図９（ａ））。これによって、設定保持用メモリ４は、元の値を反転した値を保持し、この反転した値を書き込み要求信号２１としてセレクタ６ａ，６ｂに出力する（ステップＳ５３，図９（ｂ））。この実施の形態２では、実施の形態１で説明した切替信号２３（図９（ｃ））として、この書き込み要求信号２１を用いる。
【００３７】
これによって、配置替え後は図８（ｂ）に示すように、第１，第２の不揮発性メモリ２ａ，２ｂの配置が入れ替えられる。この際、書き込み要求信号２１は反転されており、第１，第２の不揮発性メモリ２ａ，２ｂへのアクセスが切り替わり、第２の不揮発性メモリ２ｂが選択され、上記更新された第２の不揮発性メモリ２ｂが主領域Ａに割り当てられる。
【００３８】
この構成によれば、システムのリセットが不要でメモリマップを切り替えることができる。これによって、ＣＰＵは更新された第２の不揮発性メモリ２ｂにアクセスし始め、割り込み禁止を解除し、アプリケーションが第１，第２の不揮発性メモリ２ａ，２ｂ内のプログラムを使用する場合にはこれを許可する（ステップＳ５４）。
【００３９】
この際、バックアップ領域Ｂには第１の不揮発性メモリ２ａが割り当てられている。そして、この第１の不揮発性メモリ２ａに対する更新処理を実行する（ステップＳ５５）。第１の不揮発性メモリ２ａに対する更新処理についても、上述した第２の不揮発性メモリ２ｂに対する更新処理と処理内容は同一であり詳細は省略する。
【００４０】
この実施の形態２の更新方法では、実施の形態１で説明した更新方法と比較してシステムリセットを入れなくて済み、システムを停止させずに第１，第２の不揮発性メモリ２ａ，２ｂを更新できるという利点を有している。但し、システム上で動作するアプリケーションによっては、第１，第２の不揮発性メモリ２ａ，２ｂ上にあるＢＩＯＳプログラム等が途中のメモリマップの配置替えで入れ替わると問題が発生する場合がある。このようなプログラムを有する場合には、実施の形態１で説明した更新方法（メモリマップの切替時にシステムリセットする方法）を用いる方がよい。
【００４１】
上記手順によれば、ＬＳＩ１がプリント基板上に搭載された状態のまま、内蔵されている第１，第２の不揮発性メモリ２ａ，２ｂの内容を、同じＬＳＩ１に内蔵された単一のＣＰＵを用いて順次更新でき、かつシステムリセットせずとも行えるようになる。
【００４２】
次に、上記実施の形態１，２で説明した更新方法によって多重化された不揮発性メモリの更新後におけるデータ照合処理について説明する。このデータ照合処理は、図１，図６に示す論理和回路７ａ，７ｂと、比較器３０の構成を備えて実行できる。
【００４３】
第１，第２の不揮発性メモリ２ａ，２ｂに対する更新処理後は、これら第１，第２の不揮発性メモリ２ａ，２ｂの内容が同一であるか照合しておく必要がある。このため、第１，第２の不揮発性メモリ２ａ，２ｂの更新後に内容を照合して一致判別をする。論理和回路７ａ，７ｂに対しパラレルモード信号２７を供給すると、第１，第２の不揮発性メモリ２ａ，２ｂに対して同時に選択信号２５ａ，２５ｂが供給される。したがって、ＣＰＵは、リードチェックの工程を実行する際に、パラレルモード信号２７を供給することによって、第１，第２の不揮発性メモリ２ａ，２ｂから同時にデータを読み出すことができる。
【００４４】
この際、アドレスをインクリメントさせながら順次読み出されたデータは、正常に更新されていれば、主領域Ａとバックアップ領域Ｂにそれぞれ割り当てられた第１，第２の不揮発性メモリ２ａ，２ｂで常に一致する筈である。この点を比較器３０でデータ照合し一致検出する。ＣＰＵは、全てのアドレスのデータで一致検出されれば正常終了したと判断し、一部でも不一致が生じた場合には異常終了（不一致）であると判断する。
【００４５】
上記構成によれば、不揮発性メモリを多重化した場合であっても、主領域Ａ及びバックアップ領域Ｂいずれのデータも信頼できるようになり、一方の領域に割り当てられた不揮発性メモリを用いたシステムの起動不能時に、他方の領域に割り当てられた不揮発性メモリを用いてシステム起動することができ、システム起動の確実性を向上できるようになる。
【００４６】
上述した実施の形態１，２の構成では、ＣＰＵと、第１，第２の不揮発性メモリ２ａ，２ｂがＬＳＩ１の同一パッケージに内蔵された構成を例に説明した。本発明は、ＬＳＩ１内部にこれらを全てパッケージするに限らず、ＣＰＵと、第１，第２の不揮発性メモリ２ａ，２ｂと、切替手段３を全て別のパッケージの回路素子で構成したり、一部のみを同一パッケージにする等ができ、種々の態様に対し上述した更新方法が適用できる。
【００４７】
（実施の形態３）
図１０は、本発明の実施の形態３による多重化不揮発性メモリを備えた電子デバイスの回路構成を示すブロック図である。実施の形態３では、専用ＲＯＭライタを用いて多重化された不揮発性メモリを更新する。図示のように、第１，第２の不揮発性メモリ２ａ，２ｂには、専用ＲＯＭライタからの制御用のパラレルモード信号２７が同時に供給できるよう構成する。
【００４８】
図１１は、実施の形態３による多重化された不揮発性メモリの更新手順を示すフローチャートである。始めに、図１０に示すＬＳＩ１等のチップ回路を専用ＲＯＭライタ（不図示）に実装する（ステップＳ６１）。次に、更新するプログラムを外部ＰＣ（パソコン）等から専用ＲＯＭライタにダウンロードする（ステップＳ６２）。
【００４９】
次に、専用ＲＯＭライタは、パラレルモード信号２７をアクティブにして第１，第２の不揮発性メモリ２ａ，２ｂを同時に選択し、これら第１，第２の不揮発性メモリ２ａ，２ｂに対し同時に同じプログラムをライトする（ステップＳ６３）。これによって、更新にかかる時間を短縮できるようになる。
【００５０】
更新の終了後、パラレルモード信号２７をアクティブにして第１，第２の不揮発性メモリ２ａ，２ｂを同時に選択し、第１，第２の不揮発性メモリ２ａ，２ｂから同時にデータをリードする。この際、一方（第１の不揮発性メモリ２ａ）のデータをＬＳＩ１の外へ出力すると共に、両方の不揮発性メモリ２ａ，２ｂのデータを比較器３０にて比較する。このように、第１，第２の不揮発性メモリ２ａ，２ｂの更新後のデータが一致しているかＬＳＩ１内部でチェックしてその結果をＬＳＩの外へ出力する（ステップＳ６４）。これによって、不揮発性メモリを多重化した場合であっても、リードチェックの時間を従来と同じ時間で行うことができる。
【００５１】
リードチェックの詳細は、前述した図１２に示す手順と同様であり、エラー発生の有無をチェックし（ステップＳ６５）、エラーなしの場合（ステップＳ６５：Ｎｏ）で書き換えが正常終了と判定し終了する。一方、リードチェック時にエラーが発生した場合には（ステップＳ６５：Ｙｅｓ）、異常終了（ａｂｎｏｒｍａｌ　ｅｎｄ）と判定する。異常終了時には、消去工程を含む更新処理を再実行させる。
【００５２】
上記の更新手順は、専用ＲＯＭライタを用いた例であるため、既存のＲＯＭライタを使用した場合、多重化された不揮発性メモリのデータを一致比較する手段を有していない。このように既存のＲＯＭライタを用いて第１，第２の不揮発性メモリ２ａ，２ｂのデータを一致比較するには、これら第１，第２の不揮発性メモリ２ａ，２ｂに対してシリアルにリードチェックを行えばよい。例えば、図２のメモリマップに示したように、第１，第２の不揮発性メモリ２ａ，２ｂが各領域に連続して配置される場合、これら各領域で対応するデータをアドレス単位でリードチェックする。また、メモリマップ上でアドレスを連続的に変化させて得たデータを規定のデータと一致判別してもよい。この場合、第１，第２の不揮発性メモリ２ａ，２ｂが各領域に連続して配置されていれば既存のＲＯＭライタを用いてこれら各領域のデータを順次読み出すことができる。
【００５３】
上述した実施の形態１，２で用いる第１，第２の不揮発性メモリ２ａ，２ｂ、及び設定保持用メモリ４としてはＥＥＰＲＯＭを用いて構成できる。これによって、ＬＳＩ１がプリント基板に搭載された後であっても、第１，第２の不揮発性メモリ２ａ，２ｂを内蔵されたＣＰＵで何度でも更新できるようになる。また、実施の形態３で用いる第１，第２の不揮発性メモリ２ａ，２ｂについては、ＥＥＰＲＯＭに限らずＥＰＲＯＭを用いて紫外線の消去工程実行後に、第１，第２の不揮発性メモリ２ａ，２ｂを同時に更新、及びリードチェックできるようになる。なお、各実施形態で使用する不揮発性メモリの個数も２個以上複数個にしてもよく、主領域Ａに１個の不揮発性メモリを割り当て、バックアップ領域Ｂに複数個の不揮発性メモリを割り当てて用いることができる。
【００５４】
以上説明した更新方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、各種記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【００５５】
（付記１）プログラムを格納する不揮発性メモリを複数備え、各不揮発性メモリを更新する不揮発性メモリの更新回路であって、
前記複数の不揮発性メモリによって形成されるメモリアドレスを、ＣＰＵのリセットベクタを有する主領域とバックアップ領域によって構成し、該主領域とバックアップ領域によって連続する一つのアドレス空間を形成させるマッピング手段と、
前記マッピング手段によって設定された主領域と、バックアップ領域に対し前記各不揮発性メモリが有する領域をそれぞれ割り当て、相互に入れ替え可能に制御する切替手段と、
前記バックアップ領域に割り当てられた不揮発性メモリに対するデータ更新を行う更新手段と、
を具備することを特徴とする多重化された不揮発性メモリの更新回路。
【００５６】
（付記２）前記切替手段は、前記主領域及びバックアップ領域に対する前記各不揮発性メモリの割り当て状態を保持する保持手段を備え、
該保持手段は更新時のＣＰＵライト信号の入力に基づき、前記割り当て領域を入れ替えることを特徴とする付記１に記載の多重化された不揮発性メモリの更新回路。
【００５７】
（付記３）前記更新手段は、ＣＰＵの暴走検出を行うウォッチドッグタイマーが起動している時にデータ更新を行うことを特徴とする付記１，２のいずれか一つに記載の多重化された不揮発性メモリの更新回路。
【００５８】
（付記４）前記保持手段は、電源状態に影響を受けず電気的に値を変更でき、変更状態を保持する不揮発性メモリからなることを特徴とする付記２に記載の多重化された不揮発性メモリの更新回路。
【００５９】
（付記５）プログラムを格納する不揮発性メモリを複数備え、各不揮発性メモリを更新する不揮発性メモリの更新回路であって、
ＣＰＵのリセットベクタを有する主領域とバックアップ領域に対し前記ＣＰＵがいずれの領域をアクセスしているか判別するためのデコーダと、
前記主領域と、バックアップ領域に対し前記各不揮発性メモリが有する領域をそれぞれ割り当て、選択信号の入力に基づき割り当ての領域を相互に入れ替え可能に制御するセレクタと、
前記主領域及びバックアップ領域に対する前記各不揮発性メモリの割り当て状態を保持、出力し、ＣＰＵライトの入力で設定を反転保持する設定保持用の不揮発性メモリと、
前記不揮発性メモリの保持出力をシステムリセットに基づき前記セレクタに選択信号として出力する保持回路と、
前記システムリセットの前後でそれぞれバックアップ領域に割り当てられた不揮発性メモリに対するデータ更新を行うＣＰＵと、
を備えた多重化された不揮発性メモリの更新回路。
【００６０】
（付記６）プログラムを格納する不揮発性メモリを複数備え、各不揮発性メモリを更新する不揮発性メモリの更新回路であって、
ＣＰＵのリセットベクタを有する主領域とバックアップ領域とに対し前記ＣＰＵがいずれの領域をアクセスしているか判別するためのデコーダと、
前記主領域と、バックアップ領域に対し前記各不揮発性メモリが有する領域をそれぞれ割り当て、選択信号の入力に基づき割り当ての領域を相互に入れ替え可能に制御するセレクタと、
前記主領域及びバックアップ領域に対する前記各不揮発性メモリの割り当て状態を保持、出力し、ＣＰＵライトの入力によって設定を反転保持して前記セレクタに選択信号として出力する設定保持用の不揮発性メモリと、
前記ＣＰＵライトの前後でそれぞれバックアップ領域に割り当てられた不揮発性メモリに対するデータ更新を行うＣＰＵと、
を備えた多重化された不揮発性メモリの更新回路。
【００６１】
（付記７）前記各構成回路が単一個の電子回路素子の一部としてパッケージ化されたことを特徴とする付記５，６のいずれか一つに記載の多重化された不揮発性メモリの更新回路。
【００６２】
（付記８）前記各不揮発性メモリは、ＥＥＰＲＯＭからなることを特徴とする付記１〜７のいずれか一つに記載の不揮発性メモリの更新回路。
【００６３】
（付記９）前記多重化された複数の不揮発性メモリは、同時に前記更新時のデータの書き込み／読み出しを行えるよう構成されており、
前記各不揮発性メモリから同時に読み出したデータを照合する比較器を備え、各不揮発性メモリの更新後の一致判別を行う構成とされた付記１〜８のいずれか一つに記載の多重化された不揮発性メモリの更新回路。
【００６４】
（付記１０）プログラムを格納する不揮発性メモリを複数備え、各不揮発性メモリを更新する不揮発性メモリの更新方法であって、
前記各不揮発性メモリが有するメモリアドレスを、ＣＰＵのリセットベクタを有する主領域と、バックアップ領域とにそれぞれ割り当て、該主領域とバックアップ領域によって連続する一つのアドレス空間を形成させるマッピング工程と、ＣＰＵライトに基づき前記マッピング工程によって設定されたバックアップ領域に割り当てられた前記不揮発性メモリに対するデータ更新を行う第１の更新工程と、
システムリセットに基づき、前記各不揮発性メモリに対する主領域とバックアップ領域の割り当てを相互に入れ替え、新たに主領域に割り当てられた旧バックアップ領域の不揮発性メモリによってシステム起動させる領域入れ替え工程と、ＣＰＵライトに基づき前記割り当ての入れ替えの状態で新たにバックアップ領域に割り当てられた他の不揮発性メモリに対するデータ更新を行う第２の更新工程と、
を含むことを特徴とする多重化された不揮発性メモリの更新方法。
【００６５】
（付記１１）プログラムを格納する不揮発性メモリを複数備え、各不揮発性メモリを更新する不揮発性メモリの更新方法であって、
前記各不揮発性メモリが有するメモリアドレスを、ＣＰＵのリセットベクタを有する主領域と、バックアップ領域とにそれぞれ割り当て、該主領域とバックアップ領域によって連続する一つのアドレス空間を形成させるマッピング工程と、ＣＰＵライトに基づき前記マッピング工程によって設定されたバックアップ領域に割り当てられた前記不揮発性メモリに対するデータ更新を行う第１の更新工程と、
再度のＣＰＵライトに基づき前記各不揮発性メモリに対する主領域とバックアップ領域の割り当てを相互に入れ替える領域入れ替え工程と、
新たに主領域に割り当てられた旧バックアップ領域の不揮発性メモリをシステムが用い、新たにバックアップ領域に割り当てられた他の不揮発性メモリに対するデータ更新を行う第２の更新工程と、
を含むことを特徴とする多重化された不揮発性メモリの更新方法。
【００６６】
（付記１２）前記領域入れ替え工程は、システムが使用する全ての割込みを禁止し、不揮発性メモリ内でアプリケーションが使用するプログラムの終了後に実行することを特徴とする付記１１に記載の多重化された不揮発性メモリの更新方法。
【００６７】
【発明の効果】
本発明によれば、単一のメモリマップが主領域とバックアップ領域に分割され、バックアップ領域に割り当てられた不揮発性メモリに対して更新を行い、メモリ領域を入れ替えて主領域となった旧バックアップ領域の更新データによってシステム起動させ、新たにバックアップ領域に割り当てられた他の不揮発性メモリを更新するため、単一のＣＰＵを用いて多重化された複数の不揮発性メモリを順次更新できるようになる。そして、主領域とバックアップ領域に割り当てられた不揮発性メモリにそれぞれプログラムを格納する多重化の構造によって、一つの不揮発性メモリを用いたシステム起動が不能であっても他の不揮発性メモリのプログラムを用いたシステム起動が行えるようになる。さらに、更新中に異常終了した場合であってもシステムの復旧が可能となるためシステムの安全性を向上できるようになる。また、更新のためには１個のＣＰＵを用いて各不揮発性メモリを順次更新すればよく、回路量が少なくて済み、ＣＰＵ及び不揮発性メモリを含む回路素子を単一パッケージでＬＳＩ化することができ、低コスト化が図れる。加えて、プリント基板上にＬＳＩが搭載された状態のまま複数の不揮発性メモリを更新することができるようになる。
【図面の簡単な説明】
【図１】本発明の多重化不揮発性メモリを備えた電子デバイスの実施の形態１の構成を示すブロック図である。
【図２】ＣＰＵがアクセスするメモリマップを示す図である。
【図３】実施の形態１による多重化された不揮発性メモリの更新手順を示すフローチャートである。
【図４】メモリマップの配置替えを示す図である。
【図５】実施の形態１による第１，第２の不揮発性メモリの選択制御を示すタイミングチャートである。
【図６】本発明の多重化不揮発性メモリを備えた電子デバイスの実施の形態２の構成を示すブロック図である。
【図７】実施の形態２による多重化された不揮発性メモリの更新手順を示すフローチャートである。
【図８】メモリマップの配置替えを示す図である。
【図９】実施の形態２による第１，第２の不揮発性メモリの選択制御を示すタイミングチャートである。
【図１０】本発明の実施の形態３による多重化不揮発性メモリを備えた電子デバイスの回路構成を示すブロック図である。
【図１１】実施の形態３による多重化された不揮発性メモリの更新手順を示すフローチャートである。
【図１２】不揮発性メモリの更新時の全体の流れを示すフローチャートである。
【図１３】消去工程の手順を示すフローチャートである。
【図１４】書き込み工程の手順を示すフローチャートである。
【図１５】リードチェック工程の手順を示すフローチャートである。
【符号の説明】
１　ＬＳＩ
２ａ　第１の不揮発性メモリ
２ｂ　第２の不揮発性メモリ
３　切替手段
４　設定保持用メモリ
５ａ，５ｂ　デコーダ
６ａ，６ｂ　セレクタ
７ａ，７ｂ　論理和回路
８　保持回路
１０　ウォッチドッグタイマー
３０　比較器
【図１】
2004013719.tif 000003
【図２】
2004013719.tif 000004
【図３】
2004013719.tif 000005
【図４】
2004013719.tif 000006
【図５】
2004013719.tif 000007
【図６】
2004013719.tif 000008
【図７】
2004013719.tif 000009
【図８】
2004013719.tif 000010
【図９】
2004013719.tif 000011
【図１０】
2004013719.tif 000012
【図１１】
2004013719.tif 000013
【図１２】
2004013719.tif 000014
【図１３】
2004013719.tif 000015
【図１４】
2004013719.tif 000016
【図１５】
2004013719.tif 000017