(本開示の基礎となった知見)
実施形態について説明する前に、本発明者らが見出した知見について説明する。なお、以下の説明は、本開示を理解する上で一助とされるものであり、本開示を限定するものではない。
本発明者らは、酸素不足型のTa酸化物(TaOx)を抵抗変化素子とし、メモリセルが1つのトランジスタと1つの抵抗変化素子とで構成される、いわゆる、1T1R型メモリセルで構成されたメモリセルアレイを用いて実験を行った。
図1は、1kbitのメモリセルからなるメモリセルアレイにおける抵抗値の分布の一例を示すグラフである。横軸が抵抗値を示し、縦軸が標準正規分布の偏差を示す。メモリセルに含まれる抵抗変化素子の構成は、以下の通りであった。抵抗変化素子の大きさは約400nm×400nmであった。下部電極の材料はTaNであり、下部電極の厚さは約50nmであった。上部電極の材料はイリジウムであり、上部電極の厚さは約100nmであった。抵抗変化層は、第1タンタル酸化物層と、第2タンタル酸化物層とを含んでいた。第1タンタル酸化物層の厚さは約65nmであり、第2タンタル酸化物層の厚さは約5nmであった。
図1に示される状態Aは、初期状態の中でも、製造後に電気的ストレスが全く印加されていない状態に相当する。この状態は、第1初期状態と呼ばれる場合がある。状態Aのメモリセルは、電気的ストレスが印加されていない。図1に示されるように、状態Aのメモリセルにおいて、抵抗値のばらつきは小さく、抵抗値は高かった。そのため、状態A、すなわち第1初期状態は、非常に安定である。
図1に示される状態Bは、第1初期状態のメモリセルに対し、抵抗値情報を読み出す時に印加される電気的ストレスよりも大きく、かつ、フォーミングストレスよりも小さい所定の電気的ストレスが印加された状態に相当する。本開示において、この所定の電気的ストレスは、データ生成用電気的ストレスと呼ばれる場合がある。なお、データ生成用電気的ストレスが印加された後に、その抵抗値が初期抵抗値範囲に留まっている状態は、第2初期状態と呼ばれる場合がある。
状態Bの抵抗値の分布は、第1初期状態の抵抗値の分布よりも低抵抗側に広がっていた。第2初期状態は、初期状態ではあるものの、初期状態と可変状態とを判定する基準となる第1閾値付近まで、抵抗値が分布していた。
状態Aの抵抗値分布と状態Bの抵抗値分布との違いの原因は、次のように考えられる。
初期状態のメモリセルは、金属酸化物中に複数の欠陥サイトを有し、それらはメモリセル毎にランダムに分布している。初期状態のメモリセルに電気的ストレスが印加されると、ストレスの強度や回数に応じて、欠陥サイトの密度が増大し、欠陥サイト同士が徐々に接続されていく。欠陥サイトが接続されるとは、欠陥サイトと欠陥サイトの間のサイトが欠陥サイトとなることによって、欠陥サイトの連なりが形成されることをいう。そして、抵抗変化素子の内部にフィラメントが形成されることにより、フォーミング処理が完了し、抵抗変化素子は可変状態となる。本開示では、欠陥サイトの連なりのうち、メモリセルを可変状態とするようなものをフィラメントと呼ぶ。言い換えれば、可変状態のメモリセルはフィラメントを有し、初期状態のメモリセルは、欠陥サイトの連なりを有する場合はあっても、フィラメントは有さない。
例えば、第1初期状態にある複数のメモリセルに対して一定の電気的ストレスを印加した場合、フォーミング処理が完了する前であっても、欠陥サイトの連なりが部分的に生成されうる。この欠陥サイトの連なりの長さや太さは、統計的に(例えば標準正規分布様に)ばらつく。
第2初期状態にあるメモリセルの抵抗値は、第1初期状態のメモリセルの抵抗値よりも低く、確率的にばらつく。電気的ストレスの印加によって広がる抵抗値のばらつきが、第1初期状態の抵抗値のばらつき(例えば製造ばらつき)よりも大きい場合、電気的ストレスの印加は、初期状態のメモリセルにおける抵抗値の分布を広げることができる。なお、抵抗値の統計的なばらつきは、データ生成用電気的ストレスの印加によって、一部または全部のメモリセルが初期状態から可変状態に変化する場合においても、同様に発現すると考えられる。
本発明者らは、この性質を利用して、装置毎に固有の数値データを生成できることを見出した。例えば、第1初期状態にある複数のメモリセルから読み出された複数の抵抗値を利用して、装置毎に固有の数値データが生成されうる。
数値データは、所定の判定条件に基づいて、複数の抵抗値情報のそれぞれに選択的に値を割り当てることにより生成されうる。所定の判定条件は、読み出された複数の抵抗値情報を用いて設定されうる。
以下、添付図面を参照しつつ、本開示の実施形態について説明する。
以下で説明する実施形態は、いずれも一具体例を示すものである。以下の実施形態で示される数値、形状、材料、構成要素、構成要素の配置位置および接続形態、ステップ、ステップの順序などは、あくまで一例であり、本開示を限定するものではない。以下の実施形態における構成要素のうち、本開示の最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。また、図面において、同じ符号が付いたものは、説明を省略する場合がある。また、図面は理解しやすくするために、それぞれの構成要素を模式的に示したもので、形状および寸法比等については正確な表示ではない場合がある。また、製造方法においては、必要に応じて、各工程の順序等を変更でき、かつ、他の公知の工程を追加できる。
(実施形態の概要)
本開示の一態様に係るデータ生成装置は、複数のメモリセルがアレイ状に配置されたメモリセルアレイと、複数のメモリセルから複数の抵抗値情報を取得する読み出し回路と、複数の抵抗値情報を取得し、複数の抵抗値情報を用いて判定条件を設定し、該判定条件に基づいて複数の抵抗値情報のそれぞれに対し複数の値から選択的に1つの値を割り当てることによりデータを生成する、データ生成回路と、を備える。複数のメモリセルのそれぞれは、異なる複数の電気的ストレスが印加されることによって抵抗値が複数の可変抵抗値範囲の間を不揮発的かつ可逆的に遷移する可変状態を取りうる性質を有する。
かかる構成では、例えば、より安全な暗号技術等に応用可能な、従来にないデータ生成方法が提供されうる。
なお、該判定条件は、例えば、予め定められていてもよいし、データ生成回路によってその都度、動的に定められてもよい(以下、同様)。
上記データ生成装置において、データ生成回路は、該判定条件に基づいて複数の抵抗値情報のそれぞれを第1群と第2群のいずれに振り分けるかを決定し、第1群に振り分けられた場合には第1値を割り当て、第2群に振り分けられた場合には第2値を割り当てることにより、データを生成してもよい。
上記データ生成装置において、第1値の個数をN1とし、第2値の個数をN2とするとき、判定条件が、N1およびN2が以下の式(1)および式(2)を満たすように定められてもよい。
かかる構成では、各メモリセルが、2値のいずれかに実質的に均等に振り分けられる。よって、例えば、より高品質な乱数データが生成されうる。
上記データ生成装置において、データ生成回路は、N1とN2との差が0でない所定の設定値となるように判定条件を設定してもよい。
かかる構成では、意図的に2値への振り分けを偏らせることができる。よって、生成されたデータは、例えば、連検定および最長連検定をパスしやすくなる。
「所定の設定値」は、間接的に予め定められていてもよい。例えば、設定値は、所定の演算式等でその都度、求められてもよい。
上記データ生成装置において、判定条件は、抵抗値情報と所定の判定値との比較を用いるものであってもよい。判定値は、複数の抵抗値情報の中間値であってもよい。
上記データ生成装置において、複数のメモリセルのそれぞれは、可変状態に変化させるような電気的ストレスであるフォーミングストレスが印加されない限り可変状態とならず、かつ、抵抗値が可変抵抗値範囲のいずれとも重複しない初期抵抗値範囲にある、初期状態を取りうる性質をさらに有してもよい。判定条件は、抵抗値情報と所定の判定値との比較を用いるものであってもよい。判定値の少なくとも1つが初期抵抗値範囲に含まれてもよい。
上記データ生成装置において、データ生成回路は、データを所定の検定条件に基づいて検定するデータ検定回路をさらに備えてもよい。データ検定回路がデータを不合格と判断した場合に、データ生成回路は、判定条件を変更してデータを生成し直してもよい。
かかる構成では、例えば、より高品質な乱数データが生成されうる。
「所定の検定条件」は、間接的に予め定められていてもよい。例えば、検定に用いる閾値等が、所定の演算式等でその都度、求められてもよい(以下、同様)。
上記データ生成装置において、メモリセルアレイは、それぞれ複数のメモリセルからなる複数のブロックを備えてもよい。読み出し回路は、前記ブロック毎に前記複数のメモリセルから複数の抵抗値情報を取得してもよい。データ生成回路は、ブロック毎に複数の抵抗値情報を取得し、ブロック毎に取得された複数の抵抗値情報を用いてブロック毎に判定条件を設定し、該判定条件に基づいて複数の抵抗値情報のそれぞれに対し複数の値から選択的に1つの値を割り当てることによりブロック毎にブロックデータを生成し、複数のブロックデータからデータを生成してもよい。
かかる構成では、ブロック毎に読み出された抵抗値情報を用いてブロック毎に判定条件が設定されるため、例えば、大規模かつ高品質な乱数データが生成されうる。
上記データ生成装置において、データ生成回路は、該判定条件に基づいて複数の抵抗値情報のそれぞれを第1群と第2群のいずれに振り分けるかを決定し、第1群に振り分けられた場合には第1値を割り当て、第2群に振り分けられた場合には第2値を割り当てることにより、ブロックデータを生成してもよい。
上記データ生成装置において、複数のメモリセルのそれぞれは、可変状態に変化させるような電気的ストレスであるフォーミングストレスが印加されない限り可変状態とならず、かつ、抵抗値が可変抵抗値範囲のいずれとも重複しない初期抵抗値範囲にある、初期状態を取りうる性質をさらに有してもよい。判定条件は、抵抗値情報とブロック毎に設定される判定値との比較を用いるものであってもよい。ブロック毎に設定される判定値は初期抵抗値範囲に含まれてもよい。
上記データ生成装置において、データ生成回路は、ブロックデータを所定の検定条件に基づいて検定し、ブロックデータが不合格と判断された場合に、判定条件を変更してブロックデータを生成し直してもよい。
上記データ生成装置において、読み出し回路は、複数のメモリセルから第1の複数の抵抗値情報を取得し、データ生成回路は、ブロックデータを生成する前に、第1の複数の抵抗値情報を所定の検定条件に基づいて検定してもよい。検定の結果、第1の複数の抵抗値情報が不合格と判断された場合に、電圧印加回路が複数のメモリセルの少なくとも一部に所定の電気的ストレスを印加し、読み出し回路が複数のメモリセルから第2の複数の抵抗値情報を複数の抵抗値情報として取得してもよい。第1の複数の抵抗値情報が合格と判断された場合に、第1の複数の抵抗値情報が複数の抵抗値情報とされてもよい。このとき、所定の検定条件は、第1の複数の抵抗値情報の偏りを検定するものであってもよく、第2の複数の抵抗値情報の偏りは、第1の複数の抵抗値情報の偏りよりも小さくてもよい。
これらの構成では、ブロック毎にデータの検定が行われることで、例えば、大規模かつ高品質な乱数データが生成されうる。「所定の検定値」は、間接的に予め定められていてもよい。例えば、検定値が、所定の演算式等でその都度、求められてもよい(以下、同様)。
上記データ生成装置において、データ生成回路は、累算器を備えてもよい。累算器は、過去に生成された1つ以上のブロックデータに含まれる第1値の累計個数と、当該1つ以上のブロックデータに含まれる第2値の累計個数と、当該1つ以上のブロックデータに含まれる第1値の累計個数および第2値の累計個数の差とのうち、少なくとも1つを求めてもよい。求められた少なくとも1つの値を利用して、ブロック毎の判定条件が設定されてもよい。
かかる構成では、例えば、大規模かつ高品質な乱数データが生成されうる。
上記データ生成装置において、累算器によって求められた少なくとも1つの値が所定の検定条件を満たすか否かを検定する累計検定回路を備えてもよい。この検定で不合格と判断された場合に、データ生成回路は、過去に生成された1つ以上のブロックデータのうち最後に生成されたブロックデータに対応するブロックについて設定されていた判定条件を変更して、最後に生成されたブロックデータを生成し直してもよい。
かかる構成では、例えば、大規模かつ高品質な乱数データが生成されうる。
上記データ生成装置において、第1値の累計個数をN1とし、第2値の累計個数をN2とするとき、検定条件は、N1およびN2が以下の式(3)および式(4)を満たすことであってもよい。
かかる構成では、ブロック毎に、各抵抗値情報が、2値のいずれかに実質的に均等に振り分けられる。よって、例えば、大規模かつ高品質な乱数データが生成されうる。
上記データ生成装置において、データ生成回路は、ブロックデータを構成する第1値の個数をN1とし、第2値の個数をN2とするとき、N1とN2との差が0でない所定の設定値となるように、かつ、N1およびN2が以下の式(5)および式(6)を満たすように、ブロックデータに対応するブロック毎に設定される判定条件を定めてもよい。
かかる構成では、意図的に2値への振り分けを偏らせることができる。よって、生成されたデータは、例えば、連検定および最長連検定をパスしやすくなる。
上記データ生成装置において、抵抗値情報を読み出す時に印加される電気的ストレスよりも大きな電気的ストレスが初期状態にある複数のメモリセルに印加された後に、読み出し回路が複数のメモリセルから複数の抵抗値情報を取得してもよい。大きな電気的ストレスは、フォーミングストレスであってもよい。あるいは、大きな電気的ストレスは、データ生成用電気的ストレスであってもよい。後者の場合、上記データ生成装置は、データ生成用電気的ストレスを複数のメモリセルに印加する電圧印加回路をさらに備えてもよい。
かかる構成では、例えば、第1初期状態の抵抗値のばらつきが小さ過ぎてデータの生成が困難な場合であっても、高品質な乱数データが生成されうる。
上記データ生成装置は、複数のメモリセルにフォーミングストレスを印加することで、各メモリセルの抵抗値が初期抵抗値範囲にあるか否かの違いを利用して、メモリセルアレイにデータを記録する、電圧印加回路をさらに備えてもよい。
かかる構成では、例えば、得られたデータが、初期状態か否かの違いを利用して安定して記録されうる。例えば、データ生成に用いるメモリセルアレイが、データ記録にも用いられるため、装置構成が簡潔化され、装置の小型化が可能となる。
上記データ生成装置は、複数のメモリセルに異なる複数の電気的ストレスを印加することで、各メモリセルの抵抗値が初期抵抗値範囲にあるか否かの違いを利用せずに、各メモリセルの抵抗値が少なくとも一つの可変抵抗値範囲にあるか否かの違いを利用して、メモリセルアレイにデータを記録する、電圧印加回路をさらに備えてもよい。
かかる構成では、例えば、得られたデータが不揮発的に記録されうる。例えば、データ生成に用いるメモリセルアレイが、データ記録にも用いられるため、装置構成が簡潔化され、装置の小型化が可能となる。
本開示の一態様に係るデータ生成方法は、メモリセルアレイに含まれる複数のメモリセルから複数の抵抗値情報を取得するステップAと、複数の抵抗値情報を用いて判定条件を設定するステップBと、該判定条件に基づいて複数の抵抗値情報のそれぞれに対して複数の値から選択的に1つの値を割り当てることによりデータを生成するステップCと、を備える。複数のメモリセルのそれぞれは、可変状態にあるとき、異なる複数の電気的ストレスの印加に応じて抵抗値が複数の可変抵抗値範囲の間を不揮発的かつ可逆的に遷移する性質を有する。
かかる構成では、例えば、より安全な暗号技術等に応用可能な、従来にないデータ生成方法が提供されうる。
上記データ生成方法において、ステップCは、該判定条件に基づいて複数の抵抗値情報のそれぞれを第1群と第2群のいずれに振り分けるかを決定し、第1群に振り分けられた場合には第1値を割り当て、第2群に振り分けられた場合には第2値を割り当てることにより、データを生成するものであってもよい。
上記データ生成方法において、さらに、ステップBは、第1値の個数をN1とし、第2値の個数をN2とするとき、N1およびN2が以下の式(7)および式(8)を満たすように判定条件を定めるものであってもよい。
かかる構成では、各抵抗値情報が、2値のいずれかに実質的に均等に振り分けられる。よって、例えば、より高品質な乱数データが生成されうる。
上記データ生成方法において、ステップBは、N1とN2との差が0でない所定の設定値となるように判定条件を設定するものであってもよい。
かかる構成では、意図的に2値への振り分けを偏らせることができる。よって、生成されたデータは、例えば、連検定および最長連検定をパスしやすくなる。
上記データ生成方法において、判定条件は、抵抗値情報と所定の判定値との比較を用いるものであってもよい。ステップBは、複数の抵抗値情報の中間値を判定値として設定してもよい。
上記データ生成方法において、複数のメモリセルのそれぞれは、さらに、可変状態に変化させるような電気的ストレスであるフォーミングストレスが印加されない限り可変状態とならず、かつ、抵抗値が可変抵抗値範囲のいずれとも重複しない初期抵抗値範囲にある、初期状態を取りうる性質をさらに有してもよい。判定条件は、抵抗値情報と所定の判定値との比較を用いるものであってもよい。判定値の少なくとも1つが初期抵抗値範囲に含まれてもよい。
上記データ生成方法は、データを所定の検定条件に基づいて検定するステップEと、ステップEにおいてデータが不合格と判断された場合に、判定条件を変更してステップAとステップBとステップCとを再度実行することでデータを生成し直すステップFとをさらに備えてもよい。
かかる構成では、例えば、より高品質な乱数データが生成されうる。
上記データ生成方法において、メモリセルアレイは、それぞれ複数のメモリセルからなる複数のブロックを備えてもよい。ステップAは、ブロック毎に複数の抵抗値情報を取得するものであってもよい。ステップBは、ブロック毎に取得された複数の抵抗値情報を用いてブロック毎に判定条件を設定するものであってもよい。ステップCは、該判定条件に基づいて複数の抵抗値情報のそれぞれに対し複数の値から選択的に1つの値を割り当てることによりブロック毎にブロックデータを生成し、複数のブロックデータからデータを生成するものであってもよい。
かかる構成では、ブロック毎に読み出された抵抗値情報を用いてブロック毎に判定条件が設定されるため、例えば、大規模かつ高品質な乱数データが生成されうる。
上記データ生成方法において、ステップCは、該判定条件に基づいて複数の抵抗値情報のそれぞれを第1群と第2群のいずれに振り分けるかを決定し、第1群に振り分けられた場合には第1値を割り当て、第2群に振り分けられた場合には第2値を割り当てることにより、ブロックデータを生成するものであってもよい。
上記データ生成方法において、判定条件は、抵抗値情報とブロック毎に設定される判定値との比較を用いるものであってもよい。ブロック毎に設定される判定値は初期抵抗値範囲に含まれてもよい。
上記データ生成方法は、複数の抵抗値情報が所定の検定条件を満たすか否かを検定するステップHと、ステップHにおいて複数の抵抗値情報が不合格と判断された場合に、複数のメモリセルの少なくとも一部に所定の電気的ストレスを印加するステップIとを、ステップAとステップBとステップCよりも前に、をさらに備えてもよい。
かかる構成では、ブロック毎にデータの検定が行われるため、例えば、大規模かつ高品質な乱数データが生成されうる。
上記データ生成方法において、前記ステップBは、過去に生成された1つ以上のブロックデータに含まれる第1値の累計個数と、当該1つ以上のブロックデータに含まれる第2値の累計個数と、第1値の累計個数および第2値の累計個数の差とのうち少なくとも1つを求めるステップKと、前記ステップKで求められた少なくとも1つの値を用いてブロック毎の判定条件を設定するステップLと、を備えてもよい。
かかる構成では、例えば、大規模かつ高品質な乱数データが生成されうる。
上記データ生成方法は、過去に生成された1つ以上のブロックデータに含まれる第1値の累計個数と、当該1つ以上のブロックデータに含まれる第2値の累計個数と、前記第1値の累計個数および前記第2値の累計個数の差とのうち少なくとも1つを求めるステップKと、前記ステップKで求められた少なくとも1つの値が所定の検定条件を満たすか否かを検定するステップMと、ステップMにおいて不合格と判断された場合に、過去に生成された1つ以上のブロックデータのうち最後に生成されたブロックデータに対応するブロックについて設定されていた判定条件を変更してステップAとステップBとステップCとを再度実行することで、最後に生成されたブロックデータを再度生成するステップNと、をさらに備えてもよい。
かかる構成では、例えば、大規模かつ高品質な乱数データが生成されうる。
上記データ生成方法において、第1値の累計個数をN1とし、第2値の累計個数をN2とするとき、検定条件は、N1およびN2が以下の式(9)および式(10)を満たすことであってもよい。
かかる構成では、ブロック毎に、各抵抗値情報が2値のいずれかに実質的に均等に振り分けられる。よって、例えば、大規模かつ高品質な乱数データが生成されうる。
上記データ生成方法は、ブロックデータを構成する第1値の個数をN1とし、第2値の個数をN2とするとき、N1とN2との差が0でない所定の設定値となるように、かつ、N1およびN2が以下の式(11)および式(12)を満たすように、ブロックデータに対応するブロック毎に設定される判定条件を定めるステップOをさらに備えてもよい。
かかる構成では、意図的に2値への振り分けを偏らせることができる。よって、生成されたデータは、例えば、連検定および最長連検定をパスしやすくなる。
上記データ生成方法において、初期状態は、データ生成用電気的ストレスが印加されたことのない第1初期状態と、データ生成用電気的ストレスが印加されたことのある第2初期状態とを含んでもよい。ステップAは、複数のメモリセルにデータ生成用電気的ストレスを印加することで、第1初期状態のメモリセルを第2初期状態のメモリセルに変化させた後に、第2初期状態のメモリセルから複数の抵抗値情報を取得するものであってもよい。
かかる構成では、例えば、第1初期状態では抵抗値のばらつきが小さ過ぎて乱数データの生成が困難な場合でも、高品質な乱数データが生成されうる。
上記データ生成方法は、複数のメモリセルにフォーミングストレスを印加することで、各メモリセルの抵抗値が初期抵抗値範囲にあるか否かの違いを利用して、メモリセルアレイにデータを記録するステップPをさらに備えてもよい。
かかる構成では、例えば、得られたデータが、初期状態か否かの違いを利用して安定して記録されうる。例えば、データ生成に用いるメモリセルアレイが、データ記録にも用いられるため、装置構成が簡潔化され、装置の小型化が可能となる。
上記データ生成方法において、複数のメモリセルに異なる複数の電気的ストレスを印加することで、各メモリセルの抵抗値が初期抵抗値範囲にあるか否かの違いを利用せずに、各メモリセルの抵抗値が少なくとも一つの可変抵抗値範囲にあるか否かの違いを利用して、メモリセルアレイにデータをさらに記録するステップQを備えてもよい。
かかる構成では、例えば、得られたデータが、不揮発的に記録されうる。例えば、データ生成に用いるメモリセルアレイがデータ記録にも用いられるため、装置構成が簡潔化され、装置の小型化が可能となる。
(実施形態)
[装置構成]
図2は、実施形態にかかるデータ生成装置の概略構成の一例を示す。図4は、実施形態にかかるデータ生成装置が備えるメモリセルの概略構成の一例を示す。
図2に示す例では、データ生成装置100は、メモリセルアレイ90と、読み出し回路92と、データ生成回路93と、電圧印加回路94とを備えている。なお、電圧印加回路94は必須ではなく、省略されうる。
メモリセルアレイ90は、複数のメモリセル91がアレイ状に配置された構成を有する。
読み出し回路92は、複数のメモリセル91のそれぞれから抵抗値情報を取得する。抵抗値情報とは、抵抗値と相関関係を有する情報である。抵抗値情報は、抵抗値そのものであってもよいし、抵抗値に応じて増減する値であってもよい。抵抗値に応じて増減する値の例としては、後述するような、メモリセルに直列に接続されたキャパシタの放電時間、および、該放電時間に対応するカウント値等が挙げられる。なお、キャパシタは素子であることには限定されず、例えば配線などの寄生容量でもよい。
データ生成回路93は、読み出し回路92を介して複数のメモリセル91から複数の抵抗値情報を取得する。データ生成回路93は、該複数の抵抗値情報を用いて判定条件を設定する。データ生成回路93は、該判定条件に基づいて複数の抵抗値情報のそれぞれに対し複数の値から選択的に1つの値を割り当て、これにより、データを生成する。
データ生成回路93は、該判定条件に基づいて複数の抵抗値情報のそれぞれを第1群と第2群のいずれに振り分けるかを決定してもよい。例えば、データ生成回路93は、抵抗値情報が第1群に振り分けられた場合には第1値を割り当て、抵抗値情報が第2群に振り分けられた場合には第2値を割り当てる。これにより、第1値及び第2値から構成されるデータが生成される。これは、「複数の値」が2個である場合の例である。
「複数の値」が3個の場合には、生成されるデータは3値データとなる。「複数の値」は4個以上であってもよい。
「データ」の例としては、乱数データ、データ生成装置100に固有の数値データ、およびデータ生成装置100に固有の乱数データ等が挙げられる。
図3は、データ生成装置100が備えるデータ生成回路93の概略構成の一例を示す。図3に示す例では、データ生成回路93は、抵抗値情報取得部95と、判定条件設定部96と、データ生成部97とを含む。抵抗値情報取得部95は、読み出し回路92を介して複数のメモリセルから複数の抵抗値情報を取得する。判定条件設定部96は、複数の抵抗値情報を用いて判定条件を設定する。データ生成部97は、該判定条件に基づいて複数の抵抗値情報のそれぞれに対し複数の値から選択的に1つの値を割り当てることによりデータを生成する。
メモリセルアレイ90は、それぞれ複数のメモリセル91からなる複数のブロックを備えてもよい。この場合、データ生成回路93は、読み出し回路92を介して、ブロック毎に複数の抵抗値情報を取得する。次いで、データ生成回路93は、ブロック毎に取得された複数の抵抗値情報を用いてブロック毎に判定条件を設定する。次いで、データ生成回路93は、該判定条件に基づいて複数の抵抗値情報のそれぞれに対し複数の値から選択的に1つの値を割り当てることによりブロック毎にブロックデータを生成する。そして、データ生成回路93は、複数のブロックデータからデータを生成する。
データ生成回路93は、該判定条件に基づいて複数の抵抗値情報のそれぞれを第1群と第2群のいずれに振り分けるかを決定してもよい。例えば、データ生成回路93は、抵抗値情報が第1群に振り分けられた場合には第1値を割り当て、抵抗値情報が第2群に振り分けられた場合には第2値を割り当てる。これにより、第1値及び第2値から構成されるブロックデータが生成されてもよい。
なお、データ生成回路93がブロックデータを生成する場合、ブロックデータは3値データ等の多値データであってもよい。
図1を参照しつつ説明されたように、第1初期状態のメモリセル(状態A)において、抵抗値はランダムにばらつく。また、第1初期状態のメモリセルにデータ生成用電気的ストレスが印加されたメモリセル(状態B)において、抵抗値はランダムにばらつく。データ生成装置100は、かかる特性を利用してデータを生成する。
すなわち、データ生成装置100は、複数の抵抗値情報を用いて判定条件を設定し、該判定条件を用いて複数の抵抗値情報のそれぞれに1つの値を割り当てる。これにより、例えば、複数の抵抗値情報が、それぞれの値に実質的に均等に割り当てられ、高品質なランダムデータが生成されうる。
図4に示す例では、メモリセル91がトランジスタ110と抵抗変化素子120とを備えている。トランジスタ110は、第1主端子114と、第2主端子118と、制御端子116とを備えている。トランジスタ110は、例えばNMOSトランジスタとすることができる。この場合、例えば、第1主端子114は、ソースおよびドレインのうちの一方であり、第2主端子118は、ソースおよびドレインのうちの他方であり、制御端子116は、ゲート端子である。抵抗変化素子120は、第1電極124と、抵抗変化層126と、第2電極128とを備えている。例えば、トランジスタ110の第2主端子118と、抵抗変化素子120の第1電極124とが接続されることで、トランジスタ110と抵抗変化素子120とは直列に接続される。抵抗変化素子120の構成例については、後に詳述する。
本開示において、メモリセルは、トランジスタを含まなくてもよい。メモリセルは、例えば、トランジスタ以外の素子を含んでもよいし、抵抗変化素子のみであってもよい。なお、本開示では、メモリセルが抵抗変化素子とその他の素子とを含む場合に、説明の簡便化のために、その素子の抵抗値が無視されることがある。
複数のメモリセル91のそれぞれは、可変状態を取りうる性質を有する。可変状態は、異なる複数の電気的ストレスの印加に応じて抵抗値が複数の可変抵抗値範囲の間を不揮発的かつ可逆的に遷移できる状態をいう。
複数のメモリセル91のそれぞれは、さらに、初期状態を取りうる性質を有してもよい。初期状態は、前記可変状態に変化させるような電気的ストレスであるフォーミングストレスが印加されない限り前記可変状態とならず、かつ、抵抗値が前記可変抵抗値範囲のいずれとも重複しない初期抵抗値範囲にある状態をいう。
図5は、メモリセルの抵抗値範囲の一例を示すグラフである。図5に例示するように、メモリセル91は、少なくとも可変状態と初期状態の2つの状態を選択的に取りうる性質を有してもよい。さらに、図5に例示するように、可変状態のメモリセル91の抵抗値は、第1抵抗値範囲と、第2抵抗値範囲との間で変化してもよい。本開示において、メモリセル91の抵抗値を第2抵抗値範囲から第1抵抗値範囲へと変化させるための電気的ストレスは、第1電気的ストレスと呼ばれる場合がある。一方、メモリセル91の抵抗値を第1抵抗値範囲から第2抵抗値範囲へと変化させるための電気的ストレスは、第2電気的ストレスと呼ばれる場合がある。第1電気的ストレスおよび第2電気的ストレスは、「異なる複数の電気的ストレス」の一例である。
初期状態にあるメモリセルは、フォーミングストレスが印加されることにより、可変状態となる。例えば、フォーミングストレスは累積的なストレスであってもよい。その場合、ストレスの累積量が所定量を超えたときに、初期状態から可変状態に遷移する。なお、メモリセル91は、初期状態を取りうる素子でなくてもよい。メモリセル91は、例えば、可変状態のみを有する、いわゆるフォーミングレスの素子であってもよい。
メモリセルアレイ90が備える複数のメモリセル91は、可変状態のメモリセルと、初期状態のメモリセルと、を含んでもよい。
メモリセル91は、製造後、フォーミングをしなければ可変状態のままであってもよい。フォーミングとは、所定の電気的ストレスをメモリセルに印加して、メモリセルの抵抗値が複数の可変抵抗値範囲の間を可逆的に遷移する状態へと、メモリセルを変化させることをいう。フォーミングのために印加される電気的ストレスは、例えば、所定の電圧と時間幅を有する電気的パルスであってもよいし、複数の電気的パルスを組み合わせたものであってもよい。なお、メモリセル91は、フォーミングをしなくても抵抗値が複数の可変抵抗値範囲の間を可逆的に遷移する状態にある、いわゆるフォーミングレスの素子であってもよい。
初期抵抗値範囲は、製造直後のメモリセル91の抵抗値を含み、かつ、可変状態に変化した後のメモリセル91の抵抗値を含まないように設定されうる。可変抵抗値範囲は、初期抵抗値範囲を含まず、かつ、可変状態に変化した後のメモリセル91の抵抗値を含むように設定されうる。抵抗変化素子を備えるメモリセルは、典型的に、上記の特性を備え得る。公知の様々な材料を用いて、かかる特性を備えるメモリセル91が製造されうる。
フォーミングストレスではない何らかの電気的ストレスを受けたメモリセル91の状態は、初期状態に含まれうる。例えば、製造直後のメモリセル91が、フォーミングストレスではない何らかの電気的ストレスを受けて、その抵抗値が初期抵抗値範囲内で変化した場合、その状態は、初期状態に含まれうる。
電圧印加回路94は、データ生成用電気的ストレスを複数のメモリセルに印加してもよい。データ生成用電気的ストレスは、フォーミングストレスよりも弱い電気的ストレスであってもよい。
その後、データ生成回路93は、読み出し回路92を介して、データ生成用電気的ストレスが印加されたメモリセルから複数の抵抗値情報を取得してもよい。
この場合には、例えば、図1に示されているように、状態Aから状態Bへの変化により、複数のメモリセルの抵抗値のばらつきが拡大するため、高品質な乱数データが生成されうる。
電圧印加回路94は、初期状態にある複数のメモリセル91にフォーミングストレスを印加することにより、データ生成回路93により生成されたデータをメモリセルアレイ90に記録してもよい。この場合、データは、各メモリセル91の抵抗値が初期抵抗値範囲にあるか否かの違いを利用して記録される。
この場合には、例えば、データ生成回路93により生成されたデータが、初期状態か否かの違いを利用して安定して記録されうる。例えば、データ生成に用いられたメモリセルアレイが、データ記録にも用いられることで、装置構成が簡潔化され、装置の小型化が可能となる。
電圧印加回路94は、可変状態にある複数のメモリセル91に異なる複数の電気的ストレスを印加することにより、データ生成回路93により生成されたデータをメモリセルアレイ90に記録してもよい。この場合、データは、各メモリセルの抵抗値が初期抵抗値範囲にあるか否かの違いを利用せずに、各メモリセルの抵抗値が少なくとも一つの可変抵抗値範囲にあるか否かの違いを利用して記録される。
この場合には、例えば、データ生成回路93により生成されたデータが、不揮発的に記録されうる。例えば、データ生成に用いられたメモリセルアレイが、データ記録にも用いられることで、装置構成が簡潔化され、装置の小型化が可能となる。
読み出し回路92は、選択されたメモリセル91が初期状態にあるか可変状態にあるかを判定することによって、メモリセルアレイ90に記録されたデータを読み出してもよい。
図5に示した例における抵抗変化素子の構成は、次の通りであった。第1電極124の材料がTaN(窒化タンタル)、第2電極128の材料がIr(イリジウム)であった。抵抗変化層126の材料がタンタル酸化物であり、抵抗変化層126の全体の厚さが50nm以下であった。抵抗変化層126は、酸素濃度の異なる2層(第1抵抗変化層と第2抵抗変化層)の積層構造を有していた。第1抵抗変化層は、第1電極124に接する。第1抵抗変化層は、酸素濃度の低い層であって、組成をTaOxとすると0<x<2.5であった。第2抵抗変化層は、第2電極128に接する。第2抵抗変化層は、酸素濃度の高い層であって、組成をTaOyとするとy≧2.1であった。第2抵抗変化層の厚さは、5.5nm程度であった。第1電極124と抵抗変化層126との接触面および第2電極128と抵抗変化層126との接触面の面積が、いずれも0.25μm2以下であった。フォーミングストレスは、メモリセルに累積的に印加される複数のパルスで構成され、各パルスは、電圧が+3.5V、パルス幅が5μSecであった。
第2電気的ストレスは、電圧が−2.4V、パルス幅が50nSecのパルスであった。第1電気的ストレスは、電圧が+1.8V、パルス幅が50nSecのパルスであった。なお、図4のメモリセル構造において、電圧は第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の複数のパルスであってもよい。第2電気的ストレスは、例えば、電圧が+1.0V、パルス幅が100nSecであってもよい。第1電気的ストレスは、例えば、電圧が−1.3V、パルス幅が100nSecであってもよい。
図5に示す例では、初期抵抗値範囲の下限が、全ての可変抵抗値範囲の上限以上である。言い換えると、初期抵抗値範囲の下限は、複数の可変抵抗値範囲のうち抵抗値が最も大きいものの上限以上である。例えば、初期抵抗値範囲の下限は、2個の可変抵抗値範囲のうち抵抗値が最も大きい第1抵抗値範囲の上限に等しくてもよい。
図5に示す例では、第1閾値は、初期抵抗値範囲の下限以下であり、かつ、全ての複数の可変抵抗値範囲の上限以上である。言い換えると、第1閾値は、初期抵抗値範囲の下限以下であり、複数の可変抵抗値範囲のうち抵抗値が最も大きいものの上限以上である。例えば、第1閾値は、2個の可変抵抗値範囲のうち抵抗値が最も大きい第1抵抗値範囲の上限に等しくてもよい。なお、第1閾値と等しい値を有する抵抗値は、初期抵抗値範囲に属するものとして設定されてもよいし、複数の可変抵抗値範囲のうち抵抗値が最も大きいものに属するものとして設定されてもよい。
図5に示す例では、第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Ω以下の第1抵抗状態に推移する。これは、第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である第2電気的ストレスの印加により、30Ω以上90Ω以下の第2抵抗値範囲へ遷移しうる。また、可変状態のメモリセルの抵抗値は、電圧が+2.0V、パルス幅が100nSecである第1電気的ストレスの印加により、100Ω以上300Ω以下の第1抵抗値範囲へと遷移しうる。
かかる構成では、初期抵抗値範囲の上限が、全ての可変抵抗値範囲の下限以下であってもよい。言い換えると、初期抵抗値範囲の上限が、複数の可変抵抗値範囲のうち抵抗値が最も小さいものの下限以下であってもよい。例えば、初期抵抗値範囲の上限は、2個の可変抵抗値範囲のうち抵抗値が最も小さい第2抵抗値範囲の下限に等しくてもよい。
第1閾値は、初期抵抗値範囲の上限以上であり、かつ、全ての可変抵抗値範囲の下限以下であってもよい。言い換えると、第1閾値は、初期抵抗値範囲の上限以上であり、複数の可変抵抗値範囲のうち抵抗値が最も小さいものの下限以下であってもよい。例えば、第1閾値は、2個の可変抵抗値範囲のうち抵抗値が最も小さい第2抵抗値範囲の下限に等しくてもよい。
第2閾値は、複数の可変抵抗値範囲のうち抵抗値が最も小さいものの上限以上であり、かつ複数の可変抵抗値範囲のうち抵抗値が最も大きいものの下限以下であってもよい。例えば、第2閾値は、2個の可変抵抗値のうち抵抗値が最も小さい第2抵抗値範囲の上限以上であり、かつ2個の可変抵抗値のうち抵抗値が最も大きい第1抵抗値範囲の下限以下であってもよい。例えば、第2閾値は、第1抵抗値範囲の下限または第2抵抗値範囲の上限に等しくてもよい。
なお、隣り合う抵抗値範囲は必ずしも上限と下限とが隣接している必要はない。隣り合う抵抗値範囲同士の間に所定のマージンが設定されていてもよい。
読み出し回路92は、選択されたメモリセル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書き込みアドレス領域との間で情報が送受信される場合に、情報の秘匿性が向上しうる。
図5に示される抵抗変化素子において、例えば、第1種データは、各メモリセル91の抵抗値が初期抵抗値範囲にあるか否かの違いを利用して記録され、第2種データは、各メモリセル91の抵抗値が第2抵抗値範囲にあるか否かの違いを利用して記録される。
図5に示す例では、可変抵抗値範囲の数は2であるが、可変抵抗値範囲の数は3以上であってもよい。すなわち、メモリセル91は多値メモリであってもよい。
なお、図5に示される抵抗変化素子において、例えば、初期抵抗値範囲は2×106Ω以上1.0×107Ω未満に、2つの可変抵抗値範囲は5×104Ω以上2×106Ω未満、および5×103Ω以上5×104Ω未満に設定されうる。このとき、例えば、第1閾値は2×106Ωであり、第2閾値は5×104Ωである。
[抵抗変化素子の構成]
メモリセルに含まれる抵抗変化素子の構成の種々の例について説明する。なお、ここでは、説明の簡便のため、初期状態のメモリセルに含まれる抵抗変化素子が、「初期状態の抵抗変化素子」と呼ばれ、可変状態のメモリセルに含まれる抵抗変化素子が、「可変状態の抵抗変化素子」と呼ばれる場合がある。言い換えると、メモリセルの状態は、抵抗変化素子の状態に応じて定まる。
図4に示す例において、第1電極124と第2電極128との間に抵抗変化層126が介在する。抵抗変化層126は、例えば金属酸化物、より詳細には例えば遷移金属酸化物で構成されうる。可変状態の抵抗変化素子120の抵抗値は、第1電極124と第2電極128との間に印加される電気的ストレスによって、複数の可変抵抗値範囲の間を可逆的に遷移する。
初期状態の抵抗変化素子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の第1電気的ストレスが印加されると第1抵抗値範囲内の値に変化し、電圧が−4Vでパルス幅が50nSecの第2電気的ストレスが印加されると第2抵抗値範囲内の値に変化する。ここで、電気的信号の電圧の極性は、第2電極128から第1電極124に電流が流れる向きを正とした。
抵抗変化素子は、バイポーラ型であってもよい。バイポーラ型の抵抗変化素子は、可変状態において、異なる極性の電気的ストレスを印加することにより、抵抗値が可逆的に変化する。例えば、バイポーラ型の抵抗変化素子の抵抗値は、電圧が+2Vでパルス幅が50nSecの第1電気的ストレスが印加されると第1抵抗値範囲内の値に変化し、電圧が−2Vでパルス幅が50nSecの第2電気的ストレスが印加されると第2抵抗値範囲内の値に変化する。ここで、電気的信号の電圧の極性は、第2電極128から第1電極124に電流が流れる向きを正とした。
抵抗変化素子がバイポーラ型である場合、例えば動作の安定化のために、第1電気的ストレスおよび第2電気的ストレスは、極性のみならず、パルス幅や電圧の絶対値が異なっていてもよい。
言い換えると、本実施形態に係るメモリセルは、異なる極性の複数の電気的ストレスを印加することにより抵抗値が可逆的に変化するバイポーラ型であってもよいし、同じ極性の複数の電気的ストレスを印加することにより抵抗値が可逆的に変化するもユニポーラ型であってもよい。
抵抗変化層126は金属酸化物から構成されてもよい。抵抗変化層126は、酸素不足型の金属酸化物から構成された層を備えてもよい。抵抗変化層126を構成する金属酸化物は、遷移金属酸化物およびアルミニウム酸化物の少なくともいずれか一方であってもよい。遷移金属酸化物は、例えば、タンタル酸化物、鉄酸化物、ハフニウム酸化物およびジルコニウム酸化物の少なくともいずれかであってもよい。
ユニポーラ型抵抗変化素子の抵抗変化層の材料の例として、チタン(Ti)酸化物、ニッケル(Ni)酸化物、およびアルミニウム(Al)酸化物等が挙げられる。バイポーラ型抵抗変化素子の抵抗変化層の材料の例として、タンタル(Ta)酸化物、ハフニウム(Hf)酸化物、アルミニウム(Al)酸化物、および鉄(Fe)酸化物等が挙げられる。
抵抗変化素子は、同種の金属酸化物で構成された抵抗変化層を有する場合であっても、抵抗変化層と電極材料との組合せ、および、金属酸化物の積層構造等によって、ユニポーラ型にも、バイポーラ型にもなりうる。以下、抵抗変化層の材料がタンタル酸化物である例について詳細に説明する。抵抗変化層がタンタル酸化物を含む場合、抵抗変化素子が良好な特性を示しうる。
第1電極124および第2電極128の材料の例として、イリジウム(Ir)、白金(Pt)、タングステン(W)、銅(Cu)、アルミニウム(Al)、窒化チタン(TiN)、窒化タンタル(TaN)および窒化チタンアルミニウム(TiAlN)等が挙げられる。図4に示す例では、第1電極124と第2電極128とが同じ面積となっているが、これに限定されるものでない。例えば、第1電極124は、配線の一部であってもよい。第1電極124および第2電極128は、半導体プロセスにあわせ適宜、最適な形状にされうる。下地層(図示せず)は、半導体プロセスに応じて適宜に省略または変更されうる。
抵抗変化層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電極128の材料は、第2金属酸化物を構成する金属および第1電極124を構成する材料に比べて標準電極電位が高くてもよい。第2電極128の材料の例として、白金(Pt)、イリジウム(Ir)、及びパラジウム(Pd)等が挙げられる。第1金属酸化物に接する第1電極124の材料は、第1金属酸化物を構成する金属と比べて標準電極電位が低くてもよい。第1電極124の材料の例として、タングステン(W)、ニッケル(Ni)、タンタル(Ta)、チタン(Ti)、アルミニウム(Al)、窒化タンタル(TaN)、及び窒化チタン(TiN)等が挙げられる。
すなわち、第2電極128の標準電極電位がV2、第2金属酸化物を構成する金属の標準電極電位がVr2、第1金属酸化物を構成する金属の標準電極電位がVr1、第1電極124の標準電極電位がV1と表されるとき、V1、V2、Vr2およびVr1は、Vr2<V2、およびV1<V2なる関係を満足してもよい。V1、V2、Vr2およびVr1は、さらに、V2>Vr2、およびVr1≧V1の関係を満足してもよい。これにより、第2電極128と第2金属酸化物の界面近傍の第2金属酸化物中において、選択的に酸化還元反応が発生する。そのため、安定した抵抗変化現象が実現される。
抵抗変化層126は、例えば、TaOx(但し、0≦x<2.5)で表される組成を有する第1抵抗変化層と、TaOy(但し、x<y<2.5)で表される組成を有する第2抵抗変化層とを含む。抵抗変化層126は、他の層をさらに含んでもよい。他の層は、例えば、タンタル酸化物以外の金属酸化物で構成されてもよい。
第1抵抗変化層において、xは、さらに、0.8≦x<1.9を満足してもよい。第2抵抗変化層において、yは、さらに、2.1≦y<2.5を満足してもよい。第2タンタル酸化物層の厚みは、例えば、1nm以上8nm以下であってもよい。抵抗変化層が、酸素不足度の異なる複数の層を含むことにより、バイポーラ型における抵抗変化の方向が決定されうる。例えば、第2抵抗変化層が第2電極128側に、第1抵抗変化層が第1電極124側に配置された構造を想定する。このとき、第2電極128側から第1電極124側に電流を流す向きに電圧が印加されると、抵抗変化素子の抵抗値が高くなり、逆向きに電流を流す向きに電圧が印加されると、抵抗値が低くなる。あるいは、第2抵抗変化層が第1電極124に接し、第1抵抗変化層が第2電極128に接していてもよい。この場合、抵抗変化と電圧印加の向きの関係が逆転する。
可変状態の抵抗変化素子における抵抗変化は、抵抗変化層126内の局所領域において、フィラメントが変化することによって発生する。この局所領域は、断面解析によって観察したところ、例えば、直径30以下、さらには10nm以下であった。これは、最先端の半導体プロセスにおけるリソグラフィーの加工限界よりも小さい。すなわち、フィラメントを含む局所領域は、プロセスのばらつきの影響を受けにくい。そのため、抵抗変化素子は、それが微細化された場合であっても、安定した抵抗変化特性を維持しうる。
抵抗変化素子の抵抗変化層は、数百℃を超えるような高温処理がされることなく形成されうる。このため、加熱プロセスによるC−MOSトランジスタの特性の劣化が回避される。抵抗変化素子は、フラッシュメモリなどのフローティングゲート型トランジスタを用いるメモリ素子に比べて、半導体プロセスとの親和性が高い。そのため、製造プロセスの微細化が進んでも、抵抗変化の信頼性が低下するおそれが少ない。そのため、例えば、制御回路等のロジック回路と抵抗変化素子とが同一チップ上に形成される場合であっても、ロジック回路の特性への影響を抑えつつ、抵抗変化素子が形成されうる。ロジック回路と抵抗変化素子との作製プロセスが共通化される場合、製造コストが低減されうる。
[抵抗値ばらつきのメカニズム]
積層構造の抵抗変化層における抵抗変化現象は、次のように発現すると考えられる。可変状態において、抵抗値が高い第2金属酸化物の層は、微小な局所領域を有する。この局所領域中で酸化還元反応が起こって、局所領域中のフィラメント(導電パス)が変化する。これにより、局所領域の抵抗値が変化する。
例えば、第2金属酸化物層に接続する第2電極128に、第1電極124を基準にして正の電圧が印加されたとき、抵抗変化層中の酸素イオンが第2金属酸化物層側に引き寄せられる。これによって、第2金属酸化物層中の微小な局所領域中で酸化反応が発生し、局所領域中の酸素不足度が減少する。その結果、局所領域中のフィラメントの本数または太さが減少して、抵抗値が増大すると考えられる。
逆に、第2金属酸化物層に接続する第2電極128に、第1電極124を基準にして負の電圧が印加されたとき、第2金属酸化物層中の酸素イオンが第1金属酸化物層側に押しやられる。これによって、第2金属酸化物層中の微小な局所領域中で還元反応が発生し、局所領域中の酸素不足度が増加する。その結果、局所領域中のフィラメントの本数または太さが増大して、抵抗値が減少すると考えられる。
図6は、パーコレーションモデル(percolation model)を用いて、抵抗変化層(例えば局所領域)中のフィラメントの形成をシミュレートした結果の一例を示す。ここでは、抵抗変化層中において酸素の欠陥サイトがつながることによって、欠陥サイトの連なりが形成される例を想定している。パーコレーションモデルとは、抵抗変化層中にランダムに分布した欠陥サイトの密度が増大するにつれて、欠陥サイトの連なりが形成される確率が増加するという理論に基づくモデルである。ここで「欠陥」とは、例えば、金属酸化物中で酸素が欠損していることを意味し、「欠陥サイトの密度」とは、例えば、酸素不足度と相関する量である。すなわち、酸素不足度が大きくなると、欠陥サイトの密度も大きくなる。
図6に示されるシミュレーションでは、抵抗変化層の酸素イオンサイトが、格子状に仕切られた領域(サイト)として近似的に仮定されている。この仮定に基づいて、確率的に発生する欠陥サイトの連なりが、シミュレーションで求められた。図6において、“0”が含まれているサイトは抵抗変化層中に形成される欠陥サイトを表している。他方、空白となっているサイトは酸素イオンが占有しているサイトを表している。酸素イオンにより占有されているサイトは、高抵抗な領域を意味している。また、矢符は、上下、左右および斜め方向に1個のサイトの範囲内で互いに接続された欠陥サイトの連なりを示している。この欠陥サイトの連なりは、抵抗変化層内で電流が流れるパスを示している。図6に示されるように、抵抗変化層の下面と上面との間に電流を流すパスは、ランダムに分布する欠陥サイトのうち、上端から下端までを接続する欠陥サイトのクラスターで構成される。このパーコレーションモデルに基づくと、欠陥サイトの連なりの本数および形状は確率的に形成されることになる。その結果、抵抗変化層の抵抗値がばらつく。
初期状態の抵抗変化素子に所定の電気的ストレスが印加されると、抵抗変化層の一部領域の欠陥サイトの密度が変化し、欠陥サイトの連なりが形成される。抵抗変化層が金属酸化物から構成される場合、抵抗変化層内の欠陥サイトの配置はランダムであり、かつ、素子毎に異なる。例えば、欠陥サイトの連なりを形成する上で障壁となる、欠陥サイト間の距離等は、素子毎にランダムにばらついている。このため、仮に複数の素子に一定の電気的ストレスが印加された場合であっても、それにより形成される欠陥サイトの連なりの本数および形状はメモリセル毎にばらつく。その結果、複数のメモリセル間の抵抗値が、ランダムに散らばると考えられる。
初期状態の抵抗変化素子に印加される電気的ストレスが大きくなるにつれて、抵抗変化層内における欠陥サイトの連なりの本数および/または直径が増大する。そして、それらが所定の閾値を超えることにより、抵抗変化素子は可変状態となる。すなわち、第2初期状態または可変状態の抵抗変化素子は、欠陥サイトの連なりの不規則性に基づく抵抗値のばらつきを有しうる。なお、本開示では、抵抗変化素子が可変状態であるときの欠陥サイトの連なりは、特に、フィラメントと呼ばれる場合がある。なお、第1初期状態の抵抗変化素子であっても、製造ばらつきに基づく、抵抗値のばらつきを有する場合がある。
酸素等の欠陥サイトがつながることによってフィラメントが形成されうる材料であれば、複数のメモリセル間の抵抗値のばらつきは同様に生じうる。そのため、例えば、抵抗変化層に含まれる複数の層が、互いに異なる金属の酸化物から構成される場合であっても、同様のメカニズムが推察される。
[データ生成方法]
図7は、実施形態のデータ生成方法の一例を示すフローチャートである。以下、図7を参照しつつ、実施形態のデータ生成方法の一例について説明する。なお、以下の動作は、例えば、データ生成回路93に所定のコマンドが入力されることにより開始されうる。
データ生成過程が開始されると(スタート)、複数のメモリセル91のそれぞれから抵抗値情報が取得される(ステップS1)。次に、得られた複数の抵抗値情報を用いて判定条件が設定される(ステップS2)。最後に、設定された判定条件に基づいて複数の抵抗値情報のそれぞれに対し複数の値から選択的に1つの値が割り当てられ、これによりデータが生成され(ステップS3)、データ生成過程が終了する(エンド)。
ステップS3は、設定された判定条件に基づいて複数の抵抗値情報のそれぞれを第1群と第2群のいずれに振り分けるかを決定し、第1群に振り分けられた場合には第1値を割り当て、第2群に振り分けられた場合には第2値を割り当てることにより、データを生成するものであってもよい。
[判定条件の例示]
「複数の値」が第1値と第2値の2種類である場合、第1値の個数N1および第2値の個数N2が以下の式(13)および式(14)を満たすように、判定条件が定められていてもよい。
この場合、各メモリセルが2値のいずれかに実質的に均等に振り分けられる。よって、例えば、より高品質な乱数データが生成されうる。
判定条件は、N1とN2との差が0でない所定の設定値となるように設定されてもよい。
この場合、意図的に2値への振り分けを偏らせることができる。よって、例えば、生成されるデータが乱数データである場合において、乱数データが連検定および最長連検定をパスしやすくなるように調整されうる。
判定条件は、抵抗値情報と所定の判定値との比較を用いるものであってもよい。判定値は、例えば、複数の抵抗値情報の中間値であってもよい。所定の判定値との比較とは、例えば、抵抗値情報が判定値以上の場合には第1値を割りあて、抵抗値情報が判定値未満の場合には第2値を割りあてる動作であってもよい。なお、抵抗値が判定値と等しい場合に、第1値に割りあてるか第2値に割りあてるかは任意である。
中間値とは、有限個の値を小さい順に並べたとき中央に位置する値である。例えば、2n+1個(nは0以上の整数)の値があるとき、その中間値は、小さい方から数えてn+1番目の値に相当する。例えば、2n(nは1以上の整数)の値があるとき、その中間値は、小さい方から数えてn番目の値もしくはn+1番目の値、または小さい方から数えてn番目の値とn+1番目の値との算術平均である。
メモリセル91が初期状態を取りうる性質を有する場合において、判定条件は、抵抗値情報と所定の判定値との比較を用いるものであり、かつ、判定値の少なくとも1つが初期抵抗値範囲に含まれてもよい。
ブロック毎に複数の抵抗値情報が読み出され、ブロック毎に判定条件が設定されることによって、ブロックデータが生成されてもよい。例えば、ブロックデータに含まれる第1値の個数がN1、第2値の個数がN2であるとする。このとき、N1とN2との差が0でない所定の設定値であり、かつ、N1およびN2が以下の式(15)および式(16)を満たすように、ブロック毎に設定される判定条件が定められてもよい。
ブロックデータが生成される場合、ブロック毎に設定される判定条件は、抵抗値情報とブロック毎に設定される判定値との比較を用いるものであってもよい。さらに、ブロック毎に設定される判定値は初期抵抗値範囲に含まれてもよい。
データ生成回路は、累算器を備えてもよい。
累算器は、過去に生成された1つ以上のブロックデータに含まれる第1値の累計個数と、当該1つ以上のブロックデータに含まれる第2値の累計個数と、第1値の累計個数および第2値の累計個数の差のうち少なくとも1つを求めてもよい。第1値の累計個数および第2値の累計個数の差は、第1値の累計個数と第2の値の累計個数とから求められてもよいし、各ブロックの第1値の個数と第2値の個数との差を累計することによって求められてもよい。
ブロック毎に設定される判定条件は、累算器により得られた値を用いて設定されてもよい。
累算器は、例えば、得られた値またはそれに基づく所定のコマンドを判定条件設定部96に出力することができる。
[データの検定とデータの再生成]
データ生成回路93は、データを所定の検定条件に基づいて検定するデータ検定回路をさらに備えてもよい。データ検定回路がデータを不合格と判断した場合に、データ生成回路93は、判定条件を変更してデータを生成し直してもよい。
データ生成回路93は、累算器と、累計検定回路とを備えてもよい。
累算器は、過去に生成された1つ以上のブロックデータに含まれる第1値および第2値の少なくともいずれか一方の個数を累計してもよい。あるいは、累算器は、過去に生成された1つ以上のブロックデータに含まれる第1値の累計個数および第2値の累計個数の差を求めてもよい。累計検定回路は、累算器によって得られた値が所定の検定条件を満たすか否かを検定してもよい。
この場合に、データ生成回路93は、累計検定回路が不合格と判断した場合に、最後に生成されたブロックデータを再度生成してもよい。このとき、データ生成回路93は、該最後に生成されたブロックデータに対応するブロックの判定条件を設定し直し、これにより、ブロックデータを生成し直してもよい。
累計検定回路は、例えば、累算器によって得られた値が所定の検定条件を満たすか否かを検定し、該検定の結果またはそれに基づく所定のコマンドを判定条件設定部96に出力することができる。
第1値の累計個数をN1とし、第2値の累計個数をN2とするとき、検定条件は、N1およびN2が以下の式(17)および式(18)を満たすことであってもよい。
[データの検定と電気的ストレスの再印加]
データ生成回路93は、ブロックデータ検定回路を備えてもよい。
ブロックデータ検定回路は、ブロックデータに含まれる第1値の個数が所定の検定値以上であるか否かを判定することによって、ブロックデータを検定してもよい。
ブロックデータ検定回路がブロックデータを不合格と判断した場合に、電圧印加回路94は、第1値の個数を増大させるための電気的ストレスを、ブロックを構成する少なくとも一部のメモリセルに印加してもよい。その後、データ生成回路93は、ブロックデータを再度生成してもよい。
ブロックデータ検定回路は、例えば、データ生成部97で生成されたブロックデータを取得し、当該ブロックデータを検定する。ブロックデータが合格の場合、ブロックデータ検定回路は、当該ブロックデータを外部に出力することを許可してもよい。あるいは、データ生成回路93が累算器を備える場合には、ブロックデータ検定回路は、当該ブロックデータを累算器に出力してもよい。ブロックデータが不合格の場合、ブロックデータ検定回路は、電気的ストレスを印加させるコマンドを電圧印加回路94に出力し、読み出しを実行させるコマンドを読み出し回路92に出力してもよい。
[動作モードおよびコマンド]
データ生成装置100は、複数の動作モードを有してもよい。例えば、データ生成装置100は、外部から受領したコマンドに基づくモードを実行する。
データ生成装置100は、例えば、第1の書き込みモード、第2の書き込みモード、第1の読み出しモード、および、第2の読み出しモードを直接的または間接的に実行してもよい。第1の書き込みモードにおいて、各メモリセル91が初期状態にあるか可変状態にあるかの違いを利用して、メモリセルアレイ90にデータが書き込まれる。第2の書き込みモードにおいて、各メモリセル91の抵抗値が初期抵抗値範囲にあるか否かの違いを利用せず、各メモリセル91の抵抗値が少なくとも一つの可変抵抗値範囲にあるか否かの違いを利用して、メモリセルアレイ90にデータが書き込まれる。第1の読み出しモードにおいて、各メモリセル91が初期状態にあるか可変状態にあるかの違いを利用して、データが読み出される。第2の読み出しモードにおいて、各メモリセル91の抵抗値が初期抵抗値範囲にあるか否かの違いを利用せず、各メモリセル91の抵抗値が少なくとも一つの可変抵抗値範囲にあるか否かの違いを利用して、データが読み出される。
例えば、メモリセルアレイ90に含まれるメモリセル91が、図5に示される特性を有する場合、各モードは、例えば次のように実行されうる。
例えば、第1書き込みモードにおいて、“1”を記録すべきメモリセル91にフォーミングストレスが印加され、“0”を記録すべきメモリセル91に電気的ストレスが印加されない。外部からデータ生成装置100に入力される、データ生成装置100に第1書き込みモードを実行させるためのコマンドは、例えば、第1書き込みコマンドと呼ばれる。例えば、第1読み出しモードにおいて、第1閾値を用いた判定によりデータが読み出される。外部からデータ生成装置100に入力される、データ生成装置100に第1読み出しモードを実行させるためのコマンドは、例えば、第1読み出しコマンドと呼ばれる。
例えば、第2書き込みモードにおいて、“1”を記録すべきメモリセル91に第2電気的ストレスが印加され、“0”を記録すべきメモリセル91に第1電気的ストレスが印加される。外部からデータ生成装置100に入力される、データ生成装置100に第2書き込みモードを実行させるためのコマンドは、例えば、第2書き込みコマンドと呼ばれる。例えば、第2読み出しモードにおいて、第2閾値を用いた判定によりデータが読み出される。外部からデータ生成装置100に入力される、データ生成装置100に第2読み出しモードを実行させるためのコマンドは、例えば、第2読み出しコマンドと呼ばれる。
データ生成装置100は、後述するように、第3読み出しモードを実行しうる。第3読み出しモードにおいて、複数のメモリセル91の抵抗値情報が取得される。第3読み出しモードにおいては、閾値に基づく判定は行われない。ただし、データ生成装置100は、第3読み出しモードを実行した後に、別途、データを生成するための判定を実行する。
データ生成装置100は、少なくとも第3の読み出しモードを実行できればよく、第1読み出しモード、第2読み出しモード、第1書き込みモード、第2書き込みモード、およびその他のモードは、必要に応じて適宜設定されうる。
[第1実施例]
<データ生成装置>
図8は、第1実施例にかかるデータ生成装置の概略構成の一例を示す。なお、実施形態のデータ生成装置の具体的な構成は、図8に例示される構成に限定されるものでない。
図8に示すように、第1実施例のデータ生成装置10は、半導体基板上に、メモリ本体部22を備えている。メモリ本体部22は、メモリセルアレイ20と、ロウデコーダ回路18と、カラムデコーダ回路17と、書き込み回路14と、読み出し回路11とを含む。ロウデコーダ回路18は、メモリセルアレイ20に接続されている複数のワード線WLの中から1つのワード線WLを選択する。カラムデコーダ回路17は、複数のビット線BLと複数のソース線SLの中から1つのビット線BLと1つのソース線SLとを選択し、各動作における所定の電圧を印加する。書き込み回路14は、選択されたメモリセル21へデータの書き込みを実施する。読み出し回路11は、ビット線に流れる電流量を検知し、選択メモリセルのデータをカウント値として出力する。カウント値は「抵抗値情報」の一例である。書き込み回路14は、「電圧印加回路」の一例である。書き込み回路14は、例えば、データ生成用電気的ストレス、および/または、フォーミングストレスを印加してもよい。なお、これらの電気的ストレスは、データを書き込むためのものではない場合がある。しかし、ここでは、簡便のため、データを書き込む目的ではない電気的ストレスを印加する回路についても、「書き込み回路」と呼ぶ場合がある。
データ生成装置10は、データ生成回路25と、マスクデータレジスタ13と、アドレス入力回路16と、制御回路15とをさらに含む。データ生成回路25は、読み出し回路11から出力されるカウント値に基づいてデータを生成する。マスクデータレジスタ13は、データ生成回路25により生成されたデータに基づいてマスクデータの情報を記憶する。アドレス入力回路16は、データ生成装置10の外部から入力されるアドレス信号を受け取る。制御回路15は、データ生成装置10の外部から入力されるコントロール信号を受け取り、これに基づいてメモリ本体部22の動作を制御する。
メモリセルアレイ20は、複数のワード線WL0、WL1、WL2、・・・WLnと、複数のビット線BL0、BL1、・・・BLnと、複数のソース線SL0、SL1、・・・SLnと、を備える。複数のワード線WL0、WL1、WL2、・・・WLnは、互いに平行に延びる。複数のビット線BL0、BL1、・・・BLnは、互いに平行に延び、かつ、複数のワード線WL0、WL1、WL2、・・・WLnに対して立体的に交差する。複数のソース線SL0、SL1、・・・SLnは、互いに平行に延び、かつ、複数のワード線WL0、WL1、WL2、・・・WLnに対して立体的に交差する。複数のソース線SL0、SL1、・・・SLnは、複数のビットBL0、BL1、・・・BLn線に対して平行に延びてもよい。複数のワード線WL0、WL1、WL2、・・・WLnと複数のビット線BL0、BL1、・・・BLnの立体交差点のそれぞれには、メモリセル21が配置されている。
それぞれのメモリセル21は抵抗変化素子23とトランジスタ24とを備える。ワード線WL0、WL1、WL2、・・・WLnはそれぞれのトランジスタ24のゲート端子に接続される。ビット線BL0、BL1、・・・BLnは、それぞれの抵抗変化素子23の第2電極に接続される。抵抗変化素子の第1電極はトランジスタ24の第2主端子に各々接続される。ソース線SL0、SL1、・・・SLnは、トランジスタ24の第1主端子にそれぞれ接続される。
抵抗変化素子23は、メモリセル21において不揮発性記憶素子として動作する。データ生成装置10において、各メモリセル21は、1個のトランジスタ24と1個の抵抗変化素子23とから構成される。
アドレス入力回路16がアドレス信号を受け取ると、ロウデコーダ回路18は、複数のワード線WL0、WL1、WL2、・・・WLnの中から1つのワード線を選択し、カラムデコーダ回路17は、それぞれ複数のビット線BL0、BL1、・・・BLnと複数のソース線SL0、SL1、・・・SLnとの中から1組のビット線とソース線を選択する。これにより、アドレス信号に応じたメモリセル21が選択される。
制御回路15がコントロール信号受け取ると、選択された1組のビット線及びソース線のうちの一方の線が、カラムデコーダ回路17を介して、書き込み時は書き込み回路14または読み出し時は読み出し回路11に接続される。その後、制御回路15は、書き込み回路14または読み出し回路11を動作させる。
抵抗変化素子23は、実施形態において説明された抵抗変化素子120と同様の構成とすることができる。
図8に示す例では、メモリセルアレイ20に含まれる選択トランジスタは、NMOSトランジスタである。
外部インターフェース9は、アドレス信号が入力される端子と、コントロール信号が入力される端子と、入出力データが入出力される端子とを含む。外部インターフェース9は、例えば、外部のフォーミング装置と接続されてもよい。この場合、外部のフォーミング装置は、外部インターフェース9を介して、データ生成装置10を制御しうる。
外部インターフェース9は、例えば、データ生成装置10に混載されたマイコンと接続されてもよい。この場合、マイコンは、外部インターフェース9を介して、データ生成装置10を制御しうる。
図8において、簡便のため、フォーミング装置またはマイコンは、データ生成装置10の外部にある構成として説明されたが、これらは、データ生成装置10に含まれてもよい。
<読み出し回路>
図9は、第1実施例にかかるデータ生成装置が備える読み出し回路の概略構成の一例を示すブロック図である。
図9において、破線で囲まれたカラムデコーダ回路17は、上述した通りであるので、その説明が省略される。
図9において、レファレンス電圧発生回路130は、制御回路15からの入力Aに基づき、所定の基準電位を出力する。レファレンス電圧発生回路130は、例えば、ラダー抵抗と、半導体スイッチを備える。レファレンス電圧発生回路130において、例えば、電源電圧VDDと設置電圧GNDとの電位差に相当する電圧はラダー抵抗によって分圧され、これにより複数の所定の電位が生成される。さらに、レファレンス電圧発生回路130内の半導体スイッチ等が、複数の電位のいずれかを選択して、これを基準電位として出力する。レファレンス電圧発生回路130は、例えば、第1基準電位Vref1および第2基準電位Vref2を出力しうる。
第1基準電位Vref1および第2基準電位Vref2は、Vref1>Vref2の関係を満たす。基準電位を生成する回路は、他の構成であってもよい。第2基準電位Vref2は、第1読み出しモード、第2読み出しモードで異なってもよい。
スイッチSW3は、制御回路15からの入力Bに応じてスイッチングされる。言い換えると、入力Bは、スイッチ制御信号である。スイッチSW3は、ローレベルの信号が入力されたときにOFFとなり、ハイレベルの信号が入力されたときにONとなる。スイッチSW3がOFFとなると、レファレンス電圧発生回路130からノードCへの入力状態が、HiZ(ハイインピーダンス)状態へと切り替わる。スイッチSW3がONとなると、ドライバ131を介して、第1基準電位Vref1の電位が、ノードCに出力される。
なお、実際にはドライバ131やその他の回路を構成するトランジスタや配線等の電圧降下によって、入出力の電圧値は多少異なりうる。しかし、以下では、説明の簡単化のために、電圧降下等の影響は無視できるものとして説明される。
ノードCは、メモリセルアレイ20内の選択されたメモリセルに接続されている。例えば、図8の左上隅のメモリセルの抵抗値情報が読み出される場合を想定する。まず、全てのビット線とワード線が0Vに設定される。図9において、制御回路15は、線NWRをハイレベルにし、線Y0をハイレベルとし、線Y1〜Ynをローレベルにする。これにより、ビット線BL0が選択される。さらに、ロウデコーダ回路18は、選択ワード線WL0をハイレベルにし、WL0を除く非選択ワード線をローレベルにする。また、選択ビット線BL0に接続されるノードCに、第1基準電位Vref1が印加される。第1基準電位Vref1は、読み出し電圧に相当する。
ノードCとグランド間にはキャパシタCC2が接続されており、キャパシタCC2は、選択されたメモリセルと並列に接続される。このキャパシタCC2は、例えば、配線容量、および/または、トランジスタの拡散容量等であってもよいし、別個の容量素子であってもよい。
読み出し速度の高速化のために、キャパシタCC2の容量は、小さくてもよい。スイッチSW3に入力されるスイッチ制御信号(入力B)がハイレベルとなり、これによりノードCの電位は第1基準電位Vref1となる。その後、スイッチ制御信号がローレベルとなり、レファレンス電圧発生回路130からノードCへの入力状態がハイインピーダンス(HiZ)状態になる。これにより、キャパシタCC2が放電を開始する。放電により、ノードCの電位が、第1基準電位Vref1から徐々に減少する。この減少の時定数は、キャパシタCC2の容量と、キャパシタCC2に並列に接続されているメモリセルの抵抗値により定まる。
すなわち、選択されたメモリセルの抵抗値が低いと、ノードCを流れる電流が多くなり、ノードCの電位の低下は速くなる。一方、選択されたメモリセルの抵抗値が高いと、ノードCを流れる電流が少なくなり、ノードCの電位の低下は遅くなる。
図10は、図9に示される読み出し回路の主要箇所の動作例を示すタイミングチャートである。図10は、メモリセルの状態(a)に示されるように、前半は選択されたメモリセルが低抵抗状態LRであり、後半は選択されたメモリセルが高抵抗状態HRである場合を例示する(a)。それぞれに対し、(b)に示されるタイミングで、入力Bがハイレベルに変化する。入力Bがハイレベルである期間に、(c)に示されるように、ノードCに第1基準電位Vref1が印加される。
入力Bがハイレベルからローレベルに切り替わると、スイッチSW3はOFFとなり、レファレンス電圧発生回路130からノードCへの入力状態がHiZになる。そのため、ノードCの電位は徐々に低下する。ノードCの電位が第2基準電位Vref2よりも小さくなるまでの時間は、選択されたメモリセルが低抵抗状態LRのときは短く、高抵抗状態HRのときは遅い。本実施例では、この時間に相当するカウント値が抵抗値情報として用いられる。
図9に示されるレベル比較器132は、レファレンス電圧発生回路130が出力する第2基準電位Vref2とノードCの電位とを比較する。レベル比較器132は、第2基準電位Vref2よりもノードCの電位が大きければ、ローレベルの信号を出力し、小さければハイレベルの信号を出力する。すなわち、スイッチ制御信号がハイレベルからローレベルに切り替わってから、レベル比較器132の出力信号がローレベルからハイレベルに変化するまでの時間は、選択されたメモリセルが低抵抗状態LRにある場合には短く、高抵抗状態HRにある場合には長い。
カウンタ134は、入力Bがハイレベルの期間はゼロとなる。カウンタ134は、入力Bがローレベルであり、かつ、レベル比較器132からの入力がローレベルであるとき、入力されるクロック(図示せず)の周期に従ってカウントアップする。カウンタ134において、カウント値がオーバフローしないように、カウント値の上限値が設定されていてもよい。
カウンタ134の動作は、図10の(e)に示される。図10の(e)に示すように、入力Bがローレベルに変化した直後から、カウンタ134のカウントアップが開始される。その後、ノードCの電位が第2基準電位Vref2を下回るタイミングでカウントアップが停止する。選択されたメモリセルが低抵抗状態LRにあるとき、カウントアップが停止したときのカウント値は、例えば15である。選択されたメモリセルが高抵抗状態HRにあるとき、カウントアップが停止したときのカウント値は、例えば35である。
図9の入力Cは、例えば、第2読み出しモードに対応した閾値である。入力Cは、第2閾値レジスタ136にセットされる。入力Dは、例えば、第1読み出しモードに対応した閾値である。入力Dは、第1閾値レジスタ137にセットされる。
入力Eは、例えば、第1読み出しモードと第2読み出しモードとを切り替える切り替え信号である。入力Eは、スイッチSW5を切り替える。切り替え信号がハイレベルのとき、スイッチSW5は、図9に示される端子Hに接続される。切り替え信号がローレベルのとき、スイッチSW5は、図9に示される端子Lに接続される。
かかる切り替えにより、第2閾値レジスタ136および第1閾値レジスタ137のいずれかに保持されている閾値が、データ読み出し用比較器135に、入力bとして入力される。第2読み出しモードの閾値は、例えば、高抵抗状態HRに対応するカウント値と、低抵抗状態LRに対応するカウント値とを判別する値である。図10の(d)に示される例では、この閾値は、20である。
比較器135には、カウンタ134から出力されたカウント値が入力aとして入力される。比較器135は、カウント値(入力a)と閾値(入力b)とを比較する。比較器135は、入力aの値が入力bの値以上のとき、選択されたメモリセルが高抵抗状態HRにあると判断し、出力Aとして情報“0”を出力する。比較器135は、入力aの値が入力bの値未満のとき、選択されたメモリセルが低抵抗状態LRにあると判断し、出力Aとして情報“1”を出力する。
出力Aは、例えば、データ生成装置10内のデータレジスタ(図示せず)にラッチされる。
以上のように、読み出し回路11は、選択されたメモリセルの抵抗値に応じてノードCの電圧の減衰時間が異なることを利用して、選択されたメモリセルの抵抗値情報を読み出す。その結果、読み出し回路11は、メモリセルの抵抗状態に応じた2値のディジタル論理値を出力Aとして出力しうる。
第3読み出しモードにおいて、読み出し回路11は閾値を用いた判定を実行せず、カウンタ134のカウント値を、出力Bとして、そのままデータ生成回路25に出力する。カウント値は、例えば、クロック周期の分解能で出力される。カウント値は、データ生成回路25のカウント値レジスタ30に入力される。
カウント値は、メモリセルの抵抗値と相関をもつ値である。カウント値は、り、物理量としてはメモリセルの両端電圧の放電時間を表す数値であるものの、メモリセルの抵抗値を示す情報である。
なお、入力Cの値やカウンタ134のホールド値は、図10に例示された値に限定されるものでない。それらの値は、例えば、カウンタ134のカウントクロック周波数、キャパシタCC2の容量、第1基準電位Vref1および第2基準電位Vref2の設定値、定電流源129の電流量、スイッチSW4の状態、ならびに、メモリセルの抵抗値のばらつき等に応じて変動しうる。
次に、読み出される抵抗値の測定範囲を変更する方法の一例について説明する。これにより、例えば、第1読み出しモード、第2読み出しモード、及び第3読み出しモードの間で、読み出される抵抗値の測定範囲が切り替えられる。
図9に示される読み出し回路11では、定電流源140は、スイッチSW4を介してノードCに接続されている。定電流源140は、pチャネル型MOSFETを含んでもよいし、カレントミラー回路を含んでもよい。
スイッチSW4は、制御回路15からの入力Eがハイレベルの時にオンとなり、ローレベルの時にオフとなる。スイッチSW4がオンのとき、ノードCに一定の電流が供給される。このとき、キャパシタCC2からの放電時間は長くなる。
図11は、図9に示される読み出し回路11において、スイッチSW4がオンの場合とオフの場合のノードCを流れる電流値の変化を示す。図11において、横軸はカウンタ134のカウント値を示し、縦軸は規格化セル電流値を示す。規格化セル電流値とは、選択されたメモリセルに対して所定の電圧を印加したときに当該メモリセルを流れる直流電流を規格化したものである。規格化セル電流値は、メモリセルの抵抗値の逆数に相当する。つまり、図11は、読み出し回路11で読み出されるメモリセルのカウント値と、当該メモリセルを実際に流れる電流量との相関関係を表す。
カウント値とセル電流は、セル電流=C1×TC2、T=カウント値×クロック周期、C1およびC2は定数、の関係を概ね満たす。図11において、破線はスイッチSW4がオフの場合のセル電流の時間変化を示し、実線はスイッチSW4がオンの場合のセル電流の時間変化を示す。
図11に示すように、スイッチSW4がオフの場合、カウント値が20から100まで変化すると、セル電流値は約10から1まで変化する。スイッチSW4がオンの場合、カウント値が20から100まで変化すると、セル電流値は約15から5まで変化する。
すなわち、カウント値の測定範囲は、図9に示されるスイッチSW4によって、切り替えられる。具体的には、スイッチSW4がオンのとき、読み出し回路11の測定範囲は、比較的低い抵抗値に相当する抵抗値情報を測定するために適した範囲に、設定されうる。これにより、読み出し回路11は、例えば、選択されたメモリセルの抵抗値が第1抵抗値範囲と第2抵抗値範囲のいずれの範囲内にあるかを、精度良く判定できる。これは、第2読み出しモードに相当する。
スイッチSW4がオフのとき、読み出し回路11の測定範囲は、比較的高い抵抗値に相当する抵抗値情報を測定するために適した範囲に、設定されうる。これにより、読み出し回路11は、例えば、選択されたメモリセルの抵抗値が初期抵抗値範囲と第1抵抗値範囲のいずれの範囲内にあるかを、精度良く判定できる。これは、第1読み出しモードに相当する。
なお、読み出しの分解能は、スイッチSW4のオンオフのみでなく、定電流源140の電流量、カウンタ134に入力されるクロックの周波数、第1基準電位Vref1および第2基準電位Vref2の大きさ、ならびに、キャパシタCC2の容量等によって調整されうる。例えば、クロックの周波数が増加すると、読み出しの分解能が上昇する。
読み出しの測定範囲は、比較的高い抵抗値が短い時間で読み出されるように設定されてもよい。そのような設定は、例えば、第1基準電位Vref1および第2基準電位Vref2を大きくすること、定電流源129の電流を減らすこと、または、キャパシタCC2の容量を減らすこと等によって実現されうる。逆に、読み出しの測定範囲は、比較的低い抵抗値が短時間で読み出されるように設定されてもよい。そのような設定は、例えば、第1基準電位Vref1および第2基準電位Vref2を小さくすること、定電流源129の電流を増やすこと、または、キャパシタCC2の容量を増やすこと等によって実現されうる。なお、第3読み出しモードにおける抵抗値の測定範囲は、第1読み出しモードまたは第2読み出しモードと同じであってもよく、第1読み出しモードおよび第2読み出しモードと異なっていてもよい。
なお、第1基準電位Vref1が大き過ぎる場合、当該電位によって選択されたメモリセルの抵抗状態が変化するおそれがある。そのため、第1基準電位Vref1は、メモリセルの抵抗状態が変化しないように、所定の値以下の値に設定されうる。
<データ生成回路>
図12は、第1実施例にかかるデータ生成装置が備えるデータ生成回路の概略構成の一例を示すブロック図である。
データ生成回路25は、読み出し回路から複数のカウント値を取得し、判定値に基づいて“0”と“1”の2値を割り当てることによってデータを生成し、そのデータをマスクデータレジスタ13に出力する。判定値は、データ生成回路25により設定されてもよいし、外部から入力されてもよい。判定値は、複数のメモリセルから取得されたカウント値を用いて設定される。なお、カウント値は、「抵抗値情報」の一例である。
マスクデータレジスタ13は、データ生成回路25から取得したディジタルデータを一時的に記憶する。マスクデータは、例えば、データ生成回路25によって生成されたデータをメモリセルアレイ20に記録するための、アドレスの情報を含む。このアドレスは、例えば、可変状態に変化させるべきメモリセルのアドレスであってもよい。マスクデータは、例えば、メモリセルアレイ20に一度書き込まれたデータを再書き込みする場合に使用されてもよい。なお、データ生成回路25が生成したデータが、メモリセルアレイ20に書き込まれない場合、データ生成装置10は、マスクデータレジスタ13を備えなくてもよい。
図12に示されるデータ生成回路25は、カウント値レジスタ30と、比較器31と、判定値レジスタ32と、累算器34と、データ検定回路33とを含む。
判定値レジスタ32は、判定値の初期値、データ検定回路33から出力された判定値、または、データ生成回路25の内部または外部から入力された判定値、を一時的に記憶する。例えば、データ生成回路25は、カウント値レジスタ30に基づいて判定値を設定する判定値設定部をさらに備えてもよい。
比較器31は、カウント値レジスタ30が保持する各カウント値と、判定値レジスタ32に格納された判定値とを比較して、“0”と“1”のいずれかを選択的に割り当てる。これにより、ディジタルデータが生成される。ディジタルデータは、累算器34、および、マスクデータレジスタ13に出力される。
累算器34は、例えば、比較器から出力された“1”の個数および“0”の個数、ならびに、それらの個数差の少なくとも1つを記憶する。例えば、判定値が固定長のブロック単位で設定される場合、“1”と“0”のいずれか一方の個数が記憶されれば、実質的に、両方の個数が記憶されたことになる。
データ検定回路33は、“1”の個数と“0”の個数の差が、所定の範囲内かどうかを検定する。データ検定回路33は、その結果に応じて、判定値レジスタ32が記憶している判定値を変更し、再度、比較器31に“1”および“0”の割り当てを実施させる。データ検定回路33は、例えば、“1”の個数と“0”の個数の差が所定の範囲内に収まるまで、割り当て処理を繰り返させてもよい。
データ検定回路33は省略されていてもよい。その場合、判定値は、データ生成回路25の外部から判定値レジスタ32へ入力されてもよい。
また、図13に示すように、データ生成回路25は、ブロックデータ検定回路35を備えてもよい。
ブロックデータ検定回路35は、例えば、ブロックデータに含まれる“1”の個数が所定の検定値以上であるか否かを判定する。判定が不合格であった場合に、ブロックデータ検定回路35は、当該ブロックに含まれる複数のメモリセル21対して電気的ストレスを印加させるコマンドを、書き込み回路14に出力してもよい。さらに、ブロックデータ検定回路35は、当該ブロックに含まれる複数のメモリセル21のカウント値を再取得させるコマンドを、読み出し回路11に出力してもよい。これらのコマンドにより再度カウント値が取得され、これらに基づいて、データ生成回路25は、再度データ生成を実行しうる。ブロックデータ検定回路35は、生成されたデータが検定をパスするまで、かかる処理が繰り返させてもよい。
ブロックデータ検定回路35は、例えば、カウント値レジスタ30から出力される複数のカウント値が、所定の検定条件を満たすか否かを判定してもよい。判定が不合格であった場合、ブロックデータ検定回路35は、当該ブロックに含まれる複数のメモリセル21に対して電気的ストレスを印加させるコマンドを、書き込み回路14に出力してもよい。さらに、ブロックデータ検定回路35は、当該ブロックに含まれる複数のメモリセル21のカウント値を再取得させるコマンドを、読み出し回路11に出力してもよい。ブロックデータ検定回路35は、新たに取得されたカウント値を、さらに検定してもよい。これにより、検定を合格した複数のカウント値が、比較器31に入力される。
<データの生成動作例>
図14は、第1実施例のデータ生成装置10によるデータ生成の動作例を示すフローチャートである。なお、本実施の形態に係るデータ生成方法は、本動作例のみに限定されるものではない。
以下では、複数のメモリセルの抵抗値の散らばりを利用して、ランダムデータが生成される例について説明される。本動作例において、複数のメモリセルの抵抗値の散らばりは、複数のメモリセルにデータ生成用電気的ストレスが印加されることにより生成される。また、生成されるランダムデータは、“1”と“0”から構成されるディジタルデータである。
以下、図14に従って具体的なフローを説明する。
ステップS101において、電気的ストレスの印加を指示するコマンドと、電気的ストレスを印加すべきアドレスとが、データ生成装置100の外部から入力される。
ステップS102において、電気的ストレスを印加すべき複数のアドレスのうち、最初のアドレスが選択される。
ステップS103において、書き込み回路14は、初期状態のメモリセルに対し、データ生成用電気的ストレスを印加する。データ生成用電気的ストレスは、例えば正極性のパルス電圧である。データ生成用電気的ストレスは、フォーミングを完了させるような電気的ストレスよりも弱い。このようなストレス印加により、各メモリセルの抵抗値は、初期抵抗範囲内で、製造直後よりも抵抗値が低い側にランダムに推移する。その結果、各メモリセルの抵抗値はランダムに散らばる。
ステップS104において、まず、読み出し回路11が第3読み出しモードに設定される。例えば、図9のスイッチSW4がオフとなり、読み出しの測定範囲が高抵抗側に設定される。読み出し回路11のカウント値の上限が255の場合、読み出し回路11は、各メモリセルの抵抗値に応じて、1〜255の範囲のカウント値を出力し、これらがカウント値レジスタ30に格納される。
ステップS105において、データ生成回路25内に判定値が設定される。判定値には固定値が設定されてもよいし、ステップS104においてレジスタに格納されたカウント値を基に設定してもよい。
例えば、各メモリセルのカウント値の中間値が“150”であった場合、判定値は“150”と設定されてもよい。中間値が判定値として設定されることにより、“1”と“0”とが、おおよそ均等に割り当てられる。これにより、生成されたデータのランダム性が向上する。判定値は、中間値に対して所定のオフセット値を加えたものであってもよい。オフセット値は、予めNIST800-22などの公知のランダム性評価ツールを使用した調査によって得られたものであってもよい。なお、各メモリセルのカウント値から中間値を計算し該中間値を判定値とする方法は後述する。
例えば、データ生成装置10は、判定値を演算する演算領域を備えてもよい。この場合、演算領域は、判定値の数値を増減させて複数のデータを生成しうる。これらのデータのうち最もランダム性が良くなった場合の判定値の値が、最終的な判定値として設定されてもよい。
例えば、不揮発性記憶装置の製造装置が、ランダム性評価用の演算回路またはソフトを備えていてもよい。この場合、製造装置は、読み出し回路11から出力されたカウント値を基に、判定値の数値を増減させて複数のデータを生成しうる。これらのデータのうち最もランダム性が良くなった場合の判定値の値が、最終的な判定値として設定されてもよい。
ステップS106において、データ生成回路25は、カウント値レジスタ30に格納されている各メモルセルのカウント値と、判定値とを比較する。カウント値が判定値より大きい場合は、第2値“0”が割り当てられる(ステップS107)。カウント値が判定値以下の場合は、第1値“1”が割り当てられる(ステップS108)。
上記ステップS106〜S108の処理は、メモリセルが全て判定されるまで繰り返される(ステップS109〜S110)。
全メモリセルに対する上記の処理が終わった後に、ステップS111において、生成したデータがマスクデータレジスタに格納される。これにより、データ生成動作が終了する(エンド)。
本発明者らは、以上のフローに基づき、1kbitのデータを生成した。なお、判定値は、読み出された複数のカウント値の中間値とした。メモリセルの構成は、図1のものと同様とした。その結果が、図19に示される検定例1に示される。ランダム性の検定には公知のツール(NIST SP800-22)が用いられた。生成されたデータは、一次元度数検定を合格した。一次元度数検定とは、データ内の“0”と“1”の個数が均等な状態からの偏りの度合いが所定の範囲内にあるか否かを検定するものである。さらに、当該データは、他のテスト項目についても合格していた。これらの結果は、生成されたデータが高いランダム性を有することを示している。
<判定値の設定動作例>
図15は、第1実施例のデータ生成装置10における判定値の設定の動作例を示すフローチャートである。このフローチャートは、図14におけるステップS105の一具体例を示すものである。
以下では、図15及び図12を参照しながら、複数のカウント値から中間値を計算し、その中間値を判定値として設定する例について説明する。
ステップS201では、各カウント値と所定の初期仮判定値とが比較される。複数のカウント値は、カウント値レジスタ30に格納されている。初期仮判定値は、任意の値であり、判定値レジスタ32に入力される。カウント値が初期仮判定値よりも大きい場合、第2値“0”が割り当てられ(ステップS202)、カウント値が初期仮判定値以下の場合、第1値“1”が割り当てられる(ステップS203)。例えば、初期仮判定値が“150”と設定される場合、カウント値が“150”より大きい場合には第2値の“0”が割り当てられる、“150”以下の場合には第1値の“1”が割り当てられる。
ステップS204およびS205では、“1”の個数と“0”の個数との差が所定の範囲内にあるか否かが判定される。例えば、累算器34が、比較器31から出力された“0”の個数および“1”の個数を記憶し、データ検定回路33が“1”の個数と“0”の個数との差を求める。この個数差Aは、次のように表される。
(個数差A)=(“1”の個数)−(“0”の個数)
個数差Aの値に応じて、ステップS204の以降のフローが、例えば、以下のように分岐する。
個数差Aが0に等しい場合、初期仮判定値は、取得された複数のカウント値の中間値である。この場合、ステップS213において、データ検定回路33は、初期仮判定値を判定値として決定する。例えば、初期仮判定値が“150”であった場合、判定値は“150”となる。
個数差Aが0より大きい場合、ステップS206に進む。個数差Aが0より小さい場合は、ステップS215に進む。まずは、個数差Aが0より大きい場合について説明する。
ステップS206では、データ検定回路33は、初期仮判定値から1を引いた値を新たな仮判定値とし、判定値レジスタ32に格納する。例えば、初期仮判定値が“150”であった場合、新たな仮判定値は“149”となる。
ステップS207では、各カウント値と新たな仮判定値とが比較され、“1”または“0”が割り当てられる。ステップS207は、新たな仮判定値と初期仮判定値とが異なる点を除いて、ステップS201〜S203と同様である。
ステップS208では、累算器34は、比較器31から出力された“0”の個数と“1”の個数を記憶する。
ステップS209およびS210では、“1”の個数と“0”の個数との差が所定の範囲内にあるか否かが判定される。例えば、データ検定回路33が“1”の個数と“0”の個数との差を求める。この個数差Bは、次のように表される。
(個数差B)=(“1”の個数)−(“0”の個数)
個数差Bの値に応じて、ステップS209以降のフローが、例えば、以下のように分岐する。
ステップS209において個数差Bが0より大きい場合、ステップS206に戻る。2回目のステップS206において、現在の仮判定値からさらに1を引いた値が、新たな仮判定値として、判定値レジスタ32に格納される。例えば、1回目のステップS206で設定された仮判定値が“149”であった場合、2回目のステップS206では、新たな仮判定値として“148”が設定される。その後、新たな仮判定値“148”に基づいて、2回目のステップS207〜S209が実行される。
このように、個数差Bが0以下になるまで、前回の仮判定値から1を引いた値を新たな仮判定値として更新しながら、ステップS206〜S209が繰り返される。ここで、ステップS206からS209のフローがn回処理されたときの仮判定値は、以下の式で定義される。
(仮判定値[n])=(初期仮判定値)−n
以下、n回目のステップS209において、個数差Bが初めて0以下となった場合について説明する。この場合、ステップS209からステップS210へと進む。
個数差Bが0の場合、現在の仮判定値[n]は、取得された複数のカウント値の中間値である。この場合、ステップS212において、データ検定回路33は、現在の仮判定値[n]を、判定値として決定する。
個数差Bが0より小さい場合、ステップS211において、データ検定回路33は、前回の仮判定値[n−1]を、判定値として決定する。前回の仮判定値[n−1]は、個数差Bの符号が正から負に変わる直前の仮判定値に相当する。これにより、“0”および“1”の個数がほぼ均等になる。
あるいは、個数差Bが0より小さい場合、データ検定回路33は、現在の仮判定値[n]を判定値として決定してもよい。現在の仮判定値[n]は、個数差Bの符号が正から負に変わった直後の仮判定値に相当する。この場合でも、“0”および“1”の個数がほぼ均等になる。
例えば、初期仮判定値が“150”であり、仮判定値を設定するステップS206が3回(n=3)行われた場合を想定する。このとき、2回目の仮判定値が“148”であるときの個数差Bが+9個であり、3回目の仮判定値が“147”のときの個数差Bが−3個であったとする。この場合、判定値は、“148”または“147”に決定される。
ステップS211、S212、またはS213において、判定値が決定されると、ステップS214において、当該判定値が、判定値レジスタ32に格納される。なお、判定値と同じ値である仮判定値が既に判定値レジスタ32に格納されている場合、ステップS214は省略されてもよい。
次に、ステップS204で、個数差Aが0より小さい場合のフローを、以下において、ステップS215からS221として説明する。なお、図15において、ステップS215からS221は、ステップS206からS212と類似するため、図示が省略されている。
ステップS215では、初期仮判定値に1を加えた値が、新たな仮判定値として設定され、判定値レジスタ32に格納される。例えば、初期仮判定値が“150”であった場合、新たな仮判定値は“151”となる。
ステップS216において、各カウント値と新たな仮判定値とが比較され、“1”または“0”が割り当てられる。ステップS216は、新たな仮判定値と初期仮判定値とが異なる点を除いて、ステップS201〜S203と同様である。その後、ステップS217において、累算器34は、比較器31から出力された“0”の個数と“1”の個数を記憶する。
ステップS218では、“1”の個数と“0”の個数の差が所定の範囲内にあるか否かが判定される。例えば、データ検定回路33が“1”の個数と“0”の個数との差を求める。この個数差Cは、次のように表される。
(個数差C)=(“1”の個数)−(“0”の個数)
ステップS218において個数差Cが0より小さい場合は、ステップS215に戻る。2回目のステップS215において、現在の仮判定値にさらに1を加えた値が、新たな仮判定値として、判定値レジスタ32に格納される。例えば、1回目のステップS215で設定された仮判定値が“151”であった場合、2回目のステップS215では、新たな仮判定値として“152”が設定される。その後、新たな仮判定値“152”に基づいて、2回目のステップS216〜S218が実行される。
このように、個数差Cが0以上になるまで、前回の仮判定値に1を加えた値を新たな仮判定値として更新しながら、ステップS215〜S218が繰り返される。ここで、ステップS215からS218のフローがn回処理されたときの仮判定値は、以下の式で定義される。
(仮判定値[n])=(初期仮判定値)+n
ここで、n回目のステップS218において、個数差Cが初めて0以上となった場合について説明する。この場合、ステップS218からステップS219へと進む。
個数差Cが0の場合、現在の仮判定値[n]は、取得された複数のカウント値の中間値である。この場合、ステップS221において、データ検定回路33は、現在の仮判定値[n]を、判定値として決定する。
個数差Cが0より大きい場合、ステップS220において、データ検定回路33は、前回の仮判定値[n−1]、または、現在の判定値[n]を判定値として決定する。これにより、“0”および“1”の個数がほぼ均等になる。決定された判定値は判定値レジスタに格納される(ステップS214)。
以上により、“0”の個数と“1”の個数とがほぼ等しくなりうる。読み出し回路11の分解能によって、厳密に半数に分けることができなくても、上記のフローを用いることにより、おおよそ均等に割り当てることができる。その結果、生成されるデータの乱数性が向上する。
図14の判定値を設定するステップS105において、図15に示されるフローが実行される場合、図14のステップS106からS110が省略されてもよい。この場合、例えば、図15のステップS201から203、ステップS207、またはステップS216で“0”または“1”が割り当てられたデータが、図14のステップS111においてマスクデータレジスタ13へ格納されてもよい。言い換えると、図14のステップS106からS110は、図15のステップS201から203、ステップS207、およびステップS216のいずれかであってもよい。
判定値の設定は、データ生成回路25の外部で実行されてもよい。例えば、データ生成装置10が不揮発性記憶装置を含む場合、当該不揮発性記憶装置を製造する製造装置が、図15に示されるフローを実行してもよい。その場合、カウント値が製造装置に出力され、製造装置が判定値を決定し、判定値がデータ生成回路25内の判定値レジスタの32に格納される。これにより、不揮発性記憶装置の回路規模の増大が抑制されうる。
図15に示されるフローは、複数のカウント値の中間値を判定値とする例を示しているが、判定値は中間値以外の値に設定されてもよい。判定値は、例えば、生成されるデータのランダム性が損なわれない範囲において、任意の値であってもよい。例えば、データ生成装置10が、ランダム性評価用の演算回路を備えてもよい。この場合、演算回路が各仮判定値に基づいて生成されたデータのランダム性を評価し、それらのデータのうち最もランダム性が高い仮判定値が、判定値として決定されてもよい。
例えば、データ生成装置10が不揮発性記憶装置を含む場合、当該不揮発性記憶装置を製造する製造装置が、ランダム性評価用の演算回路を備えてもよい。
<ブロック毎にブロックデータを生成する動作例>
本発明者らは、抵抗値情報を取得するメモリセルアレイを所定のブロック毎に区分けし、該ブロック毎に“0”および“1”の割り当てを行って、データを生成する方法を見出した。これにより、例えば、生成されるデータのサイズが大きい場合であっても、ランダム性の高いデータが生成されうる。
図19の検定例2は、図14に示される方法により生成された256kbitのデータの、ランダム性の検定結果を例示している。検定例2は、生成されたデータのデータサイズが異なること以外、検定例1と同じ条件で生成された。検定例2の結果は、データサイズが大きい場合に、ランダム性の検定において不合格となるデータが生成されるおそれがあることを示している。
この原因として、本発明者らは、次のように推察した。データサイズが大きくなった場合、メモリセルアレイ内でメモリセルの抵抗値分布に偏りが生じ、その結果、生成されるデータのランダム性が低下しうる。抵抗値分布の偏りは、例えば、製造上の要因、および/または、デバイスの構造上の要因により発生しうる。これらの具体的な例としては、抵抗変化層の膜厚のばらつき、加工サイズのばらつき、ならびに、抵抗変化素子につながる配線抵抗の違いなどが挙げられる。そこで、本発明者らは、メモリセルアレイを、複数のワード線毎に、1つの領域として区分けして、領域毎のデータについて“1”と“0”の個数を調べた。図16は、各領域における“1”の個数と“0”との個数の割合を示す。図16に示されるように、“1”の個数と“0”の個数との割合は、メモリセルアレイ内の場所によって大きく異なった。具体的には、書き込み回路14とメモリセルとの間に延びるビット線の距離が長いメモリセルほど、言い換えれば、書き込み回路14からより遠い位置にあるワード線に接続されたメモリセルほど、抵抗値が下がりにくかった。そのため、書き込み回路14から遠い領域において“0”の個数が多くなった。
そこで、本発明者らは、図17に示されるように、データ生成のための抵抗値情報が取得される領域BTを、複数のブロックB1、B2、・・・BXに分けて、ブロック毎に判定値d1、d2、・・・dxを設定する方法を見出した。これにより、“1”の個数と“0”の個数との割合がメモリセルアレイ内での位置により異なるときであっても、ランダム性の高い複数のブロックデータが生成されうる。これらのブロックデータが用いられることにより、ランダム性の高い大きなデータが生成されうる。
ここで、ブロックは複数のメモリセルから構成されればよく、その分割方法は任意である。ブロックは、例えば、物理アドレス上で互いに隣接する一領域であってもよく、論理アドレス上で互いに隣接する一領域であってもよい。例えば、少なくとも1つのワード線、または、少なくとも1つのビット線に共通して接続される複数のメモリセルが、1つのブロックを構成してもよい。
図18は、第1実施例のデータ生成装置10によるデータ生成の動作例を示すフローチャートである。以下、図14と重複部分については、適宜説明が省略される場合がある。
ステップS301において、電気的ストレスの印加を指示するコマンドと、電気的ストレスを印加すべきアドレスと、ブロックデータのサイズとが、データ生成装置10の外部から入力される。
ステップS302において、電気的ストレスを印加すべき複数のブロックのうち、最初のブロックに含まれる複数のメモリセルのアドレスが選択される。
ステップS303において、書き込み回路14は、選択されたブロック内の全メモリセルに対し、データ生成用電気的ストレスを印加する。
ステップS304において、読み出し回路11が第3読み出しモードで、ブロック内の複数のメモリセルのカウント値が読み出され、これらがカウント値レジスタ30に格納される。
ステップS305において、判定値が設定される。判定値は、例えば、図15を参照しつつ説明された方法によって設定されてもよい。
ステップS306において、データ生成回路25は、カウント値レジスタ30に格納されている各メモルセルのカウント値と、判定値とを比較する。カウント値が判定値より大きい場合は、“0”が割り当てられる(ステップS307)。カウント値が判定値以下の場合は、“1”が割り当てられる(ステップS308)。ステップS306〜S308の処理は、ブロック内のカウント値が全て判定されるまで繰り返される(ステップS309〜S310)。
1つのブロック内の全メモリセルに対するブロックデータの生成が終わったら、次のブロックに対して、ステップS302〜S310の処理が同様に行われる(ステップS311〜S312)。全てのブロックに対して同様の処理が繰り返し行われた後、データの生成が終了する(エンド)。なお、当該方法により得られるデータは、例えば、全てのブロックデータを順次つなげることによって生成されてもよいし、その他の方法により生成されてもよい。
図19の検定例3は、図18に示される方法により生成された256kbitのデータのランダム性の検定結果を例示している。検定例3のデータは、4kbitのブロック毎に、ブロックデータが生成された。検定例3の示すとおり、生成されたデータは、ランダム性の各テスト項目をPassしており、高いランダム性を有していた。
ブロックのサイズは、4kbitに限定されない。ただし、ブロックのサイズが小さすぎる場合、読み出し回路11の分解能によっては、“1”および“0”の個数がほぼ均等となるような割り当てが困難になるおそれがある。ブロックのサイズが大きすぎる場合、ブロック内での抵抗値分布の偏りが生じるおそれがある。また、ブロックのサイズが大きすぎる場合、カウント値レジスタが大容量化し、回路規模が大きくなるおそれがある。以上の観点から、ブロックのサイズは適切に選択されうる。例えば、ブロックのサイズは、1kbit以上10kbit以下であってもよい。
<ブロックデータの検定と電気的ストレスの印加>
抵抗値の分布を広げるために抵抗値情報を取得する前に対象となるメモリセルに電気的ストレスが印加される場合、所定回数(例えば1回)の印加では、抵抗値の低下が不十分だったり、抵抗値の分布が十分広がらなかったりする場合がある。
そのような抵抗値情報から生成されるブロックデータは、ランダム性が低くなるおそれがあり、ひいては全体のデータのランダム性を低下させるおそれがある。
これに対して、本発明者らは、ブロック内でのメモリセルの抵抗値分布に偏りが生じた場合に、電気的ストレスを印加することによって、これを改善する方法を見出した。
図20は、ブロックデータの検定と電気的ストレスの印加を行う動作の一例を示すフローチャートである。
図20におけるステップS401からS404までは、図18を参照しつつ説明されたステップS301からS304までと同様であるため、説明が省略される。
ここでは、読み出し回路11で出力できるカウント値の上限値が255である例について説明される。
ステップS405において、カウント値が上限値“255”であるものの個数と、ブロックに含まれるカウント値の総個数の半分とが比較される。カウント値が255であるものの個数がブロックに含まれるカウント値の総個数の半数より多い場合、ステップS403に戻り、ブロック内のメモリセルに電気的ストレスが再度印加される。ステップS403からS405は、カウント値が255であるものの個数が、ブロックのメモリセルの総数の半分以下になるまで繰り返し行われる。ステップS405において再印加される電気的ストレスは、例えば、1回目に印加されたデータ生成用電気的ストレスと同等の電気的ストレスであってもよい。
図20のステップS406以降は、図18のS305以降と同様であるため、説明が省略される。
かかる動作例では、一部のブロックにおいて、同一の電気的ストレス条件で抵抗値が下がらないメモリセルが半数以上あった場合に、そのブロックに電気的ストレスが複数回印加されることで、抵抗値の偏りが低減される。その結果、ステップS406以降において、“1”の個数と“0”の個数とがおおよそ均等に割り当てられうる。よって、データのランダム性が向上しうる。また、全領域に複数回、データ生成用電気的ストレスが印加される方法に比べて、処理時間が大幅に短縮されうる。
<累計個数の差を考慮した判定値の設定>
読み出し回路11の分解能によっては、図18および図15に示されるフローを用いても、“1”の個数と“0”の個数とが厳密には均等にならない場合がある。そのため、ブロック内ではわずかな偏りであっても、それが多数のブロックにおいて発生すると、それらが全体では大きな偏りになる場合がある。そのため、データのサイズが非常に大きい場合に、データの乱数性が低下するおそれがある。
これに対して、本発明者らは、“1”の累計個数と“0”の累計個数の差が0に近づくように、判定値を設定する方法を見出した。これにより、生成されるデータのランダム性がより向上しうる。
図21は、判定値の設定の動作例を示すフローチャートである。図21に示される動作は、例えば、図18のステップS305、または、図20のステップS406において実行されうる。
図21は、“1”および“0”それぞれの累計個数を考慮することにより、ブロック毎に設定される判定値を調整する動作の一例である。
以下の説明において、「中間値」とは、例えば、図15を参照しつつ説明した動作により導出される判定値とする。
ステップS501において、データ検定回路は、仮判定値dMとして中間値を設定する。具体的には、判定値レジスタ32に仮判定値dMが一時的に記憶される。例えば、図15に示されるフローで導出された中間値が“148”であった場合、仮判定値dMとして“148”が設定される。
ステップS502において、比較器31は、仮判定値dMと各カウント値とを比較し、カウント値が仮判定値dMより小さい場合には“1”を、カウント値が仮判定値dM以上である場合には“0”を割り当てる。その後、累算器34は、“1”の個数から“0”の個数を引いた個数差Mを、累算器34内のレジスタに一時的に記憶する。
ステップS503において、データ検定回路は、仮判定値dMから1を引いたものを仮判定値dLとして設定する。具体的には、判定値レジスタ32に仮判定値dLが一時的に記憶される。例えば、仮判定値dMが“148”であった場合は、仮判定値dLとして“147”が設定される。
ステップS504にて、比較器31は、仮判定値dLと各カウント値とを比較し、カウント値が仮判定値dLより小さい場合には“1”を、カウント値が仮判定値dL以上である場合には“0”を割り当てる。その後、累算器34は、“1”の個数から“0”の個数を引いた個数差Lを、累算器34内のレジスタに一時的に記憶する。
例えば、仮判定値dMで判定した時の個数差Mが0個の場合、仮判定値dLで判定したときの個数差Lは負となる。例えば、仮判定値dMで判定した時の個数差Mが正であった場合、仮判定値dLで判定したときの個数差Lは、0または負となる。
ステップS505からS509において、データ検定回路33は、過去にブロックデータが生成された少なくとも1つの他ブロックにおける“1”の累計個数と“0”の累計個数との差を考慮し、現在の対象となっているブロックにおける判定値を決定する。他ブロックにおける“1”の累計個数と“0”の累計個数との差は、例えば、他ブロックにおける“1”の累計個数から、他ブロックにおける“0”の累計個数を差し引いた値である。なお、他ブロックにおける“1”の累計個数と“0”の累計個数との差は、各ブロックにおける“1”の個数と“0”個数との差を複数のブロック間で累計したものと等しい。
ステップS505からS509において、対象ブロックにおける個数差と、他ブロックにおける累計個数の差との和が0に近づくように、対象ブロックの判定値が決定される。これにより、過去に生成されたブロックデータおよび次に生成するブロックデータにおける“1”の累計個数と“0”の累計個数とがほぼ等しくなる。
図21に示す例では、他ブロックの累計個数の差が+10以上である場合に、仮判定値dLが、現在対象とするブロックの判定値に決定される。対象ブロックの個数差Lは0または負である。そのため、対象ブロックの個数差Lが負である場合、対象ブロックおよび他ブロックにおける累計個数の差が0に近づく。対象ブロックの個数差Lが0である場合、対象ブロックおよび他ブロックにおける累計個数の差のさらなる増大が抑止される。
例えば、過去にブロックデータが生成された他のブロックにおける累計個数の差が+12個であり、対象ブロックの個数差Lが−3個である場合を想定する。図21に示すフローによれば、この場合、ステップS505から、S506を経て、ステップS507に進む。その結果、対象ブロックと他のブロックにおける累計個数の差は、+12−3=+9となる。
図21に示す例では、他ブロックの累計個数の差が−10以下である場合に、仮判定値dMが、現在対象とするブロックの判定値に決定される。対象ブロックの個数差Mは0または正である。そのため、対象ブロックの個数差Mが正である場合、対象ブロックおよび他ブロックにおける累計個数の差が0に近づく。対象ブロックの個数差Mが0である場合、対象ブロックおよび他ブロックにおける累計個数の差のさらなる減少が抑止される。
例えば、過去にブロックデータが生成された他のブロックにおける累積個数の差が−15であり、対象ブロックの個数差Mが+4個である場合を想定する。図21に示すフローによれば、この場合、ステップS505から、S506を経て、ステップS508に進む。その結果、対象ブロックおよび他のブロックにおける累計個数の差は、−15+4=−11となる。
図21に示す例では、他ブロックの累計個数の差の絶対値が10未満の場合、個数差Mまたは個数差Lのうちその絶対値が小さい方の仮判定値が、現在対象とするブロックの判定値に決定される。例えば、個数差Mの絶対値が個数差Lの絶対値よりも小さいとき、仮判定値dMが対象ブロックの判定値に決定される。あるいは、個数差Lの絶対値が個数差Mの絶対値よりも小さいとき、仮判定値dLが対象ブロックの判定値に決定される。
例えば、個数差Mが“+9”、個数差Lが“−3”、他ブロックの累計個数の差が“+8”である場合を想定する。図21に示すフローによれば、この場合、ステップS505からステップS509に進む。その結果、対象ブロックおよび他ブロックにおける累積個数の差は、+8−3=+5となる。
図21に示されるフローにおいて、対象ブロックにおける“1”と“0”の個数差の絶対値が最小になるような仮判定値が、判定値として決定されるとは限らない。しかし、過去に生成されたブロックデータにおける累計個数の差の絶対値が10個以上となった場合に、当該累計個数の差の絶対値が減るような仮判定値が、判定値として決定される。
ステップS510において、決定された判定値が、判定値レジスタ32に記憶される。
その後、例えば、図18のステップS306以降、または、図20のステップS407以降のフローにしたがって、決定された判定値に基づいて、対象ブロックのブロックデータが生成されてもよい。生成されたブロックデータは、累算器34にも出力されてもよい。累算器34は、当該ブロックデータの“1”と“0”の個数を、これまで累算された“1”と“0”の累計個数に、それぞれ加えてもよい。
上記の例では、これまでに生成された複数のブロックデータを含む全体において“0”の累計個数と“1”の累計個数とに偏りが生じないように、各ブロックの判定値が、順次決められる。そのため、最終的に生成されるデータのランダム性が向上しうる。
図23に示される検定例4は、図18の方法により生成された512kbitのデータのランダム性の検定結果を例示している。参考のため、図23には、同様の方法により生成された256kbitのデータのランダム性を示す検定例3が示されている。図23に示される検定例3と、図19に示される検定例3とは同じである。検定例4に示されるように、データのサイズが大きくなると、“0”の個数と“1”の個数との差が大きくなった。一方、図23に示される検定例5は、図21の方法により生成された512kbitのデータのランダム性の検定結果を例示している。検定例5に示されるように、図21の方法によれば、データのサイズが大きくなっても、“0”の個数と“1”の個数との差の増大が抑制された。その結果、検定例5のデータは、“0”の個数と“1”の個数との差からランダム性を検証する一次度数検定において合格した。すなわち、図21の方法により、データのランダム性が向上しうることが分かった。
<判定値の補正>
図15で設定される判定値は、1次元度数検定に合格する範囲内であれば、中間値以外の値であってもよい。例えば、図15において、個数差が0ではない所定の値に近くなるように、判定値が設定されてもよい。
例えば、“1”の個数と“0”の個数とに、それぞれオフセット値α、β(整数値)が加算されてもよい。すなわち、“1”の個数にオフセット値αを足した値と、“0”の個数にオフセット値βを足した値との差が0に近くなるように、判定値が設定されてもよい。
これにより、例えば、連検定および最長連検定等の合格率が高まりうる。
かかる判定値の補正は、例えば、次のような場合に適用されうる。
図15および図21の方法で生成させた512kbitのデータは、図23の検定例5に示されるように、連検定、および、ブロック単位の最長連検定において不合格であった。
これに対して、本発明者らは、判定値を補正することで、連検定、および、ブロック単位の最長連検定の合格率が高まることを見出した。
図22は、図15および図21の方法で生成された512kbitのデータに対して、単位ブロック内の“1”の最長連の長さを調べた結果を示している。例えば、ブロックデータ“11100”における最長連は“111”であり、ブロックデータ “10110”における最長連は“11”である。図22には、判定値を補正せずにデータを生成した場合の結果と、判定値を補正してデータを生成した場合の結果と、ランダム性の高いデータにおける理論値における、単位ブロック内の“1”の最長連の長さの度数割合を示している。
図22に示すように、判定値を補正せずに生成させたデータでは、理論値に対して、最長連が短いブロックの頻度が高く、最長連が長いブロックの頻度が低かった。一方、単位ブロック内において“1”の個数が“0”の個数よりも多くなるように判定値を補正して生成させたデータでは、補正なしのデータに比べて、理論値に近い分布を示した。これは、補正された判定値に基づいて“0”または“1”の割り当てをした結果。“1”に割り当てられるメモリセルが多くなり、それに伴って、“1”の連が長くなりやすくなったためと考えられる。
図23に示される検定例5は、判定値を補正せずに生成されたデータにおけるランダム性の検定結果を例示している。検定例6は、判定値を補正して生成されたデータにおけるランダム性の検定結果を例示している。検定例6では、1つのブロック内の“1”の個数が“0”の個数より8個多くなるようにオフセット値が設定された(α=8、β=0)。
図23に示すように、検定例6では、検定例5に比べて“1”の個数と“0”の個数との差が増大したものの、全ての検定項目において合格した。すなわち、判定値に所定のオフセットを設定することにより、ランダム性を向上させることができる。
なお、オフセット値の具体的な値は、上記の例に限定されるわけでない。オフセット値は、一次元度数検定が不合格とならない範囲内で、任意の値に設定されうる。
<データの書き込み>
データ生成装置10において、生成されたデータは、メモリセルアレイ20に書き込まれてもよい。
例えば、生成されたデータは、メモリセル21が初期状態であるか否かの違いを利用してメモリセルアレイ20に書き込まれてもよい。この場合、例えば、マスクデータレジスタ13に記憶されたデータに基づいて、書き込み回路14は、“0”に対応するメモリセル21にのみ、フォーミングストレスを印加してもよい。さらに、書き込み回路14は、“1”に対応するメモリセル21に、初期抵抗値範囲内でメモリセル21の抵抗値を上昇させる電圧パルスを印加してもよい。
例えば、生成されたデータは、メモリセル21の抵抗値が第1抵抗値範囲と第2抵抗値範囲のいずれにあるかの違いを利用してメモリセルアレイ20に書き込まれてもよい。この場合、書き込み回路14は、各メモリセル21に対し、第2電気的ストレスおよび第1電気的ストレスのいずれか一方を印加してもよい。
<製造ばらつきを考慮してデータ生成用電気的ストレスを印加する方法>
図14のステップS103、図18のステップS303、図20のステップS403において、データ生成用電気的ストレスの種々の条件は、製造ばらつきを考慮して設定されてもよい。製造ばらつきの例としては、抵抗変化層の厚みのばらつき、ウエハ面内での欠陥のばらつき、および、ロット間の製造ばらつき等が挙げられる。これらのばらつきにより、複数のメモリセルアレイに同一の電気的ストレスが印加された場合であっても、抵抗値の分布が大きく異なる場合がある。その結果、例えば、乱数データの生成に支障をきたすおそれがある。
例えば、メモリセルアレイ20は、データ生成のための抵抗値情報が読み出されるデータ生成用領域とは別に、テスト用の複数のメモリセルを含むテスト用領域を備えてもよい。テスト用のメモリセルは、例えば、データ生成用のメモリセルとほぼ同等の特性を有する。データ生成用のメモリセルに対してデータ生成用電気的ストレスが印加される場合、当該電気的ストレスの種々の条件は、テスト用領域から取得された複数の抵抗値情報に基づいて決定されてもよい。例えば、それらの条件は、テスト用領域から取得された複数の抵抗値情報の中間値に基づいて決定されてもよい。テスト用領域のサイズは、例えば、数100bitから数kbitである。テスト用のメモリセルには、仮の電気的ストレスが印加されたものであってもよい。
例えば、理想的な抵抗値分布を有するメモリセルアレイから取得された複数の抵抗値情報の中間値が、予め、基準中間値として設定されていてもよい。そして、データ生成用電気的ストレスの種々の条件は、対象とするメモリセルアレイ20から取得される複数の抵抗値情報の中間値が基準中間値に近づくように、調節されてもよい。
これにより、各データ生成装置のメモリセルアレイの特性がばらつく場合であっても、それらは、高いランダム性を有するデータを生成できる。
テスト用領域は、対象となるメモリセルアレイ内になくてもよい。テスト用領域は、例えば、ウエハの状態において、複数のメモリセルアレイ同士の間のスクライブ領域に形成されていてもよい。
データ生成用のメモリセルに対してデータ生成用電気的ストレスが印加された後に、テスト用領域に、何らかの情報が記録されてもよい。テスト用領域は、例えば、ID情報が記録されてもよい。
電気的ストレスの種々の条件を設定するための動作は、データ生成装置10の製造装置が実行してもよい。これにより、データ生成装置10の回路規模を増加させることなく、電気的ストレスの種々の条件が設定されうる。
上記説明から、当業者にとっては、本実施形態の多くの改良や他の実施形態が明らかである。従って、上記説明は、例示としてのみ解釈されるべきである。本開示の精神を逸脱することなく、その構造および/または機能の詳細が実質的に変更されうる。
なお、本開示において、各ブロック図に示される機能ブロックの少なくとも一部は、半導体装置、半導体集積回路(IC)、LSI(large scale integration)、または、それらが組み合わされた電子回路によって実行されてもよい。LSIまたはICは、1つのチップに集積されていてもよいし、複数のチップが組み合わされていてもよい。例えば、各機能ブロックは、1つのチップに集積されてもよい。ここでは、LSIやICは、集積の度合いに応じて、例えば、システムLSI、VLSI(very large scale integration)、もしくはULSI(ultra large scale integration)と呼ばれうる。