(57)【要約】      （修正有）【課題】必要以上の電流を流さず、かつ、適切な回数でデータの書き込み動作を完了する可変抵抗素子を用いた半導体装置を提供する。【解決手段】半導体装置は可変抵抗素子と、可変抵抗素子の一端及び他端の間の電流を制御することで、可変抵抗素子の抵抗状態を制御する制御回路を備えている。制御回路は、可変抵抗素子の一端から他端に第１の電流を流して可変抵抗素子を第１の抵抗状態から第２の抵抗状態に変化させる。さらに、制御回路は、可変抵抗素子の一端から他端に第１の電流よりも小さい第２の電流を流した後に他端から一端に第３の電流を流して可変抵抗素子を第２の抵抗状態から第１の抵抗状態に変化させる。【選択図】図５
2014102866.tif 000002
【特許請求の範囲】
【請求項１】
可変抵抗素子と、
前記可変抵抗素子の一端及び他端の間の電流を制御することで、前記可変抵抗素子の抵抗状態を制御する制御回路と、
を備える半導体装置であって、
前記制御回路は、前記可変抵抗素子の前記一端から前記他端に第１の電流を流して前記可変抵抗素子を第１の抵抗状態から第２の抵抗状態に変化させ、且つ、前記可変抵抗素子の前記一端から前記他端に前記第１の電流よりも小さい第２の電流を流した後に前記他端から前記一端に第３の電流を流して前記可変抵抗素子を前記第２の抵抗状態から前記第１の抵抗状態に変化させることを特徴とする半導体装置。
【請求項２】
前記可変抵抗素子を挟むビット線及びトランジスタを更に備え、
前記制御回路は、前記第１の電流を流す時には前記ビット線に第１の電源を接続し、前記第２の電流を流す時には前記ビット線に第２の電源を接続する請求項１の半導体装置。
【請求項３】
前記可変抵抗素子を挟むビット線及びトランジスタを更に備え、
前記制御回路は、前記第１の電流を流す時には、前記トランジスタの制御電圧を第１の値とし、前記第２の電流を流す時には、前記制御電圧を第２の値とする請求項１の半導体装置。
【請求項４】
前記制御回路は、前記可変抵抗素子に前記第２の電流を流さずに前記可変抵抗素子に前記第３の電流を流した後、前記可変抵抗素子が前記第１の抵抗状態にない場合には、前記可変抵抗素子に前記第２の電流を流した後に前記第３の電流を流して前記可変抵抗素子を前記第１の抵抗状態とする請求項１乃至３のいずれか一項に記載の半導体装置。
【請求項５】
前記制御回路は、前記可変抵抗素子に前記第３の電流を流した後、前記可変抵抗素子の抵抗状態が前記第１の抵抗状態にあるか否かを検証した結果、前記可変抵抗素子が前記第１の抵抗状態にない場合に、前記可変抵抗素子に前記第２の電流を流す請求項４の半導体装置。
【請求項６】
前記制御回路は、前記可変抵抗素子の抵抗状態が前記第１の抵抗状態にあるか否かを確認した後、前記可変抵抗素子に前記３の電流を流す請求項４又は５の半導体装置。
【請求項７】
前記制御回路は、前記可変抵抗素子に前記第３の電流を流して前記第２の抵抗状態から前記第１の抵抗状態に変化させ、且つ、前記可変抵抗素子の前記他端から前記一端に前記第３の電流よりも小さい第４の電流を流した後に、前記可変抵抗素子に前記第１の電流を流して前記第１の抵抗状態から前記第２の抵抗状態に変化させる請求項１乃至６のいずれか一項に記載の半導体装置。
【請求項８】
第１の方向に流れる第１の電流により第１の抵抗状態、前記第１の方向とは逆向きの第２の方向に流れる第２の電流により第２の抵抗状態、にそれぞれ遷移する可変抵抗素子と、
前記可変抵抗素子の抵抗状態が、前記第１及び第２の抵抗状態のいずれとも異なる場合に、前記可変抵抗素子に、前記第１の方向に前記第１の電流よりも小さい第３の電流、又は、前記第２の方向に前記第２の電流よりも小さい第４の電流を流す制御回路と、
を備えることを特徴とする半導体装置。
【請求項９】
可変抵抗素子の一端から他端に第１の電流を流して前記可変抵抗素子を第１の抵抗状態から第２の抵抗状態に変化させる工程と、
前記可変抵抗素子の前記一端から前記他端に前記第１の電流よりも小さい第２の電流を流す工程と、
前記他端から前記一端に第３の電流を流して前記可変抵抗素子を前記第２の抵抗状態から前記第１の抵抗状態に変化させる工程と、
を含むことを特徴とする半導体装置の制御方法。
【請求項１０】
前記可変抵抗素子の抵抗状態が、前記第１の抵抗状態にあるか否かを検証する工程をさらに含み、
前記第２の電流を流す工程は、前記可変抵抗素子の抵抗状態が前記第１の抵抗状態にない場合に、前記可変抵抗素子に前記第２の電流を流す請求項９の半導体装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置及び半導体装置の制御方法に関する。特に、可変抵抗素子を記憶素子として含む半導体装置及び半導体装置の制御方法に関する。
【背景技術】
【０００２】
特許文献１において、可変抵抗素子の抵抗値の差を論理値（データ「０」又はデータ「１」）に対応させ、可変抵抗素子をメモリセルとして用いる不揮発性半導体記憶装置（所謂、抵抗変化型メモリ）が開示されている。特許文献１が開示する抵抗変化型メモリにおける制御は、例えば、特許文献１の図９及び図１１に示されるように、書き込み時（データ「１」）と消去時（データ「０」）において流す電流の向きを逆向きとし、かつ、その電流量もデータに対応した電流量とする。
【０００３】
また、特許文献２において、ランダムアクセスによる書き込み動作において、所望の抵抗状態へ安定に、制御性よく書き込みを行うことが可能な、可変抵抗素子を備えた半導体記憶装置が、開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−０２５９１４号公報
【特許文献２】特開２０１２−０６９２２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
なお、上記先行技術文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者らによってなされたものである。
【０００６】
特許文献１が開示する制御方法により、所望のデータを抵抗変化型メモリに書き込むことができる。しかし、このような制御を実行したとしても、１回のライト制御により所望のデータを正しく書き込むのは困難である。そのため、実際には、フラッシュメモリ等と同様に、ベリファイ動作による検証を行いつつ、繰り返し上記のライト制御を行うことが多い。
【０００７】
ここで、可変抵抗素子の抵抗値の変化は、可変抵抗素子に電流を流す処理に起因する。そのため、可変抵抗素子に対して必要以上に大きな電流を流す、又は、電流の流す回数を多くする等の制御は、可変抵抗素子の寿命を短くしたり経年劣化による特性が悪化したりといった弊害が生じる恐れがある。そこで、必要以上の電流を流さず、かつ、適切な回数でデータの書き込み動作を完了することに寄与する、可変抵抗素子を用いた半導体装置が、望まれる。
【課題を解決するための手段】
【０００８】
本発明の第１の視点によれば、可変抵抗素子と、前記可変抵抗素子の一端及び他端の間の電流を制御することで、前記可変抵抗素子の抵抗状態を制御する制御回路と、を備える半導体装置であって、前記制御回路は、前記可変抵抗素子の前記一端から前記他端に第１の電流を流して前記可変抵抗素子を第１の抵抗状態から第２の抵抗状態に変化させ、且つ、前記可変抵抗素子の前記一端から前記他端に前記第１の電流よりも小さい第２の電流を流した後に前記他端から前記一端に第３の電流を流して前記可変抵抗素子を前記第２の抵抗状態から前記第１の抵抗状態に変化させる半導体装置が提供される。
【０００９】
本発明の第２の視点によれば、第１の方向に流れる第１の電流により第１の抵抗状態、前記第１の方向とは逆向きの第２の方向に流れる第２の電流により第２の抵抗状態、にそれぞれ遷移する可変抵抗素子と、前記可変抵抗素子の抵抗状態が、前記第１及び第２の抵抗状態のいずれとも異なる場合に、前記可変抵抗素子に、前記第１の方向に前記第１の電流よりも小さい第３の電流、又は、前記第２の方向に前記第２の電流よりも小さい第４の電流を流す制御回路と、を備える半導体装置が提供される。
【００１０】
本発明の第３の視点によれば、可変抵抗素子の一端から他端に第１の電流を流して前記可変抵抗素子を第１の抵抗状態から第２の抵抗状態に変化させる工程と、前記可変抵抗素子の前記一端から前記他端に前記第１の電流よりも小さい第２の電流を流す工程と、前記他端から前記一端に第３の電流を流して前記可変抵抗素子を前記第２の抵抗状態から前記第１の抵抗状態に変化させる工程と、を含む半導体装置の制御方法が提供される。
【発明の効果】
【００１１】
本発明の各視点によれば、必要以上の電流を流さず、かつ、適切な回数でデータの書き込み動作を完了することに寄与する、可変抵抗素子を用いた半導体装置及び半導体装置の制御方法が、提供される。
【図面の簡単な説明】
【００１２】
【図１】第１の実施形態に係るアレイ制御回路２７の内部構成の一例と各バンクに含まれる各種回路の一例を示す図である。
【図２】第１の実施形態に係る半導体装置１の全体構成の一例を示す図である。
【図３】ライトアンプ２３の回路構成の一例を示す図である。
【図４】ワード線電源制御部４２とワードドライバ４６の回路構成の一例を示す図である。
【図５】メモリセルに対するアクセスを説明するための図である。
【図６】プログラム実行時の半導体装置１の動作の一例を示すフローチャートである。
【図７】データリセットサイクル時の波形図の一例を示す図である。
【図８】データセットサイクル時の波形図の一例を示す図である。
【図９】ウィークセットの効果を説明するための図である。
【図１０】第２の実施形態に係る半導体装置２に含まれるライトアンプ２３ａの回路構成の一例を示す図である。
【図１１】第３の実施形態に係る半導体装置３に含まれるアレイ制御回路２７ａの内部構成の一例と各バンクに含まれる各種回路の一例を示す図である。
【図１２】ワード線電源制御部４２ａとワードドライバ４６の回路構成の一例を示す図である。
【図１３】第４の実施形態に係る半導体装置４のライトアンプ２３ｂの回路構成の一例を示す図である。
【図１４】プログラム実行時の半導体装置４の動作の一例を示すフローチャートである。
【発明を実施するための形態】
【００１３】
一実施形態の概要について説明する。図１、図２に示すように、半導体装置は可変抵抗素子（例えば、図２の符号３０）と、可変抵抗素子の一端及び他端の間の電流を制御することで、可変抵抗素子の抵抗状態を制御する制御回路（例えば、制御ロジック回路１３、アレイ制御回路２７）を備えている。制御回路は、可変抵抗素子の一端から他端に第１の電流を流して可変抵抗素子を第１の抵抗状態から第２の抵抗状態に変化させる。さらに、制御回路は、可変抵抗素子の一端から他端に第１の電流よりも小さい第２の電流を流した後に他端から一端に第３の電流を流して可変抵抗素子を第２の抵抗状態から第１の抵抗状態に変化させる。
【００１４】
可変抵抗素子の抵抗状態を変化させるためには、可変抵抗素子に流す電流の向き及び電流量を制御する必要がある。その際、同一の可変抵抗素子に繰り返し電流を流すと、可変抵抗素子の抵抗状態が第１又は第２の抵抗状態のいずれでもない不完全な抵抗状態となることがある。このような不完全な状態から、例えば、可変抵抗素子を第１の抵抗状態に変化させようとしても、可変抵抗素子の抵抗状態が不完全であるため、可変抵抗素子に流せる電流量が異なってしまい、第１の抵抗状態に変化させるために必要な電流を流すことができない。そこで、このような不完全な抵抗状態を、一度、第２の抵抗状態にシフトして適切な電流を流せる抵抗状態に戻す必要がある。
【００１５】
この不完全な抵抗状態を解消するための電流が第２の電流であって、第１の電流よりも小さい電流である。ここで、不完全な抵抗状態を解消するために、第１の電流を可変抵抗素子に流すと、第２の抵抗状態から外れた抵抗状態となってしまう。つまり、可変抵抗素子の抵抗状態が第２の抵抗状態から外れた状態から、第３の電流を可変抵抗素子に流し、第１の抵抗状態にしようとしても、第１の抵抗状態にならず、再び不完全な抵抗状態となる可能性がある。そのため、第１の電流よりも小さい第２の電流を可変抵抗素子に流すことで、不完全な抵抗状態を解消する。即ち、半導体装置は、同一の可変抵抗素子に繰り返し電流を流す場合には、可変抵抗素子の抵抗状態が不完全な抵抗状態であっても対応可能なように、可変抵抗素子に流す電流を制御する。その結果、必要以上に電流を流さず、かつ、適切な回数で可変抵抗素子の抵抗状態を変化させることができる。
【００１６】
なお、本書において、外部から供給されるコマンドに応じてデータを所定のメモリセルに書き込む動作を「プログラム」と表記する。また、プログラムの際に、データ「０」を対応するメモリセルに書き込む動作を「データリセット」、データ「１」を対応するメモリセルに書き込む動作を「データセット」とする。即ち、プログラムは、データリセットとデータセットの組合せにより実現される。
【００１７】
また、メモリセルを構成する可変抵抗素子の抵抗状態が不完全な場合に、データセット時に可変抵抗素子に流す電流と同じ向きの小さい電流を流す動作を「ウィークセット」とする。さらに、可変抵抗素子の抵抗状態が不完全な場合に、データリセット時に可変抵抗素子に流す電流と同じ向きの小さい電流を流す動作を「ウィークリセット」とする。
【００１８】
以下に具体的な実施の形態について、図面を参照してさらに詳しく説明する。
【００１９】
［第１の実施形態］
第１の実施形態について、図面を用いてより詳細に説明する。
【００２０】
図２は、本実施形態に係る半導体装置１の全体構成の一例を示す図である。半導体装置１は、可変抵抗素子（抵抗変化型素子）をメモリセルとして備える。半導体装置１は、制御信号入力端子と、入出力端子と、レディービジー信号出力端子と、電源端子と、を備えている。
【００２１】
制御信号入力端子は、チップイネーブル信号入力端子ＣＥＢ、コマンドラッチイネーブル信号入力端子ＣＬＥ、アドレスラッチイネーブル信号入力端子ＡＬＥ、ライトイネーブル信号入力端子ＷＥＢ、リードイネーブル信号入力端子ＲＥＢ及びライトプロテクト信号入力端子ＷＰＢの各種端子から構成される。
【００２２】
入出力端子ＩＯ０〜ＩＯ７は、メモリセルにアクセスする際のアドレスやデータを受け付ける。入出力端子ＩＯ０〜ＩＯ７が受け付ける信号には、半導体装置１に対するコマンドも含まれる。
【００２３】
レディービジー信号出力端子ＲＹ／ＢＹは、レディービジー信号を出力する。レディービジー信号は、半導体装置１においてプログラムが実行中であることを外部に通知する信号である。半導体装置１は、電源端子（ＶＤＤ、ＶＳＳ）を介して、外部から電源の供給を受ける。
【００２４】
半導体装置１は、内部電源発生回路１０と、制御信号入力回路１１と、入出力制御回路１２と、制御ロジック回路１３と、コマンドレジスタ１４と、ステータスレジスタ１５と、アドレスレジスタ１６と、ロウアドレスバッファ１７と、カラムアドレスバッファ１８と、ロウデコーダ１９と、カラムデコーダ２０と、メモリセルアレイ２１と、センスアンプ２２と、ライトアンプ２３と、ベリファイ判定回路２４と、データバッファ２５と、レディービジー信号を出力するバッファ２６と、アレイ制御回路２７と、を含んで構成される。
【００２５】
内部電源発生回路１０は、半導体装置１の内部において用いられる種々の電源を生成する。内部電源発生回路１０により生成された電源は、図２に図示する回路群に加え、図示しない回路群に対しても供給される。内部電源発生回路１０が生成する電源には、ＶＳＥＴ、ＶＥＱ、ＶＷＬＳ、ＶＷＬＲ等が含まれる。これらの電源の用途や役割等については、後述する。なお、以降の説明において、各種の電源が供給する電圧を、その電源の名称により表記する。例えば、電源ＶＳＥＴから供給される電圧は、電圧ＶＳＥＴと表記する。また、図２に図示するＩＮＴ＿Ｖｒｅｆや、ＩＮＴＶは、各種回路で使用される基準電圧や電源の総称である。
【００２６】
制御信号入力回路１１は、制御信号入力端子を介して、半導体装置１と接続されたコントローラが出力する制御信号を受け付ける。制御信号入力回路１１は、受け付けた制御信号を入出力制御回路１２及び制御ロジック回路１３に出力する。
【００２７】
入出力制御回路１２は、入出力端子ＩＯ０〜ＩＯ７を介して受け付ける信号と、制御信号入力回路１１が出力する信号と、からコマンドをデコードし、コマンドレジスタ１４に登録する。また、制御ロジック回路１３の動作状況が格納されたステータスレジスタ１５を参照することで、入出力端子ＩＯ０〜ＩＯ７を介したデータの送受信を実現する。入出力制御回路１２は、入出力端子ＩＯ０〜ＩＯ７を介して受け付けた信号からアドレスをデコードし、アドレスレジスタ１６に登録する。入出力制御回路１２は、データバッファ２５に書き込みデータを格納し、又は、データバッファ２５からデータを読み出す。
【００２８】
制御ロジック回路１３は、制御信号入力端子から得られる制御信号とコマンドレジスタ１４に登録されたコマンドに応じて、内部コマンドＩＮＴ＿ｃｏｍをアレイ制御回路２７に出力する。制御ロジック回路１３は、内部コマンドＩＮＴ＿ｃｏｍを出力することで、メモリセルアレイ２１に含まれるメモリセルへのアクセスを、アレイ制御回路２７に実行させる。
【００２９】
制御ロジック回路１３は、アレイ制御回路２７からの応答信号ＲＥＳ＿ｃｏｍを受け付ける。応答信号ＲＥＳ＿ｃｏｍには、アレイ制御回路２７におけるアクセス制御の結果（正常にアクセスが終了したか否か）が含まれる。制御ロジック回路１３は、応答信号ＲＥＳ＿ｃｏｍに応じて、外部から受け付けたコマンドに対する応答を行う。さらに、制御ロジック回路１３は、メモリセルのプログラムを実行中であれば、バッファ２６を介してその旨をレディービジー信号出力端子ＲＹ／ＢＹを介して外部に通知する。
【００３０】
アドレスレジスタ１６に登録されたアドレスは、ロウアドレスＲａｄｄとカラムアドレスＣａｄｄに分離され、それぞれロウアドレスバッファ１７及びカラムアドレスバッファ１８に格納される。ロウアドレスバッファ１７に取り込まれたロウアドレスＲａｄｄは、ロウデコーダ１９に供給される。カラムアドレスバッファ１８に取り込まれたカラムアドレスＣａｄｄは、カラムデコーダ２０に供給される。
【００３１】
半導体装置１は、複数のバンクＢａｎｋ０〜Ｂａｎｋｎ（ｎは正の整数、以下同じ）を含む構成である。各バンクには、ロウデコーダ１９と、カラムデコーダ２０と、メモリセルアレイ２１と、センスアンプ２２と、ライトアンプ２３と、ベリファイ判定回路２４と、データバッファ２５と、が含まれている。
【００３２】
メモリセルアレイ２１には、複数のメモリセルが含まれている。各メモリセルは、可変抵抗素子３０と選択トランジスタ３１から構成されている。可変抵抗素子３０の一端は、選択トランジスタ３１のソース又はドレインに接続され、他の一端は電源ＶＥＱに接続されている。選択トランジスタ３１のゲート（制御端子）は、ワード線ＷＬに接続され、ソース又はドレインはビット線ＢＬに接続されている。なお、図２に図示するビット線ＢＬ＿ｋ（ｋは正の整数、以下同じ）は、メモリセルアレイ２１を延伸する複数のビット線のうち、アクセスの対象となるメモリセルに接続されたビット線とする。ワード線ＷＬ＿ｍ（ｍは正の整数、以下の同じ）についても同様とする。
【００３３】
ロウデコーダ１９は、ロウアドレスＲａｄｄをデコードすることで、メモリセルアレイ２１を延伸するワード線ＷＬから、アクセス対象のメモリセルに接続されたワード線ＷＬ＿ｍを選択する。同様に、カラムデコーダ２０は、カラムアドレスＣａｄｄをデコードすることで、メモリセルアレイ２１を延伸するビット線ＢＬから、アクセス対象のメモリセルに接続されたビット線ＢＬ＿ｋを選択する。
【００３４】
センスアンプ２２は、ビット線ＢＬに所定の電圧を所定の時間印加し、可変抵抗素子３０の抵抗変化を読み取ることで、メモリセルが記憶するデータを読み出す。
【００３５】
ライトアンプ２３は、ビット線ＢＬに接続する電源を切り替えることで、メモリセルにデータを書き込む。
【００３６】
ベリファイ判定回路２４は、外部から供給されたデータとメモリセルから読み出したデータを比較し、両者の一致又は不一致を判定する回路（データレジスタ）である。
【００３７】
データバッファ２５は、入出力端子ＩＯ０〜ＩＯ７を介して外部とデータの送受信するために用意されたバッファである。
【００３８】
アレイ制御回路２７は、制御ロジック回路１３が出力する内部コマンドＩＮＴ＿ｃｏｍを受けて、ロウデコーダ１９、カラムデコーダ２０及び各バンクに含まれる各種の回路を制御する。アレイ制御回路２７は、ロウデコーダ１９に対して制御信号Ｒｃｏｎｔを出力し、カラムデコーダ２０に対して制御信号Ｃｃｏｎｔを出力する。アレイ制御回路２７は、制御信号（Ｐｓｅｔ、Ｐｒｅｓｅｔ、Ｐｗｓｅｔ、ＲＤｅｎ、Ｒｅｓｅｔ）をそれぞれのバンクに含まれる各種の回路に出力する。アレイ制御回路２７は、各バンクから、判定信号（Ｊｕｄｇｅ、Ｐｆａｉｌ）を受け付ける。
【００３９】
アレイ制御回路２７は、外部から供給されるプログラムコマンドに応じて、メモリセルアレイ２１に含まれる所定のアドレスに対応する複数のメモリセルに対してプログラムを実行する。各メモリセルは、ロウアドレスＲｄｄに対応したワード線ＷＬ＿ｍ及びカラムアドレスＣａｄｄに対応したビット線ＢＬ＿ｋにより選択され、内部コマンドＩＮＴ＿ｃｏｍに応じた制御が行われる。
【００４０】
より具体的には、制御ロジック回路１３が出力する内部コマンドＩＮＴ＿ｃｏｍが、メモリセルのデータセット（データ「１」の書き込み）を示す場合には、制御信号Ｐｓｅｔを活性化する。内部コマンドＩＮＴ＿ｃｏｍが、メモリセルのデータリセット（データ「０」の書き込み）を示す場合には、制御信号Ｐｒｅｓｅｔを活性化する。また、アレイ制御回路２７は、メモリセルに対してウィークセットを実行する場合には、制御信号Ｐｗｓｅｔを活性化する。アレイ制御回路２７は、メモリセルからデータ読み出しを読み出す場合には、制御信号ＲＤｅｎを活性化する。
【００４１】
ベリファイ判定回路２４は、内部コマンドＩＮＴ＿ｃｏｍがデータセット又はデータリセットである場合に、メモリセルから読み出したデータの検証（ベリファイ）を行い、検証結果として判定信号Ｊｕｄｇｅを出力する。アレイ制御回路２７は、判定信号Ｊｕｄｇｅが、メモリセルから読み出したデータと、外部からメモリセルに書き込みを指示されたデータと、が一致する場合には、データセット又はデータリセットに係る制御を終了する。一方、判定信号Ｊｕｄｇｅの結果が、両者のデータの不一致を示す場合には、再度、それぞれの内部コマンドＩＮＴ＿ｃｏｍに応じた制御を行う（データリセット又はデータセットを繰り返す）。なお、判定信号ＪｕｄｇｅがＨレベルである場合は、メモリセルから読み出したデータと、外部からメモリセルに書き込みを指示されたデータと、が一致することを意味する。判定信号ＪｕｄｇｅがＬレベルである場合には、両者のデータが不一致であることを意味する。
【００４２】
図１は、アレイ制御回路２７の内部構成の一例と各バンクに含まれる各種回路の一例を示す図である。図１のアレイ制御回路２７を除く各回路は、ワード線ＷＬやビット線ＢＬごとに設けられている。一方、アレイ制御回路２７は、ワード線ＷＬ及びワード線を制御する回路に対して共通して設けられている。
【００４３】
アレイ制御回路２７は、アンプ制御部４０と、ワード線制御部４１と、ワード線電源制御部４２と、複数の判定信号Ｊｕｄｇｅの論理和を判定信号Ｊｕｄｇｅ＿ａｌｌとして出力する論理積回路４３と、が含まれている。各バンクには、センスアンプ２２、ライトアンプ２３、ベリファイ判定回路２４に加え、ゲート回路４４と、ＳＲラッチ４５と、ワードドライバ４６と、が含まれている。
【００４４】
アンプ制御部４０は、内部コマンドＩＮＴ＿ｃｏｍと、判定信号Ｊｕｄｇｅ＿ａｌｌと、に基づいて各種制御信号を活性化する（ライトアンプ２３及びセンスアンプ２２を制御する）。なお、判定信号Ｊｕｄｇｅ＿ａｌｌとは、それぞれのメモリセルに対応した判定信号Ｊｕｄｇｅ＿０〜Ｊｕｄｇｅ＿ｑ（ｑは正の整数、以下同じ）に対し、論理和演算した結果である。
【００４５】
センスアンプ２２は、ビット線ＢＬを所定の電源に接続し、ビット線ＢＬの電位変化により、メモリセルからデータを読み出す。読み出されたデータは、ベリファイ判定回路２４に送られる。
【００４６】
ライトアンプ２３は、アンプ制御部４０が出力する制御信号に応じて、ビット線ＢＬを所定の電源に接続することで、プログラム（データリセット及びデータセット）を実行する。
【００４７】
ワード線制御部４１は、内部コマンドＩＮＴ＿ｃｏｍと、判定信号Ｊｕｄｇｅ＿ａｌｌと、に基づいて制御信号（ＷＬｓｅｔ、ＷＬｒｅｓｅｔ）をワード線電源制御部４２に出力する。ワード線電源制御部４２は、サブワード線ＦＸに接続する電源を切り替えることで、ワードドライバ４６を制御する。
【００４８】
ワードドライバ４６は、ロウデコーダ１９が出力するワード線選択信号ＭＷＬＢに基づいて、サブワード線ＦＸから供給される電源を使用してワード線ＷＬを駆動する。
【００４９】
図３は、ライトアンプ２３の回路構成の一例を示す図である。
【００５０】
ライトアンプ２３は、Ｐチャンネル型ＭＯＳトランジスタＰ０１〜Ｐ０４と、Ｎチャンネル型ＭＯＳトランジスタＮ０１と、トランスファーゲートＴＧ０１と、インバータ回路ＩＮＶ０１〜ＩＮＶ０３と、否定論理積回路ＮＡＮＤ０１と、を含んで構成されている。
【００５１】
ライトアンプ２３は、制御信号（Ｐｓｅｔ、Ｐｒｅｓｅｔ、Ｐｗｓｅｔ、ＲＤｅｎ）に応じて、ビット線ＢＬに接続する電源を切り替える。より具体的には、制御信号Ｐｓｅｔが活性化している場合には、ビット線ＢＬと電源ＶＳＥＴを接続する。また、制御信号Ｐｗｓｅｔが活性化している場合には、ビット線ＢＬと電源ＶＷＳＥＴを接続する。なお、Ｐチャンネル型ＭＯＳトランジスタＰ０１及びＰ０３のゲートには、電源ＶＳＥＴ及び電源ＶＷＳＥＴが生成される基準電圧（ＶＳＥＴＲＥＦ、ＶＷＳＥＴＲＥＦ）が与えられる。制御信号Ｐｒｅｓｅｔが活性している場合には、ビット線ＢＬと電源ＶＲＳＴを接続する。
【００５２】
半導体装置１がスタンバイ状態である場合には、制御信号（Ｐｓｅｔ、Ｐｒｅｓｅｔ、Ｐｗｓｅｔ、ＲＤｅｎ）は非活性状態にある。この場合、トランスファーゲートＴＧ０１が導通することで、ビット線ＢＬは電源ＶＥＱと接続される。その結果、スタンバイ状態時には、可変抵抗素子３０に電流が流れる（リーク電流が生じる）ことを防止する。
【００５３】
図４は、ワード線電源制御部４２とワードドライバ４６の回路構成の一例を示す図である。
【００５４】
ワード線電源制御部４２は、Ｎチャンネル型ＭＯＳトランジスタＮ０２と、トランスファーゲートＴＧ０２及びＴＧ０３と、インバータ回路ＩＮＶ０４及びＩＮＶ０５と、否定論理和回路ＮＯＲ０１と、を含んで構成される。ワードドライバ４６は、Ｎチャンネル型ＭＯＳトランジスタＮ０３と、トランスファーゲートＴＧ０４と、インバータ回路ＩＮＶ０６と、を含んで構成される。
【００５５】
ワード線電源制御部４２は、ワード線制御部４１が出力する制御信号（ＷＬｓｅｔ、ＷＬｒｅｓｅｔ）に応じて、サブワード線ＦＸに接続する電源を切り替える。ワードドライバ４６は、ワード線選択信号ＭＷＬＢに応じて、ワード線電源制御部４２から供給される電源（ＶＷＬＳ、ＶＷＬＲ）とワード線ＷＬを接続する。
【００５６】
次に、メモリセルに対するアクセスについて概説する。
【００５７】
図５は、メモリセルに対するアクセスを説明するための図である。上述したように、メモリセルにデータを書き込むプログラムは、データリセットとデータセットの組合せである。
【００５８】
データセットは、可変抵抗素子３０を低抵抗な状態とすることである。可変抵抗素子３０を低抵抗にするためには、図５（ａ）に示すように、選択トランジスタ３１から電源ＶＥＱに向けて、可変抵抗素子３０に電流を流す。なお、選択トランジスタ３１から電源ＶＥＱに向かう方向を第１の方向、その際の電流を第１の電流として、以下の説明を行う。
【００５９】
また、上述したようにデータリセットを連続して行う際には、データリセットの間にウィークセットを行う。ウィークセットは、図５（ｂ）に示すように、可変抵抗素子３０に第１の方向で電流を流しつつ、その電流量をデータセット時の電流量よりも小さくすることで実現する。ウィークセット時に流す電流を第２の電流とする。
【００６０】
データリセットは、可変抵抗素子３０を高抵抗な状態とすることである。可変抵抗素子３０を高抵抗にするためには、図５（ｃ）に示すように、電源ＶＥＱから選択トランジスタ３１に向けて、可変抵抗素子３０に電流を流す。なお、電源ＶＥＱから選択トランジスタ３１に向かう方向を第２の方向、その際の電流を第３の電流とする。
【００６１】
メモリセルからデータを読み出す際には、ビット線ＢＬの電位変化に要する時間の長短により、メモリセルが保持するデータの判別を行う。より具体的には、可変抵抗素子３０が低抵抗（データ「１」を保持）の場合には、電位の変化が速い。一方、可変抵抗素子３０が高抵抗（データ「０」を保持）の場合には、電位の変化が遅い。センスアンプ２２において、ビット線の電位変化の相違を検出し、メモリセルからデータを読み出す。
【００６２】
次に、半導体装置１の動作について説明する。ここでは、外部からプログラムの指示を受けた場合における半導体装置１の動作について説明する。
【００６３】
図６は、プログラム実行時の半導体装置１の動作の一例を示すフローチャートである。
【００６４】
外部からプログラムコマンドを、制御信号入力回路１１及び入出力制御回路１２を介して受け付けた制御ロジック回路１３は、内部コマンドＩＮＴ＿ｃｏｍをアレイ制御回路２７に出力する（ステップＳ１０１、Ｓ１０２）。
【００６５】
ステップＳ１０２における内部コマンドＩＮＴ＿ｃｏｍは、アレイ制御回路２７に対して、データリセットの実行を指示する。アレイ制御回路２７は、データリセットに係る処理サイクルを実行する。図６のステップＳ１０３〜Ｓ１０９が、データリセットサイクルである。
【００６６】
ステップＳ１０３において、アレイ制御回路２７は、確認読み出し動作を行う。より具体的には、アレイ制御回路２７は、センスアンプ２２に対して外部からデータの書き込みを指示されたアドレスに対応するメモリセルからのデータ読み出しを指示する。その際、アレイ制御回路２７に含まれるアンプ制御部４０は、制御信号ＲＤｅｎを、ワード線制御部４１は制御信号ＷＬｓｅｔを、それぞれ活性化する。制御信号ＷＬｓｅｔが活性化することで、ワード線ＷＬは電源ＶＷＬＳに接続される。
【００６７】
その後、ベリファイ判定回路２４において、メモリセルから読み出したデータと、外部から書き込みを指示されたデータ（データバッファ２５が保持するデータ）と、を比較する。ベリファイ判定回路２４は、両者が一致すれば、Ｈレベルの判定信号Ｊｕｄｇｅを出力し、不一致であれば、Ｌレベルの判定信号Ｊｕｄｇｅを出力する。
【００６８】
アレイ制御回路２７は、判定信号Ｊｕｄｇｅ＿０〜Ｊｕｄｇｅ＿ｑがデータの相違を示さなければ（判定信号Ｊｕｄｇｅ＿ａｌｌがＨレベルであれば）、ステップＳ１０８に遷移し、データリセットを終了する。ここでは、比較した結果は不一致を示すものとする（ステップＳ１０４に遷移する）。
【００６９】
ステップＳ１０４では、アレイ制御回路２７は、データリセットを実行する。具体的には、アンプ制御部４０は、制御信号Ｐｒｅｓｅｔを活性化することで、ビット線ＢＬを電源ＶＲＳＴに接続する。ワード線制御部４１は、制御信号ＷＬｒｅｓｅｔを活性化することで、ワード線ＷＬを電源ＶＷＬＲに接続する。電源ＶＥＱは電源ＶＲＳＴよりも高電位な電源として生成されるので、第２の方向に第３の電流を流す（図５（ｃ）参照）。なお、電圧ＶＷＬＲは、電圧ＶＷＬＳよりも高電圧のため、ワード線ＷＬの電位は、データ読み出し時のワード線ＷＬの電位よりも高く制御される。但し、電圧ＶＷＬＲを電圧ＶＷＬＳよりも高電圧に限定する趣旨ではなく、両者が一致する電圧であってもよいし、電圧ＶＷＬＲは電圧ＶＷＬＳよりも低い電圧であってもよい。
【００７０】
ステップＳ１０５において、アレイ制御回路２７は、検証読み出し動作を行う。本ステップにおいて、ベリファイ判定回路２４は、メモリセルから読み出したデータと、データバッファ２５に格納されたデータと、を再び比較する。アレイ制御回路２７は、判定信号Ｊｕｄｇｅ＿ａｌｌがデータの相違を示さなければステップＳ１０８に遷移し、データリセットを終了する。ここでは、比較した結果が、不一致を示すものとする（ステップＳ１０６に遷移する）。
【００７１】
ステップＳ１０６では、データリセットサイクルの実行された回数が、予め定めた回数に到達したか否かを判定する。アレイ制御回路２７は、データリセットサイクルが実行された回数ｎ（ｎは正の整数、以下同じ）をインクリメントすると共に、予め定めた値Ｎ（Ｎは正の整数、以下同じ）より小さいか否かを確認する。データリセットサイクルが、予め定めた回数Ｎに到達している場合には、ステップＳ１０９に遷移し、データリセットの失敗が確定する。
【００７２】
なお、予め定めたＮ回、データリセットサイクルを繰り返しても判定信号Ｊｕｄｇｅ＿ａｌｌがＨレベルにならずにデータリセットの失敗が確定した場合には、ステップＳ１１８に遷移する。ステップＳ１１８では、プログラムフェイルを示す信号Ｐｆａｉｌが外部に出力される。
【００７３】
繰り返されたデータリセットサイクルが、予め定めた回数Ｎに到達していなければ、アレイ制御回路２７は、ウィークセットを実行する（ステップＳ１０７）。
【００７４】
ステップＳ１０７では、アンプ制御部４０は、制御信号Ｐｗｓｅｔを活性化することで、ビット線ＢＬを電源ＶＷＳＥＴに接続する。ワード線制御部４１は、制御信号ＷＬｓｅｔを活性化することで、ワード線ＷＬを電源ＶＷＬＳに接続する。電源ＶＷＳＥＴは電源ＶＥＱよりも高電位な電源として生成されるので、第１の方向により、可変抵抗素子３０に電流が流れる。但し、電源ＶＷＳＥＴは電源ＶＳＥＴよりも低電位な電源として生成されるので、後述するデータセット時に可変抵抗素子３０に流れる第１の電流よりも小さい第２の電流が可変抵抗素子３０に流れる。即ち、ウィークセット時には、第１の方向の第２の電流が可変抵抗素子３０に流れる（図５（ｂ）参照）。なお、ウィークセット時のワード線ＷＬの電位は、データリセット時のワード線ＷＬの電位よりも低く制御される。
【００７５】
ステップＳ１０７におけるウィークセットが終了すると、データリセット（ステップＳ１０４）及び検証読み出し動作（ステップＳ１０５）が再び実行される。
【００７６】
なお、アレイ制御回路２７は、特定のメモリセルに対するデータリセットが終了しても、全てのメモリセルに対するデータリセットが終了するまで、それぞれの制御信号を出力し続ける。ここで、既に処理が終わったメモリセルに対しては、不要な電流を流さないように、ゲート回路４４及びＳＲラッチ４５が設けられている。即ち、判定信号Ｊｕｄｇｅがデータの一致を示すＨレベルを出力した後に、ＳＲラッチ４５がセットされると、ＳＲラッチ４５の出力を受けたゲート回路４４が、各制御信号を非活性化する。
【００７７】
判定信号Ｊｕｄｇｅ＿ａｌｌ（図１におけるＲＥＳ＿ｃｏｍに対応する）が、全てのデータの一致を示すＨレベルを示す場合に、制御ロジック回路１３は全てのメモリセルに対するデータリセットの終了を検知し、次のデータセットを実行するための内部コマンドＩＮＴ＿ｃｏｍを出力する（ステップＳ１１０）。それに対応してアンプ制御部４０及びワード線制御部４１は、データリセットサイクル（図６のステップＳ１０３〜Ｓ１０７）を停止し、次のデータセットサイクルに移行する。
【００７８】
アレイ制御回路２７は、データセットに係る処理サイクルを実行する。図６のステップＳ１１１〜Ｓ１１６に示す処理が、データセットサイクルである。
【００７９】
データセットサイクルと、データリセットサイクルとでは、可変抵抗素子３０の状態を変化させることに加え、ウィークセットを実行するか否かが異なる。データリセットサイクルにおいては、ウィークセットを実行する（ステップＳ１０７）。しかし、データセットサイクルでは、ウィークセットに相当する処理は行わない。なお、データリセットサイクル及びデータセットサイクルにおける確認読み出し動作（ステップＳ１０３、ステップＳ１１１）には相違する点は存在しないので、説明を省略する。また、検証読み出し動作（ステップＳ１０５、ステップＳ１１３）や、一連のサイクルを繰り返す回数の判定（ステップＳ１０６、ステップＳ１１４）についても、データリセットサイクルとデータセットサイクルの相違点は存在しないので、説明を省略する。
【００８０】
ステップＳ１１２では、アレイ制御回路２７は、データセットを実行する。具体的には、アンプ制御部４０は、制御信号Ｐｓｅｔを活性化することで、ビット線ＢＬを電源ＶＳＥＴに接続する。ワード線制御部４１は、制御信号ＷＬｓｅｔを活性化することで、ワード線ＷＬを電源ＶＷＬＳに接続する。電源ＶＳＥＴは電源ＶＥＱよりも高電位な電源として生成されるので、第１の方向により、可変抵抗素子３０に電流が流れる。また、電源ＶＳＥＴは電源ＶＷＳＥＴよりも高電位な電源として生成されるので、ウィークセット時に可変抵抗素子３０に流れる第２の電流よりも大きい第１の電流が可変抵抗素子３０に流れる（図５（ａ）参照）。
【００８１】
ステップＳ１１５において、データセットが完了すれば、プログラムが終了する（ステップＳ１１７）。
【００８２】
ステップＳ１１６において、データセットの失敗が確定すれば、外部にプログラムファイルを通知し、終了する（ステップＳ１１８）。
【００８３】
次に、波形図を参照しつつ、半導体装置１の動作を説明する。
【００８４】
図７は、データリセットサイクル時の波形図の一例を示す図である。
【００８５】
時刻Ｔ０１において、外部からプログラムコマンドが発行されると、制御ロジック回路１３は、データリセットを指示する内部コマンドＩＮＴ＿ｃｏｍを発行する。
【００８６】
時刻Ｔ０２〜Ｔ０３は、確認読み出し動作期間である。確認読み出し動作期間では、アンプ制御部４０は、制御信号ＲＤｅｎを活性化し、ビット線ＢＬ＿ｋを電源ＶＥＱから切り離す。ワード線制御部４１は、ワード線ＷＬ＿ｍを電源ＶＷＬＳに接続する。また、センスアンプ２２が、ビット線ＢＬ＿ｋを電源ＶＥＱにプリチャージをした後にフローティングとし、所定の時間待った後、ビット線ＢＬ＿ｋの電圧と、基準電圧ＶＲＥＦとを比較することでデータの読み出しを行う。図７においては、読み出したデータとメモリセルへの書き込みが指示されたデータは一致せず、判定信号ＪｕｄｇｅはＬレベルに遷移する。
【００８７】
時刻Ｔ０３〜Ｔ０４は、データリセット期間である。データリセット期間では、アンプ制御部４０は、制御信号Ｐｒｅｓｅｔを活性化し、ビット線ＢＬを電源ＶＲＳＴに接続する。また、ワード線制御部４１は、ワード線ＷＬ＿ｍを電源ＶＷＬＲに接続し、選択トランジスタ３１をオンする。その際、電圧ＶＥＱは電圧ＶＲＳＴよりも高電位であるため、可変抵抗素子３０に第２の方向の第３の電流を流し、データリセットを行う。
【００８８】
時刻Ｔ０４〜Ｔ０５は、検証読み出し動作期間である。この検証読み出し期間における制御は、確認読み出し動作期間と同様である。図７においては、読み出したデータとメモリセルへの書き込みが指示されたデータは一致せず、判定信号ＪｕｄｇｅはＬレベルを維持している。そのため、ウィークセットが実行される。
【００８９】
時刻Ｔ０５〜Ｔ０６は、ウィークセット期間である。ウィークセット期間では、アンプ制御部４０は、制御信号Ｐｗｓｅｔを活性化し、ビット線ＢＬ＿ｋを電源ＶＷＳＥＴに接続する。また、ワード線制御部４１は、ワード線ＷＬ＿ｍを電源ＶＷＬＳに接続し、選択トランジスタ３１をオンする。その際、電圧ＶＷＳＥＴは電圧ＶＥＱよりも高電位であるため、可変抵抗素子３０に第１の方向の第２の電流が流れる。しかし、電圧ＶＷＳＥＴは、電圧ＶＳＥＴよりも低い電圧であるため、データセット時に可変抵抗素子３０に流れる第１の電流よりも小さい第２の電流が流れる。
【００９０】
時刻Ｔ０６〜Ｔ０７は、データリセット期間である。時刻Ｔ０７〜Ｔ０８は、検証読み出し動作期間である。図７においては、時刻Ｔ０７〜Ｔ０８における検証読み出し動作期間において、読み出したデータとメモリセルへの書き込みが指示されたデータが一致し、判定信号ＪｕｄｇｅはＨレベルとなる。その後、データリセットサイクルからデータセットサイクルに遷移する。
【００９１】
図８は、データセットサイクル時の波形図の一例を示す図である。
【００９２】
時刻Ｔ１１において、制御ロジック回路１３は、データセットを指示する内部コマンドＩＮＴ＿ｃｏｍを発行する。
【００９３】
時刻Ｔ１２〜Ｔ１３は、確認読み出し動作期間である。データセットサイクルにおける確認読み出し動作と、データリセットサイクルにおける確認読み出し動作とでは相違する点は存在しないので、さらなる説明を省略する。また、データセットサイクルにおける検証読み出し動作と、データリセットサイクルにおける検証読み出し動作に関しても相違する点は存在しないので、さらなる説明を省略する。
【００９４】
時刻Ｔ１３〜Ｔ１４は、データセット期間である。データセット期間では、アンプ制御部４０は、制御信号Ｐｓｅｔを活性化し、ビット線ＢＬ＿ｋを電源ＶＳＥＴに接続する。また、ワード線制御部４１は、ワード線ＷＬ＿ｍを電源ＶＷＬＳに接続し、選択トランジスタ３１をオンする。その際、電圧ＶＳＥＴは電圧ＶＥＱよりも高電圧であるため、可変抵抗素子３０に第１の方向の電流が流れる。また、電圧ＶＳＥＴは、電圧ＶＷＳＥＴよりも高い電圧であるため、ウィークセット時に可変抵抗素子３０に流れる第２の電流よりも大きな第１の電流が可変抵抗素子３０に流れる。第１の電流を可変抵抗素子３０に流し、可変抵抗素子３０を低抵抗状態とすることで、メモリセルにデータをセットする。
【００９５】
図９は、ウィークセットの効果を説明するための図である。図９（ａ）〜（ｄ）において、それぞれの縦軸は良品率（検査をパスするビットの割合；ＰａｓｓＢｉｔ（％））を示し、横軸が判定抵抗値を示す。また、フォーミング抵抗の一桁上とは、フォーミング時の可変抵抗素子の抵抗値が５０Ωの時にデータリセットの判定抵抗値を５００Ωとすることを意味している。つまり、抵抗値が５００Ω以上であればパス（良メモリセル）であり、抵抗値が５００Ω未満であればフェイル（不良メモリセル）である。なお、このような条件は例示であって、材料等の条件が変われば数値も異なる。
【００９６】
図９（ａ）は、フォーミング後、セット状態にある複数のメモリセルに対して、検証読み出し（ベリファイ）及びウィークセットを実行することなく、繰り返しデータリセットを実施した場合にパスしたメモリセルの割合（％）を示す図である。図９（ａ）においては、８回のループ後に約８９％のセルがパスしている。
【００９７】
図９（ｂ）は、ウィークセットは実行しないが、検証読み出しを実施してフェイルのメモリセルにのみ繰り返しデータリセットを実施した場合にパスしたメモリセルの割合（％）を示す図である。図９（ｂ）においては、約９４％のセルがパスしている。図９（ａ）の条件に示すパス結果よりも図９（ｂ）に示すパス結果が良いのは、一度パスしたメモリセルにさらにデータリセットを実施することでフェイルとなってしまうメモリセルの存在を示唆する。
【００９８】
図９（ｃ）は、検証読み出しは実行しないが、ウィークセットを実施してフェイルのメモリセルにのみ繰り返しデータリセットを実施した場合にパスしたメモリセルの割合（％）を示す図である。図９（ｃ）においては、約９３％のセルがパスしており、図９（ａ）の結果よりも大幅に値が良い。即ち、図９（ｃ）からウィークセットの効果を認めることができる。
【００９９】
図９（ｄ）は、検証読み出し及びウィークセットを実施してフェイルのメモリセルにのみ繰り返しデータリセットを実施した場合にパスしたメモリセルの割合（％）を示す図である。図９（ｄ）では、最も良い９６％のメモリセルがパスしている。即ち、ウィークセットを行うことで、データリセットを繰り返すよりも早期にループを終了することができることが期待できる。図９（ｄ）に示す結果は、検証読み出し及びウィークセットを実施する制御が、消費電力及び動作速度の観点から有利であることを示す。
【０１００】
データリセットに失敗した場合の可変抵抗素子は、データリセット時の様な高抵抗ではないものの、データセット時ほど低抵抗ではない不完全な抵抗状態（半端な状態）にあると考えられる。この状態から、例えばデータリセットをさらに行おうとしても、可変抵抗素子そのものが半端に高抵抗となってしまっているがために流れる電流量が小さい。そのため、抵抗変化に十分な電流が流れなくなる。従って、この半端な高抵抗の状態を一度低抵抗側にシフトして電流を流せる状態に戻すべくウィークセットを行う。ここで、ウィークセットではなくデータセットを行ってしまうと、必要以上に低抵抗側にシフトしてしまい、続くデータリセットにおいて高抵抗に届かない恐れがある。従って、データセットよりも弱い（電流の小さい）ウィークセットを行う。
【０１０１】
以上のように、本実施形態に係る半導体装置１では、プログラムにおける同一のメモリセルに対して、データリセットを繰り返し行う場合に、データセットと同じ向きの小さい電流を流すウィークセットを挟む。その結果、必要以上に電流を流さず、かつ、適切な回数でプログラムを完了することができる。
【０１０２】
［第２の実施形態］
続いて、第２の実施形態について図面を参照して詳細に説明する。
【０１０３】
図１０は、本実施形態に係る半導体装置２に含まれるライトアンプ２３ａの回路構成の一例を示す図である。図１０において図３と同一構成要素には、同一の符号を付し、その説明を省略する。
【０１０４】
第１の実施形態において説明したライトアンプ２３は、図１０に示すような回路構成とすることもできる。ライトアンプ２３では、共通のソース電源ＶＳＥＴに対して、２つの基準電源（ＶＳＥＴＲＥＦ、ＶＷＳＥＴＲＥＦ）により電流を制御していた部分を、図１０に示すライトアンプ２３ａでは、電源自体の電位を変えることで対応する。なお、上述のとおり、電源ＶＳＥＴは、電源ＶＷＳＥＴよりも高電位である。図１０に示すライトアンプ２３ａを使用しても、必要以上の電流を流さず、かつ、適切な回数でデータの書き込み動作を完了する半導体装置２が、提供できる。
【０１０５】
［第３の実施形態］
続いて、第３の実施形態について図面を参照して詳細に説明する。
【０１０６】
図１１は、本実施形態に係る半導体装置３に含まれるアレイ制御回路２７ａの内部構成の一例と各バンクに含まれる各種回路の一例を示す図である。図１１において図１と同一構成要素には、同一の符号を付し、その説明を省略する。
【０１０７】
アレイ制御回路２７ａでは、ウィークセット時に可変抵抗素子３０に流す第２の電流を、制御信号Ｐｗｓｅｔにより制御するのではなく、ワード線ＷＬに接続する電源を切り替えることで実現する。より具体的には、データリセットサイクル時においてウィークセットの実行が必要な場合には、ワード線制御部４１ａが、制御信号ＷＬｗｓｅｔを活性化する。
【０１０８】
図１２は、ワード線電源制御部４２ａとワードドライバ４６の回路構成の一例を示す図である。図１２において図４と同一構成要素には、同一の符号を付し、その説明を省略する。ワード線電源制御部４２ａは、制御信号ＷＬｗｓｅｔに応じて、サブワード線ＦＸに電源ＶＷＬＷＳを接続する。電圧ＶＷＬＷＳを、電圧ＶＷＬＳよりも低い電圧とすることで、選択トランジスタ３１のゲートに印加する電圧を低くし、データセット時に可変抵抗素子３０に流れる第１の電流よりも小さい第２の電流を可変抵抗素子３０に流す。
【０１０９】
このように、ワード線ＷＬに接続する電源を切り替えることによっても、必要以上の電流を流さず、かつ、適切な回数でデータの書き込み動作を完了する半導体装置３が、提供できる。
【０１１０】
［第４の実施形態］
続いて、第４の実施形態について図面を参照して詳細に説明する。
【０１１１】
第１乃至第３の実施形態においては、連続してデータセットを行う際には、ウィークリセットを経由しない。上述したように、ウィークリセットとはウィークセットの対になる概念であり、連続してデータセットを行う際、データリセットと同じ方向に電流を流すが、その電流量を小さく制御する動作である。第１乃至第３の実施形態において、ウィークリセットの必要性を説明していない理由は、不完全なデータセット状態であっても、データリセットよりは電流を流すことができるためである（データセットに必要な電流を可変抵抗素子３０に流すことができる）。
【０１１２】
しかしながら、不完全なデータセット状態に対して、さらにデータセットを実行すると、必要以上に低抵抗側にシフトしてしまい、他のデータセット状態にあるメモリセルの抵抗値と乖離が大きくなる（抵抗値のばらつきが大きくなる）ことが懸念される。可変抵抗素子３０の抵抗値のばらつきを低減することにウィークリセットが寄与する。
【０１１３】
図１３は、本実施形態に係る半導体装置４のライトアンプ２３ｂの回路構成の一例を示す図である。図１３において図１０と同一構成要素には、同一の符号を付し、その説明を省略する。
【０１１４】
ライトアンプ２３ｂでは、制御信号Ｐｗｒｅｓｅｔに応じて、ビット線ＢＬに電源ＶＷＲＳＴを接続する。電圧ＶＷＲＳＴを、電圧ＶＲＳＴよりも高い電圧とすることで、可変抵抗素子３０に第２の方向の第４の電流を流しつつ、第４の電流は第３の電流よりも小さくすることで、ウィークリセットを実現する。なお、制御信号Ｐｗｒｅｓｅｔは、本実施形態に係る半導体装置４に含まれるアンプ制御部４０ｂが出力する。
【０１１５】
また、可変抵抗素子３０に第２の方向の第４の電流を流す機能を実現するために図１３ではビット線ＢＬにウィークリセット用の電圧ＶＷＲＳＴを供給する構成としているが、同じ機能を、図１２のようにワード線にウィークリセット用の電位を供給することで実現することも出来る。図１２に示すワード線用の電源にウィークリセット用の電源ＶＷＬＷＲ及び制御信号ＷＬｗｒｓｅｔを加えて、ＷＬｗｒｓｅｔの活性化時にワード線の電位をＶＷＬＷＲＳに制御する。例えば、ＶＷＬＷＲＳとＶＷＬＷＳの電位が同程度で制御出来る場合にはそれらを共有することも可能である。
【０１１６】
図１４は、プログラム実行時の半導体装置４の動作の一例を示すフローチャートである。図１４と図６に示すフローチャートの相違点は、ステップＳ１１９のウィークリセットが追加となる点である。そのため、他のステップに関する説明は省略する。
【０１１７】
半導体装置４では、データセットサイクルにおいて、連続してデータセットを実行する際にはウィークリセット（ステップＳ１１９）を経由することで、可変抵抗素子３０における不完全なデータセット状態を正常なデータリセット状態に戻す。その後、データセットを実行することで、可変抵抗素子３０の抵抗値のばらつきを低減することができる。
【０１１８】
なお、半導体装置１乃至４のインターフェイスはフラッシュメモリと同等としているが、半導体装置のインターフェイスを限定する趣旨ではない。例えば、ＣＰＵ（Central Processing Unit）との混載、ＤＲＡＭ（Dynamic Random Access Memory）と同様のインターフェイスを備えるものであってもよい。また、第１乃至第４の実施形態における可変抵抗素子は所謂ＲｅＲＡＭ（Resistance Random Access Memory）を用いて説明したが、その他ＭＲＡＭ（Magnetoresistive Random Access Memory）等への適用も可能である。
【０１１９】
なお、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【０１２０】
１〜４  半導体装置
１０  内部電源発生回路
１１  制御信号入力回路
１２  入出力制御回路
１３  制御ロジック回路
１４  コマンドレジスタ
１５  ステータスレジスタ
１６  アドレスレジスタ
１７  ロウアドレスバッファ
１８  カラムアドレスバッファ
１９  ロウデコーダ
２０  カラムデコーダ
２１  メモリセルアレイ
２２  センスアンプ
２３、２３ａ、２３ｂ  ライトアンプ
２４  ベリファイ判定回路
２５  データバッファ
２６  バッファ
２７、２７ａ  アレイ制御回路
３０  可変抵抗素子
３１  選択トランジスタ
４０、４０ａ、４０ｂ  アンプ制御部
４１、４１ａ  ワード線制御部
４２、４２ａ  ワード線電源制御部
４３  論理積回路
４４  ゲート回路
４５  ＳＲラッチ
４６  ワードドライバ
ＩＮＶ０１〜ＩＮＶ０７  インバータ回路
Ｎ０１〜Ｎ０４  Ｎチャンネル型ＭＯＳトランジスタ
ＮＡＮＤ０１、ＮＡＮＤ０２  否定論理積回路
ＮＯＲ０１、ＮＯＲ０２  否定論理和回路
Ｐ０１〜Ｐ０４  Ｐチャンネル型ＭＯＳトランジスタ
Ｔ０１〜ＴＧ０５  トランスファーゲート
【図１】
2014102866.tif 000003
【図２】
2014102866.tif 000004
【図３】
2014102866.tif 000005
【図４】
2014102866.tif 000006
【図５】
2014102866.tif 000007
【図６】
2014102866.tif 000008
【図７】
2014102866.tif 000009
【図８】
2014102866.tif 000010
【図１０】
2014102866.tif 000011
【図１１】
2014102866.tif 000012
【図１２】
2014102866.tif 000013
【図１３】
2014102866.tif 000014
【図１４】
2014102866.tif 000015
【図９】
2014102866.tif 000016