(57)【特許請求の範囲】
【請求項１】
予め定められたプログラムを格納する第１の領域と、前記第１の領域を除いた第２の領域とを備え、且つ、前記第２の領域は複数のブロックに区分されており、前記第１の領域、及び、前記第２の領域における複数のブロックはアドレス信号における特定ビット組によって指定できる書換可能なメモリと、
前記第１の領域、及び、前記第２の領域内の複数ブロックを個々に消去する第１のモードと、前記第１の領域を除く、第２の領域を構成する前記複数のブロックを一括消去する第２のモードを指示するブート外ブロック消去ビットと前記アドレス信号の特定ビット組とを演算することにより、前記第１の領域を除く第２の領域の複数のブロックを第1のモードを指示されたとき個別に、第２のモードを指示されたとき一括消去するための選択消去手段とを、有していることを特徴とするマイクロコンピュータ。
【請求項２】
請求項１において、前記書換可能なメモリは、フラッシュＥＥＰＲＯＭであることを特徴とするマイクロコンピュータ。
【請求項３】
請求項２において、前記フラッシュＥＥＰＲＯＭは、前記第１の領域と、複数のブロックに区分された第２の領域とを備えており、前記選択消去手段は、前記アドレス信号の特定ビット組として、上位ビットを受け、当該上位ビットの値を演算して、演算結果を出力する手段を備え、当該演算結果により、前記第２の領域の各ブロックだけでなく、前記第１の領域をも個別、且つ、選択的に消去できることを特徴とするマイクロコンピュータ。
【請求項４】
請求項３において、前記第１の領域、及び、前記第２の領域内の複数ブロックを個々に消去する第１のモードと、前記第１の領域を除く、第２の領域を構成する前記複数のブロックを消去する第２のモードを指示するブート外ブロック消去ビットを保持するレジスタを備えており、前記選択消去手段は、前記ブート外ブロック消去ビットに応じて、前記第１のモードと前記第２のモードとを切換える手段を有していることを特徴とするマイクロコンピュータ。
【請求項５】
請求項４において、前記第１の領域には、ユーザーによって書き込まれたブートプログラムが前記予め定められたプログラムとして格納されていることを特徴とするマイクロコンピュータ。
【請求項６】
請求項５において、前記ブートプログラムにしたがって、前記第２の領域の各ブロックにアプリケーションプログラムを書き込み制御するためのプログラムを格納したファームウェアを更に備えていることを特徴とするマイクロコンピュータ。
【請求項７】
予め定められたプログラムを格納する第１の領域と、複数のブロックに区分された第２の領域とを有する書換可能なメモリのデータ消去方法において、
前記第１の領域、及び、前記第２の領域の複数のブロックをアドレス信号における特定ビット組によって指定できるように対応付けておき、
前記第１の領域、及び、前記第２の領域内の複数ブロックを個々に消去する第１のモードと、前記第１の領域を除く、第２の領域を構成する前記複数のブロックを一括消去する第２のモードを指示するブート外ブロック消去ビットと前記アドレス信号の特定ビット組とを演算することにより、前記第１の領域だけを残し、第２の領域の複数のブロックを第1のモードを指示されたとき個別に、第２のモードを指示されたとき一括消去することを特徴とするメモリの消去方法。
【請求項８】
請求項７において、前記第１の領域には、ユーザーによって書き込まれたブートプログラムが格納されており、前記第２の領域のブロックには、ユーザーのアプリケーションプログラムが格納されており、前記アドレス信号の特定ビット組と、前記ブート外ブロック消去ビットとを演算することにより、前記ブートプログラムを除く、当該アプリケーションプログラムを一括または個別に消去することを特徴とするメモリの消去方法。
【請求項９】
請求項８において、前記書換可能なメモリはフラッシュＥＥＰＲＯＭであり、前記フラッシュＥＥＰＲＯＭは、前記第１の領域と、複数のブロックに区分された第２の領域とを備えており、前記アドレス信号の特定ビット組として、上位ビットを受け、当該上位ビットの値を演算して、演算結果を出力し、当該演算結果により、前記第１の領域、及び、前記第２の領域の各ブロックを個別に消去することを特徴とするメモリの消去方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、メモリセルの内容を書換、消去可能な半導体メモリを内蔵したマイクロコンピュータに関し、特に、電気的に書換、消去できるフラッシュＥＥＰＲＯＭを内蔵したマイクロコンピュータ、及び、フラッシュＥＥＰＲＯＭの消去方法に関する。
【０００２】
【従来の技術】
一般に、この種のマイクロコンピュータには、アプリケーションプログラムのようなユーザープログラムを書き換え可能なフラッシュＥＥＰＲＯＭを備えたものがある。
【０００３】
従来、この種のマイクロコンピュータとして、特開平５−２６６２１９号公報（以下、引用例１と呼ぶ）では、マイクロコンピュータを実装基板等に実装した状態で、ユーザー自身で、フラッシュＥＥＰＲＯＭの記憶内容を他のプログラムに書き換えることができる、所謂、セルフプログラミング方式のシステムが提案されている。
【０００４】
このように、フラッシュＥＥＰＲＯＭのプログラム等をユーザーによって書換えるモードとして、引用例１では、汎用ＰＲＯＭライターからのプログラムをフラッシュＥＥＰＲＯＭに直接、プログラムを書込むモードと、マイクロコンピュータ内部に設けられた中央処理装置（ＣＰＵ）の制御によって、プログラム等を書込むモードとが開示されている。汎用ＰＲＯＭライターからのプログラムを使用した場合には、マイクロコンピュータ内部のＣＰＵ等をフラッシュＥＥＰＲＯＭから切り離し、汎用ＰＲＭライターの制御の下に、直接、フラッシュＥＥＰＲＯＭのプログラムを書換えることができる。
【０００５】
他方、ＣＰＵの制御の下に、フラッシュＥＥＰＲＯＭのプログラム等を書換える場合、書換えるべきプログラムのほかに、フラッシュＥＥＰＲＯＭに対してプログラムの書換制御を行うための書換制御プログラムを用意しておく必要がある。このため、上記した引用例１では、書換制御プログラムはフラッシュＥＥＰＲＯＭ、或いは、マスクＲＯＭ等に格納している。
【０００６】
このうち、フラッシュＥＥＰＲＯＭに書換制御プログラムが格納されている場合には、一旦、フラッシュＥＥＰＲＯＭに格納された書換制御プログラムを転送制御プログラムと共に、ＲＡＭに転送した後、ＲＡＭに格納された書換制御プログラムにしたがって、フラッシュＥＥＰＲＯＭ内に新たなプログラム等を書き込んでいる。また、マスクＲＯＭに書換制御プログラムが格納されている場合には、マスクＲＯＭ内の書換制御プログラムにしたがって、フラッシュＥＥＰＲＯＭの書換が行われている。
【０００７】
いずれにしても、フラッシュＥＥＰＲＯＭの記憶内容を書換えるためには、フラッシュＥＥＰＲＯＭを一旦、消去状態にする必要がある。このように、フラッシュＥＥＰＲＯＭの記憶内容を消去する方法として、複数のメモリセルを含むメモリ領域全体を一括して消去する方法と、メモリ領域を複数のブロックに分割して、ブロック毎に消去する場合とが知られている。
【０００８】
【発明が解決しようとする課題】
このうち、一括消去する方法では、短時間でフラッシュＥＥＰＲＯＭ内の全てのデータ乃至プログラムを消去できる反面、プログラムの書換の際には、全てのデータ、プログラムを書換える必要があるため、書換に時間を要すると言う欠点がある。
【０００９】
また、フラッシュＥＥＰＲＯＭの記憶領域を複数のブロックに分割した場合、個々のブロック毎に消去動作を行うことができるが、ブロックの数が多くなると、各ブロックを消去するために、２秒程度要するため、消去に時間がかかってしまうと言う欠点がある。
【００１０】
従来、フラッシュＥＥＰＲＯＭの消去方法として、特開平５−３２５５７６号公報（引用例２と呼ぶ）には、フラッシュＥＥＰＲＯＭのブロックに対応してラッチを設けておき、ラッチによって消去されるべきブロックを指定し、ラッチによって指定されたブロックの記憶内容を消去する方法が開示されている。この消去方法を採用した場合、任意のブロックにおける記憶内容を消去できる反面、ブロック数の増加に応じて、ラッチの数を増加させる必要があり、且つ、消去すべきブロックに対応したラッチを指定する手段も必要である。
【００１１】
更に、特開平７−９８９９１号公報（引用例３）には、複数のアドレス信号を複数の対応した消去ブロックとしてラッチでき、これによって、一度に種々の組み合わせでブロックの記憶内容を消去できる不揮発性半導体記憶装置が開示されている。この構成では、アドレス信号数とブロック数とが等しくなければならないという制限があり、したがって、ブロック数の増加と共に、ラッチも増加させる必要がある。
【００１２】
一方、最近、個々のユーザーに必要なプログラムを格納して、各ユーザー毎にカスタマイズされたマイクロコンピュータに対するユーザーの要求も高まっている。このような要求に応えるためには、単に、アプリケーション操作を行うユーザープログラムだけでなく、ユーザープログラム書換用のプログラム（以下、ブートプログラムと呼ぶ）をも、個々のユーザーによって異なり、且つ、ブートプログラムを格納するのに必要なブロックも、使用されるブートプログラム毎に相違していることを考慮しておかなければならない。
【００１３】
この場合、バグ等の発生を考えると、ユーザープログラム自体、書換可能であることが望ましいが、ブートプログラム自体は、ユーザー固有に使用されることが多いため、書き換えられることは、非常にまれである。
【００１４】
上記したユーザーの要求に応じて、ユーザープログラム及びブートプログラムの双方をフラッシュＥＥＰＲＯＭに格納し、且つ、その消去のため、引用例１〜３の技術を適用することも、考えられるかも知れない。
【００１５】
しかしながら、引用例１〜３は、ユーザープログラムとブートプログラムとを区別して、フラッシュＥＥＰＲＯＭに格納することについて、全く示唆していない。却って、引用例１では、フラッシュＥＥＰＲＯＭの書換制御プログラムをＲＡＭに一旦転送させた後、全てのブロックの記憶内容を消去している。また、引用例２及び３は、消去すべきブロックをラッチを用いて指定することを開示しているが、上記したユーザープログラム及びブートプログラムと、消去ブロックとの関係、並びに、ユーザープログラム及びブートプログラムとをフラッシュＥＥＰＲＯＭに格納した場合における消去回路及び消去方法について、全く示唆していない。例えば、ユーザープログラムが多数のブロックに亘って格納されている場合、ブロック毎に記憶内容を消去したのでは、消去に長時間を要することになってしまうし、また、引用例２及び３のように、消去すべきブロックに対応してラッチを設ける構成では、ラッチの制御が難しいと言う欠点がある。
【００１６】
本発明の目的は、ブートプログラムとユーザープログラムとをフラッシュＥＥＰＲＯＭに格納したマイクロコンピュータを提供することである。
【００１７】
本発明の他の目的は、ブートプログラムとユーザープログラムとの双方を格納したフラッシュＥＥＰＲＯＭに適した消去回路を備えたマイクロコンピュータを提供することである。
【００１８】
本発明の更に他の目的は、ブートプログラム及びユーザープログラムが多数のブロックに分割して格納されている場合、迅速にユーザープログラムだけを消去できる消去回路を備えたマイクロコンピュータを提供することである。
【００１９】
本発明の他の目的は、ブートプログラムの格納される領域の変化にも対応でき、したがって、ユーザー毎に、異なるブートプログラムを使用できるマイクロコンピュータを提供することである。
【００２０】
本発明の他の目的は、フラッシュＥＥＰＲＯＭの記憶内容を転送等を行うことなく、部分的に消去する消去方法を提供することである。
【００２１】
本発明の更に他の目的は、ブロック毎に個々に消去できるモードと、ブートプログラムを残して、それ以外のプログラムの領域を消去できるモードとを選択できる消去方法を提供することである。
【００２２】
【課題を解決するための手段】
本発明の一形態によれば、予め定められたプログラムを格納する第１の領域と、前記第１の領域を除いた第２の領域とを備えた書換可能なメモリと、前記第１の領域を除く第２の領域を識別して、前記第１の領域を除く前記第２の領域だけを消去するための選択消去手段とを有しているマイクロコンピュータが得られる。ここで、第１の領域に格納された予め定められたプログラムはブートプログラムであり、第２の領域に格納されるプログラムはユーザープログラムであることが望ましい。
【００２３】
本発明の他の形態によれば、第１の領域を残して、第２の領域だけを、ブロック毎に消去するのではなく、一括して消去するため、消去に要する時間を短縮できるフラッシュＥＥＰＲＯＭの消去方法が得られる。
【００２４】
【発明の実施の形態】
以下、図面を参照して、本発明の実施の形態を説明する。
【００２５】
図１及び図２を参照して、本発明の一実施の形態に係るマイクロコンピュータにおけるフラッシュＥＥＰＲＯＭ１０の消去動作を概略的に説明する。図示されたフラッシュＥＥＰＲＯＭ１０は４つのブロック０〜３に分割されており、各ブロック０〜３は互いに等しいアドレス数を備え、且つ、その記憶容量も等しいものとして説明するが、これらブロック０〜３は互いに異なる記憶容量を有していても良いし、更に、多数のブロックに分けられても良い。
【００２６】
図示された例では、ブロック０には、当該マイクロコンピュータのユーザーに応じたブートプログラムが格納されており、他のブロック１〜３には、ユーザーアプリケーションプログラムが格納されているものとする。また、この例の場合、書換制御プログラムはファームウェアの形で、ＲＯＭ１５に格納されているものとする。
【００２７】
図１において、ユーザーの起動操作により、ブロック０に格納されたブートプログラムが動作して、ＲＯＭ１５に格納されている書換制御プログラムに対して、ブロック消去指定命令が送出される。ブロック消去指定命令が与えられると、ＲＯＭ１５は、図２に示すように、書換制御プログラムにしたがって、消去すべきブロックを選択するブロック指定信号がブロック選択回路１７からブロック０〜３に出力される。
【００２８】
図２に示された例では、各ブロック０〜３に、フラッシュＥＥＰＲＯＭ制御回路１９が接続されており、フラッシュＥＥＰＲＯＭ制御回路１９の制御の下に、ブロック選択回路１７で選択されたブロック０〜３の消去動作が行なわれる。図２に示されているように、ブロック０〜３は、ブロック指定信号▲１▼、▲２▼、▲３▼、及び、▲４▼によって個々に指定され、フラッシュＥＥＰＲＯＭ制御回路１９の制御の下に、個々に、且つ、排他的に、各ブロックの記憶内容を消去できる。
更に、図２に示されているように、ブロック指定信号▲５▼は、ブロック選択回路１７からブロック１、２、及び３に供給されており、この結果として、ブロック０以外のブロック１、２、３を同時的に消去できる。同様に、ブロック指定信号▲６▼は、ブロック２及び３に与えられており、これら両ブロック２及び３を同時的に消去できる。また、ブロック指定信号▲７▼はブロック３にのみ与えられており、ブロック指定信号▲４▼と同様に、ブロック３のみを消去するために使用される。上記したブロック指定信号▲５▼、▲６▼、及び▲７▼の消去領域は、図１からも明らかである。これらブロック指定信号のうち、特に、ブロック指定信号▲５▼は、ブートプログラムを格納したブロック０以外の領域を同時的に消去できるため、ブロック１〜３にユーザープログラムが格納されている場合には、ブロック０に格納されたブートプログラムを消去することなく、ユーザープログラムを一括消去できる。
【００２９】
したがって、この構成では、ブートプログラム以外のユーザープログラムを迅速に消去できる。
【００３０】
図３を参照すると、本発明に係るマイクロコンピュータの構成例が示されており、この例では、図１及び図２に示されたフラッシュＥＥＰＲＯＭ１０、ＲＯＭ１５、ブロック選択回路１７、及び、フラッシュＥＥＰＲＯＭ制御回路１９の接続関係がより具体的に示されている。図３に示されたマイクロコンピュータは、アドレスバス２１及び周辺バス２２とを備え、両バス２１及び２２は図示されないＣＰＵに接続されている。
【００３１】
図３に示されたフラッシュＥＥＰＲＯＭ１０は、図２と同様に、フラッシュＥＥＰＲＯＭ制御回路１９に接続されると共に、フラッシュＥＥＰＲＯＭ１０対する書込データを書込むためのフラッシュ書込回路２５に接続され、且つ、フラッシュＥＥＰＲＯＭ１０から読出データを読み出すための読出回路２６にも接続されている。図示されたフラッシュ書込回路２５はフラッシュ書込バッファＦＬＷＢによって構成されており、他方、読出回路２６はフラッシュ読出バッファＦＬＲＢを備えている。
【００３２】
また、フラッシュＥＥＰＲＯＭ制御回路１９は、フラッシュモード制御レジスタ（ＦＬＭＣ）１９１及びデコーダ１９２とを有し、ＦＬＭＣ１９１は周辺バス２２を介して、命令及びデータの送受を行う。デコーダ１９２はＦＬＭＣ１９１からの命令を解読して、フラッシュＥＥＰＲＯＭ１０を消去、書込、及び、読出を行うためのフラッシュ制御信号を出力する。ここで、図示されたＦＭＰＭＣ２８では、フラッシュＥＥＰＲＯＭ１０に対するセルフプログラミングモードをあらわすセルフプログラミングモード信号ＳＰをも出力する。
【００３３】
図示されたブロック選択回路１７は、アドレスバス２１、フラッシュアドレスポインター（ＦＬＡＰ）２７、及び、フラッシュプログラミングコントロールレジスタ（ＦＬＰＭＣ）２８とに接続されている。
【００３４】
このうち、ＦＬＡＰ２７はブロック選択回路１７に対して書込、読出、及び、消去の対象となる領域の先頭アドレスを指示し、他方、ＦＬＰＭＣ２８は、通常モードとセルフプログラミングモードとを識別すると共に、図１及び図２を参照して説明したように、ブートプログラムを格納した領域（ブロック０）以外の領域（ブロック１〜３）を一括して消去するモードを指示するブート外ブロック消去ビットを含んでいる。更に、ＦＬＰＭＣ２８は命令フェッチ先切換回路２９に接続されており、ＦＬＰＭＣ２８に格納されたモードに応じて、切換回路３１にスイッチ信号を出力する。
【００３５】
切換回路３１は、書込制御プログラムをファームウェアとして格納したＲＯＭ１５と、フラッシュＥＥＰＲＯＭ１０から読み出された命令を保持する読出回路２６とに接続されており、通常モードがＦＬＰＭＣ２８に設定されている場合には、読出回路２６を選択した状態にある。この状態では、フラッシュＥＥＰＲＯＭ１０からの命令等が切換回路３１を介して周辺バス２２上に送出される。
【００３６】
他方、ＦＬＰＭＣ２８によって、セルフプログラミングモードが指定されている場合、切換回路３１はＲＯＭ１５を選択しており、フラッシュＥＥＰＲＯＭ制御回路１９及びＦＬＷＢ２５等が動作し、フラッシュＥＥＲＰＯＭ１５の書込、消去がＲＯＭ１５に格納されたファームウェアにしたがって行われる。
【００３７】
次に、ＲＯＭ１５のファームウェアにしたがって行われるフラッシュＥＥＰＲＯＭ１０の消去動作について説明しておく。この場合、フラッシュＥＥＰＲＯＭ１０は、ブロック毎に消去動作を行うことができると共に、図１及び図２に示したように、ブートプログラムを格納した領域以外を一括して消去できる。ここでは、フラッシュＥＥＰＲＯＭ１０には、ブートプログラムが、ユーザーによって図１に示すように、ブロック０に格納されているものとする。
【００３８】
より具体的に言えば、ブロック選択回路１７は、ＦＬＡＰ２７から与えられるアドレスに対して、ＦＬＰＭＣ２８に保持されたブート外ブロック消去ビットが論理”１”であれば、与えられたアドレスとブート外ブロック消去ビットとを論理演算して、ブートプログラムを格納したブロック０以外のブロックを一括消去する。尚、この例の場合、ブートプログラムの格納された領域は、予めユーザーによって確認されており、アドレス信号の上位ビットによって識別されるものとする。
【００３９】
図４及び図５を図３と共に参照すると、ブロック選択回路１７には、アドレス信号として、上位に配置された２ビット（１６ビットのうち、第１４番目及び第１５番目のビット）が与えられているものとする。図４に示されたブロック選択回路１７は４つの論理ゲート１７１〜１７４と、インクリメント回路１７５とにより構成されている。
【００４０】
まず、ブート外ブロック消去ビットが論理”０”のとき、第１５番目及び第１４番目ビットの状態が”００”であれば、図５に示すように、論理ゲート（ＯＲゲート）１７１の出力のみが論理”０”となり、他の論理ゲート１７２〜１７４の出力は論理”１”となる。この状態では、ブロック０だけが選択された状態になり、ブロック０だけが消去、書込可能な状態になる。以下同様に、ブート外ブロック消去ビットが論理”０”のとき、第１５及び第１４番目のビットが、それぞれ、”０１”、”１０”、及び、”１１”になると、図５に示すように、それぞれブロック１、２、及び３に対応した論理ゲート１７２、１７３、及び１７４が論理”０”となって、ブロック１、２、及び３が選択状態となる。
【００４１】
一方、アドレス信号の第１５及び第１４番目ビットが”００”の状態で、ブート外ブロック消去ビットとして、論理”１”が与えられると、インクリメント回路１７５によって、ブロック０、１、２、及び、３に対応した出力”０１１１”に”１”が加算されて、図５の下段に示されるように、”１０００”になる。このことは、ブロック０だけが非選択状態になり、他のブロック１、２、及び３が選択状態になったことを意味している。したがって、ブートプログラムを格納したブロック０以外のブロック１、２、及び、３は選択状態となって、一括して消去され得る状態になる。
【００４２】
また、アドレス信号の第１５及び第１４番目のビットが”０１”であり、論理ゲート１７１〜１７４の出力が”１０１１”であるとき、ブート外ブロック消去ビットが論理”１”になると、インクリメント回路１７５は、論理ゲート１７１〜１７４の出力に論理”１”を加算し、結果として、”１１００”を出力する。この出力によってブロック２及び３が選択状態になることが分かる。同様に、論理ゲート１７１〜１７４の出力が”１１０１”のとき、ブート外ブロック消去ビットが論理”１”になると、インクリメント回路１７５の出力は”１１１０”となり、また、”１１１０”のとき、ブート外消去ビットが論理”１”になると、インクリメント回路１７５の出力は”１１１１”となる。
【００４３】
上記したインクリメント回路１７５はハーフアダーを組み合わせることによって容易に構成できるから、ここでは、説明を省略する。
【００４４】
上記した実施の形態では、ブロックの数が４つの場合に限って説明したが、ブロックの数は４つの場合に限らないことは明らかである。また、本発明では、ブロックに対応してラッチ等のハードウェアを設けるのではなく、フラッシュＥＥＰＲＯＭを任意の大きさに対応して分割しておき、アドレス信号のビット位置を各ブロックに対応して定めることによって、サイズの異なるブロックを個々に選択状態にできると共に、ブートプログラム領域以外の領域を一括消去できると言う利点がある。
【００４５】
【発明の効果】
本発明によれば、ユーザーによって使用されるブートプログラムを格納したフラッシュＥＥＰＲＯＭを備えたマイクロコンピュータにおいて、ブートプログラムの格納領域以外の領域を一括して消去できるため、ブートプログラムの転送等を要せず、且つ、ブロック毎に消去する場合に比較して、迅速に、ブートプログラムの格納領域以外の領域を消去できる。
【図面の簡単な説明】
【図１】本発明の一実施の形態に係るブロック消去動作を説明するための図である。
【図２】図１に説明したブロック消去動作を実行する部分を示すブロック図である。
【図３】本発明の一実施の形態に係るマイクロプロセッサをより具体的に説明するためのブロック図である。
【図４】図３に示されたマイクロプロセッサに使用される回路をより詳細に説明するためのブロック図である。
【図５】図４に示された回路の動作を説明するための真理値表である。
【符号の説明】
１０                                フラッシュＥＥＰＲＯＭ
１５                                ＲＯＭ
１７                                ブロック選択回路
１９                                フラッシュＥＥＰＲＯＭ制御回路
２５                                書込回路（ＦＬＷＢ）
２６                                読出回路
２７                                ＦＬＡＰ
２９                                命令フェッチ先切換回路
３１                                切換回路
１７１〜１７４                      論理回路
１７５                              インクリメント回路
【図１】
0003773607.tif 000002
【図２】
0003773607.tif 000003
【図３】
0003773607.tif 000004
【図４】
0003773607.tif 000005
【図５】
0003773607.tif 000006