(57)【特許請求の範囲】
【請求項１】
複数のメモリセルがアレイ状に配置されたメモリセルアレイと、
前記複数のメモリセルから複数の抵抗値情報を取得する読み出し回路と、
前記複数の抵抗値情報を用いて判定条件を設定し、前記判定条件に基づいて前記複数の抵抗値情報のそれぞれに対して複数の値から選択的に１つの値を割り当てることによりデータを生成する、データ生成回路と、を備え、
前記複数のメモリセルのそれぞれは、可変状態にあるとき、異なる複数の電気的ストレスの印加に応じて抵抗値が複数の可変抵抗値範囲の間を不揮発的かつ可逆的に遷移する性質を有し、
前記複数の値は、第１値及び第２値を含み、
前記データ生成回路は、前記判定条件に基づいて前記複数の抵抗値情報のそれぞれを第１群と第２群のいずれに振り分けるかを決定し、前記第１群に振り分けられた場合には前記第１値を割り当て、前記第２群に振り分けられた場合には前記第２値を割り当てることにより、前記データを生成し、
前記第１値の個数をＮ１とし、前記第２値の個数をＮ２とするとき、前記判定条件は、Ｎ１およびＮ２が以下の式（１）および式（２）を満たすように定められる、
データ生成装置。
【数１】
0006388235.tif 000020
【数２】
0006388235.tif 000021
【請求項２】
前記データ生成回路は、Ｎ１とＮ２との差が０でない所定の設定値となるように前記判定条件を設定する、
請求項１に記載のデータ生成装置。
【請求項３】
複数のメモリセルがアレイ状に配置されたメモリセルアレイと、
前記複数のメモリセルから複数の抵抗値情報を取得する読み出し回路と、
前記複数の抵抗値情報を用いて判定条件を設定し、前記判定条件に基づいて前記複数の抵抗値情報のそれぞれに対して複数の値から選択的に１つの値を割り当てることによりデータを生成する、データ生成回路と、を備え、
前記複数のメモリセルのそれぞれは、可変状態にあるとき、異なる複数の電気的ストレスの印加に応じて抵抗値が複数の可変抵抗値範囲の間を不揮発的かつ可逆的に遷移する性質を有し、
前記複数の値は、第１値及び第２値を含み、
前記データ生成回路は、前記判定条件に基づいて前記複数の抵抗値情報のそれぞれを第１群と第２群のいずれに振り分けるかを決定し、前記第１群に振り分けられた場合には前記第１値を割り当て、前記第２群に振り分けられた場合には前記第２値を割り当てることにより、前記データを生成し、
前記判定条件は、前記複数の抵抗値情報のそれぞれと所定の判定値との比較を用いるものであり、前記判定値は、前記複数の抵抗値情報の中間値である、
データ生成装置。
【請求項４】
前記データ生成回路は、前記データを所定の検定条件に基づいて検定し、前記データが不合格と判断された場合に、前記判定条件を変更して前記データを生成し直す、
請求項１から３のいずれか１項に記載のデータ生成装置。
【請求項５】
それぞれ複数のメモリセルからなる複数のブロックを含むメモリセルアレイと、
前記ブロック毎に前記複数のメモリセルから複数の抵抗値情報を取得する読み出し回路と、
前記ブロック毎に取得された前記複数の抵抗値情報を用いて前記ブロック毎に判定条件を設定し、前記判定条件に基づいて前記複数の抵抗値情報のそれぞれに対して複数の値から選択的に１つの値を割り当てることにより前記ブロック毎にブロックデータを生成し、複数の前記ブロックデータから構成されるデータを生成する、データ生成回路と、を備え、
前記複数のメモリセルのそれぞれは、可変状態にあるとき、異なる複数の電気的ストレスの印加に応じて抵抗値が複数の可変抵抗値範囲の間を不揮発的かつ可逆的に遷移する性質を有し、
前記複数の値は、第１値及び第２値を含み、
前記データ生成回路は、前記判定条件に基づいて前記複数の抵抗値情報のそれぞれを第１群と第２群のいずれに振り分けるかを決定し、前記第１群に振り分けられた場合には前記第１値を割り当て、前記第２群に振り分けられた場合には前記第２値を割り当てることにより、前記ブロックデータを生成し、
前記データ生成回路は、
前記ブロックデータを構成する前記第１値の個数をＮ１とし、前記第２値の個数をＮ２とするとき、
Ｎ１とＮ２との差が０でない所定の設定値となるように、かつ、Ｎ１およびＮ２が以下の式（３）および式（４）を満たすように、前記ブロックデータに対応するブロック毎に設定される判定条件を定める、データ生成装置。
【数３】
0006388235.tif 000022
【数４】
0006388235.tif 000023
【請求項６】
前記判定条件は、前記複数の抵抗値情報のそれぞれと所定の判定値との比較を用いるものであり、前記判定値は、前記複数の抵抗値情報の中間値である、
請求項５に記載のデータ生成装置。
【請求項７】
前記データ生成回路は、前記ブロックデータを所定の検定条件に基づいて検定し、前記ブロックデータが不合格と判断された場合に、前記判定条件を変更して前記ブロックデータを生成し直す、
請求項５または６に記載のデータ生成装置。
【請求項８】
前記異なる複数の電気的ストレスを前記複数のメモリセルに印加する電圧印加回路をさらに備え、
前記読み出し回路は、前記複数のメモリセルから第１の複数の抵抗値情報を取得し、
前記データ生成回路は、前記ブロックデータを生成する前に、前記第１の複数の抵抗値情報を所定の検定条件に基づいて検定し、
前記第１の複数の抵抗値情報が不合格と判断された場合に、前記電圧印加回路が前記複数のメモリセルの少なくとも一部に所定の電気的ストレスを印加し、前記読み出し回路が前記複数のメモリセルから第２の複数の抵抗値情報を前記複数の抵抗値情報として取得し、
前記第１の複数の抵抗値情報が合格と判断された場合に、前記第１の複数の抵抗値情報を前記複数の抵抗値情報とする、
請求項５または６に記載のデータ生成装置。
【請求項９】
前記所定の検定条件は、前記第１の複数の抵抗値情報の偏りを検定するものであり、
前記第２の複数の抵抗値情報の偏りは、前記第１の複数の抵抗値情報の偏りよりも小さい、
請求項８に記載のデータ生成装置。
【請求項１０】
前記判定条件は、過去に生成された１つ以上のブロックデータに含まれる前記第１値の累計個数と、前記１つ以上のブロックデータに含まれる前記第２値の累計個数と、前記第１値の累計個数および前記第２値の累計個数の差とのうち少なくとも１つを用いて設定される、
請求項５から９のいずれか１項に記載のデータ生成装置。
【請求項１１】
前記データ生成回路は、
過去に生成された１つ以上のブロックデータに含まれる前記第１値の累計個数と、前記１つ以上のブロックデータに含まれる前記第２値の累計個数と、前記第１値の累計個数および前記第２値の累計個数の差とのうち少なくとも１つが、所定の検定条件を満たすか否かを検定し、前記検定で不合格と判断された場合に、前記１つ以上のブロックデータのうち最後に生成されたブロックデータに対応するブロックについて設定されていた前記判定条件を変更し、前記最後に生成されたブロックデータを生成し直す、
請求項５から９のいずれか１項に記載のデータ生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、データ生成装置およびデータ生成方法に関する。
【背景技術】
【０００２】
特許文献１は、磁化が１／２の確率で反転するようなスピン注入電流がＭＲＡＭに供給され、これにより乱数が生成される技術を開示する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１３９０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本開示は、例えば、より安全な暗号技術等に応用可能な、従来にないデータ生成方法を提供する。
【課題を解決するための手段】
【０００５】
本開示の一態様（ａｓｐｅｃｔ）に係るデータ生成装置は、複数のメモリセルがアレイ状に配置されたメモリセルアレイと、前記複数のメモリセルから複数の抵抗値情報を取得する読み出し回路と、前記複数の抵抗値情報を用いて判定条件を設定し、前記判定条件に基づいて前記複数の抵抗値情報のそれぞれに対して複数の値から選択的に１つの値を割り当てることによりデータを生成する、データ生成回路と、を備える。前記複数のメモリセルのそれぞれは、可変状態にあるとき、異なる複数の電気的ストレスの印加に応じて抵抗値が複数の可変抵抗値範囲の間を不揮発的かつ可逆的に遷移する性質を有する。
【０００６】
本開示は、上記の他、データ生成方法等の態様でも実現されうる。
【発明の効果】
【０００７】
本開示の一態様によれば、例えば、より安全な暗号技術等に応用可能な、従来にないデータ生成方法を提供することができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、１ｋｂｉｔのメモリセルからなるメモリセルアレイにおける抵抗値の分布を示すグラフである。
【図２】図２は、実施形態にかかるデータ生成装置の概略構成の一例を示すブロック図である。
【図３】図３は、実施形態にかかるデータ生成回路の概略構成の一例を示すブロック図である。
【図４】図４は、実施形態にかかるメモリセルの概略構成の一例を示す模式図である。
【図５】図５は、実施形態にかかるメモリセルの抵抗値範囲の一例を示すグラフである。
【図６】図６は、パーコレーションモデル（percolation model）を用いて、抵抗変化層（例えば局所領域）中のフィラメントの形成をシミュレートした結果の一例を示す図である。
【図７】図７は、実施形態のデータ生成方法の一例を示すフローチャートである。
【図８】図８は、第１実施例にかかるデータ生成装置の概略構成の一例を示すブロック図である。
【図９】図９は、第１実施例にかかる読み出し回路の概略構成の一例を示すブロック図である。
【図１０】図１０は、第１実施例にかかる読み出し回路の主要箇所の動作例を示すタイミングチャートである。
【図１１】図１１は、第１実施例にかかる読み出し回路において、ノードＣを流れる電流の時間変化の一例を示すグラフである。
【図１２】図１２は、第１実施例にかかるデータ生成回路の概略構成の一例を示すブロック図である。
【図１３】図１３は、第１実施例にかかるデータ生成回路の概略構成の他の例を示すブロック図である。
【図１４】図１４は、第１実施例のデータ生成装置における固有データ生成の動作例を示すフローチャートである。
【図１５】図１５は、第１実施例のデータ生成装置における判定値の設定の動作例を示すフローチャートである。
【図１６】図１６は、メモリセルアレイ内の各領域における、“１”と“０”の個数の分布を調べた結果を示す図である。
【図１７】図１７は、ブロック毎に判定値を異ならせる方法を示す概念図である。
【図１８】図１８は、第１実施例のデータ生成装置における、ブロックデータ生成の動作例を示すフローチャートである。
【図１９】図１９は、生成されたデータの検定結果を示す図である。
【図２０】図２０は、ブロックデータの検定と電気的ストレスの再印加を行う動作の一例を示すフローチャートである。
【図２１】図２１は、判定値の設定動作の一例を示すフローチャートである。
【図２２】図２２は、生成されたデータにおけるブロック内の最長連の長さの度数分布を示すグラフである。
【図２３】図２３は、生成されたデータの検定結果を示す図である。
【発明を実施するための形態】
【０００９】
（本開示の基礎となった知見）
実施形態について説明する前に、本発明者らが見出した知見について説明する。なお、以下の説明は、本開示を理解する上で一助とされるものであり、本開示を限定するものではない。
【００１０】
本発明者らは、酸素不足型のＴａ酸化物（ＴａＯｘ）を抵抗変化素子とし、メモリセルが１つのトランジスタと１つの抵抗変化素子とで構成される、いわゆる、１Ｔ１Ｒ型メモリセルで構成されたメモリセルアレイを用いて実験を行った。
【００１１】
図１は、１ｋｂｉｔのメモリセルからなるメモリセルアレイにおける抵抗値の分布の一例を示すグラフである。横軸が抵抗値を示し、縦軸が標準正規分布の偏差を示す。メモリセルに含まれる抵抗変化素子の構成は、以下の通りであった。抵抗変化素子の大きさは約４００ｎｍ×４００ｎｍであった。下部電極の材料はＴａＮであり、下部電極の厚さは約５０ｎｍであった。上部電極の材料はイリジウムであり、上部電極の厚さは約１００ｎｍであった。抵抗変化層は、第１タンタル酸化物層と、第２タンタル酸化物層とを含んでいた。第１タンタル酸化物層の厚さは約６５ｎｍであり、第２タンタル酸化物層の厚さは約５ｎｍであった。
【００１２】
図１に示される状態Ａは、初期状態の中でも、製造後に電気的ストレスが全く印加されていない状態に相当する。この状態は、第１初期状態と呼ばれる場合がある。状態Ａのメモリセルは、電気的ストレスが印加されていない。図１に示されるように、状態Ａのメモリセルにおいて、抵抗値のばらつきは小さく、抵抗値は高かった。そのため、状態Ａ、すなわち第１初期状態は、非常に安定である。
【００１３】
図１に示される状態Ｂは、第１初期状態のメモリセルに対し、抵抗値情報を読み出す時に印加される電気的ストレスよりも大きく、かつ、フォーミングストレスよりも小さい所定の電気的ストレスが印加された状態に相当する。本開示において、この所定の電気的ストレスは、データ生成用電気的ストレスと呼ばれる場合がある。なお、データ生成用電気的ストレスが印加された後に、その抵抗値が初期抵抗値範囲に留まっている状態は、第２初期状態と呼ばれる場合がある。
【００１４】
状態Ｂの抵抗値の分布は、第１初期状態の抵抗値の分布よりも低抵抗側に広がっていた。第２初期状態は、初期状態ではあるものの、初期状態と可変状態とを判定する基準となる第１閾値付近まで、抵抗値が分布していた。
【００１５】
状態Ａの抵抗値分布と状態Ｂの抵抗値分布との違いの原因は、次のように考えられる。
【００１６】
初期状態のメモリセルは、金属酸化物中に複数の欠陥サイトを有し、それらはメモリセル毎にランダムに分布している。初期状態のメモリセルに電気的ストレスが印加されると、ストレスの強度や回数に応じて、欠陥サイトの密度が増大し、欠陥サイト同士が徐々に接続されていく。欠陥サイトが接続されるとは、欠陥サイトと欠陥サイトの間のサイトが欠陥サイトとなることによって、欠陥サイトの連なりが形成されることをいう。そして、抵抗変化素子の内部にフィラメントが形成されることにより、フォーミング処理が完了し、抵抗変化素子は可変状態となる。本開示では、欠陥サイトの連なりのうち、メモリセルを可変状態とするようなものをフィラメントと呼ぶ。言い換えれば、可変状態のメモリセルはフィラメントを有し、初期状態のメモリセルは、欠陥サイトの連なりを有する場合はあっても、フィラメントは有さない。
【００１７】
例えば、第１初期状態にある複数のメモリセルに対して一定の電気的ストレスを印加した場合、フォーミング処理が完了する前であっても、欠陥サイトの連なりが部分的に生成されうる。この欠陥サイトの連なりの長さや太さは、統計的に（例えば標準正規分布様に）ばらつく。
【００１８】
第２初期状態にあるメモリセルの抵抗値は、第１初期状態のメモリセルの抵抗値よりも低く、確率的にばらつく。電気的ストレスの印加によって広がる抵抗値のばらつきが、第１初期状態の抵抗値のばらつき(例えば製造ばらつき)よりも大きい場合、電気的ストレスの印加は、初期状態のメモリセルにおける抵抗値の分布を広げることができる。なお、抵抗値の統計的なばらつきは、データ生成用電気的ストレスの印加によって、一部または全部のメモリセルが初期状態から可変状態に変化する場合においても、同様に発現すると考えられる。
【００１９】
本発明者らは、この性質を利用して、装置毎に固有の数値データを生成できることを見出した。例えば、第１初期状態にある複数のメモリセルから読み出された複数の抵抗値を利用して、装置毎に固有の数値データが生成されうる。
【００２０】
数値データは、所定の判定条件に基づいて、複数の抵抗値情報のそれぞれに選択的に値を割り当てることにより生成されうる。所定の判定条件は、読み出された複数の抵抗値情報を用いて設定されうる。
【００２１】
以下、添付図面を参照しつつ、本開示の実施形態について説明する。
【００２２】
以下で説明する実施形態は、いずれも一具体例を示すものである。以下の実施形態で示される数値、形状、材料、構成要素、構成要素の配置位置および接続形態、ステップ、ステップの順序などは、あくまで一例であり、本開示を限定するものではない。以下の実施形態における構成要素のうち、本開示の最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。また、図面において、同じ符号が付いたものは、説明を省略する場合がある。また、図面は理解しやすくするために、それぞれの構成要素を模式的に示したもので、形状および寸法比等については正確な表示ではない場合がある。また、製造方法においては、必要に応じて、各工程の順序等を変更でき、かつ、他の公知の工程を追加できる。
【００２３】
（実施形態の概要）
本開示の一態様に係るデータ生成装置は、複数のメモリセルがアレイ状に配置されたメモリセルアレイと、複数のメモリセルから複数の抵抗値情報を取得する読み出し回路と、複数の抵抗値情報を取得し、複数の抵抗値情報を用いて判定条件を設定し、該判定条件に基づいて複数の抵抗値情報のそれぞれに対し複数の値から選択的に１つの値を割り当てることによりデータを生成する、データ生成回路と、を備える。複数のメモリセルのそれぞれは、異なる複数の電気的ストレスが印加されることによって抵抗値が複数の可変抵抗値範囲の間を不揮発的かつ可逆的に遷移する可変状態を取りうる性質を有する。
【００２４】
かかる構成では、例えば、より安全な暗号技術等に応用可能な、従来にないデータ生成方法が提供されうる。
【００２５】
なお、該判定条件は、例えば、予め定められていてもよいし、データ生成回路によってその都度、動的に定められてもよい（以下、同様）。
【００２６】
上記データ生成装置において、データ生成回路は、該判定条件に基づいて複数の抵抗値情報のそれぞれを第１群と第２群のいずれに振り分けるかを決定し、第１群に振り分けられた場合には第１値を割り当て、第２群に振り分けられた場合には第２値を割り当てることにより、データを生成してもよい。
【００２７】
上記データ生成装置において、第１値の個数をＮ１とし、第２値の個数をＮ２とするとき、判定条件が、Ｎ１およびＮ２が以下の式（１）および式（２）を満たすように定められてもよい。
【００２８】
【数１】
0006388235.tif 000002
【００２９】
【数２】
0006388235.tif 000003
【００３０】
かかる構成では、各メモリセルが、２値のいずれかに実質的に均等に振り分けられる。よって、例えば、より高品質な乱数データが生成されうる。
【００３１】
上記データ生成装置において、データ生成回路は、Ｎ１とＮ２との差が０でない所定の設定値となるように判定条件を設定してもよい。
【００３２】
かかる構成では、意図的に２値への振り分けを偏らせることができる。よって、生成されたデータは、例えば、連検定および最長連検定をパスしやすくなる。
【００３３】
「所定の設定値」は、間接的に予め定められていてもよい。例えば、設定値は、所定の演算式等でその都度、求められてもよい。
【００３４】
上記データ生成装置において、判定条件は、抵抗値情報と所定の判定値との比較を用いるものであってもよい。判定値は、複数の抵抗値情報の中間値であってもよい。
【００３５】
上記データ生成装置において、複数のメモリセルのそれぞれは、可変状態に変化させるような電気的ストレスであるフォーミングストレスが印加されない限り可変状態とならず、かつ、抵抗値が可変抵抗値範囲のいずれとも重複しない初期抵抗値範囲にある、初期状態を取りうる性質をさらに有してもよい。判定条件は、抵抗値情報と所定の判定値との比較を用いるものであってもよい。判定値の少なくとも１つが初期抵抗値範囲に含まれてもよい。
【００３６】
上記データ生成装置において、データ生成回路は、データを所定の検定条件に基づいて検定するデータ検定回路をさらに備えてもよい。データ検定回路がデータを不合格と判断した場合に、データ生成回路は、判定条件を変更してデータを生成し直してもよい。
【００３７】
かかる構成では、例えば、より高品質な乱数データが生成されうる。
【００３８】
「所定の検定条件」は、間接的に予め定められていてもよい。例えば、検定に用いる閾値等が、所定の演算式等でその都度、求められてもよい（以下、同様）。
【００３９】
上記データ生成装置において、メモリセルアレイは、それぞれ複数のメモリセルからなる複数のブロックを備えてもよい。読み出し回路は、前記ブロック毎に前記複数のメモリセルから複数の抵抗値情報を取得してもよい。データ生成回路は、ブロック毎に複数の抵抗値情報を取得し、ブロック毎に取得された複数の抵抗値情報を用いてブロック毎に判定条件を設定し、該判定条件に基づいて複数の抵抗値情報のそれぞれに対し複数の値から選択的に１つの値を割り当てることによりブロック毎にブロックデータを生成し、複数のブロックデータからデータを生成してもよい。
【００４０】
かかる構成では、ブロック毎に読み出された抵抗値情報を用いてブロック毎に判定条件が設定されるため、例えば、大規模かつ高品質な乱数データが生成されうる。
【００４１】
上記データ生成装置において、データ生成回路は、該判定条件に基づいて複数の抵抗値情報のそれぞれを第１群と第２群のいずれに振り分けるかを決定し、第１群に振り分けられた場合には第１値を割り当て、第２群に振り分けられた場合には第２値を割り当てることにより、ブロックデータを生成してもよい。
【００４２】
上記データ生成装置において、複数のメモリセルのそれぞれは、可変状態に変化させるような電気的ストレスであるフォーミングストレスが印加されない限り可変状態とならず、かつ、抵抗値が可変抵抗値範囲のいずれとも重複しない初期抵抗値範囲にある、初期状態を取りうる性質をさらに有してもよい。判定条件は、抵抗値情報とブロック毎に設定される判定値との比較を用いるものであってもよい。ブロック毎に設定される判定値は初期抵抗値範囲に含まれてもよい。
【００４３】
上記データ生成装置において、データ生成回路は、ブロックデータを所定の検定条件に基づいて検定し、ブロックデータが不合格と判断された場合に、判定条件を変更してブロックデータを生成し直してもよい。
【００４４】
上記データ生成装置において、読み出し回路は、複数のメモリセルから第１の複数の抵抗値情報を取得し、データ生成回路は、ブロックデータを生成する前に、第１の複数の抵抗値情報を所定の検定条件に基づいて検定してもよい。検定の結果、第１の複数の抵抗値情報が不合格と判断された場合に、電圧印加回路が複数のメモリセルの少なくとも一部に所定の電気的ストレスを印加し、読み出し回路が複数のメモリセルから第２の複数の抵抗値情報を複数の抵抗値情報として取得してもよい。第１の複数の抵抗値情報が合格と判断された場合に、第１の複数の抵抗値情報が複数の抵抗値情報とされてもよい。このとき、所定の検定条件は、第１の複数の抵抗値情報の偏りを検定するものであってもよく、第２の複数の抵抗値情報の偏りは、第１の複数の抵抗値情報の偏りよりも小さくてもよい。
【００４５】
これらの構成では、ブロック毎にデータの検定が行われることで、例えば、大規模かつ高品質な乱数データが生成されうる。「所定の検定値」は、間接的に予め定められていてもよい。例えば、検定値が、所定の演算式等でその都度、求められてもよい（以下、同様）。
【００４６】
上記データ生成装置において、データ生成回路は、累算器を備えてもよい。累算器は、過去に生成された１つ以上のブロックデータに含まれる第１値の累計個数と、当該１つ以上のブロックデータに含まれる第２値の累計個数と、当該１つ以上のブロックデータに含まれる第１値の累計個数および第２値の累計個数の差とのうち、少なくとも１つを求めてもよい。求められた少なくとも１つの値を利用して、ブロック毎の判定条件が設定されてもよい。
【００４７】
かかる構成では、例えば、大規模かつ高品質な乱数データが生成されうる。
【００４８】
上記データ生成装置において、累算器によって求められた少なくとも１つの値が所定の検定条件を満たすか否かを検定する累計検定回路を備えてもよい。この検定で不合格と判断された場合に、データ生成回路は、過去に生成された１つ以上のブロックデータのうち最後に生成されたブロックデータに対応するブロックについて設定されていた判定条件を変更して、最後に生成されたブロックデータを生成し直してもよい。
【００４９】
かかる構成では、例えば、大規模かつ高品質な乱数データが生成されうる。
【００５０】
上記データ生成装置において、第１値の累計個数をＮ１とし、第２値の累計個数をＮ２とするとき、検定条件は、Ｎ１およびＮ２が以下の式（３）および式（４）を満たすことであってもよい。
【００５１】
【数３】
0006388235.tif 000004
【００５２】
【数４】
0006388235.tif 000005
【００５３】
かかる構成では、ブロック毎に、各抵抗値情報が、２値のいずれかに実質的に均等に振り分けられる。よって、例えば、大規模かつ高品質な乱数データが生成されうる。
【００５４】
上記データ生成装置において、データ生成回路は、ブロックデータを構成する第１値の個数をＮ１とし、第２値の個数をＮ２とするとき、Ｎ１とＮ２との差が０でない所定の設定値となるように、かつ、Ｎ１およびＮ２が以下の式（５）および式（６）を満たすように、ブロックデータに対応するブロック毎に設定される判定条件を定めてもよい。
【００５５】
【数５】
0006388235.tif 000006
【００５６】
【数６】
0006388235.tif 000007
【００５７】
かかる構成では、意図的に２値への振り分けを偏らせることができる。よって、生成されたデータは、例えば、連検定および最長連検定をパスしやすくなる。
【００５８】
上記データ生成装置において、抵抗値情報を読み出す時に印加される電気的ストレスよりも大きな電気的ストレスが初期状態にある複数のメモリセルに印加された後に、読み出し回路が複数のメモリセルから複数の抵抗値情報を取得してもよい。大きな電気的ストレスは、フォーミングストレスであってもよい。あるいは、大きな電気的ストレスは、データ生成用電気的ストレスであってもよい。後者の場合、上記データ生成装置は、データ生成用電気的ストレスを複数のメモリセルに印加する電圧印加回路をさらに備えてもよい。
【００５９】
かかる構成では、例えば、第１初期状態の抵抗値のばらつきが小さ過ぎてデータの生成が困難な場合であっても、高品質な乱数データが生成されうる。
【００６０】
上記データ生成装置は、複数のメモリセルにフォーミングストレスを印加することで、各メモリセルの抵抗値が初期抵抗値範囲にあるか否かの違いを利用して、メモリセルアレイにデータを記録する、電圧印加回路をさらに備えてもよい。
【００６１】
かかる構成では、例えば、得られたデータが、初期状態か否かの違いを利用して安定して記録されうる。例えば、データ生成に用いるメモリセルアレイが、データ記録にも用いられるため、装置構成が簡潔化され、装置の小型化が可能となる。
【００６２】
上記データ生成装置は、複数のメモリセルに異なる複数の電気的ストレスを印加することで、各メモリセルの抵抗値が初期抵抗値範囲にあるか否かの違いを利用せずに、各メモリセルの抵抗値が少なくとも一つの可変抵抗値範囲にあるか否かの違いを利用して、メモリセルアレイにデータを記録する、電圧印加回路をさらに備えてもよい。
【００６３】
かかる構成では、例えば、得られたデータが不揮発的に記録されうる。例えば、データ生成に用いるメモリセルアレイが、データ記録にも用いられるため、装置構成が簡潔化され、装置の小型化が可能となる。
【００６４】
本開示の一態様に係るデータ生成方法は、メモリセルアレイに含まれる複数のメモリセルから複数の抵抗値情報を取得するステップＡと、複数の抵抗値情報を用いて判定条件を設定するステップＢと、該判定条件に基づいて複数の抵抗値情報のそれぞれに対して複数の値から選択的に１つの値を割り当てることによりデータを生成するステップＣと、を備える。複数のメモリセルのそれぞれは、可変状態にあるとき、異なる複数の電気的ストレスの印加に応じて抵抗値が複数の可変抵抗値範囲の間を不揮発的かつ可逆的に遷移する性質を有する。
【００６５】
かかる構成では、例えば、より安全な暗号技術等に応用可能な、従来にないデータ生成方法が提供されうる。
【００６６】
上記データ生成方法において、ステップＣは、該判定条件に基づいて複数の抵抗値情報のそれぞれを第１群と第２群のいずれに振り分けるかを決定し、第１群に振り分けられた場合には第１値を割り当て、第２群に振り分けられた場合には第２値を割り当てることにより、データを生成するものであってもよい。
【００６７】
上記データ生成方法において、さらに、ステップＢは、第１値の個数をＮ１とし、第２値の個数をＮ２とするとき、Ｎ１およびＮ２が以下の式（７）および式（８）を満たすように判定条件を定めるものであってもよい。
【００６８】
【数７】
0006388235.tif 000008
【００６９】
【数８】
0006388235.tif 000009
【００７０】
かかる構成では、各抵抗値情報が、２値のいずれかに実質的に均等に振り分けられる。よって、例えば、より高品質な乱数データが生成されうる。
【００７１】
上記データ生成方法において、ステップＢは、Ｎ１とＮ２との差が０でない所定の設定値となるように判定条件を設定するものであってもよい。
【００７２】
かかる構成では、意図的に２値への振り分けを偏らせることができる。よって、生成されたデータは、例えば、連検定および最長連検定をパスしやすくなる。
【００７３】
上記データ生成方法において、判定条件は、抵抗値情報と所定の判定値との比較を用いるものであってもよい。ステップＢは、複数の抵抗値情報の中間値を判定値として設定してもよい。
【００７４】
上記データ生成方法において、複数のメモリセルのそれぞれは、さらに、可変状態に変化させるような電気的ストレスであるフォーミングストレスが印加されない限り可変状態とならず、かつ、抵抗値が可変抵抗値範囲のいずれとも重複しない初期抵抗値範囲にある、初期状態を取りうる性質をさらに有してもよい。判定条件は、抵抗値情報と所定の判定値との比較を用いるものであってもよい。判定値の少なくとも１つが初期抵抗値範囲に含まれてもよい。
【００７５】
上記データ生成方法は、データを所定の検定条件に基づいて検定するステップＥと、ステップＥにおいてデータが不合格と判断された場合に、判定条件を変更してステップＡとステップＢとステップＣとを再度実行することでデータを生成し直すステップＦとをさらに備えてもよい。
【００７６】
かかる構成では、例えば、より高品質な乱数データが生成されうる。
【００７７】
上記データ生成方法において、メモリセルアレイは、それぞれ複数のメモリセルからなる複数のブロックを備えてもよい。ステップＡは、ブロック毎に複数の抵抗値情報を取得するものであってもよい。ステップＢは、ブロック毎に取得された複数の抵抗値情報を用いてブロック毎に判定条件を設定するものであってもよい。ステップＣは、該判定条件に基づいて複数の抵抗値情報のそれぞれに対し複数の値から選択的に１つの値を割り当てることによりブロック毎にブロックデータを生成し、複数のブロックデータからデータを生成するものであってもよい。
【００７８】
かかる構成では、ブロック毎に読み出された抵抗値情報を用いてブロック毎に判定条件が設定されるため、例えば、大規模かつ高品質な乱数データが生成されうる。
【００７９】
上記データ生成方法において、ステップＣは、該判定条件に基づいて複数の抵抗値情報のそれぞれを第１群と第２群のいずれに振り分けるかを決定し、第１群に振り分けられた場合には第１値を割り当て、第２群に振り分けられた場合には第２値を割り当てることにより、ブロックデータを生成するものであってもよい。
【００８０】
上記データ生成方法において、判定条件は、抵抗値情報とブロック毎に設定される判定値との比較を用いるものであってもよい。ブロック毎に設定される判定値は初期抵抗値範囲に含まれてもよい。
【００８１】
上記データ生成方法は、複数の抵抗値情報が所定の検定条件を満たすか否かを検定するステップＨと、ステップＨにおいて複数の抵抗値情報が不合格と判断された場合に、複数のメモリセルの少なくとも一部に所定の電気的ストレスを印加するステップＩとを、ステップＡとステップＢとステップＣよりも前に、をさらに備えてもよい。
【００８２】
かかる構成では、ブロック毎にデータの検定が行われるため、例えば、大規模かつ高品質な乱数データが生成されうる。
【００８３】
上記データ生成方法において、前記ステップＢは、過去に生成された１つ以上のブロックデータに含まれる第１値の累計個数と、当該１つ以上のブロックデータに含まれる第２値の累計個数と、第１値の累計個数および第２値の累計個数の差とのうち少なくとも１つを求めるステップＫと、前記ステップＫで求められた少なくとも１つの値を用いてブロック毎の判定条件を設定するステップＬと、を備えてもよい。
【００８４】
かかる構成では、例えば、大規模かつ高品質な乱数データが生成されうる。
【００８５】
上記データ生成方法は、過去に生成された１つ以上のブロックデータに含まれる第１値の累計個数と、当該１つ以上のブロックデータに含まれる第２値の累計個数と、前記第１値の累計個数および前記第２値の累計個数の差とのうち少なくとも１つを求めるステップＫと、前記ステップＫで求められた少なくとも１つの値が所定の検定条件を満たすか否かを検定するステップＭと、ステップＭにおいて不合格と判断された場合に、過去に生成された１つ以上のブロックデータのうち最後に生成されたブロックデータに対応するブロックについて設定されていた判定条件を変更してステップＡとステップＢとステップＣとを再度実行することで、最後に生成されたブロックデータを再度生成するステップＮと、をさらに備えてもよい。
【００８６】
かかる構成では、例えば、大規模かつ高品質な乱数データが生成されうる。
【００８７】
上記データ生成方法において、第１値の累計個数をＮ１とし、第２値の累計個数をＮ２とするとき、検定条件は、Ｎ１およびＮ２が以下の式（９）および式（１０）を満たすことであってもよい。
【００８８】
【数９】
0006388235.tif 000010
【００８９】
【数１０】
0006388235.tif 000011
【００９０】
かかる構成では、ブロック毎に、各抵抗値情報が２値のいずれかに実質的に均等に振り分けられる。よって、例えば、大規模かつ高品質な乱数データが生成されうる。
【００９１】
上記データ生成方法は、ブロックデータを構成する第１値の個数をＮ１とし、第２値の個数をＮ２とするとき、Ｎ１とＮ２との差が０でない所定の設定値となるように、かつ、Ｎ１およびＮ２が以下の式（１１）および式（１２）を満たすように、ブロックデータに対応するブロック毎に設定される判定条件を定めるステップＯをさらに備えてもよい。
【００９２】
【数１１】
0006388235.tif 000012
【００９３】
【数１２】
0006388235.tif 000013
【００９４】
かかる構成では、意図的に２値への振り分けを偏らせることができる。よって、生成されたデータは、例えば、連検定および最長連検定をパスしやすくなる。
【００９５】
上記データ生成方法において、初期状態は、データ生成用電気的ストレスが印加されたことのない第１初期状態と、データ生成用電気的ストレスが印加されたことのある第２初期状態とを含んでもよい。ステップＡは、複数のメモリセルにデータ生成用電気的ストレスを印加することで、第１初期状態のメモリセルを第２初期状態のメモリセルに変化させた後に、第２初期状態のメモリセルから複数の抵抗値情報を取得するものであってもよい。
【００９６】
かかる構成では、例えば、第１初期状態では抵抗値のばらつきが小さ過ぎて乱数データの生成が困難な場合でも、高品質な乱数データが生成されうる。
【００９７】
上記データ生成方法は、複数のメモリセルにフォーミングストレスを印加することで、各メモリセルの抵抗値が初期抵抗値範囲にあるか否かの違いを利用して、メモリセルアレイにデータを記録するステップＰをさらに備えてもよい。
【００９８】
かかる構成では、例えば、得られたデータが、初期状態か否かの違いを利用して安定して記録されうる。例えば、データ生成に用いるメモリセルアレイが、データ記録にも用いられるため、装置構成が簡潔化され、装置の小型化が可能となる。
【００９９】
上記データ生成方法において、複数のメモリセルに異なる複数の電気的ストレスを印加することで、各メモリセルの抵抗値が初期抵抗値範囲にあるか否かの違いを利用せずに、各メモリセルの抵抗値が少なくとも一つの可変抵抗値範囲にあるか否かの違いを利用して、メモリセルアレイにデータをさらに記録するステップＱを備えてもよい。
【０１００】
かかる構成では、例えば、得られたデータが、不揮発的に記録されうる。例えば、データ生成に用いるメモリセルアレイがデータ記録にも用いられるため、装置構成が簡潔化され、装置の小型化が可能となる。
【０１０１】
（実施形態）
［装置構成］
図２は、実施形態にかかるデータ生成装置の概略構成の一例を示す。図４は、実施形態にかかるデータ生成装置が備えるメモリセルの概略構成の一例を示す。
【０１０２】
図２に示す例では、データ生成装置１００は、メモリセルアレイ９０と、読み出し回路９２と、データ生成回路９３と、電圧印加回路９４とを備えている。なお、電圧印加回路９４は必須ではなく、省略されうる。
【０１０３】
メモリセルアレイ９０は、複数のメモリセル９１がアレイ状に配置された構成を有する。
【０１０４】
読み出し回路９２は、複数のメモリセル９１のそれぞれから抵抗値情報を取得する。抵抗値情報とは、抵抗値と相関関係を有する情報である。抵抗値情報は、抵抗値そのものであってもよいし、抵抗値に応じて増減する値であってもよい。抵抗値に応じて増減する値の例としては、後述するような、メモリセルに直列に接続されたキャパシタの放電時間、および、該放電時間に対応するカウント値等が挙げられる。なお、キャパシタは素子であることには限定されず、例えば配線などの寄生容量でもよい。
【０１０５】
データ生成回路９３は、読み出し回路９２を介して複数のメモリセル９１から複数の抵抗値情報を取得する。データ生成回路９３は、該複数の抵抗値情報を用いて判定条件を設定する。データ生成回路９３は、該判定条件に基づいて複数の抵抗値情報のそれぞれに対し複数の値から選択的に１つの値を割り当て、これにより、データを生成する。
【０１０６】
データ生成回路９３は、該判定条件に基づいて複数の抵抗値情報のそれぞれを第１群と第２群のいずれに振り分けるかを決定してもよい。例えば、データ生成回路９３は、抵抗値情報が第１群に振り分けられた場合には第１値を割り当て、抵抗値情報が第２群に振り分けられた場合には第２値を割り当てる。これにより、第１値及び第２値から構成されるデータが生成される。これは、「複数の値」が２個である場合の例である。
【０１０７】
「複数の値」が３個の場合には、生成されるデータは３値データとなる。「複数の値」は４個以上であってもよい。
【０１０８】
「データ」の例としては、乱数データ、データ生成装置１００に固有の数値データ、およびデータ生成装置１００に固有の乱数データ等が挙げられる。
【０１０９】
図３は、データ生成装置１００が備えるデータ生成回路９３の概略構成の一例を示す。図３に示す例では、データ生成回路９３は、抵抗値情報取得部９５と、判定条件設定部９６と、データ生成部９７とを含む。抵抗値情報取得部９５は、読み出し回路９２を介して複数のメモリセルから複数の抵抗値情報を取得する。判定条件設定部９６は、複数の抵抗値情報を用いて判定条件を設定する。データ生成部９７は、該判定条件に基づいて複数の抵抗値情報のそれぞれに対し複数の値から選択的に１つの値を割り当てることによりデータを生成する。
【０１１０】
メモリセルアレイ９０は、それぞれ複数のメモリセル９１からなる複数のブロックを備えてもよい。この場合、データ生成回路９３は、読み出し回路９２を介して、ブロック毎に複数の抵抗値情報を取得する。次いで、データ生成回路９３は、ブロック毎に取得された複数の抵抗値情報を用いてブロック毎に判定条件を設定する。次いで、データ生成回路９３は、該判定条件に基づいて複数の抵抗値情報のそれぞれに対し複数の値から選択的に１つの値を割り当てることによりブロック毎にブロックデータを生成する。そして、データ生成回路９３は、複数のブロックデータからデータを生成する。
【０１１１】
データ生成回路９３は、該判定条件に基づいて複数の抵抗値情報のそれぞれを第１群と第２群のいずれに振り分けるかを決定してもよい。例えば、データ生成回路９３は、抵抗値情報が第１群に振り分けられた場合には第１値を割り当て、抵抗値情報が第２群に振り分けられた場合には第２値を割り当てる。これにより、第1値及び第２値から構成されるブロックデータが生成されてもよい。
【０１１２】
なお、データ生成回路９３がブロックデータを生成する場合、ブロックデータは３値データ等の多値データであってもよい。
【０１１３】
図１を参照しつつ説明されたように、第１初期状態のメモリセル（状態Ａ）において、抵抗値はランダムにばらつく。また、第１初期状態のメモリセルにデータ生成用電気的ストレスが印加されたメモリセル（状態Ｂ）において、抵抗値はランダムにばらつく。データ生成装置１００は、かかる特性を利用してデータを生成する。
【０１１４】
すなわち、データ生成装置１００は、複数の抵抗値情報を用いて判定条件を設定し、該判定条件を用いて複数の抵抗値情報のそれぞれに１つの値を割り当てる。これにより、例えば、複数の抵抗値情報が、それぞれの値に実質的に均等に割り当てられ、高品質なランダムデータが生成されうる。
【０１１５】
図４に示す例では、メモリセル９１がトランジスタ１１０と抵抗変化素子１２０とを備えている。トランジスタ１１０は、第１主端子１１４と、第２主端子１１８と、制御端子１１６とを備えている。トランジスタ１１０は、例えばＮＭＯＳトランジスタとすることができる。この場合、例えば、第１主端子１１４は、ソースおよびドレインのうちの一方であり、第２主端子１１８は、ソースおよびドレインのうちの他方であり、制御端子１１６は、ゲート端子である。抵抗変化素子１２０は、第１電極１２４と、抵抗変化層１２６と、第２電極１２８とを備えている。例えば、トランジスタ１１０の第２主端子１１８と、抵抗変化素子１２０の第１電極１２４とが接続されることで、トランジスタ１１０と抵抗変化素子１２０とは直列に接続される。抵抗変化素子１２０の構成例については、後に詳述する。
【０１１６】
本開示において、メモリセルは、トランジスタを含まなくてもよい。メモリセルは、例えば、トランジスタ以外の素子を含んでもよいし、抵抗変化素子のみであってもよい。なお、本開示では、メモリセルが抵抗変化素子とその他の素子とを含む場合に、説明の簡便化のために、その素子の抵抗値が無視されることがある。
【０１１７】
複数のメモリセル９１のそれぞれは、可変状態を取りうる性質を有する。可変状態は、異なる複数の電気的ストレスの印加に応じて抵抗値が複数の可変抵抗値範囲の間を不揮発的かつ可逆的に遷移できる状態をいう。
【０１１８】
複数のメモリセル９１のそれぞれは、さらに、初期状態を取りうる性質を有してもよい。初期状態は、前記可変状態に変化させるような電気的ストレスであるフォーミングストレスが印加されない限り前記可変状態とならず、かつ、抵抗値が前記可変抵抗値範囲のいずれとも重複しない初期抵抗値範囲にある状態をいう。
【０１１９】
図５は、メモリセルの抵抗値範囲の一例を示すグラフである。図５に例示するように、メモリセル９１は、少なくとも可変状態と初期状態の２つの状態を選択的に取りうる性質を有してもよい。さらに、図５に例示するように、可変状態のメモリセル９１の抵抗値は、第１抵抗値範囲と、第２抵抗値範囲との間で変化してもよい。本開示において、メモリセル９１の抵抗値を第２抵抗値範囲から第１抵抗値範囲へと変化させるための電気的ストレスは、第１電気的ストレスと呼ばれる場合がある。一方、メモリセル９１の抵抗値を第１抵抗値範囲から第２抵抗値範囲へと変化させるための電気的ストレスは、第２電気的ストレスと呼ばれる場合がある。第１電気的ストレスおよび第２電気的ストレスは、「異なる複数の電気的ストレス」の一例である。
【０１２０】
初期状態にあるメモリセルは、フォーミングストレスが印加されることにより、可変状態となる。例えば、フォーミングストレスは累積的なストレスであってもよい。その場合、ストレスの累積量が所定量を超えたときに、初期状態から可変状態に遷移する。なお、メモリセル９１は、初期状態を取りうる素子でなくてもよい。メモリセル９１は、例えば、可変状態のみを有する、いわゆるフォーミングレスの素子であってもよい。
【０１２１】
メモリセルアレイ９０が備える複数のメモリセル９１は、可変状態のメモリセルと、初期状態のメモリセルと、を含んでもよい。
【０１２２】
メモリセル９１は、製造後、フォーミングをしなければ可変状態のままであってもよい。フォーミングとは、所定の電気的ストレスをメモリセルに印加して、メモリセルの抵抗値が複数の可変抵抗値範囲の間を可逆的に遷移する状態へと、メモリセルを変化させることをいう。フォーミングのために印加される電気的ストレスは、例えば、所定の電圧と時間幅を有する電気的パルスであってもよいし、複数の電気的パルスを組み合わせたものであってもよい。なお、メモリセル９１は、フォーミングをしなくても抵抗値が複数の可変抵抗値範囲の間を可逆的に遷移する状態にある、いわゆるフォーミングレスの素子であってもよい。
【０１２３】
初期抵抗値範囲は、製造直後のメモリセル９１の抵抗値を含み、かつ、可変状態に変化した後のメモリセル９１の抵抗値を含まないように設定されうる。可変抵抗値範囲は、初期抵抗値範囲を含まず、かつ、可変状態に変化した後のメモリセル９１の抵抗値を含むように設定されうる。抵抗変化素子を備えるメモリセルは、典型的に、上記の特性を備え得る。公知の様々な材料を用いて、かかる特性を備えるメモリセル９１が製造されうる。
【０１２４】
フォーミングストレスではない何らかの電気的ストレスを受けたメモリセル９１の状態は、初期状態に含まれうる。例えば、製造直後のメモリセル９１が、フォーミングストレスではない何らかの電気的ストレスを受けて、その抵抗値が初期抵抗値範囲内で変化した場合、その状態は、初期状態に含まれうる。
【０１２５】
電圧印加回路９４は、データ生成用電気的ストレスを複数のメモリセルに印加してもよい。データ生成用電気的ストレスは、フォーミングストレスよりも弱い電気的ストレスであってもよい。
【０１２６】
その後、データ生成回路９３は、読み出し回路９２を介して、データ生成用電気的ストレスが印加されたメモリセルから複数の抵抗値情報を取得してもよい。
【０１２７】
この場合には、例えば、図１に示されているように、状態Ａから状態Ｂへの変化により、複数のメモリセルの抵抗値のばらつきが拡大するため、高品質な乱数データが生成されうる。
【０１２８】
電圧印加回路９４は、初期状態にある複数のメモリセル９１にフォーミングストレスを印加することにより、データ生成回路９３により生成されたデータをメモリセルアレイ９０に記録してもよい。この場合、データは、各メモリセル９１の抵抗値が初期抵抗値範囲にあるか否かの違いを利用して記録される。
【０１２９】
この場合には、例えば、データ生成回路９３により生成されたデータが、初期状態か否かの違いを利用して安定して記録されうる。例えば、データ生成に用いられたメモリセルアレイが、データ記録にも用いられることで、装置構成が簡潔化され、装置の小型化が可能となる。
【０１３０】
電圧印加回路９４は、可変状態にある複数のメモリセル９１に異なる複数の電気的ストレスを印加することにより、データ生成回路９３により生成されたデータをメモリセルアレイ９０に記録してもよい。この場合、データは、各メモリセルの抵抗値が初期抵抗値範囲にあるか否かの違いを利用せずに、各メモリセルの抵抗値が少なくとも一つの可変抵抗値範囲にあるか否かの違いを利用して記録される。
【０１３１】
この場合には、例えば、データ生成回路９３により生成されたデータが、不揮発的に記録されうる。例えば、データ生成に用いられたメモリセルアレイが、データ記録にも用いられることで、装置構成が簡潔化され、装置の小型化が可能となる。
【０１３２】
読み出し回路９２は、選択されたメモリセル９１が初期状態にあるか可変状態にあるかを判定することによって、メモリセルアレイ９０に記録されたデータを読み出してもよい。
【０１３３】
図５に示した例における抵抗変化素子の構成は、次の通りであった。第１電極１２４の材料がＴａＮ（窒化タンタル）、第２電極１２８の材料がＩｒ（イリジウム）であった。抵抗変化層１２６の材料がタンタル酸化物であり、抵抗変化層１２６の全体の厚さが５０ｎｍ以下であった。抵抗変化層１２６は、酸素濃度の異なる２層（第１抵抗変化層と第２抵抗変化層）の積層構造を有していた。第１抵抗変化層は、第１電極１２４に接する。第１抵抗変化層は、酸素濃度の低い層であって、組成をＴａＯｘとすると０＜ｘ＜２．５であった。第２抵抗変化層は、第２電極１２８に接する。第２抵抗変化層は、酸素濃度の高い層であって、組成をＴａＯｙとするとｙ≧２．１であった。第２抵抗変化層の厚さは、５．５ｎｍ程度であった。第１電極１２４と抵抗変化層１２６との接触面および第２電極１２８と抵抗変化層１２６との接触面の面積が、いずれも０．２５μｍ２以下であった。フォーミングストレスは、メモリセルに累積的に印加される複数のパルスで構成され、各パルスは、電圧が＋３．５Ｖ、パルス幅が５μＳｅｃであった。
【０１３４】
第２電気的ストレスは、電圧が−２．４Ｖ、パルス幅が５０ｎＳｅｃのパルスであった。第１電気的ストレスは、電圧が＋１．８Ｖ、パルス幅が５０ｎＳｅｃのパルスであった。なお、図４のメモリセル構造において、電圧は第１電極１２４を基準として第２電極１２８に正の電圧を印加する場合を正極性とした。
【０１３５】
その他の例として、第１電極１２４および第２電極１２８は白金（Ｐｔ）、抵抗変化層１２６はハフニウム酸化物から構成されてもよい。抵抗変化層１２６の厚さは例えば３０ｎｍである。メモリセル９１の素子領域の形状は、直径３μｍの円形であってもよい。例えば、抵抗変化層１２６がＨｆＯ１．６の場合、初期抵抗値は数ＭΩ程度であり、第１抵抗値範囲が１０００Ω以上３０００Ω以下であり、第２抵抗値範囲が１００Ω以上３００Ω以下であってもよい。この場合、フォーミングストレスは、例えば、電圧が２〜３Ｖ、パルス幅が１００ｎＳｅｃの複数のパルスであってもよい。第２電気的ストレスは、例えば、電圧が＋１．０Ｖ、パルス幅が１００ｎＳｅｃであってもよい。第１電気的ストレスは、例えば、電圧が−１．３Ｖ、パルス幅が１００ｎＳｅｃであってもよい。
【０１３６】
図５に示す例では、初期抵抗値範囲の下限が、全ての可変抵抗値範囲の上限以上である。言い換えると、初期抵抗値範囲の下限は、複数の可変抵抗値範囲のうち抵抗値が最も大きいものの上限以上である。例えば、初期抵抗値範囲の下限は、２個の可変抵抗値範囲のうち抵抗値が最も大きい第１抵抗値範囲の上限に等しくてもよい。
【０１３７】
図５に示す例では、第１閾値は、初期抵抗値範囲の下限以下であり、かつ、全ての複数の可変抵抗値範囲の上限以上である。言い換えると、第１閾値は、初期抵抗値範囲の下限以下であり、複数の可変抵抗値範囲のうち抵抗値が最も大きいものの上限以上である。例えば、第１閾値は、２個の可変抵抗値範囲のうち抵抗値が最も大きい第１抵抗値範囲の上限に等しくてもよい。なお、第１閾値と等しい値を有する抵抗値は、初期抵抗値範囲に属するものとして設定されてもよいし、複数の可変抵抗値範囲のうち抵抗値が最も大きいものに属するものとして設定されてもよい。
【０１３８】
図５に示す例では、第２閾値は、複数の可変抵抗値範囲のうち抵抗値が最も大きいものの下限以下であり、かつ複数の可変抵抗値範囲のうち抵抗値が最も小さいものの上限以上である。例えば、第２閾値は、２個の可変抵抗値範囲のうち抵抗値が最も大きい第１抵抗値範囲の下限以下であり、かつ２個の可変抵抗値範囲のうち抵抗値が最も小さい第２抵抗値範囲の上限以上である。例えば、第２閾値は、第１抵抗値範囲の下限または第２抵抗値範囲の上限に等しくてもよい。第１抵抗低範囲と第２抵抗値範囲とが隣接していてもよい。すなわち、第１抵抗値範囲を規定する２つの端点のうち小さい方の値と、第２抵抗値範囲を規定する２つの端点のうち大きい方の値とが一致していてもよい。なお、第２閾値と等しい値を有する抵抗値は、複数の可変抵抗値範囲のうち、第２閾値よりも大きな抵抗値を含む抵抗値範囲に属するものとして設定されてもよいし、第２閾値よりも小さな抵抗値を含む抵抗値範囲に属するものとして設定されてもよい。
【０１３９】
メモリセル９１の構成によっては、製造直後のメモリセル９１の抵抗値が、いずれの可変抵抗値範囲よりも小さい場合がある。すなわち、初期抵抗値範囲がいずれの可変抵抗値範囲よりも小さい場合がある。例えば、メモリセル９１内の抵抗変化層が鉄酸化物から構成される場合に、かかる特性が実現される。
【０１４０】
種々の鉄酸化物の抵抗率は、Ｆｅ３Ｏ４、ＦｅＯ、Ｆｅ２Ｏ３の順に高い。例えば、第１電極１２４はＰｔ（白金）、第２電極１２８はＰｔ（白金）、抵抗変化層１２６はＦｅ３Ｏ４から構成されうる。このとき、抵抗変化層１２６全体の厚さは、例えば５０ｎｍ以下としうる。
【０１４１】
例えば、第１電極１２４と抵抗変化層１２６との接触面が０．２５μｍ２以下であり、第２電極１２８と抵抗変化層１２６との接触面の面積が０．２５μｍ２以下であるとき、初期抵抗値は概ね２００Ωとなり、これは非常に低い抵抗値である。この初期状態のメモリセルに、例えば、第１電気的ストレスと同じ極性を有し、電圧の絶対値が３．５Ｖ、パルス幅が１０μＳｅｃのパルスを所定の回数を印加する。これにより、メモリセルの抵抗値は、初期抵抗値よりも抵抗値の大きい状態、例えば２０００Ω以上８０００Ω以下の第１抵抗状態に推移する。これは、第２電極１２８と抵抗変化層１２６の接触界面の酸化が進行し、絶縁状態にあるＦｅ２Ｏ３の抵抗層が形成されたためと考えられる。
【０１４２】
可変状態のメモリセルの抵抗値は、例えば、電圧の絶対値が２．４Ｖの第２電気的ストレスの印加により、３００Ω以上５００Ω以下の第２抵抗値範囲と遷移しうる。また、可変状態のメモリセルの抵抗値は、第２電気的ストレスと極性の異なり、電圧の絶対値が２．４Ｖである第１電気的ストレスの印加により、２０００Ω以上８０００Ω以下の第１抵抗値範囲へ遷移しうる。
【０１４３】
その他の例として、第１電極１２４および第２電極１２８は白金（Ｐｔ）、抵抗変化層１２６はハフニウム酸化物から構成されてもよい。抵抗変化層１２６の厚さは例えば３０ｎｍである。メモリセル９１の素子領域の形状は、直径３μｍの円形であってもよい。例えば、抵抗変化層１２６がＨｆＯ０．９から構成され、初期状態においてその抵抗値が変化しない場合、当該メモリセルは、電圧パルスがフォーミングストレスとして与えられて、可変状態になりうる。このとき、電圧パルスは、例えば、電圧４Ｖ、パルス幅１００μＳｅｃである。可変状態のメモリセルの抵抗値は、電圧が−１．３Ｖ、パルス幅が１００ｎＳｅｃである第２電気的ストレスの印加により、３０Ω以上９０Ω以下の第２抵抗値範囲へ遷移しうる。また、可変状態のメモリセルの抵抗値は、電圧が＋２．０Ｖ、パルス幅が１００ｎＳｅｃである第１電気的ストレスの印加により、１００Ω以上３００Ω以下の第１抵抗値範囲へと遷移しうる。
【０１４４】
かかる構成では、初期抵抗値範囲の上限が、全ての可変抵抗値範囲の下限以下であってもよい。言い換えると、初期抵抗値範囲の上限が、複数の可変抵抗値範囲のうち抵抗値が最も小さいものの下限以下であってもよい。例えば、初期抵抗値範囲の上限は、２個の可変抵抗値範囲のうち抵抗値が最も小さい第２抵抗値範囲の下限に等しくてもよい。
【０１４５】
第１閾値は、初期抵抗値範囲の上限以上であり、かつ、全ての可変抵抗値範囲の下限以下であってもよい。言い換えると、第１閾値は、初期抵抗値範囲の上限以上であり、複数の可変抵抗値範囲のうち抵抗値が最も小さいものの下限以下であってもよい。例えば、第１閾値は、２個の可変抵抗値範囲のうち抵抗値が最も小さい第２抵抗値範囲の下限に等しくてもよい。
【０１４６】
第２閾値は、複数の可変抵抗値範囲のうち抵抗値が最も小さいものの上限以上であり、かつ複数の可変抵抗値範囲のうち抵抗値が最も大きいものの下限以下であってもよい。例えば、第２閾値は、２個の可変抵抗値のうち抵抗値が最も小さい第２抵抗値範囲の上限以上であり、かつ２個の可変抵抗値のうち抵抗値が最も大きい第１抵抗値範囲の下限以下であってもよい。例えば、第２閾値は、第１抵抗値範囲の下限または第２抵抗値範囲の上限に等しくてもよい。
【０１４７】
なお、隣り合う抵抗値範囲は必ずしも上限と下限とが隣接している必要はない。隣り合う抵抗値範囲同士の間に所定のマージンが設定されていてもよい。
【０１４８】
読み出し回路９２は、選択されたメモリセル９１の抵抗値が第１閾値よりも大きいか否かを判定する第１読み出しモードと、選択されたメモリセル９１の抵抗値が第２閾値よりも大きいか否かを判定する第２読み出しモードとを選択的に実行してもよい。これにより、記録されたデータが読み出される。
【０１４９】
第１閾値および第２閾値は、固定の値ではなく、任意に可変できてもよい。
【０１５０】
記録されたデータは、第１種データと第２種データとを含んでもよい。第１種データは、例えば、各メモリセル９１の抵抗値が初期抵抗値範囲にあるか否かの違いを利用して記録されている。第２種データは、例えば、各メモリセル９１の抵抗値が初期抵抗値範囲にあるか否かの違いを利用せずに、各メモリセル９１の抵抗値が少なくとも一つの可変抵抗値範囲にあるか否かの違いを利用して記録されている。
【０１５１】
メモリセルアレイ９０が、第１書き込みアドレス領域と、第２書き込みアドレス領域とを備えていてもよい。この場合、第１書き込みアドレス領域に第１種データが記録されており、第２書き込みアドレス領域に第２種データが記録されていてもよい。第１書き込みアドレス領域と、第２書き込みアドレス領域とは、必ずしも物理的な領域として分離されていなくてもよい。例えば、各メモリセル９１が、アドレスに関する所定の規則に応じて、第１書き込みアドレス領域と第２書き込みアドレス領域とに振り分けられていてもよい。
【０１５２】
第２書き込みアドレス領域は、例えば複数の可変状態のメモリセルから構成される領域である。例えば、初期状態の複数のメモリセルにフォーミングストレスが印加されることによって、第２書き込みアドレス領域が形成されてもよい。初期状態の複数のメモリセルは、例えば、製造直後のメモリセルアレイ９０の所定の領域に含まれる。この場合、フォーミングストレスは、第１種データを記録するためだけでなく、第２種データが書き込まれる第２書き込みアドレス領域を形成するために用いられうる。
【０１５３】
メモリセルアレイ９０を構成する複数のメモリセルに選択的にフォーミングストレスが印加されることによって、第１書き込みアドレス領域と第２書き込みアドレス領域とが設定されうる。そのため、それらのアドレス領域の容量配分や配置は、自由に選択されうる。第１書き込みアドレス領域の一部領域に対してフォーミングストレスが印加されると、当該一部領域が第２書き込みアドレス領域へと変更されうる。
【０１５４】
第１書き込みアドレス領域と、第２書き込みアドレス領域とは、例えば、同一のメモリセルアレイ９０内に配置される。これにより、例えば第１書き込みアドレス領域と第２書き込みアドレス領域との間で情報が送受信される場合に、情報の秘匿性が向上しうる。
【０１５５】
図５に示される抵抗変化素子において、例えば、第１種データは、各メモリセル９１の抵抗値が初期抵抗値範囲にあるか否かの違いを利用して記録され、第２種データは、各メモリセル９１の抵抗値が第２抵抗値範囲にあるか否かの違いを利用して記録される。
【０１５６】
図５に示す例では、可変抵抗値範囲の数は２であるが、可変抵抗値範囲の数は３以上であってもよい。すなわち、メモリセル９１は多値メモリであってもよい。
【０１５７】
なお、図５に示される抵抗変化素子において、例えば、初期抵抗値範囲は２×１０６Ω以上１．０×１０７Ω未満に、２つの可変抵抗値範囲は５×１０４Ω以上２×１０６Ω未満、および５×１０３Ω以上５×１０４Ω未満に設定されうる。このとき、例えば、第１閾値は２×１０６Ωであり、第２閾値は５×１０４Ωである。
【０１５８】
［抵抗変化素子の構成］
メモリセルに含まれる抵抗変化素子の構成の種々の例について説明する。なお、ここでは、説明の簡便のため、初期状態のメモリセルに含まれる抵抗変化素子が、「初期状態の抵抗変化素子」と呼ばれ、可変状態のメモリセルに含まれる抵抗変化素子が、「可変状態の抵抗変化素子」と呼ばれる場合がある。言い換えると、メモリセルの状態は、抵抗変化素子の状態に応じて定まる。
【０１５９】
図４に示す例において、第１電極１２４と第２電極１２８との間に抵抗変化層１２６が介在する。抵抗変化層１２６は、例えば金属酸化物、より詳細には例えば遷移金属酸化物で構成されうる。可変状態の抵抗変化素子１２０の抵抗値は、第１電極１２４と第２電極１２８との間に印加される電気的ストレスによって、複数の可変抵抗値範囲の間を可逆的に遷移する。
【０１６０】
初期状態の抵抗変化素子１２０の抵抗変化層１２６は、第１電極１２４と第２電極１２８との間を絶縁していてもよい。絶縁とは、例えば、第１電極１２４と第２電極１２８との間の抵抗値が２MΩ以上である状態をいう。抵抗変化素子１２０の抵抗変化層１２６は、絶縁体から構成された層を備えていてもよい。絶縁体とは、例えば、抵抗率が３０Ω・ｍ以上の材料である。抵抗変化素子１２０の抵抗変化層１２６の少なくとも一部が絶縁体から構成されることにより、初期状態の抵抗特性が安定して維持されうる。
【０１６１】
初期状態の抵抗変化素子の抵抗値は、可変状態の場合と異なり、抵抗変化素子の材料、大きさ、形状、および製造条件等によって、ある程度調整されうる。特に、抵抗変化層１２６が積層構造である場合、酸素濃度の高い層の厚み、形成時の酸素濃度によって、その抵抗値が任意に調整されうる。
【０１６２】
上記のような初期状態は、電気的ストレスの印加によって抵抗値が遷移する可変状態に比べて、安定している。そのため、初期状態と可変状態との差異を利用することにより、データが安定して保持されうる。
【０１６３】
初期抵抗値範囲は、例えば、初期状態にある素子に、読み出し用の電気的ストレスを印加して得られる抵抗値を含む。読み出し用の電気的ストレスは、例えば、可変状態にある素子の抵抗値を複数の可変抵抗値範囲の間で変化させる電気的ストレス、データ生成用電気的ストレス、および、フォーミングストレスのいずれよりも小さい。
【０１６４】
電気的ストレスがフォーミングストレスであるか否かは、対象となるメモリセル９１が初期状態から可変状態へと変化するか否かによって決まる。対象となるメモリセル９１が初期状態から可変状態へと変化するための条件は、メモリセル９１毎にばらつく。すなわち、電気的ストレスがフォーミングストレスであるために必要な電気的ストレスの種々のパラメータは、絶対的な固定値ではなく、メモリセル９１毎に所定のばらつきを有しうる。種々のパラメータとは、例えば、メモリセル９１に印加される電圧振幅の大きさ、パルスの幅、および累積印加時間である。累積印加時間とは、例えば、抵抗状態が初期状態から可変状態に変化するまでに印加される複数の電気的パルスにおけるパルス幅の合計に相当する。
【０１６５】
フォーミングストレスは、典型的には、可変状態にあるメモリセルの抵抗値を複数の可変抵抗値範囲の間で可逆的に変化させるために印加される電気的ストレスよりも強い。例えば、フォーミングストレスは、電圧の絶対値、パルス幅、および累積印加時間の少なくともいずれかにおいて、可変状態にあるメモリセルの抵抗値を変化させるために印加される電気的ストレスよりも大きくてもよい。
【０１６６】
抵抗変化素子は、ユニポーラ型であってもよい。ユニポーラ型の抵抗変化素子は、可変状態において、電圧およびパルス幅等は異なり、かつ、同極性である複数の電気的ストレスを印加することにより、抵抗値が可逆的に変化する。例えば、ユニポーラ型の抵抗変化素子の抵抗値は、電圧が＋２Ｖでパルス幅が１μＳｅｃの第１電気的ストレスが印加されると第１抵抗値範囲内の値に変化し、電圧が−４Ｖでパルス幅が５０ｎＳｅｃの第２電気的ストレスが印加されると第２抵抗値範囲内の値に変化する。ここで、電気的信号の電圧の極性は、第２電極１２８から第１電極１２４に電流が流れる向きを正とした。
【０１６７】
抵抗変化素子は、バイポーラ型であってもよい。バイポーラ型の抵抗変化素子は、可変状態において、異なる極性の電気的ストレスを印加することにより、抵抗値が可逆的に変化する。例えば、バイポーラ型の抵抗変化素子の抵抗値は、電圧が＋２Ｖでパルス幅が５０ｎＳｅｃの第１電気的ストレスが印加されると第１抵抗値範囲内の値に変化し、電圧が−２Ｖでパルス幅が５０ｎＳｅｃの第２電気的ストレスが印加されると第２抵抗値範囲内の値に変化する。ここで、電気的信号の電圧の極性は、第２電極１２８から第１電極１２４に電流が流れる向きを正とした。
【０１６８】
抵抗変化素子がバイポーラ型である場合、例えば動作の安定化のために、第１電気的ストレスおよび第２電気的ストレスは、極性のみならず、パルス幅や電圧の絶対値が異なっていてもよい。
【０１６９】
言い換えると、本実施形態に係るメモリセルは、異なる極性の複数の電気的ストレスを印加することにより抵抗値が可逆的に変化するバイポーラ型であってもよいし、同じ極性の複数の電気的ストレスを印加することにより抵抗値が可逆的に変化するもユニポーラ型であってもよい。
【０１７０】
抵抗変化層１２６は金属酸化物から構成されてもよい。抵抗変化層１２６は、酸素不足型の金属酸化物から構成された層を備えてもよい。抵抗変化層１２６を構成する金属酸化物は、遷移金属酸化物およびアルミニウム酸化物の少なくともいずれか一方であってもよい。遷移金属酸化物は、例えば、タンタル酸化物、鉄酸化物、ハフニウム酸化物およびジルコニウム酸化物の少なくともいずれかであってもよい。
【０１７１】
ユニポーラ型抵抗変化素子の抵抗変化層の材料の例として、チタン（Ｔｉ）酸化物、ニッケル（Ｎｉ）酸化物、およびアルミニウム（Ａｌ）酸化物等が挙げられる。バイポーラ型抵抗変化素子の抵抗変化層の材料の例として、タンタル（Ｔａ）酸化物、ハフニウム（Ｈｆ）酸化物、アルミニウム（Ａｌ）酸化物、および鉄（Ｆｅ）酸化物等が挙げられる。
【０１７２】
抵抗変化素子は、同種の金属酸化物で構成された抵抗変化層を有する場合であっても、抵抗変化層と電極材料との組合せ、および、金属酸化物の積層構造等によって、ユニポーラ型にも、バイポーラ型にもなりうる。以下、抵抗変化層の材料がタンタル酸化物である例について詳細に説明する。抵抗変化層がタンタル酸化物を含む場合、抵抗変化素子が良好な特性を示しうる。
【０１７３】
第１電極１２４および第２電極１２８の材料の例として、イリジウム（Ｉｒ）、白金（Ｐｔ）、タングステン（Ｗ）、銅（Ｃｕ）、アルミニウム（Ａｌ）、窒化チタン（ＴｉＮ）、窒化タンタル（ＴａＮ）および窒化チタンアルミニウム（ＴｉＡｌＮ）等が挙げられる。図４に示す例では、第１電極１２４と第２電極１２８とが同じ面積となっているが、これに限定されるものでない。例えば、第１電極１２４は、配線の一部であってもよい。第１電極１２４および第２電極１２８は、半導体プロセスにあわせ適宜、最適な形状にされうる。下地層（図示せず）は、半導体プロセスに応じて適宜に省略または変更されうる。
【０１７４】
抵抗変化層１２６は、第１電極１２４に接続する第１抵抗変化層と、第２電極１２８に接続する第２抵抗変化層を含む積層体であってもよい。
【０１７５】
第１抵抗変化層は、酸素不足型の第１金属酸化物で構成され、第２抵抗変化層は、第１金属酸化物よりも酸素不足度が小さい第２金属酸化物で構成されうる。第２抵抗変化層は、絶縁体から構成された層であってもよい。例えば、可変状態にある抵抗変化素子の第２抵抗変化層中には、電気パルスの印加に応じて酸素不足度が可逆的に変化する微小な局所領域が形成されている。局所領域は、酸素欠陥サイトから構成されるフィラメントを含むと考えられる。局所領域は、第２抵抗変化層を貫く導電パスであってもよい。絶縁体が金属酸化物から構成され、導電パスは、絶縁体よりも酸素含有率が低い酸素不足型の金属酸化物から構成されていてもよい。
【０１７６】
「酸素不足度」とは、化学量論的組成の金属酸化物を構成している酸素の量に対する、対象となる金属酸化物を構成している酸素の不足量の割合をいう。なお、ある金属の酸化物として複数の化学量論的組成が存在する場合、その金属酸化物の酸素不足度は、その中で最も抵抗値が高い化学量論的組成を基準として定義されうる。化学量論的組成の金属酸化物は、他の組成の金属酸化物と比べて、より安定であり、かつ、より高い抵抗値を有している。
【０１７７】
例えば、金属がタンタル（Ｔａ）の場合、上述の定義による化学量論的組成の酸化物はＴａ２Ｏ５であり、ＴａＯ２．５と表現されうる。ＴａＯ２．５の酸素不足度は０％であり、ＴａＯ１．５の酸素不足度は、酸素不足度＝（２．５−１．５）／２．５＝４０％となる。また、酸素過剰の金属酸化物において、酸素不足度は負の値となる。なお、本開示では、特に断りのない限り、酸素不足度は正の値、０、負の値も含むものとして説明される。
【０１７８】
酸素不足度の小さい酸化物は、化学量論的組成の酸化物により近く、それゆえ抵抗値が高い。酸素不足度の大きい酸化物は、酸化物を構成する金属により近く、それゆえ抵抗値が低い。
【０１７９】
「酸素含有率」とは、総原子数に占める酸素原子の比率である。例えば、Ｔａ２Ｏ５の酸素含有率は、総原子数に占める酸素原子の比率（Ｏ／（Ｔａ＋Ｏ））であり、７１．４ａｔｍ％となる。したがって、酸素不足型のタンタル酸化物の酸素含有率は、０より大きく、７１．４ａｔｍ％より小さい。例えば、第１金属酸化物を構成する金属と、第２金属酸化物を構成する金属とが同種である場合、酸素含有率は酸素不足度と対応関係にある。すなわち、第２金属酸化物の酸素含有率が第１金属酸化物の酸素含有率よりも大きいとき、第２金属酸化物の酸素不足度は第１金属酸化物の酸素不足度より小さい。
【０１８０】
抵抗変化層を構成する金属酸化物に含まれる金属元素は、タンタル以外の金属であってもよい。そのような金属元素は、例えば、遷移金属、およびアルミニウム（Ａｌ）の少なくともいずれかである。遷移金属の例としては、タンタル（Ｔａ）、チタン（Ｔｉ）、ハフニウム（Ｈｆ）、ジルコニウム（Ｚｒ）、ニオブ（Ｎｂ）、タングステン（Ｗ）、ニッケル（Ｎｉ）、および鉄（Ｆｅ）等が挙げられる。遷移金属は複数の酸化状態をとることができるため、酸化還元反応により異なる複数の抵抗状態に変化しうる。
【０１８１】
例えば、抵抗変化層１２６は、ハフニウム酸化物から構成されてもよい。この場合、例えば、第１金属酸化物の組成がＨｆＯｘであって、ｘが０．９以上１．６以下であり、かつ、第２金属酸化物の組成がＨｆＯｙであって、ｙがｘの値よりも大であってもよい。これにより、抵抗変化層の抵抗値が安定して高速に変化しうる。例えば、第２金属酸化物の膜厚は、３ｎｍ以上４ｎｍ以下であってもよい。
【０１８２】
例えば、抵抗変化層１２６は、ジルコニウム酸化物から構成されてもよい。この場合、例えば、第１金属酸化物の組成がＺｒＯｘであって、ｘが０．９以上１．４以下であり、かつ、第２金属酸化物の組成がＺｒＯｙであって、ｙがｘの値よりも大であってもよい。これにより、抵抗変化層の抵抗値が安定して高速に変化しうる。例えば、第２金属酸化物の膜厚は、１ｎｍ以上５ｎｍ以下であってもよい。
【０１８３】
第１金属酸化物を構成する第１金属と、第２金属酸化物を構成する第２金属とは、異なってもよい。この場合、第２金属酸化物は、第１金属酸化物よりも酸素不足度が小さくてもよい。言い換えると、第２金属酸化物は、第１金属酸化物よりも抵抗率が高くてもよい。このような構成により、第１電極１２４と第２電極１２８との間に電圧が印加されたとき、第２金属酸化物に、より多くの電圧が分配され、第２金属酸化物中に酸化還元反応が発生しやすくなる。
【０１８４】
第１抵抗変化層を構成する第１金属酸化物内に含有される第１金属と、第２抵抗変化層を構成する第２金属酸化物内に含有される第２金属とは、互いに異なっていてもよい。この場合、第２金属の標準電極電位は、第１金属の標準電極電位より低くてもよい。標準電極電位は、酸化特性を表す。標準電極電位が高い金属ほど、酸化されにくい。そのため、標準電極電位が相対的に低い第２金属酸化物において、酸化還元反応が起こりやすくなる。
【０１８５】
例えば、第１金属酸化物は酸素不足型のタンタル酸化物（ＴａＯｘ）であり、第２金属酸化物はチタン酸化物（ＴｉＯ２）であってもよい。チタンの標準電極電位は、−１．６３ｅＶであり、タンタルの標準電極電位は−０．６ｅＶである。このように、第２金属酸化物の標準電極電位が、第１金属酸化物の標準電極電位よりも低い場合、第２金属酸化物中でより酸化還元反応が発生しやすくなる。そのため、安定した抵抗変化動作が得られる。第１金属酸化物と第２金属酸化物のその他の組み合わせの例として、第１金属酸化物は酸素不足型のタンタル酸化物（ＴａＯｘ）であり、第２金属酸化物はアルミニウム酸化物（Ａｌ２Ｏ３）であってもよい。
【０１８６】
第２金属酸化物に接する第２電極１２８の材料は、第２金属酸化物を構成する金属および第１電極１２４を構成する材料に比べて標準電極電位が高くてもよい。第２電極１２８の材料の例として、白金（Ｐｔ）、イリジウム（Ｉｒ）、及びパラジウム（Ｐｄ）等が挙げられる。第１金属酸化物に接する第１電極１２４の材料は、第１金属酸化物を構成する金属と比べて標準電極電位が低くてもよい。第１電極１２４の材料の例として、タングステン（Ｗ）、ニッケル（Ｎｉ）、タンタル（Ｔａ）、チタン（Ｔｉ）、アルミニウム（Ａｌ）、窒化タンタル（ＴａＮ）、及び窒化チタン（ＴｉＮ）等が挙げられる。
【０１８７】
すなわち、第２電極１２８の標準電極電位がＶ２、第２金属酸化物を構成する金属の標準電極電位がＶｒ２、第１金属酸化物を構成する金属の標準電極電位がＶｒ１、第１電極１２４の標準電極電位がＶ１と表されるとき、Ｖ１、Ｖ２、Ｖｒ２およびＶｒ１は、Ｖｒ２＜Ｖ２、およびＶ１＜Ｖ２なる関係を満足してもよい。Ｖ１、Ｖ２、Ｖｒ２およびＶｒ１は、さらに、Ｖ２＞Ｖｒ２、およびＶｒ１≧Ｖ１の関係を満足してもよい。これにより、第２電極１２８と第２金属酸化物の界面近傍の第２金属酸化物中において、選択的に酸化還元反応が発生する。そのため、安定した抵抗変化現象が実現される。
【０１８８】
抵抗変化層１２６は、例えば、ＴａＯｘ（但し、０≦ｘ＜２.５）で表される組成を有する第１抵抗変化層と、ＴａＯｙ（但し、ｘ＜ｙ＜２．５）で表される組成を有する第２抵抗変化層とを含む。抵抗変化層１２６は、他の層をさらに含んでもよい。他の層は、例えば、タンタル酸化物以外の金属酸化物で構成されてもよい。
【０１８９】
第１抵抗変化層において、ｘは、さらに、０．８≦ｘ＜１．９を満足してもよい。第２抵抗変化層において、ｙは、さらに、２．１≦ｙ＜２．５を満足してもよい。第２タンタル酸化物層の厚みは、例えば、１ｎｍ以上８ｎｍ以下であってもよい。抵抗変化層が、酸素不足度の異なる複数の層を含むことにより、バイポーラ型における抵抗変化の方向が決定されうる。例えば、第２抵抗変化層が第２電極１２８側に、第１抵抗変化層が第１電極１２４側に配置された構造を想定する。このとき、第２電極１２８側から第１電極１２４側に電流を流す向きに電圧が印加されると、抵抗変化素子の抵抗値が高くなり、逆向きに電流を流す向きに電圧が印加されると、抵抗値が低くなる。あるいは、第２抵抗変化層が第１電極１２４に接し、第１抵抗変化層が第２電極１２８に接していてもよい。この場合、抵抗変化と電圧印加の向きの関係が逆転する。
【０１９０】
可変状態の抵抗変化素子における抵抗変化は、抵抗変化層１２６内の局所領域において、フィラメントが変化することによって発生する。この局所領域は、断面解析によって観察したところ、例えば、直径３０以下、さらには１０nm以下であった。これは、最先端の半導体プロセスにおけるリソグラフィーの加工限界よりも小さい。すなわち、フィラメントを含む局所領域は、プロセスのばらつきの影響を受けにくい。そのため、抵抗変化素子は、それが微細化された場合であっても、安定した抵抗変化特性を維持しうる。
【０１９１】
抵抗変化素子の抵抗変化層は、数百℃を超えるような高温処理がされることなく形成されうる。このため、加熱プロセスによるＣ−ＭＯＳトランジスタの特性の劣化が回避される。抵抗変化素子は、フラッシュメモリなどのフローティングゲート型トランジスタを用いるメモリ素子に比べて、半導体プロセスとの親和性が高い。そのため、製造プロセスの微細化が進んでも、抵抗変化の信頼性が低下するおそれが少ない。そのため、例えば、制御回路等のロジック回路と抵抗変化素子とが同一チップ上に形成される場合であっても、ロジック回路の特性への影響を抑えつつ、抵抗変化素子が形成されうる。ロジック回路と抵抗変化素子との作製プロセスが共通化される場合、製造コストが低減されうる。
【０１９２】
［抵抗値ばらつきのメカニズム］
積層構造の抵抗変化層における抵抗変化現象は、次のように発現すると考えられる。可変状態において、抵抗値が高い第２金属酸化物の層は、微小な局所領域を有する。この局所領域中で酸化還元反応が起こって、局所領域中のフィラメント（導電パス）が変化する。これにより、局所領域の抵抗値が変化する。
【０１９３】
例えば、第２金属酸化物層に接続する第２電極１２８に、第１電極１２４を基準にして正の電圧が印加されたとき、抵抗変化層中の酸素イオンが第２金属酸化物層側に引き寄せられる。これによって、第２金属酸化物層中の微小な局所領域中で酸化反応が発生し、局所領域中の酸素不足度が減少する。その結果、局所領域中のフィラメントの本数または太さが減少して、抵抗値が増大すると考えられる。
【０１９４】
逆に、第２金属酸化物層に接続する第２電極１２８に、第１電極１２４を基準にして負の電圧が印加されたとき、第２金属酸化物層中の酸素イオンが第１金属酸化物層側に押しやられる。これによって、第２金属酸化物層中の微小な局所領域中で還元反応が発生し、局所領域中の酸素不足度が増加する。その結果、局所領域中のフィラメントの本数または太さが増大して、抵抗値が減少すると考えられる。
【０１９５】
図６は、パーコレーションモデル（percolation model）を用いて、抵抗変化層（例えば局所領域）中のフィラメントの形成をシミュレートした結果の一例を示す。ここでは、抵抗変化層中において酸素の欠陥サイトがつながることによって、欠陥サイトの連なりが形成される例を想定している。パーコレーションモデルとは、抵抗変化層中にランダムに分布した欠陥サイトの密度が増大するにつれて、欠陥サイトの連なりが形成される確率が増加するという理論に基づくモデルである。ここで「欠陥」とは、例えば、金属酸化物中で酸素が欠損していることを意味し、「欠陥サイトの密度」とは、例えば、酸素不足度と相関する量である。すなわち、酸素不足度が大きくなると、欠陥サイトの密度も大きくなる。
【０１９６】
図６に示されるシミュレーションでは、抵抗変化層の酸素イオンサイトが、格子状に仕切られた領域（サイト）として近似的に仮定されている。この仮定に基づいて、確率的に発生する欠陥サイトの連なりが、シミュレーションで求められた。図６において、“０”が含まれているサイトは抵抗変化層中に形成される欠陥サイトを表している。他方、空白となっているサイトは酸素イオンが占有しているサイトを表している。酸素イオンにより占有されているサイトは、高抵抗な領域を意味している。また、矢符は、上下、左右および斜め方向に１個のサイトの範囲内で互いに接続された欠陥サイトの連なりを示している。この欠陥サイトの連なりは、抵抗変化層内で電流が流れるパスを示している。図６に示されるように、抵抗変化層の下面と上面との間に電流を流すパスは、ランダムに分布する欠陥サイトのうち、上端から下端までを接続する欠陥サイトのクラスターで構成される。このパーコレーションモデルに基づくと、欠陥サイトの連なりの本数および形状は確率的に形成されることになる。その結果、抵抗変化層の抵抗値がばらつく。
【０１９７】
初期状態の抵抗変化素子に所定の電気的ストレスが印加されると、抵抗変化層の一部領域の欠陥サイトの密度が変化し、欠陥サイトの連なりが形成される。抵抗変化層が金属酸化物から構成される場合、抵抗変化層内の欠陥サイトの配置はランダムであり、かつ、素子毎に異なる。例えば、欠陥サイトの連なりを形成する上で障壁となる、欠陥サイト間の距離等は、素子毎にランダムにばらついている。このため、仮に複数の素子に一定の電気的ストレスが印加された場合であっても、それにより形成される欠陥サイトの連なりの本数および形状はメモリセル毎にばらつく。その結果、複数のメモリセル間の抵抗値が、ランダムに散らばると考えられる。
【０１９８】
初期状態の抵抗変化素子に印加される電気的ストレスが大きくなるにつれて、抵抗変化層内における欠陥サイトの連なりの本数および／または直径が増大する。そして、それらが所定の閾値を超えることにより、抵抗変化素子は可変状態となる。すなわち、第２初期状態または可変状態の抵抗変化素子は、欠陥サイトの連なりの不規則性に基づく抵抗値のばらつきを有しうる。なお、本開示では、抵抗変化素子が可変状態であるときの欠陥サイトの連なりは、特に、フィラメントと呼ばれる場合がある。なお、第１初期状態の抵抗変化素子であっても、製造ばらつきに基づく、抵抗値のばらつきを有する場合がある。
【０１９９】
酸素等の欠陥サイトがつながることによってフィラメントが形成されうる材料であれば、複数のメモリセル間の抵抗値のばらつきは同様に生じうる。そのため、例えば、抵抗変化層に含まれる複数の層が、互いに異なる金属の酸化物から構成される場合であっても、同様のメカニズムが推察される。
【０２００】
［データ生成方法］
図７は、実施形態のデータ生成方法の一例を示すフローチャートである。以下、図７を参照しつつ、実施形態のデータ生成方法の一例について説明する。なお、以下の動作は、例えば、データ生成回路９３に所定のコマンドが入力されることにより開始されうる。
【０２０１】
データ生成過程が開始されると（スタート）、複数のメモリセル９１のそれぞれから抵抗値情報が取得される（ステップＳ１）。次に、得られた複数の抵抗値情報を用いて判定条件が設定される（ステップＳ２）。最後に、設定された判定条件に基づいて複数の抵抗値情報のそれぞれに対し複数の値から選択的に１つの値が割り当てられ、これによりデータが生成され（ステップＳ３）、データ生成過程が終了する（エンド）。
【０２０２】
ステップＳ３は、設定された判定条件に基づいて複数の抵抗値情報のそれぞれを第１群と第２群のいずれに振り分けるかを決定し、第１群に振り分けられた場合には第１値を割り当て、第２群に振り分けられた場合には第２値を割り当てることにより、データを生成するものであってもよい。
【０２０３】
［判定条件の例示］
「複数の値」が第１値と第２値の２種類である場合、第１値の個数Ｎ１および第２値の個数Ｎ２が以下の式（１３）および式（１４）を満たすように、判定条件が定められていてもよい。
【０２０４】
【数１３】
0006388235.tif 000014
【０２０５】
【数１４】
0006388235.tif 000015
【０２０６】
この場合、各メモリセルが２値のいずれかに実質的に均等に振り分けられる。よって、例えば、より高品質な乱数データが生成されうる。
【０２０７】
判定条件は、Ｎ１とＮ２との差が０でない所定の設定値となるように設定されてもよい。
【０２０８】
この場合、意図的に２値への振り分けを偏らせることができる。よって、例えば、生成されるデータが乱数データである場合において、乱数データが連検定および最長連検定をパスしやすくなるように調整されうる。
【０２０９】
判定条件は、抵抗値情報と所定の判定値との比較を用いるものであってもよい。判定値は、例えば、複数の抵抗値情報の中間値であってもよい。所定の判定値との比較とは、例えば、抵抗値情報が判定値以上の場合には第１値を割りあて、抵抗値情報が判定値未満の場合には第２値を割りあてる動作であってもよい。なお、抵抗値が判定値と等しい場合に、第１値に割りあてるか第２値に割りあてるかは任意である。
【０２１０】
中間値とは、有限個の値を小さい順に並べたとき中央に位置する値である。例えば、２ｎ＋１個（ｎは０以上の整数）の値があるとき、その中間値は、小さい方から数えてｎ＋１番目の値に相当する。例えば、２ｎ（ｎは１以上の整数）の値があるとき、その中間値は、小さい方から数えてｎ番目の値もしくはｎ＋１番目の値、または小さい方から数えてｎ番目の値とｎ＋１番目の値との算術平均である。
【０２１１】
メモリセル９１が初期状態を取りうる性質を有する場合において、判定条件は、抵抗値情報と所定の判定値との比較を用いるものであり、かつ、判定値の少なくとも１つが初期抵抗値範囲に含まれてもよい。
【０２１２】
ブロック毎に複数の抵抗値情報が読み出され、ブロック毎に判定条件が設定されることによって、ブロックデータが生成されてもよい。例えば、ブロックデータに含まれる第１値の個数がＮ１、第２値の個数がＮ２であるとする。このとき、Ｎ１とＮ２との差が０でない所定の設定値であり、かつ、Ｎ１およびＮ２が以下の式（１５）および式（１６）を満たすように、ブロック毎に設定される判定条件が定められてもよい。
【０２１３】
【数１５】
0006388235.tif 000016
【０２１４】
【数１６】
0006388235.tif 000017
【０２１５】
ブロックデータが生成される場合、ブロック毎に設定される判定条件は、抵抗値情報とブロック毎に設定される判定値との比較を用いるものであってもよい。さらに、ブロック毎に設定される判定値は初期抵抗値範囲に含まれてもよい。
【０２１６】
データ生成回路は、累算器を備えてもよい。
【０２１７】
累算器は、過去に生成された１つ以上のブロックデータに含まれる第１値の累計個数と、当該１つ以上のブロックデータに含まれる第２値の累計個数と、第１値の累計個数および第２値の累計個数の差のうち少なくとも１つを求めてもよい。第１値の累計個数および第２値の累計個数の差は、第１値の累計個数と第２の値の累計個数とから求められてもよいし、各ブロックの第１値の個数と第２値の個数との差を累計することによって求められてもよい。
【０２１８】
ブロック毎に設定される判定条件は、累算器により得られた値を用いて設定されてもよい。
【０２１９】
累算器は、例えば、得られた値またはそれに基づく所定のコマンドを判定条件設定部９６に出力することができる。
【０２２０】
［データの検定とデータの再生成］
データ生成回路９３は、データを所定の検定条件に基づいて検定するデータ検定回路をさらに備えてもよい。データ検定回路がデータを不合格と判断した場合に、データ生成回路９３は、判定条件を変更してデータを生成し直してもよい。
【０２２１】
データ生成回路９３は、累算器と、累計検定回路とを備えてもよい。
【０２２２】
累算器は、過去に生成された１つ以上のブロックデータに含まれる第１値および第２値の少なくともいずれか一方の個数を累計してもよい。あるいは、累算器は、過去に生成された１つ以上のブロックデータに含まれる第１値の累計個数および第２値の累計個数の差を求めてもよい。累計検定回路は、累算器によって得られた値が所定の検定条件を満たすか否かを検定してもよい。
【０２２３】
この場合に、データ生成回路９３は、累計検定回路が不合格と判断した場合に、最後に生成されたブロックデータを再度生成してもよい。このとき、データ生成回路９３は、該最後に生成されたブロックデータに対応するブロックの判定条件を設定し直し、これにより、ブロックデータを生成し直してもよい。
【０２２４】
累計検定回路は、例えば、累算器によって得られた値が所定の検定条件を満たすか否かを検定し、該検定の結果またはそれに基づく所定のコマンドを判定条件設定部９６に出力することができる。
【０２２５】
第１値の累計個数をＮ１とし、第２値の累計個数をＮ２とするとき、検定条件は、Ｎ１およびＮ２が以下の式（１７）および式（１８）を満たすことであってもよい。
【０２２６】
【数１７】
0006388235.tif 000018
【０２２７】
【数１８】
0006388235.tif 000019
【０２２８】
［データの検定と電気的ストレスの再印加］
データ生成回路９３は、ブロックデータ検定回路を備えてもよい。
【０２２９】
ブロックデータ検定回路は、ブロックデータに含まれる第１値の個数が所定の検定値以上であるか否かを判定することによって、ブロックデータを検定してもよい。
【０２３０】
ブロックデータ検定回路がブロックデータを不合格と判断した場合に、電圧印加回路９４は、第１値の個数を増大させるための電気的ストレスを、ブロックを構成する少なくとも一部のメモリセルに印加してもよい。その後、データ生成回路９３は、ブロックデータを再度生成してもよい。
【０２３１】
ブロックデータ検定回路は、例えば、データ生成部９７で生成されたブロックデータを取得し、当該ブロックデータを検定する。ブロックデータが合格の場合、ブロックデータ検定回路は、当該ブロックデータを外部に出力することを許可してもよい。あるいは、データ生成回路９３が累算器を備える場合には、ブロックデータ検定回路は、当該ブロックデータを累算器に出力してもよい。ブロックデータが不合格の場合、ブロックデータ検定回路は、電気的ストレスを印加させるコマンドを電圧印加回路９４に出力し、読み出しを実行させるコマンドを読み出し回路９２に出力してもよい。
【０２３２】
［動作モードおよびコマンド］
データ生成装置１００は、複数の動作モードを有してもよい。例えば、データ生成装置１００は、外部から受領したコマンドに基づくモードを実行する。
【０２３３】
データ生成装置１００は、例えば、第１の書き込みモード、第２の書き込みモード、第１の読み出しモード、および、第２の読み出しモードを直接的または間接的に実行してもよい。第１の書き込みモードにおいて、各メモリセル９１が初期状態にあるか可変状態にあるかの違いを利用して、メモリセルアレイ９０にデータが書き込まれる。第２の書き込みモードにおいて、各メモリセル９１の抵抗値が初期抵抗値範囲にあるか否かの違いを利用せず、各メモリセル９１の抵抗値が少なくとも一つの可変抵抗値範囲にあるか否かの違いを利用して、メモリセルアレイ９０にデータが書き込まれる。第１の読み出しモードにおいて、各メモリセル９１が初期状態にあるか可変状態にあるかの違いを利用して、データが読み出される。第２の読み出しモードにおいて、各メモリセル９１の抵抗値が初期抵抗値範囲にあるか否かの違いを利用せず、各メモリセル９１の抵抗値が少なくとも一つの可変抵抗値範囲にあるか否かの違いを利用して、データが読み出される。
【０２３４】
例えば、メモリセルアレイ９０に含まれるメモリセル９１が、図５に示される特性を有する場合、各モードは、例えば次のように実行されうる。
【０２３５】
例えば、第１書き込みモードにおいて、“１”を記録すべきメモリセル９１にフォーミングストレスが印加され、“０”を記録すべきメモリセル９１に電気的ストレスが印加されない。外部からデータ生成装置１００に入力される、データ生成装置１００に第１書き込みモードを実行させるためのコマンドは、例えば、第１書き込みコマンドと呼ばれる。例えば、第１読み出しモードにおいて、第１閾値を用いた判定によりデータが読み出される。外部からデータ生成装置１００に入力される、データ生成装置１００に第１読み出しモードを実行させるためのコマンドは、例えば、第１読み出しコマンドと呼ばれる。
【０２３６】
例えば、第２書き込みモードにおいて、“１”を記録すべきメモリセル９１に第２電気的ストレスが印加され、“０”を記録すべきメモリセル９１に第１電気的ストレスが印加される。外部からデータ生成装置１００に入力される、データ生成装置１００に第２書き込みモードを実行させるためのコマンドは、例えば、第２書き込みコマンドと呼ばれる。例えば、第２読み出しモードにおいて、第２閾値を用いた判定によりデータが読み出される。外部からデータ生成装置１００に入力される、データ生成装置１００に第２読み出しモードを実行させるためのコマンドは、例えば、第２読み出しコマンドと呼ばれる。
【０２３７】
データ生成装置１００は、後述するように、第３読み出しモードを実行しうる。第３読み出しモードにおいて、複数のメモリセル９１の抵抗値情報が取得される。第３読み出しモードにおいては、閾値に基づく判定は行われない。ただし、データ生成装置１００は、第３読み出しモードを実行した後に、別途、データを生成するための判定を実行する。
【０２３８】
データ生成装置１００は、少なくとも第３の読み出しモードを実行できればよく、第１読み出しモード、第２読み出しモード、第１書き込みモード、第２書き込みモード、およびその他のモードは、必要に応じて適宜設定されうる。
【０２３９】
［第１実施例］
＜データ生成装置＞
図８は、第１実施例にかかるデータ生成装置の概略構成の一例を示す。なお、実施形態のデータ生成装置の具体的な構成は、図８に例示される構成に限定されるものでない。
【０２４０】
図８に示すように、第１実施例のデータ生成装置１０は、半導体基板上に、メモリ本体部２２を備えている。メモリ本体部２２は、メモリセルアレイ２０と、ロウデコーダ回路１８と、カラムデコーダ回路１７と、書き込み回路１４と、読み出し回路１１とを含む。ロウデコーダ回路１８は、メモリセルアレイ２０に接続されている複数のワード線ＷＬの中から１つのワード線ＷＬを選択する。カラムデコーダ回路１７は、複数のビット線ＢＬと複数のソース線ＳＬの中から１つのビット線ＢＬと１つのソース線ＳＬとを選択し、各動作における所定の電圧を印加する。書き込み回路１４は、選択されたメモリセル２１へデータの書き込みを実施する。読み出し回路１１は、ビット線に流れる電流量を検知し、選択メモリセルのデータをカウント値として出力する。カウント値は「抵抗値情報」の一例である。書き込み回路１４は、「電圧印加回路」の一例である。書き込み回路１４は、例えば、データ生成用電気的ストレス、および／または、フォーミングストレスを印加してもよい。なお、これらの電気的ストレスは、データを書き込むためのものではない場合がある。しかし、ここでは、簡便のため、データを書き込む目的ではない電気的ストレスを印加する回路についても、「書き込み回路」と呼ぶ場合がある。
【０２４１】
データ生成装置１０は、データ生成回路２５と、マスクデータレジスタ１３と、アドレス入力回路１６と、制御回路１５とをさらに含む。データ生成回路２５は、読み出し回路１１から出力されるカウント値に基づいてデータを生成する。マスクデータレジスタ１３は、データ生成回路２５により生成されたデータに基づいてマスクデータの情報を記憶する。アドレス入力回路１６は、データ生成装置１０の外部から入力されるアドレス信号を受け取る。制御回路１５は、データ生成装置１０の外部から入力されるコントロール信号を受け取り、これに基づいてメモリ本体部２２の動作を制御する。
【０２４２】
メモリセルアレイ２０は、複数のワード線ＷＬ０、ＷＬ１、ＷＬ２、・・・ＷＬｎと、複数のビット線ＢＬ０、ＢＬ１、・・・ＢＬｎと、複数のソース線ＳＬ０、ＳＬ１、・・・ＳＬｎと、を備える。複数のワード線ＷＬ０、ＷＬ１、ＷＬ２、・・・ＷＬｎは、互いに平行に延びる。複数のビット線ＢＬ０、ＢＬ１、・・・ＢＬｎは、互いに平行に延び、かつ、複数のワード線ＷＬ０、ＷＬ１、ＷＬ２、・・・ＷＬｎに対して立体的に交差する。複数のソース線ＳＬ０、ＳＬ１、・・・ＳＬｎは、互いに平行に延び、かつ、複数のワード線ＷＬ０、ＷＬ１、ＷＬ２、・・・ＷＬｎに対して立体的に交差する。複数のソース線ＳＬ０、ＳＬ１、・・・ＳＬｎは、複数のビットＢＬ０、ＢＬ１、・・・ＢＬｎ線に対して平行に延びてもよい。複数のワード線ＷＬ０、ＷＬ１、ＷＬ２、・・・ＷＬｎと複数のビット線ＢＬ０、ＢＬ１、・・・ＢＬｎの立体交差点のそれぞれには、メモリセル２１が配置されている。
【０２４３】
それぞれのメモリセル２１は抵抗変化素子２３とトランジスタ２４とを備える。ワード線ＷＬ０、ＷＬ１、ＷＬ２、・・・ＷＬｎはそれぞれのトランジスタ２４のゲート端子に接続される。ビット線ＢＬ０、ＢＬ１、・・・ＢＬｎは、それぞれの抵抗変化素子２３の第２電極に接続される。抵抗変化素子の第１電極はトランジスタ２４の第２主端子に各々接続される。ソース線ＳＬ０、ＳＬ１、・・・ＳＬｎは、トランジスタ２４の第１主端子にそれぞれ接続される。
【０２４４】
抵抗変化素子２３は、メモリセル２１において不揮発性記憶素子として動作する。データ生成装置１０において、各メモリセル２１は、１個のトランジスタ２４と１個の抵抗変化素子２３とから構成される。
【０２４５】
アドレス入力回路１６がアドレス信号を受け取ると、ロウデコーダ回路１８は、複数のワード線ＷＬ０、ＷＬ１、ＷＬ２、・・・ＷＬｎの中から１つのワード線を選択し、カラムデコーダ回路１７は、それぞれ複数のビット線ＢＬ０、ＢＬ１、・・・ＢＬｎと複数のソース線ＳＬ０、ＳＬ１、・・・ＳＬｎとの中から１組のビット線とソース線を選択する。これにより、アドレス信号に応じたメモリセル２１が選択される。
【０２４６】
制御回路１５がコントロール信号受け取ると、選択された１組のビット線及びソース線のうちの一方の線が、カラムデコーダ回路１７を介して、書き込み時は書き込み回路１４または読み出し時は読み出し回路１１に接続される。その後、制御回路１５は、書き込み回路１４または読み出し回路１１を動作させる。
【０２４７】
抵抗変化素子２３は、実施形態において説明された抵抗変化素子１２０と同様の構成とすることができる。
【０２４８】
図８に示す例では、メモリセルアレイ２０に含まれる選択トランジスタは、ＮＭＯＳトランジスタである。
【０２４９】
外部インターフェース９は、アドレス信号が入力される端子と、コントロール信号が入力される端子と、入出力データが入出力される端子とを含む。外部インターフェース９は、例えば、外部のフォーミング装置と接続されてもよい。この場合、外部のフォーミング装置は、外部インターフェース９を介して、データ生成装置１０を制御しうる。
【０２５０】
外部インターフェース９は、例えば、データ生成装置１０に混載されたマイコンと接続されてもよい。この場合、マイコンは、外部インターフェース９を介して、データ生成装置１０を制御しうる。
【０２５１】
図８において、簡便のため、フォーミング装置またはマイコンは、データ生成装置１０の外部にある構成として説明されたが、これらは、データ生成装置１０に含まれてもよい。
【０２５２】
＜読み出し回路＞
図９は、第１実施例にかかるデータ生成装置が備える読み出し回路の概略構成の一例を示すブロック図である。
【０２５３】
図９において、破線で囲まれたカラムデコーダ回路１７は、上述した通りであるので、その説明が省略される。
【０２５４】
図９において、レファレンス電圧発生回路１３０は、制御回路１５からの入力Ａに基づき、所定の基準電位を出力する。レファレンス電圧発生回路１３０は、例えば、ラダー抵抗と、半導体スイッチを備える。レファレンス電圧発生回路１３０において、例えば、電源電圧ＶＤＤと設置電圧ＧＮＤとの電位差に相当する電圧はラダー抵抗によって分圧され、これにより複数の所定の電位が生成される。さらに、レファレンス電圧発生回路１３０内の半導体スイッチ等が、複数の電位のいずれかを選択して、これを基準電位として出力する。レファレンス電圧発生回路１３０は、例えば、第１基準電位Ｖｒｅｆ１および第２基準電位Ｖｒｅｆ２を出力しうる。
【０２５５】
第１基準電位Ｖｒｅｆ１および第２基準電位Ｖｒｅｆ２は、Ｖｒｅｆ１＞Ｖｒｅｆ２の関係を満たす。基準電位を生成する回路は、他の構成であってもよい。第２基準電位Ｖｒｅｆ２は、第１読み出しモード、第２読み出しモードで異なってもよい。
【０２５６】
スイッチＳＷ３は、制御回路１５からの入力Ｂに応じてスイッチングされる。言い換えると、入力Ｂは、スイッチ制御信号である。スイッチＳＷ３は、ローレベルの信号が入力されたときにＯＦＦとなり、ハイレベルの信号が入力されたときにＯＮとなる。スイッチＳＷ３がＯＦＦとなると、レファレンス電圧発生回路１３０からノードＣへの入力状態が、ＨｉＺ（ハイインピーダンス）状態へと切り替わる。スイッチＳＷ３がＯＮとなると、ドライバ１３１を介して、第１基準電位Ｖｒｅｆ１の電位が、ノードＣに出力される。
【０２５７】
なお、実際にはドライバ１３１やその他の回路を構成するトランジスタや配線等の電圧降下によって、入出力の電圧値は多少異なりうる。しかし、以下では、説明の簡単化のために、電圧降下等の影響は無視できるものとして説明される。
【０２５８】
ノードＣは、メモリセルアレイ２０内の選択されたメモリセルに接続されている。例えば、図８の左上隅のメモリセルの抵抗値情報が読み出される場合を想定する。まず、全てのビット線とワード線が０Ｖに設定される。図９において、制御回路１５は、線ＮＷＲをハイレベルにし、線Ｙ０をハイレベルとし、線Ｙ１〜Ｙｎをローレベルにする。これにより、ビット線ＢＬ０が選択される。さらに、ロウデコーダ回路１８は、選択ワード線ＷＬ０をハイレベルにし、ＷＬ０を除く非選択ワード線をローレベルにする。また、選択ビット線ＢＬ０に接続されるノードＣに、第１基準電位Ｖｒｅｆ１が印加される。第１基準電位Ｖｒｅｆ１は、読み出し電圧に相当する。
【０２５９】
ノードＣとグランド間にはキャパシタＣＣ２が接続されており、キャパシタＣＣ２は、選択されたメモリセルと並列に接続される。このキャパシタＣＣ２は、例えば、配線容量、および／または、トランジスタの拡散容量等であってもよいし、別個の容量素子であってもよい。
【０２６０】
読み出し速度の高速化のために、キャパシタＣＣ２の容量は、小さくてもよい。スイッチＳＷ３に入力されるスイッチ制御信号（入力Ｂ）がハイレベルとなり、これによりノードＣの電位は第１基準電位Ｖｒｅｆ１となる。その後、スイッチ制御信号がローレベルとなり、レファレンス電圧発生回路１３０からノードＣへの入力状態がハイインピーダンス（ＨｉＺ）状態になる。これにより、キャパシタＣＣ２が放電を開始する。放電により、ノードＣの電位が、第１基準電位Ｖｒｅｆ１から徐々に減少する。この減少の時定数は、キャパシタＣＣ２の容量と、キャパシタＣＣ２に並列に接続されているメモリセルの抵抗値により定まる。
【０２６１】
すなわち、選択されたメモリセルの抵抗値が低いと、ノードＣを流れる電流が多くなり、ノードＣの電位の低下は速くなる。一方、選択されたメモリセルの抵抗値が高いと、ノードＣを流れる電流が少なくなり、ノードＣの電位の低下は遅くなる。
【０２６２】
図１０は、図９に示される読み出し回路の主要箇所の動作例を示すタイミングチャートである。図１０は、メモリセルの状態（ａ）に示されるように、前半は選択されたメモリセルが低抵抗状態ＬＲであり、後半は選択されたメモリセルが高抵抗状態ＨＲである場合を例示する（ａ）。それぞれに対し、（ｂ）に示されるタイミングで、入力Ｂがハイレベルに変化する。入力Ｂがハイレベルである期間に、（ｃ）に示されるように、ノードＣに第１基準電位Ｖｒｅｆ１が印加される。
【０２６３】
入力Ｂがハイレベルからローレベルに切り替わると、スイッチＳＷ３はＯＦＦとなり、レファレンス電圧発生回路１３０からノードＣへの入力状態がＨｉＺになる。そのため、ノードＣの電位は徐々に低下する。ノードＣの電位が第２基準電位Ｖｒｅｆ２よりも小さくなるまでの時間は、選択されたメモリセルが低抵抗状態ＬＲのときは短く、高抵抗状態ＨＲのときは遅い。本実施例では、この時間に相当するカウント値が抵抗値情報として用いられる。
【０２６４】
図９に示されるレベル比較器１３２は、レファレンス電圧発生回路１３０が出力する第２基準電位Ｖｒｅｆ２とノードＣの電位とを比較する。レベル比較器１３２は、第２基準電位Ｖｒｅｆ２よりもノードＣの電位が大きければ、ローレベルの信号を出力し、小さければハイレベルの信号を出力する。すなわち、スイッチ制御信号がハイレベルからローレベルに切り替わってから、レベル比較器１３２の出力信号がローレベルからハイレベルに変化するまでの時間は、選択されたメモリセルが低抵抗状態ＬＲにある場合には短く、高抵抗状態ＨＲにある場合には長い。
【０２６５】
カウンタ１３４は、入力Ｂがハイレベルの期間はゼロとなる。カウンタ１３４は、入力Ｂがローレベルであり、かつ、レベル比較器１３２からの入力がローレベルであるとき、入力されるクロック(図示せず)の周期に従ってカウントアップする。カウンタ１３４において、カウント値がオーバフローしないように、カウント値の上限値が設定されていてもよい。
【０２６６】
カウンタ１３４の動作は、図１０の（ｅ）に示される。図１０の（ｅ）に示すように、入力Ｂがローレベルに変化した直後から、カウンタ１３４のカウントアップが開始される。その後、ノードＣの電位が第２基準電位Ｖｒｅｆ２を下回るタイミングでカウントアップが停止する。選択されたメモリセルが低抵抗状態ＬＲにあるとき、カウントアップが停止したときのカウント値は、例えば１５である。選択されたメモリセルが高抵抗状態ＨＲにあるとき、カウントアップが停止したときのカウント値は、例えば３５である。
【０２６７】
図９の入力Ｃは、例えば、第２読み出しモードに対応した閾値である。入力Ｃは、第２閾値レジスタ１３６にセットされる。入力Ｄは、例えば、第１読み出しモードに対応した閾値である。入力Ｄは、第１閾値レジスタ１３７にセットされる。
【０２６８】
入力Ｅは、例えば、第１読み出しモードと第２読み出しモードとを切り替える切り替え信号である。入力Ｅは、スイッチＳＷ５を切り替える。切り替え信号がハイレベルのとき、スイッチＳＷ５は、図９に示される端子Ｈに接続される。切り替え信号がローレベルのとき、スイッチＳＷ５は、図９に示される端子Ｌに接続される。
【０２６９】
かかる切り替えにより、第２閾値レジスタ１３６および第１閾値レジスタ１３７のいずれかに保持されている閾値が、データ読み出し用比較器１３５に、入力ｂとして入力される。第２読み出しモードの閾値は、例えば、高抵抗状態ＨＲに対応するカウント値と、低抵抗状態ＬＲに対応するカウント値とを判別する値である。図１０の（ｄ）に示される例では、この閾値は、２０である。
【０２７０】
比較器１３５には、カウンタ１３４から出力されたカウント値が入力ａとして入力される。比較器１３５は、カウント値（入力ａ）と閾値（入力ｂ）とを比較する。比較器１３５は、入力ａの値が入力ｂの値以上のとき、選択されたメモリセルが高抵抗状態ＨＲにあると判断し、出力Ａとして情報“０”を出力する。比較器１３５は、入力ａの値が入力ｂの値未満のとき、選択されたメモリセルが低抵抗状態ＬＲにあると判断し、出力Ａとして情報“１”を出力する。
【０２７１】
出力Ａは、例えば、データ生成装置１０内のデータレジスタ（図示せず）にラッチされる。
【０２７２】
以上のように、読み出し回路１１は、選択されたメモリセルの抵抗値に応じてノードＣの電圧の減衰時間が異なることを利用して、選択されたメモリセルの抵抗値情報を読み出す。その結果、読み出し回路１１は、メモリセルの抵抗状態に応じた２値のディジタル論理値を出力Ａとして出力しうる。
【０２７３】
第３読み出しモードにおいて、読み出し回路１１は閾値を用いた判定を実行せず、カウンタ１３４のカウント値を、出力Ｂとして、そのままデータ生成回路２５に出力する。カウント値は、例えば、クロック周期の分解能で出力される。カウント値は、データ生成回路２５のカウント値レジスタ３０に入力される。
【０２７４】
カウント値は、メモリセルの抵抗値と相関をもつ値である。カウント値は、り、物理量としてはメモリセルの両端電圧の放電時間を表す数値であるものの、メモリセルの抵抗値を示す情報である。
【０２７５】
なお、入力Ｃの値やカウンタ１３４のホールド値は、図１０に例示された値に限定されるものでない。それらの値は、例えば、カウンタ１３４のカウントクロック周波数、キャパシタＣＣ２の容量、第１基準電位Ｖｒｅｆ１および第２基準電位Ｖｒｅｆ２の設定値、定電流源１２９の電流量、スイッチＳＷ４の状態、ならびに、メモリセルの抵抗値のばらつき等に応じて変動しうる。
【０２７６】
次に、読み出される抵抗値の測定範囲を変更する方法の一例について説明する。これにより、例えば、第１読み出しモード、第２読み出しモード、及び第３読み出しモードの間で、読み出される抵抗値の測定範囲が切り替えられる。
【０２７７】
図９に示される読み出し回路１１では、定電流源１４０は、スイッチＳＷ４を介してノードＣに接続されている。定電流源１４０は、ｐチャネル型ＭＯＳＦＥＴを含んでもよいし、カレントミラー回路を含んでもよい。
【０２７８】
スイッチＳＷ４は、制御回路１５からの入力Ｅがハイレベルの時にオンとなり、ローレベルの時にオフとなる。スイッチＳＷ４がオンのとき、ノードＣに一定の電流が供給される。このとき、キャパシタＣＣ２からの放電時間は長くなる。
【０２７９】
図１１は、図９に示される読み出し回路１１において、スイッチＳＷ４がオンの場合とオフの場合のノードＣを流れる電流値の変化を示す。図１１において、横軸はカウンタ１３４のカウント値を示し、縦軸は規格化セル電流値を示す。規格化セル電流値とは、選択されたメモリセルに対して所定の電圧を印加したときに当該メモリセルを流れる直流電流を規格化したものである。規格化セル電流値は、メモリセルの抵抗値の逆数に相当する。つまり、図１１は、読み出し回路１１で読み出されるメモリセルのカウント値と、当該メモリセルを実際に流れる電流量との相関関係を表す。
【０２８０】
カウント値とセル電流は、セル電流＝Ｃ１×ＴＣ２、Ｔ＝カウント値×クロック周期、Ｃ１およびＣ２は定数、の関係を概ね満たす。図１１において、破線はスイッチＳＷ４がオフの場合のセル電流の時間変化を示し、実線はスイッチＳＷ４がオンの場合のセル電流の時間変化を示す。
【０２８１】
図１１に示すように、スイッチＳＷ４がオフの場合、カウント値が２０から１００まで変化すると、セル電流値は約１０から１まで変化する。スイッチＳＷ４がオンの場合、カウント値が２０から１００まで変化すると、セル電流値は約１５から５まで変化する。
【０２８２】
すなわち、カウント値の測定範囲は、図９に示されるスイッチＳＷ４によって、切り替えられる。具体的には、スイッチＳＷ４がオンのとき、読み出し回路１１の測定範囲は、比較的低い抵抗値に相当する抵抗値情報を測定するために適した範囲に、設定されうる。これにより、読み出し回路１１は、例えば、選択されたメモリセルの抵抗値が第１抵抗値範囲と第２抵抗値範囲のいずれの範囲内にあるかを、精度良く判定できる。これは、第２読み出しモードに相当する。
【０２８３】
スイッチＳＷ４がオフのとき、読み出し回路１１の測定範囲は、比較的高い抵抗値に相当する抵抗値情報を測定するために適した範囲に、設定されうる。これにより、読み出し回路１１は、例えば、選択されたメモリセルの抵抗値が初期抵抗値範囲と第１抵抗値範囲のいずれの範囲内にあるかを、精度良く判定できる。これは、第１読み出しモードに相当する。
【０２８４】
なお、読み出しの分解能は、スイッチＳＷ４のオンオフのみでなく、定電流源１４０の電流量、カウンタ１３４に入力されるクロックの周波数、第１基準電位Ｖｒｅｆ１および第２基準電位Ｖｒｅｆ２の大きさ、ならびに、キャパシタＣＣ２の容量等によって調整されうる。例えば、クロックの周波数が増加すると、読み出しの分解能が上昇する。
【０２８５】
読み出しの測定範囲は、比較的高い抵抗値が短い時間で読み出されるように設定されてもよい。そのような設定は、例えば、第１基準電位Ｖｒｅｆ１および第２基準電位Ｖｒｅｆ２を大きくすること、定電流源１２９の電流を減らすこと、または、キャパシタＣＣ２の容量を減らすこと等によって実現されうる。逆に、読み出しの測定範囲は、比較的低い抵抗値が短時間で読み出されるように設定されてもよい。そのような設定は、例えば、第１基準電位Ｖｒｅｆ１および第２基準電位Ｖｒｅｆ２を小さくすること、定電流源１２９の電流を増やすこと、または、キャパシタＣＣ２の容量を増やすこと等によって実現されうる。なお、第３読み出しモードにおける抵抗値の測定範囲は、第１読み出しモードまたは第２読み出しモードと同じであってもよく、第１読み出しモードおよび第２読み出しモードと異なっていてもよい。
【０２８６】
なお、第１基準電位Ｖｒｅｆ１が大き過ぎる場合、当該電位によって選択されたメモリセルの抵抗状態が変化するおそれがある。そのため、第１基準電位Ｖｒｅｆ１は、メモリセルの抵抗状態が変化しないように、所定の値以下の値に設定されうる。
【０２８７】
＜データ生成回路＞
図１２は、第１実施例にかかるデータ生成装置が備えるデータ生成回路の概略構成の一例を示すブロック図である。
【０２８８】
データ生成回路２５は、読み出し回路から複数のカウント値を取得し、判定値に基づいて“０”と“１”の２値を割り当てることによってデータを生成し、そのデータをマスクデータレジスタ１３に出力する。判定値は、データ生成回路２５により設定されてもよいし、外部から入力されてもよい。判定値は、複数のメモリセルから取得されたカウント値を用いて設定される。なお、カウント値は、「抵抗値情報」の一例である。
【０２８９】
マスクデータレジスタ１３は、データ生成回路２５から取得したディジタルデータを一時的に記憶する。マスクデータは、例えば、データ生成回路２５によって生成されたデータをメモリセルアレイ２０に記録するための、アドレスの情報を含む。このアドレスは、例えば、可変状態に変化させるべきメモリセルのアドレスであってもよい。マスクデータは、例えば、メモリセルアレイ２０に一度書き込まれたデータを再書き込みする場合に使用されてもよい。なお、データ生成回路２５が生成したデータが、メモリセルアレイ２０に書き込まれない場合、データ生成装置１０は、マスクデータレジスタ１３を備えなくてもよい。
【０２９０】
図１２に示されるデータ生成回路２５は、カウント値レジスタ３０と、比較器３１と、判定値レジスタ３２と、累算器３４と、データ検定回路３３とを含む。
【０２９１】
判定値レジスタ３２は、判定値の初期値、データ検定回路３３から出力された判定値、または、データ生成回路２５の内部または外部から入力された判定値、を一時的に記憶する。例えば、データ生成回路２５は、カウント値レジスタ３０に基づいて判定値を設定する判定値設定部をさらに備えてもよい。
【０２９２】
比較器３１は、カウント値レジスタ３０が保持する各カウント値と、判定値レジスタ３２に格納された判定値とを比較して、“０”と“１”のいずれかを選択的に割り当てる。これにより、ディジタルデータが生成される。ディジタルデータは、累算器３４、および、マスクデータレジスタ１３に出力される。
【０２９３】
累算器３４は、例えば、比較器から出力された“１”の個数および“０”の個数、ならびに、それらの個数差の少なくとも１つを記憶する。例えば、判定値が固定長のブロック単位で設定される場合、“１”と“０”のいずれか一方の個数が記憶されれば、実質的に、両方の個数が記憶されたことになる。
【０２９４】
データ検定回路３３は、“１”の個数と“０”の個数の差が、所定の範囲内かどうかを検定する。データ検定回路３３は、その結果に応じて、判定値レジスタ３２が記憶している判定値を変更し、再度、比較器３１に“１”および“０”の割り当てを実施させる。データ検定回路３３は、例えば、“１”の個数と“０”の個数の差が所定の範囲内に収まるまで、割り当て処理を繰り返させてもよい。
【０２９５】
データ検定回路３３は省略されていてもよい。その場合、判定値は、データ生成回路２５の外部から判定値レジスタ３２へ入力されてもよい。
【０２９６】
また、図１３に示すように、データ生成回路２５は、ブロックデータ検定回路３５を備えてもよい。
【０２９７】
ブロックデータ検定回路３５は、例えば、ブロックデータに含まれる“１”の個数が所定の検定値以上であるか否かを判定する。判定が不合格であった場合に、ブロックデータ検定回路３５は、当該ブロックに含まれる複数のメモリセル２１対して電気的ストレスを印加させるコマンドを、書き込み回路１４に出力してもよい。さらに、ブロックデータ検定回路３５は、当該ブロックに含まれる複数のメモリセル２１のカウント値を再取得させるコマンドを、読み出し回路１１に出力してもよい。これらのコマンドにより再度カウント値が取得され、これらに基づいて、データ生成回路２５は、再度データ生成を実行しうる。ブロックデータ検定回路３５は、生成されたデータが検定をパスするまで、かかる処理が繰り返させてもよい。
【０２９８】
ブロックデータ検定回路３５は、例えば、カウント値レジスタ３０から出力される複数のカウント値が、所定の検定条件を満たすか否かを判定してもよい。判定が不合格であった場合、ブロックデータ検定回路３５は、当該ブロックに含まれる複数のメモリセル２１に対して電気的ストレスを印加させるコマンドを、書き込み回路１４に出力してもよい。さらに、ブロックデータ検定回路３５は、当該ブロックに含まれる複数のメモリセル２１のカウント値を再取得させるコマンドを、読み出し回路１１に出力してもよい。ブロックデータ検定回路３５は、新たに取得されたカウント値を、さらに検定してもよい。これにより、検定を合格した複数のカウント値が、比較器３１に入力される。
【０２９９】
＜データの生成動作例＞
図１４は、第１実施例のデータ生成装置１０によるデータ生成の動作例を示すフローチャートである。なお、本実施の形態に係るデータ生成方法は、本動作例のみに限定されるものではない。
【０３００】
以下では、複数のメモリセルの抵抗値の散らばりを利用して、ランダムデータが生成される例について説明される。本動作例において、複数のメモリセルの抵抗値の散らばりは、複数のメモリセルにデータ生成用電気的ストレスが印加されることにより生成される。また、生成されるランダムデータは、“１”と“０”から構成されるディジタルデータである。
【０３０１】
以下、図１４に従って具体的なフローを説明する。
【０３０２】
ステップＳ１０１において、電気的ストレスの印加を指示するコマンドと、電気的ストレスを印加すべきアドレスとが、データ生成装置１００の外部から入力される。
【０３０３】
ステップＳ１０２において、電気的ストレスを印加すべき複数のアドレスのうち、最初のアドレスが選択される。
【０３０４】
ステップＳ１０３において、書き込み回路１４は、初期状態のメモリセルに対し、データ生成用電気的ストレスを印加する。データ生成用電気的ストレスは、例えば正極性のパルス電圧である。データ生成用電気的ストレスは、フォーミングを完了させるような電気的ストレスよりも弱い。このようなストレス印加により、各メモリセルの抵抗値は、初期抵抗範囲内で、製造直後よりも抵抗値が低い側にランダムに推移する。その結果、各メモリセルの抵抗値はランダムに散らばる。
【０３０５】
ステップＳ１０４において、まず、読み出し回路１１が第３読み出しモードに設定される。例えば、図９のスイッチＳＷ４がオフとなり、読み出しの測定範囲が高抵抗側に設定される。読み出し回路１１のカウント値の上限が２５５の場合、読み出し回路１１は、各メモリセルの抵抗値に応じて、１〜２５５の範囲のカウント値を出力し、これらがカウント値レジスタ３０に格納される。
【０３０６】
ステップＳ１０５において、データ生成回路２５内に判定値が設定される。判定値には固定値が設定されてもよいし、ステップＳ１０４においてレジスタに格納されたカウント値を基に設定してもよい。
【０３０７】
例えば、各メモリセルのカウント値の中間値が“１５０”であった場合、判定値は“１５０”と設定されてもよい。中間値が判定値として設定されることにより、“１”と“０”とが、おおよそ均等に割り当てられる。これにより、生成されたデータのランダム性が向上する。判定値は、中間値に対して所定のオフセット値を加えたものであってもよい。オフセット値は、予めNIST800-22などの公知のランダム性評価ツールを使用した調査によって得られたものであってもよい。なお、各メモリセルのカウント値から中間値を計算し該中間値を判定値とする方法は後述する。
【０３０８】
例えば、データ生成装置１０は、判定値を演算する演算領域を備えてもよい。この場合、演算領域は、判定値の数値を増減させて複数のデータを生成しうる。これらのデータのうち最もランダム性が良くなった場合の判定値の値が、最終的な判定値として設定されてもよい。
【０３０９】
例えば、不揮発性記憶装置の製造装置が、ランダム性評価用の演算回路またはソフトを備えていてもよい。この場合、製造装置は、読み出し回路１１から出力されたカウント値を基に、判定値の数値を増減させて複数のデータを生成しうる。これらのデータのうち最もランダム性が良くなった場合の判定値の値が、最終的な判定値として設定されてもよい。
【０３１０】
ステップＳ１０６において、データ生成回路２５は、カウント値レジスタ３０に格納されている各メモルセルのカウント値と、判定値とを比較する。カウント値が判定値より大きい場合は、第２値“０”が割り当てられる（ステップＳ１０７）。カウント値が判定値以下の場合は、第１値“１”が割り当てられる（ステップＳ１０８）。
【０３１１】
上記ステップＳ１０６〜Ｓ１０８の処理は、メモリセルが全て判定されるまで繰り返される（ステップＳ１０９〜Ｓ１１０）。
【０３１２】
全メモリセルに対する上記の処理が終わった後に、ステップＳ１１１において、生成したデータがマスクデータレジスタに格納される。これにより、データ生成動作が終了する（エンド）。
【０３１３】
本発明者らは、以上のフローに基づき、１ｋｂｉｔのデータを生成した。なお、判定値は、読み出された複数のカウント値の中間値とした。メモリセルの構成は、図１のものと同様とした。その結果が、図１９に示される検定例１に示される。ランダム性の検定には公知のツール（NIST SP800-22）が用いられた。生成されたデータは、一次元度数検定を合格した。一次元度数検定とは、データ内の“０”と“１”の個数が均等な状態からの偏りの度合いが所定の範囲内にあるか否かを検定するものである。さらに、当該データは、他のテスト項目についても合格していた。これらの結果は、生成されたデータが高いランダム性を有することを示している。
【０３１４】
＜判定値の設定動作例＞
図１５は、第１実施例のデータ生成装置１０における判定値の設定の動作例を示すフローチャートである。このフローチャートは、図１４におけるステップＳ１０５の一具体例を示すものである。
【０３１５】
以下では、図１５及び図１２を参照しながら、複数のカウント値から中間値を計算し、その中間値を判定値として設定する例について説明する。
【０３１６】
ステップＳ２０１では、各カウント値と所定の初期仮判定値とが比較される。複数のカウント値は、カウント値レジスタ３０に格納されている。初期仮判定値は、任意の値であり、判定値レジスタ３２に入力される。カウント値が初期仮判定値よりも大きい場合、第２値“０”が割り当てられ（ステップＳ２０２）、カウント値が初期仮判定値以下の場合、第１値“１”が割り当てられる（ステップＳ２０３）。例えば、初期仮判定値が“１５０”と設定される場合、カウント値が“１５０”より大きい場合には第２値の“０”が割り当てられる、“１５０”以下の場合には第１値の“１”が割り当てられる。
【０３１７】
ステップＳ２０４およびＳ２０５では、“１”の個数と“０”の個数との差が所定の範囲内にあるか否かが判定される。例えば、累算器３４が、比較器３１から出力された“０”の個数および“１”の個数を記憶し、データ検定回路３３が“１”の個数と“０”の個数との差を求める。この個数差Ａは、次のように表される。
（個数差Ａ）＝（“１”の個数）−（“０”の個数）
【０３１８】
個数差Ａの値に応じて、ステップＳ２０４の以降のフローが、例えば、以下のように分岐する。
【０３１９】
個数差Ａが０に等しい場合、初期仮判定値は、取得された複数のカウント値の中間値である。この場合、ステップＳ２１３において、データ検定回路３３は、初期仮判定値を判定値として決定する。例えば、初期仮判定値が“１５０”であった場合、判定値は“１５０”となる。
【０３２０】
個数差Ａが０より大きい場合、ステップＳ２０６に進む。個数差Ａが０より小さい場合は、ステップＳ２１５に進む。まずは、個数差Ａが０より大きい場合について説明する。
【０３２１】
ステップＳ２０６では、データ検定回路３３は、初期仮判定値から１を引いた値を新たな仮判定値とし、判定値レジスタ３２に格納する。例えば、初期仮判定値が“１５０”であった場合、新たな仮判定値は“１４９”となる。
【０３２２】
ステップＳ２０７では、各カウント値と新たな仮判定値とが比較され、“１”または“０”が割り当てられる。ステップＳ２０７は、新たな仮判定値と初期仮判定値とが異なる点を除いて、ステップＳ２０１〜Ｓ２０３と同様である。
【０３２３】
ステップＳ２０８では、累算器３４は、比較器３１から出力された“０”の個数と“１”の個数を記憶する。
【０３２４】
ステップＳ２０９およびＳ２１０では、“１”の個数と“０”の個数との差が所定の範囲内にあるか否かが判定される。例えば、データ検定回路３３が“１”の個数と“０”の個数との差を求める。この個数差Ｂは、次のように表される。
（個数差Ｂ）＝（“１”の個数）−（“０”の個数）
個数差Ｂの値に応じて、ステップＳ２０９以降のフローが、例えば、以下のように分岐する。
【０３２５】
ステップＳ２０９において個数差Ｂが０より大きい場合、ステップＳ２０６に戻る。２回目のステップＳ２０６において、現在の仮判定値からさらに１を引いた値が、新たな仮判定値として、判定値レジスタ３２に格納される。例えば、１回目のステップＳ２０６で設定された仮判定値が“１４９”であった場合、２回目のステップＳ２０６では、新たな仮判定値として“１４８”が設定される。その後、新たな仮判定値“１４８”に基づいて、２回目のステップＳ２０７〜Ｓ２０９が実行される。
【０３２６】
このように、個数差Ｂが０以下になるまで、前回の仮判定値から１を引いた値を新たな仮判定値として更新しながら、ステップＳ２０６〜Ｓ２０９が繰り返される。ここで、ステップＳ２０６からＳ２０９のフローがｎ回処理されたときの仮判定値は、以下の式で定義される。
（仮判定値［ｎ］）＝（初期仮判定値）−ｎ
【０３２７】
以下、ｎ回目のステップＳ２０９において、個数差Ｂが初めて０以下となった場合について説明する。この場合、ステップＳ２０９からステップＳ２１０へと進む。
【０３２８】
個数差Ｂが０の場合、現在の仮判定値［ｎ］は、取得された複数のカウント値の中間値である。この場合、ステップＳ２１２において、データ検定回路３３は、現在の仮判定値［ｎ］を、判定値として決定する。
【０３２９】
個数差Ｂが０より小さい場合、ステップＳ２１１において、データ検定回路３３は、前回の仮判定値［ｎ−１］を、判定値として決定する。前回の仮判定値［ｎ−１］は、個数差Ｂの符号が正から負に変わる直前の仮判定値に相当する。これにより、“０”および“１”の個数がほぼ均等になる。
【０３３０】
あるいは、個数差Ｂが０より小さい場合、データ検定回路３３は、現在の仮判定値［ｎ］を判定値として決定してもよい。現在の仮判定値［ｎ］は、個数差Ｂの符号が正から負に変わった直後の仮判定値に相当する。この場合でも、“０”および“１”の個数がほぼ均等になる。
【０３３１】
例えば、初期仮判定値が“１５０”であり、仮判定値を設定するステップＳ２０６が３回（ｎ＝３）行われた場合を想定する。このとき、２回目の仮判定値が“１４８”であるときの個数差Ｂが＋９個であり、３回目の仮判定値が“１４７”のときの個数差Ｂが−３個であったとする。この場合、判定値は、“１４８”または“１４７”に決定される。
【０３３２】
ステップＳ２１１、Ｓ２１２、またはＳ２１３において、判定値が決定されると、ステップＳ２１４において、当該判定値が、判定値レジスタ３２に格納される。なお、判定値と同じ値である仮判定値が既に判定値レジスタ３２に格納されている場合、ステップＳ２１４は省略されてもよい。
【０３３３】
次に、ステップＳ２０４で、個数差Ａが０より小さい場合のフローを、以下において、ステップＳ２１５からＳ２２１として説明する。なお、図１５において、ステップＳ２１５からＳ２２１は、ステップＳ２０６からＳ２１２と類似するため、図示が省略されている。
【０３３４】
ステップＳ２１５では、初期仮判定値に１を加えた値が、新たな仮判定値として設定され、判定値レジスタ３２に格納される。例えば、初期仮判定値が“１５０”であった場合、新たな仮判定値は“１５１”となる。
【０３３５】
ステップＳ２１６において、各カウント値と新たな仮判定値とが比較され、“１”または“０”が割り当てられる。ステップＳ２１６は、新たな仮判定値と初期仮判定値とが異なる点を除いて、ステップＳ２０１〜Ｓ２０３と同様である。その後、ステップＳ２１７において、累算器３４は、比較器３１から出力された“０”の個数と“１”の個数を記憶する。
【０３３６】
ステップＳ２１８では、“１”の個数と“０”の個数の差が所定の範囲内にあるか否かが判定される。例えば、データ検定回路３３が“１”の個数と“０”の個数との差を求める。この個数差Ｃは、次のように表される。
（個数差Ｃ）＝（“１”の個数）−（“０”の個数）
【０３３７】
ステップＳ２１８において個数差Ｃが０より小さい場合は、ステップＳ２１５に戻る。２回目のステップＳ２１５において、現在の仮判定値にさらに１を加えた値が、新たな仮判定値として、判定値レジスタ３２に格納される。例えば、１回目のステップＳ２１５で設定された仮判定値が“１５１”であった場合、２回目のステップＳ２１５では、新たな仮判定値として“１５２”が設定される。その後、新たな仮判定値“１５２”に基づいて、２回目のステップＳ２１６〜Ｓ２１８が実行される。
【０３３８】
このように、個数差Ｃが０以上になるまで、前回の仮判定値に１を加えた値を新たな仮判定値として更新しながら、ステップＳ２１５〜Ｓ２１８が繰り返される。ここで、ステップＳ２１５からＳ２１８のフローがｎ回処理されたときの仮判定値は、以下の式で定義される。
（仮判定値［ｎ］）＝（初期仮判定値）＋ｎ
【０３３９】
ここで、ｎ回目のステップＳ２１８において、個数差Ｃが初めて０以上となった場合について説明する。この場合、ステップＳ２１８からステップＳ２１９へと進む。
【０３４０】
個数差Ｃが０の場合、現在の仮判定値［ｎ］は、取得された複数のカウント値の中間値である。この場合、ステップＳ２２１において、データ検定回路３３は、現在の仮判定値［ｎ］を、判定値として決定する。
【０３４１】
個数差Ｃが０より大きい場合、ステップＳ２２０において、データ検定回路３３は、前回の仮判定値［ｎ−１］、または、現在の判定値［ｎ］を判定値として決定する。これにより、“０”および“１”の個数がほぼ均等になる。決定された判定値は判定値レジスタに格納される（ステップＳ２１４）。
【０３４２】
以上により、“０”の個数と“１”の個数とがほぼ等しくなりうる。読み出し回路１１の分解能によって、厳密に半数に分けることができなくても、上記のフローを用いることにより、おおよそ均等に割り当てることができる。その結果、生成されるデータの乱数性が向上する。
【０３４３】
図１４の判定値を設定するステップＳ１０５において、図１５に示されるフローが実行される場合、図１４のステップＳ１０６からＳ１１０が省略されてもよい。この場合、例えば、図１５のステップＳ２０１から２０３、ステップＳ２０７、またはステップＳ２１６で“０”または“１”が割り当てられたデータが、図１４のステップＳ１１１においてマスクデータレジスタ１３へ格納されてもよい。言い換えると、図１４のステップＳ１０６からＳ１１０は、図１５のステップＳ２０１から２０３、ステップＳ２０７、およびステップＳ２１６のいずれかであってもよい。
【０３４４】
判定値の設定は、データ生成回路２５の外部で実行されてもよい。例えば、データ生成装置１０が不揮発性記憶装置を含む場合、当該不揮発性記憶装置を製造する製造装置が、図１５に示されるフローを実行してもよい。その場合、カウント値が製造装置に出力され、製造装置が判定値を決定し、判定値がデータ生成回路２５内の判定値レジスタの３２に格納される。これにより、不揮発性記憶装置の回路規模の増大が抑制されうる。
【０３４５】
図１５に示されるフローは、複数のカウント値の中間値を判定値とする例を示しているが、判定値は中間値以外の値に設定されてもよい。判定値は、例えば、生成されるデータのランダム性が損なわれない範囲において、任意の値であってもよい。例えば、データ生成装置１０が、ランダム性評価用の演算回路を備えてもよい。この場合、演算回路が各仮判定値に基づいて生成されたデータのランダム性を評価し、それらのデータのうち最もランダム性が高い仮判定値が、判定値として決定されてもよい。
【０３４６】
例えば、データ生成装置１０が不揮発性記憶装置を含む場合、当該不揮発性記憶装置を製造する製造装置が、ランダム性評価用の演算回路を備えてもよい。
【０３４７】
＜ブロック毎にブロックデータを生成する動作例＞
本発明者らは、抵抗値情報を取得するメモリセルアレイを所定のブロック毎に区分けし、該ブロック毎に“０”および“１”の割り当てを行って、データを生成する方法を見出した。これにより、例えば、生成されるデータのサイズが大きい場合であっても、ランダム性の高いデータが生成されうる。
【０３４８】
図１９の検定例２は、図１４に示される方法により生成された２５６ｋｂｉｔのデータの、ランダム性の検定結果を例示している。検定例２は、生成されたデータのデータサイズが異なること以外、検定例１と同じ条件で生成された。検定例２の結果は、データサイズが大きい場合に、ランダム性の検定において不合格となるデータが生成されるおそれがあることを示している。
【０３４９】
この原因として、本発明者らは、次のように推察した。データサイズが大きくなった場合、メモリセルアレイ内でメモリセルの抵抗値分布に偏りが生じ、その結果、生成されるデータのランダム性が低下しうる。抵抗値分布の偏りは、例えば、製造上の要因、および／または、デバイスの構造上の要因により発生しうる。これらの具体的な例としては、抵抗変化層の膜厚のばらつき、加工サイズのばらつき、ならびに、抵抗変化素子につながる配線抵抗の違いなどが挙げられる。そこで、本発明者らは、メモリセルアレイを、複数のワード線毎に、１つの領域として区分けして、領域毎のデータについて“１”と“０”の個数を調べた。図１６は、各領域における“１”の個数と“０”との個数の割合を示す。図１６に示されるように、“１”の個数と“０”の個数との割合は、メモリセルアレイ内の場所によって大きく異なった。具体的には、書き込み回路１４とメモリセルとの間に延びるビット線の距離が長いメモリセルほど、言い換えれば、書き込み回路１４からより遠い位置にあるワード線に接続されたメモリセルほど、抵抗値が下がりにくかった。そのため、書き込み回路１４から遠い領域において“０”の個数が多くなった。
【０３５０】
そこで、本発明者らは、図１７に示されるように、データ生成のための抵抗値情報が取得される領域ＢＴを、複数のブロックＢ１、Ｂ２、・・・ＢＸに分けて、ブロック毎に判定値ｄ１、ｄ２、・・・ｄｘを設定する方法を見出した。これにより、“１”の個数と“０”の個数との割合がメモリセルアレイ内での位置により異なるときであっても、ランダム性の高い複数のブロックデータが生成されうる。これらのブロックデータが用いられることにより、ランダム性の高い大きなデータが生成されうる。
【０３５１】
ここで、ブロックは複数のメモリセルから構成されればよく、その分割方法は任意である。ブロックは、例えば、物理アドレス上で互いに隣接する一領域であってもよく、論理アドレス上で互いに隣接する一領域であってもよい。例えば、少なくとも１つのワード線、または、少なくとも１つのビット線に共通して接続される複数のメモリセルが、１つのブロックを構成してもよい。
【０３５２】
図１８は、第１実施例のデータ生成装置１０によるデータ生成の動作例を示すフローチャートである。以下、図１４と重複部分については、適宜説明が省略される場合がある。
【０３５３】
ステップＳ３０１において、電気的ストレスの印加を指示するコマンドと、電気的ストレスを印加すべきアドレスと、ブロックデータのサイズとが、データ生成装置１０の外部から入力される。
【０３５４】
ステップＳ３０２において、電気的ストレスを印加すべき複数のブロックのうち、最初のブロックに含まれる複数のメモリセルのアドレスが選択される。
【０３５５】
ステップＳ３０３において、書き込み回路１４は、選択されたブロック内の全メモリセルに対し、データ生成用電気的ストレスを印加する。
【０３５６】
ステップＳ３０４において、読み出し回路１１が第３読み出しモードで、ブロック内の複数のメモリセルのカウント値が読み出され、これらがカウント値レジスタ３０に格納される。
【０３５７】
ステップＳ３０５において、判定値が設定される。判定値は、例えば、図１５を参照しつつ説明された方法によって設定されてもよい。
【０３５８】
ステップＳ３０６において、データ生成回路２５は、カウント値レジスタ３０に格納されている各メモルセルのカウント値と、判定値とを比較する。カウント値が判定値より大きい場合は、“０”が割り当てられる（ステップＳ３０７）。カウント値が判定値以下の場合は、“１”が割り当てられる（ステップＳ３０８）。ステップＳ３０６〜Ｓ３０８の処理は、ブロック内のカウント値が全て判定されるまで繰り返される（ステップＳ３０９〜Ｓ３１０）。
【０３５９】
１つのブロック内の全メモリセルに対するブロックデータの生成が終わったら、次のブロックに対して、ステップＳ３０２〜Ｓ３１０の処理が同様に行われる（ステップＳ３１１〜Ｓ３１２）。全てのブロックに対して同様の処理が繰り返し行われた後、データの生成が終了する（エンド）。なお、当該方法により得られるデータは、例えば、全てのブロックデータを順次つなげることによって生成されてもよいし、その他の方法により生成されてもよい。
【０３６０】
図１９の検定例３は、図１８に示される方法により生成された２５６ｋｂｉｔのデータのランダム性の検定結果を例示している。検定例３のデータは、４ｋｂｉｔのブロック毎に、ブロックデータが生成された。検定例３の示すとおり、生成されたデータは、ランダム性の各テスト項目をＰａｓｓしており、高いランダム性を有していた。
【０３６１】
ブロックのサイズは、４ｋｂｉｔに限定されない。ただし、ブロックのサイズが小さすぎる場合、読み出し回路１１の分解能によっては、“１”および“０”の個数がほぼ均等となるような割り当てが困難になるおそれがある。ブロックのサイズが大きすぎる場合、ブロック内での抵抗値分布の偏りが生じるおそれがある。また、ブロックのサイズが大きすぎる場合、カウント値レジスタが大容量化し、回路規模が大きくなるおそれがある。以上の観点から、ブロックのサイズは適切に選択されうる。例えば、ブロックのサイズは、１ｋｂｉｔ以上１０ｋｂｉｔ以下であってもよい。
【０３６２】
＜ブロックデータの検定と電気的ストレスの印加＞
抵抗値の分布を広げるために抵抗値情報を取得する前に対象となるメモリセルに電気的ストレスが印加される場合、所定回数（例えば１回）の印加では、抵抗値の低下が不十分だったり、抵抗値の分布が十分広がらなかったりする場合がある。
【０３６３】
そのような抵抗値情報から生成されるブロックデータは、ランダム性が低くなるおそれがあり、ひいては全体のデータのランダム性を低下させるおそれがある。
【０３６４】
これに対して、本発明者らは、ブロック内でのメモリセルの抵抗値分布に偏りが生じた場合に、電気的ストレスを印加することによって、これを改善する方法を見出した。
【０３６５】
図２０は、ブロックデータの検定と電気的ストレスの印加を行う動作の一例を示すフローチャートである。
【０３６６】
図２０におけるステップＳ４０１からＳ４０４までは、図１８を参照しつつ説明されたステップＳ３０１からＳ３０４までと同様であるため、説明が省略される。
【０３６７】
ここでは、読み出し回路１１で出力できるカウント値の上限値が２５５である例について説明される。
【０３６８】
ステップＳ４０５において、カウント値が上限値“２５５”であるものの個数と、ブロックに含まれるカウント値の総個数の半分とが比較される。カウント値が２５５であるものの個数がブロックに含まれるカウント値の総個数の半数より多い場合、ステップＳ４０３に戻り、ブロック内のメモリセルに電気的ストレスが再度印加される。ステップＳ４０３からＳ４０５は、カウント値が２５５であるものの個数が、ブロックのメモリセルの総数の半分以下になるまで繰り返し行われる。ステップＳ４０５において再印加される電気的ストレスは、例えば、１回目に印加されたデータ生成用電気的ストレスと同等の電気的ストレスであってもよい。
【０３６９】
図２０のステップＳ４０６以降は、図１８のＳ３０５以降と同様であるため、説明が省略される。
【０３７０】
かかる動作例では、一部のブロックにおいて、同一の電気的ストレス条件で抵抗値が下がらないメモリセルが半数以上あった場合に、そのブロックに電気的ストレスが複数回印加されることで、抵抗値の偏りが低減される。その結果、ステップＳ４０６以降において、“１”の個数と“０”の個数とがおおよそ均等に割り当てられうる。よって、データのランダム性が向上しうる。また、全領域に複数回、データ生成用電気的ストレスが印加される方法に比べて、処理時間が大幅に短縮されうる。
【０３７１】
＜累計個数の差を考慮した判定値の設定＞
読み出し回路１１の分解能によっては、図１８および図１５に示されるフローを用いても、“１”の個数と“０”の個数とが厳密には均等にならない場合がある。そのため、ブロック内ではわずかな偏りであっても、それが多数のブロックにおいて発生すると、それらが全体では大きな偏りになる場合がある。そのため、データのサイズが非常に大きい場合に、データの乱数性が低下するおそれがある。
【０３７２】
これに対して、本発明者らは、“１”の累計個数と“０”の累計個数の差が０に近づくように、判定値を設定する方法を見出した。これにより、生成されるデータのランダム性がより向上しうる。
【０３７３】
図２１は、判定値の設定の動作例を示すフローチャートである。図２１に示される動作は、例えば、図１８のステップＳ３０５、または、図２０のステップＳ４０６において実行されうる。
【０３７４】
図２１は、“１”および“０”それぞれの累計個数を考慮することにより、ブロック毎に設定される判定値を調整する動作の一例である。
【０３７５】
以下の説明において、「中間値」とは、例えば、図１５を参照しつつ説明した動作により導出される判定値とする。
【０３７６】
ステップＳ５０１において、データ検定回路は、仮判定値ｄＭとして中間値を設定する。具体的には、判定値レジスタ３２に仮判定値ｄＭが一時的に記憶される。例えば、図１５に示されるフローで導出された中間値が“１４８”であった場合、仮判定値ｄＭとして“１４８”が設定される。
【０３７７】
ステップＳ５０２において、比較器３１は、仮判定値ｄＭと各カウント値とを比較し、カウント値が仮判定値ｄＭより小さい場合には“１”を、カウント値が仮判定値ｄＭ以上である場合には“０”を割り当てる。その後、累算器３４は、“１”の個数から“０”の個数を引いた個数差Ｍを、累算器３４内のレジスタに一時的に記憶する。
【０３７８】
ステップＳ５０３において、データ検定回路は、仮判定値ｄＭから１を引いたものを仮判定値ｄＬとして設定する。具体的には、判定値レジスタ３２に仮判定値ｄＬが一時的に記憶される。例えば、仮判定値ｄＭが“１４８”であった場合は、仮判定値ｄＬとして“１４７”が設定される。
【０３７９】
ステップＳ５０４にて、比較器３１は、仮判定値ｄＬと各カウント値とを比較し、カウント値が仮判定値ｄＬより小さい場合には“１”を、カウント値が仮判定値ｄＬ以上である場合には“０”を割り当てる。その後、累算器３４は、“１”の個数から“０”の個数を引いた個数差Ｌを、累算器３４内のレジスタに一時的に記憶する。
【０３８０】
例えば、仮判定値ｄＭで判定した時の個数差Ｍが０個の場合、仮判定値ｄＬで判定したときの個数差Ｌは負となる。例えば、仮判定値ｄＭで判定した時の個数差Ｍが正であった場合、仮判定値ｄＬで判定したときの個数差Ｌは、０または負となる。
【０３８１】
ステップＳ５０５からＳ５０９において、データ検定回路３３は、過去にブロックデータが生成された少なくとも１つの他ブロックにおける“１”の累計個数と“０”の累計個数との差を考慮し、現在の対象となっているブロックにおける判定値を決定する。他ブロックにおける“１”の累計個数と“０”の累計個数との差は、例えば、他ブロックにおける“１”の累計個数から、他ブロックにおける“０”の累計個数を差し引いた値である。なお、他ブロックにおける“１”の累計個数と“０”の累計個数との差は、各ブロックにおける“１”の個数と“０”個数との差を複数のブロック間で累計したものと等しい。
【０３８２】
ステップＳ５０５からＳ５０９において、対象ブロックにおける個数差と、他ブロックにおける累計個数の差との和が０に近づくように、対象ブロックの判定値が決定される。これにより、過去に生成されたブロックデータおよび次に生成するブロックデータにおける“１”の累計個数と“０”の累計個数とがほぼ等しくなる。
【０３８３】
図２１に示す例では、他ブロックの累計個数の差が＋１０以上である場合に、仮判定値ｄＬが、現在対象とするブロックの判定値に決定される。対象ブロックの個数差Ｌは０または負である。そのため、対象ブロックの個数差Ｌが負である場合、対象ブロックおよび他ブロックにおける累計個数の差が０に近づく。対象ブロックの個数差Ｌが０である場合、対象ブロックおよび他ブロックにおける累計個数の差のさらなる増大が抑止される。
【０３８４】
例えば、過去にブロックデータが生成された他のブロックにおける累計個数の差が＋１２個であり、対象ブロックの個数差Ｌが−３個である場合を想定する。図２１に示すフローによれば、この場合、ステップＳ５０５から、Ｓ５０６を経て、ステップＳ５０７に進む。その結果、対象ブロックと他のブロックにおける累計個数の差は、＋１２−３=＋９となる。
【０３８５】
図２１に示す例では、他ブロックの累計個数の差が−１０以下である場合に、仮判定値ｄＭが、現在対象とするブロックの判定値に決定される。対象ブロックの個数差Ｍは０または正である。そのため、対象ブロックの個数差Ｍが正である場合、対象ブロックおよび他ブロックにおける累計個数の差が０に近づく。対象ブロックの個数差Ｍが０である場合、対象ブロックおよび他ブロックにおける累計個数の差のさらなる減少が抑止される。
【０３８６】
例えば、過去にブロックデータが生成された他のブロックにおける累積個数の差が−１５であり、対象ブロックの個数差Ｍが＋４個である場合を想定する。図２１に示すフローによれば、この場合、ステップＳ５０５から、Ｓ５０６を経て、ステップＳ５０８に進む。その結果、対象ブロックおよび他のブロックにおける累計個数の差は、−１５＋４=−１１となる。
【０３８７】
図２１に示す例では、他ブロックの累計個数の差の絶対値が１０未満の場合、個数差Ｍまたは個数差Ｌのうちその絶対値が小さい方の仮判定値が、現在対象とするブロックの判定値に決定される。例えば、個数差Ｍの絶対値が個数差Ｌの絶対値よりも小さいとき、仮判定値ｄＭが対象ブロックの判定値に決定される。あるいは、個数差Ｌの絶対値が個数差Ｍの絶対値よりも小さいとき、仮判定値ｄＬが対象ブロックの判定値に決定される。
【０３８８】
例えば、個数差Ｍが“＋９”、個数差Ｌが“−３”、他ブロックの累計個数の差が“＋８”である場合を想定する。図２１に示すフローによれば、この場合、ステップＳ５０５からステップＳ５０９に進む。その結果、対象ブロックおよび他ブロックにおける累積個数の差は、＋８−３=＋５となる。
【０３８９】
図２１に示されるフローにおいて、対象ブロックにおける“１”と“０”の個数差の絶対値が最小になるような仮判定値が、判定値として決定されるとは限らない。しかし、過去に生成されたブロックデータにおける累計個数の差の絶対値が１０個以上となった場合に、当該累計個数の差の絶対値が減るような仮判定値が、判定値として決定される。
【０３９０】
ステップＳ５１０において、決定された判定値が、判定値レジスタ３２に記憶される。
【０３９１】
その後、例えば、図１８のステップＳ３０６以降、または、図２０のステップＳ４０７以降のフローにしたがって、決定された判定値に基づいて、対象ブロックのブロックデータが生成されてもよい。生成されたブロックデータは、累算器３４にも出力されてもよい。累算器３４は、当該ブロックデータの“１”と“０”の個数を、これまで累算された“１”と“０”の累計個数に、それぞれ加えてもよい。
【０３９２】
上記の例では、これまでに生成された複数のブロックデータを含む全体において“０”の累計個数と“１”の累計個数とに偏りが生じないように、各ブロックの判定値が、順次決められる。そのため、最終的に生成されるデータのランダム性が向上しうる。
【０３９３】
図２３に示される検定例４は、図１８の方法により生成された５１２ｋｂｉｔのデータのランダム性の検定結果を例示している。参考のため、図２３には、同様の方法により生成された２５６ｋｂｉｔのデータのランダム性を示す検定例３が示されている。図２３に示される検定例３と、図１９に示される検定例３とは同じである。検定例４に示されるように、データのサイズが大きくなると、“０”の個数と“１”の個数との差が大きくなった。一方、図２３に示される検定例５は、図２１の方法により生成された５１２ｋｂｉｔのデータのランダム性の検定結果を例示している。検定例５に示されるように、図２１の方法によれば、データのサイズが大きくなっても、“０”の個数と“１”の個数との差の増大が抑制された。その結果、検定例５のデータは、“０”の個数と“１”の個数との差からランダム性を検証する一次度数検定において合格した。すなわち、図２１の方法により、データのランダム性が向上しうることが分かった。
【０３９４】
＜判定値の補正＞
図１５で設定される判定値は、１次元度数検定に合格する範囲内であれば、中間値以外の値であってもよい。例えば、図１５において、個数差が０ではない所定の値に近くなるように、判定値が設定されてもよい。
【０３９５】
例えば、“１”の個数と“０”の個数とに、それぞれオフセット値α、β(整数値)が加算されてもよい。すなわち、“１”の個数にオフセット値αを足した値と、“０”の個数にオフセット値βを足した値との差が０に近くなるように、判定値が設定されてもよい。
【０３９６】
これにより、例えば、連検定および最長連検定等の合格率が高まりうる。
【０３９７】
かかる判定値の補正は、例えば、次のような場合に適用されうる。
【０３９８】
図１５および図２１の方法で生成させた５１２ｋｂｉｔのデータは、図２３の検定例５に示されるように、連検定、および、ブロック単位の最長連検定において不合格であった。
【０３９９】
これに対して、本発明者らは、判定値を補正することで、連検定、および、ブロック単位の最長連検定の合格率が高まることを見出した。
【０４００】
図２２は、図１５および図２１の方法で生成された５１２ｋｂｉｔのデータに対して、単位ブロック内の“１”の最長連の長さを調べた結果を示している。例えば、ブロックデータ“１１１００”における最長連は“１１１”であり、ブロックデータ “１０１１０”における最長連は“１１”である。図２２には、判定値を補正せずにデータを生成した場合の結果と、判定値を補正してデータを生成した場合の結果と、ランダム性の高いデータにおける理論値における、単位ブロック内の“１”の最長連の長さの度数割合を示している。
【０４０１】
図２２に示すように、判定値を補正せずに生成させたデータでは、理論値に対して、最長連が短いブロックの頻度が高く、最長連が長いブロックの頻度が低かった。一方、単位ブロック内において“１”の個数が“０”の個数よりも多くなるように判定値を補正して生成させたデータでは、補正なしのデータに比べて、理論値に近い分布を示した。これは、補正された判定値に基づいて“０”または“１”の割り当てをした結果。“１”に割り当てられるメモリセルが多くなり、それに伴って、“１”の連が長くなりやすくなったためと考えられる。
【０４０２】
図２３に示される検定例５は、判定値を補正せずに生成されたデータにおけるランダム性の検定結果を例示している。検定例６は、判定値を補正して生成されたデータにおけるランダム性の検定結果を例示している。検定例６では、１つのブロック内の“１”の個数が“０”の個数より８個多くなるようにオフセット値が設定された（α＝８、β＝０）。
【０４０３】
図２３に示すように、検定例６では、検定例５に比べて“1”の個数と“０”の個数との差が増大したものの、全ての検定項目において合格した。すなわち、判定値に所定のオフセットを設定することにより、ランダム性を向上させることができる。
【０４０４】
なお、オフセット値の具体的な値は、上記の例に限定されるわけでない。オフセット値は、一次元度数検定が不合格とならない範囲内で、任意の値に設定されうる。
【０４０５】
＜データの書き込み＞
データ生成装置１０において、生成されたデータは、メモリセルアレイ２０に書き込まれてもよい。
【０４０６】
例えば、生成されたデータは、メモリセル２１が初期状態であるか否かの違いを利用してメモリセルアレイ２０に書き込まれてもよい。この場合、例えば、マスクデータレジスタ１３に記憶されたデータに基づいて、書き込み回路１４は、“０”に対応するメモリセル２１にのみ、フォーミングストレスを印加してもよい。さらに、書き込み回路１４は、“１”に対応するメモリセル２１に、初期抵抗値範囲内でメモリセル２１の抵抗値を上昇させる電圧パルスを印加してもよい。
【０４０７】
例えば、生成されたデータは、メモリセル２１の抵抗値が第１抵抗値範囲と第２抵抗値範囲のいずれにあるかの違いを利用してメモリセルアレイ２０に書き込まれてもよい。この場合、書き込み回路１４は、各メモリセル２１に対し、第２電気的ストレスおよび第１電気的ストレスのいずれか一方を印加してもよい。
【０４０８】
＜製造ばらつきを考慮してデータ生成用電気的ストレスを印加する方法＞
図１４のステップＳ１０３、図１８のステップＳ３０３、図２０のステップＳ４０３において、データ生成用電気的ストレスの種々の条件は、製造ばらつきを考慮して設定されてもよい。製造ばらつきの例としては、抵抗変化層の厚みのばらつき、ウエハ面内での欠陥のばらつき、および、ロット間の製造ばらつき等が挙げられる。これらのばらつきにより、複数のメモリセルアレイに同一の電気的ストレスが印加された場合であっても、抵抗値の分布が大きく異なる場合がある。その結果、例えば、乱数データの生成に支障をきたすおそれがある。
【０４０９】
例えば、メモリセルアレイ２０は、データ生成のための抵抗値情報が読み出されるデータ生成用領域とは別に、テスト用の複数のメモリセルを含むテスト用領域を備えてもよい。テスト用のメモリセルは、例えば、データ生成用のメモリセルとほぼ同等の特性を有する。データ生成用のメモリセルに対してデータ生成用電気的ストレスが印加される場合、当該電気的ストレスの種々の条件は、テスト用領域から取得された複数の抵抗値情報に基づいて決定されてもよい。例えば、それらの条件は、テスト用領域から取得された複数の抵抗値情報の中間値に基づいて決定されてもよい。テスト用領域のサイズは、例えば、数１００ｂｉｔから数ｋｂｉｔである。テスト用のメモリセルには、仮の電気的ストレスが印加されたものであってもよい。
【０４１０】
例えば、理想的な抵抗値分布を有するメモリセルアレイから取得された複数の抵抗値情報の中間値が、予め、基準中間値として設定されていてもよい。そして、データ生成用電気的ストレスの種々の条件は、対象とするメモリセルアレイ２０から取得される複数の抵抗値情報の中間値が基準中間値に近づくように、調節されてもよい。
【０４１１】
これにより、各データ生成装置のメモリセルアレイの特性がばらつく場合であっても、それらは、高いランダム性を有するデータを生成できる。
【０４１２】
テスト用領域は、対象となるメモリセルアレイ内になくてもよい。テスト用領域は、例えば、ウエハの状態において、複数のメモリセルアレイ同士の間のスクライブ領域に形成されていてもよい。
【０４１３】
データ生成用のメモリセルに対してデータ生成用電気的ストレスが印加された後に、テスト用領域に、何らかの情報が記録されてもよい。テスト用領域は、例えば、ＩＤ情報が記録されてもよい。
【０４１４】
電気的ストレスの種々の条件を設定するための動作は、データ生成装置１０の製造装置が実行してもよい。これにより、データ生成装置１０の回路規模を増加させることなく、電気的ストレスの種々の条件が設定されうる。
【０４１５】
上記説明から、当業者にとっては、本実施形態の多くの改良や他の実施形態が明らかである。従って、上記説明は、例示としてのみ解釈されるべきである。本開示の精神を逸脱することなく、その構造および／または機能の詳細が実質的に変更されうる。
【０４１６】
なお、本開示において、各ブロック図に示される機能ブロックの少なくとも一部は、半導体装置、半導体集積回路（ＩＣ）、ＬＳＩ（large scale integration）、または、それらが組み合わされた電子回路によって実行されてもよい。ＬＳＩまたはＩＣは、１つのチップに集積されていてもよいし、複数のチップが組み合わされていてもよい。例えば、各機能ブロックは、１つのチップに集積されてもよい。ここでは、ＬＳＩやＩＣは、集積の度合いに応じて、例えば、システムＬＳＩ、ＶＬＳＩ(very large scale integration)、もしくはＵＬＳＩ(ultra large scale integration)と呼ばれうる。
【産業上の利用可能性】
【０４１７】
本開示の一態様は、例えば、乱数発生器、ＩＣカード、暗号システム、通信システム、データサーバー、車載システム等に適用されうる。
【符号の説明】
【０４１８】
９  外部インターフェース
１０  データ生成装置
１１  読み出し回路
１３  マスクデータレジスタ
１４  書き込み回路
１５  制御回路
１６  アドレス入力回路
１７  カラムデコーダ回路
１８  ロウデコーダ回路
２０  メモリセルアレイ
２１  メモリセル
２２  メモリ本体部
２３  抵抗変化素子
２４  トランジスタ
２５  データ生成回路
３０  カウント値レジスタ
３１  比較器
３２  判定値レジスタ
３３  データ検定回路
３４  累算器
３５  ブロックデータ検定回路
９０  メモリセルアレイ
９１  メモリセル
９２  読み出し回路
９３  データ生成回路
９４  電圧印加回路
１００  データ生成装置
１１０  トランジスタ
１１４  第１主端子
１１６  制御端子
１１８  第２主端子
１２０  抵抗変化素子
１２４  第１電極
１２６  抵抗変化層
１２８  第２電極
１２９  定電流源
１３０  レファレンス電圧発生回路
１３１  ドライバ
１３２  レベル比較器
１３４  カウンタ
１３５  比較器
１３６  第２閾値レジスタ
１３７  第１閾値レジスタ
１４０  定電流源
【図１】
0006388235.tif 000024
【図２】
0006388235.tif 000025
【図３】
0006388235.tif 000026
【図４】
0006388235.tif 000027
【図５】
0006388235.tif 000028
【図６】
0006388235.tif 000029
【図７】
0006388235.tif 000030
【図８】
0006388235.tif 000031
【図９】
0006388235.tif 000032
【図１０】
0006388235.tif 000033
【図１１】
0006388235.tif 000034
【図１２】
0006388235.tif 000035
【図１３】
0006388235.tif 000036
【図１４】
0006388235.tif 000037
【図１５】
0006388235.tif 000038
【図１６】
0006388235.tif 000039
【図１７】
0006388235.tif 000040
【図１８】
0006388235.tif 000041
【図１９】
0006388235.tif 000042
【図２０】
0006388235.tif 000043
【図２１】
0006388235.tif 000044
【図２２】
0006388235.tif 000045
【図２３】
0006388235.tif 000046