(57)【要約】【課題】任意のばらつきに対応することが可能な半導体装置を提供する。【解決手段】半導体装置１０は、第１記憶状態に応じた第１データを出力するメモリセルと第２記憶状態に応じた第２データを出力するメモリセルを含む複数のメモリセル１１、複数の第１データの中間値を決定する第１中間値決定回路１２、複数の第２データの中間値を決定する第２中間値決定回路１３、第１中間値決定回路１２及び第２中間値決定回路１３のそれぞれの決定結果に基づき、第１及び第２記憶状態を識別するしきい値を決定するしきい値決定回路１４、しきい値決定回路１４の決定結果と複数のメモリセルからの読み出し結果に基づき、複数のメモリセルの記憶状態を識別する識別回路１５を備える。【選択図】図１
2017107620.tif 000002
【特許請求の範囲】
【請求項１】
第１記憶状態に応じた第１データを出力するメモリセルと第２記憶状態に応じた第２データを出力するメモリセルを含む複数のメモリセルと、
前記複数の第１データの中間値を決定する第１中間値決定回路と、
前記複数の第２データの中間値を決定する第２中間値決定回路と、
前記第１及び第２中間値決定回路のそれぞれの決定結果に基づき、前記第１及び第２記憶状態を識別するしきい値を決定するしきい値決定回路と、
前記しきい値決定回路の決定結果と前記複数のメモリセルからの読み出し結果に基づき、前記複数のメモリセルの記憶状態を識別する識別回路と、
を備える半導体装置。
【請求項２】
前記中間値は、前記複数の第１または第２データの分布の中心値である、
請求項１に記載の半導体装置。
【請求項３】
前記しきい値は、前記第１データの分布の裾と前記第２データの分布の裾が重なる部分の値である、
請求項２に記載の半導体装置。
【請求項４】
前記中間値は、前記複数の第１または第２データの平均値である、
請求項１に記載の半導体装置。
【請求項５】
前記複数のメモリセルは、前記第１記憶状態のメモリセルと前記第２記憶状態のメモリセルを含むように符号化されたデータが書き込まれている、
請求項１に記載の半導体装置。
【請求項６】
前記符号化されたデータは、前記第１記憶状態及び前記第２記憶状態に対応するとともに誤り検出または誤り訂正を行う冗長ビットを含む、
請求項５に記載の半導体装置。
【請求項７】
前記メモリセルごとに、前記メモリセルから読み出される信号を複数の基準電圧と比較し、前記第１または第２データを出力する複数のアナログ比較器を備える、
請求項１に記載の半導体装置。
【請求項８】
前記第１または第２中間値決定回路は、
前記メモリセルごとの複数のアナログ比較器の出力をカウントする複数のカウンタと、
前記カウントした値を２倍にする乗算器と、
前記２倍にした値と前記第１または第２データの総数とを比較するバイナリ比較器と、
前記バイナリ比較器の比較結果に基づき、前記中間値を出力する出力回路と、
を備える、請求項７に記載の半導体装置。
【請求項９】
前記メモリセルから読み出される信号を複数の基準電圧と比較し、前記第１または第２データを出力する複数のアナログ比較器と、
前記複数のメモリセルと前記複数のアナログ比較器との接続を切り替える切り替えスイッチと、
前記複数のアナログ比較器の出力をラッチするラッチ回路と、
を備える、請求項１に記載の半導体装置。
【請求項１０】
前記決定されたしきい値を記憶するしきい値記憶回路を備え、
前記識別回路は、前記記憶されたしきい値に基づいて前記記憶状態を識別する、
請求項１に記載の半導体装置。
【請求項１１】
前記識別回路は、前回の読み出し動作で記憶されたしきい値に基づいて前記記憶状態を識別する、
請求項１０に記載の半導体装置。
【請求項１２】
前記しきい値決定回路は、電源投入時、一定期間ごと、または、外部環境が変化した場合に、前記しきい値を決定する、
請求項１に記載の半導体装置。
【請求項１３】
第１記憶状態に応じた第１データを出力する不揮発メモリセルと第２記憶状態に応じた第２データを出力する不揮発メモリセルを含む複数の不揮発メモリセルと、
前記複数の第１データの中間値を決定する第１中間値決定回路と、
前記複数の第２データの中間値を決定する第２中間値決定回路と、
前記第１及び第２中間値決定回路のそれぞれの決定結果に基づき、前記第１及び第２記憶状態を識別するしきい値を決定するしきい値決定回路と、
前記しきい値決定回路の決定結果と前記複数の不揮発メモリセルからの読み出し結果に基づき、前記複数の不揮発メモリセルの記憶状態を識別する識別回路と、
を有する不揮発メモリ。
【請求項１４】
前記不揮発メモリセルは、抵抗変化型メモリセルであり、
前記第１及び第２データは抵抗値である、
請求項１３に記載の不揮発メモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置及び不揮発メモリに関し、例えば、メモリセルを有する半導体装置及び不揮発メモリに関する。
【背景技術】
【０００２】
近年、電気的に書き換え可能な不揮発メモリ（不揮発性記憶装置）が広く利用されている。不揮発メモリの一つであるフラッシュメモリは、パーソナルコンピュータやデジタルカメラ、携帯電話など多くの電子機器に内蔵される記憶装置または外付けの記憶装置として利用されている。また、他の不揮発メモリであるＲｅＲＡＭ（resistance random access memory：抵抗変化型メモリ）は、電圧印加による抵抗の変化を利用しており、消費電力が小さく、高集積化が可能であり、かつ、読み出し速度が高速であるため、フラッシュメモリの代替として注目されている。
【０００３】
不揮発メモリに関連する技術として、例えば、特許文献１や２が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−２９７０８４号公報
【特許文献２】特開２００９−００９６８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
不揮発メモリでは、読み出すメモリセルのＯＮ／ＯＦＦ状態（例えば記憶データの１／０に対応する状態）を判定するためにしきい値が設定されている。特許文献１では、このしきい値の温度依存性に着目し、半導体チップ上の温度計で半導体チップの温度を測定し、メモリセルの温度特性に合わせてしきい値を適宜変化させている。
【０００６】
しかしながら、特許文献１のような関連する技術では、半導体チップの温度変化によるばらつきには対応できるものの、プロセスばらつきや電圧ばらつきなどの他のばらつきには対応できないという問題があった。
【０００７】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
一実施の形態によれば、半導体装置は、複数のメモリセル、第１中間値決定回路、第２中間値決定回路、しきい値決定回路、及び識別回路を備える。複数のメモリセルは、第１記憶状態に応じた第１データを出力するメモリセルと第２記憶状態に応じた第２データを出力するメモリセルを含む。第１中間値決定回路は、複数の第１データの中間値を決定し、第２中間値決定回路は、複数の第２データの中間値を決定する。しきい値決定回路は、第１及び第２中間値決定回路のそれぞれの決定結果に基づき、第１及び第２記憶状態を識別するしきい値を決定する。識別回路は、しきい値決定回路の決定結果と複数のメモリセルからの読み出し結果に基づき、複数のメモリセルの記憶状態を識別する。
【発明の効果】
【０００９】
前記一実施の形態によれば、任意のばらつきに対応することができる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１に係る半導体装置の概要構成を示す構成図である。
【図２】実施の形態１に係る半導体装置の特性分布を示す分布図である。
【図３】実施の形態１に係る不揮発メモリの構成例を示す構成図である。
【図４】実施の形態１に係るメモリセルの構成例を示す構成図である。
【図５】実施の形態１に係るメモリセルアレイの構成例を示す構成図である。
【図６】実施の形態１に係るメモリセル及びセンスアンプの構成例を示す構成図である。
【図７】実施の形態１に係る不揮発メモリの特性分布を示す分布図である。
【図８】実施の形態１に係る不揮発メモリの動作を示すフローチャートである。
【図９】実施の形態１の変形例１に係る不揮発メモリの特性分布を示す分布図である。
【図１０】実施の形態１の変形例２に係る不揮発メモリで使用する符号を示す表である。
【図１１】実施の形態１の変形例２に係る不揮発メモリで使用する符号を示す表である。
【図１２】実施の形態１の変形例３に係る中央値検出回路の構成例を示す構成図である。
【図１３】実施の形態１の変形例３に係る中央値検出回路の構成例を示す構成図である。
【図１４】実施の形態１の変形例３に係る中央値検出回路の構成例を示す構成図である。
【図１５】実施の形態２に係る不揮発メモリの動作の流れを示す図である。
【図１６】実施の形態２に係る不揮発メモリの動作の流れを示す図である。
【図１７】実施の形態３に係る不揮発メモリの構成例を示す構成図である。
【発明を実施するための形態】
【００１１】
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、ＣＰＵ、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１２】
（実施の形態１）
以下、図面を参照して実施の形態１について説明する。
【００１３】
＜実施の形態１の概要＞
図１は、本実施の形態に係る半導体装置の概要構成を示している。図１に示すように、本実施の形態に係る半導体装置１０は、複数のメモリセル１１、第１中間値決定回路１２、第２中間値決定回路１３、しきい値決定回路１４、識別回路１５を備えている。
【００１４】
複数のメモリセル１１は、第１記憶状態に応じた第１データを出力するメモリセルと第２記憶状態に応じた第２データを出力するメモリセルを含む。第１中間値決定回路１２は、複数の第１データの中間値を決定し、第２中間値決定回路１３は、複数の第２データの中間値を決定する。
【００１５】
しきい値決定回路１４は、第１中間値決定回路１２及び第２中間値決定回路１３のそれぞれの決定結果に基づき、第１及び第２記憶状態を識別するしきい値を決定する。識別回路１５は、しきい値決定回路１４の決定結果と複数のメモリセル１１からの読み出し結果に基づき、複数のメモリセル１１の記憶状態を識別する。
【００１６】
図２は、メモリセル１１の第１状態（第１データ）及び第２状態（第２データ）の分布の温度変化によるばらつきの例を示している。図２（ａ）は室温での分布を示し、図２（ｂ）は高温での分布を示しており、室温から高温に温度が変化すると、第１状態及び第２状態の分布がシフトする。このばらつきによるオフセットが予測できれば、マージンを小さくすることができる。そこで、本実施の形態では、第１データの中間値（例えば中心値や平均値）と第２データの中間値に基づきしきい値を決定する。つまり、分布のシフトに応じてしきい値をシフトさせる。これにより、温度変化に限らずその他のばらつきに対応してしきい値を設定することができ、小さなマージンで動作することが可能となる。
【００１７】
＜実施の形態１の不揮発メモリの構成＞
図３は、本実施の形態に係る不揮発メモリの構成例を示している。図３に示すように、本実施の形態に係る不揮発メモリ（半導体装置）１は、メモリセルアレイ１００と読み出し回路２００を備えている。
【００１８】
メモリセルアレイ１００は、不揮発メモリのメモリセルアレイであり、記憶するビットごとにメモリセル１０１、センスアンプ１０２、アナログ比較器１０３を備えている。メモリセルアレイ１００は、記憶するビットに応じた多数の不揮発のメモリセル１０１を有し、このうちのｎ個（ｎ＞２）のメモリセル１０１から同時にデータ読み出す。メモリセル１０１ごとに複数の基準電圧（ＶＲＥＦ）と比較するアナログ比較器１０３を備えることで複数のメモリセルから同時にデータを読み出すことができる。ここで、不揮発メモリ（メモリセルアレイ）に書き込まれるデータは元のｋビット（ｋ＜ｎ）のデータをエラー訂正符号（ＥＣＣ）に変換してｎビットとしたものとする。本実施の形態では、ｎビットの読み出しデータの中には必ずＯＮ状態（０または１の一方）のビットとＯＦＦ状態（０または１の他方）のビットが少なくとも１つは含まれるものとする。
【００１９】
例えば不揮発メモリが抵抗変化メモリ（ＲｅＲＡＭ）の場合、メモリセル１０１からはＯＮ状態またはＯＦＦ状態に応じた抵抗値が読み出される。各メモリセル１０１は、それぞれが別々のセンスアンプ１０２に接続される。センスアンプ１０２は、メモリセル１０１の抵抗値を読み出して、対応する電圧を出力する。ここでは入力の電流に反比例した電圧を出力するセンスアンプ１０２の例で説明する。つまりメモリセル１０１の抵抗値が高いほど流れる電流値が小さくなるので、センスアンプ１０２の出力電圧は高くなる。ここで、例えば電流を出力するセンスアンプ１０２や入力の電流に正比例した電圧を出力するセンスアンプ１０２を使用することも出来る。次にセンスアンプ１０２の出力をｍ個（ｍ＞２）のアナログ比較器１０３を用いてｍ個の基準電圧ＶＲＥＦ１〜ＶＲＥＦｍと比較することで、ｍビットの多値の比較結果として読み出される。ｎ個のメモリセル１０１からの多値のデータ出力は合計ｎ×ｍビットとなる。この値は読み出し回路２００のバッファへ送られる。
【００２０】
図３に示すように、読み出し回路２００は、バッファ２０１、中央値検出回路２０２、しきい値決定回路２０３、しきい値記憶回路２０４、データ選択回路２０５、デコーダ２０６を備えている。バッファ２０１は、各ビットのメモリセル１０１から読み出した抵抗値（比較結果）をバッファリングし、中央値検出回路２０２及びデータ選択回路２０５へ出力する。中央値検出回路２０２は、バッファ２０１を介して取得した複数のメモリセル１０１の抵抗値に基づいて、抵抗値の分布の中央値を検出する。
【００２１】
しきい値決定回路２０３は、検出した抵抗値の分布の中央値に基づいてしきい値を決定する。しきい値記憶回路２０４は、決定したしきい値を記憶する。データ選択回路２０５は、決定し記憶されたしきい値を用いて、バッファ２０１を介して取得したメモリセル１０１の抵抗値を判定し、ＯＮ／ＯＦＦ状態（記憶状態）を選択する。デコーダ２０６は、選択されたＯＮ／ＯＦＦ状態に基づいてデータを復号化する。
【００２２】
＜実施の形態１のメモリセルの構成及び動作＞
図４〜図６を用いて、メモリセルアレイを構成する不揮発メモリの一例として、抵抗変化型メモリＲｅＲＡＭの構成及び動作について説明する。なお、ここではＲｅＲＡＭについて説明するが、フラッシュメモリやＭＲＡＭ（磁気抵抗ＲＡＭ）、ＦｅＲＡＭ（強誘電体メモリ）など、その他不揮発メモリであってもよい。
【００２３】
図４は、ＲｅＲＡＭのメモリセルの構成及び動作示している。ＲｅＲＡＭのメモリセルは、抵抗変化素子の両端に正負の電圧を印加することで、低抵抗（ＯＮ）または高抵抗（ＯＦＦ）の２つの状態に変化し、この状態を保持することでメモリ素子として働く。
【００２４】
図４に示すように、メモリセル１０１は、抵抗変化素子ＲｃとセルトランジスタＴｒを備えている。抵抗変化素子Ｒｃは２端子素子であり、一端がＰＬ（プレート線）用端子に接続され、他端がセルトランジスタＴｒを介してＢＬ（ビット線）用端子に接続される。図４では、セルトランジスタＴｒのゲート電圧（ワード線ＷＬ電圧）はＨであり、セルトランジスタＴｒのＯＮ抵抗は抵抗変化素子Ｒｃの抵抗値より十分小さいものとする。抵抗変化素子ＲｃはＰＬ用端子とＢＬ用端子に印加する電圧の極性によって抵抗値が変化する。
【００２５】
例えば図４（ａ）のように、ＰＬ用端子に電圧Ｖｗ、ＢＬ用端子に電圧０Ｖを印加すると、抵抗変化素子Ｒｃの抵抗値が下がり、メモリセル１０１は低抵抗のＯＮ状態となる。図４（ｂ）のように、ＰＬ用端子に電圧０Ｖ、ＢＬ用端子に電圧Ｖｗを印加すると、抵抗変化素子Ｒｃの抵抗値が上がり、メモリセル１０１は高抵抗のＯＦＦ状態となる。メモリセル１０１からこの抵抗値を読み出すには、図４（ｃ）のように、ＢＬ用端子に電圧０Ｖ、ＰＬ用端子には電圧Ｖｗよりも小さいΔＶｗの電圧を印加する。このΔＶｗは抵抗変化素子Ｒｃの抵抗値が変化しない程度に小さい値とする。この時に抵抗変化素子Ｒｃに流れる電流を測定（センシング）することで、ＯＮまたはＯＦＦの状態を読み出すことが出来る。
【００２６】
図５は、この抵抗変化素子を組み込んだＲｅＲＡＭのメモリセルアレイ１００の一例である。メモリセルアレイ１００は、横方向にワード線ＷＬとプレート線ＰＬ、縦方向にビット線ＢＬが配置されており、これらの電圧の組み合わせで１つのメモリセルを選択する。図５は、メモリセルから抵抗値を読み出す時の印加電圧を示している。図５のように各配線にＨまたはＬまたはＬ＋ΔＬの電圧を印加することで、点線で囲んだメモリセル１０１ａが選択される。
【００２７】
ここで、図６のように、選択メモリセル１０１ａのプレート線ＰＬにセンスアンプ１０２を接続することで、メモリセルの抵抗値を読み出すことが出来る。図６では、センスアンプ１０２の入力部には定電圧源１２１を備えており、プレート線ＰＬの電圧はメモリセル１０１の抵抗に関わらず一定電圧となる。この時、メモリセル１０１の抵抗値に対応してセル電流Ｉｃｅｌｌが流れる。このＩｃｅｌｌは定電圧源１２１をそのまま通って、電流−電圧変換器１２２に入り、電流−電圧変換器１２２から電流値Ｉｃｅｌｌに対応する電圧ＶＡＭＰが出力される。この電圧ＶＡＭＰがアナログ比較器１０３に入力される。
【００２８】
＜実施の形態１の読み出し回路の動作＞
図７は、本実施の形態に係るメモリセル１０１に記憶されている抵抗値の発生確率の分布と基準電圧（比較器の基準電圧）の対応の例である。ＶＲＥＦ１〜ＶＲＥＦｍは抵抗値に対応する基準電圧である。以降ではＶＲＥＦｘ＜ＶＲＥＦｙ（ｘ＜ｙ）とする。２値記憶のメモリセル１０１では、抵抗値の分布が低抵抗のＯＮ抵抗（ＯＮ状態の抵抗値）の分布と高抵抗のＯＦＦ抵抗（ＯＦＦ状態の抵抗値）の分布となり、２つの分布にそれぞれピーク（中央）が存在する。図７では両者の分布はガウス分布を仮定し、しきい値の発生確率よりも高い領域をそれぞれＯＮ判定領域とＯＦＦ判定領域とする。本実施の形態では、以下に説明するように、ＯＮ判定領域とＯＦＦ判定領域の間の発生確率の低い領域にしきい値抵抗ＲＴＨを設定することで、メモリセル１０１のＯＮ状態とＯＦＦ状態を低いエラー確率で識別することが出来る。
【００２９】
図８のフローチャートは、本実施の形態に係る読み出し回路２００の動作を示している。図８に示すように、まず、読み出し回路２００は、メモリセルアレイ１００からデータを読み出す（Ｓ１０１）。上述したようにセンスアンプ１０２からメモリセル１０１の抵抗値に対応した電圧が出力され、アナログ比較器１０３からバッファ２０１を介してｎ個のｍビット比較結果が中央値検出回路２０２に入力される。
【００３０】
続いて、読み出し回路２００は、読み出したデータから低抵抗、高抵抗それぞれの抵抗分布を求める（Ｓ１０２）。中央値検出回路２０２は、バッファ２０１を介して入力された比較結果を図７のようにＯＮ判定領域に属するもの、ＯＦＦ判定領域に属するものとどちらにも属さないものに分ける。そして、中央値検出回路２０２は、ＯＮとＯＦＦ判定領域に属するものそれぞれの集合に対して中央値を求める。ここでは中央値を求めているが、その代わりに平均値（もしくはその他の中間値）を求めても良い。ここで求まった中央値は図７の分布においてＯＮ抵抗の分布とＯＦＦ抵抗の分布それぞれのピークの抵抗値を示すとみなすことが出来る。ここでガウス分布のような抵抗分布を仮定することで、ピーク（中央）の抵抗値から各分布の形状が分かる。例えば、温度・電圧・プロセス・ノイズなどの変動でＯＮ状態とＯＦＦ状態の分布が変化しても、実際のメモリセルを読み出して分布を求めることで、これらの変動要因を加味した分布を求めることが出来る。
【００３１】
続いて、読み出し回路２００は、求めた抵抗分布からしきい値を決定する（Ｓ１０３）。エラー確率を最小とできるのは図７において、ＯＮ状態とＯＦＦ状態の分布の裾の交差する抵抗値ＲＴＨである。そこで、ＯＮ状態とＯＦＦ状態の分布の中央値または平均値（もしくは中間値）から裾の交差する抵抗値を求めることで、エラー確率を最小とできるしきい値抵抗が分かる。しきい値決定回路２０３は、ＯＮ状態とＯＦＦ状態の中央値または平均値からしきい値抵抗ＲＴＨを決定する。しきい値を決定するには、例えば、ＯＮ状態とＯＦＦ状態の中央値または平均値（もしくは中間値）としきい値の抵抗値の対応を予めテーブルとして記憶しておくことで容易に実現できる。次に、その抵抗に最も近いしきい値電圧Ｖｒｅｆｃを選択し、しきい値決定回路２０３の出力とする。一度しきい値が決定すると、この値はしきい値記憶回路２０４に記憶される。
【００３２】
続いて、読み出し回路２００は、決定した新たなしきい値を用いてデータを読み出し（Ｓ１０４）、データを復号する（Ｓ１０５）。データ選択回路２０５は、バッファ２０１を介して取得したｎ個のｍビットデータそれぞれの中から、しきい値電圧Ｖｒｅｆｃに相当する入力値１ビットを選択し出力する（しきい値を超えているかどうか判定する）。データ選択回路２０５の出力はｎビットとなる。そして、デコーダ２０６は、ｎビットのデータをエラー訂正方式に従ってデコードしてｋビットのデータを復元する。
【００３３】
＜実施の形態１の効果＞
上記特許文献１では、チップの温度変化には対応できるものの、プロセスばらつきや電圧ばらつきには対応できないという問題があった。また、上記特許文献２では、メインとは別のリファレンス用のインデックスセルを読み出し、読み出したデータのフェイルビットの数に応じて読み出し電圧レベル（しきい値）を設定し、設定した電圧レベルによりメインのメモリセルのデータを読み出している。特許文献２では、メインのメモリセルとは別にリファレンス用のメモリセルが必要なためチップ面積が増大するという問題があり、また、メインとリファレンス用のメモリセルの間の特性ばらつきがあると、適切なしきい値を設定できないという問題がある。
【００３４】
本実施の形態では、上記のように不揮発メモリに記憶されているデータそのものからＯＮ／ＯＦＦ状態を判定するしきい値を決定する。このため温度・電圧・プロセス・ノイズなどの変動要因の影響を排除することが出来る。したがって、ＯＮとＯＦＦの値の違い、つまり読み出しマージンが小さい場合でも正確にデータを読み出すことが出来るので、エラー率を低減できる。また、実際にデータを記憶するメモリセルを使用してしきい値を設定するため、リファレンス用メモリセルが不要となることから、チップ面積の増大を抑え、特性ばらつきの影響も低減することができる。
【００３５】
（実施の形態１の変形例１）
図９は、実施の形態１の変形例１に係るメモリセル１０１の抵抗値の分布の例である。抵抗変化素子に記憶する抵抗値を、実施の形態１の図７のようなＯＮとＯＦＦの２値ではなく、変形例１の図９のように多値とすることも出来る。
【００３６】
図９は、メモリセル１０１が０，１，２，３の４値の状態を記憶する例である。この場合もセンスアンプ１０２の出力をｍ個（ｍ＞２）のアナログ比較器１０３を用いてｍ個の基準電圧ＶＲＥＦ１〜ＶＲＥＦｍと比較することで、ｍビットの多値の比較結果として読み出す。そして、０判定領域〜３判定領域のそれぞれに属する基準電圧毎に比較結果を集計して中央値または平均値を求め、その結果より、３つのしきい値抵抗ＲＴＨ０１、ＲＴＨ１２、ＲＴＨ２３を決定する。
【００３７】
（実施の形態１の変形例２）
実施の形態１では、ｎビットの読み出しデータの中には必ずＯＮ状態のものとＯＦＦ状態のものが少なくとも１つは含まれているものと想定していた。しかし、入力データが複数の２値データで構成されるとした場合に、この条件を必ず満たすとは限らない。そこで、変形例２では、入力データに対して一意に決まる符号を規定し、この符号には必ず０と１のデータが少なくとも１つは含まれているようにする。
【００３８】
この条件を満たすような符号の例を図１０に示す。図１０は（７，４ビット）ハミング符号を用いた例である。図１０で１６種の元データは４ビットで００００〜１１１１までの値を取る。元データには０のみまたは１のみで構成されるものがある。この符号に対して、冗長ビット３ビットを付加したものがハミング符号である。ここでは通常の冗長ビットではなく、冗長ビットをビット反転させたデータを付加している。このように生成させた符号は０と１のデータが少なくとも１つは含まれている。さらに、ハミング符号なので、１ビットのエラー訂正能力を持つので、信頼性を向上させることが出来る。
【００３９】
図１０では４ビットに対して３ビットを追加していたが、符号には必ず０と１のデータが少なくとも1つは含まれているようにするためには、図１１のように、４ビットに対して１ビットを追加すること（４−５ビット変換）でも可能である。ここでは、元の４ビットに対して、１〜３ビットのみで奇数パリティを計算し、それを５ビット目に追加している。ただし、この符号では、パリテイチェックのみが可能で、ハミング符号のようなエラー訂正能力を持たない。
【００４０】
変形例２では、例えば、不揮発メモリの書き込み回路にエンコーダ（不図示）を備え、エンコーダにおいて図１０や図１１の符号に符号化し、符号化したデータをメモリセルアレイに書き込む。また、読み出し回路２００のデコーダ２０６は、図１０や図１１の符号を元データに復号する。
【００４１】
（実施の形態１の変形例３）
図１２は、実施の形態１の変形例３に係る中央値検出回路の構成例である。中央値検出回路２０２の入力は、メモリセルアレイ１００のｎ個の各ビット毎にｍ個のアナログ比較器１０３の出力で、合計ｎ×ｍビットとなる。ここで、ｒビット目（１≦ｒ≦ｎ）のｑ番目（１≦ｑ≦ｍ）のアナログ比較器１０３の出力をＣＭＰｑ，ｒとする。図１２に示すように、中央値検出回路２０２は、ＯＮの分布とＯＦＦの分布それぞれの中央値を決定するためのＯＮ中央値検出回路２０２ａとＯＦＦ中央値検出回路２０２ｂを持つ。
【００４２】
図１２を参照すると、ＯＮ中央値検出回路２０２ａは１〜ｉ＋１番目のアナログ比較器１０３の出力ＣＭＰ１，１〜ＣＭＰｉ＋１，ｎを使用し、ＯＦＦ中央値検出回路２０２ｂはｊ−１〜ｍ番目のアナログ比較器１０３の出力ＣＭＰｊ−１,１〜ＣＭＰｍ，ｎを使用する。それぞれの中央値検出回路２０２ａと２０２ｂは、中央値としてＭＥＤＯＮ１〜ＭＥＤＯＮｉ＋１とＭＥＤＯＦＦｊ−１〜ＭＥＤＯＦＦｍを出力する。ＭＥＤＯＮ１〜ＭＥＤＯＮｉ＋１はＣＭＰ１，ｒ〜ＣＭＰｉ＋１，ｒに対応し、中央値となる１ビットのみがＨでそれ以外はＬとなる。ＭＥＤＯＦＦｊ−１〜 ＭＥＤＯＦＦｍはＣＭＰｊ−１,ｒ〜ＣＭＰｍ，ｒに対応し、こちらも中央値となる１ビットのみがＨでそれ以外はＬとなる。
【００４３】
図１３は、図１２のＯＮ中央値検出回路２０２ａの詳細な回路図である。図１３に示すように、ＯＮ中央値検出回路２０２ａは、ｉ＋１個のカウンタ２２１、ｉ個の乗算器２２２、ｉ個のバイナリ比較器２２３、ｉ個のＮＯＴ回路２２４、ｉ−１個のＡＮＤ回路２２５を備える。カウンタ２２１は、ビット（メモリセル１０１）ごとのアナログ比較器２０３の出力をカウントする。１番〜ｉ＋１番のカウンタ２２１には、それぞれＣＭＰ１，ｒ〜ＣＭＰｉ＋１，ｒ（１≦ｒ≦ｎ）のｎビットの値を入力する。それぞれのカウンタ２２１は入力信号の中で、Ｌであるものの数をカウントしてＣＮＴ１〜ＣＮＴｉ＋１に出力する。ここで出力値は０〜ｎのいずれかとなるので、ＣＮＴｉの値は例えばｓビットの２進数（ｎ＜２ｓ）である。乗算器２２２は、カウンタ２２１の出力を２倍にし、バイナリ比較器２２３は、乗算器２２２の出力をビットの総数と比較する。すなわち、ＣＮＴ１〜ＣＮＴｉの値を乗算器２２２で２倍にした２ＣＮＴ１〜２ＣＮＴｉを、ｓ＋１ビットのバイナリ比較器２２３でＣＮＴｉ＋１と比較して比較結果ＤＣＭＰ１〜ｉを得る。ここで、ＣＮＴｉの値を２倍するには、ＣＮＴｉを１ビットシフトする。このため、２ＣＮＴ１〜２ＣＮＴｉはｓ＋１ビットの２進数となる。
【００４４】
ＮＯＴ回路２２４及びＡＮＤ回路２２５は、バイナリ比較器２２３の比較結果に基づき、中央値を出力する。ＣＮＴｉ＋１の値はＯＮの分布に含まれるビットの総数であり、ＣＮＴ１〜ＣＮＴｉの値は基準電圧ＶＲＥＦ１〜ＶＲＥＦｉより電圧の低いビットの数であるから、ＤＣＭＰｘがＬでＤＣＭＰｘ＋１（１≦ｘ≦ｉ）がＨとなるｘが中央値である。そこで、ＮＯＴ回路２２４によりＤＣＭＰｘの反転値を生成し、ＡＮＤ回路２２５によりＤＣＭＰｘの反転値とＤＣＭＰｘ＋１のＡＮＤを中央値ＭＥＤＯＮとして出力する。ここで、ＭＥＤＯＮ１〜 ＭＥＤＯＮｉ＋１のｉ＋１ビットの出力が得られるが、この中でＨとなるものは１ビットのみである。本回路は組み合わせ回路のみで構成されており、高速な中央値検出が可能である。
【００４５】
ＯＦＦ中央値検出回路２０２ｂも同様の方式で構成することができる。ＯＦＦ中央値検出回路２０２ｂでは、図１３のＣＭＰ１をＣＭＰｍ、ＣＭＰ２をＣＭＰｍ−１・・・と入れ替え、カウンタ２２１が入力信号の中でＨであるものの数をカウントすることで構成できる。このような構成とすることで、簡易かつ高速に中央値を検出することができる。
【００４６】
図１３の回路では中央値を検出していたが、図１４のような平均値を検出する回路を使用することも出来る。図１４の入出力の信号は図１３と同じである。図１４の回路を図１３の代わりに図１２の回路に使用することで、図１２の回路を平均値検出回路とすることが出来る。
【００４７】
図１４に示すように、ＯＮ中央値検出回路（ここでは平均値検出回路）２０２ａは、ｉ＋１個のカウンタ２３１、ｉ個の加算器２３２、ｉ＋１個の乗算器２３３、加算器２３４、序慚愧２３５、ｉ＋１個のバイナリ比較器２３６、ｉ個のＮＯＴ回路２３７、ｉ−１個のＡＮＤ回路２２８を備える。図１４で１番〜ｉ＋１番のカウンタ２３１には、それぞれＣＭＰ１，ｒ〜ＣＭＰｉ＋１，ｒ（１≦ｒ≦ｎ）のｎビットの値を入力する。それぞれのカウンタ２３１は入力信号の中で、Ｌであるものの数をカウントし、それぞれのカウント値の差を加算器２３２で求めてＣＮＴ１〜ＣＮＴｉ＋１に出力する。このＣＮＴ１〜ＣＮＴｉ＋１はそれぞれのしきい値の範囲に入ったビットの数となる。次の乗算器２３３ではこのビット数にそれぞれしきい値での抵抗値ＲＲＥＦ１〜ＲＲＥＦｉ＋１を掛ける。さらに加算器２３４で全ての掛け算の結果を加算して全体の和ＳＵＭが求まる。
【００４８】
このＳＵＭを除算器２３５でＣＮＴ１〜ＣＮＴｉ＋１の和であるＣＮＴａｌｌで割ると抵抗値の平均ＲＡＶＥが求まる。バイナリ比較器２３６により、このＲＡＶＥをそれぞれのしきい値での抵抗値ＲＲＥＦ１〜ＲＲＥＦｉ＋１と比較し、この結果を図１３の中央値と同様にＮＯＴ回路２３７及びＡＮＤ回路２３８により演算すると、ＭＥＤＯＮ１〜ＭＥＤＯＮｉ＋１のｉ＋１ビットの出力が得られる。この中でＨとなるものは１ビットのみであり、これが抵抗値ＲＡＶＥより大きい最小のしきい値抵抗、つまり平均値近傍のしきい値抵抗となる。このような構成により、簡易かつ高速に平均値を検出することができる。
【００４９】
（実施の形態２）
以下、図面を参照して実施の形態２について説明する。図１５と図１６は本実施の形態に係るデータ読み出し動作のタイミングを示している。構成については、実施の形態１と同様である。
【００５０】
動作の一例である図１５では、セル読み出し、中央値検出、しきい値決定、データ復号の４つの動作にそれぞれ１クロックの時間が必要と仮定する。すなわち、１クロック目でメモリセル１０１から読み出したデータをバッファ２０１に保持し、２クロック目で中央値検出回路２０２が中央値を検出し、３クロック目でしきい値決定回路２０３がしきい値を決定し、４クロック目でデコーダ２０６がデータを復号する。そうすると、読み出し回路２００が読み出しコマンドを受け取ってからデータを出力するには４クロックの時間がかかる。
【００５１】
ただし、これら４つの動作は並列動作するので、パイプラインで高速化が可能である。連続した読み出し動作として、動作の開始を１クロックずらし、２回目、３回目のデータ読み出しを行う。つまり、図１５に示すように、１回目の読み出しを１クロック目から開始し、２回目の読み出しを２クロック目から開始し、３回目の読み出しを３クロック目から開始する。これにより、最初のデータは４クロックのウエイトが必要であるが、２個目以降のデータは１クロック毎に取り出すことが出来る。
【００５２】
動作の他の例である図１６では、１回目の読み出しは図１５と同じく４クロック必要であるが、実施の形態１で説明したように、求まったしきい値をしきい値記憶回路２０４に保存しておくことで、２回目の読み出しでは１回目の読み出しで用いたしきい値を使用する。このため、２回目の読み出しは読み出し回路２００が読み出しコマンドを受け取ってからセル読み出し、データ復号の２つの動作でデータが出力されるので、２クロックの時間で読み出すことが出来る。
【００５３】
３回目以降も同様に２クロックで読み出せるので、連続したデータ読み出しを行わない場合でも読み出しを高速化できる。また、２回目の読み出しではデータ出力後に、読み出しデータを用いたしきい値の再計算を行って、しきい値記憶に蓄えて以降の読み出しに使用する。例えば、２回目の読み出しで、４クロック目及び５クロック目でセル読み出しデータ復号を行いつつ、５クロック目及び６クロック目で中央値検出及びしきい値決定を行う。
【００５４】
（実施の形態３）
以下、図面を参照して実施の形態３について説明する。図１７は本実施の形態に係る不揮発メモリの構成例を示している。
【００５５】
図１７に示すように、本実施の形態に係る不揮発メモリ１は、メモリセルアレイ１００と読み出し回路２００に加えてトレーニング回路３００を備えている。実施の形態１では各ビット毎にｍ個のアナログ比較器１０３を用いるために、図３においてチップ全体ではｎ×ｍ個のアナログ比較器が必要である。これに対して、本実施の形態では各ビット毎にはアナログ比較器１０３は１つのみとする。その代わりにｎビットに対して１個のトレーニング回路３００を持つ。
【００５６】
電源ＯＮの直後などに、読み出し動作を開始する前にトレーニング回路３００を動作させてしきい値を決定し、このしきい値を用いて読み出し動作を行う。図１７に示すように、トレーニング回路３００は、ｍ個のアナログ比較器１０３、比較値ラッチ２０７、中央値検出回路２０２、しきい値決定回路２０３、しきい値記憶回路２０４、スイッチＳＷ１及びＳＷ２を備える。また、本実施の形態では、メモリセルアレイ１００では、ビットごとにメモリセル１０１、センスアンプ１０２、アナログ比較器１０３を備え、読み出し回路２００は、バッファ２０１、デコーダ２０６を備える。
【００５７】
図１７の動作について説明する。トレーニング動作では通常の読み出し動作と同様にメモリセル１０１を動作させる。この時、切り替えスイッチＳＷ１でｎ個のセンスアンプ１０２の出力ＶＡＭＰ１〜ＶＡＭＰｎのうち１つがトレーニング回路３００につながるようにする。そして、この出力をｍ個の基準電圧ＶＲＥＦ１〜ＶＲＥＦｍと比較してｍビットの比較結果を比較値ラッチ２０７に保存する。切り替えスイッチＳＷ１を切り替えていくことにより、比較値ラッチ２０７にｎビット分の比較結果ｎ×ｍビットが保存される。このデータを用いて実施の形態１と同様に中央値検出回路２０２としきい値決定回路２０３でしきい値を決定し、しきい値記憶回路２０４に保存する。
【００５８】
読み出し動作ではしきい値記憶回路２０４の値に従って切り替えスイッチＳＷ２により、基準電圧ＶＲＥＦ１〜ＶＲＥＦｍの内の１つをＶＲＥＦＡｌｌに接続する。この状態で、メモリセル１０１からデータを読み出す。そして、メモリセルアレイ１００内のアナログ比較器１０３がｎ個のセンスアンプ１０２の出力ＶＡＭＰ１〜ＶＡＭＰｎをＶＲＥＦＡｌｌと比較することで、ｎビットの比較結果が得られる。このデータを、バッファ２０１を経由して転送し、デコーダ２０６でエラー訂正方式に従ってデコードしてｋビットのデータを復元する。
【００５９】
本実施の形態ではアナログ比較器の個数が実施の形態１に比べて少なくできるので、チップ面積を縮小できる。また、あらかじめしきい値を求めておくことで、実施の形態２と同様にデータの読み出しを高速化できる。ここで、トレーニング動作を行うタイミングを電源ＯＮの直後としたが、それ以降も適宜トレーニング動作を行うことができる。例えば特許文献２では、リファレンスを用いたトレーニング動作中は通常の読み出しは出来ないが、図１７でトレーニング回路とメモリセルとは並列に動作できるので、通常の読み出し動作をしながら並行してトレーニング動作を行うことができる。
【００６０】
また、タイマーを用いて、１秒毎、１分毎などのあらかじめ決められた一定時間ごとにトレーニング動作を行うこともできる。さらに、チップ上に温度計を搭載し、チップ温度が５℃、１０℃といった一定値以上変化した時にトレーニング動作を行うこともできる。これにより、適切なしきい値を設定することができる。
【００６１】
上記の実施形態の一部または全部は、以下の付記のようにも記載され得るが、以下には限られない。
（付記１）
【００６２】
ＨまたはＬの状態の記憶された複数のメモリセルから状態を読み出し、前記読み出し状態のうち、ほぼＨの状態に近いものとほぼLの状態に近いものそれぞれの平均値または中心値を求め、前記平均値または中心値よりＨとＬの状態を識別するしきい値を決定して、前記メモリセルから読み出した状態をHまたはLに識別することを特徴とする不揮発メモリ。
（付記２）
【００６３】
付記１記載の不揮発メモリにおいて、入力データをメモリセルに書き込むデータに符号化し、前記符号はＨの状態とＬの状態を少なくとも１つ含むことを特徴とする不揮発メモリ。
（付記３）
【００６４】
付記２記載の不揮発メモリにおいて、状態の読み出しために、しきい値がお互いに異なる複数の比較器を持ち、前記比較器を同時に動作させて複数のしきい値に対する比較結果を得ることを特徴とする不揮発メモリ。
（付記４）
【００６５】
付記３記載の不揮発メモリにおいて、前記メモリセルから読み出される状態は抵抗値であることを特徴とする不揮発メモリ。
（付記５）
【００６６】
付記３記載の不揮発メモリにおいて、前記HとLの状態を識別するしきい値を保存するメモリを持ち、前記しきい値が保存されている場合はしきい値を決定する動作を行わずに前記保存されているしきい値を使用することを特徴とする不揮発メモリ。
（付記６）
【００６７】
付記３記載の不揮発メモリにおいて、前記しきい値がお互いに異なる複数の比較器は、前記状態を読み出す複数のメモリセルの数に関わらず１組のみで、前記１組の比較器と複数のメモリセルのいずれか１つを接続するスイッチを持ち、読み出し動作のたびに前記スイッチを切り替えて、前記状態を読み出す複数のメモリセル全てに対して比較動作を行い、ＨとＬの状態を識別するしきい値を決定することを特徴とする不揮発メモリ。
（付記７）
【００６８】
付記６において、しきい値を決定する動作は電源投入直後または、一定時間ごと、または、外部環境の変化を検知することによって行うことを特徴とする不揮発メモリ。
【００６９】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【００７０】
１      不揮発メモリ
１０    半導体装置
１１    メモリセル
１２    第１中間値決定回路
１３    第２中間値決定回路
１４    しきい値決定回路
１５    識別回路
１００  メモリセルアレイ
１０１  メモリセル
１０２  センスアンプ
１０３  アナログ比較器
１２１  定電圧源
１２２  電流−電圧変換器
２００  読み出し回路
２０１  バッファ
２０２  中央値検出回路
２０２ａ  ＯＮ中央値検出回路
２０２ｂ  ＯＦＦ中央値検出回路
２０３  しきい値決定回路
２０４  しきい値記憶回路
２０５  データ選択回路
２０６  デコーダ
２０７  比較値ラッチ
２２１  カウンタ
２２２  乗算器
２２３  バイナリ比較器
２２４  ＮＯＴ回路
２２５  ＡＮＤ回路
２３１  カウンタ
２３２  加算器
２３３  乗算器
２３４  加算器
２３５  除算器
２３６  バイナリ比較器
２３７  ＮＯＴ回路
２３８  ＡＮＤ回路
３００  トレーニング回路
【図１】
2017107620.tif 000003
【図２】
2017107620.tif 000004
【図３】
2017107620.tif 000005
【図４】
2017107620.tif 000006
【図５】
2017107620.tif 000007
【図６】
2017107620.tif 000008
【図７】
2017107620.tif 000009
【図８】
2017107620.tif 000010
【図９】
2017107620.tif 000011
【図１０】
2017107620.tif 000012
【図１１】
2017107620.tif 000013
【図１２】
2017107620.tif 000014
【図１３】
2017107620.tif 000015
【図１４】
2017107620.tif 000016
【図１５】
2017107620.tif 000017
【図１６】
2017107620.tif 000018
【図１７】
2017107620.tif 000019