(57)【特許請求の範囲】
【請求項１】
メモリセルと、
参照電圧を生成する参照電圧生成回路と、
前記メモリセルに電気的に接続される第１の入力端子及び前記参照電圧生成回路に電気的に接続される第２の入力端子を有するセンスアンプと、を備え、
前記センスアンプは、前記第１の入力端子に印加され、前記メモリセルの抵抗値に応じた速度で変化するセンス電圧と、前記第２の入力端子に印加される前記参照電圧との比較に基づいて、前記メモリセルの前記抵抗値に相関する値を取得し、
前記参照電圧生成回路は、前記センス電圧が変化している期間の少なくとも一部において、前記センス電圧が変化する方向とは反対の方向に、前記参照電圧を変化させる、
半導体装置。
【請求項２】
前記センス電圧は、前記メモリセルの前記抵抗値に応じた速度で減少し、
前記参照電圧生成回路は、前記センス電圧が減少している期間の少なくとも一部において、前記参照電圧を時間経過とともに増大させる、
請求項１に記載の半導体装置。
【請求項３】
前記センス電圧は、前記メモリセルの前記抵抗値に応じた速度で増大し、
前記参照電圧生成回路は、前記センス電圧が増大している期間の少なくとも一部において、前記参照電圧を時間経過とともに減少させる、
請求項１に記載の半導体装置。
【請求項４】
前記参照電圧生成回路は、前記センス電圧が減少している期間の途中から、前記参照電圧を増大させ始める、
請求項２に記載の半導体装置。
【請求項５】
前記参照電圧生成回路は、前記センス電圧が増大している期間の途中から、前記参照電圧を減少させ始める、
請求項３に記載の半導体装置。
【請求項６】
前記参照電圧生成回路は、前記参照電圧を段階的に増大させる、
請求項２又は４に記載の半導体装置。
【請求項７】
前記参照電圧生成回路は、前記参照電圧を段階的に減少させる、
請求項３又は５に記載の半導体装置。
【請求項８】
前記参照電圧生成回路は、
所定の定電圧を前記参照電圧として生成する定電圧発生回路と、
時間経過とともに変化する電圧を前記参照電圧として生成する参照電圧変動回路と、
前記定電圧発生回路と前記センスアンプの前記第１の入力端子との間に配置されたスイッチとを含む、
請求項１に記載の半導体装置。
【請求項９】
前記スイッチは、前記定電圧発生回路と前記センスアンプの前記第１の入力端子とが接続された第１の状態と、前記参照電圧変動回路と前記センスアンプの前記第１の入力端子とが接続された第２の状態とを切り替える、
請求項８に記載の半導体装置。
【請求項１０】
前記メモリセルは、第１の電極と、第２の電極と、前記第１及び第２の電極の間に配置された抵抗変化層とを含む抵抗変化素子を備える、
請求項１に記載の半導体装置。
【請求項１１】
前記抵抗変化素子は、前記第１及び第２の電極の間に極性の異なる電圧が印加されることで、低抵抗状態及び高抵抗状態の間で可逆的に遷移する、
請求項１０に記載の半導体装置。
【請求項１２】
前記半導体装置は、複数のメモリセルを含むメモリセルアレイを備え、
前記メモリセルは、前記メモリセルアレイの前記複数のメモリセルから選択された１つである、
請求項１に記載の半導体装置。
【請求項１３】
前記メモリセルの前記抵抗値に相関する前記値は、２ビット以上のデータ幅を有する値である、
請求項１に記載の半導体装置。
【請求項１４】
前記メモリセルの前記抵抗値に相関する前記値は、所定の時刻から前記比較の結果が切り替わるまでの時間に相当する値である、
請求項１に記載の半導体装置。
【請求項１５】
前記センスアンプは、前記センス電圧と前記参照電圧とを比較するコンパレータと、前記コンパレータの前記比較の結果が切り替わるまでカウントを継続する抵抗値カウンタと、を含む、
請求項１４に記載の半導体装置。
【請求項１６】
前記センスアンプは、前記第１の入力端子と前記メモリセルとの間に延びる電流経路の少なくとも一部に電荷を蓄積させ、
前記センス電圧は、当該電荷が放電されることによって、減少する、
請求項２に記載の半導体装置。
【請求項１７】
前記センスアンプは、前記第１の入力端子と前記メモリセルとの間に延びる電流経路の少なくとも一部に電荷を蓄積させることによって、前記センス電圧を増大させる、
請求項３に記載の半導体装置。
【請求項１８】
請求項１に記載の半導体装置を搭載したＩＣカード。
【請求項１９】
メモリセルの抵抗値を読み出す方法であって、
前記メモリセルの抵抗値に応じた速度で変化するセンス電圧と、参照電圧とを比較するステップと、
前記比較の結果に基づいて、前記メモリセルの前記抵抗値に相関する値を取得するステップとを含み、
前記センス電圧が変化している期間の少なくとも一部において、前記センス電圧が変化する方向とは反対の方向に、前記参照電圧を変化させる、
読み出し方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、半導体装置に関する。より具体的には、本開示は、乱数生成装置のメモリセルの読み出し回路を備えた半導体装置およびその読み出し方法に関する。
【背景技術】
【０００２】
近年の情報化社会の発展に伴い、高度な情報セキュリティー技術が求められている。その手段として様々な暗号方式が利用されている。
【０００３】
各暗号方式において、典型的に、擬似乱数が用いられてきた。しかしながら、暗号方式の安全性は、乱数値のランダム性に依存する。乱数値のランダム性は、擬似乱数よりも、真性乱数（non-deterministic random number）あるいは物理乱数（physical random number）の方が高い。
【０００４】
特許文献１は、ゲート電極へのパルス電圧の印加によってソース−ドレイン間電流にランダムノイズが発生し、当該ランダムノイズから乱数が生成される技術を開示している。
【０００５】
特許文献２は、磁化が１／２の確率で反転するようなスピン注入電流がＭＲＡＭに供給され、これにより乱数が生成される技術を開示している。
【０００６】
また、ＲｅＲＡＭ（Resistance Random Access Memory）を用いて真性乱数を生成する乱数生成装置の検討も進められている。この技術は、ＲｅＲＡＭから成る抵抗変化素子の抵抗値のゆらぎを利用する。この方法による乱数の生成方法の概要は以下のとおりである。まず、複数の同一メモリセルに対して異なる時間に２回の読み出しを実施する。そして、読み出し回路によって１回目及び２回目でそれぞれの読み出しに要する判定時間を検出する。この判定時間をディジタル値に変換し、１回目と２回目のディジタル値の差異から所定ビットの乱数を発生する。特許文献３は、上述の読み出し方法及び回路を開示する。すなわち特許文献３は、上述した抵抗変化素子としてのＲｃｅｌｌが接続されたビット線ＢＬの電位を参照電位ＶＲＥＦと比較し、ビット線の電位が参照電位ＶＲＥＦに到達するまでの時間によってその抵抗状態を検知し、読み出すという手法を開示する。
【０００７】
上述したような、抵抗変化素子の抵抗値のゆらぎは製造プロセスのばらつきに起因している。このような、製造プロセスのばらつきを活用してユニークな固体識別情報を生成する技術は、ＰＵＦ（物理的複製困難関数；Physically Unclonable Function）技術と呼ばれている。本明細書ではＰＵＦ技術により生成された固体識別情報を、「ディジタルデータ」または「ディジタルＩＤデータ」と呼ぶ。ディジタルＩＤデータは抵抗変化素子の物理特性のばらつきに関連づけられた各デバイス固有の乱数データであると言える。ＩＣごとにその物理特性を人為的に制御することが不可能であるため、物理的な複製が不可能なデータを生成することができる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−２９９５９５号公報
【特許文献２】特開２０１１−１１３１３６号公報
【特許文献３】特開２０１１−１６５２９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本開示は、メモリセルから抵抗値の情報を高速に読み出すための技術を提供する。
【課題を解決するための手段】
【００１０】
本開示の一形態にかかる半導体装置は、メモリセルと、参照電圧を生成する参照電圧生成回路と、前記メモリセルに電気的に接続される第１の入力端子及び前記参照電圧生成回路に電気的に接続される第２の入力端子を有するセンスアンプと、を備え、前記センスアンプは、前記第１の入力端子に印加され、前記メモリセルの抵抗値に応じた速度で変化するセンス電圧と、前記第２の入力端子に印加される前記参照電圧との比較に基づいて、前記メモリセルの前記抵抗値に相関する値を取得し、前記参照電圧生成回路は、前記センス電圧が変化している期間の少なくとも一部において、前記センス電圧が変化する方向とは反対の方向に、前記参照電圧を変化させる。
【発明の効果】
【００１１】
本開示の一態様に係る半導体装置によれば、メモリセルから抵抗値の情報を高速に読み出すことができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施形態にかかる乱数処理装置の概略構成の一例を示すブロック図である。
【図２】図２は、実施形態にかかる乱数処理装置が備えるメモリセルの概略構成の一例を示す断面図である。
【図３】図３は、実施形態にかかる乱数処理装置が備えるメモリセルの抵抗値範囲の一例を示すグラフである。
【図４】図４は、可変状態にあるバイポーラ型抵抗変化素子の特性の一例を示す図である。
【図５】図５は、可変状態にあるユニポーラ型抵抗変化素子の特性の一例を示す模式図である。
【図６】図６は、抵抗変化素子の抵抗変化特性の一例を示す図である。
【図７】図７は、実施形態において１つの可変抵抗値範囲内にある１つのメモリセルから連続して抵抗値を読み出した例を示す図である。
【図８Ａ】図８Ａは、パーコレーションモデル（percolation model）を用いて、フォーミング時における抵抗変化層（例えば局所領域）中のフィラメントの形成をシミュレートした結果の一例を示す図である。
【図８Ｂ】図８Ｂは、パーコレーションモデル（percolation model）を用いて、フォーミング時における抵抗変化層（例えば局所領域）中のフィラメントの形成をシミュレートした結果の一例を示す図である。
【図９】図９は、実施形態の乱数処理方法の一例を示すフローチャートである。
【図１０】図１０は、規格化累積印加時間と、初期状態から可変状態へ変化したメモリセルの数についての標準正規分布の偏差との関係をプロットした図である。
【図１１】図１１は、実施形態において１つの可変抵抗値範囲内にある１つのメモリセルから連続して抵抗値を読み出した例を示す図である。
【図１２】図１２は、実施の形態にかかる乱数処理装置の概略構成の一例を示すブロック図である。
【図１３】図１３は、実施の形態にかかる乱数処理装置の書き込みサイクルと読み出しサイクルの一例を示すタイミングチャートである。
【図１４】図１４は、参考例にかかる乱数処理装置が備えるセンスアンプの概略構成の一例を示すブロック図である。
【図１５】図１５は、放電型センスアンプのタイミングチャートである。
【図１６】図１６は、充電型センスアンプのタイミングチャートである。
【図１７】図１７は、実施の形態にかかる乱数生成回路の概略構成を示す回路図である。
【図１８】図１８は、特殊書き込みモードの第１動作例を示すフローチャートである。
【図１９】図１９は、図１８に示す特殊書き込みモードで書き込まれたメモリセルを特殊読み出しモードで読み出した結果の一例を示す図である。
【図２０】図２０は、図１８に示す特殊書き込みモードで書き込まれたデータを通常読み出しモードで読み出した結果の一例を示す図である。
【図２１】図２１は、メモリセルのばらつきを考慮した場合の、放電型センスアンプのタイミングチャートである。
【図２２】図２２は、メモリセルのばらつきを考慮した場合の、充電型センスアンプのタイミングチャートである。
【図２３】図２３は、第１の実施形態にかかるセンスアンプの概略構成の一例を示すブロック図である。
【図２４】図２４は、第１の実施形態にかかるセンスアンプが備えるリファレンス定電圧発生回路の概略構成の一例を示すブロック図である。
【図２５】図２５は、第１の実施形態にかかるセンスアンプが備えるアップスロープ型電圧変動回路の概略構成の一例を示すブロック図である。
【図２６】図２６は、第１の実施形態にかかる放電型センスアンプのタイミングチャートである。
【図２７】図２７は、第１の実施形態にかかるセンスアンプが備えるダウンスロープ型電圧変動回路の概略構成の一例を示すブロック図である。
【図２８】図２８は、第１の実施形態にかかる充電型センスアンプのタイミングチャートである。
【図２９】図２９は、第１の実施形態にかかるセンスアンプが備えるアップダウンスロープ選択型電圧変動回路の概略構成の一例を示すブロック図である。
【図３０】図３０は、第２の実施形態にかかるセンスアンプの概略構成の一例を示すブロック図である。
【図３１】図３１は、第２の実施形態にかかるセンスアンプが備えるアップダウンスロープ選択型電圧変動回路の概略構成の一例を示すブロック図である。
【図３２】図３２は、第３の実施形態にかかるセンスアンプの概略構成の一例を示すブロック図である。
【図３３】図３３は、第３の実施形態にかかるセンスアンプが備える変動機能付リファレンス電圧発生回路の概略構成の一例を示すブロック図である。
【図３４】図３４は、第３の実施形態にかかる放電型センス動作のタイミングチャートである。
【図３５】図３５は、第３の実施形態にかかる充電型センス動作のタイミングチャートである。
【図３６】図３６は、本開示の応用例にかかる通信システムの構成例を示すブロック図である。
【発明を実施するための形態】
【００１３】
（本開示の基礎となった知見）
ＩＣカードは、ＩＣ（半導体集積回路）チップを搭載したカードである。ＩＣチップは、例えば、論理回路と、揮発および／または不揮発性メモリと、マイクロプロセッサーとを具備する。これらが、暗号化機能、ディジタル署名、およびディジタル認証機能などの各種情報セキュリティー機能を実現する。これらの機能が実行されるときには秘密鍵が用いられる。この場合、ＩＣカードで真性乱数を生成して秘密鍵に適用すると、セキュリティーの安全性が向上する。
【００１４】
しかしながら、ＩＣカードのような超小型機器において、乱数生成のための回路は、小型化が要求される。更に、例えばバッテリーが非搭載のＩＣカードでは、通信時にワイヤレス給電で得られる電力で、短時間のうちに各種機能を実行する必要がある。つまり、乱数生成において、超低消費電力化と、生成速度の向上が同時に求められる。そこで本発明者らは、かかる要求に応えられるような真性乱数の生成器として、いくつかの先行技術を検討した。物理現象を利用して真性乱数を発生させる場合、乱数生成の回路を別途追加する必要がある。このため、ＩＣカードのような超小型機器への応用には、潜在的な課題があると考えられた。
【００１５】
特許文献２は、スピン反転の確率が１／２となる書き込み電流をメモリ素子に流し、０または１をランダムにメモリ素子へ書き込む方式である。しかし、スピンの反転確率が１／２となる電流はチップやロット間でばらつく。そのため、書き込み電流の調整が非常に難しいと考えられた。
【００１６】
さらに本発明者らは、乱数の生成速度についても検討を行った。従来の物理乱数の発生方式において、乱数の生成速度が低いという課題があった。
【００１７】
乱数生成の専用回路において、例えば、複数チャンネルで並列的に乱数が生成されることにより、乱数の生成速度を上げることができる。しかし、従来の方式では、乱数生成の専用回路を複数チャンネル化すると、当該回路の増大をもたらす。すなわち、従来の方法では、乱数の生成速度の向上と、乱数生成回路を搭載した機器の小型化とを両立することは、困難であった。
【００１８】
一方、近年では、暗号の安全性強化のために鍵長が長くなっている。例えば、暗号生成スピードが２５０Ｋｂｉｔ／Ｓｅｃの場合、２０４８ｂｉｔの鍵長の生成には約８ｍＳｅｃ以上という長い時間が必要となる。電子パスポートや住民基本台帳といった重要な個人情報が扱われる機器において、指紋や顔写真等の大容量の電子データが認証に用いられることが検討されている。このような大容量データの通信を支えるために、乱数生成スピードの向上が求められる。
【００１９】
本発明者らは、以上のような課題を解決できる新規な乱数処理方法を鋭意検討した。その結果、本発明者らは、抵抗変化素子の抵抗値が時間経過と共にランダムに変化する現象を発見し、これを乱数生成に応用することに想到した。かかる方式では、より安全な暗号技術等に応用可能な、従来にない乱数処理方法を提供することができる。これにより、例えば、乱数生成を行う要素、乱数の記憶を行う要素、データの記憶を行う要素等を共通化することが可能となる。そのため、乱数生成のための回路が小型化されうる。抵抗変化素子の抵抗値の変化は極めて短い時間間隔（例えば、１０ｎＳｅｃオーダー）で生じる。そのため、暗号生成スピードが向上しうる。なお、以上の説明は、本開示に至った経緯を説明するものに過ぎず、本開示を限定する趣旨ではない。
【００２０】
以下、添付図面を参照しつつ、本開示の実施形態について説明する。
【００２１】
以下で説明する実施形態は、いずれも一具体例を示すものである。以下の実施形態で示される数値、形状、材料、組成、構成要素、それらの配置および接続、ステップ、ならびにステップの順序、電気的特性などは、あくまで一例である。それらは、本開示を限定するものではない。以下の実施形態における構成要素のうち、本開示の最上位概念を示す独立請求項に記載されていない構成要素は、任意の構成要素として説明される。図面において、同じ符号が付いたものは、説明が省略される場合がある。図面は、理解しやすくするために、それぞれの構成要素が模式的に示されているため、形状および寸法比等については正確な表示ではない場合がある。製造方法は、必要に応じて、各工程の順序等が変更でされることができ、および／または、他の公知の工程が追加されうる。
【００２２】
（実施形態の概要）
本開示の一態様に係る半導体装置は、流れる電流量によって記憶情報を判別可能な複数のメモリセルが配置されたメモリセルアレイと、前記複数のメモリセルの各々の記憶情報を読み出す読み出し回路とを備えた半導体装置であって、前記読み出し回路は、変動する参照電圧を前記参照電圧ノードへ印加する参照電圧変動回路と、所定のメモリセルの一端と電気的に接続され、前記メモリセルの記憶情報に対応した電圧が入力される第１の入力端子、および前記参照電圧ノードと電気的に接続された第２の入力端子を有し、かつ前記第１の入力端子の電圧と前記第２の入力端子の電圧とを比較し、比較結果に基づいて前記メモリセルの記憶情報を検出するセンスアンプ回路とを備え、前記メモリセルの記憶情報の読み出し時に、前記メモリセルの記憶情報に応じて、かつ読み出し時間の経過に伴って増加または減少する変動電圧が前記第１の入力端子に入力され、前記参照電圧変動回路は、前記第１の入力端子に入力された前記変動電圧が増加又は減少する方向とは逆の方向に減少又は増加する前記参照電圧を前記参照電圧ノードへ印加し、前記センスアンプ回路は、前記参照電圧ノードに印加された前記参照電圧を用いて、前記メモリセルの記憶情報の読み出しを行う。
【００２３】
かかる構成により、本開示の一態様に係る半導体装置は、読み出し時間内に参照電圧ノードの電位が参照電圧を下回るまたは上回ることになり、メモリセルから、より高速に情報を読み出すことが可能となる。
【００２４】
ある実施形態において、前記参照電圧変動回路は、前記参照電圧ノードに印加された前記参照電圧の変動開始時刻を前記読み出しの開始後の任意の時刻に設定可能であってもよい。
【００２５】
かかる構成により、本開示の一態様に係る半導体装置は、参照電圧の変動開始時刻を読み出し開始後の任意の時刻に調整することが可能となる。これにより、メモリセルから情報を読み出す読み出し時間を任意に調整し、最適な設定によって、より高速化することが可能となる。
【００２６】
ある実施形態において、前記半導体装置は、所定の定電圧を参照電圧ノードへ印加する定電圧発生回路と、前記定電圧発生回路の出力端子と前記参照電圧変動回路の出力端子と前記参照電圧ノードとの間に配置されたスイッチ回路とをさらに備え、前記メモリセルの記憶情報の読み出し開始時には、前記定電圧発生回路が出力する定電圧が前記参照電圧ノードに印加されており、前記スイッチ回路は、前記定電圧発生回路が出力する定電圧が前記参照電圧ノードに印加される状態から、前記参照電圧変動回路が出力する参照電圧が前記参照電圧ノードに印加される状態へ切り替えてもよい。
【００２７】
かかる構成によれば、本開示の一態様に係る半導体装置は、参照電圧の変動開始時刻を任意に設定することが可能となる。
【００２８】
ある実施形態において、前記メモリセルの記憶情報の読み出し時に、第１の時刻から時間と共に減少する電圧が前記第１の入力端子に入力され、前記参照電圧変動回路は、前記第１の時刻と同時または前記第１の時刻よりも後の第２の時刻から時間と共に上昇する電圧を前記参照電圧ノードへ印加してもよい。
【００２９】
ある実施形態において、前記メモリセルの記憶情報の読み出し時に、第１の時刻から時間と共に上昇する電圧が前記第１の入力端子に入力され、前記参照電圧変動回路は、前記第１の時刻と同時または前記第１の時刻よりも後の第２の時刻から時間と共に下降する電圧を前記参照電圧ノードへ印加してもよい。
【００３０】
ある実施形態において、前記メモリセルは、第１の電極と、第２の電極と、前記第１の電極と前記第２の電極との間に配置した抵抗変化層とを含む抵抗変化素子を備えていてもよい。
【００３１】
ある実施形態において、前記抵抗変化素子は、前記第１の電極と前記第２の電極との間に極性の異なる電圧が印加されることで低抵抗状態及び高抵抗状態の少なくとも２つの状態を可逆的に変化してもよい。
【００３２】
本開示の他の一態様にかかる半導体装置は、流れる電流量によって記憶情報を判別可能な複数のメモリセルが配置されたメモリセルアレイと、前記複数のメモリセルの各々の記憶情報を読み出す読み出し回路とを備えた半導体装置であって、前記読み出し回路は、少なくとも第１の時刻から段階的に上昇又は下降する参照電圧を参照電圧ノードへ印加する参照電圧発生回路と、所定のメモリセルの一端と電気的に接続され、前記メモリセルの記憶情報に対応した電圧が印加される第１の入力端子、および前記参照電圧ノードと電気的に接続される第２の入力端子を有し、かつ前記第１の入力端子の電圧と前記第２の入力端子の電圧とを比較して、比較結果に基づいて前記メモリセルの記憶情報を検出するセンスアンプ回路とを備え、前記メモリセルの記憶情報の読み出し時に、前記メモリセルの記憶情報に応じて、かつ読み出し時間の経過に伴って増加または減少して変動する電圧が前記第１の入力端子に入力され、前記参照電圧発生回路は、前記第１の入力端子に入力された電圧が増加又は減少する方向とは逆の方向に段階的に下降又は上昇する前記参照電圧を前記参照電圧ノードへ印加し、前記センスアンプ回路は、前記参照電圧ノードに印加された前記参照電圧を用いて、前記メモリセルの記憶情報の読み出しを行う。
【００３３】
かかる構成により、本開示の他の一態様に係る半導体装置は、読み出し回路にて、メモリセルから、より高速に情報を読み出すことが可能となる。
【００３４】
ある実施形態において、前記参照電圧発生回路は、前記参照電圧ノードの電圧の変動開始時刻を前記読み出しの開始後の任意の時刻に設定可能であってもよい。
【００３５】
かかる構成により、本開示の他の一態様に係る半導体装置は、参照電圧ノードの電圧の変動開始時刻を読み出し開始後の任意の時刻に調整することが可能となる。これにより、メモリセルから情報を読み出す読み出し時間を任意に調整し、最適な設定によって、より高速化することが可能となる。
【００３６】
ある実施形態において、前記メモリセルの記憶情報の読み出し時に、前記第１の時刻から時間と共に減少する電圧が前記第１の入力端子に入力され、前記参照電圧発生回路は、前記第１の時刻と同時または前記第１の時刻よりも後の第２の時刻から時間と共に上昇する電圧を前記参照電圧ノードへ印加してもよい。
【００３７】
ある実施形態において、前記メモリセルの記憶情報の読み出し時に、前記第１の時刻から時間と共に上昇する電圧が前記第１の入力端子に入力され、前記参照電圧発生回路は、前記第１の時刻と同時または前記第１の時刻よりも後の第２の時刻から時間と共に下降する電圧を前記参照電圧ノードへ印加してもよい。
【００３８】
ある実施形態において、前記メモリセルは、第１の電極と、第２の電極と、前記第１の電極と前記第２の電極との間に配置した抵抗変化層とを含む抵抗変化素子を備えていてもよい。
【００３９】
ある実施形態において、前記抵抗変化素子は、前記第１の電極と前記第２の電極との間に極性の異なる電圧が印加されることで低抵抗状態及び高抵抗状態の少なくとも２つの状態を可逆的に変化してもよい。
【００４０】
本開示のさらに他の一態様であるＩＣカードは、上述のいずれかの半導体装置を搭載する。
【００４１】
本実施形態にかかる半導体装置は、メモリセルの記憶情報の読み出しに要する時間を短くすることが可能となる。したがって、この半導体装置内に乱数生成器を搭載したＩＣカードは、読み出し時間の短縮によって乱数性を向上した秘匿性の高い高速動作が可能なＩＣカードを実現できる。
【００４２】
本開示のさらに他の一態様である方法は、半導体装置の読み出し方法であって、前記半導体装置は、流れる電流量によって記憶情報を判別可能な複数のメモリセルが配置されたメモリセルアレイと、前記複数のメモリセルの各々の記憶情報を読み出す読み出し回路とを備え、前記読み出し方法は、変動する参照電圧を前記読み出し回路へ供給し、前記複数のメモリセルの記憶情報の読み出し時に、前記複数のメモリセルの各々の記憶情報に応じて、かつ読み出し時間の経過に伴って増加又は減少する変動電圧を前記読み出し回路へ供給し、前記複数のメモリセルの記憶情報に対応した前記変動電圧が増加または減少する方向とは逆の方向に減少または増加する前記参照電圧を出力し、前記複数のメモリセルの各々の記憶情報に対応した前記変動電圧と、前記参照電圧とを比較し、比較結果に基づいて前記複数のメモリセルの各々の記憶情報を検出してもよい。
【００４３】
かかる構成により、本開示の他の一態様に係る半導体装置の読み出し方法は、読み出し時間内に、参照電圧がメモリセルの記憶情報に対応した変動電圧を下回るまたは上回ることになり、メモリセルから、より高速に情報を読み出すことが可能となる。
【００４４】
本開示のさらに他の一態様である方法は、半導体装置の読み出し方法であって、前記半導体装置は、流れる電流量によって記憶情報を判別可能な複数のメモリセルが配置されたメモリセルアレイと、前記複数のメモリセルの各々の記憶情報を読み出す読み出し回路とを備え、前記読み出し方法は、少なくとも第１の時刻から段階的に上昇又は下降する参照電圧を参照電圧ノードへ供給し、前記複数のメモリセルの記憶情報の読み出し時に、前記複数のメモリセルの各々の記憶情報に応じて、かつ読み出し時間の経過に伴って増加または減少する電圧を出力し、前記複数のメモリセルの記憶情報に対応した電圧が増加または減少する方向とは逆の方向に段階的に下降または上昇する前記参照電圧を出力し、前記複数のメモリセルの各々の記憶情報に対応した電圧と、前記参照電圧ノードに印加される前記参照電圧とを比較し、比較結果に基づいて前記複数のメモリセルの各々の記憶情報を検出する。
【００４５】
かかる構成により、本開示のさらに他の一態様に係る半導体装置の読み出し方法は、読み出し時間内に、参照電圧がメモリセルの記憶情報に対応した電圧を下回るまたは上回ることになり、メモリセルから、より高速に情報を読み出すことが可能となる。
【００４６】
以下、本開示による例示的な実施形態を説明する。
【００４７】
本明細書においては、まず半導体装置の基本的な構成および動作を説明する。その後、図２１および図２２を参照しながら、本願発明者が見出した、センスアンプの読み出し動作に関する課題を説明する。そして、図２３以降の図面を参照しながら、当該課題を解決するセンスアンプの構成および動作と、変形例の詳細を説明する。
【００４８】
（実施形態）
［装置構成］
図１は、実施形態にかかる乱数処理装置の概略構成の一例を示すブロック図である。図２は、実施形態にかかるメモリセルの概略構成の一例を示す断面図である。
【００４９】
図１に示す例において、本実施形態の乱数処理装置１００は、メモリセルアレイ９０と、制御装置９３とを備えている。なお、制御装置は必ずしも乱数処理装置の一部である必要はない。乱数処理装置外に接続された制御装置が、以下に説明される動作を実行してもよい。
【００５０】
メモリセルアレイ９０は、複数のメモリセル９１がアレイ状に配置された構成を有する。なお、本実施形態の乱数処理装置は、複数のメモリセルを備えなくてもよく、例えば、単一のメモリセルのみを備えてもよい。
【００５１】
制御装置９３は、抵抗値が１つの可変抵抗値範囲内にあるメモリセル９１から、複数の異なる時刻のそれぞれにおいて抵抗値情報を取得する。これにより、複数の抵抗値情報が取得される。制御装置９３は、該複数の抵抗値情報を用いて乱数データを生成する。
【００５２】
制御装置９３は、複数の異なる時刻のそれぞれにおいて、メモリセルアレイ９０を構成する複数のメモリセル９１のそれぞれから抵抗値情報を取得してもよい。これにより、複数の異なる時刻のそれぞれにおいて複数の抵抗値情報が取得される。制御装置９３は、該複数の抵抗値情報を用いて乱数データを生成してもよい。
【００５３】
抵抗値情報とは、抵抗値と相関関係を有する情報である。抵抗値情報は、抵抗値そのものであってもよいし、抵抗値に応じて増減する値であってもよい。抵抗値に応じて増減する値は、例えば、メモリセルに直列または並列に接続されたキャパシタの放電時間、および／または、該放電時間に対応するカウント値等であってもよい。このとき、キャパシタは素子であることには限定されず、例えば配線などの寄生容量でもよい。
【００５４】
抵抗値情報は、所定の分解能のセンスアンプによって測定された値であってもよい。あるいは、抵抗値情報は、センスアンプによって測定された値が、閾値によって区分けされた複数の抵抗値範囲のいずれに該当するかを判定することによって得られた値であってもよい。その場合、複数の抵抗値範囲のそれぞれは、初期抵抗値範囲および可変抵抗値範囲のいずれかが、さらに細かく区分けされたものであってもよい。
【００５５】
抵抗値情報を用いて乱数データを生成できることは、抵抗値がランダムに変動することに起因する。そのメカニズムおよび乱数データ生成の具体的な方法については後述する。
【００５６】
制御装置９３は、選択されたメモリセル９１が初期状態にあるか可変状態にあるかを判定することによって記録されたデータを、読み出すことができるように構成されていてもよい。
【００５７】
図２に示す例において、メモリセル９１が備える抵抗変化素子１２０が、下地層１２２と、第１電極１２４と、抵抗変化層１２６と、第２電極１２８とを備えている。それぞれの抵抗変化素子１２０には、特定のメモリセルを選択するためのトランジスタやダイオードなどの選択素子（図示せず）が接続されてもよい。
【００５８】
可変状態のメモリセル９１は、異なる複数の電気的信号が印加されることによって、抵抗値が複数の可変抵抗値範囲の間を可逆的に遷移する性質を有する。
【００５９】
図３は、メモリセル９１の抵抗値範囲の一例を示すグラフである。図３に例示されるように、メモリセル９１は、少なくとも可変状態と初期状態の２つの状態を備えてもよい。
【００６０】
可変状態とは、異なる複数の電気的信号が印加されることによって、抵抗値が複数の可変抵抗範囲の間を可逆的に遷移できる状態をいう。
【００６１】
初期状態とは、抵抗値が可変抵抗値範囲のいずれとも重複しない初期抵抗値範囲にある状態をいう。初期状態にあるメモリセルは、可変状態に変化させるような電気的ストレスであるフォーミングストレスが印加されない限り可変状態とならない。例えば、フォーミングストレスは累積的なストレスであってもよい。その場合、ストレスの累積量が所定量を超えたときに、初期状態から可変状態に遷移する。メモリセル９１は、初期状態を取りうる素子でなくてもよい。メモリセル９１は、例えば、可変状態のみを有する、いわゆるフォーミングレスの素子であってもよい。
【００６２】
メモリセルアレイ９０が備える複数のメモリセル９１は、可変状態のメモリセルと、初期状態のメモリセルと、を含んでもよい。メモリセルアレイ９０には、各メモリセル９１が初期状態にあるか可変状態にあるかの違いを利用して、データが記録されていてもよい。
【００６３】
メモリセルアレイ９０には、例えば、後述する第１種データおよび第２種データの少なくとも一方が記録されうる。メモリセルアレイ９０は、第１種データが記録されたメモリセル９１と第２種データが記録されたメモリセル９１との両方を含んでいてもよい。
【００６４】
メモリセル９１は、製造された後、かつ、フォーミングがされる前において、抵抗値が複数の可変抵抗値範囲の間を可逆的に遷移する状態でなくてもよい。フォーミングとは、所定の電気的ストレスをメモリセルに印加して、メモリセルの抵抗値が複数の可変抵抗値範囲の間を可逆的に遷移する状態へと、メモリセルを変化させることをいう。フォーミングのために印加される電気的ストレスは、例えば、所定の電圧と時間幅を有する電気的パルスであってもよく、複数の電気的パルスが組み合わされたものであってもよい。
【００６５】
初期抵抗値範囲は、製造直後のメモリセル９１の抵抗値を含み、かつ、可変状態に変化した後のメモリセル９１の抵抗値を含まないように設定されうる。可変抵抗値範囲は、初期抵抗値範囲を含まず、かつ、可変状態に変化した後のメモリセル９１の抵抗値を含むように設定されうる。抵抗変化素子の不揮発性記憶素子を備えるメモリセルは、典型的に、上記の特性を備え得る。公知の様々な材料を用いて、かかる特性を備えるメモリセル９１が製造されうる。
【００６６】
初期状態のメモリセル９１は、フォーミングストレスではない何らかの電気的ストレスを受けた状態を含む。言い換えると、初期状態のメモリセル９１は、可変状態に変化させるための電気的ストレスを除く、種々の電気的ストレスを受けた状態を含む。初期状態のメモリセル９１は、製造直後のメモリセル９１がフォーミングストレスではない何らかの電気的ストレスを受けて変化した状態を含みうる。その場合、そのメモリセル９１の抵抗値は、初期抵抗値範囲内に含まれうる。
【００６７】
制御装置９３は、選択されたメモリセル９１が初期状態にあるか可変状態にあるかを判定することによって、記録されたデータを読み出してもよい。
【００６８】
図３に示した例において、第１電極１２４はＴａＮ（窒化タンタル）、第２電極１２８はＩｒ（イリジウム）、抵抗変化層１２６はタンタル酸化物から構成される。抵抗変化層１２６の厚さは例えば５０ｎｍ以下である。抵抗変化層１２６は、酸素濃度の異なる２層の積層構造を有する。抵抗変化層１２６のうち、第１電極１２４に接する層は、酸素濃度が相対的に低い層である。この層の組成をＴａＯxとすると、ｘは０＜ｘ＜２．５を満たす。抵抗変化層１２６のうち、第２電極１２８に接する層は、酸素濃度が相対的に高い層である。この層の組成をＴａＯyとすると、ｙはｙ≧２．１を満たし、その厚さは例えば５．５ｎｍ程度である。第１電極１２４と抵抗変化層１２６との接触面および第２電極１２８と抵抗変化層１２６との接触面の面積は、例えば０．２５μｍ2以下である。フォーミングストレスとして、メモリセル９１にパルス電圧が繰り返し印加される。パルス電圧は、例えば、電圧＋３．５Ｖ、パルス幅５μＳｅｃを有する。
【００６９】
図３に示される例において、メモリセルは、第１抵抗値範囲と第２抵抗値範囲との２つの可変抵抗値範囲をとり得る。ここでは、簡便のため、メモリセル９１の抵抗値が第１抵抗値範囲内にある状態は、高抵抗状態と呼ばれ、抵抗値が第２抵抗値範囲内にある状態は、低抵抗状態と呼ばれる。加えて、メモリセルの抵抗値を第１抵抗値範囲から第２抵抗値範囲へと変化させるためのパルスは、低抵抗化パルスと呼ばれ、メモリセルの抵抗値を第２抵抗値範囲から第１抵抗値範囲へと変化させるためのパルスは、高抵抗化パルスと呼ばれる場合がある。低抵抗化パルスは、第２電気的信号の一例である。高抵抗化パルスは、第１電気的信号の一例である。低抵抗化パルスは、例えば、電圧が−２．４Ｖ、パルス幅が５０ｎＳｅｃである。高抵抗化パルスは、例えば、電圧が＋１．８Ｖ、パルス幅が５０ｎＳｅｃである。なお、図２のメモリセル構造において、電圧は第１電極１２４を基準として第２電極１２８に正の電圧を印加する場合を正極性とする。
【００７０】
その他の例として、第１電極１２４及び第２電極１２８は白金（Ｐｔ）、抵抗変化層１２６はハフニウム酸化物から構成されてもよい。抵抗変化層１２６の厚さは例えば３０ｎｍである。メモリセル９１の素子領域の形状は、直径３μｍの円形であってもよい。例えば、抵抗変化層１２６がＨｆＯ1.6から構成される場合、初期抵抗値は数ＭΩ程度であり、第１抵抗値範囲が１０００Ω以上〜３０００Ω以下、第２抵抗値範囲が１００以上３００Ω以下となる。この場合、フォーミングストレスを構成する複数の電圧パルスのそれぞれは、例えば、電圧２〜３Ｖ、パルス幅１００ｎＳｅｃを有する。低抵抗化パルスは、例えば、電圧が＋１．０Ｖ、パルス幅が１００ｎＳｅｃであり、高抵抗化パルスは、例えば、電圧が−１．３Ｖ、パルス幅が１００ｎＳｅｃである。
【００７１】
図３に示される例では、初期抵抗値範囲の下限が、全ての可変抵抗値範囲の上限以上である。言い換えると、初期抵抗値範囲の下限は、複数の可変抵抗値範囲のうち抵抗値が最も大きいものの上限以上である。例えば、初期抵抗値範囲の下限は、２個の可変抵抗値範囲のうち抵抗値が最も大きい第１抵抗値範囲の上限に等しくてもよい。
【００７２】
図３に示される例では、第１閾値は、初期抵抗値範囲の下限以下であり、かつ、全ての可変抵抗値範囲の上限以上である。言い換えると、第１閾値は、初期抵抗値範囲の下限以下であり、複数の可変抵抗値範囲のうち抵抗値が最も大きいものの上限以上である。例えば、第１閾値は、２個の可変抵抗値範囲のうち抵抗値が最も大きい第１抵抗値範囲の上限に等しくてもよい。第１閾値は、初期抵抗範囲の下限に等しくてもよい。なお、第１閾値と等しい値を有する抵抗値は、初期抵抗値範囲に属するものとして設定されてもよいし、複数の可変抵抗値範囲のうち抵抗値が最も大きいものに属するものとして設定されてもよい。
【００７３】
図３に示される例では、第２閾値は、複数の可変抵抗値範囲のうち抵抗値が最も大きいものの下限以下であり、かつ複数の可変抵抗値範囲のうち抵抗値が最も小さいものの上限以上である。例えば、第２閾値は、２個の可変抵抗値範囲のうち抵抗値が最も大きい第１抵抗値範囲の下限以下であり、かつ２個の可変抵抗値範囲のうち抵抗値が最も小さい第２抵抗値範囲の上限以上である。例えば、第２閾値は、第１抵抗値範囲の下限または第２抵抗値範囲の上限に等しくてもよい。第１抵抗低範囲と第２抵抗値範囲とが隣接していてもよい。すなわち、第１抵抗値範囲を規定する２つの端点のうち小さい方の値と、第２抵抗値範囲を規定する２つの端点のうち大きい方の値とが一致していてもよい。なお、第２閾値と等しい値を有する抵抗値は、複数の可変抵抗値範囲のうち、第２閾値よりも大きな抵抗値を含む抵抗値範囲に属するものとして設定されてもよいし、第２閾値よりも小さな抵抗値を含む抵抗値範囲に属するものとして設定されてもよい。
【００７４】
メモリセル９１の構成によっては、製造直後のメモリセル９１の抵抗値が、いずれの可変抵抗値範囲よりも小さい場合がある。すなわち、初期抵抗値範囲がいずれの可変抵抗値範囲よりも小さい場合がある。例えば、メモリセル９１内の抵抗変化層が鉄酸化物から構成される場合に、かかる特性が実現される。
【００７５】
種々の鉄酸化物の抵抗率は、Ｆｅ3Ｏ4、ＦｅＯ、Ｆｅ2Ｏ3の順に高い。例えば、第１電極１２４はＰｔ（白金）、第２電極１２８はＰｔ（白金）、抵抗変化層１２６はＦｅ3Ｏ4から構成されうる。このとき、抵抗変化層１２６全体の厚さは、例えば５０ｎｍ以下としうる。
【００７６】
例えば、第１電極１２４と抵抗変化層１２６との接触面が０．２５μｍ2以下であり、第２電極１２８と抵抗変化層１２６との接触面の面積が０．２５μｍ2以下であるとき、初期抵抗値は概ね２００Ωとなり、これは非常に低い抵抗値である。この初期状態のメモリセルに、例えば、第１電気的信号と同じ極性を有し、電圧の絶対値が３．５Ｖ、パルス幅が１０μＳｅｃのパルスを所定の回数を印加する。これにより、メモリセルの抵抗値は、初期抵抗値よりも抵抗値の大きい状態、例えば２０００Ω以上８０００Ω以下の高抵抗状態に推移する。これは、第２電極１２８と抵抗変化層１２６の接触界面の酸化が進行し、絶縁状態にあるＦｅ2Ｏ3の抵抗層が形成されたためと考えられる。
【００７７】
可変状態のメモリセルの抵抗値は、電圧の絶対値が２．４Ｖである第２電気的信号の印加により、３００Ω以上５００Ω以下の第２抵抗値範囲へ遷移しうる。また、可変状態のメモリセルの抵抗値は、第２電気的信号と極性の異なる電圧の絶対値が２．４Ｖの第１電気的信号の印加により、メモリセルの抵抗値は、２０００Ω以上８０００Ω以下の第１抵抗値範囲へ遷移しうる。
【００７８】
その他の例として、第１電極１２４及び第２電極１２８は白金（Ｐｔ）、抵抗変化層１２６はハフニウム酸化物から構成されてもよい。抵抗変化層１２６の厚さは例えば３０ｎｍである。メモリセル９１の素子領域の形状は、直径を３μｍの円形であってもよい。例えば、抵抗変化層１２６がＨｆＯ0.9から構成され、その初期抵抗値が抵抗変化しない場合、当該メモリセルは、電圧パルスがフォーミングストレスとして与えられて、可変状態になりうる。このとき、電圧パルスは、例えば、電圧４Ｖ、パルス幅１００μＳｅｃである。可変状態のメモリセルの抵抗値は、電圧が−１．３Ｖ、パルス幅が１００ｎＳｅｃである低抵抗化パルスの印加により、３０Ω以上９０Ω以下の第２抵抗値範囲へ遷移しうる。また、可変状態のメモリセルの抵抗値は、電圧が＋２．０Ｖ、パルス幅が１００ｎＳｅｃである高抵抗化パルスの印加により、１００Ω以上３００Ω以下の第１抵抗値範囲へ遷移しうる。
【００７９】
かかる構成では、初期抵抗値範囲の上限が、全ての可変抵抗値範囲の下限以下であってもよい。言い換えると、初期抵抗値範囲の上限が、複数の可変抵抗値範囲のうち抵抗値が最も小さいものの下限以下であってもよい。例えば、初期抵抗値範囲の上限は、２個の可変抵抗値範囲のうち抵抗値が最も小さい第２抵抗値範囲の下限に等しくてもよい。
【００８０】
第１閾値は、初期抵抗値範囲の上限以上であり、かつ、全ての可変抵抗値範囲の下限以下であってもよい。言い換えると、第１閾値は、初期抵抗値範囲の上限以上であり、複数の可変抵抗値範囲のうち抵抗値が最も小さいものの下限以下であってもよい。例えば、第１閾値は、２個の可変抵抗値範囲のうち抵抗値が最も小さい第２抵抗値範囲の下限に等しくてもよい。第１閾値は、初期抵抗値範囲の上限に等しくてもよい。
【００８１】
第２閾値は、複数の可変抵抗値範囲のうち抵抗値が最も小さいものの上限以上であり、かつ複数の可変抵抗値範囲のうち抵抗値が最も大きいものの下限以下であってもよい。例えば、第２閾値は、２個の可変抵抗値のうち抵抗値が最も小さい第２抵抗値範囲の上限以上であり、かつ２個の可変抵抗値のうち抵抗値が最も大きい第１抵抗値範囲の下限以下であってもよい。例えば、第２閾値は、第１抵抗値範囲の下限または第２抵抗値範囲の上限に等しくてもよい。
【００８２】
なお、隣り合う抵抗値範囲は必ずしも上限と下限とが隣接している必要はない。隣り合う抵抗値範囲同士の間に所定のマージンが設定されていてもよい。
【００８３】
制御装置９３は、選択されたメモリセル９１の抵抗値が第１閾値よりも大きいか否かを判定する第１読み出しモードと、選択されたメモリセル９１の抵抗値が第２閾値よりも大きいか否かを判定する第２読み出しモードとを選択的に実行してもよい。これにより、記録されたデータが読み出される。
【００８４】
第１閾値および第２閾値は、固定の値ではなく、任意に可変できてもよい。
【００８５】
記録されたデータは、第１種データと第２種データとを含んでもよい。第１種データは、例えば、各メモリセル９１の抵抗値が初期抵抗値範囲にあるか否かの違いを利用して記録されている。第２種データは、例えば、各メモリセル９１の抵抗値が初期抵抗値範囲にあるか否かの違いを利用せずに、各メモリセル９１の抵抗値が少なくとも一つの可変抵抗値範囲にあるか否かの違いを利用して記録されている。
【００８６】
メモリセルアレイ９０が、第１書き込みアドレス領域と、第２書き込みアドレス領域とを備えてもよい。この場合において、第１書き込みアドレス領域に第１種データが記録されており、第２書き込みアドレス領域に第２種データが記録されていてもよい。第１書き込みアドレス領域と、第２書き込みアドレス領域とは、必ずしも物理的な領域として分離されていなくてもよい。例えば、各メモリセル９１が、アドレスに関する所定の規則に応じて、第１書き込みアドレス領域と第２書き込みアドレス領域とに振り分けられていてもよい。
【００８７】
第２書き込みアドレス領域は、例えば複数の可変状態のメモリセルから構成される領域である。例えば、初期状態の複数のメモリセルにフォーミングストレスが印加されることによって、第２書き込みアドレス領域が形成されてもよい。初期状態の複数のメモリセルは、例えば、製造直後のメモリセルアレイ９０の所定の領域に含まれる。この場合、フォーミングストレスは、第１種データを記録するためだけでなく、第２種データが書き込まれる第２書き込みアドレス領域を形成するために用いられうる。
【００８８】
メモリセルアレイ９０を構成する複数のメモリセルに選択的にフォーミングストレスが印加されることによって、第１書き込みアドレス領域と第２書き込みアドレス領域とが設定されうる。そのため、それらのアドレス領域の容量配分や配置は自由に選択されうる。第１書き込みアドレス領域の一部領域に対してフォーミングストレスが印加されると、当該一部領域が第２書き込みアドレス領域へと変更されうる。
【００８９】
第１書き込みアドレス領域と、第２書き込みアドレス領域とは、例えば、同一のメモリセルアレイ９０内に配置される。これにより、例えば第１書き込みアドレス領域と第２書き込みアドレス領域との間で情報が送受信される場合に、情報の秘匿性が向上しうる。
【００９０】
図３に示される例では、第１種データは各メモリセル９１の抵抗値が初期抵抗値範囲にあるか否かの違いを利用して記録されている。図３に示される例では、第２種データは、各メモリセル９１の抵抗値が第２抵抗値範囲にあるか否かの違いを利用して記録されている。
【００９１】
図３に示される例では可変抵抗値範囲の数は２であるが、可変抵抗値範囲の数は３以上であってもよい。すなわち、メモリセル９１は多値メモリであってもよい。
【００９２】
なお、図３に示される抵抗変化素子において、例えば、初期抵抗値範囲は２×１０6Ω以上１．０×１０7Ω未満に、２つの可変抵抗値範囲は５×１０4Ω以上２×１０6Ω未満、及び５×１０3Ω以上５×１０4Ω未満に設定されうる。このとき、例えば、第１閾値は２×１０6Ωであり、第２閾値は５×１０4Ωである。
【００９３】
［抵抗変化素子の構成］
図２に示される例において、第１電極１２４と第２電極１２８との間に抵抗変化層１２６が介在する。抵抗変化層１２６は、例えば金属酸化物、より詳細には例えば遷移金属酸化物で構成されうる。可変状態にあるメモリセル９１の抵抗変化素子１２０の抵抗値は、第１電極１２４と第２電極１２８との間に印加される電気的信号によって、複数の可変抵抗値範囲の間を可逆的に遷移する。
【００９４】
初期状態にあるメモリセル９１の抵抗変化素子１２０の抵抗変化層１２６は、第１電極１２４と第２電極１２８との間を絶縁していてもよい。絶縁とは、例えば、第１電極１２４と第２電極１２８との間の抵抗値が２ＭΩ以上である状態である。抵抗変化素子１２０の抵抗変化層１２６は、絶縁体から構成された層を備えていてもよい。絶縁体とは、例えば、抵抗率が３０Ω・ｍ以上の材料である。抵抗変化素子１２０の抵抗変化層１２６の少なくとも一部が絶縁体から構成されることにより、初期状態のメモリセルの抵抗特性が安定して維持されうる。
【００９５】
初期状態とは、抵抗変化素子を半導体プロセス等により製造した後であって、フォーミングストレスによって抵抗変化素子が可変状態となる前の状態であってもよい。
【００９６】
抵抗変化素子の初期状態における抵抗値は、可変状態における抵抗値と異なり、抵抗変化素子の材料、大きさ、形状、及び製造条件等によって、ある程度調整されうる。特に、抵抗変化層１２６が積層構造である場合、酸素濃度の高い層の厚み、形成時の酸素濃度によって、その抵抗値が任意に調整されうる。
【００９７】
上記のような初期状態は、電気的信号の印加によって抵抗値が遷移する可変状態に比べて、安定している。そのため、初期状態と可変状態との差異を利用することにより、データが安定して保持されうる。
【００９８】
初期抵抗値範囲は、例えば、初期状態にある素子に読み出し電圧を印加することによって得られる抵抗値を含む。読み出し電圧は、例えば、可変状態にある素子の抵抗値を複数の可変抵抗値範囲の間で変化させる電気的信号、および、フォーミングストレスのいずれよりも小さい。
【００９９】
電気的ストレスがフォーミングストレスであるか否かは、対象となるメモリセル９１が初期状態から可変状態へと変化するか否かによって決まる。対象となるメモリセル９１が初期状態から可変状態へと変化するための条件は、メモリセル９１毎にばらつく。すなわち、電気的ストレスがフォーミングストレスであるために必要な電気的ストレスの種々のパラメータは、絶対的な固定値ではなく、メモリセル９１毎に所定のバラツキを有しうる。種々のパラメータとは、例えば、メモリセル９１に印加される電圧振幅の大きさ、パルスの幅、および累積印加時間である。累積印加時間とは、例えば、抵抗状態が初期状態から可変状態に変化するまでに印加される複数の電気的パルスにおけるパルス幅の合計に相当する。
【０１００】
フォーミングストレスは、典型的には、可変状態にあるメモリセルの抵抗値を複数の可変抵抗値範囲の間で可逆的に変化させるために印加される電気的信号よりも強い。例えば、フォーミングストレスは、電圧の絶対値、パルス幅、および累積印加時間の少なくともいずれかにおいて、可変状態にあるメモリセルの抵抗値を変化させるために印加される電気的信号よりも大きくてもよい。
【０１０１】
可変状態において、電圧およびパルス幅等は異なるが同極性の電気的信号を印加することにより抵抗値が変化する抵抗変化素子は、ユニポーラ型抵抗変化素子とよばれる。ユニポーラ型抵抗変化素子は、例えば、電圧が＋２Ｖでパルス幅が１μＳｅｃの電気的信号が印加されると高抵抗状態に変化し、電圧が＋４Ｖでパルス幅が５０ｎＳｅｃの電気的信号が印加されると低抵抗状態に変化する。ここで、電気的信号の電圧の極性は、第２電極１２８から第１電極１２４に電流が流れる向きを正とした。
【０１０２】
一方、可変状態において、異なる極性の電気的信号を印加することで抵抗値が変化する抵抗変化素子は、バイポーラ型抵抗変化素子とよばれる。バイポーラ型抵抗変化素子は、例えば、電圧が＋２Ｖでパルス幅が５０ｎＳｅｃの電気的信号が印加されると高抵抗状態に変化し、電圧が−２Ｖでパルス幅が５０ｎＳｅｃの電気的信号が印加されると低抵抗状態に変化する。ここで、電気的信号の電圧の極性は、第２電極１２８から第１電極１２４に電流が流れる向きを正とした。
【０１０３】
バイポーラ型抵抗変化素子において、例えば動作を安定にするために、高抵抗化パルス及び低抵抗化パルスの極性のみならず、それらのパルス幅や電圧の絶対値が異なっていてもよい。
【０１０４】
抵抗変化層１２６は金属酸化物から構成されてもよい。抵抗変化層１２６は、酸素不足型の金属酸化物から構成された層を備えてもよい。抵抗変化層１２６を構成する金属酸化物は、遷移金属酸化物およびアルミニウム酸化物の少なくともいずれか一方であってもよい。遷移金属酸化物は、例えば、タンタル酸化物、鉄酸化物、ハフニウム酸化物およびジルコニウム酸化物の少なくともいずれかであってもよい。
【０１０５】
ユニポーラ型抵抗変化素子の抵抗変化層の材料の例として、チタン（Ｔｉ）酸化物、ニッケル（Ｎｉ）酸化物、アルミニウム（Ａｌ）酸化物等が挙げられる。バイポーラ型抵抗変化素子の抵抗変化層の材料の例として、タンタル（Ｔａ）酸化物、ハフニウム（Ｈｆ）酸化物、アルミニウム（Ａｌ）酸化物、鉄（Ｆｅ）酸化物等が挙げられる。
【０１０６】
同じ材料の酸化物が用いられる場合でも、電極材料との組合せおよび酸化物の積層構造等によって、ユニポーラ型抵抗変化素子およびバイポーラ型抵抗変化素子の両方が得られる場合もある。以下、抵抗変化層がタンタル酸化物から構成される例について詳細に説明する。抵抗変化層がタンタル酸化物を含む場合、抵抗変化素子が良好な特性を示しうる。
【０１０７】
第１電極１２４および第２電極１２８の材料の例として、イリジウム（Ｉｒ）、白金（Ｐｔ）、タングステン（Ｗ）、銅（Ｃｕ）、アルミニウム（Ａｌ）、窒化チタン（ＴｉＮ）、窒化タンタル（ＴａＮ）および窒化チタンアルミニウム（ＴｉＡｌＮ）等が挙げられる。図２に示される例では、第１電極１２４が第２電極１２８に比べ大面積となっているが、これに限定されるものでない。例えば、第１電極１２４は、配線の一部であってもよい。第１電極１２４および第２電極１２８は、半導体プロセスにあわせ適宜、最適な形状にされうる。下地層１２２は、半導体プロセスに応じて適宜に省略または変更されうる。
【０１０８】
抵抗変化層１２６は、第１電極１２４に接続する第１抵抗変化層と、第２電極１２８に接続する第２抵抗変化層を含む積層体であってもよい。
【０１０９】
第１抵抗変化層は、酸素不足型の第１金属酸化物で構成され、第２抵抗変化層は、第１金属酸化物よりも酸素不足度が小さい第２金属酸化物で構成されうる。第２抵抗変化層は、絶縁体から構成された層であってもよい。例えば、第２抵抗変化層中に、電気パルスの印加に応じて酸素不足度が可逆的に変化する微小な局所領域が形成されている。局所領域は、酸素欠陥サイトから構成されるフィラメントを含むと考えられる。局所領域は、第２抵抗変化層を貫く導電パスであってもよい。絶縁体が金属酸化物から構成され、導電パスは、絶縁体よりも酸素含有率が低い酸素不足型の金属酸化物から構成されていてもよい。
【０１１０】
「酸素不足度」とは、化学量論的組成の金属酸化物を構成している酸素の量に対する、対象となる金属酸化物を構成している酸素の不足量の割合をいう。なお、ある金属の酸化物として複数の化学量論的組成が存在する場合、その金属酸化物の酸素不足度は、その中で最も抵抗値が高い化学量論的組成を基準として定義されうる。化学量論的組成の金属酸化物は、他の組成の金属酸化物と比べて、より安定であり、かつ、より高い抵抗値を有している。
【０１１１】
例えば、金属がタンタル（Ｔａ）の場合、上述の定義による化学量論的組成の酸化物はＴａ2Ｏ5であり、ＴａＯ2.5と表現されうる。ＴａＯ2.5の酸素不足度は０％であり、ＴａＯ1.5の酸素不足度は、酸素不足度＝（２．５−１．５）／２．５＝４０％となる。また、酸素過剰の金属酸化物において、酸素不足度は負の値となる。なお、本開示では、特に断りのない限り、酸素不足度は正の値、０、負の値も含むものとして説明される。
【０１１２】
酸素不足度の小さい酸化物は、化学量論的組成の酸化物により近く、それゆえ抵抗値が高い。酸素不足度の大きい酸化物は、酸化物を構成する金属により近く、それゆえ抵抗値が低い。
【０１１３】
「酸素含有率」とは、総原子数に占める酸素原子の比率である。例えば、Ｔａ2Ｏ5の酸素含有率は、総原子数に占める酸素原子の比率（Ｏ／（Ｔａ＋Ｏ））であり、７１．４ａｔｍ％となる。したがって、酸素不足型のタンタル酸化物の酸素含有率は、０より大きく、７１．４ａｔｍ％より小さい。例えば、第１金属酸化物を構成する金属と、第２金属酸化物を構成する金属とが同種である場合、酸素含有率は酸素不足度と対応関係にある。すなわち、第２金属酸化物の酸素含有率が第１金属酸化物の酸素含有率よりも大きいとき、第２金属酸化物の酸素不足度は第１金属酸化物の酸素不足度より小さい。
【０１１４】
抵抗変化層を構成する金属酸化物が含有する金属元素は、タンタル以外の金属であってもよい。そのような金属元素は、例えば、遷移金属、およびアルミニウム（Ａｌ）の少なくともいずれかである。遷移金属の例としては、タンタル（Ｔａ）、チタン（Ｔｉ）、ハフニウム（Ｈｆ）、ジルコニウム（Ｚｒ）、ニオブ（Ｎｂ）、タングステン（Ｗ）、ニッケル（Ｎｉ）、および鉄（Ｆｅ）等が挙げられる。遷移金属は複数の酸化状態をとることができるため、酸化還元反応により異なる抵抗状態に変化しうる。
【０１１５】
例えば、抵抗変化層１２６は、ハフニウム酸化物から構成されてもよい。この場合、例えば、第１金属酸化物の組成がＨｆＯxであって、ｘが０．９以上１．６以下であり、かつ、第２金属酸化物の組成がＨｆＯyであって、ｙがｘの値よりも大であってもよい。これにより、抵抗変化層の抵抗値が安定して高速に変化しうる。例えば、第２金属酸化物の膜厚は、３ｎｍ以上４ｎｍ以下としてもよい。
【０１１６】
例えば、抵抗変化層１２６は、ジルコニウム酸化物から構成されてもよい。この場合、例えば、第１金属酸化物の組成がＺｒＯxであって、ｘが０．９以上１．４以下であり、かつ、第２金属酸化物の組成をＺｒＯyであって、ｙがｘの値よりも大であってもよい。これにより、抵抗変化層の抵抗値が安定して高速に変化しうる。例えば、第２金属酸化物の膜厚は、１ｎｍ以上５ｎｍ以下としてもよい。
【０１１７】
第１金属酸化物を構成する第１金属と、第２金属酸化物を構成する第２金属とは、異なる金属であってもよい。この場合、第２金属酸化物は、第１金属酸化物よりも酸素不足度が小さくてもよい。言い換えると、第２金属酸化物は、第１金属酸化物よりも抵抗値が高くてもよい。このような構成により、第１電極１２４と第２電極１２８との間に電圧が印加されたとき、第２金属酸化物に、より多くの電圧が分配され、第２金属酸化物中に酸化還元反応が発生しやすくなる。
【０１１８】
第１抵抗変化層を構成する第１金属酸化物内に含有される第１金属と、第２抵抗変化層を構成する第２金属酸化物内に含有される第２金属とは、互いに異なっていてもよい。この場合、第２金属の標準電極電位は、第１金属の標準電極電位より低くてもよい。標準電極電位は、酸化特性を表す。標準電極電位が高い金属ほど、酸化しにくい。そのため、標準電極電位が相対的に低い第２金属酸化物において、酸化還元反応が起こりやすくなる。
【０１１９】
例えば、第１金属酸化物は酸素不足型のタンタル酸化物（ＴａＯx）であり、第２金属酸化物はチタン酸化物（ＴｉＯ2）であってもよい。チタンの標準電極電位は、−１．６３ｅＶであり、タンタルの標準電極電位は−０．６ｅＶである。このように、第２金属酸化物の標準電極電位が、第１金属酸化物の標準電極電位よりも低い場合、第２金属酸化物中でより酸化還元反応が発生しやすくなる。そのため、安定した抵抗変化動作が得られる。第１金属酸化物と第２金属酸化物のその他の組み合わせの例として、第１金属酸化物は酸素不足型のタンタル酸化物（ＴａＯx）であり、第２金属酸化物はアルミニウム酸化物（Ａｌ2Ｏ3）であってもよい。
【０１２０】
積層構造の抵抗変化層における抵抗変化現象は、次のように発現すると考えられる。可変状態において、抵抗値の高い第２金属酸化物の層は、微小な局所領域を有する。この局所領域中で酸化還元反応が起こって、局所領域中のフィラメント（導電パス）が変化する。これにより、局所領域の抵抗値が変化する。
【０１２１】
例えば、第２金属酸化物に接続する第２電極１２８に、第１電極１２４を基準にして正の電圧が印加されたとき、抵抗変化層中の酸素イオンが第２金属酸化物側に引き寄せられる。これによって、第２金属酸化物中の微小な局所領域中で酸化反応が発生し、局所領域中の酸素不足度が減少する。その結果、局所領域中のフィラメントがつながりにくくなり、抵抗値が増大すると考えられる。
【０１２２】
逆に、第２金属酸化物に接続する第２電極１２８に、第１電極１２４を基準にして負の電圧が印加されたとき、第２金属酸化物中の酸素イオンが第１金属酸化物側に押しやられる。これによって、第２金属酸化物中の微小な局所領域中で還元反応が発生し、局所領域中の酸素不足度が増加する。その結果、局所領域中のフィラメントがつながりやすくなり、抵抗値が減少すると考えられる。
【０１２３】
酸素不足度がより小さい第２金属酸化物に接続されている第２電極１２８は、例えば、白金（Ｐｔ）、イリジウム（Ｉｒ）、パラジウム（Ｐｄ）などから構成される。第２電極１２８を構成する材料の標準電極電位は、例えば、第２金属酸化物を構成する金属の標準電極電位、および、第１電極１２４を構成する材料の標準電極電位よりも高い。酸素不足度がより高い第１金属酸化物に接続されている第１電極１２４は、例えば、タングステン（Ｗ）、ニッケル（Ｎｉ）、タンタル（Ｔａ）、チタン（Ｔｉ）、アルミニウム（Ａｌ）、窒化タンタル（ＴａＮ）、窒化チタン（ＴｉＮ）などから構成される。第１電極１２４を構成する材料の標準電極電位は、例えば、第１金属酸化物を構成する金属の標準電極電位よりも低くてもよい。
【０１２４】
すなわち、第２電極１２８の標準電極電位Ｖ２、第２金属酸化物を構成する金属の標準電極電位Ｖｒ２、第１金属酸化物を構成する金属の標準電極電位Ｖｒ１、および、第１電極１２４の標準電極電位Ｖ１は、Ｖｒ２＜Ｖ２、およびＶ１＜Ｖ２なる関係を満足してもよい。さらに、それらは、Ｖ２＞Ｖｒ２、およびＶｒ１≧Ｖ１の関係を満足してもよい。
【０１２５】
このような構成とすることにより、第２電極１２８と第２金属酸化物の界面近傍の第２金属酸化物中において、選択的に酸化還元反応が発生する。これにより、安定した抵抗変化現象が得られうる。
【０１２６】
抵抗変化層１２６は、例えば、ＴａＯx（ただし、０≦ｘ＜２.５）で表される組成を有する第１抵抗変化層と、ＴａＯy（ただし、ｘ＜ｙ＜２．５）で表される組成を有する第２抵抗変化層とを含む積層構造を有している。抵抗変化層１２６は、第１抵抗変化層および第２抵抗変化層とは組成の異なる金属酸化物で構成される第３抵抗変化層をさらに含んでもよい。
【０１２７】
ここで、ＴａＯxは、０．８≦ｘ＜１．９をさらに満足してもよい。ＴａＯyは、２．１≦ｙ＜２．５をさらに満足してもよい。第２タンタル含有層の厚みは、１ｎｍ以上８ｎｍ以下であってもよい。酸素不足度の異なる層が積層されることにより、バイポーラ型における抵抗変化の方向が決定されうる。例えば、第２抵抗変化層が第２電極１２８に接し、第１抵抗変化層が第１電極１２４に接する。かかる構成によれば、第２電極１２８から第１電極１２４に電流が流れる向きに電圧が印加されることにより、抵抗変化素子１２０が高抵抗化する。反対に、第１電極１２４から第２電極１２８に電流が流れる向きに電圧が印加されることにより、抵抗変化素子１２０が低抵抗化する。なお、第２抵抗変化層が第１電極１２４に接し、第１抵抗変化層が第２電極１２８に接する場合、抵抗変化と電圧印加の向きとの関係が逆転する。
【０１２８】
［可変状態における抵抗変化素子の特性］
図４は、可変状態にあるバイポーラ型抵抗変化素子の特性の一例を示す。図４に示される例において、第１電極１２４はＴａＮから構成され、第２電極１２８はＩｒから構成される。抵抗変化層１２６は、ＴａＯx（ただし、０＜ｘ＜２．５）で表される組成を有する第１タンタル含有層と、ＴａＯy（ただし、ｘ＜ｙ）で表される組成を有する第２タンタル含有層を含む。第１タンタル含有層が第１電極１２４に接し、第２タンタル含有層が第２電極１２８に接している。第１タンタル含有層を構成するＴａＯxは、０．８≦ｘ≦１．９を満足した。第２タンタル含有層を構成するＴａＯyは、２．１≦ｙ≦２．５を満足する。第２タンタル含有層の厚みは、例えば、８ｎｍ以下である。抵抗変化層１２６全体の厚みは例えば５０ｎｍ以下である。各電極への接触面積は、図３の測定に用いた抵抗変化素子と等しい。
【０１２９】
図４の横軸は、印加される電気的信号の電圧を示し、縦軸は、電気的信号を印加した後の抵抗変化素子の抵抗値を示している。ここでは、第２電極１２８から第１電極１２４に電流が流れるような電気的信号の極性が、正極性である。抵抗値は、読み出し電圧ＶＲを印加したときの電流から算出されている。電気的信号の電圧は、図４の中のスタートの位置から、正方向に大きくなるように印加されている。印加電圧が＋１．１Ｖを超えた後、抵抗変化素子の抵抗値は徐々に上昇し、印加電圧が＋２．０Ｖのときに、抵抗値は約１０００００Ωに達している。その後、電気的信号の電圧は、０に近づき、さらに負方向に大きくなるように印加されている。印加電圧が−１．１Ｖのときに、抵抗値は約１００００Ω程度になっている。その後、電気的信号の電圧は、再び０に近づくように印加され、抵抗値はスタートの値に戻っている。図４に示される例において、低抵抗状態から高抵抗状態に変化させる高抵抗化電圧ＶHと、高抵抗状態から低抵抗状態に変化させる低抵抗化電圧ＶLとは、｜ＶH｜＝｜ＶL｜＝２．０Ｖを概ね満たす。高抵抗化電圧の絶対値と低抵抗化電圧の絶対値が同等の場合、共通の電源電圧を用いて、抵抗変化素子が可逆的に遷移しうる。
【０１３０】
図５は、IEDM Technical Digest. 13-15 Dec. 2004, p.587に開示されている、可変状態にあるユニポーラ型抵抗変化素子の特性の一例を示す。当該論文に示される通り、ＮｉＯ、ＴｉＯ2、ＨｆＯ2、ＺｒＯ2から構成された抵抗変化層を有する抵抗変化素子は、ユニポーラ特性を示す。また、それらの遷移金属酸化物から構成された抵抗変化層は、製造直後には絶縁体であって、かつフォーミングストレスを与えることによって可変状態に遷移する。
【０１３１】
抵抗変化層の材料と電極の材料との組合せ、および抵抗変化材料にドープされる不純物の材料等によっては、ユニポーラ型抵抗変化素子は、正電圧側でも負電圧側でも対称的に抵抗変化しうる。図５は、かかる素子の特性を例示する。
【０１３２】
図５に示される例では、バイアス電圧の絶対値が０．５Ｖを超えると、素子がリセット状態、つまり高抵抗状態へと推移する。バイアス電圧の絶対値が１．０Ｖを超えると、素子がセット状態、つまり低抵抗状態へと推移する。かかる素子は、同じ極性で電圧の異なる電気的信号が印加されることで、２個の抵抗値範囲の間を可逆的に遷移しうる。しかし、図５のような特性のユニポーラ型抵抗変化素子は、＋０．５Ｖ以上＋１Ｖ未満の正極性の電気的信号が印加されることで高抵抗化し、−１Ｖ以下の負極性の電気的信号が印加されることで低抵抗化する。言い換えれば、図５に示される特性を有する型抵抗変化素子は、バイポーラ型抵抗変化素子として利用されうる。
【０１３３】
抵抗変化素子は、印加される電気的信号の電圧値、パルス幅、および回数等の組合せによって、多値メモリとして利用されてもよい。例えば、タンタル酸化物から構成される抵抗変化層を有する抵抗変化素子は、良好な特性を示し、多値メモリへ応用されうる。
【０１３４】
図６は、抵抗変化素子の抵抗変化特性の一例を示す。横軸に電気的信号の印加回数、縦軸に電気的信号が印加された後の抵抗値を示す。前述と同様に、抵抗値は読み出し電圧ＶＲが印加されたときの電流から算出されている。三角点（▲）で示したものは負極性の電気的信号が印加された後の抵抗値を示す。四角点（■）は正極性の電気的信号が印加された後の抵抗値を示す。
【０１３５】
図６に示される例において、抵抗変化素子１２０の構成は、図３において説明された構成と同様である。
【０１３６】
図６から分かるように、正極性の電気的信号の電圧値が１３００ｍＶから１５００ｍＶに増加するにつれて、当該信号が印加された後の抵抗値は徐々に増加している。正極性の電気的信号の電圧値が１５００ｍＶに固定された場合、当該信号のパルス幅が１００ｎＳｅｃ、１０００ｎＳｅｃ、２０００ｎＳｅｃに増加するにつれて、当該信号が印加された後の抵抗値は徐々に増加している。正極製の電気的信号の電圧値が、比較的小さな１２００ｍＶに固定され、複数回繰り返し印加されると、当該信号が印加された後の抵抗値は徐々に増加する。かかる特性を有する抵抗変化素子１２０の抵抗値は、比較的小さな電圧パルスによって、微調整されうる。すなわち、図６に示されるような特性を有する抵抗変化素子は、３以上の可変抵抗値範囲に制御性よく設定されうる。
【０１３７】
例えば、センスアンプによって読み出された抵抗値が第２閾値よりも大きい場合にディジタルデータの０が出力され、該抵抗値が第２閾値よりも小さい場合にディジタルデータの１が出力される場合を考える。この場合、図６に示されるメモリセル９１に＋１３００ｍＶ以上の正極性のパルスが印加されたとき、ディジタルデータの０が出力される。一方、図６に示されるメモリセル９１に、負極性のパルス、または、＋１２００ｍＶ、１００ｎＳｅｃの正極性パルスが印加されたとき、ディジタルデータの１が出力される。なお、閾値の値と完全に一致する抵抗値を有するセルには、ディジタルデータの１が割り当てられてもよいし、０が割り当てられてもよい。
【０１３８】
例えば、センスアンプによって読み出された抵抗値が第３閾値よりも大きい場合にディジタルデータの０が出力され、該抵抗値が第３閾値よりも小さい場合にディジタルデータの１が出力される場合を考える。この場合、図６に示されるメモリセル９１に、＋１２００ｍＶ以上の正極性のパルスが印加されたとき、ディジタルデータの０が出力される。一方、図６に示されるメモリセル９１に、負極性のパルスが印加されたとき、ディジタルデータの１が出力される。
【０１３９】
このように２種類の閾値に基づいて、ディジタルデータの割り当てが実行されることにより、２種類のデータが作成されうる。また、２つの閾値に基づいて、３値データが出力されてもよい。
【０１４０】
抵抗変化素子の抵抗変化は、第２電極１２８と第１電極１２４とを電気的に接続する導電性パスが抵抗変化層１２６内に発生することによって、発生する。このことは、断面解析によって観察されている。このとき、導電性パスは例えば、直径３０〜１０ｎｍ以下である。導電性パスは、最先端の半導体プロセスにおけるリソグラフィーの加工限界よりも小さい。すなわち、導電性パスは、プロセスのばらつきの影響を受けにくい。そのため、上記で説明された抵抗変化素子は、それが微細化された場合においても、安定した抵抗変化特性を有しうる。
【０１４１】
抵抗変化素子の抵抗変化層は、数百℃を超えるような高温処理がされることなく形成されうる。このため、加熱プロセスによるＣ−ＭＯＳトランジスタの特性の劣化が回避される。抵抗変化素子は、フラッシュメモリなどのフローティングゲート型トランジスタを用いるメモリ素子に比べて、半導体プロセスとの親和性が高い。そのため、製造プロセスの微細化が進んでも、抵抗変化の信頼性が低下するおそれが少ない。そのため、例えば、制御装置等のロジック回路と抵抗変化素子とが同一チップ上に形成される場合であっても、ロジック回路の特性への影響を抑えつつ抵抗変化素子が形成されうる。ロジック回路と抵抗変化素子との作製プロセスが共通化される場合、製造コストが低減されうる。
【０１４２】
［メモリセルの抵抗値がランダムに変動するメカニズム］
メモリセル９１は、抵抗値が少なくとも１つの可変抵抗値範囲内にある場合に時間経過に伴って抵抗値がランダムに変動する性質を有する。言い換えると、メモリセル９１は、そこに属する抵抗値が時間経過に伴ってランダムに変動しうるような可変抵抗値範囲を、少なくとも１つ有する。
【０１４３】
図７は、１つの可変抵抗値範囲内にあるメモリセルから連続して抵抗値を読み出した例を示す。「抵抗値が少なくとも１つの可変抵抗値範囲内にある」とは、メモリセルが１つの抵抗状態にあることをいう。すなわち二値型のメモリセルである場合には、例えば、メモリセルが高抵抗状態にあって低抵抗状態にないことをいう。
【０１４４】
図７の実験に用いられたメモリセルの大きさは約４００ｎｍ×４００ｎｍである。下部電極はＴａＮから構成され、その厚さは約５０ｎｍである。上部電極の材料はイリジウムから構成され、その厚さは約１００ｎｍである。抵抗変化層は第１タンタル含有層と第２タンタル含有層を含む。第１タンタル含有層の厚さは約６５ｎｍであり、第２タンタル含有層の厚さは約５ｎｍである。高抵抗化パルスとして、選択素子と抵抗変化素子とを含めたメモリセルの両端に、電圧が１．８Ｖでパルス幅が５０ｎＳｅｃの電圧パルスが印加された。低抵抗化パルスとして、選択素子と抵抗変化素子とを含めたメモリセルの両端に、−電圧が２．４Ｖでパルス幅が５０ｎＳｅｃの電圧パルスが印加された。読み出しパルスとして、選択素子と抵抗変化素子とを含めたメモリセルの両端に、電圧が０．４Ｖでパルス幅が１００ｎＳｅｃの電圧パルスが印加された。高抵抗化パルスと低抵抗化パルスとが交互に印加されることで、抵抗変化素子が高抵抗状態と低抵抗状態とを可逆的に遷移することが確認された。その後、抵抗変化素子は、高抵抗化パルスが１回だけ印加されて、低抵抗状態から高抵抗状態に遷移した。その後、抵抗変化素子には低抵抗化パルスも高抵抗化パルスも印加されることなかった。抵抗変化素子には読み出しパルスが繰り返し印加され、１０００回、抵抗値情報の読み出しが行われた。読み出しの時間間隔は５μＳｅｃとした。
【０１４５】
図７において、横軸が読み出し回数、縦軸が規格化された抵抗値情報である。図７は、同じ構成を有する３つの抵抗変化素子Ａ、Ｂ、Ｃの抵抗値の揺らぎを示している。ここでいう抵抗値情報とは、後述する読み出し回路で得られるものである。抵抗値情報の値が大きいほど高い抵抗値を示し、値が小さいほど小さい抵抗値を示す。図７は、１つの抵抗状態にある抵抗変化素子の抵抗値情報が繰り返して読み出されたとき、その抵抗値情報がランダムに増減することを示している。図７は、素子Ａ、素子Ｂ、素子Ｃで、抵抗値変動の振幅および周期が大きく異なっていることも示している。
【０１４６】
ここで述べる抵抗値変動または抵抗値揺らぎとは、１つのメモリセルの抵抗値が、抵抗状態を変化させる電気的パルスが印加されていないにも関わらず、時間の経過と共に変動する現象を指す。言い換えると、１つの抵抗状態にある１つのメモリセルの抵抗値が、時間の経過とともに変動する現象を指す。抵抗状態を変化させる電気的パルスの例としては、高抵抗化パルス、および低抵抗化パルスが挙げられる。抵抗状態を変化させない電気的パルスの例としては、読み出しパルスが挙げられる。
【０１４７】
図８Ａ、図８Ｂは、パーコレーションモデル（percolation model）を用いて、フォーミング時における抵抗変化層（例えば局所領域）中のフィラメントの形成をシミュレートした結果の一例を示す。
【０１４８】
パーコレーションモデルとは、抵抗変化層中にランダムに分布した欠陥サイトの密度が増大するにつれて、欠陥サイト等のつながりが形成される確率が増加するという理論に基づくモデルである。ここで「欠陥」とは、例えば、金属酸化物中で酸素が欠損していることを意味し、「欠陥サイトの密度」は、例えば、酸素不足度と相関している。すなわち、酸素不足度が大きくなると、欠陥サイトの密度も大きくなる。
【０１４９】
図８Ａ、図８Ｂに示されるシミュレーションにおいて、抵抗変化層の酸素イオンサイトは、格子状に仕切られた領域（サイト）として近似的に仮定されている。この仮定に基づいて、確率的に発生する欠陥サイトによって形成されるフィラメントがシミュレーションで求められた。図８Ａおよび図８Ｂにおいて、“０”が含まれているサイトは抵抗変化層中に形成される欠陥サイトを表している。他方、空白となっているサイトは酸素イオンが占有しているサイトを表している。酸素イオンにより占有されているサイトは、導電パスのない高抵抗な領域を意味している。また、矢符は、上下、左右及び斜め方向に１個のサイトの範囲内で互いに接続された欠陥サイトの連なりを示している。この欠陥サイトの連なりは、抵抗変化層内に形成されるフィラメントに相当する。すなわち、矢符は、図中の上下方向に電圧が印加された場合に電流が流れるパスを示している。
【０１５０】
図８Ａに示されるように、抵抗変化層の下面と上面との間に電流を流すフィラメントは、ランダムに分布する欠陥サイトのうち、上端から下端までを接続する欠陥サイトのクラスターから構成される。このパーコレーションモデルに基づくと、フィラメントの本数及び形状は確率的に形成されることになる。フィラメントの本数及び形状の分布は、抵抗変化層の抵抗値のばらつきとなる。
【０１５１】
高抵抗化パルスによって酸素イオンがフィラメントに導入されると、当該酸素イオンが欠陥サイトと結合し、これによりフィラメントパスが切断されうる。これにより、抵抗変化層は高抵抗状態へと推移する。逆に、低抵抗化パルスは印加されると、酸素イオンの離脱が起こり、欠陥サイトが生成され、フィラメントパスが形成されうる。これにより、抵抗変化層は低抵抗状態へと推移する。各抵抗状態の間でフィラメントパスの本数に充分な差があれば、抵抗値の差分が大きくなり、抵抗値の判定マージンが増加する。
【０１５２】
次に、図７のように１つの抵抗状態にある１つの抵抗変化素子において、その抵抗値が揺らぐ現象のメカニズムについて説明する。
【０１５３】
各抵抗状態の抵抗値を決定するフィラメントパスの形状、本数および太さは、時間的に安定ではない。つまり、酸素サイトから酸素イオンが抜け出ることによって欠陥サイトが生成されたり、欠陥サイトへ酸素イオンが供給されることによって欠陥サイトが消滅したりすることにより、フィラメントパスの形状、本数および太さが微妙に増減する。これが時間的な抵抗値の揺らぎとして観測される。図８Ｂは、図８Ａに示される状態から、たった一つの欠陥サイトが隣接サイトと入れ替わっただけで、図８Ａにあったフィラメントパスの１つが断絶される例を示している。この場合、抵抗値が僅かに増加することになる。図による説明は省略するが、逆に、欠陥サイトが隣接サイトと入れ替わることにより新たなフィラメントパスが発生することもある。この場合は、僅かに抵抗値が減少する。図７のような抵抗値の揺らぎ現象は、かかるメカニズムにより発生すると考えられる。実際には、図のようなフィラメントパスの数は多数あり、その一部が増減するもののフィラメントパスの総数は大きくは変化しないと考えられる。すなわち、揺らぎ現象において、メモリセルの抵抗状態が別の抵抗状態に変化してしまうほどの大きなフィラメントパスの変化は生じないと考えられる。
【０１５４】
上記メカニズムにより、抵抗値が揺らぐ現象は、酸化物中の酸素イオンの移動により抵抗値が変動するあらゆる抵抗変化素子に当てはまると考えられる。例えば、第１電極と金属酸化物と第２電極とをこの順で積層した素子は、このような性質を有しうる。さらに、例えば、第１電極と遷移金属酸化物と第２電極とをこの順で積層した素子は、このような性質を示しやすい。
【０１５５】
［フォーミングがランダムに完了するメカニズム］
フォーミングストレスの印加によって、抵抗変化層中の酸素等の欠陥サイト等がつながることによりフィラメントが形成される場合を考える。
【０１５６】
フォーミング動作は、抵抗変化層の一部領域において金属酸化物内の欠陥サイトの密度を変化させ、フィラメントを形成する動作に対応する。例えば、電気的ストレスの印加が、初期状態において欠陥サイトが疎であった領域の一部を、欠陥サイトが密な状態に変化させる。それによって、欠陥サイトの連なりであるフィラメントが形成されうる。抵抗変化層が金属酸化物から構成される場合、抵抗変化層内の複数の欠陥サイトは、メモリセル毎にランダムに配置される。例えば、フィラメント形成の障壁となる欠陥サイト間の距離等は、メモリセル毎にランダムにばらついている。このため、仮に各メモリセルに一定の電気的ストレスが印加される場合であっても、フィラメントが形成されるまでに要するストレス量がメモリセル毎にランダムにばらつくと考えられる。その結果、初期状態にある複数のメモリセルに所定の電気的ストレスが印加された場合に、フォーミングが完了するメモリセルがランダムに発生すると考えられる。
【０１５７】
なお、酸素欠陥サイト等がつながることによってフィラメントパスが形成される材料であれば、フォーミングによる初期状態から可変状態への変化は、同様のメカニズムによって説明できると考えられる。そのため、例えば抵抗変化層に含まれる複数の層が、互いに異なる金属の酸化物から構成される場合であっても、同様のメカニズムが推察されうる。よって、初期状態のメモリセルに所定の電気的ストレスを印加した場合に、フォーミングが発生するか否かは、確率的に、すなわちランダムに、決定されうる。
【０１５８】
［抵抗値変動を利用した乱数データの生成方法］
図９は、実施形態の乱数処理方法の一例を示すフローチャートである。以下、図９を参照しつつ、実施形態の乱数処理方法について説明する。
【０１５９】
図９に示されように、まず、ステップＳ１１において、複数の異なる時刻ので、抵抗値が１つの可変抵抗値範囲にあるメモリセル９１から抵抗値情報を取得する。
【０１６０】
次に、ステップＳ１２において、ステップＳ１１で得られた複数の抵抗値情報を用いて乱数データを生成する。
【０１６１】
メモリセル９１の抵抗値は、例えば図７に示されるように、複数の異なる時刻のそれぞれにおいてランダムに変動する。したがって、ステップＳ１１で得られる抵抗値情報も読み出しの度にランダムに変動するため、これを用いて乱数データが生成されうる。例えば、得られた抵抗値情報から決定された０または１を、抵抗値情報が読み出された順に並べることで、乱数データが得られうる。
【０１６２】
乱数データを生成する具体的な方法は特に限定されない。上述の抵抗値変動を利用して乱数データが生成されるものであれば、どのような方法であってもよい。このような物理現象を利用して乱数データが生成されることで、擬似乱数よりも高品質の乱数データが生成されうる。
【０１６３】
２つの異なる時刻にメモリセルから取得された２つの抵抗値情報の差分が求められてもよい。該差分がある範囲（第１範囲）に含まれるか否かが判定されることで、乱数データが生成されてもよい。例えば、差分＞０であれば“１”が出力され、差分≦０であれば“０”が出力されてもよい。
【０１６４】
２つの異なる時刻にメモリセルから取得された２つの抵抗値情報の大小関係が判定されてもよい。該判定結果を用いて乱数データが生成されてもよい。例えば、ある時刻の抵抗値情報が次の時刻の抵抗値情報よりも小さければ“１”が出力され、ある時刻の抵抗値情報が次の時刻の抵抗値情報より大きいか等しければ“０”が出力されてもよい。大小関係は、例えば、２つの抵抗値情報の差を用いて判定されてもよいし、２つの抵抗値情報の比を用いて判定されてもよい。
【０１６５】
［動作モードおよびコマンド］
乱数処理装置１００は、４以上の動作モードを有してもよい。この場合、乱数処理装置１００は、外部から４以上のコマンドから選択される１のコマンドを受領し、該コマンドに基づいて４以上の動作モードのうちの１つを選択的に実行してもよい。
【０１６６】
乱数処理装置１００は、第１書き込みモード、第１読み出しモード、第２書き込みモード、および第２読み出しモードのうち１つを選択的に実行してもよい。第１書き込みモードにおいて、乱数処理装置１００は、例えば、各メモリセル９１が初期状態にあるか可変状態にあるかの違いを利用したデータを書き込む。第１読み出しモードにおいて、乱数処理装置１００は、例えば、各メモリセル９１が初期状態にあるか可変状態にあるかの違いを利用したデータを読み出す。第２書き込みモードにおいて、乱数処理装置１００は、例えば、各メモリセル９１の抵抗値が初期抵抗値範囲にあるか否かの違いを利用せず、各メモリセル９１の抵抗値が少なくとも一つの可変抵抗値範囲にあるか否かの違いを利用したデータを書き込む。第２読み出しモードにおいて、乱数処理装置１００は、例えば、各メモリセル９１の抵抗値が初期抵抗値範囲にあるか否かの違いを利用せず、各メモリセル９１の抵抗値が少なくとも一つの可変抵抗値範囲にあるか否かの違いを利用したデータを読み出す。なお、本開示において、各メモリセル９１が初期状態にあるか可変状態にあるかの違いを利用したデータが、第１種データと呼ばれる場合がある。また、各メモリセル９１の抵抗値が初期抵抗値範囲にあるか否かの違いを利用せず、各メモリセル９１の抵抗値が少なくとも一つの可変抵抗値範囲にあるか否かの違いを利用したデータが、第２種データと呼ばれる場合がある。
【０１６７】
図３に示す例を用いて、４つのモードの具体例について説明する。
【０１６８】
特殊書き込みモードにおいて、制御装置９３は、入力データ“１”に対応して選択されるメモリセル９１にフォーミングストレスを印加させ、入力データ“０”に対応して選択されるメモリセル９１に電気的ストレスを印加させない。特殊書き込みモードは、第１書き込みモードの一例である。乱数処理装置１００の外部から入力され、特殊書き込みモードの実行を指示するコマンドは、特殊書き込みコマンドと呼ばれる。特殊書き込みコマンドは、第１書き込みコマンドの一例である。
【０１６９】
特殊読み出しモードにおいて、制御装置９３は、第１閾値を用いた判定により、メモリセル９１のデータを読み出させる。特殊読み出しモードは、第１読み出しモードの一例である。乱数処理装置１００の外部から入力され、特殊読み出しモードの実行を指示するコマンドは、特殊読み出しコマンドと呼ばれる。特殊読み出しコマンドは、第１読み出しコマンドの一例である。
【０１７０】
通常書き込みモードにおいて、制御装置９３は、入力データ“１”に対応して選択されるメモリセル９１に低抵抗化パルスを印加させ、入力データ“０”に対応じて選択されるメモリセル９１に高抵抗化パルスを印加させる。通常書き込みモードは、第２書き込みモードの一例である。乱数処理装置１００の外部から入力され、通常書き込みモードの実行を指示するコマンドは、通常書き込みコマンドと呼ばれる。通常書き込みコマンドは、第２書き込みコマンドの一例である。
【０１７１】
通常読み出しモードにおいて、制御装置９３は、第２閾値を用いた判定により、メモリセル９１のデータを読み出させる。通常読み出しモードは、第２読み出しモードの一例である。乱数処理装置１００の外部から入力され、通常読み出しモードの実行を指示するコマンドは、通常読み出しコマンドと呼ばれる。通常読み出しコマンドは、第２読み出しコマンドの一例である。
【０１７２】
［データへのアクセス制限の具体例］
かかる構成において、例えば、通常書き込みコマンドおよび通常読み出しコマンドは、乱数処理装置１００のマニュアルなどで広く公開されてもよい。一方、特殊書き込みコマンドおよび特殊読み出しコマンドは、乱数処理装置１００の製造者のみが保有する、すなわち秘匿されてもよい。
【０１７３】
乱数処理装置１００の製造者は、特殊書き込みコマンドを用いて、メモリセルアレイ９０の特定領域にパスワードを書き込んでおいてもよい。特定のユーザが乱数処理装置１００の外部からパスワードを入力したときに、例えば、乱数処理装置１００の制御装置９３は、受け取ったパスワードと、特殊読み出しモードで特定領域から読み出したパスワードとを照合してもよい。制御装置９３は、両者のパスワードが一致した場合にのみ通常書き込みモードでの書き込みおよび通常読み出しモードでの読み出しを許可してもよい。
【０１７４】
かかる構成を用いれば、乱数処理装置１００は、例えば、通常書き込みモードで、メモリセルアレイ９０内の所定の領域に有料コンテンツデータを記録しておき、特殊書き込みモードで、メモリセルアレイ９０内の他の領域に装置のＩＤ情報およびコンテンツ毎のシリアル情報等を記録しておくことができる。これにより、例えば、装置のＩＤ情報およびコンテンツ毎のシリアル情報等を予め知らされた特別な利用者のみが、メモリセルアレイ９０に記録された有料コンテンツにアクセスできる。このとき、特殊書き込みコマンドを知らない権限のない第三者は、特殊書き込みモードで書き込まれたデータを書き換えることができず、パスワード未設定状態を作り出すことが困難になる。
【０１７５】
乱数処理装置１００は、樹脂等により封止されてもよい。これにより、例えば、乱数処理装置１００の内部配線にプローブをあてることが困難となり、電気抵抗の測定による分析が困難となる。すなわち、例えば、利用者がＩＤ情報と特殊読み出しコマンドに相当するコマンドを漏洩しない限り、内部データは不正にアクセスされない。
【０１７６】
従来技術のフラッシュメモリが多値メモリとして用いられる場合、微細化が進むに従って、データ記録の信頼性が低下するおそれがある。一方、暗号化や認証に用いられるパラメータのデータの記録には、極めて高い信頼性が求められる。
【０１７７】
これに対して、抵抗変化素子を含むメモリセルを備える乱数処理装置１００は、微細化が進行した場合であっても、高い信頼性が保持されうる。特に、抵抗変化層がフィラメントを含む微小な局所領域を有する場合、上述の通り、微細化の影響を受けにくい。そのため、例えば暗号化または認証に用いられるパラメータのデータ等が、高い信頼性で記憶されうる。
【０１７８】
暗号化および認証のいずれか少なくとも一方を実行する暗号／認証処理部が、乱数処理装置１００と同一チップ上に形成されていてもよい。これにより、例えば、暗号／認証処理部と乱数処理装置１００との間で、暗号化パラメータ等のデータが送受信される場合であっても、インタフェース上で信号波形を盗み読みされるリスクが低減されうる。これにより、暗号化パラメータ等が漏洩するリスクが低減されうる。抵抗変化素子の抵抗状態を物理解析によって判別することは、ほぼ不可能であるため、物理的に暗号化パラメータ等が盗まれるリスクはほとんどない。
【０１７９】
従来技術のフラッシュメモリと制御装置とが混載される場合、両者の製造プロセスを共通化することは困難である。また、フラッシュメモリの製造における高温熱処理が、ロジック回路に悪影響を与えるおそれがあった。
【０１８０】
これに対して、抵抗変化素子を含むメモリセルを備える乱数処理装置１００は、製造工程に高温熱処理を必要とせず、Ｃ−ＭＯＳプロセスの半導体特性に悪影響を与えにくい。そのため、乱数処理装置１００とロジック回路との混載回路が、それらの特性を損なうことなく、あるいは、製造プロセスのコスト高を招くことなく、製造されうる。
【０１８１】
上記の例では、４つの動作モード、および、それらを指示する４つコマンドについて説明した。しかし、動作モードおよびコマンドの数と組合せはこれに限定されない。例えば、図６のように可変状態のメモリセルの抵抗値に７段階の抵抗値範囲が設定されうる場合、可変状態の抵抗値および初期状態の抵抗値を合わせて最大で８段階の抵抗値範囲が設定されうる。そのため、例えば、特殊書き込みモードで３値データの書き込みが行われ、通常書き込みモードで４値データの書き込みが行われてもよい。書き込みに用いられる抵抗値範囲の組合せは、利用システムに応じて適宜に選択されうる。
【０１８２】
［フォーミングストレス印加による可変状態への変化のランダム性］
初期状態にある素子の抵抗値を初期抵抗値範囲から所定の可変抵抗値範囲へと変化させる行為は、フォーミング(forming)と呼ばれる。例えば、高抵抗化パルスの電圧をＶH、高抵抗化パルスのパルス幅をＴＰHとし、低抵抗化パルスの電圧をＶL、低抵抗化パルスのパルス幅ＴＰLとし、フォーミングストレスの電圧をＶF、フォーミングストレスのパルス幅をＴＰFとするとき、ＶH、ＶL、ＶF、ＴＰH、ＴＰL、およびＴＰFは、下記の条件１および条件２の少なくともいずれか一方を満たしてもよい。
条件１：｜ＶF｜＞｜ＶH｜および｜ＶF｜＞｜ＶL｜
条件２：ＴＰF＞ＴＰHおよびＴＰF＞ＴＰL
このとき、通常書き込みモードでの書き込み条件では、フォーミングは実行されない。
【０１８３】
フォーミングストレスは、条件２を満たす複数の電気的ストレスであってもよい。複数の電気的ストレスは、同じ電圧を有していてもよい。あるいは、電気的ストレスの印加が繰り返される過程において、電圧および／またはパルス幅が段階的に増大されてもよい。
【０１８４】
仮に、メモリセルアレイ内にある初期状態の全メモリセルを可変状態に変化させるために、１つのメモリセルあたり、規格化された累積印加時間が１００００単位である電気的ストレスの印加が必要な場合を考える。このとき、例えば、１５０単位の電気的ストレスを印加した段階で電気的ストレスの印加を中止すると、全てのメモリセルが可変状態に変化することはない。しかしながら、実験の結果、この場合において、初期状態から可変状態へと変化するメモリセルがメモリセルアレイ内にランダムに発生しうることが判明した。
【０１８５】
すなわち、メモリセルアレイに初期状態から可変状態に変化させるような電気的ストレスが印加されたときに、初期状態から可変状態に変化するメモリセルと、初期状態のまま維持されるメモリセルとがランダムに発生しうる。
【０１８６】
図１０は、規格化された累積印加時間と、可変状態へ変化したメモリセルの数についての標準正規分布の偏差との関係の一例を示す。図１０に示される素子の構成は、図３に示される例で用いられたものと同等である。フォーミングストレスは、電圧が３．５Ｖ、最短のパルス幅が１０μＳｅｃの複数の電気的ストレスを含む。メモリセルの個数は２５６キロビットである。なお、図１０の累積印加時間は、最短パルス幅に基づく所定の係数で規格化された時間である。
【０１８７】
図１０に示されるように、フォーミングが完了した累積ビット数の正規分布は、累積印加時間に対してほぼ直線に分布している。このことは、初期状態から可変状態への変化が、極めてランダムに発生することを示している。このランダム性は、例えば、乱数処理装置ごとのユニークかつランダムなＩＤ情報を作成するために用いられうる。
【０１８８】
図１０において、規格化累積印加時間が約１５０（１．５×１０2）に達した時点で電気的ストレスの印加が停止されると、可変状態に変化したメモリセルと、可変状態に変化しなかったメモリセルとが、ほぼ半数ずつとなる。可変状態に変化するメモリセルのロケーションはランダムである。そのため、例えば、特殊書き込みモードが実行されると、メモリセルアレイにおける一部のメモリセルがランダムに選択され、初期状態から可変状態へと変化する。言い換えると、特殊書き込みモードにおいて、ランダムなデータが生成され、メモリセルアレイに記録される。このランダムなデータは、装置ごとに固有のデータである。
【０１８９】
このようなランダム性および固有性が発生する理由として、抵抗変化素子のプロセスばらつきや形状ばらつき以外に、例えば、導電パスが確率的に形成されることが考えられる。上述のとおり、金属酸化物中の欠陥サイトはメモリセル毎にランダムに配置されており、フォーミングでこれらの欠陥サイト間がつながることにより、フィラメントが形成される。そのため、仮に初期状態にある複数のメモリセルに一定の電気的ストレスが印加された場合であっても、フォーミングが完了するメモリセルは、統計的に（例えば標準正規分布様に）ばらついて発生すると考えられる。そのため、仮に特殊書き込みモードで複数のメモリセルに対して一様なストレスが印加される場合であっても、フィラメントが形成される素子と形成されない素子とが確率的に発生しうる。その確率は、電気的ストレスによって適宜調整されうる。なお、酸素欠陥サイト等がつながることによってフィラメントパスが形成される材料であれば、同様のメカニズムによって、ランダムなデータが生成されると推察される。
【０１９０】
従来技術において、擬似乱数は所定の関数を用いて生成される。しかしながら、関数および入力される初期値が同じであれば、演算回数に応じて同じ値が出力されてしまう。そのため、装置内で生成されるランダム値が予測されてしまうおそれがあった。
【０１９１】
メモリセルアレイにおける初期状態から可変状態への変化のランダム性は、予測不可能な乱数データの生成を実現する。特殊書き込みモードで生成された乱数データは、上述した乱数を得るための関数に入力される初期値として用いられてもよい。これにより、さらにランダム性が向上しうる。
【０１９２】
例えば、特殊書き込みモードで、乱数データがＩＤ情報およびシリアル情報として書き込まれてもよい。これにより、予測不可能な態様でＩＤ情報およびシリアル情報が生成され、記録されうる。特殊書き込みモードで書き込まれたＩＤ情報およびシリアル情報は、特殊読み出しモードで読み出されうる。したがって、例えば、特殊読み出しモードを実行する権限のあるユーザのみが、コンテンツを利用できる。
【０１９３】
本実施形態において、抵抗値変動を利用した乱数処理方法と、フォーミングストレス印加を利用した乱数処理方法とが組み合わせて利用されてもよい。
【０１９４】
［NIST SP800-22 統計的な乱数検定法について］
ここで、乱数を評価する検定方法の一例について説明する。アメリカ国立標準技術研究所(NIST: National Institute of Standard Technology)が定めるSP800-22（『A Statistical Test Suite for Random and Pseudorandom Number Generators for Cryptographic Applications』 NIST, Special Publication 800-22 Revision1, Aug. 2008）は、任意のビット数を有するストリームデータのランダム性を評価する統計的な暗号用乱数検定法である。SP800-22は、１５種類の検定法から構成される。そのうち１Ｍｂｉｔ未満のストリームデータについては、SP800-22のうち、以下の９種類の検定法が適用されうる。
１）1次元度数検定（frequency test）
２）ブロック単位の等頻度検定（frequency test within a block）
３）連検定（runs test）
４）ブロック単位の最長連検定（test for longest run of ones in a block）
５）２値行列ランク検定（binary matrix rank test）
６）離散フーリエ変換検定（discrete Fourier transform test）
１１）系列検定（serial test）
１２）近似エントロピー検定（approximate entropy test）
１３）累積和検定（cumulative sums (cusums) test ）
【０１９５】
表１は具体的な評価概要を示す。各検定項目で算出される値（ｐ−Ｖａｌｕｅ）が０．０１以上であるとき、その検定に合格したとみなされる。本実施形態の方式により生成される乱数データのランダム性は、この検定法でテストされうる。この検定に合格した高品位の乱数データは、例えば暗号用に用いられうる。
【０１９６】
【表１】
0006674616.tif 000002
【０１９７】
［抵抗値変動を利用して乱数データを生成するときの課題］
図１１は、１つの可変抵抗値範囲にあるメモリセルから、連続して抵抗値が読み出された例を示す。図１１は、図７の素子Ａのグラフに相当する。以下、抵抗変化素子の抵抗値変動から乱数データが生成されるときの課題について、図１１を用いて説明する。
【０１９８】
物理的なランダム変動から乱数を生成するための最も単純な方法は次のようなものである。まず、ランダムに変動する値が取得される。次に、その値が所定の閾値と比較される。最後に、その比較結果に応じて０または１が割り当てられ、乱数が生成される。しかし、図１１に示されるように、抵抗値情報が読み出し回数に応じて大きく変動する場合、適切な乱数が生成されない。例えば、１つの閾値に基づいて０または１が割り当てられると、０ばかりとなる領域や、１ばかりとなる領域が発生してしまう。これに対して、例えば、所定の読み出し回数ごとに、０の数と１の数がほぼ半数になるような閾値（図１１中の破線）を設定し直す方法が考えられる。
【０１９９】
しかし、かかる方法でも、例えば図７の素子Ｂのように抵抗値が大きく変動する場合には、該変動の前後で、０または１の大きな偏りが発生してしまう。表２は、この方法により生成された乱数データが、前述した検定法に基づき評価された結果を示している。
【０２００】
【表２】
0006674616.tif 000003
【０２０１】
表２から分かるように、多くの検定項目が不合格（Ｆａｉｌ）となっている。このことは、所定の読み出し回数毎に閾値を設定する方法であっても、暗号に利用可能な高品位の乱数が生成できない場合があることを示している。そこで、本発明者らは、抵抗変化素子の抵抗値変動から高品位な乱数データを生成する方法を検討した。以下に説明される実施例は、その一例である。
【０２０２】
本実施の形態による乱数処理方法は、複数の抵抗値情報を用いて長さｍの固定長のデータである第１のディジタルデータを生成するステップと、第１のディジタルデータに含まれるビットを互いに異なる組合せで反転させることで複数の新たなディジタルデータを生成するステップと、第１のディジタルデータおよび複数の新たなディジタルデータのうち、出現頻度の最も低いものを選択して第２のディジタルデータとするステップと、第２のディジタルデータを用いて乱数データを生成するステップと、第２のディジタルデータの出現頻度に１を加えるステップと、を含む。
【０２０３】
＜メモリセルアレイおよび読み出し回路＞
本実施の形態における乱数データ生成のアルゴリズムおよび回路方式を説明する前に、メモリセルアレイ及び抵抗値情報の読み出し回路の具体例について説明する。
【０２０４】
図１２は、本実施の形態にかかる乱数処理装置の概略構成の一例を示すブロック図である。なお、図１２はあくまで一例であり、本実施形態の乱数処理装置の構成は、これに限定されない。
【０２０５】
図１２に示されるように、本実施の形態による乱数処理装置０２０は、半導体基板上に、メモリ本体部００１を備えている。メモリ本体部００１は、メモリセルアレイ０２１と、行選択回路００３と、列選択回路００４と、を具備している。
【０２０６】
メモリセルアレイ０２１は、半導体基板の上の第１平面内において第１方向に互いに平行に延びる複数の第１配線ＷＬ０，ＷＬ１，ＷＬ２，…と、第１平面と平行な第２平面内において第２方向に互いに平行に延び、かつ第１配線と立体交差する複数の第２配線ＢＬ０，ＢＬ１，ＢＬ２，…と、これらの第１配線ＷＬ０，ＷＬ１，ＷＬ２，…および第２配線ＢＬ０，ＢＬ１，ＢＬ２，…の立体交差点のそれぞれに設けられたメモリセルＭ２１１，Ｍ２１２，Ｍ２１３，Ｍ２２１，Ｍ２２２，Ｍ２２３，Ｍ２３１，Ｍ２３２，Ｍ２３３，…とを備える。説明の簡便のため、以下では、第１配線はワード線と呼ばれ、第２配線はビット線と呼ばれる。メモリセルＭ２１１，Ｍ２１２，Ｍ２１３，Ｍ２２１，Ｍ２２２，Ｍ２２３，Ｍ２３１，Ｍ２３２，Ｍ２３３は、以下、「メモリセルＭ２１１，Ｍ２１２，…」と表される場合がある。
【０２０７】
メモリセルＭ２１１，Ｍ２１２，…は、抵抗変化素子Ｒ１１，Ｒ１２，Ｒ１３，Ｒ２１，Ｒ２２，Ｒ２３，Ｒ３１，Ｒ３２，Ｒ３３，…をそれぞれ備える。抵抗変化素子Ｒ１１，Ｒ１２，Ｒ１３，Ｒ２１，Ｒ２２，Ｒ２３，Ｒ３１，Ｒ３２，Ｒ３３，…は、以下。「抵抗変化素子Ｒ１１，Ｒ１２，…」と表される場合がある。抵抗変化素子Ｒ１１，Ｒ１２，…は、例えば、図２に示される構成を有する。メモリセルＭ２１１，Ｍ２１２，…は、トランジスタＴ１１，Ｔ１２，Ｔ１３，Ｔ２１，Ｔ２２，Ｔ２３，Ｔ３１，Ｔ３２，Ｔ３３，…をそれぞれ備える。トランジスタのＴ１１，Ｔ１２，Ｔ１３，Ｔ２１，Ｔ２２，Ｔ２３，Ｔ３１，Ｔ３２，Ｔ３３，…は、以下、「トランジスタＴ１１，Ｔ１２，…」と表される場合がある。ワード線ＷＬ０，ＷＬ１，ＷＬ２，…は、トランジスタＴ１１，Ｔ１２，…の制御端子（例えばゲート）にそれぞれ接続される。ビット線ＢＬ０，ＢＬ１，ＢＬ２，…は、抵抗変化素子Ｒ１１，Ｒ１２，…の一方の端子にそれぞれ接続されている。抵抗変化素子Ｒ１１，Ｒ１２，…の他方の端子は、トランジスタＴ１１，Ｔ１２，…の第１主端子にそれぞれ接続されている。
【０２０８】
抵抗変化素子Ｒ１１，Ｒ１２，…は、それぞれ、メモリセルＭ２１１，Ｍ２１２，…の中で、不揮発性記憶素子として動作する。図１２に示される例メモリセルは、１個のトランジスタと１個の抵抗変化素子から構成されている。言い換えると、図１２に示される乱数処理装置は、いわゆる１Ｔ１Ｒ型の記憶装置を備える。
【０２０９】
メモリセルアレイ０２１は、ワード線ＷＬ０，ＷＬ１，ＷＬ２，…に平行して配列されている複数のプレート線ＰＬ０，ＰＬ１，ＰＬ２，…を備えている。プレート線ＰＬ０，ＰＬ１，ＰＬ２，…は、トランジスタＴ１１，Ｔ１２，…の第２主端子にそれぞれ接続されている。トランジスタＴ１１，Ｔ１２，…において、第１主端子と第２主端子とのいずれがソースとなりいずれがドレインとなるかは、特に限定されず、具体的な動作に応じて適宜に設定されうる。それらは、例えば、トランジスタを流れる電流の方向、主要キャリアの電荷の正負等によって決定される。
【０２１０】
抵抗変化素子Ｒ１１，Ｒ１２，…は、上述したものと同様の構成とすることができる。そのため、抵抗変化素子Ｒ１１，Ｒ１２，…の詳細な説明は省略される。
【０２１１】
図１２に示される例において、トランジスタＴ１１，Ｔ１２，Ｔ１３，…はｎチャネル型ＭＯＳトランジスタである。これらは選択トランジスタとして機能する。トランジスタＴ１１，Ｔ１２，Ｔ１３，…の第１主端子は、それぞれ、抵抗変化素子Ｒ１１，Ｒ１２，Ｒ１３，…を介して、ビット線ＢＬ０に接続される。トランジスタＴ２１，Ｔ２２，Ｔ２３，…の第１主端子は、それぞれ、抵抗変化素子Ｒ２１，Ｒ２２，Ｒ２３，…を介して、ビット線ＢＬ１に接続される。トランジスタＴ３１，Ｔ３２，Ｔ３３，…の第１主端子は抵抗変化素子Ｒ３１，Ｒ３２，Ｒ３３，…を介して、ビット線ＢＬ２に接続されている。
【０２１２】
トランジスタＴ１１，Ｔ２１，Ｔ３１，…のゲートはワード線ＷＬ０に接続されている。トランジスタＴ１２，Ｔ２２，Ｔ３２，…のゲートはワード線ＷＬ１に接続されている。トランジスタＴ１３，Ｔ２３，Ｔ３３，…のゲートはワード線ＷＬ２に接続されている。
【０２１３】
トランジスタＴ１１，Ｔ２１，Ｔ３１，…の第２主端子はプレート線ＰＬ０に接続されている。トランジスタＴ１２，Ｔ２２，Ｔ３２，…の第２主端子はプレート線ＰＬ１に接続されている。トランジスタＴ１３，Ｔ２３，Ｔ３３，…の第２主端子はプレート線ＰＬ２に接続されている。
【０２１４】
図１２においてプレート線が各行で一本につながったように図示されているが、プレート線は複数のブロックに分かれていてもよい。
【０２１５】
乱数処理装置０２０は、さらに、制御装置を備える。制御装置は、書き込み回路０１１と、センスアンプ０１２と、乱数生成回路０３８と、切替え回路０３７と、電源制御回路００８と、論理制御回路０１０と、コマンドレジスタ０３３と、ステータスレジスタ０３４と、特殊コマンドレジスタ０３５と、入出力制御回路００７と、アドレスレジスタ００９と、Ｃａｓｈｅレジスタ０３１と、特殊データレジスタ０３２と、データレジスタ０３０と、を備えている。
【０２１６】
書き込み回路０１１は、行選択回路００３および列選択回路００４によって選択された１個以上のメモリセルに情報の書き込みを行う。行選択回路００３は、例えば、ゲートドライバを備える。書き込み回路０１１は、例えば、通常書き込みモード、特殊書き込みモード、および揺らぎ書き込みモードを選択的に実行しうる。書き込み回路０１１は、例えば、各モードを実行する回路を個別に備えてもよい。
【０２１７】
センスアンプ０１２は、選択されたメモリセルの抵抗値を検出し、抵抗値情報を出力する、および／または、２値以上の値（例えば、データ“１”および“０”）を判定する。センスアンプ０１２は、例えば、通常読み出しモード、特殊読み出しモード、および揺らぎ読み出しモードを選択的に実行しうる。センスアンプ０１２は、各モードを実行する回路を個別に備えてもよい。
【０２１８】
乱数生成回路０３８は、センスアンプ０１２からの抵抗値情報を基に乱数データを生成する。
【０２１９】
切替え回路０３７は、書き込み動作、読み出し動作、乱数生成動作に応じて、各回路の接続を切り替える。書き込み動作の場合、切替え回路０３７は、列選択回路００４が選択したメモリセルを書き込み回路０１１に接続させる。これにより、データレジスタ０３０の出力値が書き込み回路０１１に出力される。読み出し動作の場合、切替え回路０３７は、列選択回路が選択したメモリセルをセンスアンプ０１２に接続させる。これにより、センスアンプ０１２の出力データがデータレジスタ０３０に出力される。乱数生成動作の場合、切替え回路０３７は、乱数生成回路０３８の出力した乱数データをデータレジスタ０３０に出力する。
【０２２０】
電源制御回路００８は、メモリセルにデータを書き込むために必要な複数の電源電圧を生成する。
【０２２１】
論理制御回路０１０は、外部から入力された制御信号に応じて、入出力制御回路００７を動作させる。また、論理制御回路０１０は、特殊コマンドレジスタ０３５およびコマンドレジスタ０３３に記憶されている制御コマンドに基づいて、乱数処理装置０２０の動作を制御する。
【０２２２】
入出力制御回路００７は、論理制御回路０１０からの指示に従って、入出力データバスを通じて入力データを取得する。入出力制御回路００７は、当該入力データから制御コマンドおよびアドレス情報を抽出する。入出力制御回路００７は、制御コマンドを特殊コマンドレジスタ０３５またはコマンドレジスタ０３３に保持させ、アドレス情報をアドレスレジスタに保持させる。入出力制御回路００７は、通常読み出しモードまたは特殊読み出しモードにおいて、ステータスレジスタ０３４およびＣａｓｈｅレジスタ０３１等に保持されたデータ等を外部に出力してもよい。
【０２２３】
例えば、論理制御回路０１０は、外部から入力された制御信号に基づいて、コマンド入力のタイミングを決定する。入出力制御回路００７は、このタイミングに基づいて、入力データを取得する。この入力データはコマンドパターンを含む。入出力制御回路００７は、コマンドパターンから、制御コマンドと、アドレス情報を抽出する。制御コマンドの例としては、通常書き込みコマンド、特殊書き込みコマンド、揺らぎ書き込みコマンド、通常読み出しコマンド、特殊読み出しコマンド、及び、揺らぎ読み出しコマンド等が挙げられる。揺らぎ書き込みコマンドとは、例えば、高抵抗状態及び低抵抗状態の間の中間的な抵抗状態に遷移させる書き込みであってもよい。通常書き込みコマンド、特殊書き込みコマンド、揺らぎ書き込みコマンドは、何れも異なるコマンドパターンである。特殊読み出しコマンドと、通常読み出しコマンドと、揺らぎ読み出しコマンドとは、何れも異なるコマンドパターンである。特殊書き込みコマンド、揺らぎ書き込みコマンド、特殊読み出しコマンド、および揺らぎ読み出しコマンドは、一般の利用者には公開されないコマンドであってもよい。
【０２２４】
コマンドレジスタ０３３は、制御コマンドを一時的に記憶する。コマンドレジスタ０３３は、例えば、通常書き込みコマンドまたは通常読み出しコマンドを記憶する。これらのコマンドに応じて、各種モードが選択される。制御コマンドは、外部から論理制御回路０１０に入力される制御信号と、外部から入出力制御回路００７に入力される入力データに基づいて生成される。
【０２２５】
ステータスレジスタ０３４は、メモリ装置の内部状態を装置外に知らせるためのステータス情報を一時記憶する。
【０２２６】
特殊コマンドレジスタ０３５は、例えば、特殊書き込みコマンド、揺らぎ書き込みコマンド、特殊読み出しコマンド、および揺らぎ読み出しコマンドを一時的に記憶する。これらのコマンドに応じて、各種モードが選択される。これらの制御コマンドのそれぞれは、外部から論理制御回路０１０に入力される制御信号と、外部から入出力制御回路００７に入力される入力データに基づいて生成される。
【０２２７】
アドレスレジスタ００９は、アドレス信号を保持する。アドレス信号は、複数のメモリセルＭ２１１，Ｍ２１２，…のうち、選択すべきメモリセルのアドレスを示す信号である。アドレスレジスタ００９は、当該アドレス信号に基づいて、行アドレス信号を行選択回路００３へ出力し、かつ、列アドレス信号を列選択回路００４へ出力する。
【０２２８】
行アドレス信号は、アドレス信号に示されたアドレスのうち、行のアドレスを示す信号である。列アドレス信号は、アドレス信号に示されたアドレスのうち、列のアドレスを示す信号である。図１２に示される例において、列アドレスに対応する１つのビットラインが列選択回路００４により選択され、行アドレスに対応する１つのワードラインが行選択回路により選択される。以下では、メモリセルアレイ内の複数のメモリセルの中から、単一のメモリセルが選択される例について説明する。なお、アドレスの選択はこれに限定されない。例えば、ＷＬ０が選択されたときに、ＢＬ０とＢＬ１とが同時に選択されてもよい。この場合、２個のメモリセルＭ２１１，Ｍ２２１が同時に選択される。書き込み回路０１１は、複数のメモリセルを同時に書き込んでもよい。センスアンプ０１２は、複数のメモリセルを同時に読み出してもよい。
【０２２９】
Ｃａｓｈｅレジスタ０３１は、例えば、入出力制御回路００７からの指示に応じて、メモリセルに書き込まれるべきデータを一時的に保持する。当該データは、例えば、通常書き込みモード、特殊書き込みモード、または揺らぎ書き込みモードが選択された場合に記憶される。なお、特殊書き込みモードにおいて当該データが固定である場合、当該データはＲＯＭに記憶されていてもよい。
【０２３０】
特殊データレジスタ０３２は、例えば、特殊読み出しモードまたは揺らぎ読み出しモードにおいて、センスアンプ０１２によって読み出されたデータを、一時的に記憶する。例えば、読み出しが複数回繰り返される場合には、各読み出しサイクルで読み出されるデータが、センスアンプ０１２から、データレジスタ０３０を介して、特殊データレジスタ０３２に順次受け渡される。
【０２３１】
乱数生成回路０３８は、揺らぎ読み出しモードにおいて読み出された抵抗値情報を基に、乱数データを生成する。
【０２３２】
データレジスタ０３０は、例えば、通常書き込みモード、特殊書き込みモード、または、揺らぎ書き込みモードの際に、Ｃａｓｈｅレジスタ０３１からデータを取得し、一時的に記憶する。データの取得および記憶は、書き込みサイクル毎に順次行われてもよい。
【０２３３】
図１２において、電源制御回路００８と、論理制御回路０１０と入出力制御回路００７と、コマンドレジスタ０３３と、ステータスレジスタ０３４と、特殊コマンドレジスタ０３５とを含む回路群は、制御回路群０１３と呼ばれる。制御回路群０１３は、メモリ本体部００１と同一チップ上に形成されていてもよい。これにより、制御回路群０１３とメモリ本体部００１との間の情報の送受信を盗み読みされるリスクが低減されうる。
【０２３４】
論理制御回路０１０は、通常書き込みモード、特殊書き込みモード、及び揺らぎ書き込みモードにおいて、切替え回路０３７を書き込み回路０１１に接続させる。Ｃａｓｈｅレジスタ０３１は、メモリセルに書き込まれるべきデータを蓄えている。入出力制御回路００７は、論理制御回路０１０の指示に基づいて、Ｃａｓｈｅレジスタ０３１からデータを取り出し、これをデータレジスタ０３０へ送り出す。書き込み回路０１１は、論理制御回路０１０からの指示により、データレジスタ０３０にあるデータを、所定の条件で、選択されたメモリセルに書き込む。これらの動作が、書き込みサイクル毎に、順次実行される。
【０２３５】
論理制御回路０１０は、通常読み出しモード、特殊読み出しモード、揺らぎ読み出しモードにおいて、切替え回路０３７をセンスアンプ０１２、および／または、乱数生成回路０３８に接続させる。センスアンプ０１２は、論理制御回路０１０からの指示により、各読み出しサイクルにおいて、選択されたメモリセルから、所定の条件で抵抗値情報を読み出す。センスアンプ０１２は、通常読み出しモードおよび特殊読み出しモードにおいて、抵抗値情報を所定の条件で判定することによってディジタルデータを生成し、これをデータレジスタ０３０に送る。あるいは、センスアンプ０１２は、揺らぎ読み出しモードにおいて、抵抗値情報を乱数生成回路０３８に送る。この場合、乱数生成回路０３８が、抵抗値情報に基づいて乱数データを生成し、これをデータレジスタ０３０に送る。データレジスタ０３０は、センスアンプ０１２から取得したディジタルデータ、または、乱数生成回路０３８から取得した乱数データを一時的に記憶する。Ｃａｓｈｅレジスタ０３１は、論理制御回路０１０からの指示により、データレジスタ０３０に記憶されているデータを取得し、これを蓄える。これらの動作が読み出しサイクル毎に、順次実行される。入出力制御回路００７は、論理制御回路０１０からの指示により、Ｃａｓｈｅレジスタ０３１に記憶されているデータを、乱数処理装置０２０の外部に出力する。
【０２３６】
入出力制御回路００７は、通常書き込みコマンドを取得すると、これをコマンドレジスタ０３３に保持させる。入出力制御回路００７は、書き込みアドレスを取得すると、これをアドレスレジスタ００９に保持させる。書き込み回路０１１は、論理制御回路０１０からの指示によって駆動する。書き込み回路０１１は、各レジスタの設定を元に、電気的信号を各メモリセルに印加する。これにより、所定のデータがメモリセルアレイに書き込まれる。
【０２３７】
入出力制御回路００７は、通常読み出しコマンドを取得すると、これをコマンドレジスタ０３３に保持させる。入出力制御回路００７は、読み出しアドレスを取得すると、これをアドレスレジスタ００９に保持させる。センスアンプ０１２は、論理制御回路０１０からの指示によって駆動する。センスアンプ０１２は、各レジスタの設定を元に、メモリセルアレイから所定のデータを読み出す。このデータは、データレジスタ０３０を介して、Ｃａｓｈｅレジスタ０３１に蓄えられる。所定の量のデータがＣａｓｈｅレジスタ０３１に蓄えられると、入出力制御回路００７は、そのデータを取得し、外部へと順次出力する。なお、Ｃａｓｈｅレジスタ０３１は省略されてもよい。
【０２３８】
論理制御回路０１０は、乱数処理装置０２０の内部状態を確認するためのコマンドを受け付けた場合、内部状態を調査し、内部状態を示すコードをステータスレジスタ０３４に保持させる。次いで、入出力制御回路００７が、ステータスレジスタ０３４に保持されたステータスコードを外部へと出力する。
【０２３９】
特殊書き込みコマンド、揺らぎ書き込みコマンド、特殊読み出しコマンド、および揺らぎ読み出しコマンドは、通常コマンドではアクセスできないような、特定のアドレス領域へのアクセスを許可するものであってもよい。これらのコマンドは、通常コマンドでは設定できないような、書き込み条件、または、読み出し条件等を設定するものであってもよい。
【０２４０】
入出力制御回路００７は、特殊書き込みコマンドを取得すると、これを特殊コマンドレジスタ０３５に保持させる。入出力制御回路００７は、書き込みアドレスを取得すると、これをアドレスレジスタ００９に保持させる。この書き込みアドレスは、例えば、通常書き込みモードではアクセスできないアドレスであってもよい。書き込み回路０１１は、論理制御回路０１０からの指示によって駆動する。書き込み回路０１１は、各レジスタの設定を元に、フォーミングストレスを各メモリセルに印加する。これにより、所定のデータがメモリセルアレイに書き込まれる。
【０２４１】
入出力制御回路００７は、特殊読み出しコマンドを取得すると、これを特殊コマンドレジスタ０３５に保持させる。入出力制御回路００７は、読み出しアドレスを取得すると、これをアドレスレジスタ００９に保持させる。この読み出しアドレスは、例えば、通常読み出しモードではアクセスできないアドレスであってもよい。センスアンプ０１２は、論理制御回路０１０からの指示によって駆動する。センスアンプ０１２は、各レジスタの設定を元に、メモリセルアレイから所定のデータを読み出す。このデータは、データレジスタ０３０を介して、Ｃａｓｈｅレジスタ０３１に蓄えられる。所定の量のデータがＣａｓｈｅレジスタ０３１に蓄えられると、入出力制御回路００７は、そのデータを取得し、外部へと順次出力する。
【０２４２】
入出力制御回路００７は、揺らぎ書き込みコマンドを取得すると、これを特殊コマンドレジスタ０３５に保持させる。入出力制御回路００７は、書き込みアドレスを取得すると、これをアドレスレジスタ００９に保持させる。この書き込みアドレスは、例えば、通常書き込みモードではアクセスできないアドレスであってもよい。書き込み回路０１１は、論理制御回路０１０からの指示によって駆動する。書き込み回路０１１は、各レジスタの設定を元に、各メモリセルに電気的信号を印加する。これにより、メモリセルが、例えば、高抵抗状態と低抵抗状態との間の中間的な抵抗状態に設定される。あるいは、高温環境下において安定な乱数生成を行うために、メモリセルは、低抵抗状態に設定されてもよい。なお、揺らぎ書き込みモードと、通常書き込みモードとは、同一の書き込み条件で実行されてもよい。この場合、特殊コマンドレジスタ０３５が省略され、コマンドレジスタ０３３が代用されてもよい。
【０２４３】
入出力制御回路００７は、揺らぎ読み出しコマンドを取得すると、これを特殊コマンドレジスタ０３５に保持させる。入出力制御回路００７は、読み出しアドレスを取得すると、これをアドレスレジスタ００９に保持させる。この読み出しアドレスは、例えば、通常読み出しモードではアクセスできないアドレスであってもよい。センスアンプ０１２は、論理制御回路０１０からの指示によって駆動する。センスアンプ０１２は、各レジスタの設定を元に、メモリセルアレイから繰り返し抵抗値情報を読み出す。乱数生成回路０３８は、この抵抗値情報を用いて乱数データを生成する。乱数データは、データレジスタ０３０を介して、Ｃａｓｈｅレジスタ０３１に蓄えられる。所定の量のデータがＣａｓｈｅレジスタ０３１に蓄えられると、入出力制御回路００７は、そのデータを取得し、外部へと順次出力する。このとき、抵抗値を読み出す対象となるメモリセルは、揺らぎ書き込みコマンドで書き込まれたメモリセルとする。
【０２４４】
図１３は、本実施の形態にかかる乱数処理装置の書き込みサイクルと読み出しサイクルの一例を示すタイミングチャートである。以下、図１３を参照しつつ、通常書き込みモードと、通常読み出しモードにおける、１個のメモリセルに対する信号制御の一例について説明する。
【０２４５】
以下、信号線の制御がより複雑となるバイポーラ型抵抗変化素子の例について説明する。本例示を元にすれば、ユニポーラ型抵抗変化素子の書き込みまたは読み出しは、容易に設計されうる。なお、本実施形態に係る制御方法は、以下の例示に限定されない。
【０２４６】
ここでは、抵抗変化層が高抵抗状態の場合が情報“０”に、低抵抗状態の場合が情報“１”にそれぞれ割り当てられているものとする。高抵抗状態に対応する可変抵抗値範囲は、第１抵抗値範囲と呼ばれる場合がある。低抵抗状態に対応する可変抵抗値範囲は、第２抵抗値範囲と呼ばれる場合がある。説明の便宜上、以下では、メモリセルＭ２１１およびＭ２２２への書き込みおよび読み出しについて説明する。
【０２４７】
図１３において、抵抗変化素子の抵抗値を第１抵抗値範囲内へ変化させる高抵抗化電圧が、メモリセルの両端に印加される。高抵抗化電圧は、電圧ＶHを有するパルス電圧である。抵抗変化素子の抵抗値を第２抵抗値範囲内へ変化させるための低抵抗化電圧が、メモリセル両端の電圧に印加される。低抵抗化電圧は、電圧ＶLを有するパルス電圧である。高抵抗化電圧および低抵抗化電圧は、電源制御回路００８によって生成される。電源制御回路００８には、外部入力電源から電力が供給される。図１３において、ＶHおよびＶLはいずれも正の値とする。ここでは、ＶH＝ＶLである場合を例として説明する。
【０２４８】
読み出し時には、読み出し電圧がメモリセル両端に印加される。読み出し電圧の電圧ＶRの絶対値は、ＶHおよびＶLの絶対値よりも小さい。書き込み回路０１１は、プレート線に、印加方向に応じてＶH、ＶL、ＧＮＤのいずれかの電圧を供給する。種々のモードに応じて、各ビット線、プレート線に、電圧ＶH、ＶL、ＶRのいずれかがチャージされる、または、ＧＮＤにディスチャージされる。
【０２４９】
メモリセルＭ２１１に対する書き込みサイクルにおいて、書き込み回路０１１は、当初、ビット線ＢＬ０とプレート線ＰＬ０の電圧をＧＮＤレベルに設定している。その後、行選択回路００３はワード線ＷＬ０に電圧ＶＤＤを印加し、これにより、Ｍ２１１のトランジスタＴ１１は導通状態になる。この状態で、パルス幅がＴＰHであり電圧がＶHである電気的パルスが、ビット線ＢＬ０に印加される。この電気的パルスは、メモリセルＭ２１１に情報“０”を書き込むための高抵抗化パルスである。その結果、メモリセルＭ２１１の抵抗変化素子１２０が高抵抗化状態に遷移する。言い換えると、メモリセルＭ２１１に情報“０”が書き込まれる。図１３の下段左側の模式図は、このときの印加状態Ａを示す。印加状態Ａにおいて、第２電極１２８から第１電極１２４にむけて電流が流れる。
【０２５０】
メモリセルＭ２２２に対する書き込みサイクルにおいて、書き込み回路０１１は、当初、全てのワード線を０Ｖに設定し、全てのビット線およびプレート線を電圧ＶL＝ＶHに設定する。その後、行選択回路００３は、ワード線ＷＬ１に、電圧ＶＤＤを印加し、これにより、Ｍ２２２のトランジスタＴ２２は導通状態となる。この状態で、ＶL→０Ｖ→ＶLと変化するパルス幅ＴＰLの電気的パルスが、ビット線ＢＬ１に印加される。この電気的パルスは、メモリセルＭ２２２に情報“１”を書き込むための低抵抗化パルスである。その結果、メモリセルＭ２２２の抵抗変化素子１２０が低抵抗化状態に遷移する。言い換えると、メモリセルＭ２２２に情報“１”が書き込まれる。その後、行選択回路００３はワード線ＷＬ１に印加されている電圧ＶＤＤを０Ｖに変化させ、これによりトランジスタＴ２２が非導通状態になる。サイクルの最後に、書き込み回路０１１は、全てのビット線およびプレート線に印加されている電圧ＶL＝ＶHを０Ｖに変化させる。図１３の下段右側の模式図は、このときの印加状態Ｂを示す。印加状態Ｂにおいて、第１電極１２４から第２電極１２８にむけて電流が流れる。
【０２５１】
メモリセルＭ２１１に対する読み出しサイクルにおいて、行選択回路００３は、ワード線ＷＬ０に電圧ＶＤＤを印加し、これにより、メモリセルＭ２１１のトランジスタＴ１１は導通状態になる。加えて、列選択回路００４は、メモリセルＭ２１１とセンスアンプ０１２とを接続させる。この状態で、高抵抗化パルスおよび低抵抗化パルスよりも電圧の絶対値が小さい読み出し電圧ＶＲが、ビット線ＢＬ０に印加される。読み出し電圧は、メモリセルの抵抗状態を変化させない。読み出し電圧は、例えば、センスアンプ０１２内のドライバ１３１から、所定の期間だけ出力される。その後、ビット線ＢＬ０がディスチャージされ、ビット線ＢＬ０の電圧ＶRが、所定の時間で減衰する。この時間は、メモリセルの抵抗値と負荷容量などで決まる。負荷容量は、例えば、配線容量およびトランジスタの拡散容量等の合計で決まる。ＶＲの電圧はクランプトランジスタ（後述の図１４のＮチャネルトランジスタ３５）によってゲートに印加される電圧ＶＣＬＭＰからトランジスタの閾値Ｖｔ分降下した電圧となる（ＶＲ＝ＶＣＬＭＰ−Ｖｔ）。読み出し期間の間、ビット線には電圧ＶＲが印加され、メモリセルの抵抗値に従ったメモリセル電流によって、読み出し回路内のセンス電圧がディスチャージされる。メモリセルＭ２１１の抵抗値が、第１抵抗値範囲内にセットされている場合、ディスチャージは比較的長い時間を要する。ディスチャージの時間が所定の閾値より大きいと判定されると、センスアンプ０１２は、高抵抗状態を示す情報“０”を出力する。この情報は、入出力制御回路００７か乱数処理装置の外部に出力される。
【０２５２】
メモリセルＭ２２２に対する読み出しサイクルにおいて、行選択回路００３は、ワード線ＷＬ１に電圧ＶＤＤを印加し、これにより、メモリセルＭ２２２のトランジスタＴ２２は導通状態となる。加えて、列選択回路００４は、メモリセルＭ２２２とセンスアンプ０１２とを接続させる。この状態で、読み出し用の電圧ＶＲが、ビット線ＢＬ１に印加される。その後、センスノード電圧が、メモリセルの抵抗値に起因する電流とセンスノード（後述の図１４のＳＥＮ）の負荷容量で決まる時定数に従い、ディスチャージされる。メモリセルＭ２２２の抵抗値が、第２抵抗値範囲内にセットされている場合、ディスチャージは比較的短い時間で完了する。ディスチャージの時間が所定の閾値より小さいと判定されると、センスアンプ０１２は、低抵抗状態を示す情報“１”を出力する。この情報は、入出力制御回路００７から乱数処理装置の外部に出力される。
【０２５３】
なお、これら読み出しサイクルにおいて、書き込み回路０１１は、全てのプレート線と非選択のビット線に０Ｖを供給している。
【０２５４】
特殊書き込みモードまたは揺らぎ書き込みモードの場合、例えば、書き込み回路０１１が出力する電気的信号の電圧、パルス幅、および累積印加時間の少なくともいずれかは、通常の書き込みモードの場合と異なる。
【０２５５】
特殊書き込みモードは、例えば、上述の通常書き込みモードに対して、高抵抗化パルスが第１電気的ストレスに置き換えられ、低抵抗化パルスが第２電気的ストレスに置き換えられたものとして説明されうる。例えば、高抵抗化パルスの電圧ＶHは、第１電気的ストレスの電圧ＶHＳＰに置き換えられ、低抵抗化パルスの電圧ＶLは第２電気的ストレスの電圧ＶLＳＰに置き換えられる。高抵抗化パルスのパルス幅ＴＰHが第１電気的ストレスのパルス幅ＴＰHＳＰに置き換えられ、低抵抗化パルスのパルス幅ＴＰLが第２電気的ストレスのパルス幅ＴＰLＳＰに置き換えられる。第２電気的ストレスは、フォーミングストレスの一例である。なお、電気的ストレスが印加されていない初期状態のメモリセルに情報（例えば“０”）を割り当てる場合、第１電気的ストレスは印加されなくてもよい。言い換えると、第１電気的ストレスにおいて、電圧ＶHＳＰが０Ｖであり、パルス幅ＴＰHＳＰが０ｎＳｅｃであってもよい。第１電気的ストレスおよび第２電気的ストレスのそれぞれは、単一の電圧パルス幅でもよいし、複数の電圧パルスを含んでもよい。
【０２５６】
なお、特殊書き込みモードにおけるＶHＳＰ、ＴＰHＳＰ、ＶLＳＰ、ＴＰLＳＰと、通常書き込みモードにおけるＶH、ＴＰH、ＶL、ＴＰLとは、少なくとも１つが異なっていればよい。
【０２５７】
揺らぎ書き込みモードは、例えば、上述の通常書き込みモードに対して、高抵抗化パルスが第１揺らぎ書き込みパルスに置き換えられ、低抵抗化パルスが第２揺らぎ書き込みパルスに置き換えられたものとして説明されうる。例えば、高抵抗化パルスの電圧ＶHは、第１揺らぎ書き込みパルスの電圧に置き換えられる。第１揺らぎ書き込みパルスの電圧は、例えば、ＶHＲＮ１以上ＶHＲＮ３以下の値を有する。低抵抗化パルスの電圧ＶLは、第２揺らぎ書き込みパルスの電圧ＶLＲＮに置き換えられる。このとき、ＶHＲＮ１、ＶHＲＮ２およびＶHＲＮ３は、ＶHＲＮ１＜ＶHＲＮ２＜ＶHＲＮ３の関係を満たす。高抵抗化パルスのパルス幅ＴＰHは、第１揺らぎ書き込みパルスのパルス幅ＴＰHＲＮに置き換えられる。低抵抗化パルスのパルス幅ＴＰLは、第２揺らぎ書き込みパルスのパルス幅ＴＰLＲＮに置き換えられる。なお、第１揺らぎ書き込みパルスおよび第２揺らぎ書き込みパルスは、“０”または“１”を書き込むための電圧パルスでなくてもよい。揺らぎ書き込みモードにおいて、第１揺らぎ書き込みパルスおよび第２揺らぎ書き込みパルスは、メモリセルの抵抗値を、乱数生成に適した抵抗値範囲内におさめるための電圧パルスである。
【０２５８】
センスアンプ０１２が、抵抗値情報を得るためのカウンタ１３４を備える場合、カウンタ１３４がカウントできる数には上限値がある。そのため、揺らぎ書き込みモードにおいて、メモリセルの抵抗値は、当該抵抗値に対応するカウント値がカウンタ１３４の上限値以下におさまるように設定される。さらに、メモリセルの抵抗値は、所定の下限値以上におさまるように設定されてもよい。これにより、良質な乱数データが得られうる。これは、抵抗値の絶対値が大きい素子が、抵抗値の絶対値が小さい素子よりも、大きな抵抗値変動を示すことに起因する(例えば、図７参照)。図６に示されるように、メモリセルの抵抗値が、印加される電圧の増大に伴って増加する場合、第１揺らぎ書き込みパルスは、段階的に電圧が増加する複数の電気的パルスから構成されていてもよい。例えば、書き込み回路０１１は、メモリセルから読み出される抵抗値情報が所定の範囲内に入るまで、電気的パルスの電圧をＶHＲＮ１→ＶHＲＮ２→ＶHＲＮ３と徐々に上げてもよい。加えて、書き込み回路０１１は、所定の範囲内に入ったメモリセルに対して、電気的パルスの印加を停止してもよい。
【０２５９】
次に揺らぎ読み出しモード、特殊読み出しモード、および通常読み出しモードにおける、センスアンプ０１２の具体的な構成と動作の一例を示す。
【０２６０】
図１４は、理解の便宜のための参考例にかかるセンスアンプ０１２の構成例を示す回路図である。図１５は、図１４に示したセンスアンプ０１２において、選択されたメモリセルを放電方式にて読み出す場合のタイミングチャートの一例である。図１６は、図１４に示したセンスアンプ０１２において、選択されたメモリセルを充電方式にて読み出す場合のタイミングチャートの一例である。図１５、図１６のタイミングチャートは、本実施の形態による読み出し処理が行われない例を示している。
【０２６１】
以下、図１４に記載された回路群の構成および動作を説明する。
【０２６２】
センスアンプ０１２は、放電方式のセンスアンプ回路３０を有している。センスアンプ回路３０は、コンパレータ３１と、抵抗値カウンタ３２と、プリチャージ用のＰＭＯＳトランジスタ３３と、ロード電流用のＰＭＯＳトランジスタ３４とを備えている。
【０２６３】
抵抗値カウンタ３２は、コンパレータ３１の出力に接続されている。抵抗値カウンタ３２は、リセット信号ＲＳＴがロウレベルとなることで、抵抗値カウンタ内のカウント値が初期化された後、ＣＬＫ信号によるカウントを開始する。ＣＬＫ信号は、制御回路１５から出力される信号であって、抵抗変化素子２３の抵抗値によって変化する放電時間をカウント値に変換する際の基準となる信号である。ＣＬＫ信号は、例えば一定の周波数を維持する矩形波である。このＣＬＫ信号が立ち上がる毎に、抵抗値カウンタのカウント値が１つ加算され、ノードＳＥＮがＶＲＥＦを下回ると抵抗値カウンタのカウントアップが停止し、そのときのカウント値がＣＯＵＮＴ＿ＯＵＴに維持される。このとき、入力Ａからは閾値が入力される。この閾値は、例えば、図１に示したメモリセルアレイ９０に配置されている複数のメモリセル９１の抵抗状態が、低抵抗状態か高抵抗状態かを判断する際の基準として利用され得る。比較器１３５はＣＯＵＮＴ＿ＯＵＴと入力Ａの閾値とを比較し、閾値以上であれば１を、閾値未満ではれば０を出力Ａから出力する。また、閾値以上であれば１を、閾値未満ではれば−１を出力Ｂから出力する。プリチャージＰＭＯＳトランジスタ３３は、ゲート端子にプリチャージ制御信号ＰＲＥが入力され、ソース端子にＶＤＤが入力され、ドレイン端子にノードＳＥＮが接続されている。
【０２６４】
ロードＰＭＯＳトランジスタ３４は、ゲート端子にロード制御信号ＬＯＡＤが入力され、ソース端子にＶＤＤが入力され、ドレイン端子にノードＳＥＮが接続されている。
【０２６５】
図１４には、クランプ電圧印加用のＮＭＯＳトランジスタ３５で構成されたクランプ回路も示されている。クランプＮＭＯＳトランジスタ３５は、ゲートにクランプ制御信号ＣＬＭＰが入力され、ソース端子もしくはドレイン端子の何れか一方にノードＳＥＮが接続され、他端にはカラムデコーダ回路を介して選択されたメモリセルが接続されている。なお、図１４ではカラムデコーダ回路は省略している。
【０２６６】
ここで、センスアンプ０１２がカウント値（抵抗カウント値の一例）を出力する動作について、読み出し回路の構成図（図１４）と図１５、図１６のタイミングチャートを用いて、具体的に説明する。
【０２６７】
図１５は、図１４に示すセンスアンプ０１２が、選択されたメモリセルを放電方式にて読み出す場合のタイミングチャートである。
【０２６８】
Ｔ１のプリチャージ期間では、制御信号ＰＲＥはロウレベルとなり、プリチャージ用ＰＭＯＳトランジスタ３３はオン状態になる。一方、制御信号ＬＯＡＤはハイレベルとなり、ロード用ＰＭＯＳトランジスタ３４はオフ状態となる。選択ワード線ＷＬｓの電位はロウレベルでトランジスタ２４はオフ状態となっている。
【０２６９】
クランプ回路のクランプＮＭＯＳトランジスタ３５のゲート端子にＶＣＬＭＰの電圧が印加されることで、選択ビット線ＢＬｓの電位はＶＣＬＭＰからＶＴ（クランプＮＭＯＳトランジスタ３５の閾値）を引いた電位までプリチャージされる。選択ソース線ＳＬｓはＧＮＤに固定される。ノードＳＥＮはＶＤＤまでプリチャージされる。また、コンパレータの出力に接続されている抵抗値カウンタの制御信号ＲＳＴはハイレベルとなっているため、抵抗値カウンタ出力端子ＣＯＵＮＴ＿ＯＵＴは０の固定値が出力される。
【０２７０】
Ｔ２のセンス期間では、制御信号ＰＲＥをハイレベルとすることで、プリチャージＰＭＯＳトランジスタ３３がオフ状態となり、制御信号ＬＯＡＤがロウレベルになることで、ロードＰＭＯＳトランジスタ３４はオン状態になる。また、選択ワード線ＷＬｓの電位をハイレベルにすることで、ＮＭＯＳトランジスタ２４はオン状態となる。
【０２７１】
そして、選択ビット線ＢＬｓから、選択されたメモリセル２１ｓを介して選択ソース線ＳＬｓへと電圧が印加され、放電が開始される。放電開始と同時に抵抗値カウンタ３２の制御信号ＲＳＴがロウレベルとなり、カウントが始まる。そして、１カウント毎に、コンパレータ３１によって、ノードＳＥＮの電位（すなわち、センス電圧）と参照電圧ＶＲＥＦの電圧が比較され、ノードＳＥＮが参照電圧ＶＲＥＦを下回るまで、カウント値が加算され続ける。読み出し時の抵抗変化素子２３の抵抗値が高いほど放電時間は長くなり、カウント値は大きくなる。
【０２７２】
また、キャパシタ３６の容量を調整することで、放電時間を調整することも可能である。キャパシタ３６の容量が大きければ、ノードＳＥＮの放電時間も遅くなるため、カウント値は長くなる。容量が小さければ、ノードＳＥＮの放電時間は速くなり、カウント値は短くなる。キャパシタ３６は、例えば、放電時間が速い低抵抗レベルの検出精度を向上させたいとき、効果的である。カウントの間隔はＣＬＫ信号で決定されるため、その動作周波数が抵抗カウント値の分解能となる。しかし、低い抵抗値の場合、放電時間がカウント値の分解能を上回る可能性があるため、区別できなくなる場合がある。そこで、ノードＳＥＮに容量負荷を上乗せし、遅延させることで、意図的に分解能で検出できるレベルの放電特性に調整することが可能となる。しかしながら、原理上放電方式の場合は高抵抗になればなるほど放電時間が長くなり、それにともなって放電の傾斜が緩やかに変化するため、カウンタ値に対する抵抗値情報の分解能が向上する。つまり、放電方式の場合は高抵抗側が高精度な抵抗値情報を得ることのできる方式である。
【０２７３】
Ｔ３のラッチ期間では、放電が開始された後、ノードＳＥＮが参照電圧ＶＲＥＦを下回ったときの抵抗値カウンタ３２のカウント値がラッチされる。ラッチされたカウント値は、ＣＯＵＮＴ＿ＯＵＴに出力され、抵抗変化素子２３の抵抗値情報を表すカウント値として扱われる。
【０２７４】
Ｔ４のリセット期間においては、データ出力が完了すると、選択ワード線ＷＬｓの電位がロウレベルとされ、選択されたメモリセル２１ｓのトランジスタ２４がオフとなり、読み出し動作が終了する。
【０２７５】
図１６は、図１４に示すセンスアンプ０１２が、選択されたメモリセルを充電方式にて読み出す場合のタイミングチャートである。
【０２７６】
Ｔ１のディスチャージ期間であり、制御信号ＰＲＥ、ＬＯＡＤ共にハイレベルとなり、プリチャージ用ＰＭＯＳトランジスタ３３とロード用ＰＭＯＳトランジスタ３４は何れもオフ状態となる。また選択ワード線ＷＬｓの電位はロウレベルでトランジスタ２４もオフ状態となっている。
【０２７７】
クランプ回路のクランプ用ＮＭＯＳトランジスタ３５のゲート端子にＶＣＬＭＰの電圧が印加され、選択ワード線ＷＬｓの電位をハイレベルにすることで、ＮＭＯＳトランジスタ２４はオン状態となる。ノードＳＥＮ、選択ビット線ＢＬｓは抵抗変化素子２３を介してＧＮＤ（０Ｖ）へ接続され、ＧＮＤレベルまでディスチャージされる。また、コンパレータの出力に接続されている抵抗値カウンタの制御信号ＲＳＴはハイレベルとなっているため、抵抗値カウンタ出力端子ＣＯＵＮＴ＿ＯＵＴは０の固定値が出力される。
【０２７８】
Ｔ２のセンス期間では、制御信号ＬＯＡＤがロウレベルになることで、ロードＰＭＯＳトランジスタ３４はオン状態になる。ロードＰＭＯＳトランジスタ３４、クランプＮＭＯＳトランジスタ３５、選択メモリセル２１ｓの電流パスが形成され、ノードＳＥＮ、選択ビット線ＢＬｓへ充電が開始される。充電開始と同時に、抵抗値カウンタ３２の制御信号ＲＳＴがロウレベルとなり、カウントが始まる。そして、１カウント毎に、コンパレータ３１によって、ノードＳＥＮの電位（すなわち、センス電圧）と参照電圧ＶＲＥＦの電圧が比較され、ノードＳＥＮが参照電圧ＶＲＥＦを上回るまで、カウント値が加算され続ける。読み出し時の抵抗変化素子２３の抵抗値が低いほど充電時間は長くなり、カウント値は大きくなる。
【０２７９】
また、キャパシタ３６は放電方式の方で時間のときと同様に、充電方式も充電時間を調整することも可能である。詳細な説明は放電方式での説明と同様であるため割愛する。原理上充電方式の場合は低抵抗になればなるほど充電時間が長くなり、それにともなって充電の傾斜が緩やかに変化するため、カウンタ値に対する抵抗値情報の分解能が向上する。つまり、充電方式の場合は低抵抗側が高精度な抵抗値情報を得ることのできる方式である。
【０２８０】
Ｔ３のラッチ期間では、充電が開始された後、ノードＳＥＮが参照電圧ＶＲＥＦを上回ったときの抵抗値カウンタ３２のカウント値がホールドされる。ホールドされたカウント値は、ＣＯＵＮＴ＿ＯＵＴに出力され、抵抗変化素子２３の抵抗値情報を表すカウント値として扱われる。
【０２８１】
Ｔ４のリセット期間においては、データ出力が完了すると、選択ワード線ＷＬｓの電位がロウレベルとされ、選択されたメモリセル２１のトランジスタ２４がオフとなり、読み出し動作が終了する。
【０２８２】
図１４の構成であれば、放電方式と充電方式の両方を用いることができる。しかし、図１４の比較器１３５の上下に括弧書きで例示した出力Ａおよび出力Ｂの論理例は放電方式の読み出し回路における例である。高抵抗状態と低抵抗状態に夫々対応するディジタルデータの論理を同じにする場合は、検出方向が逆になるために充電方式では反転する必要がある。具体的には、出力Ａへの論理はａ≧ｂの場合は１とし、ａ＜ｂの場合は０となる。出力Ｂへの論理は放電方式と充電方式で等しい。
【０２８３】
このように読み出しの方式によって抵抗値情報に対する分解能が異なるため、高精度に抵抗値情報を得たい場合は、放電方式はディジタルＩＤデータが高い抵抗値範囲を用いて保存される場合に用いるのが好ましい。逆に充電方式はディジタルＩＤデータが低い抵抗値範囲を用いて保存される場合に用いることが好ましい。しかしながら、一方で図１４に示した抵抗値カウンタ３２のカウンタ幅はハードウェアの制約上有限な量である。つまり、前述したような放電時間や充電時間が長すぎる場合はカウンタのレンジをオーバーしてしまい、正確な抵抗値情報が得られない問題がある。このため、必要なカウンタのビット幅を節約して回路規模の縮小を図る場合は、放電方式はディジタルＩＤデータが低い抗値範囲を用いて保存される場合に用いるのが好ましい。逆に、充電方式はディジタルＩＤデータが高い抵抗値範囲を用いて保存される場合に用いることが好ましい。
【０２８４】
なお、読み出しの分解能は、ロードＰＭＯＳトランジスタ３４からの電流供給の有無のみだけでなく、ロードＰＭＯＳトランジスタ３４の電流量、抵抗値カウンタ３２に入力されるクロックＣＬＫの周波数、ＶＲＥＦの大きさ、およびキャパシタ３６の容量等によって調整されうる。例えば、クロックの周波数が増加すると、読み出しの分解能が上昇する。
【０２８５】
放電方式において、読み出しの測定範囲は、比較的高い抵抗値が短い時間で読み出されるように設定されてもよい。そのような設定は、例えば、ＶＲＥＦを大きくすること、ロードＰＭＯＳトランジスタ３４の電流を減らすこと、およびキャパシタ３６の容量を減らすこと等によって実現されうる。逆に、読み出しの測定範囲は、比較的低い抵抗値が短時間で読み出されるよう設定されてもよい。そのような設定は、例えば、第１基準電位ＶＲＥＦを小さくすること、ロードＰＭＯＳトランジスタ３４の電流を増やすこと、または、キャパシタ３６の容量を増やすこと等によって実現されうる。
【０２８６】
＜乱数生成回路＞
以下、本実施の形態に係る乱数生成回路の構成例について説明する。本本実施の形態に係る乱数生成回路は、メモリセルアレイから１バイトデータを読み出し、読み出された１バイトデータとビット反転データとの中から最も出現頻度が低いものを選択し、これを出力する。ビット反転データとは、読み出された１バイトデータを構成している８個のビットのうちいずれか１つが反転されたデータである。
【０２８７】
図１７は、本実施の形態による乱数生成回路の概略構成を示す回路図である。以下、図１７を参照しつつ、乱数生成回路０３８について説明する。
【０２８８】
図１７において、センスアンプ０１２の構成および動作は、図１４を参照しつつ説明されたものと等しいので、その説明は省略される。図１７に示される乱数生成回路０３８は、センスアンプ０１２から８つの抵抗値情報を受け取り、８チャンネルＣＨ０〜ＣＨ７でこれらを並列処理して、乱数を生成する。
【０２８９】
揺らぎ読み出しモードにおいて、センスアンプ０１２は、選択されたメモリセルから、列選択回路００４を介して、抵抗値情報を取得する。例えば、８つのメモリセルから、８つの抵抗値情報が取得される。
【０２９０】
信号Ｒｒｅｎ１は、上述したように、１クロック幅のラッチタイミングを指示するパルスである。また、信号Ｒｒｅｎ２は、信号Ｒｒｅｎ１に対して１クロック分だけ遅延してラッチタイミングを指示するパルスである。信号Ｒｒｅｎ３は、信号Ｒｒｅｎ１に対して２クロック分だけ遅延してラッチタイミングを指示するパルスである。
【０２９１】
センスアンプ０１２および乱数生成回路０３８は、８チャンネルＣＨ０〜ＣＨ７の判定ブロック１５０を備える。図１７において、判定ブロック１５０は、破線で示されている。各チャンネルにおける判定ブロック１５０は、例えば、同一の回路を備えている。以下では１つのチャンネルＣＨ０について説明する。
【０２９２】
センスアンプ０１２内にあるラッチ１３８が、信号Ｒｒｅｎ１が指示するタイミングで、抵抗値情報をホールドする。センスアンプ０１２は、例えば、１つのメモリセルから抵抗値情報を複数回読み出す。これにより、１つのメモリセルの抵抗値の時間変化を反映した複数の抵抗値情報が取得される。ラッチ１３８は、読み出し動作の都度、信号Ｒｒｅｎ１が指示するラッチタイミングで、抵抗値情報を出力Ｂとして出力する。
【０２９３】
ラッチ１３９は、信号Ｒｒｅｎ１が指示するタイミングで、ラッチ１３８から出力された抵抗値情報をラッチする。すなわち、ラッチ１３９は、ラッチ１３８がホールドする抵抗値情報よりも１つ前に読み出された抵抗値情報をホールドする。ラッチ１３８からの抵抗値情報と、ラッチ１３９からの抵抗値情報とは、信号Ｒｒｅｎ１が指示するタイミングで、減算器に入力される。減算器は、ラッチ１３８からの抵抗値情報の値から、ラッチ１３９からの抵抗値情報を減算し、検出器１４１に出力する。言い換えると、減算器は、時間的に前後関係にある２つの抵抗値情報の差を求める。
【０２９４】
図１７中に、検出器１４１の論理表が示される。該論理表に示す通り、検出器１４１は、入力が０より大きければ“１”を出力し、入力が０より小さければ“−１”を出力し、入力が０と等しければ“０”を出力する。検出器１４１からの出力は、０／１判定器１４２に、入力Ｙとして入力される。
【０２９５】
０／１判定器１４２には、後述するラッチ１４０からの出力が入力Ｘとして入力される。図１７中に、０／１判定器１４２の論理表が示される。０／１判定器１４２は、入力Ｙが“１”のとき“１”を出力し、入力Ｙが“−１”のとき“０”を出力する。また、０／１判定器１４２は、入力Ｙが“０”のとき入力Ｘをそのまま出力してもよい。例えば、０／１判定器１４２は、入力Ｙが“０”のとき、０／１判定器１４２の前回の出力がＸＯＲ回路での演算を経てラッチ１４０にラッチされた値を、今回の出力として出力してもよい。
【０２９６】
０／１判定器１４２からの出力Ｓは、ＸＯＲ回路に入力される。また、ビット反転データバスの最下位ビットから最上位ビットの値は、それぞれ、入力ｂ０から入力ｂ７として、ＸＯＲ回路に入力される。ＸＯＲ回路は、０／１判定器１４２からの出力Ｓと、ビット反転データバスからのビット値との排他的論理和（ＸＯＲ）を求め、これをラッチ１４０に出力する。
【０２９７】
ラッチ１４０は、ＸＯＲ回路からの入力を、信号Ｒｒｅｎ２が指示するタイミングでラッチする。８つのチャンネルＣＨ０〜ＣＨ７における８つのラッチ１４０の出力は、８ビットのデータとして、データバスＢにまとめられる。このとき、チャンネルＣＨ０のラッチ１４０からの出力は、当該データの最下位ビットとなり、チャンネルＣＨ７のラッチ１４０からの出力は、当該データの最上位ビットとなる。また、８つのチャンネルＣＨ０〜ＣＨ７における８つの０／１判定器１４２の出力Ｓは、８ビットのデータバスＡにまとめられる。
【０２９８】
破線１５１で囲まれたブロックは、データパターンカウント部１５１を示す。データパターンカウント部１５１は、データバスＢから１バイトデータが入力される毎に、そのデータが示す値が入力された回数をカウントアップする。
【０２９９】
データバスＢのデータは、２５６個の等号演算器１４３に入力される。２５６個の等号演算器１４３は、入力された８ビットの値が、００ｈ、０１ｈ、０２ｈ・・・・ＦＤｈ、ＦＥｈ、ＦＦｈ（１６進表記）のいずれと等しいかを判定する。各等号演算器１４３は、入力されるデータバスＢの１バイトデータが、自身の保有する値と等しいか否かを判定する。その結果、等号演算器１４３は、それらの値が等しい場合には“１”を出力し、等しくない場合には“０”を出力する。２５６個のアップカウンタ１４４には、２５６個の等号演算器１４３からの出力が、それぞれ入力される。各アップカウンタ１４４は、信号Ｒｒｅｎ３が指示するタイミングにおいて入力が“１”であるときに、カウントアップする。
【０３００】
破線１５２で囲まれたブロックは、１ビット反転データ生成部１５２を示す。８個のＸＯＲ回路１４５は、データバスＡを介して入力される１バイトデータと、固定の１バイトデータとの間で、ビットごとの排他的論理和を求める。８個のＸＯＲ回路１４５に入力される固定の１バイトデータは、それぞれ、０１ｈ、０２ｈ、０４ｈ、０８ｈ、１０ｈ、２０ｈ、４０ｈ、８０ｈ（１６進表記）で表される。これにより、データバスＡを介して入力される１バイトデータを構成する８つのビットのうち、最下位ビットから最上位ビットまでのいずれか１ビットだけが反転された、８種の互いに異なる１ビット反転データが生成される。
【０３０１】
１ビット反転データ生成部１５２は、９個の選択回路（ＭＵＸ）１４６を備える。各ＭＵＸ１４６は、チャンネル選択ポートと、２５６個の入力チャンネルポートを持つ。各ＭＵＸ１４６は、入力チャンネルポートを介して、データパターンカウント部１５１内の２５６個のアップカウンタ１４４から、カウント値が入力される。９個のＭＵＸ１４６のうち８個には、チャンネル選択ポートを介して、対応する８個のＸＯＲ回路１４５から、８種の１ビット反転データがそれぞれ入力される。残りの１個には、チャネル選択ポートを介して、データバスＡからの１バイトデータが直接入力される。各ＭＵＸ１４６は、チャンネル選択ポートを介して入力されたデータに対応するアップカウンタ１４４のカウント値を、チャンネルＤＴ０〜ＤＴ８から出力する。
【０３０２】
すなわち、データバスＡの１バイトデータのデータパターン、および、該１バイトデータから生成された８種の１ビット反転データの各データパターンのそれぞれに対する現時点までの出現回数が、各ＭＵＸ１４６から出力される。
【０３０３】
１ビット反転データ生成部１５２は、ビット反転マスク生成回路１４７（図１７ではＭＩＮと表示）を備える。ビット反転マスク生成回路１４７は、チャンネルＤＴ０〜ＤＴ８から入力されるカウント値のうち最小のものを抽出し、それに対応するビット反転マスク信号を出力する。ビット反転マスク信号は、８つの判定ブロック１５０から出力される１バイトデータの何番目のビットを反転させるか、あるいは、いずれのビットも反転させないかを指示する。例えば、ビット反転マスク生成回路１４７は、チャンネルＤＴ０、ＤＴ１、ＤＴ２、ＤＴ３、ＤＴ４、ＤＴ５、ＤＴ６、ＤＴ７、ＤＴ８を選択するときに、ビット反転マスク信号として００ｈ、０１ｈ、０２ｈ、０４ｈ、０８ｈ、１０ｈ、２０ｈ、４０ｈ、８０ｈを、それぞれ出力する。
【０３０４】
なお、チャンネルＤＴ０〜ＤＴ８から入力されるカウント値のうち最小となるものが複数あるとき、ビット反転マスク生成回路１４７は、それらのいずれかに対応するビット反転マスク信号を出力してもよい。チャンネルＤＴ０〜ＤＴ８に入力されカウント値のうち最小となるものが複数あり、かつ、それらの中にチャンネルＤＴ０から入力されたカウント値が含まれるとき、例えば、ビット反転マスク生成回路１４７は、チャンネルＤＴ０を優先的に選択してもよい。チャンネルＤＴ０〜ＤＴ８に入力されカウント値のうち最小となるものが複数あるとき、ビット反転マスク生成回路１４７は、前回選択されたチャンネルとは異なるチャンネルを選んでもよい。これにより、選択チャンネルが偏らない。このように、１ビット反転データ生成部１５２は、新たに得られた１バイトデータが、８種の１ビット反転データの何れよりも出現頻度が少ないか否かを判定する。８種の１ビット反転データのいずれかの出現頻度が、元の１バイトデータの出現頻度よりも少ない場合、０／１判定器１４２の出力が修正される。
【０３０５】
具体的には、０／１判定器１４２からの出力と、ビット反転マスク生成回路１４７からの出力との間の排他的論理和（ＸＯＲ）が、ラッチ１４０に入力される。例えば、チャンネルＣＨ０〜ＣＨ８で生成される１バイトデータのうち１ビット目が反転される場合、ビット反転マスク生成回路１４７は、ビット反転マスク信号として０１ｈを出力する。その結果、チャンネルＣＨ０の判定ブロック１５０内のＸＯＲ回路に、ビット反転データバスからの“１”が、入力ｂ０として入力される。その結果、ＸＯＲ回路は、０／１判定器１４２から入力Ｓを反転され、これがラッチ１４０にラッチされる。一方、１バイトデータの１ビット目が反転されない場合には、ＸＯＲ回路に、“０”が入力ｂ０として入力され、０／１判定器１４２の出力がそのままラッチ１４０にラッチされる。
【０３０６】
このように、データパターンカウント部１５１と１ビット反転データ生成部１５２とは、乱数評価回路を成している。この乱数評価回路は、１バイトデータの出現パターンに偏りが発生しないように、０／１判定器１４２の判定結果を補正する。この補正により、読み出された１バイトデータと、８種の１ビット反転データとのうち、最も出現頻度が低いデータが出力される。
【０３０７】
８個のメモリセルの抵抗値情報がそれぞれ２０００回ずつ読み出され、この抵抗値情報が図１７に示される乱数生成回路０３８に入力され、乱数データが生成された。この乱数データは、１６Ｋｂｉｔのビットストリームデータであった。表３は、これにより得られた乱数が前述したＮＩＳＴ  ＳＰ８００−２２に基づいて検定された結果を示す。
【０３０８】
【表３】
0006674616.tif 000004
【０３０９】
表３が示すように、当該乱数は、全ての検定項目を合格（Ｐａｓｓ）している。よって、本実施の形態による乱数処理装置は、暗号に用いるための乱数を生成する装置として充分な性能を有する。
【０３１０】
このように、本実施の形態による乱数処理装置は、抵抗変化素子の抵抗値の変動を用いてデバイス固有の物理乱数を高品位に生成できる。
【０３１１】
たとえば、特許文献１に示される従来技術において、物理乱数を生成するために、ソース−ドレイン間電流の変動がマルチバイブレータ回路で増幅されていた。このような乱数生成装置は、回路規模の小型化と、乱数生成の高速化との両立が難しい。例えば、並列処理で乱数を生成しようとすると、マルチバイブレータ回路等が複数必要となり、回路規模の増大を招いてしまう。あるいは、特許文献２に示されるように、１チャンネルのみで乱数が生成される場合、乱数生成スピードが遅くなる。例えば、乱数生成スピードが２５０Ｋｂｐｓの場合、２５６バイトの暗号用の鍵データを得るために８ｍＳｅｃも時間を要する。
【０３１２】
一方、本実施の形態のように、乱数処理装置が通常書き込みモードおよび通常読み出しモードを実行可能な場合、すなわち、乱数処理装置が不揮発性記憶装置としても機能する場合、不揮発性記憶装置のセンスアンプが、乱数処理装置のセンスアンプとして共用されうる。例えば、暗号データの通信および記憶が可能なコントローラＬＳＩは、典型的に、不揮発性記憶装置が搭載される。この不揮発性記憶装置は、センスアンプを備え、このセンスアンプは抵抗値の揺らぎを増幅することができる。そのため、乱数処理装置は、このセンスアンプを流用することができる。言い換えると、乱数処理装置は、典型的な不揮発性記憶装置が備えるセンスアンプ以外に、乱数処理用のセンスアンプを別個に備えなくてもよい。加えて、乱数生成回路は、例えばロジック回路であり、これはアナログのセンスアンプよりも十分に小さい。このような構成により、乱数処理装置は小型化されうる。
【０３１３】
不揮発性記憶装置のセンスアンプは、典型的に、複数のメモリセルの抵抗値を並列処理で読み出すことができる。本実施の形態では、この複数の抵抗値情報が、複数のチャンネルの乱数生成回路に入力される。これにより、複数ビットからなる乱数データが高速で生成されうる。本実施の形態による乱数処理装置は、例えば、１回の読み出しを２μＳｅｃで行い、かつ、８ビットの並列処理で乱数を生成できる。これにより、乱数処理装置は、従来技術に比して、高速に乱数データを生成することができる。なお、抵抗値の揺らぎを読み出す時間間隔は、揺らぎの特性に応じて適宜調整されうる。揺らぎの特性は、揺らぎ書き込みモードの書き込み条件によって、適宜調整されうる。
【０３１４】
＜他の乱数生成回路＞
図１７を参照しながら説明された乱数評価回路は一例である。乱数評価回路として、別の方式が用いられてもよい。例えば、乱数評価回路は、所定数のデータに含まれる“１”と“０”の数がほぼ同数になるように、０／１判定器の出力Ｓを補正してもよい。乱数評価回路は、所定数のデータに含まれる“１”の連続数の出現頻度が所定の分布を満たすように、０／１判定器の出力Ｓを補正してもよい。あるいは、図１７に示される乱数評価回路は、検出器１４１が“０”を出力するときのみ、０／１判定器の出力Ｓを補正してもよい。これにより、抵抗変化素子の物理的な抵抗値の変動がより反映された乱数データが生成されうる。
【０３１５】
＜特殊書き込みモードの第１動作例＞
特殊書き込みモードの動作例を説明する。ここでは、乱数処理装置が本実施の形態にかかる構成を備える場合について例示される。ただし、他の装置構成においても同様の動作が可能である。
【０３１６】
特殊書き込みモードは、例えば、行選択回路００３と、列選択回路００４と、アドレスレジスタ００９と、書き込み回路０１１と、センスアンプ０１２と、制御回路群０１３と、データレジスタ０３０と、Ｃａｓｈｅレジスタ０３１と、特殊データレジスタ０３２と、切替え回路０３７とにより実行されうる。なお、他のモードも、同様の構成により実行されうる。
【０３１７】
抵抗変化素子１２０は、例えば、図３に示される特性を有する。具体的には、第１電極１２４を基準として、第２電極１２８に、電圧が＋２．４Ｖ、パルス幅が５０ｎＳｅｃの電気的信号が印加されると、抵抗変化素子１２０の抵抗値が第２抵抗値範囲から第１抵抗値範囲へと変化する。第１電極１２４を基準として、第２電極１２８に、電圧が−２．４Ｖ、パルス幅が５０ｎＳｅｃの電気的信号が印加されると、抵抗変化素子１２０の抵抗値が第１抵抗値範囲から第２抵抗値範囲へと変化する。言い換えると、抵抗変化素子１２０は、±２．４Vの電気的信号を印加することで、第１抵抗値範囲と第２抵抗値範囲とを可逆的に遷移する、バイポーラ特性を有する。特殊書き込みモードにおいて、例えば、電圧の絶対値が３Ｖであり、パルス幅が１μＳｅｃの電気的ストレスが、初期状態の抵抗変化素子１２０に印加される。この電気的ストレスの印加によって抵抗変化素子１２０が可変状態に変化しなかった場合、電気的ストレスが抵抗変化素子１２０に再度印加される。例えば、この電気的ストレスは、例えば、先に印加された電気的ストレスに比べて、電圧の絶対値が０．１Ｖ大きく、パルス幅が５倍である。この処理が繰り返されことによって、各抵抗変化素子１２０に累積的に電気的ストレスが印加される。そして、各抵抗変化素子１２０が可変状態に変化すると、フォーミング処理が完了する。
【０３１８】
図１８は、特殊書き込みモードの第１動作例を示すフローチャートである。図１８においては、入力されたデータがメモリセル９１に書き込まれる場合が想定されている。なお、可変状態への変化のランダム性によって乱数データが生成され、かつ書き込まれる場合においても、書き込むべきデータが予め決まっていないこと以外は、同様に説明されうる。
【０３１９】
ＳＴＥＰ１において、書き込みコマンドと、データを書き込むべきアドレス、書き込むべきデータが乱数処理装置１００の外部から入力される。なお、可変状態への変化のランダム性によって乱数データが生成され、かつ書き込まれる場合、書き込むべきデータは入力されず、データを書き込むべきアドレスの替わりに乱数データが生成される領域を示すアドレスが入力される。
【０３２０】
ＳＴＥＰ２において、ＳＴＥＰ１で入力された書き込みコマンドが第１書き込みコマンドであるか否かが判定される。ＳＴＥＰ２の判定結果がＮＯであれば処理が中止される。
【０３２１】
ＳＴＥＰ２の判定結果がＹＥＳであれば、ＳＴＥＰ３に進む。ＳＴＥＰ３において、ＳＴＥＰ１で入力されたアドレスのメモリセル９１が選択され、入力されたデータに応じて、初期状態のまま維持すべきメモリセルに電気的ストレスが印加されないようにマスクが施される。初期状態のまま維持すべきメモリセルは、例えば、書き込むべきデータの“０”に対応する。
【０３２２】
ＳＴＥＰ４において、選択されたメモリセルのうちマスクされていないメモリセル、つまり初期状態から可変状態へと変化させるべきメモリセルに対して、電気的ストレスが印加される。電気的ストレスの電圧の初期値は３Ｖ、パルス幅の初期値は１μＳｅｃとする。この電気的ストレスは、フォーミングストレスの少なくとも一部である。初期状態から可変状態へと変化させるべきメモリセルは、例えば、書き込むべきデータの“１”に対応する。
【０３２３】
ＳＴＥＰ５において、センスアンプ０１２は、フォーミング判定用の読み出しモードに設定される。例えば、図１４のスイッチＳＷ４がオフとなり、測定範囲が高抵抗側に設定される。
【０３２４】
ＳＴＥＰ６において、センスアンプ０１２のカウンタ１３４がホールドするカウント値が４０未満であるか否か、および電気的ストレスの印加回数が５回を超えているか否かが判定される。ＳＴＥＰ６の判定結果のいずれかがＹＥＳであれば処理が終了する（エンド）。
【０３２５】
ＳＴＥＰ６の判定結果のいずれもがＮＯであれば、ＳＴＥＰ７において、直前に印加した電気的ストレスに対して、電圧が０．１Ｖ増加され、パルス幅が５倍増加された新たな電気ストレスが設定される。そして、ＳＴＥＰ４に戻って新たな電気的ストレスがメモリセルに印加される。このようにして、初期状態から可変状態へと変化させるべきメモリセルが可変状態へ変化するまで、ＳＴＥＰ４〜ＳＴＥＰ７が繰り返される。なお、図１８に示す例では、電気的ストレスの印加回数に上限が設けられている。これにより、無限ループが防止される。
【０３２６】
電気的ストレスの印加回数の上限を超えても、メモリセルが可変状態に変化しない場合、当該メモリセルが不良セルと判断され、エラーログが出力されてもよい。図１８に示されるフローが、複数ビットに対して並列で実行される場合、ＳＴＥＰ６の判定結果がＹＥＳになるまでに電気的ストレスが印加される回数は、ビット毎に異なる。そのため、ＳＴＥＰ６の判定結果がＹＥＳになったメモリセルは、それ以降の電気的ストレスの印加を禁止するマスクが施されてもよい。この場合、例えば、並列処理されるメモリセルの全てについてＳＴＥＰ６の判定結果がＹＥＳになったときにフローが終了する。
【０３２７】
図１９は、図１８に示す特殊書き込みモードで書き込まれたデータを、特殊読み出しモードで読み出した結果の一例を示す。図２０は、図１８に示す特殊書き込みモードで書き込まれたデータを、通常読み出しモードで読み出した結果の一例を示す。図１９および図２０は、特殊書き込みモードで０〜Ｆ（１６進表記）までの値が書き込まれたメモリセル群を、特殊読み出しモードおよび通常読み出しモードでそれぞれ読み出した結果を示している。
【０３２８】
図１９および図２０に示される例において、特殊読み出しモードと通常読み出しモードとの間では、クロック周波数、読み出し電圧、第２基準電位Ｖｒｅｆ２および判定時間を同一とし、スイッチＳＷ４のオンオフのみを異ならせている。
【０３２９】
スイッチＳＷ４のオンオフが異なると、定電流源からノードＣに供給される電流量が異なり、ノードＣの電位が減衰するまでのカウント値が異なる。そのため、スイッチＳＷ４のオンオフが異なると、抵抗値とカウント値とを対応付ける係数（例えば、上述の定数Ｃ１、Ｃ２）が異なる。そのため、特殊読み出しモードと通常読み出しモードとで、同じ判定値に基づいてカウント値が判定された場合であっても、実質的には、異なる判定値に基づいて抵抗値が判定されたことになる。言い換えると、特殊読み出しモードにおける読み出しは、第１閾値を用いた読み出しであり、通常読み出しモードにおける読み出しは、第１閾値とは異なる第２閾値を用いた読み出しである。
【０３３０】
図１９および図２０において、左側の４列に示されるカウント値は、図１４のカウンタ１３４がホールドした値を示す。各カウント値は判定値の４０と比較され、判定値よりも大きいビットは“０”が割り当てられ、小さいビットは“１”が割り当てられた。これにより得られた４ビットの値が、図１９および図２０の右側の１列に、１６進表記で示されている。なお、カウンタ１３４の上限値は２５５であり、それより大きな値は制限されている。
【０３３１】
図１９に示されるように、メモリセル群が特殊読み出しモードで読み出された場合、フォーミングが完了していないメモリセルは、全て２５５の最大値を示し、フォーミングが完了したメモリセルは９〜１０の値を示した。これらを判定して得られる４ビットの値は、１６進表記で０からＦまでの所定の値であった。
【０３３２】
図２０に示されるように、メモリセル群が通常読み出しモードで読み出された場合、大部分のカウント値は上限値である２５５を示した。また、これらを判定して得られる４ビットの値の大半は０であった。このように、特殊書き込みモードで書き込まれたデータは、特殊読み出しモードによってのみ、正確に読み出される。なお、フォーミングが完了したメモリセルでもカウント値が大きくばらついているのは、フォーミングが完了したメモリセルの抵抗値が、そのままの状態では、第１抵抗値範囲内にも、第２抵抗値範囲内にも入りうるためである。
【０３３３】
上記の動作例では、初期状態のメモリセルの抵抗値が可変状態のメモリセルの抵抗値よりも高い例について説明した。しかし、初期状態のメモリセルの抵抗値が可変状態のメモリセルの抵抗値よりも低い場合でも、判定の方法および印加するパルスの極性および電圧等を適宜に変更することで、同様の動作が可能である。
【０３３４】
〔本願発明者が見出した読み出し処理の課題〕
上記構成において、乱数生成を行う為に、乱数生成用の複数のメモリセルの全てを、高抵抗状態又は低抵抗状態の何れかに遷移させた場合、すなわち書き込みを行った場合、書き込み後の抵抗値はある程度のばらつきを有した状態となる。これは如何なる書き込み方法を行っても全てのメモリセルが同一の抵抗値にはならない為である。
【０３３５】
その様なばらつきを有した複数のメモリセルをセンスアンプ０１２が読み出すと、我々は以下の課題が生じることを見出した。この課題について、図２１及び図２２を用いて説明する。
【０３３６】
図２１は、主として、異なるメモリセルＡ〜Ｃの各々からの読み出し処理に関するノード電位ＳＥＮと、参照電圧ＶＲＥＦと、抵抗値カウンタ３２の出力信号ＣＯＵＮＴ＿ＯＵＴとの関係を示すタイミングチャートである。この図は図１５の放電方式のタイミングチャートに基づく。各信号の意味は上述の通りである。
【０３３７】
図２１において、ノード電位ＳＥＮは、図１４において、センス中に各メモリセルＡ〜Ｃの抵抗状態に従って変化するノードＳＥＮの各ノード電位である。メモリセルＡ（図２１では「セルＡ」と記載）は、複数の乱数生成用メモリセルの内、抵抗値が最も小さいメモリセルを指す。同様に、メモリセルＣ（図２１では「セルＣ」と記載）は抵抗値が最も大きいメモリセルを指し、メモリセルＢ（図２１では「セルＢ」と記載）は、抵抗値がメモリセルＡよりも大きくてメモリセルＣよりも小さい標準的なメモリセルを指す。以下、図に合わせて、「セルＡ」、「セルＢ」、「セルＣ」と呼ぶ。
【０３３８】
図１５と同様のシーケンス動作より、時刻ｔＳになるとＰＲＥ＝‘Ｌ’→‘Ｈ’、ＬＯＡＤ＝‘Ｈ’→‘Ｌ’となり、抵抗状態の読み出しが開始すると同時に、抵抗値カウンタのカウントが開始される。
【０３３９】
セルＡは抵抗値が最も小さいので、ノード電位ＳＥＮの電位降下は最も早く、読み出し開始時刻ｔＳからの時間Ｔ２ａでノード電位ＳＥＮは参照電圧ＶＲＥＦを下回る。このとき、コンパレータ３１の出力信号が変化して、抵抗値カウンタのカウントアップが停止する。そのときのカウント値ＡがＣＯＵＮＴ＿ＯＵＴに維持され、抵抗値がカウント値Ａとしてディジタル変換される。
【０３４０】
また、セルＢは抵抗値がセルＡより大きくセルＣより小さいので、ノード電位ＳＥＮの電位は、読み出し開始時刻ｔＳからの時間Ｔ２ｂでノード電位ＳＥＮは参照電圧ＶＲＥＦを下回る。このとき、コンパレータ３１の出力信号が変化して、抵抗値カウンタのカウントアップが停止する。そのときのカウント値ＢがＣＯＵＮＴ＿ＯＵＴに維持され、抵抗値がカウント値Ｂとしてディジタル変換される。
【０３４１】
一方、抵抗値が最も大きいセルＣは、読み出し終了時刻ｔＥになってもノード電位ＳＥＮは参照電圧ＶＲＥＦよりも高く、抵抗値カウンタのカウント値Ｃは最大値となる。その為、抵抗値がカウンタ値としてディジタル変換されずに動作を終了する。
【０３４２】
図２２は、主として、異なるメモリセルＤ〜Ｆの各々からの読み出し処理に関するノード電位ＳＥＮと、参照電圧ＶＲＥＦと、抵抗値カウンタ３２の出力信号ＣＯＵＮＴ＿ＯＵＴとの関係を示すタイミングチャートである。この図は図１６の充電方式のタイミングチャートに基づく。各信号の意味は上述の通りである。
【０３４３】
図２２において、ノード電位ＳＥＮは、図１４において、センス中に各メモリセルＤ〜Ｆの抵抗状態に従って変化するノードＳＥＮの各ノード電位である。
【０３４４】
メモリセルＤ（図２２では「セルＤ」と記載）は、複数の乱数生成用メモリセルの内、抵抗値が最も大きいメモリセルを指す。同様に、メモリセルＦ（図２２では「セルＦ」と記載）は抵抗値が最も小さいメモリセルを指し、メモリセルＥ（図２２では「セルＥ」と記載）は、抵抗値がメモリセルＤよりも小さくてメモリセルＦよりも大きい標準的なメモリセルを指す。以下、図に合わせて、「セルＤ」、「セルＥ」、「セルＦ」と呼ぶ。
【０３４５】
図１６と同様のシーケンス動作より、時刻ｔＳになるとＬＯＡＤ＝‘Ｈ’→‘Ｌ’となり、抵抗状態の読み出しが開始すると同時に、抵抗値カウンタのカウントが開始される。
【０３４６】
セルＤは抵抗値が最も大きいので、ロードトランジスタ３４のロード電流によってノード電位ＳＥＮの電位上昇が最も早く、読み出し開始時刻ｔＳからの時間Ｔ２ｄでノード電位ＳＥＮは参照電圧ＶＲＥＦを上回る。このとき、コンパレータ３１の出力信号が変化して、抵抗値カウンタのカウントアップが停止する。そのときのカウント値ＤがＣＯＵＮＴ＿ＯＵＴに維持され、抵抗値がカウント値Ｄとしてディジタル変換される。
【０３４７】
また、セルＥは抵抗値がセルＤより小さくセルＦより大きいので、ノード電位ＳＥＮの電位は、読み出し開始時刻ｔＳからの時間Ｔ２ｅでノード電位ＳＥＮは参照電圧ＶＲＥＦを上回る。このとき、コンパレータ３１の出力信号が変化して、抵抗値カウンタのカウントアップが停止する。そのときのカウント値ＥがＣＯＵＮＴ＿ＯＵＴに維持され、抵抗値がカウント値Ｅとしてディジタル変換される。
【０３４８】
一方、抵抗値が最も小さいセルＦの場合、読み出し終了時刻ｔＥになってもノード電位ＳＥＮは参照電圧ＶＲＥＦよりも低く、抵抗値カウンタのカウント値Ｆは最大値となる。その為、抵抗値がカウンタ値としてディジタル変換されずに動作を終了する。
【０３４９】
一方、セルＣやセルＦの場合、サイクル内でセルの抵抗値をカウンタ値に変換できていないので、抵抗値がどの様な値なのか不明である。とりわけ乱数生成においては、２回の読み出しによる抵抗値の揺らぎを捕らえる為には抵抗値をカウント値に変換する必要がある。しかし、その様な抵抗値のディジタル変換が出来ないセルが含まれることは、乱数生成が出来ないことを意味し、乱数生成技術の根幹にかかわる問題になる。
【０３５０】
それを解決するために読み出し時のセンス時間Ｔ２３（ｔＳ〜ｔＥ間の時間）を長くすることも考えられる。しかし、この場合、読み出しサイクル時間が長くなってしまい、副作用として乱数の生成時間が長くなるという課題が生じる。
【０３５１】
他の解決方法として、キャパシタ３６の容量値を小さくする、あるいは、ロード電流やＶＲＥＦ電圧を調整することによって、全てのメモリセルの判定時間を短くし、セルＣやセルＦをセンス時間内で検出することも考えられる。しかし、この場合、判定時間の早いセルＡやセルＤは抵抗値カウンタの分解能時間よりも揺らぎによる変動時間が小さくなり、揺らぎ変化がディジタル値の差として検出できなくなるという別の課題が生じる。
【０３５２】
本開示は、判定時間の短いセル（セルＡやセルＤ）は抵抗値の揺らぎを分解能以上の時間で検出でき、かつ、判定時間の長いセル（セルＣやセルＦ）については抵抗値の揺らぎの判定時間を短縮して、乱数生成機能の正常化と高速化を両立するものである。以下にその詳細を図面を用いて説明する。
【０３５３】
〔センスアンプの第１の実施形態〕
図２３は、第１の実施形態にかかるセンスアンプ５００のブロック図である。「センスアンプ」は「読み出し回路」とも呼ばれ得る。後述するセンスアンプの第２および第３の実施形態についても同様である。センスアンプの第１〜第３の実施形態のそれぞれは、図１２および図１４に示すセンスアンプ０１２の代わりに利用され得る。ただし、センスアンプの第１〜第３の実施形態のそれぞれには、図１４に示すセンスアンプ０１２の構成要素と共通する部分が含まれる。以下では、図１４で既に記載の素子や回路についてはその説明を省略し、異なる部分のみを説明する。
【０３５４】
センスアンプ５００は、図１４の構成を基本として、さらに参照（リファレンス）定電圧発生回路５０４と、参照（リファレンス）電圧変動回路５０１と、スイッチ回路５０２と、キャパシタ５０３とを有している。定電圧発生回路５０４と、参照電圧変動回路５０１と、スイッチ回路５０２とを含む回路は、本開示における「参照電圧生成回路」の一例である。
【０３５５】
リファレンス定電圧発生回路５０４は、一定の電圧を発生させる。リファレンス電圧変動回路５０１は、リファレンスノードＶＲＥＦの電圧を時間と共に変動させる。スイッチ回路５０２は、論理制御回路０１０から出力される制御信号ＲＦＡＣＴによって、リファレンス定電圧発生回路５０４の出力ＶＲＣとリファレンスノードＶＲＥＦとを接続し、または切断する。キャパシタ５０３は、リファレンスノードＶＲＥＦに接続されている。
【０３５６】
なお、センスアンプ回路３０は、選択メモリセル２１ｓの一端と電気的に接続されるための端子Ｔｒ１と、リファレンスノードＶＲＥＦに接続されている端子Ｔｒ２とが示されている。
【０３５７】
図２４は、リファレンス定電圧発生回路５０４の一構成例である。
【０３５８】
この例では、リファレンス定電圧発生回路５０４は、分圧用抵抗素子５０５と、Ｎチャネルトランジスタ５０６と、Ｐチャネルトランジスタ５０７と、差動アンプ５０８と、電圧選択回路５０９とを有している。
【０３５９】
分圧用抵抗素子５０５は、ポリシリコン等で構成されており、その分圧用抵抗素子５０５内の３２箇所に出力端子が設けられて分圧電圧を得られる様に構成されている。分圧用抵抗素子５０５の末端の一方がＮチャネルトランジスタ５０６のドレイン端子に接続されている。
【０３６０】
Ｎチャネルトランジスタ５０６は、ソースがグランドに、ゲートが本リファレンス定電圧発生回路のイネーブル信号ＲＣＥＮに接続されている。
【０３６１】
Ｐチャネルトランジスタ５０７のソースはＶＤＤ端子に接続され、ドレインは分圧用抵抗素子５０５の他端に接続され、ゲートは差動アンプ５０８の出力端子に接続されている。
【０３６２】
差動アンプ５０８は、プラス（＋）の入力端子に基準電圧ＶＢＡＳＥが接続され、マイナス（−）入力端子に分圧用抵抗素子５０５の中間ノードＦ点が接続されている。
【０３６３】
電圧選択回路５０９は、分圧用抵抗素子の３２箇所の所定中間端子の電圧を入力とし、その内の一つの電圧を選択信号ＶＲＣＳＥＬ[４：０]に従って選択し、出力端子ＶＲＣへ出力する。
【０３６４】
リファレンス定電圧発生回路５０４の活性化時には、Ｐチャネルトランジスタ５０７と差動アンプ５０８によって、分圧用抵抗素子５０５の中間ノードＦ点の電圧が基準電圧ＶＢＡＳＥと同一になる様に制御される。電圧選択回路５０９は、ＶＤＤの電圧変動に依存しない基準電圧ＶＢＡＳＥに基づいて電圧を選択することができる。これにより、リファレンス定電圧発生回路５０４は、ＶＤＤの電圧変動の影響を受ける事無く、選択的に所定の一定電圧を出力することが出来る。図２５は、本開示にかかるリファレンス電圧変動回路５０１の構成例を示す。このリファレンス電圧変動回路５０１は、アップスロープ型である。
【０３６５】
リファレンス電圧変動回路５０１は、大きく分けて、定電流源部５１４および変動制御部５２２を有している。
【０３６６】
定電流源部５１４は、定電流源５１０と、Ｐチャネルトランジスタ５１１とを有する。定電流源５１０は、定電流Ｉｓ０を発生する。Ｐチャネルトランジスタ５１１のソースはＶＤＤ端子に接続され、ドレインおよびソースは定電流源５１０に接続されている。
【０３６７】
変動制御部５２２は、Ｐチャネルトランジスタ５１５と、Ｐチャネルトランジスタ５１７と、反転論理素子５１９と、ＮＡＮＤ論理素子５２０とを有する。
【０３６８】
Ｐチャネルトランジスタ５１５のソースはＶＤＤ端子に接続され、ドレインはＰチャネルトランジスタ５１７のドレイン又はソースの一方に接続されている。また、Ｐチャネルトランジスタ５１５のゲートは、定電流源部５１４内のＰチャネルトランジスタ５１１のドレイン及びゲートとカレントミラー接続されている。
【０３６９】
Ｐチャネルトランジスタ５１７は、そのゲートにＮＡＮＤ論理素子５２０の出力が接続されており、スイッチとして機能する。
【０３７０】
変動制御部５２２は、Ｐチャネルトランジスタ５１７がオンするとミラー電流ＩｓｐがＶＲＥＦノードに流れ込み、ＶＲＥＦ電圧を時間と共に上昇させる。スロープ方向指定信号ＵＰＳＬＰはアップスロープ型電圧変動の際に‘Ｈ’が入力されている。
【０３７１】
なお、Ｐチャネルトランジスタ５１１と５１５のミラー比の変更でＩｓｐ電流量を変えることで、時間に対するＶＲＥＦ電圧の変動量を任意に調整する機能を有することも可能である。
【０３７２】
図２４のリファレンス定電圧発生回路と図２５のアップスロープ型電圧変動回路を搭載した放電型のセンスアンプの動作を図２６のタイミングチャートと共に説明する。
【０３７３】
なお、タイミングチャート２６の基本的な動作は図２１と同様であるので、必要な部分についてのみ説明する。なお、以下には、信号のロウレベルを‘Ｌ’、ハイレベルを‘Ｈ’と記載する。
【０３７４】
図２１と同様のシーケンス動作より、時刻ｔＳ以前ではＶＲＥＦ変動信号ＲＦＡＣＴが‘Ｌ’であることにより、ＶＲＥＦノードの電圧はリファレンス定電圧発生回路５０４が出力する一定電圧ＶＲＥＦを維持している。時刻ｔＳになるとＰＲＥ＝‘Ｌ’→‘Ｈ’、ＬＯＡＤ＝‘Ｈ’→‘Ｌ’となり、抵抗状態の読み出しセンスが開始すると同時に、抵抗値カウンタのカウントが開始される。
【０３７５】
セルＡは抵抗値が最も小さいので、ノード電位ＳＥＮの電位降下は最も早く、読み出し開始時刻ｔＳからの時間Ｔ２ａでノード電位ＳＥＮは参照電圧ＶＲＥＦを下回る。このとき、コンパレータ３１の出力信号が変化して、抵抗値カウンタのカウントアップが停止する。そのときのカウント値ＡがＣＯＵＮＴ＿ＯＵＴに維持され、抵抗値がカウント値Ａとしてディジタル変換される。
【０３７６】
また、セルＢは抵抗値がセルＡより大きくセルＣより小さいので、ノード電位ＳＥＮの電位は、読み出し開始時刻ｔＳからの時間Ｔ２ｂでノード電位ＳＥＮは参照電圧ＶＲＥＦを下回る。このとき、コンパレータ３１の出力信号が変化して、抵抗値カウンタのカウントアップが停止するそのときのカウント値ＢがＣＯＵＮＴ＿ＯＵＴに維持され、抵抗値がカウント値Ｂとしてディジタル変換される。
【０３７７】
一方、時刻ｔＡＣＴになるとＶＲＥＦ変動信号ＲＦＡＣＴが‘Ｌ’→‘Ｈ’に変化する。このタイミングでスイッチ５０２はオフとなり、リファレンス定電圧発生回路５０４の出力ＶＲＣはノードＶＲＥＦから切り離される。同時にリファレンス電圧変動回路５０１が活性化し、一定電流を流してノードＶＲＥＦに電荷を供給する。これによりノードＶＲＥＦの電圧は時間と共に上昇する。
【０３７８】
これにより、抵抗値が最も大きいセルＣにおいても、ノードＳＥＮの電位が参照電圧ＶＲＥＦを下回るまでの時間がセンス時間Ｔ２３内に得られ、その時間は読み出し開始時刻ｔＳから時間Ｔ２ｃとなる。このとき、コンパレータ３１の出力信号が変化して、抵抗値カウンタ３２のカウントアップが停止するそのときのカウント値ＣがＣＯＵＮＴ＿ＯＵＴに維持され、抵抗値がカウント値Ｃとしてディジタル変換される。
【０３７９】
以上の様に、本構成例では、メモリセルの抵抗状態（記憶情報）に伴ってノードＳＥＮの電位が時間と共に降下する読み出し方式において、センス開始後の所定時間でリファレンスノードＶＲＥＦの電圧を所定のタイミングで時間と共に上昇変化させるように、スイッチ５０２を切り替える。抵抗値が最も大きいセルについてもセンス時間内にノードＳＥＮの電位が参照電圧ＶＲＥＦを下回るため、選択された全てのメモリセルについて、抵抗値のディジタル変換を行うことが可能となる。この結果、抵抗値状態をディジタル変換することができ、ばらつきを持つ全てのメモリセルの抵抗状態を短時間に検知することが可能となる。
【０３８０】
なお、以上の説明においては、ＶＲＥＦ変動信号ＲＦＡＣＴの電圧変化時刻ｔＡＣＴがセンス開始時刻ｔＳよりも後となる形態で説明したが、ＶＲＥＦ変動信号ＲＦＡＣＴの変化時刻は、時間に対するリファレンスノードＶＲＥＦの電圧の変動量と共に調整可能である。例えば、ｔＡＣＴ＝ｔＳでも構わない。
【０３８１】
これにより、放電方式のセンスアンプにおいて、短時間で全ての抵抗状態がディジタルデータとして変換することが可能となる。更に、２回の読み出しによる抵抗値の揺らぎ変化を全てのメモリセルに対して短時間で検知することが可能となる。これにより、高速な乱数生成装置を実現することができる。
【０３８２】
図２７は、本開示にかかるリファレンス電圧変動回路５０１の他の構成例を示す。このリファレンス電圧変動回路５０１は、ダウンスロープ型である。なお、センスアンプ５００の構成例は図２３と同様であり、リファレンス電圧変動回路５０１内の構成が、アップスロープ型とは異なる。
【０３８３】
リファレンス電圧変動回路５０１は、大きく分けて、定電流源部５２３および変動制御部５２４を有している。
【０３８４】
定電流源部５２３は、図２５に示す定電流源部５１４に、さらにＰチャネルトランジスタ５１２およびＮチャネルトランジスタ５１３が設けられている。Ｐチャネルトランジスタ５１２のソースはＶＤＤ端子に接続され、ゲートはＰチャネルトランジスタ５１１のゲート,ドレインとカレントミラー接続されている。Ｎチャネルトランジスタ５１３のソースはグランド端子に、ドレインおよびゲートはＰチャネルトランジスタ５１２のドレインに接続されている。
【０３８５】
変動制御部５２４は、Ｎチャネルトランジスタ５１６と、Ｎチャネルトランジスタ５１８と、ＮＯＲ論理素子５２１とを有する。
【０３８６】
Ｎチャネルトランジスタ５１６のソースはグランド端子に接続され、ドレインはＮチャネルトランジスタ５１８のドレイン又はソースの一方に接続されている。また、Ｎチャネルトランジスタ５１６のゲートは定電流源部５２３内のＮチャネルトランジスタ５１３のドレイン及びゲートとカレントミラー接続されている。
【０３８７】
Ｎチャネルトランジスタ５１８は、ゲートにＮＯＲ論理素子５２１の出力が接続されており、スイッチとして機能する。
【０３８８】
変動制御部５２４は、Ｎチャネルトランジスタ５１８がオンするとミラー電流ＩｓｎによるＶＲＥＦノードからの引き抜き電流が流れ、ＶＲＥＦ電圧を時間と共に下降させる。スロープ方向指定信号ＵＰＳＬＰはダウンスロープ型電圧変動の際に‘Ｌ’が入力されている。
【０３８９】
なお、Ｎチャネルトランジスタ５１３と５１６のミラー比の変更でＩｓｎ電流量を変えることで、時間に対するＶＲＥＦ電圧の変動量を任意に調整する機能を有することも可能である。  図２４のリファレンス定電圧発生回路と図２７のダウンスロープ型電圧変動回路を搭載した充電型のセンスアンプの動作を図２８のタイミングチャートと共に説明する。
【０３９０】
なお、タイミングチャート１１０の基本的な動作は図２２と同様であるので、必要な部分についてのみ説明する。
【０３９１】
図２２と同様のシーケンス動作より、時刻ｔＳ以前ではＶＲＥＦ変動信号ＲＦＡＣＴが‘Ｌ’よりＶＲＥＦノードの電圧はリファレンス定電圧発生回路の出力する一定電圧Ｖｒｅｆを維持している。時刻ｔＳになるとＰＲＥ＝‘Ｌ’→‘Ｈ’、ＬＯＡＤ＝‘Ｈ’→‘Ｌ’となり、抵抗状態の読み出しセンスが開始すると同時に、抵抗値カウンタのカウントが開始される。
【０３９２】
セルＤは抵抗値が最も大きいので、ノード電位ＳＥＮの電位上昇は最も早く、読み出し開始時刻ｔＳからの時間Ｔ２ｄでノード電位ＳＥＮは参照電圧ＶＲＥＦを上回る。このとき、コンパレータ３１の出力信号が変化して、抵抗値カウンタのカウントアップが停止する。そのときのカウント値ＤがＣＯＵＮＴ＿ＯＵＴに維持され、抵抗値がカウント値Ｄとしてディジタル変換される。
【０３９３】
また、セルＥの抵抗値がセルＦより大きくセルＤより小さいので、ノード電位ＳＥＮの電位は、読み出し開始時刻ｔＳからの時間Ｔ２ｅでノード電位ＳＥＮは参照電圧ＶＲＥＦを下回る。このとき、コンパレータ３１の出力信号が変化して、抵抗値カウンタのカウントアップが停止する。そのときのカウント値ＥがＣＯＵＮＴ＿ＯＵＴに維持され、抵抗値がカウント値Ｅとしてディジタル変換される。
【０３９４】
一方、時刻ｔＡＣＴになるとＶＲＥＦ変動信号ＲＦＡＣＴが‘Ｌ’→‘Ｈ’に変化する。このタイミングでスイッチ５０２はオフとなり、リファレンス定電圧発生回路５０４の出力ＶＲＣはノードＶＲＥＦから切り離される。同時にリファレンス電圧変動回路５０１が活性化し、一定電流を流してノードＶＲＥＦから電荷を引き抜く。これによりノードＶＲＥＦの電圧は時間と共に下降する。
【０３９５】
これにより、抵抗値が最も小さいセルＦにおいても、ノードＳＥＮの電位が参照電圧ＶＲＥＦを上回るまでの時間がセンス時間Ｔ２３内に得られ、その時間は読み出し開始時刻ｔＳから時間Ｔ２ｆとなる。このとき、コンパレータ３１の出力信号が変化して、抵抗値カウンタ３２のカウントアップが停止する。そのときのカウント値ＦがＣＯＵＮＴ＿ＯＵＴに維持され、抵抗値がカウント値Ｆとしてディジタル変換される。
【０３９６】
以上の様に、本構成例は、メモリセルの抵抗状態（記憶情報）に伴ってノードＳＥＮの電位が時間と共に上昇する読み出し方式において、センス開始後の所定時間でクロック周期に従ってリファレンスノードＶＲＥＦの電圧を所定のタイミングで時間と共に下降変化させるように、スイッチ５０２を切り替える。これにより、抵抗値が最も小さいセルについてもセンス時間内にノードＳＥＮの電位が参照電圧ＶＲＥＦを上回るため、選択された全てのメモリセルについて、抵抗値のディジタル変換を行うことが可能となる。この結果、抵抗値状態をディジタル変換することができ、ばらつきを持つ全てのメモリセルの抵抗状態を短時間に検知することが可能となる。
【０３９７】
なお、以上の説明においては、ＶＲＥＦ変動信号ＲＦＡＣＴの電圧変化時刻ｔＡＣＴがセンス開始時刻ｔＳよりも後となる形態で説明したが、ＶＲＥＦ変動信号ＲＦＡＣＴの変化時刻は時間に対するリファレンスノードＶＲＥＦの電圧の変動量と共に調整可能である。例えば、ｔＡＣＴ＝ｔＳでも構わない。
【０３９８】
これにより、充電方式のセンスアンプにおいて、短時間で全ての抵抗状態がディジタルデータとして変換することが可能となる。更に、２回の読み出しによる抵抗値の揺らぎ変化を全てのメモリセルに対して短時間で検知することが可能となる。これにより、高速な乱数生成装置を実現することができる。
【０３９９】
以上の説明では、リファレンス電圧変動回路５０１は、放電型センス方式で用いるアップスロープ型電圧変動回路（図２５）と充電型センス方式で用いるダウンスロープ型電圧変動回路（図２７）とを別個の回路として説明した。よって、これらをそれぞれ有するセンスアンプもまた、別個の回路として得られる。しかしながら、制御回路の設計次第では、センスアンプを放電型センス方式の回路として用いることもできるし、充電型センス方式の回路として用いることもできる。つまり、放電型センス方式および充電型センス方式のセンスアンプは、１つの回路に統合し得る。その場合、センスアンプ内のリファレンス電圧変動回路５０１も統合する必要がある。
【０４００】
図２９は、放電型センス方式および充電型センス方式のセンスアンプに利用し得るリファレンス電圧変動回路５０１の構成例を示す。
【０４０１】
図２９のリファレンス電圧アップダウンスロープ選択型変動回路の構成要素は、図２５と図２７を組み合わせた構成であり、同様の構成要素については同一の符号を付して、詳細な説明は省略する。ただし、スロープ方向指定信号ＵＰＳＬＰは、アップスロープ型の場合は‘Ｈ’を入力し、ダウンスロープ型の場合は‘Ｌ’を入力する。
【０４０２】
以上の様に、リファレンス電圧変動回路を放電型センス方式と充電型センス方式の両者に対応した回路構成とすることで、メモリセルに書き込まれた抵抗値帯に対して、センス方式と電圧変動方向の最適化が可能となる。
【０４０３】
〔センスアンプの第２の実施形態〕
次に、図３０を参照しながら、センスアンプの第２の実施形態を説明する。
【０４０４】
図３０は、本開示の第２の実施形態にかかるセンスアンプ５３３のブロック図である。図１４で既に説明した構成については、同一の符号を付してその説明を省略し、異なる部分のみを説明する。
【０４０５】
センスアンプ５３３は、リファレンス定電圧発生回路５０４と、キャパシタ５０３と、リファレンス電圧変動回路５３１と、スイッチ回路５３０とを有している。リファレンス定電圧発生回路５０４と、リファレンス電圧変動回路５３１と、スイッチ回路５３０とを含む回路は、本開示における「参照電圧生成回路」の一例である。
【０４０６】
リファレンス電圧変動回路５３１の具体的な構成は後述する。
【０４０７】
スイッチ回路５３０は、論理制御回路０１０（図１２）からの制御信号ＲＦＡＣＴに従って、リファレンス定電圧発生回路５０４の出力ＶＲＣか、リファレンス電圧変動回路５３１の出力ＳＬＰの何れかを切り替えて、ノードＶＲＥＦに接続する。
【０４０８】
本構成によるシーケンス及び動作は、図２６にて説明した放電型センス型や図２８にて説明した充電型センス型と同じである。ＲＦＡＣＴが‘Ｌ’の時は、リファレンス定電圧発生回路５０４の出力ＶＲＣがリファレンスノードＶＲＥＦに接続され、リファレンスノードＶＲＥＦの電圧をリファレンス定電圧発生回路５０４によって一定電圧に制御される。一方、ＲＦＡＣＴが‘Ｈ’の時は、リファレンス電圧変動回路５３１の出力がリファレンスノードＶＲＥＦに接続され、リファレンスノードＶＲＥＦの電圧がリファレンス電圧変動回路５３１によって時間と共に上昇または降下する様に制御される。
【０４０９】
図３１は、リファレンス電圧変動回路５３１の回路構成例を示す。図２９と同様の素子及び構成は説明を省略する。
【０４１０】
リファレンス電圧変動回路５３１は、大きく分けて、定電流源部５２５および変動制御部５３２を有している。
【０４１１】
定電流源部５２５は、図２９に示す構成と同じである。
【０４１２】
変動制御部５３２は、図２５に示す変動制御部５２２の構成と、図２７に示す変動制御部５２４の構成とを包含する。変動制御部５２２に対応する構成として、変動制御部５３２は、Ｐチャネルトランジスタ５１５と、Ｐチャネルトランジスタ５１７と、反転論理素子５１９とを有する。また、変動制御部５２４に対応する構成として、変動制御部５３２は、Ｎチャネルトランジスタ５１６と、Ｎチャネルトランジスタ５１８とを有する。
【０４１３】
Ｐチャネルトランジスタ５１７のソース端子はＰチャネルトランジスタ５１５のドレイン端子と接続され、ドレイン端子は出力ノードＳＬＰと接続されている。さらに、ゲート端子は、反転論理素子５１９の出力端子と接続されている。Ｎチャネルトランジスタ５１８のソース端子はＮチャネルトランジスタ５１６のドレイン端子と接続され、ドレイン端子は出力ノードＳＬＰと接続されている。さらに、Ｎチャネルトランジスタ５１８のゲート端子には、反転論理素子５１９の出力端子が接続されている。反転論理素子５１９の入力端子には論理制御回路０１０からのスロープ方向指定信号ＵＰＳＬＰが入力される。ＵＰＳＬＰ＝‘Ｈ’の時は、Ｐチャネルトランジスタ５１７が導通し、Ｎチャネルトランジスタ５１８は非導通となる。これにより、定電流源部５２５からのミラー電流Ｉｓｐが、Ｐチャネルトランジスタ５１５からノードＳＬＰに流れ込む様に動作する。一方、ＵＰＳＬＰ＝‘Ｌ’の時は、Ｐチャネルトランジスタ５１７は非導通となり、Ｎチャネルトランジスタ５１８が導通するので、定電流源部５２５からのミラー電流Ｉｓｎが、ノードＳＬＰからＮチャネルトランジスタ５１６へ流れ出す様に動作する。
【０４１４】
以上のように、図３０、図３１の回路構成において、図２６や図２８に示す様に、ＲＦＡＣＴを‘Ｌ’から‘Ｈ’に変化させることで、リファレンスノードＶＲＥＦの電圧を時間と共に上昇又は下降させることができる。
【０４１５】
上述したように、センスアンプに関する第１および第２の実施形態は、リファレンス電圧変動回路を設けて、リファレンスノードの電圧ＶＲＥＦを、メモリセルの記憶情報に対応するノードＳＥＮの電位が変化する方向（減少方向／増加方向）とは逆方向（増加方向／減少方向）に変化させる。このようなリファレンスノード（参照電圧ノード）の電圧を用いて、選択メモリセルの記憶情報の読み出しを行えば、センス時間内にノードＳＥＮの電位が参照電圧ＶＲＥＦを下回るまたは上回ることになる。よって、メモリセルの抵抗値をディジタル変換することが可能になる。
【０４１６】
〔センスアンプの第３の実施形態〕
次に、図３２および図３３を参照しながら、センスアンプの第３の実施形態を説明する。
【０４１７】
図３２は、本開示の第３の実施形態にかかるセンスアンプ５３４のブロック図である。図１４で既に説明した構成については、同一の符号を付してその説明は省略し、異なる部分のみを説明する。
【０４１８】
第３の実施形態によるセンスアンプ５３４は、リファレンス電圧発生回路５３５およびキャパシタ５０３を有する。ただし、キャパシタ５０３は本開示の第３の実施形態において必須の構成要素ではない。リファレンス電圧発生回路５３５は、本開示における「参照電圧生成回路」の一例である。
【０４１９】
センスアンプ５３５はリファレンス電圧変動制御信号ＲＦＡＣＴを受け取ると、スロープ方向指定信号ＵＰＳＬＰとクロック信号ＣＬＫに従って、リファレンスノードＶＲＥＦにおけるリファレンス電圧を、アップ方向又はダウン方向に段階的に変化させる。
【０４２０】
図３３は、リファレンス電圧発生回路５３５の詳細な構成を示す。図３３に示されている一部の構成要素は、図２４にも示されている。特に説明する場合以外は、同じ構成要素には同一の符号を付し、その説明を省略する。
【０４２１】
リファレンス電圧発生回路５３５は、電圧選択回路５０９および選択制御回路５３６を有している。
【０４２２】
電圧選択回路５０９は、分圧用抵抗素子５０５の３２箇所の所定中間端子の電圧を入力として受け取る。そして電圧選択回路５０９は、その内の一つの電圧を、選択信号ＶＲＣＳＥＬ[４：０]に従って選択し、出力端子ＶＲＣへ出力する。
【０４２３】
選択制御回路５３６は、論理制御回路０１０（図１２）からのスロープ方向制御信号ＵＰＳＬＰと変動制御信号ＲＦＡＣＴとクロック信号ＣＬＫで制御される。選択制御回路５３６は、選択信号の初期値ＶＲＣＳＥＬＳ[４：０]をスタート時のＶＲＣＳＥＬ[４：０]値として入力し、変動制御信号ＵＰＳＬＰが入力されると、クロックＣＬＫの周期でスロープ方向制御信号ＵＰＳＬＰに従ってＶＲＥＦノードのリファレンス電圧をアップ又はダウンさせる制御を行う。
【０４２４】
次に、図３４を参照しながら、リファレンス電圧発生回路５３５のアップスロープ動作の詳細を説明する。
【０４２５】
図３４は、アップスロープ動作を行う放電型センス動作のタイミングチャートである。
【０４２６】
図３４において、リファレンス電圧の変動方向はアップスロープ変動より、変動制御信号ＵＰＳＬＰ＝‘Ｈ’、リファレンス電圧の初期選択値ＶＲＣＳＥＬＳ[４：０]＝‘０ｆｈ’（１６進数表現）である。クロックＣＬＫは一定の周波数で入力されている。リファレンス電圧はＶＲＣＳＥＬ[４：０]＝‘０ｆｈ’によって電圧Ｖｒｅｆとなっている。時刻ｔＳで、ＬＯＡＤ＝‘Ｈ’→‘Ｌ’となり、センス動作が開始される。時刻ｔＳで、選択メモリセル（例えばセルＣ）に電流が流れ、センスノードＳＥＮの電位降下が開始し、また、抵抗値カウンタ３２のカウントアップが開始する。
【０４２７】
時刻ｔＡＣＴで変動制御信号ＲＦＡＣＴが‘Ｈ’になると、ＶＲＥＦノードの電圧が上昇方向に変化を開始する。ＶＲＥＦノード電圧の変化タイミングは、選択制御回路５３６によってクロックＣＬＫの一周期毎に到来する。ＶＲＣＳＥＬ[４：０]の値が１つカウントアップするごとに、リファレンスノードＶＲＥＦのノード電圧はΔＶだけ上昇する。具体例を以下に示す。
ＶＲＣＳＥＬ[４：０]＝‘０ｆｈ’でＶＲＥＦノード電圧＝Ｖｒｅｆ(初期)であり、
ＶＲＣＳＥＬ[４：０]＝‘１０ｈ’で電圧＝Ｖｒｅｆ＋ΔＶ、
ＶＲＣＳＥＬ[４：０]＝‘１１ｈ’で電圧＝Ｖｒｅｆ＋２*ΔＶ、
ＶＲＣＳＥＬ[４：０]＝‘１２ｈ’で電圧＝Ｖｒｅｆ＋３*ΔＶ、
・
・
・
ＶＲＣＳＥＬ[４：０]＝‘１８ｈ’で電圧＝Ｖｒｅｆ＋９*ΔＶ
【０４２８】
また、抵抗値カウンタ３２のカウント値はクロックＣＬＫの一周期毎にカウントアップされ、読み出しセンス開始時刻ｔＳからＴ２ｃとなったところで、選択メモリセル（セルＣ）によるセンスノードＳＥＮのノード電圧がＶｒｅｆ＋９*ΔＶとなる。選択メモリセル（セルＣ）によるセンスノードＳＥＮの電圧がリファレンスノードＶＲＥＦの電圧を下回ると、コンパレータ３１の出力信号が変化して抵抗値カウンタ３２のカウントアップが停止する。そのときのカウント値（ｃ）がＣＯＵＮＴ＿ＯＵＴに維持され、抵抗値状態がカウント値としてディジタル変換される。
【０４２９】
以上の様に、本開示によるセンスアンプの第３の実施形態は、メモリセルの抵抗状態（記憶情報）に伴ってノードＳＥＮの電位が時間と共に下降する読み出し方式において、センス開始後の所定時間でクロック周期に従ってリファレンスノードＶＲＥＦの電圧を上昇変化させる。これにより、抵抗値が最も大きいセルについてもセンス時間内にノードＳＥＮの電位が参照電圧ＶＲＥＦを下回ることが可能となる。この結果、抵抗値状態をディジタル変換することができ、ばらつきを持つ全てのメモリセルの抵抗状態を短時間に検知することが可能となる。
【０４３０】
次に、図３５を参照しながら、リファレンス電圧発生回路５３５のダウンスロープ動作の詳細を説明する。
【０４３１】
図３５は、ダウンスロープ動作を行う充電型センス動作のタイミングチャートである。図３５において、リファレンス電圧の変動方向はダウンスロープ変動の際に、変動制御信号ＵＰＳＬＰ＝‘Ｌ’、リファレンス電圧の初期選択値ＶＲＣＳＥＬＳ[４：０]＝‘０ｆｈ’（１６進数表現）である。クロックＣＬＫは一定の周波数で入力されている。リファレンス電圧はＶＲＣＳＥＬ[４：０]＝‘０ｆｈ’によって電圧Ｖｒｅｆとなっている。時刻ｔＳで、ＬＯＡＤ＝‘Ｈ’→‘Ｌ’でセンス動作が開始される。時刻ｔＳで、ロード電流がと共に、選択メモリセル（例えばセルＦ）に電流が流れ、センスノードＳＥＮの電位上昇が開始する（ロード電流＞選択メモリセル電流）。また、抵抗値カウンタ３２のカウントアップが開始する。
【０４３２】
時刻ｔＡＣＴで変動制御信号ＲＦＡＣＴが‘Ｈ’になると、ＶＲＥＦノードの電圧が下降方向に変化を開始する。ＶＲＥＦノード電圧の変化タイミングは選択制御回路５３６によってクロックＣＬＫの一周期毎に到来する。ＶＲＣＳＥＬ[４：０]の値が１つカウントダウンするごとに、リファレンスノードＶＲＥＦのノード電圧はΔＶだけ下降する。
ＶＲＣＳＥＬ[４：０]＝‘０ｆｈ’でＶＲＥＦノード電圧＝Ｖｒｅｆ(初期)であり、
ＶＲＣＳＥＬ[４：０]＝‘０ｅｈ’で電圧＝Ｖｒｅｆ−ΔＶ、
ＶＲＣＳＥＬ[４：０]＝‘０ｄｈ’で電圧＝Ｖｒｅｆ−２*ΔＶ、
ＶＲＣＳＥＬ[４：０]＝‘０ｃｈ’で電圧＝Ｖｒｅｆ−３*ΔＶ、
・
・
・
ＶＲＣＳＥＬ[４：０]＝‘０５ｈ’で電圧＝Ｖｒｅｆ−１０*ΔＶ、
【０４３３】
また、抵抗値カウンタ３２のカウント値はクロックＣＬＫの一周期毎にカウントアップされ、読み出しセンス開始時刻ｔＳからＴ２ｆとなったところで、選択メモリセル（セルＦ）によるセンスノードＳＥＮのノード電圧がＶｒｅｆ−１０*ΔＶとなる。選択メモリセル（セルＦ）によるセンスノードＳＥＮのノード電圧がファレンスノードＶＲＥＦの電圧を上回ると、コンパレータ３１の出力信号が変化して抵抗値カウンタ３２のカウントアップが停止する。そのときのカウント値（ｄ）がＣＯＵＮＴ＿ＯＵＴに維持され、抵抗値状態がカウント値としてディジタル変換される。
【０４３４】
以上の様に、本開示によるセンスアンプの第３の実施形態は、メモリセルの抵抗状態（記憶情報）に伴ってノードＳＥＮの電位が時間と共に上昇する読み出し方式において、センス開始後の所定時間でクロック周期に従ってリファレンスノードＶＲＥＦの電圧を降下変化させる。これにより、抵抗値が最も小さいセルについてもセンス時間内にノードＳＥＮの電位が参照電圧ＶＲＥＦを上回ることが可能となる。この結果、抵抗値状態をディジタル変換することができ、ばらつきを持つ全てのメモリセルの抵抗状態を短時間に検知することが可能となる。
【０４３５】
なお、抵抗値カウンタ３２のカウント周期とＶＲＤＳＥＬ[４：０]のカウント周期を同じ周期として説明したが、必ずしも同一周期である必要は無い。
【０４３６】
（ＩＣカードへの応用例）
一つの応用例は、本開示により生成されるディジタルＩＤデータによる秘密鍵の暗号と、暗号化秘密鍵のフォーミングによる書き込みによるデータ隠蔽、さらに認証方法を開示する。
【０４３７】
図３６は、本開示の応用例にかかる通信システム６００の構成例を示すブロック図である。図３６において、通信システム６００は、リーダライタおよびデータサーバー６０１（以降、リーダライタと略す）と、ＩＣカード６０２とを備えている。リーダライタ６０１と、ＩＣカード６０２とは、例えば、それぞれが有するアンテナなどを介して無線による通信を行う。
【０４３８】
（リーダライタ側）
リーダライタ６０１は、ＲＡＭ６０３と、入出力インタフェース（Ｉ／Ｆ）部６０４と、ＣＰＵ６０５と、暗号処理回路６０６と、不揮発性メモリ装置６１５とを有している。
【０４３９】
リーダライタ６０１の入出力Ｉ／Ｆ部６０４は、外部との無線通信を行ってデータを送受信するためのインタフェースであり、たとえば無線通信回路として実現され得る。入出力Ｉ／Ｆ部６０４は、ＲＦアンテナを有している。入出力Ｉ／Ｆ部６０４は、所定の電磁波を輻射し、負荷の変化を利用して、ＩＣカード６０２が近づけられたか否かを検出する。また、入出力Ｉ／Ｆ部６０４は、例えば、発振回路（図示せず）から供給される所定の周波数の搬送波を、ＣＰＵ６０５から供給されるデータに基づいて変調する。入出力Ｉ／Ｆ部６０４は、該生成された変調波を、電磁波としてアンテナ（図示せず）から出力することで、近傍に配置されたＩＣカード６０２へと各種のデータを送信する。また、アンテナを介してＩＣカード６０２から送られた変調波を受信して復調し、得られたデータをＣＰＵ６０５に供給する。
【０４４０】
不揮発性メモリ装置６１５は、上述した、図２３〜図３５に示すセンスアンプを備えた乱数処理装置０２０（図１２）として実現され得る。ＩＣカード６０２は、図２３〜図３５に示すセンスアンプを備えた半導体装置を搭載していると言える。
【０４４１】
不揮発性メモリ装置６１５は、秘密鍵記憶部６０８と、データ記憶部６０９と、ＲＯＭ部６１０と、固有ＩＤ記憶部６１１と、全ＩＣカード固有ＩＤ記憶部６４０とを備えている。
【０４４２】
ＲＯＭ部６１０は、本開示の不揮発性メモリ装置６１５が備える第２種データ記憶用メモリセル群のうちの所定のアドレス領域に相当する。リーダライタ６０１のＣＰＵ６０５は、ＲＯＭ部６１０記憶されているプログラムをＲＡＭ６０３にロードし、該プログラムを用いて各種の処理を実行する。ＲＡＭ６０３にはＣＰＵ６０５が各種の処理を実行するために必要なデータなども一時的に記憶される。ＲＡＭ６０３は、ＳＲＡＭ（Static Random Access Memory）やＤＲＡＭ（Dynamic Random Access Memory）などの揮発性記憶装置が用いられてもよい。あるいは、ＲＡＭ６０３は、本開示の不揮発性メモリ装置の第２種データ記憶用メモリセル群の一部で構成されていてもよい。
【０４４３】
固有ＩＤ記憶部６１１は本開示のディジタルＩＤデータを生成に用いるメモリセル群であり、リーダライタに固有のＩＤデータが本開示の方式により生成できる。さらに全ＩＣカード固有ＩＤ記憶部は、第１種データまたは第２種データで記憶されるメモリセル群で構成されており、運用される複数のＩＣカード６０２で異なるディジタルＩＤデータの全てが記憶されている。なお、全ＩＣカードのディジタルＩＤデータは、リーダライタ固有のディジタルＩＤデータを暗号鍵として暗号化されたデータで記憶されることが望ましい。
【０４４４】
ＣＰＵ６０５は、暗号処理回路６０６を制御することにより、予め定められた暗号アルゴリズムに基づいて、データの暗号化と復号化を行う。暗号アルゴリズムとしては、トリプルＤＥＳ（Data Encryption Standard）、ＡＥＳ（Advanced Encryption Standard）などが例示できる。これらは、いわゆる１つの秘密鍵を用いて暗号と復号を行う共通鍵暗号方式の暗号アルゴリズムである。また、ＲＳＡ暗号といった秘密鍵と公開鍵の２つの異なる鍵を用い、暗号化時の鍵と、復号化時の鍵を異ならせることで暗号通信を行う公開鍵方式でもよい。この場合は、後述する秘密鍵記憶部６０８に通信相手の公開鍵と、通信者自身の秘密鍵の両方を格納してもよい。これらの重要な鍵データは、固有ＩＤ記憶部６１１から生成される本開示のディジタルＩＤデータを暗号鍵として暗号化して、暗号化秘密鍵や暗号化公開鍵として格納することが望ましい。前述した、ＰＵＦ技術を用いて生成されたディジタルＩＤデータはリーダライタに固有であり、複製やハッキングが困難である。従って、それを用いて暗号化された暗号化秘密鍵や暗号化公開鍵がコピーされてもディジタルＩＤデータがコピーできないＩＣ固有のデータであるため安全である。
【０４４５】
リーダライタ６０１においてデータの暗号化または復号化を行う場合、例えば、ＣＰＵ６０５は、不揮発性メモリ装置６１５内の所定のアドレス領域である秘密鍵記憶部６０８に記憶された暗号化秘密鍵を、本開示のディジタルＩＤデータを鍵として復号化し、元の秘密鍵を得て、暗号化または復号化すべきデータとともに、暗号処理回路６０６に供給する。暗号処理回路６０６は、供給された秘密鍵を用いてデータの暗号化または復号化を実行する。
【０４４６】
データ記憶部６０９は、ＣＰＵ６０５がプログラムを実行する上で必要なデータが記憶されている。データ記憶部６０９において、所定のデータは、本開示のディジタルＩＤデータを鍵として暗号化して記憶されていてもよい。なお、所定のデータは、初期状態のメモリセルを利用して記憶されていてもよいし、可変状態のメモリセルを利用して記憶されていてもよい。
【０４４７】
秘密鍵記憶部６０８としては、前述した第１種データ記憶用メモリセルを用いてもよいし、第２種データ記憶用メモリセルを用いてもよい。第２種データ記憶用メモリセル群９７を用いる場合は、他の一般的な不揮発性メモリを用いるのと大きな違いはない。第１種データ記憶用メモリセルを用いる場合は、抵抗変化素子の初期状態と可変状態との違いでデータを記憶するため、通常の読み出し閾値のコマンドではデータを読み出すことができない。よって、鍵情報の隠蔽が行える。第１実施形態で述べたように、可変状態にあるメモリセルから“０”と“１”のディジタルデータを読み出すためには、第２閾値を用いて“０”と“１”の判定が行なわれる。第２閾値で第１種データ記憶用メモリセル群９６を読み出すと、ほとんどのメモリセルが“０”にデコードされ、正規のデータを読み出せない。なお、秘密鍵記憶部６０８において、秘密鍵は、前述の暗号化秘密鍵として記憶されることが望ましい。
【０４４８】
また、メモリセルアレイ内の自由なアドレスに第１種データ記憶用メモリセル群９６と第２種データ記憶用メモリセル群９７とを配置できる。よって、プローブを用いて物理的に抵抗値を直接読み出すような解析を行おうとしても、そのメモリセルが第１種データ記憶用メモリセル群９６および第２種データ記憶用メモリセル群９７のいずれに属するのかを特定が困難である。更にディジタルＩＤデータで暗号化されたデータか、非暗号のデータかの区別が困難であるため、更に解析を複雑にせしめる。
【０４４９】
以上のように、図３６に示す通信システム６００は、秘密鍵の漏洩に対し強い耐タンパ性（tamper resistant）があるといえる。さらに第１種データ記憶用メモリセルや、本開示のディジタルＩＤデータは、高温においてのデータ信頼性にも優れ、データ誤りが許容されない秘密鍵の記憶および暗号化にも最適である。
【０４５０】
秘密鍵記憶部６０８に記憶される秘密鍵は、ＩＣカード６０２の秘密鍵記憶部６２６に記憶されている秘密鍵と同じものとされてもよい。ＩＣカード６０２に対応するリーダライタ６０１であって、ＩＣカード６０２に固有のディジタルＩＤデータであるカードＩＤの読み出しを許可されたリーダライタ６０１のみに、予め秘密鍵が記憶されていてもよい。
【０４５１】
固有のディジタルＩＤデータは、本開示の実施の形態で説明したＰＵＦ技術に基づき固有ＩＤ記憶部６２５にデータ誤りを内在した状態で記憶されている。
【０４５２】
固有ディジタルＩＤデータは前述したようにＩＣカードごとに固有の乱数になりうる。このため、ＩＣ固有の各種暗号化に用いることができる。
【０４５３】
（ＩＣカード側）
ＩＣカード６０２は、入出力インタフェース（Ｉ／Ｆ）部６２０と、ＣＰＵ６２１と、暗号処理回路６２２と、ＲＡＭ６２３と、不揮発性メモリ装置６３０とを有している。
【０４５４】
ＩＣカード６０２の入出力Ｉ／Ｆ部６２０は、外部との無線通信を行ってデータを送受信するためのインタフェースであり、たとえば無線通信回路として実現され得る。入出力Ｉ／Ｆ部６２０は、例えば、コイル状のアンテナとコンデンサにより構成されるＬＣ回路が一般的に用いられる。ＩＣカードのアンテナがリーダライタ６０１に近づけられると、リーダライタ６０１から輻射される所定の周波数の電磁波と共振するようになっている。また、入出力Ｉ／Ｆ部６２０は、アンテナにおいて交流磁界により励起された電流を整流化および安定化し、ＩＣカード６０２の各部に直流電源として供給する。
【０４５５】
入出力Ｉ／Ｆ部６２０は、アンテナを介して受信した変調波を検波して復調し、復調後のデータをデコードしてディジタルデータに復元しＣＰＵ６２１に供給する。また、デコードしたディジタルデータに周波数と位相をロック（ＰＬＬと呼ばれるクロック再生技術：装置内部に電圧可変のオシレータが搭載されており、入力されたディジタルデータにあわせて、位相誤差を検出および積分して制御用の電圧を生成し、オシレータの制御電圧として入力することで入力されたデータのサンプリング周波数を一致させ、かつ位相も固定したクロックを得る）させた受信用のクロック信号（図示せず）が発生され、ディジタルデータのデータラッチ用のクロック信号として供給される。
【０４５６】
さらに、入出力Ｉ／Ｆ部６２０は、所定の情報をリーダライタ６０１に送信する場合、ＣＰＵ６２１から入力されエンコードされたデータにしたがってアンテナの負荷に変動を発生させ変調し、アンテナを介してリーダライタ６０１に送信する。
【０４５７】
ＩＣカード６０２は不揮発性メモリ装置６３０を備える。不揮発性メモリ装置６３０は上述の乱数処理装置０２０（図１２）に対応する。よって以下の説明では、共通する要素については同一の符号および名称を付して適宜参照する。なお、本応用例では、不揮発性メモリ装置６３０が不揮発性記憶装置としても機能する。
【０４５８】
不揮発性メモリ装置６３０は、ＩＣカードごとに固有のディジタルＩＤデータを記憶する固有ＩＤ記憶部６２５と、秘密鍵データを記憶する秘密鍵記憶部６２６と、ＣＰＵ６２１がプログラムを実行する上で必要なデータが記憶されたデータ記憶部６２７と、ＣＰＵ６２１が実行するプログラムが記憶されたＲＯＭ部６２８とを備える。それらの全てが１個のメモリセルアレイ（図１のメモリセルアレイ９０、図１２のメモリセルアレイ０２１）に包含されている。そして、ＣＰＵ６２１はＲＯＭ部６２８に記憶されているプログラムをＲＡＭ６２３にロードし、実行するなどして各種の処理を行う。ＲＯＭ部６２８に記憶されたプログラムデータは、固有ＩＤ記憶部にあるメモリセル群をもとに生成される本開示のディジタルＩＤデータを鍵として用いて暗号化されて記憶されても良い。
【０４５９】
ＣＰＵ６２１は、暗号処理回路６２２を制御することにより、予め定められた暗号アルゴリズムに基づいて、データの暗号化と復号化を行う。上述したように、典型的な暗号方式には、送信側と受信側で同じ秘密鍵で暗号化と復号化を行う共通鍵方式と、異なる公開鍵と秘密鍵で暗号化と復号化を行う公開鍵方式がある。以下の説明では、共通鍵方式を採用した場合について説明する。
【０４６０】
なお、公開鍵方式では、ＩＣカード側が暗号化した暗号文データをＩＣカード６０２がリーダライタ６０１側に送信する場合は、予めリーダライタ６０１側から入手した公開鍵で暗号化する。逆に、リーダライタ６０１側から送られてきた暗号文データは、ＩＣカード６０２側で予め記憶してある秘密鍵にて復号する。以上の点以外は、公開鍵方式も共通鍵方式と同様である。公開鍵方式における公開鍵と秘密鍵は、互いに唯一のペアの鍵であるため、互いに暗号化されたデータを復号することで同時に相互認証もできることになる。
【０４６１】
ＩＣカード６０２においても、カードリーダでの説明と同様に秘密鍵記憶部６２６へ記憶する鍵データは、本開示のＰＵＦ技術に基づき固有ＩＤ記憶部６２５にあるディジタルＩＤデータにより暗号化された暗号化秘密鍵や暗号化公開鍵として保存される。更に、その記憶には第１種データ記憶用メモリセルにより記憶されうる。ＩＣカード６０２において、データの暗号化または復号化を行う場合、ＣＰＵ６２１が、不揮発性メモリ装置６３０内の第１種データ記憶用メモリセル群９６の一部である秘密鍵記憶部６２６に記憶された暗号化秘密鍵データを、図３の第１の閾値で読み出す特殊なリードコマンドにて読み出す。読み出された暗号化秘密鍵データは、本開示のディジタルＩＤデータにより復号化され元の秘密鍵データとする。ＣＰＵ６２１は、秘密鍵データを、暗号化または復号化すべきデータとともに、暗号処理回路６２２に供給する。暗号処理回路６２２は、供給された秘密鍵を用いて、供給されたデータの暗号化または復号化を実行する。
【０４６２】
データ記憶部６２７は、ＣＰＵ６２１がプログラムを実行する上で必要なデータが記憶されている。データ記憶部６２７において、所定のデータが平文のまま記憶されていてもよいし、秘密鍵で暗号化されて記憶されていてもよいし、ディジタルＩＤデータを鍵として暗号化されて記憶されてもよい。なお、所定のデータは、初期状態のメモリセルを利用して記憶されていてもよいし、可変状態のメモリセルを利用して記憶されていてもよい。
【０４６３】
このような暗号化と復号化の機能を備えたＩＣカードシステムにおいて、ＩＣカード６０２とリーダライタ６０１との通信の第１ステップについて以下に述べる。
【０４６４】
ＩＣカード６０２において各ＩＣカード固有のディジタルＩＤデータは、本開示の実施の形態で説明したＰＵＦ技術に基づき固有ＩＤ記憶部６２５にデータ誤りを内在した状態で存在している。
【０４６５】
ＣＰＵ６２１は、各ＩＣカード固有のディジタルＩＤデータを固有ＩＤ記憶部６２５から生成する。ＣＰＵ６２１は、読み出した暗号化秘密鍵データとディジタルＩＤデータを鍵として暗号処理回路６２２に供給する。暗号処理回路６２２は供給されたディジタルＩＤデータを鍵として暗号化秘密鍵を元の秘密鍵に復号化する。そして、今度は元の秘密鍵を用いてディジタルＩＤデータを暗号化する。暗号化された暗号化ディジタルＩＤデータは入出力Ｉ／Ｆ部６２０、６０４を介して、リーダライタ側のＣＰＵ６０５に供給される。
【０４６６】
ＣＰＵ６０５は、リーダライタ６０１内の不揮発性メモリ装置６１５の秘密鍵記憶部６０８から、秘密鍵データを読み出す。ＣＰＵ６０５は、秘密鍵データと、受信した暗号化ディジタルＩＤデータを、暗号処理回路６０６に供給する。暗号処理回路６０６は、供給された秘密鍵データを用いて、暗号化ディジタルＩＤデータを復号化する。復号化されたディジタルＩＤデータは全固有ＩＤ記憶部６１１が記憶している各ＩＤデータと照合される。各ＩＤデータの中に復号化されたＩＤデータと一致するものがあれば、通信したＩＣカード６０２がデータ通信を行う資格のある正規のＩＣカード６０２であると認証される。そして、その後のデータ通信が継続して実行される。
【０４６７】
リーダライタ６０１とＩＣカード６０２との相互認証において別の変形例を示す。
【０４６８】
リーダライタ６０１の全ＩＣカード固有ＩＤ記憶部６４０は、前述した中央値のオフセット量を変更して得られる複数のディジタルＩＤデータをＩＣカードごとに保管している。リーダライタ６０１は、オフセット量と、受け取りたいディジタルＩＤデータのアドレス情報を暗号化し、チャレンジデータとして、ＩＣカード６０２に送信する。ＩＣカード６０２は受け取ったチャレンジデータを復号化してオフセット量とアドレス情報を得て、それに応じたディジタルＩＤデータを暗号化し、レスポンスデータとしてリーダライタ６０１に返信する。
【０４６９】
リーダライタ６０１は受け取ったレスポンスデータを復号化して、ＩＣカード６０２ごとに固有のディジタルＩＤデータを、予め全ＩＣカード固有ＩＤ記憶部に登録されているＩＤデータと検索・照合を行い。所定のビット数以上が一致していることを確認してＩＣカードを認証する。
【０４７０】
レスポンスデータであるディジタルＩＤデータには、前述したような誤りデータを含んだ状態で送られるため、ハッキングに対して耐性が高い。ディジタルＩＤデータは、各ＩＣで異なる乱数でありデータ間に十分なハミング距離があれば所定のビット数の誤りデータがあったとしても何れのＩＣカードのＩＤデータかを特定することができる。このため、チャレンジデータの送信と、レスポンスデータの受信を繰り返すことで、ＩＣカードが正規のカードであることを特定できる。さらに認証に用いられているデータがＩＣカードごとに固有かつ誤りのあるデータであるためデータの解析が困難であり非常に高いセキュリティーが担保された認証が実現できる。
【０４７１】
以上のように、通信システム６００によれば、固有ディジタルＩＤデータ生成、秘密鍵記憶、データ記憶、プログラムデータ記憶の機能を、ただ一つの不揮発性メモリ装置で実現できる。別途ＰＵＦ技術に基づくＩＤ生成用の回路を搭載する必要がなく、回路規模の増加を極力抑制したＩＣカードのようなモバイル型アプリケーションが提供できる。
【０４７２】
ＲＡＭ６０３の機能を不揮発性メモリ装置６１５が備えるメモリセルアレイで実現してもよい。ＲＡＭ６２３の機能を不揮発性メモリ装置６３０が備えるメモリセルアレイで実現してもよい。
【０４７３】
情報の記憶手段として第１種データ記憶用メモリセルと第２種データ記憶用メモリセルとを任意に混在させて各種データを保存できるため、どのエリアのメモリセルが何れの状態で情報が記憶されているかを第三者に対し秘匿することができる。さらに、物理的なプローブを用いてメモリ内のデータを直接読み出すようなハッキングからもディジタルＩＤデータを防衛でき、極めて耐タンパ性の優れたアプリケーションが提供できる。
【０４７４】
なお、ディジタルＩＤデータを暗号鍵として用いて暗号化されたデータ（暗号化データ）が、ＩＣカード６０２に記憶されることは必須ではない。たとえば、リーダライタ６０１が暗号化データを読み取り、リーダライタ６０１のデータ記憶部６０９が暗号化データを記憶してもよい。さらにリーダライタ６０１が暗号化データを外部に設けられたサーバ（図示せず）に送信し、そのサーバの記憶装置が記憶してもよい。暗号化データがＩＣカード６０２に記憶されていない場合には、復号化の手順は以下のとおりである。すなわち、ＩＣカード６０２のＣＰＵ６２１は、入出力Ｉ／Ｆ部６２０を介して外部に記憶されている暗号化データを受信する。またＣＰＵ６２１は、各ＩＣカード固有のディジタルＩＤデータを固有ＩＤ記憶部６２５から生成する。その後、暗号処理回路６２２が、ディジタルＩＤデータを復号鍵として用いて当該暗号化データを復号化する。
【産業上の利用可能性】
【０４７５】
本発明の一態様は、より安全な暗号技術等に応用可能な、従来にない乱数処理方法を高速な処理速度で提供することができる乱数処理方法および乱数処理装置として有用である。
【符号の説明】
【０４７６】
００１  メモリ本体部
００３  行選択回路／ドライバ
００４  列選択回路
００７  入出力制御回路
００８  電源制御回路
００９  アドレスレジスタ
０１０  論理制御回路
０１１  特殊／通常書き込み回路
０１２  特殊／通常センスアンプ
０１３  制御回路群
０２０  乱数処理装置
０２１  メモリセルアレイ
０３０  データレジスタ
０３１  Ｃａｓｈｅレジスタ
０３２  特殊データレジスタ
０３３  コマンドレジスタ
０３４  ステータスレジスタ
０３５  特殊コマンドレジスタ
０３７  切替え回路
０３８  乱数生成回路
９０  メモリセルアレイ
９１  メモリセル
９３  制御装置
１００  乱数処理装置
１２０  抵抗変化素子
１２２  下地層
１２４  第１電極
１２６  抵抗変化層
１２８  第２電極
２１ｓ  メモリセル
２３  抵抗変化素子
２４  ＮＭＯＳトランジスタ
３０  センスアンプ回路
３１  コンパレータ
３２  抵抗値カウンタ
３３、３４  ＰＭＯＳトランジスタ
３５  ＮＭＯＳトランジスタ
３６  キャパシタ
５０４  リファレンス定電圧発生回路
１３５  比較器
１３９  ラッチ
１４０  ラッチ
１４１  検出器
１４２  ０／１判定器
１４３  等号演算器
１４４  アップカウンタ
１４５  ＸＯＲ回路
１４６  ＭＵＸ
１４７  ビット反転マスク生成回路
１５０  乱数判定ブロック
１５１  データパターンカウント部
１５２  １ビット反転データ生成部
５００、５３３、５３４  読み出し回路（センスアンプ）
５０１、５３１  リファレンス電圧変動回路
５０２  スイッチ素子
５０３  キャパシタ
５０５  分圧用抵抗素子
５０６  Ｎチャネルトランジスタ
５０７  Ｐチャネルトランジスタ
５０８  差動アンプ
５０９  電圧選択回路
５１０  定電流源
５１１、５１２、５１５、５１７  Ｐチャネルトランジスタ
５１３、５１６、５１８  Ｎチャネルトランジスタ
５１９  反転論理素子
５２０  ＮＡＮＤ素子
５２１  ＮＯＲ素子
５１４、５２３、５２５  定電流源部
５２２、５２４、５２６、５３２  変動制御部
５３０  スイッチ回路
５３５  リファレンス電圧発生回路
５３６  選択制御回路
ＢＬ０，ＢＬ１，ＢＬ２，…  ビット線
Ｍ２１１，Ｍ２１２，…  メモリセル
Ｔ１１，Ｔ１２，…  トランジスタ
ＷＬ０，ＷＬ１，ＷＬ２，…  ワード線
ＰＬ０，ＰＬ１，ＰＬ２，…  プレート線
【図１】
0006674616.tif 000005
【図２】
0006674616.tif 000006
【図３】
0006674616.tif 000007
【図４】
0006674616.tif 000008
【図５】
0006674616.tif 000009
【図６】
0006674616.tif 000010
【図７】
0006674616.tif 000011
【図８Ａ】
0006674616.tif 000012
【図８Ｂ】
0006674616.tif 000013
【図９】
0006674616.tif 000014
【図１０】
0006674616.tif 000015
【図１１】
0006674616.tif 000016
【図１２】
0006674616.tif 000017
【図１３】
0006674616.tif 000018
【図１４】
0006674616.tif 000019
【図１５】
0006674616.tif 000020
【図１６】
0006674616.tif 000021
【図１７】
0006674616.tif 000022
【図１８】
0006674616.tif 000023
【図１９】
0006674616.tif 000024
【図２０】
0006674616.tif 000025
【図２１】
0006674616.tif 000026
【図２２】
0006674616.tif 000027
【図２３】
0006674616.tif 000028
【図２４】
0006674616.tif 000029
【図２５】
0006674616.tif 000030
【図２６】
0006674616.tif 000031
【図２７】
0006674616.tif 000032
【図２８】
0006674616.tif 000033
【図２９】
0006674616.tif 000034
【図３０】
0006674616.tif 000035
【図３１】
0006674616.tif 000036
【図３２】
0006674616.tif 000037
【図３３】
0006674616.tif 000038
【図３４】
0006674616.tif 000039
【図３５】
0006674616.tif 000040
【図３６】
0006674616.tif 000041