(本開示の基礎となった知見)
ICカードは、IC(半導体集積回路)チップを搭載したカードである。ICチップは、例えば、論理回路と、揮発および/または不揮発性メモリと、マイクロプロセッサーとを具備する。これらが、暗号化機能、ディジタル署名、およびディジタル認証機能などの各種情報セキュリティー機能を実現する。これらの機能が実行されるときには秘密鍵が用いられる。この場合、ICカードで真性乱数を生成して秘密鍵に適用すると、セキュリティーの安全性が向上する。
しかしながら、ICカードのような超小型機器において、乱数生成のための回路は、小型化が要求される。更に、例えばバッテリーが非搭載のICカードでは、通信時にワイヤレス給電で得られる電力で、短時間のうちに各種機能を実行する必要がある。つまり、乱数生成において、超低消費電力化と、生成速度の向上が同時に求められる。そこで本発明者らは、かかる要求に応えられるような真性乱数の生成器として、いくつかの先行技術を検討した。物理現象を利用して真性乱数を発生させる場合、乱数生成の回路を別途追加する必要がある。このため、ICカードのような超小型機器への応用には、潜在的な課題があると考えられた。
特許文献2は、スピン反転の確率が1/2となる書き込み電流をメモリ素子に流し、0または1をランダムにメモリ素子へ書き込む方式である。しかし、スピンの反転確率が1/2となる電流はチップやロット間でばらつく。そのため、書き込み電流の調整が非常に難しいと考えられた。
さらに本発明者らは、乱数の生成速度についても検討を行った。従来の物理乱数の発生方式において、乱数の生成速度が低いという課題があった。
乱数生成の専用回路において、例えば、複数チャンネルで並列的に乱数が生成されることにより、乱数の生成速度を上げることができる。しかし、従来の方式では、乱数生成の専用回路を複数チャンネル化すると、当該回路の増大をもたらす。すなわち、従来の方法では、乱数の生成速度の向上と、乱数生成回路を搭載した機器の小型化とを両立することは、困難であった。
一方、近年では、暗号の安全性強化のために鍵長が長くなっている。例えば、暗号生成スピードが250Kbit/Secの場合、2048bitの鍵長の生成には約8mSec以上という長い時間が必要となる。電子パスポートや住民基本台帳といった重要な個人情報が扱われる機器において、指紋や顔写真等の大容量の電子データが認証に用いられることが検討されている。このような大容量データの通信を支えるために、乱数生成スピードの向上が求められる。
本発明者らは、以上のような課題を解決できる新規な乱数処理方法を鋭意検討した。その結果、本発明者らは、抵抗変化素子の抵抗値が時間経過と共にランダムに変化する現象を発見し、これを乱数生成に応用することに想到した。かかる方式では、より安全な暗号技術等に応用可能な、従来にない乱数処理方法を提供することができる。これにより、例えば、乱数生成を行う要素、乱数の記憶を行う要素、データの記憶を行う要素等を共通化することが可能となる。そのため、乱数生成のための回路が小型化されうる。抵抗変化素子の抵抗値の変化は極めて短い時間間隔(例えば、10nSecオーダー)で生じる。そのため、暗号生成スピードが向上しうる。なお、以上の説明は、本開示に至った経緯を説明するものに過ぎず、本開示を限定する趣旨ではない。
以下、添付図面を参照しつつ、本開示の実施形態について説明する。
以下で説明する実施形態は、いずれも一具体例を示すものである。以下の実施形態で示される数値、形状、材料、組成、構成要素、それらの配置および接続、ステップ、ならびにステップの順序、電気的特性などは、あくまで一例である。それらは、本開示を限定するものではない。以下の実施形態における構成要素のうち、本開示の最上位概念を示す独立請求項に記載されていない構成要素は、任意の構成要素として説明される。図面において、同じ符号が付いたものは、説明が省略される場合がある。図面は、理解しやすくするために、それぞれの構成要素が模式的に示されているため、形状および寸法比等については正確な表示ではない場合がある。製造方法は、必要に応じて、各工程の順序等が変更でされることができ、および/または、他の公知の工程が追加されうる。
(実施形態の概要)
本開示の一態様に係る半導体装置は、流れる電流量によって記憶情報を判別可能な複数のメモリセルが配置されたメモリセルアレイと、前記複数のメモリセルの各々の記憶情報を読み出す読み出し回路とを備えた半導体装置であって、前記読み出し回路は、変動する参照電圧を前記参照電圧ノードへ印加する参照電圧変動回路と、所定のメモリセルの一端と電気的に接続され、前記メモリセルの記憶情報に対応した電圧が入力される第1の入力端子、および前記参照電圧ノードと電気的に接続された第2の入力端子を有し、かつ前記第1の入力端子の電圧と前記第2の入力端子の電圧とを比較し、比較結果に基づいて前記メモリセルの記憶情報を検出するセンスアンプ回路とを備え、前記メモリセルの記憶情報の読み出し時に、前記メモリセルの記憶情報に応じて、かつ読み出し時間の経過に伴って増加または減少する変動電圧が前記第1の入力端子に入力され、前記参照電圧変動回路は、前記第1の入力端子に入力された前記変動電圧が増加又は減少する方向とは逆の方向に減少又は増加する前記参照電圧を前記参照電圧ノードへ印加し、前記センスアンプ回路は、前記参照電圧ノードに印加された前記参照電圧を用いて、前記メモリセルの記憶情報の読み出しを行う。
かかる構成により、本開示の一態様に係る半導体装置は、読み出し時間内に参照電圧ノードの電位が参照電圧を下回るまたは上回ることになり、メモリセルから、より高速に情報を読み出すことが可能となる。
ある実施形態において、前記参照電圧変動回路は、前記参照電圧ノードに印加された前記参照電圧の変動開始時刻を前記読み出しの開始後の任意の時刻に設定可能であってもよい。
かかる構成により、本開示の一態様に係る半導体装置は、参照電圧の変動開始時刻を読み出し開始後の任意の時刻に調整することが可能となる。これにより、メモリセルから情報を読み出す読み出し時間を任意に調整し、最適な設定によって、より高速化することが可能となる。
ある実施形態において、前記半導体装置は、所定の定電圧を参照電圧ノードへ印加する定電圧発生回路と、前記定電圧発生回路の出力端子と前記参照電圧変動回路の出力端子と前記参照電圧ノードとの間に配置されたスイッチ回路とをさらに備え、前記メモリセルの記憶情報の読み出し開始時には、前記定電圧発生回路が出力する定電圧が前記参照電圧ノードに印加されており、前記スイッチ回路は、前記定電圧発生回路が出力する定電圧が前記参照電圧ノードに印加される状態から、前記参照電圧変動回路が出力する参照電圧が前記参照電圧ノードに印加される状態へ切り替えてもよい。
かかる構成によれば、本開示の一態様に係る半導体装置は、参照電圧の変動開始時刻を任意に設定することが可能となる。
ある実施形態において、前記メモリセルの記憶情報の読み出し時に、第1の時刻から時間と共に減少する電圧が前記第1の入力端子に入力され、前記参照電圧変動回路は、前記第1の時刻と同時または前記第1の時刻よりも後の第2の時刻から時間と共に上昇する電圧を前記参照電圧ノードへ印加してもよい。
ある実施形態において、前記メモリセルの記憶情報の読み出し時に、第1の時刻から時間と共に上昇する電圧が前記第1の入力端子に入力され、前記参照電圧変動回路は、前記第1の時刻と同時または前記第1の時刻よりも後の第2の時刻から時間と共に下降する電圧を前記参照電圧ノードへ印加してもよい。
ある実施形態において、前記メモリセルは、第1の電極と、第2の電極と、前記第1の電極と前記第2の電極との間に配置した抵抗変化層とを含む抵抗変化素子を備えていてもよい。
ある実施形態において、前記抵抗変化素子は、前記第1の電極と前記第2の電極との間に極性の異なる電圧が印加されることで低抵抗状態及び高抵抗状態の少なくとも2つの状態を可逆的に変化してもよい。
本開示の他の一態様にかかる半導体装置は、流れる電流量によって記憶情報を判別可能な複数のメモリセルが配置されたメモリセルアレイと、前記複数のメモリセルの各々の記憶情報を読み出す読み出し回路とを備えた半導体装置であって、前記読み出し回路は、少なくとも第1の時刻から段階的に上昇又は下降する参照電圧を参照電圧ノードへ印加する参照電圧発生回路と、所定のメモリセルの一端と電気的に接続され、前記メモリセルの記憶情報に対応した電圧が印加される第1の入力端子、および前記参照電圧ノードと電気的に接続される第2の入力端子を有し、かつ前記第1の入力端子の電圧と前記第2の入力端子の電圧とを比較して、比較結果に基づいて前記メモリセルの記憶情報を検出するセンスアンプ回路とを備え、前記メモリセルの記憶情報の読み出し時に、前記メモリセルの記憶情報に応じて、かつ読み出し時間の経過に伴って増加または減少して変動する電圧が前記第1の入力端子に入力され、前記参照電圧発生回路は、前記第1の入力端子に入力された電圧が増加又は減少する方向とは逆の方向に段階的に下降又は上昇する前記参照電圧を前記参照電圧ノードへ印加し、前記センスアンプ回路は、前記参照電圧ノードに印加された前記参照電圧を用いて、前記メモリセルの記憶情報の読み出しを行う。
かかる構成により、本開示の他の一態様に係る半導体装置は、読み出し回路にて、メモリセルから、より高速に情報を読み出すことが可能となる。
ある実施形態において、前記参照電圧発生回路は、前記参照電圧ノードの電圧の変動開始時刻を前記読み出しの開始後の任意の時刻に設定可能であってもよい。
かかる構成により、本開示の他の一態様に係る半導体装置は、参照電圧ノードの電圧の変動開始時刻を読み出し開始後の任意の時刻に調整することが可能となる。これにより、メモリセルから情報を読み出す読み出し時間を任意に調整し、最適な設定によって、より高速化することが可能となる。
ある実施形態において、前記メモリセルの記憶情報の読み出し時に、前記第1の時刻から時間と共に減少する電圧が前記第1の入力端子に入力され、前記参照電圧発生回路は、前記第1の時刻と同時または前記第1の時刻よりも後の第2の時刻から時間と共に上昇する電圧を前記参照電圧ノードへ印加してもよい。
ある実施形態において、前記メモリセルの記憶情報の読み出し時に、前記第1の時刻から時間と共に上昇する電圧が前記第1の入力端子に入力され、前記参照電圧発生回路は、前記第1の時刻と同時または前記第1の時刻よりも後の第2の時刻から時間と共に下降する電圧を前記参照電圧ノードへ印加してもよい。
ある実施形態において、前記メモリセルは、第1の電極と、第2の電極と、前記第1の電極と前記第2の電極との間に配置した抵抗変化層とを含む抵抗変化素子を備えていてもよい。
ある実施形態において、前記抵抗変化素子は、前記第1の電極と前記第2の電極との間に極性の異なる電圧が印加されることで低抵抗状態及び高抵抗状態の少なくとも2つの状態を可逆的に変化してもよい。
本開示のさらに他の一態様であるICカードは、上述のいずれかの半導体装置を搭載する。
本実施形態にかかる半導体装置は、メモリセルの記憶情報の読み出しに要する時間を短くすることが可能となる。したがって、この半導体装置内に乱数生成器を搭載したICカードは、読み出し時間の短縮によって乱数性を向上した秘匿性の高い高速動作が可能なICカードを実現できる。
本開示のさらに他の一態様である方法は、半導体装置の読み出し方法であって、前記半導体装置は、流れる電流量によって記憶情報を判別可能な複数のメモリセルが配置されたメモリセルアレイと、前記複数のメモリセルの各々の記憶情報を読み出す読み出し回路とを備え、前記読み出し方法は、変動する参照電圧を前記読み出し回路へ供給し、前記複数のメモリセルの記憶情報の読み出し時に、前記複数のメモリセルの各々の記憶情報に応じて、かつ読み出し時間の経過に伴って増加又は減少する変動電圧を前記読み出し回路へ供給し、前記複数のメモリセルの記憶情報に対応した前記変動電圧が増加または減少する方向とは逆の方向に減少または増加する前記参照電圧を出力し、前記複数のメモリセルの各々の記憶情報に対応した前記変動電圧と、前記参照電圧とを比較し、比較結果に基づいて前記複数のメモリセルの各々の記憶情報を検出してもよい。
かかる構成により、本開示の他の一態様に係る半導体装置の読み出し方法は、読み出し時間内に、参照電圧がメモリセルの記憶情報に対応した変動電圧を下回るまたは上回ることになり、メモリセルから、より高速に情報を読み出すことが可能となる。
本開示のさらに他の一態様である方法は、半導体装置の読み出し方法であって、前記半導体装置は、流れる電流量によって記憶情報を判別可能な複数のメモリセルが配置されたメモリセルアレイと、前記複数のメモリセルの各々の記憶情報を読み出す読み出し回路とを備え、前記読み出し方法は、少なくとも第1の時刻から段階的に上昇又は下降する参照電圧を参照電圧ノードへ供給し、前記複数のメモリセルの記憶情報の読み出し時に、前記複数のメモリセルの各々の記憶情報に応じて、かつ読み出し時間の経過に伴って増加または減少する電圧を出力し、前記複数のメモリセルの記憶情報に対応した電圧が増加または減少する方向とは逆の方向に段階的に下降または上昇する前記参照電圧を出力し、前記複数のメモリセルの各々の記憶情報に対応した電圧と、前記参照電圧ノードに印加される前記参照電圧とを比較し、比較結果に基づいて前記複数のメモリセルの各々の記憶情報を検出する。
かかる構成により、本開示のさらに他の一態様に係る半導体装置の読み出し方法は、読み出し時間内に、参照電圧がメモリセルの記憶情報に対応した電圧を下回るまたは上回ることになり、メモリセルから、より高速に情報を読み出すことが可能となる。
以下、本開示による例示的な実施形態を説明する。
本明細書においては、まず半導体装置の基本的な構成および動作を説明する。その後、図21および図22を参照しながら、本願発明者が見出した、センスアンプの読み出し動作に関する課題を説明する。そして、図23以降の図面を参照しながら、当該課題を解決するセンスアンプの構成および動作と、変形例の詳細を説明する。
(実施形態)
[装置構成]
図1は、実施形態にかかる乱数処理装置の概略構成の一例を示すブロック図である。図2は、実施形態にかかるメモリセルの概略構成の一例を示す断面図である。
図1に示す例において、本実施形態の乱数処理装置100は、メモリセルアレイ90と、制御装置93とを備えている。なお、制御装置は必ずしも乱数処理装置の一部である必要はない。乱数処理装置外に接続された制御装置が、以下に説明される動作を実行してもよい。
メモリセルアレイ90は、複数のメモリセル91がアレイ状に配置された構成を有する。なお、本実施形態の乱数処理装置は、複数のメモリセルを備えなくてもよく、例えば、単一のメモリセルのみを備えてもよい。
制御装置93は、抵抗値が1つの可変抵抗値範囲内にあるメモリセル91から、複数の異なる時刻のそれぞれにおいて抵抗値情報を取得する。これにより、複数の抵抗値情報が取得される。制御装置93は、該複数の抵抗値情報を用いて乱数データを生成する。
制御装置93は、複数の異なる時刻のそれぞれにおいて、メモリセルアレイ90を構成する複数のメモリセル91のそれぞれから抵抗値情報を取得してもよい。これにより、複数の異なる時刻のそれぞれにおいて複数の抵抗値情報が取得される。制御装置93は、該複数の抵抗値情報を用いて乱数データを生成してもよい。
抵抗値情報とは、抵抗値と相関関係を有する情報である。抵抗値情報は、抵抗値そのものであってもよいし、抵抗値に応じて増減する値であってもよい。抵抗値に応じて増減する値は、例えば、メモリセルに直列または並列に接続されたキャパシタの放電時間、および/または、該放電時間に対応するカウント値等であってもよい。このとき、キャパシタは素子であることには限定されず、例えば配線などの寄生容量でもよい。
抵抗値情報は、所定の分解能のセンスアンプによって測定された値であってもよい。あるいは、抵抗値情報は、センスアンプによって測定された値が、閾値によって区分けされた複数の抵抗値範囲のいずれに該当するかを判定することによって得られた値であってもよい。その場合、複数の抵抗値範囲のそれぞれは、初期抵抗値範囲および可変抵抗値範囲のいずれかが、さらに細かく区分けされたものであってもよい。
抵抗値情報を用いて乱数データを生成できることは、抵抗値がランダムに変動することに起因する。そのメカニズムおよび乱数データ生成の具体的な方法については後述する。
制御装置93は、選択されたメモリセル91が初期状態にあるか可変状態にあるかを判定することによって記録されたデータを、読み出すことができるように構成されていてもよい。
図2に示す例において、メモリセル91が備える抵抗変化素子120が、下地層122と、第1電極124と、抵抗変化層126と、第2電極128とを備えている。それぞれの抵抗変化素子120には、特定のメモリセルを選択するためのトランジスタやダイオードなどの選択素子(図示せず)が接続されてもよい。
可変状態のメモリセル91は、異なる複数の電気的信号が印加されることによって、抵抗値が複数の可変抵抗値範囲の間を可逆的に遷移する性質を有する。
図3は、メモリセル91の抵抗値範囲の一例を示すグラフである。図3に例示されるように、メモリセル91は、少なくとも可変状態と初期状態の2つの状態を備えてもよい。
可変状態とは、異なる複数の電気的信号が印加されることによって、抵抗値が複数の可変抵抗範囲の間を可逆的に遷移できる状態をいう。
初期状態とは、抵抗値が可変抵抗値範囲のいずれとも重複しない初期抵抗値範囲にある状態をいう。初期状態にあるメモリセルは、可変状態に変化させるような電気的ストレスであるフォーミングストレスが印加されない限り可変状態とならない。例えば、フォーミングストレスは累積的なストレスであってもよい。その場合、ストレスの累積量が所定量を超えたときに、初期状態から可変状態に遷移する。メモリセル91は、初期状態を取りうる素子でなくてもよい。メモリセル91は、例えば、可変状態のみを有する、いわゆるフォーミングレスの素子であってもよい。
メモリセルアレイ90が備える複数のメモリセル91は、可変状態のメモリセルと、初期状態のメモリセルと、を含んでもよい。メモリセルアレイ90には、各メモリセル91が初期状態にあるか可変状態にあるかの違いを利用して、データが記録されていてもよい。
メモリセルアレイ90には、例えば、後述する第1種データおよび第2種データの少なくとも一方が記録されうる。メモリセルアレイ90は、第1種データが記録されたメモリセル91と第2種データが記録されたメモリセル91との両方を含んでいてもよい。
メモリセル91は、製造された後、かつ、フォーミングがされる前において、抵抗値が複数の可変抵抗値範囲の間を可逆的に遷移する状態でなくてもよい。フォーミングとは、所定の電気的ストレスをメモリセルに印加して、メモリセルの抵抗値が複数の可変抵抗値範囲の間を可逆的に遷移する状態へと、メモリセルを変化させることをいう。フォーミングのために印加される電気的ストレスは、例えば、所定の電圧と時間幅を有する電気的パルスであってもよく、複数の電気的パルスが組み合わされたものであってもよい。
初期抵抗値範囲は、製造直後のメモリセル91の抵抗値を含み、かつ、可変状態に変化した後のメモリセル91の抵抗値を含まないように設定されうる。可変抵抗値範囲は、初期抵抗値範囲を含まず、かつ、可変状態に変化した後のメモリセル91の抵抗値を含むように設定されうる。抵抗変化素子の不揮発性記憶素子を備えるメモリセルは、典型的に、上記の特性を備え得る。公知の様々な材料を用いて、かかる特性を備えるメモリセル91が製造されうる。
初期状態のメモリセル91は、フォーミングストレスではない何らかの電気的ストレスを受けた状態を含む。言い換えると、初期状態のメモリセル91は、可変状態に変化させるための電気的ストレスを除く、種々の電気的ストレスを受けた状態を含む。初期状態のメモリセル91は、製造直後のメモリセル91がフォーミングストレスではない何らかの電気的ストレスを受けて変化した状態を含みうる。その場合、そのメモリセル91の抵抗値は、初期抵抗値範囲内に含まれうる。
制御装置93は、選択されたメモリセル91が初期状態にあるか可変状態にあるかを判定することによって、記録されたデータを読み出してもよい。
図3に示した例において、第1電極124はTaN(窒化タンタル)、第2電極128はIr(イリジウム)、抵抗変化層126はタンタル酸化物から構成される。抵抗変化層126の厚さは例えば50nm以下である。抵抗変化層126は、酸素濃度の異なる2層の積層構造を有する。抵抗変化層126のうち、第1電極124に接する層は、酸素濃度が相対的に低い層である。この層の組成をTaOxとすると、xは0<x<2.5を満たす。抵抗変化層126のうち、第2電極128に接する層は、酸素濃度が相対的に高い層である。この層の組成をTaOyとすると、yはy≧2.1を満たし、その厚さは例えば5.5nm程度である。第1電極124と抵抗変化層126との接触面および第2電極128と抵抗変化層126との接触面の面積は、例えば0.25μm2以下である。フォーミングストレスとして、メモリセル91にパルス電圧が繰り返し印加される。パルス電圧は、例えば、電圧+3.5V、パルス幅5μSecを有する。
図3に示される例において、メモリセルは、第1抵抗値範囲と第2抵抗値範囲との2つの可変抵抗値範囲をとり得る。ここでは、簡便のため、メモリセル91の抵抗値が第1抵抗値範囲内にある状態は、高抵抗状態と呼ばれ、抵抗値が第2抵抗値範囲内にある状態は、低抵抗状態と呼ばれる。加えて、メモリセルの抵抗値を第1抵抗値範囲から第2抵抗値範囲へと変化させるためのパルスは、低抵抗化パルスと呼ばれ、メモリセルの抵抗値を第2抵抗値範囲から第1抵抗値範囲へと変化させるためのパルスは、高抵抗化パルスと呼ばれる場合がある。低抵抗化パルスは、第2電気的信号の一例である。高抵抗化パルスは、第1電気的信号の一例である。低抵抗化パルスは、例えば、電圧が−2.4V、パルス幅が50nSecである。高抵抗化パルスは、例えば、電圧が+1.8V、パルス幅が50nSecである。なお、図2のメモリセル構造において、電圧は第1電極124を基準として第2電極128に正の電圧を印加する場合を正極性とする。
その他の例として、第1電極124及び第2電極128は白金(Pt)、抵抗変化層126はハフニウム酸化物から構成されてもよい。抵抗変化層126の厚さは例えば30nmである。メモリセル91の素子領域の形状は、直径3μmの円形であってもよい。例えば、抵抗変化層126がHfO1.6から構成される場合、初期抵抗値は数MΩ程度であり、第1抵抗値範囲が1000Ω以上〜3000Ω以下、第2抵抗値範囲が100以上300Ω以下となる。この場合、フォーミングストレスを構成する複数の電圧パルスのそれぞれは、例えば、電圧2〜3V、パルス幅100nSecを有する。低抵抗化パルスは、例えば、電圧が+1.0V、パルス幅が100nSecであり、高抵抗化パルスは、例えば、電圧が−1.3V、パルス幅が100nSecである。
図3に示される例では、初期抵抗値範囲の下限が、全ての可変抵抗値範囲の上限以上である。言い換えると、初期抵抗値範囲の下限は、複数の可変抵抗値範囲のうち抵抗値が最も大きいものの上限以上である。例えば、初期抵抗値範囲の下限は、2個の可変抵抗値範囲のうち抵抗値が最も大きい第1抵抗値範囲の上限に等しくてもよい。
図3に示される例では、第1閾値は、初期抵抗値範囲の下限以下であり、かつ、全ての可変抵抗値範囲の上限以上である。言い換えると、第1閾値は、初期抵抗値範囲の下限以下であり、複数の可変抵抗値範囲のうち抵抗値が最も大きいものの上限以上である。例えば、第1閾値は、2個の可変抵抗値範囲のうち抵抗値が最も大きい第1抵抗値範囲の上限に等しくてもよい。第1閾値は、初期抵抗範囲の下限に等しくてもよい。なお、第1閾値と等しい値を有する抵抗値は、初期抵抗値範囲に属するものとして設定されてもよいし、複数の可変抵抗値範囲のうち抵抗値が最も大きいものに属するものとして設定されてもよい。
図3に示される例では、第2閾値は、複数の可変抵抗値範囲のうち抵抗値が最も大きいものの下限以下であり、かつ複数の可変抵抗値範囲のうち抵抗値が最も小さいものの上限以上である。例えば、第2閾値は、2個の可変抵抗値範囲のうち抵抗値が最も大きい第1抵抗値範囲の下限以下であり、かつ2個の可変抵抗値範囲のうち抵抗値が最も小さい第2抵抗値範囲の上限以上である。例えば、第2閾値は、第1抵抗値範囲の下限または第2抵抗値範囲の上限に等しくてもよい。第1抵抗低範囲と第2抵抗値範囲とが隣接していてもよい。すなわち、第1抵抗値範囲を規定する2つの端点のうち小さい方の値と、第2抵抗値範囲を規定する2つの端点のうち大きい方の値とが一致していてもよい。なお、第2閾値と等しい値を有する抵抗値は、複数の可変抵抗値範囲のうち、第2閾値よりも大きな抵抗値を含む抵抗値範囲に属するものとして設定されてもよいし、第2閾値よりも小さな抵抗値を含む抵抗値範囲に属するものとして設定されてもよい。
メモリセル91の構成によっては、製造直後のメモリセル91の抵抗値が、いずれの可変抵抗値範囲よりも小さい場合がある。すなわち、初期抵抗値範囲がいずれの可変抵抗値範囲よりも小さい場合がある。例えば、メモリセル91内の抵抗変化層が鉄酸化物から構成される場合に、かかる特性が実現される。
種々の鉄酸化物の抵抗率は、Fe3O4、FeO、Fe2O3の順に高い。例えば、第1電極124はPt(白金)、第2電極128はPt(白金)、抵抗変化層126はFe3O4から構成されうる。このとき、抵抗変化層126全体の厚さは、例えば50nm以下としうる。
例えば、第1電極124と抵抗変化層126との接触面が0.25μm2以下であり、第2電極128と抵抗変化層126との接触面の面積が0.25μm2以下であるとき、初期抵抗値は概ね200Ωとなり、これは非常に低い抵抗値である。この初期状態のメモリセルに、例えば、第1電気的信号と同じ極性を有し、電圧の絶対値が3.5V、パルス幅が10μSecのパルスを所定の回数を印加する。これにより、メモリセルの抵抗値は、初期抵抗値よりも抵抗値の大きい状態、例えば2000Ω以上8000Ω以下の高抵抗状態に推移する。これは、第2電極128と抵抗変化層126の接触界面の酸化が進行し、絶縁状態にあるFe2O3の抵抗層が形成されたためと考えられる。
可変状態のメモリセルの抵抗値は、電圧の絶対値が2.4Vである第2電気的信号の印加により、300Ω以上500Ω以下の第2抵抗値範囲へ遷移しうる。また、可変状態のメモリセルの抵抗値は、第2電気的信号と極性の異なる電圧の絶対値が2.4Vの第1電気的信号の印加により、メモリセルの抵抗値は、2000Ω以上8000Ω以下の第1抵抗値範囲へ遷移しうる。
その他の例として、第1電極124及び第2電極128は白金(Pt)、抵抗変化層126はハフニウム酸化物から構成されてもよい。抵抗変化層126の厚さは例えば30nmである。メモリセル91の素子領域の形状は、直径を3μmの円形であってもよい。例えば、抵抗変化層126がHfO0.9から構成され、その初期抵抗値が抵抗変化しない場合、当該メモリセルは、電圧パルスがフォーミングストレスとして与えられて、可変状態になりうる。このとき、電圧パルスは、例えば、電圧4V、パルス幅100μSecである。可変状態のメモリセルの抵抗値は、電圧が−1.3V、パルス幅が100nSecである低抵抗化パルスの印加により、30Ω以上90Ω以下の第2抵抗値範囲へ遷移しうる。また、可変状態のメモリセルの抵抗値は、電圧が+2.0V、パルス幅が100nSecである高抵抗化パルスの印加により、100Ω以上300Ω以下の第1抵抗値範囲へ遷移しうる。
かかる構成では、初期抵抗値範囲の上限が、全ての可変抵抗値範囲の下限以下であってもよい。言い換えると、初期抵抗値範囲の上限が、複数の可変抵抗値範囲のうち抵抗値が最も小さいものの下限以下であってもよい。例えば、初期抵抗値範囲の上限は、2個の可変抵抗値範囲のうち抵抗値が最も小さい第2抵抗値範囲の下限に等しくてもよい。
第1閾値は、初期抵抗値範囲の上限以上であり、かつ、全ての可変抵抗値範囲の下限以下であってもよい。言い換えると、第1閾値は、初期抵抗値範囲の上限以上であり、複数の可変抵抗値範囲のうち抵抗値が最も小さいものの下限以下であってもよい。例えば、第1閾値は、2個の可変抵抗値範囲のうち抵抗値が最も小さい第2抵抗値範囲の下限に等しくてもよい。第1閾値は、初期抵抗値範囲の上限に等しくてもよい。
第2閾値は、複数の可変抵抗値範囲のうち抵抗値が最も小さいものの上限以上であり、かつ複数の可変抵抗値範囲のうち抵抗値が最も大きいものの下限以下であってもよい。例えば、第2閾値は、2個の可変抵抗値のうち抵抗値が最も小さい第2抵抗値範囲の上限以上であり、かつ2個の可変抵抗値のうち抵抗値が最も大きい第1抵抗値範囲の下限以下であってもよい。例えば、第2閾値は、第1抵抗値範囲の下限または第2抵抗値範囲の上限に等しくてもよい。
なお、隣り合う抵抗値範囲は必ずしも上限と下限とが隣接している必要はない。隣り合う抵抗値範囲同士の間に所定のマージンが設定されていてもよい。
制御装置93は、選択されたメモリセル91の抵抗値が第1閾値よりも大きいか否かを判定する第1読み出しモードと、選択されたメモリセル91の抵抗値が第2閾値よりも大きいか否かを判定する第2読み出しモードとを選択的に実行してもよい。これにより、記録されたデータが読み出される。
第1閾値および第2閾値は、固定の値ではなく、任意に可変できてもよい。
記録されたデータは、第1種データと第2種データとを含んでもよい。第1種データは、例えば、各メモリセル91の抵抗値が初期抵抗値範囲にあるか否かの違いを利用して記録されている。第2種データは、例えば、各メモリセル91の抵抗値が初期抵抗値範囲にあるか否かの違いを利用せずに、各メモリセル91の抵抗値が少なくとも一つの可変抵抗値範囲にあるか否かの違いを利用して記録されている。
メモリセルアレイ90が、第1書き込みアドレス領域と、第2書き込みアドレス領域とを備えてもよい。この場合において、第1書き込みアドレス領域に第1種データが記録されており、第2書き込みアドレス領域に第2種データが記録されていてもよい。第1書き込みアドレス領域と、第2書き込みアドレス領域とは、必ずしも物理的な領域として分離されていなくてもよい。例えば、各メモリセル91が、アドレスに関する所定の規則に応じて、第1書き込みアドレス領域と第2書き込みアドレス領域とに振り分けられていてもよい。
第2書き込みアドレス領域は、例えば複数の可変状態のメモリセルから構成される領域である。例えば、初期状態の複数のメモリセルにフォーミングストレスが印加されることによって、第2書き込みアドレス領域が形成されてもよい。初期状態の複数のメモリセルは、例えば、製造直後のメモリセルアレイ90の所定の領域に含まれる。この場合、フォーミングストレスは、第1種データを記録するためだけでなく、第2種データが書き込まれる第2書き込みアドレス領域を形成するために用いられうる。
メモリセルアレイ90を構成する複数のメモリセルに選択的にフォーミングストレスが印加されることによって、第1書き込みアドレス領域と第2書き込みアドレス領域とが設定されうる。そのため、それらのアドレス領域の容量配分や配置は自由に選択されうる。第1書き込みアドレス領域の一部領域に対してフォーミングストレスが印加されると、当該一部領域が第2書き込みアドレス領域へと変更されうる。
第1書き込みアドレス領域と、第2書き込みアドレス領域とは、例えば、同一のメモリセルアレイ90内に配置される。これにより、例えば第1書き込みアドレス領域と第2書き込みアドレス領域との間で情報が送受信される場合に、情報の秘匿性が向上しうる。
図3に示される例では、第1種データは各メモリセル91の抵抗値が初期抵抗値範囲にあるか否かの違いを利用して記録されている。図3に示される例では、第2種データは、各メモリセル91の抵抗値が第2抵抗値範囲にあるか否かの違いを利用して記録されている。
図3に示される例では可変抵抗値範囲の数は2であるが、可変抵抗値範囲の数は3以上であってもよい。すなわち、メモリセル91は多値メモリであってもよい。
なお、図3に示される抵抗変化素子において、例えば、初期抵抗値範囲は2×106Ω以上1.0×107Ω未満に、2つの可変抵抗値範囲は5×104Ω以上2×106Ω未満、及び5×103Ω以上5×104Ω未満に設定されうる。このとき、例えば、第1閾値は2×106Ωであり、第2閾値は5×104Ωである。
[抵抗変化素子の構成]
図2に示される例において、第1電極124と第2電極128との間に抵抗変化層126が介在する。抵抗変化層126は、例えば金属酸化物、より詳細には例えば遷移金属酸化物で構成されうる。可変状態にあるメモリセル91の抵抗変化素子120の抵抗値は、第1電極124と第2電極128との間に印加される電気的信号によって、複数の可変抵抗値範囲の間を可逆的に遷移する。
初期状態にあるメモリセル91の抵抗変化素子120の抵抗変化層126は、第1電極124と第2電極128との間を絶縁していてもよい。絶縁とは、例えば、第1電極124と第2電極128との間の抵抗値が2MΩ以上である状態である。抵抗変化素子120の抵抗変化層126は、絶縁体から構成された層を備えていてもよい。絶縁体とは、例えば、抵抗率が30Ω・m以上の材料である。抵抗変化素子120の抵抗変化層126の少なくとも一部が絶縁体から構成されることにより、初期状態のメモリセルの抵抗特性が安定して維持されうる。
初期状態とは、抵抗変化素子を半導体プロセス等により製造した後であって、フォーミングストレスによって抵抗変化素子が可変状態となる前の状態であってもよい。
抵抗変化素子の初期状態における抵抗値は、可変状態における抵抗値と異なり、抵抗変化素子の材料、大きさ、形状、及び製造条件等によって、ある程度調整されうる。特に、抵抗変化層126が積層構造である場合、酸素濃度の高い層の厚み、形成時の酸素濃度によって、その抵抗値が任意に調整されうる。
上記のような初期状態は、電気的信号の印加によって抵抗値が遷移する可変状態に比べて、安定している。そのため、初期状態と可変状態との差異を利用することにより、データが安定して保持されうる。
初期抵抗値範囲は、例えば、初期状態にある素子に読み出し電圧を印加することによって得られる抵抗値を含む。読み出し電圧は、例えば、可変状態にある素子の抵抗値を複数の可変抵抗値範囲の間で変化させる電気的信号、および、フォーミングストレスのいずれよりも小さい。
電気的ストレスがフォーミングストレスであるか否かは、対象となるメモリセル91が初期状態から可変状態へと変化するか否かによって決まる。対象となるメモリセル91が初期状態から可変状態へと変化するための条件は、メモリセル91毎にばらつく。すなわち、電気的ストレスがフォーミングストレスであるために必要な電気的ストレスの種々のパラメータは、絶対的な固定値ではなく、メモリセル91毎に所定のバラツキを有しうる。種々のパラメータとは、例えば、メモリセル91に印加される電圧振幅の大きさ、パルスの幅、および累積印加時間である。累積印加時間とは、例えば、抵抗状態が初期状態から可変状態に変化するまでに印加される複数の電気的パルスにおけるパルス幅の合計に相当する。
フォーミングストレスは、典型的には、可変状態にあるメモリセルの抵抗値を複数の可変抵抗値範囲の間で可逆的に変化させるために印加される電気的信号よりも強い。例えば、フォーミングストレスは、電圧の絶対値、パルス幅、および累積印加時間の少なくともいずれかにおいて、可変状態にあるメモリセルの抵抗値を変化させるために印加される電気的信号よりも大きくてもよい。
可変状態において、電圧およびパルス幅等は異なるが同極性の電気的信号を印加することにより抵抗値が変化する抵抗変化素子は、ユニポーラ型抵抗変化素子とよばれる。ユニポーラ型抵抗変化素子は、例えば、電圧が+2Vでパルス幅が1μSecの電気的信号が印加されると高抵抗状態に変化し、電圧が+4Vでパルス幅が50nSecの電気的信号が印加されると低抵抗状態に変化する。ここで、電気的信号の電圧の極性は、第2電極128から第1電極124に電流が流れる向きを正とした。
一方、可変状態において、異なる極性の電気的信号を印加することで抵抗値が変化する抵抗変化素子は、バイポーラ型抵抗変化素子とよばれる。バイポーラ型抵抗変化素子は、例えば、電圧が+2Vでパルス幅が50nSecの電気的信号が印加されると高抵抗状態に変化し、電圧が−2Vでパルス幅が50nSecの電気的信号が印加されると低抵抗状態に変化する。ここで、電気的信号の電圧の極性は、第2電極128から第1電極124に電流が流れる向きを正とした。
バイポーラ型抵抗変化素子において、例えば動作を安定にするために、高抵抗化パルス及び低抵抗化パルスの極性のみならず、それらのパルス幅や電圧の絶対値が異なっていてもよい。
抵抗変化層126は金属酸化物から構成されてもよい。抵抗変化層126は、酸素不足型の金属酸化物から構成された層を備えてもよい。抵抗変化層126を構成する金属酸化物は、遷移金属酸化物およびアルミニウム酸化物の少なくともいずれか一方であってもよい。遷移金属酸化物は、例えば、タンタル酸化物、鉄酸化物、ハフニウム酸化物およびジルコニウム酸化物の少なくともいずれかであってもよい。
ユニポーラ型抵抗変化素子の抵抗変化層の材料の例として、チタン(Ti)酸化物、ニッケル(Ni)酸化物、アルミニウム(Al)酸化物等が挙げられる。バイポーラ型抵抗変化素子の抵抗変化層の材料の例として、タンタル(Ta)酸化物、ハフニウム(Hf)酸化物、アルミニウム(Al)酸化物、鉄(Fe)酸化物等が挙げられる。
同じ材料の酸化物が用いられる場合でも、電極材料との組合せおよび酸化物の積層構造等によって、ユニポーラ型抵抗変化素子およびバイポーラ型抵抗変化素子の両方が得られる場合もある。以下、抵抗変化層がタンタル酸化物から構成される例について詳細に説明する。抵抗変化層がタンタル酸化物を含む場合、抵抗変化素子が良好な特性を示しうる。
第1電極124および第2電極128の材料の例として、イリジウム(Ir)、白金(Pt)、タングステン(W)、銅(Cu)、アルミニウム(Al)、窒化チタン(TiN)、窒化タンタル(TaN)および窒化チタンアルミニウム(TiAlN)等が挙げられる。図2に示される例では、第1電極124が第2電極128に比べ大面積となっているが、これに限定されるものでない。例えば、第1電極124は、配線の一部であってもよい。第1電極124および第2電極128は、半導体プロセスにあわせ適宜、最適な形状にされうる。下地層122は、半導体プロセスに応じて適宜に省略または変更されうる。
抵抗変化層126は、第1電極124に接続する第1抵抗変化層と、第2電極128に接続する第2抵抗変化層を含む積層体であってもよい。
第1抵抗変化層は、酸素不足型の第1金属酸化物で構成され、第2抵抗変化層は、第1金属酸化物よりも酸素不足度が小さい第2金属酸化物で構成されうる。第2抵抗変化層は、絶縁体から構成された層であってもよい。例えば、第2抵抗変化層中に、電気パルスの印加に応じて酸素不足度が可逆的に変化する微小な局所領域が形成されている。局所領域は、酸素欠陥サイトから構成されるフィラメントを含むと考えられる。局所領域は、第2抵抗変化層を貫く導電パスであってもよい。絶縁体が金属酸化物から構成され、導電パスは、絶縁体よりも酸素含有率が低い酸素不足型の金属酸化物から構成されていてもよい。
「酸素不足度」とは、化学量論的組成の金属酸化物を構成している酸素の量に対する、対象となる金属酸化物を構成している酸素の不足量の割合をいう。なお、ある金属の酸化物として複数の化学量論的組成が存在する場合、その金属酸化物の酸素不足度は、その中で最も抵抗値が高い化学量論的組成を基準として定義されうる。化学量論的組成の金属酸化物は、他の組成の金属酸化物と比べて、より安定であり、かつ、より高い抵抗値を有している。
例えば、金属がタンタル(Ta)の場合、上述の定義による化学量論的組成の酸化物はTa2O5であり、TaO2.5と表現されうる。TaO2.5の酸素不足度は0%であり、TaO1.5の酸素不足度は、酸素不足度=(2.5−1.5)/2.5=40%となる。また、酸素過剰の金属酸化物において、酸素不足度は負の値となる。なお、本開示では、特に断りのない限り、酸素不足度は正の値、0、負の値も含むものとして説明される。
酸素不足度の小さい酸化物は、化学量論的組成の酸化物により近く、それゆえ抵抗値が高い。酸素不足度の大きい酸化物は、酸化物を構成する金属により近く、それゆえ抵抗値が低い。
「酸素含有率」とは、総原子数に占める酸素原子の比率である。例えば、Ta2O5の酸素含有率は、総原子数に占める酸素原子の比率(O/(Ta+O))であり、71.4atm%となる。したがって、酸素不足型のタンタル酸化物の酸素含有率は、0より大きく、71.4atm%より小さい。例えば、第1金属酸化物を構成する金属と、第2金属酸化物を構成する金属とが同種である場合、酸素含有率は酸素不足度と対応関係にある。すなわち、第2金属酸化物の酸素含有率が第1金属酸化物の酸素含有率よりも大きいとき、第2金属酸化物の酸素不足度は第1金属酸化物の酸素不足度より小さい。
抵抗変化層を構成する金属酸化物が含有する金属元素は、タンタル以外の金属であってもよい。そのような金属元素は、例えば、遷移金属、およびアルミニウム(Al)の少なくともいずれかである。遷移金属の例としては、タンタル(Ta)、チタン(Ti)、ハフニウム(Hf)、ジルコニウム(Zr)、ニオブ(Nb)、タングステン(W)、ニッケル(Ni)、および鉄(Fe)等が挙げられる。遷移金属は複数の酸化状態をとることができるため、酸化還元反応により異なる抵抗状態に変化しうる。
例えば、抵抗変化層126は、ハフニウム酸化物から構成されてもよい。この場合、例えば、第1金属酸化物の組成がHfOxであって、xが0.9以上1.6以下であり、かつ、第2金属酸化物の組成がHfOyであって、yがxの値よりも大であってもよい。これにより、抵抗変化層の抵抗値が安定して高速に変化しうる。例えば、第2金属酸化物の膜厚は、3nm以上4nm以下としてもよい。
例えば、抵抗変化層126は、ジルコニウム酸化物から構成されてもよい。この場合、例えば、第1金属酸化物の組成がZrOxであって、xが0.9以上1.4以下であり、かつ、第2金属酸化物の組成をZrOyであって、yがxの値よりも大であってもよい。これにより、抵抗変化層の抵抗値が安定して高速に変化しうる。例えば、第2金属酸化物の膜厚は、1nm以上5nm以下としてもよい。
第1金属酸化物を構成する第1金属と、第2金属酸化物を構成する第2金属とは、異なる金属であってもよい。この場合、第2金属酸化物は、第1金属酸化物よりも酸素不足度が小さくてもよい。言い換えると、第2金属酸化物は、第1金属酸化物よりも抵抗値が高くてもよい。このような構成により、第1電極124と第2電極128との間に電圧が印加されたとき、第2金属酸化物に、より多くの電圧が分配され、第2金属酸化物中に酸化還元反応が発生しやすくなる。
第1抵抗変化層を構成する第1金属酸化物内に含有される第1金属と、第2抵抗変化層を構成する第2金属酸化物内に含有される第2金属とは、互いに異なっていてもよい。この場合、第2金属の標準電極電位は、第1金属の標準電極電位より低くてもよい。標準電極電位は、酸化特性を表す。標準電極電位が高い金属ほど、酸化しにくい。そのため、標準電極電位が相対的に低い第2金属酸化物において、酸化還元反応が起こりやすくなる。
例えば、第1金属酸化物は酸素不足型のタンタル酸化物(TaOx)であり、第2金属酸化物はチタン酸化物(TiO2)であってもよい。チタンの標準電極電位は、−1.63eVであり、タンタルの標準電極電位は−0.6eVである。このように、第2金属酸化物の標準電極電位が、第1金属酸化物の標準電極電位よりも低い場合、第2金属酸化物中でより酸化還元反応が発生しやすくなる。そのため、安定した抵抗変化動作が得られる。第1金属酸化物と第2金属酸化物のその他の組み合わせの例として、第1金属酸化物は酸素不足型のタンタル酸化物(TaOx)であり、第2金属酸化物はアルミニウム酸化物(Al2O3)であってもよい。
積層構造の抵抗変化層における抵抗変化現象は、次のように発現すると考えられる。可変状態において、抵抗値の高い第2金属酸化物の層は、微小な局所領域を有する。この局所領域中で酸化還元反応が起こって、局所領域中のフィラメント(導電パス)が変化する。これにより、局所領域の抵抗値が変化する。
例えば、第2金属酸化物に接続する第2電極128に、第1電極124を基準にして正の電圧が印加されたとき、抵抗変化層中の酸素イオンが第2金属酸化物側に引き寄せられる。これによって、第2金属酸化物中の微小な局所領域中で酸化反応が発生し、局所領域中の酸素不足度が減少する。その結果、局所領域中のフィラメントがつながりにくくなり、抵抗値が増大すると考えられる。
逆に、第2金属酸化物に接続する第2電極128に、第1電極124を基準にして負の電圧が印加されたとき、第2金属酸化物中の酸素イオンが第1金属酸化物側に押しやられる。これによって、第2金属酸化物中の微小な局所領域中で還元反応が発生し、局所領域中の酸素不足度が増加する。その結果、局所領域中のフィラメントがつながりやすくなり、抵抗値が減少すると考えられる。
酸素不足度がより小さい第2金属酸化物に接続されている第2電極128は、例えば、白金(Pt)、イリジウム(Ir)、パラジウム(Pd)などから構成される。第2電極128を構成する材料の標準電極電位は、例えば、第2金属酸化物を構成する金属の標準電極電位、および、第1電極124を構成する材料の標準電極電位よりも高い。酸素不足度がより高い第1金属酸化物に接続されている第1電極124は、例えば、タングステン(W)、ニッケル(Ni)、タンタル(Ta)、チタン(Ti)、アルミニウム(Al)、窒化タンタル(TaN)、窒化チタン(TiN)などから構成される。第1電極124を構成する材料の標準電極電位は、例えば、第1金属酸化物を構成する金属の標準電極電位よりも低くてもよい。
すなわち、第2電極128の標準電極電位V2、第2金属酸化物を構成する金属の標準電極電位Vr2、第1金属酸化物を構成する金属の標準電極電位Vr1、および、第1電極124の標準電極電位V1は、Vr2<V2、およびV1<V2なる関係を満足してもよい。さらに、それらは、V2>Vr2、およびVr1≧V1の関係を満足してもよい。
このような構成とすることにより、第2電極128と第2金属酸化物の界面近傍の第2金属酸化物中において、選択的に酸化還元反応が発生する。これにより、安定した抵抗変化現象が得られうる。
抵抗変化層126は、例えば、TaOx(ただし、0≦x<2.5)で表される組成を有する第1抵抗変化層と、TaOy(ただし、x<y<2.5)で表される組成を有する第2抵抗変化層とを含む積層構造を有している。抵抗変化層126は、第1抵抗変化層および第2抵抗変化層とは組成の異なる金属酸化物で構成される第3抵抗変化層をさらに含んでもよい。
ここで、TaOxは、0.8≦x<1.9をさらに満足してもよい。TaOyは、2.1≦y<2.5をさらに満足してもよい。第2タンタル含有層の厚みは、1nm以上8nm以下であってもよい。酸素不足度の異なる層が積層されることにより、バイポーラ型における抵抗変化の方向が決定されうる。例えば、第2抵抗変化層が第2電極128に接し、第1抵抗変化層が第1電極124に接する。かかる構成によれば、第2電極128から第1電極124に電流が流れる向きに電圧が印加されることにより、抵抗変化素子120が高抵抗化する。反対に、第1電極124から第2電極128に電流が流れる向きに電圧が印加されることにより、抵抗変化素子120が低抵抗化する。なお、第2抵抗変化層が第1電極124に接し、第1抵抗変化層が第2電極128に接する場合、抵抗変化と電圧印加の向きとの関係が逆転する。
[可変状態における抵抗変化素子の特性]
図4は、可変状態にあるバイポーラ型抵抗変化素子の特性の一例を示す。図4に示される例において、第1電極124はTaNから構成され、第2電極128はIrから構成される。抵抗変化層126は、TaOx(ただし、0<x<2.5)で表される組成を有する第1タンタル含有層と、TaOy(ただし、x<y)で表される組成を有する第2タンタル含有層を含む。第1タンタル含有層が第1電極124に接し、第2タンタル含有層が第2電極128に接している。第1タンタル含有層を構成するTaOxは、0.8≦x≦1.9を満足した。第2タンタル含有層を構成するTaOyは、2.1≦y≦2.5を満足する。第2タンタル含有層の厚みは、例えば、8nm以下である。抵抗変化層126全体の厚みは例えば50nm以下である。各電極への接触面積は、図3の測定に用いた抵抗変化素子と等しい。
図4の横軸は、印加される電気的信号の電圧を示し、縦軸は、電気的信号を印加した後の抵抗変化素子の抵抗値を示している。ここでは、第2電極128から第1電極124に電流が流れるような電気的信号の極性が、正極性である。抵抗値は、読み出し電圧VRを印加したときの電流から算出されている。電気的信号の電圧は、図4の中のスタートの位置から、正方向に大きくなるように印加されている。印加電圧が+1.1Vを超えた後、抵抗変化素子の抵抗値は徐々に上昇し、印加電圧が+2.0Vのときに、抵抗値は約100000Ωに達している。その後、電気的信号の電圧は、0に近づき、さらに負方向に大きくなるように印加されている。印加電圧が−1.1Vのときに、抵抗値は約10000Ω程度になっている。その後、電気的信号の電圧は、再び0に近づくように印加され、抵抗値はスタートの値に戻っている。図4に示される例において、低抵抗状態から高抵抗状態に変化させる高抵抗化電圧VHと、高抵抗状態から低抵抗状態に変化させる低抵抗化電圧VLとは、|VH|=|VL|=2.0Vを概ね満たす。高抵抗化電圧の絶対値と低抵抗化電圧の絶対値が同等の場合、共通の電源電圧を用いて、抵抗変化素子が可逆的に遷移しうる。
図5は、IEDM Technical Digest. 13-15 Dec. 2004, p.587に開示されている、可変状態にあるユニポーラ型抵抗変化素子の特性の一例を示す。当該論文に示される通り、NiO、TiO2、HfO2、ZrO2から構成された抵抗変化層を有する抵抗変化素子は、ユニポーラ特性を示す。また、それらの遷移金属酸化物から構成された抵抗変化層は、製造直後には絶縁体であって、かつフォーミングストレスを与えることによって可変状態に遷移する。
抵抗変化層の材料と電極の材料との組合せ、および抵抗変化材料にドープされる不純物の材料等によっては、ユニポーラ型抵抗変化素子は、正電圧側でも負電圧側でも対称的に抵抗変化しうる。図5は、かかる素子の特性を例示する。
図5に示される例では、バイアス電圧の絶対値が0.5Vを超えると、素子がリセット状態、つまり高抵抗状態へと推移する。バイアス電圧の絶対値が1.0Vを超えると、素子がセット状態、つまり低抵抗状態へと推移する。かかる素子は、同じ極性で電圧の異なる電気的信号が印加されることで、2個の抵抗値範囲の間を可逆的に遷移しうる。しかし、図5のような特性のユニポーラ型抵抗変化素子は、+0.5V以上+1V未満の正極性の電気的信号が印加されることで高抵抗化し、−1V以下の負極性の電気的信号が印加されることで低抵抗化する。言い換えれば、図5に示される特性を有する型抵抗変化素子は、バイポーラ型抵抗変化素子として利用されうる。
抵抗変化素子は、印加される電気的信号の電圧値、パルス幅、および回数等の組合せによって、多値メモリとして利用されてもよい。例えば、タンタル酸化物から構成される抵抗変化層を有する抵抗変化素子は、良好な特性を示し、多値メモリへ応用されうる。
図6は、抵抗変化素子の抵抗変化特性の一例を示す。横軸に電気的信号の印加回数、縦軸に電気的信号が印加された後の抵抗値を示す。前述と同様に、抵抗値は読み出し電圧VRが印加されたときの電流から算出されている。三角点(▲)で示したものは負極性の電気的信号が印加された後の抵抗値を示す。四角点(■)は正極性の電気的信号が印加された後の抵抗値を示す。
図6に示される例において、抵抗変化素子120の構成は、図3において説明された構成と同様である。
図6から分かるように、正極性の電気的信号の電圧値が1300mVから1500mVに増加するにつれて、当該信号が印加された後の抵抗値は徐々に増加している。正極性の電気的信号の電圧値が1500mVに固定された場合、当該信号のパルス幅が100nSec、1000nSec、2000nSecに増加するにつれて、当該信号が印加された後の抵抗値は徐々に増加している。正極製の電気的信号の電圧値が、比較的小さな1200mVに固定され、複数回繰り返し印加されると、当該信号が印加された後の抵抗値は徐々に増加する。かかる特性を有する抵抗変化素子120の抵抗値は、比較的小さな電圧パルスによって、微調整されうる。すなわち、図6に示されるような特性を有する抵抗変化素子は、3以上の可変抵抗値範囲に制御性よく設定されうる。
例えば、センスアンプによって読み出された抵抗値が第2閾値よりも大きい場合にディジタルデータの0が出力され、該抵抗値が第2閾値よりも小さい場合にディジタルデータの1が出力される場合を考える。この場合、図6に示されるメモリセル91に+1300mV以上の正極性のパルスが印加されたとき、ディジタルデータの0が出力される。一方、図6に示されるメモリセル91に、負極性のパルス、または、+1200mV、100nSecの正極性パルスが印加されたとき、ディジタルデータの1が出力される。なお、閾値の値と完全に一致する抵抗値を有するセルには、ディジタルデータの1が割り当てられてもよいし、0が割り当てられてもよい。
例えば、センスアンプによって読み出された抵抗値が第3閾値よりも大きい場合にディジタルデータの0が出力され、該抵抗値が第3閾値よりも小さい場合にディジタルデータの1が出力される場合を考える。この場合、図6に示されるメモリセル91に、+1200mV以上の正極性のパルスが印加されたとき、ディジタルデータの0が出力される。一方、図6に示されるメモリセル91に、負極性のパルスが印加されたとき、ディジタルデータの1が出力される。
このように2種類の閾値に基づいて、ディジタルデータの割り当てが実行されることにより、2種類のデータが作成されうる。また、2つの閾値に基づいて、3値データが出力されてもよい。
抵抗変化素子の抵抗変化は、第2電極128と第1電極124とを電気的に接続する導電性パスが抵抗変化層126内に発生することによって、発生する。このことは、断面解析によって観察されている。このとき、導電性パスは例えば、直径30〜10nm以下である。導電性パスは、最先端の半導体プロセスにおけるリソグラフィーの加工限界よりも小さい。すなわち、導電性パスは、プロセスのばらつきの影響を受けにくい。そのため、上記で説明された抵抗変化素子は、それが微細化された場合においても、安定した抵抗変化特性を有しうる。
抵抗変化素子の抵抗変化層は、数百℃を超えるような高温処理がされることなく形成されうる。このため、加熱プロセスによるC−MOSトランジスタの特性の劣化が回避される。抵抗変化素子は、フラッシュメモリなどのフローティングゲート型トランジスタを用いるメモリ素子に比べて、半導体プロセスとの親和性が高い。そのため、製造プロセスの微細化が進んでも、抵抗変化の信頼性が低下するおそれが少ない。そのため、例えば、制御装置等のロジック回路と抵抗変化素子とが同一チップ上に形成される場合であっても、ロジック回路の特性への影響を抑えつつ抵抗変化素子が形成されうる。ロジック回路と抵抗変化素子との作製プロセスが共通化される場合、製造コストが低減されうる。
[メモリセルの抵抗値がランダムに変動するメカニズム]
メモリセル91は、抵抗値が少なくとも1つの可変抵抗値範囲内にある場合に時間経過に伴って抵抗値がランダムに変動する性質を有する。言い換えると、メモリセル91は、そこに属する抵抗値が時間経過に伴ってランダムに変動しうるような可変抵抗値範囲を、少なくとも1つ有する。
図7は、1つの可変抵抗値範囲内にあるメモリセルから連続して抵抗値を読み出した例を示す。「抵抗値が少なくとも1つの可変抵抗値範囲内にある」とは、メモリセルが1つの抵抗状態にあることをいう。すなわち二値型のメモリセルである場合には、例えば、メモリセルが高抵抗状態にあって低抵抗状態にないことをいう。
図7の実験に用いられたメモリセルの大きさは約400nm×400nmである。下部電極はTaNから構成され、その厚さは約50nmである。上部電極の材料はイリジウムから構成され、その厚さは約100nmである。抵抗変化層は第1タンタル含有層と第2タンタル含有層を含む。第1タンタル含有層の厚さは約65nmであり、第2タンタル含有層の厚さは約5nmである。高抵抗化パルスとして、選択素子と抵抗変化素子とを含めたメモリセルの両端に、電圧が1.8Vでパルス幅が50nSecの電圧パルスが印加された。低抵抗化パルスとして、選択素子と抵抗変化素子とを含めたメモリセルの両端に、−電圧が2.4Vでパルス幅が50nSecの電圧パルスが印加された。読み出しパルスとして、選択素子と抵抗変化素子とを含めたメモリセルの両端に、電圧が0.4Vでパルス幅が100nSecの電圧パルスが印加された。高抵抗化パルスと低抵抗化パルスとが交互に印加されることで、抵抗変化素子が高抵抗状態と低抵抗状態とを可逆的に遷移することが確認された。その後、抵抗変化素子は、高抵抗化パルスが1回だけ印加されて、低抵抗状態から高抵抗状態に遷移した。その後、抵抗変化素子には低抵抗化パルスも高抵抗化パルスも印加されることなかった。抵抗変化素子には読み出しパルスが繰り返し印加され、1000回、抵抗値情報の読み出しが行われた。読み出しの時間間隔は5μSecとした。
図7において、横軸が読み出し回数、縦軸が規格化された抵抗値情報である。図7は、同じ構成を有する3つの抵抗変化素子A、B、Cの抵抗値の揺らぎを示している。ここでいう抵抗値情報とは、後述する読み出し回路で得られるものである。抵抗値情報の値が大きいほど高い抵抗値を示し、値が小さいほど小さい抵抗値を示す。図7は、1つの抵抗状態にある抵抗変化素子の抵抗値情報が繰り返して読み出されたとき、その抵抗値情報がランダムに増減することを示している。図7は、素子A、素子B、素子Cで、抵抗値変動の振幅および周期が大きく異なっていることも示している。
ここで述べる抵抗値変動または抵抗値揺らぎとは、1つのメモリセルの抵抗値が、抵抗状態を変化させる電気的パルスが印加されていないにも関わらず、時間の経過と共に変動する現象を指す。言い換えると、1つの抵抗状態にある1つのメモリセルの抵抗値が、時間の経過とともに変動する現象を指す。抵抗状態を変化させる電気的パルスの例としては、高抵抗化パルス、および低抵抗化パルスが挙げられる。抵抗状態を変化させない電気的パルスの例としては、読み出しパルスが挙げられる。
図8A、図8Bは、パーコレーションモデル(percolation model)を用いて、フォーミング時における抵抗変化層(例えば局所領域)中のフィラメントの形成をシミュレートした結果の一例を示す。
パーコレーションモデルとは、抵抗変化層中にランダムに分布した欠陥サイトの密度が増大するにつれて、欠陥サイト等のつながりが形成される確率が増加するという理論に基づくモデルである。ここで「欠陥」とは、例えば、金属酸化物中で酸素が欠損していることを意味し、「欠陥サイトの密度」は、例えば、酸素不足度と相関している。すなわち、酸素不足度が大きくなると、欠陥サイトの密度も大きくなる。
図8A、図8Bに示されるシミュレーションにおいて、抵抗変化層の酸素イオンサイトは、格子状に仕切られた領域(サイト)として近似的に仮定されている。この仮定に基づいて、確率的に発生する欠陥サイトによって形成されるフィラメントがシミュレーションで求められた。図8Aおよび図8Bにおいて、“0”が含まれているサイトは抵抗変化層中に形成される欠陥サイトを表している。他方、空白となっているサイトは酸素イオンが占有しているサイトを表している。酸素イオンにより占有されているサイトは、導電パスのない高抵抗な領域を意味している。また、矢符は、上下、左右及び斜め方向に1個のサイトの範囲内で互いに接続された欠陥サイトの連なりを示している。この欠陥サイトの連なりは、抵抗変化層内に形成されるフィラメントに相当する。すなわち、矢符は、図中の上下方向に電圧が印加された場合に電流が流れるパスを示している。
図8Aに示されるように、抵抗変化層の下面と上面との間に電流を流すフィラメントは、ランダムに分布する欠陥サイトのうち、上端から下端までを接続する欠陥サイトのクラスターから構成される。このパーコレーションモデルに基づくと、フィラメントの本数及び形状は確率的に形成されることになる。フィラメントの本数及び形状の分布は、抵抗変化層の抵抗値のばらつきとなる。
高抵抗化パルスによって酸素イオンがフィラメントに導入されると、当該酸素イオンが欠陥サイトと結合し、これによりフィラメントパスが切断されうる。これにより、抵抗変化層は高抵抗状態へと推移する。逆に、低抵抗化パルスは印加されると、酸素イオンの離脱が起こり、欠陥サイトが生成され、フィラメントパスが形成されうる。これにより、抵抗変化層は低抵抗状態へと推移する。各抵抗状態の間でフィラメントパスの本数に充分な差があれば、抵抗値の差分が大きくなり、抵抗値の判定マージンが増加する。
次に、図7のように1つの抵抗状態にある1つの抵抗変化素子において、その抵抗値が揺らぐ現象のメカニズムについて説明する。
各抵抗状態の抵抗値を決定するフィラメントパスの形状、本数および太さは、時間的に安定ではない。つまり、酸素サイトから酸素イオンが抜け出ることによって欠陥サイトが生成されたり、欠陥サイトへ酸素イオンが供給されることによって欠陥サイトが消滅したりすることにより、フィラメントパスの形状、本数および太さが微妙に増減する。これが時間的な抵抗値の揺らぎとして観測される。図8Bは、図8Aに示される状態から、たった一つの欠陥サイトが隣接サイトと入れ替わっただけで、図8Aにあったフィラメントパスの1つが断絶される例を示している。この場合、抵抗値が僅かに増加することになる。図による説明は省略するが、逆に、欠陥サイトが隣接サイトと入れ替わることにより新たなフィラメントパスが発生することもある。この場合は、僅かに抵抗値が減少する。図7のような抵抗値の揺らぎ現象は、かかるメカニズムにより発生すると考えられる。実際には、図のようなフィラメントパスの数は多数あり、その一部が増減するもののフィラメントパスの総数は大きくは変化しないと考えられる。すなわち、揺らぎ現象において、メモリセルの抵抗状態が別の抵抗状態に変化してしまうほどの大きなフィラメントパスの変化は生じないと考えられる。
上記メカニズムにより、抵抗値が揺らぐ現象は、酸化物中の酸素イオンの移動により抵抗値が変動するあらゆる抵抗変化素子に当てはまると考えられる。例えば、第1電極と金属酸化物と第2電極とをこの順で積層した素子は、このような性質を有しうる。さらに、例えば、第1電極と遷移金属酸化物と第2電極とをこの順で積層した素子は、このような性質を示しやすい。
[フォーミングがランダムに完了するメカニズム]
フォーミングストレスの印加によって、抵抗変化層中の酸素等の欠陥サイト等がつながることによりフィラメントが形成される場合を考える。
フォーミング動作は、抵抗変化層の一部領域において金属酸化物内の欠陥サイトの密度を変化させ、フィラメントを形成する動作に対応する。例えば、電気的ストレスの印加が、初期状態において欠陥サイトが疎であった領域の一部を、欠陥サイトが密な状態に変化させる。それによって、欠陥サイトの連なりであるフィラメントが形成されうる。抵抗変化層が金属酸化物から構成される場合、抵抗変化層内の複数の欠陥サイトは、メモリセル毎にランダムに配置される。例えば、フィラメント形成の障壁となる欠陥サイト間の距離等は、メモリセル毎にランダムにばらついている。このため、仮に各メモリセルに一定の電気的ストレスが印加される場合であっても、フィラメントが形成されるまでに要するストレス量がメモリセル毎にランダムにばらつくと考えられる。その結果、初期状態にある複数のメモリセルに所定の電気的ストレスが印加された場合に、フォーミングが完了するメモリセルがランダムに発生すると考えられる。
なお、酸素欠陥サイト等がつながることによってフィラメントパスが形成される材料であれば、フォーミングによる初期状態から可変状態への変化は、同様のメカニズムによって説明できると考えられる。そのため、例えば抵抗変化層に含まれる複数の層が、互いに異なる金属の酸化物から構成される場合であっても、同様のメカニズムが推察されうる。よって、初期状態のメモリセルに所定の電気的ストレスを印加した場合に、フォーミングが発生するか否かは、確率的に、すなわちランダムに、決定されうる。
[抵抗値変動を利用した乱数データの生成方法]
図9は、実施形態の乱数処理方法の一例を示すフローチャートである。以下、図9を参照しつつ、実施形態の乱数処理方法について説明する。
図9に示されように、まず、ステップS11において、複数の異なる時刻ので、抵抗値が1つの可変抵抗値範囲にあるメモリセル91から抵抗値情報を取得する。
次に、ステップS12において、ステップS11で得られた複数の抵抗値情報を用いて乱数データを生成する。
メモリセル91の抵抗値は、例えば図7に示されるように、複数の異なる時刻のそれぞれにおいてランダムに変動する。したがって、ステップS11で得られる抵抗値情報も読み出しの度にランダムに変動するため、これを用いて乱数データが生成されうる。例えば、得られた抵抗値情報から決定された0または1を、抵抗値情報が読み出された順に並べることで、乱数データが得られうる。
乱数データを生成する具体的な方法は特に限定されない。上述の抵抗値変動を利用して乱数データが生成されるものであれば、どのような方法であってもよい。このような物理現象を利用して乱数データが生成されることで、擬似乱数よりも高品質の乱数データが生成されうる。
2つの異なる時刻にメモリセルから取得された2つの抵抗値情報の差分が求められてもよい。該差分がある範囲(第1範囲)に含まれるか否かが判定されることで、乱数データが生成されてもよい。例えば、差分>0であれば“1”が出力され、差分≦0であれば“0”が出力されてもよい。
2つの異なる時刻にメモリセルから取得された2つの抵抗値情報の大小関係が判定されてもよい。該判定結果を用いて乱数データが生成されてもよい。例えば、ある時刻の抵抗値情報が次の時刻の抵抗値情報よりも小さければ“1”が出力され、ある時刻の抵抗値情報が次の時刻の抵抗値情報より大きいか等しければ“0”が出力されてもよい。大小関係は、例えば、2つの抵抗値情報の差を用いて判定されてもよいし、2つの抵抗値情報の比を用いて判定されてもよい。
[動作モードおよびコマンド]
乱数処理装置100は、4以上の動作モードを有してもよい。この場合、乱数処理装置100は、外部から4以上のコマンドから選択される1のコマンドを受領し、該コマンドに基づいて4以上の動作モードのうちの1つを選択的に実行してもよい。
乱数処理装置100は、第1書き込みモード、第1読み出しモード、第2書き込みモード、および第2読み出しモードのうち1つを選択的に実行してもよい。第1書き込みモードにおいて、乱数処理装置100は、例えば、各メモリセル91が初期状態にあるか可変状態にあるかの違いを利用したデータを書き込む。第1読み出しモードにおいて、乱数処理装置100は、例えば、各メモリセル91が初期状態にあるか可変状態にあるかの違いを利用したデータを読み出す。第2書き込みモードにおいて、乱数処理装置100は、例えば、各メモリセル91の抵抗値が初期抵抗値範囲にあるか否かの違いを利用せず、各メモリセル91の抵抗値が少なくとも一つの可変抵抗値範囲にあるか否かの違いを利用したデータを書き込む。第2読み出しモードにおいて、乱数処理装置100は、例えば、各メモリセル91の抵抗値が初期抵抗値範囲にあるか否かの違いを利用せず、各メモリセル91の抵抗値が少なくとも一つの可変抵抗値範囲にあるか否かの違いを利用したデータを読み出す。なお、本開示において、各メモリセル91が初期状態にあるか可変状態にあるかの違いを利用したデータが、第1種データと呼ばれる場合がある。また、各メモリセル91の抵抗値が初期抵抗値範囲にあるか否かの違いを利用せず、各メモリセル91の抵抗値が少なくとも一つの可変抵抗値範囲にあるか否かの違いを利用したデータが、第2種データと呼ばれる場合がある。
図3に示す例を用いて、4つのモードの具体例について説明する。
特殊書き込みモードにおいて、制御装置93は、入力データ“1”に対応して選択されるメモリセル91にフォーミングストレスを印加させ、入力データ“0”に対応して選択されるメモリセル91に電気的ストレスを印加させない。特殊書き込みモードは、第1書き込みモードの一例である。乱数処理装置100の外部から入力され、特殊書き込みモードの実行を指示するコマンドは、特殊書き込みコマンドと呼ばれる。特殊書き込みコマンドは、第1書き込みコマンドの一例である。
特殊読み出しモードにおいて、制御装置93は、第1閾値を用いた判定により、メモリセル91のデータを読み出させる。特殊読み出しモードは、第1読み出しモードの一例である。乱数処理装置100の外部から入力され、特殊読み出しモードの実行を指示するコマンドは、特殊読み出しコマンドと呼ばれる。特殊読み出しコマンドは、第1読み出しコマンドの一例である。
通常書き込みモードにおいて、制御装置93は、入力データ“1”に対応して選択されるメモリセル91に低抵抗化パルスを印加させ、入力データ“0”に対応じて選択されるメモリセル91に高抵抗化パルスを印加させる。通常書き込みモードは、第2書き込みモードの一例である。乱数処理装置100の外部から入力され、通常書き込みモードの実行を指示するコマンドは、通常書き込みコマンドと呼ばれる。通常書き込みコマンドは、第2書き込みコマンドの一例である。
通常読み出しモードにおいて、制御装置93は、第2閾値を用いた判定により、メモリセル91のデータを読み出させる。通常読み出しモードは、第2読み出しモードの一例である。乱数処理装置100の外部から入力され、通常読み出しモードの実行を指示するコマンドは、通常読み出しコマンドと呼ばれる。通常読み出しコマンドは、第2読み出しコマンドの一例である。
[データへのアクセス制限の具体例]
かかる構成において、例えば、通常書き込みコマンドおよび通常読み出しコマンドは、乱数処理装置100のマニュアルなどで広く公開されてもよい。一方、特殊書き込みコマンドおよび特殊読み出しコマンドは、乱数処理装置100の製造者のみが保有する、すなわち秘匿されてもよい。
乱数処理装置100の製造者は、特殊書き込みコマンドを用いて、メモリセルアレイ90の特定領域にパスワードを書き込んでおいてもよい。特定のユーザが乱数処理装置100の外部からパスワードを入力したときに、例えば、乱数処理装置100の制御装置93は、受け取ったパスワードと、特殊読み出しモードで特定領域から読み出したパスワードとを照合してもよい。制御装置93は、両者のパスワードが一致した場合にのみ通常書き込みモードでの書き込みおよび通常読み出しモードでの読み出しを許可してもよい。
かかる構成を用いれば、乱数処理装置100は、例えば、通常書き込みモードで、メモリセルアレイ90内の所定の領域に有料コンテンツデータを記録しておき、特殊書き込みモードで、メモリセルアレイ90内の他の領域に装置のID情報およびコンテンツ毎のシリアル情報等を記録しておくことができる。これにより、例えば、装置のID情報およびコンテンツ毎のシリアル情報等を予め知らされた特別な利用者のみが、メモリセルアレイ90に記録された有料コンテンツにアクセスできる。このとき、特殊書き込みコマンドを知らない権限のない第三者は、特殊書き込みモードで書き込まれたデータを書き換えることができず、パスワード未設定状態を作り出すことが困難になる。
乱数処理装置100は、樹脂等により封止されてもよい。これにより、例えば、乱数処理装置100の内部配線にプローブをあてることが困難となり、電気抵抗の測定による分析が困難となる。すなわち、例えば、利用者がID情報と特殊読み出しコマンドに相当するコマンドを漏洩しない限り、内部データは不正にアクセスされない。
従来技術のフラッシュメモリが多値メモリとして用いられる場合、微細化が進むに従って、データ記録の信頼性が低下するおそれがある。一方、暗号化や認証に用いられるパラメータのデータの記録には、極めて高い信頼性が求められる。
これに対して、抵抗変化素子を含むメモリセルを備える乱数処理装置100は、微細化が進行した場合であっても、高い信頼性が保持されうる。特に、抵抗変化層がフィラメントを含む微小な局所領域を有する場合、上述の通り、微細化の影響を受けにくい。そのため、例えば暗号化または認証に用いられるパラメータのデータ等が、高い信頼性で記憶されうる。
暗号化および認証のいずれか少なくとも一方を実行する暗号/認証処理部が、乱数処理装置100と同一チップ上に形成されていてもよい。これにより、例えば、暗号/認証処理部と乱数処理装置100との間で、暗号化パラメータ等のデータが送受信される場合であっても、インタフェース上で信号波形を盗み読みされるリスクが低減されうる。これにより、暗号化パラメータ等が漏洩するリスクが低減されうる。抵抗変化素子の抵抗状態を物理解析によって判別することは、ほぼ不可能であるため、物理的に暗号化パラメータ等が盗まれるリスクはほとんどない。
従来技術のフラッシュメモリと制御装置とが混載される場合、両者の製造プロセスを共通化することは困難である。また、フラッシュメモリの製造における高温熱処理が、ロジック回路に悪影響を与えるおそれがあった。
これに対して、抵抗変化素子を含むメモリセルを備える乱数処理装置100は、製造工程に高温熱処理を必要とせず、C−MOSプロセスの半導体特性に悪影響を与えにくい。そのため、乱数処理装置100とロジック回路との混載回路が、それらの特性を損なうことなく、あるいは、製造プロセスのコスト高を招くことなく、製造されうる。
上記の例では、4つの動作モード、および、それらを指示する4つコマンドについて説明した。しかし、動作モードおよびコマンドの数と組合せはこれに限定されない。例えば、図6のように可変状態のメモリセルの抵抗値に7段階の抵抗値範囲が設定されうる場合、可変状態の抵抗値および初期状態の抵抗値を合わせて最大で8段階の抵抗値範囲が設定されうる。そのため、例えば、特殊書き込みモードで3値データの書き込みが行われ、通常書き込みモードで4値データの書き込みが行われてもよい。書き込みに用いられる抵抗値範囲の組合せは、利用システムに応じて適宜に選択されうる。
[フォーミングストレス印加による可変状態への変化のランダム性]
初期状態にある素子の抵抗値を初期抵抗値範囲から所定の可変抵抗値範囲へと変化させる行為は、フォーミング(forming)と呼ばれる。例えば、高抵抗化パルスの電圧をVH、高抵抗化パルスのパルス幅をTPHとし、低抵抗化パルスの電圧をVL、低抵抗化パルスのパルス幅TPLとし、フォーミングストレスの電圧をVF、フォーミングストレスのパルス幅をTPFとするとき、VH、VL、VF、TPH、TPL、およびTPFは、下記の条件1および条件2の少なくともいずれか一方を満たしてもよい。
条件1:|VF|>|VH|および|VF|>|VL|
条件2:TPF>TPHおよびTPF>TPL
このとき、通常書き込みモードでの書き込み条件では、フォーミングは実行されない。
フォーミングストレスは、条件2を満たす複数の電気的ストレスであってもよい。複数の電気的ストレスは、同じ電圧を有していてもよい。あるいは、電気的ストレスの印加が繰り返される過程において、電圧および/またはパルス幅が段階的に増大されてもよい。
仮に、メモリセルアレイ内にある初期状態の全メモリセルを可変状態に変化させるために、1つのメモリセルあたり、規格化された累積印加時間が10000単位である電気的ストレスの印加が必要な場合を考える。このとき、例えば、150単位の電気的ストレスを印加した段階で電気的ストレスの印加を中止すると、全てのメモリセルが可変状態に変化することはない。しかしながら、実験の結果、この場合において、初期状態から可変状態へと変化するメモリセルがメモリセルアレイ内にランダムに発生しうることが判明した。
すなわち、メモリセルアレイに初期状態から可変状態に変化させるような電気的ストレスが印加されたときに、初期状態から可変状態に変化するメモリセルと、初期状態のまま維持されるメモリセルとがランダムに発生しうる。
図10は、規格化された累積印加時間と、可変状態へ変化したメモリセルの数についての標準正規分布の偏差との関係の一例を示す。図10に示される素子の構成は、図3に示される例で用いられたものと同等である。フォーミングストレスは、電圧が3.5V、最短のパルス幅が10μSecの複数の電気的ストレスを含む。メモリセルの個数は256キロビットである。なお、図10の累積印加時間は、最短パルス幅に基づく所定の係数で規格化された時間である。
図10に示されるように、フォーミングが完了した累積ビット数の正規分布は、累積印加時間に対してほぼ直線に分布している。このことは、初期状態から可変状態への変化が、極めてランダムに発生することを示している。このランダム性は、例えば、乱数処理装置ごとのユニークかつランダムなID情報を作成するために用いられうる。
図10において、規格化累積印加時間が約150(1.5×102)に達した時点で電気的ストレスの印加が停止されると、可変状態に変化したメモリセルと、可変状態に変化しなかったメモリセルとが、ほぼ半数ずつとなる。可変状態に変化するメモリセルのロケーションはランダムである。そのため、例えば、特殊書き込みモードが実行されると、メモリセルアレイにおける一部のメモリセルがランダムに選択され、初期状態から可変状態へと変化する。言い換えると、特殊書き込みモードにおいて、ランダムなデータが生成され、メモリセルアレイに記録される。このランダムなデータは、装置ごとに固有のデータである。
このようなランダム性および固有性が発生する理由として、抵抗変化素子のプロセスばらつきや形状ばらつき以外に、例えば、導電パスが確率的に形成されることが考えられる。上述のとおり、金属酸化物中の欠陥サイトはメモリセル毎にランダムに配置されており、フォーミングでこれらの欠陥サイト間がつながることにより、フィラメントが形成される。そのため、仮に初期状態にある複数のメモリセルに一定の電気的ストレスが印加された場合であっても、フォーミングが完了するメモリセルは、統計的に(例えば標準正規分布様に)ばらついて発生すると考えられる。そのため、仮に特殊書き込みモードで複数のメモリセルに対して一様なストレスが印加される場合であっても、フィラメントが形成される素子と形成されない素子とが確率的に発生しうる。その確率は、電気的ストレスによって適宜調整されうる。なお、酸素欠陥サイト等がつながることによってフィラメントパスが形成される材料であれば、同様のメカニズムによって、ランダムなデータが生成されると推察される。
従来技術において、擬似乱数は所定の関数を用いて生成される。しかしながら、関数および入力される初期値が同じであれば、演算回数に応じて同じ値が出力されてしまう。そのため、装置内で生成されるランダム値が予測されてしまうおそれがあった。
メモリセルアレイにおける初期状態から可変状態への変化のランダム性は、予測不可能な乱数データの生成を実現する。特殊書き込みモードで生成された乱数データは、上述した乱数を得るための関数に入力される初期値として用いられてもよい。これにより、さらにランダム性が向上しうる。
例えば、特殊書き込みモードで、乱数データがID情報およびシリアル情報として書き込まれてもよい。これにより、予測不可能な態様でID情報およびシリアル情報が生成され、記録されうる。特殊書き込みモードで書き込まれたID情報およびシリアル情報は、特殊読み出しモードで読み出されうる。したがって、例えば、特殊読み出しモードを実行する権限のあるユーザのみが、コンテンツを利用できる。
本実施形態において、抵抗値変動を利用した乱数処理方法と、フォーミングストレス印加を利用した乱数処理方法とが組み合わせて利用されてもよい。
[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は、15種類の検定法から構成される。そのうち1Mbit未満のストリームデータについては、SP800-22のうち、以下の9種類の検定法が適用されうる。
1)1次元度数検定(frequency test)
2)ブロック単位の等頻度検定(frequency test within a block)
3)連検定(runs test)
4)ブロック単位の最長連検定(test for longest run of ones in a block)
5)2値行列ランク検定(binary matrix rank test)
6)離散フーリエ変換検定(discrete Fourier transform test)
11)系列検定(serial test)
12)近似エントロピー検定(approximate entropy test)
13)累積和検定(cumulative sums (cusums) test )
表1は具体的な評価概要を示す。各検定項目で算出される値(p−Value)が0.01以上であるとき、その検定に合格したとみなされる。本実施形態の方式により生成される乱数データのランダム性は、この検定法でテストされうる。この検定に合格した高品位の乱数データは、例えば暗号用に用いられうる。
[抵抗値変動を利用して乱数データを生成するときの課題]
図11は、1つの可変抵抗値範囲にあるメモリセルから、連続して抵抗値が読み出された例を示す。図11は、図7の素子Aのグラフに相当する。以下、抵抗変化素子の抵抗値変動から乱数データが生成されるときの課題について、図11を用いて説明する。
物理的なランダム変動から乱数を生成するための最も単純な方法は次のようなものである。まず、ランダムに変動する値が取得される。次に、その値が所定の閾値と比較される。最後に、その比較結果に応じて0または1が割り当てられ、乱数が生成される。しかし、図11に示されるように、抵抗値情報が読み出し回数に応じて大きく変動する場合、適切な乱数が生成されない。例えば、1つの閾値に基づいて0または1が割り当てられると、0ばかりとなる領域や、1ばかりとなる領域が発生してしまう。これに対して、例えば、所定の読み出し回数ごとに、0の数と1の数がほぼ半数になるような閾値(図11中の破線)を設定し直す方法が考えられる。
しかし、かかる方法でも、例えば図7の素子Bのように抵抗値が大きく変動する場合には、該変動の前後で、0または1の大きな偏りが発生してしまう。表2は、この方法により生成された乱数データが、前述した検定法に基づき評価された結果を示している。
表2から分かるように、多くの検定項目が不合格(Fail)となっている。このことは、所定の読み出し回数毎に閾値を設定する方法であっても、暗号に利用可能な高品位の乱数が生成できない場合があることを示している。そこで、本発明者らは、抵抗変化素子の抵抗値変動から高品位な乱数データを生成する方法を検討した。以下に説明される実施例は、その一例である。
本実施の形態による乱数処理方法は、複数の抵抗値情報を用いて長さmの固定長のデータである第1のディジタルデータを生成するステップと、第1のディジタルデータに含まれるビットを互いに異なる組合せで反転させることで複数の新たなディジタルデータを生成するステップと、第1のディジタルデータおよび複数の新たなディジタルデータのうち、出現頻度の最も低いものを選択して第2のディジタルデータとするステップと、第2のディジタルデータを用いて乱数データを生成するステップと、第2のディジタルデータの出現頻度に1を加えるステップと、を含む。
<メモリセルアレイおよび読み出し回路>
本実施の形態における乱数データ生成のアルゴリズムおよび回路方式を説明する前に、メモリセルアレイ及び抵抗値情報の読み出し回路の具体例について説明する。
図12は、本実施の形態にかかる乱数処理装置の概略構成の一例を示すブロック図である。なお、図12はあくまで一例であり、本実施形態の乱数処理装置の構成は、これに限定されない。
図12に示されるように、本実施の形態による乱数処理装置020は、半導体基板上に、メモリ本体部001を備えている。メモリ本体部001は、メモリセルアレイ021と、行選択回路003と、列選択回路004と、を具備している。
メモリセルアレイ021は、半導体基板の上の第1平面内において第1方向に互いに平行に延びる複数の第1配線WL0,WL1,WL2,…と、第1平面と平行な第2平面内において第2方向に互いに平行に延び、かつ第1配線と立体交差する複数の第2配線BL0,BL1,BL2,…と、これらの第1配線WL0,WL1,WL2,…および第2配線BL0,BL1,BL2,…の立体交差点のそれぞれに設けられたメモリセルM211,M212,M213,M221,M222,M223,M231,M232,M233,…とを備える。説明の簡便のため、以下では、第1配線はワード線と呼ばれ、第2配線はビット線と呼ばれる。メモリセルM211,M212,M213,M221,M222,M223,M231,M232,M233は、以下、「メモリセルM211,M212,…」と表される場合がある。
メモリセルM211,M212,…は、抵抗変化素子R11,R12,R13,R21,R22,R23,R31,R32,R33,…をそれぞれ備える。抵抗変化素子R11,R12,R13,R21,R22,R23,R31,R32,R33,…は、以下。「抵抗変化素子R11,R12,…」と表される場合がある。抵抗変化素子R11,R12,…は、例えば、図2に示される構成を有する。メモリセルM211,M212,…は、トランジスタT11,T12,T13,T21,T22,T23,T31,T32,T33,…をそれぞれ備える。トランジスタのT11,T12,T13,T21,T22,T23,T31,T32,T33,…は、以下、「トランジスタT11,T12,…」と表される場合がある。ワード線WL0,WL1,WL2,…は、トランジスタT11,T12,…の制御端子(例えばゲート)にそれぞれ接続される。ビット線BL0,BL1,BL2,…は、抵抗変化素子R11,R12,…の一方の端子にそれぞれ接続されている。抵抗変化素子R11,R12,…の他方の端子は、トランジスタT11,T12,…の第1主端子にそれぞれ接続されている。
抵抗変化素子R11,R12,…は、それぞれ、メモリセルM211,M212,…の中で、不揮発性記憶素子として動作する。図12に示される例メモリセルは、1個のトランジスタと1個の抵抗変化素子から構成されている。言い換えると、図12に示される乱数処理装置は、いわゆる1T1R型の記憶装置を備える。
メモリセルアレイ021は、ワード線WL0,WL1,WL2,…に平行して配列されている複数のプレート線PL0,PL1,PL2,…を備えている。プレート線PL0,PL1,PL2,…は、トランジスタT11,T12,…の第2主端子にそれぞれ接続されている。トランジスタT11,T12,…において、第1主端子と第2主端子とのいずれがソースとなりいずれがドレインとなるかは、特に限定されず、具体的な動作に応じて適宜に設定されうる。それらは、例えば、トランジスタを流れる電流の方向、主要キャリアの電荷の正負等によって決定される。
抵抗変化素子R11,R12,…は、上述したものと同様の構成とすることができる。そのため、抵抗変化素子R11,R12,…の詳細な説明は省略される。
図12に示される例において、トランジスタT11,T12,T13,…はnチャネル型MOSトランジスタである。これらは選択トランジスタとして機能する。トランジスタT11,T12,T13,…の第1主端子は、それぞれ、抵抗変化素子R11,R12,R13,…を介して、ビット線BL0に接続される。トランジスタT21,T22,T23,…の第1主端子は、それぞれ、抵抗変化素子R21,R22,R23,…を介して、ビット線BL1に接続される。トランジスタT31,T32,T33,…の第1主端子は抵抗変化素子R31,R32,R33,…を介して、ビット線BL2に接続されている。
トランジスタT11,T21,T31,…のゲートはワード線WL0に接続されている。トランジスタT12,T22,T32,…のゲートはワード線WL1に接続されている。トランジスタT13,T23,T33,…のゲートはワード線WL2に接続されている。
トランジスタT11,T21,T31,…の第2主端子はプレート線PL0に接続されている。トランジスタT12,T22,T32,…の第2主端子はプレート線PL1に接続されている。トランジスタT13,T23,T33,…の第2主端子はプレート線PL2に接続されている。
図12においてプレート線が各行で一本につながったように図示されているが、プレート線は複数のブロックに分かれていてもよい。
乱数処理装置020は、さらに、制御装置を備える。制御装置は、書き込み回路011と、センスアンプ012と、乱数生成回路038と、切替え回路037と、電源制御回路008と、論理制御回路010と、コマンドレジスタ033と、ステータスレジスタ034と、特殊コマンドレジスタ035と、入出力制御回路007と、アドレスレジスタ009と、Casheレジスタ031と、特殊データレジスタ032と、データレジスタ030と、を備えている。
書き込み回路011は、行選択回路003および列選択回路004によって選択された1個以上のメモリセルに情報の書き込みを行う。行選択回路003は、例えば、ゲートドライバを備える。書き込み回路011は、例えば、通常書き込みモード、特殊書き込みモード、および揺らぎ書き込みモードを選択的に実行しうる。書き込み回路011は、例えば、各モードを実行する回路を個別に備えてもよい。
センスアンプ012は、選択されたメモリセルの抵抗値を検出し、抵抗値情報を出力する、および/または、2値以上の値(例えば、データ“1”および“0”)を判定する。センスアンプ012は、例えば、通常読み出しモード、特殊読み出しモード、および揺らぎ読み出しモードを選択的に実行しうる。センスアンプ012は、各モードを実行する回路を個別に備えてもよい。
乱数生成回路038は、センスアンプ012からの抵抗値情報を基に乱数データを生成する。
切替え回路037は、書き込み動作、読み出し動作、乱数生成動作に応じて、各回路の接続を切り替える。書き込み動作の場合、切替え回路037は、列選択回路004が選択したメモリセルを書き込み回路011に接続させる。これにより、データレジスタ030の出力値が書き込み回路011に出力される。読み出し動作の場合、切替え回路037は、列選択回路が選択したメモリセルをセンスアンプ012に接続させる。これにより、センスアンプ012の出力データがデータレジスタ030に出力される。乱数生成動作の場合、切替え回路037は、乱数生成回路038の出力した乱数データをデータレジスタ030に出力する。
電源制御回路008は、メモリセルにデータを書き込むために必要な複数の電源電圧を生成する。
論理制御回路010は、外部から入力された制御信号に応じて、入出力制御回路007を動作させる。また、論理制御回路010は、特殊コマンドレジスタ035およびコマンドレジスタ033に記憶されている制御コマンドに基づいて、乱数処理装置020の動作を制御する。
入出力制御回路007は、論理制御回路010からの指示に従って、入出力データバスを通じて入力データを取得する。入出力制御回路007は、当該入力データから制御コマンドおよびアドレス情報を抽出する。入出力制御回路007は、制御コマンドを特殊コマンドレジスタ035またはコマンドレジスタ033に保持させ、アドレス情報をアドレスレジスタに保持させる。入出力制御回路007は、通常読み出しモードまたは特殊読み出しモードにおいて、ステータスレジスタ034およびCasheレジスタ031等に保持されたデータ等を外部に出力してもよい。
例えば、論理制御回路010は、外部から入力された制御信号に基づいて、コマンド入力のタイミングを決定する。入出力制御回路007は、このタイミングに基づいて、入力データを取得する。この入力データはコマンドパターンを含む。入出力制御回路007は、コマンドパターンから、制御コマンドと、アドレス情報を抽出する。制御コマンドの例としては、通常書き込みコマンド、特殊書き込みコマンド、揺らぎ書き込みコマンド、通常読み出しコマンド、特殊読み出しコマンド、及び、揺らぎ読み出しコマンド等が挙げられる。揺らぎ書き込みコマンドとは、例えば、高抵抗状態及び低抵抗状態の間の中間的な抵抗状態に遷移させる書き込みであってもよい。通常書き込みコマンド、特殊書き込みコマンド、揺らぎ書き込みコマンドは、何れも異なるコマンドパターンである。特殊読み出しコマンドと、通常読み出しコマンドと、揺らぎ読み出しコマンドとは、何れも異なるコマンドパターンである。特殊書き込みコマンド、揺らぎ書き込みコマンド、特殊読み出しコマンド、および揺らぎ読み出しコマンドは、一般の利用者には公開されないコマンドであってもよい。
コマンドレジスタ033は、制御コマンドを一時的に記憶する。コマンドレジスタ033は、例えば、通常書き込みコマンドまたは通常読み出しコマンドを記憶する。これらのコマンドに応じて、各種モードが選択される。制御コマンドは、外部から論理制御回路010に入力される制御信号と、外部から入出力制御回路007に入力される入力データに基づいて生成される。
ステータスレジスタ034は、メモリ装置の内部状態を装置外に知らせるためのステータス情報を一時記憶する。
特殊コマンドレジスタ035は、例えば、特殊書き込みコマンド、揺らぎ書き込みコマンド、特殊読み出しコマンド、および揺らぎ読み出しコマンドを一時的に記憶する。これらのコマンドに応じて、各種モードが選択される。これらの制御コマンドのそれぞれは、外部から論理制御回路010に入力される制御信号と、外部から入出力制御回路007に入力される入力データに基づいて生成される。
アドレスレジスタ009は、アドレス信号を保持する。アドレス信号は、複数のメモリセルM211,M212,…のうち、選択すべきメモリセルのアドレスを示す信号である。アドレスレジスタ009は、当該アドレス信号に基づいて、行アドレス信号を行選択回路003へ出力し、かつ、列アドレス信号を列選択回路004へ出力する。
行アドレス信号は、アドレス信号に示されたアドレスのうち、行のアドレスを示す信号である。列アドレス信号は、アドレス信号に示されたアドレスのうち、列のアドレスを示す信号である。図12に示される例において、列アドレスに対応する1つのビットラインが列選択回路004により選択され、行アドレスに対応する1つのワードラインが行選択回路により選択される。以下では、メモリセルアレイ内の複数のメモリセルの中から、単一のメモリセルが選択される例について説明する。なお、アドレスの選択はこれに限定されない。例えば、WL0が選択されたときに、BL0とBL1とが同時に選択されてもよい。この場合、2個のメモリセルM211,M221が同時に選択される。書き込み回路011は、複数のメモリセルを同時に書き込んでもよい。センスアンプ012は、複数のメモリセルを同時に読み出してもよい。
Casheレジスタ031は、例えば、入出力制御回路007からの指示に応じて、メモリセルに書き込まれるべきデータを一時的に保持する。当該データは、例えば、通常書き込みモード、特殊書き込みモード、または揺らぎ書き込みモードが選択された場合に記憶される。なお、特殊書き込みモードにおいて当該データが固定である場合、当該データはROMに記憶されていてもよい。
特殊データレジスタ032は、例えば、特殊読み出しモードまたは揺らぎ読み出しモードにおいて、センスアンプ012によって読み出されたデータを、一時的に記憶する。例えば、読み出しが複数回繰り返される場合には、各読み出しサイクルで読み出されるデータが、センスアンプ012から、データレジスタ030を介して、特殊データレジスタ032に順次受け渡される。
乱数生成回路038は、揺らぎ読み出しモードにおいて読み出された抵抗値情報を基に、乱数データを生成する。
データレジスタ030は、例えば、通常書き込みモード、特殊書き込みモード、または、揺らぎ書き込みモードの際に、Casheレジスタ031からデータを取得し、一時的に記憶する。データの取得および記憶は、書き込みサイクル毎に順次行われてもよい。
図12において、電源制御回路008と、論理制御回路010と入出力制御回路007と、コマンドレジスタ033と、ステータスレジスタ034と、特殊コマンドレジスタ035とを含む回路群は、制御回路群013と呼ばれる。制御回路群013は、メモリ本体部001と同一チップ上に形成されていてもよい。これにより、制御回路群013とメモリ本体部001との間の情報の送受信を盗み読みされるリスクが低減されうる。
論理制御回路010は、通常書き込みモード、特殊書き込みモード、及び揺らぎ書き込みモードにおいて、切替え回路037を書き込み回路011に接続させる。Casheレジスタ031は、メモリセルに書き込まれるべきデータを蓄えている。入出力制御回路007は、論理制御回路010の指示に基づいて、Casheレジスタ031からデータを取り出し、これをデータレジスタ030へ送り出す。書き込み回路011は、論理制御回路010からの指示により、データレジスタ030にあるデータを、所定の条件で、選択されたメモリセルに書き込む。これらの動作が、書き込みサイクル毎に、順次実行される。
論理制御回路010は、通常読み出しモード、特殊読み出しモード、揺らぎ読み出しモードにおいて、切替え回路037をセンスアンプ012、および/または、乱数生成回路038に接続させる。センスアンプ012は、論理制御回路010からの指示により、各読み出しサイクルにおいて、選択されたメモリセルから、所定の条件で抵抗値情報を読み出す。センスアンプ012は、通常読み出しモードおよび特殊読み出しモードにおいて、抵抗値情報を所定の条件で判定することによってディジタルデータを生成し、これをデータレジスタ030に送る。あるいは、センスアンプ012は、揺らぎ読み出しモードにおいて、抵抗値情報を乱数生成回路038に送る。この場合、乱数生成回路038が、抵抗値情報に基づいて乱数データを生成し、これをデータレジスタ030に送る。データレジスタ030は、センスアンプ012から取得したディジタルデータ、または、乱数生成回路038から取得した乱数データを一時的に記憶する。Casheレジスタ031は、論理制御回路010からの指示により、データレジスタ030に記憶されているデータを取得し、これを蓄える。これらの動作が読み出しサイクル毎に、順次実行される。入出力制御回路007は、論理制御回路010からの指示により、Casheレジスタ031に記憶されているデータを、乱数処理装置020の外部に出力する。
入出力制御回路007は、通常書き込みコマンドを取得すると、これをコマンドレジスタ033に保持させる。入出力制御回路007は、書き込みアドレスを取得すると、これをアドレスレジスタ009に保持させる。書き込み回路011は、論理制御回路010からの指示によって駆動する。書き込み回路011は、各レジスタの設定を元に、電気的信号を各メモリセルに印加する。これにより、所定のデータがメモリセルアレイに書き込まれる。
入出力制御回路007は、通常読み出しコマンドを取得すると、これをコマンドレジスタ033に保持させる。入出力制御回路007は、読み出しアドレスを取得すると、これをアドレスレジスタ009に保持させる。センスアンプ012は、論理制御回路010からの指示によって駆動する。センスアンプ012は、各レジスタの設定を元に、メモリセルアレイから所定のデータを読み出す。このデータは、データレジスタ030を介して、Casheレジスタ031に蓄えられる。所定の量のデータがCasheレジスタ031に蓄えられると、入出力制御回路007は、そのデータを取得し、外部へと順次出力する。なお、Casheレジスタ031は省略されてもよい。
論理制御回路010は、乱数処理装置020の内部状態を確認するためのコマンドを受け付けた場合、内部状態を調査し、内部状態を示すコードをステータスレジスタ034に保持させる。次いで、入出力制御回路007が、ステータスレジスタ034に保持されたステータスコードを外部へと出力する。
特殊書き込みコマンド、揺らぎ書き込みコマンド、特殊読み出しコマンド、および揺らぎ読み出しコマンドは、通常コマンドではアクセスできないような、特定のアドレス領域へのアクセスを許可するものであってもよい。これらのコマンドは、通常コマンドでは設定できないような、書き込み条件、または、読み出し条件等を設定するものであってもよい。
入出力制御回路007は、特殊書き込みコマンドを取得すると、これを特殊コマンドレジスタ035に保持させる。入出力制御回路007は、書き込みアドレスを取得すると、これをアドレスレジスタ009に保持させる。この書き込みアドレスは、例えば、通常書き込みモードではアクセスできないアドレスであってもよい。書き込み回路011は、論理制御回路010からの指示によって駆動する。書き込み回路011は、各レジスタの設定を元に、フォーミングストレスを各メモリセルに印加する。これにより、所定のデータがメモリセルアレイに書き込まれる。
入出力制御回路007は、特殊読み出しコマンドを取得すると、これを特殊コマンドレジスタ035に保持させる。入出力制御回路007は、読み出しアドレスを取得すると、これをアドレスレジスタ009に保持させる。この読み出しアドレスは、例えば、通常読み出しモードではアクセスできないアドレスであってもよい。センスアンプ012は、論理制御回路010からの指示によって駆動する。センスアンプ012は、各レジスタの設定を元に、メモリセルアレイから所定のデータを読み出す。このデータは、データレジスタ030を介して、Casheレジスタ031に蓄えられる。所定の量のデータがCasheレジスタ031に蓄えられると、入出力制御回路007は、そのデータを取得し、外部へと順次出力する。
入出力制御回路007は、揺らぎ書き込みコマンドを取得すると、これを特殊コマンドレジスタ035に保持させる。入出力制御回路007は、書き込みアドレスを取得すると、これをアドレスレジスタ009に保持させる。この書き込みアドレスは、例えば、通常書き込みモードではアクセスできないアドレスであってもよい。書き込み回路011は、論理制御回路010からの指示によって駆動する。書き込み回路011は、各レジスタの設定を元に、各メモリセルに電気的信号を印加する。これにより、メモリセルが、例えば、高抵抗状態と低抵抗状態との間の中間的な抵抗状態に設定される。あるいは、高温環境下において安定な乱数生成を行うために、メモリセルは、低抵抗状態に設定されてもよい。なお、揺らぎ書き込みモードと、通常書き込みモードとは、同一の書き込み条件で実行されてもよい。この場合、特殊コマンドレジスタ035が省略され、コマンドレジスタ033が代用されてもよい。
入出力制御回路007は、揺らぎ読み出しコマンドを取得すると、これを特殊コマンドレジスタ035に保持させる。入出力制御回路007は、読み出しアドレスを取得すると、これをアドレスレジスタ009に保持させる。この読み出しアドレスは、例えば、通常読み出しモードではアクセスできないアドレスであってもよい。センスアンプ012は、論理制御回路010からの指示によって駆動する。センスアンプ012は、各レジスタの設定を元に、メモリセルアレイから繰り返し抵抗値情報を読み出す。乱数生成回路038は、この抵抗値情報を用いて乱数データを生成する。乱数データは、データレジスタ030を介して、Casheレジスタ031に蓄えられる。所定の量のデータがCasheレジスタ031に蓄えられると、入出力制御回路007は、そのデータを取得し、外部へと順次出力する。このとき、抵抗値を読み出す対象となるメモリセルは、揺らぎ書き込みコマンドで書き込まれたメモリセルとする。
図13は、本実施の形態にかかる乱数処理装置の書き込みサイクルと読み出しサイクルの一例を示すタイミングチャートである。以下、図13を参照しつつ、通常書き込みモードと、通常読み出しモードにおける、1個のメモリセルに対する信号制御の一例について説明する。
以下、信号線の制御がより複雑となるバイポーラ型抵抗変化素子の例について説明する。本例示を元にすれば、ユニポーラ型抵抗変化素子の書き込みまたは読み出しは、容易に設計されうる。なお、本実施形態に係る制御方法は、以下の例示に限定されない。
ここでは、抵抗変化層が高抵抗状態の場合が情報“0”に、低抵抗状態の場合が情報“1”にそれぞれ割り当てられているものとする。高抵抗状態に対応する可変抵抗値範囲は、第1抵抗値範囲と呼ばれる場合がある。低抵抗状態に対応する可変抵抗値範囲は、第2抵抗値範囲と呼ばれる場合がある。説明の便宜上、以下では、メモリセルM211およびM222への書き込みおよび読み出しについて説明する。
図13において、抵抗変化素子の抵抗値を第1抵抗値範囲内へ変化させる高抵抗化電圧が、メモリセルの両端に印加される。高抵抗化電圧は、電圧VHを有するパルス電圧である。抵抗変化素子の抵抗値を第2抵抗値範囲内へ変化させるための低抵抗化電圧が、メモリセル両端の電圧に印加される。低抵抗化電圧は、電圧VLを有するパルス電圧である。高抵抗化電圧および低抵抗化電圧は、電源制御回路008によって生成される。電源制御回路008には、外部入力電源から電力が供給される。図13において、VHおよびVLはいずれも正の値とする。ここでは、VH=VLである場合を例として説明する。
読み出し時には、読み出し電圧がメモリセル両端に印加される。読み出し電圧の電圧VRの絶対値は、VHおよびVLの絶対値よりも小さい。書き込み回路011は、プレート線に、印加方向に応じてVH、VL、GNDのいずれかの電圧を供給する。種々のモードに応じて、各ビット線、プレート線に、電圧VH、VL、VRのいずれかがチャージされる、または、GNDにディスチャージされる。
メモリセルM211に対する書き込みサイクルにおいて、書き込み回路011は、当初、ビット線BL0とプレート線PL0の電圧をGNDレベルに設定している。その後、行選択回路003はワード線WL0に電圧VDDを印加し、これにより、M211のトランジスタT11は導通状態になる。この状態で、パルス幅がTPHであり電圧がVHである電気的パルスが、ビット線BL0に印加される。この電気的パルスは、メモリセルM211に情報“0”を書き込むための高抵抗化パルスである。その結果、メモリセルM211の抵抗変化素子120が高抵抗化状態に遷移する。言い換えると、メモリセルM211に情報“0”が書き込まれる。図13の下段左側の模式図は、このときの印加状態Aを示す。印加状態Aにおいて、第2電極128から第1電極124にむけて電流が流れる。
メモリセルM222に対する書き込みサイクルにおいて、書き込み回路011は、当初、全てのワード線を0Vに設定し、全てのビット線およびプレート線を電圧VL=VHに設定する。その後、行選択回路003は、ワード線WL1に、電圧VDDを印加し、これにより、M222のトランジスタT22は導通状態となる。この状態で、VL→0V→VLと変化するパルス幅TPLの電気的パルスが、ビット線BL1に印加される。この電気的パルスは、メモリセルM222に情報“1”を書き込むための低抵抗化パルスである。その結果、メモリセルM222の抵抗変化素子120が低抵抗化状態に遷移する。言い換えると、メモリセルM222に情報“1”が書き込まれる。その後、行選択回路003はワード線WL1に印加されている電圧VDDを0Vに変化させ、これによりトランジスタT22が非導通状態になる。サイクルの最後に、書き込み回路011は、全てのビット線およびプレート線に印加されている電圧VL=VHを0Vに変化させる。図13の下段右側の模式図は、このときの印加状態Bを示す。印加状態Bにおいて、第1電極124から第2電極128にむけて電流が流れる。
メモリセルM211に対する読み出しサイクルにおいて、行選択回路003は、ワード線WL0に電圧VDDを印加し、これにより、メモリセルM211のトランジスタT11は導通状態になる。加えて、列選択回路004は、メモリセルM211とセンスアンプ012とを接続させる。この状態で、高抵抗化パルスおよび低抵抗化パルスよりも電圧の絶対値が小さい読み出し電圧VRが、ビット線BL0に印加される。読み出し電圧は、メモリセルの抵抗状態を変化させない。読み出し電圧は、例えば、センスアンプ012内のドライバ131から、所定の期間だけ出力される。その後、ビット線BL0がディスチャージされ、ビット線BL0の電圧VRが、所定の時間で減衰する。この時間は、メモリセルの抵抗値と負荷容量などで決まる。負荷容量は、例えば、配線容量およびトランジスタの拡散容量等の合計で決まる。VRの電圧はクランプトランジスタ(後述の図14のNチャネルトランジスタ35)によってゲートに印加される電圧VCLMPからトランジスタの閾値Vt分降下した電圧となる(VR=VCLMP−Vt)。読み出し期間の間、ビット線には電圧VRが印加され、メモリセルの抵抗値に従ったメモリセル電流によって、読み出し回路内のセンス電圧がディスチャージされる。メモリセルM211の抵抗値が、第1抵抗値範囲内にセットされている場合、ディスチャージは比較的長い時間を要する。ディスチャージの時間が所定の閾値より大きいと判定されると、センスアンプ012は、高抵抗状態を示す情報“0”を出力する。この情報は、入出力制御回路007か乱数処理装置の外部に出力される。
メモリセルM222に対する読み出しサイクルにおいて、行選択回路003は、ワード線WL1に電圧VDDを印加し、これにより、メモリセルM222のトランジスタT22は導通状態となる。加えて、列選択回路004は、メモリセルM222とセンスアンプ012とを接続させる。この状態で、読み出し用の電圧VRが、ビット線BL1に印加される。その後、センスノード電圧が、メモリセルの抵抗値に起因する電流とセンスノード(後述の図14のSEN)の負荷容量で決まる時定数に従い、ディスチャージされる。メモリセルM222の抵抗値が、第2抵抗値範囲内にセットされている場合、ディスチャージは比較的短い時間で完了する。ディスチャージの時間が所定の閾値より小さいと判定されると、センスアンプ012は、低抵抗状態を示す情報“1”を出力する。この情報は、入出力制御回路007から乱数処理装置の外部に出力される。
なお、これら読み出しサイクルにおいて、書き込み回路011は、全てのプレート線と非選択のビット線に0Vを供給している。
特殊書き込みモードまたは揺らぎ書き込みモードの場合、例えば、書き込み回路011が出力する電気的信号の電圧、パルス幅、および累積印加時間の少なくともいずれかは、通常の書き込みモードの場合と異なる。
特殊書き込みモードは、例えば、上述の通常書き込みモードに対して、高抵抗化パルスが第1電気的ストレスに置き換えられ、低抵抗化パルスが第2電気的ストレスに置き換えられたものとして説明されうる。例えば、高抵抗化パルスの電圧VHは、第1電気的ストレスの電圧VHSPに置き換えられ、低抵抗化パルスの電圧VLは第2電気的ストレスの電圧VLSPに置き換えられる。高抵抗化パルスのパルス幅TPHが第1電気的ストレスのパルス幅TPHSPに置き換えられ、低抵抗化パルスのパルス幅TPLが第2電気的ストレスのパルス幅TPLSPに置き換えられる。第2電気的ストレスは、フォーミングストレスの一例である。なお、電気的ストレスが印加されていない初期状態のメモリセルに情報(例えば“0”)を割り当てる場合、第1電気的ストレスは印加されなくてもよい。言い換えると、第1電気的ストレスにおいて、電圧VHSPが0Vであり、パルス幅TPHSPが0nSecであってもよい。第1電気的ストレスおよび第2電気的ストレスのそれぞれは、単一の電圧パルス幅でもよいし、複数の電圧パルスを含んでもよい。
なお、特殊書き込みモードにおけるVHSP、TPHSP、VLSP、TPLSPと、通常書き込みモードにおけるVH、TPH、VL、TPLとは、少なくとも1つが異なっていればよい。
揺らぎ書き込みモードは、例えば、上述の通常書き込みモードに対して、高抵抗化パルスが第1揺らぎ書き込みパルスに置き換えられ、低抵抗化パルスが第2揺らぎ書き込みパルスに置き換えられたものとして説明されうる。例えば、高抵抗化パルスの電圧VHは、第1揺らぎ書き込みパルスの電圧に置き換えられる。第1揺らぎ書き込みパルスの電圧は、例えば、VHRN1以上VHRN3以下の値を有する。低抵抗化パルスの電圧VLは、第2揺らぎ書き込みパルスの電圧VLRNに置き換えられる。このとき、VHRN1、VHRN2およびVHRN3は、VHRN1<VHRN2<VHRN3の関係を満たす。高抵抗化パルスのパルス幅TPHは、第1揺らぎ書き込みパルスのパルス幅TPHRNに置き換えられる。低抵抗化パルスのパルス幅TPLは、第2揺らぎ書き込みパルスのパルス幅TPLRNに置き換えられる。なお、第1揺らぎ書き込みパルスおよび第2揺らぎ書き込みパルスは、“0”または“1”を書き込むための電圧パルスでなくてもよい。揺らぎ書き込みモードにおいて、第1揺らぎ書き込みパルスおよび第2揺らぎ書き込みパルスは、メモリセルの抵抗値を、乱数生成に適した抵抗値範囲内におさめるための電圧パルスである。
センスアンプ012が、抵抗値情報を得るためのカウンタ134を備える場合、カウンタ134がカウントできる数には上限値がある。そのため、揺らぎ書き込みモードにおいて、メモリセルの抵抗値は、当該抵抗値に対応するカウント値がカウンタ134の上限値以下におさまるように設定される。さらに、メモリセルの抵抗値は、所定の下限値以上におさまるように設定されてもよい。これにより、良質な乱数データが得られうる。これは、抵抗値の絶対値が大きい素子が、抵抗値の絶対値が小さい素子よりも、大きな抵抗値変動を示すことに起因する(例えば、図7参照)。図6に示されるように、メモリセルの抵抗値が、印加される電圧の増大に伴って増加する場合、第1揺らぎ書き込みパルスは、段階的に電圧が増加する複数の電気的パルスから構成されていてもよい。例えば、書き込み回路011は、メモリセルから読み出される抵抗値情報が所定の範囲内に入るまで、電気的パルスの電圧をVHRN1→VHRN2→VHRN3と徐々に上げてもよい。加えて、書き込み回路011は、所定の範囲内に入ったメモリセルに対して、電気的パルスの印加を停止してもよい。
次に揺らぎ読み出しモード、特殊読み出しモード、および通常読み出しモードにおける、センスアンプ012の具体的な構成と動作の一例を示す。
図14は、理解の便宜のための参考例にかかるセンスアンプ012の構成例を示す回路図である。図15は、図14に示したセンスアンプ012において、選択されたメモリセルを放電方式にて読み出す場合のタイミングチャートの一例である。図16は、図14に示したセンスアンプ012において、選択されたメモリセルを充電方式にて読み出す場合のタイミングチャートの一例である。図15、図16のタイミングチャートは、本実施の形態による読み出し処理が行われない例を示している。
以下、図14に記載された回路群の構成および動作を説明する。
センスアンプ012は、放電方式のセンスアンプ回路30を有している。センスアンプ回路30は、コンパレータ31と、抵抗値カウンタ32と、プリチャージ用のPMOSトランジスタ33と、ロード電流用のPMOSトランジスタ34とを備えている。
抵抗値カウンタ32は、コンパレータ31の出力に接続されている。抵抗値カウンタ32は、リセット信号RSTがロウレベルとなることで、抵抗値カウンタ内のカウント値が初期化された後、CLK信号によるカウントを開始する。CLK信号は、制御回路15から出力される信号であって、抵抗変化素子23の抵抗値によって変化する放電時間をカウント値に変換する際の基準となる信号である。CLK信号は、例えば一定の周波数を維持する矩形波である。このCLK信号が立ち上がる毎に、抵抗値カウンタのカウント値が1つ加算され、ノードSENがVREFを下回ると抵抗値カウンタのカウントアップが停止し、そのときのカウント値がCOUNT_OUTに維持される。このとき、入力Aからは閾値が入力される。この閾値は、例えば、図1に示したメモリセルアレイ90に配置されている複数のメモリセル91の抵抗状態が、低抵抗状態か高抵抗状態かを判断する際の基準として利用され得る。比較器135はCOUNT_OUTと入力Aの閾値とを比較し、閾値以上であれば1を、閾値未満ではれば0を出力Aから出力する。また、閾値以上であれば1を、閾値未満ではれば−1を出力Bから出力する。プリチャージPMOSトランジスタ33は、ゲート端子にプリチャージ制御信号PREが入力され、ソース端子にVDDが入力され、ドレイン端子にノードSENが接続されている。
ロードPMOSトランジスタ34は、ゲート端子にロード制御信号LOADが入力され、ソース端子にVDDが入力され、ドレイン端子にノードSENが接続されている。
図14には、クランプ電圧印加用のNMOSトランジスタ35で構成されたクランプ回路も示されている。クランプNMOSトランジスタ35は、ゲートにクランプ制御信号CLMPが入力され、ソース端子もしくはドレイン端子の何れか一方にノードSENが接続され、他端にはカラムデコーダ回路を介して選択されたメモリセルが接続されている。なお、図14ではカラムデコーダ回路は省略している。
ここで、センスアンプ012がカウント値(抵抗カウント値の一例)を出力する動作について、読み出し回路の構成図(図14)と図15、図16のタイミングチャートを用いて、具体的に説明する。
図15は、図14に示すセンスアンプ012が、選択されたメモリセルを放電方式にて読み出す場合のタイミングチャートである。
T1のプリチャージ期間では、制御信号PREはロウレベルとなり、プリチャージ用PMOSトランジスタ33はオン状態になる。一方、制御信号LOADはハイレベルとなり、ロード用PMOSトランジスタ34はオフ状態となる。選択ワード線WLsの電位はロウレベルでトランジスタ24はオフ状態となっている。
クランプ回路のクランプNMOSトランジスタ35のゲート端子にVCLMPの電圧が印加されることで、選択ビット線BLsの電位はVCLMPからVT(クランプNMOSトランジスタ35の閾値)を引いた電位までプリチャージされる。選択ソース線SLsはGNDに固定される。ノードSENはVDDまでプリチャージされる。また、コンパレータの出力に接続されている抵抗値カウンタの制御信号RSTはハイレベルとなっているため、抵抗値カウンタ出力端子COUNT_OUTは0の固定値が出力される。
T2のセンス期間では、制御信号PREをハイレベルとすることで、プリチャージPMOSトランジスタ33がオフ状態となり、制御信号LOADがロウレベルになることで、ロードPMOSトランジスタ34はオン状態になる。また、選択ワード線WLsの電位をハイレベルにすることで、NMOSトランジスタ24はオン状態となる。
そして、選択ビット線BLsから、選択されたメモリセル21sを介して選択ソース線SLsへと電圧が印加され、放電が開始される。放電開始と同時に抵抗値カウンタ32の制御信号RSTがロウレベルとなり、カウントが始まる。そして、1カウント毎に、コンパレータ31によって、ノードSENの電位(すなわち、センス電圧)と参照電圧VREFの電圧が比較され、ノードSENが参照電圧VREFを下回るまで、カウント値が加算され続ける。読み出し時の抵抗変化素子23の抵抗値が高いほど放電時間は長くなり、カウント値は大きくなる。
また、キャパシタ36の容量を調整することで、放電時間を調整することも可能である。キャパシタ36の容量が大きければ、ノードSENの放電時間も遅くなるため、カウント値は長くなる。容量が小さければ、ノードSENの放電時間は速くなり、カウント値は短くなる。キャパシタ36は、例えば、放電時間が速い低抵抗レベルの検出精度を向上させたいとき、効果的である。カウントの間隔はCLK信号で決定されるため、その動作周波数が抵抗カウント値の分解能となる。しかし、低い抵抗値の場合、放電時間がカウント値の分解能を上回る可能性があるため、区別できなくなる場合がある。そこで、ノードSENに容量負荷を上乗せし、遅延させることで、意図的に分解能で検出できるレベルの放電特性に調整することが可能となる。しかしながら、原理上放電方式の場合は高抵抗になればなるほど放電時間が長くなり、それにともなって放電の傾斜が緩やかに変化するため、カウンタ値に対する抵抗値情報の分解能が向上する。つまり、放電方式の場合は高抵抗側が高精度な抵抗値情報を得ることのできる方式である。
T3のラッチ期間では、放電が開始された後、ノードSENが参照電圧VREFを下回ったときの抵抗値カウンタ32のカウント値がラッチされる。ラッチされたカウント値は、COUNT_OUTに出力され、抵抗変化素子23の抵抗値情報を表すカウント値として扱われる。
T4のリセット期間においては、データ出力が完了すると、選択ワード線WLsの電位がロウレベルとされ、選択されたメモリセル21sのトランジスタ24がオフとなり、読み出し動作が終了する。
図16は、図14に示すセンスアンプ012が、選択されたメモリセルを充電方式にて読み出す場合のタイミングチャートである。
T1のディスチャージ期間であり、制御信号PRE、LOAD共にハイレベルとなり、プリチャージ用PMOSトランジスタ33とロード用PMOSトランジスタ34は何れもオフ状態となる。また選択ワード線WLsの電位はロウレベルでトランジスタ24もオフ状態となっている。
クランプ回路のクランプ用NMOSトランジスタ35のゲート端子にVCLMPの電圧が印加され、選択ワード線WLsの電位をハイレベルにすることで、NMOSトランジスタ24はオン状態となる。ノードSEN、選択ビット線BLsは抵抗変化素子23を介してGND(0V)へ接続され、GNDレベルまでディスチャージされる。また、コンパレータの出力に接続されている抵抗値カウンタの制御信号RSTはハイレベルとなっているため、抵抗値カウンタ出力端子COUNT_OUTは0の固定値が出力される。
T2のセンス期間では、制御信号LOADがロウレベルになることで、ロードPMOSトランジスタ34はオン状態になる。ロードPMOSトランジスタ34、クランプNMOSトランジスタ35、選択メモリセル21sの電流パスが形成され、ノードSEN、選択ビット線BLsへ充電が開始される。充電開始と同時に、抵抗値カウンタ32の制御信号RSTがロウレベルとなり、カウントが始まる。そして、1カウント毎に、コンパレータ31によって、ノードSENの電位(すなわち、センス電圧)と参照電圧VREFの電圧が比較され、ノードSENが参照電圧VREFを上回るまで、カウント値が加算され続ける。読み出し時の抵抗変化素子23の抵抗値が低いほど充電時間は長くなり、カウント値は大きくなる。
また、キャパシタ36は放電方式の方で時間のときと同様に、充電方式も充電時間を調整することも可能である。詳細な説明は放電方式での説明と同様であるため割愛する。原理上充電方式の場合は低抵抗になればなるほど充電時間が長くなり、それにともなって充電の傾斜が緩やかに変化するため、カウンタ値に対する抵抗値情報の分解能が向上する。つまり、充電方式の場合は低抵抗側が高精度な抵抗値情報を得ることのできる方式である。
T3のラッチ期間では、充電が開始された後、ノードSENが参照電圧VREFを上回ったときの抵抗値カウンタ32のカウント値がホールドされる。ホールドされたカウント値は、COUNT_OUTに出力され、抵抗変化素子23の抵抗値情報を表すカウント値として扱われる。
T4のリセット期間においては、データ出力が完了すると、選択ワード線WLsの電位がロウレベルとされ、選択されたメモリセル21のトランジスタ24がオフとなり、読み出し動作が終了する。
図14の構成であれば、放電方式と充電方式の両方を用いることができる。しかし、図14の比較器135の上下に括弧書きで例示した出力Aおよび出力Bの論理例は放電方式の読み出し回路における例である。高抵抗状態と低抵抗状態に夫々対応するディジタルデータの論理を同じにする場合は、検出方向が逆になるために充電方式では反転する必要がある。具体的には、出力Aへの論理はa≧bの場合は1とし、a<bの場合は0となる。出力Bへの論理は放電方式と充電方式で等しい。
このように読み出しの方式によって抵抗値情報に対する分解能が異なるため、高精度に抵抗値情報を得たい場合は、放電方式はディジタルIDデータが高い抵抗値範囲を用いて保存される場合に用いるのが好ましい。逆に充電方式はディジタルIDデータが低い抵抗値範囲を用いて保存される場合に用いることが好ましい。しかしながら、一方で図14に示した抵抗値カウンタ32のカウンタ幅はハードウェアの制約上有限な量である。つまり、前述したような放電時間や充電時間が長すぎる場合はカウンタのレンジをオーバーしてしまい、正確な抵抗値情報が得られない問題がある。このため、必要なカウンタのビット幅を節約して回路規模の縮小を図る場合は、放電方式はディジタルIDデータが低い抗値範囲を用いて保存される場合に用いるのが好ましい。逆に、充電方式はディジタルIDデータが高い抵抗値範囲を用いて保存される場合に用いることが好ましい。
なお、読み出しの分解能は、ロードPMOSトランジスタ34からの電流供給の有無のみだけでなく、ロードPMOSトランジスタ34の電流量、抵抗値カウンタ32に入力されるクロックCLKの周波数、VREFの大きさ、およびキャパシタ36の容量等によって調整されうる。例えば、クロックの周波数が増加すると、読み出しの分解能が上昇する。
放電方式において、読み出しの測定範囲は、比較的高い抵抗値が短い時間で読み出されるように設定されてもよい。そのような設定は、例えば、VREFを大きくすること、ロードPMOSトランジスタ34の電流を減らすこと、およびキャパシタ36の容量を減らすこと等によって実現されうる。逆に、読み出しの測定範囲は、比較的低い抵抗値が短時間で読み出されるよう設定されてもよい。そのような設定は、例えば、第1基準電位VREFを小さくすること、ロードPMOSトランジスタ34の電流を増やすこと、または、キャパシタ36の容量を増やすこと等によって実現されうる。
<乱数生成回路>
以下、本実施の形態に係る乱数生成回路の構成例について説明する。本本実施の形態に係る乱数生成回路は、メモリセルアレイから1バイトデータを読み出し、読み出された1バイトデータとビット反転データとの中から最も出現頻度が低いものを選択し、これを出力する。ビット反転データとは、読み出された1バイトデータを構成している8個のビットのうちいずれか1つが反転されたデータである。
図17は、本実施の形態による乱数生成回路の概略構成を示す回路図である。以下、図17を参照しつつ、乱数生成回路038について説明する。
図17において、センスアンプ012の構成および動作は、図14を参照しつつ説明されたものと等しいので、その説明は省略される。図17に示される乱数生成回路038は、センスアンプ012から8つの抵抗値情報を受け取り、8チャンネルCH0〜CH7でこれらを並列処理して、乱数を生成する。
揺らぎ読み出しモードにおいて、センスアンプ012は、選択されたメモリセルから、列選択回路004を介して、抵抗値情報を取得する。例えば、8つのメモリセルから、8つの抵抗値情報が取得される。
信号Rren1は、上述したように、1クロック幅のラッチタイミングを指示するパルスである。また、信号Rren2は、信号Rren1に対して1クロック分だけ遅延してラッチタイミングを指示するパルスである。信号Rren3は、信号Rren1に対して2クロック分だけ遅延してラッチタイミングを指示するパルスである。
センスアンプ012および乱数生成回路038は、8チャンネルCH0〜CH7の判定ブロック150を備える。図17において、判定ブロック150は、破線で示されている。各チャンネルにおける判定ブロック150は、例えば、同一の回路を備えている。以下では1つのチャンネルCH0について説明する。
センスアンプ012内にあるラッチ138が、信号Rren1が指示するタイミングで、抵抗値情報をホールドする。センスアンプ012は、例えば、1つのメモリセルから抵抗値情報を複数回読み出す。これにより、1つのメモリセルの抵抗値の時間変化を反映した複数の抵抗値情報が取得される。ラッチ138は、読み出し動作の都度、信号Rren1が指示するラッチタイミングで、抵抗値情報を出力Bとして出力する。
ラッチ139は、信号Rren1が指示するタイミングで、ラッチ138から出力された抵抗値情報をラッチする。すなわち、ラッチ139は、ラッチ138がホールドする抵抗値情報よりも1つ前に読み出された抵抗値情報をホールドする。ラッチ138からの抵抗値情報と、ラッチ139からの抵抗値情報とは、信号Rren1が指示するタイミングで、減算器に入力される。減算器は、ラッチ138からの抵抗値情報の値から、ラッチ139からの抵抗値情報を減算し、検出器141に出力する。言い換えると、減算器は、時間的に前後関係にある2つの抵抗値情報の差を求める。
図17中に、検出器141の論理表が示される。該論理表に示す通り、検出器141は、入力が0より大きければ“1”を出力し、入力が0より小さければ“−1”を出力し、入力が0と等しければ“0”を出力する。検出器141からの出力は、0/1判定器142に、入力Yとして入力される。
0/1判定器142には、後述するラッチ140からの出力が入力Xとして入力される。図17中に、0/1判定器142の論理表が示される。0/1判定器142は、入力Yが“1”のとき“1”を出力し、入力Yが“−1”のとき“0”を出力する。また、0/1判定器142は、入力Yが“0”のとき入力Xをそのまま出力してもよい。例えば、0/1判定器142は、入力Yが“0”のとき、0/1判定器142の前回の出力がXOR回路での演算を経てラッチ140にラッチされた値を、今回の出力として出力してもよい。
0/1判定器142からの出力Sは、XOR回路に入力される。また、ビット反転データバスの最下位ビットから最上位ビットの値は、それぞれ、入力b0から入力b7として、XOR回路に入力される。XOR回路は、0/1判定器142からの出力Sと、ビット反転データバスからのビット値との排他的論理和(XOR)を求め、これをラッチ140に出力する。
ラッチ140は、XOR回路からの入力を、信号Rren2が指示するタイミングでラッチする。8つのチャンネルCH0〜CH7における8つのラッチ140の出力は、8ビットのデータとして、データバスBにまとめられる。このとき、チャンネルCH0のラッチ140からの出力は、当該データの最下位ビットとなり、チャンネルCH7のラッチ140からの出力は、当該データの最上位ビットとなる。また、8つのチャンネルCH0〜CH7における8つの0/1判定器142の出力Sは、8ビットのデータバスAにまとめられる。
破線151で囲まれたブロックは、データパターンカウント部151を示す。データパターンカウント部151は、データバスBから1バイトデータが入力される毎に、そのデータが示す値が入力された回数をカウントアップする。
データバスBのデータは、256個の等号演算器143に入力される。256個の等号演算器143は、入力された8ビットの値が、00h、01h、02h・・・・FDh、FEh、FFh(16進表記)のいずれと等しいかを判定する。各等号演算器143は、入力されるデータバスBの1バイトデータが、自身の保有する値と等しいか否かを判定する。その結果、等号演算器143は、それらの値が等しい場合には“1”を出力し、等しくない場合には“0”を出力する。256個のアップカウンタ144には、256個の等号演算器143からの出力が、それぞれ入力される。各アップカウンタ144は、信号Rren3が指示するタイミングにおいて入力が“1”であるときに、カウントアップする。
破線152で囲まれたブロックは、1ビット反転データ生成部152を示す。8個のXOR回路145は、データバスAを介して入力される1バイトデータと、固定の1バイトデータとの間で、ビットごとの排他的論理和を求める。8個のXOR回路145に入力される固定の1バイトデータは、それぞれ、01h、02h、04h、08h、10h、20h、40h、80h(16進表記)で表される。これにより、データバスAを介して入力される1バイトデータを構成する8つのビットのうち、最下位ビットから最上位ビットまでのいずれか1ビットだけが反転された、8種の互いに異なる1ビット反転データが生成される。
1ビット反転データ生成部152は、9個の選択回路(MUX)146を備える。各MUX146は、チャンネル選択ポートと、256個の入力チャンネルポートを持つ。各MUX146は、入力チャンネルポートを介して、データパターンカウント部151内の256個のアップカウンタ144から、カウント値が入力される。9個のMUX146のうち8個には、チャンネル選択ポートを介して、対応する8個のXOR回路145から、8種の1ビット反転データがそれぞれ入力される。残りの1個には、チャネル選択ポートを介して、データバスAからの1バイトデータが直接入力される。各MUX146は、チャンネル選択ポートを介して入力されたデータに対応するアップカウンタ144のカウント値を、チャンネルDT0〜DT8から出力する。
すなわち、データバスAの1バイトデータのデータパターン、および、該1バイトデータから生成された8種の1ビット反転データの各データパターンのそれぞれに対する現時点までの出現回数が、各MUX146から出力される。
1ビット反転データ生成部152は、ビット反転マスク生成回路147(図17ではMINと表示)を備える。ビット反転マスク生成回路147は、チャンネルDT0〜DT8から入力されるカウント値のうち最小のものを抽出し、それに対応するビット反転マスク信号を出力する。ビット反転マスク信号は、8つの判定ブロック150から出力される1バイトデータの何番目のビットを反転させるか、あるいは、いずれのビットも反転させないかを指示する。例えば、ビット反転マスク生成回路147は、チャンネルDT0、DT1、DT2、DT3、DT4、DT5、DT6、DT7、DT8を選択するときに、ビット反転マスク信号として00h、01h、02h、04h、08h、10h、20h、40h、80hを、それぞれ出力する。
なお、チャンネルDT0〜DT8から入力されるカウント値のうち最小となるものが複数あるとき、ビット反転マスク生成回路147は、それらのいずれかに対応するビット反転マスク信号を出力してもよい。チャンネルDT0〜DT8に入力されカウント値のうち最小となるものが複数あり、かつ、それらの中にチャンネルDT0から入力されたカウント値が含まれるとき、例えば、ビット反転マスク生成回路147は、チャンネルDT0を優先的に選択してもよい。チャンネルDT0〜DT8に入力されカウント値のうち最小となるものが複数あるとき、ビット反転マスク生成回路147は、前回選択されたチャンネルとは異なるチャンネルを選んでもよい。これにより、選択チャンネルが偏らない。このように、1ビット反転データ生成部152は、新たに得られた1バイトデータが、8種の1ビット反転データの何れよりも出現頻度が少ないか否かを判定する。8種の1ビット反転データのいずれかの出現頻度が、元の1バイトデータの出現頻度よりも少ない場合、0/1判定器142の出力が修正される。
具体的には、0/1判定器142からの出力と、ビット反転マスク生成回路147からの出力との間の排他的論理和(XOR)が、ラッチ140に入力される。例えば、チャンネルCH0〜CH8で生成される1バイトデータのうち1ビット目が反転される場合、ビット反転マスク生成回路147は、ビット反転マスク信号として01hを出力する。その結果、チャンネルCH0の判定ブロック150内のXOR回路に、ビット反転データバスからの“1”が、入力b0として入力される。その結果、XOR回路は、0/1判定器142から入力Sを反転され、これがラッチ140にラッチされる。一方、1バイトデータの1ビット目が反転されない場合には、XOR回路に、“0”が入力b0として入力され、0/1判定器142の出力がそのままラッチ140にラッチされる。
このように、データパターンカウント部151と1ビット反転データ生成部152とは、乱数評価回路を成している。この乱数評価回路は、1バイトデータの出現パターンに偏りが発生しないように、0/1判定器142の判定結果を補正する。この補正により、読み出された1バイトデータと、8種の1ビット反転データとのうち、最も出現頻度が低いデータが出力される。
8個のメモリセルの抵抗値情報がそれぞれ2000回ずつ読み出され、この抵抗値情報が図17に示される乱数生成回路038に入力され、乱数データが生成された。この乱数データは、16Kbitのビットストリームデータであった。表3は、これにより得られた乱数が前述したNIST SP800−22に基づいて検定された結果を示す。
表3が示すように、当該乱数は、全ての検定項目を合格(Pass)している。よって、本実施の形態による乱数処理装置は、暗号に用いるための乱数を生成する装置として充分な性能を有する。
このように、本実施の形態による乱数処理装置は、抵抗変化素子の抵抗値の変動を用いてデバイス固有の物理乱数を高品位に生成できる。
たとえば、特許文献1に示される従来技術において、物理乱数を生成するために、ソース−ドレイン間電流の変動がマルチバイブレータ回路で増幅されていた。このような乱数生成装置は、回路規模の小型化と、乱数生成の高速化との両立が難しい。例えば、並列処理で乱数を生成しようとすると、マルチバイブレータ回路等が複数必要となり、回路規模の増大を招いてしまう。あるいは、特許文献2に示されるように、1チャンネルのみで乱数が生成される場合、乱数生成スピードが遅くなる。例えば、乱数生成スピードが250Kbpsの場合、256バイトの暗号用の鍵データを得るために8mSecも時間を要する。
一方、本実施の形態のように、乱数処理装置が通常書き込みモードおよび通常読み出しモードを実行可能な場合、すなわち、乱数処理装置が不揮発性記憶装置としても機能する場合、不揮発性記憶装置のセンスアンプが、乱数処理装置のセンスアンプとして共用されうる。例えば、暗号データの通信および記憶が可能なコントローラLSIは、典型的に、不揮発性記憶装置が搭載される。この不揮発性記憶装置は、センスアンプを備え、このセンスアンプは抵抗値の揺らぎを増幅することができる。そのため、乱数処理装置は、このセンスアンプを流用することができる。言い換えると、乱数処理装置は、典型的な不揮発性記憶装置が備えるセンスアンプ以外に、乱数処理用のセンスアンプを別個に備えなくてもよい。加えて、乱数生成回路は、例えばロジック回路であり、これはアナログのセンスアンプよりも十分に小さい。このような構成により、乱数処理装置は小型化されうる。
不揮発性記憶装置のセンスアンプは、典型的に、複数のメモリセルの抵抗値を並列処理で読み出すことができる。本実施の形態では、この複数の抵抗値情報が、複数のチャンネルの乱数生成回路に入力される。これにより、複数ビットからなる乱数データが高速で生成されうる。本実施の形態による乱数処理装置は、例えば、1回の読み出しを2μSecで行い、かつ、8ビットの並列処理で乱数を生成できる。これにより、乱数処理装置は、従来技術に比して、高速に乱数データを生成することができる。なお、抵抗値の揺らぎを読み出す時間間隔は、揺らぎの特性に応じて適宜調整されうる。揺らぎの特性は、揺らぎ書き込みモードの書き込み条件によって、適宜調整されうる。
<他の乱数生成回路>
図17を参照しながら説明された乱数評価回路は一例である。乱数評価回路として、別の方式が用いられてもよい。例えば、乱数評価回路は、所定数のデータに含まれる“1”と“0”の数がほぼ同数になるように、0/1判定器の出力Sを補正してもよい。乱数評価回路は、所定数のデータに含まれる“1”の連続数の出現頻度が所定の分布を満たすように、0/1判定器の出力Sを補正してもよい。あるいは、図17に示される乱数評価回路は、検出器141が“0”を出力するときのみ、0/1判定器の出力Sを補正してもよい。これにより、抵抗変化素子の物理的な抵抗値の変動がより反映された乱数データが生成されうる。
<特殊書き込みモードの第1動作例>
特殊書き込みモードの動作例を説明する。ここでは、乱数処理装置が本実施の形態にかかる構成を備える場合について例示される。ただし、他の装置構成においても同様の動作が可能である。
特殊書き込みモードは、例えば、行選択回路003と、列選択回路004と、アドレスレジスタ009と、書き込み回路011と、センスアンプ012と、制御回路群013と、データレジスタ030と、Casheレジスタ031と、特殊データレジスタ032と、切替え回路037とにより実行されうる。なお、他のモードも、同様の構成により実行されうる。
抵抗変化素子120は、例えば、図3に示される特性を有する。具体的には、第1電極124を基準として、第2電極128に、電圧が+2.4V、パルス幅が50nSecの電気的信号が印加されると、抵抗変化素子120の抵抗値が第2抵抗値範囲から第1抵抗値範囲へと変化する。第1電極124を基準として、第2電極128に、電圧が−2.4V、パルス幅が50nSecの電気的信号が印加されると、抵抗変化素子120の抵抗値が第1抵抗値範囲から第2抵抗値範囲へと変化する。言い換えると、抵抗変化素子120は、±2.4Vの電気的信号を印加することで、第1抵抗値範囲と第2抵抗値範囲とを可逆的に遷移する、バイポーラ特性を有する。特殊書き込みモードにおいて、例えば、電圧の絶対値が3Vであり、パルス幅が1μSecの電気的ストレスが、初期状態の抵抗変化素子120に印加される。この電気的ストレスの印加によって抵抗変化素子120が可変状態に変化しなかった場合、電気的ストレスが抵抗変化素子120に再度印加される。例えば、この電気的ストレスは、例えば、先に印加された電気的ストレスに比べて、電圧の絶対値が0.1V大きく、パルス幅が5倍である。この処理が繰り返されことによって、各抵抗変化素子120に累積的に電気的ストレスが印加される。そして、各抵抗変化素子120が可変状態に変化すると、フォーミング処理が完了する。
図18は、特殊書き込みモードの第1動作例を示すフローチャートである。図18においては、入力されたデータがメモリセル91に書き込まれる場合が想定されている。なお、可変状態への変化のランダム性によって乱数データが生成され、かつ書き込まれる場合においても、書き込むべきデータが予め決まっていないこと以外は、同様に説明されうる。
STEP1において、書き込みコマンドと、データを書き込むべきアドレス、書き込むべきデータが乱数処理装置100の外部から入力される。なお、可変状態への変化のランダム性によって乱数データが生成され、かつ書き込まれる場合、書き込むべきデータは入力されず、データを書き込むべきアドレスの替わりに乱数データが生成される領域を示すアドレスが入力される。
STEP2において、STEP1で入力された書き込みコマンドが第1書き込みコマンドであるか否かが判定される。STEP2の判定結果がNOであれば処理が中止される。
STEP2の判定結果がYESであれば、STEP3に進む。STEP3において、STEP1で入力されたアドレスのメモリセル91が選択され、入力されたデータに応じて、初期状態のまま維持すべきメモリセルに電気的ストレスが印加されないようにマスクが施される。初期状態のまま維持すべきメモリセルは、例えば、書き込むべきデータの“0”に対応する。
STEP4において、選択されたメモリセルのうちマスクされていないメモリセル、つまり初期状態から可変状態へと変化させるべきメモリセルに対して、電気的ストレスが印加される。電気的ストレスの電圧の初期値は3V、パルス幅の初期値は1μSecとする。この電気的ストレスは、フォーミングストレスの少なくとも一部である。初期状態から可変状態へと変化させるべきメモリセルは、例えば、書き込むべきデータの“1”に対応する。
STEP5において、センスアンプ012は、フォーミング判定用の読み出しモードに設定される。例えば、図14のスイッチSW4がオフとなり、測定範囲が高抵抗側に設定される。
STEP6において、センスアンプ012のカウンタ134がホールドするカウント値が40未満であるか否か、および電気的ストレスの印加回数が5回を超えているか否かが判定される。STEP6の判定結果のいずれかがYESであれば処理が終了する(エンド)。
STEP6の判定結果のいずれもがNOであれば、STEP7において、直前に印加した電気的ストレスに対して、電圧が0.1V増加され、パルス幅が5倍増加された新たな電気ストレスが設定される。そして、STEP4に戻って新たな電気的ストレスがメモリセルに印加される。このようにして、初期状態から可変状態へと変化させるべきメモリセルが可変状態へ変化するまで、STEP4〜STEP7が繰り返される。なお、図18に示す例では、電気的ストレスの印加回数に上限が設けられている。これにより、無限ループが防止される。
電気的ストレスの印加回数の上限を超えても、メモリセルが可変状態に変化しない場合、当該メモリセルが不良セルと判断され、エラーログが出力されてもよい。図18に示されるフローが、複数ビットに対して並列で実行される場合、STEP6の判定結果がYESになるまでに電気的ストレスが印加される回数は、ビット毎に異なる。そのため、STEP6の判定結果がYESになったメモリセルは、それ以降の電気的ストレスの印加を禁止するマスクが施されてもよい。この場合、例えば、並列処理されるメモリセルの全てについてSTEP6の判定結果がYESになったときにフローが終了する。
図19は、図18に示す特殊書き込みモードで書き込まれたデータを、特殊読み出しモードで読み出した結果の一例を示す。図20は、図18に示す特殊書き込みモードで書き込まれたデータを、通常読み出しモードで読み出した結果の一例を示す。図19および図20は、特殊書き込みモードで0〜F(16進表記)までの値が書き込まれたメモリセル群を、特殊読み出しモードおよび通常読み出しモードでそれぞれ読み出した結果を示している。
図19および図20に示される例において、特殊読み出しモードと通常読み出しモードとの間では、クロック周波数、読み出し電圧、第2基準電位Vref2および判定時間を同一とし、スイッチSW4のオンオフのみを異ならせている。
スイッチSW4のオンオフが異なると、定電流源からノードCに供給される電流量が異なり、ノードCの電位が減衰するまでのカウント値が異なる。そのため、スイッチSW4のオンオフが異なると、抵抗値とカウント値とを対応付ける係数(例えば、上述の定数C1、C2)が異なる。そのため、特殊読み出しモードと通常読み出しモードとで、同じ判定値に基づいてカウント値が判定された場合であっても、実質的には、異なる判定値に基づいて抵抗値が判定されたことになる。言い換えると、特殊読み出しモードにおける読み出しは、第1閾値を用いた読み出しであり、通常読み出しモードにおける読み出しは、第1閾値とは異なる第2閾値を用いた読み出しである。
図19および図20において、左側の4列に示されるカウント値は、図14のカウンタ134がホールドした値を示す。各カウント値は判定値の40と比較され、判定値よりも大きいビットは“0”が割り当てられ、小さいビットは“1”が割り当てられた。これにより得られた4ビットの値が、図19および図20の右側の1列に、16進表記で示されている。なお、カウンタ134の上限値は255であり、それより大きな値は制限されている。
図19に示されるように、メモリセル群が特殊読み出しモードで読み出された場合、フォーミングが完了していないメモリセルは、全て255の最大値を示し、フォーミングが完了したメモリセルは9〜10の値を示した。これらを判定して得られる4ビットの値は、16進表記で0からFまでの所定の値であった。
図20に示されるように、メモリセル群が通常読み出しモードで読み出された場合、大部分のカウント値は上限値である255を示した。また、これらを判定して得られる4ビットの値の大半は0であった。このように、特殊書き込みモードで書き込まれたデータは、特殊読み出しモードによってのみ、正確に読み出される。なお、フォーミングが完了したメモリセルでもカウント値が大きくばらついているのは、フォーミングが完了したメモリセルの抵抗値が、そのままの状態では、第1抵抗値範囲内にも、第2抵抗値範囲内にも入りうるためである。
上記の動作例では、初期状態のメモリセルの抵抗値が可変状態のメモリセルの抵抗値よりも高い例について説明した。しかし、初期状態のメモリセルの抵抗値が可変状態のメモリセルの抵抗値よりも低い場合でも、判定の方法および印加するパルスの極性および電圧等を適宜に変更することで、同様の動作が可能である。
〔本願発明者が見出した読み出し処理の課題〕
上記構成において、乱数生成を行う為に、乱数生成用の複数のメモリセルの全てを、高抵抗状態又は低抵抗状態の何れかに遷移させた場合、すなわち書き込みを行った場合、書き込み後の抵抗値はある程度のばらつきを有した状態となる。これは如何なる書き込み方法を行っても全てのメモリセルが同一の抵抗値にはならない為である。
その様なばらつきを有した複数のメモリセルをセンスアンプ012が読み出すと、我々は以下の課題が生じることを見出した。この課題について、図21及び図22を用いて説明する。
図21は、主として、異なるメモリセルA〜Cの各々からの読み出し処理に関するノード電位SENと、参照電圧VREFと、抵抗値カウンタ32の出力信号COUNT_OUTとの関係を示すタイミングチャートである。この図は図15の放電方式のタイミングチャートに基づく。各信号の意味は上述の通りである。
図21において、ノード電位SENは、図14において、センス中に各メモリセルA〜Cの抵抗状態に従って変化するノードSENの各ノード電位である。メモリセルA(図21では「セルA」と記載)は、複数の乱数生成用メモリセルの内、抵抗値が最も小さいメモリセルを指す。同様に、メモリセルC(図21では「セルC」と記載)は抵抗値が最も大きいメモリセルを指し、メモリセルB(図21では「セルB」と記載)は、抵抗値がメモリセルAよりも大きくてメモリセルCよりも小さい標準的なメモリセルを指す。以下、図に合わせて、「セルA」、「セルB」、「セルC」と呼ぶ。
図15と同様のシーケンス動作より、時刻tSになるとPRE=‘L’→‘H’、LOAD=‘H’→‘L’となり、抵抗状態の読み出しが開始すると同時に、抵抗値カウンタのカウントが開始される。
セルAは抵抗値が最も小さいので、ノード電位SENの電位降下は最も早く、読み出し開始時刻tSからの時間T2aでノード電位SENは参照電圧VREFを下回る。このとき、コンパレータ31の出力信号が変化して、抵抗値カウンタのカウントアップが停止する。そのときのカウント値AがCOUNT_OUTに維持され、抵抗値がカウント値Aとしてディジタル変換される。
また、セルBは抵抗値がセルAより大きくセルCより小さいので、ノード電位SENの電位は、読み出し開始時刻tSからの時間T2bでノード電位SENは参照電圧VREFを下回る。このとき、コンパレータ31の出力信号が変化して、抵抗値カウンタのカウントアップが停止する。そのときのカウント値BがCOUNT_OUTに維持され、抵抗値がカウント値Bとしてディジタル変換される。
一方、抵抗値が最も大きいセルCは、読み出し終了時刻tEになってもノード電位SENは参照電圧VREFよりも高く、抵抗値カウンタのカウント値Cは最大値となる。その為、抵抗値がカウンタ値としてディジタル変換されずに動作を終了する。
図22は、主として、異なるメモリセルD〜Fの各々からの読み出し処理に関するノード電位SENと、参照電圧VREFと、抵抗値カウンタ32の出力信号COUNT_OUTとの関係を示すタイミングチャートである。この図は図16の充電方式のタイミングチャートに基づく。各信号の意味は上述の通りである。
図22において、ノード電位SENは、図14において、センス中に各メモリセルD〜Fの抵抗状態に従って変化するノードSENの各ノード電位である。
メモリセルD(図22では「セルD」と記載)は、複数の乱数生成用メモリセルの内、抵抗値が最も大きいメモリセルを指す。同様に、メモリセルF(図22では「セルF」と記載)は抵抗値が最も小さいメモリセルを指し、メモリセルE(図22では「セルE」と記載)は、抵抗値がメモリセルDよりも小さくてメモリセルFよりも大きい標準的なメモリセルを指す。以下、図に合わせて、「セルD」、「セルE」、「セルF」と呼ぶ。
図16と同様のシーケンス動作より、時刻tSになるとLOAD=‘H’→‘L’となり、抵抗状態の読み出しが開始すると同時に、抵抗値カウンタのカウントが開始される。
セルDは抵抗値が最も大きいので、ロードトランジスタ34のロード電流によってノード電位SENの電位上昇が最も早く、読み出し開始時刻tSからの時間T2dでノード電位SENは参照電圧VREFを上回る。このとき、コンパレータ31の出力信号が変化して、抵抗値カウンタのカウントアップが停止する。そのときのカウント値DがCOUNT_OUTに維持され、抵抗値がカウント値Dとしてディジタル変換される。
また、セルEは抵抗値がセルDより小さくセルFより大きいので、ノード電位SENの電位は、読み出し開始時刻tSからの時間T2eでノード電位SENは参照電圧VREFを上回る。このとき、コンパレータ31の出力信号が変化して、抵抗値カウンタのカウントアップが停止する。そのときのカウント値EがCOUNT_OUTに維持され、抵抗値がカウント値Eとしてディジタル変換される。
一方、抵抗値が最も小さいセルFの場合、読み出し終了時刻tEになってもノード電位SENは参照電圧VREFよりも低く、抵抗値カウンタのカウント値Fは最大値となる。その為、抵抗値がカウンタ値としてディジタル変換されずに動作を終了する。
一方、セルCやセルFの場合、サイクル内でセルの抵抗値をカウンタ値に変換できていないので、抵抗値がどの様な値なのか不明である。とりわけ乱数生成においては、2回の読み出しによる抵抗値の揺らぎを捕らえる為には抵抗値をカウント値に変換する必要がある。しかし、その様な抵抗値のディジタル変換が出来ないセルが含まれることは、乱数生成が出来ないことを意味し、乱数生成技術の根幹にかかわる問題になる。
それを解決するために読み出し時のセンス時間T23(tS〜tE間の時間)を長くすることも考えられる。しかし、この場合、読み出しサイクル時間が長くなってしまい、副作用として乱数の生成時間が長くなるという課題が生じる。
他の解決方法として、キャパシタ36の容量値を小さくする、あるいは、ロード電流やVREF電圧を調整することによって、全てのメモリセルの判定時間を短くし、セルCやセルFをセンス時間内で検出することも考えられる。しかし、この場合、判定時間の早いセルAやセルDは抵抗値カウンタの分解能時間よりも揺らぎによる変動時間が小さくなり、揺らぎ変化がディジタル値の差として検出できなくなるという別の課題が生じる。
本開示は、判定時間の短いセル(セルAやセルD)は抵抗値の揺らぎを分解能以上の時間で検出でき、かつ、判定時間の長いセル(セルCやセルF)については抵抗値の揺らぎの判定時間を短縮して、乱数生成機能の正常化と高速化を両立するものである。以下にその詳細を図面を用いて説明する。
〔センスアンプの第1の実施形態〕
図23は、第1の実施形態にかかるセンスアンプ500のブロック図である。「センスアンプ」は「読み出し回路」とも呼ばれ得る。後述するセンスアンプの第2および第3の実施形態についても同様である。センスアンプの第1〜第3の実施形態のそれぞれは、図12および図14に示すセンスアンプ012の代わりに利用され得る。ただし、センスアンプの第1〜第3の実施形態のそれぞれには、図14に示すセンスアンプ012の構成要素と共通する部分が含まれる。以下では、図14で既に記載の素子や回路についてはその説明を省略し、異なる部分のみを説明する。
センスアンプ500は、図14の構成を基本として、さらに参照(リファレンス)定電圧発生回路504と、参照(リファレンス)電圧変動回路501と、スイッチ回路502と、キャパシタ503とを有している。定電圧発生回路504と、参照電圧変動回路501と、スイッチ回路502とを含む回路は、本開示における「参照電圧生成回路」の一例である。
リファレンス定電圧発生回路504は、一定の電圧を発生させる。リファレンス電圧変動回路501は、リファレンスノードVREFの電圧を時間と共に変動させる。スイッチ回路502は、論理制御回路010から出力される制御信号RFACTによって、リファレンス定電圧発生回路504の出力VRCとリファレンスノードVREFとを接続し、または切断する。キャパシタ503は、リファレンスノードVREFに接続されている。
なお、センスアンプ回路30は、選択メモリセル21sの一端と電気的に接続されるための端子Tr1と、リファレンスノードVREFに接続されている端子Tr2とが示されている。
図24は、リファレンス定電圧発生回路504の一構成例である。
この例では、リファレンス定電圧発生回路504は、分圧用抵抗素子505と、Nチャネルトランジスタ506と、Pチャネルトランジスタ507と、差動アンプ508と、電圧選択回路509とを有している。
分圧用抵抗素子505は、ポリシリコン等で構成されており、その分圧用抵抗素子505内の32箇所に出力端子が設けられて分圧電圧を得られる様に構成されている。分圧用抵抗素子505の末端の一方がNチャネルトランジスタ506のドレイン端子に接続されている。
Nチャネルトランジスタ506は、ソースがグランドに、ゲートが本リファレンス定電圧発生回路のイネーブル信号RCENに接続されている。
Pチャネルトランジスタ507のソースはVDD端子に接続され、ドレインは分圧用抵抗素子505の他端に接続され、ゲートは差動アンプ508の出力端子に接続されている。
差動アンプ508は、プラス(+)の入力端子に基準電圧VBASEが接続され、マイナス(−)入力端子に分圧用抵抗素子505の中間ノードF点が接続されている。
電圧選択回路509は、分圧用抵抗素子の32箇所の所定中間端子の電圧を入力とし、その内の一つの電圧を選択信号VRCSEL[4:0]に従って選択し、出力端子VRCへ出力する。
リファレンス定電圧発生回路504の活性化時には、Pチャネルトランジスタ507と差動アンプ508によって、分圧用抵抗素子505の中間ノードF点の電圧が基準電圧VBASEと同一になる様に制御される。電圧選択回路509は、VDDの電圧変動に依存しない基準電圧VBASEに基づいて電圧を選択することができる。これにより、リファレンス定電圧発生回路504は、VDDの電圧変動の影響を受ける事無く、選択的に所定の一定電圧を出力することが出来る。図25は、本開示にかかるリファレンス電圧変動回路501の構成例を示す。このリファレンス電圧変動回路501は、アップスロープ型である。
リファレンス電圧変動回路501は、大きく分けて、定電流源部514および変動制御部522を有している。
定電流源部514は、定電流源510と、Pチャネルトランジスタ511とを有する。定電流源510は、定電流Is0を発生する。Pチャネルトランジスタ511のソースはVDD端子に接続され、ドレインおよびソースは定電流源510に接続されている。
変動制御部522は、Pチャネルトランジスタ515と、Pチャネルトランジスタ517と、反転論理素子519と、NAND論理素子520とを有する。
Pチャネルトランジスタ515のソースはVDD端子に接続され、ドレインはPチャネルトランジスタ517のドレイン又はソースの一方に接続されている。また、Pチャネルトランジスタ515のゲートは、定電流源部514内のPチャネルトランジスタ511のドレイン及びゲートとカレントミラー接続されている。
Pチャネルトランジスタ517は、そのゲートにNAND論理素子520の出力が接続されており、スイッチとして機能する。
変動制御部522は、Pチャネルトランジスタ517がオンするとミラー電流IspがVREFノードに流れ込み、VREF電圧を時間と共に上昇させる。スロープ方向指定信号UPSLPはアップスロープ型電圧変動の際に‘H’が入力されている。
なお、Pチャネルトランジスタ511と515のミラー比の変更でIsp電流量を変えることで、時間に対するVREF電圧の変動量を任意に調整する機能を有することも可能である。
図24のリファレンス定電圧発生回路と図25のアップスロープ型電圧変動回路を搭載した放電型のセンスアンプの動作を図26のタイミングチャートと共に説明する。
なお、タイミングチャート26の基本的な動作は図21と同様であるので、必要な部分についてのみ説明する。なお、以下には、信号のロウレベルを‘L’、ハイレベルを‘H’と記載する。
図21と同様のシーケンス動作より、時刻tS以前ではVREF変動信号RFACTが‘L’であることにより、VREFノードの電圧はリファレンス定電圧発生回路504が出力する一定電圧VREFを維持している。時刻tSになるとPRE=‘L’→‘H’、LOAD=‘H’→‘L’となり、抵抗状態の読み出しセンスが開始すると同時に、抵抗値カウンタのカウントが開始される。
セルAは抵抗値が最も小さいので、ノード電位SENの電位降下は最も早く、読み出し開始時刻tSからの時間T2aでノード電位SENは参照電圧VREFを下回る。このとき、コンパレータ31の出力信号が変化して、抵抗値カウンタのカウントアップが停止する。そのときのカウント値AがCOUNT_OUTに維持され、抵抗値がカウント値Aとしてディジタル変換される。
また、セルBは抵抗値がセルAより大きくセルCより小さいので、ノード電位SENの電位は、読み出し開始時刻tSからの時間T2bでノード電位SENは参照電圧VREFを下回る。このとき、コンパレータ31の出力信号が変化して、抵抗値カウンタのカウントアップが停止するそのときのカウント値BがCOUNT_OUTに維持され、抵抗値がカウント値Bとしてディジタル変換される。
一方、時刻tACTになるとVREF変動信号RFACTが‘L’→‘H’に変化する。このタイミングでスイッチ502はオフとなり、リファレンス定電圧発生回路504の出力VRCはノードVREFから切り離される。同時にリファレンス電圧変動回路501が活性化し、一定電流を流してノードVREFに電荷を供給する。これによりノードVREFの電圧は時間と共に上昇する。
これにより、抵抗値が最も大きいセルCにおいても、ノードSENの電位が参照電圧VREFを下回るまでの時間がセンス時間T23内に得られ、その時間は読み出し開始時刻tSから時間T2cとなる。このとき、コンパレータ31の出力信号が変化して、抵抗値カウンタ32のカウントアップが停止するそのときのカウント値CがCOUNT_OUTに維持され、抵抗値がカウント値Cとしてディジタル変換される。
以上の様に、本構成例では、メモリセルの抵抗状態(記憶情報)に伴ってノードSENの電位が時間と共に降下する読み出し方式において、センス開始後の所定時間でリファレンスノードVREFの電圧を所定のタイミングで時間と共に上昇変化させるように、スイッチ502を切り替える。抵抗値が最も大きいセルについてもセンス時間内にノードSENの電位が参照電圧VREFを下回るため、選択された全てのメモリセルについて、抵抗値のディジタル変換を行うことが可能となる。この結果、抵抗値状態をディジタル変換することができ、ばらつきを持つ全てのメモリセルの抵抗状態を短時間に検知することが可能となる。
なお、以上の説明においては、VREF変動信号RFACTの電圧変化時刻tACTがセンス開始時刻tSよりも後となる形態で説明したが、VREF変動信号RFACTの変化時刻は、時間に対するリファレンスノードVREFの電圧の変動量と共に調整可能である。例えば、tACT=tSでも構わない。
これにより、放電方式のセンスアンプにおいて、短時間で全ての抵抗状態がディジタルデータとして変換することが可能となる。更に、2回の読み出しによる抵抗値の揺らぎ変化を全てのメモリセルに対して短時間で検知することが可能となる。これにより、高速な乱数生成装置を実現することができる。
図27は、本開示にかかるリファレンス電圧変動回路501の他の構成例を示す。このリファレンス電圧変動回路501は、ダウンスロープ型である。なお、センスアンプ500の構成例は図23と同様であり、リファレンス電圧変動回路501内の構成が、アップスロープ型とは異なる。
リファレンス電圧変動回路501は、大きく分けて、定電流源部523および変動制御部524を有している。
定電流源部523は、図25に示す定電流源部514に、さらにPチャネルトランジスタ512およびNチャネルトランジスタ513が設けられている。Pチャネルトランジスタ512のソースはVDD端子に接続され、ゲートはPチャネルトランジスタ511のゲート,ドレインとカレントミラー接続されている。Nチャネルトランジスタ513のソースはグランド端子に、ドレインおよびゲートはPチャネルトランジスタ512のドレインに接続されている。
変動制御部524は、Nチャネルトランジスタ516と、Nチャネルトランジスタ518と、NOR論理素子521とを有する。
Nチャネルトランジスタ516のソースはグランド端子に接続され、ドレインはNチャネルトランジスタ518のドレイン又はソースの一方に接続されている。また、Nチャネルトランジスタ516のゲートは定電流源部523内のNチャネルトランジスタ513のドレイン及びゲートとカレントミラー接続されている。
Nチャネルトランジスタ518は、ゲートにNOR論理素子521の出力が接続されており、スイッチとして機能する。
変動制御部524は、Nチャネルトランジスタ518がオンするとミラー電流IsnによるVREFノードからの引き抜き電流が流れ、VREF電圧を時間と共に下降させる。スロープ方向指定信号UPSLPはダウンスロープ型電圧変動の際に‘L’が入力されている。
なお、Nチャネルトランジスタ513と516のミラー比の変更でIsn電流量を変えることで、時間に対するVREF電圧の変動量を任意に調整する機能を有することも可能である。 図24のリファレンス定電圧発生回路と図27のダウンスロープ型電圧変動回路を搭載した充電型のセンスアンプの動作を図28のタイミングチャートと共に説明する。
なお、タイミングチャート110の基本的な動作は図22と同様であるので、必要な部分についてのみ説明する。
図22と同様のシーケンス動作より、時刻tS以前ではVREF変動信号RFACTが‘L’よりVREFノードの電圧はリファレンス定電圧発生回路の出力する一定電圧Vrefを維持している。時刻tSになるとPRE=‘L’→‘H’、LOAD=‘H’→‘L’となり、抵抗状態の読み出しセンスが開始すると同時に、抵抗値カウンタのカウントが開始される。
セルDは抵抗値が最も大きいので、ノード電位SENの電位上昇は最も早く、読み出し開始時刻tSからの時間T2dでノード電位SENは参照電圧VREFを上回る。このとき、コンパレータ31の出力信号が変化して、抵抗値カウンタのカウントアップが停止する。そのときのカウント値DがCOUNT_OUTに維持され、抵抗値がカウント値Dとしてディジタル変換される。
また、セルEの抵抗値がセルFより大きくセルDより小さいので、ノード電位SENの電位は、読み出し開始時刻tSからの時間T2eでノード電位SENは参照電圧VREFを下回る。このとき、コンパレータ31の出力信号が変化して、抵抗値カウンタのカウントアップが停止する。そのときのカウント値EがCOUNT_OUTに維持され、抵抗値がカウント値Eとしてディジタル変換される。
一方、時刻tACTになるとVREF変動信号RFACTが‘L’→‘H’に変化する。このタイミングでスイッチ502はオフとなり、リファレンス定電圧発生回路504の出力VRCはノードVREFから切り離される。同時にリファレンス電圧変動回路501が活性化し、一定電流を流してノードVREFから電荷を引き抜く。これによりノードVREFの電圧は時間と共に下降する。
これにより、抵抗値が最も小さいセルFにおいても、ノードSENの電位が参照電圧VREFを上回るまでの時間がセンス時間T23内に得られ、その時間は読み出し開始時刻tSから時間T2fとなる。このとき、コンパレータ31の出力信号が変化して、抵抗値カウンタ32のカウントアップが停止する。そのときのカウント値FがCOUNT_OUTに維持され、抵抗値がカウント値Fとしてディジタル変換される。
以上の様に、本構成例は、メモリセルの抵抗状態(記憶情報)に伴ってノードSENの電位が時間と共に上昇する読み出し方式において、センス開始後の所定時間でクロック周期に従ってリファレンスノードVREFの電圧を所定のタイミングで時間と共に下降変化させるように、スイッチ502を切り替える。これにより、抵抗値が最も小さいセルについてもセンス時間内にノードSENの電位が参照電圧VREFを上回るため、選択された全てのメモリセルについて、抵抗値のディジタル変換を行うことが可能となる。この結果、抵抗値状態をディジタル変換することができ、ばらつきを持つ全てのメモリセルの抵抗状態を短時間に検知することが可能となる。
なお、以上の説明においては、VREF変動信号RFACTの電圧変化時刻tACTがセンス開始時刻tSよりも後となる形態で説明したが、VREF変動信号RFACTの変化時刻は時間に対するリファレンスノードVREFの電圧の変動量と共に調整可能である。例えば、tACT=tSでも構わない。
これにより、充電方式のセンスアンプにおいて、短時間で全ての抵抗状態がディジタルデータとして変換することが可能となる。更に、2回の読み出しによる抵抗値の揺らぎ変化を全てのメモリセルに対して短時間で検知することが可能となる。これにより、高速な乱数生成装置を実現することができる。
以上の説明では、リファレンス電圧変動回路501は、放電型センス方式で用いるアップスロープ型電圧変動回路(図25)と充電型センス方式で用いるダウンスロープ型電圧変動回路(図27)とを別個の回路として説明した。よって、これらをそれぞれ有するセンスアンプもまた、別個の回路として得られる。しかしながら、制御回路の設計次第では、センスアンプを放電型センス方式の回路として用いることもできるし、充電型センス方式の回路として用いることもできる。つまり、放電型センス方式および充電型センス方式のセンスアンプは、1つの回路に統合し得る。その場合、センスアンプ内のリファレンス電圧変動回路501も統合する必要がある。
図29は、放電型センス方式および充電型センス方式のセンスアンプに利用し得るリファレンス電圧変動回路501の構成例を示す。
図29のリファレンス電圧アップダウンスロープ選択型変動回路の構成要素は、図25と図27を組み合わせた構成であり、同様の構成要素については同一の符号を付して、詳細な説明は省略する。ただし、スロープ方向指定信号UPSLPは、アップスロープ型の場合は‘H’を入力し、ダウンスロープ型の場合は‘L’を入力する。
以上の様に、リファレンス電圧変動回路を放電型センス方式と充電型センス方式の両者に対応した回路構成とすることで、メモリセルに書き込まれた抵抗値帯に対して、センス方式と電圧変動方向の最適化が可能となる。
〔センスアンプの第2の実施形態〕
次に、図30を参照しながら、センスアンプの第2の実施形態を説明する。
図30は、本開示の第2の実施形態にかかるセンスアンプ533のブロック図である。図14で既に説明した構成については、同一の符号を付してその説明を省略し、異なる部分のみを説明する。
センスアンプ533は、リファレンス定電圧発生回路504と、キャパシタ503と、リファレンス電圧変動回路531と、スイッチ回路530とを有している。リファレンス定電圧発生回路504と、リファレンス電圧変動回路531と、スイッチ回路530とを含む回路は、本開示における「参照電圧生成回路」の一例である。
リファレンス電圧変動回路531の具体的な構成は後述する。
スイッチ回路530は、論理制御回路010(図12)からの制御信号RFACTに従って、リファレンス定電圧発生回路504の出力VRCか、リファレンス電圧変動回路531の出力SLPの何れかを切り替えて、ノードVREFに接続する。
本構成によるシーケンス及び動作は、図26にて説明した放電型センス型や図28にて説明した充電型センス型と同じである。RFACTが‘L’の時は、リファレンス定電圧発生回路504の出力VRCがリファレンスノードVREFに接続され、リファレンスノードVREFの電圧をリファレンス定電圧発生回路504によって一定電圧に制御される。一方、RFACTが‘H’の時は、リファレンス電圧変動回路531の出力がリファレンスノードVREFに接続され、リファレンスノードVREFの電圧がリファレンス電圧変動回路531によって時間と共に上昇または降下する様に制御される。
図31は、リファレンス電圧変動回路531の回路構成例を示す。図29と同様の素子及び構成は説明を省略する。
リファレンス電圧変動回路531は、大きく分けて、定電流源部525および変動制御部532を有している。
定電流源部525は、図29に示す構成と同じである。
変動制御部532は、図25に示す変動制御部522の構成と、図27に示す変動制御部524の構成とを包含する。変動制御部522に対応する構成として、変動制御部532は、Pチャネルトランジスタ515と、Pチャネルトランジスタ517と、反転論理素子519とを有する。また、変動制御部524に対応する構成として、変動制御部532は、Nチャネルトランジスタ516と、Nチャネルトランジスタ518とを有する。
Pチャネルトランジスタ517のソース端子はPチャネルトランジスタ515のドレイン端子と接続され、ドレイン端子は出力ノードSLPと接続されている。さらに、ゲート端子は、反転論理素子519の出力端子と接続されている。Nチャネルトランジスタ518のソース端子はNチャネルトランジスタ516のドレイン端子と接続され、ドレイン端子は出力ノードSLPと接続されている。さらに、Nチャネルトランジスタ518のゲート端子には、反転論理素子519の出力端子が接続されている。反転論理素子519の入力端子には論理制御回路010からのスロープ方向指定信号UPSLPが入力される。UPSLP=‘H’の時は、Pチャネルトランジスタ517が導通し、Nチャネルトランジスタ518は非導通となる。これにより、定電流源部525からのミラー電流Ispが、Pチャネルトランジスタ515からノードSLPに流れ込む様に動作する。一方、UPSLP=‘L’の時は、Pチャネルトランジスタ517は非導通となり、Nチャネルトランジスタ518が導通するので、定電流源部525からのミラー電流Isnが、ノードSLPからNチャネルトランジスタ516へ流れ出す様に動作する。
以上のように、図30、図31の回路構成において、図26や図28に示す様に、RFACTを‘L’から‘H’に変化させることで、リファレンスノードVREFの電圧を時間と共に上昇又は下降させることができる。
上述したように、センスアンプに関する第1および第2の実施形態は、リファレンス電圧変動回路を設けて、リファレンスノードの電圧VREFを、メモリセルの記憶情報に対応するノードSENの電位が変化する方向(減少方向/増加方向)とは逆方向(増加方向/減少方向)に変化させる。このようなリファレンスノード(参照電圧ノード)の電圧を用いて、選択メモリセルの記憶情報の読み出しを行えば、センス時間内にノードSENの電位が参照電圧VREFを下回るまたは上回ることになる。よって、メモリセルの抵抗値をディジタル変換することが可能になる。
〔センスアンプの第3の実施形態〕
次に、図32および図33を参照しながら、センスアンプの第3の実施形態を説明する。
図32は、本開示の第3の実施形態にかかるセンスアンプ534のブロック図である。図14で既に説明した構成については、同一の符号を付してその説明は省略し、異なる部分のみを説明する。
第3の実施形態によるセンスアンプ534は、リファレンス電圧発生回路535およびキャパシタ503を有する。ただし、キャパシタ503は本開示の第3の実施形態において必須の構成要素ではない。リファレンス電圧発生回路535は、本開示における「参照電圧生成回路」の一例である。
センスアンプ535はリファレンス電圧変動制御信号RFACTを受け取ると、スロープ方向指定信号UPSLPとクロック信号CLKに従って、リファレンスノードVREFにおけるリファレンス電圧を、アップ方向又はダウン方向に段階的に変化させる。
図33は、リファレンス電圧発生回路535の詳細な構成を示す。図33に示されている一部の構成要素は、図24にも示されている。特に説明する場合以外は、同じ構成要素には同一の符号を付し、その説明を省略する。
リファレンス電圧発生回路535は、電圧選択回路509および選択制御回路536を有している。
電圧選択回路509は、分圧用抵抗素子505の32箇所の所定中間端子の電圧を入力として受け取る。そして電圧選択回路509は、その内の一つの電圧を、選択信号VRCSEL[4:0]に従って選択し、出力端子VRCへ出力する。
選択制御回路536は、論理制御回路010(図12)からのスロープ方向制御信号UPSLPと変動制御信号RFACTとクロック信号CLKで制御される。選択制御回路536は、選択信号の初期値VRCSELS[4:0]をスタート時のVRCSEL[4:0]値として入力し、変動制御信号UPSLPが入力されると、クロックCLKの周期でスロープ方向制御信号UPSLPに従ってVREFノードのリファレンス電圧をアップ又はダウンさせる制御を行う。
次に、図34を参照しながら、リファレンス電圧発生回路535のアップスロープ動作の詳細を説明する。
図34は、アップスロープ動作を行う放電型センス動作のタイミングチャートである。
図34において、リファレンス電圧の変動方向はアップスロープ変動より、変動制御信号UPSLP=‘H’、リファレンス電圧の初期選択値VRCSELS[4:0]=‘0fh’(16進数表現)である。クロックCLKは一定の周波数で入力されている。リファレンス電圧はVRCSEL[4:0]=‘0fh’によって電圧Vrefとなっている。時刻tSで、LOAD=‘H’→‘L’となり、センス動作が開始される。時刻tSで、選択メモリセル(例えばセルC)に電流が流れ、センスノードSENの電位降下が開始し、また、抵抗値カウンタ32のカウントアップが開始する。
時刻tACTで変動制御信号RFACTが‘H’になると、VREFノードの電圧が上昇方向に変化を開始する。VREFノード電圧の変化タイミングは、選択制御回路536によってクロックCLKの一周期毎に到来する。VRCSEL[4:0]の値が1つカウントアップするごとに、リファレンスノードVREFのノード電圧はΔVだけ上昇する。具体例を以下に示す。
VRCSEL[4:0]=‘0fh’でVREFノード電圧=Vref(初期)であり、
VRCSEL[4:0]=‘10h’で電圧=Vref+ΔV、
VRCSEL[4:0]=‘11h’で電圧=Vref+2*ΔV、
VRCSEL[4:0]=‘12h’で電圧=Vref+3*ΔV、
・
・
・
VRCSEL[4:0]=‘18h’で電圧=Vref+9*ΔV
また、抵抗値カウンタ32のカウント値はクロックCLKの一周期毎にカウントアップされ、読み出しセンス開始時刻tSからT2cとなったところで、選択メモリセル(セルC)によるセンスノードSENのノード電圧がVref+9*ΔVとなる。選択メモリセル(セルC)によるセンスノードSENの電圧がリファレンスノードVREFの電圧を下回ると、コンパレータ31の出力信号が変化して抵抗値カウンタ32のカウントアップが停止する。そのときのカウント値(c)がCOUNT_OUTに維持され、抵抗値状態がカウント値としてディジタル変換される。
以上の様に、本開示によるセンスアンプの第3の実施形態は、メモリセルの抵抗状態(記憶情報)に伴ってノードSENの電位が時間と共に下降する読み出し方式において、センス開始後の所定時間でクロック周期に従ってリファレンスノードVREFの電圧を上昇変化させる。これにより、抵抗値が最も大きいセルについてもセンス時間内にノードSENの電位が参照電圧VREFを下回ることが可能となる。この結果、抵抗値状態をディジタル変換することができ、ばらつきを持つ全てのメモリセルの抵抗状態を短時間に検知することが可能となる。
次に、図35を参照しながら、リファレンス電圧発生回路535のダウンスロープ動作の詳細を説明する。
図35は、ダウンスロープ動作を行う充電型センス動作のタイミングチャートである。図35において、リファレンス電圧の変動方向はダウンスロープ変動の際に、変動制御信号UPSLP=‘L’、リファレンス電圧の初期選択値VRCSELS[4:0]=‘0fh’(16進数表現)である。クロックCLKは一定の周波数で入力されている。リファレンス電圧はVRCSEL[4:0]=‘0fh’によって電圧Vrefとなっている。時刻tSで、LOAD=‘H’→‘L’でセンス動作が開始される。時刻tSで、ロード電流がと共に、選択メモリセル(例えばセルF)に電流が流れ、センスノードSENの電位上昇が開始する(ロード電流>選択メモリセル電流)。また、抵抗値カウンタ32のカウントアップが開始する。
時刻tACTで変動制御信号RFACTが‘H’になると、VREFノードの電圧が下降方向に変化を開始する。VREFノード電圧の変化タイミングは選択制御回路536によってクロックCLKの一周期毎に到来する。VRCSEL[4:0]の値が1つカウントダウンするごとに、リファレンスノードVREFのノード電圧はΔVだけ下降する。
VRCSEL[4:0]=‘0fh’でVREFノード電圧=Vref(初期)であり、
VRCSEL[4:0]=‘0eh’で電圧=Vref−ΔV、
VRCSEL[4:0]=‘0dh’で電圧=Vref−2*ΔV、
VRCSEL[4:0]=‘0ch’で電圧=Vref−3*ΔV、
・
・
・
VRCSEL[4:0]=‘05h’で電圧=Vref−10*ΔV、
また、抵抗値カウンタ32のカウント値はクロックCLKの一周期毎にカウントアップされ、読み出しセンス開始時刻tSからT2fとなったところで、選択メモリセル(セルF)によるセンスノードSENのノード電圧がVref−10*ΔVとなる。選択メモリセル(セルF)によるセンスノードSENのノード電圧がファレンスノードVREFの電圧を上回ると、コンパレータ31の出力信号が変化して抵抗値カウンタ32のカウントアップが停止する。そのときのカウント値(d)がCOUNT_OUTに維持され、抵抗値状態がカウント値としてディジタル変換される。
以上の様に、本開示によるセンスアンプの第3の実施形態は、メモリセルの抵抗状態(記憶情報)に伴ってノードSENの電位が時間と共に上昇する読み出し方式において、センス開始後の所定時間でクロック周期に従ってリファレンスノードVREFの電圧を降下変化させる。これにより、抵抗値が最も小さいセルについてもセンス時間内にノードSENの電位が参照電圧VREFを上回ることが可能となる。この結果、抵抗値状態をディジタル変換することができ、ばらつきを持つ全てのメモリセルの抵抗状態を短時間に検知することが可能となる。
なお、抵抗値カウンタ32のカウント周期とVRDSEL[4:0]のカウント周期を同じ周期として説明したが、必ずしも同一周期である必要は無い。
(ICカードへの応用例)
一つの応用例は、本開示により生成されるディジタルIDデータによる秘密鍵の暗号と、暗号化秘密鍵のフォーミングによる書き込みによるデータ隠蔽、さらに認証方法を開示する。
図36は、本開示の応用例にかかる通信システム600の構成例を示すブロック図である。図36において、通信システム600は、リーダライタおよびデータサーバー601(以降、リーダライタと略す)と、ICカード602とを備えている。リーダライタ601と、ICカード602とは、例えば、それぞれが有するアンテナなどを介して無線による通信を行う。
(リーダライタ側)
リーダライタ601は、RAM603と、入出力インタフェース(I/F)部604と、CPU605と、暗号処理回路606と、不揮発性メモリ装置615とを有している。
リーダライタ601の入出力I/F部604は、外部との無線通信を行ってデータを送受信するためのインタフェースであり、たとえば無線通信回路として実現され得る。入出力I/F部604は、RFアンテナを有している。入出力I/F部604は、所定の電磁波を輻射し、負荷の変化を利用して、ICカード602が近づけられたか否かを検出する。また、入出力I/F部604は、例えば、発振回路(図示せず)から供給される所定の周波数の搬送波を、CPU605から供給されるデータに基づいて変調する。入出力I/F部604は、該生成された変調波を、電磁波としてアンテナ(図示せず)から出力することで、近傍に配置されたICカード602へと各種のデータを送信する。また、アンテナを介してICカード602から送られた変調波を受信して復調し、得られたデータをCPU605に供給する。
不揮発性メモリ装置615は、上述した、図23〜図35に示すセンスアンプを備えた乱数処理装置020(図12)として実現され得る。ICカード602は、図23〜図35に示すセンスアンプを備えた半導体装置を搭載していると言える。
不揮発性メモリ装置615は、秘密鍵記憶部608と、データ記憶部609と、ROM部610と、固有ID記憶部611と、全ICカード固有ID記憶部640とを備えている。
ROM部610は、本開示の不揮発性メモリ装置615が備える第2種データ記憶用メモリセル群のうちの所定のアドレス領域に相当する。リーダライタ601のCPU605は、ROM部610記憶されているプログラムをRAM603にロードし、該プログラムを用いて各種の処理を実行する。RAM603にはCPU605が各種の処理を実行するために必要なデータなども一時的に記憶される。RAM603は、SRAM(Static Random Access Memory)やDRAM(Dynamic Random Access Memory)などの揮発性記憶装置が用いられてもよい。あるいは、RAM603は、本開示の不揮発性メモリ装置の第2種データ記憶用メモリセル群の一部で構成されていてもよい。
固有ID記憶部611は本開示のディジタルIDデータを生成に用いるメモリセル群であり、リーダライタに固有のIDデータが本開示の方式により生成できる。さらに全ICカード固有ID記憶部は、第1種データまたは第2種データで記憶されるメモリセル群で構成されており、運用される複数のICカード602で異なるディジタルIDデータの全てが記憶されている。なお、全ICカードのディジタルIDデータは、リーダライタ固有のディジタルIDデータを暗号鍵として暗号化されたデータで記憶されることが望ましい。
CPU605は、暗号処理回路606を制御することにより、予め定められた暗号アルゴリズムに基づいて、データの暗号化と復号化を行う。暗号アルゴリズムとしては、トリプルDES(Data Encryption Standard)、AES(Advanced Encryption Standard)などが例示できる。これらは、いわゆる1つの秘密鍵を用いて暗号と復号を行う共通鍵暗号方式の暗号アルゴリズムである。また、RSA暗号といった秘密鍵と公開鍵の2つの異なる鍵を用い、暗号化時の鍵と、復号化時の鍵を異ならせることで暗号通信を行う公開鍵方式でもよい。この場合は、後述する秘密鍵記憶部608に通信相手の公開鍵と、通信者自身の秘密鍵の両方を格納してもよい。これらの重要な鍵データは、固有ID記憶部611から生成される本開示のディジタルIDデータを暗号鍵として暗号化して、暗号化秘密鍵や暗号化公開鍵として格納することが望ましい。前述した、PUF技術を用いて生成されたディジタルIDデータはリーダライタに固有であり、複製やハッキングが困難である。従って、それを用いて暗号化された暗号化秘密鍵や暗号化公開鍵がコピーされてもディジタルIDデータがコピーできないIC固有のデータであるため安全である。
リーダライタ601においてデータの暗号化または復号化を行う場合、例えば、CPU605は、不揮発性メモリ装置615内の所定のアドレス領域である秘密鍵記憶部608に記憶された暗号化秘密鍵を、本開示のディジタルIDデータを鍵として復号化し、元の秘密鍵を得て、暗号化または復号化すべきデータとともに、暗号処理回路606に供給する。暗号処理回路606は、供給された秘密鍵を用いてデータの暗号化または復号化を実行する。
データ記憶部609は、CPU605がプログラムを実行する上で必要なデータが記憶されている。データ記憶部609において、所定のデータは、本開示のディジタルIDデータを鍵として暗号化して記憶されていてもよい。なお、所定のデータは、初期状態のメモリセルを利用して記憶されていてもよいし、可変状態のメモリセルを利用して記憶されていてもよい。
秘密鍵記憶部608としては、前述した第1種データ記憶用メモリセルを用いてもよいし、第2種データ記憶用メモリセルを用いてもよい。第2種データ記憶用メモリセル群97を用いる場合は、他の一般的な不揮発性メモリを用いるのと大きな違いはない。第1種データ記憶用メモリセルを用いる場合は、抵抗変化素子の初期状態と可変状態との違いでデータを記憶するため、通常の読み出し閾値のコマンドではデータを読み出すことができない。よって、鍵情報の隠蔽が行える。第1実施形態で述べたように、可変状態にあるメモリセルから“0”と“1”のディジタルデータを読み出すためには、第2閾値を用いて“0”と“1”の判定が行なわれる。第2閾値で第1種データ記憶用メモリセル群96を読み出すと、ほとんどのメモリセルが“0”にデコードされ、正規のデータを読み出せない。なお、秘密鍵記憶部608において、秘密鍵は、前述の暗号化秘密鍵として記憶されることが望ましい。
また、メモリセルアレイ内の自由なアドレスに第1種データ記憶用メモリセル群96と第2種データ記憶用メモリセル群97とを配置できる。よって、プローブを用いて物理的に抵抗値を直接読み出すような解析を行おうとしても、そのメモリセルが第1種データ記憶用メモリセル群96および第2種データ記憶用メモリセル群97のいずれに属するのかを特定が困難である。更にディジタルIDデータで暗号化されたデータか、非暗号のデータかの区別が困難であるため、更に解析を複雑にせしめる。
以上のように、図36に示す通信システム600は、秘密鍵の漏洩に対し強い耐タンパ性(tamper resistant)があるといえる。さらに第1種データ記憶用メモリセルや、本開示のディジタルIDデータは、高温においてのデータ信頼性にも優れ、データ誤りが許容されない秘密鍵の記憶および暗号化にも最適である。
秘密鍵記憶部608に記憶される秘密鍵は、ICカード602の秘密鍵記憶部626に記憶されている秘密鍵と同じものとされてもよい。ICカード602に対応するリーダライタ601であって、ICカード602に固有のディジタルIDデータであるカードIDの読み出しを許可されたリーダライタ601のみに、予め秘密鍵が記憶されていてもよい。
固有のディジタルIDデータは、本開示の実施の形態で説明したPUF技術に基づき固有ID記憶部625にデータ誤りを内在した状態で記憶されている。
固有ディジタルIDデータは前述したようにICカードごとに固有の乱数になりうる。このため、IC固有の各種暗号化に用いることができる。
(ICカード側)
ICカード602は、入出力インタフェース(I/F)部620と、CPU621と、暗号処理回路622と、RAM623と、不揮発性メモリ装置630とを有している。
ICカード602の入出力I/F部620は、外部との無線通信を行ってデータを送受信するためのインタフェースであり、たとえば無線通信回路として実現され得る。入出力I/F部620は、例えば、コイル状のアンテナとコンデンサにより構成されるLC回路が一般的に用いられる。ICカードのアンテナがリーダライタ601に近づけられると、リーダライタ601から輻射される所定の周波数の電磁波と共振するようになっている。また、入出力I/F部620は、アンテナにおいて交流磁界により励起された電流を整流化および安定化し、ICカード602の各部に直流電源として供給する。
入出力I/F部620は、アンテナを介して受信した変調波を検波して復調し、復調後のデータをデコードしてディジタルデータに復元しCPU621に供給する。また、デコードしたディジタルデータに周波数と位相をロック(PLLと呼ばれるクロック再生技術:装置内部に電圧可変のオシレータが搭載されており、入力されたディジタルデータにあわせて、位相誤差を検出および積分して制御用の電圧を生成し、オシレータの制御電圧として入力することで入力されたデータのサンプリング周波数を一致させ、かつ位相も固定したクロックを得る)させた受信用のクロック信号(図示せず)が発生され、ディジタルデータのデータラッチ用のクロック信号として供給される。
さらに、入出力I/F部620は、所定の情報をリーダライタ601に送信する場合、CPU621から入力されエンコードされたデータにしたがってアンテナの負荷に変動を発生させ変調し、アンテナを介してリーダライタ601に送信する。
ICカード602は不揮発性メモリ装置630を備える。不揮発性メモリ装置630は上述の乱数処理装置020(図12)に対応する。よって以下の説明では、共通する要素については同一の符号および名称を付して適宜参照する。なお、本応用例では、不揮発性メモリ装置630が不揮発性記憶装置としても機能する。
不揮発性メモリ装置630は、ICカードごとに固有のディジタルIDデータを記憶する固有ID記憶部625と、秘密鍵データを記憶する秘密鍵記憶部626と、CPU621がプログラムを実行する上で必要なデータが記憶されたデータ記憶部627と、CPU621が実行するプログラムが記憶されたROM部628とを備える。それらの全てが1個のメモリセルアレイ(図1のメモリセルアレイ90、図12のメモリセルアレイ021)に包含されている。そして、CPU621はROM部628に記憶されているプログラムをRAM623にロードし、実行するなどして各種の処理を行う。ROM部628に記憶されたプログラムデータは、固有ID記憶部にあるメモリセル群をもとに生成される本開示のディジタルIDデータを鍵として用いて暗号化されて記憶されても良い。
CPU621は、暗号処理回路622を制御することにより、予め定められた暗号アルゴリズムに基づいて、データの暗号化と復号化を行う。上述したように、典型的な暗号方式には、送信側と受信側で同じ秘密鍵で暗号化と復号化を行う共通鍵方式と、異なる公開鍵と秘密鍵で暗号化と復号化を行う公開鍵方式がある。以下の説明では、共通鍵方式を採用した場合について説明する。
なお、公開鍵方式では、ICカード側が暗号化した暗号文データをICカード602がリーダライタ601側に送信する場合は、予めリーダライタ601側から入手した公開鍵で暗号化する。逆に、リーダライタ601側から送られてきた暗号文データは、ICカード602側で予め記憶してある秘密鍵にて復号する。以上の点以外は、公開鍵方式も共通鍵方式と同様である。公開鍵方式における公開鍵と秘密鍵は、互いに唯一のペアの鍵であるため、互いに暗号化されたデータを復号することで同時に相互認証もできることになる。
ICカード602においても、カードリーダでの説明と同様に秘密鍵記憶部626へ記憶する鍵データは、本開示のPUF技術に基づき固有ID記憶部625にあるディジタルIDデータにより暗号化された暗号化秘密鍵や暗号化公開鍵として保存される。更に、その記憶には第1種データ記憶用メモリセルにより記憶されうる。ICカード602において、データの暗号化または復号化を行う場合、CPU621が、不揮発性メモリ装置630内の第1種データ記憶用メモリセル群96の一部である秘密鍵記憶部626に記憶された暗号化秘密鍵データを、図3の第1の閾値で読み出す特殊なリードコマンドにて読み出す。読み出された暗号化秘密鍵データは、本開示のディジタルIDデータにより復号化され元の秘密鍵データとする。CPU621は、秘密鍵データを、暗号化または復号化すべきデータとともに、暗号処理回路622に供給する。暗号処理回路622は、供給された秘密鍵を用いて、供給されたデータの暗号化または復号化を実行する。
データ記憶部627は、CPU621がプログラムを実行する上で必要なデータが記憶されている。データ記憶部627において、所定のデータが平文のまま記憶されていてもよいし、秘密鍵で暗号化されて記憶されていてもよいし、ディジタルIDデータを鍵として暗号化されて記憶されてもよい。なお、所定のデータは、初期状態のメモリセルを利用して記憶されていてもよいし、可変状態のメモリセルを利用して記憶されていてもよい。
このような暗号化と復号化の機能を備えたICカードシステムにおいて、ICカード602とリーダライタ601との通信の第1ステップについて以下に述べる。
ICカード602において各ICカード固有のディジタルIDデータは、本開示の実施の形態で説明したPUF技術に基づき固有ID記憶部625にデータ誤りを内在した状態で存在している。
CPU621は、各ICカード固有のディジタルIDデータを固有ID記憶部625から生成する。CPU621は、読み出した暗号化秘密鍵データとディジタルIDデータを鍵として暗号処理回路622に供給する。暗号処理回路622は供給されたディジタルIDデータを鍵として暗号化秘密鍵を元の秘密鍵に復号化する。そして、今度は元の秘密鍵を用いてディジタルIDデータを暗号化する。暗号化された暗号化ディジタルIDデータは入出力I/F部620、604を介して、リーダライタ側のCPU605に供給される。
CPU605は、リーダライタ601内の不揮発性メモリ装置615の秘密鍵記憶部608から、秘密鍵データを読み出す。CPU605は、秘密鍵データと、受信した暗号化ディジタルIDデータを、暗号処理回路606に供給する。暗号処理回路606は、供給された秘密鍵データを用いて、暗号化ディジタルIDデータを復号化する。復号化されたディジタルIDデータは全固有ID記憶部611が記憶している各IDデータと照合される。各IDデータの中に復号化されたIDデータと一致するものがあれば、通信したICカード602がデータ通信を行う資格のある正規のICカード602であると認証される。そして、その後のデータ通信が継続して実行される。
リーダライタ601とICカード602との相互認証において別の変形例を示す。
リーダライタ601の全ICカード固有ID記憶部640は、前述した中央値のオフセット量を変更して得られる複数のディジタルIDデータをICカードごとに保管している。リーダライタ601は、オフセット量と、受け取りたいディジタルIDデータのアドレス情報を暗号化し、チャレンジデータとして、ICカード602に送信する。ICカード602は受け取ったチャレンジデータを復号化してオフセット量とアドレス情報を得て、それに応じたディジタルIDデータを暗号化し、レスポンスデータとしてリーダライタ601に返信する。
リーダライタ601は受け取ったレスポンスデータを復号化して、ICカード602ごとに固有のディジタルIDデータを、予め全ICカード固有ID記憶部に登録されているIDデータと検索・照合を行い。所定のビット数以上が一致していることを確認してICカードを認証する。
レスポンスデータであるディジタルIDデータには、前述したような誤りデータを含んだ状態で送られるため、ハッキングに対して耐性が高い。ディジタルIDデータは、各ICで異なる乱数でありデータ間に十分なハミング距離があれば所定のビット数の誤りデータがあったとしても何れのICカードのIDデータかを特定することができる。このため、チャレンジデータの送信と、レスポンスデータの受信を繰り返すことで、ICカードが正規のカードであることを特定できる。さらに認証に用いられているデータがICカードごとに固有かつ誤りのあるデータであるためデータの解析が困難であり非常に高いセキュリティーが担保された認証が実現できる。
以上のように、通信システム600によれば、固有ディジタルIDデータ生成、秘密鍵記憶、データ記憶、プログラムデータ記憶の機能を、ただ一つの不揮発性メモリ装置で実現できる。別途PUF技術に基づくID生成用の回路を搭載する必要がなく、回路規模の増加を極力抑制したICカードのようなモバイル型アプリケーションが提供できる。
RAM603の機能を不揮発性メモリ装置615が備えるメモリセルアレイで実現してもよい。RAM623の機能を不揮発性メモリ装置630が備えるメモリセルアレイで実現してもよい。
情報の記憶手段として第1種データ記憶用メモリセルと第2種データ記憶用メモリセルとを任意に混在させて各種データを保存できるため、どのエリアのメモリセルが何れの状態で情報が記憶されているかを第三者に対し秘匿することができる。さらに、物理的なプローブを用いてメモリ内のデータを直接読み出すようなハッキングからもディジタルIDデータを防衛でき、極めて耐タンパ性の優れたアプリケーションが提供できる。
なお、ディジタルIDデータを暗号鍵として用いて暗号化されたデータ(暗号化データ)が、ICカード602に記憶されることは必須ではない。たとえば、リーダライタ601が暗号化データを読み取り、リーダライタ601のデータ記憶部609が暗号化データを記憶してもよい。さらにリーダライタ601が暗号化データを外部に設けられたサーバ(図示せず)に送信し、そのサーバの記憶装置が記憶してもよい。暗号化データがICカード602に記憶されていない場合には、復号化の手順は以下のとおりである。すなわち、ICカード602のCPU621は、入出力I/F部620を介して外部に記憶されている暗号化データを受信する。またCPU621は、各ICカード固有のディジタルIDデータを固有ID記憶部625から生成する。その後、暗号処理回路622が、ディジタルIDデータを復号鍵として用いて当該暗号化データを復号化する。