JP3810745B2 - マイクロコンピュータ - Google Patents

マイクロコンピュータ Download PDF

Info

Publication number
JP3810745B2
JP3810745B2 JP2003023225A JP2003023225A JP3810745B2 JP 3810745 B2 JP3810745 B2 JP 3810745B2 JP 2003023225 A JP2003023225 A JP 2003023225A JP 2003023225 A JP2003023225 A JP 2003023225A JP 3810745 B2 JP3810745 B2 JP 3810745B2
Authority
JP
Japan
Prior art keywords
command
data
flash memory
microcomputer
memory
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 - Lifetime
Application number
JP2003023225A
Other languages
English (en)
Other versions
JP2003203064A (ja
Inventor
清 松原
斉尚 佐藤
浩文 向井
栄一 石川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Technology Corp
Original Assignee
Renesas Technology Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2003023225A priority Critical patent/JP3810745B2/ja
Publication of JP2003203064A publication Critical patent/JP2003203064A/ja
Application granted granted Critical
Publication of JP3810745B2 publication Critical patent/JP3810745B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Microcomputers (AREA)

Description

【0001】
【産業上の利用分野】
本発明は、電気的に書換え可能な不揮発性のフラッシュメモリを内蔵したデータ処理装置、さらには当該内蔵フラッシュメモリを単体フラッシュメモリと同様にPROMライタのような外部装置で書換え可能にする技術に係り、例えばマイクロコンピュータに適用して有効な技術に関するものである。
【0002】
【従来の技術】
特開平1−161469号には、プログラム可能な不揮発性メモリとしてEPROM(イレーザブル・アンド・プログラマブル・リード・オンリ・メモリ)またはEEPROM(エレクトリカリ・イレーザブル・アンド・プログラマブル・リード・オンリ・メモリ)を単一の半導体チップに搭載したマイクロコンピュータについて記載されている。そのようなマイクロコンピュータにオン・チップ化された不揮発性メモリにはプログラムやデータが保持される。EPROMは紫外線により記憶情報を消去するものであるから、それを実装システムから取り外さなければ書換えを行うことができない。EEPROMは電気的に消去・書込みを行うことができるので、システムに実装された状態でその記憶情報を書換えることができるが、それを構成するメモリセルは、MNOS(メタル・ナイトライド・オキサイド・セミコンダクタ)のような記憶素子のほかに選択トランジスタを必要とするため、EPROMのメモリセルに比べて例えば2.5倍から5倍程度の大きさになり、相対的に大きなチップ占有面積を必要とする。
【0003】
特開平2−289997号には一括消去型EEPROMについて記載されている。この一括消去型EEPROMは本明細書におけるフラッシュメモリと同意義に把握することができる。フラッシュメモリは、電気的な消去・書込みによって情報を書換え可能であって、EPROMと同様にそのメモリセルを1個のトランジスタで構成することができ、メモリセルの全てを一括して、またはメモリセルのブロックを一括して電気的に消去する機能を持つ。したがって、フラッシュメモリは、システムに実装された状態(オンボード)でそれの記憶情報を書換えることができると共に、その一括消去機能により書換え時間の短縮を図ることができ、さらに、チップ占有面積の低減にも寄与する。
【0004】
【発明が解決しようとする課題】
本発明者はフラッシュメモリを搭載したマイクロコンピュータについて検討した。フラッシュメモリを内蔵したマイクロコンピュータは、オンボード書き換えが可能であるが、ユーザの使い方を考えた場合には初期の書き込みはオンボードではなく基板実装前にPROMライタのような書込み装置を利用して書き込んだ方が効率のよい場合がある。そこで、斯るフラッシュメモリ内蔵マイクロコンピュータにおいても、ソケットアダプタを介してPROMライタのようなEPROMやEEPROMの書込みなどに汎用的に利用される書込み装置に結合し、この書込み装置で書込み可能な機能をサポートすることの必要性を見出した。このとき、フラッシュメモリの書込み並びに消去は、EPROMやEEPROMに比べて複雑な制御が要求される。特に消去の場合フラッシュメモリ特有の問題である過消去(消去を行い過ぎるとメモリセルトランジスタのしきい値電圧が小さく成り過ぎ、さらには負になって、正常な読み出しができなくなる現象)を避けるため、消去前に書込みレベルを均一化するためのプレライトを行ったり、ベリファイを行いながら少しずつ消去を行うといった消去手法が必要になる。このような処理のための制御手順を汎用的なPROMライター側に委ねようとすると無理があり、また、フラッシュメモリ内蔵マイクロコンピュータ専用のPROMライタのような書込み装置で対処することも現実的ではない。
【0005】
本発明の目的は、回路基板実装前にPROMライタのような外部装置を利用して情報書込みを行うときの使い勝手の良好なフラッシュメモリ内蔵型のデータ処理装置を提供することにある。本発明の別の目的は、汎用的に利用されるPROMライタのような外部装置を利用して内蔵フラッシュメモリを書換え可能にするデータ処理装置を提供することにある。さらにこのとき、外部装置による情報書込みのために新たに内蔵すべき回路規模の増大を極力抑えたデータ処理装置を提供することにある。
【0006】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【0007】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【0008】
すなわち、中央処理装置と、電気的に書換え可能な不揮発性のフラッシュメモリとを、1個の半導体基板に含み、外部装置の指示に従って内蔵フラッシュメモリを書換え可能にする動作モードを備え、その動作モードが設定された状態において外部から書込み可能にされるコマンドラッチ手段と、これにラッチされたコマンドを解析するコマンド解析手段と、解析された内容に応じてフラッシュメモリの書換えのための手順制御を行う制御手段とを、備えてデータ処理装置を構成する。
【0009】
外部装置によるフラッシュメモリの書換え中において内蔵中央処理装置は、それとは別の処理を行わなければならない必然性はなく、実質的に休眠状態であっても差し支えない。このとき、前記コマンド解析手段や制御手段での処理を、内蔵中央処理装置に実行させることによって、コマンド解析手段や制御手段のような書換えのための専用回路を削減する。
【0010】
汎用的に利用されるEPROMライタのような外部装置は、少なくとも、不揮発性記憶素子に対する書換え用高電圧を印加し、書換えのためのアドレスやデータを書込み信号などに従ってフラッシュメモリを含む対象半導体装置(LSI)に供給するようになっている。このような外部装置は、コマンド、データ、及びアドレスを、データ処理装置に内蔵された中央処理装置とは非同期で供給してくる。そこで、前記コマンドラッチ手段にコマンドが書き込まれたことを示すフラグ手段と、このフラグ手段が前記コマンドラッチ状態を示すときに、前記コマンドラッチ手段に代えて外部から書込み可能にされるデータラッチ手段と、外部からアドレス情報が書込み可能にされるアドレスラッチ手段とを更に備え、外部装置から相互に別サイクルで書き込まれるコマンドとデータ情報とのラッチ手段上での衝突を防止すると共に、前記中央処理装置は、前記フラグ手段のコマンドラッチ状態に基づいてコマンドラッチ手段のコマンドをリードするものである。
【0011】
前記フラグ手段に対する制御も中央処理装置に委ねるならば、中央処理装置はバスサイクルを起動して常にコマンドラッチ手段の内容をモニタしなければならず、動作上無駄を生ずる。そこで、前記コマンドラッチ手段のラッチ内容をデコードし、前記所定のコマンドをデコードすることによって前記フラグ手段をコマンドラッチ状態にセットするコマンドデコーダを備える。
【0012】
ラッチした全てのコマンドを中央処理装置が解析していたのではそのコマンドで指示される動作がタイミング上間に合わないものがある。例えば、フラッシュメモリからデータを読出すようなリードコマンドである。これに対処するため、コマンドラッチ手段、データラッチ手段、及びアドレスラッチ手段がフラッシュメモリと中央処理装置に接続される状態と、前記コマンドラッチ手段、データラッチ手段、及びアドレスラッチ手段がフラッシュメモリに接続され中央処理装置には非接続とされる状態とを、選択可能なゲート手段を内部バスに設け、そのゲート手段を、前記所定のコマンド以外のコマンドをデコードすることによって前記コマンドデコーダで生成される信号によって制御するようにする。斯るゲート手段が開いた状態において、フラッシュメモリはデータ処理装置の外部から直接リードアクセス可能にされる。前記リードコマンドが所定のコマンド以外のコマンドとされる。
【0013】
前記中央処理装置が実行すべきフラッシュメモリ書換えのための手順制御用プログラムは、フラッシュメモリに予め格納しておき、外部装置による書換え動作モードの設定に呼応してそのプログラムをRAMに転送し、そのRAMに転送された前記プログラムを中央処理装置に実行させることができる。
【0014】
用途に応じてフラッシュメモリに格納すべき情報量がその情報の種類例えばプログラム、データテーブル、制御データなどに応じて相違されることを考慮した場合、システム(回路基板)への実装後、内蔵フラッシュメモリの保持情報の部分的若しくは一部の書換えに伴って、メモリブロックを一括消去した後の書込み動作の無駄をなくして、書換え効率を向上させるには、前記フラッシュメモリにおける一括消去可能な単位として、相互に記憶容量の相違される複数個のメモリブロックを割当てるとよい。
【0015】
【作用】
上記した手段によれば、外部装置から非同期で与えられるコマンドに応じた書換えシーケンスを内蔵回路で実現することは、外部装置にとってデータ情報とアドレス情報を与える前に、データ情報を与えるのと同様にしてコマンドをデータ処理装置に与えればよく、汎用的に利用されるPROMライタのような外部装置にソケットアダプタを介して結合することによって、データ処理装置の内蔵フラッシュメモリに対する情報書込みを可能にする。
【0016】
コマンドによって指示される書換えのためのシーケンスを内蔵中央処理装置が制御することは、その制御のための専用回路を不要若しくは削減し、データ処理装置のチップ面積低減を実現する。更に、書換えのための制御シーケンスは、中央処理装置が実行すべきソフトウェアで変更可能であり、このことは、フラッシュメモリを構成する記憶素子の特性に合わせて書き込み時間などの条件設定を可能にする。
【0017】
【実施例】
本発明の実施例を以下の項目にしたがって説明する。
〔1〕フラッシュメモリの原理
〔2〕記憶容量を相違させた複数メモリブロック化
〔3〕PROMライタによるコマンド方式の情報書込み原理
〔4〕マイクロコンピュータ
〔5〕内蔵フラッシュメモリ
〔6〕コマンド方式対応ハードウェア
〔7〕PROMライタによる情報書込みなどのコマンド仕様
〔8〕オンボードでの情報書込み
〔9〕コマンド方式による情報書込み動作(コマンド対応)
〔10〕コマンド方式による情報書込み時のPROMライタの動作
〔11〕コマンド方式による情報書き込み時のCPUの動作
〔12〕PROMライタによる書込み仕様の単体フラッシュメモリLSIとの互換性
【0018】
〔1〕フラッシュメモリの原理
【0019】
図31にはフラッシュメモリの原理が示される。同図(A)に例示的に示されたメモリセルは、2層ゲート構造の絶縁ゲート型電界効果トランジスタにより構成されている。同図において、1はP型シリコン基板、2は上記シリコン基板1に形成されたP型半導体領域、3,4はN型半導体領域である。5はトンネル絶縁膜としての薄い酸化膜6(例えば厚さ10nm)を介して上記P型シリコン基板1上に形成されたフローティングゲート、7は酸化膜8を介して上記フローティングゲート5上に形成されたコントロールゲートである。ソースは4によって構成され、ドレインは3,2によって構成される。このメモリセルに記憶される情報は、実質的にしきい値電圧の変化としてトランジスタに保持される。以下、特に述べないかぎり、メモリセルにおいて、情報を記憶するトランジスタ(以下メモリセルトランジスタとも記す)がNチャンネル型の場合について述べる。
【0020】
メモリセルへの情報の書込み動作は、例えばコントロールゲート7及びドレインに高圧を印加して、アバランシェ注入によりドレイン側からフローティングゲート5に電子を注入することで実現される。この書込み動作により記憶トランジスタは、図31の(B)に示されるように、そのコントロールゲート7からみたしきい値電圧が、書込み動作を行わなかった消去状態の記憶トランジスタに比べて高くなる。
【0021】
一方消去動作は、例えばソースに高圧を印加して、トンネル現象によりフローティングゲート5からソース側に電子を引き抜くことによって実現される。図31の(B)に示されるように、消去動作により記憶トランジスタはそのコントロールゲート7からみたしきい値電圧が低くされる。図31の(B)では、書込み並びに消去状態の何れにおいてもメモリセルトランジスタのしきい値は正の電圧レベルにされる。すなわちワード線からコントロールゲート7に与えられるワード線選択レベルに対して、書込み状態のしきい値電圧は高くされ、消去状態のしきい値電圧は低くされる。双方のしきい値電圧とワード線選択レベルとがそのような関係を持つことによって、選択トランジスタを採用することなく1個のトランジスタでメモリセルを構成することができる。記憶情報を電気的に消去する場合においては、フローティングゲート5に蓄積された電子をソース電極に引く抜くことにより、記憶情報の消去が行われるため、比較的長い時間、消去動作を続けると、書込み動作の際にフローティングゲート5に注入した電子の量よりも多くの電子が引く抜かれることになる。そのため、電気的消去を比較的長い時間続けるような過消去を行うと、メモリセルトランジスタのしきい値電圧は例えば負のレベルになって、ワード線の非選択レベルにおいても選択されるような不都合を生ずる。尚、書込みも消去と同様にトンネル電流を利用して行うこともできる。
【0022】
読み出し動作においては、上記メモリセルに対して弱い書込み、すなわち、フローティングゲート5に対して不所望なキャリアの注入が行われないように、ドレイン及びコントロールゲート7に印加される電圧が比較的低い値に制限される。例えば、1V程度の低電圧がドレインに印加されるとともに、コントロールゲート7に5V程度の低電圧が印加される。これらの印加電圧によってメモリセルトランジスタを流れるチャンネル電流の大小を検出することにより、メモリセルに記憶されている情報の論理値“0”、“1”を判定することができる。
【0023】
図32は前記メモリセルトランジスタを用いたメモリセルアレイの構成原理を示す。同図には代表的に4個のメモリセルトランジスタQ1乃至Q4が示される。X,Y方向にマトリクス配置されたメモリセルにおいて、同じ行に配置されたメモリセルトランジスタQ1,Q2(Q3,Q4)のコントロールゲート(メモリセルの選択ゲート)は、それぞれ対応するワード線WL1(WL2)に接続され、同じ列に配置された記憶トランジスタQ1,Q3(Q2,Q4)のドレイン領域(メモリセルの入出力ノード)は、それぞれ対応するデータ線DL1(DL2)に接続されている。上記記憶トランジスタQ1,Q3(Q2,Q4)のソース領域は、ソース線SL1(SL2)に結合される。
【0024】
図33にはメモリセルに対する消去動作並びに書込み動作のための電圧条件の一例が示される。同図においてメモリ素子はメモリセルトランジスタを意味し、ゲートはメモリセルトランジスタの選択ゲートとしてのコントロールゲートを意味する。同図において負電圧方式の消去はコントロールゲートに例えば−10Vのような負電圧を印加することによって消去に必要な高電界を形成する。同図に例示される電圧条件から明らかなように、正電圧方式の消去にあっては少なくともソースが共通接続されたメモリセルに対して一括消去を行うことができる。したがって図32の構成において、ソース線SL1,SL2が接続されていれば、4個のメモリセルQ1乃至Q4は一括消去可能にされる。この場合、同一ソース線につながるメモリセルトランジスタの数を変えることによりメモリブロックのサイズを任意に設定することができる。ソース線分割方式には図32に代表的に示されるようなデータ線を単位とする場合(共通ソース線をデータ線方向に延在させる)の他にワード線を単位とする場合(共通ソース線をワード線方向に延在させる)がある。一方、負電圧方式の消去にあっては、コントロールゲートが共通接続されたメモリセルに対して一括消去を行うことができる。
【0025】
〔2〕記憶容量を相違させた複数メモリブロック化
【0026】
図34には一括消去可能なメモリブロックの記憶容量を相違させたフラッシュメモリの一例回路ブロック図が示される。
【0027】
同図に示されるフラッシュメモリFMRY1は、8ビットのデータ入出力端子D0〜D7を有し、各データ入出力端子毎にメモリアレイARY0〜ARY7を備える。メモリアレイARY0〜ARY7は、特に制限されないが、相対的に記憶容量の大きなメモリブロックLMBと相対的に記憶容量の小さなメモリブロックSMBとに2分割されている。図には代表的にメモリアレイARY0の詳細が示されているが、その他のメモリアレイARY1〜ARY7も同様に構成されている。
【0028】
夫々のメモリアレイARY0〜ARY7には前記図31で説明した2層ゲート構造の絶縁ゲート型電界効果トランジスタによって構成されたメモリセルMCがマトリクス配置されている。同図においてWL0〜WLnは全てのメモリアレイARY0〜ARY7に共通のワード線である。同一行に配置されたメモリセルのコントロールゲートは、それぞれ対応するワード線に接続される。夫々のメモリアレイARY0〜ARY7において、同一列に配置されたメモリセルMCのドレイン領域は、それぞれ対応するデータ線DL0〜DL7に接続されている。メモリブロックSMBを構成するメモリセルMCのソース領域はソース線SL1に共通接続され、メモリブロックLMBを構成するメモリセルMCのソース領域はソース線SL2に共通接続されている。
【0029】
前記ソース線SL1,SL2には電圧出力回路VOUT1,VOUT2から消去に利用される高電圧Vppが供給される。電圧出力回路VOUT1,VOUT2の出力動作は、消去ブロック指定レジスタのビットB1,B2の値によって選択される。例えば消去ブロック指定レジスタのビットB1に”1”が設定されることによって各メモリアレイARY0〜ARY7の小メモリブロックSMBだけが一括消去可能にされる。消去ブロック指定レジスタのビットB2に”1”が設定された場合は、各メモリアレイARY0〜ARY7の大メモリブロックLMBだけが一括消去可能にされる。双方のビットB1,B2に”1”が設定されたときはフラッシュメモリ全体が一括消去可能にされる。
【0030】
前記ワード線WL0〜WLnの選択は、XアドレスバッファXABUFF及びXアドレスラッチXALATを介して取り込まれるXアドレス信号AXをXアドレスデコーダXADECが解読することによって行われる。ワードドライバWDRVはXアドレスデコーダXADECから出力される選択信号に基づいてワード線を駆動する。データ読出し動作においてワードドライバWDRVは、電圧選択回路VSELから供給される5Vのような電圧Vccと0Vのような接地電位とを電源として動作され、選択されるべきワード線を電圧Vccによって選択レベルに駆動し、非選択とされるべきワード線を接地電位のような非選択レベルに維持させる。データの書き込み動作においてワードドライバWDRVは、電圧選択回路VSELから供給される12Vのような電圧Vppと0Vのような接地電位とを電源として動作され、選択されるべきワード線を12Vのような書き込み用高電圧レベルに駆動する。データの消去動作においてワードドライバWDRVの出力は0Vのような低い電圧レベルにされる。
【0031】
夫々のメモリアレイARY0〜ARY7において前記データ線DL0〜DL7はY選択スイッチYS0〜YS7を介して共通データ線CDに共通接続される。Y選択スイッチYS0〜YS7のスイッチ制御は、YアドレスバッファYABUFF及びYアドレスラッチYALATを介して取り込まれるYアドレス信号AYをYアドレスデコーダYADECが解読することによって行われる。YアドレスデコーダYADECの出力選択信号は全てのメモリアレイARY0〜ARY7に共通に供給される。したがって、YアドレスデコーダYADECの出力選択信号のうちの何れか一つが選択レベルにされることにより、各メモリアレイARY0〜ARY7において共通データ線CDには1本のデータ線が接続される。
【0032】
メモリセルMCから共通データ線CDに読出されたデータは選択スイッチRSを介してセンスアンプSAに与えられ、ここで増幅されて、データ出力ラッチDOLを介してデータ出力バッファDOBから外部に出力される。前記選択スイッチRSは読出し動作に同期して選択レベルにされる。外部から供給される書き込みデータはデータ入力バッファDIBを介してデータ入力ラッチDILに保持される。データ入力ラッチDILに保持されたデータが”0”のとき、書き込み回路WRは選択スイッチWSを介して共通データ線CDに書き込み用の高電圧を供給する。この書き込み用高電圧はYアドレス信号AYによって選択されたデータ線を通して、Xアドレス信号AXでコントロールゲートに高電圧が印加されるメモリセルのドレインに供給され、これによって当該メモリセルが書き込みされる。前記選択スイッチWSは書き込み動作に同期して選択レベルにされる。書き込み消去の各種タイミングや電圧の選択制御は書き込み消去制御回路WECONTが生成する。
【0033】
用途に応じてフラッシュメモリFMRY1に格納すべき情報量がその情報の種類例えばプログラム、データテーブル、制御データなどに応じて相違されることを考慮した場合、フラッシュメモリにおける一括消去可能な単位として、相互に記憶容量の相違される複数個のメモリブロックSMB,LMBを構成しておくことにより、マイクロコンピュータを回路基板へ実装後、当該マイクロコンピュータ内蔵フラッシュメモリの保持情報の部分的若しくは一部の書換えに伴って、メモリブロックを一括消去した後の書込み動作の無駄をなくして、書換え効率を向上させることができる。
【0034】
〔3〕PROMライタによるコマンド方式の情報書込み原理
【0035】
図1には前記のようなフラッシュメモリFMRY2を内蔵した第1の実施例に係るマイクロコンピュータMCU1においてその内蔵フラッシュメモリをPROMライタで書換え処理するときの機能ブロック図が示される。
【0036】
同図には内部バスBUSを共有する回路モジュールとして、中央処理装置(以下単にCPUとも記す)10、フラッシュメモリFMRY2、及び制御回路20が代表的に示される。このマイクロコンピュータMCU1はPROMライタ30による書込みモードを有する。例えば、図示しないソケットアダプタを介してマイクロコンピュータMCU1をPROMライタ30の所定の端子に結合すると、マイクロコンピュータMCU1の図示しないモード端子が強制的に所定レベルにされて、マイクロコンピュータMCU1の動作モードがPROMライタ30による書込みモードに設定される。斯る動作モードにおいて、CPU10は図示しないバススイッチを介して内部バスBUSから切り離される。制御回路20は前記PROMライタ30による書込み動作モードが設定された状態においてPROMライタ30から書込み可能にされるコマンドラッチ手段21と、これにラッチされたコマンドを解析するコマンド解析手段22と、解析された内容に応じてフラッシュメモリの書換えのための手順制御を行うシーケンス制御手段23とを備える。PROMライタ30は、イレーズ(消去)、イレーズベリファイ、プログラム(書込み)、プログラムベリファイなど所定のコマンドを供給し、これに引き続いて必要なデータ情報やアドレス情報を供給する。PROMライタ30から供給されたコマンドは制御回路20で解釈され、それに従ってシーケンス制御手段23が、必要なデータ情報やアドレス情報などを利用して書込みを行うための制御信号をフラッシュメモリFMRY2に与える。
【0037】
PROMライタ30から与えられるコマンドに応じた書換えシーケンスを内蔵制御回路20で実現することは、PROMライタ30にとってデータ情報とアドレス情報を与える前に、データ情報を与えるのと同様にしてマイクロコンピュータMCU1にコマンドを与えればよく、汎用的に利用されるPROMライタ30にソケットアダプタを介してマイクロコンピュータMCU1を結合することにより、当該マイクロコンピュータ内蔵のフラッシュメモリFMRY2に対する情報書込みを行うことができる。この構成において、PROMライタ30による書込みモードが設定されたマイクロコンピュータMCU1は、PROMライタ30にとって単体のフラッシュメモリチップと同一視される。
【0038】
図2には前記フラッシュメモリFMRY2を内蔵した第2の実施例に係るマイクロコンピュータMCU2においてその内蔵フラッシュメモリMRY2をPROMライタ30で書換え処理するときの機能ブロック図が示される。
【0039】
同図に示されるマイクロコンピュータMCU2は、前記制御回路20によるコマンド解析やシーケンス制御を、内蔵CPU10に実行させることによって、コマンド解析手段22やシーケンス制御手段23のような書換えのための専用回路を削減したものである。前記図1において、PROMライタ30による書込み動作モード時にCPU10が内部バスBUSから切り離されていることからも明らかなように、PROMライタ30によるフラッシュメモリFMRY2の書換え中に内蔵CPU10は、それとは別の処理を行わなければならない必然性はなく、実質的に休眠状態であっても差し支えない。図2ではそのような内蔵CPU10を有効利用するものである。
【0040】
同図には内部バスBUSを共有する回路モジュールとして、CPU10、フラッシュメモリFMRY2、及びコマンドラッチ手段21が代表的に示される。このマイクロコンピュータMCU2はPROMライタ30による書込みモードを有する。例えば、図示しないソケットアダプタを介してマイクロコンピュータMCU2をPROMライタ30の所定の端子に結合すると、マイクロコンピュータMCU2の図示しないモード端子が強制的に所定レベルにされて、PROMライタ30による書込みモードが設定される。斯る動作モードにおいてPROMライタ30は、特に制限されないが、CPU10による内部バスアクセスに競合しないように、内部バスに直接データ情報やアドレス情報を供給しないようにされている。データ情報やアドレス情報は、コマンドラッチ手段21と同様の図示しないデータラッチ、アドレスラッチに書き込まれる。CPU10は、前記PROMライタ30による書込み動作モードが設定された状態においてPROMライタ30から書込まれたコマンドを解析するコマンド解析手段22と、解析された内容に応じてフラッシュメモリFMRY2の書換えのための手順制御を行うシーケンス制御手段23との機能を、そのための動作プログラムと共に実現する。PROMライタ30は、イレーズ(消去)、イレーズベリファイ、プログラム(書込み)、プログラムベリファイなど所定のコマンドを供給し、これに引き続いて必要なデータ情報やアドレス情報を供給する。PROMライタ30から供給されたコマンドはCPU10で解釈され、それに従ってCPU10が、必要なデータ情報やアドレス情報などを利用して書込みを行うための制御信号をフラッシュメモリFMRY2に与える。
【0041】
図3にはPROMライタ30によるコマンド書込みタイミングの一例が示される。同図においてコマンド書込みと記載されたサイクルがPROMライタ30によるマイクロコンピュータMCU2への書込みサイクルであり、最初にコマンドラッチ手段21にコマンドを書込み、次いで図示しないデータラッチ及びアドレスラッチに必要に応じてデータ情報及びアドレス情報を書込む。同図において、書込みサイクルと記載されたサイクルは、PROMライタ30によって書込まれた内容にしたがってCPU制御で行われるフラッシュメモリの情報書込みサイクルである。
【0042】
図4にはCPU制御によるフラッシュメモリの情報書込みサイクルの一例タイミングが示される。この書込みサイクルは、CPU10によるコマンド解析のサイクル、コマンド解析結果に従って実際にフラッシュメモリに対して行われる書込みサイクル、及び後処理のサイクルとされる。
【0043】
本実施例のマイクロコンピュータMCU2も上記実施例同様に汎用的に利用されるPROMライタ30をソケットアダプタを介して結合することにより、マイクロコンピュータ内蔵フラッシュメモリFMRY2に対する情報書込みを行うことができる。更に、コマンドによって指示される書換えのためのシーケンスをCPU10が制御するから、その制御のための専用回路を不要若しくは削減し、マイクロコンピュータMCU2のチップ面積低減を実現する。更に、書換えのための制御シーケンスは、CPU10が実行すべきソフトウェアで変更可能であるから、フラッシュメモリFMRY2を構成するメモリセルトランジスタの特性に合わせて書き込み時間などの条件設定を行うことができる。第1の実施例と第2の実施例との効果の相違は図5にまとめて示されている。
【0044】
〔4〕マイクロコンピュータ
【0045】
図6には図2のマイクロコンピュータに対応される更に詳細なマイクロコンピュータMCU3の実施例ブロック図が示される。
【0046】
同図に示されるマイクロコンピュータMCU3は、CPU10、フラッシュメモリFMRY2、シリアル・コミュニケーション・インタフェースSCI、制御回路CONT、及びランダム・アクセス・メモリRAM、16ビット・インテグレーテッド・タイマ・パルスユニットIPU、ウォッチドッグタイマWDTMR、ポートPORT1乃至PORT12、クロック発振器CPG、割り込みコントローラIRCONT、アナログ・ディジタル変換器ADC、及びウェートステートコントローラWSCONTを備え、それらの回路モジュールは、特に制限されないが、公知の半導体集積回路製造技術によって、シリコンのような1個の半導体基板に形成されている。
【0047】
前記CPU10、フラッシュメモリFMRY2、ランダム・アクセス・メモリRAM、及び16ビット・インテグレーテッド・タイマ・パルスユニットIPUは、アドレスバスABUS、下位データバスLDBUS(例えば8ビット)、及び上位データバスHDBUS(例えば8ビット)に接続される。シリアル・コミュニケーション・インタフェースSCI、ウォッチドッグタイマWDTMR、割り込みコントローラIRCONT、アナログ・ディジタル変換器ADC、ウェートステートコントローラWSCONT、及びポートPORT1乃至PORT12は、アドレスバスABUS、及び上位データバスHDBUSに接続される。
【0048】
図6において、VppはフラッシュメモリFMRY2の書換え用高電圧である。EXTAL及びXTALはマイクロコンピュータMCU3のチップに外付けされる図示しない振動子から前記クロック発振器CPGに与えられる信号である。φはクロック発振器CPGから外部に出力される同期クロック信号である。RES*(記号*はこれが付された信号がローイネーブル信号であることを意味する)はリセット信号、STBY*はスタンバイ信号であり、CPU10並びにその他の回路ブロックに供給される。NMIはノン・マスカブル・インタラプト信号であり、マスク不可能な割り込みを前記割り込みコントローラIRCONTに与える。図示しないその他の割り込み信号はポートPORT8,PORT9を介して割り込みコントローラIRCONTに与えられる。AS*は外部に出力されるアドレス信号の有効性を示すアドレスストローブ信号、RD*はリードサイクルであることを外部に通知するリード信号、HWR*は上位8ビットのライトサイクルであることを外部に通知するアッパーバイト・ライト信号、LWR*は下位8ビットのライトサイクルであることを外部に通知するロアーバイト・ライト信号であり、それらはマイクロコンピュータMCU3の外部に対するアクセス制御信号とされる。
【0049】
MD0乃至MD2はマイクロコンピュータMCU3の動作モードを設定するために制御回路CONTに供給されるモード信号である。これによって設定される動作モードは、特に制限されないが、マクシマムモードやミニマムモードというようなCPUが管理可能なアドレス空間に関する動作モード、PROMライタ30による内蔵フラッシュメモリFMRY2への情報書込みを可能にする動作モード(以下単にPROMライタ書込みモードとも記す)などとされる。斯るPROMライタ書込みモードに対して、前記マクシマムモードやミニマムモードは、CPU10がマイクロコンピュータMCU3のオンボード状態で内蔵フラッシュメモリFMRY2を書換え可能にする動作モードとして把握することができる。
【0050】
コマンド方式を以ってPROMライタ30でフラッシュメモリFMRY2に情報書込みを行う動作モード以外において、マイクロコンピュータMCU3が外部をアクセスするためのデータBD0乃至BD15の入出力には、特に制限されないが、前記ポートPORT1,PORT2が割当てられる。このときのアドレス信号BA0乃至BA19の出力には、特に制限されないが、前記ポートPORT3乃至PORT5が割当てられる。
【0051】
一方、マイクロコンピュータMCUに前記PROMライタ書換えモードが設定されたとき、そのフラッシュメモリFMRY2を書換え制御するPROMライタ30との接続には、特に制限されないが、前記ポートPORT2乃至PORT5及びPORT8が割当てられる。すなわち、コマンド書込み、そして書込み並びにベリファイのためのデータED0乃至ED7の入出力には前記ポートPORT2が割当てられ、アドレス信号EA0ないしEA16の入力並びにアクセス制御信号CE*(チップイネーブル信号),OE*(アウトプットイネーブル信号),WE*(ライトイネーブル信号)の入力には前記ポートPORT3乃至PORT5及びPORT8が割当てられる。前記チップイネーブル信号CE*はPROMライタ30からのチップ選択信号であり、アウトプットイネーブル信号OE*はマイクロコンピュータMCU3に対する出力動作の指示信号であり、ライトイネーブル信号WE*はマイクロコンピュータMCU3に対する書込み動作の指示信号である。尚、アドレス信号EA0ないしEA16のうちの1ビットEA9の入力には前記信号NMIの入力端子が割当てられる。この様にして割当てられたポートの外部端子、並びに高電圧Vppの印加端子などのその他必要な外部端子は、ピン配置変換用のソケットとしての図示しないソケットアダプタを介してPROMライタ30に接続される。上記PROMライタ書換えモードにおいてPROMライタ30との接続に割当てられるマイクロコンピュータMCU3の外部端子群は、その他の動作モードでは他の機能が割当てられることになる。
【0052】
図7には図6のマイクロコンピュータMCU3を、例えば、樹脂によって封止することによって得られた4辺部に外部端子を有するパッケージの上面を示す。図7に示された信号は図6と共通である。信号名の示されていない外部端子(ピン)は、ウェート信号の入力ピン、バスリクエスト信号の入力ピン、バスアクノレッジ信号の出力ピン、シリアル・コミュニケーション・インタフェースSCIなどの周辺回路と外部との信号入出力ピンなどに利用される。
【0053】
〔5〕内蔵フラッシュメモリ
【0054】
図8には図6のマイクロコンピュータMCU3に内蔵されるフラッシュメモリFMRY2の全体的なブロック図が示される。同図においてARYは前記図31で説明した2層ゲート構造の絶縁ゲート型電界効果トランジスタによって構成されたメモリセルをマトリクス配置したメモリアレイである。このメモリアレイARYは図34で説明した構成と同様に、メモリセルのコントロールゲートはそれぞれ対応するワード線に接続され、メモリセルのドレイン領域はそれぞれ対応するデータ線に接続され、メモリセルのソース領域はメモリブロック毎に共通のソース線に接続されているが、メモリブロックの分割態様は図34とは相違される。例えば、図9に示されるように、相対的にそれぞれの記憶容量が大きな7個の大メモリブロック(大ブロック)LMB0乃至LMB6と、相対的にそれぞれの記憶容量が小さな8個の小メモリブロック(小ブロック)SMB0乃至SMB7とに分割されている。大メモリブロックはプログラム格納領域又は大容量データ格納領域などに利用される。小メモリブロックは小容量データ格納領域などに利用される。
【0055】
図8において、AILはアドレス信号PAB0乃至PAB15のラッチ回路である。アドレス信号PAB0乃至PAB15は、CPU10の出力アドレス信号に対応されると共に、前記PROMライタ書換えモードではPROMライタ30の出力アドレス信号EA0乃至EA15に対応される。XADECはアドレスラッチAILを介して取り込まれるXアドレス信号を解読するXアドレスデコーダである。尚、XアドレスデコーダXADECから出力される選択信号に基づいてワード線を駆動するワードドライバについては図示を省略してある。データ読出し動作においてワードドライバは5Vのような電圧でワード線を駆動し、データの書き込み動作では12Vのような高電圧でワード線を駆動する。データの消去動作においてワードドライバの全ての出力は0Vのような低い電圧レベルにされる。YADECはアドレスラッチAILを介して取り込まれるYアドレス信号を解読するYアドレスデコーダである。YSELはYアドレスデコーダYADECの出力選択信号に従ってデータ線を選択するYセレクタである。SAはデータ読出し動作においてYセレクタYSELで選択されたデータ線からの読出し信号を増幅するセンスアンプである。DOLはセンスアンプSAの出力を保持するデータ出力ラッチである。DOBはデータ出力ラッチDOLが保持するデータを外部に出力するためのデータ出力バッファである。図においてPDB0乃至PDB7は下位8ビット(1バイト)データであり、PDB8乃至PDB15は上位8ビット(1バイト)データである。この例に従えば出力データは最大2バイトとされる。DIBは外部から供給される書き込みデータを取り込むためのデータ入力バッファである。データ入力バッファDIBから取り込まれたデータはデータ入力ラッチDILに保持される。データ入力ラッチDILに保持されたデータが”0”のとき、書き込み回路WRはYセレクタYSELで選択されたデータ線に書き込み用高電圧を供給する。この書き込み用高電圧はXアドレス信号に従ってコントロールゲートに高電圧が印加されるメモリセルのドレインに供給され、これによって当該メモリセルが書き込みされる。ECは指定されたメモリブロックのソース線に消去用高電圧を供給してメモリブロックの一括消去を行うための消去回路である。消去回路ECに対する消去ブロックの指定は、消去ブロック指定レジスタMBREGが行う。このレジスタMBREGに対するデータの書込みはCPU10が行う。
【0056】
FCONTは、フラッシュメモリFMRY2におけるデータ読出し動作のタイミング制御、及び書き込み消去のための各種タイミングや電圧の選択制御などを行う制御回路である。この制御回路FCONTは、コントロールレジスタCREGの内容を参照して処理を行う。
【0057】
図10には前記コントロールレジスタCREGと消去ブロック指定レジスタMBREGの一例が示される。この消去ブロック指定レジスタMBREGは2本のレジスタMBREG1およびMBREG2によって構成され、夫々のレジスタCREG,MBREG1,MBREG2は8ビットのレジスタとされる。コントロールレジスタCREGにおいて、Vppは書換え用高電圧印加に応じて”1”にされる高電圧印加フラグである。Eビットは消去動作を指示するビットとされ、EVビットは消去におけるベリファイ動作の指示ビットとされる。Pビットは書込み動作(プログラム動作)の指示ビットとされ、PVビットは書込みにおけるベリファイ動作の指示ビットとされる。消去ブロック指定レジスタMBREG1およびMBREG2は、それぞれ7分割された大ブロックと8分割された小ブロックに含まれる何れのメモリブロックを消去するかを指定するレジスタであり、その第0ビットから第7ビットは各メモリブロックの指定用ビットとされ、例えばビット”1”は対応メモリブロックの選択を意味し、ビット”0”は対応メモリブロックの非選択を意味する。例えば、消去ブロック指定レジスタMBREG2の第7ビットが”1”のときは、小メモリブロックSMB7の消去が指定される。
【0058】
上記レジスタCREG,MBREG1,MBREG2はCPU10によってリード・ライト可能にされている。制御回路FCONTは、そのレジスタCREG,MBREG1,MBREG2の設定内容を参照し、それにしたがって消去・書込みなどを行う。CPU10は、そのレジスタCREG,MBREG1,MBREG2の内容を書換えることによって、消去・書込み動作などを制御することができる。例えば、前記PROMライタ書換えモードが設定されているとき、CPU10は、PROMライタ30によってコマンドラッチに書込まれたコマンドの内容に従って、当該レジスタCREG,MBREG1,MBREG2を設定することになる。
【0059】
図8において、制御回路FCONTには、制御信号としてFLM,MS−FLN,MS−MISN,M2RDN,M2WRN,MRDN,MWRN,IOWORDN,RST,VPPH,A9H,SECSN,SECN,DSCN,及びXMONが供給される。
【0060】
制御信号FLMは、フラッシュメモリFMRY2の動作モードを指定する信号であり、マイクロコンピュータMCU3がPROMライタ30に結合されて書換え可能にされるときには論理値”1”にされ、それいがいのときには論理値”0”にされる。この信号FLMは、例えば前記モード信号MD0乃至MD2に基づいて形成される。制御信号MS−FLNは、フラッシュメモリFMRY2の選択信号である。制御信号MS−MISNはレジスタCREG,MBREG1,MBREG2の選択信号である。レジスタCREG,MBREG1,MBREG2の何れを選択するかはCPU10が出力するアドレス信号の下位2ビットで決定される。M2RDNはメモリリードストローブ信号、M2WRNはメモリライトストローブ信号、MRDNはコントロールレジスタCREGのリード信号、MWRNはコントロールレジスタCREGのライト信号である。メモリライトストローブ信号M2WRNは、メモリセルに書込むべきデータをデータ入力ラッチDILに書込むためのストローブ信号とみなされる。メモリセルへの実際の書込みは前記コントロールレジスタCREGのPビットをセットすることによって開始される。制御信号IOWORDNはフラッシュメモリFMRY2に対する8ビットリードアクセスと16ビットリードアクセスとの切換え信号とされる。制御信号RSTはフラッシュメモリFMRY2のリセット信号である。この信号RSTによってフラッシュメモリFMRY2がリセットされることにより、或は前記コントロールレジスタCREGのVppフラグが”0”にされることにより、当該レジスタCREGにおけるEV,PV,E,Pの各モード設定ビットがクリアされる。VPPHはVpp=12Vの検出信号である。尚、その他の信号A9H、SECN、DSCN、XMONの各信号は、セキュリティービットのイネーブル信号やテストイネーブル信号であり、本発明とは直接関係無いのでその詳細な説明は省略する。
【0061】
〔6〕コマンド方式対応ハードウェア
【0062】
図11には図6のマイクロコンピュータにおいてコマンド方式によるPROMライタ書換えモードに対応するためのハードウェアの詳細な一例が示されている。
【0063】
PROMライタ30から供給されるコマンド及びアドレスはCPU10とは非同期に入力されてくるので、コマンドを受けるためのコマンドラッチCL、アドレスを受けるためのアドレスラッチALが設けられている。PROMライタ30と接続されるポートPORTは図示しないソケットアダプタを介して一義的に決定される。ポートPORTがレジスタを持っている場合には、そのレジスタを前記アドレスラッチALやコマンドラッチCLとすることができ、新たにそれらを設けなくてもよい。さらにコマンドラッチCLにコマンドが書込まれたことをCPU10が認識できるようにコマンドラッチCLの所定ビットにはコマンドフラグCFが割り当てられる。コマンドフラグCFが立った場合にCPU10はコマンドラッチCLにコマンドが入力されたことを知り、コマンドを読みに行くという動作を行う。PROMライタ30からの書込みは、先ず最初にコマンドの書込みとされ、次いで必要に応じてPROMライタ30からアドレス、データが書き込まれる。このとき、コマンド入力からデータ入力までの時間が最小で20nsと少ない為、CPU10がコマンドを読みに行くより早くデータがコマンドラッチCLに入力されてしまうことが考えられる。そこで、コマンドとデータの衝突を避けるため、コマンドラッチCL以外にもう一つデータを受けるためのデータラッチDLを設ける。更に、データラッチDLにデータが入力されたことを示すデータフラグDFをコマンドラッチの所定ビットに割り当てる。CPU10は初めにCF=1(既にコマンドが入力されている)もしくはDF=1(コマンドが入力され、さらにデータも入力されている)の場合、コマンドを読みに行き、コマンド認識後DF=1の場合にデータを読みに行くという動作を行う。
【0064】
ここでコマンドラッチCLとデータラッチDLの二つのラッチがデータ入出力用のポートPORTを共有しているため、PROMライタ30から入力されるコマンドとデータを識別することが必要になる。そこでPROMライタ30からの入力データはCF=0かつDF=0のときはコマンドラッチCLにラッチされ、CF=1かつDF=0のときデータラッチDLにラッチされるようになっている。すなわち、図11に概念的に示されているように、PROMライタ30からの書込み信号WE、コマンドフラグCF、データフラグDFの夫々の論理値に応じた信号を受けてラッチ制御信号を生成するアンドゲートANDが設けられている。更に、図12にも示されるように、コマンドラッチCLにラッチされたコマンドの種類をコマンドデコーダDECでデコードして、それが所定のコマンドであるときにコマンドフラグCFをセットし、また、データラッチDLにデータがラッチされたときにデータフラグDFをセットし且つコマンドフラグCFをクリアする論理が採用されている。これによって上記コマンドラッチCLとデータラッチDLの使い分けが実現される。本実施例に従えば、前記コマンドラッチCLは8ビットのレジスタとされ、下位側2ビットがデータフラグDF,コマンドフラグCFとされ、上位側4ビットがコマンド保持用ビットとされる。尚、図11において、AIBはアドレス入力バッファ、MPXはアドレスマルチププレクサである。
【0065】
前述したようにコマンドラッチCLにラッチされたコマンドをコマンドデコーダDECでデコードしてコマンドフラグCFのセットを行うようにした。仮にこの処理をCPU10に委ねるならば、CPU10はバスサイクルを起動して常にコマンドラッチCLの内容をモニタしなければならず、動作上無駄を生ずることになるからである。また、コマンドデコーダDECで制御されるコマンドフラグCFのセット状態に応じてコマンドラッチCLのコマンドを全てCPU10が解析していたのではそのコマンドで指示される動作がタイミング上間に合わないものがある。例えば、フラッシュメモリFMRY2からデータを読出すようなリード系コマンドである。これに対処するため、図11及び図12に示されるように、コマンドラッチCL、データラッチDL、及びアドレスラッチALがフラッシュメモリFMRY2とCPU10に接続される状態と、前記コマンドラッチCL、データラッチDL、及びアドレスラッチALがフラッシュメモリFMRY2に接続されCPU10には非接続とされる状態とを選択可能なバススイッチBSWを、内部バスABUS,DBUSに設け、そのバススイッチBSWを、コマンドデコーダDECによるリード系コマンドのデコード結果から得られる信号によって制御するようにする。斯るバススイッチBSWが開いた状態において、フラッシュメモリFMRY2はマイクロコンピュータMCU3の外部から、換言すればPROMライタ30から、直接リードアクセス可能にされる。
【0066】
〔7〕PROMライタによる情報書込みなどのコマンド仕様
【0067】
図13にはPROMライタ30から供給可能なコマンドの仕様例が示される。同図に示されるコマンドは、特に制限されないが、8種類とされ、各コマンドに対応してPROMライタ30が起動すべきサイクルの内容が図示されている。コマンドのコードは、同図に示される第1サイクルのデータに対応される。このコードは16進数で示され、該コードの最後に付されているHは16進数であることを意味している。リードコマンド(Read)はフラッシュメモリFMRY2からデータ読み出しのためのコマンドである。当該コマンドの第2サイクルにおけるRAはリードアドレスを意味する。リードIDコマンド(Read ID)は製品識別コードアドレス(IA)から製品識別コード(ID)を読出すためのコマンドである。消去コマンド(Erase)はフラッシュメモリのデータを消去するコマンドである。消去に際しては、過消去(消去を行い過ぎるとメモリのVthが負になり、正常な読み出しができなくなる現象)を避けるため、消去前に書込みレベルを均一化するためのプレライトを実施したり、ベリファイを行いながら少しずつ消去を行うという消去手順が採用されている。消去ベリファイコマンド(E Verify)は消去状態を確認するためのコマンドである。EAは消去ベリファイのためのメモリアドレスである。EVDは消去ベリファイ出力データである。自動消去モード(A Erase)は自動的に消去並びに消去ベリファイを行うためのコマンドであり、自動消去開始後、ステータスポーリングにより自動消去動作終了の確認が可能にされる。ステータスポーリングフラグSPFは図11におけるデータラッチDLの上位側ビットに割当てられている。書込みコマンド(Program)は書込みを指示するためのコマンドであり、PAは書込みアドレス、PDは書込みデータである。プログラムベリファイコマンド(P Verify)は直前に書込んだデータが正しく書込まれているかを確認するためのコマンドであり、PVDはプログラムベリファイ出力データである。リセットコマンド(Reset)はコマンドを間違えた場合にそのコマンドをリセットするためのコマンドである。
【0068】
上記コマンド仕様は、特に制限されないが、平成3年9月に発行の「日立ICメモリデータブック1」の第868頁から第881頁に記載のHN28F101シリーズのフラッシュメモリ単体LSI(1Mビットフラッシュメモリ)のコマンド仕様と互換性を有している。
【0069】
〔8〕オンボードでの情報書込み動作
【0070】
オンボード状態での情報書込みなどの指示とその手順は全てCPU10とその動作プログラムによって制御され、コントロールレジスタCREGの各ビットをソフトウェアによりセット/クリアすることにより情報書込みなどの処理を制御する。このときの書き換え用プログラムが例えばフラッシュメモリFMRY2上に置かれているときは、情報書込み動作時或はシステムリセット時に予め当該書換え用プログラムはRAMへ転送され、RAM上の該プログラムをCPU10が実行して情報書換えなどを行う。このときの書換え処理手順の一例を以下この項目で説明していく。
【0071】
フラッシュメモリに対する情報の書込みは、基本的に消去状態のメモリセルに対して行われる。マイクロコンピュータがシステムに実装された状態でフラッシュメモリの書換えを行うとき、CPU10が実行すべき書換え制御プログラムは、消去用プログラムと、書込み用プログラムを含み、その情報書込みの指示に従って、最初に消去の処理ルーチンを実行し、ひき続いて自動的に書込みの処理ルーチンを実行するように書換え制御プログラムを構成することができる。或は消去と書込みを分けて別々に動作を指示するようにしてもよい。
【0072】
図14及び図15には書込み制御手順の詳細な一例が示される。同図に示される手順の制御主体はCPU10である。
【0073】
バイト単位でのデータ書込みの最初のステップでは、CPU10はその内蔵カウンタnに1をセットする(ステップS1)。次に、CPU10は、フラッシュメモリFMRY2に書込むべきデータを図11のデータ入力ラッチDILにセットするとともに、書込みアドレスをアドレスラッチAILにセットする(ステップS2)。そしてCPU10は、コントロールレジスタCREGに対するライトサイクルを発行して、プログラムビットPをセットする(ステップ3)。これにより制御回路FCONTは、前記ステップS2でセットされたデータ及びアドレスに基づいて、そのアドレスで指定されるメモリセルのコントロールゲートとドレインとに高圧を印加して書込みを行う。このフラッシュメモリ側での書込み処理時間としてCPU10は(x)μsec待ち(ステップS4)、次いでプログラムビットPをクリアする(ステップS5)。ここで(x)μsecの時間はメモリセルの特性に合わせて決定され、例えば、10μsecのような時間とされる。
【0074】
その後、CPU10は書込み状態を確認するために、コントロールレジスタCREGに対するライトサイクルを発行して、プログラムベリファイビットPVをセットする(ステップ6)。これにより制御回路FCONTは、前記ステップS2でセットされたアドレスを利用して、そのアドレスで選択されるべきワード線にベリファイ用電圧を印加して、前記書込みを行ったメモリセルのデータを読出す。読出しのために(y)μsec待つ(ステップS7)。ここで前記ベリファイ用電圧は、充分な書込みレベルを保証するため、例えば5Vのような電源電圧Vccよりもレベルの高い7Vのような電圧レベルとされる。(y)secはそのようなベリファイ用電源の立上がり特性によって決まり、例えば2μsec以下とされる。CPU10はそれによって読出されたデータと書込みに利用したデータとの一致を確かめる(ステップS8)。CPU10は、ベリファイによって一致を確認すると、プログラムベリファイビットPVをクリアし(ステップS9)、これにより当該1バイトデータの書込みが完了される。
【0075】
一方、CPU10は、ステップS8のベリファイによって不一致を確認すると、ステップS10でプログラムベリファイビットPVをクリアした後、前記カウンタnの値が、書込みリトライ上限回数Nに到達しているかの判定を行う(ステップS11)。この結果、書込みリトライ上限回数Nに到達している場合には書込み不良として処理が終了される。書込みリトライ上限回数Nに到達していない場合には、CPU10は、カウンタnの値を1だけインクリメントして(ステップS12)、前記ステップS3から処理を繰返していく。
【0076】
図16及び図17には消去制御手順の詳細な一例が示される。同図に示される手順の制御主体はCPU10である。
【0077】
CPU10は、消去を行うに当たりその内蔵カウンタnに1をセットする(ステップS21)。次にCPU10は、消去対象領域のメモリセルに対してプレライトを行う(ステップS22)。すなわち、消去対象アドレスのメモリセルに対してデータ”0”を書込む。このプレライトの制御手順は前記図14及び図15で説明した書込み制御手順を流用することができる。このプレライトの処理は、消去前のフローティングゲート内の電荷量を全ビット均一にして、消去状態を均一化するために行われる。
【0078】
次に、CPU10は、消去ブロック指定レジスタMBREGに対するライトサイクルを発行して、一括消去対象メモリブロックを指定する(ステップS23)。すなわち、消去ブロック指定レジスタMBREG1およびMBREG2に消去対象メモリブロック番号を指定する。消去対象メモリブロックを指定した後、CPU10は、コントロールレジスタCREGに対するライトサイクルを発行して、イレーズビットEをセットする(ステップ24)。これにより制御回路FCONTは、前記ステップS23で指定されたメモリブロックのソース線に高電圧を印加させて、当該メモリブロックを一括消去する。このフラッシュメモリ側での一括消去の処理時間としてCPU10は例えば(x)msec待つ(ステップS25)。ここで(x)msecはメモリセルトランジスタの特性に合わせて決定され、例えば10msecとされる。この(x)msecという時間は、1回で消去動作を完結することができる時間に比べて短い時間とされている。そして、次いでイレーズビットEをクリアする(ステップS26)。
【0079】
その後、CPU10は消去状態を確認するために、先ず一括消去対象メモリブロックの先頭アドレスをベリファイすべきアドレスとして内部にセットし(ステップS27)、次いで、ベリファイアドレスにダミーライトを行う(ステップS28)。すなわち、ベリファイすべきアドレスに対してメモリライトサイクルを発行する。これにより、ベリファイすべきメモリアドレスがアドレスラッチAILに保持される。その後CPU10は、コントロールレジスタCREGに対するライトサイクルを発行して、イレーズベリファイビットEVをセットする(ステップ29)。これにより制御回路FCONTは、前記ステップS28でセットされたアドレスを利用して、そのアドレスで選択されるべきワード線に消去ベリファイ用電圧を印加して、前記消去されたメモリセルのデータを読出す。読出すために(y)μsec待つ(ステップS30)。ここで前記消去ベリファイ用電圧は、充分な消去レベルを保証するため、例えば5Vのような電源電圧Vccよりもレベルの低い3.5Vのような電圧レベルとされる。前記(y)μsecはそのようなベリファイ用電源の立上がり特性によって決まり、例えば2μsec以下の時間とされる。CPU10はそれによって読出されたデータが消去完結状態のデータに一致するかをベリファイする(ステップS31)。CPU10は、ベリファイによって一致を確認すると、イレーズベリファイビットEVをクリアし(ステップS32)、次いで今回のベリファイアドレスが消去したメモリブロックの最終アドレスか否かを判定し(ステップS33)、最終アドレスであれば一連の消去動作を終了する。最終アドレスに至っていないと判定されたときは、ベリファイアドレスを1だけインクリメントして(ステップS34)、再びステップS28からの処理を繰返していく。
【0080】
一方、CPU10は、ステップS31のベリファイによって不一致を確認すると、ステップS35でイレーズベリファイビットEVをクリアした後、前記カウンタnの値が、漸次消去上限回数Nに到達しているかの判定を行う(ステップS36)。この結果、漸次消去上限回数Nに到達している場合には消去不良として処理が終了される。漸次消去上限回数Nに到達していない場合には、CPU10は、カウンタnの値を1だけインクリメントして(ステップS37)、前記ステップS24から処理を繰返していく。実際には、消去し過ぎによってメモリセルのしきい値電圧が負の値になってしまうような過消去を防止するために、1回毎にベリファイを行いながら10msecというような短時間づつ徐々に消去がくり返し行われていく。
【0081】
〔9〕コマンド方式による情報書込み動作(コマンド対応)
【0082】
モード信号MD0〜MD2を介してマイクロコンピュータMCU3にPROMライタによる情報書込みモードが設定されると、フラッシュメモリFMRY2はPROMライタ30によってコマンド方式と呼ばれる方式で情報に書込みなどが行われる。ここで、コマンド方式とは、フラッシュメモリに対する情報書込みなどの指示が、PROMライタ30のような外部装置からコマンドによって与えられることをいう。コマンドに従った処理はCPU10が制御する。そのための制御プログラムは、フラッシュメモリFMRY2が有し、PROMライタ30による情報書込みモードの設定に呼応してそのプログラムがRAMに転送され、RAMに転送された制御プログラムをCPU10が実行する。この動作プログラムは、前記オンボード状態で内蔵フラッシュメモリの情報書込みを制御するためのプログラムと部分的に共通化しても、また全く別であってもよい。コマンド仕様は図13に従って前述した通りであり、以下コマンド毎にその動作を説明する。
【0083】
(1)書込みコマンド
PROMライタ30はCPU10とは非同期で、図13のコマンド仕様に従って、コマンド、データ、及びアドレスを書込む。CPU10は初めにコマンドフラグCF=1(既にコマンドが入力されている)もしくはデータフラグDF=1(コマンドが入力され、さらにデータも入力されている)の場合にコマンドを読みに行き、コマンド認識後データフラグDF=1の場合にデータやアドレスを読みに行くという動作を行う。PROMライタ30から供給されるコマンドは、コマンドフラグCF=0かつデータフラグDF=0に従ってコマンドラッチCLにラッチされる。メモリセルに書込まれるべきデータは、コマンドフラグCF=1かつデータフラグDF=0に従ってデータラッチDLにラッチされる。CPU10は、読み込んだコマンドが「書込みコマンド」であると認識すると、その動作プログラムに従ってアドレスラッチAL、データラッチDLからアドレス、データを読んで、フラッシュメモリFMRY2内部のアドレス入力ラッチAIL、データ入力ラッチDILにアドレス、データを転送する。そしてCPU10は、コントロールレジスタCREGの書込みビット(Pビット)をセットすることで実際にフラッシュメモリFMRY2のメモリセルに書込みを行う。メモリセルに対する実際の書込み処理手順は、図14で説明した内容と実質的に同じである。書込みが行われた後PビットをクリアしCF、DFを0にもどす。書込み動作時のフラグCF,DFの状態とCPU10の動作をまとめたものは図18に示される。
【0084】
(2)書込みベリファイコマンド
書込みにはその動作の終了に伴って書き込みベリファイモードが必ず実行される。書込みベリファイは直前に書き込んだデータが書き込まれているかを確認する動作である。本コマンドの場合もコマンドの解析までの動作は前記書込みコマンドと同様に行われる。CPU10はコマンドが書込みベリファイコマンドである事を認識すると、以下の手順で制御を行う。まずコントロールレジスタCREGのPVビット(プログラムベリファイビット)を”1”にセットする。この時フラッシュメモリFMRY2内のアドレスラッチAILには直前の書込みを行ったときのアドレスがラッチされているのでこのアドレスで選択されるワード線にベリファイ用の電圧(たとえば7v)が印加される。次にCPU10はフラッシュメモリFMRY2のリードを行う。この場合もアドレスとしてはラッチされているアドレスが用いられるので、結局先に書込みを行ったメモリセルに対してゲート電圧としてベリファイ用の電圧を印加した状態でリードが行われることになる。CPU10はこのリードしたデータをポートPORTのデータラッチDLに書き込み、PVビットをクリアすることによって動作を終了する。PROMライタ30はデータラッチDLの値をリードすることによってベリファイを行う。書込みベリファイ時のフラグの状態とCPU10の動作については図19にまとめて示されている。
【0085】
(3)消去コマンド
本実施例のマイクロコンピュータMCU3に従えば、内蔵フラッシュメモリFMRY2の消去は前記フラッシュメモリ単体LSIとしての1Mフラッシュメモリ(HN28F101)とコンパチブルにするため、ブロック消去はサポートせずマット一括消去のみとされる。図13のコマンド仕様から明らかなように、消去コマンドが2回書き込まれると消去が始まる。消去の場合もコマンド解析までの動作は書込みの場合と同じである。消去は消去ブロック指定レジスタMBREGを全ビット選択状態にセットした後、コントロールレジスタCREGのEビット(イレースビット)を”1”にセットすることによりスタートする。Eビットをセットすることによりメモリマットのソース線に高電圧が印加され消去が行われる。一定時間Eビットを”1”にした後クリアして消去を終了する。メモリセルに対する消去の制御手順は、図2Aで説明した制御内容と実質的に同じである。
【0086】
(4)消去ベリファイコマンド
消去後実行されるベリファイは書込みベリファイと類似した動作となる。
コマンド解析後、CPU10はポートのアドレスラッチALからベリファイを行うアドレスを読み込み、フラッシュメモリFMRY2にライトする。次にCPU10がコントロールレジスタCREGのEVビットをセットすることにより、先にラッチされたアドレスで選択されたワード線にベリファイ用の電圧(例えば3.5v)が印加される。この状態でCPU10はフラッシュメモリFMRY2をリードし、リードしたデータをポートのデータラッチDLにライトする。その後EVビットをクリアし、動作を終了する。
【0087】
(5)自動消去コマンド
自動消去コマンド認識後、図16及び図17に示した消去フローをCPU10自体が全て行うものである。自動消去ではフラッシュメモリFMRY2は消去開始と同時にステータスポーリング信号を出力、消去終了で信号を反転させる仕様となっている。ステータスポーリングの出力はI/O7なのでデータラッチDLの第7ビットをステータスポーリング信号を格納するビットとする。CPU10は消去開始と同時にデータラッチDLの第7ビットをクリアし、消去終了でセットする。
【0088】
(6)読み出しコマンド
読み出しのコマンド(リード系コマンド)が発行されるとフラッシュメモリFMRY2はPROMライタ30から自由にリードできる状態にされる必要がある。前述した方式ではCPU10でコマンドの解析を行うため、コマンドが入力されてからリード可能な状態になるまでの時間が長くなり前記1Mフラッシュメモリの仕様に合わせることができない。そこで読み出しモードの際は前記バススイッチBSWでCPU10を切り離し、外部から内蔵フラッシュメモリFMRY2を直接アクセスできるようにされる。CPU10はバス権開放を要求するBREQ(バスリクエスト)信号を外部から入力できるようになっているが、CPU10がバスを開放するまで時間がかかるため、バススイッチBSWで物理的にバスを切り離すようになっている。CPU10を介すると全てにおいて時間がかかるため、読み出し系コマンドであることがデコーダDECで認識されると、即座にバスを切り離す。この際CPU10へはコマンドが入力されたことを認識させないようにする為、読み出し系コマンドの場合はコマンドフラグCF=0のままとし、その他のコマンドの場合のみコマンドフラグCF=0からコマンドフラグCF=1へフラグが変化される。
【0089】
(7)リセットコマンド
コマンドのセットアップを間違えた場合の為にリセットコマンドが用意されている。図13のコマンド仕様からも明らかなように、このリセットコマンドを2回書き込むことでリセットが完了する仕様となっている。本実施例のマイクロコンピュータMCU3では、1回目に何等かのコマンドが入力された後またコマンドを入力するとそのコマンドはデータラッチDLに入力さてしまう為、最初に書込まれたリセットコマンドはデータFFHと認識されてしまう可能性がある。しかしフラッシュメモリは浮遊ゲートから電子が引き抜かれた消去状態を”1”とみなす為、書込みコマンドが先に入力されていたとしてもFFHは何も書き込まないことと等しいことになり全く問題ない。そして、2回目に書込まれたリセットコマンドがコマンドデコーダDECでデコードされると、そのまま読み出しモードと同様読み出し状態にされて動作を終了する。斯るリセット時のフラグの状態とCPU10の動作については図20と図21にまとめて示されている。
【0090】
〔10〕コマンド方式による情報書込み時のPROMライタ30の動作
【0091】
図22及び図23には情報書込みに際してのPROMライタ30の動作フローチャートが示される。先ず端子Vppに12Vのような書込みに必要な高電圧を出力し(ステップS40)、内蔵アドレスカウンタを0に初期化する(ステップS41)と共に、カウンタnを0に設定する(ステップS42)。次いでカウンタnを1インクリメントし(ステップS43)、その後にプログラムコマンドの書込みサイクルを起動して書込みコマンド(40H)をコマンドラッチに書込む(ステップS44)。その次に、書込みデータ(PD)及び書込みアドレス(PA)をデータラッチDL及びアドレスラッチALに書込む(ステップS45)。その後例えば25μsec待つ(ステップS46)。この間にマイクロコンピュータのCPU10はコマンドを解釈してフラッシュメモリFMRY2にデータを書込む。そして今度は、書込みベリファイコマンドの書込みサイクルを起動し(ステップS47)、例えば6μsec待つ(ステップS48)。この間にマイクロコンピュータMCU3のCPU10はそのコマンドを解釈して書込みアドレスのデータをデータラッチDLに読出す。PROMライタ30はその読出しデータを取り込んで、正常に書込みできたかを判定する(ステップS49)。正常と判定したときは、最終書込みアドレスかの判定を行い(ステップS50)、最後でなければ書込みアドレスをインクリメントし(ステップS51)、その後ステップS42に戻り、最終アドレスまで書込みを行った後は端子Vppに5Vのような電圧Vccを印可して(ステップS52)、書込みを終了する。ステップS49において書込み異常が判定されたときは、カウンタnの値が最大限20に到達するまで再度ステップS43に戻って書込みをくり返し、20回繰り返しても依然書込み異常が解消されない場合にはそのアドレスが不良ビットであることを以って処理を終了する。
【0092】
図24及び図25には消去に際してのPROMライタ30の動作フローチャートが示される。先ずフラッシュメモリの消去対象全ビットに論理値0のデータを書込む。書込みの処理は図22及び図23に従う。次に消去領域の先頭アドレスをアドレスカウンタにセットし(ステップS61)、カウンタnを0に設定する(ステップS62)。次いでカウンタnを1インクリメントし(ステップS63)、その後に、消去コマンドの書込みサイクルを起動して消去コマンド(20H)をコマンドラッチに書込む(ステップS64)。その後例えば10msec待つ(ステップS65)。この間にマイクロコンピュータMCU3のCPU10はコマンドを解釈してフラッシュメモリFMRY2の消去を行う。そして今度は、消去ベリファイコマンドの書込みサイクルを起動し(ステップS66)、例えば6μsec待つ(ステップS67)。この間にマイクロコンピュータMCU3のCPU10はそのコマンドを解釈して消去ベリファイアドレス(EA)のデータを読出してデータラッチDLに転送する。PROMライタ30はその読出しデータを取り込んで、正常に消去できたかを判定する(ステップS68)。正常と判定したときは、最終消去アドレスかの判定を行い(ステップS69)、最後でなければ消去ベリファイアドレスをインクリメントし(ステップS70)し、その後でステップS66に戻り、最終アドレスまで消去ベリファイを行って処理を終了する。ステップS68において消去異常が判定されたときは、カウンタnの値が最大限3000に到達するまで再度ステップS63に戻って消去を繰返し、3000回繰り返しても依然消去異常が解消されない場合にはそのアドレスが不良ビットであることを以って処理を終了する。
【0093】
〔11〕コマンド方式による情報書き込み時のCPUの動作
【0094】
図26にはCPU10による前記各種コマンドに対する処理のメインフローチャートが示される。CPU10は前記コマンドフラグCF及びデータフラグDFをサンプリングしており、それのセット状態を検出すると、コマンドラッチCLの上位4ビットを読み込んでコマンドを解析する。それがA0Hであるときは消去ベリファイ(Erase Verify)、C0Hであるときは書込みベリファイ(Program Verify)、40Hのときは書込み(Program)、20Hのときは消去(Erase)、30Hのときは自動消去書(Auto Erase)、の各処理に処理ルーチンを分岐する。尚、図13で説明したその他のコマンドについては説明を省略する。
【0095】
消去(Erase)の処理ルーチンでは、図27に示されるようにフラッシュメモリの消去に必要なシーケンスを制御した後、コマンドフラグCFをクリアして処理を終了する。図27に示される消去ベリファイ(Erase Verify)の処理ルーチンでは、アドレスラッチALから消去ベリファイアドレスを取込んでコントロールレジスタCREGに消去ベリファイモードを設定して、そのアドレスのデータをリードしてデータラッチDLに転送する。自動消去(Auto Erase)の処理ルーチンでは、図28に示されるように、内蔵フラッシュメモリFMRY2の全アドレスに対するプレライト実施の制御を行った後、消去の制御を行い、次いで消去ベリファイを実行させる。消去及び消去ベリファイの制御は全アドレスの消去完了まで行われ、また、消去状態の判定で消去異常が度重なって消去時間の上限を越えた場合には不良ビットの存在を以って処理が終了される。書込み(Program)の処理ルーチンでは、図29に示されるように、データフラグDFのセット状態を判定すると、アドレスラッチALから書込みアドレスを取り込み、且つ、データラッチDLから書込みデータを取り込んで、フラッシュメモリFMRY2に書込みを行い、その後データフラグDFをクリアして処理を終了する。書込みベリファイ(Program Verify)の処理ルーチンでは、図29に示されるように、コントロールレジスタCREGに書込みベリファイモードを設定し、直前の書込みアドレスからデータを読出し、これをデータラッチDLに転送し、更にコマンドフラグCFをクリアして処理を終了する。
【0096】
〔12〕PROMライタにとっての単体フラッシュメモリLSIとの互換性
【0097】
PROMライタ30を利用してコマンド方式で内蔵フラッシュメモリFMRY2に情報書込みを行うときの仕様と、前記単体フラッシュメモリLSI(HN28F101)をPROMライタ30をつかって情報書込みするときの仕様との、コンパチビリティーについて本発明者は確認した。これによれば、PROMライタ30による情報書込みを前記1Mフラッシュメモリ単体LSI(HN28F1013)と同じ仕様にするには、各種タイミングをその1Mフラッシュメモリと合わせることが必要である。そこで実際に制御プログラムを作成し、タイミングを合わせることができるか検討した。この検討結果は図30に示される。この結果から例えば動作周波数16MHz時においてはコンパチブルであることを確認できた。
【0098】
上記実施例によれば以下の作用効果がある。
【0099】
(1)PROMライタ30から非同期で与えられるコマンドに応じた書換えシーケンスをマイクロコンピュータの内蔵回路で実現するから、PROMライタ30にとってデータ情報とアドレス情報を与える前に、データ情報を与えるのと同様にしてコマンドをコマンドラッチに書込めばよく、汎用的に利用されるPROMライタ30にソケットアダプタを介して結合することによって、マイクロコンピュータ内蔵のフラッシュメモリに対する情報書込みを行うことができる。
【0100】
(2)コマンドによって指示される書換えのためのシーケンスを内蔵CPU10に制御させることにより、その制御のための専用回路を不要若しくは削減でき、マイクロコンピュータのチップ面積低減を実現する。更に、書換えのための制御シーケンスは、CPU10が実行すべきソフトウェアで変更可能であるから、フラッシュメモリを構成する記憶素子の特性に合わせて書き込み時間などの条件設定を簡単に行うことができる。
【0101】
(3)汎用的に利用されるPROMライタ30は、少なくとも、不揮発性記憶素子に対する書換え用高電圧を印加し、書換えのためのアドレスやデータを書込み信号などに従ってフラッシュメモリを含む対象半導体装置(LSI)に供給するようになっている。このようなPROMライタ30は、コマンド、データ、及びアドレスを、マイクロコンピュータ内蔵CPU10とは非同期で供給してくる。このとき、前記コマンドラッチCLにコマンドが書き込まれたことを示すコマンドフラグCFと、このコマンドフラッグCFがコマンドラッチ状態を示すときに、前記コマンドラッチCLに代えて外部から書込み可能にされるデータラッチDLとを備えることにより、PROMライタ30から相互に別サイクルで書き込まれるコマンドとデータ情報とのラッチ手段上での衝突を防止することができる。
【0102】
(4)CPU10は、コマンドフラグCFのコマンドラッチ状態に基づいてコマンドラッチCLのコマンドをリードするが、このとき、コマンドラッチCLのラッチ内容をデコードしてコマンドフラグCFをコマンドラッチ状態にセットするコマンドデコーダDECを設けることにより、コマンドフラグに対するセット処理の迅速化を図ることができる。仮に、コマンドフラグに対する制御もCPU11に委ねるならば、CPU11はバスサイクルを起動して常にコマンドラッチCLの内容をモニタしなければならず、動作上無駄を生じ、フラグ処理も遅くなってしまう。
【0103】
(5)コマンドデコーダDECによるリード系コマンドのデコード結果に従ってCPU11をフラッシュメモリから切り離すバススイッチBSWを設けることにより、コマンドラッチにラッチした全てのコマンドをCPU10が解析していたのではそのコマンドで指示される動作のタイミングが間に合わないリード系コマンドに対して容易に対処できる。このことは、マイクロコンピュータ内蔵フラッシュメモリに対して、PROMライタ30にとっての単体フラッシュメモリLSIに対する書込み処理との互換性を実現可能にする。
【0104】
(6)前記CPU10が実行すべきフラッシュメモリ書換えのための手順制御用プログラムを、フラッシュメモリに格納しておき、PROMライタ30による書換え動作モードの設定に呼応してそのプログラムをRAMに転送し、そのRAMに転送された前記プログラムをCPU10に実行させるようにすることにより、書換え用プログラムの修正が簡単に行える。
【0105】
(7)用途に応じてフラッシュメモリに格納すべき情報量がその情報の種類例えばプログラム、データテーブル、制御データなどに応じて相違されることを考慮した場合、前記フラッシュメモリにおける一括消去可能な単位として、相互に記憶容量の相違される複数個のメモリブロックを設けておくことにより、システム実装後内蔵フラッシュメモリの保持情報の部分的若しくは一部の書換えに伴って、メモリブロックを一括消去した後の書込み動作の無駄をなくして、書換え効率を向上させることができる。
【0106】
以上本発明者によってなされた発明を実施例に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【0107】
例えば、マイクロコンピュータに内蔵される周辺回路は上記実施例に限定されず適宜変更することができる。フラッシュメモリのメモリセルトランジスタは上記実施例のスタックドゲート構造のMOSトランジスタに限定されず、書込み動作にもトンネル現象を用いたFLOTOX型のメモリセルトランジスタを用いることも可能である。また、一括消去の単位はソース線を共通にするメモリブロックのほか、消去においてワード線を共通化できるメモリブロックとすることもできるが、その何れを選択するかは、消去電圧の極性をどうするか、或は、一括消去単位の記憶容量を極力小さくしようとする場合に単一のワード線に接続するメモリセルの数と単一のデータ線に接続されるメモリセルの数との何れの方が少ないかなどの事情を考慮して決定することができる。メモリブロックのサイズについては上記実施例のようなサイズ固定に限定されない。例えば、コントロールレジスタの設定又はモード信号の指示にしたがってそのサイズを可変にすることができる。例えば、ワード線を最小単位として一括消去電圧を印加する場合には、ワード線を消去電圧で駆動するドライバの動作をそのコントロールレジスタの設定又はモード信号の指示にしたがって選択させればよい。更にメモリブロックの分割態様としては、全体を複数個の大ブロックに分割し、更にその各大ブロックの中を複数個の小ブロックに分けて、大ブロック単位又は小ブロック単位で一括消去できるようにすることも可能である。また、CPUの制御に基づいてフラッシュメモリを書換える方式においては、書換え条件などをセルフチューニングするソフトウェアを採用することも可能である。また、フラッシュメモリのメモリセルトランジスタにおいて、そのソース及びドレインは、印加される電圧によって定まる相対的なものとして把握されるものもある。
【0108】
本発明は、少なくとも単一の半導体チップ上に中央処理装置と電気的に書換え可能な不揮発性のフラッシュメモリとを備えた条件のデータ処理装置に広く適用することができる。
【0109】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【0110】
外部装置から非同期で与えられるコマンドに応じた書換えシーケンスを内蔵回路で実現することにより、外部装置にとってデータ情報とアドレス情報を与える前に、データ情報を与えるのと同様にしてコマンドをデータ処理装置に与えればよく、汎用的に利用されるPROMライタのような外部装置にソケットアダプタを介して結合することによって、データ処理装置内蔵のフラッシュメモリに対する情報書込みを容易に行うことができるという効果がある。
【0111】
コマンドによって指示される書換えのためのシーケンスを内蔵中央処理装置が制御することにより、その制御のための専用回路を不要若しくは削減し、データ処理装置のチップ面積低減を実現する。更に、書換えのための制御シーケンスを中央処理装置が実行するソフトウェアで変更可能であり、これにより、フラッシュメモリを構成する記憶素子の特性に合わせて書き込み時間などの条件設定を容易に行えるという効果がある。
【0112】
コマンドラッチ手段にコマンドが書き込まれたことを示すフラグ手段と、このフラグ手段が前記コマンドラッチ状態を示すときに、前記コマンドラッチ手段に代えて外部から書込み可能にされるデータラッチ手段とを備えることにより、PROMライタのような外部装置から相互に別サイクルで書き込まれるコマンドとデータ情報とのラッチ手段上での衝突を防止することができる。
【0113】
前記コマンドラッチ手段のラッチ内容をデコードし、前記所定のコマンドをデコードすることによって前記フラグ手段をコマンドラッチ状態にセットするコマンドデコーダを採用することにより、フラグ手段に対する処理の迅速化を図ることができる。
【0114】
コマンドデコーダによるリード系コマンドのデコード結果に従って中央処理装置をフラッシュメモリから切り離すゲート手段を設けることにより、コマンドラッチ手段にラッチした全てのコマンドを中央処理装置が解析していたのではそのコマンドで指示される動作のタイミングが間に合わないようなリード系コマンドに対して容易に対処できる。このことは、データ処理装置内蔵フラッシュメモリに対して、PROMライタのような外部装置にとっての単体フラッシュメモリLSIに対する書込み処理との互換性を実現可能にする。
【0115】
用途に応じてフラッシュメモリに格納すべき情報量がその情報の種類例えばプログラム、データテーブル、制御データなどに応じて相違されることを考慮した場合、前記フラッシュメモリにおける一括消去可能な単位として、相互に記憶容量の相違される複数個のメモリブロックを設けることにより、システム実装後内蔵フラッシュメモリの保持情報の部分的若しくは一部の書換えに伴って、メモリブロックを一括消去した後の書込み動作の無駄をなくして、書換え効率を向上させることができる。
【図面の簡単な説明】
【図1】フラッシュメモリを内蔵した第1の実施例に係るマイクロコンピュータにおいてその内蔵フラッシュメモリをPROMライタで書換え処理するときの機能ブロック図である。
【図2】フラッシュメモリを内蔵した第2の実施例に係るマイクロコンピュータにおいてその内蔵フラッシュメモリをPROMライタで書換え処理するときの機能ブロック図である。
【図3】PROMライタによるコマンド書込みの一例タイミングチャートである。
【図4】CPU制御によるフラッシュメモリの情報書込みサイクルの一例タイミングチャートである。
【図5】図1の第1の実施例と図2の第2の実施例との効果の相違を示す説明図である。
【図6】図2のマイクロコンピュータに対応される更に詳細なマイクロコンピュータの実施例ブロック図である。
【図7】図6のマイクロコンピュータをパッケージん具下状態で示す平面図である。
【図8】図6のマイクロコンピュータに内蔵されるフラッシュメモリの全体的なブロック図である。
【図9】メモリブロックの分割態様の一例を示す説明図である。
【図10】コントロールレジスタと消去ブロック指定レジスタの一例説明図である。
【図11】図6のマイクロコンピュータにおいてコマンド方式によるPROMライタ書換えモードに対応するためのハードウェアの詳細を示すブロック図である。
【図12】コマンドフラグ及びデータフラグ並びにバススイッチの制御形式を示す説明図である。
【図13】PROMライタから供給可能なコマンドの一例仕様説明図である。
【図14】オンボード状態での書込み制御手順の前半を示す詳細な一例フローチャートである。
【図15】オンボード状態での書込み制御手順の後半を示す詳細な一例フローチャートである。
【図16】オンボード状態での消去制御手順の前半を示す詳細な一例フローチャートである。
【図17】オンボード状態での消去制御手順の後半を示す詳細な一例フローチャートである。
【図18】PROMライタによる書込み動作時のフラグCF,DFの状態とCPUの動作をまとめた説明図である。
【図19】PROMライタによる書込みベリファイ時のフラグの状態とCPUの動作についてまとめた説明図である。
【図20】PROMライタによるリセット時のフラグの状態とCPUの動作についてまとめた第1の説明図である。
【図21】PROMライタによるリセット時のフラグの状態とCPUの動作についてまとめた第2の説明図である。
【図22】コマンド方式による情報書込みに際してのPROMライタの動作の前半を示す一例フローチャートである。
【図23】コマンド方式による情報書込みに際してのPROMライタの動作の後半を示す一例フローチャートである。
【図24】コマンド方式による消去に際してのPROMライタの動作の前半を示す一例フローチャートが示される。
【図25】コマンド方式による消去に際してのPROMライタの動作の後半を示す一例フローチャートが示される。
【図26】PROMライタから与えられるコマンドに対するCPUの処理のメインフローチャートである。
【図27】図26に示される消去(Erase)の処理ルーチンと消去ベリファイ(Erase Verify)の処理ルーチンを示すフローチャートである。
【図28】図26に示される自動消去書(Auto Erase)の処理ルーチンを示すフローチャートである。
【図29】図26に示される書込み(Program)の処理ルーチンと書込みベリファイ(Program Verify)の処理ルーチンを示すフローチャートである。
【図30】PROMライタによる書込み仕様の検討結果を示す説明図である。
【図31】フラッシュメモリの原理説明図である。
【図32】フラッシュメモリのメモリセルアレイにたいする構成原理説明図である。
【図33】フラッシュメモリに対する消去動作並びに書込み動作のための電圧条件の一例説明図である。
【図34】一括消去可能なメモリブロックの記憶容量を相違させたフラッシュメモリの一例回路ブロック図である。
【符号の説明】
MCU1 マイクロコンピュータ
MCU2 マイクロコンピュータ
MCU3 マイクロコンピュータ
10 CPU
FMRY2 フラッシュメモリ
21 コマンドラッチ手段
22 コマンド解析手段
23 シーケンス制御手段
30 PROMライタ
CREG コントロールレジスタ
MBREG 消去ブロック指定レジスタ
SMB0〜SMB7 小メモリブロック
LMB0〜LMB6 大メモリブロック
CL コマンドレジスタ
CF コマンドフラグ
DF データフラグ
DL データレジスタ
AL アドレスレジスタ
DEC コマンドデコーダ
BSW バススイッチ
Q1〜Q4 メモリセルトランジスタ
SL1,SL2 ソース線
DL1,DL2 データ線
WL1,WL2 ワード線

Claims (4)

  1. 中央処理装置と電気的に書換え可能なフラッシュメモリとが一つの半導体基板上に形成され、外部装置から入力されるコマンドに従って動作する第1動作モードを有するマイクロコンピュータにおいて、
    外部端子と、前記中央処理装置、前記フラッシュメモリ及び前記外部端子に接続されるバスと、前記外部装置から入力されるコマンドが書き込まれるコマンドラッチ手段と、前記コマンドラッチ手段にラッチされたコマンドを解析するコマンド解析手段と、解析された内容に応じて前記フラッシュメモリの書換えのための手順制御を行う制御手段と、前記コマンドラッチ手段にコマンドが書き込まれたことを示すフラグ手段と、を具備し、
    前記第1動作モードにおいて、前記外部装置から前記フラッシュメモリに記憶される情報を読み出すための読出しコマンドが前記マイクロコンピュータに入力された場合に、前記中央処理装置を前記バスから切り離し、前記外部装置から入力されるコマンドが前記フラッシュメモリに情報を書き込むことを示すものである場合に、前記フラグ手段にコマンドが書き込まれたことを示す情報を書き込み、前記外部装置から入力されたコマンドが前記読出しコマンドの場合には、前記フラグ手段にコマンドが書き込まれたことを示す情報を書き込まないことを特徴とするマイクロコンピュータ。
  2. 請求項において、
    前記コマンド解析手段及び制御手段は、前記中央処理装置であることを特徴とするマイクロコンピュータ。
  3. 請求項2において、
    前記外部装置から入力されたコマンドを解読するコマンドデコーダを有し、前記コマンドデコーダは前記コマンドの解読結果に従って、前記バスの切り離し、前記フラグ手段にコマンドが書き込まれたことを示す情報の書き込みを行うことを特徴とするマイクロコンピュータ。
  4. 請求項3において、
    前記中央処理装置は前記フラグ手段にコマンドが書き込まれたことを示す情報の書き込みに応答して前記コマンドラッチ手段にラッチされたコマンドを読み込むことを特徴とするマイクロコンピュータ。
JP2003023225A 2003-01-31 2003-01-31 マイクロコンピュータ Expired - Lifetime JP3810745B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003023225A JP3810745B2 (ja) 2003-01-31 2003-01-31 マイクロコンピュータ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003023225A JP3810745B2 (ja) 2003-01-31 2003-01-31 マイクロコンピュータ

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP23431092A Division JP3765585B2 (ja) 1992-03-17 1992-08-10 データ処理装置

Publications (2)

Publication Number Publication Date
JP2003203064A JP2003203064A (ja) 2003-07-18
JP3810745B2 true JP3810745B2 (ja) 2006-08-16

Family

ID=27656155

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003023225A Expired - Lifetime JP3810745B2 (ja) 2003-01-31 2003-01-31 マイクロコンピュータ

Country Status (1)

Country Link
JP (1) JP3810745B2 (ja)

Also Published As

Publication number Publication date
JP2003203064A (ja) 2003-07-18

Similar Documents

Publication Publication Date Title
US5687345A (en) Microcomputer having CPU and built-in flash memory that is rewritable under control of the CPU analyzing a command supplied from an external device
KR100472741B1 (ko) 판독 및 기입을 동시에 행할수 있는 비휘발성 메모리용 뱅크 아키 텍춰
US6567315B2 (en) Nonvolatile memory and method of programming the same memory
US6963501B2 (en) Nonvolatile memory
US9324434B2 (en) Determining memory page status
US7916557B2 (en) NAND interface
US10359944B2 (en) Memory devices having distributed controller systems
JPH0729386A (ja) フラッシュメモリ及びマイクロコンピュータ
US20050128838A1 (en) Non volatile memory and data processor
JPH05266219A (ja) マイクロコンピュータ
US7057937B1 (en) Data processing apparatus having a flash memory built-in which is rewritable by use of external device
EP0617377A2 (en) Microcomputer with flash memory
JP3765585B2 (ja) データ処理装置
JP3810745B2 (ja) マイクロコンピュータ
JPH113594A (ja) 不揮発性メモリおよびデータ書込み、読出し方法
JP3830258B2 (ja) 半導体記憶装置及びデータ処理装置
JP3489845B2 (ja) フラッシュメモリ、及びデータプロセッサ
JP4127562B2 (ja) マイクロコンピュータ
JP4018402B2 (ja) 半導体システムの製造方法
JP2004246923A (ja) マイクロコンピュータ
JPH11185485A (ja) 半導体記憶装置及びデータ処理装置
JP2003076672A (ja) マイクロコンピュータ
JPH11186527A (ja) ラッチ制御回路、半導体記憶装置、及びデータ処理装置
JPH11288410A (ja) マイクロコンピュータ
JP2008004258A (ja) 半導体システムの製造方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060221

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060424

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: 20060523

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060524

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: 20100602

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110602

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110602

Year of fee payment: 5

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110602

Year of fee payment: 5

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: 20120602

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120602

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130602

Year of fee payment: 7

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130602

Year of fee payment: 7