(58)【調査した分野】(Int.Cl.,DB名)
前記少なくとも1つの乱数読出し電圧は第1乱数読出しデータに対応して発生する第1乱数読出し電圧、及び第2乱数読出しデータに対応して発生する第2乱数読出し電圧を含み、
前記暗号化キー発生方法は前記乱数読出しデータを発生するために前記第1乱数読出しデータ及び前記第2乱数読出しデータを論理的に結合する請求項10に記載の暗号化キー発生方法。
【発明を実施するための形態】
【0016】
以下、本発明が属する技術分野で通常の知識を有する者が本発明の技術的思想を容易に実施できるように詳細に説明するために、本発明の実施形態を添付した図面を参照して説明する。
【0017】
図1は本発明の実施形態によるメモリシステムを示すブロック図である。
図1を参照すれば、メモリシステム100は制御ユニット110、メモリ120、保安回路130、及びキー発生器140を含む。
【0018】
メモリシステム100はプロービング(probing)、フォールトインジェクション(fault injection)、又は電力分析(power analysis)等のような外部攻撃(external attack)を受けることがあり得る。メモリシステム100は外部攻撃からデータを保護するためにデータを暗号化し、暗号化されたデータ(encrypted data)をメモリ120に格納することができる。
【0019】
図1を参照すれば、制御ユニット110はデータ処理及び算術動作等のメモリシステム100の全般的な動作を制御する。メモリ120は制御ユニット110によって実行されるプログラム、又は使用者データ等を格納できる。メモリ120にはランダムアクセスメモリ(RAM)、読出し専用メモリ(ROM)、フラッシュメモリのような不揮発性メモリ(NVM)等が包含され得る。
図1では1つのメモリ120のみが図示されているが、メモリシステム100内には様々な種類のメモリが多様に存在することができる。
【0020】
保安回路130は暗号化回路132及び復号化回路131を含む。暗号化回路132はアドレスADDR及びキー(KEY)を受信し、データDATAを暗号化することができる。ここで、アドレスADDR及びデータDATAは制御ユニット110から提供され、キー(KEY)はキー発生器140から提供され得る。復号化回路131はアドレスADDR及びキー(KEY)を受信し、暗号化されたデータを復号化することができる。
【0021】
続いて
図1を参照すれば、キー発生器140はメモリ120から乱数(RN:Random Number)を受信し、キー(KEY)を生成する。ここで、乱数RNはメモリ120から読み出した読出しデータ(RD:Read Data)であり得る。キー発生器140はメモリ120から提供された読出しデータRD又は使用者情報(user information)等を利用してキー(KEY)を生成する。
【0022】
本発明の実施形態によるメモリシステム100はメモリ120の読出しデータ(RD:Read Data)を利用してキー(KEY)を生成するので、別の乱数発生器を必要としない。ここで、メモリシステム100はメモリ120の物理的特性を基づいて、読出しデータRDを乱数RNとして利用することができる。メモリ120の物理的特性を基づいてする乱数RN生成方法が以下で詳細に説明される。
【0023】
図2は本発明の実施形態によるフラッシュメモリシステムを示すブロック図である。
図2を参照すれば、フラッシュメモリシステム1000はフラッシュメモリ1100及びメモリコントローラ1200を含む。フラッシュメモリシステム1000にはメモリカード、USBメモリ、SSD等のように、フラッシュメモリに基づくデータ格納装置が全て包含され得る。
【0024】
フラッシュメモリ1100はメモリコントローラ1200の制御にしたがって消去、書込み、又は読出し動作等を遂行できる。
図2を参照すれば、フラッシュメモリ1100はメモリセルアレイ1110及びデータ入出力回路1140を含む。フラッシュメモリ1100はメモリブロック単位に消去動作を遂行し、ページ単位に書込み又は読出し動作を遂行する。
【0025】
メモリコントローラ1200は外部(例えば、ホスト)の要請に応答してフラッシュメモリ1100に対する読出し及び書込み動作を制御する。メモリコントローラ1200はホストインターフェイス1210、フラッシュインターフェイス1220、制御ユニット1230、RAM1240、キー発生器1250、及び暗号化回路1260を含む。
【0026】
ホストインターフェイス1210は外部(例えば、ホスト)とのインターフェイスを提供し、フラッシュインターフェイス1220はフラッシュメモリ1100とのインターフェイスを提供する。ホストインターフェイス1210はPATAバス(parallel AT attachment bus)、SATAバス(serial AT attachment)、SCSI、USB等を通じてホストと連結されることもあり得る。
【0027】
制御ユニット1230はフラッシュメモリ1100に対する全般的な動作(例えば、読出し、書込み、ファイルシステム管理等)を制御することができる。例えば、図面には図示せずが、制御ユニット1230は中央処理装置(CPU)、プロセッサー(processor)、SRAM、DMA制御器等を包含することができる。
【0028】
RAM1240は制御ユニット1230の制御にしたがって動作し、ワークメモリ(work memory)、バッファメモリ(buffer memory)、キャッシュメモリ(cache memory)等として使用され得る。RAM1240がワークメモリとして使用される場合に、制御ユニット1230によって処理されるデータが臨時格納される。RAM1240がバッファメモリとして使用される場合には、ホストからフラッシュメモリ1100へ、又はフラッシュメモリ1100からホストへ伝送されるデータをバッファーリングするのに使用される。RAM1240がキャッシュメモリとして使用される場合には低速のフラッシュメモリ1100が高速に動作するようにする。
【0029】
RAM1240はフラッシュ変換階層FTLを駆動するための駆動メモリとして使用され得る。フラッシュ変換階層FTLはフラッシュメモリのマージ動作(merge operation)やマッピングテーブル(mapping table)等を管理するのに使用される。
【0030】
キー発生器1250はフラッシュメモリ1100から提供される読出しデータを乱数RNとして利用する。キー発生器1250はフラッシュメモリ1100から提供される乱数RNを利用して、キー(KEY)を生成する。キー発生器1250は様々な方法にキー(KEY)を生成する。一般的にキー発生器1250は使用者情報や乱数(random number)を組合して生成する。暗号化回路1260はキー発生器1250からキー(KEY)を受信し、データDATAを暗号化する。
【0031】
一方、従来のキー発生器は乱数を生成するために乱数発生器を別に具備する。しかし、本発明の実施形態によるフラッシュメモリシステム1000はフラッシュメモリ1100の読出しデータ(RD:Read Data)を乱数RNとして利用するので、別の乱数発生器を必要としない。
図3は
図2に図示されたフラッシュメモリを例示的に示すブロック図である。
図3を参
【0032】
照すれば、フラッシュメモリ1100はメモリセルアレイ1110、アドレスデコーダー1120、ページバッファ回路1130、データ入出力回路1140、電圧発生器1150、及び制御ロジック1160を含む。
【0033】
メモリセルアレイ1110は複数のメモリブロック(memory block)で構成され得る。
図3では例として1つのメモリブロックが図示されている。各々のメモリブロックは複数の物理ページ(physical page)で構成され得る。ここで、物理ページは1つのワードラインに連結されているメモリセルの集合を意味する。
図3で参照番号1111は1つの物理ページの例である。各々の物理ページは複数のメモリセルで構成され得る。各々のメモリセルはコントロールゲートとフローティングゲートを有するセルトランジスターで構成され得る。
【0034】
メモリセルアレイ1110は複数のセルストリング(cell string)で構成されている。各々のセルストリング(例えば、1112)はストリング選択ライン(SSL:String Selection Line)に連結されるストリング選択トランジスター、複数のワードラインWL0〜WL63に連結される複数のメモリセル、及び接地選択ライン(GSL:Ground Selection Line)に連結される接地選択トランジスターを含む。ストリング選択トランジスターはビットラインBLに連結され、接地選択トランジスターは共通ソースライン(CSL:Common Source Line)に連結される。
【0035】
フラッシュメモリ1100の1つのメモリセルにはシングルビットデータ(single bit data)又は2ビット以上のマルチビットデータ(multi bit data)が格納され得る。シングルビットデータを格納するSLCフラッシュメモリは閾値電圧分布にしたがって、消去状態とプログラム状態とを有する。マルチビットデータを格納するMLCフラッシュメモリは閾値電圧分布にしたがって、1つの消去状態と複数のプログラム状態とを有する。
【0036】
続いて
図3を参照すれば、アドレスデコーダー1120は選択ラインSSL、GSL又はワードラインWL0〜WL63を通じてメモリセルアレイ1110に連結される。プログラム又は読出し動作の時に、アドレスデコーダー1120はアドレスADDRを受信し、いずれか1つのワードライン(例えば、WL0)を選択することができる。
【0037】
ページバッファ回路1130はビットラインBL0〜BLmを通じてメモリセルアレイ1110に連結される。ページバッファ回路1130は複数のページバッファ(図示せず)で構成される。1つのページバッファには1つのビットラインが連結(all BL構造)されるか、或いは2つ又はその以上のビットラインが連結(shield BL構造)されることもあり得る。ページバッファ回路1130は選択ページ1111にプログラムされるデータや選択ページ1111から読み出したデータを臨時的に格納できる。
【0038】
データ入出力回路1140は内部的にはデータラインDLを通じてページバッファ回路1130に連結され、外部的には入出力ライン(I/O)を通じてメモリコントローラ(
図2参照、1200)に連結される。データ入出力回路1140はプログラム動作の時、メモリコントローラ1200からプログラムデータ(program data)を受信する。そして、データ入出力回路1140は読出し動作の時、読出しデータ(read data)をメモリコントローラ1200へ提供し、乱数生成動作の時には乱数(random number)を出力(read out)することができる。
【0039】
電圧発生器1150はメモリコントローラ1200から電源PWRを受信し、データを読み出すか、或いは書き込むのに必要であるワードライン電圧VWLを発生する。ワードライン電圧VWLはアドレスデコーダー1120へ提供される。
図3を参照すれば、電圧発生器1150は選択読出し電圧発生器(Vrd generator、1151)、非選択読出し電圧発生器(Vread generator、1152)、及び乱数読出し電圧発生器(Vrn generator、1153)を含む。
【0040】
選択読出し電圧発生器1151は選択されたワードライン(例えば、WL0)へ選択読出し電圧Vrdを提供する。そして、非選択読出し電圧発生器1152は非選択されたワードラインWL1〜WL63へ非選択読出し電圧Vreadを提供する。非選択読出し電圧Vreadはセルストリングに連結されたメモリセルを十分に動作させ得る電圧レベルである。
【0041】
乱数読出し電圧発生器1153は乱数生成動作の時に乱数読出し電圧Vrnを発生する。乱数生成動作の時に、乱数読出し電圧発生器1153は選択ワードラインWL0へ乱数読出し電圧Vrnを提供し、非選択読出し電圧発生器1152は非選択ワードラインWL1〜WL63へ非選択読出し電圧Vreadを提供する。乱数読出し電圧Vrnはフラッシュメモリセルの閾値電圧分布特性を通じて求められる。これは
図4及び
図5でさらに詳細に説明される。
【0042】
制御ロジック1160はコマンドCMD、アドレスADDR、及び制御信号CTRLを利用して、フラッシュメモリ1100のプログラム、読出し、消去等の動作を制御することができる。例えば、制御ロジック1160は読出し動作の時に、アドレスデコーダー1120を制御することによって、選択ワードライン(例えば、WL0)へ選択読出し電圧Vrdが提供されるようにし、ページバッファ回路1130及びデータ入出力回路1140を制御することによって、選択ページ1111にプログラムされたデータを読み出すことができる。一方、制御ロジック1160は乱数生成動作の時に、選択ワードラインWL0へ乱数読出し電圧Vrnを提供することによって、乱数を生成することができる。
【0043】
図4はフラッシュメモリセルの閾値電圧分布を示すダイヤグラムである。
図4で横軸はメモリセルの閾値電圧を示し、縦軸はメモリセルの数を示す。
【0044】
乱数(random number)を生成できるフラッシュメモリの物理的特性の中にはプログラムノイズ(program noise)と読出しノイズ(read noise)がある。プログラムノイズは各々のメモリセル毎に互に異なる閾値電圧移動速度を有することに起因する。プログラムノイズはメモリセルの閾値電圧分布に影響を与える要素として、各々のプログラム状態は正規分布と類似な分布を有する。フラッシュメモリを利用する乱数の生成はプログラム状態の正規分布特性を利用することである。
【0045】
読出しノイズは特定データが格納された同一ページへ同一読出し電圧を印加しても読出しデータが変わる現象に現われる。フラッシュメモリはこのような読出しノイズ特性を利用して乱数を生成することもできる。
【0046】
図4に示したように、1つのページ内の全てのメモリセルを特定データ(例えば、0)にプログラムすれば、メモリセルの閾値電圧分布は正規分布曲線を形成する。この時、乱数読出し電圧Vrnは閾値電圧分布の中間値に該当する電圧であり得る。乱数読出し電圧Vrnを選択ワードラインWL0へ印加し、非選択読出し電圧Vreadを非選択ワードラインWL1〜WL63へ印加し読出し動作を遂行する。
【0047】
このような乱数生成動作を通じて1つのページに該当する乱数を生成することができる。様々なページに対して乱数生成動作を遂行すれば、該当するページサイズぐらいの乱数を得られる。
図4ではSLCプログラム動作の場合を例としているが、MLCプログラム動作の場合にも各々のプログラム状態から乱数を得られる。
【0048】
図5はフラッシュメモリセルのワンショット(one shot)閾値電圧分布を示すダイヤグラムである。少なくとも1つのページを同一のデータ(例えば、データ 0)にSLCプログラムすれば、メモリセルは
図5に示したようにワンショット(one shot)閾値電圧分布を有する。フラッシュメモリ(
図3参照、1100)は様々なレベルの乱数読出し電圧を通じて乱数を生成することができる。
【0049】
図5は3つの乱数読出し電圧Vrn1、Vrn2、Vrn3を印加する例を示している。選択ワードラインWL0へ第1乃至第3乱数読出し電圧Vrn1、Vrn2、Vrn3を順に印加し、乱数生成動作を遂行すれば、ページ内の各セルの閾値電圧によって、第1乃至第3乱数が生成される。
【0050】
図6は
図5に図示された乱数読出し電圧によって発生する乱数及びキー生成方法を示す図表である。
図6で第1乱数RN1は第1乱数読出し電圧Vrn1を選択ワードライン(例えば、WL0)へ印加する時に発生する読出しデータである。同様に、第2及び第3乱数RN2は第2乱数読出し電圧Vrn2を印加する時に発生する読出しデータである。第1乃至第3乱数RN1〜RN3から発生するキー(KEY)は様々な方法に求められる。
図6では第1乃至第3乱数RN1〜RN3をXOR演算を通じてキー(KEY)を求める例が図示されている。
【0051】
図7は
図2に図示されたフラッシュメモリシステムの乱数生成方法を説明するための順序図である。以下では
図2及び
図3を参照し、本発明の実施形態によるフラッシュメモリシステムの乱数生成方法が説明される。
【0052】
S110段階で、乱数を発生するワードライン(例えば、WL0)が選択される。
図3では乱数を発生するワードラインWL0が1つのみが図示されているが、より多い数のワードラインが選択されることもあり得る。フラッシュメモリ(
図3参照、1100)はページ単位にプログラム及び読出し動作が遂行されるので、多数個のワードラインが選択される場合にもプログラムや読出し動作は各々の選択ワードラインに対して別個に遂行される。
【0053】
S120段階で、選択ページは全ての同一データ(例えば、データ 0)にプログラムされる。このために、ページバッファ回路1130内の全てのページバッファにデータ0がロードされた後に、選択ページが全て0にプログラムされる。選択ページが0にプログラムされれば、メモリセルの閾値電圧分布は
図5に示したようにワンショット(one shot)閾値電圧分布を有する。
【0054】
S130段階で、選択ワードラインWL0へ乱数読出し電圧Vrnが印加される。非選択ワードラインWL1〜WL63には非選択読出し電圧Vreadが提供される。選択ワードラインWL0へ印加される乱数読出し電圧Vrnは閾値電圧分布の中間値に該当する電圧である。実施形態によっては
図5に示したように様々なレベルの乱数読出し電圧が印加されることもあり得る。
【0055】
S140段階で、選択されたページを読み出す。乱数読出し電圧Vrnが閾値電圧分布の中間値であるので、選択ページから読み出したデータは乱数(random number)として使用することができる。
【0056】
S150段階で、選択ページから読み出すデータはメモリコントローラ(
図2参照、1200)のキー発生器1250へ提供される。キー発生器1250はフラッシュメモリ1100の読出しデータを乱数(random number)として使用してキー(KEY)を生成する。暗号化回路1260はキー発生器1250から提供されるキー(KEY)を利用してデータを暗号化する。
【0057】
以上で説明したように、本発明の実施形態によるフラッシュメモリシステム1000はフラッシュメモリセルの閾値電圧分布の特性を利用して乱数を発生できる。本発明はフラッシュメモリ1100の物理的特性を利用して乱数を発生するので、別の乱数発生器を必要としない。
【0058】
図8は本発明の他の実施形態によるフラッシュメモリシステムを示すブロック図である。
図8を参照すれば、フラッシュメモリシステム2000はフラッシュメモリ2100及びメモリコントローラ2200を含む。メモリコントローラ2200はホストインターフェイス2210、フラッシュインターフェイス2220、制御ユニット2230、RAM2240、及び暗号化回路2250を含む。
【0059】
図8に図示されたフラッシュメモリシステム2000ではキー発生器2165がフラッシュメモリ2100内に包含される。フラッシュメモリ2100は内部的に読出しデータを利用してキー(KEY)を生成し、生成されたキー(KEY)をメモリコントローラ2200の暗号化回路2250へ提供する。キー発生器2165を含むフラッシュメモリ2100の内部構成及び動作は
図9で詳細に説明される。
【0060】
図9は
図8に図示されたフラッシュメモリを例示的に示すブロック図である。
図9を参照すれば、フラッシュメモリ2100はメモリセルアレイ2110、アドレスデコーダー2120、ページバッファ回路2130、データ入出力回路2140、電圧発生器2150、及び制御ロジック2160を含む。
【0061】
電圧発生器2150は選択読出し電圧発生器(Vrd generator、2151)、非選択読出し電圧発生器(Vread generator、2152)、及び乱数読出し電圧発生器(Vrn generator、2153)を含む。乱数読出し電圧発生器2153は乱数生成動作の時に選択ワードラインWL0へ乱数読出し電圧Vrnを提供する。
【0062】
制御ロジック2160はキー発生器2165を含む。キー発生器2165は乱数生成動作の時に、データ入出力回路2140から乱数(random number)を受信し、キー(KEY)を生成する。キー(KEY)はデータ入出力回路2140を通じてメモリコントローラ(
図8参照、2200)の暗号化回路2250へ提供される。暗号化回路2250はフラッシュメモリ2100から提供されたキー(KEY)を利用してデータを暗号化し、暗号化されたデータをフラッシュメモリ2100又は他のメモリ(図示せず)へ提供する。
【0063】
図8に図示されたフラッシュメモリシステム2000は
図2に図示されたフラッシュメモリシステム1000と同様な方法で、フラッシュメモリセルの閾値電圧分布の特性を利用して乱数を生成する。本発明はフラッシュメモリ2100の物理的特性を利用して乱数を発生するので、別の乱数発生器を必要としない。
【0064】
図10は本発明の他の実施形態によるメモリシステムを示すブロック図である。
図10を参照すれば、メモリシステム200は制御ユニット210、フラッシュメモリ220、保安回路230、及びキー発生器240を含む。
【0065】
フラッシュメモリ220はスロービットカウンター221を含む。
図10に図示されたメモリシステム200はフラッシュメモリ220のスロービット(SB:Slow Bits)の数を乱数(random number)として利用してキー(KEY)を生成することができる。フラッシュメモリ220のスロービットSB物理的特性を基づく乱数RN発生方法が以下で詳細に説明される。
【0066】
保安回路230は暗号化回路232及び復号化回路231を含む。暗号化回路131はアドレスADDR及びキー(KEY)を受信し、データDATAを暗号化することができる。ここで、キー(KEY)はキー発生器240から提供される。暗号化されたデータ(Encrypted DATA)はフラッシュメモリ220に格納される。
【0067】
図11は
図10に図示されたメモリシステムの乱数生成方法を説明するためのダイヤグラム及び図表である。フラッシュメモリ220はプログラム動作の時にスローセル(slow cell)の数がランダム(random)であるという物理的特性を利用して乱数(random number)を生成することができる。
【0068】
図11を参照すれば、フラッシュメモリセルは閾値電圧分布にしたがって複数のプログラム状態P1、P2、P3を有することができる。フラッシュメモリ220は選択ワードライン(
図3参照、WL0)へプログラム電圧を印加した後に、プログラム検証動作を遂行する。プログラム検証動作はプログラム検証電圧(例えば、Vf1、Vf2)を選択ワードラインへ印加することによって遂行される。ここで、Vf1はメモリセルがP1状態にプログラムされたか否かを検証するための電圧であり、Vf2はP2状態であるか否かを検証するための電圧である。
【0069】
プログラム検証電圧Vf1、Vf2に到達しなかったスローセル(slow cell)の数はランダムであるので、スロービットの数を通じて乱数を生成することができる。
図11の例で、第1スロービットSB1はVf1検証を通じて生成されたスロービットを示し、第2スロービットSB2はVf2検証を通じて生成されたスロービットを示す。キー(KEY)は第1及び第2スロービットSB1、SB2をXOR演算して生成することができる。
【0070】
その他の乱数生成方法には読出しノイズ(read noise)特性を利用する方法がある。読出しノイズは特定データが記録された同一のページに対して同一の読出し電圧で読み出されることにも関わらず、選択ページからページバッファに転送されるデータが変わる物理的現象にある。読出しノイズはフラッシュメモリの物理的特性でこれを利用して乱数を生成することもできる。
【0071】
一方、本発明によるメモリシステムはフラッシュメモリのP/Eサイクルにしたがって、様々な乱数生成方法を交互に使用することができる。例えば、P/Eサイクル初期段階ではフラッシュメモリの閾値電圧分布特性を利用して乱数を生成し、後の段階ではスロービット特性を利用して乱数を生成することができる。
【0072】
また、本発明によるメモリシステムは動作モードにしたがって乱数生成方法を変更することができる。例えば、本発明の実施形態によるメモリシステムは閾値電圧分布特性を利用する乱数生成モードとスロービット特性を利用するモードを有し、モード変更を通じて乱数生成方法を変更することができる。
【0073】
一方、本発明によるメモリシステムは上で説明した方法にフラッシュメモリで生成されたデータを擬似乱数生成器のシード(seed)として使用することができる。例えば、
図2に図示されたフラッシュメモリシステム1000でキー発生器1250内に乱数(random number)を生成するための擬似乱数生成器を包含している場合に、擬似乱数生成器はフラッシュメモリ1100から提供されるシード(seed)を使用して乱数(random)を生成することもできる。
【0074】
ここで、フラッシュメモリ1100は選択されたページを同一データにプログラムした後、選択されたワードラインへシード読出し電圧を提供し、選択されたページを読み出すことによって、シードを生成することができる。フラッシュメモリは閾値電圧分布内の特定電圧レベルに該当する電圧をシード読出し電圧に提供することができる。
【0075】
本発明の実施形態によるメモリシステムは様々な製品に適用又は応用され得る。本発明の実施形態によるメモリシステムはパーソナルコンピューター、デジタルカメラ、カムコーダー、携帯電話、MP3、PMP、PSP、PDA等のような電子装置のみでなく、メモリカード、USBメモリ、ソリッドステートドライブ(Solid State Drive、以下、SSDと称する)等のような格納装置で具現され得る。
【0076】
図12は本発明の実施形態によるメモリシステムをメモリカードシステムに適用した例を示すブロック図である。メモリカードシステム3000はホスト3100とメモリカード3200を含む。ホスト3100はホストコントローラ3110、ホスト接続ユニット3120、及びDRAM3130を含む。
【0077】
ホスト3100はメモリカード3200にデータを書き込むか、或いはメモリカード3200に格納されたデータを読み出す。ホストコントローラ3110はコマンド(例えば、書込みコマンド)、ホスト3100の内のクロック発生器(図示せずが)で発生したクロック信号CLK、及びデータDATをホスト接続ユニット3120を通じてメモリカード3200へ伝送する。DRAM3130はホスト3100のメーンメモリである。
【0078】
メモリカード3200はカード接続ユニット3210、カードコントローラ3220、及びフラッシュメモリ3230を含む。カードコントローラ3220はカード接続ユニット3210を通じて受信されたコマンドに応答して、カードコントローラ3220の内にあるクロック発生器(図示せずが)で発生したクロック信号に同期してデータをフラッシュメモリ3230に格納する。フラッシュメモリ3230はホスト3100から伝送されたデータを格納する。例えば、ホスト3100がデジタルカメラである場合、メモリカード3200は映像データを格納する。
【0079】
図12に図示されたメモリカードシステム3000はカードコントローラ3220又はフラッシュメモリ3230内にキー発生器(
図2又は
図8参照)を包含することができる。本発明によるメモリカードシステム3000は上で説明した乱数生成方法を通じて、別の乱数発生器を具備しなくとも乱数を生成することができる。本発明はこれを通じてメモリカードの面積をそのまま維持しながら、データ信頼性を維持することができる。
【0080】
図13は本発明の実施形態によるメモリシステムをソリッドステートドライブSSDシステムに適用した例を示すブロック図である。
図13を参照すれば、SSDシステム4000はホスト4100とSSD4200を含む。ホスト4100はホストインターフェイス4111、ホストコントローラ4120、及びDRAM4130を含む。
【0081】
ホスト4100はSSD4200にデータを書き込むか、或いはSSD4200に格納されたデータを読み出す。ホストコントローラ4120はコマンド、アドレス、制御信号等の信号SGLをホストインターフェイス4111を通じてSSD4200へ伝送する。DRAM4130はホスト4100のメーンメモリである。
【0082】
SSD4200はホストインターフェイス4211を通じてホスト4100と信号SGLを通信し、電源コネクター(power connector)4221を通じて電源が入力される。SSD4200は複数の不揮発性メモリ4201〜420n、SSDコントローラ4210、及び補助電源装置4220を含むことができる。ここで、複数の不揮発性メモリ4201〜420nはNANDフラッシュメモリ以外にもPRAM、MRAM、ReRAM、FRAM(登録商標)等で具現され得る。
【0083】
複数の不揮発性メモリ4201〜420nはSSD4200の格納媒体として使用される。複数の不揮発性メモリ4201〜420nは複数のチャンネルCH1〜CHnを通じてSSDコントローラ4210に連結され得る。1つのチャンネルには1つ又はそれ以上の不揮発性メモリが連結され得る。1つのチャンネルに連結される不揮発性メモリは同一のデータバスに連結され得る。
【0084】
SSDコントローラ4210はホストインターフェイス4211を通じてホスト4100と信号SGLを通信する。ここで、信号SGLにはコマンド、アドレス、データ等が包含され得る。SSDコントローラ4210はホスト4100のコマンドにしたがって該当不揮発性メモリにデータを書き込むか、或いは該当不揮発性メモリからデータを読出す。SSDコントローラ4210の内部構成は
図14を参照して詳細に説明される。
【0085】
補助電源装置4220は電源コネクター4221を通じてホスト4100に連結される。補助電源装置4220はホスト4100から電源PWRを受信し、充電することができる。一方、補助電源装置4220はSSD4200の内に位置するか、或いはSSD4200の外に位置することもできる。例えば、補助電源装置4220はメーンボードに位置し、SSD4200へ補助電源を提供することもできる。
【0086】
図14は
図13に図示されたSSDコントローラ4210の構成を例示的に示すブロック図である。
図14を参照すれば、SSDコントローラ4210はNVMインターフェイス4211、ホストインターフェイス4212、暗号化回路4213、制御ユニット4214、及びSRAM4215を含む。
【0087】
NVMインターフェイス4211はホスト4100のメーンメモリから伝達されたデータを各々のチャンネルCH1〜CHnへスキャタリング(Scattering)する。そして、NVMインターフェイス4211は不揮発性メモリ4201〜420nから読み出したデータをホストインターフェイス4212を経由してホスト4100へ伝達する。
【0088】
ホストインターフェイス4212はホスト4100のプロトコルに対応してSSD4200とのインターフェイスを提供する。ホストインターフェイス4212はUSB(Universal Serial Bus)、SCSI(Small Computer System Interface)、PCI express、ATA、PATA(Parallel ATA)、SATA(Serial ATA)、SAS(Serial Attached SCSI)等を利用してホスト4100と通信できる。また、ホストインターフェイス4212はホスト4100がSSD4200をハードディスクドライブ(HDD)として認識するように支援するディスクエミュレーション(Disk Emulation)機能を遂行できる。
【0089】
暗号化回路4213はSSDコントローラ4210又は不揮発性メモリ4201〜420nに含まれたキー発生器からキー(KEY)を受信し、データを暗号化することができる。制御ユニット4214はホスト4100から入力された信号SGLを分析し、処理する。制御ユニット4214はホストインターフェイス4212やNVMインターフェイス4211を通じてホスト4100や不揮発性メモリ4201〜420nを制御する。制御ユニット4214はSSD4200を駆動するためのファームウェアにしたがって不揮発性メモリ4201〜420nの動作を制御する。
【0090】
SRAM4215は不揮発性メモリ4201〜420nの効率的に管理をするために使用されるソフトウェアS/Wを駆動するのに使用され得る。また、SRAM4215はホスト4100のメーンメモリから入力されたメタデータを格納するか、或いはキャッシュデータを格納できる。急なパワーオフ動作の時に、SRAM4215に格納されたメタデータやキャッシュデータは補助電源装置4220を利用して不揮発性メモリ4201〜420nに格納され得る。
【0091】
再び
図13を参照すれば、本発明の実施形態によるSSDシステム4000は不揮発性メモリセルの閾値電圧分布の特性を利用して乱数を生成する。本発明は不揮発性メモリの物理的特性を利用して乱数を発生するので、別の乱数発生器を必要としない。
【0092】
図15は本発明の実施形態によるフラッシュメモリシステムを電子装置で具現した例を示すブロック図である。ここで、電子装置5000はパーソナルコンピューター(PC)で具現されるか、或いは、ノートブック型コンピューター、携帯電話、PDA(Personal Digital Assistant)、及びカメラ等のような携帯用電子装置で具現され得る。
【0093】
図15を参照すれば、電子装置5000はメモリシステム5100、電源装置5200、補助電源装置5250、中央処理装置5300、DRAM5400、及び使用者インターフェイス5500を含む。メモリシステム5100はフラッシュメモリ5110及びメモリコントローラ5120を含む。メモリシステム5100は電子装置5000に内装され得る。
【0094】
本発明による電子装置5000はフラッシュメモリセルの閾値電圧分布の特性を利用して乱数を生成する。本発明はフラッシュメモリ5110の物理的特性を利用して乱数を発生するので、別の乱数発生器を必要としない。
【0095】
本発明の実施形態によるメモリシステムは2次元構造を有するフラッシュメモリのみでなく、3次元構造を有するフラッシュメモリにも適用され得る。
図16は本発明に使用されるフラッシュメモリを例示的に示すブロック図である。
図16を参照すれば、フラッシュメモリ6000は3次元セルアレイ6110、データ入出力回路6120、アドレスデコーダー6130、及び制御ロジック6140を含む。
【0096】
3次元セルアレイ6110は複数のメモリブロックBLK1〜BLKzを含む。各々のメモリブロックは3次元構造(又は垂直構造)を有することができる。2次元構造(又は水平構造)を有するメモリブロックでは、メモリセルが基板と水平方向に形成される。しかし、3次元構造を有するメモリブロックでは、メモリセルが基板と垂直方向に形成される。各々のメモリブロックはフラッシュメモリ6000の消去単位を成す。
【0097】
データ入出力回路6120は複数のビットラインBLsを通じて3次元セルアレイ6110に連結される。データ入出力回路6120は外部からデータDATAが入力されるか、或いは3次元セルアレイ6110から読み出したデータDATAを外部へ出力する。アドレスデコーダー6130は複数のワードラインWLs及び選択ラインGSL、SSLを通じて3次元セルアレイ6110に連結される。アドレスデコーダー6130はアドレスADDRを受信しワードラインを選択する。
【0098】
制御ロジック6140はフラッシュメモリ6000のプログラム、読出し、消去等の動作を制御する。例えば、制御ロジック6140はプログラム動作の時に、アドレスデコーダー6130を制御することによって、選択ワードラインにプログラム電圧が提供されるようにし、データ入出力回路6120を制御することによって、データがプログラムされるようにすることができる。
【0099】
図17は
図16に図示されたメモリブロックBLK1の3次元構造を例示的に示す斜視図である。
図17を参照すれば、メモリブロックBLK1は基板SUBと垂直方向に形成されている。基板SUBにはn+ドーピング領域が形成される。基板SUBの上にはゲート電極膜(gate electrode layer)と絶縁膜(insulation layer)とが交互に蒸着される。そして、ゲート電極膜(gate electrode layer)と絶縁膜(insulation layer)との間には電荷格納膜(charge storage layer)が形成され得る。
【0100】
ゲート電極膜と絶縁膜とを垂直方向にパターニング(vertical patterning)すれば、V字形状のピラー(pillar)が形成される。ピラーはゲート電極膜と絶縁膜を貫通して基板SUBに連結される。ピラー(Pillar)の外殻部分Oはチャンネル半導体に構成され得り、内部Iはシリコン酸化物(Silicon Oxide)のような絶縁物質で構成され得る。
【0101】
続いて
図17を参照すれば、メモリブロックBLK1のゲート電極膜(gate electrode layer)は接地選択ラインGSL、複数のワードラインWL1〜WL8、及びストリング選択ラインSSLに連結され得る。そして、メモリブロックBLK1のピラー(pillar)は複数のビットラインBL1〜BL3に連結され得る。
図13では、1つのメモリブロックBLK1が2つの選択ラインGSL、SSL、8つのワードラインWL1〜WL8、及び3つのビットラインBL1〜BL3を有することと図示されているが、実際にはこれらよりより多いか、或いは少ないことがあり得る。
【0102】
図18は
図17に図示されたメモリブロックBLK1の等価回路図である。
図18を参照すれば、ビットラインBL1〜BL3と共通ソースラインCSLとの間にはNANDストリングNS11〜NS33が連結されている。各々のNANDストリング(例えば、NS11はストリング選択トランジスターSST、複数のメモリセルMC1〜MC8、及び接地選択トランジスターGSTを含む。
【0103】
ストリング選択トランジスターSSTはストリング選択ライン(String Selection Line;SSL1〜SSL3)に連結されている。複数のメモリセル(MC1〜MC8は各々対応するワードラインWL1〜WL8に連結されている。そして接地選択トランジスターGSTは接地選択ライン(Ground Selection Line:GSL)に連結されている。ストリング選択トランジスター(SSTはビットラインBL)に連結され、接地選択トランジスター(GSTは共通ソースラインCSL:Common Source Line)に連結されている。
【0104】
続いて
図18を参照すれば、同一高さのワードライン(例えば、WL1)は共通に連結され、ストリング選択ラインSSL1〜SSL3は分離されている。第1ワードラインWL1に連結され、NANDストリングNS11、NS12、NS13に属しているメモリセル(以下、ページと称する)をプログラムする場合には、第1ワードラインWL1と第1ストリング選択ラインSSL1が選択される。
【0105】
本発明の範囲又は技術的思想を逸脱しなく本発明の構造が多様に修正や変更され得ることはが分野に熟練された者に明確である。上述した内容を考慮して見るとき、もし本発明の修正及び変更が下の請求項及び同等物の範疇内に属すれば、本発明がこの発明の変更及び修正を含むことと解釈できる。