[go: up one dir, main page]

JP2014021529A - 乱数発生回路、及び不揮性半導体装置 - Google Patents

乱数発生回路、及び不揮性半導体装置 Download PDF

Info

Publication number
JP2014021529A
JP2014021529A JP2012156480A JP2012156480A JP2014021529A JP 2014021529 A JP2014021529 A JP 2014021529A JP 2012156480 A JP2012156480 A JP 2012156480A JP 2012156480 A JP2012156480 A JP 2012156480A JP 2014021529 A JP2014021529 A JP 2014021529A
Authority
JP
Japan
Prior art keywords
random number
memory cells
number generation
generation circuit
memory cell
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.)
Pending
Application number
JP2012156480A
Other languages
English (en)
Inventor
Naoaki Sudo
直昭 須藤
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.)
Samsung R&D Institute Japan Co Ltd
Original Assignee
Samsung R&D Institute Japan Co Ltd
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 Samsung R&D Institute Japan Co Ltd filed Critical Samsung R&D Institute Japan Co Ltd
Priority to JP2012156480A priority Critical patent/JP2014021529A/ja
Publication of JP2014021529A publication Critical patent/JP2014021529A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Read Only Memory (AREA)

Abstract

【課題】予測可能性が低い乱数を発生できる乱数発生回路を提供する。
【解決手段】本発明の乱数発生回路は、不揮発性メモリに搭載される乱数発生回路であって、複数の不揮発性メモリセルを所定の動作条件の基で同一のデータに変更する処理を行い、その後にベリファイ動作を実行してイレースセルとプログラムセルの分布の情報を生成し、該生成した分布の情報に基づいて乱数を発生させる。
【選択図】図3

Description

本発明は、乱数発生回路に関し、特に、不揮発性半導体装置に搭載される乱数発生回路、及びこの乱数発生回路を備える不揮発性半導体装置に関する。
NAND型フラッシュメモリにおいては、記憶するデータの暗号化のために乱数発生回路が使用されることがある。この乱数発生回路にはいくつかの種類があるが、その一例として、線形帰還シフトレジスタ(linear feedback shift register;LFSR)を用いた乱数発生回路などがある。図9は、LFSRを用いた擬似乱数発生回路の例を示す図である。従来の乱数発生回路としては、図9に示すようなタップシーケンスのLFSRを用いた擬似乱数発生回路がある。
なお、乱数発生回路に関連する半導体装置がある(特許文献1を参照)。この特許文献1に記載の半導体装置は、テスト時に、ECC(Error Check and Correct)回路とBIST(Built−In Self−Test)回路とが活性化された状態で、ECC回路によるエラー訂正が必ず行われるように構成されている。
特開2005−78431号公報
特許文献1に記載の半導体装置には、LFSRを搭載した擬似乱数発生回路が搭載されているが、発生結果の予測がつきやすいので、セキュリティ用途で使用できない。
しかしながら、LFSRのような、擬似乱数発生回路で生成される乱数は、一見、乱数のように見えるが、実際には特定のアルゴリズムにより実現されており、生成される乱数の予測が可能である。また、一定の周期で同じ乱数が発生するため、固有IDなどのセキュリティの用途には使用できないという問題がある。
本発明は、斯かる実情に鑑みなされたものであり、その目的は、LFSRを用いた擬似乱数発生回路に比較して予測可能性が低い乱数を発生させることができる、乱数発生回路、及び不揮発性半導体装置を提供することにある。
本発明は、上記課題を解決するためになされたものであり、本発明の乱数発生回路は、不揮発性メモリに搭載される乱数発生回路であって、複数の不揮発性メモリセルを所定の動作条件の基で同一のデータに変更する処理を行い、その後にベリファイ動作を実行してイレースセルとプログラムセルの分布の情報を生成し、該生成した分布の情報に基づいて乱数を発生させることを特徴とする。
このような構成の乱数発生回路では、複数の不揮発性メモリセルを所定の動作条件の基で一括して同一のデータに変更する処理を行い、ベリファイ動作によりイレースセルと判定される不揮発性メモリセルと、ベリファイ動作によりプログラムセルと判定される不揮発性メモリセルとを発生させる。そして、このベリファイ動作により、イレースセルとプログラムセルとの分布の状態を検出し、この分布の情報に基づいて乱数を生成する。
これにより、本発明の乱数発生回路は、不揮発性メモリセルの特性のばらつきを利用して、予測可能性が低い乱数を発生することができる。
また、本発明の不揮発性半導体装置は、上記の乱数発生回路を備えることを特徴とする。これにより、本発明の不揮発性半導体装置は、不揮発性メモリセルの特性のばらつきを利用して、LFSRを用いた擬似乱数発生回路に比較して予測可能性が低い乱数を発生することができる。
本発明によれば、不揮発性メモリセルの特性のばらつきを利用して、LFSRを用いた擬似乱数発生回路に比較して予測可能性が低い乱数を発生させることができる。
この発明の一実施形態による不揮発性半導体装置1の構成を示すブロック図である。 NAND型フラシュメモリによるメモリセルアレイ10の構成例を示す図である。 本実施形態の不揮発性半導体装置1における乱数発生動作について説明するための図である。 ページバッファ14Aの構成例を示す図である。 S−ラッチ21のデータをC−ラッチ22へ退避する動作を説明するためのタイミングチャートである。 C−ラッチ22に退避したデータをS−ラッチ21へ戻す際の動作を説明するためのタイミングチャートである。 本実施形態の不揮発性半導体装置1における第1の応用例を示すフローチャートである。 本実施形態の不揮発性半導体装置1における第2の応用例を示すフローチャートである。 LFSRを用いた擬似乱数発生回路の例を示す図である。
以下、図面を参照して、本発明の実施の形態について説明する。
(不揮発性半導体装置1の全体構成の説明)
図1は、この発明の一実施形態による不揮発性半導体装置1の構成を示すブロック図である。この図1に示す不揮発性半導体装置1は、NAND型フラッシュメモリで構成される半導体記憶装置の例である。図1に示す不揮発性半導体装置1は、後述するように、乱数発生回路17Aを備える点に特徴がある。
図1に示すように、本実施形態に係る不揮発性半導体装置1は、メモリセルアレイ10と、制御回路11と、ロウデコーダ(Xデコーダ)12と、ページバッファコントロール13と、ページバッファ群14と、パスビット数カウンタ15と、ライトステートマシーン16と、乱数生成部17と、I/Oバッファ(入出力バッファ回路)18と、入出力端子となるI/Oパッド(入出力端子)19と、を有して構成される。
なお、図1に示す不揮発性半導体装置1において、乱数発生回路17A(点線で囲まれる部分)は、乱数の発生に関係する主要な構成として、ページバッファコントロール13、ページバッファ群14、パスビット数カウンタ15、及びライトステートマシーン16における乱数発生に関係する部分と、乱数生成部17とを代表して示したものである。
メモリセルアレイ10は、複数のスタックゲート構造のトランジスタ、すなわち電気的書き換え可能な不揮発性メモリセル(以下、単に「メモリセル」とも呼ぶ)をカラム方向(列方向)に直列接続して、ビット線毎に設けられたNANDセルストリングを、行方向(ビット線の配列方向)に複数個配置したブロックから構成される。このブロックは、ビット線の配線方向に複数個配置される。また、このブロックは、メモリセルのデータの消去単位で設けられている。各ブロックにおいては、同一行に配置された不揮発性メモリセル各々のゲートには、ビット線に直交したワード線が接続される。
図2は、NAND型フラシュメモリによるメモリセルアレイ10の構成例を示す図である。より具体的には、メモリセルアレイ10は、図2に示すように、N+1本のビット線BL0〜BLN(ビット線BLで総称)と、n+1本のワード線WL0〜WLn(ワード線WLで総称)と、共通ソース線CSLと、各ビット線BLと共通ソース線CSLとの間にそれぞれ接続されたN+1個のメモリストリングST0〜STN(メモリストリングSTで総称)と、を備える。各メモリストリングSTは、互いに直列接続されたn+1個のフローティングゲート構造の電気的書き換え可能な不揮発性メモリセルMC0〜MCnを備え、ドレイン側のメモリセルMCnは選択トランジスタSS1を介して対応するビット線BLに接続され、ソース側のメモリセルMC0は選択トランジスタGS1を介して共通ソース線CSLに接続される。また、同一行のメモリセルの制御ゲートは、共通のワード線WLに接続されている。
図2に示すメモリセルアレイにおいて、メモリセルのイレース(消去)は、例えば、Nチャネル型のメモリセルMC0〜MCnが形成されるP型ウェル領域に高電圧を印加し、ワード線WL0〜WLnに0Vを印加することにより行われる。これにより、例えばポリシリコンなどからなる電荷蓄積層であるフローティングゲートより電子を引き抜いて、メモリセルMCの閾値電圧を消去閾値電圧VtL(例えば、−1V)に設定する。一方、書き込み(プログラム)においては、例えば、メモリセルのソース、及びドレインに0Vを与え、制御ゲート(選択したワード線WL)に高電圧を印加することにより、半導体基板よりフローティングゲートに電子を注入し、閾値電圧を上昇させて書込閾値電圧VtHに設定する。そして、例えば、メモリセルMC0〜MCnの閾値電圧を閾値電圧VtLのままに保持することにより当該メモリセルのデータ値を「1」とし、閾値電圧を閾値電圧VtHに設定することにより当該メモリセルのデータ値を「0」とする。
また、メモリセルからデータを読み出すときには、全てのビット線BLを所定の電圧でプリチャージした後に、閾値VtLとVtH間の読み出し電圧を、読み出し対象のメモリセルMCに共通に接続されたワード線WLを介して、選択メモリセルの各制御ゲートに印加する。また、高電圧を、上記選択メモリセル以外のメモリセルMCおよび選択トランジスタSS1,GS1の各制御ゲートに印加して、上記選択メモリセル以外のメモリセルMCならびに選択トランジスタSS1,GS1を導通させる。従って、選択メモリセルのデータ値が「1」のときには、当該選択メモリセルにセル電流が流れる一方、選択メモリセルのデータ値が「0」のときには、当該選択メモリセルにセル電流が流れないので、セル電流が流れるか否かに基づいて、各選択メモリセルに書き込まれているデータを読み出すことができる。
なお、以下では、1つのワード線により選択されるメモリセルを「ページ」と称する。
図1に戻り、制御回路11は、ロウデコーダ(Xデコーダ)12、ページバッファコントロール13、ページバッファ群14、パスビット数カウンタ15、ライトステートマシーン16、及び乱数生成部17等の動作を統括して制御する制御部であり、メモリセルアレイ10からのデータの読み出しと、メモリセルアレイ10へのデータの書き込み及び消去と、ベリファイ動作と、乱数発生動作とを行う際に、不揮発性半導体装置1の全体の動作を制御する。
ロウデコーダ12は、I/Oバッファ18から制御回路11を通してアドレス信号を入力し、入力したアドレス信号をデコードし、データの読み出しと、書き込み及び消去と、ベリファイの対象となるメモリセルに接続されるワード線WLを選択する機能を有する。また、ロウデコーダ12は、ライトステートマシーン16から制御信号XDECCNTを入力し、データの読み出し、書き込み及び消去に応じた電圧をワード線WLに印加する機能を備える。
ページバッファ群14は、ページ単位のデータのプログラム及び読み出しを行うため、ページ単位のビット線毎に設けられたページバッファ14Aの複数から構成されている。このページバッファ群14におけるページバッファ14Aの各々は、ビット線に接続され、接続されたビット線の電位を増幅して判定するセンスアンプ回路として用いるラッチ回路を有する。このページバッファ群14内のページバッファ14Aにより、メモリセルアレイ10からデータを読み出すと共に、メモリセルアレイ10へのデータの書込制御を行う。
また、ページバッファコントロール13は、入力されたアドレス信号に基づき、指定されたページバッファ14Aを選択するカラムデコーダの機能を有する。ここでは、ページバッファ群14の全てのページバッファ14Aを選択する、すなわち1ページ分のデータが図に示す出力データバスDOUTBUS[n:0]に読み出される。また、各ページバッファ14Aは、ページバッファコントロール13から制御指令及びプリチャージ電圧の信号を入力し、メモリセルアレイ10のビット線BLにプリチャージ電圧を印加するプリチャージ回路を備える。
また、ページバッファ14Aは、メモリセルから読み出したデータを、出力データバス(DOUTBUS)を通して、I/Oバッファ18に出力する。また、ページバッファ14Aは、I/Oバッファ18からメモリセルへの書き込みデータを入力し、メモリセルへのデータ書き込みを行う。なお、メモリセルからのデータの読み出し、メモリセルへのデータの書き込み及び消去は、ページバッファ14Aや、ロウデコーダ12や、ページバッファコントロール13等により行われる。
ページバッファコントロール13は、ページバッファ群14内のページバッファ14Aの動作を制御するための回路である。このページバッファコントロール13は、メモリセルアレイ10内のメモリセルに対するデータのプログラム、読み出し、消去などの動作、及びベリファイの動作の制御を行う。特に、ページバッファコントロール13は、不揮発性メモリセルからのデータ読み出し(データ読み出し動作)、不揮発性メモリセルへのデータ書き込み動作(プログラム動作及びプログラムベリファイ動作)、不揮発性メモリセルのデータ消去動作(イレース動作及びその後のイレースベリファイ動作)において、ページバッファを制御するための制御信号をページバッファ14Aに対して出力する。また、ページバッファコントロール13は、ライトステートマシーン16から、メモリセルへのデータの読み出し、書き込み、及び消去に必要な制御信号PBCNTが入力され、この制御信号に基づいてページバッファに必要な制御信号をページバッファ14Aに出力する。
パスビット数カウンタ15は、ページバッファコントロール13及びページバッファ14Aにより行われるベリファイ動作の結果を基に、全体のベリファイビット数の内、何ビットがベリファイパスしたかを判定する。すなわち、パスビット数カウンタ15は、ベリファイ読み出し時において、ベリファイパスと判定されたメモリセルのビット数(「パスセル数」とも呼ぶ)をカウントする。パスビット数カウンタ15は、パスセル数の情報を信号PBNとして、ライトステートマシーン16に出力する。
ライトステートマシーン16は、パスビット数カウンタ15のカウント結果(パスセル数の情報)を基に、メモリセルアレイ10内の不揮発性メモリセルに対するデータのプログラム、消去及び読み出し動作を、ページバッファコントロール13を介して制御する。ライトステートマシーン16は、制御信号XDECCNTをロウデコーダ12に出力し、また制御信号PBCNTをページバッファコントロール13に出力する。なお、図1には図示しない高電圧発生回路は、不揮発性メモリセルに対するデータのプログラム、消去及び読み出し時に使用する各種電圧を発生するが、ライトステートマシン16は、この高電圧発生回路の昇圧動作等の制御を実行する。
乱数発生回路17Aは、乱数の発生に関係する主要な部分として、ページバッファコントロール13、ページバッファ群14、パスビット数カウンタ15、及びライトステートマシーン16における乱数発生に関係する部分と、乱数生成部17とを代表して示したものである。
この乱数発生回路17Aは、後述するように、不揮発性メモリセルの特性の差異を利用して乱数を発生させる。乱数発生回路17Aは、メモリセルのプログラム動作やイレース動作時の後のベリファイ動作時においてベリファイパスするメモリセルの割合が1/2(50%)になるように、メモリセルに印加する電圧を制御することにより、不揮発性メモリセルの特性の差異(例えば、書込み速度や消去速度の差異)を利用して乱数を発生させる。
ここで、書き込み速度とは、例えば、増加型パルスプログラム(Incremental Step Pulse−Program:ISPP)サイクル等において、メモリセルの消去状態から最終の書込状態に至るまでの処理の速度である。同様に、消去速度とは、書き込み状態から最終の消去状態に至るまでの消去処理の速度である。
なお、図1に示す乱数発生回路17Aは、1ページ分の不揮発性メモリセル及びページバッファ14Aを使用して、1ページ分のビット長に相当する乱数を生成する例であるが、2ページ分の不揮発性メモリセル及びページバッファ14Aを使用して、2ページ分のビット長に相当する乱数を生成するようにしてもよく、また、3ページ分以上のビット長の乱数を発生させるようにしてもよい。さらに、1ページ分のビット長に相当する乱数から、所望のビット長(例えば、128バイト)の乱数を1又は2以上抽出するようにしてもよい。すなわち、乱数発生回路17Aは、複数の乱数を1組のセットとして発生するようにしてもよい。
乱数生成部17は、乱数発生回路17Aにより生成された乱数をページバッファ14Aから読み込んで保持し、乱数Randとして出力する。
I/Oバッファ18は、データの入出力、アドレス信号の入力、及び動作制御コマンド等の入力に使用されるバッファ回路であり、このI/Oバッファ18は、外部回路との接続端子となるI/Oパッド19に接続される。この入出力バッファ23は、外部から供給されるアドレスをページバッファ群14及びロウデコーダ12へ出力し、外部から供給されるコマンドを示すコマンドデータをページバッファコントロール13及び制御回路11へ出力する。また、I/Oバッファ18は、外部から入力されるデータをページバッファ群14のページバッファ14Aの各々へ出力、あるいはページバッファ14Aを介し、メモリセルアレイ10から読み出されたデータを外部に出力する。
(乱数発生動作についての説明)
図3は、本実施形態の不揮発性半導体装置1における乱数発生動作について説明するための図である。
図3(A)は、通常のプログラム/イレース(書込/消去)時のメモリセルの閾値Vtの分布を示す図であり、SLC(Single Level Cell)の閾値Vtの分布を示す図である。また、図3(B)は、メモリセルのプログラム動作により乱数を発生させる場合の閾値Vtの分布の例を示す図であり、図3(C)は、メモリセルのイレース動作により乱数を発生させる場合の閾値Vtの分布の例を示す図である。
この図3(A)、図3(B)及び図3(C)のそれぞれにおいて、横軸は閾値Vtの電圧レベルを示し、縦軸はメモリセル数を示している。また、PVは、プログラム後のベリファイ動作時に使用されるプログラム基準電圧を示し、EVは、イレース後のベリファイ動作時に使用されるイレース基準電圧を示している。
図3(A)に示すように、メモリセルは、通常は、閾値Vtがイレース基準電圧EV以以下になるようにイレース(消去)が行われ、データ「1」の状態になる。また、メモリセルは、通常は、閾値Vtがプログラム基準電圧PV以上になるようにプログラム(書込み)が行われ、データ「0」の状態になる。
(プログラム動作による乱数発生)
最初に、図3(B)を参照して、プログラム動作により乱数を発生させる場合の動作について説明する。この場合、不揮発性半導体装置1は、最初に、乱数発生を行わせる対象となる複数のメモリセル(例えば、1ページ分のメモリセル)の全部をイレース状態にする。すなわち、複数のメモリセルの閾値Vtの分布が符号Aで示す分布曲線(実線Aで示す曲線)になるようにする。
次に、不揮発性半導体装置1は、メモリセルの全部がイレースされた状態から、メモリセルの一括プログラム(書込み)動作を開始する。この場合、不揮発性半導体装置1は、ライトステートマシーン16とページバッファコントロール13とにより、プログラム電圧(例えば、ワード線WLに印加する書き込み電圧)を一定電圧ずつ上昇させながら次第に変化させていく。
例えば、不揮発性半導体装置1は、プログラム電圧を初期電圧(通常のプログラム電圧より十分低いプログラム電圧)に設定した後に、1回目のプログラム動作を行う。不揮発性半導体装置1は、この1回目のプログラム動作の結果をプログラム基準電圧PVによりベリファイし、パスビット数カウンタ15によりベリファイパスしたメモリセルの数(パスビット数)を判定する。
この1回目のプログラム動作を行うことにより、図3(B)に示すように、符号(n=1)で示す閾値分布曲線(点線で示す曲線)に相当するパス・フェイルビット数が得られる。この1回目のプログラム動作では、プログラム電圧が低いため、閾値電圧Vtがプログラム基準電圧PVを超えるメモリセル(プログラムセル)は発生しない。
続いて、不揮発性半導体装置1は、プログラム電圧を初期電圧より一定電圧だけ上昇させ、この上昇させたプログラム電圧により、2回目のプログラム動作を行い、この2回目のプログラム動作の結果をプログラム基準電圧PVによりベリファイする。この2回目のプログラム動作を行うことにより、符号(n=2)で示す閾値分布曲線(点線で示す曲線)に相当するパス・フェイルビット数が得られる。すなわち、1回目のプログラム時の閾値分布曲線(n=1)に比べて、2回目のプログラム時の閾値分布曲線(n=2)は全体として+側の方向に移動する。
以降、不揮発性半導体装置1は、プログラム電圧を一定電圧ずつ上昇させながら、メモリセルのプログラム動作と、ベリファイ動作と、パスビット数の判定動作とを繰り返す。これにより、閾値分布曲線は、+側の方向に次第に移動する。
そして、M回目(n=M)のプログラム動作により、プログラムベリファイ時のパスビット数が全体のメモリセルのビット数の予め設定された所定の割合を超えた時に、プログラム動作及びベリファイ動作を停止する。所定の割合とは、例えば、1/2、或いは1/2の近傍の値に設定される。このM回目(n=M)のプログラム動作により、符号(n=M)で示す閾値分布曲線(実線で示す曲線)に相当するパス・フェイルビット数が得られる。
このM回目のプログラムベリファイ動作後において、ページバッファ14A内のラッチ回路(図4のS−ラッチ21を参照)に格納されているパスセル・フェイルセルの情報は、1/2がパスセルを示し、1/2がフェイルセルを示していることになる。ここで、メモリセルのプログラム(書き込み)速度は、製造時の特性のばらつきや、物理的なゆらぎなどにより決定され、製造者やユーザが容易に想像することは不可能である。このため、M回目(n=M)のプログラム動作により、ページバッファ14Aに格納されているデータは、LFSRで生成する乱数などとは異なり、予測可能性が極めて低い乱数となる。
(イレース動作による乱数発生)
上述した図3(B)に示す例では、メモリセルへのプログラム動作を行い、プログラム速度(書込速度)のばらつきを利用して乱数を発生させたが、メモリセルのイレース動作を行い、イレース速度(消去速度)のばらつきを利用して乱数を発生させることもできる。このイレース動作により乱数を発生させる場合は、メモリセルのトランジスタのウェルに印加する電圧を初期電圧から次第に増加させ、イレースベリファイのパスビット数が全体のビット数の1/2になった時にイレース動作を停止し、この時に、ページバッファ14Aに格納されているデータを乱数とする。
以下、図3(C)を参照して、イレース動作により乱数を発生させる場合の動作について説明する。この場合、不揮発性半導体装置1は、最初に、乱数発生を行わせる対象となるメモリセル(例えば、1ページ分のメモリセル)の全部をプログラム状態にする。すなわち、複数のメモリセルの閾値Vtの分布が符号Bで示す分布曲線(実線Bで示す曲線)になるようにする。
次に、不揮発性半導体装置1は、メモリセルの全部がプログラムされた状態から、メモリセルのイレース(消去)動作を開始する。この場合、不揮発性半導体装置1は、ライトステートマシーン16及びページバッファコントロール13により、イレース電圧(例えば、ソースに印加する消去電圧)を一定電圧ずつ上昇させながら次第に変化させていく。
例えば、不揮発性半導体装置1は、イレース電圧(消去電圧)を初期電圧(通常のイレース電圧より十分低いイレース電圧)に設定した後に、1回目のイレース(消去)動作を行う。不揮発性半導体装置1は、この1回目のイレース動作の結果をイレース基準電圧EVによりベリファイし、パスビット数カウンタ15によりパスビット数を判定する。
この1回目のイレース動作を行うことにより、図3(C)に示すように、符号(n=1)で示す閾値分布曲線(点線で示す曲線)に相当するパス・フェイルビット数が得られる。この1回目の書込みでは、イレース電圧が低いため、閾値電圧Vtがイレース基準電圧EV以下になるメモリセル(イレースセル)は発生しない。
続いて、不揮発性半導体装置1は、イレース電圧を初期電圧より一定電圧だけ上昇させ、この上昇させたイレース電圧により、2回目のイレース動作を行い、この2回目のイレース動作の結果をイレース基準電圧EVによりベリファイする。この2回目のイレース動作を行うことにより、符号(n=2)で示す閾値分布曲線(点線で示す曲線)に相当するパス・フェイルビット数が得られる。すなわち、1回目のイレース時の閾値分布曲線(n=1)に比べて、2回目のイレース時の閾値分布曲線(n=2)は、全体として−側の方向に移動する。
以降、不揮発性半導体装置1は、イレース電圧を一定電圧ずつ上昇させながら、メモリセルのイレース動作と、ベリファイ動作と、パスビット数の判定動作とを繰り返す。これにより、閾値分布曲線は−側の方向に次第に移動する。
そして、M回目(n=M)のイレース動作により、ベリファイ動作時のパスビット数が全体のメモリセルのビット数の1/2になった時に、イレース動作及びベリファイ動作を停止する。このM回目(n=M)のプログラム動作により、符号(n=M)で示す閾値分布曲線(実線で示す曲線)に相当するパス・フェイルビット数が得られる。
このM回目のイレースベリファイ動作後において、ページバッファ14A内のラッチ回路(図4のS−ラッチ21を参照)に格納されているパスセル・フェイルセルの情報は、1/2がパスセルを示し、1/2がフェイルセルを示していることになる。ここで、メモリセルのイレース(消去)速度は、製造時の特性のばらつきや、物理的なゆらぎなどにより決定され、製造者やユーザが容易に想像することは不可能である。このため、M回目(n=M)のイレース動作により、ページバッファ14Aに格納されているデータは、LFSRで生成する乱数などとは異なり、予測可能性が極めて低い乱数となる。
ところで、上記乱数発生動作により、乱数を発生させてページバッファ14Aに格納することができるが、乱数の発生に使用したメモリセルは、その閾値分布が、例えば、図3(B)の符号(n=M)に示すような分布曲線になり、図3(A)に示すような正規の閾値分布曲線とは異なる。このため、メモリセルの1/2がパスした直後の状態で、再度メモリセルのデータの読み出しを行なっても、読み出しに必要なマージンが得られないため、同一のデータが読み出されるとは限らないことになる。従って、メモリセルの閾値分布を、図3(A)に示すような正規の閾値分布になるように書き換える必要がある。このため、本実施形態の不揮発性半導体装置1では、ページバッファ14Aは、次に説明する構成を備えている。
[ページバッファの回路構成]
図4は、ページバッファ14Aの構成例を示す図である。図4では、1本のビット線(BLi)に対応するページバッファ14Aの一例を示している。この図4に示すページバッファ14Aは、SLCのページバッファ回路として用いられる回路である。
ページバッファ14Aは、データ書き込み時のビット線BLiへの電位供給を制御するとともに、読み出し時のセンスデータをラッチするS−ラッチ21(図上で左側のラッチ回路)と、キャッシュプログラム時に、キャッシュデータを格納するC−ラッチ22(図上で右側のラッチ回路)とで構成される。また、他に、S−ラッチ21とC−ラッチ22との間でデータを転送するためのトランジスタ、メモリセルへのデータ書き込み時にS−ラッチ21からビット線への電圧供給を行うトランジスタ、メモリセルからの読み出し時に、ビット線BLiの電圧を基にセンス動作を行い、S−ラッチ21へデータを格納するためのトランジスタ、外部からC−ラッチ22へデータを入出力するためのトランジスタなどで構成される。
より具体的には、この図4に示すページバッファ14Aは、トランジスタ31〜50と、S−ラッチ21と、C−ラッチ22と有して構成されている。
ここで、トランジスタ31、トランジスタ32、及びトランジスタ43は、Pチャネル型MOS(Metal Oxide Semiconductor)トランジスタであり、それ以外のトランジスタは、Nチャネル型MOSトランジスタである。
また、S−ラッチ21は、インバータ回路IVS1、及びインバータ回路IVS2から構成される。ここで、インバータ回路IVS1は、出力端子が接続点(ノード)NS2においてインバータ回路IVS2の入力端子に接続され、入力端子が接続点NS1においてインバータ回路IVS2の出力端子に接続される。また、C−ラッチ22は、インバータ回路IVC1、及びインバータ回路IVC2から構成される。ここで、インバータ回路IVC1は、出力端子が接続点NC2においてインバータ回路IVC2の入力端子に接続され、入力端子が接続点NC1においてインバータ回路IVC2の出力端子に接続される。
トランジスタ31は、ソースが電源配線に接続され、ゲートが接続点NS1に接続され、ドレインがトランジスタ32のソースに接続される。
トランジスタ32は、ソースがトランジスタ31のドレインに接続され、ゲートが制御信号BLPCの配線に接続され、ドレインがトランジスタ33のドレイン、及び接続点SOに接続される。
トランジスタ33は、ドレインが接続点SOに接続され、ゲートが制御信号SOGNDの配線に接続され、ソースがトランジスタ34のドレインに接続される。
トランジスタ34は、ドレインがトランジスタ33のソースに接続され、ゲートが接続点NS1に接続され、ソースが接地される。
トランジスタ35は、ドレインが接続点NS1に接続され、ゲートが制御信号SETSの配線に接続され、ソースが接続点XS1に接続される。
トランジスタ37は、ドレインが接続点NS2に接続され、ゲートが制御信号RSTSの配線に接続され、ソースが接続点XS1及びトランジスタ38のドレインに接続される。
トランジスタ38は、ドレインが接続点XS1及びトランジスタ37のソースに接続され、ソースが接地される。
トランジスタ39は、ドレインが接続点SOに接続され、ゲートが制御信号TRANSの配線に接続され、ソースがトランジスタ40のドレインに接続される。
トランジスタ40は、ドレインがトランジスタ39のソースに接続され、ゲートが接続点NS2に接続され、ソースが接地される。
トランジスタ41は、ドレインがビット線BLiに接続され、ゲートが制御信号BLSLTの配線に接続され、ソースが接続点SOに接続される。トランジスタ42は、ドレインがビット線BLiに接続され、ゲートが制御信号PDISの配線に接続され、ソースが接地される。
トランジスタ43は、ソースが電源配線に接続され、ゲートが制御信号LOADの配線に接続され、ドレインが接続点SOに接続される。
トランジスタ44は、ドレインが接続点NC1に接続されゲートが制御信号SETCの配線に接続され、ソースが接続点XC1及びトランジスタ45のドレインに接続される。
トランジスタ45は、ドレインが接続点XC1及びトランジスタ44のソースに接続され、ゲートが制御信号DIENの配線に接続され、ソースがデータ入力端子DINに接続される。
トランジスタ46は、ドレインが接続点NC2に接続され、ゲートが制御信号RSTCの配線に接続され、ソースが接続点XC1及びトランジスタ47のドレインに接続される。
トランジスタ47は、ドレインが接続点XC1及びトランジスタ46のソースに接続され、ゲートが接続点SOに接続され、ソースが接地される。
トランジスタ48は、ドレインが接続点SOに接続され、ゲートが制御信号TRANCの配線に接続され、ソースがトランジスタ49のドレインに接続される。トランジスタ49は、ドレインがトランジスタ48のソース及びトランジスタ50のドレインに接続され、ゲートが接続点NC2に接続される。
トランジスタ50は、ドレインがトランジスタ48のソース及びトランジスタ49のドレインに接続され、ゲートが制御信号DOENの配線に接続され、ソースが出力信号線の端子DOUTに接続される。
上記構成のページバッファ14Aは、S−ラッチ21側の回路と、このS−ラッチ21側の回路と類似するC−ラッチ22側の回路との2つの回路を主要な要素として構成されている。以下では、ページバッファ14Aについて、メモリセルに対するデータ読み出し動作、プログラム動作、及びイレース動作等の各々の動作における通常の動作については、その説明を省略し、本発明に直接関係するS−ラッチ21に保持されたデータのC−ラッチ22へ退避する動作、及びC−ラッチ22に退避したデータをS−ラッチ21に戻す動作についてのみ説明する。
本実施形態の不揮発性半導体装置1においては、乱数発生回路17Aにより生成された乱数のデータは、図4に示すページバッファ14A内のS−ラッチ21に保持される。ページバッファ14Aは、このS−ラッチ21に保持したデータを、一旦、C−ラッチ22に退避した後に、乱数発生に用いたメモリセルをイレースする。このメモリセルをイレースした後に、ページバッファ14Aは、C−ラッチ22に退避したデータをS−ラッチ21に戻し、このS−ラッチ21に戻したデータを再びメモリセルに書き込む。これにより、メモリセルに乱数のデータが確実に保持される。
以下、図5及び図6を参照して、S−ラッチ21からC−ラッチ22へのデータの退避動作と、C−ラッチ22からS−ラッチ21へのデータの戻し動作について説明する。
図5は、S−ラッチ21のデータをC−ラッチ22へ退避する動作を説明するためのタイミングチャートである。この図5は、横方向に時間の経過を示し、縦方向に、制御信号LOADと、制御信号TRANSと、接続点SOのノード電位と、制御信号RSTCと、制御信号SETCと、接続点NC1のノード電位と、接続点NC2のノード電位とを、並べて示したものである。また、それぞれの信号のレベルを、1(「H」レベル)または0(「L」レベル)で示したものである。
また、期間T1は、接続点SOのプリチャージ期間を示し、期間T2は、C−ラッチ22のリセット期間を示し、期間T3は、S−ラッチから接続点SOへのデータ転送期間を示し、期間T4は、接続点SOからC−ラッチへのデータ転送期間を示している。
図5を参照して、最初に、期間T1において、トランジスタ43のゲートに印加される制御信号LOADが「L」レベルになることにより、トランジスタ43がオンになり、接続点SOが「H」レベルにプリチャージされる。
その後、期間T2に至り、C−ラッチ22側のトランジスタ46のゲートに印加される制御信号RSTCが「H」レベルになることにより、接続点NC1が「H」レベルにセットされ、接続点NC2が「L」レベルにセットされる。
その後、期間T3に至り、トランジスタ39のゲートに印加される制御信号TRANSが「H」レベルになることにより、接続点SOのノード電位が、接続点NS2のノード電位に応じて、「H」レベル(実線で示す波形)又は「L」レベル(点線で示す波形)に変化する。
より具体的には、接続点SOは、接続点NS1のノード電位が「H」であり接続点NS2のノード電位が「L」レベルの場合(NS1/NS2=1/0の場合)に、「H」レベルになる。また、接続点SOは、接続点NS1のノード電位が「L」であり接続点NS2のノード電位が「H」レベルの場合(NS1/NS2=0/1の場合)に、「L」レベルになる。
続いて、期間T4に至り、トランジスタ44のゲートに印加される制御信号SETCが「H」レベルになり、トランジスタ46のゲートに印加される制御信号RSTCが「L」レベルであることにより、接続点SOのノード電位(「H」レベル又は「L」レベル)に応じた電位が、C−ラッチ22に設定される。
例えば、期間T4において、接続点SOのノード電位が「H」レベルである場合は、実線で示すように、C−ラッチ22の接続点NC1が「L」レベルとなり、接続点NC2が「H」レベルとなる。一方、期間T4において、接続点SOのノード電位が「L」レベルである場合は、点線で示すように、C−ラッチ22の接続点NC1が「H」レベルとなり、接続点NC2が「L」レベルとなる。
このように、接続点SOのノード電位は、S−ラッチ21の接続点NS2のノード電位により「H」レベル又は「L」レベルに変化し、また、接続点SOのノード電位(「H」レベル又は「L」レベル)に応じて、C−ラッチ22の接続点NC2のノード電位が変化する。これにより、S−ラッチ21に保持されたデータを、C−ラッチ22に退避することができる。
また、図6は、C−ラッチ22に退避したデータをS−ラッチ21へ戻す際の動作を説明するためのタイミングチャートである。この図6において、期間T1は、接続点SOのプリチャージ期間を示し、期間T2は、S−ラッチ21のリセット期間を示し、期間T3は、C−ラッチから接続点SOへのデータ転送期間を示し、期間T4は、接続点SOからS−ラッチへのデータ転送期間を示している。
図6を参照して、最初に、期間T1において、トランジスタ43のゲートに印加される制御信号LOADが「L」レベルになることにより、トランジスタ43がオンになり、接続点SOが「H」レベルにプリチャージされる。
その後、期間T2に至り、S−ラッチ21側のトランジスタ37のゲートに印加される制御信号RSTSが「H」レベルになることにより、接続点NS1が「H」レベルにセットされ、接続点NS2が「L」レベルにセットされる。
その後、期間T3に至り、トランジスタ48のゲートに印加される制御信号TRANCが「H」レベルになることにより、接続点SOのノード電位が、接続点NC2のノード電位に応じて、「H」レベル(実線で示す波形)又は「L」レベル(点線で示す波形)に変化する。より具体的には、接続点SOは、接続点NC2のノード電位が「H」レベルの場合に「L」レベルになり、接続点NC2のノード電位が「L」レベルの場合に「H」レベルなる。
続いて、期間T4に至り、トランジスタ35ゲートに印加される制御信号SETSが「H」レベルになり、トランジスタ37のゲートに印加される制御信号RSTSが「L」レベルであることにより、接続点SOのノード電位(「H」レベル又は「L」レベル)に応じた電位が、S−ラッチ21に設定される。
例えば、期間T4において、接続点SOのノード電位が「H」レベルである場合は、実線で示すように、S−ラッチ21の接続点NS1が「L」レベルとなり、接続点NS2が「H」レベルとなる。
一方、期間T4において、接続点SOのノード電位が「L」レベルである場合は、点線で示すように、S−ラッチ21の接続点NS1が「H」レベルとなり、接続点NS2が「L」レベルとなる。
このように、接続点SOのノード電位は、C−ラッチ22の接続点NC2のノード電位により「H」レベル又は「L」レベルに変化し、また、接続点SOのノード電位(「H」レベル又は「L」レベル)に応じて、S−ラッチ21の接続点NS2のノード電位が変化する。これにより、C−ラッチ22に退避したデータを、S−ラッチ21側に戻すことができる。
[第1の応用例]
次に、図4に示すページバッファ14Aの構成を用いた、本実施形態の不揮発性半導体装置1における第1の応用例について説明する。図7は、本実施形態の不揮発性半導体装置1における第1の応用例を示すフローチャートである。この第1の応用例では、メモリセルのパス・フェイル情報(乱数のデータ)を、S−ラッチ21からC−ラッチ22に転送した後、一旦、イレース動作により、メモリセルを消去状態にした後、C−ラッチ22のデータをS−ラッチ21に再度転送し、その後、S−ラッチ21のデータをメモリセルに書き込む。
これにより、メモリセルに書き込んだ乱数のデータについて、メモリセルの閾値の分布は、図3(A)で示した通常の分布と同等となる。
すなわち、ベリファイ動作においてメモリセルの所定の割合、例えば50%がパスし、ページバッファ14A(より具体的にはS−ラッチ21)内に乱数を生成した直後の状態において、再度、メモリセルのデータの読み出しを行っても、読み出しに必要なマージンが得られないため、同一のデータが読み出されるとは限らない。そこで、本応用例を用いることにより、発生させた乱数を確実にメモリセルに記憶させ、十分なマージンを持って乱数を読み出すことができる。
図7は、上述した第1の応用例における処理の流れをフローチャートで示したものである。以下、図7のフローチャートを参照して、第1の応用例における処理の流れについて説明する。
最初に、乱数発生回路17Aは、ページバッファコントロール13により、乱数発生を行うために使用するメモリセル(例えば、1ページ分のメモリセル)の全部をイレース状態(オール「1」)にする(ステップS100)。
その後、乱数発生回路17Aは、ライトステートマシーン16及びページバッファコントロール13により、制御ゲート(選択したワード線WL)に印加する書き込み(プログラム)電圧を初期電圧に設定し、1ページ分のメモリセルへのプログラム動作(オール「0」の書込み動作)を開始する(ステップS101)。続いて、乱数発生回路17Aは、ページバッファコントロール13及びページバッファ14Aにより、メモリセルへ書き込んだデータを読み出し、プログラム結果を照合するベリファイ動作を行う(ステップS102)。
このステップS102の処理に続いて、乱数発生回路17Aは、パスビット数カウンタ15により、プログラムが完了したメモリセルの数(パスビット数)を計数し、パスビット数の割合が全ビット数の50%以上であるか否かを判定する(ステップS103)。
そして、ステップS103の処理において、パスビット数が50%以上でないと判定された場合に(ステップS103:No)、乱数発生回路17Aは、ライトステートマシーン16及びページバッファコントロール13により、プログラム電圧を所定電圧分だけ増加させて、ステップS101の処理に戻り、再度、メモリセルへの書込み動作(プログラム動作)を開始する。
一方、ステップS103の処理において、パスビット数が50%以上であると判定された場合に(ステップS103:Yes)、乱数発生回路17Aは、メモリセルのプログラム動作を停止し、ステップS104の処理に移行する。このステップS104の処理により、乱数発生回路17Aは、ページバッファ14Aにおいて、S−ラッチ21に保持されたデータをC−ラッチ22に転送(退避)する(ステップS104)。
なお、ステップS104の処理により、S−ラッチ21に保持されたデータをC−ラッチ22に転送(退避)するのは、次のステップS105及びS106のメモリセルのイレース(消去)動作において、S−ラッチ21が使用され保持したデータが失われるためである。
ステップS104においてメモリセルのイレース動作(消去動作)が開始された後、乱数発生回路17Aは、メモリセルの消去動作とベリファイ動作とを繰り返し(ステップS105及びS106)、このイレース動作(消去動作)を、メモリセルの全ビットパス、すなわち全ビットのイレースが完了するまで繰り返す(ステップS107)。
そして、ステップS107の処理において、メモリセルの全ビットパスと判定された場合に(ステップS107:Yes)、乱数発生回路17Aは、ステップS108の処理に移行し、ページバッファ14Aにおいて、C−ラッチ22に退避したデータをS−ラッチ21に転送する(ステップS108)。
このステップS108の処理の終了後にステップS109の処理に移行し、乱数発生回路17Aは、ページバッファコントロール13及びページバッファ14Aにより、S−ラッチ21に保持されたデータのメモリセルへの書込み動作とベリファイ動作とを、全ビットのベリファイがパスするまで行う(ステップS109,S110,S111)。
そして、乱数発生回路17Aは、S−ラッチ21に保持されたデータのメモリセルへの書込みが完了した場合に(ステップS111:Yes)、メモリセルへの乱数データの格納処理を完了して終了する。
このように、第1の応用例では、メモリセルのプログラム動作により乱数を発生させることができるとともに、発生させた乱数のデータをそのまま確実にメモリセルに記憶できる。また、乱数発生回路17Aは、十分なマージンを持ってメモリセルから乱数を読み出して、出力することができる。
[第2の応用例]
上記の第1の応用例は、メモリセルのプログラム時の特性のばらつきを利用した応用例であるが、消去時のばらつきを利用した応用例とすることもできる。
図8は、本実施形態の不揮発性半導体装置1における第2の応用例を示すフローチャートである。この図8に示すフローチャートの基本的な動作は、図7に示すフローチャートと同じである。この図8に示すフローチャートは、図7に示すフローチャートと比較して、図7に示すステップS100の処理を図8に示すステップS100Aの処理に置き換え、図7に示すステップS101の処理を図8に示すステップS101Aの処理に置き換えた点だけが異なる。他の処理については同様であり、同じ処理内容のステップには同じ符号を付している。
図8に示すように、第2の応用例では、ステップS100Aにおいて、乱数発生回路17Aは、ページバッファコントロール13により、乱数発生を行うために使用するメモリセル(例えば、1ページ分のメモリセル)の全部をプログラム状態(オール「0」)にする(ステップS100A)。
その後、乱数発生回路17Aは、ライトステートマシーン16及びページバッファコントロール13により、メモリセルに印加するイレース電圧を初期電圧に設定し、メモリセルのイレース動作(消去動作)を開始する(ステップS101A)。
ステップS101Aの処理の後、乱数発生回路17Aは、ページバッファコントロール13及びページバッファ14Aにより、メモリセルのデータを読み出し、イレース動作の結果を判定するベリファイ動作を行う(ステップS102)。
続いて、乱数発生回路17Aは、パスビット数カウンタ15により、イレースが完了したメモリセルの数(パスビット数)を計数し、パスビット数の割合が全ビット数の50%であるか否かを判定する(ステップS103)。
そして、ステップS103の処理において、パスビット数が50%以上でないと判定された場合は(ステップS103:No)、乱数発生回路17Aは、ライトステートマシーン16及びページバッファコントロール13により、イレース電圧を所定電圧分だけ増加させて、ステップS101の処理に戻り、再度、イレース動作(消去動作)を開始する。
一方、ステップS103の処理において、パスビット数が50%以上であると判定された場合は(ステップS103:Yes)、乱数発生回路17Aは、メモリセルのイレース動作(消去動作)を停止する。そして、乱数発生回路17Aは、ページバッファ14Aにおいて、S−ラッチ21に保持されたデータをC−ラッチ22に転送(退避)する(ステップS104)。
その後の処理は、図7の場合と同じであり、重複する説明は省略する。
このように、第2の応用例では、メモリセルのイレース動作により乱数を発生させることができるとともに、発生させた乱数を確実にメモリセルに記憶できる。また、十分なマージンを持ってメモリセルから乱数を読み出して、出力することができる。
以上、説明したように、本実施形態の不揮発性半導体装置1では、乱数発生回路17Aにより、メモリセルの特性のばらつきを利用して予測可能性が極めて低い乱数を発生することが可能となる。このため、不揮発性半導体装置1では、この乱数を暗号演算などに利用することにより、セキュリティレベルを向上させることができる。さらに、不揮発性半導体装置1では、生成した乱数を、メモリセルアレイ10にそのまま格納することができる。このため、本実施形態の不揮発性半導体装置1では、複雑な回路を用意することなく、予測可能性が極めて低い乱数を簡単に生成することができる。
なお、上記実施形態では、プログラム動作又はイレース動作後のベリファイ動作において、1/2(50%)の不揮発性メモリセルがベリファイパスする場合の、パスセルとフェイルセルとの分布の状態に基づいて乱数を生成しているが、パスセルの割合は、必ずしも1/2(50%)である必要はなく、例えば、40%や、60%や、70%など、任意の割合にすることができる。
以上、本発明の実施の形態について説明したが、ここで、本発明と上述した実施形態との対応関係について補足して説明しておく。すなわち、上記実施形態において、本発明における不揮発性半導体装置は、不揮発性半導体装置1が対応し、また、本発明における乱数発生回路は、図1に示す不揮発性半導体装置1において、乱数発生回路17Aが対応する。
この乱数発生回路17Aは、乱数の発生に関係する主要な部分として、ページバッファコントロール13、ページバッファ群14、パスビット数カウンタ15、及びライトステートマシーン16における乱数発生に関係する部分と、乱数生成部17とを代表して示したものである。また、本発明における不揮発性メモリセルは、メモリセルアレイ10中の不揮発性メモリセルが対応し、本発明におけるページバッファは、ページバッファ14Aが対応する。また、本発明における第1ラッチ回路は、図4に示すS−ラッチ21が対応し、本発明における第2ラッチ回路は、C−ラッチ22が対応する。
そして、上記実施形態において、本発明の乱数発生回路17Aは、不揮発性メモリに搭載される乱数発生回路17Aであって、複数の不揮発性メモリセルを所定の動作条件の基で同一のデータに変更する処理を行い、その後にベリファイ動作を実行してイレースセルとプログラムセルの分布の情報を生成し、該生成した分布の情報に基づいて乱数を発生させる。
このような構成の乱数発生回路17Aでは、複数の不揮発性メモリセルを所定の動作条件の基で一括して同一のデータに変更する処理を行い、ベリファイ動作によりイレースセルと判定される不揮発性メモリセルと、ベリファイ動作によりプログラムセルと判定される不揮発性メモリセルとを発生させる。そして、このベリファイ動作により、イレースセルとプログラムセルとの分布の状態を検出し、この分布の情報に基づいて乱数を生成する。
これにより、本発明の乱数発生回路17Aは、不揮発性メモリセルの製造時の特性のばらつきを利用して、予測可能性が低い乱数を発生することができる。
また、上記実施形態において、本発明の乱数発生回路17Aは、上記所定の動作条件の基で、複数の不揮発性メモリセルに対してプログラム動作又はイレース動作を行い、その後にベリファイ動作を実行してイレースセルとプログラムセルの分布の情報を生成し、該生成した分布の情報に基づいて乱数を発生させる。
このような構成の乱数発生回路17Aでは、複数の不揮発性メモリセルにおけるプログラム(書き込み)又はイレース(消去)特性のばらつきを利用して乱数を生成する。例えば、プログラム時の動作条件(例えば、ワード線の電圧等)を、イレースセルとプログラムセルのばらつきが大きくなるように設定する。そして、ベリファイ動作により、イレースセルとプログラムセルとの分布の状態を検出し、この分布の情報に基づいて乱数を生成する。
これにより、本発明の乱数発生回路17Aは、不揮発性メモリセルの製造時の特性のばらつきを利用して、予測可能性が低い乱数を発生することができる。
また、上記実施形態において、乱数発生回路17Aでは、上記動作条件が、プログラム動作又はイレース動作の後のベリファイ動作においてベリファイパスしたメモリセルの割合が所定の割合(例えば、50%)になるように設定され、ベリファイパスしたメモリセルの割合が所定の割合(例えば、50%)になる場合に、複数の不揮発性メモリセルについてのベリファイパスしたメモリセルとベリファイフェイルしたメモリセルとの分布の情報を検出し、該分布の情報に基づいて乱数を生成する。
このような構成の乱数発生回路17Aでは、プログラム又はイレース時の動作条件を、ベリファイ動作においてベリファイパスしたメモリセルの割合が所定の割合(例えば、50%)になるように設定する。
これにより、本発明の乱数発生回路は、不揮発性メモリセルの製造時の特性のばらつきを利用して乱数を発生することができるとともに、データ「1」とデータ「0」とが所定の割合(例えば、50%)で含まれる乱数を発生することができる。
また、上記実施形態において、乱数発生回路17Aは、上記動作条件を、予め設定した初期条件であってベリファイ動作においてベリファイパスしたメモリセルが所定の割合(例えば、50%)以下となる第1動作条件(例えば、全ての不揮発性メモリセルがベリファイフェイルする動作条件)から、ベリファイパスしたメモリセルが所定の割合(例えば、50%)以上となる第2動作条件(例えば、全ての不揮発性メモリセルがベリファイパスする動作条件)に向けて次第に移行させ、ベリファイ動作においてベリファイパスしたメモリセルの割合が所定の割合(例えば、50%)を超えたと判定された場合に、ベリファイパスしたメモリセルとベリファイフェイルしたメモリセルとの分布の情報を検出する。
このような構成の乱数発生回路17Aでは、プログラム又はイレース時の動作条件を、所定の割合(例えば、50%)以下の不揮発性メモリセルのみがベリファイパスする第1動作条件から、所定の割合以上の不揮発性メモリセルがベリファイパスする第2動作条件に向けて次第に変更する。そして、ベリファイパスするメモリセルの割合が所定の割合に到達した場合に、ベリファイパスしたメモリセルとベリファイフェイルしたメモリセルとの分布の情報を検出する。
これにより、乱数発生回路17Aは、プログラム又はイレース時の動作条件を次第に変更させながら、ベリファイパスするメモリセルの割合が所定の割合(例えば、50%)になるようにして、乱数を生成することができる。このため、乱数発生回路17Aは、乱数発生のための特別な回路を用意することなく、簡易な方法により乱数を発生させることができる。
また、上記実施形態において、本発明の乱数発生回路17Aは、複数の不揮発性メモリセルは、1ページ分の不揮発性メモリセルであって、それぞれのメモリセルに対応して1つのページバッファが設けられ、1ページ分の不揮発性メモリセルについてのベリファイ動作により、ベリファイパスするメモリセルが所定の割合を超えた判定された場合に、ページバッファに読み出されたデータを乱数として保持する。
このような構成の乱数発生回路17Aでは、乱数を発生させるために使用する複数の不揮発性メモリセルとして、1ページ分の不揮発性メモリセルを使用する。
これにより、乱数発生回路17Aは、1ページのビット長に相当する乱数を生成することができる。
また、上記実施形態において、乱数発生回路17Aは、ページバッファ14Aが、ページバッファ14Aに読み出された不揮発性メモリセルのデータを保持する第1ラッチ回路(S−ラッチ21)と、第1ラッチ回路のデータを退避して保持するための第2ラッチ回路(C−ラッチ22)と、を備え、ベリファイ動作においてベリファイパスするメモリセルが所定の割合を超えたと判定された場合に、該ベリファイ動作を終了し、ベリファイ動作の終了後に、第1ラッチ回路(S−ラッチ21)から第2ラッチ回路(C−ラッチ22)へデータを退避し、データの退避後に不揮発性メモリセルをイレースし、不揮発性メモリセルのイレース後に、第2ラッチ(C−ラッチ22)に退避したデータを第1ラッチ回路(S−ラッチ21)に戻し、第1ラッチ回路(S−ラッチ21)に戻されたデータを不揮発性メモリセルに書き戻す。
このような構成の乱数発生回路17Aでは、生成した乱数を不揮発性メモリセルに再度書き込んで保持する。
これにより、乱数発生回路17Aでは、生成した乱数を、メモリセルアレイ10にそのまま格納することができるとともに、生成した乱数を確実に保持することができる。
以上、本発明の実施の形態について説明したが、本発明の乱数発生回路及び不揮発性半導体装置は、上述の図示例にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
例えば、上述した実施形態では、不揮発性メモリセルがSLCである不揮発性半導体装置の例について説明したが、本発明の乱数発生回路は、不揮発性メモリセルがMLC(Multi Level Cell)である不揮発性半導体装置においても実現可能である。
1…不揮発性半導体装置、10…メモリセルアレイ、11…制御回路、12…ロウデコーダ、13…ページバッファコントロール、14…ページバッファ群、14A…ページバッファ、15…パスビット数カウンタ、16…ライトステートマシーン、17…乱数生成部、17A…乱数発生回路、18…I/Oバッファ、19…I/Oパッド

Claims (7)

  1. 不揮発性メモリに搭載される乱数発生回路であって、複数の不揮発性メモリセルを所定の動作条件の基で同一のデータに変更する処理を行い、その後にベリファイ動作を実行してイレースセルとプログラムセルの分布の情報を生成し、該生成した分布の情報に基づいて乱数を発生させることを特徴とする乱数発生回路。
  2. 前記所定の動作条件の基で、前記複数の不揮発性メモリセルに対してプログラム動作又はイレース動作を行い、その後にベリファイ動作を実行してイレースセルとプログラムセルの分布の情報を生成し、該生成した分布の情報に基づいて乱数を発生させることを特徴とする請求項1に記載の乱数発生回路。
  3. 前記動作条件は、前記プログラム動作又はイレース動作の後のベリファイ動作においてベリファイパスしたメモリセルの割合が所定の割合になるように設定され、
    前記ベリファイパスしたメモリセルの割合が前記所定の割合になる場合に、前記複数の不揮発性メモリセルについてのベリファイパスしたメモリセルとベリファイフェイルしたメモリセルとの分布の情報を検出し、該分布の情報に基づいて乱数を生成する
    ことを特徴とする請求項2に記載の乱数発生回路。
  4. 前記動作条件を、予め設定した初期条件であって前記ベリファイ動作においてベリファイパスしたメモリセルが前記所定の割合以下となる第1動作条件から、ベリファイパスしたメモリセルが前記所定の割合以上となる第2動作条件に向けて次第に移行させ、
    前記ベリファイ動作において前記ベリファイパスしたメモリセルの割合が前記所定の割合を超えたと判定された場合に、前記ベリファイパスしたメモリセルとベリファイフェイルしたメモリセルとの分布の情報を検出する
    ことを特徴とする請求項3に記載の乱数発生回路。
  5. 前記複数の不揮発性メモリセルは、1ページ分の不揮発性メモリセルであって、
    それぞれのメモリセルに対応して1つのページバッファが設けられ、
    前記1ページ分の不揮発性メモリセルについての前記ベリファイ動作により、ベリファイパスするメモリセルが前記所定の割合を超えた判定された場合に、前記ページバッファに読み出されたデータを乱数として保持する
    ことを特徴とする請求項4に記載の乱数発生回路。
  6. 前記ページバッファは、
    前記ページバッファに読み出された前記不揮発性メモリセルのデータを保持する第1ラッチ回路と、
    前記第1ラッチ回路のデータを退避して保持するための第2ラッチ回路と、
    を備え、
    前記ベリファイ動作においてベリファイパスするメモリセルが前記所定の割合を超えたと判定された場合に、該ベリファイ動作を終了し、
    前記ベリファイ動作の終了後に、前記第1ラッチ回路から前記第2ラッチ回路へデータを退避し、
    前記データの退避後に前記不揮発性メモリセルをイレースし、
    前記不揮発性メモリセルのイレース後に、前記第2ラッチに退避したデータを前記第1ラッチ回路に戻し、
    前記第1ラッチ回路に戻されたデータを前記不揮発性メモリセルに書き戻す
    ことを特徴とする請求項5に記載の乱数発生回路。
  7. 請求項1から6のいずれか1項に記載の乱数発生回路を備える不揮発性半導体装置。
JP2012156480A 2012-07-12 2012-07-12 乱数発生回路、及び不揮性半導体装置 Pending JP2014021529A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012156480A JP2014021529A (ja) 2012-07-12 2012-07-12 乱数発生回路、及び不揮性半導体装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012156480A JP2014021529A (ja) 2012-07-12 2012-07-12 乱数発生回路、及び不揮性半導体装置

Publications (1)

Publication Number Publication Date
JP2014021529A true JP2014021529A (ja) 2014-02-03

Family

ID=50196387

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012156480A Pending JP2014021529A (ja) 2012-07-12 2012-07-12 乱数発生回路、及び不揮性半導体装置

Country Status (1)

Country Link
JP (1) JP2014021529A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9640238B2 (en) 2014-05-21 2017-05-02 Panasonic Intellectual Property Management Co., Ltd. Data generating device and data generating method
US10020268B2 (en) 2016-04-13 2018-07-10 Ememory Technology Inc. Random number generator device and control method thereof
JP2018181397A (ja) * 2017-04-13 2018-11-15 力旺電子股▲ふん▼有限公司eMemory Technology Inc. 乱数発生装置及びその制御方法
CN114093406A (zh) * 2021-10-28 2022-02-25 长江存储科技有限责任公司 一种存储器装置、系统、信息处理方法及可读存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9640238B2 (en) 2014-05-21 2017-05-02 Panasonic Intellectual Property Management Co., Ltd. Data generating device and data generating method
US10020268B2 (en) 2016-04-13 2018-07-10 Ememory Technology Inc. Random number generator device and control method thereof
JP2018181397A (ja) * 2017-04-13 2018-11-15 力旺電子股▲ふん▼有限公司eMemory Technology Inc. 乱数発生装置及びその制御方法
CN114093406A (zh) * 2021-10-28 2022-02-25 长江存储科技有限责任公司 一种存储器装置、系统、信息处理方法及可读存储介质

Similar Documents

Publication Publication Date Title
US9064580B2 (en) Nonvolatile semiconductor memory device and write-in method thereof
CN112259149B (zh) 半导体存储装置
JP4901348B2 (ja) 半導体記憶装置およびその制御方法
JP4902002B1 (ja) 不揮発性半導体記憶装置
JP5565948B2 (ja) 半導体メモリ
CN107818809A (zh) 半导体存储装置及存储器系统
JP5992983B2 (ja) 不揮発性半導体記憶装置
JP2013125576A (ja) 不揮発性半導体記憶装置
JP2014157650A (ja) 半導体記憶装置
CN103035291B (zh) 半导体器件及其操作方法
JP2010211883A (ja) 不揮発性半導体記憶装置
KR20120069533A (ko) 불휘발성 반도체 기억 장치
TW201324514A (zh) 半導體裝置及其操作方法
JP6102146B2 (ja) 半導体記憶装置
CN101071640B (zh) 验证闪存器件的方法
US7796441B2 (en) Method of reading configuration data in flash memory device
CN113345503B (zh) 半导体存储装置以及读出方法
JP2014021529A (ja) 乱数発生回路、及び不揮性半導体装置
JP5085058B2 (ja) プログラムの検証読み取り中に列スキャンを通じてプログラム時間を短縮させうるフラッシュメモリ装置のプログラム方法
JP2014021530A (ja) 乱数発生回路、及び不揮性半導体装置
KR102148569B1 (ko) 반도체 장치
JP2010218623A (ja) 不揮発性半導体記憶装置
JP2013127827A (ja) 不揮発性半導体記憶装置
JP2013218758A (ja) 不揮発性半導体記憶装置
JP5731624B1 (ja) 半導体記憶装置