以下、図面を参照しながら、本発明の例を実施するための形態について詳細に説明する。以下の説明において、同一の機能及び構成を有する要素については、同一符号を付し、重複する説明は必要に応じて行う。
[実施形態]
(1) 基本例
図1乃至図13を用いて、本発明の実施形態に係る磁気メモリの基本例について、説明する。
図1は、本実施形態に係る磁気メモリの構成の一例を示している。
図1に示すように、磁気メモリは、主メモリ50内に、磁気抵抗効果素子1とスイッチTrとを備える。磁気抵抗効果素子1及びスイッチTrは、1つのメモリセルを構成している。磁気抵抗効果素子1は、記憶素子として用いられる。スイッチTrは、磁気抵抗効果素子1に対する選択素子として用いられる。
磁気抵抗効果素子1は、2つのビット線BL,bBLに接続される。磁気抵抗効果素子1の一端は、ビット線BLに接続され、磁気抵抗効果素子1の他端は、スイッチTrを経由して、ビット線bBLに接続される。
スイッチTrは、例えば、電界効果トランジスタ(FET:Field Effect Transistor)である。以下、スイッチTrのことを、選択トランジスタTrとよぶ。選択トランジスタTrの電流経路の一端(ソース/ドレイン)は、磁気抵抗効果素子1の他端に接続され、選択トランジスタTrの電流経路の他端(ソース/ドレイン)は、ビット線bBLに接続される。選択トランジスタTrの制御端子(ゲート)は、ワード線WLに接続される。ワード線WLは、例えば、ビット線BL,bBLの延在方向と交差する方向に延在している。データの書き込み時、図2に示される書き込み電流Iw1,Iw2が、2つのビット線BL,bBL間を流れ、磁気抵抗効果素子1に供給される。
図3及び図4は、磁気抵抗効果素子1の構成を示す断面図である。磁気抵抗効果素子1には、例えば、スピン偏極トンネル効果による磁気抵抗の変化を利用したMTJ(magnetic tunnel junction)素子が使用される。以下では、磁気抵抗効果素子1のことを、MTJ素子1とよぶ。
MTJ素子1は、参照層(磁化不変層ともいう)11A,11B、中間層(非磁性層)12A,12B、記憶層(磁化自由層ともいう)13A,13B、が順に積層された積層構造を有する。尚、参照層11A,11Bと記憶層13A,13Bとは、積層順序が逆であってもよい。
図3に示されるMTJ素子1は、参照層11A及び記憶層13Aの容易磁化方向が、膜面に対して平行になっている。図3に示されるMTJ素子1は、面内磁化型MTJ素子とよばれる。
図4に示されるMTJ素子1は、参照層11B及び記憶層13Bの容易磁化方向が、膜面(或いは積層面)に対して垂直になっている。図4に示されるMTJ素子は、垂直磁化型MTJ素子とよばれる。
面内磁化の磁性層は、面内方向の磁気異方性を有し、垂直磁化の磁性層は、膜面に垂直方向の磁気異方性を有している。MTJ素子1に垂直磁化型を用いた場合は、面内磁化型のように磁化方向を決定するのに素子形状を制御する必要がなく、且つ記憶層13Bの体積を小さくしても十分な記憶保持特性を保つため、メモリセルの微細化に適しているという利点がある。
記憶層13A,13Bは、磁化(或いはスピン)の方向が可変である(反転する)。参照層11A,11Bは、磁化の方向が不変である(固着している)。「参照層11A,11Bの磁化方向が不変である」とは、記憶層13A,13Bの磁化方向を反転させるために使用される磁化反転電流(反転しきい値)を、参照層11A,11Bに流した場合に、参照層11A,11Bの磁化方向が変化しないことを意味する。したがって、MTJ素子1において、参照層11A,11Bとして反転しきい値の大きな磁性層を用い、記憶層13A,13Bとして参照層11A,11Bよりも反転しきい値の小さい磁性層を用いることによって、磁化方向が可変の記憶層13A,13Bと磁化方向が不変の参照層11A,11Bとを備えたMTJ素子1が実現される。
また、参照層11A,11Bの磁化を固定する方法としては、参照層11A,11Bに隣接して反強磁性層(図示せず)を設け、参照層11A,11Bと反強磁性層との交換結合によって、参照層11A,11Bの磁化方向を固定することができる。但し、垂直磁化型のMTJ素子は、参照層11Aに隣接して反強磁性層(図示せず)を設けずともよい。MTJ素子1の平面形状については特に制限がなく、円、楕円、正方形、長方形等のいずれを用いてもよい。また、正方形の角或いは長方形の角が丸くなった形状、或いは角が欠けた形状であってもよい。
参照層11B及び記憶層13Bは、高い保磁力を持つ磁性材料から構成され、例えば、1×106erg/cc以上の高い磁気異方性エネルギー密度を有することが好ましい。
中間層12A,12Bは、非磁性体からなり、例えば、絶縁体、半導体、金属などを用いることが可能である。中間層12に絶縁体或いは半導体が用いられた場合、中間層12はトンネルバリア層とよばれる。
尚、参照層11A,11B及び記憶層13A,13Bの各々は、図示するような単層に限定されず、複数の強磁性層からなる積層構造であってもよい。また、参照層11A,11B及び記憶層13A,13Bの各々は、第1の強磁性層/非磁性層/第2の強磁性層の3層からなり、第1及び第2の強磁性層の磁化方向が反平行状態となるように磁気結合(交換結合)した反強磁性結合構造であってもよいし、第1及び第2の強磁性層の磁化方向が平行状態となるように磁気結合(交換結合)した強磁性結合構造であってもよい。
また、MTJ素子1は、ダブルジャンクション構造を有していてもよい。ダブルジャンクション構造のMTJ素子1は、第1の参照層、第1の中間層、記憶層、第2の中間層、第2の参照層が順に積層された積層構造を有する。このようなダブルジャンクション構造は、スピン注入による記憶層13A,13Bの磁化反転を制御しやすいという利点がある。
ビット線BLには、書き込み回路2が接続される。書き込み回路2は、MTJ素子1に対するデータの書き込み時、書き込み電流Iw1,Iw2を生成し、その生成した電流Iw1,Iw2をビット線BL,bBL間に流す。そして、書き込み電流Iw1,Iw2は、MTJ素子1を流れる。書き込み回路2は、書き込み電流Iw1,Iw2を、MTJ素子1の一端から他端に、または、MTJ素子1の他端から一端に、双方向に流す。書き込み回路2の動作は、後述の制御回路51によって、制御される。
図2は、書き込み電流のパルス波形の一例を示している。図2において、書き込み電流の電流値は、絶対値で示されている。書き込み回路2は、制御回路51に基づいて、パルス幅Twp1を有する書き込み電流Iw1及びパルス幅Twp2を有する書き込み電流Iw2のいずれかを、MTJ素子1に供給する。書き込み電流Iw1,Iw2は、MTJ素子1内を流れる。パルス幅Twp2は、パルス幅Twp1よりも長い。
本実施形態において、電流のパルス幅は、パルスの半値全幅(FWHM:Full width at half maximum)で規定される。書き込み電流Iw1,Iw2のパルス幅Twp1,Twp2は、最大電流値iwの1/2の値iw/2を基準としたパルス幅である。書き込み電流Iw1のパルス幅Twp1は、時間tabと時間tcdとの間の期間である。時間tabは、パルス電流Iw1の立ち上がりが開始する時間taと立ち上がりが終了する時間tbの実質的に中間の時間であり、時間tcdは、パルス電流Iw1の立ち下がりが開始する時間tcと立ち下がりが終了する時間tdの実質的に中間の時間である。
書き込み電流Iw2のパルス幅Twp2は、時間t12と時間t34との間の期間である。時間t12は、パルス電流Iw2の立ち上がりが開始する時間t1と立ち上がりが終了する時間t2の実質的に中間の時間であり、時間t34は、パルス電流Iw2の立ち下がりが開始する時間t3と立ち下がりが終了する時間t4の実質的に中間の時間である。
書き込み電流Iw1及び書き込み電流Iw2は、例えば、同じ電流値iwを有する。電流値iwは、記憶層の反転しきい値ith以上、参照層の反転しきい値未満に、設定される。
誤り検出訂正回路52は、MTJ素子1が記憶している(又は、保持している)データ(以下、書き込みデータとよぶ)に、誤りが有るか否かを検出する。誤り検出訂正回路52は、データに誤りがあった場合に、その誤りを訂正する。訂正されたデータ(以下、訂正データとよぶ)は、MTJ素子1に再び書き込まれる。
制御回路51は、磁気メモリ全体の動作を制御する。制御回路51は、MTJ素子1及び誤り検出訂正回路52の動作状況に応じて、書き込み電流Iw1及び書き込み電流Iw2のいずれか一方をMTJ素子1に供給するように、書き込み回路2の動作を制御する。
制御回路51は、訂正データをMTJ素子1に書き込む場合、外部から入力されたデータを書き込む場合に比較して長いパルス幅Twp2を有する書き込み電流Iw2を生成及び出力するように、書き込み回路2の動作を制御する。外部から入力されたデータをMTJ素子1に書き込む場合、制御回路51は、パルス幅Twp1を有する書き込み電流Iw1を生成及び出力するように、書き込み回路2の動作を制御する。
以下、MTJ素子1の低抵抗状態及び高抵抗状態、及び、スピン注入によるデータの書き込みについて説明する。データの書き込み時、書き込み電流I(図2中の電流Iw1又は電流Iw2)は、MTJ素子1内を流れる。そして、書き込み電流I(Iw1,Iw2)は、書き込むデータに応じて、MTJ素子1内を双方向に流れる。尚、電流が流れる向きと電子が移動する向きが反対なのは、もちろんである。
参照層11A,11Bと記憶層13A,13Bとの磁化方向が平行となる平行状態(低抵抗状態)について説明する。
参照層11A,11Bを通過した電子のうちマジョリティーな電子は、参照層11A,11Bの磁化方向と平行なスピンを有する。このマジョリティーな電子のスピン角運動量が記憶層13A,13Bに移動することにより、スピントルクが記憶層13A,13Bに印加され、記憶層13A,13Bの磁化方向は、参照層11A,11Bの磁化方向と平行に揃えられる。この平行配列のとき、MTJ素子1の抵抗値は最も小さくなる。この場合が、例えば、“0”データとして扱われる。
次に、参照層11A,11Bと記憶層13A,13Bとの磁化方向が反平行となる反平行状態(高抵抗状態)について説明する。
参照層11A,11Bによって反射された電子のうちマジョリティーな電子は、参照層11A,11Bの磁化方向と反平行のスピンを有する。このマジョリティーな電子のスピン角運動量が記憶層13A,13Bに移動することにより、スピントルクが記憶層13A,13Bに印加され、記憶層13A,13Bの磁化方向は、参照層11A,11Bの磁化方向と反平行に揃えられる。この反平行配列のとき、MTJ素子1の抵抗値は最も大きくなる。この場合が、例えば、“1”データとして扱われる。
以下、図5乃至図13を参照して、本実施形態のスピン注入磁化反転モデルについて、述べる。
図5は、本実施形態で述べるスピン注入磁化反転モデルにおける、磁化反転確率の時間依存性を示している。図5の横軸は時間(単位:nsec(ナノ秒))を示している。図5の縦軸は、磁化反転確率に対応する。但し、磁化反転確率が“P”で示された場合、図5の縦軸において、Log10(1−P)が示されている。“1−P”は、磁化が反転しない(データが書き込まれない)確率を示す。尚、磁化反転確率とは、あるMTJ素子に一定の電流を流した場合に、記憶層の磁化方向が反転する確率である。
図5に示される各特性曲線は、LLG(Landau-Liftshitz-Gilbert)方程式を用いたマイクロマグネティックシミュレーション(micromagnetic simulation)によって得られた結果である。このシミュレーションに用いた各パラメータは、以下のとおりである。
シミュレーションに用いられたMTJ素子は、垂直磁化型のMTJ素子である。MTJ素子の膜厚は、2.2nm、MTJ素子の直径は、30nmに設定されている。記憶層の磁化は、膜面に対して垂直方向に向いており、記憶層の磁気異方性エネルギーKuは、3.5Merg/cc、記憶層の飽和磁化Msは、500emu/ccである。エネルギーバリアΔEaは、86kBT(kB:ボルツマン定数,T:絶対温度)である。エネルギーバリアΔEaはMTJ素子が平行状態から反平行状態、あるいは反平行状態から平行状態に反転する過程で超えなければいけないエネルギーバリアの大きさを示している。温度(絶対温度)Tは300Kに設定される。また、MTJ素子に流れる電流密度Jの範囲は、2.8〜4MA/cm2に設定される。そして、0.934〜1.436の範囲内における電流密度比J/JC(22nsec,midpoint)を用いて、シミュレーションが実行されている。尚、“J”は、パルス電流の電流密度を示し、“JC(22nsec,midpoint)”は、パルス幅が22nsecの書き込み電流を用いてMTJ素子にデータを書き込んだ場合に、そのMTJ素子の記憶層の磁化反転確率が0.5になる電流密度を示している。
図5においては、各電流密度比0.934〜1.436を用いたシミュレーションから得られた特性曲線に対する1次近似特性線(図中、点線)も示されている。
図5に示される各特性曲線に基づいて、スピン注入磁化反転確率P(t)は、(式1)のように近似的に表すことができる。
“P(t)”は、パルス幅tの電流パルスがMTJ素子に流されることにより、記憶層の磁化が反転する確率を示している。“f0”は、MTJ素子が単位時間に熱エネルギー(フォノン)を受け取る頻度である。“f0”は1×109Hz程度である。“I”はパルス電流の電流値を示し、“IC0”は、0K(絶対温度)での磁化反転電流の電流値である。(式1)において、“n”は、1.5〜2の定数である。
図5に示されるように、確率Log10(1−P)は、時間の変化に対して、負の値を示す。図5及び(式1)に示されるスピン注入磁化反転モデルにおいて、パルス電流がMTJ素子に与えられた直後、記憶層の磁化の反転は起こらず、不感時間t0を経過した後に磁化の反転が開始される。
図6乃至図10を用いて、本実施形態のスピン注入磁化反転モデルについて、説明する。図6乃至図10では、磁気メモリに用いられるスピン注入磁化反転において、磁性層(記憶層)の規格化した磁化Mzが1から−1へ反転する過程を例として、述べる。ここでは、書き込み電流をMTJ素子に流しはじめてからz軸(垂直)方向の磁化Mzが1から−1付近まで変化する時間を、スイッチング時間Tswとよぶ。
磁性体の磁化反転は、確率現象であるため、同じ磁性体に同じ大きさの書き込み電流を流しても、スイッチング時間Tswは毎回揺らぐ。つまり、ある一定のパルス幅を有する電流を用いて、あるMTJ素子にデータが書き込まれる場合、スイッチング電流Isw(反転しきい値ith)が、毎回揺らぐことになる。これらの現象を理解することが、書き込み不良の減少のために重要である。
磁気メモリ(例えば、MRAM)の書き込み原理の1つであるスピン注入磁化反転において、本実施形態で述べるスピン注入磁化反転は、以下の3段階にからなる。つまり、本実施形態のスピン注入磁化反転において、スイッチング時間Tswは3つに分解される。
図6には、本実施形態におけるスピン注入磁化反転モデルが、模式的に示されている。
図6に示されるスピン注入磁化反転モデルにおいて、第1段階は、磁性層(記憶層)内の各磁性粒の磁化が別々に歳差運動していた状態から、磁性層内の各磁性粒の磁化の位相が揃い、共動して歳差運動を始めるまでの段階である。本実施形態においては、磁性層内の各磁性粒の磁化の位相が揃い、共動して歳差運動することを、“コヒーレントな歳差運動”とよぶ。そして、磁化が別々に歳差運動していた状態からコヒーレントな歳差運動を始めるまでの時間のことを、コヒーレント時間tcohとよぶ。
コヒーレント時間tcohにおいて、磁化Mzは1から0.95程度まで減少する。このコヒーレント時間tcohにおいて、フォノンの影響の下に、磁化はコヒーレントな歳差運動になりかけるが、またばらばらな歳差運動に戻る、などの過程を経る。そのため、コヒーレント時間tcohは大きく揺らぐ。
第2段階において、コヒーレントな歳差運動が増幅する。この時間を増幅時間tampとよぶ。磁化Mzは0.95から0.8程度まで減少する。増幅時間tampにおいて、フォノンの影響の下に、磁化の歳差運動が少し増幅して、また減衰する、などの過程を経る。そのため、増幅時間tampも揺らぐ。この第1段階の時間tcohと第2段階の時間tampとの和を、“incubation delay time tid”とよぶ。MTJ素子の直径が単磁区化直径Dsより小さい場合、incubation delay time tidは、大きく揺らぐ。第1及び第2段階の時間tcoh,tampは、磁化Mzが大きく減少し始め、磁化反転の主段階が起きるまでの時間であり、スピン注入磁化反転ではこの時間が比較的長い。そのため、第1及び第2段階に要する時間tcoh,tampは、incubation delay timeとよばれている。
第3段階において、磁化の歳差運動がさらに増幅し、熱擾乱の助けを借りて、磁化反転が起こる。この段階では、主に熱活性過程が支配的であり、磁化Mzは0.8から−1付近まで減少する。この時間を反転時間trvとよぶ。MTJ素子の直径が単磁区化直径Dsより小さい場合、反転時間trvの揺らぎは小さい。MTJ素子の直径が単磁区化直径Dsより大きい場合、反転時間trvはincubation delay time tidと同程度に揺らぐ。
上記のように、第一段階であるコヒーレント時間tcohは、MTJ素子の記憶層内で磁化がばらばらな位相で歳差運動していた状態から磁化の位相がそろった歳差運動を開始するまでの時間であることが見出された。
そして、コヒーレント時間tcoh及び増幅時間tampに続く反転時間trvにおいて、熱活性過程により磁化反転が開始される。
このような磁化反転モデルが、図5及び以下の実験及びシミュレーションによって実証された。
図7は、図5で用いた垂直磁化型MTJ素子のスピン注入磁化反転のLLG方程式によるシミュレーション結果の1つを解析したグラフである。
そのシミュレーションは、例えば、記憶層(磁性層)内の32個の磁化を示すセルを用いて、実行された。セルは、磁性層内に含まれる磁性粒に対応する。図7において、横軸は時間(単位:nsec)を示している。
図7において、破線で示される特性線は、左側の軸Mz−aveに対応している。図7の左側の軸Mz−aveは、磁化のz成分(垂直成分)の平均値Mz−ave(単位:a.u.(arbitrary unit))を示している。尚、磁化のz成分のMz−aveにおいて、“1”は磁化が記憶層の膜面に対して上側を向いている状態を示し、“−1”は磁化が記憶層の膜面に対して下側を向いている状態を示している。
図7に示されるシミュレーションの初期状態(0nsec)において、磁化の平均値Mz−aveは、ほぼ1を示し、磁化はMTJ素子の膜面に対して垂直上向き方向を向いている。そして、0nsecにおいて、記憶層に対して磁化反転電流の供給を開始し、スピン注入によって磁化が反転して、平均値Mz−aveがほぼ−1になるまでの過程が、検証された。
図7に示されるシミュレーションにおいて、0nsecから2.5nsecまでの期間は、磁化の平均値Mz−aveの値は、ほとんど変化しない。これは、記憶層の磁化(スピン)が、反転していない期間とみなすことができる。
図7において、実線で示される特性曲線は、右側の軸σΦに対応し、記憶層内の32個の磁化の歳差運動の位相ばらつきを示している。
図8は、1つの磁化のセルを模式的に示している。図8に示されるように、磁化の向きは2つの偏角θ及び偏角Φを用いた極座標で表わすことができる。図8に示されるように、垂直磁化膜の磁化は、膜面垂直方向(z軸)を回転軸として、歳差運動を行う。赤道面cにおける、歳差運動の位相を、偏角Φと定義する。また、歳差運動を行っている際に、磁化Mの傾きとz軸とがなす角を、偏角θと定義する。
歳差運動の位相ばらつきは、偏角Φのばらつきを調べることで得られる。しかし、極座標で示される偏角Φは、+π又は−πの周期で不連続になるか、あるいは多値になる。そのため、偏角Φを単に用いて位相の分散(位相のばらつき)を計算すると、数値が不連続な部分において正確な計算結果が得られない。
そこで、本実施形態では、偏角Φの代わりに、歳差運動の位相を複素数、つまり、“Φ=cosφ+isinφ”で表わすことによって、位相の分散σΦを計算し、位相のばらつきを求めた。このように、複素数を用いて偏角Φを表現することで、数値の不連続に起因する問題は解消され、比較的簡単に位相ばらつきを計算することができる。位相の分散σΦは以下の(式2)及び(式3)で表わされる。
(式3)中の“n”は、記憶層が含む磁化の個数(セル数)を示し、本例では32個である。(式3)中の“Σ”は、記憶層が含む全ての磁化(本例では、32個)の和(合計値)を計算することを示している。(式3)中の“*”は共役複素数を示している。(式3)及び(式4)中の“  ̄ ”は、記憶層内の全ての磁化のセル(本例では、32個)の平均値であることを示している。よって、(式3)中の“μ”は、記憶層内の全ての磁化の“Φ”の平均値を示している。
図9及び図10は、記憶層13内に配置された磁化のセルを模式的に示している。尚、図9及び図10においては、複数のセル18が2次元に配置されている例を示しているが、これは、説明の簡単化のためであって、これに限定されないのはもちろんである。
例えば、図9に示すように、記憶層13内の各セル18の磁化19の位相が、全てランダムである場合には、位相の分散σΦは、“1”を示す。一方、図10に示すように、記憶層13内の全ての磁化19の位相が完全に揃い、且つ、偏角“Φ”の値が同じになる場合には、位相の分散σΦは“0”を示す。
図7に示すように、記憶層内の磁化の位相の分散σΦが急激に減少して、磁化がコヒーレントな歳差運動になる時間と、磁化が反転し始め、磁化の平均値Mz−aveが0.95程度になった後、平均値Mz−aveが減少し始める現象は、連動している。このため、コヒーレント時間tcohは、図9に示されるように磁化の歳差運動がばらばらな歳差運動から図10に示されるようにコヒーレントな歳差運動になるまでの時間であると、考えることができる。
尚、図7中の期間t’は、コヒーレントな歳差運動になるまでの時間に相当する。但し、同一条件でシミュレーションを繰り返して行った場合においても、初期状態からコヒーレントな歳差運動が実現するまでの期間t’は変動する。しかし、記憶層内の磁化の位相が揃い、コヒーレントな歳差運動が実現した時に、磁化の反転が開始される現象は再現される。
スピン注入磁化反転における期間t’は、記憶層13内において、各磁化18の歳差運動の位相がそろわない状態(図9参照)から各磁化18の歳差運動の位相がそろったコヒーレントな状態(図10参照)へ遷移するまでの時間であるとみなすことができる。そして、コヒーレントな歳差運動になるまでの期間(時間)tcohとコヒーレントな歳差運動が増幅されるまでの期間(時間)tampを経過することよって、熱活性過程に移行し、MTJ素子の記憶層のスピン反転が実質的に開始されるといえる。
この磁化の歳差運動がコヒーレントな運動になるまでの時間は、電流Iの大きさに依存し、電流Iの大きさが減少すると、磁化の歳差運動がコヒーレントな運動になるまでの時間は増加する。
このコヒーレントな歳差運動が実現するまでの期間(時間)t’が存在し、且つ、コヒーレントな歳差運動が実現した後、スピン反転が開始してからスピン反転が完了するまでに有限な時間が存在する。そのため、それらの期間(時間)を考慮して、(式1)内の時間t0が、本実施形態で述べるスピン注入磁化反転モデルのパラメータに含まれている。
尚、ここでは、スピン注入磁化反転が完了する条件は、電流(パルス電流)をオフしても記憶層のスピンが元の状態にもどらず、最後まで反転することとする。これは、図8において、磁化の向きが赤道面cまで回転し、磁化の垂直成分Mzが、“0”になることを意味する。
以上のように、磁化反転に有限の時間がかかり、その時間が揺らぐ、換言すると、スピン注入磁化反転は第1段階、第2段階及び第3段階の過程(図6参照)がある。このため、スピン注入磁化反転は、その磁化反転の初期段階に、磁化反転確率があまり上昇しない時間t
0がある。その時間t
0は、図5及び(式1)に示されている。例えば、垂直磁化膜を用いたMTJ素子において、その素子の直径が単磁区化直径より小さい場合、時間(期間)t
0は、(式4)によって、近似的に示される。(式4)において、“t
0”の単位は、nsecである。
(式4)において、“Jwrite”は書き込み電流の電流密度を示し、“JC0”は、(Twp−t0)f0=ln2になるようにパルス幅Twpが設定された場合における0K(絶対温度)での磁化反転電流の電流密度を示している。
図11は、図5と同様に、磁化反転確率の時間依存性を示しており、図7と同一条件のMTJ素子の磁化反転確率の時間依存性を示している。尚、図11に示される結果は、LLG方程式を用いたマイクロマグネティックシミュレーションによって、計算されている。図11の横軸は、時間を示し、図11の縦軸は、図5と同様に、Log10(1−P)を示している。
図11において、特性線J1,J2は、電流密度J1及び電流密度J2をそれぞれ有する書き込み電流を用いた場合における磁化反転確率を示している。特性線J1,J2は、(式1)に示される本実施形態の磁化反転モデルの1次近似線に対応している。電流密度J1は、3.8MA/cm2であり、電流密度J2は、4.0MA/cm2である。
尚、特性線Aは、従来の単純な熱活性過程による磁化反転モデルの近似線である。従来の熱活性過程による磁化反転モデルは、(式5)で示される。
図11の横軸に示される時間は、MTJ素子に電流を供給している時間(期間)であり、書き込み電流のパルス幅に、相当する。そして、図11の“ΔT1”及び“ΔT2”は、電流密度J1,J2を有する書き込み電流のパルス幅がそれぞれ7%程度長くされた期間に相当する。
図11に示されるように、電流密度J1,J2の書き込み電流において、そのパルス幅が7%程度長くなると、磁化が反転しない確率(1−P)が、1桁程度低下することが分かる。また、書き込み電流のパルス幅が、14%から15%程度長くなると、データを書き込めない確率が2桁程度低下する。
本実施形態で用いられる(式1)のスピン注入磁化反転モデルは、(式5)で示される従来のスピン注入磁化反転モデルよりも、書き込み不良の発生確率LOG10(1−P)が書き込み電流のパルス幅に対して大きく依存する。
よって、スピン注入磁化反転を適用したMRAMにおいて、書き込み不良の発生確率Log10(1−P)を低減するには、書き込み電流のパルス幅を増大させることが有効である。
図12及び図13において、実線で示される特性線は、式(1)に示される本実施形態の磁化反転モデルに対応して(式1)のΔE/kBTが“60”、nが“2”、t0が“7nsec”にそれぞれ設定されている。
図12は、書き込み電流のパルス幅に対する磁化反転電流(スイッチング電流)の揺らぎσ(Isw)/Iswの変化を示している。図12において、縦軸は反転しきい値電流の揺らぎに対応し、横軸は、反転しきい値電流の供給時間、つまり、書き込み電流のパルス幅Twpに対応している。図13は、書き込み電流のパルス幅に対する反転確率が0.5になるスイッチング電流Iswの変化を示している。尚、図13において、スイッチング電流Iswは、電流比Isw/Ic0で示されている。
図12及び図13において、破線で示される特性線は、(式5)に示される磁化反転モデルの揺らぎσ(Isw)/Isw及び電流比Isw/Ic0が、それぞれ示されている。
図12に示されるように、あるMTJ素子に電流を供給した場合、本実施形態の磁化反転モデル(式1)は、磁化反転モデル(式5)に比較して、揺らぎσ(Isw)/Iswが電流のパルス幅Twpに大きく依存し、そのパルス幅Twpが長くなると、揺らぎσ(Isw)/Iswが減少することが示されている。
また、図13においても、あるMTJ素子に対して供給されるスイッチング電流Iswが、電流のパルス幅Twpに依存し、そのパルス幅Twpが長くなると、その変化の割合が小さくなる。
このように、図12及び図13に示される結果からも、電流のパルス幅Twpを長くすることで、MTJ素子(記憶層)に対する書き込み電流の揺らぎが減少し、データの書き込み不良が減少することがよくわかる。
データが正常に書き込めない不良の発生確率を低減するために、書き込み電流の電流値を大きくする手段もあるが、これは次の2点の難点がある。第1に、例えば、選択トランジスタのサイズなど、回路上の制約から書き込み電流には上限がある。第2に、書き込み電流の電流値を増大させると、バックホッピング(Back-hopping)とよばれる過大な書き込み電流に起因する書込み不良が発生する。これらのため、書き込み電流の電流値を大きくすることは、書き込み不良を低減することに対して必ずしも有効であるとは言えない。
それゆえ、書き込み電流のパルス幅を大きくして、MTJ素子にデータを書き込むことが好ましい。但し、データの書き込みの全てに、長いパルス幅を有する書き込み電流を用いることは、データの書き込み時間が長くなることを意味する。そのため、磁気メモリ、例えば、MRAMの利点の1つである高速動作が、損なわれる。それゆえ、データの処理に要する時間が過剰に長くならないよう、別途工夫が必要である。
本発明の実施形態の磁気メモリは、磁気抵抗効果素子(MTJ素子)1に記憶されている(書き込まれている)データが出力され、その出力されたデータを磁気抵抗効果素子1に書き戻すときに、長いパルス幅の書き込み電流を用いる。データの書き戻し(再書き込み)は、主に、データの誤りが訂正された場合に、実行される。
図1及び図2に示されるように、本発明の実施形態の磁気メモリは、主メモリ50から出力されたデータの誤りを検出及び訂正する誤り検出訂正回路52を備える。また、本実施形態の磁気メモリは、書き込み電流Iw1,Iw2のパルス幅を制御する機能53を有する制御回路51を備える。
本実施形態の磁気メモリは、外部から入力されたデータを主メモリ50内のMTJ素子1に通常に書き込む場合、あるパルス幅Twp1を有する書き込み電流Iw1を、MTJ素子1に流す。例えば、パルス幅Twp1は、図5及び(式1)に示される不感時間t0以上の時間に対応し、図6に示されるコヒーレント時間tcohと増幅時間tampとの和の時間(incubation delay time tid)以上に設定される。
本実施形態の磁気メモリにおいて、誤り検出訂正回路(不良検出回路ともよぶ)52は、データの書き込み時又はデータの読み出し時に、MTJ素子1が記憶するデータに対して、誤りの検出及び訂正を実行する。そして、本実施形態の磁気メモリは、誤り検出訂正回路2によって訂正されたデータを、主メモリ50内のMTJ素子1に再び書き込む。
本実施形態の磁気メモリ内の制御回路51は、外部から入力されたデータの書き込みか、訂正されたデータの書き戻しか、を判別する。
訂正されたデータをMTJ素子1に書き戻す場合、制御回路51は、誤り検出訂正回路52による誤りの検出及び訂正に基づいて、書き込み電流Iw1のパルス幅Twp1よりも訂正されたデータを書き込むための書き込み電流Iw2のパルス幅Twp2を長くするように、書き込み回路2の動作を制御する。
このように、本実施形態の磁気メモリにおいて、外部から入力されたデータの書き込みは、パルス幅Twp1の書き込み電流Iw1が用いられ、誤りが訂正されたデータの書き込みは、パルス幅Twp2(>Twp1)の書き込み電流Iw2が用いられる。
これによって、データの訂正が行われるのと共に、訂正されたデータがMTJ素子1に書き戻される時に、長いパルス幅Twp2の書き込み電流Iw2が用いられることによって、書き込み不良が発生する確率は減少する。そのため、本実施形態の磁気メモリにおいて、MTJ素子1に書き込まれたデータにおける不良の発生は、減少する。
そして、MTJ素子1が記憶するデータの誤りが訂正されることによって、主メモリ50内の磁気抵抗効果素子1に生じる書き込み不良、読み出しディスターブ、或いは、リテンション不良が、訂正される。つまり、本実施形態の磁気メモリにおいて、主メモリ50内のデータの不良が減少し、誤動作が減少する。
本実施形態で述べる誤り訂正には、2種類の構成がある。第1の構成は、誤り訂正技術(ECC:Error Correction Coding)を用いる構成である。ここで、不良(又は、エラー)とは、1ビットのデータの誤りであり、これは、誤り検出訂正技術によって、訂正可能な場合が多い。1ブロック中に含まれる不良がある個数以上(例えば、2個以上)になると、誤り検出訂正技術を用いても、訂正できなくなる。このように、誤り検出訂正技術を用いても不良が救済できないことを、本実施形態では、誤動作とよぶ。
第2の構成は、ECC技術を用いずに、主メモリに書き込んだデータをすぐに読み出し、その読み出されたデータと外部からのデータ(オリジナルのデータ)と比較することによって、書き込み不良(誤り)を検出する。読み出されたデータに書き込み不良が存在した場合、データを置き換え、オリジナルのデータを主メモリに書き込む。
そして、本実施形態の磁気メモリは、誤りが訂正されたデータをMTJ素子1に書き戻す場合のみに、書き込み電流のパルス幅を長くする。そのため、磁気メモリの動作時間、特に、書き込み動作の時間は、過剰に長くならない。よって、磁気メモリの高速性は、損なわれない。
したがって、本発明の実施形態に係る磁気メモリは、その動作の信頼性が向上し、且つ、その動作特性が向上する。
[構成例1]
図14乃至図22を参照して、本発明の実施形態に係る磁気メモリの構成例について、説明する
(1) 回路
図14乃至図22を用いて、本発明の実施形態に係る磁気メモリの回路の構成例について述べる。本構成例の磁気メモリは、例えば、磁気ランダムアクセスメモリ(MRAM)である。
図14に示すように、本構成例のMRAMは、主メモリ50を備える。主メモリ50は、データを主メモリ50内のメモリセル(MTJ素子1)に書き込む機能と、データを主メモリ50内のメモリセル(MTJ素子1)から読み出す機能とを有する。
図15は、主メモリ50の内部構成の一例を示し、MRAMのメモリセルアレイ近傍の回路構成を示している。
複数のメモリセルMCは、メモリセルアレイ20内にアレイ状に配置される。
図16は、メモリセルアレイ20内に設けられるメモリセルMCの構造の一例を示す図である。MTJ素子1の上端は、上部電極31を介して上部ビット線32に接続される。また、MTJ素子1の下端は、下部電極33、引き出し配線34及びプラグ35を介して、選択トランジスタTrのソース/ドレイン拡散層37aに接続される。選択トランジスタTrのソース/ドレイン拡散層37bは、プラグ41を介して下部ビット線42に接続される。
ソース/ドレイン拡散層37a及びソース/ドレイン拡散層37b間の半導体基板(チャネル領域)36上には、ゲート絶縁膜38を介してゲート電極39が形成される。選択トランジスタTrのゲート電極は、ワード線WLとして機能する。
尚、下部電極33及び引き出し電極34の少なくとも1つを省略してもよい。例えば、下部電極33を省略する場合には、MTJ素子1は、引き出し配線34上に形成される。また、引き出し配線34を省略する場合には、下部電極33は、プラグ35上に形成される。さらに、下部電極33及び引き出し電極34を省略する場合、MTJ素子1は、プラグ35上に形成される。
ワード線WLは、ロウ方向に延び、メモリセルMCを構成する選択トランジスタTrのゲートに接続される。
ワード線WLの一端は、ロウ制御回路4に接続される。ロウ制御回路4は、ワード線WLに対する選択動作を行う。
ビット線BL,bBLは、カラム方向に延在している。ビット線BLには、MTJ素子1の一端が接続され、ビット線bBLは、選択トランジスタTrの電流経路の一端に接続されている。2本のビット線BL,bBLが、1組のビット線対を構成している。
ビット線BL,bBLの一端及び他端には、カラム制御回路3A,3Bが接続される。
書き込み回路2A,2Bは、カラム制御回路3A,3Bを介して、ビット線BL,bBLの一端及び他端に接続される。書き込み回路2A,2Bは、書き込み電流Iw1,Iw2を生成するための電流源や電圧源などのソース回路、書き込み電流を吸収するためのシンク回路を、それぞれ備える。書き込み回路2A,2Bは、書き込み動作が実行されないとき、ビット線BL,bBLから電気的に分離される。
書き込み回路2A,2Bの動作は、制御回路51及び後述の書き込みパルス幅制御回路53に制御されて、図17に示される書き込み電流Iw1,Iw2を出力する。データの書き込み時、書き込み回路2A,2Bは、書き込み電流Iw1,Iw2をMTJ素子1に供給する。書き込み電流Iw1,Iw2は、MTJ素子1内を流れる。
書き込み電流Iw1,Iw2の電流値iwは、2つの電流Iw1,Iw2で同じであってもよいし、それぞれ異なる電流値であってもよい。
図17において、書き込み電流Iw1,Iw2は、同じ電流値を有する。書き込み電流Iw1,Iw2の電流値iwは、メモリセルアレイ20内に含まれる複数のMTJ素子の反転しきい値の中で最大値ith以上であることが好ましい。また、書き込み電流Iw1は、所定のパルス幅Twp1を有し、書き込み電流Iw2は、パルス幅Twp1より長いパルス幅Twp2を有する。パルス幅Twp1は、例えば、時間t0以上の値が用いられ、例えば、(式4)に基づいて設定される。また、パルス幅Twp2は、例えば、パルス幅Twp1より、7%〜10%程度長い値に設定される。
上述のように、書き込み電流Iw1,Iw2のパルス幅Twp1,Twp2は、パルス形状の書き込み電流の半値全幅によって、規定される。
読み出し回路5は、カラム制御回路3Bを介して、ビット線BL,bBLの一端に接続される。読み出し回路5は、読み出し電流Irを発生する電圧源又は電流源や、読み出し信号の検知及び増幅を行うセンスアンプ、データを一時的に保持するラッチ回路などを含んでいる。読み出し回路5は、読み出し動作が実行されないとき、ビット線BL,bBLから電気的に分離される。
読み出し回路5は、読み出し動作時、読み出し電流Irを出力する。図17には、読み出し電流Irの波形が示されている。読み出し電流Irの電流値irの最大値は、例えば、反転しきい値ithよりも小さい値に設定される。読み出し電流Irの電流値irは、例えば、パルス電流の立ち上がりが終了する時間から立ち下がりが開始する時間までの期間に、一定に出力される。例えば、読み出し電流Irのパルス幅Trpは、パルス電流の半値全幅で規定される。パルス幅Trpは、例えば、書き込み電流Iw1のパルス幅Twp1より短く、さらには、不感時間t0より短くてもよい。これによって、本構成例のMRAMにおいて、読み出しディスターブの発生が低減されてもよい。但し、これに限定されず、読み出し電流Irの電流値irが、反転しきい値ithより十分小さければ、読み出し電流Irのパルス幅Trpは書き込み電流Iw1,Iw2のパルス幅Twp1,Twp2以上でもよい。
データの読み出しは、MTJ素子1に読み出し電流IRを流すことで行われる。平行状態の抵抗値を“R0”、反平行状態の抵抗値を“R1”とすると、“(R1−R0)/R0”で定義される値を磁気抵抗比(MR比)とよぶ。磁気抵抗比はMTJ素子1を構成する材料やプロセス条件によって異なるが、数10%から数100%程度の値を取り得る。
このMR比に起因する読み出し電流(ビット線の電位)の変動量を、検知することで、MTJ素子1に記憶された情報が読み出される。
カラム制御回路3A,3B内には、ビット線BL,bBLと書き込み回路2A,2Bとの導通状態を制御するスイッチ回路や、ビット線BL,bBLと読み出し回路5との導通状態を制御するスイッチ回路が設けられている。
書き込み動作時、カラム制御回路3A,3B内において、書き込み対象となるメモリセルMCに接続されたスイッチ回路がオンになり、その他のスイッチ回路がオフになる。また、ロウ制御回路4によって、選択されたメモリセルMC内の選択トランジスタTrがオンされる。そして、書き込みデータに応じた向きの書き込み電流が、選択されたメモリセルMCに供給される。データの書き込み時、電流を流す向きに応じて、いずれか一方の書き込み回路2A,2Bはソース側となり、他方の書き込み回路2B,2Aはシンク側となる。
本構成例のMRAMは、誤り検出訂正回路52を備える。誤り検出訂正回路52は、主メモリ50からその回路52に出力されたデータに誤りが含まれているか否か検出する機能と、データに含まれる誤りを訂正する機能を有する。
例えば、誤り検出訂正回路52は、符号化部61、誤り検出部62、誤り訂正部63及び復号化部64と、を有する。
符号化部61は、バッファメモリ54を介して外部から入力されたデータDT1に、データの誤りを検出及び訂正するための符号(冗長ビット)を付加する。以下、符号化部61がデータに付加する符号のことを、誤り検出訂正符号とよぶ。
符号化部61は、誤り検出訂正符号を付加したデータnDTを主メモリ50に出力する。そのデータnDTは、主メモリ50内の選択セルに書き込まれる書き込みデータとして扱われる。また。符号化部61は、入力されたデータDT1に誤り検出符合を付加した際に、制御信号(第1の制御信号)NWCを、書き込みパルス幅制御回路53に出力する。
制御信号NWCは、外部から入力されたデータnDTを主メモリ50に書き込む場合に、パルス幅Twp1を有する書き込み電流Iw1を生成及び出力するように、書き込みパルス幅制御回路53及び主メモリ50内の書き込み回路2A,2Bの動作を制御するための信号である。以下、制御信号NWCのことを、通常書き込み信号NWCとよぶ。
誤り検出部62は、主メモリ50から出力されたデータrDTの誤り検出訂正符号を用いて、主メモリ50から読み出されたデータrDTが誤りを含むか否か検査する。誤り検出部62は、そのデータrDTが誤りを含む場合、誤りを含むデータerdを誤り訂正部63に出力する。一方、誤り検出部62は、そのデータrDTが誤りを含まない場合、そのデータrDTを復号化部64に出力する。
誤り訂正部63は、読み出されたデータrDTに誤りが含まれていた場合に、その誤りを訂正する。誤り訂正部63は、誤りが訂正されたデータ(以下、訂正データとよぶ)cDTを、主メモリ50及び復号化部64に出力する。主メモリ50に出力された訂正データcDTは、主メモリ50内の所定のメモリセルに、書き込まれる。訂正データcDTは、例えば、訂正される前に記憶されていたのと同じメモリセル(MTJ素子)に書き込まれる。
誤り訂正部63は、訂正データを主メモリ50に出力する際に、制御信号(第2の制御信号)RWCを、書き込みパルス幅制御回路53に出力する。
制御信号RWCは、訂正データcDTを主メモリ50に書き戻す場合に、訂正データcDTの書き込みに用いる電流Iw2のパルス幅Twp2を、通常の書き込み電流Iw1のパルス幅Twp1よりも長くするように、書き込みパルス幅制御回路53及び主メモリ50内の書き込み回路2A,2Bの動作を制御するための信号である。これによって、MRAMチップ内において、主メモリ50から一度出力されたデータ(訂正データcDT)が、主メモリ50に再び書き込まれる場合に、図17に示される長いパルス幅Twp2の書き込み電流Iw2が、データの書き込みに用いられる。以下、制御信号RWCのことを、再書き込み信号RWCとよぶ。
復号化部64は、読み出し動作の際、誤り検出部62又は誤り訂正部63から出力されたデータrDT,cDTを復号化する。そして、復号化部64は、復号化されたデータを、バッファメモリ54に出力する。
本構成例のMRAMにおいて、誤り検出訂正回路52は、例えば、誤り検出訂正技術として拡張ハミングコード(Extended Humming code)を用いて、データが含む誤りを検出及び訂正する。拡張ハミングコードが用いられた場合、誤り検出訂正符号は、所定のビット数のハミングコードとパリティビットとを含んでいる。但し、誤り検出訂正回路52には、リード・ソロモン法など、他の誤り検出訂正技術が適用されてもよい。
また、本構成例のMRAMは、例えば、バッファメモリ54を備える。バッファメモリ54は、外部から入力されたデータDT1を一時的に保持する。また、バッファメモリ54は、誤り検出訂正回路52を経由して、主メモリ50から出力されたデータを、一時的に保持し、保持したデータDT2を、外部へ出力する。
バッファメモリ54は、MRAMでもよいし、DRAM(Dynamic RAM)又はSRAM(Static RAM)でもよい。例えば、バッファメモリ54がMRAMによって構成される場合、バッファメモリ54としてのMRAM内で生じる書き込み不良の発生確率は、主メモリ50としてのMRAM内の書き込み不良の発生確率よりも低いことが望ましい。
そのため、バッファメモリ54に用いられるMRAMにおいて、その選択トランジスタのサイズ(例えば、チャネル長)が、主メモリ50に用いられているMRAMの選択トランジスタTrのサイズよりも大きくされることが好ましい。これによって、バッファメモリ54内の選択トランジスタの電流駆動力が大きくなり、バッファメモリ54内のMTJ素子に、十分大きな書き込み電流を流すことができる。それゆえ、バッファメモリ54内の書き込み不良は低減する。
尚、バッファメモリ54としてのMRAMに、1つのMTJ素子と2つの選択トランジスタとから構成された、2Tr+1MTJの構成を有するメモリセルが用いられてもよい。この場合、2つの選択トランジスタが1つのMTJ素子に対して用いられることで、1つのメモリセルにおける選択トランジスタの実質的なサイズは、大きくなる。よって、1つの選択トランジスタのサイズを大きくするのと同様に、2Tr+1MTJ型のメモリセルを用いた場合においても、バッファメモリ54内のMTJ素子に、十分大きな書き込み電流を流すことができる。これによって、バッファメモリ54内の書き込み不良を低減できる。
本構成例のMRAMは、制御回路51及び書き込みパルス幅制御回路53を、備える。制御回路51は、外部から入力されたコマンド信号CMD及びアドレス信号ADRに基づいて、MRAM(チップ)全体の動作を制御する。コマンド信号CMDは、データの書き込み、データの読み出し及びデータの消去など、主メモリ50に対する動作を示す。アドレス信号ADRは、動作の対象のメモリセルのアドレスを示す。
書き込みパルス幅制御回路53は、誤り検出訂正回路52が、誤り検出訂正符号を付加した外部からのデータnDTを主メモリ50に書き込む際に、図17に示すような所定のパルス幅Twp1を有する書き込み電流Iw1を用いるように、主メモリ50の動作、特に、書き込み回路2A,2Bの動作を制御する。書き込みパルス幅制御回路53の制御によって、主メモリ50A内の書き込み回路2A,2Bは、外部からのデータの書き込み時、パルス幅Twp1を有する書き込み電流Iw1を出力する。パルス幅Twp1の書き込み電流Iw1を用いた書き込みのことを、通常書き込みとよぶ。
書き込みパルス幅制御回路53は、誤りを訂正したデータcDTを主メモリ50に書き込む際に、書き込み電流Iw1のパルス幅Twp1よりもパルス幅を長くし、その長いパルス幅Twp2を有する書き込み電流Iw2を用いるように、主メモリ50の動作、特に、書き込み回路2A,2Bの動作を制御する。書き込みパルス幅制御回路53の制御によって、主メモリ50A内の書き込み回路2A,2Bは、訂正されたデータの書き込み時、パルス幅Twp2を有する書き込み電流Iw2を出力する。パルス幅Twp2の書き込み電流Iw2を用いた書き込みのことを、再書き込み或いは書き戻しとよぶ。
パルス幅Twp1,Twp2の制御は、書き込みパルス幅制御回路53が書き込み回路2A,2Bを活性化させている期間、具体的には、書き込み回路2A,2Bと選択セルとを導通させている期間を制御するによって、実行される。
書き込みパルス幅制御回路53の動作は、制御回路51及び2つの制御信号NWC,RWCによって、制御される。上述のように、通常書き込み信号NWCは、入力されたデータに誤り検出訂正符号が付加された時に、誤り検出訂正回路52内の符号化部61から出力される。再書き込み信号RWCは、データrDTの誤りが訂正された時に、誤り検出訂正回路52内の誤り検出部62又は誤り訂正部63から出力される。書き込みパルス幅制御回路53は、通常書き込み信号NWCが入力されたとき、パルス幅Twp1の書き込み電流Iw1を出力させる制御信号pwcsを主メモリ50に出力する。書き込みパルス幅制御回路53は、再書き込み信号RWCが入力されたとき、パルス幅Twp2の書き込み電流Iw2を出力させる制御信号pwcsを主メモリ50に出力する。以下、制御信号pwcsのことを、パルス幅制御信号pwcsとよぶ。パルス幅制御信号pwcsが、パルス幅Twp1又はTwp2のいずれかを用いることを示すことによって、書き込み電流のパルス幅が制御されてもよいし、パルス幅制御信号pwcsの入力の有無によって、書き込み電流のパルス幅が制御されてもよい。
尚、書き込みパルス幅制御回路53は、制御回路51内に設けられてもよい。また、書き込みパルス幅制御回路53を設けずに、制御回路51が、書き込みパルス幅制御回路53と同じ機能を有し、2つの制御信号NWC,RWCが制御回路51に入力されてもよい。また、本構成例のMRAMは、図14に示される構成のほかに、コマンド信号が入力されるコマンドインターフェイスや、アドレス信号が入力されるアドレスバッファを別途に備えてもよい。
本実施形態の構成例に係るMRAMは、外部から入力されたデータをMTJ素子1に通常に書き込む場合、パルス幅Twp1の書き込み電流Iw1を用いる。また、本構成例のMRAMは、MTJ素子1が記憶するデータの誤りを訂正して、その訂正したデータをMTJ素子1に書き戻す場合に、書き込み電流のパルス幅を長くし、パルス幅Twp1より長いパルス幅Twp2の書き込み電流Iw2を用いる。
これによって、本構成例のMRAMは、メモリセルアレイ20内の複数のMTJ素子に特性(例えば、反転しきい値)にばらつきがあっても、書き込み不良を低減できる。また、本構成例のMRAMは、MTJ素子に記憶された(書き込まれた)データが誤りを含み、その誤りが訂正されたデータをMTJ素子1に再び書き込む場合にのみ、長いパルス幅Twp2の書き込み電流Iw2を用いる。そのため、MRAMの動作サイクルが過剰に長くなることがなく、高速性が損なわれることが無い。
したがって、本発明の実施形態に係る磁気メモリは、その動作の信頼性が向上し、動作速度が向上する。
(2) 動作
図18乃至図22を用いて、本発明の実施形態に係る磁気メモリの動作について、説明する。以下では、本実施形態の磁気メモリの動作について、磁気メモリの構成を示す図14乃至図17も適宜用いて説明する。尚、本実施形態の磁気メモリの動作においては、拡張ハミングコードを用いて、データの誤りを検出及び訂正する場合について述べる。但し、他の誤り検出訂正技術(例えば、リードソロモン法)を、本実施形態の磁気メモリに適用できるのは、もちろんである。
(a) 動作例1
図18を用いて、本実施形態の構成例に係る磁気メモリ(MRAM)の動作例1について説明する。ここでは、本構成例のMRAMの動作例1として、本構成例のMRAMに用いられるデータの書き込みについて、述べる。
図18に示すように、データの書き込み時、書き込みを示すコマンド信号CMD、アドレス信号ADR、書き込まれるデータDT1が、外部から入力される(ステップST1)。コマンド信号CMD及びアドレス信号ADRは、例えば、制御回路51内に入力される。データDT1は、例えば、バッファメモリ54に入力される。そのデータDT1は、バッファメモリ54に記憶される(ステップST2B)。例えば、データDT1は、拡張ハミングコードにおけるデータ(情報ビット)のブロック長(例えば、64ビット)を1つの単位として、バッファメモリ54内に格納されることが好ましい。
入力されたデータDT1は、バッファメモリ54に記憶されるとともに、バッファメモリ54を経由して、誤り検出訂正回路52に入力される。データDT1は、誤り検出訂正回路52内の符号化部61に入力される。データDT1は符号化部61によって、誤り検出訂正符号として、例えば、8ビットの冗長ビットが付加される。冗長ビットが付加されたデータnDTは、符号化部61から主メモリ50に出力される。
この際、制御信号(通常書き込み信号)NWCが、符号化部61から書き込みパルス幅制御回路53に出力される。
書き込みパルス幅制御回路53は、入力された通常書き込み信号NWCに基づいて、データnDTを書き込むための書き込み電流のパルス幅を制御(調整)する。書き込み電流のパルス幅を“Twp1”にするための制御信号(パルス幅制御信号)pwcsが、書き込みパルス幅制御回路53から主メモリ50に出力される。
主メモリ50内において、アドレス信号ADRが示すワード線がロウ制御回路4によって活性化され、アドレス信号ADRが示すビット線がカラム制御回路3A,3Bによって、活性化される。主メモリ50内の書き込み回路2A,2Bは、制御信号pwcsによって制御され、例えば、図17に示される所定のパルス幅Twp1を有する書き込み電流Iw1を出力する。
その書き込み電流Iw1が、ビット線BL,bBLを流れ、アドレス信号ADRが示す選択セル(MTJ素子)に供給され、データnDTが書き込まれる(ステップST2A)。通常書き込みにおいて、データnDTを書き込むための書き込み電流Iw1のパルス幅Twp1は、例えば、(式4)に示される不感時間t0以上に設定されている。
このように、符号化部61から出力されたデータnDTを主メモリ50内の選択セルに書き込む際、書き込み電流Iw1のパルス幅Twp1には、例えば、磁化の反転に要する最低限の時間(期間)に対応したパルス幅が、用いられる。
書き込み電流Iw1を用いて主メモリ50内にデータnDTを書き込んだ後、書き込まれたデータに対するベリファイ動作のため、書き込まれたデータが主メモリ50から誤り検出訂正回路52内に読み出される(ステップST3)。ここでは、ベリファイされるために読み出されたデータのことを、ベリファイデータとよぶ。
ベリファイデータrDTは、誤り検出訂正回路52内の誤り検出部62に入力される。誤り検出部62は、ベリファイデータrDTに付加された冗長ビット(誤り検出訂正符号)を用いて、MTJ素子1が記憶するデータrDTが誤りを含むか否か検査する(ステップST4)。
ベリファイデータrDTに誤りが検出された場合、その誤りが訂正される(ステップST5)。誤りを含むベリファイデータrDTは、誤り検出部62から誤り訂正部63へ出力される。ベリファイデータrDTの誤りは、冗長ビットに基づいて、誤り訂正部63によって、訂正される。MTJ素子1に書き込まれたデータに誤りが無い場合、データの書き込みは、終了する(ステップST7)。
誤りが訂正されたデータ(訂正データ)cDTは、主メモリ50に出力され、メモリセルアレイ20内のMTJ素子1に、再び書き込まれる(ステップST6)。訂正データcDTは、通常、ベリファイ動作の前に書き込んだアドレスと同じアドレスに、重ね書きされる。つまり、訂正データcDTは、訂正の前後で同じMTJ素子1に書き込まれる。
この訂正データの書き込み(ステップST6)は、通常書き込みに用いられる書き込み電流Iw1のパルス幅Twp1よりも長いパルス幅Twp2の書き込み電流Iw2が用いられる。
本動作例1において、訂正データcDTがMTJ素子1に書き込まれる際、再書き込みを示す制御信号(再書き込み信号)RWCが、誤り検出訂正回路52内の誤り訂正部63から書き込みパルス幅制御回路53へ出力される。
再書き込み信号RWCが書き込みパルス幅制御回路53に入力されることによって、書き込み電流のパルス幅を長くするためのパルス幅制御信号pwcsが、書き込みパルス幅制御回路53から主メモリ50に出力される。そのパルス幅制御信号pwcsによって、図17に示されるように、パルス幅Twp2(>Twp1)を有する書き込み電流Iw2が、主メモリ50内の書き込み回路から出力され、書き込み電流Iw2が選択セルに直接供給される。
例えば、書き込み動作及びベリファイ動作のループにおいて、書き込み電流のパルス幅は、前のデータの書き込み時に用いられた電流のパルス幅の、1.10倍にするように、パルス幅制御信号pwcsによって制御される。尚、書き込み電流のパルス幅を大きくする増加率は、1.10倍に限定されず、例えば、1.07倍から1.15倍程度の範囲内でもよい。
このように、誤り検出訂正回路52から出力される2つの制御信号NWC,RWCによって、データの書き込みが、通常書き込みであるか再書き込み(書き戻し)であるかが、判別される。これによって、書き込み電流のパルス幅を、所定のパルス幅Twp1にするか、パルス幅Twp1より長くするかが、判別される。
尚、データの書き込み時において、書き込みデータの誤りの検出、訂正及び再書き込みが実行されている期間中に、それらの処理が実行中のデータに対して、読み出し命令が入力された場合、そのデータに対応するバッファメモリ54に記憶されたデータが、外部へ読み出される(ステップST2B)。
主メモリ50内に書き戻された訂正データcDT(以下、再書き込みデータとよぶ)は、再びベリファイ動作(ステップST3)の対象となる。それゆえ、再書き込みデータは主メモリ50から再び出力され、データ内に誤りがあるか否か検査される。再書き込みデータに誤りが検出された場合、その誤りが訂正され、訂正されたデータが再び書き戻された後、再度ベリファイされる。再書き込みデータに誤りが無い場合、データの書き込みは終了する(ステップST7)。
尚、ベリファイ動作が繰り返し実行され、データの再書き込みが複数回実行された場合、1つのデータに対して再書き込みの回数を重ねるごとに、書き込み電流のパルス幅を大きくすることが、好ましい。この場合、書き込み電流のパルス幅を同じ倍率(例えば、1.1倍)で大きくしてもよい。但し、1回目の再書き込み時にのみパルス幅を長くし、2回目以降の再書き込みに用いる書き込み電流のパルス幅は、1回目の書き込み電流のパルス幅と同じ長さでもよい。
データを再書き込みするループは、データの誤りが無くなるまで無限に続けてもよい。しかし、データを書き戻すループは、一定の回数、例えば、10回までに制限し、10回の再書き込みのループを行っても、データの誤りがなくならない場合、選択アドレスが示すMTJ素子自体に欠陥があると判定して、主メモリ50の別のアドレスへ訂正データ(書き戻しデータ)を記憶するよう変更することが効果的である。
データの再書き込みは、誤っていたビットのみが1つの選択セルに重ね書きされてもよいし、1ブロックに含まれる全ビットが、対応する各選択セルへ重ね書きされてもよい。但し、磁気メモリの消費電力を抑制するために、誤っていたビットのみを重ね書きすることが好ましい。
<動作例1の効果>
図19乃至図21を用いて、本実施形態の磁気メモリ(MRAM)の動作例1の効果について、説明する。
図19は、MTJ素子に供給される電流の電流値Ic,mpの分布を示している。電流値Ic,mpは、あるパルス幅の書き込み電流を用いてMTJ素子にデータを書き込んだ場合に、そのMTJ素子の記憶層の磁化反転確率が0.5になる電流値を示している。
図19において、分布Cは、データの訂正及び再書き込みが実行されない場合に満たすべき電流Ic,mpの分布を示している。この場合、誤動作の発生確率をある仕様値以下にするには、分布Cのばらつきを小さくする必要がある。分布Dは、データの訂正及び再書き込みが実行される場合の分布を示している。誤動作の発生確率をある仕様値以下にする場合、分布Dは、データの訂正及び再書き込みを行うので、分布Cよりもばらつきが大きくともよい。
また、図19には、書き込み電流Iwrの分布も示されている。図19において、横軸は、電流Ic,mp,Iwriteの大きさが示され、縦軸は、存在確率が示されている。
図19に示されるように、電流Ic,mpの分布C,Dは電流Iwrの分布に対して、所定のマージン領域MR,CRが確保される。本実施形態の動作例1において、図19の分布Dのように、データの訂正及び再書き込みが実行されることによって、分布Cで示されるデータの訂正及び再書き込みが実行されない場合に比較して、電流Ic,mpのばらつきの許容度が広がる利点がある。つまり、メモリセルアレイ内にビット(MTJ素子)間のばらつきが大きくとも、誤動作確率を抑制できる。本実施形態において、誤動作とは、誤り検出訂正技術によって訂正できない不良のことである。尚、本実施形態において、誤り検出訂正技術によって訂正できる不良のことは、単に、不良、エラー或いは誤りとよぶ。
磁気メモリ、例えば、MRAMにおいて、磁性体の磁化反転が確率現象であるために、書き込み不良、読出しディスターブ及びリテンション不良などが起きる。これらに起因する誤動作の確率の合計は、1チップあたり1000FIT(Failures In Time)以下に保証されることが好ましい。それゆえ、ここでは、1000FIT/チップを想定して、本動作例(書き込み動作)の効果について、述べる。尚、1000FIT/チップは、一般的なDRAMのソフトエラーに対する仕様である。
ここでは、1GビットのMRAMにおいて、例えば、誤り検出訂正符号として拡張ハミングコードを用い、64ビットのデータ(情報ビット)に8ビットの誤り検出訂正符号(冗長ビット)を付加し、72ビットを1ブロックとする。この場合、MRAMに含まれる総ブロック数は1.68×107個である。そして、1ブロックごとにデータの書き込みとデータの読み出しとを、10年間交互に繰り返した場合、書き込みの総回数は3.15×1015回である。読み出しの総回数も、3.15×1015回である。
1回のデータの書き込みにおいて、1ブロック中に2ビットの不良が同時に発生する確率が、1000FIT/チップに抑制されるためには、1ビット(1つのMTJ素子)に対する1回の書き込みにおける書き込み不良の発生確率q(write)が、2×10−10以下であることが好ましい。また、1回のデータの読み出しにおいて、1ブロック中に2ビットの不良が同時に発生する確率が、1000FIT/チップに抑制されるためには、1ビットに対する1回の読み出しにおける読み出しディスターブの発生確率q(read)が、2×10−10以下であることが好ましい。
ここでは、書き込み不良は、“0”データの書き込み又は“1”データの書き込みのいずれか一方で顕著になることを考慮した。また、ここでは、読み出しディスターブは、“0”データの読み出し又は“1”データの読み出しのいずれか一方でしか、発生しないことを考慮した。
次に、メモリセルアレイ内の任意の1ブロックに着目して、誤動作の確率を考える。
1回のデータの書き込みにおいて、1ブロック(72ビット)内に1ビットの書き込み不良が発生する確率p
1(write)は、(式6)で示される。
1ブロック内に2ビット以上同時に書き込み不良が発生し、誤動作になる確率p
2+(write)は、(式7)で示される。
1回のデータの読み出しにおいて、1ブロック内に1ビットの読み出しディスターブが発生する確率p
1(read)は、(式8)で示される。
また、1ブロックに2ビット以上同時に、読み出しディスターブが発生し、誤動作になる確率p
2+(read)は、(式9)で示される。
データの書き込み及びデータの読み出しにおいて、同じ1ブロックに、1ビットの書き込み不良と1ビットの読み出しディスターブが発生して、誤動作になる確率は、(式10)で示される。
以上の不良の確率から誤動作の確率の合計は、(式11)で示すことができる。
図17及び図18を用いて説明したように、本構成例のMRAMにおけるデータの書き込みは、外部からのデータをMTJ素子に書き込んだ後、書き込まれたデータが含む誤りを訂正したデータをMTJ素子に再び書き込む場合、訂正データの書き込み電流のパルス幅を、外部からのデータの書き込み電流のパルス幅よりも長くする。これによって、1ビットの書き込み不良の確率p1(write)は十分小さくされる。
例えば、図11を用いて説明したように、ある書き込み電流のパルス幅に対して、パルス幅が7%長くなると、書き込み不良の確率p1(write)は1/10程度に減少しパルス幅が14%〜15%程度長くなると、書き込み不良の確率p1(write)は1/100程度に減少する。
したがって、同じブロックにおいて、書き込みによって1ビットの書き込み不良が発生し、且つ、読み出しによって1ビットの読み出しディスターブが発生することによって、誤動作になる確率は、1/100に小さくできる。
一般的なメモリ(例えば、DRAM)において、書き込み及び読み出し時における誤動作の発生のリスクを分散するため、不良の発生確率は、p1(write)=p1(read)に設定される。
しかし、(式11)に示されるように、誤動作の発生確率は、1ビットの書き込み不良の発生確率p1(write)と1ビットの読み出しディスターブの発生確率p1(read)との和に相関関係を有するため、1ビットの書き込み不良の発生確率p1(write)が十分小さくなれば、1ビットの読み出しディスターブの発生確率p1(read)が、少し大きくなっても、MRAMの動作に大きな悪影響はない。
上述のように、本構成例のMRAMの動作例1において、訂正したデータを主メモリ(MTJ素子1)に書き戻す場合、書き込み電流のパルス幅を長くして、書き込み不良の発生確率p1(write)を十分に小さくする。
上述のように、書き込み電流のパルス幅をあるパルス幅より7%長くした場合、書き込み不良の発生確率p1(write)は、1/10に小さくなる。その結果、読み出しディスターブの発生確率p1(read)は、1.9倍まで大きくできる。書き込み電流のパルス幅をあるパルス幅より14%〜15%長くした場合、書き込み不良の確率p1(write)は、1/100に小さくなる。その結果、読み出しディスターブの発生確率p1(read)は、1.99倍まで大きくできる。
また、読み出しディスターブ発生確率p1(read)を1.9倍にできることによって、図17に示される読み出し電流Irの電流値irを、1.02倍にできる。このため、主メモリ50のメモリセルアレイ20内において、MTJ素子の抵抗値(MR比)のばらつきが大きくなっても、比較的大きな読み出し電流IrをMTJ素子に供給できるため、読み出しのためのS/N比を十分大きく確保できる。このように、本構成例のMRAMの書き込み動作にともなって、データの読み出し時において、比較的大きな読み出し電流を用いることができるので、MTJ素子の抵抗値(MR比)が小さくとも精度のよいデータの読み出しを実行でき、また、読み出しに対するメモリセルアレイ20内のMTJ素子1のばらつきの許容度が大きくできる。
また、書き込み不良の発生確率p1(write)を、例えば、1/100に小さくできることは、図19に示されるように、メモリセルアレイ20の複数のMTJ素子1に対して、電流Ic,mpのばらつきの許容度が広がることを意味する。これについて、図20及び図21を用いて、説明する。
図20及び図21は、反転しきい値がMTJ素子間でばらつく現象、及び、反転しきい値電流密度JcがMTJ素子間でばらつく現象を考慮した典型的な書き込み電流密度の設定例を、示している。
図20に示される例において、電流密度Jcの素子間のばらつきが3%の場合において、データが、パルス幅が20nsecの書き込み電流によって書き込まれる。図20では、その書き込み電流の電流密度Jwrにおける書き込み不良の発生確率q(write)の平均が、1×10−10になるように設定されている。
図20において、縦軸は確率を示し、横軸は電流密度を示している。また、図20において、特性線f1は電流密度Jcの素子間のばらつきの正規分布を示し、特性線PAは書き込み不良の発生確率を示し、特性線S1は正規分布f1と発生確率PAの積を示している。また、線Jwrは、設定された書き込み電流の電流密度を示している。
図21は、図20に示される設定例に用いた書き込み電流のパルス幅が14%増大された場合を、示している。図21において、特性線f2は電流密度Jcの素子間のばらつきの正規分布を示し、特性線PBは書き込み不良の発生確率を示し、特性線S2は正規分布f2と発生確率PBの積を示している。また、線Jwrは、設定された書き込み電流の電流密度を示している。
図21において、電流密度Jcの素子間のばらつきは5%である。図21に示されるように、書き込み電流のパルス幅が14%増大された場合、電流密度Jcの素子間ばらつきが5%程度まで大きくなっても、正規分布f1,f2と発生確率PA,PBとの積の値S1,S2を参照すると、図21に示される不良の発生確率q(write)の平均は、1×10−10程度になる。この値は、実質的に図20に示される例と同じである。
このように、本構成例のMRAMの動作例1(データの書き込み)によって、書き込み不良の発生確率p1(write)を減少させることは、電流密度Jcの素子間ばらつきの許容度が、3%から5%に増大することに相当する。
尚、上述のように、外部から入力された書き込みデータは、主メモリ50内に記憶されるとともに、バッファメモリ54内にも一時的に記憶される。そのため、データの誤りの検出、訂正及びデータの書き戻しが実行されているサイクル中に、そのデータを読み出すためのコマンド信号CMDが入力された場合、バッファメモリ54からそのデータが読み出される。それゆえ、訂正データを書き戻す工程によって、メモリの動作が遅くなることはない。それゆえ、磁気メモリ、例えば、MRAMの高速動作を損なうことはない。
以上のように、本実施形態に係る磁気メモリは、データの書き込み時、外部からのデータをパルス幅Twp1の書き込み電流を用いて、MTJ素子1に書き込む。そして、本実施形態に係る磁気メモリは、MTJ素子1に書き込まれたデータが、正常に書き込まれたか否か検証する。書き込まれたデータが誤りを含む場合、本実施形態に係る磁気メモリは、その誤りを訂正し、訂正したデータをMTJ素子に再び書き込む。訂正されたデータは、パルス幅Twp1より長いパルス幅Twp2の書き込み電流Iw2を用いて、MTJ素子1に書き込まれる。これによって、データの書き込みのための時間が過剰に長くならずに、書き込み不良の発生確率が低減される。
また、主メモリのメモリセルアレイ内の書き込み不良の発生が低減されるので、書き込み不良、読み出しディスターブ及びリテンション不良に起因する誤動作の発生も低減する。
したがって、本発明の実施形態に係る磁気メモリによれば、その動作の信頼性を向上でき、且つ、動作特性を向上できる。
(b) 動作例2
図22を用いて、本実施形態の構成例に係る磁気メモリ(MRAM)の動作例2について説明する。ここでは、本構成例のMRAMの動作例2として、本構成例のMRAMに用いられるデータの読み出しについて、述べる。本動作例2において、MRAMの回路構成は動作例1と共通であり、共通する構成及び動作(ステップ)については、必要に応じて説明する。
図22は、本構成例のMRAMのデータ読み出し動作を示すフローチャートである。
まず、図22に示されるように、MRAMのある動作サイクルの中で、主メモリ50内の選択セル(MTJ素子1)にデータが書き込まれる(ステップST10)。このデータは、例えば、通常書き込み、つまり、図17に示されるパルス幅Twp1の書き込み電流Iw1を用いて、書き込きこまれたデータである。但し、再書き込み、つまり、図17に示されるパルス幅Twp2の書き込み電流Iw2を用いて書き込まれたデータであってもよい。
データの読み出し時、読み出し命令を示すコマンド信号CMD及び選択セルを示すアドレス信号ADRが、外部から入力される(ステップST12)。コマンド信号CMD及びアドレス信号ADRは、例えば、制御回路51内に入力される。
制御回路51の制御に基づいて、データが、主メモリ50内から出力される。本動作例では、読み出し命令によって主メモリ50内から出力されるデータのことを、読み出しデータrDTとよぶ。
読み出しデータrDTは、誤り検出訂正回路52内の誤り検出部62に入力される。誤り検出訂正信号(冗長ビット)を含む読み出しデータrDTは、誤り検出部62によって、誤りを含むか否かが検査される(ステップST13)。
読み出しデータrDTに誤りが検出されなかった場合、データの訂正は実行されずに、読み出しデータrDTは、復号化部64に出力される。復号化部64は、入力された読み出しデータrDTを復号化する。復号化されたデータは、バッファメモリ54に一時的に格納される。そして、データDT2が、バッファメモリ54からチップの外部に出力される(ステップST14)。これによって、読み出されたデータに誤りが無かった場合において、データの読み出しは、終了する。
一方、読み出しデータrDTに誤りが検出された場合、その誤りが訂正される(ステップST15)。読み出しデータrDTは誤り訂正部63に出力され、読み出しデータrDT内の誤りは、付加された冗長ビットに基づいて、誤り訂正部63によって訂正される。
訂正されたデータは、復号化部64に出力され、復号化される。復号化された訂正データcDTは、バッファメモリ54を経由して、出力データDT2として、外部へ出力される(ステップST16)。訂正データcDTは、外部に出力されるのと同時に、バッファメモリ54に一時的に記憶される(ステップST17)。訂正データcDTの再書き込み中に、そのデータに対する読み出し命令が入力された場合、バッファメモリ54に記憶されたデータが、外部へ出力される。
本動作例のデータの読み出し時において、訂正データcDTが外部へ出力されるのとともに、その訂正データcDTが主メモリ50に書き戻される(ステップST18)。
訂正データcDTが主メモリ50に書き戻される場合、例えば、図17に示される書き込み電流Iw2のように、再書き込みに用いられる書き込み電流Iw2のパルス幅Twp2は、通常書き込みに用いられる書き込み電流Iw1のパルス幅Twp1よりも、長くされる。この書き込み電流Iw2によって、訂正データcDTがMTJ素子1に再書き込みされる。
書き戻されたデータcDTは、主メモリ50(MTJ素子1)から誤り検出部62に再び読み出され、誤りがあるか否か検査される(ステップST19)。
書き戻された訂正データcDTが誤りを含まない場合、データの読み出し時におけるデータの訂正及びデータの再書き込みは、終了する。
書き戻されたデータcDTが再び誤りを含む場合、そのデータの誤りを再度訂正(ステップST20)し、その訂正データは、主メモリ50に再び書き込まれる。2回目の再書き込みには、1回目の再書き込みよりもさらに電流パルス幅を長くすることが、効果的である。例えば、データの訂正及び再書き込みのループ(ST18〜ST20)の回数を重ねるごとに、書き込み電流のパルス幅を1.1倍ずつ大きくされる。但し、1回目の再書き込みと2回目以降の再書き込みとで、同じパルス幅の書き込み電流を用いてもよい。
この再書き込みのループ(ST18〜ST20)中に訂正されたデータは、例えば、バッファメモリ54に一時的に格納される(ステップST17)。格納されたデータは、再書き込みのループのたびに書き改められる。
そして、書き戻されるデータに誤りが無くなった場合、データの再書き込みが終了する。
再書き込みのループ(ST18〜ST20)は、データの誤りが無くなるまで続けてもよいし、再書き込みのループは、所定の回数(例えば、10回)までに制限してもよい。例えば、再書き込みを同じアドレス(MTJ素子1)に対して10回行っても、誤りがなくならない場合、主メモリ50内の別のアドレスへ書き込むように、アドレスを変更することが、メモリセルアレイ内のデータの不良を低減するために効果的である。
<動作例2の効果>
以下、本実施形態の磁気メモリ(MRAM)の動作例2の効果について、説明する。尚、動作例1で述べた効果と同様の効果については、ここでの説明は省略する。
本動作例2で述べたMRAMのデータの読み出しが、MRAMに適用されることによって、通常書込み時に発生した書き込み不良を、データの読み出し時に訂正することができる。
また、本動作例2のデータの読み出しにおいて、再書き込みに用いられる書き込み電流のパルス幅が通常書き込み時に用いられる書き込み電流のパルス幅より長くされることによって、再書き込みによるデータの書き戻し時に発生する書き込み不良を、低減できる。
さらに、本動作例2のデータの読み出しは、熱擾乱によるデータ保持時に発生するリテンション不良に対しても、有効である。
つまり、本動作例2のデータ読み出しによれば、読出しディスターブ不良、書き込み不良、リテンション不良、などで生じた不良ビットを、早い段階で正しいビットに修正できる。その結果、1ブロック中に2ビット以上の誤りが発生し、誤り検出訂正技術を用いても、データの誤りを訂正できない誤動作の発生確率を減少することができる。
また、上述の動作例1と同様に、訂正されたデータの再書き込み時のみ、書き込み電流のパルス幅を長くすることに起因してMRAMの高速動作が損なわれることはない。
したがって、本発明の実施形態に係る磁気メモリによれば、その動作の信頼性を向上でき、且つ、動作特性を向上できる。
[構成例2]
図23乃至図30を参照して、本発明の実施形態に係る磁気メモリ(例えば、MRAM)の構成例2について、述べる。尚、本構成例2において、基本例及び構成例1で述べた構成と同じ構成については、共通の符号を付し、詳細な説明は省略する。
本構成例2の磁気メモリは、上述の構成例1の磁気メモリと同様に、主メモリ50に一度書き込まれたデータ(第1のデータ)に不良(誤り)を検出した場合、その不良が訂正されたデータ(第2のデータ)を、前回の書き込みに用いられた書き込み電流(第1の書き込み電流)のパルス幅より長いパルス幅を有する書き込み電流(第2の書き込み電流)を用いて、主メモリ50に書き戻す。
但し、構成例2の磁気メモリは、書き込まれたデータの誤り検出及び訂正を、誤り検出訂正符号を用いずに実行する点が、上述の構成例1の磁気メモリと相違する。
(1) 回路
図23を用いて、構成例2の磁気メモリ(MRAM)の回路構成について述べる。
図23に示されるように、本構成例のMRAMの回路構成は、例えば、誤り検出訂正回路(不良検出回路)52内に比較部69が設けられる点が、構成例1の磁気メモリの回路構成と異なる。
構成例2において、書き込まれたデータに含まれる誤りの検出及び訂正を、誤り検出訂正符号を用いずに、実行される。
そのため、本構成例のMRAMにおいて、書き込みを示すコマンド信号(以下、書き込みコマンドとよぶ)に対応して外部から入力されたデータDT1は、誤り検出訂正符号が追加されずに、バッファメモリ54を経由して、主メモリ50に入力される。
そして、本構成例2において、制御回路51は、誤り訂正検出正符号が付されないデータが、通常書き込みによって、主メモリ50内の所定のアドレスに書き込まれるように、主メモリ50の動作を制御する。
つまり、外部からのデータDT1は、符号化されずに、パルス幅Twp1の書き込み電流Iw1をアドレスが示すMTJ素子に流すことによって、書き込まれる。
尚、誤り検出訂正符号がデータに付加されなければ、バッファメモリ54からのデータは、誤り検出訂正回路52内部を経由して主メモリ50に入力されてもよいし、他の経路で、主メモリ50に入力されてもよい。
図23において、通常書き込み信号NWCは、誤り検出訂正回路52から出力される。例えば、誤り検出訂正回路52は、外部からのデータがその回路52の内部に入力されたのを検知して、通常書き込み信号NWCを書き込みパルス幅制御回路53へ出力する。但し、通常書き込み信号NWCは、書き込みコマンドが入力された際に、制御回路51から書き込みパルス幅制御回路53へ出力されてもよい。或いは、通常書き込み信号NWCは、バッファメモリ54がデータDT1を主メモリ50に出力する際に、そのデータの出力と同期して、バッファメモリ54から書き込みパルス幅制御回路53に出力されてもよい。
そして、外部からのデータDT1が主メモリ50に書き込まれた後、誤り検出訂正回路52は、バッファメモリ54に一時的に保持された外部からの入力データとその入力データに対応する主メモリ50内に書き込まれたデータとが一致するか否かを比較(検証)する。つまり、誤り検出訂正回路52が比較する2つのデータは、主メモリ50に書き込まれる前のデータDT1と、通常書き込み又は再書き込みによって主メモリ50に書き込まれたデータを主メモリから読み出したデータwDT1である。
例えば、誤り検出訂正回路52内に、比較部69が設けられ、この比較部69が、バッファメモリ54が保持する外部からのデータDT1と主メモリ50から読み出されたデータwDT1とを比較する。比較部69は、入力されたデータと書き込まれたデータとを比較する機能に加え、例えば、バッファメモリ54に保持されたデータと主メモリ50に書き込まれたデータとを読み出す機能を有する。
上述のように、バッファメモリ54は、主メモリより高い信頼性でデータを保持(記憶)する。そのため、本構成例のMRAMは、バッファメモリ54に保持されたデータを、外部から入力されたデータと一致するデータ(不良を含まないデータ)とみなす。尚、構成例2において、不良を含まないデータとは、主メモリ50に書き込まれたデータに比較して、不良(誤り)の発生確率が十分低く、信頼性の高いデータであることを意味する。不良を含まないデータは、構成例1の訂正データに相当する。
バッファメモリ54が保持するデータDT1と主メモリ50に書き込まれたデータwDT1とが一致しないと誤り検出訂正回路52(比較部69)によって判定された場合、制御信号(再書き込み信号)RWCを、書き込みパルス幅制御回路53に出力する。そして、制御回路51及び書き込みパルス幅制御回路53の制御下において、書き込み不良の検出に用いられたバッファメモリ54内のデータDT1が、不良を含まないデータ(第2のデータ)として、前回のデータの書き込み(通常書き込み又は再書き込み)の書き込み電流のパルス幅Twp1より長いパルス幅Twp2を有する書き込み電流を用いて、主メモリ50内のMTJ素子1に書き込まれる。このように、主メモリ50から読み出されたデータに書き込み不良があった場合、バッファメモリ54が保持するデータと主メモリ50から読み出されたデータとを置き換えて、データを訂正(書き直し)する。
バッファメモリ54が保持するデータDT1と主メモリ50に書き込まれたデータが一致すると比較部69によって判定された場合、主メモリ50に書き込まれたデータは、書き込み不良を含まないデータであるとして、制御回路51は入力された書き込みコマンドに対応する書き込み動作を終了する。
本構成例2のMRAMにおいて、誤り検出訂正符号がデータに付加されないので、その読み出し動作は、主メモリ50内から読み出されたデータRDTが、復号化処理などの適用されたECC技術のための処理なしに、バッファメモリ54に転送される。そして、データRDTがバッファメモリ54に保持され、データDT2として、外部へ出力される。
尚、バッファメモリ54内に、書き込み動作のための書き込みバッファ54Aと読み出し動作のための読み出しバッファ54Bとが、それぞれ設けられてもよい。これによって、データの再書き込みが実行されている期間中に、そのデータに対する読み出しが外部から要求されても、例えば、並列処理によって、データの書き込み/読み出しを、効率的に実行できる。特に、本構成例では、書き込み不良の検出に、バッファメモリ54に保持されたデータが用いられるので、2つのバッファ領域54A,54Bを有するバッファメモリ54の構成は、効果的である。
本構成例2のMRAMにおいて、主メモリ50に書き込まれたデータが書き込み不良(誤り)を含むか否か検証するために、バッファメモリ54は、外部からのデータが入力されてから書き込み動作が終了するまでの期間、主メモリ50に書き込むデータに対応する外部からのデータを保持することが必要である。
これに対して、構成例1(図14参照)の磁気メモリにおいて、構成例1の磁気メモリは、データに付加された誤り検出訂正符号を用いて、主メモリ50に書き込まれたデータの誤り(不良)を検出及び訂正する。そのため、構成例1の磁気メモリにおいて、データの誤りの検出/訂正に用いるために、バッファメモリ54が、その誤り検出/訂正されるデータに対応する外部からのデータを保持している必要はない。
構成例2において、1つの書き込みコマンドに対して、1回の通常書き込みのみが実行される動作パターンと、1回の通常書き込みと1回以上の再書き込みが実行される動作パターンがある。本構成例において、書き込みコマンドが入力されてから、2つの動作パターンのうちいずれか一方が実行され、その書き込みが終了するまでの動作サイクルを、書き込みイベントとよぶ。
構成例2において、バッファメモリに保持されたデータと主メモリに保持されたデータとの比較によって検出されたデータの誤りのことを、書き込み不良とよぶ。
図23に示される例では、比較部69が誤り検出訂正回路52内に設けられている。但し、比較部69は、誤り検出訂正回路52の外部に設けられてもよい。また、比較部69を新たに設ける代わりに、図14に示される誤り検出部62及び誤り訂正部63が、比較部69と実質的に同じ機能をそれぞれ有し、バッファメモリ54と主メモリ50との間で、比較部69と実質的に同じ動作を実行してもよい。
本構成例2の磁気メモリ(MRAM)は、1つの書き込みイベント中に、誤り検出訂正符号を用いずに、データの書き込み不良の検出と訂正を実行できる。
つまり、本構成例2のMRAMは、主メモリに記憶されるデータに誤り検出訂正符号を付加する(符号化する)時間、誤り検出訂正符号を含むデータを復号化する時間、或いは、データの置換のための時間など、ECC技術に要する時間を削減できる。そのため、本構成例2のMRAMは、構成例1のMRAMに比較して、1つの動作サイクルを短縮できる。
また、ECC技術を用いてメモリの信頼性を向上させた場合、誤り検出訂正符号が付加されたデータは、その転送レートが低下する傾向がある。
これに対して、本構成例のMRAMにおいて、誤り検出訂正符号を付加せずに、主メモリ50に記憶されたデータの書き込み不良(誤り)を検出及び訂正できる。それゆえ、本構成例のMRAMは、高い信頼性を有するデータを、比較的早い転送レートで外部へ出力できる。
さらに、本構成例2のMRAMによれば、バッファメモリ54に保持されたデータと主メモリ50に書き込まれたデータとの間に3個以上の不一致がある、つまり、3個以上の書き込み不良が発生しても、データを訂正できる。
以上のように、本発明の実施形態の構成例2の磁気メモリは、構成例1の磁気メモリと同様に動作の信頼性を向上できるとともに、構成例1の磁気メモリに比較して、高速に動作できる。
(2) 動作
図24を用いて、本構成例2の磁気メモリ(MRAM)の書き込み動作について説明する。図24は、構成例2のMRAMの書き込み動作例を示すフローチャートである。尚、ここでは、構成例1のMRAMと実質的に同じ動作及び構成について、必要に応じて説明する。
図24に示されるように、データの書き込み時、書き込みを示すコマンド信号CMD、アドレス信号、データDT1が外部からMRAM内に入力される(ステップST1)。
データDT1は、書き込み動作(書き込みイベント)が終了するまでの間、バッファメモリ54内に記憶される(ステップST2B’)。
バッファメモリ54内に記憶されたデータDT1は、制御回路51の制御によって、バッファメモリ54から主メモリ50に転送される。データDT1が主メモリ50に入力されるのに伴って、通常書き込み信号NWCが、書き込みパルス幅制御回路53に入力される。そして、主メモリ50に転送されたデータは、通常書き込みによって、アドレス信号ADRが示す主メモリ50内の所定の領域に、書き込まれる(ステップ2A’)。通常書き込みに用いられる書き込み電流Iw1は、所定の書き込みパルス幅Twp1(≧t0)を有する。
本構成例のMRAMにおいて、外部からのデータDT1が主メモリ50に転送される際に、そのデータDT1に、誤り検出訂正符号は付加されない。それゆえ、本構成例において、入力された書き込みコマンドに対応して主メモリ50に書き込まれるデータDT1は、誤り検出訂正符号を含まないデータである。
誤り検出訂正符号を含まないデータDT1が、通常書き込みを用いて主メモリ50内に書き込まれた後、その書き込まれたデータDT1が、書き込み不良(誤り)を含むか否か、ベリファイ動作によって検証される。
本構成例2のMRAMにおいて、主メモリ50に書き込まれたデータが誤り検出訂正符号を含まないため、このベリファイ動作は、主メモリ50(MTJ素子1)に書き込まれたデータとバッファメモリ54に保持されているデータとを比較することによって、実行される。
主メモリ50内に書き込まれたデータwDT1が、ベリファイデータとして、誤り検出訂正回路(不良検出回路)54内に読み出される。これとともに、ベリファイデータに対応するバッファメモリ54内のデータDT1が、誤り検出訂正回路54内に読み出される。ベリファイデータwDT1及びデータDT1は、比較部69(又は誤り検出部62)内に入力される。
比較部69は、ベリファイデータとデータDT1とを比較することによって、主メモリ50に書き込まれたデータが書き込み不良を含むか否か検証する(ステップST3’)。この書き込み不良の検証において、バッファメモリ50から読み出されたデータDT1が、誤りがないデータ(信頼性が高いデータ)として、扱われる。
ベリファイデータwDT1が書き込み不良を含まない場合、書き込みコマンドに対応した入力データの書き込みは、終了する(ステップST7)。この場合、その書き込みコマンドに対応した書き込みイベントは、通常書き込みのみで終了する。
ベリファイデータに書き込み不良が検出された場合、データの再書き込みが実行される(ステップST6’)。構成例2のMRAMにおいて、データの再書き込みは、以下のように実行される。
ベリファイ動作に用いられたバッファメモリ54からのデータDT1が、不良(誤り)を含まないデータ(第2のデータ)として、誤り検出訂正回路52から主メモリ50に転送される。例えば、データDT1は、バッファメモリ54から主メモリ50へ、再び出力される。尚、再書き込みのためのデータは、比較部69(又は、誤り訂正部63)から主メモリ50へ出力されてもよい。
データDT1の再転送とともに、再書き込み信号RWCが、誤り検出訂正回路52(比較部69又は誤り訂正部63)から書き込みパルス制御回路53へ出力される。
これによって、訂正データとしてのバッファメモリからのデータDT1が、通常書き込みの書き込み電流Iw1のパルス幅Twp1よりも長いパルス幅Twp2を有する書き込み電流Iw2を用いて、所定のMTJ素子に、再書き込みされる。
再書き込みに用いられる書き込み電流Iw2の書き込みパルス幅Twp2は、例えば、前の書き込みに用いられた電流のパルス幅(例えば、パルス幅Twp1)の3倍になるように、パルス幅制御信号pwcsによって、制御される。但し、再書き込みの書き込みパルス幅Twp2の増加率Xは、通常書き込みの書き込みパルス幅Twp1の3倍に限定されず、例えば、パルス幅Twp1の1.07倍から5倍程度の範囲内でもよい。
このように、構成例2のMRAMにおいても、上述の構成例1のMRAMと同様に、2つの制御信号NWC,RWCによって、データの書き込みが、通常書き込みであるか再書き込みであるか、判別される。これによって、書き込み電流のパルス幅を、所定のパルス幅Twp1に設定するか、そのパルス幅Twp1よりも長いパルス幅Twp2に設定するか、制御される。
再書き込みによる書き込み不良を含むデータの書き直しは、1回に制限し、データの書き込みを終了してもよい(ステップST7)。
但し、図24に示されるように、主メモリ50に再書き込みされたデータ(再書き込みデータ)に対して、再びベリファイ動作が実行されてもよい。この場合、再書き込みデータが主メモリ50から誤り検出訂正回路52へ出力され、上記と同様に、再書き込みデータとバッファメモリ54に記憶されたデータDT1とが一致しているか否か比較される。再書き込みデータに書き込み不良が検出された場合、書き込みパルス幅をさらに長くして、バッファメモリのデータが再書き込みされる。再書き込みデータに書き込み不良が検出されない場合、データの書き込みが終了する(ステップST7)。
通常書き込みによって主メモリ50に書き込まれたデータに不良(誤り)が検出された場合、入力された書き込みコマンドに対応した書き込みイベントは、1回の通常書き込みと少なくとも1回の再書き込みで終了する。
尚、本構成例においても、上記のデータの通常/再書き込み及び検証中に、その処理中のデータに対して、読み出し命令が入力された場合、そのデータに対応するバッファメモリ54に記憶されたデータが、外部へ読み出される(ステップST2X)。
また、本構成例のMRAMにおいても、再書き込みされるデータは、通常書き込みと再書き込みとで同じアドレス(MTJ素子)に書き込まれてもよいし、異なるアドレスに書き込まれてもよい。複数回の再書き込みを繰り返しても、主メモリ50に書き込まれたデータの書き込み不良がなくならない場合、MTJ素子自体に欠陥があるとして、主メモリ50内の別のアドレスへデータを記憶するように、変更することが好ましい。
尚、本構成例2のMRAMの読み出し動作は、外部から入力された読み出しを示すコマンド信号に基づいて、実行される。そして、要求されたデータDT2は、データに対する誤りの検出及び訂正なしに、アドレス信号が示すMTJ素子から、バッファメモリ54(読み出しバッファ54B)を経由して、外部へ出力される。
<本構成例2の効果>
図25乃至図30を用いて、本実施形態の磁気メモリ(MRAM)の構成例2の効果について、説明する。
ここでは、1回の書き込みイベント中の再書き込みの回数を1回に制限する場合について、述べる。ここで述べられる構成例2の磁気メモリ(MRAM)は、ECC技術を用いず、且つ、1回の書き込みイベントにおいて、再書き込みが2回以上実行されなくとも、動作の信頼性と動作の高速性とを実現できる。
図25乃至図30において、1回の書き込みイベントにおいて、1回目のデータの書き込み(通常書き込み)で書き込み不良が生じる確率(書き込み不良発生確率)を“pw1”で示し、1回目の書き込みに続く2回目のデータの書き込み(再書き込み)における書き込み不良発生確率を“pw2”で示す。
ここでは、1回の書き込みイベントにおける再書き込みの回数は、1回に制限されている。そのため、1回の書き込みイベントにおいて誤動作が発生する確率(以下、誤動作発生確率とよぶ)は、“pw1×pw2”で示される。確率pw1の値と確率pw2の値とを等しくする必要はない。
後述のように、1度の書き込みイベントにおいて再書き込みの回数を1回に制限した場合、磁気メモリ(例えば、MRAM)に要求される仕様(スペック)に応じて、通常書き込みに用いられる書き込み電流Iw1のパルス幅Twp1を許容範囲内で小さくし、再書き込みに用いられる書き込み電流Iw2のパルス幅Twp2を通常書き込みのパルス幅Twp1より長くすることによって、メモリの書き込み動作(書き込みイベント)に要する平均時間が短縮され、メモリの性能が向上する。この場合、通常書き込みにおける書き込み不良発生確率pw1は、再書き込みにおける書き込み不良発生確率pw2より大きくなる。
以下では、1GビットのMRAMの仕様として、書き込み不良による誤動作を、1000FIT/チップ以下に抑制する場合を想定する。ここで、1FIT/チップは、1つのLSI(メモリ)において、10億時間に1回の誤動作が発生することを表す。1000FIT/チップは、1回の書き込みイベントにおける書き込み不良に起因する誤動作の発生確率が、8.7×10−20である場合に相当する。
図25は、誤動作発生確率pw1×pw2が8.7×10−20になる場合における書き込み不良発生確率pw2の書き込み不良発生確率pw1に対する依存性を示すグラフである。図25のグラフの横軸は、通常書き込みの書き込み不良発生確率pw1に対応し、図25のグラフの縦軸は再書き込みの書き込み不良発生確率pw2に対応する。
図25に示されるように、上記の誤動作発生確率を満たすために、通常書き込みの書き込み不良発生確率pw1が大きくなると、再書き込みの書き込み不良発生確率pw2は小さくする必要がある。
再書き込みに用いられる書き込み電流Iw2の電流値は、図2に示されるように、通常書き込みに用いられる書き込み電流Iw1の電流値に等しいことが好ましい。これは、上述のように、回路の制約やバックホッピングの抑制を鑑みると、各書き込み電流Iw1,Iw2で同じ上限値としたほうが、誤動作の発生確率を低減できるためである。以下では、書き込み電流Iw2の電流値が、書き込み電流Iw1の電流値に等しい場合を想定する。
図26は、本構成例のMRAMが1000FIT/チップ以下を満たす場合において、書き込み不良発生確率pw1に対する書き込み電流Iw1,Iw2の書き込みパルス幅Twp1,Twp2の変化を示すグラフである。図26のグラフ横軸は、書き込み不良発生確率pw1に対応し、図26のグラフの縦軸は、書き込みパルス幅Twp1,Twp2(単位:nsec)に対応している。
図26において、黒塗りのプロットに対応する特性線(実線)E1は、通常書き込みの書き込み電流Iw1のパルス幅Twp1を示している。図26において、白抜きのプロットに対応する特性線(破線)E2は、再書き込みの書き込み電流Iw2のパルス幅Twp2を示している。
図26に示される例では、各書き込みパルス幅Twp1,Twp2が30nsecに設定された場合に、各書き込み不良発生確率pw1,pw2が2.95×10−10になるように、各書き込み電流Iw1,Iw2の電流密度Jw1/Jc(mid,30ns),Jw2/Jc(mid,30ns)が1.28の一定値に設定されている。また、誤動作発生確率pw1×pw2は、1000Fit/チップ以下の仕様を満たすように、一定値(8.7×10−20)に設定されている。
以下では、図5のシミュレーションに用いられたMTJ素子の特性を想定し、メモリセルアレイ内における素子間のばらつきは考慮しない。
図26に示されるように、通常書き込み(特性線E1)のパルス幅Twp1が小さくなるにしたがって、通常書き込みの書き込み不良発生確率pw1は増大する。そのため、誤動作の発生を抑制するには、再書き込み(特性線E2)のパルス幅Twp2を大きくする必要がある。
構成例2のMRAMにおいて、再書き込みは、通常書き込みで書き込み不良が発生した場合にのみ、実行される。ここでは、1度の書き込みイベントにおいて、再書き込みは、1回だけ実行される。そのため、1度の書き込みイベントにおける書き込みパルス幅の平均値(以下、平均書き込みパルス幅Twp_aveとよぶ)は、“Twp1+pw1×Twp2”で表すことができる。
この平均書き込みパルス幅を示す式(Twp1+pw1×Twp2)に基づくと、再書き込みによって発生する時間は書き込みパルス幅Twp2と確率pw1の積で示されるため、書き込みパルス幅Twp2が長くなっても、再書き込みの平均書き込みパルス幅Twp_aveに対する影響は、小さい。
また、1度の書き込み動作において、書き込み回路の動作が占有される時間(以下、書き込み回路ビジー時間Tw_busyとよぶ)は、配線の選択や配線の充電に要する時間を考慮すると、書き込みパルス幅よりも長くなる。それゆえ、書き込み回路ビジー時間Tw_busyは、(Twp1+α)+pw1×(Twp2+α)で表される。“α”は、配線の選択、配線の充電、或いは、配線遅延によって生じる遅延時間である。遅延時間αは、例えば、20nsec程度である。
図27は、通常書き込みの書き込み不良発生確率pw1を関数とした場合における、平均書き込みパルス幅Tw_ave及び書き込み回路ビジー時間Tw_busyの変化を示している。図27の縦軸は、平均書き込みパルス幅Twp_ave及び書き込み回路ビジー時間Tw_busy(単位:nsec)を示し、図27の横軸は、通常書き込みの書き込み不良発生確率pw1を示している
図27において、黒塗りの丸に対応している特性線(破線)F1は、平均書き込みパルス幅Twp_aveを示している。図27において、白抜きの丸に対応している特性線(実線)F2は、書き込み回路ビジー時間Tw_busyの変化を示している。
図27に示されるように、誤動作発生確率pw1×pw2が一定値(例えば、8.7×10−20)になるように、各書き込み不良発生確率pw1,pw2が設定されている場合、通常書き込みの書き込み不良発生確率pw1が大きくなっても、平均書き込みパルス幅Tw_ave及び書き込み回路ビジー時間Tw_busyは、減少する。
図26及び図27に示されるように、通常書き込みの書き込み不良発生確率pw1が高くなっても、通常書き込みの書き込みパルス幅Twp1を短くし、再書き込みの書き込み不良発生確率pw2を低くすることによって、平均書き込みパルス幅Twp_aveを小さくできる。
これは、上述のように、再書き込みは、通常書き込みにおいて書き込み不良が発生した場合にのみ実行されるため、再書き込みの回数は書き込み不良発生確率pw1に依存する。そして、複数回の書き込みイベントを考慮すると、書き込み不良発生確率pw2の低減のために書き込みパルス幅Twp2が大きくなっても、再書き込みの書き込みパルス幅Twp2の増大がMRAMの書き込みイベントに要する時間に及ぼす影響は小さいため、平均書き込みパルス幅Twp_aveは小さくなる。
したがって、要求される動作の信頼性の範囲内で、通常書き込みの書き込みパルス幅Twp1を小さくし、再書き込みの書き込みパルス幅Twp2を大きくすることによって、本構成例の磁気メモリは、ECC技術を用いずとも、メモリの信頼性が確保されるとともに、メモリの性能(動作速度)が向上する。
例えば、通常書き込みに用いられる書き込み電流Iw1のパルス幅Twp1が、15nsecに設定された場合、通常書き込みにおける書き込み不良発生確率pw1は、7×10−4である。そして、誤動作発生確率pw1×pw2が8.7×10−20に設定される条件下において、図25乃至図27に示される例では、再書き込みに用いられる書き込み電流Iw2のパルス幅Twp2は、45nsecになる。この場合、書き込みパルス幅Twp1と書き込みパルス幅Twp2との関係は、“Twp2=X×Twp1=3×Twp1”で示される。
それゆえ、例えば、図26及び図27において、再書き込み時の書き込みパルス幅Twp2が、通常書き込みの書き込みパルス幅Twp1の3倍程度に設定されることで、その平均書き込みパルス幅Twp_aveは、通常書き込みと再書き込みとで書き込みパルス幅Twp1,Twp2が同じ場合(ここでは、30nsec)の平均書き込みパルス幅に比較して、5割程度減少する。このように、本構成例2のMRAMにおいて、メモリの書き込み動作が高速化される。
また、再書き込みに用いられる書き込み電流Iw2の電流値は、例えば、通常書き込みに用いられる書き込み電流Iw1の電流値と同じに設定されている。この場合、平均書き込みパルス幅Twp_aveの減少により、書き込み動作(書き込みイベント)に要する時間も減少するため、メモリの書き込み動作時における消費電力が、5割程度削減される。したがって、本構成例2のMRAMは、メモリの書き込み動作時の消費電力の削減に、貢献できる。
図27に示されるように、書き込みパルス幅Twp2が書き込みパルス幅Twp1の3倍の値に設定された場合(pw1=7×10−4の場合)、書き込み回路ビジー時間Tw_busyは、書き込みパルス幅Twp1と書き込みパルス幅Twp2が同じ値に設定された場合(x=1の場合)に比較して、3割程度削減される。この結果として、MRAMに用いられる書き込み回路の並列度は、3割程度削減される。本構成例で述べられる並列度とは、MRAMなどのメモリにおいて、動作を並列処理できる度数、又は、並列処理時に同時に駆動される素子数/回路数のことである。
図28は、MRAMにおける書き込み回路の並列度を模式的に示した図である。ここでは、MRAMがDRAMのLPDDR2規格(例えば、f〜400MHz)で動作する場合を考える。
図28に示されるケース1のMRAMにおいて、1回目の書き込みのための書き込みパルス幅Twp1は、30nsecに設定され、データを書き戻すための書き込みパルス幅Twp2は30nsecに設定される。尚、ここでは、1回目の書き込みパルス幅Twp1と2回目の書き込みパルス幅Twp2が同じ値に設定されているが、説明の明確化のため、1回目の書き込みを通常書き込みとよび、2回目の書き込みを再書き込みとよぶ。
図28に示されるケース2のMRAM(構成例2)において、通常書き込みの書き込みパルス幅Twp1は15nsecに設定され、再書き込みの書き込みパルス幅Twp2は45nsecに設定される。
尚、ケース1及びケース2のいずれのMRAMにおいても、書き込み電流の上限値は、一定値にされている。
LPDDR2規格におけるメモリのバースト書き込みは、例えば、1.25nsec毎に16ビットのデータをメモリ領域に書き込む必要がある。
図28のケース1において、上述と同様に、遅延時間αが20nsecとした場合、1回のデータの書き込み(通常書き込み)において、所定のアドレスに対する書き込みが終了するまでに、1つの書き込み回路が占有される時間は、50nsecである。
このため、LPDDR2規格において、1.25nsec毎に書き込みデータが入力されるので、40個のデータが、MRAM内に、50nsecの間に所定のサイクルで順次入力される。
メモリセルアレイ内に規定された複数の領域(例えば、MAT)に、順次入力されるデータをそれぞれ並列処理で書き込む場合を想定すると、40個のMATに対して、並列に書き込みが実行される必要がある。つまり、通常書き込み用に、40個の書き込み回路が必要となる。尚、MATとは、例えば、1Mビット程度のメモリ領域のことである。
また、再書き込みは、各MATに対する書き込みが終了し、且つ、書き込まれたデータに書き込み不良が発生した場合にのみ実行されるため、1個の書き込み回路が再書き込みのために設けられていればよい。
このように、図28のケース1の場合、LPDDR2規格に基づいて、並列に書き込みを実行するために、41個の書き込み回路が必要となる。
図28のケース2において、通常書き込みの書き込みパルス幅Twp1は15nsecに設定されているため、遅延時間αが20nsecであれば、1つのMATに対する通常書き込みにおいて、1つの書き込み回路が占有される時間は、35nsecである。
それゆえ、ケース2のMRAM(構成例2)において、LPDDR2規格に基づくと、35nsecの間に、28個のデータがMRAM内に順次入力される。それゆえ、ケース2の場合において、並列に書き込みを実行する場合、28個の書き込み回路が必要になる。ケース2の再書き込みの書き込みパルスTwp2(=45nsec)はケース1の場合と比較して長くなるが、再書き込み用の書き込み回路は、ケース2においてもケース1と同様に、1個の回路で十分である。
このように、図28のケース2のMRAMは、29個の書き込み回路がチップ(主メモリ)内に設けられればよい。
以上のように、再書き込みの書き込みパルス幅Twp2が、通常書き込みの書き込みパルスのパルス幅Twp1の3倍程度に設定することで、ある規格(ここでは、LPDDR2)で動作するMRAMにおいて、MRAMの書き込み回路の並列度を3割程度削減できる。
したがって、構成例2のMRAMのように、誤動作の許容値を満たす範囲内で、通常書き込みの書き込みパルス幅Twp1を短くし、再書き込みの書き込みパルス幅Twp2を長くすることによって、MRAMの書き込み回路の並列度(回路数)を削減でき、MRAMの回路規模の縮小及びチップサイズの縮小に貢献できる。
誤動作の許容範囲内で、通常書き込みの書き込みパルス幅Twp1を短くし、再書き込みの書き込みパルス幅Twp2を長くすることによって、書き込み電流の電流値を低減することも可能である。ここでは、図5のシミュレーションに用いられたMTJ素子の特性を想定し、メモリセルアレイ内における素子間のばらつきは考慮しない。
(i)Twp1=Twp2=30nsecの場合
書き込み電流の電流密度が、Jw1/Jc(mid,30ns)=Jw2/Jc(mid,30ns)=1.28に設定されると、書き込み不良発生確率pw1,pw2は、pw1=pw2=2.95×10−10になる。この場合、誤動作発生確率pw1×pw2は、8.7×10−20になり、要求される仕様を満たす。
(ii)Twp1=30nsec,Twp2=100nsecの場合
書き込み電流の電流密度が、Jw1/Jc(mid,30ns)=Jw2/Jc(mid,100ns)=1.14に設定されると、書き込み不良発生確率pw1,pw2は、それぞれ、pw1=2.9×10−4、pw2=3.0×10−16になる。この場合においても、誤動作発生確率pw1×pw2は、8.7×10−20になり、要求される仕様を満たす。
メモリセルアレイ内のMTJ素子間の特性ばらつきを考慮しない場合、(ii)の設定値のMRAMは、(i)の設定値のMRAMに比較して、書き込み電流の電流密度(又は電流値)が11%低減する。メモリセルアレイ内のMTJ素子間の特性が、6.9%程度ばらつくことを考慮した場合、(ii)の設定値のMRAMは、(i)の設定値のMRAMに比較して、その書き込み電流の電流密度が16%程度低減する。
したがって、本構成例の磁気メモリは、書き込み電流の電流密度/電流値を低減でき、メモリの消費電力の低減に貢献できる。
また、本構成例の磁気メモリは、データの誤り検出及び訂正に誤り検出訂正符号を用いていないため、符号化及び復号化に要する時間は生じず、動作速度を向上でき、高い転送レートを実現できる。
図29及び図30を用いて、通常書き込みに用いられる書き込み電流Iw1の書き込みパルス幅Twp1の下限について検証する。
上述のLPDDR2規格を用いたMRAMがバースト書き込みで動作する場合、1.25nsec毎に、16ビットのデータの書き込む必要がある。つまり、1nsecに、12.8ビットのデータが、書き込まれる。
通常書き込みにおけるビット(MTJ素子)の並列度は、“(Twp1+α)×12.8”で示される。再書き込みにおけるビットの並列度は、“pw1×(Twp2+α)×12.8”で示される。
図29は、通常/再書き込みのMTJ素子の並列度と、これらを合計した並列度(合計並列度とよぶ)を示している。図30は、図29の一部分を拡大した図である。図29及び図39の縦軸は並列度(単位:bit)に対応し、図29及び図30の横軸は通常書き込みにおける書き込み不良発生確率pw1に対応している。
図29において、特性線G1は、通常書き込みのMTJ素子の並列度に対応し、特性線G2は、再書き込みのMTJ素子の並列度に対応し、特性線G3は、通常書き込みと再書き込みの合計の並列度に対応している。
書き込みパルス幅Twp1を短くする、つまり、書き込み不良発生確率pw1を大きくすると、通常書き込みにおけるMTJ素子の並列度は減少する。しかし、誤動作の発生確率に要求される値を満たす必要があるため、再書き込みにおけるMTJ素子の並列度は、ある確率pw1から増加する。
この結果として、図29の特性線G3に示される合計並列度も、再書き込みの並列度が増加する確率pw1付近から急増する。
図30は、図29に示される合計並列度の極小値の付近を拡大した図である。図30に示されるように、特性線G3で示される合計並列度は、書き込み不良発生確率pw1=0.015付近で、極小値を有する。
書き込み不良発生確率pw1が0.02より大きくなると、再書き込みが実行される回数が増大するため、再書き込みの並列度が増加し始め、その結果として、合計並列度も増加してしまう。
したがって、通常書き込みの書き込み不良発生確率pw1が、0.02以下になるように、通常書き込みに用いられる書き込み電流Iw1のパルス幅Twp1を設定することが好ましい。書き込み不良発生確率pw1=0.02の場合、通常書き込みの書き込み電流Iw1のパルス幅Twp1と再書き込みの書き込み電流Iw2のパルス幅Twp2との比率Twp2/Twp1は、4.1以下になる。
尚、図29及び図30においても、MTJ素子の特性ばらつきが無く、時間的に均一に書き込み不良が発生する場合について、検証されている。しかし、MTJ素子の特性ばらつきを考慮した検証においても、実質的に同じ傾向で各並列度が推移する。
本構成例において、誤動作発生確率pw1×pw2が8.7×10−20に設定された場合について述べたが、誤動作発生確率pw1×pw2が他の一定値に設定された場合においても、本構成例で述べた効果と実質的に同じ効果が得られる。
以上のように、本実施形態に係る磁気メモリによれば、その動作の信頼性を向上でき、且つ、動作特性を向上できる。
[変形例]
図31乃至図34を参照して、構成例1及び2で述べた磁気メモリの構成及び動作の変形例について、説明する。尚、本変形例において、基本例及び構成例1,2で述べた構成と同じ構成については、共通の符号を付し、詳細な説明は省略する。
図14では、誤り検出訂正回路52内に設けられた符号化部61及び誤り訂正部63からそれぞれ出力される制御信号NWC,RWCに基づいて、通常のデータの書き込みと訂正時のデータの再書き込みとを判別し、書き込み電流のパルス幅を制御する場合について、述べた。
これに対して、制御信号を用いる代わりに、データに付加した判定信号(フラグ)を用いて、通常書き込みであるか再書き込み(データの書き戻し)であるかを判別してもよい。
図31は、本実施形態の一変形例のMRAMの内部構成を示している。
データnDT,cDTには、通常書き込みか訂正書き込みかを判定するための判定信号が付加される。例えば、通常ハミングコードによる誤り検出訂正符号が用いられた場合、64ビットのデータに対して、誤り検出訂正符号としての冗長ビットが、7ビット付加され、さらに、通常書き込みか訂正書き込みかを判別するための判定信号(以下、判定ビットとよぶ)が、1ビット付加される。この場合、72ビットのデータが、1ブロックとして扱われる。例えば、判定ビットが、“0”のとき通常書き込みを示し、“1”のとき訂正書き込みを示す。
符号化部61は、データwDTの入力時又は出力時、判定ビットを“0”に設定する。誤り訂正部63は、データrDTの入力時又は出力時、判定ビットを“1”に設定する。
図31に示すように、書き込みパルス幅制御回路53は、主メモリ50に隣接して、配置されている。書き込みパルス幅制御回路53には、例えば、データnDT,cDTが、直接又は主メモリ50を経由して入力される。尚、データnDT,cDTに含まれる判定ビットのみが、書き込みパルス幅制御回路53に入力されてもよい。
書き込みパルス幅制御回路53は、1ブロックのデータに含まれる判定ビットを判別する機能を有し、判定ビットが“1”であるか“0”であるかによって、データの書き込みが、通常書き込み又は訂正書き込みを判別する。
これによって、図14に示される構成と同様に、書き込みパルス幅制御回路53は、通常書き込みの場合に、図17に示されるパルス幅Twp1を有する書き込み電流Iw1を生成及び出力するように、主メモリ50内の書き込み回路の動作を制御する。また、書き込みパルス幅制御回路53は、訂正書き込みの場合に、図17に示されるパルス幅Twp1よりも長いパルス幅Twp2を有する書き込み電流Iw2を生成及び出力するように、主メモリ50内の書き込み回路の動作を制御する。
このように、MTJ素子に書き込まれるデータが含む判定ビットによって、通常書き込みか再書き込みかを判別でき、判別結果に応じ、所定のパルス幅の書き込み電流をそれぞれ用いて、データをMTJ素子に書き込むことができる。
これによって、新たな制御信号をMRAMチップに設ける必要はなく、それに伴って、制御信号を供給するための配線も必要ないので、チップの全体の制御やチップ内の配線レイアウトに対する負荷は小さくなる。
また、本発明の実施形態のMRAMのポイントの1つは、チップ内の動作サイクルにおいて、MTJ素子1から1度読み出されたデータをMTJ素子1に書き戻す場合に、通常書き込みに用いる書き込み電流Iw1に比較して、再書き込みに用いる書き込み電流Iw2のパルス幅を長くすることである。これによって、書き込み不良の発生確率は減少し、主メモリ(メモリセルアレイ)内のデータの誤りは低減する。
データの再書き込み時に書き込み電流のパルス幅を長くするという動作は、主メモリ50に対するリフレッシュ動作(記憶保持動作)に対しても適用できる。
図32は、本実施形態の一変形例のMRAMの内部構成を示し、図33は、本変形例のMRAMの動作(リフレッシュ動作)のフローチャートを示している。
例えば、図32に示すように、本変形例のリフレッシュ動作が用いられるMRAMは、読み出し回数をカウントするカウンタ部59を有する。
図33に示すように、外部から入力されたデータが主メモリ50内のMTJ素子に書き込まれる(ステップST21)。この際、データwDTは通常書き込みによって書き込まれ、図17に示されるパルス幅Twp1を有する書き込み電流Iw1が、データの書き込みに用いられる。
この後、読み出し命令が入力されると、主メモリ50内に記憶されたデータが、読み出される(ステップST22)。尚、この読み出されたデータに対して、誤りの検出及び訂正が実行されてもよいし、誤りの検出及び訂正が実行されなくともよい。
制御回路51内のカウンタ部59は、データの読み出し回数をカウントする(ステップST23)。尚、カウンタ部59は、読み出し命令を示すコマンド信号CMDの入力をカウントしてもよいし、主メモリ50からのデータの出力をカウントしてもよい。
制御回路51は、カウンタ部59がカウントした値(以下、カウント値とよぶ)Nnとリフレッシュ動作を実行するための参照値Nrflとを比較する(ステップST24)。
カウント値Nnが参照値Nrfl以下の場合、リフレッシュ動作は実行されずに、次の動作(例えば、データの読み出し)又は動作の終了になる。動作の終了であっても、カウントされたカウンタ値Nnは、これまでのカウンタ値Nn−1として、カウンタ部59内に、保持される。
一方、カウント値Nnが参照値Nrflより大きい場合、リフレッシュ動作が実行される(ステップST25)。リフレッシュ動作によって、主メモリ50内に記憶されたデータが一度読み出された後、そのデータが主メモリ50内に再び書き戻される。尚、リフレッシュ動作時に、誤りの検出及び訂正を実行してもよい。
リフレッシュ動作時において、主メモリ50から読み出されたデータは、外部からのデータを書き込む場合よりもパルス幅が長くされた書き込み電流Iw2を用いて、主メモリ50内に書き戻される(ステップST26)。つまり、リフレッシュ動作時において、図17に示すように、パルス幅Twp1よりも長いパルス幅Twp2の書き込み電流Iw2が、主メモリ50に対するデータの書き戻しに用いられる。
尚、リフレッシュ動作時、リフレッシュ動作を示す制御信号RFLが、制御回路51から書き込みパルス幅制御回路53に入力される。その制御信号RFLに基づいて、書き込みパルス幅制御回路53は、書き込み電流のパルス幅を長くするように、書き込み回路2A,2Bの動作を制御する。
長いパルス幅Twp2の書き込み電流Iw2を用いたリフレッシュ動作の後、例えば、次の動作サイクルにおけるデータの読み出しが実行される。尚、リフレッシュ動作に続く動作が、データの書き込みであってもよいのは、もちろんである。
以上の動作によって、本変形例のMRAMのリフレッシュ動作が終了する。
これによって、リフレッシュ動作において、主メモリ50(MTJ素子1)に記憶されたデータが主メモリ50に書き戻された時に、データの書き込み不良が発生するのを低減できる。また、リフレッシュ動作のときのデータの再書き込みのみに、それに用いる書き込み電流Iw2のパルス幅Twp2を長くするので、書き込み電流のパルス幅が長くなることによって、MRAMの高速動作が損なわれることは無い。
また、本実施形態において、構成例1の磁気メモリの読み出し動作と構成例2の磁気メモリの書き込み動作とを組み合わせた磁気メモリを構成してもよい。図34は、この磁気メモリの回路構成が示される。
この磁気メモリは、その書き込み動作において、誤り検出訂正符号を用いずに、データの誤り(書き込み不良)の検出/訂正が2つのデータの比較によって実行され、その読み出し動作において、誤り検出訂正符号を用いて、主メモリ50内のデータの誤りの検出/訂正が実行される。
図34に示される磁気メモリ(例えば、MRAM)において、書き込み動作時における書き込み不良の検出及び訂正(書き直し)は、構成例2で述べたように、主メモリ50に書き込まれたデータwDT1とバッファメモリ54に記憶されたデータとDT1とを比較することによって、実行される。
図34に示される磁気メモリにおいて、読み出し動作時に、構成例1の動作例2で述べたように、データに付加された誤り検出訂正符号を用いて、主メモリ50に書き込まれたデータの誤り検出及び訂正が実行される。
誤り検出訂正符号は、データが書き込まれてから数msec後に、誤り検出訂正回路52が、主メモリ50からデータを読み出し、そのデータに対する誤り検出訂正符号を生成し、パリティビットを書き込むことによって、主メモリ50内のデータに付加される。尚、誤り検出訂正符号の付加は、メモリの待機状態や、並列処理が可能な動作サイクルに、実行されてもよい。例えば、符号化部61が、主メモリ50に書き込まれたデータを符号化する。符号化されたデータは、主メモリ50に書き戻される。この時、符号化部61が、再書き込み信号RWCを書き込みパルス幅制御回路53に出力することによって、符号化されたデータが、通常書き込みより書き込みパルス幅は長く設定された再書き込みによって、主メモリ50に書き込まれてもよい。
図34の磁気メモリにおいて、書き込み動作時及び読み出し動作時において、誤りを訂正したデータを、主メモリ50に書き戻す際に、通常書き込み(外部からのデータの書き込み)に用いた書き込み電流Iw1のパルス幅Twp1より長いパルス幅Twp2を有する書き込み電流を用いて、実行される。これによって、主メモリ50内に発生するデータの誤りが低減される。
ECC技術がMRAMに適用された場合、データの書き込み時に誤り検出訂正符号を、計算して、生成する。そして、外部から入力されたデータに加えて、その誤り検出訂正符号としてのパリティビットを、主メモリ50に書き込まなければならない。その結果として、MRAMの書き込み時の転送レートを高くしにくくなる。
例えば、上述のLPDDR2規格をMRAMに用いた場合、書き込み動作時において誤り検出訂正符号を用いるメモリは、この規格のwrite mask命令に対応することが困難になる。
LPDDR2規格のwrite mask命令は、1ブロック(64ビット)中の48ビットのデータは変更せず(書き換えず)に、残りの16ビットを書き換える、といった書き込み動作が発生する。
このような動作に、誤り検出訂正符号を用いたMRAMが対応するためには、データを書き換える前に、64ビットのデータを一度読み出して復号化し、それから、write mask命令に基づいてデータを書き換える、という動作が必要になる。そのため、ECC技術を適用したMRAMは、write mask命令という書き込み動作に対して、常に、読み出し動作が必要となってしまう。その結果として、データの書き込み時における転送レートが上がりにくくなってしまう。
図34に示される磁気メモリ(例えば、MRAM)は、構成例2で述べたように、書き込みコマンドに基づくデータの書き込み動作時には、誤り検出訂正符号を用いないので、メモリの規格に影響されずに、高い転送レートを実現でき、且つ、入力されたデータと書き込まれたデータとを比較することによって、データの書き込みにおける高い信頼性を確保できる。
この後、図34に示されるMRAMは、構成例1の動作例2で述べたように、データの読み出し動作時において、付加された誤り検出訂正符号を用いて、読み出しディスターブとリテンション不良とを削減できる。
したがって、図34に示されるMRAMは、高い転送レート及び高速動作の磁気メモリを実現でき、且つ、その磁気メモリに生じる書き込み不良、読み出しディスターブ、及び、リテンション不良などのデータの不良(誤り)を低減できる。
以上のように、図31乃至図34に示される変形例においても、上述の構成例1及び2と同様に、その動作の信頼性を向上でき、且つ、動作特性を向上できる。
[その他]
本発明の実施形態において、図2及び図17に示すように、通常書き込みのための書き込み電流Iw1及び再書き込みのための書き込み電流Iw2と、同じ電流値に設定されている。但し、1度読み出したデータをMTJ素子に書き戻すために用いられる書き込み電流Iw2のパルス幅Twp2が、外部からのデータを新たにMTJ素子に書き込むための書き込み電流Iw1のパルス幅Twp1より長ければ、2つの電流Iw1,Iw2の電流値の大きさは、それぞれ異なっていてもよい。
本発明の実施形態は、磁気抵抗効果素子を記憶素子として主メモリが構成される磁気メモリ(MRAM)を例に挙げて、説明されている。但し、これに限定されず、例えば、ReRAM(Resistive RAM)やPCRAM(Phase Change RAM)のように、書き込み電流(書き込み電圧)のパルス幅を制御することによって抵抗値が可逆的に変わる素子を記憶素子に用いた他のメモリが、本発明の実施形態で述べた効果と同様の効果が得られるのは、もちろんである。
本発明の例は、上述の実施形態に限定されるものではなく、その要旨を逸脱しない範囲で、各構成要素を変形して具体化できる。また、上述の実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を構成できる。例えば、上述の実施形態に開示される全構成要素から幾つかの構成要素を削除してもよいし、異なる実施形態の構成要素を適宜組み合わせてもよい。