(57)【要約】【課題】ユーザからは、寿命の長い不揮発性メモリセル領域を内蔵しているように見える半導体集積回路装置を提供する。【解決手段】ＣＰＵ１がリードするプログラムコードやデータを格納する不揮発性メモリとして、４個のセクタ４〜７を有するフラッシュメモリ２を設けると共に、フラッシュメモリ・ライト装置２８から与えられる有効セクタ指示データが指示するセクタを選択するためのアドレス信号Ａ１９、Ａ１８を生成するセクタ選択信号生成回路８を設ける。そして、セクタ４〜７のうち、有効とされているセクタが寿命となったか否かを判断し、有効とされているセクタが寿命となったときは、未使用のセクタを新たに有効なセクタとするための有効セクタ指示データをセクタ選択信号生成回路８に与えるという動作をフラッシュメモリ・ライト装置２８に実行させる。【選択図】図１
2009093388.tif 000002
【特許請求の範囲】
【請求項１】
書き換え可能な複数のメモリ領域を有する第１の不揮発性メモリと、
前記複数のメモリ領域のうち１つのメモリ領域を選択するためのデータが記録された第２の不揮発性メモリと、
前記データを前記１つのメモリ領域を選択するための選択信号に変換するデータ変換回路と
を有することを特徴とする半導体集積回路装置。
【請求項２】
前記第２の不揮発性メモリへの前記１つのメモリ領域を選択するためのデータの書き込みは、外部装置から書き込まれる
ことを特徴とする請求項１に記載の半導体集積回路装置。
【請求項３】
前記選択信号は、前記第１の不揮発性メモリのアドレスを指示する信号の一部であることを特徴とする請求項１又は２に記載の半導体集積回路装置。
【請求項４】
外部装置が、第１の不揮発性メモリのうち選択信号生成回路によって選択される領域にデータを書き込む工程と、
前記外部装置が、前記選択された領域を読み出し、前記データが正しく書き込まれたか否かをチェックする工程と、
前記選択した領域に前記データが正しく書き込まれていないと判断された場合、前記外部装置は、前記選択した領域に替えて前記第１の不揮発性メモリ内の他の領域を有効とするデータを前記選択信号生成回路に書き込む工程と
を含むことを特徴とする半導体集積回路装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部装置である不揮発性メモリ・ライト装置からプログラムコードやデータがライトされる書き換え可能な不揮発性メモリを内蔵する半導体集積回路装置、及び、このような半導体集積回路装置の制御方法に関する。
【背景技術】
【０００２】
たとえば、外部装置であるフラッシュメモリ・ライト装置からプログラムやデータがライトされるフラッシュメモリを内蔵するマイクロコンピュータでは、フラッシュメモリの保持値を書き換える場合、マイクロコンピュータ内蔵の高電圧レギュレータ又は外部から高電圧（約１０Ｖ）をフラッシュメモリに供給し、フラッシュメモリの保持値をイレーズして、全てのアドレスの全てのビットの保持値を“１”とし、その後、更新値をライトし、リードチェックを行い、更新値が正しくライトされているか否かをチェックするということが行われる。
【特許文献１】特開２０００−２２２８９１号公報
【特許文献２】特開平０４−２８１５４１号公報
【特許文献３】特開２００２−７２２１号公報
【特許文献４】特開平７−４５０８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、フラッシュメモリのリード回数には制限がなく、リードのみを行う場合には、フラッシュメモリを半永久的に使用することが可能である。しかしながら、ライト回数には制限があり、この点から、フラッシュメモリには寿命が存在する。このため、フラッシュメモリを内蔵するマイクロコンピュータにおいては、内蔵のフラッシュメモリが寿命となったときは、マイクロコンピュータ自体の寿命となる。そこで、フラッシュメモリには、ライト回数に起因する寿命が存在することを前提とし、マイクロコンピュータに内蔵されるフラッシュメモリの寿命を、見かけ上、長くすることが要請されている。
【０００４】
本発明は、かかる点に鑑み、ユーザからは、寿命の長い不揮発性メモリを内蔵しているように見える半導体集積回路装置、及び、このような半導体集積回路装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本出願で開示する半導体集積回路装置は、書き換え可能な複数のメモリ領域を有する第１の不揮発性メモリと、前記複数のメモリ領域のうち１つのメモリ領域を選択するためのデータが記録された第２の不揮発性メモリと、前記データを前記１つのメモリ領域を選択するための選択信号に変換するデータ変換回路とを有するものである。
【０００６】
本出願が開示する半導体集積回路装置の制御方法は、外部装置が、第１の不揮発性メモリのうち選択信号生成回路によって選択される領域にデータを書き込む工程と、前記外部装置が、前記選択された領域を読み出し、前記データが正しく書き込まれたか否かをチェックする工程と、前記選択した領域に前記データが正しく書き込まれていないと判断された場合、前記外部装置は、前記選択した領域に替えて前記第１の不揮発性メモリ内の他の領域を有効とするデータを前記選択信号生成回路に書き込む工程とを含むものである。
【発明の効果】
【０００７】
開示した半導体集積回路装置によれば、書き換え可能な複数のメモリ領域を有する第１の不揮発性メモリと、前記複数のメモリ領域のうち１つのメモリ領域を選択するためのデータが記録された第２の不揮発性メモリと、前記データを前記１つのメモリ領域を選択するための選択信号に変換するデータ変換回路とを有するので、有効とされているメモリ領域が寿命となったか否かを判断し、前記有効とされているメモリ領域が寿命となったときは、未使用のメモリ領域を新たに有効なメモリ領域とするための選択を行うことにより、有効とするメモリ領域を、寿命となったメモリ領域から未使用のメモリ領域に交替させることができ、ユーザからは、寿命の長い不揮発性メモリを内蔵しているように見える。
【０００８】
開示した半導体集積回路装置の制御方法によれば、外部装置が、第１の不揮発性メモリのうち選択信号生成回路によって選択される領域にデータを書き込んだ場合において、前記外部装置が、前記選択された領域を読み出し、前記データが正しく書き込まれたか否かをチェックし、前記選択した領域に前記データが正しく書き込まれていないと判断された場合、前記外部装置は、前記選択した領域に替えて前記第１の不揮発性メモリ内の他の領域を有効とするデータを前記選択信号生成回路に書き込む工程が行われるので、有効とするメモリ領域を、寿命となったメモリ領域から未使用のメモリ領域に交替させることができ、ユーザからは、半導体集積回路装置は寿命の長い不揮発性メモリを内蔵しているように見える。
【発明を実施するための最良の形態】
【０００９】
図１は本発明の半導体集積回路装置の一実施形態であるマイクロコンピュータの一部分を示す回路図である。図１中、１はＣＰＵ（central processing unit）、２はＣＰＵ１がリードするプログラムコードやデータが外部装置であるフラッシュメモリ・ライト装置によりライトされるフラッシュメモリである。フラッシュメモリ２は、後述するように、メモリセル領域を４つのセクタに分割し、セクタ単位でデータ消去可能とされているものである。
【００１０】
フラッシュメモリ２において、ＡＤＤ＿１は２個のアドレス信号入力端子からなるアドレス信号入力端子群、ＡＤＤ＿２は１８個のアドレス信号入力端子からなるアドレス信号入力端子群である。フラッシュメモリ２には、アドレス信号として２０ビットのアドレス信号Ａ１９〜Ａ０が与えられるが、上位２ビットのアドレス信号Ａ１９、Ａ１８はアドレス信号入力端子群ＡＤＤ＿１に与えられ、下位１８ビットのアドレス信号Ａ１７〜Ａ０はアドレス信号入力端子群ＡＤＤ＿２に与えられる。
【００１１】
Ｄ＿ＩＮは１６個のデータ入力端子からなるデータ入力端子群であり、データ入力端子群Ｄ＿ＩＮには１６ビットのデータが並列に与えられる。ＸＣＳはチップセレクト信号入力端子である。チップセレクト信号入力端子ＸＣＳに“０”（接地電位ＶＳＳ）を与えると、フラッシュメモリ２は選択状態となる。これに対して、チップセレクト信号入力端子ＸＣＳに“１”（電源電位ＶＤＤ）を与えると、フラッシュメモリ２は非選択状態となる。
【００１２】
ＸＲＤはリード信号入力端子、ＸＷＥはライト信号入力端子である。リード信号入力端子ＸＲＤに“１”、ライト信号入力端子ＸＷＥに“０”を与えると、フラッシュメモリ２はライトモードとなり、フラッシュメモリ２へのライトアクセスが可能となる。これに対して、リード信号入力端子ＸＲＤに“０”、ライト信号入力端子ＸＷＥに“１”を与えると、フラッシュメモリ２はリードモードとなり、フラッシュメモリ２へのリードアクセスが可能となる。Ｄ＿ＯＵＴは１６個のデータ出力端子からなるデータ出力端子群である。
【００１３】
図２はフラッシュメモリ２の概念図である。図２中、３はメモリセル領域、４〜７はメモリセル領域３を４つに分割してなるセクタと呼ばれるメモリセル領域であり、データ消去の単位をなすものである。セクタ４〜７は、フラッシュメモリ２に与えられるアドレス信号Ａ１９〜Ａ０の下位１８ビットのアドレス信号Ａ１７〜Ａ０で選択される同一数のアドレスを有しており、セクタ４〜７の選択は、アドレス信号Ａ１９〜Ａ０の上位２ビットのアドレス信号Ａ１９、Ａ１８をセクタ選択信号として行われる。
【００１４】
本例では、フラッシュメモリ２は、アドレス信号Ａ１９、Ａ１８として“００”が与えられると、セクタ４を選択し、アドレス信号Ａ１９、Ａ１８として“０１”が与えられると、セクタ５を選択し、アドレス信号Ａ１９、Ａ１８として“１０”が与えられると、セクタ６を選択し、アドレス信号Ａ１９、Ａ１８として“１１”が与えられると、セクタ７を選択するように構成される。
【００１５】
ここで、セクタ４〜７は、たとえば、まず、セクタ４が選択的に有効とされ、セクタ４に寿命が来たときは、次にセクタ５が選択的に有効とされ、セクタ５に寿命が来たときは、次にセクタ６が選択的に有効とされ、セクタ６に寿命が来たときは、次にセクタ７が選択的に有効とされるという制御を受けるが、セクタ４〜７の有効・無効の制御は、フラッシュメモリ・ライト装置により行われる。
【００１６】
また、図１において、８はフラッシュメモリ２のセクタ４〜７の選択に使用するセクタ選択信号であるアドレス信号Ａ１９、Ａ１８を生成するセクタ選択信号生成回路であり、９はフラッシュメモリ、１０はデータ変換回路である。
【００１７】
フラッシュメモリ９は、外部装置であるフラッシュメモリ・ライト装置により、セクタ４〜７のうち、有効とすべきセクタを指示する３ビットの有効セクタ指示データがライトされるものである。フラッシュメモリ９において、ＡＤＤはアドレス信号入力端子群であり、アドレス信号入力端子群は常に“０”を供給する内部ノードに接続され、フラッシュメモリ９は常に０番地が指定されている状態となっている。
【００１８】
Ｄ＿ＩＮは３個のデータ入力端子からなるデータ入力端子群であり、データ入力端子群Ｄ＿ＩＮには３ビットの有効セクタ指示データが並列に与えられる。ＸＣＳはチップセレクト信号入力端子である。チップセレクト信号入力端子ＸＣＳは常に“０”を供給する内部ノードに接続されており、フラッシュメモリ９は常に選択状態とされている。
【００１９】
ＸＲＤはリード信号入力端子、ＸＷＥはライト信号入力端子である。リード信号入力端子ＸＲＤに“１”、ライト信号入力端子ＸＷＥに“０”を与えると、フラッシュメモリ９はライトモードとなり、フラッシュメモリ９へのライトアクセスが可能となる。これに対して、リード信号入力端子ＸＲＤに“０”、ライト信号入力端子ＸＷＥに“１”を与えると、フラッシュメモリ９はリードモードとなり、フラッシュメモリ９へのリードアクセスが可能となる。Ｄ＿ＯＵＴは３個のデータ出力端子からなるデータ出力端子群である。
【００２０】
本発明の半導体集積回路装置の一実施形態であるマイクロコンピュータは、工場出荷時に、フラッシュメモリ・ライト装置により、フラッシュメモリ９の０番地に有効セクタ指示データとして“１１１”が書き込まれる。なお、本例では、フラッシュメモリ９として、複数のアドレスを有する既存のフラッシュメモリを使用することを前提としているが、フラッシュメモリ９のアドレス数は最低で１個あれば足りるので、このようなフラッシュメモリを設けるようにしても良い。
【００２１】
データ変換回路１０は、フラッシュメモリ９からリードされた有効セクタ指示データをセクタ選択信号であるアドレス信号Ａ１９、Ａ１８に変換し、これらアドレス信号Ａ１９、Ａ１８をフラッシュメモリ２のアドレス信号入力端子ＡＤＤ＿１に与えるものであり、表１はデータ変換回路１０の機能表である。
【００２２】
【表１】
2009093388.tif 000003
【００２３】
即ち、データ変換回路１０は、フラッシュメモリ９が出力する有効セクタ指示データ＝“１１１”のときは、アドレス信号Ａ１９、Ａ１８として“００”を出力し、フラッシュメモリ９が出力する有効セクタ指示データ＝“１１０”のときは、アドレス信号Ａ１９、Ａ１８として“０１”を出力し、フラッシュメモリ９が出力する有効セクタ指示データ＝“１００”のときは、アドレス信号Ａ１９、Ａ１８として“１０”を出力し、フラッシュメモリ９が出力する有効セクタ指示データ＝“０００”のときは、アドレス信号Ａ１９、Ａ１８として“１１”を出力するように構成される。
【００２４】
したがって、セクタ４を有効セクタとする場合には、フラッシュメモリ９の０番地には“１１１”がライトされ、セクタ５を有効セクタとする場合には、フラッシュメモリ９の０番地には“１１０”がライトされ、セクタ６を有効セクタとする場合には、フラッシュメモリ９の０番地には“１００”がライトされ、セクタ７を有効セクタとする場合には、フラッシュメモリ９の０番地には“０００”がライトされる。
【００２５】
１１はフラッシュメモリ・ライト装置が出力するモード設定信号ＭＤを入力するための２個のモード設定信号入力端子からなるモード設定信号入力端子群である。本発明の半導体集積回路装置の一実施形態であるマイクロコンピュータは、モード設定信号ＭＤにより、第１モード、第２モード又は第３モードに設定される。
【００２６】
第１モードは、ＣＰＵ１によるフラッシュメモリ２へのリードアクセスを可能とするモードである（以下、通常モードという）。第２モードは、フラッシュメモリ・ライト装置によるフラッシュメモリ２へのライトアクセス及びリードアクセスを可能とするモードである（以下、フラッシュメモリ・ライトモードという）。第３モードは、フラッシュメモリ・ライト装置によるフラッシュメモリ９へのライトアクセス及びリードアクセスを可能とするモードである（以下、セクタ設定モードという）。
【００２７】
本発明の半導体集積回路装置の一実施形態であるマイクロコンピュータは、モード設定信号ＭＤ＝“００”とすると、通常モードとなり、モード設定信号ＭＤ＝“０１”とすると、フラッシュメモリ・ライトモードとなり、モード設定信号ＭＤ＝“１０”とすると、セクタ設定モードとなる。
【００２８】
１２はフラッシュメモリ・ライト装置が出力するフラッシュメモリ２、９用の高電圧ＶＰＰを入力するための高電圧入力端子、１３はフラッシュメモリ・ライト装置が出力するフラッシュメモリ２又はフラッシュメモリ９に与えるリード信号Ｆ＿ＲＤを入力するためのリード信号入力端子、１４はフラッシュメモリ・ライト装置が出力するフラッシュメモリ２又はフラッシュメモリ９に与えるライト信号Ｆ＿ＷＥを入力するためのライト信号入力端子である。
【００２９】
１５はフラッシュメモリ・ライト装置が並列出力するフラッシュメモリ２に与える１８ビットのアドレス信号Ｆ＿Ａを入力するための１８個のアドレス信号入力端子からなるアドレス信号入力端子群、１６はフラッシュメモリ・ライト装置が並列出力するフラッシュメモリ２に与える１６ビットのプログラムコードやデータ又はフラッシュメモリ９に与える３ビットの有効セクタ指示データ等のデータＤＡ＿Ｉを入力し、又は、フラッシュメモリ２から出力される１６ビット又はフラッシュメモリ９から並列出力される３ビットのデータＤＡ＿Ｏを出力する１６個のデータ入出力端子からなるデータ入出力端子群である。
【００３０】
１７は並列１６ビット構成のデータＤＡ＿Ｉを入力するデータ入力バッファであり、その入力端子群をデータ入出力端子群１６に接続している。１８は並列１６ビット構成のデータＤＡ＿Ｏを出力するスリーステイトバッファからなるデータ出力バッファであり、その出力制御端子をリード信号入力端子１３に接続し、その出力端子群をデータ入出力端子群１６に接続している。
【００３１】
１９〜２６はフラッシュメモリ・ライト装置から与えられるモード設定信号ＭＤにより選択動作が制御されるセレクタであり、Ａは第１の入力端子（又は第１の入力端子群）、Ｂは第２の入力端子（又は第２の入力端子群）、Ｃは第３の入力端子（又は第３の入力端子群）、Ｘは出力端子（又は出力端子群）である。セレクタ１９〜２５は、フラッシュメモリ２、９へのアクセスを制御するアクセス制御回路を構成するものである。
【００３２】
セレクタ１９〜２５は、モード設定信号ＭＤ＝“００”（通常モード）のときは、第１の入力端子（又は第１の入力端子群）Ａを出力端子（又はその出力端子群）Ｘに接続し、モード設定信号ＭＤ＝“０１”（フラッシュメモリ・ライトモード）のときは、第２の入力端子（又は第２の入力端子群）Ｂを出力端子（又は出力端子群）Ｘに接続し、モード設定信号ＭＤ＝“１０”（セクタ設定モード）のときは、第３の入力端子（又は第３の入力端子群）Ｃを出力端子（又は出力端子群）Ｘに接続するように構成される。
【００３３】
セレクタ２６は、モード設定信号ＭＤ＝“０１”（フラッシュメモリ・ライトモード）のときは、第１の入力端子群Ａを出力端子群Ｘに接続し、モード設定信号ＭＤ＝“１０”（セクタ設定モード）のときは、第２の入力端子群Ｂを出力端子群Ｘに接続するように構成される。
【００３４】
本例では、セレクタ１９は、第１の入力端子Ａを常に“０”が供給される内部ノードに接続し、第２の入力端子Ｂを常に“０”が供給される内部ノードに接続し、第３の入力端子Ｃをリード信号入力端子１３に接続し、出力端子Ｘをフラッシュメモリ９のリード信号入力端子ＸＲＤに接続している。
【００３５】
セレクタ２０は、第１の入力端子Ａを常に“１”が供給される内部ノードに接続し、第２の入力端子Ｂを常に“１”が供給される内部ノードに接続し、第３の入力端子Ｃをライト信号入力端子１４に接続し、出力端子Ｘをフラッシュメモリ９のライト信号入力端子ＸＷＥに接続している。
【００３６】
セレクタ２１は、第１の入力端子群Ａを内部アドレスバスを介してＣＰＵ１の対応するアドレス信号出力端子群に接続し、第２の入力端子群Ｂをアドレス信号入力端子群１５に接続し、第３の入力端子群Ｃを常に“０”が供給される内部ノードに接続し、出力端子群Ｘをフラッシュメモリ２のアドレス信号入力端子群ＡＤＤ＿２に接続している。
【００３７】
セレクタ２２は、第１の入力端子群Ａを内部データバスを介してＣＰＵ１のデータ出力端子群に接続し、第２の入力端子群Ｂをデータ入力バッファ１７の出力端子群に接続し、第３の入力端子群Ｃを常に“０”が供給される内部ノードに接続し、出力端子群Ｘをフラッシュメモリ２のデータ入力端子群Ｄ−ＩＮに接続している。
【００３８】
セレクタ２３は、第１の入力端子群ＡをＣＰＵ１が出力する３２ビットのアドレス信号の上位４ビットをデコードしてフラッシュメモリ２を選択するフラッシュメモリ選択信号Ｄ＿ＣＳを出力するアドレスデコーダ（図示せず）のフラッシュメモリ選択信号出力端子に接続し、第２の入力端子Ｂを常に“０”が供給される内部ノードに接続し、第３の入力端子Ｃを常に“１”が供給される内部ノードに接続し、出力端子Ｘをフラッシュメモリ２のチップセレクタ信号入力端子ＸＣＳに接続している。
【００３９】
セレクタ２４は、第１の入力端子ＡをＣＰＵ１のリード信号出力端子に接続し、第２の入力端子Ｂをリード信号入力端子１３に接続し、第３の入力端子Ｃを常に“１”が供給される内部ノードに接続し、出力端子Ｘをフラッシュメモリ２のリード信号入力端子ＸＲＤに接続している。
【００４０】
セレクタ２５は、第１の入力端子Ａを常に“１”が供給される内部ノードに接続し、第２の入力端子Ｂをライト信号入力端子１４に接続し、第３の入力端子Ｃを常に“１”が供給される内部ノードに接続し、出力端子Ｘをフラッシュメモリ２のライト信号入力端子ＸＷＥに接続している。
【００４１】
セレクタ２６は、第１の入力端子群Ａをフラッシュメモリ２のデータ出力端子群Ｄ＿ＯＵＴに接続し、第２の入力端子群Ｂをフラッシュメモリ９のデータ出力端子群Ｄ＿ＯＵＴに接続し、出力端子群Ｘをデータ出力バッファ１８の入力端子群に接続している。
【００４２】
また、図１において、３５は内部バスであり、内部バス３５には、ＣＰＵ１及びフラッシュメモリ２のほか、ＲＡＭ３６や周辺回路３７などが接続されている。
【００４３】
図３は本発明の半導体集積回路装置の一実施形態であるマイクロコンピュータにフラッシュメモリ・ライト装置を接続した状態を示す回路図である。図３中、２７は本発明の半導体集積回路装置の一実施形態であるマイクロコンピュータ、２８はフラッシュメモリ・ライト装置であり、マイクロコンピュータ２７は、フラッシュメモリ・ライト装置２８を接続した状態で使用される。
【００４４】
フラッシュメモリ・ライト装置２８において、２９はモード設定信号ＭＤを出力するための２個のモード設定信号出力端子からなるモード設定信号出力端子群、３０はフラッシュメモリ２、９に与える高電圧ＶＰＰを出力するための高電圧出力端子、３１はフラッシュメモリ２に与えるリード信号Ｆ＿ＲＤを出力するためのリード信号出力端子、３２はフラッシュメモリ２に与えるライト信号Ｆ＿ＷＥを出力するためのライト信号出力端子である。
【００４５】
３３はフラッシュメモリ２に与えるアドレス信号Ｆ＿Ａを出力するための１８個のアドレス出力端子からなるアドレス信号出力端子群、３４はフラッシュメモリ２に与えるプログラムコードやデータ及びフラッシュメモリ９に与える有効セクタ指示データの出力、及び、フラッシュメモリ２が出力したプログラムコードやデータ及びフラッシュメモリ９が出力した有効セクタ指示データを入力するための１６個のデータ入出力端子からなるデータ入出力端子群である。
【００４６】
なお、モード設定信号出力端子群２９はモード設定信号入力端子群１１に接続され、高電圧出力端子３０は高電圧入力端子１２に接続され、リード信号出力端子３１はリード信号入力端子１３に接続され、ライト信号出力端子３２はライト信号入力端子１４に接続され、アドレス信号出力端子群３３はアドレス信号入力端子群１５に接続され、データ入出力端子群３４はデータ入出力端子群１６に接続される。
【００４７】
図４はマイクロコンピュータ２７内のセレクタ１９〜２５の通常モード時の状態を示す回路図である。フラッシュメモリ・ライト装置２８は、通常モードを設定する場合には、モード設定信号ＭＤ＝“００”とする。この場合、セレクタ１９〜２５は、第１の入力端子（又は第１の入力端子群）Ａを出力端子（又は出力端子群）Ｘに接続する。
【００４８】
この結果、セレクタ１９は、“０”をフラッシュメモリ９のリード信号入力端子ＸＲＤに与え、セレクタ２０は、“１”をフラッシュメモリ９のライト信号入力端子ＸＷＥに与えるので、フラッシュメモリ９はリードモードとなり、０番地から有効セクタ指示データを出力し、データ変換回路１０は、フラッシュメモリ９が出力する有効セクタ指示データに対応するアドレス信号Ａ１９、Ａ１８を出力し、これをフラッシュメモリ２のアドレス信号入力端子群ＡＤＤ＿１に与える。
【００４９】
また、セレクタ２１は、ＣＰＵ１からのアドレス信号Ｃ＿Ａをフラッシュメモリ２のアドレス信号入力端子群ＡＤＤ＿２に与える。セレクタ２３は、アドレスデコーダからのフラッシュメモリ２を選択する信号Ｄ＿ＣＳをフラッシュメモリ２のチップセレクト信号入力端子ＸＣＳに与える。セレクタ２４は、ＣＰＵ１からのリード信号Ｃ＿ＲＤをフラッシュメモリ２のリード信号入力端子ＸＲＤに与える。セレクタ２５は、“１”をフラッシュメモリ２のライト信号入力端子ＸＷＥに与える。
【００５０】
この結果、ＣＰＵ１は、アドレスデコーダに対してフラッシュメモリ２を選択するアドレス信号を出力すると共に、リード信号Ｃ＿ＲＤとして“０”を出力することにより、フラッシュメモリ２のセクタ４〜７のうち、データ変換回路１０により選択されたセクタへのリードアクセスを行うことが可能となる。
【００５１】
なお、通常モード時には、セレクタ２５は、“１”をフラッシュメモリ２のライト信号入力端子ＸＷＥに与えるので、ＣＰＵ１によるフラッシュメモリ２へのライトアクセスは不可能となる。また、通常モード時には、セレクタ２２は、ＣＰＵ１のデータ出力端子群とフラッシュメモリ２のデータ入力端子群Ｄ＿ＩＮとを接続する。
【００５２】
図５はマイクロコンピュータ２７内のセレクタ１９〜２６のフラッシュメモリ・ライトモード時の状態を示す回路図である。フラッシュメモリ・ライト装置２８は、フラッシュメモリ・ライトモードを設定する場合には、モード設定信号ＭＤ＝“０１”とする。この場合、セレクタ１９〜２５は、第２の入力端子（又は第２の入力端子群）Ｂを出力端子（又は出力端子群）Ｘに接続し、セレクタ２６は、第１の入力端子群Ａを出力端子群Ｘに接続する。
【００５３】
この結果、セレクタ１９は、“０”をフラッシュメモリ９のリード信号入力端子ＸＲＤに与え、セレクタ２０は、“１”をフラッシュメモリ９のライト信号入力端子ＸＷＥに与えるので、フラッシュメモリ９はリードモードとされ、０番地から有効セクタ指示データを出力し、データ変換回路１０は、フラッシュメモリ９が出力する有効セクタ指示データに対応するアドレス信号Ａ１９、Ａ１８を出力し、これをフラッシュメモリ２のアドレス信号入力端子群ＡＤＤ＿１に与える。
【００５４】
また、セレクタ２１は、フラッシュメモリ・ライト装置２８からのアドレス信号Ｆ＿Ａをフラッシュメモリ２のアドレス信号入力端子群ＡＤＤ＿２に与える。セレクタ２２は、フラッシュメモリ・ライト装置２８からのデータＤＡ＿Ｉをフラッシュメモリ２のデータ入力端子群Ｄ＿ＩＮに与える。
【００５５】
また、セレクタ２３は、“０”をフラッシュメモリ２のチップセレクト信号入力端子ＸＣＳに与える。セレクタ２４は、フラッシュメモリ・ライト装置２８からのリード信号Ｆ＿ＲＤをフラッシュメモリ２のリード信号入力端子ＸＲＤに与える。セレクタ２５は、フラッシュメモリ・ライト装置２８からのライト信号Ｆ＿ＷＥをフラッシュメモリ２のライト信号入力端子ＸＷＥに与える。
【００５６】
この結果、フラッシュメモリ・ライト装置２８は、リード信号Ｆ＿ＲＤ＝“１”、ライト信号Ｆ＿ＷＥ＝“０”とすることにより、フラッシュメモリ２のセクタ４〜７のうち、データ変換回路１０により選択されたセクタへのライトアクセスが可能となり、リード信号Ｆ＿ＲＤ＝“０”、ライト信号Ｆ＿ＷＥ＝“１”とすることにより、フラッシュメモリ２のセクタ４〜７のうち、データ変換回路１０により選択されたセクタへのリードアクセスを行うことが可能となる。
【００５７】
また、セレクタ２６は、フラッシュメモリ２が出力端子群Ｄ＿ＯＵＴに出力するデータＤＡ＿Ｏ（プログラムコードやデータ）をデータ出力バッファ１８の出力端子群に与える。この結果、フラッシュメモリ・ライト装置２８が出力するリード信号Ｆ＿ＲＤ＝“０”の場合に、フラッシュメモリ２から出力されるデータＤＡ＿Ｏ（プログラムコードやデータ）のフラッシュメモリ・ライト装置２８への転送が可能となる。
【００５８】
図６はマイクロコンピュータ２７内のセレクタ１９〜２６のセクタ設定モード時の状態を示す回路図である。フラッシュメモリ・ライト装置２８は、セクタ設定モードを設定する場合には、モード設定信号ＭＤ＝“１０”とする。この場合、セレクタ１９〜２５は、第３の入力端子（又は第３の入力端子群）Ｃを出力端子（又は出力端子群）Ｘに接続し、セレクタ２６は、第２の入力端子群Ｂを出力端子群Ｘに接続する。
【００５９】
この結果、セレクタ１９は、フラッシュメモリ・ライト装置２８からのリード信号Ｆ＿ＲＤをフラッシュメモリ９のリード信号入力端子ＸＲＤに与え、セレクタ２０は、フラッシュメモリ・ライト装置２８からのライト信号Ｆ＿ＷＥをフラッシュメモリ９のライト信号入力端子ＸＷＥに与える。
【００６０】
そこで、フラッシュメモリ・ライト装置２８は、リード信号Ｆ＿ＲＤ＝“１”、ライト信号Ｆ＿ＷＥ＝“０”とすることにより、フラッシュメモリ９へのライトアクセスが可能となり、フラッシュメモリ・ライト装置２８は、リード信号Ｆ＿ＲＤ＝“０”、ライト信号Ｆ＿ＷＥ＝“１”とすることにより、フラッシュメモリ９へのリードアクセスが可能となる。
【００６１】
また、セレクタ２３は、“１”をフラッシュメモリ２のチップセレクト信号入力端子ＸＣＳに与える。この結果、フラッシュメモリ２は非選択状態となる。なお、この場合、セレクタ２１は、“０”をフラッシュメモリ２のアドレス信号入力端子群ＡＤＤ＿２に与え、セレクタ２２は、“０”をフラッシュメモリ２のデータ入力端子群Ｄ＿ＩＮに与え、セレクタ２４は、“１”をフラッシュメモリ２のリード信号入力端子ＸＲＤに与え、セレクタ２５は、“１”をフラッシュメモリ２のライト信号入力端子ＸＷＥに与える。
【００６２】
また、セレクタ２６は、フラッシュメモリ９が出力端子群Ｄ＿ＯＵＴに出力するデータＤＡ＿Ｏ（有効セクタ指示データ）をデータ出力バッファ１８の出力端子に与える。この結果、フラッシュメモリ・ライト装置２８が出力するリード信号Ｆ＿ＲＤ＝“０”の場合に、フラッシュメモリ９から出力されるデータＤＡ＿Ｏ（有効セクタ指示データ）のフラッシュメモリ・ライト装置２８への転送が可能となる。
【００６３】
図７はフラッシュメモリ・ライト装置２８によるマイクロコンピュータ２７の制御方法（本発明の半導体集積回路装置の制御方法の一実施形態）を示すフローチャートである。前述のように、マイクロコンピュータ２７は、フラッシュメモリ・ライト装置２８が接続されて使用されるが、マイクロコンピュータ２７を使用する場合には、まず、フラッシュメモリ２にプログラムやデータの初期値をライトする必要がある。
【００６４】
そこで、フラッシュメモリ・ライト装置２８は、まず、モード設定信号ＭＤ＝“０１”として、マイクロコンピュータ２７をフラッシュメモリ・ライトモードとし、フラッシュメモリ２にＣＰＵ１がリードするプログラムコードやデータの初期値をライトする（ステップＳ１）。次に、モード設定信号ＭＤ＝“００”として、マイクロコンピュータ２を通常モードとし（ステップＳ２）、ＣＰＵ１からのフラッシュメモリ２へのリードアクセスを可能とする。
【００６５】
この場合、フラッシュメモリ９には、工場出荷時に、有効セクタ指示データとして既に“１１１”がライトされているので、データ変換回路１０は、アドレス信号Ａ１９、Ａ１８として“００”を出力し、フラッシュメモリ２は、有効セクタとしてセクタ４を選択する。この結果、フラッシュメモリ・ライト装置２８がフラッシュメモリ２のデータ入力端子群Ｄ＿ＩＮに与えるプログラムコードやデータの初期値は、セクタ４にライトされる。
【００６６】
その後、フラッシュメモリ２の保持値を更新する場合（ステップＳ３でＹＥＳの場合）には、フラッシュメモリ・ライト装置２８は、モード設定信号ＭＤ＝“０１”として、マイクロコンピュータ２７をフラッシュメモリ・ライトモードとし、フラッシュメモリ２にプログラムコードやデータの更新値をライトする（ステップＳ４）。
【００６７】
この場合、フラッシュメモリ９には、有効セクタ指示データとして“１１１”がライトされているので、データ変換回路１０は、アドレス信号Ａ１９、Ａ１８として“００”を出力し、フラッシュメモリ２は、有効セクタとしてセクタ４を選択する。この結果、フラッシュメモリ・ライト装置２８がフラッシュメモリ２のデータ入力端子群Ｄ＿ＩＮに与えるプログラムコードやデータの更新値は、セクタ４にライトされる。
【００６８】
次に、フラッシュメモリ・ライト装置２８は、フラッシュメモリ２から更新値をリードし、更新値が正しくライトされているか否かをチェックし（ステップＳ５）、更新値が正しくライトされている場合（ステップＳ６でＹＥＳの場合）には、モード設定信号ＭＤ＝“００”として、マイクロコンピュータ２７を通常モードとし、ＣＰＵ１からのフラッシュメモリ２へのリードアクセスを可能とする。
【００６９】
以後、セクタ４に更新値が正しくライトされる限り、更新値はセクタ４にライトされることになるが、セクタ４が寿命となり、更新値のリードチェックで、更新値が正しくライトされていないことが判明した場合（ステップＳ６でＮＯの場合）には、フラッシュメモリ・ライト装置２８は、フラッシュメモリ９にライトされている有効セクタ指示データ（本例の場合、“１１１”）の変更が可能か否かを判定する（ステップＳ７）。
【００７０】
ここで、フラッシュメモリ９にライトされている有効セクタ指示データ（本例の場合、“１１１”）の変更が可能な場合（ステップＳ７でＹＥＳの場合）には、フラッシュメモリ・ライト装置２８は、モード設定信号ＭＤ＝“１０”として、マイクロコンピュータ２７をセクタ設定モードとし、フラッシュメモリ９に次の有効セクタ指示データ（本例の場合、“１１０”）をライトする（ステップＳ８）。
【００７１】
次に、フラッシュメモリ・ライト装置２８は、フラッシュメモリ９から有効セクタ指示データをリードし、有効セクタ指示データが正しくライトされているか否かをチェックし（ステップＳ９）、有効セクタ指示データが正しくライトされている場合（ステップＳ１０でＹＥＳの場合）には、モード設定信号ＭＤ＝“０１”とし、マイクロコンピュータ２７をフラッシュメモリ・ライトモードとし、フラッシュメモリ２に更新値をライトする（ステップＳ４）。
【００７２】
この場合、フラッシュメモリ９には、有効セクタ指示データとして“１１０”がライトされているので、データ変換回路１０は、アドレス信号Ａ１９、Ａ１８として“０１”を出力し、フラッシュメモリ２は、有効セクタとしてセクタ５を選択する。この結果、フラッシュメモリ・ライト装置２８がフラッシュメモリ２のデータ入力端子群Ｄ＿ＩＮに与えるプログラムコードやデータの更新値は、セクタ５にライトされることになる。
【００７３】
次に、フラッシュメモリ・ライト装置２８は、フラッシュメモリ２から更新値をリードして、更新値が正しくライトされているか否かをチェックし（ステップＳ５）、更新値が正しくライトされている場合（ステップＳ６でＹＥＳの場合）には、モード設定信号ＭＤ＝“００”として、マイクロコンピュータ２７を通常モードとし、ＣＰＵ１からのフラッシュメモリ２へのリードアクセスを可能とする。
【００７４】
以後、セクタ５に更新値が正しくライトされる限り、更新値はセクタ５にライトされることになるが、セクタ５が寿命となり、更新値のリードチェックで、更新値が正しくライトされていないことが判明した場合（ステップＳ６でＮＯの場合）には、フラッシュメモリ・ライト装置２８は、フラッシュメモリ９にライトされている有効セクタ指示データ（本例の場合、“１１０”）の変更が可能か否かを判定する（ステップＳ７）。
【００７５】
ここで、フラッシュメモリ９にライトされている有効セクタ指示データ（本例の場合、“１１０”）の変更が可能な場合（ステップＳ７でＹＥＳの場合）には、フラッシュメモリ・ライト装置２８は、モード設定信号ＭＤ＝“１０”として、マイクロコンピュータ２７をセクタ設定モードとし、フラッシュメモリ９に次の有効セクタ指示データ（本例の場合、“１００”）をライトする（ステップＳ８）。
【００７６】
次に、フラッシュメモリ・ライト装置２８は、フラッシュメモリ９から有効セクタ指示データをリードし、有効セクタ指示データが正しくライトされているか否かをチェックし（ステップＳ９）、有効セクタ指示データが正しくライトされている場合（ステップＳ１０でＹＥＳの場合）には、モード設定信号ＭＤ＝“０１”として、マイクロコンピュータ２７をフラッシュメモリ・ライトモードとし、フラッシュメモリ２に更新値をライトする（ステップＳ４）。
【００７７】
この場合、フラッシュメモリ９には、有効セクタ指示データとして“１００”がライトされているので、データ変換回路１０は、アドレス信号Ａ１９、Ａ１８として“１０”を出力し、フラッシュメモリ２は、有効セクタとしてセクタ６を選択する。この結果、フラッシュメモリ・ライト装置２８がフラッシュメモリ２のデータ入力端子群Ｄ＿ＩＮに与えるプログラムコードやデータの更新値は、セクタ６にライトされることになる。
【００７８】
次に、フラッシュメモリ・ライト装置２８は、フラッシュメモリ２から更新値をリードし、更新値が正しくライトされているか否かをチェックし（ステップＳ５）、更新値が正しくライトされている場合（ステップＳ６でＹＥＳの場合）には、モード設定信号ＭＤ＝“００”とし、マイクロコンピュータ２７を通常モードとし、ＣＰＵ１からのフラッシュメモリ２へのリードアクセスを可能とする。
【００７９】
以後、セクタ６に更新値が正しくライトされる限り、更新値はセクタ６にライトされることになるが、セクタ６が寿命となり、更新値のリードチェックで、更新値が正しくライトされていないことが判明した場合（ステップＳ６でＮＯの場合）には、フラッシュメモリ・ライト装置２８は、フラッシュメモリ９にライトされている有効セクタ指示データ（本例の場合、“１００”）の変更が可能か否かを判定する（ステップＳ７）。
【００８０】
ここで、フラッシュメモリ９にライトされている有効セクタ指示データ（本例の場合、“１００”）の変更が可能な場合（ステップＳ７でＹＥＳの場合）には、フラッシュメモリ・ライト装置２８は、モード設定信号ＭＤ＝“１０”として、マイクロコンピュータ２７をセクタ設定モードとし、フラッシュメモリ９に次の有効セクタ指示データ（本例の場合、“０００”）をライトする（ステップＳ８）。
【００８１】
次に、フラッシュメモリ・ライト装置２８は、フラッシュメモリ９から有効セクタ指示データをリードし、有効セクタ指示データが正しくライトされているか否かをチェックし（ステップＳ９）、有効セクタ指示データが正しくライトされている場合（ステップＳ１０でＹＥＳの場合）には、モード設定信号ＭＤ＝“０１”とし、マイクロコンピュータ２７をフラッシュメモリ・ライトモードとし、フラッシュメモリ２にプログラムコードやデータの更新値をライトする（ステップＳ４）。
【００８２】
この場合、フラッシュメモリ９には、有効セクタ指示データとして“０００”がライトされているので、データ変換回路１０は、アドレス信号Ａ１９、Ａ１８として“１１”を出力し、フラッシュメモリ２は、有効セクタとしてセクタ７を選択する。この結果、フラッシュメモリ・ライト装置２８がフラッシュメモリ２のデータ入力端子群Ｄ＿ＩＮに与えるプログラムコードやデータの更新値は、セクタ７にライトされることになる。
【００８３】
次に、フラッシュメモリ・ライト装置２８は、フラッシュメモリ２から更新値をリードし、更新値が正しくライトされているか否かをチェックし（ステップＳ５）、更新値が正しくライトされている場合（ステップＳ６でＹＥＳの場合）には、モード設定信号ＭＤ＝“００”とし、マイクロコンピュータ２７を通常モードとし、ＣＰＵ１からのフラッシュメモリ２のセクタ７へのリードアクセスを可能とする。
【００８４】
以後、セクタ７に更新値が正しくライトされる限り、更新値はセクタ７にライトされることになるが、セクタ７が寿命となり、更新値のリードチェックで、更新値が正しくライトされていないことが判明した場合（ステップＳ６でＮＯの場合）、フラッシュメモリ９にライトされている有効セクタ指示データ（本例の場合、“０００”）の変更が可能であるか否かを判断する（ステップＳ７）。
【００８５】
本例の場合、フラッシュメモリ９には有効セクタ指示データとして最後の有効セクタ指示データ“０００”がライトされているので、有効セクタ指示データの変更は不可能である。そこで、この場合、フラッシュメモリ・ライト装置２８は、エラーを表示し（ステップＳ１１）、マイクロコンピュータ２７の制御を終了する。
【００８６】
また、ステップＳ１０でＮＯの場合、即ち、フラッシュメモリ９に有効セクタ指示データを正しくライトできなかった場合には、フラッシュメモリ９は寿命であるとみなして、フラッシュメモリ・ライト装置２８はエラーを表示し（ステップＳ１２）、マイクロコンピュータ２７の制御を終了する。なお、フラッシュメモリ２にライトした更新値のリードチェック（ステップＳ５）は、１データ毎に実行しても良いし、セクタ内の全データを単位として実行するようにしても良い。
【００８７】
以上のように、本発明の半導体集積回路装置の一実施形態であるマイクロコンピュータ２７によれば、ＣＰＵ１がリードするプログラムコードやデータを格納する不揮発性メモリとして、４個のセクタ４〜７を有するフラッシュメモリ２が設けられていると共に、フラッシュメモリ・ライト装置２８から与えられる有効セクタ指示データが指示するセクタを選択するためのセクタ選択信号（アドレス信号Ａ１９、Ａ１８）を生成するセクタ選択信号生成回路８と、フラッシュメモリ２に対するアクセスを制御するセレクタ１９〜２６が設けられている。
【００８８】
したがって、フラッシュメモリ２のセクタ４〜７のうち、有効とされているセクタが寿命となったか否かを判断し、有効とされているセクタが寿命となったときは、未使用のセクタを新たに有効なセクタとするための有効セクタ指示データをセクタ選択信号生成回路８に与えるという動作をフラッシュメモリ・ライト装置２８に実行させることにより、有効とするセクタを、寿命となったセクタから未使用のセクタに自動的に交替させることができ、ユーザからは、寿命の長いフラッシュメモリ２を内蔵しているように見える。
【００８９】
なお、本発明の半導体集積回路装置の一実施形態であるマイクロコンピュータ２７においては、プログラムコードやデータを格納する不揮発性メモリとして、４つのセクタを有する１個のフラッシュメモリ２を設けるようにしているが、この代わりに、複数のフラッシュメモリを設けるようにしても良い。
【００９０】
また、本発明の半導体集積回路装置の一実施形態であるマイクロコンピュータ２７においては、プログラムコードやデータを格納する不揮発性メモリとして、フラッシュメモリ２を設けるようにしているが、この代わりに、ＦＲＡＭ（強誘電体メモリ）を設けるようにしても良い。
【図面の簡単な説明】
【００９１】
【図１】本発明の半導体集積回路装置の一実施形態であるマイクロコンピュータの一部分を示す回路図である。
【図２】本発明の半導体集積回路装置の一実施形態であるマイクロコンピュータが内蔵するフラッシュメモリの概念図である。
【図３】本発明の半導体集積回路装置の一実施形態であるマイクロコンピュータにフラッシュメモリ・ライト装置を接続した状態を示す回路図である。
【図４】本発明の半導体集積回路装置の一実施形態であるマイクロコンピュータ内のセレクタの通常モード時の状態を示す回路図である。
【図５】本発明の半導体集積回路装置の一実施形態であるマイクロコンピュータ内のセレクタのフラッシュメモリ・ライトモード時の状態を示す回路図である。
【図６】本発明の半導体集積回路装置の一実施形態であるマイクロコンピュータ内のセレクタのセクタ設定モード時の状態を示す回路図である。
【図７】図１に示すフラッシュメモリ・ライト装置による本発明の半導体集積回路装置の一実施形態であるマイクロコンピュータの制御方法（本発明の半導体集積回路装置の制御方法の一実施形態）を示すフローチャートである。
【符号の説明】
【００９２】
１…ＣＰＵ
２…フラッシュメモリ
３…メモリセル領域
４〜７…セクタ
８…セクタ選択信号生成回路
９…フラッシュメモリ
１０…データ変換回路
１１…モード設定信号入力端子
１２…高電圧入力端子
１３…リード信号入力端子
１４…ライト信号入力端子
１５…アドレス信号入力端子
１６…データ入出力端子
１７…データ入力バッファ
１８…データ出力バッファ
１９〜２６…セレクタ
２７…本発明の半導体集積回路装置の一実施形態であるマイクロコンピュータ
２８…フラッシュメモリ・ライト装置
２９…モード設定信号出力端子
３０…高電圧出力端子
３１…リード信号出力端子
３２…ライト信号出力端子
３３…アドレス信号出力端子
３４…データ入出力端子
３５…内部バス
３６…ＲＡＭ
３７…周辺回路
【図１】
2009093388.tif 000004
【図２】
2009093388.tif 000005
【図３】
2009093388.tif 000006
【図４】
2009093388.tif 000007
【図５】
2009093388.tif 000008
【図６】
2009093388.tif 000009
【図７】
2009093388.tif 000010