以下、図面を参照しながら実施例を説明する。
以下の実施例は、書き込み動作がメモリセルに書き込み電流を流すことにより行われる不揮発性半導体メモリ、例えば、メモリセルアレイが複数のセルユニットを備え、かつ、1つのセルユニットが直列接続されるメモリセルとアクセストランジスタと、を備える不揮発性半導体メモリに適用される。
ここで、メモリセルとは、データを記憶する素子のことである。例えば、メモリセルは、磁気抵抗効果素子、相変化素子などの抵抗変化素子を備える。また、アクセストランジスタとは、メモリセルアレイの複数のロウのうちの1つを選択する素子のことである。例えば、アクセストランジスタは、ゲートがワード線に接続されるFET(Field Effect Transistor)を備える。
このような不揮発性半導体メモリにおいて、以下の実施例では、メモリセルの書き込み特性(書き込みに必要な書き込みパルス幅)に応じて、メモリセル毎に、書き込みパルス幅を可変とする技術を提案する。
従来、書き込みパルス幅は、一定であり、かつ、書き込みエラーを防止するため、書き込み特性が最も悪いメモリセルに合わせて長めに設定するのが一般的である。この場合、書き込み特性が良いメモリセルについては、早期に書き込みが完了し、かつ、書き込みが完了した後も書き込み電流が流れ続けることになる。これでは、書き込み時の低消費電力化を図ることが難しい。
しかし、メモリセル毎に書き込みパルス幅が可変可能であれば、メモリセルの書き込み特性に応じて、メモリセル毎に最適な書き込みパルス幅を設定できる。この場合、メモリセルの書き込み特性によらず、全てのメモリセルについて、書き込みが完了した直後に書き込み電流を停止させることができる。従って、書き込み時の低消費電力化を図ることができる。
ところで、メモリセル毎に書き込みパルス幅を最適値に設定するためには、メモリセル毎に書き込みが完了したか否かを正確に検出する必要がある。
そのために、以下の実施例では、第一に、データ書き込みの対象となる現在アクセスしているメモリセルに流れる書き込み電流をモニタリングし、それから検出値(電流値/電圧値)を生成する。また、この検出値を、参照値(電流値/電圧値)と比較することにより、書き込みが完了したか否かを判定する。
また、第二に、参照値は、固定値ではなく、メモリセル毎に、そのメモリセルに流れる書き込み電流に基づいて生成する。なぜなら、参照値が固定値のときは、メモリセルの“0”/“1”抵抗値のばらつきや、配線抵抗/容量に起因するノイズなどにより、参照値が閾値として機能しなくなる場合があるからである。
例えば、メモリセルに書き込み電流を流し始めた後、かつ、メモリセルの抵抗値が変化する前(書き込みが完了する前)に、メモリセルに流れる書き込み電流に基づいて、参照値を生成する。即ち、メモリセルに書き込み電流を流し始めてから書き込み電流が第1の安定値に達したとき、その第1の安定値に基づいて参照値を生成する。
また、参照値を生成した後、メモリセルに書き込み電流を流し続けると、メモリセルの抵抗値が変化する、即ち、書き込みが完了するため、メモリセルに流れる書き込み電流は、第1の安定値から第2の安定値に変化する。この変化は、検出値の変化として表れるため、上述のように、検出値を参照値と比較することにより、書き込みが完了したか否かを判定する。
このように、メモリセルによらず、参照値を、常に、書き込み完了前のメモリセルに流れるセル電流(検出値)と、書き込み完了後のメモリセルに流れるセル電流(検出値)と、の中間値に設定することにより、書き込みが完了したか否かを正確に検出できる。
[全体構成]
図1は、不揮発性半導体メモリの主要部を示している。
メモリセルアレイ11は、複数のセルユニットCUのアレイを備える。複数のセルユニットCUの各々は、例えば、直列接続されるメモリセルとアクセストランジスタとを備える。i本のワード線WL0, WL1, …WL(i-1)は、例えば、アクセストランジスタの制御端子に接続される。但し、iは、2以上の自然数である。
ワード線ドライバ12は、i本のワード線WL0, WL1, …WL(i-1)の一端に接続される。ワード線ドライバ12は、アドレス信号に基づいて、i本のワード線WL0, WL1, …WL(i-1)のうちの1本、即ち、メモリセルアレイ11の複数のロウのうちの1つを選択する。
j個の書き込み回路13a-0, 13a-1, …13a-(j-1)は、複数のカラムに対応して設けられる。但し、jは、2以上の自然数である。書き込み回路13a-0, 13a-1, …13a-(j-1)は、それぞれ、ビット線対BL0, bBL0, BL1, bBL1, …BL(j-1), bBL(j-1)に接続される。本例では、1つのカラムに対して1つの書き込み回路13a-x(xは、1〜(j-1)のうちの1つ)が設けられるが、これに代えて、複数のカラムに対して1つの書き込み回路13a-xを設けてもよい。
書き込み回路13a-0, 13a-1, …13a-(j-1)は、それぞれ、セルユニットCU内のメモリセルを第1の抵抗値から第2の抵抗値に変化させる書き込み電流を生成する書き込みドライバを備える。但し、メモリセルが2値を記憶可能であるときは、第1及び第2の抵抗値は、互いに異なる抵抗値である。また、メモリセルが3値以上の多値を記憶可能であるときは、第1及び第2の抵抗値は、3つ以上の抵抗値のうちの1つである。
同様に、j個の書き込み回路13b-0, 13b-1, …13b-(j-1)は、複数のカラムに対応して設けられる。書き込み回路13b-0, 13b-1, …13b-(j-1)は、それぞれ、ビット線対BL0, bBL0, BL1, bBL1, …BL(j-1), bBL(j-1)に接続される。本例では、1つのカラムに対して1つの書き込み回路13b-y(yは、1〜(j-1)のうちの1つ)が設けられるが、これに代えて、複数のカラムに対して1つの書き込み回路13b-yを設けてもよい。
書き込み回路13b-0, 13b-1, …13b-(j-1)は、それぞれ、書き込み回路13a-0, 13a-1, …13a-(j-1)で生成された書き込み電流を吸収する書き込みシンカーを備える。
制御回路16は、第1の書き込みイネーブル信号WE及びホールド信号HOLDを生成する。第1の書き込みイネーブル信号WEは、不揮発性半導体メモリ(チップ)内の全ての書き込み回路13a-0, 13a-1, …13a-(j-1)に共通に供給される。ホールド信号HOLDは、参照値を求めるためのサンプリングポイントを決定する。
第1の書き込みイネーブル信号WE及びホールド信号HOLDは、書き込み電流制御回路(C)14-0, 14-1, …14-(j-1)に入力される。
書き込み電流制御回路(C)14-0, 14-1, …14-(j-1)は、第1の書き込みイネーブル信号WE、及び、書き込み停止信号Wstop0, Wstop1, …Wstop(j-1)に基づいて、第2の書き込みイネーブル信号WE0, WE1, …WE(j-1)を生成し、かつ、第2の書き込みイネーブル信号WE0, WE1, …WE(j-1)により、セルユニットCU内のメモリセルに流れる書き込み電流を停止する。
第1の書き込みイネーブル信号WEは、セルユニットCU内のメモリセルに書き込み電流を流し得る最大の期間を決定する。しかし、上述のように、メモリセルの書き込み特性は、メモリセル毎に異なるのが一般的である。そこで、メモリセルの書き込み特性に応じて、第1の書き込みイネーブル信号WEを短縮した第2の書き込みイネーブル信号WE0, WE1, …WE(j-1)を生成する。
第2の書き込みイネーブル信号WE0, WE1, …WE(j-1)、及び、書き込みデータDATA0, DATA1, …DATA(j-1)は、それぞれ、書き込み回路13a-0, 13a-1, …13a-(j-1)に入力される。また、書き込みデータDATA0, DATA1, …DATA(j-1)は、それぞれ、書き込み回路13a-0, 13a-1, …13a-(j-1)に入力される。
書き込み電流検出回路(D)15-0, 15-1, …15-(j-1)は、それぞれ、現在アクセスしているセルユニットCUに流れるセル電流、即ち、書き込み回路13a-0, 13a-1, …13a-(j-1)に流れるセル電流に基づいて、書き込み停止信号Wstop0, Wstop1, …Wstop(j-1)を生成する。書き込み停止信号Wstop0, Wstop1, …Wstop(j-1)は、それぞれ、書き込み電流制御回路(C)14-0, 14-1, …14-(j-1)に入力される。
ここで、以下の説明において、説明を簡単にするため、書き込みデータDATA0, DATA1, …DATA(j-1)について次のように定義する。但し、この定義は、説明を分かり易くするためのものであり、各実施形態がこの定義に限定されるという主旨ではない。
メモリセル(抵抗変化素子)は、高抵抗状態(“0”−状態)と、低抵抗状態(“1”−状態)を記憶可能であるものとする。
“0”−書き込みは、書き込みデータDATA0, DATA1, …DATA(j-1)が“0”であることを意味する。“0”−書き込みは、メモリセルの抵抗値を低抵抗状態から高抵抗状態に変化させる動作のことである。
“1”−書き込みは、書き込みデータDATA0, DATA1, …DATA(j-1)が“1”であることを意味する。“1”−書き込みは、メモリセルの抵抗値を高抵抗状態から低抵抗状態に変化させる動作のことである。
また、“0”は、ロジックの“L(low level)”に対応し、“1”は、ロジックの“H(high level)”に対応するものとする。
[書き込み電流制御回路]
図2Aは、書き込み電流制御回路の例を示している。
まず、前提として、書き込み回路13a-0, 13b-0、及び、セルユニットCUについて説明する。
書き込み回路13a-0は、Pチャネル型FET T0及び書き込みドライバ21を備える。Pチャネル型FET T0は、書き込み電流Iw(t)を生成する。書き込みドライバ21は、第2の書き込みイネーブル信号WE0が“1”(High level)のとき、書き込み電流Iw(t)をメモリセルMCに供給する。
また、書き込み回路13a-0は、スイッチ素子SWa, SWbを備える。書き込みデータDATA0が“0”(Low level)のとき、スイッチ素子SWaは、オンとなり、スイッチ素子SWbは、オフとなる。書き込みデータDATA0が“1”(High level)のとき、スイッチ素子SWaは、オフとなり、スイッチ素子SWbは、オンとなる。
スイッチ素子SWa, SWbは、例えば、Pチャネル型FETを備える。
書き込み回路13b-0は、スイッチ素子SWc, SWdを備える。書き込みデータDATA0が“0”(Low level)のとき、スイッチ素子SWcは、オフとなり、スイッチ素子SWdは、オンとなる。書き込みデータDATA0が“1”(High level)のとき、スイッチ素子SWcは、オンとなり、スイッチ素子SWdは、オフとなる。
スイッチ素子SWc, SWdは、例えば、Nチャネル型FWTを備える。
bDATAは、DATAの反転信号である。
セルユニットCUは、ビット線対BL0, bBL間に接続され、かつ、直列接続されるメモリセルMC及びアクセストランジスタATを含む。rcellは、メモリセルMCの抵抗値である。
メモリセルMCは、例えば、2端子素子であり、書き込み電流(双方向電流)により抵抗値が変化する抵抗変化素子である。アクセストランジスタATは、例えば、ゲート(制御端子)、ソース、及び、ドレインを有するFETである。アクセストランジスタATのゲートは、ワード線WL0に接続される。
このような前提条件の下、書き込み電流制御回路14-0は、書き込み停止信号Wstop0に基づいて、第1の書き込みイネーブル信号WEを短縮した第2の書き込みイネーブル信号WE0を生成し、かつ、第2の書き込みイネーブル信号WE0によりメモリセルMCに流れる書き込み電流Iw(t)を停止する。
そのために、書き込み電流制御回路14-0は、例えば、エクスクルーシブノア回路Ex-NOR、及び、アンド回路AND1を備える。
書き込みデータDATA0及び書き込み停止信号Wstop0は、エクスクルーシブノア回路Ex-NORに入力される。
例えば、書き込みデータDATA0が“0”(Low level)のとき、書き込み完了前においては、書き込み電流検出回路15-0は、書き込み停止信号Wstop0を出力しない。即ち、書き込み停止信号Wstop0は、“0”である。従って、エクスクルーシブノア回路Ex-NORの出力信号は、“1”(High level)である。
従って、第1の書き込みイネーブル信号WEが“1”になると、第2の書き込みイネーブル信号WE0も“1”になるため、書き込みドライバ21が動作状態となり、書き込み電流Iw(t)が流れる。
また、書き込み完了後においては、書き込み電流検出回路15-0は、書き込み停止信号Wstop0を出力する。即ち、書き込み停止信号Wstop0は、“1”である。従って、エクスクルーシブノア回路Ex-NORの出力信号は、“1”から“0”に変化する。
従って、第1の書き込みイネーブル信号WEが“1”であっても、第2の書き込みイネーブル信号WE0は、“1”から“0”に変化し、書き込みドライバ21が非動作状態となり、書き込み電流Iw(t)が停止する。
一方、書き込みデータDATA0が“1”のとき、書き込み完了前においては、書き込み電流検出回路15-0は、書き込み停止信号Wstop0を出力しない。即ち、書き込み停止信号Wstop0は、“1”である(書き込みデータDATA0が“0”のときと、論理が逆である点に注意を要する)。従って、エクスクルーシブノア回路Ex-NORの出力信号は、“1”である。
従って、第1の書き込みイネーブル信号WEが“1”になると、第2の書き込みイネーブル信号WE0も“1”になるため、書き込みドライバ21が動作状態となり、書き込み電流Iw(t)が流れる。
また、書き込み完了後においては、書き込み電流検出回路15-0は、書き込み停止信号Wstop0を出力する。即ち、書き込み停止信号Wstop0は、“0”である。従って、エクスクルーシブノア回路Ex-NORの出力信号は、“1”から“0”に変化する。
従って、第1の書き込みイネーブル信号WEが“1”であっても、第2の書き込みイネーブル信号WE0は、“1”から“0”に変化し、書き込みドライバ21が非動作状態となり、書き込み電流Iw(t)が停止する。
図2Bは、書き込み電流制御回路の他の例を示している。
この例は、書き込み停止信号Wstop0が、参照値を求めるためのサンプリングポイント以降に有効となるようなロジック回路を追加した例である。
従って、仮に、参照値が確定する前、即ち、サンプリングポイント前に、書き込み停止信号Wstop0が出力されても、それは無視される。
そのために、本例では、書き込み電流制御回路14-0内に、さらに、アンド回路AND2及びオア回路ORを設ける。
第1の書き込みイネーブル信号WEが“0”のとき、第2の書き込みイネーブル信号WE0も、“0”である。従って、書き込みドライバ21は、非動作状態である。
サンプリングポイント前において、ホールド信号HOLDは、“0”であり、ホールド信号HOLDの反転信号bHOLDは、“1”である。このため、エクスクルーシブノア回路Ex-NORの出力信号にかかわらず、アンド回路AND2の出力信号は、“0”であり、オア回路ORの出力信号は、“1”である。従って、第1の書き込みイネーブル信号WEが“1”になると、第2の書き込みイネーブル信号WE0も、“1”になる。その結果、書き込みドライバ21は、動作状態となり、書き込み電流が流れる。
ホールド信号HOLDは、サンプリングポイントにおいて“0”から“1”に変化する。
サンプリングポイント後において、ホールド信号HOLDは、“1”であり、ホールド信号HOLDの反転信号bHOLDは、“0”である。このため、エクスクルーシブノア回路Ex-NORの出力信号に応じて、アンド回路AND2の出力信号が変化する。また、オア回路ORは、アンド回路AND2の出力信号をそのまま出力する。
例えば、書き込みデータDATA0が“0”で、書き込み電流検出回路15-0からの書き込み停止信号Wstop0が“0”であるとき(書き込み完了前)、エクスクルーシブノア回路Ex-NORの出力信号は、“1”である。このため、アンド回路AND2の出力信号は、“1”であり、オア回路ORの出力信号も“1”である。従って、第2の書き込みイネーブル信号WE0も、“1”である。その結果、書き込みドライバ21は、動作状態であり、書き込み電流は、流れ続ける。
これに対し、書き込みデータDATA0が“0”で、書き込み電流検出回路15-0からの書き込み停止信号Wstop0が“1”であるとき(書き込み完了後)、エクスクルーシブノア回路Ex-NORの出力信号は、“0”である。このため、アンド回路AND2の出力信号は、“0”であり、オア回路ORの出力信号も“0”である。従って、第2の書き込みイネーブル信号WE0も、“0”である。その結果、書き込みドライバ21は、非動作状態であり、書き込み電流は、停止する。
また、書き込みデータDATA0が“1”で、書き込み電流検出回路15-0からの書き込み停止信号Wstop0が“1”であるとき(書き込み完了前)、エクスクルーシブノア回路Ex-NORの出力信号は、“1”である。このため、アンド回路AND2の出力信号は、“1”であり、オア回路ORの出力信号も“1”である。従って、第2の書き込みイネーブル信号WE0も、“1”である。その結果、書き込みドライバ21は、動作状態であり、書き込み電流は、流れ続ける。
これに対し、書き込みデータDATA0が“1”で、書き込み電流検出回路15-0からの書き込み停止信号Wstop0が“0”であるとき(書き込み完了後)、エクスクルーシブノア回路Ex-NORの出力信号は、“0”である。このため、アンド回路AND2の出力信号は、“0”であり、オア回路ORの出力信号も“0”である。従って、第2の書き込みイネーブル信号WE0も、“0”である。その結果、書き込みドライバ21は、非動作状態であり、書き込み電流は、停止する。
[書き込み電流検出回路の例]
図3は、“0”−書き込み時の書き込み電流検出回路の例を示している。
書き込み回路13a-0, 13b-0、及び、セルユニットCUは、上述の書き込み電流制御回路の例と同じである。即ち、図3の第2の書き込みイネーブル信号WE0は、図2A又は図2Bの第2の書き込みイネーブル信号WE0に対応する。
まず、書き込み電流検出回路15-0は、メモリセルMCに流れる書き込み電流Iw(t)に基づいて検出値Vmirror(t)を生成する。なお、Iw(t)及びVmirror(t)における(t)は、それぞれ、書き込み電流及び検出値が時刻tにより変化することを意味する。
例えば、図4に示すように、時刻t0に、第1及び第2の書き込みイネーブル信号WE, WE0がHigh levelとなり、かつ、ワード線WL0がHigh levelになると、時刻t1に、メモリセルMCに書き込み電流Iw(t)が流れ始める。図4では、第1及び第2の書き込みイネーブル信号WE, WE0が立ち上がるタイミングとワード線WL0が立ち上がるタイミングとは、同じであるが、互いに異なっていてもよい。
書き込み電流検出回路15-0は、書き込み電流Iw(t)をコピーするカレントミラー回路を備える。このカレントミラー回路は、書き込み電流Iw(t)を流すPチャネル型FET T0に対応して、Pチャネル型FET T11を備える。但し、2つのPチャネル型FET T0, T11のサイズ比(駆動力比)は、T0:T11=x:y1である。xとy1は同じ(T0:T1=1:1)であってもよいし、互いに異なっていてもよい。
Pチャネル型FET T11は、書き込み電流Iw(t)にリアルタイムに追従するコピー電流Iw’(t)を生成する。なお、Iw’(t)における(t)は、コピー電流が時刻tにより変化することを意味する。
例えば、コピー電流Iw’(t)は、抵抗素子R1により電圧に変換される。この電圧は、検出値Vmirror(t)となり、比較器23に入力される。但し、Iw’(t)=(y1/x)×Iw(t)、かつ、Vmirror(t)=Iw’(t)×r1であり、r1は、抵抗素子R1の抵抗値である。
次に、書き込み電流検出回路15-0は、メモリセルMCに書き込み電流Iw(t)を流し始めた後、メモリセルMCの抵抗値が変化する前のサンプリングポイントにおいて、メモリセルMCに流れる書き込み電流Iw(t)に基づいて参照値を生成する。
例えば、図4に示すように、書き込み電流Iw(t)が第1の安定値(最初の安定値)Aに達してから、メモリセルMCの抵抗値が変化するまでの期間Tにおいて、サンプリングポイントtholdを設定する。メモリセルMCは、第1の安定値(期間T)では、書き込み完了前の抵抗状態、本例では、低抵抗状態(“1”−状態)を有しているため、書き込み電流Iw(t)は、大きな値を有している。
このため、サンプリングポイントtholdでは、メモリセルMCに流れる書き込み電流Iw(t)に基づいて、書き込み電流Iw(t)が大きな値から小さな値に変化する時点を検出するための閾値となる参照値Vrefを生成する。
そのために、書き込み電流検出回路15-0は、書き込み電流Iw(t)をコピーするカレントミラー回路を備える。このカレントミラー回路は、書き込み電流Iw(t)を流すPチャネル型FET T0に対応して、Pチャネル型FET T13を備える。但し、2つのPチャネル型FET T0, T13のサイズ比(駆動力比)は、T0:T13=x:y3である。また、y3は、xよりも小さい。また、スイッチ素子SWfは、書き込みデータDATA0(=“0”)に基づいて、Pチャネル型FET T13のゲートをPチャネル型FET T0のゲートに接続する。
Pチャネル型FET T13は、書き込み電流Iw(t)にリアルタイムに追従するコピー電流Iw’(t)×αを生成する。但し、αは、2つのPチャネル型FET T0, T13のサイズ比(駆動力比)に依存し、α=y3/xである。例えば、αは、メモリセルMCが低抵抗状態(“1”−状態)から高抵抗状態(“0”−状態)に変化する時点、即ち、書き込み電流Iw(t)が大きな値から小さな値に変化する時点を検出するため、1よりも小さい値、例えば、0.8に設定される。
また、コピー電流Iw’(t)×αは、抵抗素子R2により電圧に変換される。この電圧は、サンプルホールド回路22に入力される。また、サンプルホールド回路22は、サンプリングポイントthold、即ち、ホールド信号HOLDがLow levelからHigh levelに変化した時点で、この電圧をホールドする。
サンプルホールド回路22内にホールドされた電圧は、参照値Vrefとなる。参照値Vrefは、比較器23に入力される。但し、Vref=Iw’(t=thold)×α×r2であり、r2は、抵抗素子R2の抵抗値である。Iw’(t=thold)における(t=thold)は、時刻t=tholdにおけるコピー電流の値を意味する。
また、サンプリングポイントtholdにおいて、参照値Vrefが確定し、比較器23の出力(書き込み停止信号Wstop0)が、Low levelにリセットされる。
最後に、書き込み電流検出回路15-0は、検出値Vmirror(t)が参照値Vrefを横切ったときに書き込み停止信号Wstop0を出力する。
例えば、図4に示すように、書き込み電流Iw(t)により、メモリセルMCが低抵抗状態(“1”−状態)から高抵抗状態(“0”−状態)に変化すると、Vmirror(t)は、第1の安定値Aから第2の安定値Bに変化する。そこで、比較器23を用いて、検出値Vmirror(t)が参照値Vrefよりも小さくなった時点を検出することにより、“0”−書き込み動作における書き込み完了の有無を判断することができる。
比較器23は、書き込み完了後の時刻t2に、書き込み停止信号Wstop0を出力する。本例では、書き込み停止信号Wstop0は、High levelである。書き込み停止信号Wstop0は、書き込み電流制御回路(図2A又は図2B)にフィードバックされるため、時刻t3に、第2の書き込みイネーブル信号WE0がLow levelになる。従って、書き込み電流Iw(t)は、停止する。
ここで、第1の書き込みイネーブル信号WEは、書き込み特性が最も悪いメモリセルに対しても書き込みが行えるように、そのパルス幅は、時刻t0から時刻t4まで、長めに設定される。これに対し、本例によれば、上述のように、メモリセルMCの書き込みが早く完了したとき、第2の書き込みイネーブル信号WE0のパルス幅を、時刻t0から時刻t3まで、短めに設定することができる。即ち、時刻t3から時刻t4までの期間に生じる書き込み電流をなくすことができるため、低消費電力に貢献できる。
なお、本例では、書き込み完了の有無を判断する参照値(閾値)は、現在アクセスしているメモリセルMCに流れる書き込み電流(書き込み完了前)に基づいて生成される。
また、本例(“0”−書き込み)では、メモリセルMCに流れる書き込み電流Iw(t)は、大きな値から小さな値へ変化する。このため、参照値Vrefは、大きな値としての書き込み電流Iw(t)から求めなければならない。
これに対し、“1”−書き込みでは、メモリセルMCに流れる書き込み電流Iw(t)は、小さなちから大きな値へ変化する。このため、参照値Vrefは、小さな値としての書き込み電流Iw(t)から求めなければならない。
つまり、“0”−書き込み時の参照値Vrefを生成するカレントミラー回路とは別に、“1”−書き込み時の参照値Vrefを生成するカレントミラー回路を設ける必要がある。
そのために、書き込み電流検出回路15-0は、さらに、Pチャネル型FET T12、及び、スイッチ素子SWeを備える。Pチャネル型FET T12は、“1”−書き込み時の参照値Vrerを生成するカレントミラー回路である。本例のように、“0”−書き込みの場合、スイッチ素子SWeは、Pチャネル型FET T12のゲートを電源端子Vddに接続する。即ち、“0”−書き込み時において、Pチャネル型FET T12は、オフ状態である。
図5は、“1”−書き込み時の書き込み電流検出回路の例を示している。
書き込み回路13a-0, 13b-0、及び、セルユニットCUは、上述の書き込み電流制御回路の例と同じである。即ち、図5の第2の書き込みイネーブル信号WE0は、図2A又は図2Bの第2の書き込みイネーブル信号WE0に対応する。
また、書き込み電流検出回路15-0において、メモリセルMCに流れる書き込み電流Iw(t)に基づいて検出値Vmirror(t)を生成するために、Pチャネル型FET T11、及び、抵抗素子R1を設ける点は、図3と同じである。
例えば、図6に示すように、時刻t0に、第1及び第2の書き込みイネーブル信号WE, WE0がHigh levelとなり、かつ、ワード線WL0がHigh levelになると、時刻t1に、メモリセルMCに書き込み電流Iw(t)が流れ始める。
Pチャネル型FET T11は、書き込み電流Iw(t)にリアルタイムに追従するコピー電流Iw’(t)を生成する。例えば、コピー電流Iw’(t)は、抵抗素子R1により電圧に変換される。この電圧は、検出値Vmirror(t)となり、比較器23に入力される。但し、Iw’(t)=(y1/x)×Iw(t)、かつ、Vmirror(t)=Iw’(t)×r1であり、r1は、抵抗素子R1の抵抗値である。
次に、書き込み電流検出回路15-0は、メモリセルMCに書き込み電流Iw(t)を流し始めた後、メモリセルMCの抵抗値が変化する前のサンプリングポイントにおいて、メモリセルMCに流れる書き込み電流Iw(t)に基づいて参照値を生成する。
例えば、図6に示すように、書き込み電流Iw(t)が第1の安定値(最初の安定値)Aに達してから、メモリセルMCの抵抗値が変化するまでの期間Tにおいて、サンプリングポイントtholdを設定する。メモリセルMCは、第1の安定値(期間T)では、書き込み完了前の抵抗状態、本例では、高抵抗状態(“0”−状態)を有しているため、書き込み電流Iw(t)は、小さな値を有している。
このため、サンプリングポイントtholdでは、メモリセルMCに流れる書き込み電流Iw(t)に基づいて、書き込み電流Iw(t)が小さなちから大きな値に変化する時点を検出するための閾値となる参照値Vrefを生成する。
そのために、書き込み電流検出回路15-0は、書き込み電流Iw(t)をコピーするカレントミラー回路を備える。このカレントミラー回路は、書き込み電流Iw(t)を流すPチャネル型FET T0に対応して、Pチャネル型FET T12を備える。但し、2つのPチャネル型FET T0, T12のサイズ比(駆動力比)は、T0:T12=x:y2である。また、y2は、xよりも大きい。また、スイッチ素子SWeは、書き込みデータDATA0(=“1”)の反転データbDATA(=“0”)に基づいて、Pチャネル型FET T12のゲートをPチャネル型FET T0のゲートに接続する。
Pチャネル型FET T12は、書き込み電流Iw(t)にリアルタイムに追従するコピー電流Iw’(t)×βを生成する。但し、βは、2つのPチャネル型FET T0, T12のサイズ比(駆動力比)に依存し、β=y2/xである。例えば、βは、メモリセルMCが高抵抗状態(“0”−状態)から低抵抗状態(“1”−状態)に変化する時点、即ち、書き込み電流Iw(t)が小さなちから大きな値に変化する時点を検出するため、1よりも大きい値、例えば、1.2に設定される。
また、コピー電流Iw’(t)×βは、抵抗素子R2により電圧に変換される。この電圧は、サンプルホールド回路22に入力される。また、サンプルホールド回路22は、サンプリングポイントthold、即ち、ホールド信号HOLDがLow levelからHigh levelに変化した時点で、この電圧をホールドする。
サンプルホールド回路22内にホールドされた電圧は、参照値Vrefとなる。参照値Vrefは、比較器23に入力される。但し、Vref=Iw’(t=thold)×β×r2であり、r2は、抵抗素子R2の抵抗値である。
また、サンプリングポイントtholdにおいて、参照値Vrefが確定し、比較器23の出力(書き込み停止信号Wstop0)が、High levelにリセットされる。
最後に、書き込み電流検出回路15-0は、検出値Vmirror(t)が参照値Vrefを横切ったときに書き込み停止信号Wstop0を出力する。
例えば、図6に示すように、書き込み電流Iw(t)により、メモリセルMCが高抵抗状態(“0”−状態)から低抵抗状態(“1”−状態)に変化すると、Vmirror(t)は、第1の安定値Aから第2の安定値Bに変化する。そこで、比較器23を用いて、検出値Vmirror(t)が参照値Vrefよりも大きくなった時点を検出することにより、“1”−書き込み動作における書き込み完了の有無を判断することができる。
比較器23は、書き込み完了後の時刻t2に、書き込み停止信号Wstop0を出力する。本例では、書き込み停止信号Wstop0は、Low levelである。書き込み停止信号Wstop0は、書き込み電流制御回路(図2A又は図2B)にフィードバックされるため、時刻t3に、第2の書き込みイネーブル信号WE0がLow levelになる。従って、書き込み電流Iw(t)は、停止する。
ここで、第1の書き込みイネーブル信号WEのパルス幅は、時刻t0から時刻t4まで、長めに設定される。これに対し、本例によれば、上述のように、メモリセルMCの書き込みが早く完了したとき、第2の書き込みイネーブル信号WE0のパルス幅を、時刻t0から時刻t3まで、短めに設定することができる。即ち、時刻t3から時刻t4までの期間に生じる書き込み電流をなくすことができるため、低消費電力に貢献できる。
なお、書き込み電流検出回路15-0は、さらに、Pチャネル型FET T13、及び、スイッチ素子SWfを備える。図3及び図4で説明したように、Pチャネル型FET T13は、“0”−書き込み時の参照値Vrerを生成するカレントミラー回路である。本例のように、“1”−書き込みの場合、スイッチ素子SWfは、Pチャネル型FET T13のゲートを電源端子Vddに接続する。即ち、“1”−書き込み時において、Pチャネル型FET T13は、オフ状態である。
[書き込み電流検出回路の変形例]
図7乃至図10は、書き込み電流検出回路の変形例を示している。
図7及び図8の例は、書き込み電流(セル電流)とコピー電流との比率(カレントミラー比)を、トランジスタ(FET)の数で調整する例である。但し、書き込み回路13a-0及び書き込み電流検出回路15-0内の全てのトランジスタは、同じサイズ(同じ駆動力)を有しているものとする。
図7は、図3に対応し、図8は、図5に対応する。図7及び図8において、図3及び図5と同じ要素には同じ符号を付すことにより、その詳細な説明を省略する。
書き込み電流Iw(t)を生成するPチャネル型FET T0が1個のトランジスタを備え、かつ、そのサイズ(駆動力)がxであるとき、例えば、Pチャネル型FET T11は、2個のトランジスタを備え、かつ、そのサイズ(駆動力)は、2xに設定される。また、Pチャネル型FET T12は、3個のトランジスタを備え、かつ、そのサイズ(駆動力)は、3xに設定される。さらに、Pチャネル型FET T13は、1個のトランジスタを備え、かつ、そのサイズ(駆動力)は、xに設定される。
そして、図7に示すように、“0”−書き込み時においては、Pチャネル型FET T11は、書き込み電流Iw(t)にリアルタイムに追従するコピー電流Iw(t)×2を生成する。コピー電流Iw(t)×2は、抵抗素子R1により電圧に変換される。この電圧は、検出値Vmirror(t)となり、比較器23に入力される。但し、Vmirror(t)=Iw(t)×2×r1であり、r1は、抵抗素子R1の抵抗値である。
また、スイッチ素子SWfは、書き込みデータDATA0(=“0”)に基づいて、Pチャネル型FET T13のゲートをPチャネル型FET T0のゲートに接続する。Pチャネル型FET T13は、書き込み電流Iw(t)にリアルタイムに追従するコピー電流Iw(t)を生成する。コピー電流Iw(t)は、抵抗素子R2により電圧に変換される。
この電圧は、サンプルホールド回路22に入力される。また、サンプルホールド回路22は、サンプリングポイントthold、即ち、ホールド信号HOLDがLow levelからHigh levelに変化した時点で、この電圧をホールドする。
サンプルホールド回路22内にホールドされた電圧は、参照値Vrefとなる。参照値Vrefは、比較器23に入力される。但し、Vref=Iw(t=thold)×r2であり、r2は、抵抗素子R2の抵抗値である。
また、サンプリングポイントtholdにおいて、参照値Vrefが確定し、比較器23の出力(書き込み停止信号Wstop0)が、Low levelにリセットされる。
なお、“0”−書き込みの場合、スイッチ素子SWeは、Pチャネル型FET T12のゲートを電源端子Vddに接続する。即ち、“0”−書き込み時において、Pチャネル型FET T12は、オフ状態である。
本例によれば、参照値Vref=Iw(t=thold)×r2を、書き込み完了前の検出値Vmirror(t≦thold)=Iw(t)×2×r1よりも小さな値、例えば、Vref=0.8×Vmirror(t≦thold)となるように、トランジスタの数や、抵抗素子R1, R2の抵抗値r1, r2により、制御することが可能となる。
一方、図8に示すように、“1”−書き込み時においては、Pチャネル型FET T11は、書き込み電流Iw(t)にリアルタイムに追従するコピー電流Iw(t)×2を生成する。コピー電流Iw(t)×2は、抵抗素子R1により電圧に変換される。この電圧は、検出値Vmirror(t)となり、比較器23に入力される。但し、Vmirror(t)=Iw(t)×2×r1であり、r1は、抵抗素子R1の抵抗値である。
また、スイッチ素子SWeは、書き込みデータDATA0の反転データbDATA0(=“0”)に基づいて、Pチャネル型FET T12のゲートをPチャネル型FET T0のゲートに接続する。Pチャネル型FET T12は、書き込み電流Iw(t)にリアルタイムに追従するコピー電流Iw(t)×3を生成する。コピー電流Iw(t)×3は、抵抗素子R2により電圧に変換される。
この電圧は、サンプルホールド回路22に入力される。また、サンプルホールド回路22は、サンプリングポイントthold、即ち、ホールド信号HOLDがLow levelからHigh levelに変化した時点で、この電圧をホールドする。
サンプルホールド回路22内にホールドされた電圧は、参照値Vrefとなる。参照値Vrefは、比較器23に入力される。但し、Vref=Iw(t=thold)×3×r2であり、r2は、抵抗素子R2の抵抗値である。
また、サンプリングポイントtholdにおいて、参照値Vrefが確定し、比較器23の出力(書き込み停止信号Wstop0)が、High levelにリセットされる。
本例のように、“1”−書き込みの場合、スイッチ素子SWfは、Pチャネル型FET T13のゲートを電源端子Vddに接続する。即ち、“1”−書き込み時において、Pチャネル型FET T13は、オフ状態である。
本例によれば、参照値Vref=Iw(t=thold)×3×r2を、書き込み完了前の検出値Vmirror(t≦thold)=Iw(t)×2×r1よりも大きな値、例えば、Vref=1.2×Vmirror(t≦thold)となるように、トランジスタの数や、抵抗素子R1, R2の抵抗値r1, r2により、制御することが可能となる。
なお、図7及び図8の例では、Pチャネル型FET T11, T12, T13のサイズ比(駆動力比)は、2:3:1であるが、これに代えて、任意のサイズ比D11:D12:D13にしてもよい。
図9及び図10の例は、検出値を生成するためのコピー電流と参照値を生成するためのコピー電流との比率を同じに設定し、コピー電流を電圧に変換する抵抗素子の抵抗値により2種類の参照値を生成する例である。
本例でも、書き込み回路13a-0及び書き込み電流検出回路15-0内の全てのトランジスタは、同じサイズ(同じ駆動力)を有しているものとする。
図9は、図3に対応し、図10は、図5に対応する。図9及び図10において、図3及び図5と同じ要素には同じ符号を付すことにより、その詳細な説明を省略する。
書き込み電流Iw(t)を生成するPチャネル型FET T0が1個のトランジスタを備え、かつ、そのサイズ(駆動力)がxであるとき、例えば、Pチャネル型FET T11, T12は、1個のトランジスタを備え、かつ、そのサイズ(駆動力)は、xに設定される。
そして、図9に示すように、“0”−書き込み時においては、Pチャネル型FET T11は、書き込み電流Iw(t)にリアルタイムに追従するコピー電流Iw(t)を生成する。コピー電流Iw(t)は、抵抗素子R1により電圧に変換される。この電圧は、検出値Vmirror(t)となり、比較器23に入力される。但し、Vmirror(t)=Iw(t)×r1であり、r1は、抵抗素子R1の抵抗値である。
また、スイッチ素子SWgは、書き込みデータDATA0(=“0”)に基づいて、Pチャネル型FET T12の電流経路を抵抗素子R3に直列接続する。Pチャネル型FET T12は、書き込み電流Iw(t)にリアルタイムに追従するコピー電流Iw(t)を生成する。コピー電流Iw(t)は、抵抗素子R3により電圧に変換される。
この電圧は、サンプルホールド回路22に入力される。また、サンプルホールド回路22は、サンプリングポイントthold、即ち、ホールド信号HOLDがLow levelからHigh levelに変化した時点で、この電圧をホールドする。
サンプルホールド回路22内にホールドされた電圧は、参照値Vrefとなる。参照値Vrefは、比較器23に入力される。但し、Vref=Iw(t=thold)×r3であり、r3は、抵抗素子R3の抵抗値である。
また、サンプリングポイントtholdにおいて、参照値Vrefが確定し、比較器23の出力(書き込み停止信号Wstop0)が、Low levelにリセットされる。
本例によれば、参照値Vref=Iw(t=thold)×r3を、書き込み完了前の検出値Vmirror(t≦thold)=Iw(t)×r1よりも小さな値、例えば、Vref=0.8×Vmirror(t≦thold)となるように、抵抗素子R1, R3の抵抗値r1, r3により制御することが可能となる。
一方、図10に示すように、“1”−書き込み時においては、Pチャネル型FET T11は、書き込み電流Iw(t)にリアルタイムに追従するコピー電流Iw(t)を生成する。コピー電流Iw(t)は、抵抗素子R1により電圧に変換される。この電圧は、検出値Vmirror(t)となり、比較器23に入力される。但し、Vmirror(t)=Iw(t)×r1であり、r1は、抵抗素子R1の抵抗値である。
また、スイッチ素子SWgは、書き込みデータDATA0(=“1”)に基づいて、Pチャネル型FET T12の電流経路を抵抗素子R2に直列接続する。Pチャネル型FET T12は、書き込み電流Iw(t)にリアルタイムに追従するコピー電流Iw(t)を生成する。コピー電流Iw(t)は、抵抗素子R2により電圧に変換される。
この電圧は、サンプルホールド回路22に入力される。また、サンプルホールド回路22は、サンプリングポイントthold、即ち、ホールド信号HOLDがLow levelからHigh levelに変化した時点で、この電圧をホールドする。
サンプルホールド回路22内にホールドされた電圧は、参照値Vrefとなる。参照値Vrefは、比較器23に入力される。但し、Vref=Iw(t=thold)×r2であり、r2は、抵抗素子R2の抵抗値である。
また、サンプリングポイントtholdにおいて、参照値Vrefが確定し、比較器23の出力(書き込み停止信号Wstop0)が、High levelにリセットされる。
本例によれば、参照値Vref=Iw(t=thold)×r2を、書き込み完了前の検出値Vmirror(t≦thold)=Iw(t)×r1よりも大きな値、例えば、Vref=1.2×Vmirror(t≦thold)となるように、抵抗素子R1, R2の抵抗値r1, r2により制御することが可能となる。
なお、図9及び図10の例では、Pチャネル型FET T11, T12のサイズ比(駆動力比)は、1:1であるが、これに代えて、任意のサイズ比D11:D12にしてもよい。
[書き込みデータが書き込み前のメモリセルのデータと同じ場合]
書き込み前のメモリセルのデータは、通常、分からないため、書き込みデータ(書き込み後のメモリセルの抵抗値)が、書き込み前のメモリセルのデータ(抵抗値)と同じ場合が発生する。以下、この場合を説明する。
書き込みデータ及び書き込み前のメモリセルのデータが共に“0”であるとき、即ち、書き込み前後でメモリセルの抵抗値が共に高抵抗状態であるときは、図3の例に従い、参照値Vrefが生成される。この場合、参照値Vrefは、図6の第1の安定値Aをα倍(図3及び図4のαに相当)した値となる。この場合、検出値Vmirror(t)は、参照値Vrefを横切ることはない。
従って、通常の書き込み期間、例えば、図4の書き込みイネーブル信号WEがHigh levelである期間t0〜t4、書き込み電流は流れ続ける。但し、書き込み前後でデータが変化しないため、書き込み電流を流した後に書き込みは正常に完了する。
また、書き込みデータ及び書き込み前のメモリセルのデータが共に“1”であるとき、即ち、書き込み前後でメモリセルの抵抗値が共に低抵抗状態であるときは、図5の例に従い、参照値Vrefが生成される。この場合、参照値Vrefは、図4の第1の安定値Aをβ倍(図5及び図6のβに相当)した値となる。この場合、検出値Vmirror(t)は、参照値Vrefを横切ることはない。
従って、通常の書き込み期間、例えば、図6の書き込みイネーブル信号WEがHigh levelである期間t0〜t4、書き込み電流は流れ続ける。但し、書き込み前後でデータが変化しないため、書き込み電流を流した後に書き込みは正常に完了する。
一般的に、書き込み前のメモリセルのデータの全てが書き込みデータと同じであるということはあり得ないため、本実施例では、1回の書き込み動作毎に、従来に比べて、低消費電力化の効果を得ることができる。
また、本実施例は、書き込みが完了したか否かを検証するベリファイ動作と組み合わせることにより、上述の書き込み前後でデータが変化しない場合にも、低消費電力化の効果を発揮させることが可能である。
例えば、複数回の書き込み動作によりデータ書き込みを行うこととし、1回の書き込み動作での書き込み期間(図4又は図6のt0〜t4の期間)、即ち、書き込みイネーブル信号WEがHigh levelである期間を短くする。
この場合、書き込み完了が早いメモリセル(書き込み前後でデータが変化しないメモリセルを含む)については、その後、書き込み動作を行わないこととすることにより、低消費電力化を図ることができる。また、書き込み完了が遅いメモリセル(書き込み前後でデータが変化するメモリセルのみ)についても、本実施例を適用することにより、従来よりも低消費電力化を図ることができる。
また、本実施例では、書き込み前後でデータが変化しないメモリセルを想定し、書き込み動作を実行する前に、メモリセル内に書き込まれている既存のデータを確認する読み出し動作を行ってもよい。
この場合、書き込みデータが書き込み前のメモリセルのデータと同じときは、本実施例を適用せず、書き込み動作を行わない。また、書き込みデータが書き込み前のメモリセルのデータと異なるときは、本実施例が適用された書き込み動作を行う。
以上においても、書き込み前後でデータが変化しないメモリセルに対して、低消費電力化の効果を発揮することができる。
[テスト回路への応用]
上述の実施例は、出荷前における不揮発性半導体メモリのテスト回路に応用することができる。例えば、BIST (Built-in Test)において、不揮発性メモリ内の各メモリセルの書き込み特性、又は、良/不良を、上述の実施例における書き込み時間(書き込み電流を流す期間)により、判定することができる。
そして、例えば、各メモリセルの書き込み特性に基づいて、書き込みパルスの大きさや、書き込みパルスの幅(第1の書き込みイネーブル信号WEに相当)など、をキャリブレーションしてもよい。また、各メモリセルの良/不良に基づいて、リダンダンシイ置き換えを行ってもよい。
[適用例]
携帯情報端末に用いられるプロセッサは、低消費電力であることが求められる。プロセッサの低消費電力化の方法の1つとして、待機電力の大きいSRAM(Static Random Access Memory)ベースのキャッシュメモリを、不揮発性素子を用いた不揮発性半導体メモリで置き換える方法がある。
即ち、SRAMは、トランジスタの微細化に伴い、動作時及びスタンバイ(非動作)時、共に、リーク電力が大きくなる傾向にある。このため、キャッシュメモリを不揮発性半導体メモリで置き換えることにより、スタンバイ時に電源遮断が可能となり、スタンバイ時の消費電力を削減できる。
例えば、磁気ランダムアクセスメモリ(MRAM)をキャッシュメモリとして使用することにより、低消費電力プロセッサを実現しようとする試みが検討されている。
MRAMは、現在、提案されている不揮発性半導体メモリの中で、高い書き換え耐性、高速に読み出し/書き込みを行う動作性能、及び、高集積可能なセル面積、といった3つの特徴を同時に満たし得るメモリ技術である。このため、MRAMをキャッシュとして使用することにより、大容量かつ高速の不揮発性キャッシュメモリをプロセッサに搭載できる可能性が高まっている。
上述の各実施例は、このような大容量かつ高速の不揮発性キャッシュメモリを実現するに当たって有効な技術である。そこで、以下では、上述の各実施例を適用可能な低消費電力プロセッサシステムの例を説明する。
図11は、低消費電力プロセッサシステムの例を示している。
CPU31は、SRAM32、DRAM33、フラッシュメモリ34、ROM35、及び、MRAM(磁気ランダムアクセスメモリ)36を制御する。
MRAM36は、SRAM32、DRAM33、フラッシュメモリ34、及び、ROM35のいずれの代替として使用することが可能である。これに伴い、SRAM32、DRAM33、フラッシュメモリ34及びROM35の少なくとも1つを省略してもよい。
MRAM36は、不揮発性キャッシュメモリ(例えば、L2キャッシュ)として使用することが可能である。
図12は、磁気抵抗効果素子の基本構造を示している。
磁気抵抗効果素子MTJは、上述の各実施例におけるメモリセルの例である。磁気抵抗効果素子MTJは、膜面(Film surface)に垂直な方向(垂直方向)に、垂直かつ可変の磁化を持つ記憶層(強磁性層)1、トンネルバリア層(非磁性層)2、及び、垂直かつ不変の磁化を持つ参照層(強磁性層)3の順番で配置される、積層構造を備える。
ここで、不変の磁化とは、書き込み前後において磁化方向が変化しないこと、可変の磁化とは、書き込み前後において磁化方向が逆向きに変化し得ることを意味する。
また、書き込みとは、スピン注入電流(スピン偏極された電子)を磁気抵抗効果素子MTJに流すことにより記憶層1の磁化にスピントルクを与えるスピントランスファ書き込みを意味する。
例えば、スピン注入電流を記憶層1から参照層3に向かって流すとき、参照層3の磁化と同じ向きにスピン偏極された電子が記憶層1内に注入され、記憶層1内の磁化にスピントルクを与えるため、記憶層1の磁化方向は、参照層3の磁化方向と同じ(パラレル状態)になる。
また、スピン注入電流を参照層3から記憶層1に向かって流すとき、記憶層1から参照層3に向かう電子のうち参照層3の磁化と逆向きにスピン偏極された電子が記憶層1内に戻され、記憶層1内の磁化にスピントルクを与えるため、記憶層1の磁化方向は、参照層3の磁化方向と逆(アンチパラレル状態)になる。
磁気抵抗効果素子MTJの抵抗値は、磁気抵抗効果により、参照層3と記憶層1の相対的な磁化方向に依存して変化する。即ち、磁気抵抗効果素子MTJの抵抗値は、パラレル状態のときに低くなり、アンチパラレル状態のときに高くなる。パラレル状態の抵抗値をR0とし、アンチパラレル状態の抵抗値をR1としたとき、(R1-R0)/R0で定義される値は、MR比(magnetoresistive ratio)と呼ばれる。
尚、本例では、参照層3の磁化は、記憶層1側を向いた状態で固定されているが、記憶層1とは反対側を向いた状態で固定されていてもよい。また、半導体基板上に磁気抵抗効果素子MTJを配置するとき、参照層3と記憶層1の上下関係は、限定されない。
例えば、参照層3が記憶層1よりも上にあるときは、磁気抵抗効果素子MTJは、トップピン型と呼ばれ、参照層3が記憶層1よりも下にあるときは、磁気抵抗効果素子MTJは、ボトムピン型と呼ばれる。
図13は、シフトキャンセル層を有する磁気抵抗効果素子の例を示している。
磁気抵抗効果素子MTJは、垂直方向に、垂直かつ可変の磁化を持つ記憶層(強磁性層)1、トンネルバリア層(非磁性層)2、及び、垂直かつ不変の磁化を持つ参照層(強磁性層)3の順番で配置される、積層構造を備える。
また、磁気抵抗効果素子MTJは、参照層3側に、垂直かつ不変の磁化を持つシフトキャンセル層(強磁性層)4を備える。参照層3とシフトキャンセル層4の間には、非磁性層(例えば、金属層)5が配置される。
本例では、参照層3と記憶層1は、垂直磁化を有する。この場合、参照層3からの漏れ磁界(stray magnetic field)は、記憶層1の磁化方向(垂直方向)を向くため、記憶層1に大きな垂直成分を持つ漏れ磁界が印加される。この漏れ磁界は、記憶層1の磁化方向を参照層3の磁化方向と同じ(パラレル状態)にする方向に作用する。
従って、記憶層1のRHカーブがシフトする。
即ち、磁気抵抗効果素子MTJをアンチパラレル状態からパラレル状態に変化させるときは、小さなスピン注入電流を磁気抵抗効果素子MTJに流せば足りるのに対し、磁気抵抗効果素子MTJをパラレル状態からアンチパラレル状態に変化させるときは、大きなスピン注入電流を磁気抵抗効果素子MTJに流さなければならない。
また、アンチパラレル状態は、参照層3からの漏れ磁界のため不安定になる。
即ち、漏れ磁界が記憶層1の保磁力よりも大きくなると、記憶層1は、アンチパラレル状態を保持できなくなってしまう。また、漏れ磁界が記憶層1の保持力より小さいときであっても、熱擾乱による磁化のゆらぎを考慮すると、記憶層1の磁化は、漏れ磁界によってアンチパラレル状態からパラレル状態に反転してしまうことがある。
シフトキャンセル層4は、このような問題を解決するために設けられる。
本例では、参照層3とシフトキャンセル層4は、互いに積層される。この場合、シフトキャンセル層4の磁化方向は、参照層3の磁化方向とは逆向きに設定される。これにより、記憶層1において、参照層3からの漏れ磁界をシフトキャンセル層4からのキャンセル磁界により相殺し、記憶層1のRHカーブのシフトをキャンセルすることが可能になる。
[むすび]
以上、実施例によれば、メモリセル毎に書き込みパルス幅を可変とすることにより書き込み時の低消費電力化を図ることができる。
また、書き込み時にセル電流を流す時間が短くなるため、メモリセルの書き込み耐性を向上させることができる。さらに、メモリセルの書き込みが完了したことを検出した後に書き込みパルスを止めるため、書き込みエラー率を改善することができる。
本例の不揮発性半導体メモリは、キャッシュ用途などのノイズの影響を受け易い環境下においても、ノイズ耐性を高くすることができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。