(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-27
(45)【発行日】2024-04-04
(54)【発明の名称】半導体装置
(51)【国際特許分類】
G11C 16/10 20060101AFI20240328BHJP
G11C 16/24 20060101ALI20240328BHJP
【FI】
G11C16/10 160
G11C16/24 130
(21)【出願番号】P 2020086359
(22)【出願日】2020-05-15
【審査請求日】2022-09-05
(73)【特許権者】
【識別番号】302062931
【氏名又は名称】ルネサスエレクトロニクス株式会社
(74)【代理人】
【識別番号】110000350
【氏名又は名称】ポレール弁理士法人
(72)【発明者】
【氏名】森保 孝憲
(72)【発明者】
【氏名】吉原 和雄
(72)【発明者】
【氏名】西山 崇之
【審査官】小林 紀和
(56)【参考文献】
【文献】特開2019-204565(JP,A)
【文献】特開2013-109823(JP,A)
【文献】特開2018-045741(JP,A)
【文献】米国特許第10140062(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G11C 16/10
G11C 16/24
(57)【特許請求の範囲】
【請求項1】
複数の第1メモリセルと複数の第2メモリセルとを含む不揮発性メモリセルと、
ビットラッチと、
退避レジスタと、を含み、
第1書込み動作において、前記ビットラッチと前記退避レジスタとに、第1書込みデータを格納し、前記ビットラッチに格納された前記第1書込みデータに基づいて、前記複数の第1メモリセルへの書込みを実施し、
前記第1書込み動作中において、サスペンドコマンドに基づいて、前記第1書込み動作を中断して、第2書込み動作を実施し、
前記第2書込み動作において、前記ビットラッチに第2書込みデータを格納して、前記第2書込みデータに基づいて、前記複数の第2メモリセルの書込みを実施し、
前記第2書込み動作の終了後、レジュームコマンドに基づいて、前記退避レジスタの前記第1書込みデータを前記ビットラッチに再設定し、前記ビットラッチに再設定された前記第1書込みデータに基づいて、中断された前記第1書込み動作を再開する、
半導体装置。
【請求項2】
請求項1の半導体装置において、
前記ビットラッチに再設定した前記第1書込みデータを
サスペンド時のデータに復帰させるため、前記複数の第1メモリセルに対して書込みベリファイを実施する、半導体装置。
【請求項3】
請求項1の半導体装置において、
前記ビットラッチと前記不揮発性メモリセルとを含むフラッシュメモリと、
前記フラッシュメモリに対する書込み動作、読み出し動作、および、消去動作に関する処理を行うメモリコントローラと、を含み、
前記退避レジスタは、前記メモリコントローラに設けられる、半導体装置。
【請求項4】
請求項3の半導体装置において、
CPUを含み、
前記CPUは、前記サスペンドコマンドおよび前記レジュームコマンドを発生する、半導体装置。
【請求項5】
複数の第1メモリセルと複数の第2メモリセルとを含む不揮発性メモリセルと、
第1ビットラッチと、
第2ビットラッチと、を含み、
第1書込み動作において、前記第1ビットラッチに、第1書込みデータを格納し、前記第1ビットラッチに格納された前記第1書込みデータに基づいて、前記複数の第1メモリセルへの書込みを実施し、
前記第1書込み動作中において、サスペンドコマンドに基づいて、前記第1書込み動作を中断して、第2書込み動作を実施し、
前記第2書込み動作において、前記第2ビットラッチに第2書込みデータを格納して、
前記第2書込みデータに基づいて、前記複数の第2メモリセルの書込みを実施し、
前記第2書込み動作の終了後、レジュームコマンドに基づいて、前記第1ビットラッチのラッチデータに基づいて、中断された前記第1書込み動作を再開する、半導体装置。
【請求項6】
請求項5の半導体装置において、
前記第1ビットラッチ、前記第2ビットラッチ、および、前記不揮発性メモリセルを含むフラッシュメモリと、
前記フラッシュメモリに対する書込み動作、読み出し動作、および、消去動作に関する処理を行うメモリコントローラと、を含む、半導体装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、半導体装置に関し、特に、不揮発性メモリと中央処理装置とを含む半導体装置に適用して有効な技術である。
【背景技術】
【0002】
複数のマスタ(たとえば、複数の中央処理装置(CPU))を備える半導体装置では、各々のマスタが1つの不揮発性メモリであるフラッシュメモリを共有するように構成されている場合がある。このような構成の半導体装置では、例えばメモリコントローラが各々のマスタのフラッシュメモリへのアクセスを制御している。
【0003】
特開2008-34045号公報には、フラッシュメモリへの書込み/消去処理を中断/再開する技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
複数の中央処理装置(CPU)を備える半導体装置において、フラッシュメモリへの書込み/消去動作が競合した場合、優先度が高い処理であっても、先に実行された処理が完了するまで待つ必要がある。
【0006】
今後、1つの半導体装置に設けられる中央処理装置(CPU)の数が増えると、つまり、マルチCPUコア化が進展していくと、コスト抑制のために、面積インパクトの大きいフラッシュメモリの分割は最小限にする必要がある。結果として、フラッシュメモリの分割数(バンク数)が減り、CPUコア数 > フラシュメモリのバンク数といった状態となると考えられる。したがって、同一フラッシュメモリ(1つのバンク)に対する書込み動作または消去動作の競合が顕著になると予想される。
【0007】
本開示の目的は、1つのフラッシュメモリに対して書込み動作のサスペンド中または消去動作のサスペンド中の書込み動作または消去動作を可能にする技術を提供することにある。
【0008】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【0009】
本開示のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【0010】
一実施の形態に係る半導体装置は、
複数の第1メモリセルと複数の第2メモリセルとを含む不揮発性メモリセルと、
ビットラッチと、
退避レジスタと、を含み、
第1書込み動作において、前記ビットラッチと前記退避レジスタとに、第1書込みデータを格納し、前記ビットラッチに格納された前記第1書込みデータに基づいて、前記複数の第1メモリセルへの書込みを実施し、
前記第1書込み動作中において、サスペンドコマンドに基づいて、前記第1書込み動作を中断して、第2書込み動作を実施し、
前記第2書込み動作において、前記ビットラッチに第2書込みデータを格納して、前記第2書込みデータに基づいて、前記複数の第2メモリセルの書込みを実施し、
前記第2書込み動作の終了後、レジュームコマンドに基づいて、前記退避レジスタの前記第1書込みデータを前記ビットラッチに再設定し、前記ビットラッチに再設定された前記第1書込みデータに基づいて、中断された前記第1書込み動作を再開する。
【0011】
また、一実施の形態に係る半導体装置は、
複数の第1メモリセルと複数の第2メモリセルとを含む不揮発性メモリセルと、
ビットラッチと、
退避レジスタと、を含み、
第1書込み動作において、前記ビットラッチに、第1書込みデータを格納し、前記ビットラッチに格納された前記第1書込みデータに基づいて、前記複数の第1メモリセルへの書込みを実施し、
前記第1書込み動作中において、サスペンドコマンドに基づいて、前記第1書込み動作を中断し、前記ビットラッチのデータを前記退避レジスタへ退避し、第2書込み動作を実施し、
前記第2書込み動作において、前記ビットラッチに第2書込みデータを格納して、前記第2書込みデータに基づいて、前記複数の第2メモリセルの書込みを実施し、
前記第2書込み動作の終了後、レジュームコマンドに基づいて、前記退避レジスタに退避されたデータを前記ビットラッチに再設定し、前記ビットラッチに再設定されたデータに基づいて、中断された前記第1書込み動作を再開する。
【0012】
さらに、一実施の形態に係る半導体装置は、
複数の第1メモリセルと複数の第2メモリセルとを含む不揮発性メモリセルと、
ビットラッチと、
退避レジスタと、を含み、
第1書込み動作において、前記ビットラッチに、第1書込みデータを格納し、前記ビットラッチに格納された前記第1書込みデータに基づいて、前記複数の第1メモリセルへの書込みを実施し、
前記第1書込み動作中において、サスペンドコマンドに基づいて、前記第1書込み動作を中断し、前記ビットラッチのデータを前記退避レジスタへ退避し、第2書込み動作を実施し、
前記第2書込み動作において、前記ビットラッチに第2書込みデータを格納して、前記第2書込みデータに基づいて、前記複数の第2メモリセルの書込みを実施し、
前記第2書込み動作の終了後、レジュームコマンドに基づいて、前記退避レジスタに退避されたデータを前記ビットラッチに再設定し、前記ビットラッチに再設定されたデータに基づいて、中断された前記第1書込み動作を再開する。
【図面の簡単な説明】
【0013】
【
図1】
図1は、実施の形態に係る半導体装置の概略的な構成例を示すブロック図である。
【
図2】
図2は、フラッシュメモリのメモリセルの構成例を示す断面図である。
【
図3】
図3は、フラッシュメモリおよびメモリコントローラの概略的な構成例を示すブロック図である。
【
図4】
図4は、メモリセルへ与える電圧値の一例を示す図である。
【
図5】
図5は、書込み動作の動作フローを示す図である。
【
図6】
図6は、消去動作の動作フローを示す図である。
【
図7】
図7は、サスペンドコマンド発生時の割り込み処理フローを示す図である。
【
図8】
図8は、レジュームコマンド発行時の処理フローを示す図である。
【
図9】
図9は、書込みサスペンド中の書込みにおけるラッチデータの遷移を説明する図である。
【
図10】
図10は、書込みサスペンド中の消去におけるラッチデータの遷移を説明する図である。
【
図11】
図11は、実施例1に係るメモリコントローラの回路構成の一例を示す図である。
【
図12】
図12は、実施例1に係るレジュームコマンド発行時の処理フローを示す図である。
【
図13】
図13は、実施例1に係るラッチデータの遷移を説明する図である。
【
図14】
図14は、実施例2に係るフラッシュメモリFLMの回路構成の一例を示す。
【
図15】
図15は、実施例2におけるラッチデータの遷移を説明する図である。
【
図16】
図16は、実施例3に係るメモリコントローラFLMCとフラッシュメモリFLMの回路構成の一例を示す図である。
【
図17】
図17は、実施例3に係るレジュームコマンド発行時の処理フローを示す図である。
【
図18】
図18は、実施例3に係るラッチデータの遷移を説明する図である。
【発明を実施するための形態】
【0014】
以下、実施の形態および実施例について、図面を用いて説明する。ただし、以下の説明において、同一構成要素には同一符号を付し繰り返しの説明を省略することがある。なお、図面は説明をより明確にするため、実際の態様に比べ、模式的に表される場合があるが、あくまで一例であって、本発明の解釈を限定するものではない。
【0015】
(実施の形態)
(半導体装置の全体構成)
図1は、半導体装置の概略的な構成例を示すブロック図である。半導体装置ICは、中央処理装置CPU(以下、CPUと言う)、揮発性メモリであるRAM(Random Access Memory)、メモリコントローラFLMC、不揮発性メモリであるフラッシュメモリFLM、周辺バスBUS等を備えている。
図1に示すように、CPU及びメモリコントローラFLMCは、周辺バスBUSと接続され、周辺バスBUSを介して各種情報の入出力が行われる。
【0016】
CPUは、半導体装置ICの各構成要素の制御に関連する演算処理等を行う機能ブロックである。CPUは、フラッシュメモリFLMに格納されたプログラムを読み出し、読み出したプログラムをRAMに展開する。CPUは、RAMに展開されたプログラムを実行することにより、各機能を実現する機能ブロックを実現する。CPUの内部にはキャッシュメモリCACHEが設けられ、演算処理において使用頻度の高い情報はキャッシュメモリCACHEに格納される。
【0017】
RAMは、先述の通り、フラッシュメモリFLMから読み出したプログラムの展開や、CPUによる演算処理データを一時的に格納する。
【0018】
メモリコントローラFLMCは、フラッシュメモリFLMの制御を行う機能ブロックである。メモリコントローラFLMCは、フラッシュメモリFLMに対する書き込み動作、読み出し動作、消去動作等に関する処理を行う。
【0019】
(メモリセルの構成例)
図2は、フラッシュメモリ
FLMのメモリセルMCの構成例を示す断面図である。
図3は、フラッシュメモリ
FLMおよびメモリコントローラFLMCの概略的な構成例を示すブロック図である。
図4は、メモリセルへ与える電圧値の一例を示す図である。
【0020】
図2には、1つの不揮発性メモリセル(以下、メモリセルと言う)MCのみが便宜上示されているが、実際には、複数のメモリセルMCがアレイ状に配置される。複数のメモリセルMCは、
図2に示すY方向に延在するビット線BL及びX方向に延在するコントロールゲートCGに沿って格子状に配置される。具体的に述べると、フラッシュメモリFLMには、Y方向に延在するビット線BLが複数設けられており、複数のビット線BLは、X方向に配列されている。また、フラッシュメモリFLMには、X方向に延在するコントロールゲートCGが複数設けられており、複数のコントロールゲートCGは、Y方向に配列されている。そして、複数のメモリセルMCは、複数のビット線BLと複数のコントロールゲートCGのそれぞれの交点に対応して配置される。
【0021】
メモリセルMCは、
図2および
図3に示すように、選択トランジスタST、メモリトランジスタMTを備えている。選択トランジスタSTの一方の電極は、ビット線BLと接続されている。メモリトランジスタMTの一方の電極は、ソース線SLを介してソースドライバSDRと接続されている。選択トランジスタSTの他方の電極は、メモリトランジスタMTの他方の電極と接続されている。このように、メモリセルMCは、選択トランジスタST及びメモリトランジスタMTが、ソース線SLとビット線BLとの間で直列に接続されている。選択トランジスタSTはコントロールゲートCGを備え、メモリトランジスタMTは、電荷記憶層CSL及びメモリゲートMGを備えている。メモリゲートMGは、メモリゲートドライバMGDRと接続されている。
図2に示すように、メモリセルMCは、ソース線SL側がソースS、ビット線BL側がドレインDである。
【0022】
フラッシュメモリFLMの書込み方式は、ドレインD-ソースS間に電流を流し、電荷記憶層CSLに電荷をトラップするホット・エレクトロン注入方式である。フラッシュメモリFLMでは、データ"0"がしきい値の高い状態に、データ"1"がしきい値の低い状態に対応される。ホット・エレクトロン注入方式とは、メモリゲートMGおよびソース線SLに高電圧を印加し、電荷をトラップし易くした状態でドレインD-ソースS間に電流を流し、電荷記憶層CSLが電荷をトラップすることで、メモリセルMCのしきい値が高い状態とされる方式である。つまり、メモリセルMCに値が書き込まれる。
【0023】
一方、フラッシュメモリFLMの消去方式は、BTBT(Band to Band tunneling)によって行う。ソース線SLにプラス(正)の電圧を、メモリゲートMGにマイナス(負)の電圧を印加し、正孔を電荷記憶層CSLにトンネル動作させることで、正孔とトラップした電荷を再結合させることで電荷記憶層CSLの電荷を失くす。
【0024】
図4にメモリセルMCに与える電圧値例を示す。
図4に記載された電圧値を与えることによって、メモリセルMCに対して書込み動作(PROG)、消去動作(ERASE)、読み出し動作(READ)を行うことができる。
図4において、Vdはビット線BLまたはドレインDの電圧値を示し、VcgはコントロールゲートCGの電圧値を示し,VmgはメモリゲートMGの電圧値を示し、Vsはソース線SLまたはソースSの電圧値を示している。
【0025】
センスアンプSAは、メモリセルMCに対する書き込み動作または消去動作が完了したかどうかの判定処理を行う機能ブロックである。センスアンプSAは、例えばビット線BLごとに設けられる。各センスアンプSAは、対応するビット線BL及び対応するスイッチ回路のビットラッチ回路(以下、ビットラッチと言う)BLATと接続されている。書き込み動作または消去動作後に、読み出し動作が行われ、センスアンプSAは、読み出し動作によりビット線BLへ流れる電流と、例えばメモリコントローラFLMCから供給されるリファレンス信号の電流とを比較する。このような処理を、ベリファイと呼ぶ。そして、センスアンプSAは、例えば、ビット線BLに流れる電流がリファレンス信号の電流より大きい場合、メモリセルMCに所定のデータが書き込みされたものと判定し、書き込み完了信号をビットラッチBLATへ出力する。
【0026】
(書込み動作)
図5は、書込み動作の動作フローを示す図である。まず、CPUからプログラムのための書込みデータ(Pdata)をフラッシュメモリFLMのビットラッチBLATに転送する(P1)(以下、データインとも呼ぶ)。次に、書込みパルス(PRG pulse)を印加し(P2)、書込みベリファイ(PRG verify)を実施(P3)、書込みベリファイ判定(P4)を行い、全ビットの書込みベリファイがパス(Yes)すると(P4)、書込み動作を完了し(END)、全ビットの書込みベリファイがパスするまで(No)は書込みパルス印加(P2)、書込みベリファイ(P3)、書込みベリファイ判定(P4)の処理を繰り返し行う。書込みベリファイの際に書込みベリファイによって書込みが完了したことが確認できたメモリセルMCに対して、ビットラッチBLATに格納されているデータを反転することで以降、そのメモリセルMCに対する書込みパルス印加(P2)、ベリファイ実施(P3)をマスクする機能がある。これをベリファイマスク機能と呼ぶ。本発明はこのベリファイマスク機能にも対応している。もちろんベリファイマスク機能がない場合でも本発明は適用することができる。
【0027】
(消去動作)
図6は、消去動作の動作フローを示す図である。消去はCPUからデータインを必要としないが、過消去セルを作らないために消去ブロック内の全メモリセルMCを高いしきい値レベルに書き揃える(E1)。これをプレライトと呼ぶ。プレライト(E1)を実施するためにラッチデータをAll 0へと設定し、書込み同様にパルス印加を実施する。プレライトが完了すると、書込み同様、消去パルス(ERA Pulse)を印加し(E2)、消去ベリファイを実施し(E3)、ベリファイ判定(E4)を行い、全ビットの消去ベリファイがパスする(Yes)と消去を完了(END)し、全ビットの消去ベリファイがパスするまで(No)は消去パルス印加(E2)、消去ベリファイ(E3)、消去ベリファイ判定(E4)の処理を繰り返す。
【0028】
(サスペンドコマンド発生時の割り込み処理フロー、および、レジュームコマンド発行時の処理フロー)
図7は、サスペンドコマンド発生時の割り込み処理フローを示す図である。
図8は、レジュームコマンド発行時の処理フローを示す図である。
【0029】
図5、
図6で示されているサスペンド受付期間TPSUS中に、CPUからサスペンドコマンドSUSCMDが発行されると、書込み処理または消去処理に割り込み、サスペンド処理を実施する。その際に実施する処理内容を表したフローを
図7に示す。サスペンドコマンドSUSCMDに基づく割り込みが発生すると(S5)、サスペンド状態レジスタSSRegをセットし(S6)、レジューム時にコマンド開始アドレス、選択マクロ情報など中断した処理を復帰するために必要なデータを退避し(S7)、フラッシュメモリFLMの中断処理を実施することでサスペンドを完了する(S8)。
【0030】
CPUからレジュームコマンドRESCMDが発行されると、
図8に示すように、レジューム処理を実施する。レジューム処理では、レジュームコマンドRESCMDに基づいてレジューム要求がされ(S9)、サスペンドフロー時に行った処理に対して、サスペンド状態レジスタSSRegのクリア(S10)、退避情報(コマンド開始アドレス、選択マクロ情報など)の復帰(S11)、フラッシュ動作FLMOPの復帰処理(S12)、中断箇所からの再開(S13)といった処理を実施する。
【0031】
(問題点の説明)
図9は、書込みサスペンド中の書込みにおけるラッチデータの遷移を説明する図である。
図10は、書込みサスペンド中の消去におけるラッチデータの遷移を説明する図である。
図9、
図10において、書込みコマンド発行時(P1)のビットラッチBLATの書込みデータをデータA、1回目のベリファイ(P3(1回目))が終わったときのビットラッチBLATのラッチデータをデータBとする。また、上記書込みコマンドが完了した時のビットラッチBLATのラッチデータをデータC、書込みサスペンド状態時に同一マクロに対するビットラッチBLATの書込みデータをデータD、その書込みが完了した際のビットラッチBLATのラッチデータをデータEとする。さらに、2回目の書込みパルス印加が終了したタイミングでサスペンドが発生したとし、サスペンド中の書込み動作または消去動作によるビットラッチBLATのラッチデータの遷移表を
図9、
図10に示す(以降に示すデータ遷移表(
図13、
図15、
図18)についても、同タイミングでサスペンドが発生したものとする)。
図9、
図10に記載のフロー中の書込み処理、消去処理、サスペンド処理は、それぞれ
図5、
図6、
図7の動作フローに対応している。
【0032】
P2、P3では、書込みパルス印加、ベリファイ実施によって書込みが完了したメモリセルに対応するビットラッチBLATのビットラッチ回路の値を反転、再格納(ベリファイマスク)されることにより、ビットラッチBLATの値がデータAからデータBへと変化している。書込みサスペンド状態において、フラッシュメモリFLMに設定されているビットラッチBLATのラッチデータは保持されたままである。そのため、書込みサスペンド状態時に同一マクロに対して書込みコマンドを実施するためにビットラッチBLATにデータイン動作を行うと、ビットラッチBLATのラッチデータが
図9ではデータBからデータDに変化し、レジューム動作を実施できない。また、
図10に示す様に、書込みサスペンド状態時に同一マクロに対して消去コマンドを実施する時には、プレライト(E1)のために、データBから“All 0”となり、レジューム動作を実施できない。ここで、この明細書において、同一マクロとは、1つのフラッシュメモリFLM、または、複数のメモリバンクを有するフラッシュメモリFLMにおいて1つのメモリバンクを示している。
【0033】
本発明では、同一マクロに対する書込みサスペンド状態中に書込み動作または消去動作が行われた後のレジューム動作時に、サスペンド時のビットラッチBLATのラッチデータへの復帰する手法を提供する。以降、書込みサスペンド中における書込み動作後および消去動作後におけるビットラッチBLATのデータ復帰方法は同様であるため、代表例として、書込み動作の場合について記載するが、消去動作の場合を排除するものではない。なお、複数のメモリセルMCは、複数の第1メモリセルと、複数の第2メモリセルとを含む。複数の第1メモリセルは、書き込み時に書込みデータが書き込まれるメモリセルである。複数の第2メモリセルは、複数の第1メモリセルへの書き込み動作の書込みサスペンド状態中において、書込み動作または消去動作の対象とされるメモリセルである。
【実施例1】
【0034】
同一マクロにおける、書込みサスペンド状態における書込みコマンドまたは消去コマンドの実行をサポートする。そのため、CPUから転送されてくる書込みデータPdataを保持する追加回路をフラッシュメモリFLM以外、例えば、メモリコントローラFLMCに設ける。
図11は、メモリコントローラFLMCの回路構成の一例を示す図である。
図11に示す回路構成は、あくまでも一例であり、データインプロトコルが異なればそのプロトコルに従って回路の変更を行っても良い。
【0035】
図11に示す様に、メモリコントローラFLMCは、退避用のレジスタ(以下、退避レジスタと言う)SREGと、データイン発生フラグFLGと、第1選択回路SEL1と、第2選択回路SEL2と、アンド回路AND1と、を有する。フラッシュメモリFLMは、ビットラッチBLATを有する。
【0036】
メモリコントローラFLMCは、CPUから書込みデータPdataと、データインコマンドCM_DINと、データインモード信号MD_DINとを受信するように構成されている。また、メモリコントローラFLMCは、書込み状態において、CPUからサスペンドコマンドSUSCMDが発行されると、書込みサスペンド状態通知信号NS_PSSを“0”状態から“1”状態に設定するように構成されている。書込みサスペンド状態でない場合、書込みサスペンド状態通知信号NS_PSSは“0”状態とされている。
【0037】
データイン発生フラグFLGは、書込みサスペンド状態中にデータインが発生すると、書込みサスペンド状態通知信号NS_PSSの“1”状態とデータインモード信号MD_DINの“1”状態とに基づいて、“0”状態から“1”状態へセットされる。
【0038】
第1選択回路SEL1の“0”と示される入力端子は、書込みデータPdataを受信する様に構成され、第1選択回路SEL1の“1”と示される入力端子は、退避レジスタSREGの出力端子に接続されている。第1選択回路SEL1の出力端子は、退避レジスタSREGの入力端子に接続されている。第1選択回路SEL1は、書込みサスペンド状態通知信号NS_PSSに基づいて、その選択動作を制御される。書込みサスペンド状態通知信号NS_PSSが“0”状態の場合、第1選択回路SEL1の“0”と示される入力端子が第1選択回路SEL1の出力端子に接続される。書込みサスペンド状態通知信号NS_PSSが“1”状態の場合、第1選択回路SEL1の“1”と示される入力端子が第1選択回路SEL1の出力端子に接続される。
【0039】
第2選択回路SEL2の“0”と示される入力端子は、書込みデータPdataを受信する様に構成され、第2選択回路SEL2の“1”と示される入力端子は、退避レジスタSREGの出力端子に接続されている。第2選択回路SEL2の出力端子は、ビットラッチBLATの入力端子に接続されている。第2選択回路SEL2は、アンド回路AND1の出力に基づいて、その選択動作を制御される。アンド回路AND1の出力が“0”状態の場合、第2選択回路SEL2の“0”と示される入力端子が第2選択回路SEL2の出力端子に接続される。アンド回路AND1の出力が“1”状態の場合、第2選択回路SEL2の“1”と示される入力端子が第2選択回路SEL2の出力端子に接続される。
【0040】
アンド回路AND1は、データイン発生フラグFLGの出力信号とレジューム信号RESとを受ける様に構成されている。レジューム信号RESは、CPUからレジュームコマンドRESCMDが発行されると、“1”状態とされる。アンド回路AND1の出力信号は、データイン発生フラグFLGが“1”状態、かつ、レジューム信号RESが“1”状態とされる時、“1”状態とされ、それ以外の時、“0”状態とされる。
【0041】
サスペンド状態でない場合(書込みサスペンド状態通知信号NS_PSSが“0”状態)、データインコマンド(CM_DIN)と共にCPUから転送されてくる書込みデータPdataをメモリコントローラFLMCはフラッシュメモリFLMのビットラッチBLATに転送すると同時に、退避レジスタSREGに転送する。書込みサスペンド状態中(書込みサスペンド状態通知信号NS_PSSが“1”状態)において、メモリコントローラFLMCは退避レジスタSREGへデータを転送せず、フラッシュメモリFLMのビットラッチBLATのみに書込みデータPdataを転送する。また、書込みサスペンド状態中にデータインが発生するとデータイン発生フラグFLGを“1“状態にセットする。そして、レジューム時(レジューム信号RESが“1”状態)に、データイン発生フラグFLGとレジューム信号とによってデータPdataの転送元をCPUから退避レジスタSREGの経路へ切り替える。
【0042】
図12は、実施例1に係るレジュームコマンド発行時の処理フローを示す図である。
図13は、実施例1に係るラッチデータの遷移を説明する図である。なお、
図13の書込みと書込みサスペンド中の書込みとは、
図9の説明を参照することができるので、繰り返しの説明は省略する。
【0043】
CPUからレジュームコマンドRESCMDが発行されると、
図12に示すように、レジューム処理を実施する。レジューム処理では、レジュームコマンドRESCMDに基づいてレジューム要求がされ(SS9)、次に、データイン発生フラグFLGが“1”にセットされているか否か判断される(SS10)。データイン発生フラグFLGが“1”にセットされていれば(Yes)、SS11へ移行する。データイン発生フラグFLGが“1”にセットされていなければ(No)、SS13へ移行する。
【0044】
SS11では、退避レジスタSREGに格納されている書込みデータPdata(A)をフラッシュメモリFLMのビットラッチBLATに再設定する処理(SS11)を実施する。そして、ベリファイマスクを考慮し、再設定したラッチデータPdata(A)をサスペンド時のラッチデータ(B)に復帰させるために書込みベリファイを実施する(SS12)。
【0045】
次に、サスペンド動作フロー時に行った処理に対して、サスペンド状態レジスタSSRegのクリア(SS13)、退避情報(コマンド開始アドレス、選択マクロ情報など)の復帰(SS14)、フラッシュ動作FLMOPの復帰処理(SS15)、および、中断箇所からの再開(SS16)といった処理を実施する。
【0046】
図12および
図13に示す様に、書込みサスペンド中の書込みを行うことでデータイン発生フラグFLGがセットされ、レジューム時の処理開始前に退避レジスタSREGに格納されているデータPdata(A)を用いて、フラッシュメモリFLMのビットラッチBLATに対して書込みデータPdata(A)を再設定する処理(SS11)を実施する。また、ベリファイマスクを考慮し、再設定したラッチデータPdata(A)をサスペンド時のラッチデータ(B)に復帰させるためにベリファイを実施する(SS12)。ベリファイ(SS12)によってラッチデータ(A)とメモリセルMCを比較、メモリセルMCが書込まれていればラッチデータ(A)が反転し、サスペンド時のラッチデータ(B)の状態に復帰することができる。
図13では、サスペンドするタイミングが書込みパルス印加後かつ書込みベリファイ前であったため、レジューム時のベリファイ(SS12)によってラッチデータ(A)がラッチデータ(C)へと変化する。それ以外のタイミングにおいてはサスペンド時の状態に復帰することができる。
【0047】
実施例1によれば、以下の効果を得ることができる。
【0048】
1)メモリコントローラFLMCに追加回路を設けるのみで、書込みサスペンド中の書込み動作および書込みサスペンド中の消去動作をサポートできる。
【0049】
2)上記1)において、本発明前の設計資産であるフラッシュメモリFLMをそのまま使用することができ、設計コストの増大を抑制することができる。
【0050】
3)書込みデータの再設定(SS11)およびベリファイマスク情報復元の為の書込みベリファイ(SS12)といった処理によって増加してしまうサスペンド応答時間に関しては、レジュームフロー処理中においてもサスペンドを受け付けることで悪化しないよう対策を講じることができる。
【実施例2】
【0051】
次に、実施例2について説明する。
図14は、実施例2に係るフラッシュメモリFLMの回路構成の一例を示す。実施例2では、
図14に示す様に、フラッシュメモリFLMの内部に、2つのビットラッチ(BLAT1,BLAT2)と2つの選択回路(SEL3,SEL4)とが設けられる。第1選択回路SEL3および第2選択回路SEL4は、書込みサスペンド状態通知信号NS_PSSとレジューム信号RESとに基づいてその選択動作が制御されるように構成されている。
【0052】
サスペンド実施時、または、サスペンド中の書込みコマンドまたは消去コマンド受付時に、第1ビットラッチBLAT1を第2ビットラッチBLAT2へ切り替え、または、データの書込み先および内部参照を第2ビットラッチBLAT2へ切り替える。そして、レジューム時には、第2ビットラッチBLAT2から第1ビットラッチBLAT1へ切り替え、または、書込み先および内部参照を第1ビットラッチBLAT1とすることで、サスペンド時の状態に復帰する。
【0053】
信号(NS_PSS、RES)による経路切替または退避のため、実施例1または後述される実施例3と比較してラッチデータの復帰処理が高速に完了する。
図15は、実施例2におけるラッチデータの遷移を説明する図である。
図15が
図13と異なる点は、ベリファイマスクによって反転したラッチデータを含む情報を退避、または、別のビットラッチへと切替を行うため、
図13で行ったレジューム時での書込みデータの再設定(SS11)やベリファイ(SS12)といった処理の追加が不要である。そのため、レジューム時の動作フローは、
図12ではなく、
図8の動作フローをそのまま使用することができる。
【実施例3】
【0054】
次に、実施例3について説明する。
図16は、実施例3に係るメモリコントローラFLMCとフラッシュメモリFLMの回路構成の一例を示す図である。
図17は、実施例3に係るレジュームコマンド発行時の処理フローを示す図である。
図18は、実施例3に係るラッチデータの遷移を説明する図である。
【0055】
図16に示す様に、ビットラッチBLATにリード機構を設け、サスペンド時またはサスペンド中の書込みコマンドまたは消去コマンド受付時に、メモリコントローラFLMCがフラッシュメモリFLMのビットラッチBLATのラッチデータをリードし、メモリコントローラFLMCに設けた退避レジスタSREGに格納または退避する。そして、実施例1と同様に、選択回路SEL2、データイン発生フラグFLGを設け、データイン発生フラグFLGが“1”状態にセットされた状態でレジュームが行われると、メモリコントローラFLMがレジューム時に退避レジスタSREGに退避していたラッチデータをフラッシュメモリFLMのビットラッチBLATに再設定する。
【0056】
図17は、
図12とほぼ同じで処理であるが、ベリファイマスク情報復帰の処理が不要のため、
図12に設けられているベリファイ処理(SS12)が不要である。ベリファイマスク機能を搭載するフラッシュメモリFLMにおいて、ラッチデータは書込みが完了しているとラッチデータを反転し再格納されており、リードする際にベリファイマスクを含めた情報を退避、復帰することができる。実施例3の独自効果としては、ビットラッチBLATをそのまま2重持ちするような実施例2と比較すると、面積増大を抑えることができる。
【実施例4】
【0057】
実施例4における回路構成は、
図1から変更はない。実施例1~3は、メモリコントローラFLMCあるいはフラッシュメモリFLMに追加回路を設け、書込みデータPdataの保持を行っていたが、実施例4では、CPUが書込みデータPdataの保持を行い、レジューム前にフラッシュメモリFLMに対して書込みデータPdataを再度転送し、レジュームコマンドRESCMDを発行する。フラッシュメモリFLMがベリファイマスク機能搭載時、メモリコントローラFLMCはレジュームコマンドRESCMDを受け取ると、ベリファイを実施し、ベリファイマスク情報をサスペンド時の状態へ復帰させ、レジューム処理を継続する。
【0058】
以上、本発明者によってなされた発明を実施例に基づき具体的に説明したが、本発明は、上記実施形態および実施例に限定されるものではなく、種々変更可能であることはいうまでもない。
【符号の説明】
【0059】
CPU:中央処理装置
FLM:フラッシュメモリ
FLMC:メモリコントローラ
MC:不揮発性メモリセル
BTAL:ビットラッチ
SREG:退避用のレジスタ
Pdata:書込みデータ
SUSCMD:サスペンドコマンド
RESCMD:レジュームコマンド