(57)【要約】【課題】データのばらつきを有効に大きくすることができると共に、無駄なデータランダマイズ処理を防止することができる不揮発性半導体記憶装置を提供すること。【解決手段】メモリセルアレイに書き込むべきデータのばらつきの度合いを表す指標を演算し、前記指標が所定値以上であるかどうかを判定する判定回路と、前記判定回路による判定の結果、前記指標が前記所定値以上である場合、前記データを前記メモリセルアレイにそのまま出力し、前記指標が前記所定値を下回る場合、前記データをランダマイズして前記メモリセルアレイに出力するランダマイズ回路とを備える。【選択図】図１
2012133835.tif 000002
【特許請求の範囲】
【請求項１】
メモリセルアレイを備え、アドレス信号で指定される前記メモリセルアレイにデータを書き込むように構成された不揮発性半導体記憶装置であって、
前記メモリセルアレイに書き込むべきデータのばらつきの度合いを表す指標を演算し、前記指標が所定値以上であるかどうかを判定する判定回路と、
前記判定回路による判定の結果、前記指標が前記所定値以上である場合、前記データを前記メモリセルアレイにそのまま出力し、前記指標が前記所定値を下回る場合、前記データをランダマイズして前記メモリセルアレイに出力するランダマイズ回路と、
を備えた不揮発性半導体記憶装置。
【請求項２】
前記メモリセルアレイに書き込むべきデータがＮビット（Ｎは任意の自然数）からなるデータであるとしたときに、前記指標は、前記Ｎビットのデータに含まれる隣接する二つのビットの排他的論理和を演算することで得られる階差数列に含まれる「１」の個数であり、前記所定値は（Ｎ−１）／２であることを特徴とする請求項１記載の不揮発性半導体記憶装置。
【請求項３】
前記判定回路は、
前記メモリセルアレイに書き込むべきデータに含まれる隣接する二つのビットの排他的論理和を演算して前記階差数列を出力するための排他的論理和回路と、
前記排他的論理和回路から出力される階差数列に含まれる「１」の個数をカウントするためのカウント回路と、
前記カウント回路のカウント値と前記所定値とを比較する比較回路と、
を備えたことを特徴とする請求項２記載の不揮発性半導体記憶装置。
【請求項４】
前記ランダマイズ回路は、
前記アドレス信号に基づき乱数信号を発生させる乱数信号発生回路と、
前記判定回路の判定結果に応じて、前記乱数信号発生回路で発生された乱数信号により前記データを反転させ、または、そのまま出力するゲート回路と、
を備えたことを特徴とする請求項１ないし３の何れか１項記載の不揮発性半導体記憶装置。
【請求項５】
メモリセルアレイを備えた不揮発性半導体記憶装置において、アドレス信号で指定される前記メモリセルアレイにデータを書き込む方法であって、
前記メモリセルアレイに書き込むべきデータのばらつきの度合いを表す指標を演算し、前記指標が所定値以上であるかどうかを判定する段階と、
前記判定の結果、前記指標が前記所定値以上である場合、前記データをそのまま前記メモリセルアレイに出力し、前記指標が前記所定値を下回る場合、前記データをランダマイズして前記メモリセルアレイに出力する段階と、
を含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性半導体記憶装置及び方法に関し、特に、データランダマイズ処理機能を有する不揮発性半導体記憶装置及び方法に関する。
【背景技術】
【０００２】
フラッシュメモリなどの不揮発性半導体装置では、メモリセルが備えるフローティングゲート中の電子の量を制御することにより、メモリセルに対するデータのプログラム及び消去を行っている。例えば、メモリセルにデータ「１」をプログラムする場合、フローティングゲートに電子を注入し、このフローティングゲートを備えたトランジスターの見かけ上のゲート閾値を上昇させる。また、メモリセルのデータ「１」を消去する場合（即ち、データ「０」を書き込む場合）には、フローティングゲートから電子を引き抜き、上記トランジスターのゲート閾値を初期状態に戻す。
【０００３】
一般に、上述のメモリセルのフローティングゲートに対する電子の注入及び引き抜きは、そのメモリセルを構成するトランジスターのゲート酸化膜を介して行われるため、データの書き込み回数の増加に伴ってゲート酸化膜の劣化が進行し、メモリセルの電気的特性が徐々に変化する傾向を示す。このような現象は、特定のメモリセルに特定のデータのプログラムが繰り返されると、顕著になる。
【０００４】
また、データの書き込みモードにおいて、非選択メモリセルに保持されているデータが破壊される現象（プログラムディスターブ）が知られている。例えば、フラッシュメモリの場合、同一のワード線に接続された複数のメモリセルに対して連続的に同一データをプログラムする場合、そのワード線に接続された非選択メモリセルのゲートに対して長時間にわたってストレスが加えられる結果、その非選択メモリセルに保持されているデータが破壊される場合がある。
【０００５】
また、複数のメモリストリングでソース・ラインを共有するコモン・ソース・ライン方式を採用したフラッシュメモリにおいて、例えば、或るストリング内の全てのメモリセルにデータ「０」をプログラムし、他のストリング内の全てのメモリセルにデータ「１」をプログラムした場合、それぞれのストリングを流れる電流が異なったものになる。この結果、ベリファイ時またはリード時に、ソース・ラインの電位が変動しやすくなり、メモリセルのデータを誤検出することがある。
【０００６】
上述の各現象は、同一のデータが連続してプログラムされる場合、即ち、書き込むべきデータにおいて「０」および「１」の偏りが存在し、そのばらつきが小さい場合に顕著となる。そこで、従来、いわゆるデータランダマイズ処理により、データを書き込むときに、乱数に従ってデータを反転させ、メモリセルアレイに実際に書き込まれるデータ中の「０」と「１」のばらつきを大きくしている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００９−１６３７７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述の従来技術によれば、書き込むべきデータ中の「０」と「１」の偏りが小さく、そのばらつきが十分に大きいとしても、それとは関係なくデータランダマイズ処理が行われる。このため、データランダマイズ処理が無駄に行われる場合があるのみならず、リード時にはデータをランダマイズ処理前の配列に戻すためのランダマイズ解除処理が必要になる。また、データランダマイズ処理後のデータのばらつきが、必ずしもデータランダマイズ処理前の元のデータのばらつきよりも大きくなるとは限らず、逆にデータのばらつきが小さくなる可能性もある。
【０００９】
本発明は、上記事情に鑑みてなされたものであり、データのばらつきを有効に大きくすることができると共に、無駄なデータランダマイズ処理を防止することができる不揮発性半導体記憶装置及び方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するため、本発明に係る不揮発性半導体記憶装置は、メモリセルアレイを備え、アドレス信号で指定される前記メモリセルアレイにデータを書き込むように構成された不揮発性半導体記憶装置であって、前記メモリセルアレイに書き込むべきデータのばらつきの度合いを表す指標を演算し、前記指標が所定値以上であるかどうかを判定する判定回路と、前記判定回路による判定の結果、前記指標が前記所定値以上である場合、前記データを前記メモリセルアレイにそのまま出力し、前記指標が前記所定値を下回る場合、前記データをランダマイズして前記メモリセルアレイに出力するランダマイズ回路と、
を備えた不揮発性半導体記憶装置の構成を有する。
【００１１】
上記構成によれば、前記指標が所定値以上である場合、前記データを前記メモリセルアレイに書き込むべきデータとしてそのまま出力するので、無駄なデータランダマイズ処理を防止することが可能になる。また、前記指標が前記所定値を下回る場合、前記データをランダマイズするので、データのばらつきを有効に改善することが可能になる。
【００１２】
また、本発明に係る不揮発性半導体記憶装置は、上記構成において、前記メモリセルアレイに書き込むべきデータがＮビット（Ｎは任意の自然数）からなるデータであるとしたときに、前記指標は、前記Ｎビットのデータに含まれる隣接する二つのビットの排他的論理和を演算することで得られる階差数列に含まれる「１」の個数であり、前記所定値は（Ｎ−１）／２であることを特徴とする不揮発性半導体記憶装置の構成を有する。
【００１３】
また、本発明に係る不揮発性半導体記憶装置は、上記構成において、前記判定回路は、前記メモリセルアレイに書き込むべきデータに含まれる隣接する二つのビットの排他的論理和を演算して前記階差数列を出力するための排他的論理和回路と、前記排他的論理和回路から出力される階差数列に含まれる「１」の個数をカウントするためのカウント回路と、前記カウント回路のカウント値と前記所定値とを比較する比較回路と、を備えたことを特徴とする不揮発性半導体記憶装置の構成を有する。
【００１４】
更に、本発明に係る不揮発性半導体記憶装置は、上記構成において、前記ランダマイズ回路は、前記アドレス信号に基づき乱数信号を発生させる乱数信号発生回路と、前記判定回路の判定結果に応じて、前記乱数信号発生回路で発生された乱数信号により前記データを反転させ、または、そのまま出力するゲート回路と、を備えたことを特徴とする不揮発性半導体記憶装置の構成を有する。
【００１５】
更に、本発明に係る方法は、メモリセルアレイを備えた不揮発性半導体記憶装置において、アドレス信号で指定される前記メモリセルアレイにデータを書き込む方法であって、前記メモリセルアレイに書き込むべきデータのばらつきの度合いを表す指標を演算し、前記指標が所定値以上であるかどうかを判定する段階と、前記判定の結果、前記指標が前記所定値以上である場合、前記データをそのまま前記メモリセルアレイに出力し、前記指標が前記所定値を下回る場合、前記データをランダマイズして前記メモリセルアレイに出力する段階と、を含む方法の構成を有する。
【発明の効果】
【００１６】
本発明によれば、無駄なデータランダマイズ処理を防止すると共に、元のデータに比較してデータのばらつきを有効に大きくすることができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施形態による不揮発性半導体記憶装置の構成（データの書き込みに関連する構成）を示すブロック図である。
【図２】本発明の実施形態による不揮発性半導体記憶装置が備えるランダマイズ回路（３００）の構成例を示すブロック図である。
【図３】本発明の実施形態によるランダマイズ回路（３００）が備える乱数信号発生回路（３１０）の構成例を示すブロック図である。
【図４】本発明の実施形態による不揮発性記憶装置が備える判定回路（４００）の構成例を示すブロック図である。
【図５】本発明の実施形態による不揮発性半導体記憶装置が備えるメモリセルアレイ（６００）に格納されるデータの配列例を説明するための図である。
【図６】本発明の実施形態による不揮発性半導体記憶装置の構成（データの読み出しに関連する構成）を示すブロック図である。
【図７】本発明の実施形態による不揮発性半導体記憶装置が備えるランダマイズ解除回路（７００）の構成例を示すブロック図である。
【図８】本発明の実施形態による不揮発性半導体記憶装置が備える判定回路（４００）の動作（データのばらつきの判定手法）を説明するための図である。
【図９】本発明の実施形態による不揮発性半導体記憶装置が備える判定回路（４００）の動作（データのばらつきの判定基準）を説明するための図である。
【発明を実施するための形態】
【００１８】
以下、図面を参照しながら、本発明の実施形態による不揮発性半導体記憶装置ついて詳細に説明する。
【００１９】
１．構成
図１に、本実施形態による不揮発性半導体記憶装置の全体構成を概略的に示す。
なお、図１では、データの書き込みに関連する構成のみを示しており、データの読み出しに関連する構成や、その他の一般的な回路（例えば、アドレス系の回路、制御系回路など）については省略されている。
【００２０】
図１に示すように、本実施形態による不揮発性半導体記憶装置は、データの書き込みに関連する構成として、データ端子１００、一時データ格納領域２００（例えばＳＲＡＭ）、ランダマイズ回路３００、判定回路４００、ページバッファ５００、メモリセルアレイ６００を備える。
【００２１】
ここで、データ端子１００は、メモリセルアレイ１００に書き込むべきデータＤを外部から受け取るための外部端子である。一時データ格納領域２００は、データ端子１００を介して外部から入力されたデータＤを一時的に記憶するためのものである。ランダマイズ回路３００は、一時データ格納領域２００から出力されたデータＤＡに対しランダマイズ処理を実施するためのものである。
【００２２】
判定回路４００は、本実施形態による不揮発性半導体記憶回路の特徴部であり、データ端子１００を介して入力されたデータＤのばらつきを判定するためのものである。この判定回路４００の判定結果に応じて、上述のランダマイズ回路３００におけるランダマイズ処理の有無が制御される。
【００２３】
本実施形態では、判定回路４００は、データＤのばらつきが小さいと判定した場合、この判定結果を表す判定信号Ｓbypassとして論理値「０」を出力する。この場合、ランダマイズ回路３００はデータＤＡに対してランダマイズ処理を実施する。また、判定回路４００は、データＤのばらつきが大きいと判定した場合、判定信号Ｓbypassとして論理値「１」を出力する。この場合、ランダマイズ回路３００は、ランダマイズ処理を実施せず、ランダマイズ処理がバイパスされる。
【００２４】
ページバッファ５００は、ランダマイズ回路３００から出力されたデータＤＢを一時的に蓄積するためのものである。
【００２５】
メモリセルアレイ６００は、フローティングゲートを備えたメモリセル群から構成され、概略的には、各メモリセルは、複数のワード線と複数のビット線との交差点に位置するようにしてマトリックス状に配列されている。外部からのアドレス信号に基づいてロウデコーダ及びカラムデコーダ（図示なし）がワード線及びビット線をそれぞれ選択することにより、データを書き込むべきメモリセルを特定するものとなっている。
【００２６】
図２に、ランダマイズ回路３００の構成例を示す。
同図に示すように、ランダマイズ回路３００は、乱数信号発生回路３１０、インバータ３２０、論理積ゲート回路３３０、排他的論理和ゲート回路３４０から構成される。ここで、乱数信号発生回路３１０は、データの書き込み時に、外部のアドレス信号ＡＤからランダマイズ処理で使用される乱数信号ＳＰを発生させるためのものである。
【００２７】
また、インバータ３２０の入力部には、図１の判定回路４００から判定信号Ｓbypassが与えられる。論理積ゲート回路３３０の一方の入力部にはインバータ３２０の出力部が接続され、他方の入力部には乱数信号発生回路３１０の出力部が接続される。排他的論理和ゲート回路３４０の一方の入力部には論理積ゲート回路３３０の出力部が接続され、他方の入力部には一時データ格納領域２００から出力されたデータＤＡが与えられる。
【００２８】
このランダマイズ回路３００によれば、判定信号Ｓbypassに応じてデータＤＡに対するランダマイズ処理が制御される。即ち、判定信号Ｓbypassの論理値が「０」である場合、乱数信号発生回路３１０から出力される乱数信号ＳＰが論理積ゲート回路３３０を介して排他的論理和ゲート回路３４０に与えられ、排他的論理和ゲート回路３４０が、乱数信号ＳＰに基づいてデータＤＡに対するランダマイズ処理を実施し、ランダマイズされたデータＤＢを出力する。このとき、排他的論理和ゲート回路３４０は、乱数信号発生回路３１０で発生された乱数信号ＳＰによりデータＤＡの各ビットを選択的に反転させる。
【００２９】
これに対し、判定信号Ｓbypassの論理値が「１」である場合、論理積ゲート回路３３０の出力が論理値「０」に固定される。この場合、排他的論理和ゲート回路３４０は、データＤＡをそのままデータＤＢとして出力する。即ち、この場合、ランダマイズ処理がバイパスされる。また、この場合、判定信号Ｓbypassに基づいて乱数信号発生回路３１０は非活性化され、ランダマイズ処理のための回路動作は実施されない。
【００３０】
図３に、乱数信号発生回路３１０の構成例を示す。
同図に示すように、乱数信号発生回路３１０は、カスケード接続されたｎ個のフリップフロップ３１１−１，３１１−２，…３１１−ｎ（ｎは自然数）からなるシフトレジスタと、排他的論理和ゲート回路３１２から構成される。ここで、排他的論理和ゲート回路３１２の一方の入力部は最終段のフリップフロップ３１１−ｎの入力部に接続され、他方の入力部は上記フリップフロップ３１１−ｎの出力部に接続される。この排他的論理和ゲート回路３１２の出力部は初段のフリップフロップ３１１−１の入力部に接続される。また、フリップフロップ３１１−１，３１１−２，…３１１−ｎには、それらの初期値（乱数のシード値）として、アドレス信号ＡＤの各ビットの値Ａ０，Ａ１，…Ａｎが設定される。
【００３１】
この乱数信号発生回路３１０によれば、所定のクロック信号（図示なし）に同期してｎ個のフリップフロップ３１１−１，３１１−２，…３１１−ｎの各値を順次シフトさせ、最終段のフリップフロップ３１１−ｎの入力部と出力部に表れる信号を排他的論理和ゲート回路３１２で演算し、その演算結果を初段のフリップフロップ３１１−１に戻すことにより、上記クロック信号に同期して、最終段のフリップフロップ回路３１１−ｎから乱数信号ＳＰが出力される。
【００３２】
図４に、判定回路４００の構成例を示す。
同図に示すように、判定回路４００は、排他的論理和回路４１０、カウント回路４２０、比較回路４３０から構成される。ここで、排他的論理和回路４１０の入力部には、図１のデータ端子１００を介して外部から入力されたデータＤが与えられる。この排他的論理和回路４１０は、データＤの各ビットのうち、隣接する二つのビットの排他的論理和を演算することにより、データＤの階差数列に相当するデータＤ’を生成する。
【００３３】
排他的論理和回路４１０の出力部はカウント回路４２０の入力部に接続され、カウント回路４２０には排他的論理和ゲート回路４１０からデータＤ’が与えられる。このカウント回路４２０は、データＤ’に含まれるビットのうち、論理値が「１」のビットの個数（階差数列Ｄ’の重み）をカウントするためのものである。
【００３４】
カウント回路４２０の出力部は比較回路４３０の入力部に接続され、比較回路４３０にはカウント回路４２０からカウント値ＣＮＴが与えられる。この比較回路４３０は、カウント値ＣＮＴと所定値とを比較し、その比較結果を判定信号Ｓbypassとして出力するためのものである。この例では、カウント値ＣＮＴが所定値以上であれば、判定信号Ｓbypassとして論理値「１」を出力し、カウント値ＣＮＴが所定値を下回れば、判定信号Ｓbypassとして論理値「０」を出力する。
【００３５】
図５に、メモリセルアレイ６００に格納されたデータの配列を示す。
同図に示すように、メモリセルアレイ６００には、ランダマイズ回路３００から出力されたデータＤＢの各ビットの値Ｂ０，Ｂ１，…ＢＮを格納するためのデータ領域６１０と、判定回路４００から出力される判定信号Ｓbypassの論理値を表す１ビットのデータＢＲを格納するためのデータ領域６２０とを１組として、データが格納される。
【００３６】
本実施形態では、１回の書き込み動作で書き込まれるＮビット（Ｎは任意の自然数）のデータＤＢごとに、判定回路４００から出力される判定信号Ｓbypassに基づいて１ビットのデータＢＲが設定される。ここで、論理値「０」のデータＢＲは、このデータＢＲと組をなすデータＤＢがランダマイズ処理されたことを表し、論理値「１」のデータＢＲは、このデータＢＲと組をなすデータＤＢがランダマイズ処理されていないことを表す。このデータＢＲは、メモリセルアレイ６００に書き込まれたデータＤＢを読み出す際に、ランダマイズ解除処理を必要とするかどうかを判別するために使用される。
【００３７】
次に、図６及び図７を参照して、データの読み出しに関連する構成について説明する。
図６に、データの読み出しに関連する本実施形態による不揮発性半導体記憶装置の全体構成を概略的に示す。同図において、前述の図１に示す構成要素と共通する要素には同一符号を付し、その説明を省略する。
【００３８】
なお、本実施形態では、説明の便宜上、図１にデータの書き込みに関連する構成を示し、図６にデータの読み出しに関連する構成を示すが、本実施形態による不揮発性半導体記憶装置は、図１の構成と図６の構成を一体的に備えている。
【００３９】
図６に示すように、本実施形態による不揮発性半導体記憶装置は、データの読み出しに関連する構成として、ページバッファ５００と一時データ格納領域２００との間にランダマイズ解除回路７００を備え、このランダマイズ解除回路７００には、メモリセルアレイ６００からページバッファ５００を介して上述のデータＤＢとデータＢＲが入力される。ランダマイズ解除回路７００は、メモリセルアレイ６００からデータＤＢを読み出す際に、このデータＤＢと組をなすデータＢＲに基づいてランダマイズ解除処理の要否を判別し、データＢＲの論理値が「０」である場合、即ち、書き込み時にデータＤＢがランダマイズ処理されたものである場合に、このデータＤＢに対しランダマイズ解除処理を実施するものである。
【００４０】
図７に、ランダマイズ解除回路７００の構成例を示す。
同図に示すように、ランダマイズ解除回路７００は、乱数信号発生回路７１０、インバータ７２０、論理積ゲート回路７３０、排他的論理和ゲート回路７４０から構成される。ここで、乱数信号発生回路７１０は、データの読み出し時に、外部のアドレス信号ＡＤからランダマイズ解除処理で使用される乱数信号ＳＲを発生させるためのものであり、基本的に、乱数信号発生回路７１０が乱数信号ＳＲを発生させるアルゴリズムは、乱数信号発生回路３１０と同じである。従って、ランダマイズ解除で使用される乱数ＳＲは、データ書き込み時に生成される乱数ＳＰと同じである。
【００４１】
また、インバータ７２０の入力部には、図１のページバッファ５００を介してメモリセルアレイ６００からデータＢＲが与えられる。論理積ゲート回路７３０の一方の入力部にはインバータ７２０の出力部が接続され、その他方の入力部には乱数信号発生回路７１０の出力部が接続される。排他的論理和ゲート回路７４０の一方の入力部には論理積ゲート回路７３０の出力部が接続され、その他方の入力部には図６のページバッファ５００を介してメモリセルアレイ６００からデータＤＢが与えられる。
【００４２】
このランダマイズ解除回路７００によれば、データＢＲに応じてデータＤＢに対するランダマイズ解除処理が制御される。即ち、データＢＲの論理値が「０」である場合、乱数信号発生回路７１０から出力される乱数信号ＳＲが論理積ゲート回路７３０を介して排他的論理和ゲート回路７４０に与えられ、この排他的論理和ゲート回路７４０が、乱数信号ＳＲに基づいてデータＤＢに対するランダマイズ解除処理を実施し、ランダマイズ解除されたデータＤＡを出力する。
【００４３】
このとき、データ書き込み時において反転されたビットの論理値がランダマイズ処理前の元の論理値に戻される。これに対し、データＢＲの論理値が「１」である場合、論理積ゲート回路７３０の出力が論理値「０」に固定される。この場合、排他的論理和ゲート回路７４０は、メモリセルアレイ６００からのデータＤＢをそのままデータＤＡとして一時データ格納領域２００に出力する。即ち、ランダマイズ解除処理がバイパスされる。
【００４４】
２．動作
次に、上述の図１ないし図７に加え、図８および図９を参照しながら、ランダマイズ処理に着目して、本実施形態による不揮発性半導体記憶装置のデータ書き込み動作（データ書き込み方法）とデータ読み出し動作（データ読み出し方法）を説明する。
【００４５】
＜データ書き込み動作＞
書き込むべきＮビット（Ｎは任意の自然数）のデータＤとして、図８に例示するように、１０ビット（Ｎ＝１０）のビット列「０００１１０１１１１」を仮定する。このデータＤは、データ端子１００を介して一時データ格納領域２００に入力され、一時データ格納領域２００からデータＤＡとしてランダマイズ回路３００に与えられる。
【００４６】
また、データＤは判定回路４００にも与えられる。判定回路４００は、書き込むべきデータＤのビット列における「０」のビットと「１」のビットの分布のばらつき（以下、単に「データのばらつき」と称す）が大きいか小さいかを判定する。即ち、判定回路４００を構成する図４の排他的論理和回路４１０は、データＤのビット列内の隣り合う二つのビットの排他的論理和を演算することにより、データＤの階差数列からなるデータＤ’を生成する。
【００４７】
カウント回路４２０は、このデータＤ’に含まれる論理値「１」のビットの個数をカウントしてカウント値ＣＮＴを出力する。比較回路４３０は、カウント値ＣＮＴと所定値とを比較し、その大小関係に応じた論理値を判定信号Ｓbypassとして出力する。このとき、カウント値ＣＮＴが所定値以上である場合、判定信号Ｓbypassの論理値は、データＤのばらつきが大きいことを示す「１」とされ、逆に、カウント値ＣＮＴが所定値を下回る場合には、判定信号Ｓbypassの論理値は、データＤのばらつきが小さいことを示す「０」とされる。
【００４８】
ここで、データのばらつきの判定原理を説明する。
データＤのばらつきの判定は、データＤのビット列における「０」のビットと「１」のビットとの間の境界の個数に基づいている。図８の例では、上記の境界は破線で示されている。図８に例示するデータＤのビット列「０００１１０１１１１」においては、左側から数えて３番目のビットと４番目のビットとの間と、５番目のビットと６番目のビットのとの間と、６番目のビットと７番目のビットのとの間に上記の境界が存在し、この例では境界の個数は「３」である。
【００４９】
上記の境界で区切られる各区間では、「０」または「１」の一方のビットが連続し、１つの区間内には同一論理値のビットが存在する。従って、或る一定サイズのデータＤ内で上記の境界の個数が多いほど、同一論理値のビットが連続する区間が短くなり、「０」のビットと「１」のビットの分布の偏りが小さく、データのばらつきが大きくなる。逆に、或る一定サイズのデータＤ内で上記の境界の個数が少ないほど、同一論理値のビットが連続する区間が長くなり、「０」のビットと「１」のビットの分布の偏りが大きく、データのばらつきが小さくなる。従って、上記の境界の個数からデータのばらつきを評価することができる。このような理由から、データのばらつきの度合いを表す指標として上記の境界の個数を採用することができる。
【００５０】
また、図８に示す例において、上記の境界は、書き込むべきデータＤのビット列「０００１１０１１１１」を数列として見たときに、その階差数列として得られるデータＤ’のビット列「００１０１１０００」における「１」に対応している。このデータＤ’は、判定回路４００を構成する図４の排他的論理和回路４１０により生成される。即ち、排他的論理和回路４１０は、図８のデータＤのビット列「０００１１０１１１１」のうち、隣り合う二つのビットの排他的論理和を演算することにより、データＤ’のビット列「００１０１１０００」を生成する。
【００５１】
ここで、データＤ’のビット列における「１」のビットは、データＤにおいて隣り合う二つのビットのうちの一方が論理値「０」であり、他方が論理値「１」である場合に、これら二つのビットの論理値の排他的論理和（階差の絶対値）を演算したときに得られ、図８の例では、境界を挟んで隣り合う二つのビット論理値の排他的論理和（階差の絶対値）を演算したときに得られる。従って、図８において、データＤ’のビット列における「１」のビットは、データＤのビット列における上記の境界に対応し、上記の境界の個数は、図４のカウント回路４２０によりデータＤ’における「１」のビットの個数を計数することにより得られる。
【００５２】
上記の境界の個数を表すカウント値ＣＮＴは、上述したように、比較回路４３０により所定値と比較され、比較回路４３０は、その大小関係に応じた論理値を有する判定信号Ｓbypassを出力する。ここで、上記の所定値として（Ｎ−１）／２を採用することが好ましい。なお、Ｎは、書き込むべきデータＤのビット数を表す。
【００５３】
ここで、図９を参照して、上記の所定値として（Ｎ−１）／２を採用することの技術的意義を説明する。
一般に、特定の値に初期化されたデータ等のように特別な場合を除けば、書き込むべきデータのビット列における論理値の配列は様々なパターンをとり、そのデータの階差数列の重み（論理値「１」の個数）は二項分布に従う。
【００５４】
即ち、ＮビットのデータＤを考えると、その階差数列の項数（データＤ’のビット数）は「Ｎ−１」であり、その階差数列の重み（データＤ’に含まれる「１」のビットの個数）は、図９（ａ）に示すように、（Ｎ−１）／２を平均値とする二項分布に従う。従って、上記の階差数列の重みに対応する上記の境界の個数の分布も（Ｎ−１）／２を平均値とする二項分布に従う。ランダマイズ処理後のデータも同様である。
なお、図９（ａ）において、二項分布を表す曲線と横軸とにより囲まれた領域の面積は１であり、即ち、各重みに対する確率の合計は１００パーセントになる。
【００５５】
いま、上記階差数列の任意の重みｘを考えると、図９（ａ）において、重みがｘ以上となる確率は、図９（ａ）の斜線領域の面積Ｓで表される。ただし、ｘは０からＮ−１までの任意の値を表す変数である。本発明では、データＤのばらつきが小さい場合（重みが所定値を下回る場合）にランダマイズ処理を実施し、大きい場合（重みが所定値以上である場合）にはランダマイズ処理を実施せずにデータを書き込む。このことから、最終的にメモリセルアレイに書き込まれるデータＤＢの階差数列の重みがｘ以上となる確率Ｐｉは、元のデータＤの階差数列の重みがｘ以上である場合の確率Ｐ１と、元のデータＤの階差数列の重みがｘを下回る場合にランダマイズ処理を実施したことによりデータの階差数列の重みがｘ以上となる場合の確率Ｐ２との和（Ｐ１＋Ｐ２）になる。
【００５６】
確率Ｐ１はＳで表され、確率Ｐ２は（１−Ｓ）Ｓで表されるから、確率Ｐｉは、次式（１）により表され、図９（ｂ）に示すように、座標（０，０）を通り、座標（１，１）を頂点とする二次関数曲線により表される。
【００５７】
Ｐｉ＝Ｐ１＋Ｐ２＝Ｓ＋（１−Ｓ）Ｓ＝−Ｓ２＋２Ｓ＝−（Ｓ−１）２＋１  …（１）
【００５８】
これに対し、従来技術により単純にデータＤに対してランダマイズ処理を実施して得られる階差数列の重みがｘ以上となる場合の確率Ｐｊは次式（２）により表され、図９（ｂ）に示すように、座標（０，０）を通り、傾きが１の直線により表される。
【００５９】
Ｐ２＝Ｓ  …（２）
【００６０】
ここで、式（１）および式（２）から、本発明による確率Ｐｉと、従来技術による確率Ｐｊとの差分ΔＰは、次式（３）により表される。
【００６１】
ΔＰ＝Ｐｉ−Ｐｊ
＝（−Ｓ２＋２Ｓ）−Ｓ＝−Ｓ２＋Ｓ＝−（Ｓ−１／２）２＋１／４  …（３）
【００６２】
式（３）から、ΔＰはＳ＝１／２のときに最大になることが分かる。これは、図９（ａ）において、変数ｘが（Ｎ−１）／２となる場合に相当する。従って、書き込む前のデータＤのばらつきが大きいか小さいかの判定において、比較回路４３０に上記の所定値として（Ｎ−１）／２を設定し、データＤのばらつきの度合いを表す指標として得られる上記の境界の個数を表すカウント値ＣＮＴを（Ｎ−１）／２と比較することにより、データＤのばらつきを最も効果的に改善するように判定することができる。ただし、前述のように、上記の所定値は（Ｎ−１）／２に限定されず、これ以外の値に設定した場合であっても、データのばらつきを改善することができる。
【００６３】
上述のような判定の結果、判定回路４００から出力された判定信号Ｓbypassは図１および図２のランダマイズ回路３００に与えられる。
【００６４】
ここで、説明を図１および図２に戻す。
ランダマイズ回路３００は、判定回路４００から入力される判定信号Ｓbypassの論理値が「１」であれば、一時データ格納領域２００から入力されるデータＤＡをそのままデータＤＢとしてページバッファ５００に与える。この場合、ランダマイズ処理は実施されず、バイパスされる。また、判定信号Ｓbypassの論理値が「０」であれば、一時データ格納領域２００から入力されるデータＤＡに対し、乱数信号発生回路３１０から出力される乱数信号ＳＰを用いてランダマイズ処理を実施し、ランダマイズされたデータＤＢをページバッファに与える。
【００６５】
ランダマイズ回路３００から出力されたデータＤＢは、ページバッファ５００を介して、アドレス信号で指定されるメモリセルアレイ６００内のメモリセルに書き込まれる。
以上で、データの書き込み動作を説明した。
【００６６】
＜データ読み出し動作＞
次に、図６および図７を参照して、データの読み出し動作を説明する。
上述したようにメモリセルアレイ６００に書き込まれたデータＤＢを読み出す場合、書き込み時と同じアドレス信号ＡＤが外部から指定され、このアドレス信号ＡＤに基づいて、メモリセルアレイ６００からデータＤＢがページバッファ５００を介してランダマイズ解除回路７００に与えられる。このとき、このデータＤＢと組をなすデータＢＲもメモリセルアレイ６００から一緒に読み出される。
【００６７】
ランダマイズ解除回路７００は、データＢＲの論理値が「１」であれば、ページバッファ５００から入力されるデータＤＢをそのままデータＤＡとして一時データ格納領域２００に与える。この場合、ランダマイズ解除処理は実施されず、バイパスされる。また、データＢＲの論理値が「０」であれば、ページバッファ５００から入力されるデータＤＢに対し、乱数信号発生回路７１０から出力される乱数信号ＳＲを用いてランダマイズ解除処理を実施し、ランダマイズ解除されたデータＤＡを一時データ格納領域２００に与える。
【００６８】
一時データ格納領域２００は、ランダマイズ解除回路７００から入力されたデータＤＡをデータＤとしてデータ端子１００を介して外部に出力する。
以上で、データ読み出し動作を説明した。
【００６９】
以上のように、本実施形態では、書き込むべきデータＤのばらつきに応じて、ランダマイズ処理の有無を制御している。これにより、実際にメモリセルアレイ６００に書き込まれるデータＤＢのばらつきを有効に改善することが可能になる。
【００７０】
以下では、どの程度までデータのばらつきを改善することができるかを説明する。
ここでは、データのばらつきを判定するときの上記の所定値を平均値（＝（Ｎ−１）／２）に設定し、実際にメモリセルに書き込まれるデータＤＢのビット列における「０」と「１」との間の境界の個数が上記平均値以上となる事象Ａの起こる確率を計算する。
【００７１】
事象Ａが起こるのは、次の場合である。
（ｉ）書き込むべきデータＤのビット列のおける「０」と「１」との間の境界の個数が上記平均値以上である場合。
（ｉｉ）書き込むべきデータＤのビット列における「０」と「１」との間の境界の個数が上記平均値を下回り、且つ、ランダマイズ処理後のデータＤＢにおけるビット列における「０」と「１」との間の境界の個数が上記平均値以上である場合。
【００７２】
（ｉ）の場合の確率は、１／２である。
（ｉｉ）の場合の確率は、書き込むべきデータＤの上記の境界の個数が上記平均値を下回る確率（＝１／２）と、ランダマイズ処理後のデータＤＢのビット列における「０」と「１」との間の上記の境界の個数が平均値以上となる確率（＝１／２）とから求められ、これらは独立が事象であるから、単純に乗算して、１／２×１／２＝１／４となる。
そして、上記の（ｉ）と（ｉｉ）は背反な事象であるので、事象Ａが起こる確率は、上記の（ｉ）の確率と（ｉｉ）の確率を加算して、１／２＋１／４＝３／４となる。
【００７３】
一方、従来のランダマイズ方式によれば、実際にメモリセルに書き込まれるデータにおける「０」と「１」との間の境界の個数が平均値以上となる確率は、ランダマイズ処理前のデータとは無関係に１／２である。
【００７４】
従って、本実施形態によれば、従来のランダマイズ方式に比較して、１．５倍の確率で、ばらつきが平均値以上であるデータをメモリセルアレイに書き込むことができる。従って、データのばらつきを有効に改善することが可能になり、プログラムディスターブ等の問題に対して、従来のランダマイズ方式よりも高い効果を得ることができる。
【００７５】
また、本実施形態によれば、元のデータのばらつきが十分である場合（上記の境界値が上記の平均値以上である場合）には、ランダマイズ処理は実施されないので、無駄な回路動作を防止することができ、消費電力を低減させることも可能になる。
更に、本実施形態によれば、データのばらつきが有効に改善される結果、データの書き込み回数が増えるに従って、各メモリセルに対する書き込み回数が均一化される。従って、特定のメモリセルにストレスが集中することがなく、信頼性を改善することもできる。
【００７６】
以上、本発明の実施形態を説明したが、本発明は上述の実施形態に限定されるものでははく、本発明の要旨を逸脱しない範囲で種々の変形が可能である。
【符号の説明】
【００７７】
１００…データ端子、２００…一時データ格納領域、３００…ランダマイズ回路、４００…判定回路、４１０…排他的論理和回路、４２０…カウント回路、４３０…比較回路、５００…ページバッファ、６００…メモリセルアレイ、７００…ランダマイズ解除回路。
【図１】
2012133835.tif 000003
【図２】
2012133835.tif 000004
【図３】
2012133835.tif 000005
【図４】
2012133835.tif 000006
【図５】
2012133835.tif 000007
【図６】
2012133835.tif 000008
【図７】
2012133835.tif 000009
【図８】
2012133835.tif 000010
【図９】
2012133835.tif 000011