JP4162863B2 - マイクロコンピュータ - Google Patents
マイクロコンピュータ Download PDFInfo
- Publication number
- JP4162863B2 JP4162863B2 JP2001097807A JP2001097807A JP4162863B2 JP 4162863 B2 JP4162863 B2 JP 4162863B2 JP 2001097807 A JP2001097807 A JP 2001097807A JP 2001097807 A JP2001097807 A JP 2001097807A JP 4162863 B2 JP4162863 B2 JP 4162863B2
- Authority
- JP
- Japan
- Prior art keywords
- area
- program
- user
- mode
- cpu
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/387—Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Stored Programmes (AREA)
- Microcomputers (AREA)
Description
【発明の属する技術分野】
本発明は、電気的に消去及び書き込み可能な不揮発性メモリとCPU(中央処理装置)を有するマイクロコンピュータ、特に前記不揮発性メモリに対する消去及び書き込み動作の許可と禁止に関し、例えばフラッシュメモリを有するワンチップのマイクロコンピュータに適用して有効な技術に関する。
【0002】
【従来の技術】
フラッシュメモリなどの電気的に消去及び書き込み可能な不揮発性メモリはメモリセルにプログラムされる閾値電圧の相違に応じて情報を記憶する。フラッシュメモリにおいてその閾値電圧の相違は、フローティングゲートが保有する電子又は正孔の量の相違によって実現される。例えば熱平衡状態の閾値電圧に対して相対的に高い閾値電圧状態を書き込み状態、相対的に低い閾値電圧状態を消去状態と称する(逆の定義も可能である)。このとき、特に制限されないが、メモリセルを消去状態にする消去及びメモリセルを書き込み状態にする書き込みの各動作では、高電圧パルスの印加と、それによる閾値電圧状態のベリファイとを繰返し行う。マイクロコンピュータのオンチップフラッシュッメモリに消去及び書込みを可能にする動作モードとして、ライタモード及びブートモードを有するものが有る。ライタモードとは、例えば、マイクロコンピュータを見掛け上、フラッシュメモリチップと等価とし、EPROMライタのような書込み装置に接続して、消去及び書込みを可能にする動作モードである。ブートモードは、例えば、マイクロコンピュータがシステムに実装された状態で調歩同期若しくは非同期のシリアルインタフェース(UART)を介して実装システムとの通信を確立させて消去及び書込みを可能にする動作モードである。システム実装前にオンチップフラッシュメモリにプログラムやデータを初期的に書き込む場合にはライタモードを利用できる。一方、システム実装後に、プログラムのバージョンアップやデータのチューニングのためにオンチップフラッシュッメモリの記憶情報を書き換える場合にはブートモードを利用できる。
【0003】
従来、ブートモードにはベーシックなインタフェース方式としてシリアルインタフェースを利用するようになっているから、ブートモードを用いてオンボード書換えを行う場合、マイクロコンピュータの実装システムボードには調歩同期のようなシリアルインタフェース回路を搭載することが行われていた。
【0004】
【発明が解決しようとする課題】
しかしながら、調歩同期のようなシリアルインタフェース回路を本来必要としないシステムもある。例えば、CD−ROM(Compact Disk-Read Only Memory)、CD−RW(Compact Disk- rewritable)、DVD−ROM(Digital Video Disk-Read Only Memory)、DVD−RAM(Digital Video Disk-Random Access Memory)などのディスクドライブシステムではATAPI(AT Attachment Packet Interface)やSCSI(Small Computer System Interface)などのインタフェースが必然的に存在する。エンジンやトランスミッションなどの自動車関係の制御システムではHCANと称されるようなエリアネットワークインタフェースが存在する。このように各ユーザのシステムボードにATAPI,SCSI又はHCANなどのインタフェースが存在しても、ブートモードでオンボード書換えを行うためだけに調歩同期のようなシリアルインターフェースをさらに存在させる必要があるとすれば、これはユーザのシステムボードにとってオーバーヘッドの問題を生ずることになる。
【0005】
これを回避するには、自由に利用することが許容されたフラッシュメモリ上の記憶領域(即ちユーザメモリ領域)でプログラムを実行可能なユーザプログラムモードでオンボード書き込みを実施可能にすればよい。即ち、予め、例えばライターモードでユーザメモリ領域にATAPI等のユーザシステムボード専用の通信プロトコル処理プログラムを書き込む。これを実施した後に、マイクロコンピュータをユーザのシステムボートに実装し、そのユーザ専用の通信プロトコル処理プログラムをCPUで実行すれば、ユーザのシステムボード上にシリアルインターフェースを持たなくても、ユーザメモリ領域に対するプログラムバージョンアップやチューニングデータ書換えなどを実施することができる。
【0006】
しかしながら、ユーザの制御プログラムやチューニングデータなどが書き込まれるユーザ領域に専用通信プロトコル処理プログラムも一緒に書き込む場合には、ユーザが制御プログラムを作成する時に、その専用通信プロトコルのプログラムが誤って消去され難いようにする制御を実現しなければならず、ユーザがプログラムを作成するのに大きな負担になることが懸念される。また、システムボード上に実装した後にユーザプログラムモードでCPUが暴走したとき、ユーザプログラムモードで実行可能にされる前記通信プロトコルの処理プログラムが誤って消えてしまえば、消去及び書込みのためにユーザシステムボードとは2度とインタフェースを確立することができない。実装基板からマイクロコンピュータチップを取り外して、ライタモードを用いない限り、再書き込みを実施する事ができなくなる問題が本発明者によって明らかにされた。尚、本明細書においてユーザとはマイクロコンピュータ等の半導体デバイスの利用者を広義に意味する。したがって、半導体デバイスの製造メーカが其の半導体デバイスを何らかの意味で使用すれば、其の限りにおいて当該製造メーカはユーザでもある。
【0007】
本発明の目的は、消去されるとシステム上致命的な打撃を受けることになる実装ボードとの間の通信プロトコルのようなプログラム情報が不揮発性メモリから消失し難い構成のマイクロコンピュータを提供することにある。
【0008】
本発明の別の目的は、マイクロコンピュータの実装基板がサポートする個別的な通信プロトコルに対してもインタフェースの確立を保証することができるマイクロコンピュータを提供することにある。
【0009】
CPUの暴走によってもオンチップ不揮発性メモリの記憶情報消失を極力抑制することが可能なマイクロコンピュータを提供することにある。
【0010】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【0011】
【課題を解決するための手段】
〔1〕本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【0012】
すなわち、マイクロコンピュータのオンチップ不揮発性メモリには、ユーザ(マイクロコンピュータの使用者)の制御プログラム等を書きこむ第3領域(ユーザマット)以外に、第2領域(ユーザブートマット)を用意する。このユーザブートマットは、例えばユーザ専用の通信プロトコルを書きこむ記憶領域(マット)として使用し、そのマットからプログラムを実行するユーザブートモードも専用モードとして用意する。このユーザブートモードでは、ユーザブートマットは消去及び書き込み不可能にされる。
【0013】
上記による作用効果は以下の通りである。(1)ユーザ専用の通信プロトコルを格納可能なユーザブートマットを用意したので、マイクロコンピュータが備える任意のインタフェースを流用することができる。(2)不揮発性メモリの消去及び書き込みにユーザ任意のインターフェースを採用する事が可能となったことにより、ユーザ実装ボードに必ずシリアルインターフェースを用意しなくてもよくなる。(3)ユーザブートマットとユーザマットを分けた事により、ユーザマットに専用通信プロトコル処理プログラムを書かなくても、消去及び書き込み用にユーザ任意の書きこみインターフェースが実現できるから、ユーザマットに格納して使用する制御プログラムの作成が容易になる。要するに、ユーザプログラムモードで使用する通信制御プログラムの消去防止などについて特別な考慮を払わなくてもよい。(4)ユーザブートマットから立ち上がるユーザブートモードでは、ハードウェア的にユーザブートマットを消去及び書きこみ不可にするので、暴走等でユーザブートマットの記憶情報が破壊される事はなく、デバック時にCPUが暴走しても、外部インターフェースを制御するプログラムの破壊には至らないので、実装したマイクロコンピュータチップを取り外さなくても、オンボードでユーザマットの書換えを自由に行うことができる。
【0014】
〔2〕本発明の更に詳しい第1の態様に係るマイクロコンピュータは、CPUと、電気的に消去及び書き込み可能な第1領域(ブートマット)、第2領域(ユーザブートマット)及び第3領域(ユーザマット)を有する不揮発性メモリと、動作モードの指示手段とを含む。動作モードの指示手段は、前記CPUに第1領域のプログラムを処理させると共に前記第1領域を消去及び書き込み不可能にする第1モード(ブートモード)、前記CPUに第2領域のプログラムを処理させると共に第1領域及び第2領域を消去及び書き込み不可能にする第2モード(ユーザブートモード)、及び前記CPUに第3領域のプログラムを処理させると共に第1領域及び第2領域を消去及び書き込み不可能にする第3モード(ユーザモード)、を指示し、例えばモード信号の入力回路等で実現される。
【0015】
この態様のマイクロマイクロコンピュータは、第2領域及び第3領域に具体的なプログラムが記憶されていない状態、要するに、ユーザが第2及び第3領域に所望のプログラムを格納する処理に至る前の状態も意味している。マイクロコンピュータがシステムボードに実装されるときは、前記第2領域にシステムボードに固有のインタフェースを確立する通信プロトコル処理プログラムなどを格納し、第3領域にシステムボードを制御するユーザプログラムやチューニングデータなどを格納して、ユーザシステムの制御に利用される。オンボード書込みを行う場合には、ユーザブートモードのような第2モードを指定し、前記CPUに第2領域の通信プロトコル処理プログラム等を処理させ、システムボードに固有のインタフェースを確立させ、第3領域のユーザプログラムをバージョンアップし、或はチューニングデータの書換えを行うことができる。したがって、上記(1)〜(4)の作用効果を得ることができる。
【0016】
〔3〕本発明の更に詳しい第2の態様に係るマイクロコンピュータは、CPUと、電気的に消去及び書き込み可能な第1領域(ブートマット)、第2領域(ユーザブートマット)及び第3領域(ユーザマット)を有する不揮発性メモリと、第1モード、第2モード又は第3モードを選択的に指定する指示手段と、を含む。前記CPUは、第1モードの指定により第1領域のプログラムを処理し、第2モードの指定により第2領域のプログラムを処理し、第3モードの指定により第3領域のプログラムを処理する。前記不揮発性メモリは、第1モードの指定により前記第2領域及び第3領域が消去及び書き込み可能にされ且つ第1領域が消去及び書き込み不可能にされ、第2モードの指定により第3領域が消去及び書き込み可能にされ且つ第1領域及び第2領域が消去及び書き込み不可能にされ、第3モードに指定により第3領域が消去及び書き込み可能にされ且つ第1領域及び第2領域が消去及び書き込み不可能にされる。この態様のマイクロコンピュータにおいても上記(1)〜(4)の作用効果を得ることができる。
【0017】
前記第1領域にはマイクロコンピュータの外部とインタフェースを確立するための第1の通信制御プログラムを保有させてよい。前記第1領域は第1乃至第3の何れの動作モードにおいても消去及び書き込み不可能にされるから、マイクロコンピュータの製造過程などでEPROMライタなどの書き込み装置を用いて初期的に書込みされる。第1の通信制御プログラムはベーシックな調歩同期によるシリアルインタフェースプログラムであってよい。
【0018】
前記第2領域にはマイクロコンピュータの外部とインタフェースを確立するための第2の通信制御プログラムを保有させてよい。前記第2領域は第1モードで消去及び書込み可能であるから、第2の通信制御プログラムはユーザ専用の通信プロトコル、即ちシステムボードに固有のインタフェース仕様(例えばATAPI)を満足する通信制御プログラムであってよい。
【0019】
前記第1領域は第1乃至第3の何れの動作モードにおいても消去及び書き込み不可能にされるから、第1領域に前記不揮発性メモリのための消去及び書き込み制御プログラムを保有させれば、それが不所望に消失する虞を未然に防止できる。
【0020】
同様に、前記第1の領域には、前記消去及び書き込み制御プログラムの転送制御プログラムを保有させてよい。
【0021】
前記CPUによる転送制御プログラムの処理により前記消去及び書き込み制御プログラムが転送されるRAMをマイクロコンピュータに内蔵してよい。CPUは内蔵RAM上で前記消去及び書き込み制御プログラムを実行可能になる。
【0022】
CPUの暴走などによる不揮発性メモリの不所望な書換え防止の観点より、前記不揮発性メモリは、前記指示手段によるモード指定とは別に、外部端子から与えられる書き込み動作の指示を、消去及び書き込み動作を可能にするための必要条件に加えるとよい。
【0023】
〔4〕前記第2態様に係るマイクロコンピュータにおけるCPUのリセットベクタアドレス(リセット解除後に参照されるベクタアドレス)に着目すると、前記第1領域、第2領域及び第3領域の夫々における先頭アドレスをCPUのアドレス空間上同一アドレスとし、前記CPUが用いる先頭アドレスを第2領域とするか第3領域とするかを排他的に指定する第1レジスタ手段(FMATS)をCPUのアドレス空間に配置する構成を採用することができる。
【0024】
この構成において第1モードの指定により第1領域のプログラムが実行されたとき、第1領域のプログラム自体が第1領域に対する消去及び書込みを行う処理ルーチンを含んでいなければ、第1領域に対する消去及び書込みは行われない。第1領域に格納すべきプログラムの開発及びそのプログラムの書込みをマイクロコンピュータの製造メーカで行うことを想定すれば、第1領域に対する消去及び書込みを不可能にすることは万全である。第1モードの指定により第1領域のプログラムを実行した後、第1レジスタ手段の設定に従って第2領域又は第3領域のプログラムを実行可能な状態に遷移することができる。この後、第2領域又は第3領域に格納したプログラムだけで第1領域のプログラムを実行可能な状態に戻ることは基本的に不可能であり、仮に戻ることを許容するハードウェアを持っていても第1領域の消去及び書き込みはやはり不可能である。
【0025】
前記CPUのアドレス空間にRAMを配置すると、CPUはRAM上にプログラムを転送して実行することが可能になる。
【0026】
CPUがRAM上でプログラムを処理していることを条件に、前記第1レジスタ手段の設定変更を許可すれば、第1乃至第3領域の何れかの領域でプログラムをフェッチしている状態から別の領域でのプログラム実行の遷移を円滑化することができる。CPUがRAM上でプログラムを処理していることをバス制御手段(BSC)が検出することを条件に、前記第1レジスタ手段の設定変更の許可するようにしてよい。
【0027】
消去及び書き込み制御プログラムをRAMへストアさせる動作に許可を与える情報がセットされる第2レジスタ手段(FKEY)を設け、前記不揮発性メモリは、この第2レジスタ手段の許可情報がリセットされることを、消去及び書き込み動作を可能にするための必要条件にするとよい。これによれば、消去及び書き込み制御プログラムをRAMへ転送する必要のいないとき仮にCPUが暴走しても、第2レジスタ手段のリセット状態により消去及び書き込み制御プログラムが誤ってRAMに転送され、それが不所望に実行される確率を低減できる。また、消去及び書き込み制御プログラムをRAMへ転送しているとき仮にCPUが暴走しても、第2レジスタ手段のセット状態は消去及び書き込み動作の抑止条件になっているから、このとき消去及び書き込みプログラムが誤って実行開始される確率を低減できる。
【0028】
〔5〕前記第2態様に係るマイクロコンピュータにおける消去及び書き込み制御プログラムに着目する。前記CPUのアドレス空間にRAMを配置し、前記第1領域に消去及び書き込み制御プログラムを格納しておき、前記CPUは第1モードに応答して前記消去及び書き込み制御プログラムを前記RAMに転送制御し、転送先のRAMから消去及び書き込み制御プログラムをフェッチして実行するとよい。マイクロコンピュータのユーザは消去及び書き込み制御プログラムを開発する必要はない。RAM上で消去及び書き込み制御プログラムを実行すれば、第1モードにおいて第2領域及び第3領域に対する消去及び書込みを円滑化できる。
【0029】
第1領域の消去及び書き込み制御プログラムを第2モードでも利用可能にするには、例えば、前記第2モードにおいてCPUは、第3レジスタ手段(SCO)の第1設定値に応答して、前記第1領域のプログラムを処理する状態に遷移し、前記消去及び書き込み制御プログラムをRAMに転送制御して、第2領域のプログラムを処理する状態に復帰させるようにすればよい。
【0030】
第1領域の消去及び書き込み制御プログラムを第3モードでも利用可能にするには、例えば、前記第3モードにおいてCPUは、第3レジスタ手段(SCO)の第1設定値に応答して、前記第1領域のプログラムを処理する状態に遷移し、前記消去及び書き込み制御プログラムをRAMに転送制御して、第3領域のプログラムを処理する状態に復帰させるようにすればよい。
【0031】
消去及び書き込み制御プログラムをRAMへストアさせる動作に許可を与える情報として第2設定値がセットされる第2レジスタ手段(FKEY)を設け、前記不揮発性メモリは、この第2レジスタ手段の許可情報が第3設定値にリセットされることを、消去及び書き込み動作を可能にするための必要条件とし、前記第2のレジスタ手段に第2設定値がセットされる状態を第3レジスタ手段に第1設定値をセット可能にするための必要条件としてよい。要するに、ユーザが消去及び書き込みを実施したくない所で、プログラムが暴走し、消去及び書き込み制御プログラムが転送されると、ユーザプログラムを破壊する可能性が高くなる。これを回避するために、ユーザは、第3レジスタ手段に第1設定値をセットする前に、第2レジスタ手段に第2設定値をストアする。この第2設定値をストアしてない時は、第3レジスタ手段を第1設定値にセットすることはできない。第2レジスタ手段に第2設定値がストアされている時は、第3レジスタ手段を第1設定値にセットすることが可能となり、これによってプログラムの転送が可能となる。
【0032】
消去及び書き込み制御プログラムが転送された後にプログラムが暴走した場合の事を考え、第2レジスタを使用する。基本的には、その他の条件により、CPUが暴走しても、消去及び書き込みが実施されないようになっているが、さらに信頼性を上げる為に、ユーザは、消去及び書き込みを実施する前に、第2レジスタ手段に第3設定値をセットする。この第3設定値をストアしてない時は、他の消去及び書き込み条件が誤ってイネーブルになっていたとしても、消去及び書込み動作は不可能なままにされる。
【0033】
〔6〕不揮発性メモリの内、ユーザに開放される記憶領域に着目する。マイクロコンピュータは、CPUと、電気的に消去及び書き込み可能な不揮発性メモリとを含み、不揮発性メモリは第1メモリマット(ユーザブートマット)と第2メモリマット(ユーザマット)を備え、第1メモリマットと第2メモリマットは、レジスタで排他的に選択可能になっており、第1メモリマットが選択された場合は第1メモリマットに対する消去及び書き込み動作が抑止され、第2メモリマットが選択された場合はRAM上でのプログラム実行状態に遷移することを解除条件として消去及び書き込み動作が抑止される、ものである。これにより、プログラムを現に実行しているメモリマットが消去及び書込みされることによる不都合な状態の発生を未然に防止することができる。
【0034】
〔7〕不揮発性メモリの記憶領域全体に着目する。マイクロコンピュータは、CPUと、電気的に消去及び書き込み可能な不揮発性メモリとを有し、前記不揮発性メモリは、外部とのインタフェースを確立するためにCPUにより処理される通信制御プログラム(シリアル通信PGM)を保有する第1領域(ブートマット)と、前記CPUによる通信制御プログラムの処理により外部とのインタフェースが確立されて消去及び書き込み可能にされる第2領域(ユーザブートマット)と、前記CPUによる通信制御プログラムの処理により外部とのインタフェースが確立されて消去及び書き込み可能にされ、且つCPUによる第2領域のプログラムの処理により消去及び書き込み可能にされる第3領域(ユーザマット)と、を有する。
【0035】
〔8〕更に別の観点によるマイクロコンピュータは、第1インタフェース(ATAPI,SCSI,HCAN)を有する実装基板に実装されるべきマイクロコンピュータであって、中央処理装置と、前記第1インタフェースと異なる第2インタフェース(SCI)を用いた通信プロトコル(UART)を確立するための第1通信処理プログラムが格納される第1記憶領域(ブートマット)と、前記第1インタフェースを用いた通信プロトコルを確立するための第2通信処理プログラムが格納される第2記憶領域(ユーザブートマット)と、所定の第1動作モードで前記中央処理装置によって実行される制御プログラムが格納される第3記憶領域(ユーザマット)とを有する不揮発性メモリとを有する。
【0036】
前記第1記憶領域は、さらに、書き込み制御プログラムが格納され、このとき、前記第2記憶領域に格納される前記第2通信処理プログラムは、前記書き込み制御プログラム及び前記第1通信処理プログラムを前記中央処理装置によって実行させる第1書き込みモードによって、前記第2記憶領域に書き込まれる。
【0037】
また、前記第3記憶領域に格納される前記制御プログラムは、前記第1書き込みモード、又は、前記第1記憶領域に格納された書き込み制御プログラム及び前記第2通信処理プログラムを前記中央処理装置によって実行させる第2書き込みモードの何れかによって、前記第3記憶領域に書き込まれる。
【0038】
前記第1記憶領域は、さらに、消去制御プログラムが格納され、このとき、前記第2記憶領域に格納される前記第2通信処理プログラムは、前記消去制御プログラム及び前記第1通信処理プログラムを前記中央処理装置によって実行させる第1消去モードによって、前記第2記憶領域から消去可能にされる。
【0039】
前記第3記憶領域に格納される前記制御プログラムは、前記第1消去モード、又は、前記第1記憶領域に格納された消去制御プログラム及び前記第2通信処理プログラムを前記中央処理装置によって実行させる第2消去モードの何れかによって、前記第3記憶領域から消去可能である。
【0040】
更に上記とは異なる観点によるマイクロコンピュータは、中央処理装置と、第1インタフェース(SCSI)を用いた通信プロトコル(UART)を確立するための第1通信処理プログラムと書き込み制御プログラムが格納される第1記憶領域と、前記第1インタフェースと異なる前記第2インタフェース(ATAPI,SCSI,HCAN)を用いた通信プロトコルを確立するための第2通信処理プログラムが格納される第2記憶領域と、所定の第1動作モードで前記中央処理装置によって実行される制御プログラムが格納される第3記憶領域とを有する不揮発性メモリと、を有する。
【0041】
【発明の実施の形態】
《マイクロコンピュータ》
図1には本発明の一例に係るデータ処理装置としてのマイクロコンピュータが示される。同図に示されるマイクロコンピュータ1は、特に制限されないが、単結晶シリコンのような1個の半導体基板(半導体チップ)にCMOS集積回路製造技術により形成される。
【0042】
マイクロコンピュータ1は、演算制御装置としての中央処理装置(CPU)2、不揮発性メモリとしてのRAM3、バスステートコントローラ(BSC)4、フラッシュメモリ13、及びその他の内蔵回路を総称するその他モジュール7を有する。前記フラッシュメモリ13は電気的に書き換え可能な不揮発性メモリの一例であり、フラッシュメモリモジュール5とフラッシュコントロールモジュール6によって構成される。前記その他モジュール7としてマスクROM8、割り込みコントローラ(INTC)9、タイマ(TMR)10、入出力ポート(I/O)11、シリアルインタフェースコントローラ(SCI)12、その他インタフェースコントローラ16、DMAC(Direct Memory Access Controller)17及びシステムコントローラ15等を有する。それら回路モジュールはバスIAB,IDB,PAB,PDB,CONTを介してインタフェースされる。
【0043】
前記バスIAB,IDBは情報伝送速度の比較的速い内部アドレスバス、内部データバスである。前記バスPAB,PDBは情報伝送速度が比較的遅い周辺アドレスバス、周辺データバスである。バスCONTは、バスコマンド、バスアクセス制御信号、及びタイミング制御信号等を伝達する制御信号線を総称する。内部バスIDB,IABと周辺バスPDB,PABとの動作速度の相違若しくはアクセス対象に固有のアクセス形態の相違に対して前記BSC4がアクセス動作タイミング等を最適制御すると共に、前記BSC4はアクセスアドレスに応じたチップ選択若しくはモジュール選択制御等も行なう。
【0044】
前記システムコントローラ15には外部から複数ビットのモード信号14及びリセット信号RESなどが入力される。マイクロコンピュータ1のパワーオンリセット或はハードウェアリセットによりリセット信号RESがローレベルにされると、そのローレベル期間においてマイクロコンピュータ1の内部でリセット動作が行われる。リセット信号RESによるリセットの解除後、複数ビットのモード信号14の状態に応じて、マイクロコンピュータ1の動作モードが決定される。CPU2は、その動作モードに応じたプログラム領域のリセットベクタをリードし、そのアドレスの命令をフェッチし、フェッチした命令を解読して、命令実行を開始する。
【0045】
RAM3はCPU2のワーク領域若しくはデータ又はプログラムの一時記憶領域としても利用される。前記マスクROM8はデータテーブルなどの記憶領域とされる。フラッシュメモリモジュール5はCPU2のプログラムやデータの記憶領域とされる。
【0046】
割り込みコントローラ10はマイクロコンピュータ1の外部から与えられる割込要求又はマイクロコンピュータ1内部の状態に応じて内蔵回路モジュールから発生される割込要求が入力され、割り込み優先レベル及び割り込みマスク等に従って、競合する割込み要求の調停と割込み優先レベルによる割込みマスク処理を行う。割り込みコントローラ10は割込み要求の調停と割込みマスク処理との結果に従って、CPU2に割込み信号IRQを与えるとと共に、受付ら得た割込み要求の割り込み要因に応ずる割り込みベクタアドレスをCPU2に与える。CPU2は割り込みベクタアドレスによって指示されるプログラムに処理を分岐する。割込みコントローラ9はCPU2から割込みマスクデータ(IMSK)が与えられ、この割込みマスクデータ(IMSK)で示される割込み優先レベルよりも低い割込み要求の受付をマスクする。
【0047】
I/O11は外部アドレスバス及び外部データバスへの接続、SCI12の外部インタフェース、TMR10の外部イベント信号入力、そのインタフェースコントローラ16の外部インタフェース等に用いられる。インタフェースコントローラ16は例えば、ATAPI又はSCSIなどのインタフェースに適用可能である。
【0048】
図2には前記CPU2の具体例が示される。CPU2は、特に制限されないが、シフタSFT及び算術論理演算器ALU等の演算器と、32ビットの汎用レジスタR0〜R31、プログラムカウンタPC、ステータスレジスタSR及びテンポラリレジスタTR等のレジスタ群、そしてリードデータバッファRDB、ライトデータバッファWDB及びアドレスバッファABなどのバッファ回路を実行部に有し、それらは第1乃至第3内部バスIB1〜IB3のうちの所定の内部バスに接続される。CPU2は命令制御部として、命令レジスタIR、命令デコーダIDEC、命令シーケンスロジックINTLを有する。
【0049】
前記リードデータバッファRDBは例えば32ビットのデータバスIDBから入力したデータを内部バスIB2に供給する。ステータスレジスタSRは割込みマスクデータIMSKのフィールドを有する。割込みマスクデータIMSKは割込みコントローラ9に与えられる。割込みコントローラ9は割込みマスクデータIMSKで示される割込み優先レベルよりも低い割込み要求をマスクする。
【0050】
前記プログラムカウンタPCは次に実行すべき命令アドレスを保有し、その命令アドレスがアドレスバッファABから内部アドレスバスIABに出力されると、RAM3等の対応アドレスからリードされた命令が内部データバスIDBを介して命令レジスタIRにフェッチされる。命令デコーダIDECは命令レジスタIRの命令を解読して、CPU2内部の制御信号を生成して、前記実行部による演算処理を制御する。命令シーケンスロジックINTLは割込み信号IRQ等に応答して命令実行順序を変更する制御を行なう。
【0051】
図1においてフラッシュメモリモジュール5は、メモリセルアレイ20、Xデコーダ・ドライバ(XDE・DV)21、センスアンプアレイ(SAA)22、Yスイッチアレイ(YSW)23、Yデコーダ(YDE)24、入出力回路(IFB)25、電源回路(VGN)26、及びタイミングジェネレータ(TGN)27を有する。メモリセルアレイ20はマトリクス配置されたフラッシュッメモリセル(図示せず)を有する。フラッシュメモリセルは、特に制限されないが、半導体基板若しくはウェル領域にソース、ドレインを有し、チャネルの上方に夫々絶縁膜を介してフローティングゲート及びコントロールゲートが形成されたスタック構造を有し、ソースをソース線に、ドレインをビット線に、コントロールゲートをワード線に接続して構成される。
【0052】
フラッシュメモリセルは閾値電圧がプログラム可能にされ、プログラムされた閾値電圧に応じて情報を保持する。例えば、1個のフラッシュメモリセルが1ビットの情報を保持する場合に、相対的に高い閾値電圧状態を書き込み状態、相対的に低い閾値電圧状態を消去状態と称する。書き込み状態を得る為の書き込み動作は、特に制限されないが、コントロールゲートに10V、ドレインに例えば5V、ソースおよび基板に例えば0Vを印加して、ドレイン・ソース間に電流を流し、これによってホットエレクトロン注入が起こり、フローティングゲートに電子が蓄積され、メモリセルの閾値電圧が高くなる。前記消去状態を得る為の消去動作は、特に制限されないが、コントロールゲートに10V、ソース及び基板に例えば−10Vを印加し、さらにドレインを例えば開放(フローティング)にして、フローティングゲートに蓄積された電子を基板に放出させ、これによってメモリセルの閾値電圧が低くなる。
【0053】
前記入出力回路25はバスIAB,IDB,PAB,PDB,CONTとの間でアドレス、制御信号及びコマンドを入力すると共にデータの入出力を行なう。入出力回路25に入力されたアドレス信号はXDEC・DV21及びYDE24に入力されて夫々デコードされる。XDEC・DV21はそのデコード結果に従ってワード線を選択する。YDE24はそのデコード結果に従ってYSW23を介してビット線を選択する。ワード線選択及びビット線選択によってフラッシュメモリセルが選択される。読み出し動作では、前記選択されたフラッシュメモリセルの読み出しデータは、SAA22にて検出され、入出力回路25を経てバスPDBまたはIDBに出力される。書き込み動作では、バスPDB又はIDBから入出力回路25に与えられる書き込みデータが入出力回路25内の書き込みラッチ回路にラッチされ、ワード線選択されたメモリセルに対し、ラッチデータに従って書き込み・書き込み阻止が制御される。書き込み処理の前には予めブロック単位でフラッシュメモリセルに対する消去が行なわれる。
【0054】
前記電源回路26はクランプ回路やチャージポンプ回路などを有し、フラッシュメモリの書き込み・消去・読み出しなどの動作で使用する様々な電圧を供給する。前記タイミングジェネレータ27は、制御バスCONTを介して供給されるストローブ信号及びデータバスPDB,IDBを介して入力されるコマンドに基づいてフラッシュメモリの外部とのインタフェース制御を行なう。
【0055】
図1において前記フラッシュコントロールモジュール6は、フラッシュメモリモジュール5に対する消去及び書込みやそのためのプログラム転送関係の各種制御レジスタ30と制御論理回路29とを有する。図1には制御レジスタとしてFCCS,FKEY,FMATS,ライタモード関係レジスタ,書き込み消去関係レジスタが代表的に示されている。フラッシュメモリモジュール5に対する消去及び書込み動作の制御にはRAM3の記憶領域やCPU2の汎用レジスタも利用する。
【0056】
《フラッシュメモリのメモリマット》
図3にはフラッシュメモリのメモリマットが例示される。フラッシュメモリモジュール5のメモリセルアレイ20は、電気的に消去及び書き込み可能なブートマット(第1領域)Tmat、ユーザブートマット(第2領域)Umat、ユーザマット(第3領域)Mmat、及びリペア及びトリミングマットRmatを有する。前記ブートマットTmat、ユーザブートマットUmat、及びユーザマットMmatは夫々CPU2のアドレス空間における先頭アドレスである0番地(H’0000000)をスタートアドレスとしてメモリ空間が割り当てられる。要するに、前記ブートマットTmat、ユーザブートマットUmat、及びユーザマットMmatはアドレス空間がオーバラップされ、前記アドレスデコーダYDEC及びXDEC・DVはどのマットを利用するかの指示に応答してアドレスデコード論理が選択されることになる。どのマットを利用するかはモード信号14で指示されるマイクロコンピュータの動作モードなどによって決まる。リペア及びトリミングマットRmatはメモリセルアレイにおける欠陥救済アドレスや回路の特性に応じた合わせ込みのためのトリミング回路の設定データが格納される。
【0057】
《動作モード》
フラッシュメモリは、プロセス世代が進むにつれて、書き込み関係、消去関係のプログラムが複雑化しつつある。このような事情の下で、消去及び書き込み制御プログラムをユーザが作成しなければならないとすると、ユーザの負担が大きくなる。マイクロコンピュータ1においては、ユーザに消去及び書き込みプログラムを作成する負担を減らし、簡単な手続きで消去及び書き込みをどのモードでも実施できるように考慮されている。特に、フラッシュメモリ13を消去及び書き込みするための高電圧パルス印加時間などのパラメータをチューニングしたり処理フローを変更したりするときに、ハードウェアに依存せずソフトウェアを使用して実施でき、ユーザに負担をかけず、簡単な手続きで消去及び書き込みを実施できる動作モードを用意している。その内容を簡単に説明すると、ブートマットTmatが保有している消去及び書き込み制御プログラムをどの動作モードでも参照できるようにし、しかも、ブートマットTmatのプログラムには、セキュリティに関する部分の記述もあるので、不都合のない範囲でユーザがそのプログラムを使用できるようにしてある。
【0058】
マクロコンピュータ1の動作モードを詳述する。フラッシュメモリ13に対する消去及び書き込みに着目すると、マイクロコンピュータ1は、ライタモード、ブートモード(第1モード)、ユーザブートモード(第2モード)、及びユーザモード(第3モード)を有する。特に制限されないが、前記モード信号14は2ビットであり、システムコントローラ15は、其の論理値の組み合わせを解読して、指示された動作モードが、前記ライタモード、ブートモード、ユーザブートモード、又はユーザモードの何れであるかを判定する。
【0059】
前記ライタモードはEPROMライタのような書き込み装置を用いてフラッシュメモリ13の消去及び書き込みを実施可能にする動作モードである。ライタモードが指定されると、リセット処理後、CPU2はブートマットTmatの先頭番地からベクタフェッチを行ってプログラムの実行を開始する(ブートマットから起動)。そして、ライターモードに必要な処理として、コマンド判定プログラムや消去及び書き込み関係のプログラムを全てRAM3に転送する。その後に、CPU2は、RAM3に転送されたプログラムの実行に移行し、フラッシュメモリ13はEPROMライタによって消去及び書き込み可能にされる。このライタモードは、オフボード(マイクロコンピュータがシステムボードに実装されていない状態)で前記ユーザマットMmat及びユーザブートマットUmatに任意のユーザ制御プログラム等を格納するのに適している。
【0060】
前記ブートモードは、マットTmat,Umat、Mmatの全てを消去し、SCI12を使用して書き込みを実施可能にする動作モードである。このブートモードは前記CPU2にブートマットTmatのプログラムを処理させると共に当該ブートマットTmatを消去及び書き込み不可能にする。具体的には、ブートモードが指定されると、リセット処理後、CPU2はブートマットTmatの先頭番地からベクタフェッチを行ってプログラムの実行を開始する。そして、ブートモードに必要な処理として、ブートマットTmat内の消去及び書き込み関係のプログラム及びコマンド判定プログラムをRAM3に転送する。転送終了とその他の処理終了後に、CPU2はRAM3上のプログラム実行に移る。RAM3上のプログラム実行でマットUmat、Mmatの全てを消去した後に、コマンド判定プログラムを起動し、SCI12を利用して書き込みが実施可能になる。このブートモードは、シリアル通信インタフェースを備えたオンボードで、前記ユーザマットMmat及びユーザブートマットUmatに任意のユーザ制御プログラム等を格納するのに適している。
【0061】
前記ユーザブートモードは、前記CPU2にユーザブートマットUmatのプログラムを処理させてユーザ任意のインタフェースを使用した消去及び書き込みを実施可能とし、ブートマットTmat及びユーザブートマットUmatに対しては消去及び書き込みを不可能にする動作モードである。具体的には、ユーザブートモードは、ブートマットTmatから起動し、CPU2がブートマットTmat内のプログラムを実行すると共にRAM3へユーザブートマット切換えプログラムの転送を行う。その後に、CPU2はRAM3上のプログラム実行に移る。CPU2によるRAM3上のプログラム実行で、CPU2のアドレス空間で見えるフラッシュメモリ13上のマットをデフォルトのユーザマットMmatからユーザブートマットUmatへ切換え、ユーザブートマットUmatのベクタアドレスを読み出した後にその領域へジャンプする。セキュリティが掛かっている場合は、ユーザマットMmatの消去を実施した後にジャンプを実施する。書き込みを実施する時は、後述するSCOモードを使用して必要な消去及び書き込みプログラムをブートマットTmatからRAM3にダウンロードした後、その消去及び書き込み制御プログラムを利用して、ユーザマットMmatに対する書き込みを行う。要するに、ユーザブートマットUmatにユーザ専用のインターフェースプログラムを用意して、ユーザの実装ボートに合った書き込みデータ転送が実現可能となる。このユーザブートモードは、ユーザのシステムボードが備えているオンボードインタフェースを使用して、ユーザの制御プログラムなどをユーザマットMmatに書き込むのに適している。この動作においてユーザブートマットUmatの消去は阻止される。したがって、ユーザのシステムボードがシリアルインタフェースを備えず、オンボードでブートモードを利用できなくても、これに代えて、ユーザのシステムボードが備えているオンボードインタフェースを介する書き込みをを保証することができる。
【0062】
前記ユーザモードはユーザマットMmatが保有するプログラムを利用して消去及び書き込みを実施可能にする動作モードであり、ブートマットTmat及びユーザブートマットUmatの消去及び書き込みについては不可能にする。詳しくは、CPU2をユーザマットMmatから起動し、ユーザマットMmat上のプログラムが実行される。特に、ユーザが必要な時に、後述するSCOビットをイネーブルにするとブートマットTmatとユーザマットMmatが自動的に切り替わり、ブートマットTmatのある番地からプログラムがスタートし、ブートマットTmat上の消去及び書き込み制御プログラムがRAM3に転送され、プログラムの転送が終了したらユーザマットMmatとブートマットTmatが自動的に切り替えられて、ユーザの処理へ復帰し、ユーザのプログラムで前記消去及び書き込み制御プログラムが利用されて、ユーザマットMmatに対する消去及び書き込みが可能にされる。要するに、ユーザプログラムモードでは、後述するSCOモードを使用してブートマットTmat上の消去及び書き込み制御プログラムをRAM3上に転送しそのプログラムを利用可能にしている。このユーザモードは、オンボードでユーザ制御プログラム実行中にユーザマットMmat上のパラメータなどを書き換えるのに適している。
【0063】
図4の(A),(B)には各マットの各動作モードによるアクセス態様が示される。同図に示されるアクセス態様は上記動作モードで説明したアクセス態様を整理したものである。同図からも明らかなように、リペア及びトリミングマットRmatとブートマットTmatは何れの動作モードにおいても消去及び書き込み不可能にされ、ユーザブートマットUmatはユーザ制御プログラムが実行可能にされるユーザブートモード及びユーザモード(ユーザプログラムモード)において消去及び書き込み不可能にされる。このユーザブートモードは、ユーザのシステムボードが備えているオンボードインタフェースを使用して、ユーザの制御プログラムなどをユーザマットMmatに書き込むのに適している。この動作においてユーザブートマットUmatの消去は阻止される。したがって、ユーザのシステムボードがシリアルインタフェースを備えず、オンボードでブートモードを利用できなくても、これに代えて、ユーザのシステムボードが備えているオンボードインタフェースを介する書き込みを保証することができる。尚、図4においてアクセスとはリードアクセスを意味し、記号△はブートマットに格納されたプログラムにしたがってリードアクセス可能であることを意味し、ユーザ制御プログラムにしたがって任意にリードアクセスできることは意味しない。
【0064】
図5にはCPUが実行するプログラムの所在と実行による作用を模式的に示す。図5ではCPU2の図示は省略してあり、CN1はブートマットTmatからRAM3に転送された消去及び書き込み制御プログラム等をCPU2が解読した結果の制御信号群を仮想的に示す。CN2はブートマットTmatからRAM3に転送されたシリアルインタフェース制御プログラムをCPU2が解読した結果の制御信号群を仮想的に示す。CN3はユーザブートマットUmatのユーザインタフェース制御プログラムをCPU2が解読した結果の制御信号群を仮想的に示す。CN4はユーザマットMmatのユーザインタフェース制御プログラムをCPU2が解読した結果の制御信号群を仮想的に示す。制御信号CN3,CN4はユーザブートマットUmat、ユーザマットMmatから直接フェッチしたプログラムの解読結果であるように図示されているが、一旦RAM3に転送され、RAM3からフェッチしたプログラムの解読結果であってよい。Sig1〜Sig4はシステムコントローラ15によるリセット解除後のモード信号14の解読結果を意味し、Sig1はブートモード、Sig2はユーザブートモード、Sig3はユーザモード、Sig4はライトモードを意味する。それら信号Sig1〜Sig4は実際にはCPU2にも供給されるがここではその状態の図示を省略してある。
【0065】
モード信号14にてブートモードが指示されると、信号Sig1に応答してフラッシュコントロールモジュール6によりブートマットTmatの消去及び書き込み制御プログラム及びシリアル通信制御プログラム等がRAM3に転送される(径路P1)。CPU2びよる其のシリアル通信制御プログラムの解読結果(CN2)にしたがってホスト装置HST1にオンボードのシリアルインタフェースから書き込みデータがRAM3に取り込まれ(径路P2)、CPU2による消去及び書き込み制御プログラムの解読結果(CN1)にしたがってフラッシュメモリ13が消去され、RAM3上の書込みデータを用いてユーザブートマットUmat及びユーザマットMmatに対してユーザ制御プログラムの書込みが行われる(経路P3,P4)。
【0066】
モード信号14にてユーザブートモードが指示されると、信号Sig2に応答してフラッシュコントロールモジュール6によりブートマットTmatからマット切換え制御プログラム等がRAM3に転送され(径路P1)、ユーザブートマットUmatに切換えられ、ユーザブートマットUmatの先頭ベクタをフェッチして実行する。書き込みを実施する時は、消去及び書き込みプログラムをブートマットTmatからRAM3にダウンロードする。ユーザブートマットUmatが保有するユーザインタフェース制御プログラムの解読結果(CN3)にしたがってホスト装置HST2にオンボードのユーザインタフェースから書き込みデータがRAM3に取り込まれ(径路P5)、CPU2による消去及び書き込み制御プログラムの解読結果(CN1)にしたがってフラッシュメモリ13が消去され、RAM3上の書込みデータを用いてユーザマットMmatに対してユーザ制御プログラムやユーザデータの書込みが行われる(経路P3,P4)。ユーザインタフェースは例えばその他にインタフェースコントローラ16により実現されるATAPI用インタフェースなどとされる。尚、ユーザブートマットUmatに格納されるユーザインタフェース制御プログラムはブートマットTmatに格納されたものと類似若しくは別のシリアルインタフェース制御プログラムであってもよい。
【0067】
モード信号14にてユーザモードが指示されると、信号Sig3によりそれがフラッシュコントロールモジュール6に伝達され、書き込みを実施する時は、消去及び書き込みプログラムをブートマットTmatからRAM3にダウンロードする。ユーザマットMmatが保有するユーザインタフェース制御プログラムの解読結果(CN4)にしたがってホスト装置HST2にオンボードのユーザインタフェースから書き込みデータがRAM3に取り込まれ(径路P5)、CPU2による消去及び書き込み制御プログラムの解読結果(CN1)にしたがってフラッシュメモリ13が消去され、RAM3上の書込みデータを用いてユーザマットMmatに対してユーザ制御プログラムやユーザデータの書込みが行われる(経路P3,P4)。尚、ユーザマットMmatに格納されるユーザインタフェース制御プログラムはブートマットTmatに格納されたものと類似若しくは別のシリアルインタフェース制御プログラムであってもよい。
【0068】
特に図示はしないが、マイクロコンピュータ1の比較例として、ユーザブートマットUmat及びユーザブートモードを備えていないマイクロコンピュータを想定する。この場合、ユーザブートマットUmatに格納したユーザインタフェースプログラムをユーザマットMmatに格納しておけば、前記マイクロコンピュータ1と同じように、ホスト装置HST2のオンボードのユーザインタフェースを介してプログラムやデータをユーザマットMmatに書込み又は書換えを行なうことができる。但し、マクロコンピュータ1もそうであるが、ユーザマットMmatに対しては自由な書換えが許容される関係上、ユーザマットMmatに格納されたユーザインタフェースプログラムは消去される虞がある。消去されたとき、ホスト装置HST2がブートモードで利用可能なシリアルインタフェースをオンボードで備えていなければ、その比較例に係るマイクロコンピュータは最早ホスト装置HST2とはオンボードで情報を入出力できなくなる。
【0069】
上記動作モードを有するマイクロコンピュータ1によれば、以下の作用効果を得ることができる。(1)ユーザ専用の通信プロトコルを格納可能なユーザブートマットUmatを用意したので、マイクロコンピュータ1が備える任意のインタフェースをフラッシュメモリ13の消去及び書込みに流用することができる。(2)フラッシュメモリ13の消去及び書き込みにユーザ任意のインターフェースを採用する事が可能となったことにより、ホスト装置HST2に必ずシリアルインターフェースを用意しなくてもよい。(3)ユーザブートマットUmatとユーザマットMmatを分けた事により、ユーザマットMmatに専用通信プロトコルを書かなくても、消去及び書き込み用にユーザ任意の書きこみインターフェースが実現できるから、ユーザマットMmatに格納して使用する制御プログラムの作成が容易になる。要するに、ユーザプログラムモードで使用する通信制御プログラムの消去防止などについて特別な考慮を払わなくてもよい。(4)ユーザブートマットUmatから立ち上がるユーザブートモードでは、ハードウェア的にユーザブートマットUmatを消去及び書込み不可にするので、暴走等でユーザブートマットUmatの記憶情報が破壊される事はなく、デバック時にCPU2が暴走しても、外部インターフェースを制御するプログラムの破壊には至らないので、実装したマイクロコンピュータチップを取り外さなくても、オンボードでユーザマットMmatの書換えを自由に行うことができる。
【0070】
《消去及び書き込みのプロテクト》
図6にはフラッシュメモリ13の消去及び書き込みに対するプロテクトのための論理構成が例示される。同図の論理は正論理とされ、その構成はフラッシュコントロールモジュール6によって実現される。
【0071】
フラッシュメモリに対する消去及び書き込み動作は、書込み消去関係レジスタ群30Aの初期値に対して、処理に必要な制御データを設定することによって可能にされる。書込み消去関係レジスタ群30Aに対する制御データの設定は制御ビットSWEが論理値“1”で可能になる。要するに、制御ビットSWEが論理値“1”にされない限り、フラッシュメモリ13の消去及び書込みは不可能にされる。
【0072】
制御ビットSWEを論理値“1”にする第1の条件は外部端子PfweによりレジスタFCCSのイネーブルビットFWEを論理値“1”にセットすることである。
【0073】
第2の条件は、ナンドゲート40の出力を論理値“1”とする動作モードの選択状態とフラッシュメモリのマット選択状態を得ることである。即ち、動作モードがテストモード(TESTTM=1)、ライタモード(WRTM=1)、又はブートモード(BOOT=1)であること。或は、ユーザモード又はユーザブートモードにおいてユーザブートマットUmatが選択されていないこと(UMATSEL=0)である。尚、テストモードとはマイクロコンピュータの製造メーカがデバイステストに用いる動作モードであり、全ての動作が可能にされるが、ユーザには非公開な動作モード、即ち、ユーザによる設定が不可能な考慮が払われている。
【0074】
前記信号UMATSELはレジスタFMATS及び当該レジスタFMATSの設定値に対するAA判定回路41の判定結果とされる。レジスタFMATSは、ユーザマットMmatとユーザブートマットUmatを切換えるときに使用する。このレジスタFMATSを使用することによって、CPU2のオペレーションをユーザマットMmatからユーザブートマットUmatへ遷移する事が可能になる。ただし、マットの切換えには制限事項がある。即ち、レジスタFMATSのユーザブートマット選択ビットをセットできる条件は、CPU2のオペレーションがRAM3のプログラムを実行していることである。この条件は、CPU2による命令フェッチのアドレスエリアがRAM3のアドレスエリアであることをBSC4が検出して判定する。レジスタFMATSの初期値はH’AA以外であり、ユーザマット選択状態を示す。H’AAによってユーザブートマット選択状態を示す。図7にはCPU2のオペレーション(OP)がユーザマットMmatとユーザブートマットUmatとの間で切換えられるときの状態遷移が示される。
【0075】
この第2の条件により、ユーザブートマットUmatのアクセスは、どのモードでも可能であるが、書き込み/消去は、ライターモードとブートモード(及びテストモード)のみ可能になる。
【0076】
第3の条件はレジスタFKEYが消去及び書き込み許容値に設定されていることである。前記レジスタFKEYは、電圧降下やノイズ等が原因で、プログラムが暴走し、それによるプログラムの破壊を防ぐために設けられている。消去及び書込み制御プログラム(書き込み/消去プログラム)が転送された後にプログラムが暴走した場合を考慮してレジスタFKEYを使用する。基本的には、端子Pfweと制御ビットSWEにより、CPU2が暴走しても、書き込み/消去が実施されないようになっているが、さらに信頼性を上げる為にユーザは、書き込み/消去を実施する前に、レジスタFKEYに“5A”の値をセットする。この“5A”をストアしてない時は、FWEがイネーブル(“1”)になっていたとしても、制御ビットSWEをセットする事ができないようになる。レジスタFKEYに“5A”がストアされている状態は、A5,5A判定回路42で検出され、信号fwemkp=1にされ、これによって、SWEが論理値“1”にセット可能にされる。
【0077】
前記レジスタFKEYは上述の書き込み/消去プログラム関係として機能される他に、プログラム転送関係として機能される。即ち、フラッシュッメモリの消去及び書き込み制御プログラムをブートマットTmatに格納し、ブートモードの他に、ユーザブートモード及びユーザモードで利用可能にする関係上、ブートマットTmatの当該消去及び書き込み制御プログラムをRAM3に転送させるため、レジスタFCCSに制御ビットSCOを設け、制御ビットSCOをイネーブルすると、自動的にユーザマットMmatとブートマットTmatが切り替えれ、ブートマットTmatから消去及び書込み制御プログラムがRAM3に転送され、処理終了後にリターン命令が実行されてユーザの処理へ復帰するようになっている。このとき、ユーザが書き込み/消去を実施したくない所で、プログラムが暴走し、書き込み/消去プログラムが転送されると、ユーザプログラムを破壊する可能性が高くなる。これを回避するために、レジスタFKEYを使用する。ユーザは、制御ビットSCOをセットする前に、このレジスタFKEYに“A5”をストアする。この“A5”をストアしてない時は、制御ビットSCOをセットする事はできない。また、CPU2がRAM3上のプログラムをオペレーションしていることも条件にされる。“A5”がストアされ、RAM3上でCPU2のオペレーションが行われている時は、SCOビットがセット可能となり、消去及び書き込み制御プログラムをブートマットTmatからRAM3へ転送することが許容される。
【0078】
上述のように、フラッシュメモリ13に対する消去及び書込みに関しては、レジスタFKEYでプログラムの転送と消去書き込みを排他制御しているので、プログラムが転送されない状態で暴走した場合は、書き込み/消去が実行され難い。
【0079】
《プログラムモード判定処理》
ここで、前記各動作モードにおける処理の詳細を説明する。図8にはプログラムモード判定処理のフローチャート13が例示される。SCOモードとはユーザモードにおいてフラッシュメモリを消去及び書込みするときの動作モードを意味する。ブートモード、ライタモード、ユーザブートモード、ユーザモードは夫々対応するモード端子をセットしてリセット解除すればよい。SCOモードは、ユーザモード中において制御ビットSCOに論理値“1”をセットして設定される。設定された動作モードに応じてモード判定レジスタにモード情報がセットされる。
【0080】
動作モードが設定されると、CPU2はブートマット内のプログラムを実行する(ブートマット内OP)。ブートモード、ライタモード、ユーザブートモードはブートマット内の先頭アドレスからベクタをフェッチしてプログラム実行を開始する(S1)が、SCOモードの場合にはブートマット内の先頭以外の所定番地、例えば優先度の最も高い例外処理であるユーザブレーク番地から処理を開始する。
【0081】
処理開始すると、モード判定用レジスタをリードし(S2)、その内容を判定し、消去及び書込み制御プログラムの転送など、必要な前処理を行なって(S2〜S5)、対応する処理に進む(S6〜S9)。尚、フローチャートの各処理欄に示される“user”はその処理がユーザにより定義されたプログラムに基づいて行われる処理であることを意味し、処理欄に示される“boot”はその処理がブートマットTmatのプログラムに基づいて行われる処理であることを意味する。
【0082】
《ライタモード処理》
図9にはライタモード処理のフローチャートが例示される。ライタモードが設定されたときは、図8に示されるようにライタモード制御プログラムがRAM3に転送されている。先ず、ライタモードにおいて消去及び書込みに利用されるコマンド・データレジスタ(CDL)、フラグレジスタ(FLG)がクリアされ、コマンドフラグ(CDF)に“1”がセットされ(S11)、電源が落ちまで、フラグレジスタ(FLG)及びコマンドフラグ(CDF)の状態を参照しながら、EPROMライタからコマンド・データレジスタ(CDL)にセットされるコマンド及び書込みデータにしたがって、ユーザマットMmat及びユーザブートマットUmatに対する消去(S14,S15)及び書込み(S12,S13)が行われる。ライトモード処理はRAM3内オペレーションとされる。
【0083】
《ブートモード処理》
図10にはブートモード処理のフローチャートが例示される。先ず、オンボードのシリアルインタフェースとSCI12との送受信を確立し(S20)、マイクロコンピュータ1の発振周波数等の必要なパラメータをダウンロードして設定する(S21)。次いで、ホスト装置からのコマンドを判定し、マイクロコンピュータの製品名や消去ブロック数などのステータスをホスト装置に返し(S22)、コマンド判定プログラムと消去プログラムをRAM3に転送して(SCOモードを利用することも可能)、RAM3上でのオペレーションに遷移する(S23)。そして、ユーザマットMmat及びユーザブートマットUmatを全面消去した(S24)後、コマンドに応答しながら、ユーザマット書込み処理(S25)、ユーザブートマット書込み処理(S26)、書込みベリファイ処理(S27,S28)等を行なう。
【0084】
《ユーザブートモード処理》
図11にはユーザブートモード処理のフローチャートが例示される。ユーザブートモードでは、特に制限されないが、ブートマットTmatの先頭ベクタからオペレーションを開始し、ユーザブートマットUmatへの切換えプログラムをブートマットTmatからRAM3に転送し(S30)、RAM3上でのオペレーションに遷移し(S31)、レジスタFMATSにH’AAをセットして、レジスタFMATSによるユーザマット指示状態(初期値)をユーザブートマットに切換える(S32)。ここで、ユーザブートマットUmatのエリア設定に誤りが有るかを判定し(S33,S34)誤りが無ければユーザブートマットUmatの先頭ベクタアドレスをリードし(S35)、リードしたベクタアドレスにサブルーチンジャンプする(S36)。CPU2はユーザブートマットUmat上のプログラムを実行し、先ず、ユーザ定義の通信を確立し、書込みに必要なユーザプログラムをRAM3に転送する(S37)。CPU2はRAM3上のプログラム実行に遷移し(S38)、再度レジスタFMATSの操作を行なって、処理対象マットをユーザブートマットUmatからユーザマットMmatに切換える(S39)。そして、RAM3上のユーザプログラムを実行して制御ビットSCOを“1”にセットし(S40)、SCOモード処理に遷移して、ブートマットTmat内の消去及び書き込み制御プログラムをRAM3に転送させ(S41)、転送された消去及び書き込み制御プログラムを用いた書込み/消去の処理が行なわれる(S42)。
【0085】
《ユーザモード処理》
図12にはユーザモード処理のフローチャートが例示される。ユーザモードが指定されると、ユーザマットMmatの先頭からベクタフェッチが行なわれて(S50)、ユーザの制御プログラムが実行される(S51)。ユーザプログラムの実行中にユーザマットMmatへの書込みが必要になると、RAM3上でオペレーションを行なってSCOビットを“1”にセットし(S52)、SCOモード処理に遷移して、ブートマット内の消去及び書き込み制御プログラムをRAM3に転送させ(S53)、転送された消去及び書き込み制御プログラムを用いた書込み/消去の処理が行なわれる(S54)。
【0086】
《書き込み/消去処理》
図13には前記ステップS42,S54の書き込み/消去処理のフローチャートが例示される。ステップS60〜S63までが書き込み/消去の初期化処理である。ここでは、消去及び書き込み制御プログラムはマイクロコンピュータ1の製造メーカにより予めブートマットTmatに保持されている。要する、そのプログラムはユーザ固有の条件について規定しない。例えば消去電圧パルスや書き込み電圧パルスの印加時間はフラッシュッメモリセルの特性に応じて決まるが、そのパルス印加時間はマイクロコンピュータ1の動作クロック信号で制御する必要があり、其のために必要な動作周波数のデータが制御レジスタFPEFEQに設定される(S60)。制御レジスタFPEFEQは、特に制限されないが、CPU2の汎用レジスタR4が割当てられる。
【0087】
消去電圧パルスや書き込み電圧パルス及びベリファイ動作のサイクル中にユーザの処理が完全に断たれる不都合を解消するためのユーザブランチ処理(詳細は後述)のための分岐先処理のアドレスをレジスタFUBRAに設定する(S61)。
【0088】
この後、初期化プログラム領域にサブルーチンジャンプし(S62)、初期化プログラムを実行し(S64)、上記周波数やユーザブランチアドレスといった初期設定の内容にしたがって、消去及び書き込みのためのパラメータが消去及び書込み制御プログラム上に自動的に設定される。
【0089】
次に、消去及び書き込みのハードプロテクトを解除するために、端子Pfweを介して制御ビットFWEを論理値“1”にセットしてハードプロテクトを解除し、ユーザプログラムの実行に遷移する(S64)。このオペレーション状態で、書込みデータを用意し(S65)、ユーザが実施したい書き込み/消去を実行する(S66)。ステップS65,S66の処理はユーザが目的とする処理が終了されるまで繰返される。
【0090】
《ユーザブランチ》
図13の書き込み消去処理を更に詳述しながらユーザブランチ処理について説明する。
【0091】
図14は図13の書き込み処理に着目した概略フローチャートである。書き込み処理は、ブートマットTmatからソースコード(消去及び書き込み制御プログラム等)をRAM3に転送する処理(T1)、書き込み初期化の実行(T2)、及び書き込み実行(T3)に大別される。
【0092】
転送処理(T1)は、転送を実施したいプログラムを選択し、レジスタFKEYをセットし制御ビットSCOをイネーブルにする。これを実施する事によって、ブートマットから自動的に転送プログラムがスタートする。プログラムは、RAM3のスタートアドレスから必要な領域だけプログラムが転送される。この時に初期化プログラムも転送される。
【0093】
初期化の実行(T2)では、初期化プログラムが実行され、転送されたプログラムに対し、動作周波数に依存するウェイトタイムループ回数の設定やユーザブランチアドレスが設定される。
【0094】
書き込み実行(T3)では、書き込みを実施する前に、どの様な方式でも良いが、書き込みデータをRAM3上に転送する。このときには、ある決まった順序でデータを並べる必要がある。転送領域は、ユーザが任意に設定する事が可能で、必要な手続きを実施し、転送を実施した後、プログラムのある決まった番地にサブルーチンジャンプを実施する。このサブルーチンジャンプを実施する事で書き込みが実行される。
【0095】
図15にはRAM3への転送処理(T1)の詳細が例示される。先ずレジスタFKEYを“A5”に設定し(T10)、転送したいソースコードを選択する(T11)。ソースコードの選択は、書き込み消去関係レジスタ30Aに対して行われる。選択可能なソースコードは、特に制限されないが、書き込み及び書き込みベリファイプログラム、消去及び消去ベリファイプログラム等である。そして制御ビットSCOが“1”にセットされて、選択されたソースコードがRAM3の所定エリアに転送される(T12)。制御ビットSCOのイネーブルを実施する時は、CPU2はフラッシュッメモリ13の外でオペレーションを実施している必要がある。これは、オペレーション可能なマットがユーザマットMmatからブートマットTmatに変化してしまうためにプログラムが暴走するからである。制御ビットSCOのイネーブルを実施したら、自動的にブートマットTmatからプログラムがスタートする。このブートプログラムは、汎用レジスタの値をソフトウェア処理でスタックに退避する。ユーザの処理に戻るときは、リターン命令でユーザの処理に復帰する。この復帰を実施する前にブートマットTmat内の転送プログラムは、退避を実施した汎用レジスタの値を復帰する。最後に転送が正常に終了したかの判別が行われる(T13)。
【0096】
図16には書き込み初期化処理(T2)の詳細が例示される。先ずレジスタFPEFEQ(R4)にマイクロコンピュータ1の動作周波数がセットされ(T20)、レジスタFUBRAにユーザブランチアドレスがセットされる。レジスタFUBRAにはCPU2の汎用レジスタR5が割当てられる。其の後、書き込み初期化プログラムが実行される(T22)。例えば、書き込み関係の初期化プログラムは、設定されたチップ動作周波数の値を参照し、ウェイトタイムループ回数を決定する。決定したウェイトタイム時間をRAM3上に転送された書き込み制御プログラムに埋め込む処理を行なう。また、書き込み初期化プログラムは、レジスタFUBRA(R5)の値を参照して、ユーザブランチを実施するか、実施した場合に何処のアドレスにジャンプするかの書き込みプログラム変更を実施する。要するに、ユーザブランチを実施するサブルーチンジャンプ命令に、レジスタFUBRA(R5)の値が、分岐先アドレスとして埋め込まれる。最後に、初期化処理が正常に終了したことを判別して(T23)、処理を終了する。
【0097】
ここで、前記レジスタFUBRAは書き込み/消去途中でのユーザブランチアドレスを指定するレジスタであり、このエリアは汎用レジスタR5に存在する。ユーザブランチを実施したくない時は、このレジスタにH’00000000をセットする。ユーザブランチにより誤動作を生じないようにするために、フラッシュメモリエリアで書き込み/消去途中のエリアに関してはユーザブランチを禁止し、内蔵RAMの内、書き込み/消去プログラムが転送された領域へのユーザブランチを禁止し、プログラムデータの書き換えを禁止し、ユーザブランチを実施した先で、SCOモードの実行や書き込み/消去ルーチン、書き込み/消去初期化ルーチンをコールすることを禁止することが望ましい。
【0098】
図18には図16の書き込み初期化時における内蔵RAM3、書き込みプログラム、初期化処理、レジスタR4,R5との間のデータ接続関係が示される。同図により、初期化プログラムは、レジスタR4,R5を参照し、参照結果を書き込みプログラムのユーザブランチ処理に反映し、ウェイト関係パラメータに反映することが明瞭である。
【0099】
図17には書き込み実行(T3)の詳細が例示される。先ず、マスク不可能な割込み(NMI)を受け付けたときの分岐先をRAM3アドレスエリアに変更する(T30)。例えばベクタベースレジスタをRAM3のアドレスエリアに設定変更すればよい。これは、書き込み途上のフラッシュメモリエリアを避けることが誤動作防止の点より望ましいからである。そのようなNMIはユーザ定義のエラー処理ルーチンをコールするために利用すればよい。そして、NMIよりも割込み優先レベルの低い割込みをマスクする(T31)。例えばステータスレジスタSRに割込みマスクデータIMSKのNMIの次に低い割込み優先レベルを設定すればよい。これは、書き込み/消去中は、状態によってフラッシュメモリに高電圧が掛かっている。この状態でIRQ等の割り込みが入ったとしても、フラッシュメモリのベクターを読める事は保証できない。よって、書き込み/消去中は、NMI以外の割り込みは禁止にする。
【0100】
そして、書き込みアドレスの設定エリアを汎用レジスタR5にセットする(T32)。すなわち、内蔵RAM3に書かれている書き込みアドレスエリアの先頭アドレスを汎用レジスタR5にセットする。そして、書き込みデータアドレスの設定エリアを汎用レジスタR4にセットする(T33)。即ち、内蔵RAM3に書かれている書き込みデータアドレスエリアの先頭アドレスを汎用レジスタR4にセットする。其の後、レジスタFKEYに書き込み/消去コード“5A”をセットし(T34)、書き込みプログラムにジャンプして実行する(T35)。最後に書き込みが正常に終了したかを判別する(T36)。
【0101】
図19には書き込み時におけるRAM3、汎用レジスタR4,R5、書き込みプログラムとの間のデータ接続関係が例示される。ここではデュアルバンク書込みを想定しているから、書込みアドレスエリアの先頭アドレスと書込みデータアドレスエリアの先頭アドレスとを夫々のバンク毎に参照できなければならないため、RAMエリアFMPDR0,FMPDR1をレジスタR4で、RAMエリアFMPAR0,FMPAR1をレジスタR5で参照可能にしている。
【0102】
図20には図17のステップT35に対応する書込みプログラムの処理フローが例示される。この処理フローは、書込みデータラッチ(T40)、書込みパルスの印加(T41)、書込みベリファイ(T42)の処理サイクル中に、ユーザブランチアドレスにサブルーチンジャンプするかを判定するステップ(T43)を有し、初期化処理による設定値にしたがって、サブルーチンジャンプの指示がされている場合(ユーザブランチアドレスがH’00000000以外のとき)には、ユーザブランチアドレスに分岐して、サブルーチンを実行する(T44)。実行後に再び書き込み動作ルーチンに戻ってくる。書込みベリファイで所定の閾値状態を得られないときは、パルス印加回数Nをインクリメントして再度同じループを繰返し(T45)、くり返し回数が最大回数(WMAX)に達する前に書込み正常状態を得られれば其の時点で図17のフローに戻り(T46)、最大回数に達しても正常終了できないときは書込みエラー処理を行なって(T47)、図17のフローに戻る。
【0103】
このように、書込みパルス印可と書込みベリファイのサイクル中に、ユーザブランチアドレスで示されたサブルーチン処理に分岐可能であれば、書き込み中であっても、ユーザの制御プログラムに、ある一定間隔で制御を戻すことができる。しかも、ソフトウェアで実施しているので、ユーザの制御に戻ってくる間隔をソフトウェアで変更することも可能である。書き込み中でも、ユーザ制御プログラムに一定間隔で戻ってくることにより、このマクロコンピュータ1を使用したシステムを長い時間停止させなくても、消去及び書き込みが実施可能になる。したがって、一定期間毎に内外の事象を確認する必要のあるシステム、或は学習機能付きのシステム等に対して、ユーザのプログラム実行中に消去及び書込みを実行していくことが可能である。
【0104】
図21は図13の消去処理に着目した概略フローチャートである。消去処理は、ブートマットからソースコード(消去及び書き込み制御プログラム等)をRAM3に転送する処理(T5)、消去初期化の実行(T6)、及び消去実行(T7)に大別される。
【0105】
転送処理(T5)は前記転送処理(T1)と同じである。初期化の実行(T6)では、転送されたプログラムに関して、動作周波数に依存するウェイトタイムループ回数の設定やユーザブランチの設定の為に、初期化プログラムを実行する。
【0106】
消去実行(T7)では、RAM3に転送された消去プログラムのある決まった番地にジャンプサブルーチンを実施する事で消去を実行する。
【0107】
図22には消去初期化処理(T6)の詳細が例示される。先ずレジスタFPEFEQ(R4)にマイクロコンピュータ1の動作周波数がセットされ(T60)、レジスタFUBRAにユーザブランチアドレスがセットされる(T61)。レジスタFUBRAにはCPU2の汎用レジスタR5が割当てられる。其の後、消去初期化プログラムが実行される(T62)。転送された時の消去プログラムは、ウェイトループ回数が初期設定状態になっている。この事から、この初期化プログラムを使用して、消去プログラムのウェイトループ回数を全て変更する。この計算を実施する為に、ユーザはレジスタFPEFEQ(R4)をセットする。レジスタFUBRA(R5)の設定では、消去プログラムのユーザブランチ設定を実施することになる。消去初期化プログラムは、レジスタFUBRAの設定値を参照して、ユーザブランチを実施するか、実施した場合に何処のアドレスにジャンプするかについて、消去プログラム変更を実施する。この変更を実施する為に、ユーザはレジスタFUBRAに値をセットする。最後に、初期化処理が正常終了したことを判別して(T63)、処理を終了する。
【0108】
ここで、前記レジスタFUBRAの意義は書込みの場合と同じであり、ユーザブランチを実施したくない時は、このレジスタにH’00000000をセットする。
【0109】
図24には図22の消去初期化時における内蔵RAM3、消去プログラム、初期化処理、レジスタR4,R5との間のデータ接続関係が示される。同図により、初期化プログラムは、レジスタR4,R5を参照し、参照結果を書き込みプログラムのユーザブランチ処理に反映し、ウェイト関係パラメータに反映することが明らかである。
【0110】
図23には消去実行(T7)の詳細が例示される。先ず、マスク不可能な割込み(NMI)を受け付けたときの分岐先をRAM3アドレスエリアに変更する(T70)。例えばベクタベースレジスタをRAM3のアドレスエリアに設定変更すればよい。これは、消去途上のフラッシュメモリエリアを避けることが誤動作防止の点より望ましいからである。そのようなNMIはユーザ定義のエラー処理ルーチンをコールするために利用すればよい。そして、NMIよりも割込み優先レベルの低い割込みをマスクする(T71)。例えばステータスレジスタSRに割込みマスクデータIMSKのNMIの次に低い割込み優先レベルを設定すればよい。これは、消去中は、状態によってフラッシュメモリに高電圧が掛かっている。この状態でIRQ等の割り込みが入ったとしても、フラッシュメモリのベクターを読める事は保証できない。よって、消去中は、NMI以外の割り込みは禁止にする。
【0111】
そして、消去ブロック番号を汎用レジスタR4にセットする(T72)。其の後、レジスタFKEYに書き込み/消去コード“5A”をセットし(T73)、消去プログラムにジャンプして実行する(T74)。最後に消去正常終了を判別する(T75)。
【0112】
図25には消去時におけるRAM3、汎用レジスタR4,R5、消去プログラムとの間のデータ接続関係が例示される。この接続関係は、ユーザが消去プログラムを作成しないので消去マット選択のインターフェース方法として、消去ブロック選択の受け渡しを、レジスタFEBS(R4)を介して消去ブロック番号を受け渡す事で実施する。
【0113】
図26には図23のステップT74に対応する消去プログラムの処理フローが例示される。この処理フローは、消去データラッチ(T80)、消去パルスの印加(T81)、消去ベリファイ(T82)の処理サイクル中に、ユーザブランチアドレスにサブルーチンジャンプするかを判定するステップ(T83)を有し、初期化処理による設定値にしたがって、サブルーチンジャンプの指示がされている場合(ユーザブランチアドレスがH’00000000以外のとき)には、ユーザブランチアドレスに分岐して、サブルーチンを実行する(T84)。実行後に再び消去動作ルーチンに戻ってくる。消去ベリファイで所定の閾値状態を得られないときは、パルス印加回数Nをインクリメントして再度同じループを繰返し(T85)、くり返し回数が最大回数(EMAX)に達する前に消去正常状態を得られれば其の時点で図23のフローに戻り(T86)、最大回数に達しても正常終了できないときは消去エラー処理を行なって(T87)、図23のフローに戻る。
【0114】
このように、消去パルス印可と消去ベリファイのサイクル中に、ユーザブランチアドレスで示されたサブルーチン処理に分岐可能であれば、消去中であっても、ユーザの制御プログラムに、ある一定間隔で制御を戻すことができる。消去中でも、ユーザ制御プログラムに一定間隔で戻ってくることにより、このマクロコンピュータ1を使用したシステムを長い時間停止させなくても、消去が実施可能になる。したがって、一定期間毎に内外の事象を確認する必要のあるシステム、或は学習機能付きのシステム等に対して、ユーザのプログラム実行中に消去及び書込みを実行していくことが可能である。
【0115】
《ユーザブランチ先でのプログラムの暴走》
書き込み/消去プログラムが転送された状態で、しかも端子Pfweがイネーブル状態(“1”)の場合は、フラッシュメモリ13が保有する記憶情報を如何なる場合にも正常に保持することを完全に保証する事は、困難である。図27にはユーザブランチ先でCPU2が暴走してフラッシュッメモリ13の記憶情報が破壊される事態を抑止可能にする書込み/消去処理の手法が例示される。即ち、書き込み/消去フロー中で各処理終了毎に実施する前記ステップT44,T84のユーザブランチ処理では、書込み消去の動作電源を初期化してリード動作の動作電源に遷移させ(T90)、その後、レジスタFKEYの値を、書込み/消去可能値“5A”以外の任意に値に変更する(T91)。例えば7X(X=0〜F)とする。これを実施することにより、制御ビットSWEのセットが不可になるので、ユーザブランチ先でCPUが暴走しても、簡単には書き込み/消去ができなくなる。
【0116】
ステップT91の処理において、レジスタFKEYに設定するコードを、処理に対して意味のあるコード、例えば、消去/書込みの進捗状況を示すコードにすれば、暴走などにより、書込み/消去未完の状態で書込み/消去の処理ルーチンからリターンしてきたような場合、或はレジスタFKEYの値が期待値以外の値に変化している場合、レジスタFKEYの値を参照することにより、異常を検出することができる。図27の例では、パルス印可とベリファイの間では“71”、ベリファイと書込みデータ再演算の間は“72”、再演算と書込みパルス印可前のダミーライトの間は“73”とし、ユーザブランチ処理から抜けるとき、レジスタFKEYの値が“7X(X=1〜F)”であるかを判定し(T92)、それ以外であれば何らかの異常が有ったと見なし、書込み/消去に対してフェイル処理を行なう(T93)。FKEYが“7X”であれば、正常に処理終了と見なし、FKEYを“5A”に戻す(T93)。
【0117】
尚、進捗情況を保持するレジスタはFKEYでなくてもよいが、ユーザブランチの場合に“5A”以外の値に書き換えることが得策であるという事情を考慮すれば、レジスタFKEYを利用することが、ハードウェアリソースと処理負担の両面において経済的である。
【0118】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【0119】
例えば、消去及び書込み可能な不揮発性メモリは2値のフラッシュメモリに限定されない。多値フラッシュメモリ、例えば、1個のフラッシュッメモリセルに2ビット以上の記憶情報を保持させることが可能な多値フラッシュメモリであってもよい。すなわち、1個のフラッシュメモリセルは、情報記憶に際して複数ビットの書き込みデータで指定される4種類以上の閾値電圧の中の一つの閾値電圧に設定され、情報読み出しに際して閾値電圧の状態を対応する複数ビットの記憶情報として出力する、1個のフラッシュメモリセルの記憶情報を複数ビット化したメモリである。ここでは、一つのフラッシュメモリセルに2ビットの情報を書き込むことができ、かつその情報を読み出すことができるフラッシュメモリを一例とする。このようなフラッシュメモリが実現しようとする多値情報記憶技術において、一つのメモリセルの情報記憶状態は、例えば消去状態(“11”)、第1の書き込み状態(“10”)、第2の書き込み状態(“00”)、第3の書き込み状態(“01”)の中から選ばれた一つの状態とされる。全部で4通りの情報記憶状態は、2ビットのデータによって決定される状態とされる。即ち、2ビットのデータを一つのメモリセルで記憶する。
【0120】
また、フラッシュメモリセルはフローティングゲートとコントロールゲートの縦積み構造に限定されず、MOSトランジスタのゲート電極をフローティングゲート電極とし当該ゲート電極を延在させて形成したMOSゲート容量を介してチャネル領域をコントロールゲートに用いるようなデバイス構造などを採用してもよい。また、不揮発性記憶素子はフラッシュメモリに限定されず、MNOS(メタル・ナイトライド・オキサイド・セミコンダクタ)トランジスタを記憶素子とするEEPROM(エレクトリカリ・イレーザブル・アンド・プログラマブル・リード・オンリ・メモリ)のような不揮発性メモリ、或いは強誘電体メモリ等であってもよい。
【0121】
また、マイクロコンピュータがオンチップで備える回路モジュールは上記の例に限定されず、適宜変更可能である。
【0122】
消去及び書込み制御プログラムをブートマットに初期的に保持させる構成に限定されない。システムボードからダウンロードする構成を採用してもよい。また、各種レジスタ手段はフラッシュメモリ内蔵の周辺レジスタであっても、CPU内蔵の汎用レジスタであっても、或は、SRAMなどのメモリで構成されるメモリマップドI/Oレジスタであってもよい。
【0123】
前記ユーザブランチは、レジスタFUBRA(R5)の設定値に基づいて、ジャンプサブルーチン命令のジャンプ先コードを予め書き換える初期化処理を行なってから、其のプログラムを実行するものとして説明した。これに代えて、ジャンプサブルーチン命令でそのレジスタFUBRA(R5)を直接参照して分岐するようにしてもよい。この場合には、その消去及び書込み制御プログラムのコンパイラが一つの関数内で引数として利用する事ができる汎用レジスタの数の制限の範囲内で汎用レジスタR5を参照できなければならない。
【0124】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【0125】
すなわち、ユーザの実装ボートに必ずシリアルインターフェースを作成しなくても、ユーザ専用の通信プロトコルで、オンボード書きこみが実施でき、暴走しても、ユーザ専用通信プロトコルコードを破壊する事はない。
【0126】
ユーザマットには、ユーザの制御プログラムを作成すれば良く、プログラムの作成が容易となる。要するに、ユーザブートマットとユーザマットを分けた事により、ユーザマットに専用通信プロトコルを書かなくても、消去及び書き込み用にユーザ任意の書きこみインターフェースが実現できるから、ユーザマットに格納して使用する制御プログラムの作成が容易になる。したがって、ユーザプログラムモードで使用する通信制御プログラムの消去防止などについて特別な考慮を払わなくてもよい。
【0127】
ユーザブートマットから立ち上がるユーザブートモードでは、ハードウェア的にユーザブートマットを消去及び書きこみ不可にするので、暴走等でユーザブートマットの記憶情報が破壊される事はなく、デバック時にCPUが暴走しても、外部インターフェースを制御するプログラムの破壊には至らないので、実装したマイクロコンピュータチップを取り外さなくても、オンボードでユーザマットの書換えを自由に行うことができる。
【図面の簡単な説明】
【図1】本発明の一例に係るマイクロコンピュータのブロック図である。
【図2】CPU2の具体例を示すブロック図である。
【図3】フラッシュメモリのメモリマットを例示する説明図である。
【図4】フラッシュメモリのメモリマット毎の各動作モードによるアクセス態様を例示する説明図である。
【図5】CPUが実行するプログラムの所在と実行による作用を模式的に示す説明図である。
【図6】フラッシュメモリの消去及び書き込みプロテクトのための論理構成を例示する論理回路図である。
【図7】CPUのオペレーションがユーザマットとユーザブートマットとの間で切換えられるときの状態遷移図である。
【図8】プログラムモード判定処理のフローチャートである。
【図9】ライタモード処理のフローチャートである。
【図10】ブートモード処理のフローチャートである。
【図11】ユーザブートモード処理のフローチャートである。
【図12】ユーザモード処理のフローチャートである。
【図13】図11のステップS42及び図12のステップS54の書き込み/消去処理のフローチャートである。
【図14】図13の書き込み処理に着目した概略フローチャートである。
【図15】RAMへの転送処理(T1)の詳細を例示するフローチャートである。
【図16】書き込み初期化処理(T2)の詳細を例示するフローチャートである。
【図17】書き込み実行(T3)の詳細を例示するフローチャートである。
【図18】図16の書き込み初期化時における内蔵RAM、書き込みプログラム、初期化処理、レジスタ(R4,R5)との間のデータ接続関係を例示する説明図である。
【図19】書き込み時におけるRAM、汎用レジスタ(R4,R5)、書き込みプログラムとの間のデータ接続関係を例示する説明図である。
【図20】図17のステップT35に対応する書込みプログラムの処理フローである。
【図21】図13の消去処理に着目した概略フローチャートである。
【図22】消去初期化処理(T6)の詳細を例示するフローチャートである。
【図23】消去実行(T7)の詳細を例示するフローチャートである。
【図24】図22の消去初期化時における内蔵RAM、消去プログラム、初期化処理、レジスタ(R4,R5)との間のデータ接続関係を例示する説明図である。
【図25】消去時におけるRAM、汎用レジスタ(R4,R5)、消去プログラムとの間のデータ接続関係を例示する説明図である。
【図26】図23のステップT74に対応する消去プログラムの処理フローである。
【図27】ユーザブランチ先でCPUが暴走してフラッシュッメモリの記憶情報が破壊される事態を抑止可能にするユーザブランチ処理のフローチャートである。
【符号の説明】
1 マイクロコンピュータ
2 CPU
3 RAM
4 バスステートコントローラ
5 フラッシュッメモリモジュール
6 フラッシュコントロールロジック
9 割込みコントローラ
RES リセット信号
13 フラッシュッメモリ
14 モード信号
15 システムコントローラ
20 メモリセルアレイ
FMATS 制御レジスタ
FKEY 制御レジスタ
FCCS 制御レジスタ
SCO 制御ビット
Rmat リペア及びトリミングマット
Tmat ブートマット
Umat ユーザブートマット
Mmat ユーザマット
Pfwe 外部端子
Claims (16)
- CPUと、第1領域、第2領域及び第3領域を有し消去及び書き込み可能な不揮発性メモリと、上記CPUのアドレス空間に配置された揮発性メモリを含み、
外部端子を介して供給される信号によって動作モードを選択可能で、
前記動作モードは、
前記CPUに第1領域のプログラムを処理させ、前記第2領域及び第3領域に対し任意のプログラムを書き込み可能とすると共に前記第1領域を消去及び書き込み不可能にする第1モード、
前記CPUに第2領域のプログラムを処理させ、前記第3の領域に任意のプログラムを書き込み可能とすると共に第1領域及び第2領域を消去及び書き込み不可能にする第2モード、及び前記CPUに第3領域のプログラムを処理させ、前記第3領域を書き込み可能とすると共に第1領域及び第2領域を消去及び書き込み不可能にする第3モード、を有し、
前記第1乃至第3モードにおいて、前記第1領域に格納された書込制御プログラムを上記揮発性メモリに転送し、前記揮発性メモリ上で実行することによって、前記第2領域または第3領域に対する書き込み制御を行うことが可能となることを特徴とするマイクロコンピュータ。 - 前記第1乃至第3領域は前記CPUのアドレス空間において同一の先頭アドレスを割り当てられ、前記動作モードによって何れかの領域を選択可能とされる請求項1記載のマイクロコンピュータ。
- CPUと、消去及び書き込み可能な第1領域、第2領域及び第3領域を有する不揮発性メモリと、前記CPUのデータもしくはプログラムを一時記憶領域として動作可能なRAMと、外部から供給される信号によって第1モード、第2モード又は第3モードを選択的に指定する指示手段と、を含み、
前記第1領域は、前記不揮発性メモリの書き込み制御プログラムを格納し、
前記RAMは前記何れかの領域を消去及び書き込みするために、前記書き込み制御プログラムを転送され、
前記CPUは、第1モードの指定により第1領域のプログラムを処理し、第2モードの指定により第2領域のプログラムを処理し、第3モードの指定により第3領域のプログラムを処理し、
前記不揮発性メモリは、前記CPUによる前記RAMに格納された書き込み制御プログラムを実行されることにより消去及び書き込み可能であり、第1モードの指定により前記第2領域及び第3領域が消去及び書き込み可能にされ且つ第1領域が消去及び書き込み不可能にされ、第2モードの指定により第3領域が消去及び書き込み可能にされ且つ第1領域及び第2領域が消去及び書き込み不可能にされ、第3モードに指定により第3領域が消去及び書き込み可能にされ且つ第1領域及び第2領域が消去及び書き込み不可能にされるものであることを特徴とするマイクロコンピュータ。 - 前記第1領域はマイクロコンピュータの外部とインタフェースを確立するための第1の通信制御プログラムを保有するものであることを特徴とする請求項1又は3記載のマイクロコンピュータ。
- 前記第1領域はマイクロコンピュータの外部とインタフェースを確立するための第1の通信制御プログラムを保有し、前記第2領域はマイクロコンピュータの外部とインタフェースを確立するための第2の通信制御プログラムを保有するものであることを特徴とする請求項1又は3記載のマイクロコンピュータ。
- 前記第1の領域は、前記不揮発性メモリのための消去及び書き込み制御プログラムを保有するものであることを特徴とする請求項4又は5記載のマイクロコンピュータ。
- 前記第1の領域は、前記消去及び書き込み制御プログラムの転送制御プログラムを保有するものであることを特徴とする請求項6記載のマイクロコンピュータ。
- 前記CPUによる転送制御プログラムの処理により前記消去及び書き込み制御プログラムが転送されるRAMを有して成るものであることを特徴とする請求項7記載のマイクロコンピュータ。
- 前記第1領域、第2領域及び第3領域の夫々における先頭アドレスはCPUのアドレス空間上同一アドレスであり、前記CPUが用いる先頭アドレスを第2領域とするか第3領域とするかを排他的に指定する第1レジスタ手段がCPUのアドレス空間に配置されて成るものであることを特徴とする請求項3記載のマイクロコンピュータ。
- CPUがRAM上でプログラムを処理していることを条件に、前記第1レジスタ手段の設定変更を許可するバス制御手段を有するものであることを特徴とする請求項9記載のマイクロコンピュータ。
- 消去及び書き込み制御プログラムをRAMへストアさせる動作に許可を与える情報がセットされる第2レジスタ手段を有し、前記不揮発性メモリは、この第2レジスタ手段の許可情報がリセットされることを、消去及び書き込み動作を可能にするための必要条件とすることを特徴とする請求項9記載のマイクロコンピュータ。
- 前記第1領域は消去及び書き込み制御プログラムを有し、
前記CPUは第1モードに応答して前記消去及び書き込み制御プログラムを前記RAMに転送制御し、転送先のRAMから消去及び書き込み制御プログラムをフェッチして実行するものであることを特徴とする請求項3記載のマイクロコンピュータ。 - 前記第2モードにおいてCPUは、第3レジスタ手段の第1設定値に応答して、前記第1領域のプログラムを処理する状態に遷移し、前記消去及び書き込み制御プログラムをRAMに転送制御して、第2領域のプログラムを処理する状態に復帰するものであることを特徴とする請求項12記載のマイクロコンピュータ。
- 前記第3モードにおいてCPUは、第3レジスタ手段の第1設定値に応答して、前記第1領域のプログラムを処理する状態に遷移し、前記消去及び書き込み制御プログラムをRAMに転送制御して、第3領域のプログラムを処理する状態に復帰するものであることを特徴とする請求項13記載のマイクロコンピュータ。
- 消去及び書き込み制御プログラムをRAMへストアさせる動作に許可を与える情報として第2設定値がセットされる第2レジスタ手段を有し、前記不揮発性メモリは、この第2レジスタ手段の許可情報が第3設定値にリセットされることを、消去及び書き込み動作を可能にするための必要条件とし、
前記第2のレジスタ手段に第2設定値がセットされる状態を第3レジスタ手段に第1設定値をセット可能にするための必要条件とするものであることを特徴とする請求項13又は14記載のマイクロコンピュータ。 - 前記不揮発性メモリの第2領域及び第3領域はレジスタで排他的に選択可能になっており、
前記揮発性メモリで所定のプログラムを実行することにより前記第2領域及び第3領域の切換が可能となるものであることを特徴とする請求項1又は3記載のマイクロコンピュータ。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001097807A JP4162863B2 (ja) | 2001-03-30 | 2001-03-30 | マイクロコンピュータ |
US10/080,665 US6832285B2 (en) | 2001-03-30 | 2002-02-25 | Microcomputer with mode-controlled memory |
TW091103415A TWI251744B (en) | 2001-03-30 | 2002-02-26 | Microcomputer |
KR1020020010099A KR20020077048A (ko) | 2001-03-30 | 2002-02-26 | 마이크로컴퓨터 |
US10/981,612 US7277979B2 (en) | 2001-03-30 | 2004-11-05 | Microcomputer with mode-controlled memory |
US11/844,345 US7805562B2 (en) | 2001-03-30 | 2007-08-23 | Microcomputer with configurable communication interfacing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001097807A JP4162863B2 (ja) | 2001-03-30 | 2001-03-30 | マイクロコンピュータ |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008059286A Division JP2008186476A (ja) | 2008-03-10 | 2008-03-10 | マイクロコンピュータ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002297561A JP2002297561A (ja) | 2002-10-11 |
JP4162863B2 true JP4162863B2 (ja) | 2008-10-08 |
Family
ID=18951543
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001097807A Expired - Fee Related JP4162863B2 (ja) | 2001-03-30 | 2001-03-30 | マイクロコンピュータ |
Country Status (4)
Country | Link |
---|---|
US (3) | US6832285B2 (ja) |
JP (1) | JP4162863B2 (ja) |
KR (1) | KR20020077048A (ja) |
TW (1) | TWI251744B (ja) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4958201B2 (ja) * | 2001-03-30 | 2012-06-20 | ルネサスエレクトロニクス株式会社 | マイクロコンピュータ |
JP2004213102A (ja) * | 2002-12-26 | 2004-07-29 | Fujitsu Ltd | マイクロコンピュータ |
JP4229712B2 (ja) * | 2003-01-27 | 2009-02-25 | 株式会社ルネサステクノロジ | 不揮発性半導体記憶装置 |
ITRM20030354A1 (it) | 2003-07-17 | 2005-01-18 | Micron Technology Inc | Unita' di controllo per dispositivo di memoria. |
JP4421390B2 (ja) | 2004-06-21 | 2010-02-24 | 富士通マイクロエレクトロニクス株式会社 | 半導体集積回路 |
US7864292B2 (en) * | 2005-11-16 | 2011-01-04 | Asml Netherlands B.V. | Lithographic apparatus and device manufacturing method |
US7921303B2 (en) | 2005-11-18 | 2011-04-05 | Qualcomm Incorporated | Mobile security system and method |
US7502916B2 (en) * | 2005-12-02 | 2009-03-10 | Infineon Technologies Flash Gmbh & Co. Kg | Processing arrangement, memory card device and method for operating and manufacturing a processing arrangement |
JP2007299146A (ja) * | 2006-04-28 | 2007-11-15 | Mitsumi Electric Co Ltd | 情報処理装置及び映像受信装置 |
US7613876B2 (en) * | 2006-06-08 | 2009-11-03 | Bitmicro Networks, Inc. | Hybrid multi-tiered caching storage system |
JP5045115B2 (ja) * | 2007-01-23 | 2012-10-10 | 株式会社島津製作所 | プログラマブルデバイス制御装置およびその方法 |
US8352659B1 (en) * | 2009-10-30 | 2013-01-08 | Xilinx, Inc. | Segmentation and reassembly of a data value communicated via interrupt transactions |
JP5868381B2 (ja) * | 2013-12-03 | 2016-02-24 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置 |
US9424134B2 (en) * | 2014-03-28 | 2016-08-23 | Intel Corporation | Boot management in a non-volatile memory system |
WO2019043823A1 (ja) * | 2017-08-30 | 2019-03-07 | オリンパス株式会社 | メモリアクセス装置、画像処理装置、および撮像装置 |
JP7267692B2 (ja) * | 2018-07-31 | 2023-05-02 | キヤノン株式会社 | ファームウェアを更新する画像形成装置 |
KR102552666B1 (ko) * | 2018-11-12 | 2023-07-10 | 삼성전자주식회사 | 전자 장치 및 그것의 동작 방법 |
WO2023127516A1 (ja) * | 2021-12-27 | 2023-07-06 | ソニーグループ株式会社 | 置換装置、情報処理方法および情報処理装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5210854A (en) * | 1989-06-14 | 1993-05-11 | Digital Equipment Corporation | System for updating program stored in eeprom by storing new version into new location and updating second transfer vector to contain starting address of new version |
US6009495A (en) | 1989-12-29 | 1999-12-28 | Packard Bell Nec | Protected address range in an electrically erasable programmable read only memory |
EP0464433A3 (en) * | 1990-06-29 | 1994-05-18 | Nat Semiconductor Corp | Microcontroller device having remotely programmable eprom & method of programming |
JPH0729386A (ja) * | 1993-07-13 | 1995-01-31 | Hitachi Ltd | フラッシュメモリ及びマイクロコンピュータ |
US6148441A (en) * | 1994-04-06 | 2000-11-14 | Dell Usa, L.P. | Method for reprogramming flash ROM in a personal computer implementing an EISA bus system |
JP3292864B2 (ja) * | 1995-02-07 | 2002-06-17 | 株式会社日立製作所 | データ処理装置 |
US5950222A (en) | 1996-03-14 | 1999-09-07 | Sanyo Electric Co., Ltd. | Microcomputer using a non-volatile memory |
JPH09319727A (ja) * | 1996-05-31 | 1997-12-12 | Hitachi Ltd | データプロセッサ及びデータ処理システム |
JPH1055278A (ja) | 1996-08-08 | 1998-02-24 | Toshiba Microelectron Corp | メモリ混載マイコン |
US5901330A (en) * | 1997-03-13 | 1999-05-04 | Macronix International Co., Ltd. | In-circuit programming architecture with ROM and flash memory |
US6009496A (en) * | 1997-10-30 | 1999-12-28 | Winbond Electronics Corp. | Microcontroller with programmable embedded flash memory |
JPH11219299A (ja) | 1998-02-02 | 1999-08-10 | Mitsubishi Electric Corp | マイクロコンピュータ |
JP2000259420A (ja) | 1999-03-05 | 2000-09-22 | Denso Corp | 電子制御装置用の学習値更新装置 |
JP4475709B2 (ja) * | 1999-11-15 | 2010-06-09 | 株式会社ルネサステクノロジ | マイクロコンピュータ |
-
2001
- 2001-03-30 JP JP2001097807A patent/JP4162863B2/ja not_active Expired - Fee Related
-
2002
- 2002-02-25 US US10/080,665 patent/US6832285B2/en not_active Expired - Fee Related
- 2002-02-26 KR KR1020020010099A patent/KR20020077048A/ko not_active Application Discontinuation
- 2002-02-26 TW TW091103415A patent/TWI251744B/zh not_active IP Right Cessation
-
2004
- 2004-11-05 US US10/981,612 patent/US7277979B2/en not_active Expired - Fee Related
-
2007
- 2007-08-23 US US11/844,345 patent/US7805562B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US6832285B2 (en) | 2004-12-14 |
US20050091446A1 (en) | 2005-04-28 |
KR20020077048A (ko) | 2002-10-11 |
US7805562B2 (en) | 2010-09-28 |
US20080005454A1 (en) | 2008-01-03 |
US20020144052A1 (en) | 2002-10-03 |
TWI251744B (en) | 2006-03-21 |
JP2002297561A (ja) | 2002-10-11 |
US7277979B2 (en) | 2007-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4162863B2 (ja) | マイクロコンピュータ | |
JP4230122B2 (ja) | マイクロコンピュータ、書込み方法及び消去方法 | |
US6587916B2 (en) | Microcomputer with built-in programmable nonvolatile memory | |
US20040003167A1 (en) | Microcomputer | |
KR100604877B1 (ko) | 내장 시스템의 메모리 어드레스의 매핑을 제어하는 장치와방법 | |
JP2008059052A (ja) | 半導体集積回路及びマイクロコンピュータ | |
WO2015127330A1 (en) | System and method for modification of coded instructions in read-only memory using one-time programmable memory | |
JP4958201B2 (ja) | マイクロコンピュータ | |
JP2008186476A (ja) | マイクロコンピュータ | |
US7519802B2 (en) | System and method for configuring a computer system | |
JP4873526B2 (ja) | 半導体集積回路及びマイクロコンピュータ | |
JP3866269B2 (ja) | マイクロコンピュータ | |
KR100465610B1 (ko) | 온-칩 프로그래밍 능력을 가지는 내장된 플래시 메모리를 구비한 마이크로컴퓨터 및 상기 내장된 플래시 메모리에 데이터를프로그램하는 방법 | |
JP2003044457A (ja) | データプロセッサ | |
JP2010170579A (ja) | データ処理装置 | |
JP4042940B2 (ja) | オンチップ・プログラミング機能を持つマイクロコントローラ | |
JP5519191B2 (ja) | 半導体集積回路およびテレビ | |
US20120203989A1 (en) | Device with Processing Unit and Information Storage | |
JP2002287994A (ja) | マイクロコントローラ | |
JPH0749852A (ja) | マイクロコンピュータ | |
JPH07122872B2 (ja) | 1チップマイクロコンピュータ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041215 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20071220 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080108 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080310 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080722 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080723 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110801 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110801 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313115 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110801 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120801 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120801 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130801 Year of fee payment: 5 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313115 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |