以下、添付の図面を参照しながら、本開示にかかる不揮発性メモリ装置等の実施形態を説明する。本開示にかかる不揮発性メモリ装置は少なくとも1つ以上の閾値で抵抗値を判別することによりデータを記憶する抵抗変化型の不揮発性メモリセルを複数有している。
不揮発性メモリ装置は、たとえば、個体識別情報を生成する機能を備えている。不揮発性メモリ装置では、生成した個体識別情報をもとに、データの暗号化・復号化が行われるとともに、相互間の認証も行われ得る。より具体的には、本開示にかかる不揮発性メモリ装置は、抵抗変化メモリ素子の内容を読み出し、少なくとも部分的にその内容からディジタル識別子を導出する個体識別情報用にチップごとにユニークな固有の乱数データを生成する機能を備えている。これにより、電気的、物理的な複製を妨げることが可能になる。
不揮発性メモリ装置は、たとえばモバイル型電子マネーで利用されるICチップを搭載したカードに搭載され得る。ICチップには、他に論理回路、揮発性メモリ装置、およびマイクロプロセッサーを具備する。これらを用いて暗号化機能、ディジタル署名、およびディジタル認証機能などの各種情報セキュリティー機能を実現する。これらの機能が実行されるときには秘密鍵によるデータ暗号が用いられる。集積回路(IC)カード内においても前述したように秘密鍵を複製できないように安全に保管することが望ましい。
(発明者らによる検討)
上述の秘密鍵の保管を実現するために前述のPUF技術が用いられる。PUF技術で得られた個体識別情報である乱数のディジタルIDデータをデバイス暗号鍵として、秘密鍵を暗号化して不揮発性メモリに保存する。ディジタルIDデータは、各ICで異なる乱数であるため、それを用いて暗号化されたデータも各ICで固有のデータ列となる。暗号化された秘密鍵がハッキングなどにより別のICにコピーされたとしても複製できないディジタルIDデータがコピーされないので、もとの秘密鍵を不正利用されることがない。
しかしながら、ICカードのような超小型機器には、PUF技術を具現化したディジタルIDデータ生成のための回路も高度に小型化することが要求される。特にPUF技術にもとづくディジタルIDデータはデータに誤りを含んでいるため誤り訂正回路が必要となり、誤り量が多いと回路規模もそれにともなって大きくなる。すなわち、データ誤り率が低くかつ安定化して極力必要な誤り訂正能力を低減して回路規模の削減が求められる。更に、バッテリーが非搭載の一般的なICカードでは、通信時に得られるワイヤレス給電による電力で短時間のうちに各種機能を実行する必要がある。つまり、ディジタルIDデータの生成においても超低消費電力化と生成速度の高速化が同時に求められる。そこで本願発明者らは、かかる要求に応えられるようなディジタルIDデータの生成器として、いくつかの先行技術を検討した。
非特許文献2では、先行例である各種PUF技術のベンチマークがなされている。特にディジタルIDデータの誤り率に着目すると、SRAM PUFおよびグリッジPUFは環境変化も考慮すると最悪15%のデータ誤り率まで悪化するとされている。製造上の歩留まりを考えると20%以上のデータ誤りを許容する誤り訂正回路が必要であり回路規模がICにとって足かせとなってしまう。また、SRAM PUFの場合の最新の研究では非特許文献1のように極めて低誤りのセルが報告されているが、そのときのメモリセルのサイズは22nmプロセスを用いているにもかかわらず4.66μm2と極めて大きい。さらに特別なPUF用のSRAMセルを設けた場合、素子の特定が容易で耐タンパ性の問題となる。
本願発明者らは、PUF技術の特徴を以下のように整理した。PUF技術の特徴は、主に次の3点にまとめられると考えられる。
特徴(1):複製できない物理的な現象から固有のディジタルIDデータ(個体識別情報)を得る。
特徴(2):物理的な現象は動的な回路制御によってのみ得られ、プローブによる直接的な読み取りといった静的な解析によっては必要とされる物理的な現象を得ることはできない。
特徴(3):得られたディジタルIDデータには誤りがあり、誤り訂正回路によってのみ真のIDデータが得られる。
さらに本願発明者らは、PUF技術によって得られるディジタルIDデータに求められる主な性能を以下のようにまとめた。
性能(1):ディジタルIDデータに含まれる誤り箇所はランダムに変化し、真のIDデータの予測が困難である。
性能(2):PUF技術によって得られるディジタルIDデータは高い乱数性がありICごとにユニークな固有データとなる。
性能(3):PUF技術を採用するとしても、そのために付加すべき回路のオーバーヘッドが小さく、ディジタルIDデータを生成する際の消費電力が小さい。
性能(4):各データビットを生成する生成回路の並列処理数を多くすることで、サイドチャンネル攻撃への耐性がある。
性能(5):データの誤り率が小さく、誤り訂正回路の回路規模を小さくできる。
性能(6):ディジタルIDデータを生成するタイミングに制約が少なく生成速度が高速である。
上述の特徴及び性能に対し、従来例として知られているSRAM−PUFでは、性能(6)に大きな制約がある。SRAM−PUFは原理上、電源の投入時にしか得られない。IC内部のSRAMは、データキャッシュとして利用するため、PUFによるIDデータ生成ときには一旦SRAM内のデータを退避するか、破棄しなければならずシステム動作上に大きな制約が発生する。また、この対策として任意のタイミングで生成するようにするためには非特許文献1のようにPUF専用のセルを別途設ける必要があり回路のオーバーヘッドが増加するような性能(5)の要件を著しく低下させる。
更にSRAMを用いたPUFの場合、データ誤りを起こすセルは同一となる傾向がある。つまり、動作が安定なセルと不安定なセルが決まっているため誤りを含んだディジタルIDデータのパターンが限られる問題があり、真のディジタルIDデータが予測しやすいという課題がある。また、アービターPUFでは、生成タイミングの制約、回路規模、および生成速度などの課題はクリアしているものの、配線遅延およびゲート遅延などのばらつきが大きくないことから、IDデータのユニーク性が乏しい。また、非特許文献2において指摘されているように、データ誤り率も15%と非常に大きいため誤り訂正回路の規模増加が大きな課題となる。
(発明者らが得た知見)
本願発明者らは、以上のような課題を解決できる可能性のある新規なディジタルIDデータ生成方法を鋭意検討した。その結果、本願発明者らは、抵抗変化素子の書き込まれた抵抗値が正規分布にばらつく現象を見出し、抵抗値のばらつきから安定的なディジタルIDデータを生成することに想到した。
本開示の限定的ではない例示的な実施形態は、セキュリティー性において、より優れたディジタルIDデータを生成するためのPUF技術を提供する。
抵抗変化型のメモリ素子は、少なくとも第1の抵抗値状態と、第1の抵抗値状態よりも抵抗値の小さい第2の抵抗値状態とを所定の電圧・極性・幅の電気的なパルス印加により変化する。通常は第1の抵抗値状態と第2の抵抗値状態とにディジタルデータ(たとえば「0」と「1」)を割り当て、情報として保存する。
ここで本願発明者らは、上述の第1の抵抗値状態、第2の抵抗値状態、更に後述する初期状態の何れか1つの状態に属するセル群に着目し、そのセル群に含まれる各セルをその抵抗値に応じて2つに分類した。つまり、そのセル群に含まれる各セルを2値化(ディジタルデータ化)した。各セルの抵抗値はばらついており、そのばらつきを利用して各セルをディジタルデータに変換することで、より安全で安定な暗号技術等に応用可能な、従来にないディジタルIDデータの生成方法を提供することが可能となった。これが本願発明者らによって得られた知見の一つである。
また、ディジタルIDデータの生成を行う多くの回路要素を、通常の不揮発性メモリ装置として搭載される回路と共通化することが可能となる。そのため、ディジタルIDデータの生成のために増加する回路規模を大きく抑制することができ高度に小型化し得る。
さらに、不揮発性メモリ装置のデータ読み出しはメモリアレイの構造上、データを並列処理で複数読み出すため、ディジタルIDデータの生成スピードも飛躍的に高められる。同時に、サイドチャンネル攻撃においても並列処理により輻射電磁波が並列数の総和で与えられるため攻撃に対する耐性を高められ得る。
本願発明者らによる知見に基づいて、本開示の一態様の概要は以下のとおりである。
(項目1)本開示の一態様である不揮発性メモリ装置は、可変状態では、異なる複数の電気的信号の印加に応じて抵抗値が複数の抵抗値範囲の間を不揮発的かつ可逆的に遷移する性質を有する複数のメモリセルがアレイ状に配置されたメモリセルアレイと、各々が前記複数のメモリセルの1つの前記抵抗値に関する複数の抵抗値情報を取得する読み出し回路と、前記複数の抵抗値情報の少なくとも一部に基づいて2値化基準値を算出する演算回路と、書き込み回路と、を備え、前記読み出し回路は、前記2値化基準値に基づいて、前記複数の抵抗値情報の各々に対して2つの値から選択的に1つの値を割り当てることにより複数のディジタルデータを生成し、前記書き込み回路は、前記複数のメモリセルのうち、前記2つの値のうちいずれか一方の値に対応するメモリセルに対して第1の書き込み動作を行う。
(項目2)例えば上述の項目1に記載の不揮発性メモリ装置において、前記複数の抵抗値範囲は、第1抵抗値範囲、および前記第1抵抗値範囲より抵抗値が低い第2抵抗値範囲を含み、前記複数のメモリセルの各々は、初期状態では、前記抵抗値が前記第1および第2抵抗値範囲のいずれとも異なる初期抵抗値範囲にあり、前記複数のメモリセルの各々は、電気的ストレスが印加されることにより、前記初期状態から前記可変状態に変化し、前記複数のメモリセルの各々は、前記可変状態では、第1極性の電圧パルスが印加されることによって、前記抵抗値が前記第2抵抗値範囲から前記第1抵抗値範囲に遷移し、第2極性の電圧パルスが印加されることによって、前記抵抗値が前記第1抵抗値範囲から前記第2抵抗値範囲に遷移し、前記書き込み回路は、前記第1の書き込み動作において、前記複数のメモリセルのうち、前記2つの値のうちいずれか一方の値に対応するメモリセルに対して、前記第1極性の第1電圧パルスと前記第2極性の第2電圧パルスとを交互に印加してもよい。
(項目3)例えば上述の項目2に記載の不揮発性メモリ装置において、前記複数のディジタルデータに対応したメモリセルの半数以上の抵抗値は、前記第2抵抗値範囲にあってもよい。
(項目4)例えば上述の項目1から3のいずれかに記載の不揮発性メモリ装置において、前記演算回路は、前記読み出し回路によって取得された、前記複数の抵抗値情報の中央値を前記2値化基準値として算出してもよい。
(項目5)例えば上述の項目4に記載の不揮発性メモリ装置において、前記書き込み回路は、前記複数のメモリセルのうち、前記中央値よりも低抵抗なメモリセルに対して前記第1の書き込み動作を行ってもよい。
(項目6)例えば上述の項目2に記載の不揮発性メモリ装置において、前記書き込み回路は、前記初期状態にある前記複数のメモリセルの各々に対して、前記第1極性の第3電圧パルスと前記第2極性の第4電圧パルスとを交互に印加する第2の書き込み動作を行い、前記読み出し回路は、前記第2の書き込み動作を行った前記複数のメモリセルの各々の前記抵抗値情報を読み出し、読み出した前記抵抗値情報に基づき、前記第2の書き込み動作を行った前記複数のメモリセルの各々の前記抵抗値が前記第2抵抗値範囲にあるか否かを判定し、前記書き込み回路および前記読み出し回路は、前記第2の書き込み動作を行った前記複数のメモリセルの各々の前記抵抗値が前記第2抵抗値範囲にあると判定されるまで、前記第2の書き込み動作および前記抵抗値情報の読み出しを繰り返してもよい。
(項目7)例えば上述の項目1から6のいずれかに記載の不揮発性メモリ装置において、前記読み出し回路は、前記読み出し回路によって取得された前記複数の抵抗値情報と前記2値化基準値とを比較し、比較した結果に応じて0または1の2値データを出力する比較回路を備えてもよい。
(項目8)例えば上述の項目1から7のいずれかに記載の不揮発性メモリ装置において、前記読み出し回路により生成された複数のディジタルデータに基づいて、前記複数のメモリセルのうち前記第1の書き込み動作を実行するメモリセルと、前記複数のメモリセルのうち前記第1の書き込み動作を実行しないメモリセルとの区別に用いるマスクデータを生成する生成回路をさらに備えてもよい。
(項目9)例えば上述の項目8に記載の不揮発性メモリ装置において、前記書き込み回路は、前記マスクデータに基づいて、前記第1の書き込み動作を実行するメモリセルに対して前記第1の書き込み動作を行ってもよい。
(項目10)例えば上述の項目1から9のいずれかに記載の不揮発性メモリ装置において、制御回路をさらに備え、前記第1の書き込み動作は、前記複数のメモリセルのうち、前記2つの値のうちいずれか一方の値に対応するメモリセルに対して電圧パルスを印加する動作であり、前記制御回路は、前記第1の書き込み動作における、前記電圧パルスを印加する回数、前記電圧パルスの電圧、前記電圧パルスのパルス幅のうちの少なくとも1つを変更してもよい。
(項目11)例えば上述の項目10に記載の不揮発性メモリ装置において、前記複数のメモリセルは第1および第2のグループに分類され、前記複数のメモリセルのうち、前記第1のグループに属するメモリセルと前記第2のグループに属するメモリセルとに対して、前記第1の書き込み動作における、前記電圧パルスを印加する回数、前記電圧パルスの電圧、前記電圧パルスのパルス幅のうちの前記少なくとも1つが互いに異なっていてもよい。
(項目12)例えば上述の項目1から9のいずれかに記載の不揮発性メモリ装置において、制御回路をさらに備え、前記制御回路はコントロール信号の入力を受け付け、前記読み出し回路は、前記制御回路に入力された前記コントロール信号に基づき、前記複数の抵抗値情報を取得してもよい。
(項目13)本開示の一態様である集積回路カードは、上述の項目1から12のいずれかに記載の不揮発性メモリ装置と、前記不揮発性メモリ装置の動作を制御する信号が入力され、前記複数のディジタルデータに関連する情報が出力される入出力インタフェース部とを備える。なお、ここで、複数のディジタルデータに関連する情報とは、複数のディジタルデータそのものを含むものとする。
本開示において、ユニット、デバイスの全部又は一部、又は図1、18、21、22、24、25、27および39に示されるブロック図の機能ブロックの全部又は一部は、半導体装置、半導体集積回路(IC)、又はLSI(large scale integration)を含む一つ又は一つ以上の電子回路によって実行されてもよい。LSI又はICは、一つのチップに集積されてもよいし、複数のチップを組み合わせて構成されてもよい。例えば、記憶素子以外の機能ブロックは、一つのチップに集積されてもよい。ここでは、LSIまたはICと呼んでいるが、集積の度合いによって呼び方が変わり、システムLSI、VLSI(very large scale integration)、若しくはULSI(ultra large scale integration)と呼ばれるかもしれない。LSIの製造後にプログラムされる、Field Programmable Gate Array (FPGA)、又はLSI内部の接合関係の再構成又はLSI内部の回路区画のセットアップができるreconfigurable logic deviceも同じ目的で使うことができる。
さらに、ユニット、装置、又は装置の一部の、全部又は一部の機能又は操作は、ソフトウエア処理によって実行することが可能である。この場合、ソフトウエアは一つ又は一つ以上のROM、光学ディスク、ハードディスクドライブ、などの非一時的記録媒体に記録され、ソフトウエアが、処理装置(processor)によって実行された場合に、ソフトウエアは、ソフトウエア内の特定の機能を、処理装置(processor)と周辺のデバイスに実行させる。システム又は装置は、ソフトウエアが記録されている一つ又は一つ以上の非一時的記録媒体、処理装置(processor)、及び必要とされるハードウエアデバイス、例えばインターフェース、を備えていても良い。
以下、添付図面を参照しながら、これらの知見に基づく本開示の詳細を説明する。
以下で説明する実施形態は、いずれも一具体例を示すものである。以下の実施形態で示される数値、形状、材料、構成要素、構成要素の配置位置および接続形態、ステップ、ステップの順序などは、あくまで一例であり、本開示を限定するものではない。以下の実施形態における構成要素のうち、本開示の最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。また、図面において、同じ符号が付いたものは、説明を省略する場合がある。また、図面は理解しやすくするために、それぞれの構成要素を模式的に示したもので、形状および寸法比等については正確な表示ではない場合がある。また、製造方法においては、必要に応じて、各工程の順序等を変更でき、かつ、他の公知の工程を追加できる。
(実施の形態1)
(本開示で用いる抵抗変化型不揮発性メモリ装置の概要)
図1は、第1実施形態にかかる抵抗変化型不揮発性メモリ装置100の概略構成の一例を示すブロック図である。また、図2は、第1実施形態にかかる抵抗変化型不揮発性メモリ装置100が備えるメモリセルの概略構成の一例を示す断面図である。
図1に示す例では、本実施形態の抵抗変化型不揮発性メモリ装置100は、少なくともメモリセルアレイ90と、制御装置93とを備えている。なお、制御装置は必ずしも抵抗変化型不揮発性メモリ装置の一部である必要はなく、装置外に接続された制御装置を用いて、以下に説明する動作が行われてもよい。
メモリセルアレイ90は、複数のメモリセル91がアレイ状に配置された構成を有する。
制御装置93は、抵抗値が同一の抵抗値状態にあるメモリセル91群から複数の抵抗値情報を取得し、抵抗値情報のばらつきの中央値を検出する。検出された中央値に基づき、同一の抵抗値状態にあるメモリセル群の各メモリセルに更に0または1のディジタルデータのいずれの値を割り当てるかを判定し、ディジタルIDデータを生成する。同一の抵抗値状態とは、ディジタル情報の1状態を割り当てるために用いる1つの抵抗値範囲のことをいう。
一般に、不揮発性メモリ装置において、メモリセルがもつ物理量に、例えばディジタル量の最小単位である2値情報を割り当てるとき、その物理量が、所定の閾値以上のある範囲に属するか、または所定の閾値未満のある範囲に属するかによって、2値情報のいずれを割り当てるかを変える。近年の不揮発性メモリ装置には誤り訂正回路が具備される。誤り訂正回路の誤り訂正処理によれば、一部のメモリセルの物理量が2値情報を割り当てるために予め想定された範囲に入らない場合であっても、その物理量から得られる2値情報は正しく復元される。これは、ディジタルIDデータをなすメモリセル群のうちの一部が同一の抵抗値範囲になくても良いことを意味する。本明細書の定義として、ディジタルIDデータをなすメモリセル群の少なくとも半数より多いメモリセルが同一の抵抗値状態にあれば、本開示における諸機能を達成できるものとする。
抵抗変化型不揮発性メモリ装置100の個体識別情報として利用されるディジタルIDデータを生成する際には、各抵抗値が、同一の抵抗値範囲に属している複数の不揮発性メモリセルを利用する。当該複数の不揮発性メモリセルにはユーザデータは書き込まれない。つまり、抵抗値の書換えは行われない。各不揮発性メモリセルの抵抗値は、予め定められた抵抗値範囲に固定化されている。各抵抗値は同一の抵抗値範囲内でばらついており、そのばらつきが、抵抗変化型不揮発性メモリ装置100の固有の情報になる。「抵抗値範囲」の詳細は、後述する図3を参照しながら詳細に説明する。
「抵抗値情報」とは、抵抗値と相関関係を有する情報であり、抵抗値そのものであってもよいし、抵抗値に応じて増減する値であってもよい。抵抗値に応じて増減する値としては、例えば後述するような、メモリセルに並列に接続されたコンデンサに蓄積された電荷が選択されたメモリセルを介して放電される放電時間、または逆にディスチャージされたコンデンサに所定の定電流を流し所定のレベルまでチャージされる充電時間でもよい。該放電時間または充電時間は、所定のクロック周期でカウントされたカウント値等であってもよい。なお、コンデンサは素子であることには限定されず、例えば配線などの寄生容量でもよい。
抵抗値情報は、所定の分解能のセンスアンプによって測定された値であってもよい。あるいは、抵抗値情報は、センスアンプによって測定された値が、閾値によって区分けされた複数の抵抗値範囲のいずれに該当するかを判定することによって得られた値であってもよい。その場合、複数の抵抗値範囲のそれぞれは、一部の抵抗値範囲が、さらに細かく区分けされたものであってもよい。
図2に示す例では、メモリセル91が備える抵抗変化素子120が、下地層122と、第1電極124と、抵抗変化層126と、第2電極128とを備えている。それぞれのメモリセルには、特定のメモリセルを選択するためのトランジスタまたはダイオードなどの選択素子が接続されてもよいが、図2においては図示せずに省略した。
メモリセル91は、異なる複数の電気的信号が印加されることによって、抵抗値が複数の可変抵抗値範囲の間を可逆的に遷移する可変状態を取りうる性質を有する。
図3は、第1実施形態にかかる抵抗変化型不揮発性メモリ装置が備えるメモリセルの抵抗値範囲の一例を示すグラフである。図3に例示するように、メモリセル91は、少なくとも可変状態と初期状態の2つの状態を備えてもよい。
「初期状態」とは、抵抗値が可変抵抗値範囲のいずれとも重複しない初期抵抗値範囲にある状態をいう。初期状態にあるメモリセルは、フォーミングが行われない限り可変状態とならない。「フォーミング」とは、所定の電気的ストレスをメモリセルに印加して、メモリセルの抵抗値が複数の可変抵抗値範囲の間を可逆的に遷移する状態へと、メモリセルを変化させることをいう。
フォーミングのために印加される電気的ストレス(フォーミングストレス)は、例えば、所定の電圧と時間幅を有する電気的パルスである場合もあるし、複数の電気的パルスを組み合わせたものである場合もある。フォーミングストレスは累積的なストレスであってもよい。その場合、ストレスの累積量が所定量を超えたときに、メモリセル91(図1)は初期状態から可変状態に遷移する。
本実施の形態では、メモリセル91は、製造後、フォーミングをしなければ抵抗値が複数の可変抵抗値範囲の間を可逆的に遷移する状態とならないような性質を有しているとする。つまり、半導体プロセス等により製造した後、フォーミングストレスが印加される前の抵抗変化素子は、初期状態にあるとして説明する。
しかしながら、この性質は一例であり必須ではない。メモリセル91は、初期状態を取りうる素子でなくてもよく、たとえば、可変状態のみを有する、いわゆるフォーミングレスの素子であってもよい。
[抵抗変化素子の構成]
図2に示す例において、抵抗変化素子120は、第1電極124と第2電極128との間に抵抗変化層126が介在する構成を有する。抵抗変化層126は、例えば金属酸化物、より詳細には例えば遷移金属酸化物で構成することができる。可変状態にあるメモリセル91の抵抗変化素子120は、第1電極124と第2電極128との間に電気的信号が印加されることによって、第1電極124と第2電極128との間の抵抗値が複数の可変抵抗値範囲の間を可逆的に遷移する性質を有する。
初期状態にあるメモリセル91の抵抗変化素子120の抵抗変化層126は、第1電極124と第2電極128との間を絶縁していてもよい。絶縁とは、具体的には2MΩ以上とすることができる。抵抗変化素子120の抵抗変化層126は、絶縁体から構成された層を備えていてもよい。絶縁体とは、具体的には抵抗率が30Ω・m以上の材料とすることができる。抵抗変化素子120の抵抗変化層126が絶縁体から構成されることにより、初期状態のメモリセルの抵抗特性を安定して維持することができる。
電気的信号の印加によって抵抗値が変化する可変状態の抵抗変化素子と異なり、初期抵抗値範囲は、抵抗変化素子の材料、大きさ、形状、及び製造条件等によってある程度調整することができる。例えば、特に抵抗変化層126が積層構造である場合、酸素濃度の高い層の厚み、形成時の酸素濃度によって任意に調整可能であるが、個別のメモリセルごとには調整できない。
上記のような初期状態は、電気的信号の印加によって抵抗値が遷移する可変状態に比べて、安定している。そのため、初期状態と可変状態との差異を利用して、データを安定して保持することができる。
初期抵抗値範囲は、例えば、初期状態にある素子に、可変状態にある素子の抵抗値を複数の可変抵抗値範囲の間で変化させる電気的信号およびフォーミングストレスのいずれよりも小さな電圧を素子に印加して読み出したときに得られる抵抗値の範囲としうる。
なお、フォーミングストレスは、メモリセル91に印加する電圧振幅の量、パルスの幅、および累積印加時間等で決定され、それぞれの値はメモリセルアレイ90内のメモリセル91毎に異なりうる。なお、累積印加時間とは、例えば、抵抗状態が初期状態から可変状態に変化するまでに印加される電気的パルスのパルス幅の合計を意味する。このためフォーミングストレスとして最低限必要となる電気的ストレスを規定するパラメータの具体的な値は、対象となるメモリセル91毎に素子が可変状態へと変化するまでに印加された電気的ストレスの電圧、パルス幅、および累積印加時間等の値であって、絶対的な固定値ではなく所定のばらつきをもつ値である。そして、このような素子ごとのフォーミングにおける電気的ストレスのばらつきは、その後の可変抵抗値範囲にある各セルの抵抗値のばらつきの要因となると推察され、素子ごとに人為的に制御することが困難である。
なお、フォーミングストレスは、可変状態にあるメモリセルの抵抗値を複数の可変抵抗値範囲の間で可逆的に変化させるために印加される電気的信号よりも強いのが一般的である。具体的には、フォーミングストレスは、電圧の絶対値、パルス幅、および累積印加時間の少なくともいずれかにおいて、可変状態にあるメモリセルの抵抗値を変化させるために印加される電気的信号よりも大きいものとしうる。
可変状態において、電圧およびパルス幅等は異なるが同極性の電気的信号を印加することにより抵抗値が変化するものをユニポーラ型抵抗変化素子とよぶ。より具体的には、例えば、第2電極128から第1電極124に電流が流れる向きに+2Vで1μSecの幅の電気的信号(電気的パルス)を印加すると抵抗変化素子の抵抗値が所定の高抵抗レベル(第1抵抗値範囲:HRレベルともいう)に変化し、同様に第2電極128から第1電極124に電流が流れる向きに+4Vで50nSecの幅の電気的信号を印加すると抵抗変化素子の抵抗値が所定の低抵抗レベル(第2抵抗値範囲:LRレベルともいう)に変化する。このような、同極性の電気的信号を印加することにより抵抗値が可逆的に変化するものを、ユニポーラ型抵抗変化素子という。
一方、可変状態において、異なる極性の電気的信号を印加することで抵抗値が変化するものをバイポーラ型抵抗変化素子とよぶ。より具体的には第2電極128から第1電極124に電流が流れる向きに+2Vで50nSecの幅の電気的信号を印加すると抵抗変化素子の抵抗値が所定の高抵抗レベル(第1抵抗値範囲:HRレベルともいう)に変化し、逆に第1電極124から第2電極128に電流が流れる向きに+2Vで50nSecの幅の電気的信号を印加すると抵抗変化素子の抵抗値が所定の低抵抗レベル(第2抵抗値範囲:LRレベルともいう)に変化する。このような、逆極性の電気的信号を印加することにより抵抗値が可逆的に変化するものを、バイポーラ型抵抗変化素子という。
当然であるが、バイポーラ型抵抗変化素子において、例えば動作を安定にするために、極性のみならず、HRレベルに変化させる場合(高抵抗化ともいう)に印加する電気的信号と、LRレベルに変化させる場合(低抵抗化ともいう)に印加する電気的信号とで、パルス幅または電圧の絶対値を異ならせてもよい。
抵抗変化層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を配線の一部に適用するなど、半導体プロセスにあわせ適宜、最適な形状にされうる。下地層122も同様に半導体プロセスに応じて適宜に省略または変更されうる。
抵抗変化層126は、第1電極124に接続する第1抵抗変化層と、第2電極128に接続する第2抵抗変化層の少なくとも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)等を用いることができる。遷移金属は複数の酸化状態をとることができるため、異なる抵抗状態を酸化還元反応により実現することが可能である。
例えば、ハフニウム酸化物を用いる場合、第1金属酸化物の組成をHfOxとした場合
にxが0.9以上1.6以下であり、かつ、第2金属酸化物の組成をHfOyとした場合
にyがxの値よりも大である場合に、抵抗変化層の抵抗値を安定して高速に変化させることができる。この場合、第2金属酸化物の膜厚は、3〜4nmとしてもよい。
また、ジルコニウム酸化物を用いる場合、第1金属酸化物の組成をZrOxとした場合
にxが0.9以上1.4以下であり、かつ、第2金属酸化物の組成をZrOyとした場合
にyがxの値よりも大である場合に、抵抗変化層の抵抗値を安定して高速に変化させることができる。この場合、第2金属酸化物の膜厚は、1〜5nmとしてもよい。
第1金属酸化物を構成する第1金属と、第2金属酸化物を構成する第2金属とは、異なる金属を用いてもよい。この場合、第2金属酸化物は、第1金属酸化物よりも酸素不足度が小さい、つまり抵抗が高くてもよい。このような構成とすることにより、抵抗変化時に第1電極124と第2電極128との間に印加された電圧は、第2金属酸化物に、より多くの電圧が分配され、第2金属酸化物中で発生する酸化還元反応をより起こしやすくすることができる。
また、第1抵抗変化層となる第1金属酸化物を構成する第1金属と、第2抵抗変化層となる第2金属酸化物を構成する第2金属とを、互いに異なる材料を用いる場合、第2金属の標準電極電位は、第1金属の標準電極電位より低くてもよい。標準電極電位は、その値が高いほど酸化しにくい特性を表す。これにより、標準電極電位が相対的に低い第2金属酸化物において、酸化還元反応が起こりやすくなる。なお、抵抗変化現象は、抵抗が高い第2金属酸化物中に形成された微小な局所領域中で酸化還元反応が起こってフィラメント(導電パス)が変化することにより、その抵抗値(酸素不足度)が変化することにより発現すると考えられる。
例えば、第1金属酸化物に酸素不足型のタンタル酸化物(TaOx)を用い、第2金属
酸化物にチタン酸化物(TiO2)を用いることにより、安定した抵抗変化動作が得られ
る。チタン(標準電極電位=−1.63eV)はタンタル(標準電極電位=−0.6eV)より標準電極電位が低い材料である。このように、第2金属酸化物に第1金属酸化物より標準電極電位が低い金属の酸化物を用いることにより、第2金属酸化物中でより酸化還元反応が発生しやすくなる。その他の組み合わせとして、高抵抗層となる第2金属酸化物にアルミニウム酸化物(Al2O3)を用いることができる。例えば、第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金属酸化物を構成する金属および第1電極124を構成する材料と比べて標準電極電位が高い材料で構成する。また、酸素不足度がより高い第1金属酸化物に接続されている第1電極124は、例えば、タングステン(W)、ニッケル(Ni)、タンタル(Ta)、チタン(Ti)、アルミニウム(Al)、窒化タンタル(TaN)、窒化チタン(TiN)など、第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抵抗変化層とが積層された積層構造を少なくとも有している。他の層、例えばタンタル酸化物以外の金属酸化物で構成される第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側に電流を流す向きの電圧印加で高抵抗化し、逆向きに電流を流す向きの電圧印加で低抵抗化する。当然ながら第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に接している。TaOxは、0.8≦x≦1.9
を満足し、TaOyは、2.1≦y≦2.5を満足するように製造されている。第2タン
タル含有層の厚みは、8nm以下であり、抵抗変化層126全体の厚みは50nm以下である。各電極への接触面積は図3の測定に用いた抵抗変化素子と等しい。
図4の横軸は印加する電気的信号の電圧を示し、縦軸に電気的信号を印加した後の抵抗変化素子の抵抗値(抵抗値は読み出し電圧VRを印加したときの電流から算出)を示している。図中のスタートの位置から、正極性側に電圧レベルを徐々にあげて行くと、印加電圧が+1.1Vを超えたときから徐々に抵抗値が上昇し、印加電圧が+2.0Vでは約100kΩに達している。逆に負極性側に電圧レベルを徐々に下げて行き、−1.1Vを超えると約10kΩ程度に低抵抗化して、スタートの抵抗値に戻っていることがわかる。このとき抵抗変化層126は、第2抵抗変化層を第2電極128側に、第1抵抗変化層を第1電極124側に配置している。第2電極128から第1電極124に電流が流れるような電気的信号の印加を正極性印加と定義する。正極性印加では、抵抗変化素子120はHRレベルに変化する。また、逆向きに電流が流れる印加を負極性印加と定義する。負極性印加では、抵抗変化素子120はLRレベルに変化する。LRからHRに変化せしめる電圧レベルを高抵抗化電圧(VH)とし、HRからLRに変化せしめる電圧レベルを低抵抗化電圧(VL)とすると、図4の場合では、その絶対値が|VH|=|VL|=2.0V程度あれば、共通の電源電圧を用いて十分に低抵抗状態と高抵抗状態を可逆的に推移できることがわかる。
図5は、IEDM Technical Digest. 13−15 Dec. 2004,p.587に開示されている、可変状態にあるユニポーラ型抵抗変化素子の特性の一例を示す模式図である。当該論文に示される通り、NiO、TiO2、HfO2、ZrO2から構成された抵抗変化層を有する抵抗変化素子がユニポーラ特性を示すこと、及
び、それらの遷移金属酸化物から構成された抵抗変化層が、製造直後には絶縁体であって、かつフォーミングストレスを与えるプロセスによって導電パスが形成されて可変状態に遷移することが知られている。
抵抗変化層の材料と電極の組合せ、および抵抗変化層の材料にドープする不純物の材料等によっては、正電圧側でも負電圧側でも対称的にユニポーラ型で抵抗変化する素子が得られる。図5は、かかる素子の特性を例示する。
図に示す例では、バイアス電圧の絶対値が0.5Vを超えると素子がリセット状態、つまりHRレベルへと推移し、バイアス電圧の絶対値1.0Vを超えると素子がセット状態、つまりLRレベルへと推移する。かかる素子では、同じ極性で電圧の異なる電気的信号を印加することで、2個の抵抗状態の間を可逆的に遷移させることが可能である。しかし、図5のような特性のユニポーラ型抵抗変化素子であれば、+0.5V以上+1V未満の正極性の電気的信号を印加することで高抵抗化させ、−1V以下(絶対値が1V以上)の負極性の電気的信号を印加することで低抵抗化させるように制御すれば、バイポーラ型抵抗変化素子として利用することもできる。本実施形態では、バイポーラ型もユニポーラ型も、いずれのタイプでも使用可能である。
抵抗変化素子は、印加する電気的信号の電圧(絶対値)、幅、および回数等の組合せにより、抵抗値が3以上の可変抵抗値範囲の間を可逆的に遷移する多値メモリとして利用されてもよい。例えば、抵抗変化層としてタンタル酸化物を用いた素子は、良好な特性を示し、多値メモリへ応用されうる。
このような抵抗変化素子(ReRAM素子)の抵抗変化は、第2電極128と第1電極124とを電気的に接続する導電性パスが抵抗変化層126内に発生することによって発生することを断面解析によって観察した。このとき導電性パスは直径30〜10nm以下であり、最先端の微細な半導体プロセスで作製される配線幅より更に小さいことを見出した。すなわち上記で説明した抵抗変化素子の特性は、リソグラフィーによる加工の限界とされる超微細半導体プロセスで製造されても同様な安定した抵抗変化の特性を維持できる。
また、抵抗変化素子(ReRAM素子)の抵抗変化層を形成するプロセスには数百℃を超えるような高温処理が必要ない。このため、加熱プロセスによってC−MOSトランジスタへの特性を劣化させることがない。すなわち抵抗変化素子は、フラッシュメモリなどのフローティングゲート型トランジスタを用いるメモリ素子に比べ半導体プロセスとの親和性が非常に優れ、製造プロセスの微細化が進んでも抵抗変化の信頼性が低下することがない特徴を有している。そのため、例えば、コントローラ等のロジック回路と抵抗変化素子とが同一チップ上に形成される場合であっても、ロジック回路の特性への影響を抑えつつ抵抗変化素子を形成することができる。また、ロジック回路とプロセスを共通化することにより、製造コストを低減することができる。
可変状態とは、異なる複数の電気的信号が印加されることによって、抵抗値が複数の可変抵抗値範囲の間を可逆的に遷移できる状態をいう。
メモリセルアレイ90が備える複数のメモリセル91は、可変状態のメモリセルと、初期状態のメモリセルと、を含んでもよい。メモリセルアレイ90では、各メモリセル91が初期状態にあるか可変状態にあるかの違いを利用してデータが記録されていてもよい。
メモリセルアレイ90では、後述する第1種データ、第2種データおよび第3種データの何れかを利用してデータが各メモリセル91に記録されうる。メモリセルアレイ90は、第3種データが記録されたメモリセル91と、第1種データおよび第2種データの何れか、または両方が記録されたメモリセル91を含んでいてもよい。
製造直後のメモリセル91の抵抗値が、初期抵抗値範囲に入る一方で可変抵抗値範囲に入ることがないように、初期抵抗値範囲および可変抵抗値範囲は設定されうる。可変状態に変化した後のメモリセル91の抵抗値が、可変抵抗値範囲に入る一方で初期抵抗値範囲には入ることがないように、初期抵抗値範囲および可変抵抗値範囲は設定されうる。抵抗変化素子の不揮発性記憶素子を備えるメモリセルが、かかる特性を備え得ることは周知である。公知の様々な材料を用いて、かかる特性を備えるメモリセル91を製造することができる。
初期状態のメモリセル91は、可変状態に変化させるような電気的ストレスであるフォーミングストレスではない何らかの電気的ストレスを受けた状態を含む。初期状態のメモリセル91は、製造直後の抵抗値から、フォーミングストレスではない何等かの電気的ストレスを受ける等して抵抗値が、初期抵抗値範囲内で変化した状態を含む。
制御装置93は、選択されたメモリセル91が初期状態にあるか可変状態にあるかを判定することによって記録されたデータを読み出すことができるように構成されていてもよい。
図3に示した例における素子の構成は、第1電極124の材料がTaN(窒化タンタル)、第2電極128の材料がIr(イリジウム)、抵抗変化層126の材料がタンタル酸化物、抵抗変化層126全体の厚さが50nm以下で、酸素濃度の異なる2層の積層構造を有する。第1電極124に接する層が酸素濃度の低い層であって、組成をTaOxとす
ると0<x<2.5である。第2電極128に接する層が酸素濃度の高い層であって、組成をTaOyとするとy≧2.1であり、厚さが5.5nm程度である。第1電極124
と抵抗変化層126との接触面および第2電極128と抵抗変化層126との接触面の面積が0.25μm2以下である。
次に、メモリセルの状態の変化を具体的に説明する。以下では「HR状態」および「LR状態」という語を用いる。「HR状態」とは、HRパルス(高抵抗化パルス)を印加されたメモリセルの状態をいう。「LR状態」とは、LRパルス(低抵抗化パルス)を印加されたメモリセルの状態をいう。
フォーミングストレスは、電圧が+3.5V、パルス幅が5μSecのパルスを累積的に印加する。セルごとに適切な累積パルスを印加することで、図3の(1)初期状態にあったメモリセルは、(2)初回HR状態に推移する。初回HR状態に推移した後は、低抵抗化パルス(素子の抵抗値を第1抵抗値範囲から第2抵抗値範囲へと変化させるためのパルス:第2電気的信号)は、電圧が−2.4V、パルス幅が50nSecを印加する。これにより(3)ディジタルIDセット状態に推移する。ディジタルIDセット状態にあるセルに更に高抵抗化パルス(素子の抵抗値を第2抵抗値範囲から第1抵抗値範囲へと変化させるためのパルス:第1電気的信号)である電圧が+1.8V、パルス幅が50nSecのパルスを印加することで第1抵抗値範囲へと変化する。これ以降のメモリセルは可変状態のセルとなる。すなわち、本開示のディジタルIDデータに用いる場合は図3の(3)ディジタルIDセット状態でとどめて利用する。なお、本開示の例では図3(3)の状態をディジタルIDデータとして利用することを例示するが、(1)の初期状態にも複製のできない製造上のばらつきがもたらす抵抗値のばらつきがあるので、後述する方式を応用して利用可能である。
なお、パルス印加の工程は上述の手順に限定されない。例えば(3)のディジタルIDセット状態は、メモリ素子が可変状態となった以降に複数回第1電気的信号と第2電気的信号を交互に繰返しHR状態とLR状態を複数回遷移させ、最終的にLR状態にして工程を終了し最後にセットされた状態を(3)のディジタルIDセット状態としてもよい。
図6を参照しながら、図3の(3)ディジタルIDセット状態の抵抗値ばらつきの特性を説明する。
図6は、(3)ディジタルIDセット状態の規格化抵抗値情報と、そのメモリセルのばらつきについての標準正規分布の偏差との関係をプロットした図である。
図6に示すように、メモリセルの正規分布は抵抗値情報に対してほぼ直線に分布している。このことから、分布のばらつきは極めてランダムな分布現象であることが示される。図6で示すようにばらつき分布の中央値の抵抗値情報(中央抵抗値または2値化基準値ともいう)を検出し、中央抵抗値との大小関係を比較してディジタルデータの1または0に割り当てる。そして抵抗値ばらつきのランダム性を用いることで、不揮発性メモリ装置ごとに、ユニークかつランダムなディジタルIDデータを作成することができる。
図7を参照しながら、本開示のディジタルIDデータが複製できない理由について説明する。図7は上述の(3)ディジタルIDセット状態に推移させるときに様々な電圧パルス条件で推移させたときのばらつき分布を示す。トランジスタ耐圧の上限である3.3Vかつパルス幅も通常の10万倍の10msの強力なエネルギーをもつ条件から、2Vといった通常よりも弱いパルス条件まで含んでばらつきを見たものである。一般にパルスエネルギーが弱い印加条件と、強い印加条件とで、書き込まれた抵抗値の分布間に明確なウインドウがあるとき、2つの印加条件を用いて任意のデータを書き込むことができる。しかしながら、図からわかるように分布の偏りおよび最大/最小値の若干の差はあるものの、総じて全ての条件の分布の中央値が他の条件の分布と重なっている。つまり、中央値を基準に人為的に書き込み条件を変えて、書き分け、任意のデータを書き込むといった複製が、原理的にできないばらつき現象であることが分かる。
図7のように同じ抵抗値範囲にあるメモリセル群の中で更に抵抗値が低いものと高いものとに分布する理由としては、抵抗変化素子のプロセスばらつきおよび形状ばらつきの他に、例えば、フォーミングが完了するメモリセルがランダムに発生することが考えられる。
上述のとおり、金属酸化物中の欠陥サイトはメモリセル毎にランダムに配置され、フォーミングによってこれらの欠陥サイト間を繋いでフィラメントが形成される。そのため、仮に初期状態にある複数のメモリセルに一定の電気的ストレスを印加した場合であっても、フォーミングが完了するメモリセルは統計的にばらついて発生することを、本願発明者らは事前実験によって確認している。そのため、仮に複数のメモリセルに対して一様なストレスを印加する場合であっても、確率的にフィラメントが形成され、上述の(2)初回HR状態に変化する時間が素子ごとに異なる。このため抵抗変化素子内の金属酸化物中の欠陥サイトの数または密度が素子ごとにばらつく。欠陥サイトの密度および個数のばらつきは、素子ごとに固有であり、そこからもたらされる抵抗値の大小も素子ごとに固有となる。
図8は、フィラメントの発生数が抵抗変化素子ごとに異なることを示す。初期化パルス印加(Forming)により、酸素欠陥サイトの発生箇所と密度は素子ごとにランダムである。また、欠陥が相対的に多く発生した素子の抵抗は低くなり、欠陥が相対的に少ない素子の抵抗は高くなっており、ばらつきが生じている。そしてこのようなばらつきは制御不可である。
図8のように、酸素欠陥サイトの形成が多く、フィラメントパスが形成されやすい場合は、その抵抗変化素子の抵抗値はより低くなる。一方、酸素欠陥サイトの密度が一部でも低いところがある場合はフィラメントパスが形成されにくいため、その抵抗変化素子の抵抗値はより高くなる。各素子の抵抗値はばらついており、このようなばらつきを人為的に制御することはできない。なお、酸素欠陥サイト等が繋がることによってフィラメントパスが形成される材料であれば、同様のメカニズムによって説明できると推察される。
なお、図2のメモリセル構造において、電圧は第1電極124を基準として第2電極128に正の電圧を印加する場合を正極性とする。
その他の例として、第1電極124及び第2電極128の材料が白金(Pt)、抵抗変化層126の材料がハフニウム酸化物、抵抗変化層126の厚さが30nm、素子領域の直径を3μmの円形としてもよい。なお、抵抗変化層126がHfO1.6の場合、初期抵
抗値は数MΩ程度であり、高抵抗値範囲が1000〜3000Ω程度、低抵抗値範囲が100〜300Ω程度となる。この場合、フォーミングストレスは、例えば、電圧が2〜3V、パルス幅が100nSecのパルスを累積的に印加する。低抵抗化パルスは、電圧が+1.0V、パルス幅が100nSecであり、高抵抗化パルスは、電圧が−1.3V、パルス幅が100nSecである。
[閾値について]
図3に示す例では、初期抵抗値範囲の下限が、全ての可変抵抗値範囲の上限以上である。具体的には、初期抵抗値範囲の下限が、複数の可変抵抗値範囲のうち抵抗値が最も大きいものの上限以上であってもよい。さらに具体的には、初期抵抗値範囲の下限は、2個の可変抵抗値範囲のうち抵抗値が最も大きい第1抵抗値範囲の上限に等しくてもよい。
図3に示す例では、第1閾値は、初期抵抗値範囲の下限以下であり、かつ、複数の可変抵抗値範囲のうち抵抗値が最も大きいものの上限以上である値である。具体的には、第1閾値は、初期抵抗値範囲の下限であり、複数の可変抵抗値範囲のうち抵抗値が最も大きいものの上限である値であってもよい。さらに具体的には、第1閾値は、2個の可変抵抗値範囲のうち抵抗値が最も大きい第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との接触面および第2電極128と抵抗変化層126との接触面の面積を0.25μm2以下とするとき、初期抵抗値は概ね200Ωと非常
に低抵抗にある。この初期状態のメモリセルに10μSecのパルス幅で第1電気的信号と同じ極性で電圧の絶対値が3.5Vのパルスを所定の回数を印加することによって、初期抵抗値よりも抵抗値の大きい状態(2K〜8KΩの高抵抗状態)に推移する。これは、第2電極128と抵抗変化層126の接触界面の酸化が進行し、Fe2O3の絶縁状態にある抵抗層が形成されるためと考えられる。
その後、上記高抵抗状態に推移したメモリセルは、電圧の絶対値が2.4Vの第2電気的信号の印加により300Ωから500Ωの第2抵抗値範囲に推移でき、第2電気的信号と極性の異なる電圧の絶対値が2.4Vの第1電気的信号の印加により2Kから8KΩの第1抵抗値範囲を推移できるようになる。この場合、初期抵抗のばらつきをディジタルIDデータとして利用することが容易であり好ましい。
制御装置93は、選択されたメモリセル91の抵抗値が、第1閾値よりも大きいか否かを判定する第1読み出しモードと、選択されたメモリセル91の抵抗値が、第2閾値よりも大きいか否かを判定する第2読み出しモードとを選択的に実行することによって、記録されたデータを読み出すことができるように構成されていてもよく、第1閾値および第2閾値は、固定の値ではなく、任意に可変できるように構成されてよい。
本開示の不揮発性メモリ装置に記録されたデータは、第1種データと第2種データとのいずれか、または両方を含んでよい。第1種データは、各メモリセル91の抵抗値が初期抵抗値範囲にあるか否かの違いを利用して記録されており、第2種データは、各メモリセル91の抵抗値が初期抵抗値範囲にあるか否かの違いを利用せずに、各メモリセル91の抵抗値が少なくとも一つの可変抵抗値範囲にあるか否かの違いを利用して記録されていてもよい。そして、本開示は、上述の何れか同一の抵抗値範囲にあるメモリセルの抵抗値ばらつきを用いてディジタルIDデータを生成する第3種データを備える。
この場合において、メモリセルアレイ90が、第1書き込みアドレス領域と、第2書き込みアドレス領域とを備え、第1書き込みアドレス領域に第1種または第2種のデータのいずれか、または両方が記録されており、第2書き込みアドレス領域にディジタルIDデータのもととなる抵抗値状態のメモリセルが保管されていてもよい。第1書き込みアドレス領域と、第2書き込みアドレス領域とは、必ずしも物理的な領域として分離していなくてもよい。例えば、各メモリセル91がアドレスごとに所定の規則によって第1書き込みアドレス領域と第2書き込みアドレス領域とに振り分けられていてもよく、これによりディジタルIDデータの物理的な場所が特定されにくくなり耐タンパ性が向上する。
メモリセルアレイ90を構成する複数のメモリセルにフォーミングストレスを印加する工程は選択的に自由に行えるため、第1書き込みアドレス領域と第2書き込みアドレス領域との容量配分および配置を自由に変更し選択することができる。
図9は、第1実施形態において同一の可変抵抗値範囲にあるメモリセルから連続して抵抗値を読み出した例を示す。「抵抗値が少なくとも1つの可変抵抗値範囲にある」とは、メモリセルが同一の抵抗状態にあることをいう。すなわち二値型のメモリセルである場合には、例えば、メモリセルが低抵抗状態にあって高抵抗状態にないことをいう。つまり、この場合は図3の(3)ディジタルIDセット状態と等しい。
高抵抗化パルスと低抵抗化パルスを交互に印加することで素子が高抵抗状態と低抵抗状態とを可逆的に遷移することを確認した。その後、低抵抗状態にある素子に高抵抗化パルスを1回だけ印加して高抵抗状態とし、その後は低抵抗化パルスも高抵抗化パルスも印加することなく、読み出し動作を連続して1000回実行し、それぞれの抵抗値情報の読み出しを行った。読み出しの時間間隔は5μSecとした。
図9では、横軸が読み出し回数、縦軸が規格化された抵抗値情報であり、同じ構成を有する3つの素子の抵抗値の揺らぎが示されている。ここでいう抵抗値情報とは、後述する放電方式の読み出し回路で得られるもので、値が大きければ高い抵抗値を示し、小さければ低い抵抗値を示す。図9によれば、同一の抵抗状態にある素子を繰り返して読み出すと、抵抗値がランダムに増減する様子が確認できる。
ここで述べる抵抗値変動または抵抗値揺らぎとは、抵抗状態を変化させる電気的パルスが印加されない状態、すなわち同一の抵抗状態、にある同一メモリセルから読み出される抵抗値が時間の経過と共に変動する現象を指す。
図10A、図10Bは、パーコレーションモデル(percolation model)を用いて、フォーミング時における抵抗変化層(例えば局所領域)中のフィラメントの形成をシミュレートした結果の一例を示す図である。
パーコレーションモデルとは、抵抗変化層中にランダムに分布した欠陥サイトに対して、欠陥サイト等の密度がある閾値を超えると欠陥サイト等の繋がりが形成される確率が増加するという理論に基づくモデルである。ここで「欠陥」とは、例えば、金属酸化物中で酸素が欠損していることを意味し、「欠陥サイトの密度」とは酸素不足度とも対応している。すなわち、酸素不足度が大きくなると、欠陥サイトの密度も大きくなる。
図10A、図10Bに示されるシミュレーションでは、抵抗変化層の酸素イオンサイトを、格子状に仕切られた領域(サイト)として近似的に仮定し、確率的に形成される欠陥サイトによって形成されるフィラメントをシミュレーションで求めている。図10Aおよび図10Bにおいて、“0”が含まれているサイトは抵抗変化層中に形成される欠陥サイトを表している。他方、空白となっているサイトは酸素イオンが占有しているサイトを表しており、導電パスのない高抵抗な領域を意味している。また、矢印で示される欠陥サイトのクラスター(上下、左右及び斜め方向に1個のサイトの範囲内で互いに接続された欠陥サイトの集合体)は、図中の上下方向に電圧が印加された場合に抵抗変化層内に形成されるフィラメント、すなわち電流が流れるパスを示している。
図10Aに示されるように、抵抗変化層の下面と上面との間に電流を流すフィラメントは、ランダムに分布する欠陥サイトの内の上端から下端までを接続する欠陥サイトのクラスターで構成される。このパーコレーションモデルに基づくと、フィラメントの本数及び形状は確率的に形成されることになる。フィラメントの本数及び形状の分布は、抵抗変化層の抵抗値のばらつきとなる。
また、フィラメントは、上述した高抵抗化パルスにより酸素イオンがフィラメントに導入され欠陥サイトと結合し、幾つかのフィラメントパスを切断することにより高抵抗状態へと推移する。逆に、低抵抗化パルスを印加すると、再び酸素イオンの離脱が起こり、欠陥サイトが生成されフィラメントパスが再現され、低抵抗状態へと推移する。各抵抗状態の間でフィラメントパスの本数に充分な差があれば、抵抗値の差分が大きくなり、抵抗値の判定マージンが増加する。
次に、図9のように同一の抵抗状態にある素子において抵抗値が揺らぐ現象のメカニズムについて説明する。
各抵抗状態の抵抗値を決定するフィラメントパスの形状、本数および太さは、時間的に安定ではない。つまり、酸素サイトから酸素イオンが抜け出ることによって欠陥サイトが生成されたり、欠陥サイトへ酸素イオンが供給されることによって欠陥サイトが消滅したりすることにより、フィラメントパスの形状、本数および太さが微妙に増減する。これが時間的な抵抗値の揺らぎとして観測される。図10Bは、その一例を示す説明図で、たった一つの欠陥サイトが隣接サイトと入れ替わっただけで、図10Aにあったフィラメントパスのうち、一つのパスが断絶されることになる。この場合、抵抗値が僅かに増加することになる。図による説明は省略するが、逆に欠陥サイトが隣接サイトと入れ替わることにより新たなフィラメントパスが発生することもある。この場合は、僅かに抵抗値が減少する。図9のような抵抗値の揺らぎ現象は、かかるメカニズムにより発生すると考えられる。実際には、図のようなフィラメントパスの数は多数あり、その一部が増減するもののフィラメントパスの総数は大きくは変化しないと考えられる。すなわち、揺らぎ現象においては、メモリセルの抵抗状態が別の抵抗状態に変化してしまうほどの大きなフィラメントパスの変化は生じないと考えられる。
上記メカニズムにより抵抗値が揺らぐ現象は、酸化物中の酸素イオンの移動により抵抗値が変動するあらゆる抵抗変化素子に当てはまると考えられる。具体的には例えば、かかる性質を有するメモリセルとして、第1電極と金属酸化物と第2電極とをこの順で積層した素子を用いることができる。あるいは例えば、第1電極と遷移金属酸化物と第2電極とをこの順で積層した素子を用いることができる。
このように抵抗変化型メモリ装置に用いられるメモリセルは書き込まれた抵抗値に対して若干であるが抵抗値の揺らぎ現象が存在する。図6に示す中央抵抗値を用いて抵抗値の大小関係からディジタルデータの1または0に判別して得られるディジタルIDデータには、抵抗値揺らぎが原因の誤りデータが発生する。中央抵抗値付近は、抵抗値のばらつき分布の中央であるため、その抵抗値付近にあるメモリセルの分布数が最も多いことになる。これら中央付近のメモリセルが前述のとおりランダムに抵抗値が揺らぐため多くのビットがランダムに誤ることになる。
本願発明者らは、書き込まれた抵抗値が、放置時間および温度環境、更には装置の電源環境などにより、中央抵抗値の最適値が変動し、誤り率が安定せず、ディジタルIDデータを安定的に生成することができないという課題を見出した。この課題について図11を用いて説明する。
図11は図3に示すようなディジタルIDセット状態に書き込まれた所定のビット数のメモリセル群の抵抗値を放置時間ごとに読み出したときのばらつき範囲と抵抗中央値を示す。
測定に使用したビット数は1Kbitで、放置時間に対する劣化を加速するために放置温度は175℃とした。図からわかるように、放置時間とともに、ばらつき範囲が広がっている。さらに、破線で囲んだように抵抗中央値が徐々に上昇していることが分かる。つまり、放置時間が増加するに従って、抵抗値の分布が高抵抗側にシフトしていると言える。
図12は、書き込まれたディジタルIDデータを図11に示したような初期の抵抗中央値(143)で抽出したときにおける、エラーレートと放置時間との関係を示す。エラーレートは抽出したデータと初回IDデータとが相違する割合を示す。図12から分かるように放置時間とともに最適な抵抗中央値がずれるためエラーレートが急速に増大していることが分かる。この現象は、放置時間だけでなく周辺温度の変化、または装置電源電圧の変化によっても大きく変動する。
そこで発明者らは図13および図14に示すフローを考案した。
図13は、ディジタルIDデータを生成し、不揮発性メモリ装置100に書き込む処理フローの一具体例を示す。このフローは、たとえば不揮発性メモリ装置100が工場から出荷される前の検査工程時に実行される。
一方、図14は、ディジタルIDデータを再生する処理フローの一具体例を示す。このフローは、たとえば工場から出荷された後の不揮発性メモリ装置100が市場において使用される都度実行される。
前述したように、生成されるディジタルIDデータには誤りデータが含まれるため真の正しいIDデータを常に得るためには誤り訂正を行う必要がある。従って、図13および図14のように、装置の出荷前の検査工程時と、市場で装置が使用されるフィールド使用時とでは処理のフローが異なる。
出荷前検査時は図のように不揮発性メモリ装置の各メモリセルは可変状態ではなく絶縁抵抗に近い抵抗値を示す初期状態にある。図13のフローのS1ステップにおいて図3に関連して説明したようなフォーミングストレスを印加するフォーミング処理が実行され、各メモリセルを図3の(2)初回HR状態に推移せしめる。次にS2ステップにおいて低抵抗化パルスが印加され図3の(3)ディジタルIDセット状態にセットされる。そしてS3ステップにおいて複数のディジタルIDセット状態にあるメモリセルの抵抗値情報を読み出し、S4ステップにて読み出した抵抗値情報から抵抗値ばらつきの分布の中央値を演算して保持する。S5ステップでは再度、(3)ディジタルIDセット状態にあるメモリセルから抵抗値情報を読み出し、上述の保持された中央値との関係からディジタルIDデータを生成する。
図15は、ディジタルIDデータの例を示す。上述したように、ディジタルIDセット状態にあるメモリセルの抵抗値情報と、閾値である抵抗値ばらつきの分布の中央値を比較して、抵抗値情報がより小さい場合にはそのメモリセルにデータ「1」を割り当て、抵抗値情報がより大きい場合にはそのメモリセルにデータ「0」を割り当てる。これにより、人為的に制御できないメモリセルの抵抗値を利用した、不揮発性メモリ装置100を一意に識別可能なディジタルIDデータを得ることができる。
再び図13を参照する。S6ステップではディジタルIDデータをもとにデータ誤りを訂正するために用いるパリティーデータを演算し、S7ステップにてパリティーデータを別の異なるメモリセルに記録する。
次に、図14を参照する。フィールドにおいて装置が使用される際、S8ステップにおいて、検査時のS3およびS4ステップと同様に複数のディジタルIDセット状態にあるメモリセルの抵抗値情報を読み出し、S9ステップにて読み出した抵抗値情報から抵抗値ばらつきの分布の中央値を演算して保持する。さらにS10ステップでは再度、(3)ディジタルIDセット状態にあるメモリセルから抵抗値情報を読み出し、上述の保持された中央値との関係からディジタルIDデータを生成する。S11ステップにおいて検査時に予め保存されたパリティーデータを読み出し、S12ステップでパリティーデータを用いてS10で得たディジタルIDデータの誤りデータを訂正する。その結果、S13ステップにて常に同じ真のディジタルIDデータを得る。
図16は、誤り訂正前のデータ誤り率の推移を示す。この推移は、図14のフローによりフィールド使用時に最適な抵抗中央値を検出し、検出した抵抗中央値でディジタルIDデータを生成したときの誤り訂正前のデータ誤り率の推移である。前述した誤り訂正前のディジタルIDデータを生のディジタルIDデータ(Raw Digital ID Data)と呼ぶ。図16は横軸にディジタルIDデータの読み出し回数を示し、縦軸にそのときのディジタルIDデータの誤り率(エラーレート)を示した。図からわかるようにエラーレート上昇が抑制され2%〜3%の誤り率で良好な結果が得られている。
更に、本開示の特徴的な点として、累積エラーレートがあげられる。図17は読み出し回数と累積エラーレートとの関係を示す。累積エラーレートとは、複数回、生のディジタルIDデータを読み出し新たな異なるビットに誤りが発生した場合は順次加算していき、累計でエラーしたビット数から誤り率を求めたものである。図16で各読み出しごとのエラーレートは2〜3%で低いものの、異なるビットが入替わり立代りするため累積エラーレートは読み出し回数に従って上昇する。図では2500回のディジタルIDデータの生成では14%ものビットが誤りを起こしたことがわかる。つまり、読み出すたびにエラーするビットが異なり、エラー訂正前のIDデータは刻一刻と変化していることが理解できる。この特長により、前述したような機械学習攻撃を受けた場合であっても学習結果が定まらず真のディジタルIDデータが解析できないため、ハッキングに対して極めて耐性があるといえる。
では、次に本開示の方式を実現するための具体的な構成例について説明する。
図18は、本開示の不揮発メモリ装置の具体的な構成例を示すブロック図である。なお、図18はあくまで一例であり、第1実施形態の不揮発性メモリ装置の具体的構成が図18に示される構成に限定されるものではない。
図18に示すように、実施例の不揮発性メモリ装置10は、半導体基板上に、メモリ本体部22を備えている。また不揮発性メモリ装置10は、さらにデータ入出力回路6と、制御回路15と、アドレス入力回路16と、誤り訂正およびパリティー生成回路400とを備えている。
メモリ本体部22は、読み出し回路11と、書き込み回路14と、カラムデコーダ回路17と、ロウデコーダ回路18と、メモリセルアレイ20と、中央値検出回路25とを備えている。
書き込み回路14は、選択されたメモリセル21へ各動作における所定の電圧を印加してデータを書き込む。
読み出し回路11は、ビット線に流れる電流の変化を、後述する読み出し方式により検知し、選択メモリセルの抵抗値情報をディジタルカウント値として取得する。
ロウデコーダ回路18は、メモリセルアレイ20に接続されている複数のm+1本のワード線WLの中から1つのワード線WLを選択する。
カラムデコーダ回路17は、複数のn+1本のビット線BLと複数のソース線SLの中から並列読み出し数であるS本のビット線BLと、それに対応するS本のソース線SLとを選択し、書き込み回路および読み出し回路へ接続する。
これらは並列的に読み出しおよび/または書き込みが行われる行および/または列の数に応じて動作可能である。
不揮発性メモリ装置10の読み出し回路11は、出力端子AおよびBと、入力端子Aとを有する。読み出し回路11は、入力端子Aを介して閾値を受け取る。この閾値は、読み出し回路11が、カラムデコーダ回路17から得られた信号を0または1のデータとして二値化するために利用される。
また、読み出し回路11は、出力端子Bを介して、カラムデコーダ回路17から得られた信号を中央値検出回路25に出力する。この信号は、ディジタルIDデータを生成するために必要な中央値を算出するために中央値検出回路25によって利用される。
さらに、読み出し回路11は、出力端子Aを介して、ユーザデータである0または1のデータ、および、ディジタルIDデータである0または1のデータを出力する。ユーザデータを生成する際に利用される閾値と、ディジタルIDデータを生成する際に利用される閾値とは異なっていてもよい。
図13で説明したように、検査工程時にディジタルIDデータに応じた誤り訂正のためのパリティーデータを生成する場合は、上述の出力端子Aから出力されるディジタルIDデータをデータ入出力回路6が受け取り、誤り訂正およびパリティー生成回路400に送る。
誤り訂正およびパリティー生成回路400は、ディジタルIDデータに応じた誤り訂正用のパリティーデータを演算し、演算結果をデータ入出力回路6に戻す。
なお誤り訂正およびパリティー生成回路400は、機能的には、誤り訂正を行う回路要素と、パリティーを生成する回路要素とに分けることが可能である。本実施の形態では、誤り訂正およびパリティー生成回路400は1つの回路として説明されているが、誤り訂正回路およびパリティー生成回路という別個の2つの回路として設けられてもよい。
データ入出力回路6は、パリティーデータを書き込み回路14に出力し、書き込み回路14は、ディジタルIDデータに応じた冗長のメモリセルにパリティーデータを書込む。なお、これらの制御は制御回路15を介して実行される。
引き続き、中央値検出回路25の動作について、より詳しく説明する。読み出し回路11は抵抗値情報のディジタルカウント値を入力端子Aに入力される閾値と比較して、1または−1の中央値誤差信号を出力端子Bから出力する。出力端子Bから出力される中央値誤差信号は並列的に読み出されるチャンネル数(S)だけ同時に出力される。S個の中央値誤差信号は、中央値検出回路25に入力される。
中央値検出回路25は演算回路であり、たとえば半導体集積回路を用いて実現され得る。中央値検出回路25は中央値誤差信号が小さくなるようにフィードバック制御されて算出した抵抗中央値を読み出し回路11の入力端子Aに出力する。
一般に不揮発性メモリ装置にユーザがデータを書き込む場合は、外部からアドレス信号、データ信号、コントロール信号を装置に入力することで実行される。このため外部から入力されるアドレス信号を受け取るアドレス入力回路16と、外部から入力されるコントロール信号に基づいてメモリ本体部22の動作を制御する制御回路15が、書き込むアドレスを選択するとともに書き込みパルスを印加する様に制御する。そして、データ入出力回路6は外部から入力されるデータ信号(外部データ)を受け取り、その外部データに基づいて書き込みデータを生成して書き込み回路14に送る。書き込み回路14は、その書き込みデータを選択されたアドレスに対応するメモリセルに書き込む。
この書き込みデータは、データ入出力回路6により誤り訂正のためのパリティーデータが付加されたデータである。以下、パリティーデータに関連する処理を説明する。
書き込みデータの生成のために、データ入出力回路6は、取り込んだ外部データを、図18に示す誤り訂正およびパリティー生成回路400に送る。誤り訂正およびパリティー生成回路400は、入力された外部データに応じた誤り訂正を行うためのパリティーデータを演算してデータ入出力回路6に戻す。データ入出力回路6は、外部データと誤り訂正用パリティーデータをあわせた書き込みデータを書き込み回路14に送り、そのデータに従って選択されたメモリセルにデータが書込まれる。このとき、パリティーデータは外部から指定されたアドレス情報に応じて予め決められた冗長のメモリセルに書込まれる。
また、不揮発性メモリ装置10に書き込まれたユーザデータを読み出す際には、アドレス信号を受け取るアドレス入力回路16と、外部から入力されるコントロール信号に基づいてメモリ本体部22の動作を制御する制御回路15とが利用される。具体的には、制御回路15は、アドレス入力回路16に入力されたアドレス信号に基づいて読み出すアドレスを選択するとともに選択されたメモリセルを読み出すように読み出し回路11を制御する。また、外部から入力されたアドレスに応じたパリティーデータを読み出すため予め決められた冗長のメモリセルも順次選択され読み出すように読み出し回路11を制御する。読み出し回路11は、入力端子Aに入力される閾値に従い1/0判定をした結果であるディジタルデータを出力端子Aから出力する。アドレス信号に応じたユーザデータと、そのユーザデータに対応したパリティーデータとは、データ入出力回路6を介して誤り訂正およびパリティー生成回路400に送られる。ユーザデータはデータ誤りがあれば訂正されたのち、データ入出力回路6に戻され、更に装置外部に出力される。
このとき、読み出し回路11の入力端子Aに入力される閾値は中央値検出回路25からのものではなく、図3の第1閾値および第2閾値に相当する値である。なお、図には、入力端子Aに入力される閾値を、中央値検出回路25から出力された中央値にするか、図3の第1閾値および第2閾値に相当する値にするかを切り替えるための切替回路の記載は省略している。第1閾値および第2閾値に相当する値は、たとえば図示されないレジスタに記憶されている。なお、第1閾値および第2閾値で読み出す際には、後述するセンスアンプの判定レベル(参照電圧VREF)またはLOAD電位を変更しても良い。
以下に、パリティーデータを用いてディジタルIDデータの誤りを訂正する例を説明する。以下では、各構成要素がどのように動作するかの観点で説明しているが、それらの動作は、制御回路15からの指示によって制御されていることに留意されたい。
まず、工場出荷前の検査工程時に、読み出し回路11および中央値検出回路25は予めディジタルIDデータを生成する。誤り訂正およびパリティー生成回路400は、そのディジタルIDデータをもとにパリティーデータを生成する。生成されたパリティーデータは、たとえば予め定められたアドレスの不揮発性メモリセル内に、ユーザデータとして記録される。
次に、不揮発性メモリ装置10のフィールド使用時の動作を説明する。パリティーデータは、予め検査時にユーザデータとして記録されているため図3の第1閾値および第2閾値で判定される。すなわち、読み出し回路11は、ディジタルIDデータを前述した工程により読み出し、データ入出力回路6に出力する。その後、読み出し回路11は、閾値を所定の値に切り替えて、ディジタルIDデータに応じた冗長のメモリセルに保存されたパリティーデータを読出し、データ入出力回路6に出力する。データ入出力回路6は、ディジタルIDデータとパリティーデータを誤り訂正およびパリティー生成回路400に送信する。誤り訂正およびパリティー生成回路400は、誤りを訂正した後のデータを、データ入出力回路6に戻す。データ入出力回路6はそのデータを装置外部に出力する。
なお、上述の例では、ユーザデータおよびディジタルIDデータの両方の誤りが、同じ誤り訂正およびパリティー生成回路400によって訂正されるとして説明したが、これは一例である。ディジタルIDデータの誤りを訂正するための誤り訂正およびパリティー生成回路は、例えば装置外部に具備されても良い。このような構成にすれば、装置外に送られるディジタルIDデータは、データ誤りを含んでおり、装置外部との通信路においてハッキングなどの脅威に対してセキュリティーが向上できるという利点がある。
図に示すように、メモリ本体部22は、記憶領域として、ユーザデータ領域7とPUFデータ領域8とを有する。ユーザデータ領域7にはユーザの任意のデータ(ユーザデータ)が記憶される。ユーザデータの書き込みおよび読み出しはユーザデータ領域7のアドレスが選択される。PUFデータ領域8には、ディジタルIDデータとして用いられる個体識別情報を導き出すための、フォーミングストレスが印加される。その結果、PUFデータ領域8のメモリセル群は同一の抵抗値状態を取る。ディジタルIDデータは、各メモリセルの抵抗値の揺らぎを利用して導出されるデータである。
なお、ユーザデータ領域7とPUFデータ領域8は図のようにワード線単位に分けられる必要はなく、アレイ上の任意の領域で区分けしても良い。物理的な領域区分の規則性を複雑にするほどハッキングなどの攻撃への耐性を高めることができる。
メモリセルアレイ20は、ワード線単位で、WL0、WL1、WL2、・・・WLm−k−1をユーザデータ領域7と、WLm−k、・・・WLmをPUFデータ領域8として切り分けられ、互いに平行に延びるように形成された複数のワード線WL0、WL1、WL2、・・・WLm−k−1、WLm−k、・・・WLmと、複数のワード線と交差し、かつ互いに平行に延びるようにして形成された複数のビット線BL0、BL1、・・・BLnと、複数のワード線と交差し、かつ互いに平行に、かつビット線と平行に延びるようにして形成されたソース線SL0、SL1、SL2、・・・SLnと、を備える。複数のワード線と複数のビット線の立体交差点には、それぞれメモリセル21が配置されている。
それぞれのメモリセル21は抵抗変化素子23とトランジスタ24とを備える。ワード線WL0、WL1、WL2、・・・WLm−k−1、WLm−k、・・・WLmはそれぞれのトランジスタ24のゲート端子に接続され、ビット線BL0、BL1、・・・BLnは、それぞれのメモリセル21が備える抵抗変化素子23の第2電極に接続され、抵抗変化素子の第1電極はトランジスタ24の第2主端子に各々接続され、ソース線SL0、SL1、SL2、・・・SLnは、トランジスタ24の第1主端子にそれぞれ接続されている。
抵抗変化素子23はメモリセル21において不揮発性メモリ素子として動作する。不揮発性メモリ装置10は、各メモリセル21が1個のトランジスタ24と1個の抵抗変化素子23とから構成される、いわゆる1T1R型の抵抗変化型不揮発性メモリ装置である。メモリセルの選択素子は前述のトランジスタに限定されない。例えばダイオードなどの2端子素子を用いても良い。
制御回路15はコントロール信号に基づき、カラムデコーダ回路17に対し、ビット線あるいはソース線のいずれか一方を選択し、書き込み時は書き込み回路14、読み出し時は読み出し回路11に接続させる。その上で、書き込み回路14あるいは読み出し回路11を動作させる。
抵抗変化素子23については、実施形態において上述した抵抗変化素子120と同様の構成とすることができるので、詳細な説明を省略する。
図18に示す例では、メモリセルアレイ20の選択トランジスタとしてNMOSトランジスタが用いられているが、これに限定されず、PMOSトランジスタを用いても良い。
図19は本開示の不揮発性メモリ装置10が備える読み出し回路11の構成例を示す回路図である。
読み出し回路11は放電方式のセンスアンプ回路30を有している。当該センスアンプ回路は、コンパレータ31と、抵抗値カウンタ32と、プリチャージ用のPMOSトランジスタ33と、ロード電流用のPMOSトランジスタ34とを備えている。
抵抗値カウンタ32は、コンパレータ31の出力先に接続されている。抵抗値カウンタ32は、リセット信号RSTがロウレベルとなることで、抵抗値カウンタ内のカウント値が初期化された後、クロック信号CLKによるカウントを開始する。クロック信号CLKは、制御回路15から出力される信号であって、抵抗変化素子23の抵抗値によって変化する放電時間をカウント値に変換する際の基準となる信号である。クロック信号CLKは、例えば一定の周波数を維持する矩形波である。このクロック信号CLKが立ち上がる毎に、抵抗値カウンタのカウント値が1つ加算され、ノードSENの電位がVREFを下回ると抵抗値カウンタのカウントアップが停止し、そのときのカウント値がCOUNT_OUTに維持される。このとき、入力Aからは閾値が入力される。比較器135はCOUNT_OUTと入力Aの閾値とを比較し、閾値以上であれば0を、閾値未満であれば1を出力Aから出力する。また、閾値以上であれば1を、閾値未満であれば−1を出力Bから出力する。プリチャージPMOSトランジスタ33は、ゲート端子にプリチャージ制御信号PREが入力され、ソース端子にVDDが入力され、ドレイン端子にノードSENが接続されている。
ロードPMOSトランジスタ34は、ゲート端子にロード制御信号LOADが入力され、ソース端子にVDDが入力され、ドレイン端子にノードSENが接続されている。
読み出し回路11はクランプ電圧印加用のNMOSトランジスタ35で構成されたクランプ回路をさらに有している。クランプNMOSトランジスタ35は、ゲートにクランプ制御信号CLMPが入力され、ソース端子もしくはドレイン端子の何れか一方にノードSENが接続され、他端にはカラムデコーダ回路を介して選択されたメモリセルが接続されている。なお、図19ではカラムデコーダ回路は省略している。
ここで、読み出し回路11がカウント値(抵抗カウント値の一例)を出力する動作について、読み出し回路の構成図(図19)と図20Aおよび図20Bのタイミングチャートを用いて、具体的に説明する。
図20Aは、選択されたメモリセルを放電方式にて読み出す場合のタイミングチャートである。
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がオフとなり、読み出し動作が終了する。
図20Bは、選択されたメモリセルを充電方式にて読み出す場合のタイミングチャートである。
T1のディスチャージ期間において、制御信号PRE、LOAD共にハイレベルとなり、プリチャージ用PMOSトランジスタ33とロード用PMOSトランジスタ34は何れもオフ状態となる。また選択ワード線WLsの電位はハイレベルでトランジスタ24はオン状態となっている。
クランプ回路のクランプ用NMOSトランジスタ35のゲート端子にVCLMPの電圧が印加され、選択ワード線WLsの電位をハイレベルにすることで、NMOSトランジスタ24はオン状態となるため、ノードSEN、選択ビット線BLsは抵抗変化素子23を介してGNDへ接続され、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の電位がロウレベルとされ、選択されたメモリセル21sのトランジスタ24がオフとなり、読み出し動作が終了する。
図19の構成であれば、放電方式と充電方式の両方を用いることができる。しかし、図19の比較器135で例示した出力Aおよび出力Bの論理例は放電方式の読み出し回路における例である。高抵抗状態と低抵抗状態に夫々対応するディジタルデータの論理を同じにする場合は、検出方向が逆になるために充電方式では反転する必要がある。具体的には、出力Aへの論理はa≧bの場合は1とし、a<bの場合は0となる。出力Bへの論理は放電方式と充電方式で等しい。
このように読み出しの方式によって抵抗値情報に対する分解能が異なるため、高精度に抵抗値情報を得たい場合は、放電方式はディジタルIDデータが高い抵抗値範囲を用いて保存される場合に用いるのが好ましい。逆に充電方式はディジタルIDデータが低い抵抗値範囲を用いて保存される場合に用いることが好ましい。しかしながら、一方で図19に示した抵抗値カウンタ32のカウンタ幅はハードウェアの制約上有限な量である。つまり前述したような放電時間または充電時間が長すぎる場合はカウンタのレンジをオーバーしてしまい正確な抵抗値情報が得られない問題がある。このため必要なカウンタのビット幅を節約して回路規模の縮小を図る場合は、放電方式はディジタルIDデータが低い抵抗値範囲を用いて保存される場合に用いるのが好ましい。逆に充電方式はディジタルIDデータが高い抵抗値範囲を用いて保存される場合に用いることが好ましい。
図21は、本開示の不揮発性メモリ装置10が備える中央値検出回路25の構成例を示している。
図21に示すように、中央値検出回路25は、選択回路200と、アップダウンカウンタ201と、乗算器202とを備える。
選択回路200は、読み出し回路11から入力される中央値誤差信号の何れかのチャンネルを制御回路から入力される制御信号Aに従い選択する。アップダウンカウンタ201は、選択回路200により選択された中央値誤差信号の論理(図19の出力Bの値である「1」または「−1」)に従いカウンタ値を増減する。つまり、アンプダウンカウンタ201は中央値誤差信号の累積加算回路をなしている。
乗算器202は、アップダウンカウンタ201の出力に所定の係数αを乗算して出力する。乗算器202の係数αは1より小さい値、例えば1/2,1/4,1/8などとすることで、中央値誤差信号の積算感度を変えることができる。なお、本明細書で言う「感度」とは、変化の程度、または変化率を言う。乗算器202は、感度調整回路と言うことができる。α値が大きいと抵抗中央値の検出の感度が増加し、上下動が大きく検出精度が悪化する。逆にα値が小さいと感度が下がり抵抗中央値の検出精度が増すものの検出にかかる時間(読み出し回数)が増加する。α値はシステムによって最適に選択される。なお、アップダウンカウンタ201の初期値を、目標となる抵抗中央値にαを掛けた値にセットすることにより、検出時間が短縮化され得る。
上述の処理を簡潔に説明すると、アップダウンカウンタ201は、選択されたメモリセルから取得した抵抗値情報と、演算途中の中央値(本明細書において「暫定中央値」と称することもある。)との差分を誤差として累積する。乗算器202は、カウンタの出力に所定の係数を乗算した値を新たな暫定中央値として更新する。これにより、適切な中央値を得ることができる。
乗算器202から出力された中央値は、抵抗中央値として読み出し回路11の入力端子Aに出力される。
なお、図21に示されるような、誤差信号の累積加算回路をなすアップダウンカウンタ201と、誤差信号の累積における感度調整する感度調整回路をなす乗算器202は一例である。また、累積加算回路の出力に感度調整回路が接続されるような接続関係についても限定されない。たとえば図22に示される構成を採用することも可能である。
図22は、中央値検出回路25の一変形例を示す。
図22に示す中央値検出回路25は、選択回路200に代わる全チャンネル加算器401と、乗算器202と、加算器402と、データラッチ回路403とを備えている。乗算器202は、全チャンネル加算器401と接続され、全チャンネル加算器401から出力される信号を受け取る。加算器402は、乗算器202の出力およびデータラッチ回路403の出力および入力と接続されている。加算器402は、乗算器202の出力およびデータラッチ回路403の出力を受け取って加算し、その加算結果をデータラッチ回路403に送る。
データラッチ回路403は、加算器402の出力を受け取り、制御信号Bが指定するタイミングで受け取っていたデータをラッチする。なお、データラッチ回路403は、1ビットのラッチ回路を複数組み合わせることによって複数ビットの情報を記憶することが可能な回路である。ビット数は、その出力として必要とされるビット数に依存する。次に説明するように、本例ではデータラッチ回路403の出力は読み出し回路11において抵抗中央値として利用される。データラッチ回路403は、少なくとも抵抗中央値を表現するために必要とされるビット数分の1ビットのラッチ回路を実装していればよい。
この中央値検出回路25の動作をより具体的に説明する。
全チャンネル加算器401は、読み出し回路11から入力されるSチャンネルの抵抗値誤差信号を全て合算し、トータル誤差信号として出力する。乗算器202は、トータル誤差信号を受け取って、その信号に係数αを乗じる。乗算器202は、係数αにより、例えば1/2,1/4,1/8などのようにトータル誤差信号の感度を調整する。加算器402は、データラッチ回路403の出力と、乗算器202から出力された、感度が調節されたトータル誤差信号とを加算して、データラッチ回路403に出力する。
データラッチ回路403は、制御信号Bによって指定されたタイミングで、加算器402から受け取った信号(データ)をラッチする。データラッチ回路403は、直前にラッチしたデータを、加算器402に送るとともに、読み出し回路11の入力Aにも送る。このデータは、読み出し回路11において抵抗中央値として利用される。
上述の動作から理解されるように、全チャンネル加算器401および乗算器202は、抵抗値誤差信号を累積する際の感度を調整する感度調整回路をなす。また、加算器402およびデータラッチ回路403は制御信号Bから指定されるタイミングに従って、1つ前の抵抗中央値と、感度が調節された抵抗値誤差信号とを加算して累積する累積加算回路をなす。
図21および図22の例から明らかなように、感度調整回路と、抵抗値誤差信号の累積加算回路とを設けることに関し、各回路の具体的な構成、および各回路の接続関係は種々考えられる。上述の開示を踏まえると、当業者であればそのような変形例を設計することができる。本開示の趣旨に鑑みれば、現時点における抵抗中央値と、読み出された抵抗値情報との差分を抵抗値誤差信号として得て、その抵抗値誤差信号を累積する際の感度が調整でき、抵抗値誤差信号の累積結果を新たな抵抗中央値として更新する、1つの回路または組み合わされた複数の回路は、本開示の範疇である。
図23は、中央値検出回路25が実際に抵抗中央値を算出した結果を示す。横軸にPUFデータ領域8を読み出した回数、縦軸にアップダウンカウンタの値を示している。PUFデータ領域8の抵抗値情報を予め読み出しておき、計算機により中央値を算出した場合の理論値が17であった。図からわかるように、読み出し回数が30回あたりで、ほぼ理論値である17に収束している様子が分かる。このように本開示の提案方式であれば抵抗値ばらつきの中央値を安定的に検出でき、中央値でもってディジタルIDデータ(PUFデータ)が良好に生成できる。
抵抗値のばらつきから、中央値検出回路25がその中央値を得るフローを第1のステップとする。この第1のステップは図13のS4ステップと図14のS9ステップに相当する。そして中央値の演算が完了した後、読み出し回路11が再度各メモリセルの抵抗値情報を読み出し、中央値との関係からディジタルIDデータを生成する。これを第2のステップとすると、第2のステップは図13のS5および図14のS10に相当する。なお、第2のステップには図14のS11,S12,S13を含んでも良い。
上述の処理は、主として制御回路15の制御および動作によって実現され得る。制御回路15は、上述の処理が行われるよう各構成要素を制御することにより、ディジタルIDデータを更新する。より具体的には以下のとおりである。
読み出し回路11が個体識別情報を生成する際、読み出し回路11は、新たに選択した予め定められた所定の数のメモリセルから抵抗値情報を取得する。中央値検出回路25は、新たに取得された抵抗値情報を利用して新たに2値化基準値を算出する。その後、読み出し回路11は、新たに選択した所定の数の異なるメモリセルから抵抗値情報を取得する。制御回路は、各抵抗値情報と2値化基準値の情報とを取得し、抵抗値情報と新たに算出された2値化基準値との関係に応じて個体識別情報を生成する。読み出し回路11によって得られる抵抗値情報は、周辺の温度、装置電源電圧の変動、更には経年劣化によって逐次相対的に変動する。前述のように、PUFデータ領域8の抵抗値情報が読み出される度に、中央値を再取得することで、現在の最適な値に追従させることが可能になる。
(中央値のオフセットによる複数のディジタルIDデータを得る方法の変形例)
次に中央値検出回路25の変形例を説明する。
図24は、中央値検出回路25の変形例の一例を示すブロック図である。図24の構成要素のうち、図21に記載されている構成要素と同じまたは実質的に同じ構造および/または機能を有する者には同じ参照符号を付して、その説明は省略する。図21の構成と比較して、図24の中央値検出回路25には、新たに加算器300と切替器301とが追加されている。
加算器300には制御回路15を介してオフセットが入力される。オフセットは、装置外部から入力され、または装置内部で生成される。加算器300は、オフセットと乗算器202の出力とを加算し、加算結果を切替器301のb端子に出力する。
切替器301のa端子には乗算器202の出力が接続されている。切替器301は、制御回路15から入力される制御信号Cに従って端子aの信号を出力するか、端子bの信号を出力するかを選択的に切り替える。
図24において、前述した第1のステップでは、制御信号Cの設定により切替器301はa端子に切り替える。つまり、第1のステップにおいては図21と実質的に等しい動作が行われる。
次に第2のステップ(図13のS5および図14のS10)では、制御信号Cの設定により切替器301はb端子に切り替える。b端子からは第1のステップで演算された抵抗中央値に制御回路15から入力されるオフセットを加算した結果を示す信号が出力される。
読み出し回路11は、切替器301によって選択された端子からの出力である中央抵抗値を受け取り、ディジタルIDデータを生成する。a端子から出力された中央抵抗値を用いて生成されるディジタルIDデータと、b端子から出力された、オフセットが加算された中央抵抗値を用いて生成されるディジタルIDデータとは、オフセットの有無に起因する差が存在し得る。
オフセットが加算されないIDデータを第1のディジタルIDデータとし、オフセットが加算されたIDデータを第2のディジタルIDデータとする。第1ディジタルIDデータと第2ディジタルIDデータはデータパターンが異なり、更にそれらはいずれも装置固有のデータとして利用可能である。
オフセットは、可変の値として中央値検出回路25に入力することができる。すなわち、オフセット量を正負に変化させるだけでデータパターンの異なる複数のディジタルIDデータが複数生成できることになる。
オフセット量が装置外部から入力されるならば、装置外部からの入力に対して異なるディジタルIDデータを返すことができる。これは、PUF技術におけるチャレンジ・レスポンス認証に相当する。複数のIDデータはオフセット量に対して固有のデータとなり、そのレスポンスは物理的に複製できない関数であるPUFに当たる。具体的なチャレンジ・レスポンス認証の例示は後述する。
(ディジタルIDデータの乱数性を検定する変形例)
図25は、本開示の実施形態の変形例を示す。図25の構成要素のうち、図18に記載されている構成要素と同じまたは実質的に同じ構造および/または機能を有するものには同じ参照符号を付して、その説明は省略する。
図25に示される不揮発メモリ装置10には、新たに乱数検定回路310が追加されている。乱数検定回路310は、得られたディジタルIDデータの乱数性を検定するために設けられている。
ディジタルIDデータの乱数性を検定する理由は、ハッキングにおけるフォルト攻撃(Fault Analysis Attack)対策のためである。フォルト攻撃とはICのセキュアブロックに対して強い電磁波またはレーザーを与え、回路に強制的な欠陥(fault)を与えて暗号器のアルゴリズムおよび鍵データを解析する攻撃である。例えばフォルト攻撃によりディジタルIDデータが全て1、または全て0のデータに変えられ、それを鍵データとして暗号化されると暗号データの解析が容易になる。または、正しいディジタルIDデータをデバイス鍵として利用して秘密鍵が暗号化されている場合に、フォルト攻撃によって得られたディジタルIDデータを用いて秘密鍵を復号化すると、その復号化プロセスが推測される恐れもある。その結果、秘密鍵が割り出される可能性がある。このような問題を未然に防ぐために、乱数検定回路による乱数性の検定が有効である。
乱数検定回路310にはディジタルIDデータがsビット単位で入力される。乱数検定にはχ二乗(カイ二乗)検定が用いられる。χ二乗検定とはsビットのディジタルデータのうち4ビット単位で取り出し、4ビットで表される16のディジタルデータパターンの頻度を累積する。0から15のディジタル値の出現個数をカウントし、理論値の差分を積算し、積算値がゼロに近いほど乱数性が高いとされる。
一般化したχ二乗演算について述べると、データパターンの取得個数をAとしたときD=A÷n(nはデータパターン数)となるDが、各データパターンの取得個数の理想値となり、このとき(Xn−D)2÷D(Xnは各データパターン毎の取得数)を、データパタ
ーン数n分だけ累積した値がχ二乗値となる。具体的には例えば、4ビットで表されるデータパターンのχ二乗値を演算するとき、データパターンの種類は0〜15の16通りある。sが32ビットとのき、sビットを16回取得すると合計512ビットのデータ数となる。512÷4=128であることから、取得されるデータパターン数は128個となる。128個のデータパターンが均一に0〜15のパターンに分かれるのであれば、128÷16=8となり、各データパターンの取得個数の理想値Dは8となる。つまり、データパターン毎の取得個数がXn(nは0から15の整数)であるとき、全てのデータパターンごとに(Xn−8)2÷8を求め、全てを合計したものが、取得した512ビット分のχ二乗値となる。
このように演算されたχ二乗値は、図25のデータ入出力回路6に送られ、更に装置外に出力される。装置外ではχ二乗値が所定の値以下であることを検定し、得られたディジタルIDデータが暗号鍵等に用いられるレベルの乱数性があるかを確認し、問題なければ利用する。
なお、不揮発メモリ装置10が、乱数検定回路310から得られた検定結果をもとに、たとえば制御回路15などを用いて、生成した個体識別情報が利用可能か否かを装置外に通知してもよい。
上述のように、乱数検定回路310を設けてデータの乱数性を検定することにより、フォルト攻撃等を受けた場合であっても、秘密鍵の窃取を未然に防ぐことができる。
図26は、メモリセルの規格化メモリセル電流と、本開示の読み出し回路で読み出した抵抗値情報の関係を示す。このときのメモリセル電流とは所定の読み出し電圧を印加したときのDC電流を一般的なテスター装置で測定したものである。つまり、全てのメモリセルに対して値が等しければ等しい抵抗値であることを示している。図にプロットされた点は、同一チップ内にある144個のセンスアンプにより得られた抵抗値情報をまとめてプロットしたものである。図からわかるようにメモリセル電流と回路で得た抵抗値情報には明確な相関がない。つまり、チャンネルごとに、更にはICごとにセンスアンプの特性がばらつき、絶対的な抵抗値と、回路により計測される抵抗値情報との関係は、センスアンプごとに異なることを示している。センスアンプの特性は、アンプを構成するトランジスタのVtなどのばらつきにより発生する。通常であれば、このようなばらつきは抑制して均一なセンスアンプにすることが望まれるが、PUF技術に応用する場合は回路ばらつきをエンハンスするような設計が好ましい。例えば、図19のLOAD用PMOSトランジスタ34のランダムばらつきが多くなるようなトランジスタサイズを用いるなどがあげられる。なお、ランダムばらつきを増やす手法は、種々考えられ設計事項であり割愛する。このようにセンスアンプのランダムばらつきが大きいと抵抗値の絶対値と、回路で得られる抵抗値情報とに明確な相関がなくなり、プローブなのでメモリセルを直接読み取られた場合であってもディジタルIDデータを予測することは困難になる。
次に、ディジタルIDデータのエラーレートを低くする方法を説明する。
図27は、本実施形態に係る不揮発性メモリ装置10を示すブロック図である。なお、図27に示す不揮発性メモリ装置10はあくまで一例であり、不揮発性メモリ装置10の具体的構成が図27に示される構成に限定されるものではない。
図18に示す不揮発性メモリ装置10と比較して、本実施形態に係る不揮発性メモリ装置10は、マスクデータ生成回路9をさらに備える。マスクデータ生成回路9は、読み出し回路11が生成したディジタルデータに基づいて、追加の書き込み動作を実行するメモリセルと実行しないメモリセルとの区別に用いるマスクデータを生成する。書き込み回路14は、生成されたマスクデータに基づいて、追加の書き込み動作を実行するメモリセルに対して追加の書き込み動作を行う。マスクデータおよび追加の書き込み動作の詳細については後述する。
図28は、本実施形態の不揮発性メモリ装置10の動作の一例として、ディジタルIDデータを生成する動作を示すフローチャートである。以下、図28を参照しつつ、不揮発性メモリ装置10の動作を説明する。
まず、ステップS21において、ディジタルIDデータ領域(PUF領域)8に対してフォーミングを実行する。図29は、フォーミング処理を示すフローチャートである。ステップS31において、書き込み回路14は、HRパルス(例えば+3.0V、10ms)をメモリセル21に印加した後に、ステップS32においてLRパルス(例えば−3.0V、5ms)を更にメモリセル21に印加する。これらステップS31およびS32の処理により、抵抗変化型のメモリセル21を初期の絶縁状態から、低抵抗値状態へ遷移させる。ステップS33にて、読み出し回路11は、ステップS31およびS32の書き込み動作を行ったメモリセル21の抵抗値情報を読み出し、低抵抗値範囲にあるか否かを判定する。低抵抗値範囲にないと判定したメモリセル21に対して、書き込み回路14は、再び同条件のHRパルスおよびLRパルスを印加する。書き込み回路14および読み出し回路11は、ステップS31およびS32の書き込み動作を行ったメモリセル21の抵抗値が低抵抗値範囲にあると判定されるまで、それら書き込み動作および抵抗値情報の読み出し動作を繰り返し実行する。ディジタルIDデータ領域8の全てのメモリセル21(全ビット)の抵抗値が低抵抗値範囲にあると判定されるまでこれらの動作を繰り返し(ステップS34およびS35)、全てのメモリセル21がPassしたとき、フォーミングフローは終了する。
次にステップS22(図28)で、ディジタルIDデータ領域8のディジタルIDデータを抽出するための判定値を算出する。図30は判定値算出処理を示すフローチャートである。ステップS41において、読み出し回路11は、ディジタルIDデータ領域8内のビットの抵抗カウント値を読み出し、COUNT_OUTに値が保持される。
ここで、ステップS41において、読み出し回路11がカウント値(抵抗カウント値の一例)を出力する動作について、図19、図20A、図20Bを用いて、具体的に説明する。
図20Aは、選択されたメモリセルを放電方式にて読み出す場合のタイミングチャートである。
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に出力され、マスクデータ生成回路9に格納されて、抵抗変化素子23のカウント値として扱われる。
T4のリセット期間においては、データ出力が完了すると、選択ワード線WLsの電位がロウレベルとされ、選択されたメモリセル21sのトランジスタ24がオフとなり、読み出し動作が終了する。
抵抗値カウンタ32のカウント値は中央値検出回路25に入力され、中央値検出回路25は入力された抵抗カウント値を元に判定値(中央値)を算出する(ステップS42)。ステップS43では、算出された判定値を比較器135の入力Aで保持する。
図20Bは、選択されたメモリセルを充電方式にて読み出す場合のタイミングチャートである。
T1のディスチャージ期間では、制御信号PRE、LOAD共にハイレベルとなり、プリチャージPMOSトランジスタ33とロードPMOSトランジスタ34は何れもオフ状態となる。また選択ワード線WLsの電位はロウレベルでトランジスタ24もオフ状態となっている。
クランプ回路のクランプNMOSトランジスタ35のゲート端子にVCLMPの電圧が印加され、選択ワード線WLsの電位をハイレベルにすることで、NMOSトランジスタ24はオン状態となるため、ノードSEN、選択ビット線BLsは抵抗変化素子23を介してGNDへ接続され、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の電位がロウレベルとされ、選択されたメモリセル21sのトランジスタ24がオフとなり、読み出し動作が終了する。
抵抗値カウンタ32のカウント値は中央値検出回路25に入力され、中央値検出回路25は入力された抵抗カウント値を元に判定値(中央値)を算出する。(ステップS42)。ステップS43では、算出された判定値を比較器135の入力Aで保持する。
図19の構成であれば、放電方式と充電方式の両方を用いることができる。しかし、放電方式の場合は、比較器135からは低抵抗で1、高抵抗で0が出力され、充電方式の場合は低抵抗で0、高抵抗で1が出力され、論理が反対になるため、取り扱いには注意が必要である。
コンデンサ36は容量を持つものであれば特に指定はない。例えば、MOSキャパシタを用いてもよいし、MIMキャパシタを用いてもよいし、配線の寄生容量を用いてもよい。
ステップS42では読み出し回路11によって読み出されたn個の抵抗カウント値が中央値検出回路25に入力される。中央値検出回路25は抵抗カウント値を受け取り後、制御信号Aにより、n個の中から順番に1つずつ抵抗値情報を乗算器202へ送信し、アップダウンカウンタ201によって随時、中央値が調整される。ディジタルIDデータ領域内のデータに対して、最終アドレスの抵抗値のアップダウンカウンタによる処理が完了したときの出力の値が中央値(判定値)として比較器135の入力Aに保持される。
判定値の算出後、ステップS23(図28)において、マスクデータ生成回路9は、マスクデータを生成する。図31はマスクデータを生成する処理を示すフローチャートである。ステップS51において、マスクデータ生成回路9は、中央値検出回路25によって算出された中央値を判定値として設定する。ステップS52において、読み出し回路11は、ディジタルIDデータ領域8の抵抗値情報の読み出しを実行し、抵抗カウント値を読み出す。ステップS53において、マスクデータ生成回路9は、判定値とディジタルIDデータ領域8内の抵抗値との大小を、読み出し回路11の比較器135を用いて比較する。判定値よりも抵抗値が小さいメモリセルには“1”データを割り当て、マスクデータはオフに設定する(ステップS54)、一方、判定値よりも抵抗値が小さくないメモリセルには、“0”データを割り当て、マスクデータはオンに設定する(ステップS55)。各マスクデータはデータ入出力回路6に保持される。ステップS56において、ディジタルIDデータ領域8の全ビットに対して、マスクデータが生成されたか否かを判定し、全ビットに対して生成されていなければ、次のアドレスに進み、全ビットに対して生成されていれば、マスクデータ生成のフローが終了する(ステップS56およびS57)。
次に、ステップS24(図28)において、書き込み回路14は、ステップS23で生成したマスクデータを用いて、“1”データを割り当てられたビット(メモリセル)に対してのみ、追加パルスを印加する。図32は追加パルスを印加する処理を示すフローチャートである。ステップS61において、データ入出力回路6に保持されたマスクデータを書き込み回路14へ設定し、ステップS62およびS63において、HRパルス(+1.8V、50ns)とLRパルス(−2.4V、50ns)の交互パルスが“1”データに割り当てられたビットのみに印加される。交互パルスの印加は所定の回数(例えば50回)繰り返される(ステップS64)。ステップS65において、ディジタルIDデータ領域8の“1”データに割り当てられた全ビットに対して処理が完了しているかを確認し、完了していなければ次のアドレスに選択が切り替えられる(ステップS66)。ディジタルIDデータ領域8内の“1”データに割り当てられた全ビットへ追加パルスが印加されるまで、処理を実行する(ステップS65およびS66)。
次に、S25(図28)においてディジタルIDデータを生成する。図33はディジタルIDデータを生成する動作を示すフローチャートである。ステップS71〜S73は図30のステップS41〜S43と実質的に同じ動作のため詳細な説明は割愛する。ステップS74にて、読み出し回路11は、中央値検出回路25にて算出された判定値を設定し、ステップS75においてディジタルIDデータ領域8の抵抗カウント値を読み出す。そして、比較器135を用いて、ステップS76〜S80に示すように判定値よりも抵抗値が小さい場合は“1”データ、判定値よりも抵抗値が大きい場合は“0”データを出力Aから出力する。この0と1のデータが、ディジタルIDデータとして扱われる。検査時には、書込み処理後にこの方式で読み出しを実行し、ディジタルIDデータとして登録される。ディジタルIDデータ登録によって、エラー訂正用のパリティデータが生成される。実使用の場合も同様な動作が実行され、ディジタルIDデータが抽出される。
次に、図34と図35を用いて、本実施形態の不揮発性メモリ装置10の動作により得られる効果について説明する。
図34は、ディジタルIDデータ領域8に対して、ステップS21(図28)のフォーミング処理を実行した後の各ビットのセル電流の累積確率分布を示したグラフである。ディジタルIDデータとして、ユニーク性の高いデータを生成するには、分布の中央値を判定値として設定し、0と1のデータ個数差を出来るだけ均等に切り分けることが重要である。しかし、図34のように、中央値を判定値として設定した場合、中央値付近にはセル電流値が互いに近いビットが多数存在する。このように、判定値付近にビットが密集すると、ディジタルIDデータの読み出し時に、抵抗変化素子の持つ抵抗値揺らぎによって、0と1が入れ替るデータが多数存在し、結果として読み出し毎のエラーレートが増加してしまう。図34のセル電流分布の状態でディジタルIDデータを連続的に読み出したときのエラーレートと読み出し回数の関係を図36に示している。前述したように、揺らぎによる影響から、2%前後のエラーレートの発生が確認できる。
一方、ステップS24(図28)の追加パルスを印加後のセル電流の累積確率分布を示したグラフを図35に示している。図35に示すように、“1”データ側にのみ、追加パルスを印加することで、“1”データ側のビットが僅かに高電流化するため、中央値付近に僅かながら、ウィンドウが存在する。この分布であれば、判定値(中央値)を用いて、データを生成しても、判定値付近に存在するビットが少ないため、抵抗値揺らぎに伴う、データの入れ替わりを軽減でき、結果としてエラーレートが抑制できる。図35のセル電流分布の状態でディジタルIDデータを連続的に読み出したときのエラーレートと読み出し回数の関係を図37に示している。前述したように抵抗揺らぎによるデータの入れ替わりの影響が小さくなり、エラーレートを0〜0.1%まで改善されていることが確認できる。
なお、図37に示す関係は、図32のステップS64に示すように、交互パルスの印加を50回繰り返したときの結果であるが、この交互パルスの印加回数はエラーレートを制御する上で重要なパラメータである。図38Aは、交互パルス印加回数と一定時間経過後のエラーレートの関係を示すグラフであり、横軸は交互パルス印加回数を示し、縦軸はエラーレートを示している。図38Bは、図38Aのグラフの領域A1を拡大した図である。図38Aおよび図38Bに示すとおり、交互パルス印加回数を増やすにつれて、エラーレートが減少していることが確認できる。すなわち、交互パルスの回数を調整することで、所定の範囲内であれば、任意のエラーレートを含ませたディジタルIDデータを生成することができる。例えば、制御回路15は、ステップS24(図28)における追加の書き込み動作における繰り返し回数、電圧、パルス幅のうちの少なくとも1つを変更して、書き込み回路14に書き込み動作を実行させる。これにより、ディジタルIDデータのエラーレートを任意に調整することができる。
また、ディジタルIDデータ領域8のメモリセル21を複数のグループに分け、グループ毎に追加の書き込み動作の条件を異ならせて、エラーレートが互いに異なる複数のグループを生成してもよい。これにより、ディジタルIDデータ領域8は、互いにエラーレートが異なる複数の領域を有することができる。
以上、説明したように、本開示の構成によれば、PUF技術の特徴である以下が満足できる。
特徴(1):本開示の抵抗変化型不揮発性メモリ装置において、同一の抵抗値範囲にあるメモリセルの抵抗値のばらつきは、人為的に故意のデータパターンで書き込むことができないため、このような複製できない物理的な現象から固有のディジタルIDデータ(個体識別情報)得ることができる。
特徴(2):本開示の抵抗変化型不揮発性メモリ装置において、ディジタルIDデータ(個体識別情報)に用いる抵抗値ばらつきはセンスアンプにより読み出される。センスアンプを構成するトランジスタには微細プロセス特有のランダムばらつきがあり、並列に読み出す各センスアンプごとのメモリセルの抵抗値情報は絶対値が異なる。従って、物理的に抵抗値を読み取ったとしてもセンスアンプを介して得た抵抗値情報と異なり、物理的には正しいディジタルIDデータを予測できない。すなわち、抵抗値ばらつきの物理的な現象は内部に搭載されているセンスアンプの動的な回路制御によってのみ得られる。
特徴(3):メモリ素子である抵抗変化型メモリセルはパーコレーションモデルに基づく抵抗値揺らぎを備えており、得られたIDデータには誤りがあり、誤り訂正回路によってのみ真のIDデータが得られる。
そして、本開示のPUF技術に基づいたディジタルIDデータには次の良好な性能がある。
性能(1):前述の特徴(3)であるデータ誤り現象は、本開示の構成によれば、一回ごとの誤り率は2〜3%と低いものの、累積の誤り率は読み出し回数に応じて14%以上にも増加するため機械学習攻撃に対して極めて強いという良好な特徴をもつ。
性能(2):抵抗値のばらつき分布が標準偏差の正規分布に従ってばらついている為、そこから得られるディジタルIDデータは良好な乱数性を示す。
性能(3):本開示はICおよびSoCに搭載される不揮発性メモリ装置の回路を大部分共用しているため、回路増加が僅かであり、回路オーバーヘッドが小さくかつ、読み出し電流も小さい。
性能(4):本開示はICおよびSoCに搭載される不揮発性メモリ装置を用いているため、並列読み出し数が多い。実施例では32bit並列制御のメモリアレイでデータを取得したが、一回の読み出しが500ns程度であり、生成速度は64Mbpsと非常に高速である。並列読み出し数が多いため、サイドチャネルアタックなどの電磁解析では各ビット状態を特定することが困難でハッキングに対する耐性が高い。
性能(5):専用のメモリセルを用いないSRAM−PUF、およびグリッジPUFのようにデータ誤り率が15%に比べ、本開示の構成によれば誤り率が2〜3%と小さい。このため誤り訂正回路の回路規模を小さくできる。
性能(6):専用のメモリセルを用いないSRAM−PUFのように、電源オン時のみ生成タイミングが制限されず、前述したように並列数によるが、一般的な並列数でも64Mbpsと非常に高速に生成できる。
以上のように、本開示のPUF技術によって得られるディジタルIDデータは、一長一短ある従来のPUF技術とは異なり、必要な特徴と性能要件を全て満足する良好なディジタルIDデータを得ることができる。本願のディジタルIDデータを用いれば、前述した秘密鍵の安全な保管、および認証におけるセキュリティー性を向上できるとともに、ICの複製などの脅威からユーザを確実に保護できる。
(ICカードへの応用例)
一つの応用例は、本開示により生成されるディジタルIDデータによる秘密鍵の暗号と、暗号化秘密鍵のフォーミングによる書き込みによるデータ隠蔽、さらに認証方法を開示する。
図39は、本開示の応用例にかかる通信システム500の構成例を示すブロック図である。図39において、通信システム500は、リーダライタおよびデータサーバー501(以降、リーダライタと略す)と、ICカード502とを備えている。リーダライタ501と、ICカード502とは、例えば、それぞれが有するアンテナなどを介して無線による通信を行う。
(リーダライタ側)
リーダライタ501は、RAM503と、入出力インタフェース(I/F)部504と、CPU505と、暗号処理回路506と、不揮発性メモリ装置515とを有している。
リーダライタ501の入出力I/F部504は、外部との無線通信を行ってデータを送受信するためのインタフェースであり、たとえば無線通信回路として実現され得る。入出力I/F部504は、RFアンテナを有している。入出力I/F部504は、所定の電磁波を輻射し、負荷の変化を利用して、ICカード502が近づけられたか否かを検出する。また、入出力I/F部504は、例えば、発振回路(図示せず)から供給される所定の周波数の搬送波を、CPU505から供給されるデータに基づいて変調する。入出力I/F部504は、該生成された変調波を、電磁波としてアンテナ(図示せず)から出力することで、近傍に配置されたICカード502へと各種のデータを送信する。また、アンテナを介してICカード502から送られた変調波を受信して復調し、得られたデータをCPU505に供給する。不揮発性メモリ装置215は、上述の不揮発性メモリ装置10に対応する。不揮発性メモリ装置515は、秘密鍵記憶部508と、データ記憶部509と、ROM部510と、固有ID記憶部511と、全ICカード固有ID記憶部540とを備えている。
ROM部510は、本開示の不揮発性メモリ装置515が備える第2種データ記憶用メモリセル群のうちの所定のアドレス領域に相当する。リーダライタ501のCPU505は、ROM部510記憶されているプログラムをRAM503にロードし、該プログラムを用いて各種の処理を実行する。RAM503にはCPU505が各種の処理を実行するために必要なデータなども一時的に記憶される。RAM503は、SRAM(Static Random Access Memory)またはDRAM(Dynamic Random Access Memory)などの揮発性記憶装置が用いられてもよい。あるいは、RAM503は、本開示の不揮発性メモリ装置の第2種データ記憶用メモリセル群の一部で構成されていてもよい。
固有ID記憶部511は本開示のディジタルIDデータを生成に用いるメモリセル群であり、リーダライタに固有のIDデータが本開示の方式により生成できる。さらに全ICカード固有ID記憶部は、第1種データまたは第2種データで記憶されるメモリセル群で構成されており、運用される複数のICカード502で異なるディジタルIDデータの全てが記憶されている。なお、全ICカードのディジタルIDデータは、リーダライタ固有のディジタルIDデータを暗号鍵として暗号化されたデータで記憶されることが望ましい。
CPU505は、暗号処理回路506を制御することにより、予め定められた暗号アルゴリズムに基づいて、データの暗号化と復号化を行う。暗号アルゴリズムとしては、トリプルDES(Data Encryption Standard)、AES(Advanced Encryption Standard)などが例示できる。これらは、いわゆる1つの秘密鍵を用いて暗号と復号を行う共通鍵暗号方式の暗号アルゴリズムである。また、RSA暗号といった秘密鍵と公開鍵の2つの異なる鍵を用い、暗号化時の鍵と、復号化時の鍵を異ならせることで暗号通信を行う公開鍵方式でもよい。この場合は、後述する秘密鍵記憶部508に通信相手の公開鍵と、通信者自身の秘密鍵の両方を格納してもよい。これらの重要な鍵データは、固有ID記憶部511から生成される本開示のディジタルIDデータを暗号鍵として暗号化して、暗号化秘密鍵または暗号化公開鍵として格納することが望ましい。前述したようにPUF技術を用いて生成されたディジタルIDデータはリーダライタに固有であり、複製およびハッキングが困難である。従って、それを用いて暗号化された暗号化秘密鍵または暗号化公開鍵がコピーされてもディジタルIDデータがコピーできないIC固有のデータであるため安全である。
リーダライタ501においてデータの暗号化または復号化を行う場合、例えば、CPU505は、不揮発性メモリ装置515内の所定のアドレス領域である秘密鍵記憶部508に記憶された暗号化秘密鍵を、本開示のディジタルIDデータを鍵として復号化し、元の秘密鍵を得て、暗号化または復号化すべきデータとともに、暗号処理回路506に供給する。暗号処理回路506は、供給された秘密鍵を用いてデータの暗号化または復号化を実行する。
データ記憶部509は、CPU505がプログラムを実行する上で必要なデータが記憶されている。データ記憶部509において、所定のデータは、本開示のディジタルIDデータを鍵として暗号化して記憶されていてもよい。なお、所定のデータは、初期状態のメモリセルを利用して記憶されていてもよいし、可変状態のメモリセルを利用して記憶されていてもよい。
秘密鍵記憶部508としては、前述した第1種データ記憶用メモリセル群を用いてもよいし、第2種データ記憶用メモリセル群を用いてもよい。第2種データ記憶用メモリセル群を用いる場合は、他の一般的な不揮発性メモリを用いるのと大きな違いはない。第1種データ記憶用メモリセルを用いる場合は、抵抗変化素子の初期状態と可変状態との違いでデータを記憶するため、通常の読み出し閾値のコマンドではデータを読み出すことができない。よって、鍵情報の隠蔽が行える。第1実施形態で述べたように、可変状態にあるメモリセルから“0”と“1”のディジタルデータを読み出すためには、第2閾値を用いて“0”と“1”の判定が行なわれる。第2閾値で第1種データ記憶用メモリセル群を読み出すと、ほとんどのメモリセルが“0”にデコードされ、正規のデータを読み出せない。なお、秘密鍵記憶部508において、秘密鍵は、前述の暗号化秘密鍵として記憶されることが望ましい。
また、メモリセルアレイ内の自由なアドレスに第1種データ記憶用メモリセル群と第2種データ記憶用メモリセル群とを配置できる。よって、プローブを用いて物理的に抵抗値を直接読み出すような解析を行おうとしても、そのメモリセルが第1種データ記憶用メモリセル群および第2種データ記憶用メモリセル群のいずれに属するのかを特定が困難である。更にディジタルIDデータで暗号化されたデータか、非暗号のデータかの区別が困難であるため、更に解析を複雑にせしめる。
以上のように、図39に示す通信システム500は、秘密鍵の漏洩に対し強い耐タンパ性(tamper resistant)があるといえる。さらに第1種データ記憶用メモリセル、および本開示のディジタルIDデータは、高温においてのデータ信頼性にも優れ、データ誤りが許容されない秘密鍵の記憶および暗号化にも最適である。
秘密鍵記憶部508に記憶される秘密鍵は、ICカード502の秘密鍵記憶部526に記憶されている秘密鍵と同じものとされてもよい。ICカード502に対応するリーダライタ501であって、ICカード502に固有のディジタルIDデータであるカードIDの読み出しを許可されたリーダライタ501のみに、予め秘密鍵が記憶されていてもよい。
固有のディジタルIDデータは、本開示の実施の形態で説明したPUF技術に基づき固有ID記憶部525にデータ誤りを内在した状態で記憶されている。
固有ディジタルIDデータは前述したようにICカードごとに固有の乱数になりうる。このため、ICカード固有の各種暗号化に用いることができる。
(ICカード側)
ICカード502は、入出力インタフェース(I/F)部520と、CPU521と、暗号処理回路522と、RAM523と、不揮発性メモリ装置530とを有している。
ICカード502の入出力I/F部520は、外部との無線通信を行ってデータを送受信するためのインタフェースであり、たとえば無線通信回路として実現され得る。入出力I/F部520は、例えば、コイル状のアンテナとコンデンサにより構成されるLC回路が一般的に用いられる。ICカードのアンテナがリーダライタ501に近づけられると、リーダライタ501から輻射される所定の周波数の電磁波と共振するようになっている。また、入出力I/F部520は、アンテナにおいて交流磁界により励起された電流を整流化および安定化し、ICカード502の各部に直流電源として供給する。
入出力I/F部520は、アンテナを介して受信した変調波を検波して復調し、復調後のデータをデコードしてディジタルデータに復元しCPU521に供給する。また、デコードしたディジタルデータに周波数と位相をロック(PLLと呼ばれるクロック再生技術:装置内部に電圧可変のオシレータが搭載されており、入力されたディジタルデータにあわせて、位相誤差を検出および積分して制御用の電圧を生成し、オシレータの制御電圧として入力することで入力されたデータのサンプリング周波数を一致させ、かつ位相も固定したクロックを得る)させた受信用のクロック信号(図示せず)が発生され、ディジタルデータのデータラッチ用のクロック信号として供給される。
さらに、入出力I/F部520は、所定の情報をリーダライタ501に送信する場合、CPU521から入力されエンコードされたデータにしたがってアンテナの負荷に変動を発生させ変調し、アンテナを介してリーダライタ501に送信する。
ICカード502は本開示の不揮発性メモリ装置530を備える。不揮発性メモリ装置530は本実施形態の上述の不揮発性メモリ装置515に対応する。よって以下の説明では、共通する要素については同一の符号および名称を付して適宜参照する。なお、本応用例では、不揮発性メモリ装置530が不揮発性記憶装置としても機能する。
不揮発性メモリ装置530は、ICカードごとに固有のディジタルIDデータを記憶する固有ID記憶部525と、秘密鍵データを記憶する秘密鍵記憶部526と、CPU521がプログラムを実行する上で必要なデータが記憶されたデータ記憶部527と、CPU521が実行するプログラムが記憶されたROM部528とを備える。それらの全てが1個のメモリセルアレイ(図1のメモリセルアレイ90、図18および図25のメモリセルアレイ20)に包含されている。そして、CPU521はROM部528に記憶されているプログラムをRAM523にロードし、実行するなどして各種の処理を行う。ROM部528に記憶されたプログラムデータは、固有ID記憶部にあるメモリセル群をもとに生成される本開示のディジタルIDデータを鍵として用いて暗号化されて記憶されても良い。
CPU521は、暗号処理回路522を制御することにより、予め定められた暗号アルゴリズムに基づいて、データの暗号化と復号化を行う。上述したように、典型的な暗号方式には、送信側と受信側で同じ秘密鍵で暗号化と復号化を行う共通鍵方式と、異なる公開鍵と秘密鍵で暗号化と復号化を行う公開鍵方式がある。以下の説明では、共通鍵方式を採用した場合について説明する。
なお、公開鍵方式では、ICカード側が暗号化した暗号文データをICカード502がリーダライタ501側に送信する場合は、予めリーダライタ501側から入手した公開鍵で暗号化する。逆に、リーダライタ501側から送られてきた暗号文データは、ICカード502側で予め記憶してある秘密鍵にて復号する。以上の点以外は、公開鍵方式も共通鍵方式と同様である。公開鍵方式における公開鍵と秘密鍵は、互いに唯一のペアの鍵であるため、互いに暗号化されたデータを復号することで同時に相互認証もできることになる。
ICカード502においても、カードリーダでの説明と同様に秘密鍵記憶部526へ記憶する鍵データは、本開示のPUF技術に基づき固有ID記憶部525にあるディジタルIDデータにより暗号化された暗号化秘密鍵または暗号化公開鍵として保存される。更に、その記憶には第1種データ記憶用メモリセルにより記憶されうる。ICカード502において、データの暗号化または復号化を行う場合、CPU521が、不揮発性メモリ装置530内の第1種データ記憶用メモリセル群の一部である秘密鍵記憶部526に記憶された暗号化秘密鍵データを、図3の第1の閾値で読み出す特殊なリードコマンドにて読み出す。読み出された暗号化秘密鍵データは、本開示のディジタルIDデータにより復号化され元の秘密鍵データとする。CPU521は、秘密鍵データを、暗号化または復号化すべきデータとともに、暗号処理回路522に供給する。暗号処理回路522は、供給された秘密鍵を用いて、供給されたデータの暗号化または復号化を実行する。
データ記憶部527は、CPU521がプログラムを実行する上で必要なデータが記憶されている。データ記憶部527において、所定のデータが平文のまま記憶されていてもよいし、秘密鍵で暗号化されて記憶されていてもよいし、ディジタルIDデータを鍵として暗号化されて記憶されてもよい。なお、所定のデータは、初期状態のメモリセルを利用して記憶されていてもよいし、可変状態のメモリセルを利用して記憶されていてもよい。
このような暗号化と復号化の機能を備えた通信システム500において、ICカード502とリーダライタ501との通信の第1ステップについて以下に述べる。
ICカード502において各ICカード固有のディジタルIDデータは、本開示の実施の形態で説明したPUF技術に基づき固有ID記憶部525にデータ誤りを内在した状態で存在している。
CPU521は、各ICカード固有のディジタルIDデータを固有ID記憶部525から読み出す。CPU521は、読み出した暗号化秘密鍵データとディジタルIDデータを鍵として暗号処理回路522に供給する。暗号処理回路522は供給されたディジタルIDデータを鍵として暗号化秘密鍵を元の秘密鍵に復号化する。そして、今度は元の秘密鍵を用いてディジタルIDデータを暗号化する。暗号化された暗号化ディジタルIDデータは入出力I/F部520、504を介して、リーダライタ側のCPU505に供給される。
CPU505は、リーダライタ501内の不揮発性メモリ装置515の秘密鍵記憶部508から、秘密鍵データを読み出す。CPU505は、秘密鍵データと、受信した暗号化ディジタルIDデータを、暗号処理回路506に供給する。暗号処理回路506は、供給された秘密鍵データを用いて、暗号化ディジタルIDデータを復号化する。復号化されたディジタルIDデータは固有ID記憶部511が記憶している各IDデータと照合される。各IDデータの中に復号化されたIDデータと一致するものがあれば、通信したICカード502がデータ通信を行う資格のある正規のICカード502であると認証される。そして、その後のデータ通信が継続して実行される。
リーダライタ501とICカード502との相互認証において別の変形例を示す。
リーダライタ501の全ICカード固有ID記憶部540は、前述した中央値のオフセット量を変更して得られる複数のディジタルIDデータをICカードごとに保管している。リーダライタ501は、オフセット量と、受け取りたいディジタルIDデータのアドレス情報を暗号化し、チャレンジデータとして、ICカード502に送信する。ICカード502は受け取ったチャレンジデータを復号化してオフセット量とアドレス情報を得て、それに応じたディジタルIDデータを暗号化し、レスポンスデータとしてリーダライタ501に返信する。
リーダライタ501は受け取ったレスポンスデータを復号化して、ICカード502ごとに固有のディジタルIDデータを、予め全ICカード固有ID記憶部に登録されているIDデータと検索・照合を行い。所定のビット数以上が一致していることを確認してICカードを認証する。
レスポンスデータであるディジタルIDデータには、前述したような誤りデータを含んだ状態で送られるため、ハッキングに対して耐性が高い。ディジタルIDデータは、各ICカードで異なる乱数でありデータ間に十分なハミング距離があれば所定のビット数の誤りデータがあったとしても何れのICカードのIDデータかを特定することができる。このため、チャレンジデータの送信と、レスポンスデータの受信を繰り返すことで、ICカードが正規のカードであることを特定できる。さらに認証に用いられているデータがICカードごとに固有かつ誤りのあるデータであるためデータの解析が困難であり非常に高いセキュリティーが担保された認証が実現できる。
以上のように、通信システム500によれば、固有ディジタルIDデータ生成、秘密鍵記憶、データ記憶、プログラムデータ記憶の機能を、ただ一つの不揮発性メモリ装置で実現できる。別途PUF技術に基づくID生成用の回路を搭載する必要がなく、回路規模の増加を極力抑制したICカードのようなモバイル型アプリケーションが提供できる。
RAM503の機能を不揮発性メモリ装置515が備えるメモリセルアレイで実現してもよい。RAM523の機能を不揮発性メモリ装置530が備えるメモリセルアレイで実現してもよい。
情報の記憶手段として第1種データ記憶用メモリセルと第2種データ記憶用メモリセルとを任意に混在させて各種データを保存できるため、どのエリアのメモリセルが何れの状態で情報が記憶されているかを第三者に対し秘匿することができる。さらに、物理的なプローブを用いてメモリ内のデータを直接読み出すようなハッキングからもディジタルIDデータを防衛でき、極めて耐タンパ性の優れたアプリケーションが提供できる。
なお、ディジタルIDデータを暗号鍵として用いて暗号化されたデータ(暗号化データ)が、ICカード502に記憶されることは必須ではない。たとえば、リーダライタ501が暗号化データを読み取り、リーダライタ501のデータ記憶部509が暗号化データを記憶してもよい。さらにリーダライタ501が暗号化データを外部に設けられたサーバ(図示せず)に送信し、そのサーバの記憶装置が記憶してもよい。暗号化データがICカード502に記憶されていない場合には、復号化の手順は以下のとおりである。すなわち、ICカード502のCPU521は、入出力I/F部520を介して外部に記憶されている暗号化データを受信する。またCPU521は、各ICカード固有のディジタルIDデータを固有ID記憶部525から生成する。その後、暗号処理回路522が、ディジタルIDデータを復号鍵として用いて当該暗号化データを復号化する。
上記説明から、当業者にとっては、本開示の多くの改良および他の実施形態が明らかである。従って、上記説明は、例示としてのみ解釈されるべきであり、本開示を具体化する最良の態様を当業者に教示する目的で提供されたものである。本開示の精神を逸脱することなく、その構造および/又は機能の詳細を実質的に変更できる。