(57)【要約】【課題】不揮発性メモリ装置において、クロックに混入するノイズによる誤動作を抑制する。【解決手段】不揮発性メモリ装置１０は、不揮発性のメモリ領域を含むデータ格納部１４と、所定のデータ入力に対応して入力されたクロックをカウントするクロックカウンタ２８と、クロックカウンタ２８によってカウントされた実クロック数と、当該データ処理に対応して本来入力されるべき既定クロック数とを比較し、実クロック数が既定クロック数より多い場合をクロックのオーバーランとして検出するオーバーラン検出回路３０と、を含む。制御回路１８は、オーバーランが検出されたときには、データ書き込みを実行しないよう各部を制御する。【選択図】図１
2005071512.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性のメモリ領域を含むメモリアレイと、
所定のデータ処理を行うべく入力されたクロックをカウントするクロックカウンタと、
前記クロックカウンタによってカウントされた実クロック数と、前記データ処理に対応して本来入力されるべき既定クロック数とを比較し、実クロック数が既定クロック数より多い場合をクロックのオーバーランとして検出するオーバーラン検出回路と、
を含み、前記オーバーランが検出されたときには、前記メモリアレイへのデータ書き込みを実行しないことを特徴とする不揮発性メモリ装置。
【請求項２】
前記オーバーラン信号を格納するステータスレジスタを備えることを特徴とする請求項１に記載の不揮発性メモリ装置。
【請求項３】
前記ステータスレジスタは、少なくとも、前記オーバーラン信号と、書き込みが完了したことを示す書き込み状態信号とを格納し、
前記格納されたオーバーラン信号および書き込み状態信号が、入力されたクロックに基づいてシリアルデータとして出力されることを特徴とする請求項２に記載の不揮発性メモリ装置。
【請求項４】
不揮発性のメモリ領域を含むメモリアレイと、
入力されたシリアルデータを一時的に格納するデータレジスタと、
入力されたシリアルデータをデコードしてコマンドコードを取得するコマンドデコーダと、
前記取得されたコマンドコードに基づいて前記シリアルデータの終端ビットまでの既定クロック数を取得する既定クロック数取得部と、
前記シリアルデータに対応するチップセレクト信号またはチップイネーブル信号の終端を検出する終端検出部と、
入力されたクロックをカウントするクロックカウンタと、
前記クロックカウンタによって前記終端までにカウントされた実クロック数と取得された前記既定クロック数とを比較し、実クロック数が既定クロック数より多い場合にオーバーラン信号を生成するオーバーラン検出回路と、
前記オーバーラン検出信号を格納するステータスレジスタと、
を含み、前記ステータスレジスタに前記オーバーラン信号が格納されているときには、前記データレジスタから前記メモリアレイへのデータ書き込みを実行せず、ステータスレジスタにオーバーラン信号が格納されていないときにのみ、データレジスタからメモリアレイへのデータ書き込みを実行することを特徴とする不揮発性メモリ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
シリアルデータの書き込み／読み出しが可能なＥＥＰＲＯＭ（Electronically  Erasable  and  Programmable  Read  Only  Memory）やフラッシュメモリ等の不揮発性メモリを含む装置に関する。
【背景技術】
【０００２】
ＥＥＰＲＯＭやフラッシュメモリ等の不揮発性メモリは、大容量化、小型化が進み、その用途は益々拡大しつつある。このような不揮発性メモリのうち、シリアルポートに直結可能なシリアルインタフェース機能を有するものがある（例えば特許文献１、特許文献２参照）。
【０００３】
【特許文献１】特開平６−１６８１４７号公報
【特許文献２】特開平５−６１７８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
シリアルインタフェース機能を有する不揮発性メモリは、外部の制御デバイス（例えばシリアルＰＲＯＭ等）との間でシリアルデータの通信を行うことができる。しかしながら、その通信に際し、何らかの原因により、データやクロックにノイズが重畳する可能性が全く無いとは言えない。メモリに対する書き込みはクロックに基づいて行われるため、万一クロックにノイズが重畳すると、メモリに誤ったデータを書き込んでしまったり、メモリ内のデータを誤って消去してしまったりということもありうる。
【課題を解決するための手段】
【０００５】
本発明にかかる不揮発性メモリ装置は、不揮発性のメモリ領域を含むメモリアレイと、所定のデータ処理を行うべく入力されたクロックをカウントするクロックカウンタと、上記クロックカウンタによってカウントされた実クロック数と、上記データ処理に対応して本来入力されるべき既定クロック数とを比較し、実クロック数が既定クロック数より多い場合をクロックのオーバーランとして検出するオーバーラン検出回路と、を含み、上記オーバーランが検出されたときには、上記メモリアレイへのデータ書き込みを実行しない。
【０００６】
また、上記本発明にかかる不揮発性メモリ装置では、上記オーバーラン信号を格納するステータスレジスタを備えるのが好適である。
【０００７】
また、上記本発明にかかる不揮発性メモリ装置では、上記ステータスレジスタは、少なくとも、上記オーバーラン信号と、書き込みが完了したことを示す書き込み状態信号とを格納し、上記格納されたオーバーラン信号および書き込み状態信号が、入力されたクロックに基づいてシリアルデータとして出力されるのが好適である。
【０００８】
また、本発明にかかる不揮発性メモリ装置は、不揮発性のメモリ領域を含むメモリアレイと、入力されたシリアルデータを一時的に格納するデータレジスタと、入力されたシリアルデータをデコードしてコマンドコードを取得するコマンドデコーダと、上記取得されたコマンドコードに基づいて上記シリアルデータの終端ビットまでの既定クロック数を取得する既定クロック数取得部と、上記シリアルデータに対応するチップセレクト信号またはチップイネーブル信号の終端を検出する終端検出部と、入力されたクロックをカウントするクロックカウンタと、上記クロックカウンタによって上記終端までにカウントされた実クロック数と取得された上記既定クロック数とを比較し、実クロック数が既定クロック数より多い場合にオーバーラン信号を生成するオーバーラン検出回路と、上記オーバーラン検出信号を格納するステータスレジスタと、を含み、上記ステータスレジスタに上記オーバーラン信号が格納されているときには、上記データレジスタから上記メモリアレイへのデータ書き込みを実行せず、ステータスレジスタにオーバーラン信号が格納されていないときにのみ、データレジスタからメモリアレイへのデータ書き込みを実行する。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の好適な実施形態について図面を参照して説明する。図１は、本実施形態にかかる不揮発性メモリ装置１０の機能ブロックの一例を示す図、図２は不揮発性メモリ装置１０に入力あるいは不揮発性メモリ装置１０で生成される各信号のタイミングチャートの一例を示す図（ただしクロック正常時）、図３は、不揮発性メモリ装置１０のメモリアレイ１２におけるメモリマップ構成の一例を示す図、また図４は、クロックのオーバーランが検知された場合における各信号のタイミングチャートの一例を示す図である。なお、図２および図４において横軸は時間である。
【００１０】
本実施形態にかかる不揮発性メモリ装置１０は、外部デバイス（図示せず）との間でシリアルデータの授受が可能であり、当該外部デバイスからの命令に応じてデータの書き込み、読み出し、消去等の動作を行う。かかる動作を実行すべく、不揮発性メモリ装置１０には、図１の例では、チップセレクト（ＣＳ）、シリアルデータ（ＤＩＮ）、およびシリアルクロック（ＳＣＬＫ）の各信号が入力される。
【００１１】
このうちチップセレクト（ＣＳ）は、図２に示すように、例えば、一連のシリアルクロック（ＳＣＬＫ）の入力が開始される前にＬ（ロー）レベルからＨ（ハイ）レベルとなり、かつ当該一連のシリアルクロック（ＳＣＬＫ）の入力が終了した後に再びＬレベルとなる。またシリアルデータ（ＤＩＮ）は、例えば、シリアルクロック（ＳＣＬＫ）の各パルスの立ち下がり（Ｈ→Ｌ）から次のパルスの立ち下がりまでの区間を１ビットとして送信される。なお図２の例では、一連の３２個のクロックパルスに同期して３２ビットのシリアルデータが入力されている。ただしこれはあくまでも一例であって、入力されるクロックパルスの数よりシリアルデータ（ＤＩＮ）のビット数が少なくなる場合もある。
【００１２】
そして入力されるシリアルデータ（ＤＩＮ）は、図２の例では、コマンドコード（ＣＤ）、アドレス（ＡＤ）、およびデータ（ＤＴ）を、この順に含む。このうちコマンドコード（ＣＤ）は、不揮発性メモリ装置１０の処理を指示するためのコードであり、これにより、例えば、書き込み、消去、読み出し等の各処理モードが指定される。またアドレス（ＡＤ）は、メモリアレイ１２（図３）中のアクセス先のアドレスを指定するコードである。そしてデータ（ＤＴ）は、処理対象として不揮発性メモリ装置１０に書き込まれるデータである。なお、上記コマンドコード（ＣＤ）およびアドレス（ＡＤ）のビット長（ただし各コード用に確保される領域）は、通常、固定値（図２の例ではそれぞれ８ビットずつ）とされる。これに対し、データ（ＤＴ）のビット長は、各処理モードに応じた長さとすることができる。すなわち、図２の例ではデータ（ＤＴ）のビット長は１６ビットとなっているが、処理モードに応じてこれを８ビットとしたり３２ビットとしたりすることも可能である。
【００１３】
上記入力される各信号に基づいて所定の処理を実行すべく、図１の不揮発性メモリ装置１０は、データ格納部１４、ステータスレジスタ１６、制御回路１８、アドレスデコーダ２０、データレジスタ２２、出力バッファ２４、クロック発生回路２６、クロックカウンタ２８、およびオーバーラン検出回路３０を含む。
【００１４】
このうち、データ格納部１４およびステータスレジスタ１６は、例えば、それぞれ異なるアドレス領域の割り当てられたメモリアレイ１２（図３）として構成される。そして、この例では、データ格納部１４は、不揮発性のＥＥＰＲＯＭ１４ａとＳＲＡＭ１４ｂとを含んでいる。そして、この例では、ＥＥＰＲＯＭ１４ａが主たるデータ格納領域として利用されている。またＳＲＡＭ１４ｂは、例えば、ＥＥＰＲＯＭ１４ａへのデータアクセスに関するワークデータ等のバッファとして利用することができる。なお、このＳＲＡＭ１４ｂに、接続される外部デバイスの諸状態を示す情報を格納するようにしてもよい。
【００１５】
一方、ステータスレジスタ１６には、不揮発性メモリ装置１０の動作の各状態を示すフラグが格納される。外部デバイスは、このフラグを取得することにより、例えば処理モード（テストモード、実動モード等）、各種処理の実行状態（実行中、実行完了等）、電源電圧（正常、異常等）、オーバーラン（後述）の有無、などの各種ステータスを認識することができる。もちろん、これらのフラグは不揮発性メモリ装置１０内の各部の動作（制御）にも利用される。
【００１６】
制御回路１８は、入力されたチップセレクト（ＣＳ）に応じて、各処理を開始する。図２の例の場合は、入力されたチップセレクト（ＣＳ）がＬからＨになった時点でイネーブルとなる。なお、チップセレクト（ＣＳ）に替えて、チップイネーブル等の他の信号に基づいて動作を開始してもよいし、ＨからＬとなったときに動作を開始するようにしてもよい。
【００１７】
そして制御回路１８は、イネーブルとなった後に入力されたシリアルデータ（ＤＩＮ）に基づいて動作する。まず制御回路１８では、シリアルデータ（ＤＩＮ）の先頭に含まれるコマンドコード（ＣＤ）がデコードされる。すなわち、この例では、制御回路１８がコマンドデコーダとしての機能を有する。
【００１８】
次いで制御回路１８では、シリアルデータ（ＤＩＮ）中のコマンドコード（ＣＤ）の次に含まれるアドレス（ＡＤ）が取得される。当該アドレスはアドレスデコーダ２０に送られ、ここでデコードされる。
【００１９】
データレジスタ２２とデータ格納部１４との間のデータ（ＤＴ）の授受は、上記取得されたコマンドコード（ＣＤ）に基づいて実行される。一例としてデータ（ＤＴ）の書き込みについて説明すると、シリアルデータ（ＤＩＮ）はデータレジスタ２２にも入力されるようになっており、当該シリアルデータ（ＤＩＮ）内のデータ（ＤＴ）が、制御回路１８からの指示入力（ＷＲ）に応じて、当該データレジスタ２２からデータ格納部１４に書き込まれる。このとき、アドレスデコーダ２０によって取得されたアドレスが、データ格納部１４内のアクセス先として指定される。なお、データ格納部１４に対するデータの書き込みあるいは消去に関しての指示入力（ＷＲ）は、クロックのオーバーランが検出されたときには出力されないようになっているが、これについては後に詳しく述べる。
【００２０】
一方、制御回路１８から出力された読み出しの指示入力（ＲＤ）に応じて、データ格納部１４から読み出されたデータは、データレジスタ２２を経由して出力バッファ２４に送られ、シリアルデータ（ＤＯＵＴ）として出力される。ちなみに、図２の例は、データ（ＤＴ）の書き込みについて示したものであり（かつ正常に動作した場合を示しているから）、シリアルデータ（ＤＯＵＴ）はＬレベルのままである。
【００２１】
そして制御回路１８は、入力されたチップセレクト（ＣＳ）に応じて、動作を終了する。図２の例の場合は、入力されたチップセレクト（ＣＳ）がＨからＬになった時点でディセーブルとなる。そのとき、制御回路１８はステータスレジスタ１６にアクセスし、ステータスレジスタ１６内の処理完了フラグを書き換える。具体的には、例えばＬレベル（＝処理実行中）をＨレベル（＝処理完了）に書き換える。すなわち、この例では、制御回路１８が終端検出部としての機能を有する。なお、この場合も、チップセレクト（ＣＳ）に替えて、チップイネーブル等の他の信号に基づいて動作を終了してもよいし、ＬからＨとなったときに動作を終了するようにしてもよい。
【００２２】
なお、クロック発生回路２６は、入力されたクロック（ＳＣＬＫ）に基づいてクロック信号を発生する。不揮発性メモリ装置１０内の各部は、このクロック信号に基づいて動作する。ただし、クロック発生回路２６を設けず、入力されたクロック（ＳＣＬＫ）によって不揮発性メモリ装置１０の各部が直接駆動されるようにしても構わない。
【００２３】
さて、本実施形態にかかる不揮発性メモリ装置１０は、クロックのオーバーラン検知機能を有しており、当該オーバーランが検知されたとき、すなわち既定数より多くのクロックが入力されたときには、クロックが誤って入力されたものとみなして、データの書き込みおよび消去が禁止されるようになっている。かかる処理を実行すべく、図１の不揮発性メモリ装置１０には、クロックカウンタ２８およびオーバーラン検出回路３０が設けられている。
【００２４】
上述したように、シリアルデータ（ＤＩＮ）中のデータ（ＤＴ）のビット数は処理モードに応じて異なるように設定される場合があり、その場合には有効な処理期間中に本来入力されるべき既定クロック数が処理モードによって変化することになる。そして、その場合のオーバーラン検知に際しては、制御回路１８において、取得したコマンドコードから当該コマンドコードに対応する既定クロック数、つまり処理モードに対応する既定クロック数が取得される。すなわち、この例では、制御回路１８が既定クロック数取得部としての機能を有する。ちなみに、図２の例では、シリアルデータ（ＤＩＮ）の先頭（ビット）から終端（ビット）までの既定クロック数は３２となる。そして、このようにして取得された既定クロック数は、オーバーラン検出回路３０に入力される。なお、この既定クロック数は、必ずしもシリアルデータ（ＤＩＮ）の先頭からのクロック数とする必要はなく、例えば、アドレス（ＡＤ）の先頭やデータ（ＤＴ）の先頭からデータ（ＤＴ）終端までのクロック数としてもよい。一例として、図２では、アドレス（ＡＤ）の先頭からデータ（ＤＴ）終端までのクロック数は２４であるが、こうした数値を既定クロック数として用いることも可能である。
【００２５】
一方、クロックカウンタ２８は、クロック発生回路２６の発生したクロック信号をカウントする。図１の例では、クロックカウンタ２８には、チップセレクト（ＣＳ）が入力されており、当該クロックカウンタ２８は、チップセレクト（ＣＳ）の有効期間（処理期間；図２の例の場合、チップセレクト（ＣＳ）の立ち上がりから立ち下がりまで）においてクロック信号をカウントし、そのカウント数、すなわち実クロック数をオーバーラン検出回路３０に渡す。なお、既定クロック数がシリアルデータ（ＤＩＮ）の先頭からのクロック数でない場合は、実クロック数もそれに対応する時点からカウントすることになる。その一例として、アドレス（ＡＤ）の先頭から終端までのクロック数と設定されている場合には、図１に破線の矢印で示すように、制御回路１８からクロックカウンタ２８にアドレス（ＡＤ）の開始点を示す信号を入力し、この信号が入力された時点からクロックのカウントを開始するようにすればよい。
【００２６】
オーバーラン検出回路３０は、制御回路１８より取得した既定クロック数と、クロックカウンタ２８より取得した実クロック数とを比較する。ここで、実クロック数が既定クロック数より多い場合には、オーバーラン検出回路３０あるいは制御回路１８からの信号に基づいて、ステータスレジスタ１６内のオーバーラン検知フラグ（ＯＲＤ）が書き換えられる。具体的には、図４に示すように、例えばＬレベル（＝オーバーラン発生無し）がＨレベル（＝オーバーラン発生）に書き換えられる。このオーバーラン検知フラグ（ＯＲＤ）がオーバーラン信号に相当する。
【００２７】
そして、制御回路１８は、オーバーランが検出されなかったときにのみ、データ格納部１４に対するデータ（ＤＴ）の書き込みおよびデータ格納部１４内のデータ消去を実行し、他方オーバーランが検出されたときには、データ格納部１４に対するデータ（ＤＴ）の書き込みおよびデータ格納部１４内のデータ消去を実行しないよう、各部を制御する。具体的には、例えば、図４に示すように、オーバーラン検知フラグ（ＯＲＤ）がＨレベルであるときには、制御回路１８からデータレジスタ２２に対して書き込みあるいは消去の指示信号（ＷＲ）が出力されず、また図２に示すように、オーバーラン検知フラグ（ＯＲＤ）がＬレベルであるときには当該指示信号（ＷＲ）が出力されるようにすればよい。上述したように、制御回路１８を含む各部は、クロック（ＳＣＬＫ）に基づいて動作するわけであるから、当該クロック（ＳＣＬＫ）に何らかのノイズが混入した場合には、本来のコマンドコード（ＣＤ）、アドレス（ＡＤ）、あるいはデータ（ＤＴ）とは異なる誤ったデータ列に基づいて書き込みあるいは消去が実行されてしまうおそれがある。そこで、本実施形態では、クロックのオーバーランを検出し、オーバーランが検出されたときにはデータの書き込みあるいは消去を実行しないようにすることで、そのような場合にも、データ格納部１４内のデータの保護を図ることができる。
【００２８】
また、本実施形態では、上述したように、外部デバイスがステータスレジスタ１６内のフラグを取得することができるようになっている。すなわち、外部デバイスは、オーバーラン検知フラグを取得することでオーバーランの有無を認識することができ、その場合には、例えば、不揮発性メモリ装置１０に対して、データの書き込みあるいは消去をリトライすることができる。あるいは、外部デバイスは、所定の出力機器（ディスプレイやモニタ等）を通じてユーザに異常発生（オーバーラン検知）を通知することも可能である。なお、オーバーラン検知フラグや処理完了フラグ等のデータは、例えばチップセレクト（ＣＳ）またはチップイネーブルの再入力等、リトライの実行にあたってリセットされるようになっており、第一回目のオーバーラン検知結果がリトライに支障を来すことがないように構成されている。
【００２９】
さらに、本実施形態では、外部デバイスから入力された指示データ（例えばシリアルデータ（ＤＩＮ）のコマンドコード（ＣＤ）として入力される）に基づいてステータスレジスタ１６内の各フラグのデータが出力バッファ２４に転送され、入力されたクロック（ＳＣＬＫ）に基づいて、所定の順でシリアルデータ（ＤＯＵＴ）として出力されるようになっている。このような構成により、外部デバイスは、処理完了あるいはオーバーランの発生、その他の情報も含む複数の情報を、専用線等を設けることなく既存の構成を利用して容易に取得することができる。
【００３０】
以上、本発明の好適な実施形態について説明したが、上述した実施形態はあくまで一例に過ぎず、他のフォーマットあるいはシーケンスの信号に対してもあるいは種々の等価回路によっても本発明にかかる不揮発性メモリ装置が実現可能であることは容易に理解できよう。
【図面の簡単な説明】
【００３１】
【図１】本発明の好適な実施形態にかかる不揮発性メモリ装置の機能ブロックの一例を示す図である。
【図２】図１の不揮発性メモリ装置でオーバーランが検知されない場合における各信号の一例を示す図である。
【図３】本発明の好適な実施形態にかかる不揮発性メモリ装置のメモリアレイ（メモリマップ）の一例を示す図である。
【図４】図１の不揮発性メモリ装置でオーバーランが検知された場合における各信号の一例を示す図である。
【符号の説明】
【００３２】
１０  不揮発性メモリ装置、１２  メモリアレイ、１４  データ格納部、１４ａ  ＥＥＰＲＯＭ、１４ｂ  ＳＲＡＭ、１６  ステータスレジスタ、１８  制御回路、２０  アドレスデコーダ、２２  データレジスタ、２４  出力バッファ、２６  クロック発生回路、２８  クロックカウンタ、３０  オーバーラン検出回路、ＣＳ  チップセレクト、ＳＣＬＫ  クロック、ＤＩＮ  （入力）シリアルデータ、ＤＯＵＴ  （出力）シリアルデータ、ＣＤ  コード、ＡＤ  アドレス、ＤＴ  データ、ＯＲＤ  オーバーラン検知フラグ（オーバーラン信号）、ＷＲ  （書き込み）指示信号、ＲＤ  （読み出し）指示信号。
【図１】
2005071512.tif 000003
【図２】
2005071512.tif 000004
【図３】
2005071512.tif 000005
【図４】
2005071512.tif 000006