(57)【要約】【課題】相補リード方式でデータを記憶しつつ、ステータスフラグの値を消去後に一意に確定する。【解決手段】記憶装置１は、データメモリ部２と、ステータスメモリ部３とを有する。データメモリ部２は、相補リード方式で読み出される一対のフラッシュメモリセルを備え、該一対のフラッシュメモリセルにより１ビットのデータが記憶される。ステータスメモリ部３は、参照リード方式で読み出されるフラッシュメモリセルを備え、該フラッシュメモリセルによりステータスフラグが記憶される。【選択図】図１
2018156713.tif 000002
【特許請求の範囲】
【請求項１】
相補リード方式で読み出される一対のフラッシュメモリセルを備え、該一対のフラッシュメモリセルにより１ビットのデータが記憶されるデータメモリ部と、
参照リード方式で読み出されるフラッシュメモリセルを備え、該フラッシュメモリセルによりステータスフラグが記憶されるステータスメモリ部と
を有する記憶装置。
【請求項２】
前記ステータスメモリ部は、同一の値の前記ステータスフラグが記憶される複数のフラッシュメモリセルを備え、
前記記憶装置は、前記複数のフラッシュメモリセルのそれぞれを流れる電流の合計電流と、参照電流とを比較することによって前記ステータスフラグの値を判定する判定回路
をさらに有する
請求項１に記載の記憶装置。
【請求項３】
前記判定回路は、前記複数のフラッシュメモリセルのそれぞれに接続された信号線である第１の信号線及び前記参照電流を提供する電流源に接続された信号線である第２の信号線をプリチャージし、前記合計電流及び前記参照電流により前記第１の信号線及び前記第２の信号線をディスチャージし、ディスチャージ後の前記第１の信号線の電圧と前記第２の信号線の電圧を比較することにより、前記合計電流と前記参照電流とを比較する
請求項２に記載の記憶装置。
【請求項４】
前記データメモリ部の読み出し値と、前記ステータスメモリ部の読み出し値との論理和を演算し、演算結果を前記データメモリ部の読み出し結果として出力する出力部をさらに有する
請求項１に記載の記憶装置。
【請求項５】
参照リード方式で読み出されるフラッシュメモリセルを備え、該フラッシュメモリセルにより書き込み処理の中断の有無を示す中断検知フラグが記憶される中断検知メモリ部と、
電源電圧が所定値以下となったことを検知する電圧検知部と、
前記データメモリ部への書き込み処理中に、前記電圧検知部により前記電源電圧が前記所定値以下となったことが検知された場合、前記データメモリ部への書き込み処理を中断し、かつ、前記中断検知メモリ部へ中断の実施を示す値を書き込むよう制御する制御部と
をさらに有する請求項１に記載の記憶装置。
【請求項６】
前記制御部は、前記データメモリ部への書き込み処理を中断後、前記中断検知メモリ部へ中断の実施を示す値を書き込むよう制御する
請求項５に記載の記憶装置。
【請求項７】
前記電圧検知部は、前記所定値を格納する記憶部を備えており、
前記所定値が変更可能である
請求項５に記載の記憶装置。
【請求項８】
前記データメモリ部及び前記ステータスメモリ部は、消去が同時に行われる
請求項１に記載の記憶装置。
【請求項９】
前記ステータスフラグは、前記データメモリ部のデータの書き込み状態を示すフラグである
請求項１に記載の記憶装置。
【請求項１０】
相補リード方式で読み出される一対のフラッシュメモリセルに、１ビットのデータを記憶し、
参照リード方式で読み出されるフラッシュメモリセルに、ステータスフラグを記憶する
記憶方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は記憶装置及び記憶方法に関し、例えばステータスフラグを記憶する記憶装置及び記憶方法に関する。
【背景技術】
【０００２】
例えば、特許文献１に示されるように、相補リード方式のフラッシュメモリが知られている。相補リード方式のフラッシュメモリでは、２個の書換え可能な不揮発性メモリセルが組をなし、この１組のメモリセル（以下、ツインセルと称することがある）により１ビットの情報が格納される。ツインセルを構成する各セルは、低閾値電圧状態、または高閾値電圧状態のいずれかの状態をとることができる。ここで、低閾値電圧状態とは、セルを構成するトランジスタの閾値電圧（Ｖｔｈ）が所定の基準値未満である状態をいう。また、高閾値電圧状態とは、セルを構成するトランジスタの閾値電圧（Ｖｔｈ）が所定の基準値以上である状態をいう。
【０００３】
相補リード方式のフラッシュメモリにおいては、ツインセルを構成する２個のメモリセルを互いに異なる閾値電圧状態にすることで、情報の記憶が行われる。すなわち、例えば、ツインセルのうちの第１のメモリセルが高閾値電圧状態であり、第２のメモリセルが低閾値電圧状態であることにより、「０」が記憶される。そして、逆に、第１のメモリセルが低閾値電圧状態であり、第２のメモリセルが高閾値電圧状態であることにより、「１」が記憶される。また、第１のメモリセル及び第２のメモリセルが、いずれも低閾値電圧状態である場合、消去状態（イニシャライズ状態とも称する）であることを示す。消去状態の場合、ツインセルからの読み出し結果は、不定になる。すなわち、読み出された値は、「１」である可能性も、「０」である可能性もあり、一意に定まらない。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−１１７５１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、フラッシュメモリに、データの記憶状態等を示すステータスフラグを記憶させる場合がある。このステータスフラグを上述のツインセルに記憶させた場合、ステータスフラグの値を消去した後の読み出し結果、すなわち、このツインセルを消去状態とした後の読み出し結果は、不定となる。
【０００６】
消去状態におけるツインセルの各メモリセルの閾値電圧の相対関係は、消去前の関係を保つ傾向にある。このため、「０」を保持していたツインセルを消去後に、このツインセルを読み出すと、「０」が読み出されやすい。同様に、「１」を保持していたツインセルを消去後に、このツインセルを読み出すと、「１」が読み出されやすい。このため、ツインセルにステータスフラグを記憶させた場合、消去後も、消去前の値が読み出されてしまう可能性がある。すなわち、誤ったステータスフラグ値が読み出される可能性がある。
【０００７】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
一実施の形態によれば、記憶装置は、相補リード方式で読み出され、データが記憶されるデータメモリ部と、参照リード方式で読み出され、ステータスフラグが記憶されるステータスメモリ部とを有する。
【発明の効果】
【０００９】
前記一実施の形態によれば、相補リード方式でデータを記憶しつつ、ステータスフラグの値を消去後に一意に確定することができる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態の概要にかかる記憶装置の一例を示すブロック図である。
【図２】実施の形態１にかかるフラッシュメモリの構成例を示すブロック図である。
【図３】参照リード方式による読み出しを行うセンスアンプについて説明する図であり、上部の図は、センスアンプの入出力関係を示す模式図であり、下部の図は、センスアンプに入力される信号線の電圧の時間推移を示すグラフである。
【図４】相補リード方式による読み出しを行うセンスアンプについて説明する図であり、上部の図は、センスアンプの入出力関係を示す模式図であり、下部の図は、センスアンプに入力される信号線の電圧の時間推移を示すグラフである。
【図５】参照リード方式による読み出しを行うセンスアンプにおける電流量のばらつきによる影響を説明する図であり、上部の図は、センスアンプの入出力関係を示す模式図であり、下部の図は、センスアンプに入力される信号線の電圧の時間推移を示すグラフである。
【図６】相補リード方式による読み出しを行うセンスアンプにおける電流量のばらつきによる影響を説明する図であり、上部の図は、センスアンプの入出力関係を示す模式図であり、下部の図は、センスアンプに入力される信号線の電圧の時間推移を示すグラフである。
【図７】参照リード方式で１個のメモリセルに値を保持する場合のセンスアンプについて説明する図であり、上部の図は、センスアンプの入出力関係を示す模式図であり、下部の図は、センスアンプに入力される信号線の電圧の時間推移を示すグラフである。
【図８】参照リード方式で４個のメモリセルに同一の値を保持する場合のセンスアンプについて説明する図であり、上部の図は、センスアンプの入出力関係を示す模式図であり、下部の図は、センスアンプに入力される信号線の電圧の時間推移を示すグラフである。
【図９】実施の形態２にかかるフラッシュメモリの構成例を示すブロック図である。
【図１０】実施の形態３にかかるフラッシュメモリを搭載したマイクロコントローラの構成例を示すブロック図である。
【図１１】フラッシュシーケンサのコマンドを示す図である。
【図１２】実施の形態３にかかるフラッシュメモリの構成例を示すブロック図である。
【図１３】電源電圧の時間推移の一例を示すグラフである。
【図１４】データメモリ部への書き込み時のフラッシュシーケンサの動作の一例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１２】
＜実施の形態の概要＞
実施の形態の詳細について説明する前に、まず、実施の形態の概要について説明する。図１は、実施の形態の概要にかかる記憶装置１の一例を示すブロック図である。図１に示すように、記憶装置１は、データメモリ部２と、ステータスメモリ部３とを有する。
【００１３】
データメモリ部２は、一対のフラッシュメモリセル４を備える。この一対のフラッシュメモリセル４は、相補リード方式で読み出される。一対のフラッシュメモリセル４には、１ビットのデータが記憶される。すなわち、一対のフラッシュメモリセル４は、ツインセルであり、一方のフラッシュメモリセル４を低閾値電圧状態、かつ、他方のフラッシュメモリセル４を高閾値電圧状態とすることで、１ビットのデータが記憶される。そして、データメモリ部２は、相補リード方式で読み出されるため、ツインセルの一方のフラッシュメモリセル４を流れる電流と、他方のフラッシュメモリセル４を流れる電流とが比較されることにより、データの読み出しが行われる。メモリセルの閾値電圧に応じてメモリセルを流れる電流は異なる。このため、ツインセルの電流の比較により、ツインセルの閾値電圧の状態を検出することができ、データの読み出しが可能となる。なお、図１に示した例では、記憶装置１は、１つのデータメモリ部２を備えているが、記憶装置１は、データメモリ部２を複数備えてもよい。すなわち、記憶装置１は、ツインセルの組を複数備えてもよい。
【００１４】
ステータスメモリ部３は、少なくとも１つのフラッシュメモリセル５を備える。このフラッシュメモリセル５は、参照リード方式で読み出される。１つのフラッシュメモリセル５には、１ビットの情報が記憶される。ここで、ステータスメモリ部３のフラッシュメモリセル５には、ステータスフラグが記憶される。ステータスフラグは、任意の所定の対象の状態を示すフラグである。
【００１５】
参照リード方式においても、フラッシュメモリセル５の閾値電圧を変更することで、情報が記憶される。すなわち、閾値電圧が基準値以上である（換言すれば、高閾値電圧状態）か基準値未満である（換言すれば、低閾値電圧状態）かにより、１ビットの情報が記憶される。例えば、フラッシュメモリセル５が高閾値電圧状態であることにより「０」が記憶され、フラッシュメモリセル５が低閾値電圧状態であることにより「１」が記憶される。そして、参照リード方式の場合、消去処理が行われると、閾値電圧は予め定められた電圧に変更される。具体的には、例えば、フラッシュメモリセル５は、消去処理により、低閾値電圧状態に設定される。このため、参照リード方式では、消去処理後の読み出し結果は一意に定まる。すなわち、例えば、フラッシュメモリセル５が消去処理により低閾値電圧状態に設定される場合には、「１」が読み出し結果となる。
【００１６】
ステータスメモリ部３は、参照リード方式で読み出され、フラッシュメモリセル５を流れる電流と、参照電流とを比較することにより、ステータスフラグの読み出しが行われる。参照電流は電流値が一定であるため、フラッシュメモリセル５を流れる電流と参照電流の比較により、フラッシュメモリセル５の閾値電圧の状態を検出することができ、データの読み出しが可能となる。なお、図１に示した例では、記憶装置１は、１つのステータスメモリ部３を備えているが、記憶装置１は、ステータスメモリ部３を複数備えてもよい。
【００１７】
記憶装置１によれば、ステータスフラグ以外の情報であるデータは、相補リード方式で読み出しが行われるデータメモリ部２に記憶され、ステータスフラグは、参照リード方式で読み出しが行われるステータスメモリ部３に記憶される。このため、消去処理後のステータスフラグの読み出し結果は、一意に確定される。よって、記憶装置１によれば、相補リード方式でデータを記憶しつつ、ステータスフラグの値を消去後に一意に確定することができる。
【００１８】
＜実施の形態１＞
次に実施の形態の詳細について説明する。図２は、実施の形態１にかかるフラッシュメモリ１００の構成例を示すブロック図である。なお、フラッシュメモリ１００は、図１の記憶装置１に対応している。図２に示すように、フラッシュメモリ１００は、電源回路１０１と、書き込み系回路１０２と、アドレスバッファ１０３と、プリデコード回路１０４と、デコーダ１０５と、ＷＬドライバ１０６と、センスアンプ回路１０７と、センスアンプ制御回路１０８と、出力ドライバ１０９と、メモリセルアレイ１１０とを有する。
【００１９】
電源回路１０１は、書き込み、消去、及び読み出し動作で使用する電源を供給する回路である。書き込み系回路１０２は、書き込む情報をメモリセルアレイ１１０に供給する回路である。アドレスバッファ１０３は、メモリセルアレイ１１０へのアクセス（書き込みアクセス、消去アクセス、及び読み出しアクセス）先のアドレスを受信する回路である。
【００２０】
プリデコード回路１０４は、アドレスバッファ１０３の出力するアドレスをプリデコードする回路である。デコーダ１０５は、プリデコード回路１０４から出力される行プリデコード信号に応じて、アクセス先のワード線ＷＬを選択する行選択信号を生成する回路である。ＷＬドライバ１０６は、行プリデコード信号に応じたワード線ＷＬを駆動する回路である。
【００２１】
ワード線ＷＬは、メモリセルアレイ１１０において任意の１行を選択するための信号線である。ビット線ＢＬは、選択されたワード線ＷＬと接続されたフラッシュメモリセルのメモリセル電流を出力する信号線である。
【００２２】
センスアンプ回路１０７は、ビット線ＢＬの電流をセンスし、メモリセルアレイ１１０から読み出した値を出力する回路であり、センスアンプＳＡ１、ＳＡ２と、トランジスタＴｒを含む。トランジスタＴｒは、センスアンプＳＡ１又はセンスアンプＳＡ２に入力されるビット線ＢＬとの接続状態を切り替えるスイッチである。なお、実際の構成では複数のビット線対からアドレスの指定により一つのビット線対を選択してセンスアンプに接続する構成となっているが、図２では図面の簡略化のためにビット線選択回路をスイッチとして代表的に記載している。センスアンプ制御回路１０８は、センスアンプ回路１０７の動作を制御する制御回路である。なお、センスアンプ回路１０７及びセンスアンプ制御回路１０８は、判定回路と称すことがある。
【００２３】
出力ドライバ１０９は、センスアンプ回路１０７から出力された値を、ラッチ回路Ｌによりラッチした後、読み出し結果として、フラッシュメモリ１００の外部に出力する回路である。
【００２４】
メモリセルアレイ１１０は、ワード線ＷＬ及びビット線ＢＬにより位置が特定される、書換え可能な不揮発性メモリセルである複数のフラッシュメモリセルを有する。ここで、メモリセルアレイ１１０に含まれるフラッシュメモリセルは、データメモリ部１５０を構成するフラッシュメモリセルとステータスメモリ部１５１を構成するフラッシュメモリセルとに分類される。
【００２５】
データメモリ部１５０は、図１のデータメモリ部２と対応している。データメモリ部１５０は、メモリセルＭ１ａ及びメモリセルＭ１ｂからなる一対のメモリセルを備えたメモリセルの領域である。データメモリ部１５０は、メモリセルＭ１ａ及びメモリセルＭ１ｂの２つのメモリセルにより１ビットのデータを記憶する。例えば、データとして「０」をデータメモリ部１５０に記憶させる場合、メモリセルＭ１ａは高閾値電圧状態に設定され、かつ、メモリセルＭ１ｂは低閾値電圧状態に設定され、データとして「１」をデータメモリ部１５０に記憶させる場合、メモリセルＭ１ａは低閾値電圧状態に設定され、かつ、メモリセルＭ１ｂは高閾値電圧状態に設定される。
【００２６】
なお、図２に示した例では、各ワード線ＷＬに対し、３２個のデータメモリ部１５０が設けられている。すなわち、各ワード線ＷＬに対し、６４個のメモリセルが、データメモリ部１５０用のメモリセルとして利用される。なお、これらの個数は、一例であり、任意の個数のデータメモリ部１５０を各ワード線ＷＬに対し配置することが可能であることは言うまでもない。図２に示した例において、３２個のデータメモリ部１５０は、データＤ３１〜Ｄ０を記憶する。なお、データＤ３１〜Ｄ０は、いずれも１ビットのデータである。
【００２７】
データメモリ部１５０に記憶されたデータは、相補リード方式で読み出される。このため、データメモリ部１５０の２本のビット線ＢＬ、すなわちメモリセルＭ１ａのビット線ＢＬ及びメモリセルＭ１ｂのビット線ＢＬは、センスアンプＳＡ１と接続される。つまり、センスアンプＳＡ１には、メモリセルＭ１ａとメモリセルＭ１ｂの電流差をセンス可能なように両ビット線ＢＬが接続される。なお、より詳細には、ビット線ＢＬは、トランジスタＴｒを介して、センスアンプＳＡ１の入力側に接続されている。
【００２８】
センスアンプＳＡ１は、データメモリ部１５０の一方のメモリセルＭ１ａに流れる電流（メモリセル電流）と、データメモリ部１５０の他方のメモリセルＭ１ｂに流れる電流（メモリセル電流）を比較することによってデータメモリ部１５０に記憶されたデータの値を判定する回路である。センスアンプＳＡ１は、判定したデータ値を、読み出し結果として出力ドライバ１０９に出力する。これにより、出力ドライバ１０９からは、データＤ３１〜Ｄ０が出力される。
【００２９】
ステータスメモリ部１５１は、図１のステータスメモリ部３と対応している。本実施の形態では、ステータスメモリ部１５１は、４つのメモリセルＭ２ａ、Ｍ２ｂ、Ｍ２ｃ、Ｍ２ｄを備えたメモリセルの領域である。ステータスメモリ部１５１は、ステータスフラグを記憶し、参照リード方式で読み出される。なお、ステータスフラグの書き込み制御は、任意の制御回路により行われればよい。例えば、書き込み系回路１０２の制御により行われてもよいし、フラッシュシーケンサなどの制御回路により行われてもよい。メモリセルＭ２ａ、Ｍ２ｂ、Ｍ２ｃ、Ｍ２ｄは、それぞれ１ビットの情報を記憶可能である。ここで、本実施の形態では、メモリセルＭ２ａ、Ｍ２ｂ、Ｍ２ｃ、Ｍ２ｄには、同一の値のステータスフラグが記憶される。つまり、１ビットの情報であるステータスフラグの値を、メモリセルＭ２ａ、Ｍ２ｂ、Ｍ２ｃ、Ｍ２ｄの全てに記憶させる。したがって、本実施の形態において、ステータスメモリ部１５１内の各メモリセルには、実質、同一のステータスフラグが記憶される。
【００３０】
本実施の形態では、ステータスメモリ部１５１内の各メモリセルが記憶するステータスフラグは、データメモリ部１５０のデータの書き込み状態を示すフラグである。より具体的には、同一のワード線ＷＬに接続されている３２個のデータメモリ部１５０において、データが書き込まれている状態であるか、データが消去されている状態であるかを示すフラグである。なお、データが書き込まれている状態は、データが記憶されている状態、又はデータが有効な状態ともいえる。同様に、データが消去されている状態は、データが書き込まれていない状態、又はデータが無効な状態ともいえる。
【００３１】
本実施の形態では、データメモリ部１５０が消去状態である場合、ステータスフラグ値として、「１」がメモリセルＭ２ａ、Ｍ２ｂ、Ｍ２ｃ、Ｍ２ｄのそれぞれに記憶される。このため、例えば、メモリセルＭ２ａ、Ｍ２ｂ、Ｍ２ｃ、Ｍ２ｄは、いずれも低閾値電圧状態に設定される。また、データメモリ部１５０にデータが書き込まれている状態である場合、ステータスフラグ値として、「０」がメモリセルＭ２ａ、Ｍ２ｂ、Ｍ２ｃ、Ｍ２ｄのそれぞれに記憶される。このため、例えば、メモリセルＭ２ａ、Ｍ２ｂ、Ｍ２ｃ、Ｍ２ｄは、いずれも高閾値電圧状態に設定される。
【００３２】
なお、本実施の形態では、ステータスメモリ部１５１は４つのメモリセルにより構成されているが、これは一例であり、ステータスメモリ部１５１は、１以上のメモリセルにより構成されればよい。また、本実施の形態では、ステータスメモリ部１５１は、同一のワード線ＷＬに接続されている３２個のデータメモリ部１５０に対し、これらの書き込み状態を示すステータスフラグとして１つのステータスメモリ部１５１が設けられているが、Ｎ（Ｎは１以上の整数）個のデータメモリ部１５０に対し、１つのステータスメモリ部１５１が設けられてもよい。
【００３３】
ステータスメモリ部１５１に記憶されたステータスフラグは、参照リード方式で読み出される。このため、ステータスメモリ部１５１のビット線ＢＬは、参照電流Ｉｒｅｆを流すことが可能な信号線ＩＬが入力側に接続されているセンスアンプＳＡ２と接続される。つまり、センスアンプＳＡ２には、ステータスメモリ部１５１の電流と参照電流との電流差をセンス可能なようにビット線ＢＬ及び信号線ＩＬが接続される。本実施の形態では、具体的には、メモリセルＭ２ａ、Ｍ２ｂ、Ｍ２ｃ、Ｍ２ｄの各ビット線ＢＬが、センスアンプＳＡ２に接続されている。なお、より詳細には、ビット線ＢＬは、トランジスタＴｒを介して、センスアンプＳＡ２に接続されている。
【００３４】
センスアンプＳＡ２は、ステータスメモリ部１５１の各メモリセルを流れる電流（メモリセル電流）の合計電流と、参照電流とを比較することによってステータスメモリ部１５１に記憶されたステータスフラグの値を判定する回路である。つまり、センスアンプＳＡ２は、メモリセルＭ２ａのメモリセル電流、Ｍ２ｂのメモリセル電流、Ｍ２ｃのメモリセル電流、及びＭ２ｄのメモリセル電流の合計電流と参照電流とを比較してステータスフラグの値を判定する。このため、センスアンプＳＡ２の入力側には、メモリセル電流との比較対象である参照電流Ｉｒｅｆが流れる信号線ＩＬが接続されている。信号線ＩＬは、参照電流Ｉｒｅｆを提供する定電流源ＣＣＳ１に接続されている。センスアンプＳＡ２は、判定したステータスフラグ値を、読み出し結果として出力ドライバ１０９に出力する。これにより、出力ドライバ１０９からは、ステータスフラグが出力される。
【００３５】
このように、フラッシュメモリ１００は、外部からの読み出し要求に応じて、データＤ３１〜Ｄ０の出力とステータスフラグの出力とが可能である。
【００３６】
次に、参照リード方式による読み出しを行うセンスアンプＳＡ２の動作と、相補リード方式による読み出しを行うセンスアンプＳＡ１の動作について説明する。まず、センスアンプＳＡ２の動作について説明する。図３は、参照リード方式による読み出しを行うセンスアンプＳＡ２について説明する図である。図３において、上部の図は、センスアンプＳＡ２の入出力関係を示す模式図であり、下部の図は、センスアンプＳＡ２に入力される信号線の電圧の時間推移を示すグラフである。なお、ステータスメモリ部１５１を構成するメモリセル数の違いによる影響を理解しやすいように、図３は、ステータスメモリ部１５１がメモリセルを１つだけ備える場合について図示している。すなわち、図３に示す例では、センスアンプＳＡ２の入力側には、メモリセルＭ２ａのビット線ＢＬと、参照電流Ｉｒｅｆを流すことが可能な信号線ＩＬが、接続されている。
【００３７】
図３のグラフに示すように、参照リード方式では、まず、センスアンプ制御回路１０８の制御により、メモリセルＭ２ａに接続されたビット線ＢＬと信号線ＩＬが所定の電圧になるようプリチャージされる。その後、センスアンプ制御回路１０８の制御により、所定のディスチャージ開始タイミングｔ１において、メモリセルＭ２ａを流れるメモリセル電流によるビット線ＢＬのディスチャージ及び参照電流Ｉｒｅｆによる信号線ＩＬのディスチャージが行われる。そして、所定のセンスタイミングｔ２において、センスアンプＳＡ２は、ビット線ＢＬの電圧と信号線ＩＬの電圧の電圧差をセンスすることで、メモリセルＭ２ａが記憶する値を判定する。なお、ディスチャージの際のビット線ＢＬの電圧降下は、ビット線ＢＬに流れる電流値（メモリセル電流の電流値）に依存し、電流が大きければ大きいほど電圧降下は大きくなる。また、メモリセル電流の電流値は、メモリセルの閾値電圧に依存している。また、ディスチャージの際の信号線ＩＬの電圧降下は、信号線ＩＬに流れる参照電流の電流値に依存する。したがって、センスアンプＳＡ２は、ディスチャージ後のビット線ＢＬの電圧と信号線ＩＬの電圧を比較することにより、メモリセル電流と参照電流とを比較している。そして、センスアンプＳＡ２は、その比較結果により、記憶されている値を判定する。
【００３８】
ここで、記憶されている値を正しく読み出すためには、信号線ＩＬの電圧とメモリセルＭ２ａのビット線ＢＬの電圧の差がセンス可能な電圧差以上である必要がある。より詳細には、高閾値電圧状態のメモリセルＭ２ａの値、すなわち、例えば「０」を正しく読み出すためには、図３のグラフに示すように、センスタイミングｔ２の時点において、信号線ＩＬの電圧と、メモリセルＭ２ａのビット線ＢＬの電圧の差がセンス可能な電圧差以上である必要がある（第１の条件）。同様に、低閾値電圧状態のメモリセルＭ２ａの値、すなわち、例えば「１」を正しく読み出すためには、図３のグラフに示すように、センスタイミングｔ２の時点において、信号線ＩＬの電圧と、メモリセルＭ２ａのビット線ＢＬの電圧の差がセンス可能な電圧差以上である必要がある（第２の条件）。高閾値電圧状態書き込み状態のメモリセルＭ２ａの値及び低閾値電圧状態のメモリセルＭ２ａの値のいずれも正しく読めるようにする必要があるため、第１の条件と第２の条件の両方を満たすことが求められる。
【００３９】
次に、センスアンプＳＡ１の動作について説明する。図４は、相補リード方式による読み出しを行うセンスアンプＳＡ１について説明する図である。図４において、上部の図は、センスアンプＳＡ１の入出力関係を示す模式図であり、下部の図は、センスアンプＳＡ１に入力される信号線の電圧の時間推移を示すグラフである。
【００４０】
図４のグラフに示すように、相補リード方式では、まず、センスアンプ制御回路１０８の制御により、メモリセルＭ１ａに接続されたビット線ＢＬとメモリセルＭ１ｂに接続されたビット線ＢＬが所定の電圧になるようプリチャージされる。その後、センスアンプ制御回路１０８の制御により、所定のディスチャージ開始タイミングｔ１において、メモリセルＭ１ａを流れるメモリセル電流によるビット線ＢＬのディスチャージ及びメモリセルＭ１ｂを流れるメモリセル電流によるビット線ＢＬのディスチャージが行われる。そして、所定のセンスタイミングｔ２において、センスアンプＳＡ１は、両ビット線ＢＬの電圧差をセンスすることで、データメモリ部１５０が記憶する値を判定する。このように、センスアンプＳＡ１は、ディスチャージ後の両ビット線ＢＬの電圧を比較することにより、メモリセルＭ１ａ、Ｍ１ｂのメモリセル電流を比較している。そして、センスアンプＳＡ１は、その比較結果により、記憶されている値を判定する。
【００４１】
相補リード方式においてメモリセルに値が記憶されている状態では、メモリセルＭ１ａ及びＭ１ｂのうち一方のメモリセルが高閾値電圧状態で、他方のメモリセルが低閾値電圧状態となっている。したがって、相補リード方式において、記憶されている値を正しく読み出すためには、高閾値電圧状態のメモリセルのビット線ＢＬの電圧と低閾値電圧状態のメモリセルのビット線ＢＬの電圧の差がセンス可能な電圧差以上であればよい。このため、メモリセルが高閾値電圧状態にある場合のビット線ＢＬの電圧と低閾値電圧状態にある場合のビット線ＢＬの電圧との差を、参照リード方式と比較して、小さくできる。
【００４２】
次に、温度条件及び電圧条件に起因するメモリセル電流のばらつきに着目した場合の参照リード方式と相補リード方式の差異について説明する。メモリセルの電流量は温度条件及び電圧条件に依存してバラつく性質がある。図５は、参照リード方式による読み出しを行うセンスアンプＳＡ２における電流量のばらつきによる影響を説明する図である。図５において、上部の図は、センスアンプＳＡ２の入出力関係を示す模式図であり、下部の図は、センスアンプＳＡ２に入力される信号線の電圧の時間推移を示すグラフである。なお、図５においても、図３と同様、ステータスメモリ部１５１がメモリセルを１つだけ備える場合について図示している。
【００４３】
参照リード方式では、上述の通り、第１の条件及び第２の条件の両方を満たす必要がある。このため、メモリセルＭ２ａが高閾値電圧状態である場合のビット線ＢＬの電圧のばらつきの下限値と、信号線ＩＬの電圧との差がセンス可能な電圧差以上である必要があるとともに、メモリセルＭ２ａが低閾値電圧状態である場合のビット線ＢＬの電圧のばらつきの上限値と、信号線ＩＬの電圧との差がセンス可能な電圧差以上である必要がある。このため、参照リード方式では、メモリセル電流のばらつきを考慮する場合には、考慮しない場合に比べ、さらに大きな電圧差が要求される。
【００４４】
図６は、相補リード方式による読み出しを行うセンスアンプＳＡ１における電流量のばらつきによる影響を説明する図である。図６において、上部の図は、センスアンプＳＡ１の入出力関係を示す模式図であり、下部の図は、センスアンプＳＡ１に入力される信号線の電圧の時間推移を示すグラフである。温度条件及び電圧条件に依存したメモリセル電流のばらつきは、高閾値電圧状態のメモリセル及び低閾値電圧状態のメモリセルに対し同じ特性となる。すなわち、センスタイミングｔ２の時点において、メモリセルＭ１ａのビット線ＢＬの電圧がばらつきの影響を受ける場合、メモリセルＭ１ｂのビット線ＢＬの電圧も同様の影響を受ける。このため、相補リード方式では、高閾値電圧状態のメモリセルのビット線ＢＬの電圧のばらつき上限と低閾値電圧状態のメモリセルのビット線ＢＬの電圧のばらつき上限の電圧差、又は高閾値電圧状態のメモリセルのビット線ＢＬの電圧のばらつき下限と低閾値電圧状態のメモリセルのビット線ＢＬの電圧のばらつき下限の電圧差が、センス可能な電圧差以上であればデータを正しく読み出すことができる。つまり、相補リード方式では、その原理により、温度条件及び電圧条件によるメモリセル電流のばらつきの影響がない。
【００４５】
このように、ばらつきを考慮した場合、相補リード方式では、メモリセルが高閾値電圧状態にある場合のビット線ＢＬの電圧と低閾値電圧状態にある場合のビット線ＢＬの電圧との差を、参照リード方式と比較して、より小さくできる。高閾値電圧状態時のビット線ＢＬの電圧と低閾値電圧状態時のビット線ＢＬの電圧との電圧差を小さくできるということは、高閾値電圧状態の閾値電圧と低閾値電圧状態の閾値電圧の差を小さくできるということを意味する。このため、一般的に、相補リード方式では、書き込み回数及び消去回数の増加、又はデータの保持期間の長期化にともない、高閾値電圧状態に設定されたメモリセルと低閾値電圧状態に設定されたメモリセルの閾値電圧の差が小さくなった場合でも、データを正しく読み出すことが可能となる。つまり、一般的に、相補リード方式は、参照リード方式よりもリンテンション特性が優れている。
【００４６】
相補リード方式は、このようなメリットを有するものの、上述の通り消去後の読み出し結果が不定となる。これに対し、参照リード方式では参照電流を用いた比較により読み出されるため消去後の値を確定することができる。これは、消去により高閾値電圧状態に設定されたメモリセルのビット線ＢＬの電圧は、信号線ＩＬの電圧よりも小さくなるからである。本実施の形態にかかるフラッシュメモリ１００は、相補リード方式で読み出されるデータメモリ部１５０と、参照リード方式で読み出されるステータスメモリ部１５１とを有する。このため、フラッシュメモリ１００によれば、相補リード方式でデータを記憶しつつ、ステータスフラグの値を消去後に一意に確定することができる。
【００４７】
ここで、参照リード方式で読み出されるステータスメモリ部１５１についても、相補リード方式と同等のリンテンション特性を達成できることが好ましい。相補リード方式と同等のリンテンション特性を達成するためには、ステータスメモリ部１５１を構成するメモリセルのビット線ＢＬの電圧と信号線ＩＬの電圧のセンスタイミング時点での差を大きくすればよい。これを実現するためには、同じ値を保持する複数のメモリセルをビット線ＢＬに接続し、より大きなメモリセル電流が得られるようにすればよい。したがって、本実施の形態にかかるフラッシュメモリ１００において、ステータスメモリ部１５１は、同一の値のステータスフラグが記憶される複数のフラッシュメモリセルを備えている。
【００４８】
ここでは、一例として、参照リード方式で１個のメモリセルＭ２ａに値を保持する場合と、４個のメモリセルＭ２ａ〜Ｍ２ｄに同一の値を保持する場合の差異について説明する。図７は、参照リード方式で１個のメモリセルＭ２ａに値を保持する場合のセンスアンプＳＡ２について説明する図である。図７において、上部の図は、センスアンプＳＡ２の入出力関係を示す模式図であり、下部の図は、センスアンプＳＡ２に入力される信号線の電圧の時間推移を示すグラフである。なお、グラフはメモリセル電流のばらつきを考慮して図示している。図７で示した例では、センスタイミングｔ２の時点で、センスに必要な電圧差を確保できていない。
【００４９】
図８は、参照リード方式で４個のメモリセルＭ２ａ〜Ｍ２ｄに同一の値を保持する場合のセンスアンプＳＡ２について説明する図である。図８において、上部の図は、センスアンプＳＡ２の入出力関係を示す模式図であり、下部の図は、センスアンプＳＡ２に入力される信号線の電圧の時間推移を示すグラフである。なお、グラフはメモリセル電流のばらつきを考慮して図示している。４個のメモリセルを並列にセンスアンプＳＡ２に接続することで、高閾値電圧状態の際のビット線ＢＬの電圧と低閾値電圧状態の際のビット線ＢＬの電圧との差を大きくすることができる。なお、図８に示すグラフでは、参照電流の電流値は、信号線ＩＬの電圧が、高閾値電圧状態の際のビット線ＢＬの電圧と低閾値電圧状態の際のビット線ＢＬの電圧の間の電圧となるよう設定されている。
【００５０】
このため、高閾値電圧状態のメモリセルＭ２ａ〜Ｍ２ｄのビット線ＢＬの電圧のばらつきの下限値と信号線ＩＬの電圧との差、及び低閾値電圧状態のメモリセルＭ２ａ〜Ｍ２ｄのビット線ＢＬの電圧のばらつきの上限値と信号線ＩＬの電圧との差を、ともにセンスに必要な電圧差以上にすることができる。したがって、値を正しくリードすることが可能となる。このように、本実施の形態では、参照リード方式で読み出されるステータスメモリ部１５１が複数のフラッシュメモリセルを備えているため、１つのフラッシュメモリを備える場合よりもリンテンション特性を良くすることができる。なお、本実施の形態では、一例として、４個のメモリセルを一組として、ステータスメモリ部１５１に用いているが、この数は一例である。相補リード方式のデータメモリ部１５０と同等の書き込み回数及び消去回数、又は同等の保持期間後でも、十分な電圧差を発生させられるよう、実験又はシミュレーションなどに基づいて個数が決定されてもよい。
【００５１】
したがって、本実施の形態にかかるフラッシュメモリ１００においては、ステータスメモリ部１５１は次のように読み出される。まず、センスアンプ制御回路１０８の制御により、メモリセルＭ２ａ〜Ｍ２ｄのそれぞれに接続されたビット線ＢＬと信号線ＩＬが所定の電圧になるようプリチャージされる。その後、センスアンプ制御回路１０８の制御により、所定のディスチャージ開始タイミングｔ１において、メモリセルＭ２ａ〜Ｍ２ｄを流れる電流の合計電流によるビット線ＢＬのディスチャージ及び参照電流Ｉｒｅｆによる信号線ＩＬのディスチャージが行われる。そして、所定のセンスタイミングｔ２において、センスアンプＳＡ２は、ディスチャージ後のビット線ＢＬの電圧と信号線ＩＬの電圧を比較することにより、ステータスメモリ部１５１が記憶する値を判定する。なお、センスアンプＳＡ２は、ディスチャージ後のビット線ＢＬの電圧と信号線ＩＬの電圧を比較することにより、合計電流と参照電流の比較を実現し、それにより値を判定しているともいえる。
【００５２】
本実施の形態にかかるフラッシュメモリ１００において、同一のワード線ＷＬ上のデータメモリ部１５０及びステータスメモリ部１５１は、消去が同時に行われることが好ましい。それは、データメモリ部１５０が消去状態であるとき、ステータスメモリ部１５１の読み出し結果として、消去状態を示すステータスフラグ値を得ることが保証されるからである。また、本実施の形態にかかるフラッシュメモリ１００は、ステータスメモリ部１５１の書き込み処理が、このステータスメモリ部１５１と同一のワード線ＷＬ上のデータメモリ部１５０の書き込み処理とは別に実現されるよう構成されている。このため、データメモリ部１５０への書き込み処理後にステータスメモリ部１５１への書き込み処理を行うようにすることで、ステータスフラグ値の読み出し結果として、データメモリ部１５０にデータが書き込まれた状態であることを示す値が得られた場合、データメモリ部１５０に有効なデータが格納されていることが保障される。なお、同一のワード線ＷＬ上のデータメモリ部１５０及びステータスメモリ部１５１が個別に消去されてもよいし、同時に書き込みされてもよい。これらは、ステータフラグをどのような状態を示すフラグとして用いるかにより適宜選択されればよい事項である。
【００５３】
以上、実施の形態１にかかるフラッシュメモリ１００について説明した。フラッシュメモリ１００は、参照リード方式で読み出しが行われるステータスメモリ部３を有する。このため、消去処理後のステータスフラグの読み出し結果は、一意に確定される。また、本実施の形態では、ステータスフラグは、データメモリ部１５０のデータの書き込み状態を示すフラグである。このため、フラッシュメモリ１００では、消去処理後も、データメモリ部１５０にデータが書き込まれている状態であるか、データが消去されている状態であるかを正しく判定することが可能である。
【００５４】
また、参照リード方式で読み出されるステータスメモリ部１５１は、同一の値のステータスフラグが記憶される複数のフラッシュメモリセルを有する。このため、参照リード方式で読み出されるステータスメモリ部１５１のリンテンション特性を向上させることができる。
【００５５】
さらに、フラッシュメモリ１００によれば、リンテンション特性に優れたフラッシュメモリを低コストで作成できる。これについて説明するために、本実施の形態にかかるフラッシュメモリ１００とは異なり、３２ビットのデータを参照リード方式で読み出すことを考える。ここで、参照リード方式において、４つのメモリセルを用いることで、相補リード方式と同等のリンテンション特性が得られるものとする。この場合、相補リード方式においてデータメモリ部１５０を実現する場合に比べ２倍のメモリセルを要する。すなわち、この場合、データメモリ部１５０のための１２８（＝３２×４）個のメモリセルが必要とされる。これに対し、本実施の形態にかかるフラッシュメモリ１００では、データメモリ部１５０のための６４（＝３２×２）個と、ステータスメモリ部１５１のための４個とを合わせた、計６８個のメモリセルがあれば十分である。すなわち、メモリセル数を抑制しつつ優れたリンテンション特性を得ることができる。
【００５６】
＜実施の形態２＞
次に実施の形態２について説明する。図９は、実施の形態２にかかるフラッシュメモリ２００の構成例を示すブロック図である。フラッシュメモリ２００は、出力ドライバ１０９が出力ドライバ１１１に置き換えられた点で、実施の形態１にかかるフラッシュメモリ１００と異なる。なお、本実施の形態では、一例として、同一のワード線ＷＬ上のデータメモリ部１５０及びステータスメモリ部１５１は、消去が同時に行われ、また、書き込み処理も同時に行われるものとする。
【００５７】
出力ドライバ１１１は、データメモリ部１５０の読み出し値と、ステータスメモリ部１５１の読み出し値との論理和を演算する論理和回路ＯＲが追加されている点で、出力ドライバ１０９と異なる。このような構成により、出力ドライバ１１１は、データメモリ部１５０の読み出し値と、ステータスメモリ部１５１の読み出し値との論理和を演算し、演算結果をデータメモリ部１５０の読み出し結果として出力する。すなわち、センスアンプＳＡ１により読み出されたデータＤ３１〜Ｄ０は、ステータスフラグとの論理和が演算される。そして、その演算結果であるデータＥ３１〜Ｅ０が、データメモリ部１５０の読み出し結果として出力される。なお、出力ドライバ１１１は、出力部と称すことがある。
【００５８】
ここで、データメモリ部１５０の読み出しは相補リード方式で実施されるため、消去状態における読み出し値は不定である。これに対し、ステータスメモリ部１５１の読み出しは参照リード方式で実施されるため、データメモリ部１５０の消去処理とともに消去処理がなされたステータスメモリ部１５１の読み出し値は「１」になる。したがって、データメモリ部１５０が消去状態である場合、論理演算後に読み出し結果として得られるデータＥ３１〜Ｅ０の値は、いずれも「１」となる。これに対し、データメモリ部１５０にデータが書き込まれている場合、データメモリ部１５０への書き込み処理とともに書き込み処理がなされたステータスメモリ部１５１の読み出し値は「０」になる。したがって、データメモリ部１５０にデータ書き込まれている場合、論理演算後に読み出し結果として得られるデータＥ３１〜Ｅ０の値は、データＤ３１〜Ｄ０の値と同じとなる。
【００５９】
参照リード方式のフラッシュメモリ向けに開発されたアルゴリズム又はソフトウェアは、メモリセルが消去状態にある際のデータの読み出し結果が「１」に固定されることを前提にして、データの状態を判定することが多い。本実施の形態にかかるフラッシュメモリ２００によれば、データメモリ部１５０の読み出し値とステータスフラグとの論理和を、データメモリ部１５０の読み出し結果として出力する。このため、消去状態のメモリセルの読み出し結果として、参照リード方式のみで読み出しが行われるフラッシュメモリと同様の結果を得ることが可能となる。したがって、本実施の形態によれば、参照リード方式のフラッシュメモリ向けに開発されたアルゴリズム又はソフトウェアを、相補リード方式を含むフラッシュメモリであるフラッシュメモリ２００に流用可能となる。
【００６０】
＜実施の形態３＞
次に実施の形態３について説明する。実施の形態３は、データメモリ部１５０への書き込み処理が異常等により中断したことを示す中断検知フラグがフラッシュメモリに記憶可能である点で、実施の形態２と異なる。図１０は、実施の形態３にかかるフラッシュメモリ３００を搭載したマイクロコントローラ１０の構成例を示すブロック図である。なお、マイクロコントローラ１０は、記憶装置と称すことがある。
【００６１】
図１０に示すように、マイクロコントローラ１０は、ＣＰＵ（Central Processing Unit）４００と、ＲＡＭ（Random Access Memory）５００と、フラッシュメモリ３００と、電圧監視回路６００と、フラッシュシーケンサ７００と、周辺バス８００とを有する。周辺バス８００は、ＣＰＵ４００、電圧監視回路６００、及びフラッシュシーケンサ７００が接続されるバスである。
【００６２】
ＣＰＵ４００は、フラッシュメモリ３００又はまたはＲＡＭ５００に格納されたプログラム（ソフトウェア）及びデータに基づいて処理を実行する。なお、フラッシュメモリ３００に対する書き込み処理の実行中又は消去処理の実行中など、フラッシュメモリ３００の読み出しが実行できない場合には、事前にフラッシュメモリ３００からＲＡＭ５００にプログラムをコピーすることで、ＣＰＵ４００は、当該プログラムに基づく処理を継続することが可能である。ＲＡＭ５００は、ＣＰＵ４００によって利用されるデータ等が格納される揮発性メモリである。フラッシュメモリ３００は、実施の形態２にかかるフラッシュメモリ２００と概ね同様であるが、中断検知フラグが格納されるメモリ領域を有する点で異なる。フラッシュメモリ３００の詳細については後述する。
【００６３】
電圧監視回路６００は、マイクロコントローラ１０に供給される電源電圧を監視する回路である。電圧監視回路６００は、電圧検知部と称すことがある。なお、マイクロコントローラ１０に供給される電源電圧とは、マイクロコントローラ１０の構成要素の動作に必要とされる電源の電圧であり、例えばフラッシュメモリ３００に供給される電源電圧を含む。電圧監視回路６００は、電源電圧が所定値以下となったことを検知する。電圧監視回路６００は、電源電圧が所定値以下となったことを検知すると、フラッシュシーケンサ７００に電圧低下検知信号を出力する。以下の説明では、この所定値のことを、電圧低下検知レベルと称することとする。なお、本実施形態では、電圧監視回路６００は、電圧低下検知信号を出力するか否かを判定するために用いられる上述の電圧低下検知レベルを格納する記憶部（例えばレジスタ）を備えており、記憶部の内容を書き換えることにより電圧低下検知レベルは変更可能である。このため、電圧低下検知信号の出力を判断するための閾値を自由に変更することができる。具体的には、ＣＰＵ４００が、周辺バス８００に接続されている電圧監視回路６００の記憶部の記憶内容を書き換えることで実現できる。なお、電圧監視回路６００は、電圧の監視対象を決定するための設定値を記憶する記憶部を有してもよい。
【００６４】
本実施の形態では、フラッシュメモリ３００に対するＣＰＵ４００の書き込み処理及び消去処理は、フラッシュシーケンサ７００を介して実施される。なお、ＣＰＵ４００によるフラッシュメモリ３００からのデータの読み出しは、フラッシュシーケンサ７００を介して行われてもよいし、フラッシュシーケンサ７００を介することなく直接行われてもよい。
【００６５】
フラッシュシーケンサ７００は、フラッシュメモリ３００に対する書き込み処理及び消去処理などを制御する回路である。フラッシュシーケンサ７００は、制御部と称すことがある。フラッシュシーケンサ７００は、フラッシュメモリ３００のどのアドレスに対し書き込み処理又は消去処理をするかを指定するためのアドレスデータが格納されるアドレス指定レジスタを内蔵している。このアドレス指定レジスタには、ＣＰＵ４００から送信されたアドレスデータが格納される。また、フラッシュシーケンサ７００は、書き込み処理又は消去処理などを指示するコマンドが格納されるコマンド指定レジスタも内蔵している。このコマンド指定レジスタには、ＣＰＵ４００から送信されたコマンドデータが格納される。
【００６６】
ＣＰＵ４００は、予め定められた順序でコマンドデータをフラッシュシーケンサ７００に対して書き込むことで、フラッシュシーケンサ７００が実施する制御内容を指定する。フラッシュシーケンサ７００は、コマンド指定レジスタに書き込まれた一連のコマンドデータに対応する制御を、フラッシュメモリ３００のうち、アドレス指定レジスタに書き込まれたアドレスデータが示すアドレスに対して実施する。
【００６７】
ここでは、具体的な一例として図１１を参照し、フラッシュシーケンサ７００のコマンドについて説明する。図１１に示すように、フラッシュシーケンサ７００を制御するコマンドとして、データ書込みコマンドと、データ消去コマンドとが用意されている。
【００６８】
フラッシュメモリ３００に対してデータを書き込む場合、ＣＰＵ４００は、周辺バス８００を介して、アドレス指定レジスタにアドレスデータを書き込むことにより、フラッシュメモリ３００のうち、データを書き込むアドレスを指定する。そして、ＣＰＵ４００は、書き込みコマンドを示すコマンドデータをコマンド指定レジスタに順次書き込む。より具体的には、ＣＰＵ４００は、フラッシュメモリ３００に対して４バイトのデータを書き込む場合には、図１１に示すように、Ｈ’Ｅ８、Ｈ’０２、４バイトのデータ（２バイトのデータを２回）、Ｈ’Ｄ０の順番でコマンドデータをコマンド指定レジスタに順次書き込む。また、ＣＰＵ４００は、フラッシュメモリ３００に対して１６バイトのデータを書き込む場合には、図１１に示すように、Ｈ’Ｅ８、Ｈ’０８、１６バイトのデータ（２バイトのデータを８回）、Ｈ’Ｄ０の順番でコマンドデータをコマンド指定レジスタに順次書き込む。なお、「Ｈ’」は、それに続く数値が１６進数表記であることを意味する。
【００６９】
これに応じて、フラッシュシーケンサ７００は、フラッシュメモリ３００のうち、アドレス指定レジスタに書き込まれたアドレスデータが示すアドレスに対して、コマンド指定レジスタに対して書き込まれたデータを書き込む。すなわち、フラッシュシーケンサ７００は、２回目の書き込みでＨ’０２が書き込まれた場合には、３〜４回目に書き込まれた４バイトのデータを、アドレスデータで指定されたアドレスから４バイト分の領域に書き込む。また、フラッシュシーケンサ７００は、２回目の書き込みでＨ‘０８が書き込まれた場合には、３〜１０回目に書き込まれた１６バイトのデータを、アドレスデータで指定されたアドレスから１６バイト分の領域に書き込む。
【００７０】
フラッシュメモリ３００のデータを消去する場合、ＣＰＵ４００は、周辺バス８００を介して、アドレス指定レジスタにアドレスデータを書き込むことにより、フラッシュメモリ３００のうち、データを消去するブロックのアドレスを指定する。そして、ＣＰＵ４００は、データ消去コマンドを示すコマンドデータをコマンド指定レジスタに順次書き込む。より具体的には、ＣＰＵ４００は、Ｈ’２０、Ｈ’Ｄ０の順番でコマンドデータをコマンド指定レジスタに順次書き込む。これに応じて、フラッシュシーケンサ７００は、フラッシュメモリ３００のうち、アドレス指定レジスタに書き込まれたアドレスデータが示すアドレスのブロックのデータを消去する。
【００７１】
次に、本実施の形態にかかるフラッシュメモリ３００について説明する。図１２は、実施の形態３にかかるフラッシュメモリ３００の構成例を示すブロック図である。フラッシュメモリ３００は、メモリセルアレイ１１０が中断検知メモリ部１５２を有する点で、実施の形態２にかかるフラッシュメモリ２００と異なる。したがって、フラッシュメモリ３００において、データメモリ部１５０及びステータスメモリ部１５１の構成及び動作については実施の形態２にかかるフラッシュメモリ２００と同様である。以下、実施の形態２と異なる構成及び動作について説明する。なお、本実施の形態では、一例として、中断検知メモリ部１５２は、同一のワード線ＷＬ上のデータメモリ部１５０及びステータスメモリ部１５１と、同時に消去が行われるものとする。また、中断検知メモリ部１５２は、同一のワード線ＷＬ上のデータメモリ部１５０及びステータスメモリ部１５１とは別のタイミングにて書き込み処理を実行可能であるものとする。
【００７２】
本実施の形態にかかるメモリセルアレイ１１０に含まれるフラッシュメモリセルは、データメモリ部１５０を構成するフラッシュメモリセルと、ステータスメモリ部１５１を構成するフラッシュメモリセルと、中断検知メモリ部１５２を構成するフラッシュメモリセルとに分類される。
【００７３】
本実施の形態では、中断検知メモリ部１５２は、４つのメモリセルＭ３ａ、Ｍ３ｂ、Ｍ３ｃ、Ｍ３ｄを備えたメモリセルの領域である。中断検知メモリ部１５２は、中断検知フラグを記憶する点でステータスメモリ部１５１と異なるが、構成についてはステータスメモリ部１５１と同様である。したがって、中断検知メモリ部１５２は、参照リード方式で読み出されるフラッシュメモリセルを備えている。そして、このフラッシュメモリセルにより、書き込み処理の中断の有無を示す中断検知フラグが記憶される。
【００７４】
中断検知メモリ部１５２は、参照リード方式で読み出されるメモリセルであるため、メモリセルＭ３ａ、Ｍ３ｂ、Ｍ３ｃ、Ｍ３ｄは、それぞれ１ビットの情報を記憶可能である。しかしながら、ステータスメモリ部１５１と同様、メモリセルＭ３ａ、Ｍ３ｂ、Ｍ３ｃ、Ｍ３ｄには、同一の値の中断検知フラグが記憶される。つまり、１ビットの情報である中断検知フラグの値を、メモリセルＭ３ａ、Ｍ３ｂ、Ｍ３ｃ、Ｍ３ｄの全てに記憶させる。したがって、本実施の形態において、中断検知メモリ部１５２は、実質１ビットの情報を記憶する。
【００７５】
上述の通り、中断検知メモリ部１５２が記憶する中断検知フラグは、データメモリ部１５０への書き込み処理が中断したことを示すフラグである。より具体的には、同一のワード線ＷＬに接続されている３２個のデータメモリ部１５０において、書き込み処理中に書き込み処理の中断が発生したか否かを示すフラグである。
【００７６】
本実施の形態では、データメモリ部１５０への書き込み処理が中断されていない状態である場合、中断検知フラグ値として、「１」がメモリセルＭ３ａ、Ｍ３ｂ、Ｍ３ｃ、Ｍ３ｄのそれぞれに記憶される。このため、例えば、メモリセルＭ３ａ、Ｍ３ｂ、Ｍ３ｃ、Ｍ３ｄは、いずれも低閾値電圧状態に設定される。また、データメモリ部１５０への書き込み処理が中断された状態である場合、中断検知フラグ値として、「０」がメモリセルＭ３ａ、Ｍ３ｂ、Ｍ３ｃ、Ｍ３ｄのそれぞれに記憶される。このため、例えば、メモリセルＭ３ａ、Ｍ３ｂ、Ｍ３ｃ、Ｍ３ｄは、いずれも高閾値電圧状態に設定される。
【００７７】
なお、本実施の形態では、中断検知メモリ部１５２は４つのメモリセルにより構成されているが、これは一例であり、中断検知メモリ部１５２は、１以上のメモリセルにより構成されればよい。ただし、ステータスメモリ部１５１と同様、所望のリテンション特性を得るためには、複数のメモリセルにより構成されている方が好ましい。また、本実施の形態では、中断検知メモリ部１５２は、同一のワード線ＷＬに接続されている３２個のデータメモリ部１５０に対し、これらの状態を示す中断検知フラグとして１つの中断検知メモリ部１５２が設けられているが、Ｎ（Ｎは１以上の整数）個のデータメモリ部１５０に対し、１つの中断検知メモリ部１５２が設けられてもよい。
【００７８】
中断検知メモリ部１５２に記憶された中断検知フラグは、参照リード方式で読み出される。このため、中断検知メモリ部１５２のビット線ＢＬは、参照電流Ｉｒｅｆを流すことが可能な信号線ＩＬが入力側に接続されているセンスアンプＳＡ３と接続される。つまり、センスアンプＳＡ３には、中断検知メモリ部１５２の電流と参照電流との電流差をセンス可能なようにビット線ＢＬ及び信号線ＩＬが接続される。本実施の形態では、具体的には、メモリセルＭ３ａ、Ｍ３ｂ、Ｍ３ｃ、Ｍ３ｄの各ビット線ＢＬが、センスアンプＳＡ３に接続されている。なお、より詳細には、ビット線ＢＬは、トランジスタＴｒを介して、センスアンプＳＡ３に接続されている。
【００７９】
センスアンプＳＡ３は、センスアンプＳＡ２と同様、中断検知メモリ部１５２の各メモリセルを流れる電流（メモリセル電流）の合計電流と、参照電流とを比較することによって中断検知メモリ部１５２に記憶された中断検知フラグの値を判定する回路である。このため、センスアンプＳＡ３の入力側には、メモリセル電流との比較対象である参照電流Ｉｒｅｆが流れる信号線ＩＬが接続されている。信号線ＩＬは、参照電流Ｉｒｅｆを提供する定電流源ＣＣＳ２に接続されている。センスアンプＳＡ３は、判定した中断検知フラグ値を、読み出し結果として出力ドライバ１０９に出力する。これにより、出力ドライバ１０９からは、中断検知フラグが出力される。
【００８０】
このように、フラッシュメモリ１００は、外部からの読み出し要求に応じて、データＤ３１〜Ｄ０の出力とステータスフラグの出力と中断検知フラグの出力とが可能である。
【００８１】
ここで、マイクロコントローラ１０に供給される電源電圧が何らかの理由により所定の電圧より低下した場合について詳述する。データメモリ部１５０及びステータスメモリ部１５１の書き込み処理中に電源電圧が低下すると、正常に書き込み処理を実行できる電圧を維持できる時間内に書き込みが正常に完了せず、誤った値がメモリセルに保持される可能性がある。ここで、データメモリ部１５０及びステータスメモリ部１５１は、合計６８個のメモリセルで構成されている。これに対し、中断検知メモリ部１５２は４個のメモリセルで構成されている。すなわち、中断検知メモリ部１５２を構成するメモリセルの数は、データメモリ部１５０及びステータスメモリ部１５１のメモリセル数よりも少ない。また、中断検知メモリ部１５２を構成するメモリセルの数は、データメモリ部１５０のメモリセルの数よりも少ないともいえる。メモリセルへの書き込み処理で用いられる書き込み電流の電流値が同一の場合、書き込み対象のメモリセル数が少ない方が、より短時間で書き込みが完了する。このため、中断検知フラグの書き込みは、データメモリ部１５０及びステータスメモリ部１５１への書き込みよりも短時間で完了できる。
【００８２】
本実施の形態では、フラッシュシーケンサ７００は、データメモリ部１５０への書き込み処理中に、電圧監視回路６００により電源電圧が電圧低下検知レベル以下となったことが検知された場合、データメモリ部１５０への書き込み処理を中断し、かつ、中断検知メモリ部１５２へ中断の実施を示す中断検知フラグ値を書き込むよう制御する。このため、電源電圧が低下後、正常に書き込み処理を実行できる電圧を下回る前に、書き込み処理が中断され、中断検知フラグの書き込みが実施される。この中断検知フラグの書き込みは、上述の通り、短時間で完了できるため正常に書き込みを終了することが可能である。また、特に、本実施の形態では、フラッシュシーケンサ７００は、データメモリ部１５０への書き込み処理を中断後、中断検知メモリ部１５２へ中断の実施を示す中断検知フラグ値を書き込むよう制御する。このため、中断検知メモリ部１５２に対する書き込み電流を最大化することができる。データメモリ部１５０への書き込みを継続しつつ、中断検知メモリ部１５２への書き込みを行う場合、データメモリ部１５０への書き込みと中断検知メモリ部１５２への書き込みに分散して書き込み電流を使用することとなる。これに対し、本実施の形態では、データメモリ部１５０への書き込みを中断後に、中断検知メモリ部１５２への書き込みが行われるため、書き込み電流を中断検知メモリ部１５２の書き込みで専用することが可能となる。このため、中断検知メモリ部１５２への書き込み時間をより短くすることできる。
【００８３】
本実施の形態では、電源電圧の低下の検知後、中断検知メモリ部１５２の書き込みを正常に終了時できるだけの時間が確保されるよう電圧監視回路６００の検知が行われる。ここで、電圧監視回路６００に設定される電圧低下検知レベルの決定方法について図１３を用いて説明する。単位時間当たりの電源電圧の低下率は、マイクロコントローラ１０の消費電流と、電源供給ラインに付加されたコンデンサの容量等の電源供給側の能力とにより求めることができる。したがって、中断検知フラグの書き込みに必要な処理時間の間に低下する電圧値ΔＶをこの低下率に従って計算し、書き込み可能電圧の下限にこの電圧値ΔＶを加算することで、電圧低下検知レベルが算出可能である。
【００８４】
なお、データメモリ部１５０及びステータスメモリ部１５１への書き込み時間は中断検知メモリ部１５２の書き込み時間よりも長くなるため、データメモリ部１５０及びステータスメモリ部１５１への書き込みに必要な処理時間の間に低下する電圧値（ΔＶｄｓと称すこととする）は、上記ΔＶの値よりも大きな値となる。このため、書き込み可能電圧の下限にΔＶｄｓを加算すると通常動作電圧を超えてしまい、電圧低下検知レベルを設定できない可能性がある。また、ΔＶに基づいて設定した電圧低下検知レベルに電源電圧が到達後もデータメモリ部１５０及びステータスメモリ部１５１の書き込みを継続すると、書き込み可能電圧の下限に電源電圧が到達した時点においても書き込みを完了できていない可能性がある。したがって、本実施の形態では、上述のように、電圧低下検知レベルを設定するとともに、書き込みの中断制御を行っている。
【００８５】
次に、本実施の形態にかかるマイクロコントローラ１０における書き込み動作について説明する。図１４は、データメモリ部１５０への書き込み時のフラッシュシーケンサ７００の動作の一例を示すフローチャートである。以下、図１４に沿って、動作を説明する。なお、図１４に示すフローチャートの動作に先立って、中断検知メモリ部１５２は消去処理がされており、消去処理時に設定された「１」が、中断検知フラグ値として保持されているものとする。
【００８６】
ステップ１０（Ｓ１０）において、フラッシュシーケンサ７００は、データメモリ部１５０への書き込みコマンドを受信し、データメモリ部１５０への書き込み処理を開始する。なお、本実施の形態では、より具体的には、データメモリ部１５０への書き込みと同時にステータスメモリ部１５１のステータスフラグの書き込みも同時に行われる。
【００８７】
電圧監視回路６００からの電圧低下検知信号が受信されない場合には、フラッシュシーケンサ７００はデータ書き込み処理が完了するまで処理を継続する。書き込み処理の途中で電圧監視回路６００からの電圧低下検知信号が受信された場合には、フラッシュシーケンサ７００は中断検知フラグの書き込み処理を開始する。
【００８８】
この処理では、まず、ステップ１１（Ｓ１１）において、フラッシュシーケンサ７００は、データメモリ部１５０への書き込み処理を中断する。より具体的には、本実施の形態では、フラッシュシーケンサ７００は、データメモリ部１５０への書き込み及びステータスメモリ部１５１の書き込みを中断する。次に、ステップ１２（Ｓ１２）において、フラッシュシーケンサ７００は、中断検知フラグの書き込み処理を実施する。より詳細には、ステップ１０において書き込み対象となっていたデータメモリ部１５０に対応する中断検知メモリ部１５２に対して中断検知フラグの書き込み処理が実施される。中断検知フラグの書き込み処理が完了すると、中断検知フラグ値として中断検知メモリ部１５２には「０」が保持される。
【００８９】
以上、実施の形態３について説明した。本実施の形態では、参照リード方式で読み出され、書き込みの中断有無を示す中断検知フラグを記憶する中断検知メモリ部１５２が設けられている。このため、データメモリ部１５０及びステータスメモリ部１５１における書き込み処理の中断の有無を判定可能である。また、仮に、中断検知フラグが相補リード方式で読み出される場合、過去に中断が検知され、中断検知フラグが書き込まれたときには、中断検知メモリ部１５２を消去しても依然として「０」が読み出される可能性がある。このため、中断有無を判別不能となる恐れがある。これに対し、本実施の形態では、中断検知メモリ部１５２は、参照リード方式で読み出されるため、消去状態の値が確定され、そのような問題が回避される。
【００９０】
なお、本実施の形態では、データメモリ部１５０及びステータスメモリ部１５１は、書き込みが同時に行われ、消去も同時に行われるものとして説明したが、書き込みが別々に行われてもよいし、消去が別々に行われてもよい。
【００９１】
また、本実施の形態では、マイクロコントローラ１０に内蔵した電圧監視回路６００からフラッシュシーケンサ７００に電圧低下を通知し、通知後の処理をフラッシュシーケンサ７００が制御する例を示した。しかしながら、他の構成によりこれらが実現されてもよい。例えば、電圧低下の通知方法としては、例えば下記の３通りが考えられる。
【００９２】
通知方法１：
マイクロコントローラ１０内部の電圧監視回路で検知し、内部信号で通知する（実施の形態３として示した通知方法）。
通知方法２：
マイクロコントローラ１０外部の電源制御回路で検知し、マイクロコントローラ１０の割り込み端子を介して通知する。
通知方法３：
マイクロコントローラ１０外部の電源制御回路で検知し、マイクロコントローラ１０のリセット端子を介して通知する。
【００９３】
なお、電圧監視回路及び電源制御回路は、電圧検知部と称すことがある。また、電圧低下の通知先及び通知後の処理方法としては、下記の３通りが考えられる。
【００９４】
制御方法１：
電圧低下の通知がフラッシュシーケンサ７００になされる。フラッシュシーケンサ７００がデータ書き込みを中断して、中断検知フラグの書き込みを実施する（実施の形態３として示した制御方法）。
制御方法２：
電圧低下の通知が、マイクロコントローラ１０の割り込みコントローラ（図示せず）になされる。ＣＰＵ４００のソフトウェア処理でフラッシュシーケンサ７００に、データ書き込みの中断と中断検知フラグの書き込みとを指示して、中断検知フラグの書き込みを実施する。
制御方法３：
電圧低下の通知が、マイクロコントローラ１０のシステム制御部（図示せず）になされる。フラッシュシーケンサ７００とフラッシュメモリ１００以外の構成要素はリセットした状態で、システム制御部からフラッシュシーケンサ７００に中断検知フラグ書き込みを指示する信号を出力し、フラッシュシーケンサ７００がデータ書き込みを中断するとともに中断検知フラグの書き込みを実施する。
【００９５】
上記した通知方法及び制御方法の組み合わせとしては、例えば、下記の５通りがある。すなわち、組み合わせ例としては、通知方法１と制御方法１とを組み合わせた実施形態、通知方法１と制御方法２とを組み合わせた実施形態、通知方法２と制御方法１とを組み合わせた実施形態、通知方法２と制御方法２とを組み合わせた実施形態、及び、通知方法３と制御方法３とを組み合わせた実施形態が考えられる。
【００９６】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。例えば、実施の形態３では、実施の形態２にかかるフラッシュメモリ２００に中断検知メモリ部１５２を追加したが、実施の形態１にかかるフラッシュメモリ１００に中断検知メモリ部１５２を追加してもよい。
【符号の説明】
【００９７】
１    記憶装置
２、１５０    データメモリ部
３、１５１    ステータスメモリ部
４、５    フラッシュメモリセル
１０    マイクロコントローラ
１００、２００、３００    フラッシュメモリ
１０１    電源回路
１０２    書き込み系回路
１０３    アドレスバッファ
１０４    プリデコード回路
１０５    デコーダ
１０６    ＷＬドライバ
１０７    センスアンプ回路
１０８    センスアンプ制御回路
１０９、１１１    出力ドライバ
１１０    メモリセルアレイ
１５２    中断検知メモリ部
６００    電圧監視回路
７００    フラッシュシーケンサ
８００    周辺バス
ＢＬ    ビット線
ＣＣＳ１、ＣＣＳ２    定電流源
ＩＬ    信号線
Ｉｒｅｆ    参照電流
Ｌ    ラッチ回路
Ｍ１ａ、Ｍ１ｂ、Ｍ２ａ、Ｍ２ｂ、Ｍ２ｃ、Ｍ２ｄ、Ｍ３ａ、Ｍ３ｂ、Ｍ３ｃ、Ｍ３ｄ    メモリセル
ＯＲ    論理和回路
ＳＡ１、ＳＡ２、ＳＡ３    センスアンプ
Ｔｒ    トランジスタ
ＷＬ    ワード線
【図１】
2018156713.tif 000003
【図２】
2018156713.tif 000004
【図３】
2018156713.tif 000005
【図４】
2018156713.tif 000006
【図５】
2018156713.tif 000007
【図６】
2018156713.tif 000008
【図７】
2018156713.tif 000009
【図８】
2018156713.tif 000010
【図９】
2018156713.tif 000011
【図１０】
2018156713.tif 000012
【図１１】
2018156713.tif 000013
【図１２】
2018156713.tif 000014
【図１３】
2018156713.tif 000015
【図１４】
2018156713.tif 000016