(57)【要約】      （修正有）【課題】磁気メモリの信頼性及び動作特性の向上を図る。【解決手段】磁気メモリは、第１及び第２の磁性層の間に設けられた中間層とを有する磁気抵抗効果素子と、磁気抵抗効果素子に書き込まれた第１のデータが第１のデータが誤りを含むか否かを検出し、第１のデータが誤りを含む場合にその誤りが訂正された第２のデータを出力する誤り検出訂正回路と、第１のパルス幅Ｔｗｐ１を有する第１の書き込み電流Ｉｗ１及び第１のパルス幅Ｔｗｐ１より長い第２のパルス幅Ｔｗｐ２を有する第２の書き込み電流Ｉｗ２のいずれか一方を生成し、磁気抵抗効果素子に流す書き込み回路と、第２のデータを磁気抵抗効果素子に書き込む場合、第２の書き込み電流Ｉｗ２を磁気抵抗効果素子に流すように書き込み回路を制御する制御回路と、を備える。【選択図】図２
2012022726.tif 000002
【特許請求の範囲】
【請求項１】
磁化方向が不変な第１の磁性層と、磁化方向が可変な第２の磁性層と、前記第１の磁性層と前記第２の磁性層の間に設けられた中間層とを有する磁気抵抗効果素子と、
前記磁気抵抗効果素子に書き込まれた第１のデータが誤りを含むか否かを検出し、前記第１のデータが誤りを含む場合にその誤りが訂正された第２のデータを出力する誤り検出訂正回路と、
第１のパルス幅を有する第１の書き込み電流及び前記第１のパルス幅より長い第２のパルス幅を有する第２の書き込み電流のいずれか一方を生成し、前記磁気抵抗効果素子に流す書き込み回路と、
前記第２のデータを前記磁気抵抗効果素子に書き込む場合、前記第２の書き込み電流を前記磁気抵抗効果素子に流すように、前記書き込み回路を制御する制御回路と、
を具備することを特徴とする磁気メモリ。
【請求項２】
前記第１のデータを前記磁気抵抗効果素子に書き込む場合、
前記制御回路は、前記第１の書き込み電流を前記磁気抵抗効果素子に流すように、前記書き込み回路を制御する、ことを特徴とする請求項１に記載の磁気メモリ。
【請求項３】
前記第１のパルス幅は、前記記憶層の磁化がコヒーレントな歳差運動を開始するまでの期間と前記コヒーレントな歳差運動が増幅される期間との合計の期間以上に設定される、ことを特徴とする請求項２に記載の磁気メモリ。
【請求項４】
前記第１のデータに対応する第３のデータを一時的に記憶するバッファメモリを、さらに具備することを特徴とする請求項１に記載の磁気メモリ。
【請求項５】
前記第２のデータが前記磁気抵抗効果素子に書き込まれている間に、前記第１のデータの読み出しが要求された場合、前記第３のデータが前記バッファメモリから読み出される、ことを特徴とする請求項４に記載の磁気メモリ。
【請求項６】
前記第１のデータが前記磁気抵抗効果素子に書き込まれる場合、前記誤り検出訂正回路は、第１の制御信号を前記制御回路に出力し、
前記第２のデータが前記磁気抵抗効果素子に書き込まれる場合、前記誤り検出訂正回路は、第２の制御信号を前記制御回路に出力し、
前記制御回路は、
前記第１の制御信号が入力された場合に、前記第１の書き込み電流を前記磁気抵抗効果素子に流すように、前記書き込み回路を制御し、
前記第２の制御信号が入力された場合に、前記第２の書き込み電流を前記磁気抵抗効果素子に流すように、前記書き込み回路を制御する、ことを特徴とする請求項２に記載の磁気メモリ。
【請求項７】
前記第１のデータが前記第１の書き込み電流を用いて書き込まれることを示す第１の判定信号を含み、
前記第２のデータが前記第２の書き込み電流を用いて書き込まれることを示す第２の判定信号を含み、
前記制御回路は、
前記第１の判定信号によって、前記第１の書き込み電流を前記磁気抵抗効果素子に流すように、前記書き込み回路を制御し、
前記第２の判定信号によって、前記第２の書き込み電流を前記磁気抵抗効果素子に流すように、前記書き込み回路を制御する、ことを特徴とする請求項２に記載の磁気メモリ。
【請求項８】
前記第１のデータは、誤り検出訂正符号を有し、
前記誤り検出訂正回路は、前記誤り検出訂正符号を用いて、前記第１のデータが含む誤りを検出及び訂正する、ことを特徴とする請求項１乃至７のいずれか１項に記載の磁気メモリ。
【請求項９】
磁化方向が不変な第１の磁性層と、磁化方向が可変な第２の磁性層と、前記第１の磁性層と前記第２の磁性層の間に設けられた中間層とを有する磁気抵抗効果素子と、
前記磁気抵抗効果素子に書き込まれた第１のデータが不良を含むか否かを検出し、前記第１のデータが不良を含む場合にその不良を含まない第２のデータを出力する不良検出回路と、
第１のパルス幅を有する第１の書き込み電流及び前記第１のパルス幅より長い第２のパルス幅を有する第２の書き込み電流のいずれか一方を生成し、前記磁気抵抗効果素子に流す書き込み回路と、
前記第２のデータを前記磁気抵抗効果素子に書き込む場合、前記第２の書き込み電流を前記磁気抵抗効果素子に流すように、前記書き込み回路を制御する制御回路と、
を具備することを特徴とする磁気メモリ。
【請求項１０】
前記第１のデータを前記磁気抵抗効果素子に書き込む場合、
前記制御回路は、前記第１の書き込み電流を前記磁気抵抗効果素子に流すように、前記書き込み回路を制御する、ことを特徴とする請求項９に記載の磁気メモリ。
【請求項１１】
前記第１のデータに対応する外部からのデータを一時的に記憶するバッファメモリをさらに具備し、
前記不良検出回路は、前記第１のデータと前記バッファメモリに記憶されたデータとを比較することによって、前記第１のデータが含む不良を検出する、ことを特徴とする請求項９又は１０に記載の磁気メモリ。
【請求項１２】
前記第１のデータが不良を含む場合、前記バッファメモリに記憶されたデータが、前記第２のデータとして、前記磁気抵抗効果素子に書き込まれる、ことを特徴とする請求項１１に記載の磁気メモリ。
【請求項１３】
前記第１のデータが不良を含む確率は、０．０２以下である、ことを特徴とする請求項９乃至１２のいずれか１項に記載の磁気メモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、磁気メモリに関する。
【背景技術】
【０００２】
近年、磁気トンネル接合素子(以下、ＭＴＪ素子とよぶ)を用いた磁気抵抗ランダムアクセスメモリ（ＭＲＡＭ：Magnetoresistive Random Access Memory）が注目されている。
【０００３】
ＭＲＡＭのデータの書き込み方式の１つとして、スピン注入磁化反転方式がある。スピン注入磁化反転方式は、ＭＴＪ素子にある電流値以上の電流（書き込み電流）を流す。データの読み出しにおいても、電流（読み出し電流）をＭＴＪ素子に流す。
【０００４】
従来は、電流の供給（スピン注入）によるＭＴＪ素子の磁化反転過程は、単純な熱活性過程で示すことができると考えられてきた。しかし、ＭＴＪ素子に対する電流の供給開始した直後は、反転確率がほぼゼロである時間が存在し、その一定時間を経過した後で反転確率が増加するという磁化反転過程が、新たに提案されている（例えば、非特許文献１参照）。
【０００５】
スピン注入型ＭＲＡＭにおいて、書き込み電流の電流値は、スピン注入によって磁化反転が生じるしきい値（以下、反転しきい値とよぶ）よりも大きい電流値に設定され、読み出し電流の電流値は、その反転しきい値よりも小さな電流値に設定される。
【０００６】
しかし、ＭＲＡＭを構成する複数のＭＴＪ素子の特性ばらつきに起因して、反転しきい値は、素子毎にばらつく。また、同じＭＴＪ素子に対して、データを繰り返して書き込んだ場合において、その素子に対する反転しきい値が揺らぐ現象が、存在する。
【０００７】
そのため、データの書き込み時における書き込み不良、データの読み出し時における読み出し電流に起因した読み出しディスターブや、さらには、データの保持時における熱擾乱によって磁化が反転してしまう不良、リテンション不良が発生する。このように、ＭＴＪ素子（磁性体）の磁化反転が確率現象であるため、ＭＲＡＭの動作中に、不良が発生する。
【０００８】
これらの不良に対処するため、データの読み出しに誤り訂正符号（ＥＣＣ：Error Correction Coding）を適用したＭＲＡＭも検討されている（例えば、特許文献１参照）。
【０００９】
特許文献１に開示される技術は、読み出されるデータに対して誤り訂正を行っても、ＭＲＡＭに記憶されているデータ自体には、発生したデータの誤りが残る。そのため、データを読み出す度に、誤り訂正が実行され、動作速度が低下する。また、通常の誤り検出訂正技術では、所定のサイズのデータ（ブロック）内に所定のビット数以上の誤りが存在すると、訂正ができなくなる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】米国特許第７，３７０，２６０号明細書
【非特許文献】
【００１１】
【非特許文献１】H. Tomita et al., Applied Physics Express, Vol. 1 (2008) 061303
【発明の概要】
【発明が解決しようとする課題】
【００１２】
本発明は、磁気メモリの信頼性及び動作特性の向上を図る技術を提案する。
【課題を解決するための手段】
【００１３】
本発明の例に関わる磁気メモリは、磁化方向が不変な第１の磁性層と、磁化方向が可変な第２の磁性層と、前記第１の磁性層と前記第２の磁性層の間に設けられた中間層とを有する磁気抵抗効果素子と、前記磁気抵抗効果素子に書き込まれた第１のデータが誤りを含むか否かを検出し、前記第１のデータが誤りを含む場合にその誤りが訂正された第２のデータを出力する誤り検出訂正回路と、第１のパルス幅を有する第１の書き込み電流及び前記第１のパルス幅より長い第２のパルス幅を有する第２の書き込み電流のいずれか一方を生成し、前記磁気抵抗効果素子に流す書き込み回路と、前記第２のデータを前記磁気抵抗効果素子に書き込む場合、前記第２の書き込み電流を前記磁気抵抗効果素子に流すように、前記書き込み回路を制御する制御回路と、を備える。
【００１４】
本発明の例に関わる磁気メモリは、磁化方向が不変な第１の磁性層と、磁化方向が可変な第２の磁性層と、前記第１の磁性層と前記第２の磁性層の間に設けられた中間層とを有する磁気抵抗効果素子と、前記磁気抵抗効果素子に書き込まれた第１のデータが不良を含むか否かを検出し、前記第１のデータが不良を含む場合にその不良を含まない第２のデータを出力する不良検出回路と、第１のパルス幅を有する第１の書き込み電流及び前記第１のパルス幅より長い第２のパルス幅を有する第２の書き込み電流のいずれか一方を生成し、前記磁気抵抗効果素子に流す書き込み回路と、前記第２のデータを前記磁気抵抗効果素子に書き込む場合、前記第２の書き込み電流を前記磁気抵抗効果素子に流すように、前記書き込み回路を制御する制御回路と、を備える。
【発明の効果】
【００１５】
本発明によれば、磁気メモリの信頼性及び動作特性を向上できる。
【図面の簡単な説明】
【００１６】
【図１】実施形態に係る磁気メモリの基本例を示す図。
【図２】書き込み電流のパルス波形を示す図。
【図３】磁気抵抗効果素子の一例を示す図。
【図４】磁気抵抗効果素子の一例を示す図。
【図５】実施形態に係る磁化反転モデルを説明するための図。
【図６】実施形態に係る磁化反転モデルを説明するための図。
【図７】実施形態に係る磁化反転モデルを説明するための図。
【図８】実施形態に係る磁化反転モデルを説明するための図。
【図９】実施形態に係る磁化反転モデルを説明するための図。
【図１０】実施形態に係る磁化反転モデルを説明するための図。
【図１１】電流のパルス幅に対する磁化反転の依存性を説明するための図。
【図１２】電流のパルス幅に対する磁化反転の依存性を説明するための図。
【図１３】電流のパルス幅に対する磁化反転の依存性を説明するための図。
【図１４】実施形態に係る磁気メモリの構成例を示すブロック図。
【図１５】主メモリの構成例を示す図。
【図１６】メモリセルの構造例を示す図。
【図１７】書き込み電流及び読み出し電流のパルス波形を示す図。
【図１８】実施形態に係る磁気メモリの動作例を示すフローチャート。
【図１９】実施形態に係る磁気メモリに対する効果を説明するための図。
【図２０】実施形態に係る磁気メモリに対する効果を説明するための図。
【図２１】実施形態に係る磁気メモリに対する効果を説明するための図。
【図２２】実施形態に係る磁気メモリの動作例を示すフローチャート。
【図２３】実施形態に係る磁気メモリの構成例を示すブロック図。
【図２４】実施形態に係る磁気メモリの動作例を示すフローチャート。
【図２５】実施形態に係る磁気メモリに対する効果を説明するための図。
【図２６】実施形態に係る磁気メモリに対する効果を説明するための図。
【図２７】実施形態に係る磁気メモリに対する効果を説明するための図。
【図２８】実施形態に係る磁気メモリに対する効果を説明するための図。
【図２９】実施形態に係る磁気メモリに対する効果を説明するための図。
【図３０】実施形態に係る磁気メモリに対する効果を説明するための図。
【図３１】実施形態に係る磁気メモリの変形例を示すブロック図。
【図３２】実施形態に係る磁気メモリの変形例を示すブロック図。
【図３３】実施形態に係る磁気メモリの動作例を示すフローチャート。
【図３４】実施形態に係る磁気メモリの変形例を示すブロック図。
【発明を実施するための形態】
【００１７】
以下、図面を参照しながら、本発明の例を実施するための形態について詳細に説明する。以下の説明において、同一の機能及び構成を有する要素については、同一符号を付し、重複する説明は必要に応じて行う。
【００１８】
［実施形態］
（１）  基本例  
図１乃至図１３を用いて、本発明の実施形態に係る磁気メモリの基本例について、説明する。
【００１９】
図１は、本実施形態に係る磁気メモリの構成の一例を示している。
【００２０】
図１に示すように、磁気メモリは、主メモリ５０内に、磁気抵抗効果素子１とスイッチＴｒとを備える。磁気抵抗効果素子１及びスイッチＴｒは、１つのメモリセルを構成している。磁気抵抗効果素子１は、記憶素子として用いられる。スイッチＴｒは、磁気抵抗効果素子１に対する選択素子として用いられる。
【００２１】
磁気抵抗効果素子１は、２つのビット線ＢＬ，ｂＢＬに接続される。磁気抵抗効果素子１の一端は、ビット線ＢＬに接続され、磁気抵抗効果素子１の他端は、スイッチＴｒを経由して、ビット線ｂＢＬに接続される。
【００２２】
スイッチＴｒは、例えば、電界効果トランジスタ（ＦＥＴ：Field Effect Transistor）である。以下、スイッチＴｒのことを、選択トランジスタＴｒとよぶ。選択トランジスタＴｒの電流経路の一端（ソース／ドレイン）は、磁気抵抗効果素子１の他端に接続され、選択トランジスタＴｒの電流経路の他端（ソース／ドレイン）は、ビット線ｂＢＬに接続される。選択トランジスタＴｒの制御端子（ゲート）は、ワード線ＷＬに接続される。ワード線ＷＬは、例えば、ビット線ＢＬ，ｂＢＬの延在方向と交差する方向に延在している。データの書き込み時、図２に示される書き込み電流Ｉｗ１，Ｉｗ２が、２つのビット線ＢＬ，ｂＢＬ間を流れ、磁気抵抗効果素子１に供給される。
【００２３】
図３及び図４は、磁気抵抗効果素子１の構成を示す断面図である。磁気抵抗効果素子１には、例えば、スピン偏極トンネル効果による磁気抵抗の変化を利用したＭＴＪ（magnetic tunnel junction）素子が使用される。以下では、磁気抵抗効果素子１のことを、ＭＴＪ素子１とよぶ。
【００２４】
ＭＴＪ素子１は、参照層（磁化不変層ともいう）１１Ａ，１１Ｂ、中間層（非磁性層）１２Ａ，１２Ｂ、記憶層（磁化自由層ともいう）１３Ａ，１３Ｂ、が順に積層された積層構造を有する。尚、参照層１１Ａ，１１Ｂと記憶層１３Ａ，１３Ｂとは、積層順序が逆であってもよい。
【００２５】
図３に示されるＭＴＪ素子１は、参照層１１Ａ及び記憶層１３Ａの容易磁化方向が、膜面に対して平行になっている。図３に示されるＭＴＪ素子１は、面内磁化型ＭＴＪ素子とよばれる。  
図４に示されるＭＴＪ素子１は、参照層１１Ｂ及び記憶層１３Ｂの容易磁化方向が、膜面（或いは積層面）に対して垂直になっている。図４に示されるＭＴＪ素子は、垂直磁化型ＭＴＪ素子とよばれる。  
面内磁化の磁性層は、面内方向の磁気異方性を有し、垂直磁化の磁性層は、膜面に垂直方向の磁気異方性を有している。ＭＴＪ素子１に垂直磁化型を用いた場合は、面内磁化型のように磁化方向を決定するのに素子形状を制御する必要がなく、且つ記憶層１３Ｂの体積を小さくしても十分な記憶保持特性を保つため、メモリセルの微細化に適しているという利点がある。
【００２６】
記憶層１３Ａ，１３Ｂは、磁化（或いはスピン）の方向が可変である（反転する）。参照層１１Ａ，１１Ｂは、磁化の方向が不変である（固着している）。「参照層１１Ａ，１１Ｂの磁化方向が不変である」とは、記憶層１３Ａ，１３Ｂの磁化方向を反転させるために使用される磁化反転電流（反転しきい値）を、参照層１１Ａ，１１Ｂに流した場合に、参照層１１Ａ，１１Ｂの磁化方向が変化しないことを意味する。したがって、ＭＴＪ素子１において、参照層１１Ａ，１１Ｂとして反転しきい値の大きな磁性層を用い、記憶層１３Ａ，１３Ｂとして参照層１１Ａ，１１Ｂよりも反転しきい値の小さい磁性層を用いることによって、磁化方向が可変の記憶層１３Ａ，１３Ｂと磁化方向が不変の参照層１１Ａ，１１Ｂとを備えたＭＴＪ素子１が実現される。
【００２７】
また、参照層１１Ａ，１１Ｂの磁化を固定する方法としては、参照層１１Ａ，１１Ｂに隣接して反強磁性層（図示せず）を設け、参照層１１Ａ，１１Ｂと反強磁性層との交換結合によって、参照層１１Ａ，１１Ｂの磁化方向を固定することができる。但し、垂直磁化型のＭＴＪ素子は、参照層１１Ａに隣接して反強磁性層（図示せず）を設けずともよい。ＭＴＪ素子１の平面形状については特に制限がなく、円、楕円、正方形、長方形等のいずれを用いてもよい。また、正方形の角或いは長方形の角が丸くなった形状、或いは角が欠けた形状であってもよい。
【００２８】
参照層１１Ｂ及び記憶層１３Ｂは、高い保磁力を持つ磁性材料から構成され、例えば、１×１０６ｅｒｇ／ｃｃ以上の高い磁気異方性エネルギー密度を有することが好ましい。
【００２９】
中間層１２Ａ，１２Ｂは、非磁性体からなり、例えば、絶縁体、半導体、金属などを用いることが可能である。中間層１２に絶縁体或いは半導体が用いられた場合、中間層１２はトンネルバリア層とよばれる。
【００３０】
尚、参照層１１Ａ，１１Ｂ及び記憶層１３Ａ，１３Ｂの各々は、図示するような単層に限定されず、複数の強磁性層からなる積層構造であってもよい。また、参照層１１Ａ，１１Ｂ及び記憶層１３Ａ，１３Ｂの各々は、第１の強磁性層／非磁性層／第２の強磁性層の３層からなり、第１及び第２の強磁性層の磁化方向が反平行状態となるように磁気結合（交換結合）した反強磁性結合構造であってもよいし、第１及び第２の強磁性層の磁化方向が平行状態となるように磁気結合（交換結合）した強磁性結合構造であってもよい。
【００３１】
また、ＭＴＪ素子１は、ダブルジャンクション構造を有していてもよい。ダブルジャンクション構造のＭＴＪ素子１は、第１の参照層、第１の中間層、記憶層、第２の中間層、第２の参照層が順に積層された積層構造を有する。このようなダブルジャンクション構造は、スピン注入による記憶層１３Ａ，１３Ｂの磁化反転を制御しやすいという利点がある。
【００３２】
ビット線ＢＬには、書き込み回路２が接続される。書き込み回路２は、ＭＴＪ素子１に対するデータの書き込み時、書き込み電流Ｉｗ１，Ｉｗ２を生成し、その生成した電流Ｉｗ１，Ｉｗ２をビット線ＢＬ，ｂＢＬ間に流す。そして、書き込み電流Ｉｗ１，Ｉｗ２は、ＭＴＪ素子１を流れる。書き込み回路２は、書き込み電流Ｉｗ１，Ｉｗ２を、ＭＴＪ素子１の一端から他端に、または、ＭＴＪ素子１の他端から一端に、双方向に流す。書き込み回路２の動作は、後述の制御回路５１によって、制御される。
【００３３】
図２は、書き込み電流のパルス波形の一例を示している。図２において、書き込み電流の電流値は、絶対値で示されている。書き込み回路２は、制御回路５１に基づいて、パルス幅Ｔｗｐ１を有する書き込み電流Ｉｗ１及びパルス幅Ｔｗｐ２を有する書き込み電流Ｉｗ２のいずれかを、ＭＴＪ素子１に供給する。書き込み電流Ｉｗ１，Ｉｗ２は、ＭＴＪ素子１内を流れる。パルス幅Ｔｗｐ２は、パルス幅Ｔｗｐ１よりも長い。
【００３４】
本実施形態において、電流のパルス幅は、パルスの半値全幅（ＦＷＨＭ：Full width at half maximum）で規定される。書き込み電流Ｉｗ１，Ｉｗ２のパルス幅Ｔｗｐ１，Ｔｗｐ２は、最大電流値ｉｗの１／２の値ｉｗ／２を基準としたパルス幅である。書き込み電流Ｉｗ１のパルス幅Ｔｗｐ１は、時間ｔａｂと時間ｔｃｄとの間の期間である。時間ｔａｂは、パルス電流Ｉｗ１の立ち上がりが開始する時間ｔａと立ち上がりが終了する時間ｔｂの実質的に中間の時間であり、時間ｔｃｄは、パルス電流Ｉｗ１の立ち下がりが開始する時間ｔｃと立ち下がりが終了する時間ｔｄの実質的に中間の時間である。
【００３５】
書き込み電流Ｉｗ２のパルス幅Ｔｗｐ２は、時間ｔ１２と時間ｔ３４との間の期間である。時間ｔ１２は、パルス電流Ｉｗ２の立ち上がりが開始する時間ｔ１と立ち上がりが終了する時間ｔ２の実質的に中間の時間であり、時間ｔ３４は、パルス電流Ｉｗ２の立ち下がりが開始する時間ｔ３と立ち下がりが終了する時間ｔ４の実質的に中間の時間である。
【００３６】
書き込み電流Ｉｗ１及び書き込み電流Ｉｗ２は、例えば、同じ電流値ｉｗを有する。電流値ｉｗは、記憶層の反転しきい値ｉｔｈ以上、参照層の反転しきい値未満に、設定される。
【００３７】
誤り検出訂正回路５２は、ＭＴＪ素子１が記憶している（又は、保持している）データ（以下、書き込みデータとよぶ）に、誤りが有るか否かを検出する。誤り検出訂正回路５２は、データに誤りがあった場合に、その誤りを訂正する。訂正されたデータ（以下、訂正データとよぶ）は、ＭＴＪ素子１に再び書き込まれる。
【００３８】
制御回路５１は、磁気メモリ全体の動作を制御する。制御回路５１は、ＭＴＪ素子１及び誤り検出訂正回路５２の動作状況に応じて、書き込み電流Ｉｗ１及び書き込み電流Ｉｗ２のいずれか一方をＭＴＪ素子１に供給するように、書き込み回路２の動作を制御する。
【００３９】
制御回路５１は、訂正データをＭＴＪ素子１に書き込む場合、外部から入力されたデータを書き込む場合に比較して長いパルス幅Ｔｗｐ２を有する書き込み電流Ｉｗ２を生成及び出力するように、書き込み回路２の動作を制御する。外部から入力されたデータをＭＴＪ素子１に書き込む場合、制御回路５１は、パルス幅Ｔｗｐ１を有する書き込み電流Ｉｗ１を生成及び出力するように、書き込み回路２の動作を制御する。
【００４０】
以下、ＭＴＪ素子１の低抵抗状態及び高抵抗状態、及び、スピン注入によるデータの書き込みについて説明する。データの書き込み時、書き込み電流Ｉ（図２中の電流Ｉｗ１又は電流Ｉｗ２）は、ＭＴＪ素子１内を流れる。そして、書き込み電流Ｉ（Ｉｗ１，Ｉｗ２）は、書き込むデータに応じて、ＭＴＪ素子１内を双方向に流れる。尚、電流が流れる向きと電子が移動する向きが反対なのは、もちろんである。
【００４１】
参照層１１Ａ，１１Ｂと記憶層１３Ａ，１３Ｂとの磁化方向が平行となる平行状態（低抵抗状態）について説明する。
【００４２】
参照層１１Ａ，１１Ｂを通過した電子のうちマジョリティーな電子は、参照層１１Ａ，１１Ｂの磁化方向と平行なスピンを有する。このマジョリティーな電子のスピン角運動量が記憶層１３Ａ，１３Ｂに移動することにより、スピントルクが記憶層１３Ａ，１３Ｂに印加され、記憶層１３Ａ，１３Ｂの磁化方向は、参照層１１Ａ，１１Ｂの磁化方向と平行に揃えられる。この平行配列のとき、ＭＴＪ素子１の抵抗値は最も小さくなる。この場合が、例えば、“０”データとして扱われる。
【００４３】
次に、参照層１１Ａ，１１Ｂと記憶層１３Ａ，１３Ｂとの磁化方向が反平行となる反平行状態（高抵抗状態）について説明する。
【００４４】
参照層１１Ａ，１１Ｂによって反射された電子のうちマジョリティーな電子は、参照層１１Ａ，１１Ｂの磁化方向と反平行のスピンを有する。このマジョリティーな電子のスピン角運動量が記憶層１３Ａ，１３Ｂに移動することにより、スピントルクが記憶層１３Ａ，１３Ｂに印加され、記憶層１３Ａ，１３Ｂの磁化方向は、参照層１１Ａ，１１Ｂの磁化方向と反平行に揃えられる。この反平行配列のとき、ＭＴＪ素子１の抵抗値は最も大きくなる。この場合が、例えば、“１”データとして扱われる。
【００４５】
以下、図５乃至図１３を参照して、本実施形態のスピン注入磁化反転モデルについて、述べる。
【００４６】
図５は、本実施形態で述べるスピン注入磁化反転モデルにおける、磁化反転確率の時間依存性を示している。図５の横軸は時間（単位：ｎｓｅｃ（ナノ秒））を示している。図５の縦軸は、磁化反転確率に対応する。但し、磁化反転確率が“Ｐ”で示された場合、図５の縦軸において、Ｌｏｇ１０（１−Ｐ）が示されている。“１−Ｐ”は、磁化が反転しない（データが書き込まれない）確率を示す。尚、磁化反転確率とは、あるＭＴＪ素子に一定の電流を流した場合に、記憶層の磁化方向が反転する確率である。
【００４７】
図５に示される各特性曲線は、ＬＬＧ(Landau-Liftshitz-Gilbert)方程式を用いたマイクロマグネティックシミュレーション（micromagnetic simulation）によって得られた結果である。このシミュレーションに用いた各パラメータは、以下のとおりである。  
シミュレーションに用いられたＭＴＪ素子は、垂直磁化型のＭＴＪ素子である。ＭＴＪ素子の膜厚は、２．２ｎｍ、ＭＴＪ素子の直径は、３０ｎｍに設定されている。記憶層の磁化は、膜面に対して垂直方向に向いており、記憶層の磁気異方性エネルギーＫｕは、３．５Ｍｅｒｇ／ｃｃ、記憶層の飽和磁化Ｍｓは、５００ｅｍｕ／ｃｃである。エネルギーバリアΔＥａは、８６ｋＢＴ（ｋＢ：ボルツマン定数，Ｔ：絶対温度）である。エネルギーバリアΔＥａはＭＴＪ素子が平行状態から反平行状態、あるいは反平行状態から平行状態に反転する過程で超えなければいけないエネルギーバリアの大きさを示している。温度（絶対温度）Ｔは３００Ｋに設定される。また、ＭＴＪ素子に流れる電流密度Ｊの範囲は、２．８〜４ＭＡ／ｃｍ２に設定される。そして、０．９３４〜１．４３６の範囲内における電流密度比Ｊ／ＪＣ（22nsec,midpoint）を用いて、シミュレーションが実行されている。尚、“Ｊ”は、パルス電流の電流密度を示し、“ＪＣ（22nsec,midpoint）”は、パルス幅が２２ｎｓｅｃの書き込み電流を用いてＭＴＪ素子にデータを書き込んだ場合に、そのＭＴＪ素子の記憶層の磁化反転確率が０．５になる電流密度を示している。
【００４８】
図５においては、各電流密度比０．９３４〜１．４３６を用いたシミュレーションから得られた特性曲線に対する１次近似特性線（図中、点線）も示されている。
【００４９】
図５に示される各特性曲線に基づいて、スピン注入磁化反転確率Ｐ（ｔ）は、（式１）のように近似的に表すことができる。
【数１】
2012022726.tif 000003
【００５０】
“Ｐ（ｔ）”は、パルス幅ｔの電流パルスがＭＴＪ素子に流されることにより、記憶層の磁化が反転する確率を示している。“ｆ０”は、ＭＴＪ素子が単位時間に熱エネルギー（フォノン）を受け取る頻度である。“ｆ０”は１×１０９Ｈｚ程度である。“Ｉ”はパルス電流の電流値を示し、“ＩＣ０”は、０Ｋ（絶対温度）での磁化反転電流の電流値である。（式１）において、“ｎ”は、１．５〜２の定数である。
【００５１】
図５に示されるように、確率Ｌｏｇ１０（１−Ｐ）は、時間の変化に対して、負の値を示す。図５及び（式１）に示されるスピン注入磁化反転モデルにおいて、パルス電流がＭＴＪ素子に与えられた直後、記憶層の磁化の反転は起こらず、不感時間ｔ０を経過した後に磁化の反転が開始される。
【００５２】
図６乃至図１０を用いて、本実施形態のスピン注入磁化反転モデルについて、説明する。図６乃至図１０では、磁気メモリに用いられるスピン注入磁化反転において、磁性層（記憶層）の規格化した磁化Ｍｚが１から−１へ反転する過程を例として、述べる。ここでは、書き込み電流をＭＴＪ素子に流しはじめてからｚ軸（垂直）方向の磁化Ｍｚが１から−１付近まで変化する時間を、スイッチング時間Ｔｓｗとよぶ。
【００５３】
磁性体の磁化反転は、確率現象であるため、同じ磁性体に同じ大きさの書き込み電流を流しても、スイッチング時間Ｔｓｗは毎回揺らぐ。つまり、ある一定のパルス幅を有する電流を用いて、あるＭＴＪ素子にデータが書き込まれる場合、スイッチング電流Ｉｓｗ（反転しきい値ｉｔｈ）が、毎回揺らぐことになる。これらの現象を理解することが、書き込み不良の減少のために重要である。 
磁気メモリ（例えば、ＭＲＡＭ）の書き込み原理の１つであるスピン注入磁化反転において、本実施形態で述べるスピン注入磁化反転は、以下の３段階にからなる。つまり、本実施形態のスピン注入磁化反転において、スイッチング時間Ｔｓｗは３つに分解される。
【００５４】
図６には、本実施形態におけるスピン注入磁化反転モデルが、模式的に示されている。
【００５５】
図６に示されるスピン注入磁化反転モデルにおいて、第１段階は、磁性層（記憶層）内の各磁性粒の磁化が別々に歳差運動していた状態から、磁性層内の各磁性粒の磁化の位相が揃い、共動して歳差運動を始めるまでの段階である。本実施形態においては、磁性層内の各磁性粒の磁化の位相が揃い、共動して歳差運動することを、“コヒーレントな歳差運動”とよぶ。そして、磁化が別々に歳差運動していた状態からコヒーレントな歳差運動を始めるまでの時間のことを、コヒーレント時間ｔｃｏｈとよぶ。
【００５６】
コヒーレント時間ｔｃｏｈにおいて、磁化Ｍｚは１から０．９５程度まで減少する。このコヒーレント時間ｔｃｏｈにおいて、フォノンの影響の下に、磁化はコヒーレントな歳差運動になりかけるが、またばらばらな歳差運動に戻る、などの過程を経る。そのため、コヒーレント時間ｔｃｏｈは大きく揺らぐ。
【００５７】
第２段階において、コヒーレントな歳差運動が増幅する。この時間を増幅時間ｔａｍｐとよぶ。磁化Ｍｚは０．９５から０．８程度まで減少する。増幅時間ｔａｍｐにおいて、フォノンの影響の下に、磁化の歳差運動が少し増幅して、また減衰する、などの過程を経る。そのため、増幅時間ｔａｍｐも揺らぐ。この第１段階の時間ｔｃｏｈと第２段階の時間ｔａｍｐとの和を、“incubation delay time ｔｉｄ”とよぶ。ＭＴＪ素子の直径が単磁区化直径Ｄｓより小さい場合、incubation delay time ｔｉｄは、大きく揺らぐ。第１及び第２段階の時間ｔｃｏｈ，ｔａｍｐは、磁化Ｍｚが大きく減少し始め、磁化反転の主段階が起きるまでの時間であり、スピン注入磁化反転ではこの時間が比較的長い。そのため、第１及び第２段階に要する時間ｔｃｏｈ，ｔａｍｐは、incubation delay timeとよばれている。
【００５８】
第３段階において、磁化の歳差運動がさらに増幅し、熱擾乱の助けを借りて、磁化反転が起こる。この段階では、主に熱活性過程が支配的であり、磁化Ｍｚは０．８から−１付近まで減少する。この時間を反転時間ｔｒｖとよぶ。ＭＴＪ素子の直径が単磁区化直径Ｄｓより小さい場合、反転時間ｔｒｖの揺らぎは小さい。ＭＴＪ素子の直径が単磁区化直径Ｄｓより大きい場合、反転時間ｔｒｖはincubation delay time ｔｉｄと同程度に揺らぐ。
【００５９】
上記のように、第一段階であるコヒーレント時間ｔｃｏｈは、ＭＴＪ素子の記憶層内で磁化がばらばらな位相で歳差運動していた状態から磁化の位相がそろった歳差運動を開始するまでの時間であることが見出された。
【００６０】
そして、コヒーレント時間ｔｃｏｈ及び増幅時間ｔａｍｐに続く反転時間ｔｒｖにおいて、熱活性過程により磁化反転が開始される。
【００６１】
このような磁化反転モデルが、図５及び以下の実験及びシミュレーションによって実証された。
【００６２】
図７は、図５で用いた垂直磁化型ＭＴＪ素子のスピン注入磁化反転のＬＬＧ方程式によるシミュレーション結果の１つを解析したグラフである。  
そのシミュレーションは、例えば、記憶層（磁性層）内の３２個の磁化を示すセルを用いて、実行された。セルは、磁性層内に含まれる磁性粒に対応する。図７において、横軸は時間（単位：ｎｓｅｃ）を示している。
【００６３】
図７において、破線で示される特性線は、左側の軸Ｍｚ−ａｖｅに対応している。図７の左側の軸Ｍｚ−ａｖｅは、磁化のｚ成分（垂直成分）の平均値Ｍｚ−ａｖｅ（単位：ａ．ｕ．（arbitrary unit））を示している。尚、磁化のｚ成分のＭｚ−ａｖｅにおいて、“１”は磁化が記憶層の膜面に対して上側を向いている状態を示し、“−１”は磁化が記憶層の膜面に対して下側を向いている状態を示している。  
図７に示されるシミュレーションの初期状態（０ｎｓｅｃ）において、磁化の平均値Ｍｚ−ａｖｅは、ほぼ１を示し、磁化はＭＴＪ素子の膜面に対して垂直上向き方向を向いている。そして、０ｎｓｅｃにおいて、記憶層に対して磁化反転電流の供給を開始し、スピン注入によって磁化が反転して、平均値Ｍｚ−ａｖｅがほぼ−１になるまでの過程が、検証された。
【００６４】
図７に示されるシミュレーションにおいて、０ｎｓｅｃから２．５ｎｓｅｃまでの期間は、磁化の平均値Ｍｚ−ａｖｅの値は、ほとんど変化しない。これは、記憶層の磁化（スピン）が、反転していない期間とみなすことができる。
【００６５】
図７において、実線で示される特性曲線は、右側の軸σΦに対応し、記憶層内の３２個の磁化の歳差運動の位相ばらつきを示している。  
図８は、１つの磁化のセルを模式的に示している。図８に示されるように、磁化の向きは２つの偏角θ及び偏角Φを用いた極座標で表わすことができる。図８に示されるように、垂直磁化膜の磁化は、膜面垂直方向（ｚ軸）を回転軸として、歳差運動を行う。赤道面ｃにおける、歳差運動の位相を、偏角Φと定義する。また、歳差運動を行っている際に、磁化Ｍの傾きとｚ軸とがなす角を、偏角θと定義する。  
歳差運動の位相ばらつきは、偏角Φのばらつきを調べることで得られる。しかし、極座標で示される偏角Φは、＋π又は−πの周期で不連続になるか、あるいは多値になる。そのため、偏角Φを単に用いて位相の分散（位相のばらつき）を計算すると、数値が不連続な部分において正確な計算結果が得られない。  
そこで、本実施形態では、偏角Φの代わりに、歳差運動の位相を複素数、つまり、“Φ＝ｃｏｓφ＋ｉｓｉｎφ”で表わすことによって、位相の分散σΦを計算し、位相のばらつきを求めた。このように、複素数を用いて偏角Φを表現することで、数値の不連続に起因する問題は解消され、比較的簡単に位相ばらつきを計算することができる。位相の分散σΦは以下の（式２）及び（式３）で表わされる。
【数２】
2012022726.tif 000004
【００６６】
【数３】
2012022726.tif 000005
【００６７】
（式３）中の“ｎ”は、記憶層が含む磁化の個数（セル数）を示し、本例では３２個である。（式３）中の“Σ”は、記憶層が含む全ての磁化（本例では、３２個）の和（合計値）を計算することを示している。（式３）中の“＊”は共役複素数を示している。（式３）及び（式４）中の“ ￣ ”は、記憶層内の全ての磁化のセル（本例では、３２個）の平均値であることを示している。よって、（式３）中の“μ”は、記憶層内の全ての磁化の“Φ”の平均値を示している。
【００６８】
図９及び図１０は、記憶層１３内に配置された磁化のセルを模式的に示している。尚、図９及び図１０においては、複数のセル１８が２次元に配置されている例を示しているが、これは、説明の簡単化のためであって、これに限定されないのはもちろんである。
【００６９】
例えば、図９に示すように、記憶層１３内の各セル１８の磁化１９の位相が、全てランダムである場合には、位相の分散σΦは、“１”を示す。一方、図１０に示すように、記憶層１３内の全ての磁化１９の位相が完全に揃い、且つ、偏角“Φ”の値が同じになる場合には、位相の分散σΦは“０”を示す。  
図７に示すように、記憶層内の磁化の位相の分散σΦが急激に減少して、磁化がコヒーレントな歳差運動になる時間と、磁化が反転し始め、磁化の平均値Ｍｚ−ａｖｅが０．９５程度になった後、平均値Ｍｚ−ａｖｅが減少し始める現象は、連動している。このため、コヒーレント時間ｔｃｏｈは、図９に示されるように磁化の歳差運動がばらばらな歳差運動から図１０に示されるようにコヒーレントな歳差運動になるまでの時間であると、考えることができる。
【００７０】
尚、図７中の期間ｔ’は、コヒーレントな歳差運動になるまでの時間に相当する。但し、同一条件でシミュレーションを繰り返して行った場合においても、初期状態からコヒーレントな歳差運動が実現するまでの期間ｔ’は変動する。しかし、記憶層内の磁化の位相が揃い、コヒーレントな歳差運動が実現した時に、磁化の反転が開始される現象は再現される。
【００７１】
スピン注入磁化反転における期間ｔ’は、記憶層１３内において、各磁化１８の歳差運動の位相がそろわない状態（図９参照）から各磁化１８の歳差運動の位相がそろったコヒーレントな状態（図１０参照）へ遷移するまでの時間であるとみなすことができる。そして、コヒーレントな歳差運動になるまでの期間（時間）ｔｃｏｈとコヒーレントな歳差運動が増幅されるまでの期間（時間）ｔａｍｐを経過することよって、熱活性過程に移行し、ＭＴＪ素子の記憶層のスピン反転が実質的に開始されるといえる。  
この磁化の歳差運動がコヒーレントな運動になるまでの時間は、電流Ｉの大きさに依存し、電流Ｉの大きさが減少すると、磁化の歳差運動がコヒーレントな運動になるまでの時間は増加する。
【００７２】
このコヒーレントな歳差運動が実現するまでの期間（時間）ｔ’が存在し、且つ、コヒーレントな歳差運動が実現した後、スピン反転が開始してからスピン反転が完了するまでに有限な時間が存在する。そのため、それらの期間（時間）を考慮して、（式１）内の時間ｔ０が、本実施形態で述べるスピン注入磁化反転モデルのパラメータに含まれている。  
尚、ここでは、スピン注入磁化反転が完了する条件は、電流（パルス電流）をオフしても記憶層のスピンが元の状態にもどらず、最後まで反転することとする。これは、図８において、磁化の向きが赤道面ｃまで回転し、磁化の垂直成分Ｍｚが、“０”になることを意味する。
【００７３】
以上のように、磁化反転に有限の時間がかかり、その時間が揺らぐ、換言すると、スピン注入磁化反転は第１段階、第２段階及び第３段階の過程（図６参照）がある。このため、スピン注入磁化反転は、その磁化反転の初期段階に、磁化反転確率があまり上昇しない時間ｔ０がある。その時間ｔ０は、図５及び（式１）に示されている。例えば、垂直磁化膜を用いたＭＴＪ素子において、その素子の直径が単磁区化直径より小さい場合、時間（期間）ｔ０は、（式４）によって、近似的に示される。（式４）において、“ｔ０”の単位は、ｎｓｅｃである。
【数４】
2012022726.tif 000006
【００７４】
（式４）において、“Ｊｗｒｉｔｅ”は書き込み電流の電流密度を示し、“ＪＣ０”は、（Ｔｗｐ−ｔ０）ｆ０＝ｌｎ２になるようにパルス幅Ｔｗｐが設定された場合における０Ｋ（絶対温度）での磁化反転電流の電流密度を示している。
【００７５】
図１１は、図５と同様に、磁化反転確率の時間依存性を示しており、図７と同一条件のＭＴＪ素子の磁化反転確率の時間依存性を示している。尚、図１１に示される結果は、ＬＬＧ方程式を用いたマイクロマグネティックシミュレーションによって、計算されている。図１１の横軸は、時間を示し、図１１の縦軸は、図５と同様に、Ｌｏｇ１０（１−Ｐ）を示している。
【００７６】
図１１において、特性線Ｊ１，Ｊ２は、電流密度Ｊ１及び電流密度Ｊ２をそれぞれ有する書き込み電流を用いた場合における磁化反転確率を示している。特性線Ｊ１，Ｊ２は、（式１）に示される本実施形態の磁化反転モデルの１次近似線に対応している。電流密度Ｊ１は、３．８ＭＡ／ｃｍ２であり、電流密度Ｊ２は、４．０ＭＡ／ｃｍ２である。
【００７７】
尚、特性線Ａは、従来の単純な熱活性過程による磁化反転モデルの近似線である。従来の熱活性過程による磁化反転モデルは、（式５）で示される。
【数５】
2012022726.tif 000007
【００７８】
図１１の横軸に示される時間は、ＭＴＪ素子に電流を供給している時間（期間）であり、書き込み電流のパルス幅に、相当する。そして、図１１の“ΔＴ１”及び“ΔＴ２”は、電流密度Ｊ１，Ｊ２を有する書き込み電流のパルス幅がそれぞれ７％程度長くされた期間に相当する。
【００７９】
図１１に示されるように、電流密度Ｊ１，Ｊ２の書き込み電流において、そのパルス幅が７％程度長くなると、磁化が反転しない確率（１−Ｐ）が、１桁程度低下することが分かる。また、書き込み電流のパルス幅が、１４％から１５％程度長くなると、データを書き込めない確率が２桁程度低下する。
【００８０】
本実施形態で用いられる（式１）のスピン注入磁化反転モデルは、（式５）で示される従来のスピン注入磁化反転モデルよりも、書き込み不良の発生確率ＬＯＧ１０（１−Ｐ）が書き込み電流のパルス幅に対して大きく依存する。
【００８１】
よって、スピン注入磁化反転を適用したＭＲＡＭにおいて、書き込み不良の発生確率Ｌｏｇ１０（１−Ｐ）を低減するには、書き込み電流のパルス幅を増大させることが有効である。
【００８２】
図１２及び図１３において、実線で示される特性線は、式（１）に示される本実施形態の磁化反転モデルに対応して（式１）のΔＥ／ｋＢＴが“６０”、ｎが“２”、ｔ０が“７ｎｓｅｃ”にそれぞれ設定されている。
【００８３】
図１２は、書き込み電流のパルス幅に対する磁化反転電流（スイッチング電流）の揺らぎσ（Ｉｓｗ）／Ｉｓｗの変化を示している。図１２において、縦軸は反転しきい値電流の揺らぎに対応し、横軸は、反転しきい値電流の供給時間、つまり、書き込み電流のパルス幅Ｔｗｐに対応している。図１３は、書き込み電流のパルス幅に対する反転確率が０．５になるスイッチング電流Ｉｓｗの変化を示している。尚、図１３において、スイッチング電流Ｉｓｗは、電流比Ｉｓｗ／Ｉｃ０で示されている。
【００８４】
図１２及び図１３において、破線で示される特性線は、（式５）に示される磁化反転モデルの揺らぎσ（Ｉｓｗ）／Ｉｓｗ及び電流比Ｉｓｗ／Ｉｃ０が、それぞれ示されている。
【００８５】
図１２に示されるように、あるＭＴＪ素子に電流を供給した場合、本実施形態の磁化反転モデル（式１）は、磁化反転モデル（式５）に比較して、揺らぎσ（Ｉｓｗ）／Ｉｓｗが電流のパルス幅Ｔｗｐに大きく依存し、そのパルス幅Ｔｗｐが長くなると、揺らぎσ（Ｉｓｗ）／Ｉｓｗが減少することが示されている。
【００８６】
また、図１３においても、あるＭＴＪ素子に対して供給されるスイッチング電流Ｉｓｗが、電流のパルス幅Ｔｗｐに依存し、そのパルス幅Ｔｗｐが長くなると、その変化の割合が小さくなる。
【００８７】
このように、図１２及び図１３に示される結果からも、電流のパルス幅Ｔｗｐを長くすることで、ＭＴＪ素子（記憶層）に対する書き込み電流の揺らぎが減少し、データの書き込み不良が減少することがよくわかる。
【００８８】
データが正常に書き込めない不良の発生確率を低減するために、書き込み電流の電流値を大きくする手段もあるが、これは次の２点の難点がある。第１に、例えば、選択トランジスタのサイズなど、回路上の制約から書き込み電流には上限がある。第２に、書き込み電流の電流値を増大させると、バックホッピング（Back-hopping）とよばれる過大な書き込み電流に起因する書込み不良が発生する。これらのため、書き込み電流の電流値を大きくすることは、書き込み不良を低減することに対して必ずしも有効であるとは言えない。
【００８９】
それゆえ、書き込み電流のパルス幅を大きくして、ＭＴＪ素子にデータを書き込むことが好ましい。但し、データの書き込みの全てに、長いパルス幅を有する書き込み電流を用いることは、データの書き込み時間が長くなることを意味する。そのため、磁気メモリ、例えば、ＭＲＡＭの利点の１つである高速動作が、損なわれる。それゆえ、データの処理に要する時間が過剰に長くならないよう、別途工夫が必要である。
【００９０】
本発明の実施形態の磁気メモリは、磁気抵抗効果素子（ＭＴＪ素子）１に記憶されている（書き込まれている）データが出力され、その出力されたデータを磁気抵抗効果素子１に書き戻すときに、長いパルス幅の書き込み電流を用いる。データの書き戻し（再書き込み）は、主に、データの誤りが訂正された場合に、実行される。
【００９１】
図１及び図２に示されるように、本発明の実施形態の磁気メモリは、主メモリ５０から出力されたデータの誤りを検出及び訂正する誤り検出訂正回路５２を備える。また、本実施形態の磁気メモリは、書き込み電流Ｉｗ１，Ｉｗ２のパルス幅を制御する機能５３を有する制御回路５１を備える。
【００９２】
本実施形態の磁気メモリは、外部から入力されたデータを主メモリ５０内のＭＴＪ素子１に通常に書き込む場合、あるパルス幅Ｔｗｐ１を有する書き込み電流Ｉｗ１を、ＭＴＪ素子１に流す。例えば、パルス幅Ｔｗｐ１は、図５及び（式１）に示される不感時間ｔ０以上の時間に対応し、図６に示されるコヒーレント時間ｔｃｏｈと増幅時間ｔａｍｐとの和の時間（incubation delay time ｔｉｄ）以上に設定される。
【００９３】
本実施形態の磁気メモリにおいて、誤り検出訂正回路（不良検出回路ともよぶ）５２は、データの書き込み時又はデータの読み出し時に、ＭＴＪ素子１が記憶するデータに対して、誤りの検出及び訂正を実行する。そして、本実施形態の磁気メモリは、誤り検出訂正回路２によって訂正されたデータを、主メモリ５０内のＭＴＪ素子１に再び書き込む。
【００９４】
本実施形態の磁気メモリ内の制御回路５１は、外部から入力されたデータの書き込みか、訂正されたデータの書き戻しか、を判別する。
【００９５】
訂正されたデータをＭＴＪ素子１に書き戻す場合、制御回路５１は、誤り検出訂正回路５２による誤りの検出及び訂正に基づいて、書き込み電流Ｉｗ１のパルス幅Ｔｗｐ１よりも訂正されたデータを書き込むための書き込み電流Ｉｗ２のパルス幅Ｔｗｐ２を長くするように、書き込み回路２の動作を制御する。
【００９６】
このように、本実施形態の磁気メモリにおいて、外部から入力されたデータの書き込みは、パルス幅Ｔｗｐ１の書き込み電流Ｉｗ１が用いられ、誤りが訂正されたデータの書き込みは、パルス幅Ｔｗｐ２（＞Ｔｗｐ１）の書き込み電流Ｉｗ２が用いられる。
【００９７】
これによって、データの訂正が行われるのと共に、訂正されたデータがＭＴＪ素子１に書き戻される時に、長いパルス幅Ｔｗｐ２の書き込み電流Ｉｗ２が用いられることによって、書き込み不良が発生する確率は減少する。そのため、本実施形態の磁気メモリにおいて、ＭＴＪ素子１に書き込まれたデータにおける不良の発生は、減少する。
【００９８】
そして、ＭＴＪ素子１が記憶するデータの誤りが訂正されることによって、主メモリ５０内の磁気抵抗効果素子１に生じる書き込み不良、読み出しディスターブ、或いは、リテンション不良が、訂正される。つまり、本実施形態の磁気メモリにおいて、主メモリ５０内のデータの不良が減少し、誤動作が減少する。
【００９９】
本実施形態で述べる誤り訂正には、２種類の構成がある。第１の構成は、誤り訂正技術（ＥＣＣ：Error Correction Coding）を用いる構成である。ここで、不良（又は、エラー）とは、１ビットのデータの誤りであり、これは、誤り検出訂正技術によって、訂正可能な場合が多い。１ブロック中に含まれる不良がある個数以上（例えば、２個以上）になると、誤り検出訂正技術を用いても、訂正できなくなる。このように、誤り検出訂正技術を用いても不良が救済できないことを、本実施形態では、誤動作とよぶ。
【０１００】
第２の構成は、ＥＣＣ技術を用いずに、主メモリに書き込んだデータをすぐに読み出し、その読み出されたデータと外部からのデータ（オリジナルのデータ）と比較することによって、書き込み不良（誤り）を検出する。読み出されたデータに書き込み不良が存在した場合、データを置き換え、オリジナルのデータを主メモリに書き込む。
【０１０１】
そして、本実施形態の磁気メモリは、誤りが訂正されたデータをＭＴＪ素子１に書き戻す場合のみに、書き込み電流のパルス幅を長くする。そのため、磁気メモリの動作時間、特に、書き込み動作の時間は、過剰に長くならない。よって、磁気メモリの高速性は、損なわれない。
【０１０２】
したがって、本発明の実施形態に係る磁気メモリは、その動作の信頼性が向上し、且つ、その動作特性が向上する。
【０１０３】
［構成例１］  
図１４乃至図２２を参照して、本発明の実施形態に係る磁気メモリの構成例について、説明する
（１）  回路  
図１４乃至図２２を用いて、本発明の実施形態に係る磁気メモリの回路の構成例について述べる。本構成例の磁気メモリは、例えば、磁気ランダムアクセスメモリ（ＭＲＡＭ）である。
【０１０４】
図１４に示すように、本構成例のＭＲＡＭは、主メモリ５０を備える。主メモリ５０は、データを主メモリ５０内のメモリセル（ＭＴＪ素子１）に書き込む機能と、データを主メモリ５０内のメモリセル（ＭＴＪ素子１）から読み出す機能とを有する。
【０１０５】
図１５は、主メモリ５０の内部構成の一例を示し、ＭＲＡＭのメモリセルアレイ近傍の回路構成を示している。
【０１０６】
複数のメモリセルＭＣは、メモリセルアレイ２０内にアレイ状に配置される。
【０１０７】
図１６は、メモリセルアレイ２０内に設けられるメモリセルＭＣの構造の一例を示す図である。ＭＴＪ素子１の上端は、上部電極３１を介して上部ビット線３２に接続される。また、ＭＴＪ素子１の下端は、下部電極３３、引き出し配線３４及びプラグ３５を介して、選択トランジスタＴｒのソース／ドレイン拡散層３７ａに接続される。選択トランジスタＴｒのソース／ドレイン拡散層３７ｂは、プラグ４１を介して下部ビット線４２に接続される。
【０１０８】
ソース／ドレイン拡散層３７ａ及びソース／ドレイン拡散層３７ｂ間の半導体基板（チャネル領域）３６上には、ゲート絶縁膜３８を介してゲート電極３９が形成される。選択トランジスタＴｒのゲート電極は、ワード線ＷＬとして機能する。
【０１０９】
尚、下部電極３３及び引き出し電極３４の少なくとも１つを省略してもよい。例えば、下部電極３３を省略する場合には、ＭＴＪ素子１は、引き出し配線３４上に形成される。また、引き出し配線３４を省略する場合には、下部電極３３は、プラグ３５上に形成される。さらに、下部電極３３及び引き出し電極３４を省略する場合、ＭＴＪ素子１は、プラグ３５上に形成される。
【０１１０】
ワード線ＷＬは、ロウ方向に延び、メモリセルＭＣを構成する選択トランジスタＴｒのゲートに接続される。
【０１１１】
ワード線ＷＬの一端は、ロウ制御回路４に接続される。ロウ制御回路４は、ワード線ＷＬに対する選択動作を行う。
【０１１２】
ビット線ＢＬ，ｂＢＬは、カラム方向に延在している。ビット線ＢＬには、ＭＴＪ素子１の一端が接続され、ビット線ｂＢＬは、選択トランジスタＴｒの電流経路の一端に接続されている。２本のビット線ＢＬ，ｂＢＬが、１組のビット線対を構成している。
【０１１３】
ビット線ＢＬ，ｂＢＬの一端及び他端には、カラム制御回路３Ａ，３Ｂが接続される。
【０１１４】
書き込み回路２Ａ，２Ｂは、カラム制御回路３Ａ，３Ｂを介して、ビット線ＢＬ，ｂＢＬの一端及び他端に接続される。書き込み回路２Ａ，２Ｂは、書き込み電流Ｉｗ１，Ｉｗ２を生成するための電流源や電圧源などのソース回路、書き込み電流を吸収するためのシンク回路を、それぞれ備える。書き込み回路２Ａ，２Ｂは、書き込み動作が実行されないとき、ビット線ＢＬ，ｂＢＬから電気的に分離される。
【０１１５】
書き込み回路２Ａ，２Ｂの動作は、制御回路５１及び後述の書き込みパルス幅制御回路５３に制御されて、図１７に示される書き込み電流Ｉｗ１，Ｉｗ２を出力する。データの書き込み時、書き込み回路２Ａ，２Ｂは、書き込み電流Ｉｗ１，Ｉｗ２をＭＴＪ素子１に供給する。書き込み電流Ｉｗ１，Ｉｗ２は、ＭＴＪ素子１内を流れる。
【０１１６】
書き込み電流Ｉｗ１，Ｉｗ２の電流値ｉｗは、２つの電流Ｉｗ１，Ｉｗ２で同じであってもよいし、それぞれ異なる電流値であってもよい。
【０１１７】
図１７において、書き込み電流Ｉｗ１，Ｉｗ２は、同じ電流値を有する。書き込み電流Ｉｗ１，Ｉｗ２の電流値ｉｗは、メモリセルアレイ２０内に含まれる複数のＭＴＪ素子の反転しきい値の中で最大値ｉｔｈ以上であることが好ましい。また、書き込み電流Ｉｗ１は、所定のパルス幅Ｔｗｐ１を有し、書き込み電流Ｉｗ２は、パルス幅Ｔｗｐ１より長いパルス幅Ｔｗｐ２を有する。パルス幅Ｔｗｐ１は、例えば、時間ｔ０以上の値が用いられ、例えば、（式４）に基づいて設定される。また、パルス幅Ｔｗｐ２は、例えば、パルス幅Ｔｗｐ１より、７％〜１０％程度長い値に設定される。
【０１１８】
上述のように、書き込み電流Ｉｗ１，Ｉｗ２のパルス幅Ｔｗｐ１，Ｔｗｐ２は、パルス形状の書き込み電流の半値全幅によって、規定される。
【０１１９】
読み出し回路５は、カラム制御回路３Ｂを介して、ビット線ＢＬ，ｂＢＬの一端に接続される。読み出し回路５は、読み出し電流Ｉｒを発生する電圧源又は電流源や、読み出し信号の検知及び増幅を行うセンスアンプ、データを一時的に保持するラッチ回路などを含んでいる。読み出し回路５は、読み出し動作が実行されないとき、ビット線ＢＬ，ｂＢＬから電気的に分離される。
【０１２０】
読み出し回路５は、読み出し動作時、読み出し電流Ｉｒを出力する。図１７には、読み出し電流Ｉｒの波形が示されている。読み出し電流Ｉｒの電流値ｉｒの最大値は、例えば、反転しきい値ｉｔｈよりも小さい値に設定される。読み出し電流Ｉｒの電流値ｉｒは、例えば、パルス電流の立ち上がりが終了する時間から立ち下がりが開始する時間までの期間に、一定に出力される。例えば、読み出し電流Ｉｒのパルス幅Ｔｒｐは、パルス電流の半値全幅で規定される。パルス幅Ｔｒｐは、例えば、書き込み電流Ｉｗ１のパルス幅Ｔｗｐ１より短く、さらには、不感時間ｔ０より短くてもよい。これによって、本構成例のＭＲＡＭにおいて、読み出しディスターブの発生が低減されてもよい。但し、これに限定されず、読み出し電流Ｉｒの電流値ｉｒが、反転しきい値ｉｔｈより十分小さければ、読み出し電流Ｉｒのパルス幅Ｔｒｐは書き込み電流Ｉｗ１，Ｉｗ２のパルス幅Ｔｗｐ１，Ｔｗｐ２以上でもよい。
【０１２１】
データの読み出しは、ＭＴＪ素子１に読み出し電流ＩＲを流すことで行われる。平行状態の抵抗値を“Ｒ０”、反平行状態の抵抗値を“Ｒ１”とすると、“（Ｒ１−Ｒ０）／Ｒ０”で定義される値を磁気抵抗比（ＭＲ比）とよぶ。磁気抵抗比はＭＴＪ素子１を構成する材料やプロセス条件によって異なるが、数１０％から数１００％程度の値を取り得る。
【０１２２】
このＭＲ比に起因する読み出し電流（ビット線の電位）の変動量を、検知することで、ＭＴＪ素子１に記憶された情報が読み出される。
【０１２３】
カラム制御回路３Ａ，３Ｂ内には、ビット線ＢＬ，ｂＢＬと書き込み回路２Ａ，２Ｂとの導通状態を制御するスイッチ回路や、ビット線ＢＬ，ｂＢＬと読み出し回路５との導通状態を制御するスイッチ回路が設けられている。
【０１２４】
書き込み動作時、カラム制御回路３Ａ，３Ｂ内において、書き込み対象となるメモリセルＭＣに接続されたスイッチ回路がオンになり、その他のスイッチ回路がオフになる。また、ロウ制御回路４によって、選択されたメモリセルＭＣ内の選択トランジスタＴｒがオンされる。そして、書き込みデータに応じた向きの書き込み電流が、選択されたメモリセルＭＣに供給される。データの書き込み時、電流を流す向きに応じて、いずれか一方の書き込み回路２Ａ，２Ｂはソース側となり、他方の書き込み回路２Ｂ，２Ａはシンク側となる。
【０１２５】
本構成例のＭＲＡＭは、誤り検出訂正回路５２を備える。誤り検出訂正回路５２は、主メモリ５０からその回路５２に出力されたデータに誤りが含まれているか否か検出する機能と、データに含まれる誤りを訂正する機能を有する。
【０１２６】
例えば、誤り検出訂正回路５２は、符号化部６１、誤り検出部６２、誤り訂正部６３及び復号化部６４と、を有する。
【０１２７】
符号化部６１は、バッファメモリ５４を介して外部から入力されたデータＤＴ１に、データの誤りを検出及び訂正するための符号（冗長ビット）を付加する。以下、符号化部６１がデータに付加する符号のことを、誤り検出訂正符号とよぶ。
【０１２８】
符号化部６１は、誤り検出訂正符号を付加したデータｎＤＴを主メモリ５０に出力する。そのデータｎＤＴは、主メモリ５０内の選択セルに書き込まれる書き込みデータとして扱われる。また。符号化部６１は、入力されたデータＤＴ１に誤り検出符合を付加した際に、制御信号（第１の制御信号）ＮＷＣを、書き込みパルス幅制御回路５３に出力する。
【０１２９】
制御信号ＮＷＣは、外部から入力されたデータｎＤＴを主メモリ５０に書き込む場合に、パルス幅Ｔｗｐ１を有する書き込み電流Ｉｗ１を生成及び出力するように、書き込みパルス幅制御回路５３及び主メモリ５０内の書き込み回路２Ａ，２Ｂの動作を制御するための信号である。以下、制御信号ＮＷＣのことを、通常書き込み信号ＮＷＣとよぶ。
【０１３０】
誤り検出部６２は、主メモリ５０から出力されたデータｒＤＴの誤り検出訂正符号を用いて、主メモリ５０から読み出されたデータｒＤＴが誤りを含むか否か検査する。誤り検出部６２は、そのデータｒＤＴが誤りを含む場合、誤りを含むデータｅｒｄを誤り訂正部６３に出力する。一方、誤り検出部６２は、そのデータｒＤＴが誤りを含まない場合、そのデータｒＤＴを復号化部６４に出力する。
【０１３１】
誤り訂正部６３は、読み出されたデータｒＤＴに誤りが含まれていた場合に、その誤りを訂正する。誤り訂正部６３は、誤りが訂正されたデータ（以下、訂正データとよぶ）ｃＤＴを、主メモリ５０及び復号化部６４に出力する。主メモリ５０に出力された訂正データｃＤＴは、主メモリ５０内の所定のメモリセルに、書き込まれる。訂正データｃＤＴは、例えば、訂正される前に記憶されていたのと同じメモリセル（ＭＴＪ素子）に書き込まれる。
【０１３２】
誤り訂正部６３は、訂正データを主メモリ５０に出力する際に、制御信号（第２の制御信号）ＲＷＣを、書き込みパルス幅制御回路５３に出力する。
【０１３３】
制御信号ＲＷＣは、訂正データｃＤＴを主メモリ５０に書き戻す場合に、訂正データｃＤＴの書き込みに用いる電流Ｉｗ２のパルス幅Ｔｗｐ２を、通常の書き込み電流Ｉｗ１のパルス幅Ｔｗｐ１よりも長くするように、書き込みパルス幅制御回路５３及び主メモリ５０内の書き込み回路２Ａ，２Ｂの動作を制御するための信号である。これによって、ＭＲＡＭチップ内において、主メモリ５０から一度出力されたデータ（訂正データｃＤＴ）が、主メモリ５０に再び書き込まれる場合に、図１７に示される長いパルス幅Ｔｗｐ２の書き込み電流Ｉｗ２が、データの書き込みに用いられる。以下、制御信号ＲＷＣのことを、再書き込み信号ＲＷＣとよぶ。
【０１３４】
復号化部６４は、読み出し動作の際、誤り検出部６２又は誤り訂正部６３から出力されたデータｒＤＴ，ｃＤＴを復号化する。そして、復号化部６４は、復号化されたデータを、バッファメモリ５４に出力する。
【０１３５】
本構成例のＭＲＡＭにおいて、誤り検出訂正回路５２は、例えば、誤り検出訂正技術として拡張ハミングコード（Extended Humming code）を用いて、データが含む誤りを検出及び訂正する。拡張ハミングコードが用いられた場合、誤り検出訂正符号は、所定のビット数のハミングコードとパリティビットとを含んでいる。但し、誤り検出訂正回路５２には、リード・ソロモン法など、他の誤り検出訂正技術が適用されてもよい。
【０１３６】
また、本構成例のＭＲＡＭは、例えば、バッファメモリ５４を備える。バッファメモリ５４は、外部から入力されたデータＤＴ１を一時的に保持する。また、バッファメモリ５４は、誤り検出訂正回路５２を経由して、主メモリ５０から出力されたデータを、一時的に保持し、保持したデータＤＴ２を、外部へ出力する。
【０１３７】
バッファメモリ５４は、ＭＲＡＭでもよいし、ＤＲＡＭ（Dynamic RAM）又はＳＲＡＭ（Static RAM）でもよい。例えば、バッファメモリ５４がＭＲＡＭによって構成される場合、バッファメモリ５４としてのＭＲＡＭ内で生じる書き込み不良の発生確率は、主メモリ５０としてのＭＲＡＭ内の書き込み不良の発生確率よりも低いことが望ましい。
【０１３８】
そのため、バッファメモリ５４に用いられるＭＲＡＭにおいて、その選択トランジスタのサイズ（例えば、チャネル長）が、主メモリ５０に用いられているＭＲＡＭの選択トランジスタＴｒのサイズよりも大きくされることが好ましい。これによって、バッファメモリ５４内の選択トランジスタの電流駆動力が大きくなり、バッファメモリ５４内のＭＴＪ素子に、十分大きな書き込み電流を流すことができる。それゆえ、バッファメモリ５４内の書き込み不良は低減する。
【０１３９】
尚、バッファメモリ５４としてのＭＲＡＭに、１つのＭＴＪ素子と２つの選択トランジスタとから構成された、２Ｔｒ＋１ＭＴＪの構成を有するメモリセルが用いられてもよい。この場合、２つの選択トランジスタが１つのＭＴＪ素子に対して用いられることで、１つのメモリセルにおける選択トランジスタの実質的なサイズは、大きくなる。よって、１つの選択トランジスタのサイズを大きくするのと同様に、２Ｔｒ＋１ＭＴＪ型のメモリセルを用いた場合においても、バッファメモリ５４内のＭＴＪ素子に、十分大きな書き込み電流を流すことができる。これによって、バッファメモリ５４内の書き込み不良を低減できる。
【０１４０】
本構成例のＭＲＡＭは、制御回路５１及び書き込みパルス幅制御回路５３を、備える。制御回路５１は、外部から入力されたコマンド信号ＣＭＤ及びアドレス信号ＡＤＲに基づいて、ＭＲＡＭ（チップ）全体の動作を制御する。コマンド信号ＣＭＤは、データの書き込み、データの読み出し及びデータの消去など、主メモリ５０に対する動作を示す。アドレス信号ＡＤＲは、動作の対象のメモリセルのアドレスを示す。
【０１４１】
書き込みパルス幅制御回路５３は、誤り検出訂正回路５２が、誤り検出訂正符号を付加した外部からのデータｎＤＴを主メモリ５０に書き込む際に、図１７に示すような所定のパルス幅Ｔｗｐ１を有する書き込み電流Ｉｗ１を用いるように、主メモリ５０の動作、特に、書き込み回路２Ａ，２Ｂの動作を制御する。書き込みパルス幅制御回路５３の制御によって、主メモリ５０Ａ内の書き込み回路２Ａ，２Ｂは、外部からのデータの書き込み時、パルス幅Ｔｗｐ１を有する書き込み電流Ｉｗ１を出力する。パルス幅Ｔｗｐ１の書き込み電流Ｉｗ１を用いた書き込みのことを、通常書き込みとよぶ。
【０１４２】
書き込みパルス幅制御回路５３は、誤りを訂正したデータｃＤＴを主メモリ５０に書き込む際に、書き込み電流Ｉｗ１のパルス幅Ｔｗｐ１よりもパルス幅を長くし、その長いパルス幅Ｔｗｐ２を有する書き込み電流Ｉｗ２を用いるように、主メモリ５０の動作、特に、書き込み回路２Ａ，２Ｂの動作を制御する。書き込みパルス幅制御回路５３の制御によって、主メモリ５０Ａ内の書き込み回路２Ａ，２Ｂは、訂正されたデータの書き込み時、パルス幅Ｔｗｐ２を有する書き込み電流Ｉｗ２を出力する。パルス幅Ｔｗｐ２の書き込み電流Ｉｗ２を用いた書き込みのことを、再書き込み或いは書き戻しとよぶ。
【０１４３】
パルス幅Ｔｗｐ１，Ｔｗｐ２の制御は、書き込みパルス幅制御回路５３が書き込み回路２Ａ，２Ｂを活性化させている期間、具体的には、書き込み回路２Ａ，２Ｂと選択セルとを導通させている期間を制御するによって、実行される。
【０１４４】
書き込みパルス幅制御回路５３の動作は、制御回路５１及び２つの制御信号ＮＷＣ，ＲＷＣによって、制御される。上述のように、通常書き込み信号ＮＷＣは、入力されたデータに誤り検出訂正符号が付加された時に、誤り検出訂正回路５２内の符号化部６１から出力される。再書き込み信号ＲＷＣは、データｒＤＴの誤りが訂正された時に、誤り検出訂正回路５２内の誤り検出部６２又は誤り訂正部６３から出力される。書き込みパルス幅制御回路５３は、通常書き込み信号ＮＷＣが入力されたとき、パルス幅Ｔｗｐ１の書き込み電流Ｉｗ１を出力させる制御信号ｐｗｃｓを主メモリ５０に出力する。書き込みパルス幅制御回路５３は、再書き込み信号ＲＷＣが入力されたとき、パルス幅Ｔｗｐ２の書き込み電流Ｉｗ２を出力させる制御信号ｐｗｃｓを主メモリ５０に出力する。以下、制御信号ｐｗｃｓのことを、パルス幅制御信号ｐｗｃｓとよぶ。パルス幅制御信号ｐｗｃｓが、パルス幅Ｔｗｐ１又はＴｗｐ２のいずれかを用いることを示すことによって、書き込み電流のパルス幅が制御されてもよいし、パルス幅制御信号ｐｗｃｓの入力の有無によって、書き込み電流のパルス幅が制御されてもよい。
【０１４５】
尚、書き込みパルス幅制御回路５３は、制御回路５１内に設けられてもよい。また、書き込みパルス幅制御回路５３を設けずに、制御回路５１が、書き込みパルス幅制御回路５３と同じ機能を有し、２つの制御信号ＮＷＣ，ＲＷＣが制御回路５１に入力されてもよい。また、本構成例のＭＲＡＭは、図１４に示される構成のほかに、コマンド信号が入力されるコマンドインターフェイスや、アドレス信号が入力されるアドレスバッファを別途に備えてもよい。
【０１４６】
本実施形態の構成例に係るＭＲＡＭは、外部から入力されたデータをＭＴＪ素子１に通常に書き込む場合、パルス幅Ｔｗｐ１の書き込み電流Ｉｗ１を用いる。また、本構成例のＭＲＡＭは、ＭＴＪ素子１が記憶するデータの誤りを訂正して、その訂正したデータをＭＴＪ素子１に書き戻す場合に、書き込み電流のパルス幅を長くし、パルス幅Ｔｗｐ１より長いパルス幅Ｔｗｐ２の書き込み電流Ｉｗ２を用いる。
【０１４７】
これによって、本構成例のＭＲＡＭは、メモリセルアレイ２０内の複数のＭＴＪ素子に特性（例えば、反転しきい値）にばらつきがあっても、書き込み不良を低減できる。また、本構成例のＭＲＡＭは、ＭＴＪ素子に記憶された（書き込まれた）データが誤りを含み、その誤りが訂正されたデータをＭＴＪ素子１に再び書き込む場合にのみ、長いパルス幅Ｔｗｐ２の書き込み電流Ｉｗ２を用いる。そのため、ＭＲＡＭの動作サイクルが過剰に長くなることがなく、高速性が損なわれることが無い。
【０１４８】
したがって、本発明の実施形態に係る磁気メモリは、その動作の信頼性が向上し、動作速度が向上する。
【０１４９】
（２）  動作  
図１８乃至図２２を用いて、本発明の実施形態に係る磁気メモリの動作について、説明する。以下では、本実施形態の磁気メモリの動作について、磁気メモリの構成を示す図１４乃至図１７も適宜用いて説明する。尚、本実施形態の磁気メモリの動作においては、拡張ハミングコードを用いて、データの誤りを検出及び訂正する場合について述べる。但し、他の誤り検出訂正技術（例えば、リードソロモン法）を、本実施形態の磁気メモリに適用できるのは、もちろんである。
【０１５０】
（ａ）  動作例１  
図１８を用いて、本実施形態の構成例に係る磁気メモリ（ＭＲＡＭ）の動作例１について説明する。ここでは、本構成例のＭＲＡＭの動作例１として、本構成例のＭＲＡＭに用いられるデータの書き込みについて、述べる。
【０１５１】
図１８に示すように、データの書き込み時、書き込みを示すコマンド信号ＣＭＤ、アドレス信号ＡＤＲ、書き込まれるデータＤＴ１が、外部から入力される（ステップＳＴ１）。コマンド信号ＣＭＤ及びアドレス信号ＡＤＲは、例えば、制御回路５１内に入力される。データＤＴ１は、例えば、バッファメモリ５４に入力される。そのデータＤＴ１は、バッファメモリ５４に記憶される（ステップＳＴ２Ｂ）。例えば、データＤＴ１は、拡張ハミングコードにおけるデータ（情報ビット）のブロック長（例えば、６４ビット）を１つの単位として、バッファメモリ５４内に格納されることが好ましい。
【０１５２】
入力されたデータＤＴ１は、バッファメモリ５４に記憶されるとともに、バッファメモリ５４を経由して、誤り検出訂正回路５２に入力される。データＤＴ１は、誤り検出訂正回路５２内の符号化部６１に入力される。データＤＴ１は符号化部６１によって、誤り検出訂正符号として、例えば、８ビットの冗長ビットが付加される。冗長ビットが付加されたデータｎＤＴは、符号化部６１から主メモリ５０に出力される。
【０１５３】
この際、制御信号（通常書き込み信号）ＮＷＣが、符号化部６１から書き込みパルス幅制御回路５３に出力される。
【０１５４】
書き込みパルス幅制御回路５３は、入力された通常書き込み信号ＮＷＣに基づいて、データｎＤＴを書き込むための書き込み電流のパルス幅を制御（調整）する。書き込み電流のパルス幅を“Ｔｗｐ１”にするための制御信号（パルス幅制御信号）ｐｗｃｓが、書き込みパルス幅制御回路５３から主メモリ５０に出力される。
【０１５５】
主メモリ５０内において、アドレス信号ＡＤＲが示すワード線がロウ制御回路４によって活性化され、アドレス信号ＡＤＲが示すビット線がカラム制御回路３Ａ，３Ｂによって、活性化される。主メモリ５０内の書き込み回路２Ａ，２Ｂは、制御信号ｐｗｃｓによって制御され、例えば、図１７に示される所定のパルス幅Ｔｗｐ１を有する書き込み電流Ｉｗ１を出力する。
【０１５６】
その書き込み電流Ｉｗ１が、ビット線ＢＬ，ｂＢＬを流れ、アドレス信号ＡＤＲが示す選択セル（ＭＴＪ素子）に供給され、データｎＤＴが書き込まれる（ステップＳＴ２Ａ）。通常書き込みにおいて、データｎＤＴを書き込むための書き込み電流Ｉｗ１のパルス幅Ｔｗｐ１は、例えば、（式４）に示される不感時間ｔ０以上に設定されている。
【０１５７】
このように、符号化部６１から出力されたデータｎＤＴを主メモリ５０内の選択セルに書き込む際、書き込み電流Ｉｗ１のパルス幅Ｔｗｐ１には、例えば、磁化の反転に要する最低限の時間（期間）に対応したパルス幅が、用いられる。
【０１５８】
書き込み電流Ｉｗ１を用いて主メモリ５０内にデータｎＤＴを書き込んだ後、書き込まれたデータに対するベリファイ動作のため、書き込まれたデータが主メモリ５０から誤り検出訂正回路５２内に読み出される（ステップＳＴ３）。ここでは、ベリファイされるために読み出されたデータのことを、ベリファイデータとよぶ。
【０１５９】
ベリファイデータｒＤＴは、誤り検出訂正回路５２内の誤り検出部６２に入力される。誤り検出部６２は、ベリファイデータｒＤＴに付加された冗長ビット（誤り検出訂正符号）を用いて、ＭＴＪ素子１が記憶するデータｒＤＴが誤りを含むか否か検査する（ステップＳＴ４）。
【０１６０】
ベリファイデータｒＤＴに誤りが検出された場合、その誤りが訂正される（ステップＳＴ５）。誤りを含むベリファイデータｒＤＴは、誤り検出部６２から誤り訂正部６３へ出力される。ベリファイデータｒＤＴの誤りは、冗長ビットに基づいて、誤り訂正部６３によって、訂正される。ＭＴＪ素子１に書き込まれたデータに誤りが無い場合、データの書き込みは、終了する（ステップＳＴ７）。
【０１６１】
誤りが訂正されたデータ（訂正データ）ｃＤＴは、主メモリ５０に出力され、メモリセルアレイ２０内のＭＴＪ素子１に、再び書き込まれる（ステップＳＴ６）。訂正データｃＤＴは、通常、ベリファイ動作の前に書き込んだアドレスと同じアドレスに、重ね書きされる。つまり、訂正データｃＤＴは、訂正の前後で同じＭＴＪ素子１に書き込まれる。
【０１６２】
この訂正データの書き込み（ステップＳＴ６）は、通常書き込みに用いられる書き込み電流Ｉｗ１のパルス幅Ｔｗｐ１よりも長いパルス幅Ｔｗｐ２の書き込み電流Ｉｗ２が用いられる。
【０１６３】
本動作例１において、訂正データｃＤＴがＭＴＪ素子１に書き込まれる際、再書き込みを示す制御信号（再書き込み信号）ＲＷＣが、誤り検出訂正回路５２内の誤り訂正部６３から書き込みパルス幅制御回路５３へ出力される。
【０１６４】
再書き込み信号ＲＷＣが書き込みパルス幅制御回路５３に入力されることによって、書き込み電流のパルス幅を長くするためのパルス幅制御信号ｐｗｃｓが、書き込みパルス幅制御回路５３から主メモリ５０に出力される。そのパルス幅制御信号ｐｗｃｓによって、図１７に示されるように、パルス幅Ｔｗｐ２（＞Ｔｗｐ１）を有する書き込み電流Ｉｗ２が、主メモリ５０内の書き込み回路から出力され、書き込み電流Ｉｗ２が選択セルに直接供給される。
【０１６５】
例えば、書き込み動作及びベリファイ動作のループにおいて、書き込み電流のパルス幅は、前のデータの書き込み時に用いられた電流のパルス幅の、１．１０倍にするように、パルス幅制御信号ｐｗｃｓによって制御される。尚、書き込み電流のパルス幅を大きくする増加率は、１．１０倍に限定されず、例えば、１．０７倍から１．１５倍程度の範囲内でもよい。
【０１６６】
このように、誤り検出訂正回路５２から出力される２つの制御信号ＮＷＣ，ＲＷＣによって、データの書き込みが、通常書き込みであるか再書き込み（書き戻し）であるかが、判別される。これによって、書き込み電流のパルス幅を、所定のパルス幅Ｔｗｐ１にするか、パルス幅Ｔｗｐ１より長くするかが、判別される。
【０１６７】
尚、データの書き込み時において、書き込みデータの誤りの検出、訂正及び再書き込みが実行されている期間中に、それらの処理が実行中のデータに対して、読み出し命令が入力された場合、そのデータに対応するバッファメモリ５４に記憶されたデータが、外部へ読み出される（ステップＳＴ２Ｂ）。
【０１６８】
主メモリ５０内に書き戻された訂正データｃＤＴ（以下、再書き込みデータとよぶ）は、再びベリファイ動作（ステップＳＴ３）の対象となる。それゆえ、再書き込みデータは主メモリ５０から再び出力され、データ内に誤りがあるか否か検査される。再書き込みデータに誤りが検出された場合、その誤りが訂正され、訂正されたデータが再び書き戻された後、再度ベリファイされる。再書き込みデータに誤りが無い場合、データの書き込みは終了する（ステップＳＴ７）。
【０１６９】
尚、ベリファイ動作が繰り返し実行され、データの再書き込みが複数回実行された場合、１つのデータに対して再書き込みの回数を重ねるごとに、書き込み電流のパルス幅を大きくすることが、好ましい。この場合、書き込み電流のパルス幅を同じ倍率（例えば、１．１倍）で大きくしてもよい。但し、１回目の再書き込み時にのみパルス幅を長くし、２回目以降の再書き込みに用いる書き込み電流のパルス幅は、１回目の書き込み電流のパルス幅と同じ長さでもよい。
【０１７０】
データを再書き込みするループは、データの誤りが無くなるまで無限に続けてもよい。しかし、データを書き戻すループは、一定の回数、例えば、１０回までに制限し、１０回の再書き込みのループを行っても、データの誤りがなくならない場合、選択アドレスが示すＭＴＪ素子自体に欠陥があると判定して、主メモリ５０の別のアドレスへ訂正データ（書き戻しデータ）を記憶するよう変更することが効果的である。
【０１７１】
データの再書き込みは、誤っていたビットのみが１つの選択セルに重ね書きされてもよいし、１ブロックに含まれる全ビットが、対応する各選択セルへ重ね書きされてもよい。但し、磁気メモリの消費電力を抑制するために、誤っていたビットのみを重ね書きすることが好ましい。
【０１７２】
＜動作例１の効果＞  
図１９乃至図２１を用いて、本実施形態の磁気メモリ（ＭＲＡＭ）の動作例１の効果について、説明する。
【０１７３】
図１９は、ＭＴＪ素子に供給される電流の電流値Ｉｃ，ｍｐの分布を示している。電流値Ｉｃ，ｍｐは、あるパルス幅の書き込み電流を用いてＭＴＪ素子にデータを書き込んだ場合に、そのＭＴＪ素子の記憶層の磁化反転確率が０．５になる電流値を示している。
【０１７４】
図１９において、分布Ｃは、データの訂正及び再書き込みが実行されない場合に満たすべき電流Ｉｃ，ｍｐの分布を示している。この場合、誤動作の発生確率をある仕様値以下にするには、分布Ｃのばらつきを小さくする必要がある。分布Ｄは、データの訂正及び再書き込みが実行される場合の分布を示している。誤動作の発生確率をある仕様値以下にする場合、分布Ｄは、データの訂正及び再書き込みを行うので、分布Ｃよりもばらつきが大きくともよい。
【０１７５】
また、図１９には、書き込み電流Ｉｗｒの分布も示されている。図１９において、横軸は、電流Ｉｃ，ｍｐ，Ｉｗｒｉｔｅの大きさが示され、縦軸は、存在確率が示されている。
【０１７６】
図１９に示されるように、電流Ｉｃ，ｍｐの分布Ｃ，Ｄは電流Ｉｗｒの分布に対して、所定のマージン領域ＭＲ，ＣＲが確保される。本実施形態の動作例１において、図１９の分布Ｄのように、データの訂正及び再書き込みが実行されることによって、分布Ｃで示されるデータの訂正及び再書き込みが実行されない場合に比較して、電流Ｉｃ，ｍｐのばらつきの許容度が広がる利点がある。つまり、メモリセルアレイ内にビット（ＭＴＪ素子）間のばらつきが大きくとも、誤動作確率を抑制できる。本実施形態において、誤動作とは、誤り検出訂正技術によって訂正できない不良のことである。尚、本実施形態において、誤り検出訂正技術によって訂正できる不良のことは、単に、不良、エラー或いは誤りとよぶ。
【０１７７】
磁気メモリ、例えば、ＭＲＡＭにおいて、磁性体の磁化反転が確率現象であるために、書き込み不良、読出しディスターブ及びリテンション不良などが起きる。これらに起因する誤動作の確率の合計は、１チップあたり１０００ＦＩＴ（Failures In Time）以下に保証されることが好ましい。それゆえ、ここでは、１０００ＦＩＴ／チップを想定して、本動作例（書き込み動作）の効果について、述べる。尚、１０００ＦＩＴ／チップは、一般的なＤＲＡＭのソフトエラーに対する仕様である。
【０１７８】
ここでは、１ＧビットのＭＲＡＭにおいて、例えば、誤り検出訂正符号として拡張ハミングコードを用い、６４ビットのデータ（情報ビット）に８ビットの誤り検出訂正符号（冗長ビット）を付加し、７２ビットを１ブロックとする。この場合、ＭＲＡＭに含まれる総ブロック数は１．６８×１０７個である。そして、１ブロックごとにデータの書き込みとデータの読み出しとを、１０年間交互に繰り返した場合、書き込みの総回数は３．１５×１０１５回である。読み出しの総回数も、３．１５×１０１５回である。
【０１７９】
１回のデータの書き込みにおいて、１ブロック中に２ビットの不良が同時に発生する確率が、１０００ＦＩＴ／チップに抑制されるためには、１ビット（１つのＭＴＪ素子）に対する１回の書き込みにおける書き込み不良の発生確率ｑ（write）が、２×１０−１０以下であることが好ましい。また、１回のデータの読み出しにおいて、１ブロック中に２ビットの不良が同時に発生する確率が、１０００ＦＩＴ／チップに抑制されるためには、１ビットに対する１回の読み出しにおける読み出しディスターブの発生確率ｑ（read）が、２×１０−１０以下であることが好ましい。
【０１８０】
ここでは、書き込み不良は、“０”データの書き込み又は“１”データの書き込みのいずれか一方で顕著になることを考慮した。また、ここでは、読み出しディスターブは、“０”データの読み出し又は“１”データの読み出しのいずれか一方でしか、発生しないことを考慮した。
【０１８１】
次に、メモリセルアレイ内の任意の１ブロックに着目して、誤動作の確率を考える。  
１回のデータの書き込みにおいて、１ブロック（７２ビット）内に１ビットの書き込み不良が発生する確率ｐ１（write）は、（式６）で示される。  
【数６】
2012022726.tif 000008
【０１８２】
１ブロック内に２ビット以上同時に書き込み不良が発生し、誤動作になる確率ｐ２＋（write）は、（式７）で示される。
【数７】
2012022726.tif 000009
【０１８３】
１回のデータの読み出しにおいて、１ブロック内に１ビットの読み出しディスターブが発生する確率ｐ１（read）は、（式８）で示される。
【数８】
2012022726.tif 000010
【０１８４】
また、１ブロックに２ビット以上同時に、読み出しディスターブが発生し、誤動作になる確率ｐ２＋（read）は、（式９）で示される。
【数９】
2012022726.tif 000011
【０１８５】
データの書き込み及びデータの読み出しにおいて、同じ１ブロックに、１ビットの書き込み不良と１ビットの読み出しディスターブが発生して、誤動作になる確率は、（式１０）で示される。
【数１０】
2012022726.tif 000012
【０１８６】
以上の不良の確率から誤動作の確率の合計は、（式１１）で示すことができる。
【数１１】
2012022726.tif 000013
【０１８７】
図１７及び図１８を用いて説明したように、本構成例のＭＲＡＭにおけるデータの書き込みは、外部からのデータをＭＴＪ素子に書き込んだ後、書き込まれたデータが含む誤りを訂正したデータをＭＴＪ素子に再び書き込む場合、訂正データの書き込み電流のパルス幅を、外部からのデータの書き込み電流のパルス幅よりも長くする。これによって、１ビットの書き込み不良の確率ｐ１（write）は十分小さくされる。
【０１８８】
例えば、図１１を用いて説明したように、ある書き込み電流のパルス幅に対して、パルス幅が７％長くなると、書き込み不良の確率ｐ１（write）は１／１０程度に減少しパルス幅が１４％〜１５％程度長くなると、書き込み不良の確率ｐ１（write）は１／１００程度に減少する。
【０１８９】
したがって、同じブロックにおいて、書き込みによって１ビットの書き込み不良が発生し、且つ、読み出しによって１ビットの読み出しディスターブが発生することによって、誤動作になる確率は、１／１００に小さくできる。
【０１９０】
一般的なメモリ（例えば、ＤＲＡＭ）において、書き込み及び読み出し時における誤動作の発生のリスクを分散するため、不良の発生確率は、ｐ１（write）＝ｐ１（read）に設定される。
【０１９１】
しかし、（式１１）に示されるように、誤動作の発生確率は、１ビットの書き込み不良の発生確率ｐ１（write）と１ビットの読み出しディスターブの発生確率ｐ１（read）との和に相関関係を有するため、１ビットの書き込み不良の発生確率ｐ１（write）が十分小さくなれば、１ビットの読み出しディスターブの発生確率ｐ１（read）が、少し大きくなっても、ＭＲＡＭの動作に大きな悪影響はない。
【０１９２】
上述のように、本構成例のＭＲＡＭの動作例１において、訂正したデータを主メモリ（ＭＴＪ素子１）に書き戻す場合、書き込み電流のパルス幅を長くして、書き込み不良の発生確率ｐ１（write）を十分に小さくする。
【０１９３】
上述のように、書き込み電流のパルス幅をあるパルス幅より７％長くした場合、書き込み不良の発生確率ｐ１（write）は、１／１０に小さくなる。その結果、読み出しディスターブの発生確率ｐ１（read）は、１．９倍まで大きくできる。書き込み電流のパルス幅をあるパルス幅より１４％〜１５％長くした場合、書き込み不良の確率ｐ１（write）は、１／１００に小さくなる。その結果、読み出しディスターブの発生確率ｐ１（read）は、１．９９倍まで大きくできる。
【０１９４】
また、読み出しディスターブ発生確率ｐ１（read）を１．９倍にできることによって、図１７に示される読み出し電流Ｉｒの電流値ｉｒを、１．０２倍にできる。このため、主メモリ５０のメモリセルアレイ２０内において、ＭＴＪ素子の抵抗値（ＭＲ比）のばらつきが大きくなっても、比較的大きな読み出し電流ＩｒをＭＴＪ素子に供給できるため、読み出しのためのＳ／Ｎ比を十分大きく確保できる。このように、本構成例のＭＲＡＭの書き込み動作にともなって、データの読み出し時において、比較的大きな読み出し電流を用いることができるので、ＭＴＪ素子の抵抗値（ＭＲ比）が小さくとも精度のよいデータの読み出しを実行でき、また、読み出しに対するメモリセルアレイ２０内のＭＴＪ素子１のばらつきの許容度が大きくできる。
【０１９５】
また、書き込み不良の発生確率ｐ１（write）を、例えば、１／１００に小さくできることは、図１９に示されるように、メモリセルアレイ２０の複数のＭＴＪ素子１に対して、電流Ｉｃ，ｍｐのばらつきの許容度が広がることを意味する。これについて、図２０及び図２１を用いて、説明する。
【０１９６】
図２０及び図２１は、反転しきい値がＭＴＪ素子間でばらつく現象、及び、反転しきい値電流密度ＪｃがＭＴＪ素子間でばらつく現象を考慮した典型的な書き込み電流密度の設定例を、示している。
【０１９７】
図２０に示される例において、電流密度Ｊｃの素子間のばらつきが３％の場合において、データが、パルス幅が２０ｎｓｅｃの書き込み電流によって書き込まれる。図２０では、その書き込み電流の電流密度Ｊｗｒにおける書き込み不良の発生確率ｑ（write）の平均が、１×１０−１０になるように設定されている。
【０１９８】
図２０において、縦軸は確率を示し、横軸は電流密度を示している。また、図２０において、特性線ｆ１は電流密度Ｊｃの素子間のばらつきの正規分布を示し、特性線ＰＡは書き込み不良の発生確率を示し、特性線Ｓ１は正規分布ｆ１と発生確率ＰＡの積を示している。また、線Ｊｗｒは、設定された書き込み電流の電流密度を示している。
【０１９９】
図２１は、図２０に示される設定例に用いた書き込み電流のパルス幅が１４％増大された場合を、示している。図２１において、特性線ｆ２は電流密度Ｊｃの素子間のばらつきの正規分布を示し、特性線ＰＢは書き込み不良の発生確率を示し、特性線Ｓ２は正規分布ｆ２と発生確率ＰＢの積を示している。また、線Ｊｗｒは、設定された書き込み電流の電流密度を示している。
【０２００】
図２１において、電流密度Ｊｃの素子間のばらつきは５％である。図２１に示されるように、書き込み電流のパルス幅が１４％増大された場合、電流密度Ｊｃの素子間ばらつきが５％程度まで大きくなっても、正規分布ｆ１，ｆ２と発生確率ＰＡ，ＰＢとの積の値Ｓ１，Ｓ２を参照すると、図２１に示される不良の発生確率ｑ（write）の平均は、１×１０−１０程度になる。この値は、実質的に図２０に示される例と同じである。
【０２０１】
このように、本構成例のＭＲＡＭの動作例１（データの書き込み）によって、書き込み不良の発生確率ｐ１(write)を減少させることは、電流密度Ｊｃの素子間ばらつきの許容度が、３％から５％に増大することに相当する。
【０２０２】
尚、上述のように、外部から入力された書き込みデータは、主メモリ５０内に記憶されるとともに、バッファメモリ５４内にも一時的に記憶される。そのため、データの誤りの検出、訂正及びデータの書き戻しが実行されているサイクル中に、そのデータを読み出すためのコマンド信号ＣＭＤが入力された場合、バッファメモリ５４からそのデータが読み出される。それゆえ、訂正データを書き戻す工程によって、メモリの動作が遅くなることはない。それゆえ、磁気メモリ、例えば、ＭＲＡＭの高速動作を損なうことはない。
【０２０３】
以上のように、本実施形態に係る磁気メモリは、データの書き込み時、外部からのデータをパルス幅Ｔｗｐ１の書き込み電流を用いて、ＭＴＪ素子１に書き込む。そして、本実施形態に係る磁気メモリは、ＭＴＪ素子１に書き込まれたデータが、正常に書き込まれたか否か検証する。書き込まれたデータが誤りを含む場合、本実施形態に係る磁気メモリは、その誤りを訂正し、訂正したデータをＭＴＪ素子に再び書き込む。訂正されたデータは、パルス幅Ｔｗｐ１より長いパルス幅Ｔｗｐ２の書き込み電流Ｉｗ２を用いて、ＭＴＪ素子１に書き込まれる。これによって、データの書き込みのための時間が過剰に長くならずに、書き込み不良の発生確率が低減される。
【０２０４】
また、主メモリのメモリセルアレイ内の書き込み不良の発生が低減されるので、書き込み不良、読み出しディスターブ及びリテンション不良に起因する誤動作の発生も低減する。
【０２０５】
したがって、本発明の実施形態に係る磁気メモリによれば、その動作の信頼性を向上でき、且つ、動作特性を向上できる。
【０２０６】
（ｂ）  動作例２  
図２２を用いて、本実施形態の構成例に係る磁気メモリ（ＭＲＡＭ）の動作例２について説明する。ここでは、本構成例のＭＲＡＭの動作例２として、本構成例のＭＲＡＭに用いられるデータの読み出しについて、述べる。本動作例２において、ＭＲＡＭの回路構成は動作例１と共通であり、共通する構成及び動作（ステップ）については、必要に応じて説明する。
【０２０７】
図２２は、本構成例のＭＲＡＭのデータ読み出し動作を示すフローチャートである。
【０２０８】
まず、図２２に示されるように、ＭＲＡＭのある動作サイクルの中で、主メモリ５０内の選択セル（ＭＴＪ素子１）にデータが書き込まれる（ステップＳＴ１０）。このデータは、例えば、通常書き込み、つまり、図１７に示されるパルス幅Ｔｗｐ１の書き込み電流Ｉｗ１を用いて、書き込きこまれたデータである。但し、再書き込み、つまり、図１７に示されるパルス幅Ｔｗｐ２の書き込み電流Ｉｗ２を用いて書き込まれたデータであってもよい。
【０２０９】
データの読み出し時、読み出し命令を示すコマンド信号ＣＭＤ及び選択セルを示すアドレス信号ＡＤＲが、外部から入力される（ステップＳＴ１２）。コマンド信号ＣＭＤ及びアドレス信号ＡＤＲは、例えば、制御回路５１内に入力される。
【０２１０】
制御回路５１の制御に基づいて、データが、主メモリ５０内から出力される。本動作例では、読み出し命令によって主メモリ５０内から出力されるデータのことを、読み出しデータｒＤＴとよぶ。
【０２１１】
読み出しデータｒＤＴは、誤り検出訂正回路５２内の誤り検出部６２に入力される。誤り検出訂正信号（冗長ビット）を含む読み出しデータｒＤＴは、誤り検出部６２によって、誤りを含むか否かが検査される（ステップＳＴ１３）。
【０２１２】
読み出しデータｒＤＴに誤りが検出されなかった場合、データの訂正は実行されずに、読み出しデータｒＤＴは、復号化部６４に出力される。復号化部６４は、入力された読み出しデータｒＤＴを復号化する。復号化されたデータは、バッファメモリ５４に一時的に格納される。そして、データＤＴ２が、バッファメモリ５４からチップの外部に出力される（ステップＳＴ１４）。これによって、読み出されたデータに誤りが無かった場合において、データの読み出しは、終了する。
【０２１３】
一方、読み出しデータｒＤＴに誤りが検出された場合、その誤りが訂正される（ステップＳＴ１５）。読み出しデータｒＤＴは誤り訂正部６３に出力され、読み出しデータｒＤＴ内の誤りは、付加された冗長ビットに基づいて、誤り訂正部６３によって訂正される。
【０２１４】
訂正されたデータは、復号化部６４に出力され、復号化される。復号化された訂正データｃＤＴは、バッファメモリ５４を経由して、出力データＤＴ２として、外部へ出力される（ステップＳＴ１６）。訂正データｃＤＴは、外部に出力されるのと同時に、バッファメモリ５４に一時的に記憶される（ステップＳＴ１７）。訂正データｃＤＴの再書き込み中に、そのデータに対する読み出し命令が入力された場合、バッファメモリ５４に記憶されたデータが、外部へ出力される。
【０２１５】
本動作例のデータの読み出し時において、訂正データｃＤＴが外部へ出力されるのとともに、その訂正データｃＤＴが主メモリ５０に書き戻される（ステップＳＴ１８）。  
訂正データｃＤＴが主メモリ５０に書き戻される場合、例えば、図１７に示される書き込み電流Ｉｗ２のように、再書き込みに用いられる書き込み電流Ｉｗ２のパルス幅Ｔｗｐ２は、通常書き込みに用いられる書き込み電流Ｉｗ１のパルス幅Ｔｗｐ１よりも、長くされる。この書き込み電流Ｉｗ２によって、訂正データｃＤＴがＭＴＪ素子１に再書き込みされる。
【０２１６】
書き戻されたデータｃＤＴは、主メモリ５０（ＭＴＪ素子１）から誤り検出部６２に再び読み出され、誤りがあるか否か検査される（ステップＳＴ１９）。
【０２１７】
書き戻された訂正データｃＤＴが誤りを含まない場合、データの読み出し時におけるデータの訂正及びデータの再書き込みは、終了する。
【０２１８】
書き戻されたデータｃＤＴが再び誤りを含む場合、そのデータの誤りを再度訂正（ステップＳＴ２０）し、その訂正データは、主メモリ５０に再び書き込まれる。２回目の再書き込みには、１回目の再書き込みよりもさらに電流パルス幅を長くすることが、効果的である。例えば、データの訂正及び再書き込みのループ（ＳＴ１８〜ＳＴ２０）の回数を重ねるごとに、書き込み電流のパルス幅を１．１倍ずつ大きくされる。但し、１回目の再書き込みと２回目以降の再書き込みとで、同じパルス幅の書き込み電流を用いてもよい。
【０２１９】
この再書き込みのループ（ＳＴ１８〜ＳＴ２０）中に訂正されたデータは、例えば、バッファメモリ５４に一時的に格納される（ステップＳＴ１７）。格納されたデータは、再書き込みのループのたびに書き改められる。
【０２２０】
そして、書き戻されるデータに誤りが無くなった場合、データの再書き込みが終了する。
【０２２１】
再書き込みのループ（ＳＴ１８〜ＳＴ２０）は、データの誤りが無くなるまで続けてもよいし、再書き込みのループは、所定の回数（例えば、１０回）までに制限してもよい。例えば、再書き込みを同じアドレス（ＭＴＪ素子１）に対して１０回行っても、誤りがなくならない場合、主メモリ５０内の別のアドレスへ書き込むように、アドレスを変更することが、メモリセルアレイ内のデータの不良を低減するために効果的である。
【０２２２】
＜動作例２の効果＞  
以下、本実施形態の磁気メモリ（ＭＲＡＭ）の動作例２の効果について、説明する。尚、動作例１で述べた効果と同様の効果については、ここでの説明は省略する。
【０２２３】
本動作例２で述べたＭＲＡＭのデータの読み出しが、ＭＲＡＭに適用されることによって、通常書込み時に発生した書き込み不良を、データの読み出し時に訂正することができる。
【０２２４】
また、本動作例２のデータの読み出しにおいて、再書き込みに用いられる書き込み電流のパルス幅が通常書き込み時に用いられる書き込み電流のパルス幅より長くされることによって、再書き込みによるデータの書き戻し時に発生する書き込み不良を、低減できる。
【０２２５】
さらに、本動作例２のデータの読み出しは、熱擾乱によるデータ保持時に発生するリテンション不良に対しても、有効である。
【０２２６】
つまり、本動作例２のデータ読み出しによれば、読出しディスターブ不良、書き込み不良、リテンション不良、などで生じた不良ビットを、早い段階で正しいビットに修正できる。その結果、１ブロック中に２ビット以上の誤りが発生し、誤り検出訂正技術を用いても、データの誤りを訂正できない誤動作の発生確率を減少することができる。
【０２２７】
また、上述の動作例１と同様に、訂正されたデータの再書き込み時のみ、書き込み電流のパルス幅を長くすることに起因してＭＲＡＭの高速動作が損なわれることはない。
【０２２８】
したがって、本発明の実施形態に係る磁気メモリによれば、その動作の信頼性を向上でき、且つ、動作特性を向上できる。
【０２２９】
［構成例２］
図２３乃至図３０を参照して、本発明の実施形態に係る磁気メモリ（例えば、ＭＲＡＭ）の構成例２について、述べる。尚、本構成例２において、基本例及び構成例１で述べた構成と同じ構成については、共通の符号を付し、詳細な説明は省略する。
【０２３０】
本構成例２の磁気メモリは、上述の構成例１の磁気メモリと同様に、主メモリ５０に一度書き込まれたデータ（第１のデータ）に不良（誤り）を検出した場合、その不良が訂正されたデータ（第２のデータ）を、前回の書き込みに用いられた書き込み電流（第１の書き込み電流）のパルス幅より長いパルス幅を有する書き込み電流（第２の書き込み電流）を用いて、主メモリ５０に書き戻す。
【０２３１】
但し、構成例２の磁気メモリは、書き込まれたデータの誤り検出及び訂正を、誤り検出訂正符号を用いずに実行する点が、上述の構成例１の磁気メモリと相違する。
【０２３２】
（１）  回路  
図２３を用いて、構成例２の磁気メモリ（ＭＲＡＭ）の回路構成について述べる。
【０２３３】
図２３に示されるように、本構成例のＭＲＡＭの回路構成は、例えば、誤り検出訂正回路（不良検出回路）５２内に比較部６９が設けられる点が、構成例１の磁気メモリの回路構成と異なる。
【０２３４】
構成例２において、書き込まれたデータに含まれる誤りの検出及び訂正を、誤り検出訂正符号を用いずに、実行される。
【０２３５】
そのため、本構成例のＭＲＡＭにおいて、書き込みを示すコマンド信号（以下、書き込みコマンドとよぶ）に対応して外部から入力されたデータＤＴ１は、誤り検出訂正符号が追加されずに、バッファメモリ５４を経由して、主メモリ５０に入力される。
【０２３６】
そして、本構成例２において、制御回路５１は、誤り訂正検出正符号が付されないデータが、通常書き込みによって、主メモリ５０内の所定のアドレスに書き込まれるように、主メモリ５０の動作を制御する。
【０２３７】
つまり、外部からのデータＤＴ１は、符号化されずに、パルス幅Ｔｗｐ１の書き込み電流Ｉｗ１をアドレスが示すＭＴＪ素子に流すことによって、書き込まれる。
【０２３８】
尚、誤り検出訂正符号がデータに付加されなければ、バッファメモリ５４からのデータは、誤り検出訂正回路５２内部を経由して主メモリ５０に入力されてもよいし、他の経路で、主メモリ５０に入力されてもよい。
【０２３９】
図２３において、通常書き込み信号ＮＷＣは、誤り検出訂正回路５２から出力される。例えば、誤り検出訂正回路５２は、外部からのデータがその回路５２の内部に入力されたのを検知して、通常書き込み信号ＮＷＣを書き込みパルス幅制御回路５３へ出力する。但し、通常書き込み信号ＮＷＣは、書き込みコマンドが入力された際に、制御回路５１から書き込みパルス幅制御回路５３へ出力されてもよい。或いは、通常書き込み信号ＮＷＣは、バッファメモリ５４がデータＤＴ１を主メモリ５０に出力する際に、そのデータの出力と同期して、バッファメモリ５４から書き込みパルス幅制御回路５３に出力されてもよい。
【０２４０】
そして、外部からのデータＤＴ１が主メモリ５０に書き込まれた後、誤り検出訂正回路５２は、バッファメモリ５４に一時的に保持された外部からの入力データとその入力データに対応する主メモリ５０内に書き込まれたデータとが一致するか否かを比較（検証）する。つまり、誤り検出訂正回路５２が比較する２つのデータは、主メモリ５０に書き込まれる前のデータＤＴ１と、通常書き込み又は再書き込みによって主メモリ５０に書き込まれたデータを主メモリから読み出したデータｗＤＴ１である。
【０２４１】
例えば、誤り検出訂正回路５２内に、比較部６９が設けられ、この比較部６９が、バッファメモリ５４が保持する外部からのデータＤＴ１と主メモリ５０から読み出されたデータｗＤＴ１とを比較する。比較部６９は、入力されたデータと書き込まれたデータとを比較する機能に加え、例えば、バッファメモリ５４に保持されたデータと主メモリ５０に書き込まれたデータとを読み出す機能を有する。
【０２４２】
上述のように、バッファメモリ５４は、主メモリより高い信頼性でデータを保持（記憶）する。そのため、本構成例のＭＲＡＭは、バッファメモリ５４に保持されたデータを、外部から入力されたデータと一致するデータ（不良を含まないデータ）とみなす。尚、構成例２において、不良を含まないデータとは、主メモリ５０に書き込まれたデータに比較して、不良（誤り）の発生確率が十分低く、信頼性の高いデータであることを意味する。不良を含まないデータは、構成例１の訂正データに相当する。
【０２４３】
バッファメモリ５４が保持するデータＤＴ１と主メモリ５０に書き込まれたデータｗＤＴ１とが一致しないと誤り検出訂正回路５２（比較部６９）によって判定された場合、制御信号（再書き込み信号）ＲＷＣを、書き込みパルス幅制御回路５３に出力する。そして、制御回路５１及び書き込みパルス幅制御回路５３の制御下において、書き込み不良の検出に用いられたバッファメモリ５４内のデータＤＴ１が、不良を含まないデータ（第２のデータ）として、前回のデータの書き込み（通常書き込み又は再書き込み）の書き込み電流のパルス幅Ｔｗｐ１より長いパルス幅Ｔｗｐ２を有する書き込み電流を用いて、主メモリ５０内のＭＴＪ素子１に書き込まれる。このように、主メモリ５０から読み出されたデータに書き込み不良があった場合、バッファメモリ５４が保持するデータと主メモリ５０から読み出されたデータとを置き換えて、データを訂正（書き直し）する。
【０２４４】
バッファメモリ５４が保持するデータＤＴ１と主メモリ５０に書き込まれたデータが一致すると比較部６９によって判定された場合、主メモリ５０に書き込まれたデータは、書き込み不良を含まないデータであるとして、制御回路５１は入力された書き込みコマンドに対応する書き込み動作を終了する。
【０２４５】
本構成例２のＭＲＡＭにおいて、誤り検出訂正符号がデータに付加されないので、その読み出し動作は、主メモリ５０内から読み出されたデータＲＤＴが、復号化処理などの適用されたＥＣＣ技術のための処理なしに、バッファメモリ５４に転送される。そして、データＲＤＴがバッファメモリ５４に保持され、データＤＴ２として、外部へ出力される。
【０２４６】
尚、バッファメモリ５４内に、書き込み動作のための書き込みバッファ５４Ａと読み出し動作のための読み出しバッファ５４Ｂとが、それぞれ設けられてもよい。これによって、データの再書き込みが実行されている期間中に、そのデータに対する読み出しが外部から要求されても、例えば、並列処理によって、データの書き込み／読み出しを、効率的に実行できる。特に、本構成例では、書き込み不良の検出に、バッファメモリ５４に保持されたデータが用いられるので、２つのバッファ領域５４Ａ，５４Ｂを有するバッファメモリ５４の構成は、効果的である。
【０２４７】
本構成例２のＭＲＡＭにおいて、主メモリ５０に書き込まれたデータが書き込み不良（誤り）を含むか否か検証するために、バッファメモリ５４は、外部からのデータが入力されてから書き込み動作が終了するまでの期間、主メモリ５０に書き込むデータに対応する外部からのデータを保持することが必要である。  
これに対して、構成例１（図１４参照）の磁気メモリにおいて、構成例１の磁気メモリは、データに付加された誤り検出訂正符号を用いて、主メモリ５０に書き込まれたデータの誤り（不良）を検出及び訂正する。そのため、構成例１の磁気メモリにおいて、データの誤りの検出／訂正に用いるために、バッファメモリ５４が、その誤り検出／訂正されるデータに対応する外部からのデータを保持している必要はない。
【０２４８】
構成例２において、１つの書き込みコマンドに対して、１回の通常書き込みのみが実行される動作パターンと、１回の通常書き込みと１回以上の再書き込みが実行される動作パターンがある。本構成例において、書き込みコマンドが入力されてから、２つの動作パターンのうちいずれか一方が実行され、その書き込みが終了するまでの動作サイクルを、書き込みイベントとよぶ。
【０２４９】
構成例２において、バッファメモリに保持されたデータと主メモリに保持されたデータとの比較によって検出されたデータの誤りのことを、書き込み不良とよぶ。
【０２５０】
図２３に示される例では、比較部６９が誤り検出訂正回路５２内に設けられている。但し、比較部６９は、誤り検出訂正回路５２の外部に設けられてもよい。また、比較部６９を新たに設ける代わりに、図１４に示される誤り検出部６２及び誤り訂正部６３が、比較部６９と実質的に同じ機能をそれぞれ有し、バッファメモリ５４と主メモリ５０との間で、比較部６９と実質的に同じ動作を実行してもよい。
【０２５１】
本構成例２の磁気メモリ（ＭＲＡＭ）は、１つの書き込みイベント中に、誤り検出訂正符号を用いずに、データの書き込み不良の検出と訂正を実行できる。
【０２５２】
つまり、本構成例２のＭＲＡＭは、主メモリに記憶されるデータに誤り検出訂正符号を付加する（符号化する）時間、誤り検出訂正符号を含むデータを復号化する時間、或いは、データの置換のための時間など、ＥＣＣ技術に要する時間を削減できる。そのため、本構成例２のＭＲＡＭは、構成例１のＭＲＡＭに比較して、１つの動作サイクルを短縮できる。
【０２５３】
また、ＥＣＣ技術を用いてメモリの信頼性を向上させた場合、誤り検出訂正符号が付加されたデータは、その転送レートが低下する傾向がある。  
これに対して、本構成例のＭＲＡＭにおいて、誤り検出訂正符号を付加せずに、主メモリ５０に記憶されたデータの書き込み不良（誤り）を検出及び訂正できる。それゆえ、本構成例のＭＲＡＭは、高い信頼性を有するデータを、比較的早い転送レートで外部へ出力できる。
【０２５４】
さらに、本構成例２のＭＲＡＭによれば、バッファメモリ５４に保持されたデータと主メモリ５０に書き込まれたデータとの間に３個以上の不一致がある、つまり、３個以上の書き込み不良が発生しても、データを訂正できる。
【０２５５】
以上のように、本発明の実施形態の構成例２の磁気メモリは、構成例１の磁気メモリと同様に動作の信頼性を向上できるとともに、構成例１の磁気メモリに比較して、高速に動作できる。
【０２５６】
（２）  動作  
図２４を用いて、本構成例２の磁気メモリ（ＭＲＡＭ）の書き込み動作について説明する。図２４は、構成例２のＭＲＡＭの書き込み動作例を示すフローチャートである。尚、ここでは、構成例１のＭＲＡＭと実質的に同じ動作及び構成について、必要に応じて説明する。
【０２５７】
図２４に示されるように、データの書き込み時、書き込みを示すコマンド信号ＣＭＤ、アドレス信号、データＤＴ１が外部からＭＲＡＭ内に入力される（ステップＳＴ１）。
【０２５８】
データＤＴ１は、書き込み動作（書き込みイベント）が終了するまでの間、バッファメモリ５４内に記憶される（ステップＳＴ２Ｂ’）。
【０２５９】
バッファメモリ５４内に記憶されたデータＤＴ１は、制御回路５１の制御によって、バッファメモリ５４から主メモリ５０に転送される。データＤＴ１が主メモリ５０に入力されるのに伴って、通常書き込み信号ＮＷＣが、書き込みパルス幅制御回路５３に入力される。そして、主メモリ５０に転送されたデータは、通常書き込みによって、アドレス信号ＡＤＲが示す主メモリ５０内の所定の領域に、書き込まれる（ステップ２Ａ’）。通常書き込みに用いられる書き込み電流Ｉｗ１は、所定の書き込みパルス幅Ｔｗｐ１（≧ｔ０）を有する。
【０２６０】
本構成例のＭＲＡＭにおいて、外部からのデータＤＴ１が主メモリ５０に転送される際に、そのデータＤＴ１に、誤り検出訂正符号は付加されない。それゆえ、本構成例において、入力された書き込みコマンドに対応して主メモリ５０に書き込まれるデータＤＴ１は、誤り検出訂正符号を含まないデータである。
【０２６１】
誤り検出訂正符号を含まないデータＤＴ１が、通常書き込みを用いて主メモリ５０内に書き込まれた後、その書き込まれたデータＤＴ１が、書き込み不良（誤り）を含むか否か、ベリファイ動作によって検証される。
【０２６２】
本構成例２のＭＲＡＭにおいて、主メモリ５０に書き込まれたデータが誤り検出訂正符号を含まないため、このベリファイ動作は、主メモリ５０（ＭＴＪ素子１）に書き込まれたデータとバッファメモリ５４に保持されているデータとを比較することによって、実行される。
【０２６３】
主メモリ５０内に書き込まれたデータｗＤＴ１が、ベリファイデータとして、誤り検出訂正回路（不良検出回路）５４内に読み出される。これとともに、ベリファイデータに対応するバッファメモリ５４内のデータＤＴ１が、誤り検出訂正回路５４内に読み出される。ベリファイデータｗＤＴ１及びデータＤＴ１は、比較部６９（又は誤り検出部６２）内に入力される。
【０２６４】
比較部６９は、ベリファイデータとデータＤＴ１とを比較することによって、主メモリ５０に書き込まれたデータが書き込み不良を含むか否か検証する（ステップＳＴ３’）。この書き込み不良の検証において、バッファメモリ５０から読み出されたデータＤＴ１が、誤りがないデータ（信頼性が高いデータ）として、扱われる。
【０２６５】
ベリファイデータｗＤＴ１が書き込み不良を含まない場合、書き込みコマンドに対応した入力データの書き込みは、終了する（ステップＳＴ７）。この場合、その書き込みコマンドに対応した書き込みイベントは、通常書き込みのみで終了する。
【０２６６】
ベリファイデータに書き込み不良が検出された場合、データの再書き込みが実行される（ステップＳＴ６’）。構成例２のＭＲＡＭにおいて、データの再書き込みは、以下のように実行される。
【０２６７】
ベリファイ動作に用いられたバッファメモリ５４からのデータＤＴ１が、不良（誤り）を含まないデータ（第２のデータ）として、誤り検出訂正回路５２から主メモリ５０に転送される。例えば、データＤＴ１は、バッファメモリ５４から主メモリ５０へ、再び出力される。尚、再書き込みのためのデータは、比較部６９（又は、誤り訂正部６３）から主メモリ５０へ出力されてもよい。
【０２６８】
データＤＴ１の再転送とともに、再書き込み信号ＲＷＣが、誤り検出訂正回路５２（比較部６９又は誤り訂正部６３）から書き込みパルス制御回路５３へ出力される。
【０２６９】
これによって、訂正データとしてのバッファメモリからのデータＤＴ１が、通常書き込みの書き込み電流Ｉｗ１のパルス幅Ｔｗｐ１よりも長いパルス幅Ｔｗｐ２を有する書き込み電流Ｉｗ２を用いて、所定のＭＴＪ素子に、再書き込みされる。
【０２７０】
再書き込みに用いられる書き込み電流Ｉｗ２の書き込みパルス幅Ｔｗｐ２は、例えば、前の書き込みに用いられた電流のパルス幅（例えば、パルス幅Ｔｗｐ１）の３倍になるように、パルス幅制御信号ｐｗｃｓによって、制御される。但し、再書き込みの書き込みパルス幅Ｔｗｐ２の増加率Ｘは、通常書き込みの書き込みパルス幅Ｔｗｐ１の３倍に限定されず、例えば、パルス幅Ｔｗｐ１の１．０７倍から５倍程度の範囲内でもよい。
【０２７１】
このように、構成例２のＭＲＡＭにおいても、上述の構成例１のＭＲＡＭと同様に、２つの制御信号ＮＷＣ，ＲＷＣによって、データの書き込みが、通常書き込みであるか再書き込みであるか、判別される。これによって、書き込み電流のパルス幅を、所定のパルス幅Ｔｗｐ１に設定するか、そのパルス幅Ｔｗｐ１よりも長いパルス幅Ｔｗｐ２に設定するか、制御される。
【０２７２】
再書き込みによる書き込み不良を含むデータの書き直しは、１回に制限し、データの書き込みを終了してもよい（ステップＳＴ７）。  
但し、図２４に示されるように、主メモリ５０に再書き込みされたデータ（再書き込みデータ）に対して、再びベリファイ動作が実行されてもよい。この場合、再書き込みデータが主メモリ５０から誤り検出訂正回路５２へ出力され、上記と同様に、再書き込みデータとバッファメモリ５４に記憶されたデータＤＴ１とが一致しているか否か比較される。再書き込みデータに書き込み不良が検出された場合、書き込みパルス幅をさらに長くして、バッファメモリのデータが再書き込みされる。再書き込みデータに書き込み不良が検出されない場合、データの書き込みが終了する（ステップＳＴ７）。
【０２７３】
通常書き込みによって主メモリ５０に書き込まれたデータに不良（誤り）が検出された場合、入力された書き込みコマンドに対応した書き込みイベントは、１回の通常書き込みと少なくとも１回の再書き込みで終了する。
【０２７４】
尚、本構成例においても、上記のデータの通常／再書き込み及び検証中に、その処理中のデータに対して、読み出し命令が入力された場合、そのデータに対応するバッファメモリ５４に記憶されたデータが、外部へ読み出される（ステップＳＴ２Ｘ）。
【０２７５】
また、本構成例のＭＲＡＭにおいても、再書き込みされるデータは、通常書き込みと再書き込みとで同じアドレス（ＭＴＪ素子）に書き込まれてもよいし、異なるアドレスに書き込まれてもよい。複数回の再書き込みを繰り返しても、主メモリ５０に書き込まれたデータの書き込み不良がなくならない場合、ＭＴＪ素子自体に欠陥があるとして、主メモリ５０内の別のアドレスへデータを記憶するように、変更することが好ましい。
【０２７６】
尚、本構成例２のＭＲＡＭの読み出し動作は、外部から入力された読み出しを示すコマンド信号に基づいて、実行される。そして、要求されたデータＤＴ２は、データに対する誤りの検出及び訂正なしに、アドレス信号が示すＭＴＪ素子から、バッファメモリ５４（読み出しバッファ５４Ｂ）を経由して、外部へ出力される。
【０２７７】
＜本構成例２の効果＞  
図２５乃至図３０を用いて、本実施形態の磁気メモリ（ＭＲＡＭ）の構成例２の効果について、説明する。
【０２７８】
ここでは、１回の書き込みイベント中の再書き込みの回数を１回に制限する場合について、述べる。ここで述べられる構成例２の磁気メモリ（ＭＲＡＭ）は、ＥＣＣ技術を用いず、且つ、１回の書き込みイベントにおいて、再書き込みが２回以上実行されなくとも、動作の信頼性と動作の高速性とを実現できる。
【０２７９】
図２５乃至図３０において、１回の書き込みイベントにおいて、１回目のデータの書き込み（通常書き込み）で書き込み不良が生じる確率（書き込み不良発生確率）を“ｐｗ１”で示し、１回目の書き込みに続く２回目のデータの書き込み（再書き込み）における書き込み不良発生確率を“ｐｗ２”で示す。  
ここでは、１回の書き込みイベントにおける再書き込みの回数は、１回に制限されている。そのため、１回の書き込みイベントにおいて誤動作が発生する確率（以下、誤動作発生確率とよぶ）は、“ｐｗ１×ｐｗ２”で示される。確率ｐｗ１の値と確率ｐｗ２の値とを等しくする必要はない。
【０２８０】
後述のように、１度の書き込みイベントにおいて再書き込みの回数を１回に制限した場合、磁気メモリ（例えば、ＭＲＡＭ）に要求される仕様（スペック）に応じて、通常書き込みに用いられる書き込み電流Ｉｗ１のパルス幅Ｔｗｐ１を許容範囲内で小さくし、再書き込みに用いられる書き込み電流Ｉｗ２のパルス幅Ｔｗｐ２を通常書き込みのパルス幅Ｔｗｐ１より長くすることによって、メモリの書き込み動作（書き込みイベント）に要する平均時間が短縮され、メモリの性能が向上する。この場合、通常書き込みにおける書き込み不良発生確率ｐｗ１は、再書き込みにおける書き込み不良発生確率ｐｗ２より大きくなる。
【０２８１】
以下では、１ＧビットのＭＲＡＭの仕様として、書き込み不良による誤動作を、１０００ＦＩＴ／チップ以下に抑制する場合を想定する。ここで、１ＦＩＴ／チップは、１つのＬＳＩ（メモリ）において、１０億時間に１回の誤動作が発生することを表す。１０００ＦＩＴ／チップは、１回の書き込みイベントにおける書き込み不良に起因する誤動作の発生確率が、８．７×１０−２０である場合に相当する。
【０２８２】
図２５は、誤動作発生確率ｐｗ１×ｐｗ２が８．７×１０−２０になる場合における書き込み不良発生確率ｐｗ２の書き込み不良発生確率ｐｗ１に対する依存性を示すグラフである。図２５のグラフの横軸は、通常書き込みの書き込み不良発生確率ｐｗ１に対応し、図２５のグラフの縦軸は再書き込みの書き込み不良発生確率ｐｗ２に対応する。
【０２８３】
図２５に示されるように、上記の誤動作発生確率を満たすために、通常書き込みの書き込み不良発生確率ｐｗ１が大きくなると、再書き込みの書き込み不良発生確率ｐｗ２は小さくする必要がある。
【０２８４】
再書き込みに用いられる書き込み電流Ｉｗ２の電流値は、図２に示されるように、通常書き込みに用いられる書き込み電流Ｉｗ１の電流値に等しいことが好ましい。これは、上述のように、回路の制約やバックホッピングの抑制を鑑みると、各書き込み電流Ｉｗ１，Ｉｗ２で同じ上限値としたほうが、誤動作の発生確率を低減できるためである。以下では、書き込み電流Ｉｗ２の電流値が、書き込み電流Ｉｗ１の電流値に等しい場合を想定する。
【０２８５】
図２６は、本構成例のＭＲＡＭが１０００ＦＩＴ／チップ以下を満たす場合において、書き込み不良発生確率ｐｗ１に対する書き込み電流Ｉｗ１，Ｉｗ２の書き込みパルス幅Ｔｗｐ１，Ｔｗｐ２の変化を示すグラフである。図２６のグラフ横軸は、書き込み不良発生確率ｐｗ１に対応し、図２６のグラフの縦軸は、書き込みパルス幅Ｔｗｐ１，Ｔｗｐ２（単位：ｎｓｅｃ）に対応している。
【０２８６】
図２６において、黒塗りのプロットに対応する特性線（実線）Ｅ１は、通常書き込みの書き込み電流Ｉｗ１のパルス幅Ｔｗｐ１を示している。図２６において、白抜きのプロットに対応する特性線（破線）Ｅ２は、再書き込みの書き込み電流Ｉｗ２のパルス幅Ｔｗｐ２を示している。
【０２８７】
図２６に示される例では、各書き込みパルス幅Ｔｗｐ１，Ｔｗｐ２が３０ｎｓｅｃに設定された場合に、各書き込み不良発生確率ｐｗ１，ｐｗ２が２．９５×１０−１０になるように、各書き込み電流Ｉｗ１，Ｉｗ２の電流密度Ｊｗ１／Ｊｃ（ｍｉｄ，３０ｎｓ），Ｊｗ２／Ｊｃ（ｍｉｄ，３０ｎｓ）が１．２８の一定値に設定されている。また、誤動作発生確率ｐｗ１×ｐｗ２は、１０００Ｆｉｔ／チップ以下の仕様を満たすように、一定値（８．７×１０−２０）に設定されている。
【０２８８】
以下では、図５のシミュレーションに用いられたＭＴＪ素子の特性を想定し、メモリセルアレイ内における素子間のばらつきは考慮しない。
【０２８９】
図２６に示されるように、通常書き込み（特性線Ｅ１）のパルス幅Ｔｗｐ１が小さくなるにしたがって、通常書き込みの書き込み不良発生確率ｐｗ１は増大する。そのため、誤動作の発生を抑制するには、再書き込み（特性線Ｅ２）のパルス幅Ｔｗｐ２を大きくする必要がある。
【０２９０】
構成例２のＭＲＡＭにおいて、再書き込みは、通常書き込みで書き込み不良が発生した場合にのみ、実行される。ここでは、１度の書き込みイベントにおいて、再書き込みは、１回だけ実行される。そのため、１度の書き込みイベントにおける書き込みパルス幅の平均値（以下、平均書き込みパルス幅Ｔｗｐ＿ａｖｅとよぶ）は、“Ｔｗｐ１＋ｐｗ１×Ｔｗｐ２”で表すことができる。
【０２９１】
この平均書き込みパルス幅を示す式（Ｔｗｐ１＋ｐｗ１×Ｔｗｐ２）に基づくと、再書き込みによって発生する時間は書き込みパルス幅Ｔｗｐ２と確率ｐｗ１の積で示されるため、書き込みパルス幅Ｔｗｐ２が長くなっても、再書き込みの平均書き込みパルス幅Ｔｗｐ＿ａｖｅに対する影響は、小さい。
【０２９２】
また、１度の書き込み動作において、書き込み回路の動作が占有される時間（以下、書き込み回路ビジー時間Ｔｗ＿ｂｕｓｙとよぶ）は、配線の選択や配線の充電に要する時間を考慮すると、書き込みパルス幅よりも長くなる。それゆえ、書き込み回路ビジー時間Ｔｗ＿ｂｕｓｙは、（Ｔｗｐ１＋α）＋ｐｗ１×（Ｔｗｐ２＋α）で表される。“α”は、配線の選択、配線の充電、或いは、配線遅延によって生じる遅延時間である。遅延時間αは、例えば、２０ｎｓｅｃ程度である。
【０２９３】
図２７は、通常書き込みの書き込み不良発生確率ｐｗ１を関数とした場合における、平均書き込みパルス幅Ｔｗ＿ａｖｅ及び書き込み回路ビジー時間Ｔｗ＿ｂｕｓｙの変化を示している。図２７の縦軸は、平均書き込みパルス幅Ｔｗｐ＿ａｖｅ及び書き込み回路ビジー時間Ｔｗ＿ｂｕｓｙ（単位：ｎｓｅｃ）を示し、図２７の横軸は、通常書き込みの書き込み不良発生確率ｐｗ１を示している
図２７において、黒塗りの丸に対応している特性線（破線）Ｆ１は、平均書き込みパルス幅Ｔｗｐ＿ａｖｅを示している。図２７において、白抜きの丸に対応している特性線（実線）Ｆ２は、書き込み回路ビジー時間Ｔｗ＿ｂｕｓｙの変化を示している。
【０２９４】
図２７に示されるように、誤動作発生確率ｐｗ１×ｐｗ２が一定値（例えば、８．７×１０−２０）になるように、各書き込み不良発生確率ｐｗ１，ｐｗ２が設定されている場合、通常書き込みの書き込み不良発生確率ｐｗ１が大きくなっても、平均書き込みパルス幅Ｔｗ＿ａｖｅ及び書き込み回路ビジー時間Ｔｗ＿ｂｕｓｙは、減少する。
【０２９５】
図２６及び図２７に示されるように、通常書き込みの書き込み不良発生確率ｐｗ１が高くなっても、通常書き込みの書き込みパルス幅Ｔｗｐ１を短くし、再書き込みの書き込み不良発生確率ｐｗ２を低くすることによって、平均書き込みパルス幅Ｔｗｐ＿ａｖｅを小さくできる。  
これは、上述のように、再書き込みは、通常書き込みにおいて書き込み不良が発生した場合にのみ実行されるため、再書き込みの回数は書き込み不良発生確率ｐｗ１に依存する。そして、複数回の書き込みイベントを考慮すると、書き込み不良発生確率ｐｗ２の低減のために書き込みパルス幅Ｔｗｐ２が大きくなっても、再書き込みの書き込みパルス幅Ｔｗｐ２の増大がＭＲＡＭの書き込みイベントに要する時間に及ぼす影響は小さいため、平均書き込みパルス幅Ｔｗｐ＿ａｖｅは小さくなる。
【０２９６】
したがって、要求される動作の信頼性の範囲内で、通常書き込みの書き込みパルス幅Ｔｗｐ１を小さくし、再書き込みの書き込みパルス幅Ｔｗｐ２を大きくすることによって、本構成例の磁気メモリは、ＥＣＣ技術を用いずとも、メモリの信頼性が確保されるとともに、メモリの性能（動作速度）が向上する。
【０２９７】
例えば、通常書き込みに用いられる書き込み電流Ｉｗ１のパルス幅Ｔｗｐ１が、１５ｎｓｅｃに設定された場合、通常書き込みにおける書き込み不良発生確率ｐｗ１は、７×１０−４である。そして、誤動作発生確率ｐｗ１×ｐｗ２が８．７×１０−２０に設定される条件下において、図２５乃至図２７に示される例では、再書き込みに用いられる書き込み電流Ｉｗ２のパルス幅Ｔｗｐ２は、４５ｎｓｅｃになる。この場合、書き込みパルス幅Ｔｗｐ１と書き込みパルス幅Ｔｗｐ２との関係は、“Ｔｗｐ２＝Ｘ×Ｔｗｐ１＝３×Ｔｗｐ１”で示される。
【０２９８】
それゆえ、例えば、図２６及び図２７において、再書き込み時の書き込みパルス幅Ｔｗｐ２が、通常書き込みの書き込みパルス幅Ｔｗｐ１の３倍程度に設定されることで、その平均書き込みパルス幅Ｔｗｐ＿ａｖｅは、通常書き込みと再書き込みとで書き込みパルス幅Ｔｗｐ１，Ｔｗｐ２が同じ場合（ここでは、３０ｎｓｅｃ）の平均書き込みパルス幅に比較して、５割程度減少する。このように、本構成例２のＭＲＡＭにおいて、メモリの書き込み動作が高速化される。
【０２９９】
また、再書き込みに用いられる書き込み電流Ｉｗ２の電流値は、例えば、通常書き込みに用いられる書き込み電流Ｉｗ１の電流値と同じに設定されている。この場合、平均書き込みパルス幅Ｔｗｐ＿ａｖｅの減少により、書き込み動作（書き込みイベント）に要する時間も減少するため、メモリの書き込み動作時における消費電力が、５割程度削減される。したがって、本構成例２のＭＲＡＭは、メモリの書き込み動作時の消費電力の削減に、貢献できる。
【０３００】
図２７に示されるように、書き込みパルス幅Ｔｗｐ２が書き込みパルス幅Ｔｗｐ１の３倍の値に設定された場合（ｐｗ１＝７×１０−４の場合）、書き込み回路ビジー時間Ｔｗ＿ｂｕｓｙは、書き込みパルス幅Ｔｗｐ１と書き込みパルス幅Ｔｗｐ２が同じ値に設定された場合（ｘ＝１の場合）に比較して、３割程度削減される。この結果として、ＭＲＡＭに用いられる書き込み回路の並列度は、３割程度削減される。本構成例で述べられる並列度とは、ＭＲＡＭなどのメモリにおいて、動作を並列処理できる度数、又は、並列処理時に同時に駆動される素子数／回路数のことである。
【０３０１】
図２８は、ＭＲＡＭにおける書き込み回路の並列度を模式的に示した図である。ここでは、ＭＲＡＭがＤＲＡＭのＬＰＤＤＲ２規格（例えば、ｆ〜４００ＭＨｚ）で動作する場合を考える。
【０３０２】
図２８に示されるケース１のＭＲＡＭにおいて、１回目の書き込みのための書き込みパルス幅Ｔｗｐ１は、３０ｎｓｅｃに設定され、データを書き戻すための書き込みパルス幅Ｔｗｐ２は３０ｎｓｅｃに設定される。尚、ここでは、１回目の書き込みパルス幅Ｔｗｐ１と２回目の書き込みパルス幅Ｔｗｐ２が同じ値に設定されているが、説明の明確化のため、１回目の書き込みを通常書き込みとよび、２回目の書き込みを再書き込みとよぶ。
【０３０３】
図２８に示されるケース２のＭＲＡＭ（構成例２）において、通常書き込みの書き込みパルス幅Ｔｗｐ１は１５ｎｓｅｃに設定され、再書き込みの書き込みパルス幅Ｔｗｐ２は４５ｎｓｅｃに設定される。
【０３０４】
尚、ケース１及びケース２のいずれのＭＲＡＭにおいても、書き込み電流の上限値は、一定値にされている。
【０３０５】
ＬＰＤＤＲ２規格におけるメモリのバースト書き込みは、例えば、１．２５ｎｓｅｃ毎に１６ビットのデータをメモリ領域に書き込む必要がある。
【０３０６】
図２８のケース１において、上述と同様に、遅延時間αが２０ｎｓｅｃとした場合、１回のデータの書き込み（通常書き込み）において、所定のアドレスに対する書き込みが終了するまでに、１つの書き込み回路が占有される時間は、５０ｎｓｅｃである。
【０３０７】
このため、ＬＰＤＤＲ２規格において、１．２５ｎｓｅｃ毎に書き込みデータが入力されるので、４０個のデータが、ＭＲＡＭ内に、５０ｎｓｅｃの間に所定のサイクルで順次入力される。
【０３０８】
メモリセルアレイ内に規定された複数の領域（例えば、ＭＡＴ）に、順次入力されるデータをそれぞれ並列処理で書き込む場合を想定すると、４０個のＭＡＴに対して、並列に書き込みが実行される必要がある。つまり、通常書き込み用に、４０個の書き込み回路が必要となる。尚、ＭＡＴとは、例えば、１Ｍビット程度のメモリ領域のことである。
【０３０９】
また、再書き込みは、各ＭＡＴに対する書き込みが終了し、且つ、書き込まれたデータに書き込み不良が発生した場合にのみ実行されるため、１個の書き込み回路が再書き込みのために設けられていればよい。
【０３１０】
このように、図２８のケース１の場合、ＬＰＤＤＲ２規格に基づいて、並列に書き込みを実行するために、４１個の書き込み回路が必要となる。
【０３１１】
図２８のケース２において、通常書き込みの書き込みパルス幅Ｔｗｐ１は１５ｎｓｅｃに設定されているため、遅延時間αが２０ｎｓｅｃであれば、１つのＭＡＴに対する通常書き込みにおいて、１つの書き込み回路が占有される時間は、３５ｎｓｅｃである。
【０３１２】
それゆえ、ケース２のＭＲＡＭ（構成例２）において、ＬＰＤＤＲ２規格に基づくと、３５ｎｓｅｃの間に、２８個のデータがＭＲＡＭ内に順次入力される。それゆえ、ケース２の場合において、並列に書き込みを実行する場合、２８個の書き込み回路が必要になる。ケース２の再書き込みの書き込みパルスＴｗｐ２（＝４５ｎｓｅｃ）はケース１の場合と比較して長くなるが、再書き込み用の書き込み回路は、ケース２においてもケース１と同様に、１個の回路で十分である。
【０３１３】
このように、図２８のケース２のＭＲＡＭは、２９個の書き込み回路がチップ（主メモリ）内に設けられればよい。
【０３１４】
以上のように、再書き込みの書き込みパルス幅Ｔｗｐ２が、通常書き込みの書き込みパルスのパルス幅Ｔｗｐ１の３倍程度に設定することで、ある規格（ここでは、ＬＰＤＤＲ２）で動作するＭＲＡＭにおいて、ＭＲＡＭの書き込み回路の並列度を３割程度削減できる。
【０３１５】
したがって、構成例２のＭＲＡＭのように、誤動作の許容値を満たす範囲内で、通常書き込みの書き込みパルス幅Ｔｗｐ１を短くし、再書き込みの書き込みパルス幅Ｔｗｐ２を長くすることによって、ＭＲＡＭの書き込み回路の並列度（回路数）を削減でき、ＭＲＡＭの回路規模の縮小及びチップサイズの縮小に貢献できる。
【０３１６】
誤動作の許容範囲内で、通常書き込みの書き込みパルス幅Ｔｗｐ１を短くし、再書き込みの書き込みパルス幅Ｔｗｐ２を長くすることによって、書き込み電流の電流値を低減することも可能である。ここでは、図５のシミュレーションに用いられたＭＴＪ素子の特性を想定し、メモリセルアレイ内における素子間のばらつきは考慮しない。
【０３１７】
（ｉ）Ｔｗｐ１＝Ｔｗｐ２＝３０ｎｓｅｃの場合  
書き込み電流の電流密度が、Ｊｗ１／Ｊｃ（ｍｉｄ，３０ｎｓ）＝Ｊｗ２／Ｊｃ（ｍｉｄ，３０ｎｓ）＝１．２８に設定されると、書き込み不良発生確率ｐｗ１，ｐｗ２は、ｐｗ１＝ｐｗ２＝２．９５×１０−１０になる。この場合、誤動作発生確率ｐｗ１×ｐｗ２は、８．７×１０−２０になり、要求される仕様を満たす。
【０３１８】
（ｉｉ）Ｔｗｐ１＝３０ｎｓｅｃ，Ｔｗｐ２＝１００ｎｓｅｃの場合  
書き込み電流の電流密度が、Ｊｗ１／Ｊｃ（ｍｉｄ，３０ｎｓ）＝Ｊｗ２／Ｊｃ（ｍｉｄ，１００ｎｓ）＝１．１４に設定されると、書き込み不良発生確率ｐｗ１，ｐｗ２は、それぞれ、ｐｗ１＝２．９×１０−４、ｐｗ２＝３．０×１０−１６になる。この場合においても、誤動作発生確率ｐｗ１×ｐｗ２は、８．７×１０−２０になり、要求される仕様を満たす。
【０３１９】
メモリセルアレイ内のＭＴＪ素子間の特性ばらつきを考慮しない場合、（ｉｉ）の設定値のＭＲＡＭは、（ｉ）の設定値のＭＲＡＭに比較して、書き込み電流の電流密度（又は電流値）が１１％低減する。メモリセルアレイ内のＭＴＪ素子間の特性が、６．９％程度ばらつくことを考慮した場合、（ｉｉ）の設定値のＭＲＡＭは、（ｉ）の設定値のＭＲＡＭに比較して、その書き込み電流の電流密度が１６％程度低減する。
【０３２０】
したがって、本構成例の磁気メモリは、書き込み電流の電流密度／電流値を低減でき、メモリの消費電力の低減に貢献できる。
【０３２１】
また、本構成例の磁気メモリは、データの誤り検出及び訂正に誤り検出訂正符号を用いていないため、符号化及び復号化に要する時間は生じず、動作速度を向上でき、高い転送レートを実現できる。
【０３２２】
図２９及び図３０を用いて、通常書き込みに用いられる書き込み電流Ｉｗ１の書き込みパルス幅Ｔｗｐ１の下限について検証する。
【０３２３】
上述のＬＰＤＤＲ２規格を用いたＭＲＡＭがバースト書き込みで動作する場合、１．２５ｎｓｅｃ毎に、１６ビットのデータの書き込む必要がある。つまり、１ｎｓｅｃに、１２．８ビットのデータが、書き込まれる。
【０３２４】
通常書き込みにおけるビット（ＭＴＪ素子）の並列度は、“（Ｔｗｐ１＋α）×１２．８”で示される。再書き込みにおけるビットの並列度は、“ｐｗ１×（Ｔｗｐ２＋α）×１２．８”で示される。
【０３２５】
図２９は、通常／再書き込みのＭＴＪ素子の並列度と、これらを合計した並列度（合計並列度とよぶ）を示している。図３０は、図２９の一部分を拡大した図である。図２９及び図３９の縦軸は並列度（単位：ｂｉｔ）に対応し、図２９及び図３０の横軸は通常書き込みにおける書き込み不良発生確率ｐｗ１に対応している。
【０３２６】
図２９において、特性線Ｇ１は、通常書き込みのＭＴＪ素子の並列度に対応し、特性線Ｇ２は、再書き込みのＭＴＪ素子の並列度に対応し、特性線Ｇ３は、通常書き込みと再書き込みの合計の並列度に対応している。
【０３２７】
書き込みパルス幅Ｔｗｐ１を短くする、つまり、書き込み不良発生確率ｐｗ１を大きくすると、通常書き込みにおけるＭＴＪ素子の並列度は減少する。しかし、誤動作の発生確率に要求される値を満たす必要があるため、再書き込みにおけるＭＴＪ素子の並列度は、ある確率ｐｗ１から増加する。  
この結果として、図２９の特性線Ｇ３に示される合計並列度も、再書き込みの並列度が増加する確率ｐｗ１付近から急増する。
【０３２８】
図３０は、図２９に示される合計並列度の極小値の付近を拡大した図である。図３０に示されるように、特性線Ｇ３で示される合計並列度は、書き込み不良発生確率ｐｗ１＝０．０１５付近で、極小値を有する。  
書き込み不良発生確率ｐｗ１が０．０２より大きくなると、再書き込みが実行される回数が増大するため、再書き込みの並列度が増加し始め、その結果として、合計並列度も増加してしまう。
【０３２９】
したがって、通常書き込みの書き込み不良発生確率ｐｗ１が、０．０２以下になるように、通常書き込みに用いられる書き込み電流Ｉｗ１のパルス幅Ｔｗｐ１を設定することが好ましい。書き込み不良発生確率ｐｗ１＝０．０２の場合、通常書き込みの書き込み電流Ｉｗ１のパルス幅Ｔｗｐ１と再書き込みの書き込み電流Ｉｗ２のパルス幅Ｔｗｐ２との比率Ｔｗｐ２／Ｔｗｐ１は、４．１以下になる。
【０３３０】
尚、図２９及び図３０においても、ＭＴＪ素子の特性ばらつきが無く、時間的に均一に書き込み不良が発生する場合について、検証されている。しかし、ＭＴＪ素子の特性ばらつきを考慮した検証においても、実質的に同じ傾向で各並列度が推移する。
【０３３１】
本構成例において、誤動作発生確率ｐｗ１×ｐｗ２が８．７×１０−２０に設定された場合について述べたが、誤動作発生確率ｐｗ１×ｐｗ２が他の一定値に設定された場合においても、本構成例で述べた効果と実質的に同じ効果が得られる。
【０３３２】
以上のように、本実施形態に係る磁気メモリによれば、その動作の信頼性を向上でき、且つ、動作特性を向上できる。
【０３３３】
［変形例］  
図３１乃至図３４を参照して、構成例１及び２で述べた磁気メモリの構成及び動作の変形例について、説明する。尚、本変形例において、基本例及び構成例１，２で述べた構成と同じ構成については、共通の符号を付し、詳細な説明は省略する。
【０３３４】
図１４では、誤り検出訂正回路５２内に設けられた符号化部６１及び誤り訂正部６３からそれぞれ出力される制御信号ＮＷＣ，ＲＷＣに基づいて、通常のデータの書き込みと訂正時のデータの再書き込みとを判別し、書き込み電流のパルス幅を制御する場合について、述べた。
【０３３５】
これに対して、制御信号を用いる代わりに、データに付加した判定信号（フラグ）を用いて、通常書き込みであるか再書き込み（データの書き戻し）であるかを判別してもよい。
【０３３６】
図３１は、本実施形態の一変形例のＭＲＡＭの内部構成を示している。  
データｎＤＴ，ｃＤＴには、通常書き込みか訂正書き込みかを判定するための判定信号が付加される。例えば、通常ハミングコードによる誤り検出訂正符号が用いられた場合、６４ビットのデータに対して、誤り検出訂正符号としての冗長ビットが、７ビット付加され、さらに、通常書き込みか訂正書き込みかを判別するための判定信号（以下、判定ビットとよぶ）が、１ビット付加される。この場合、７２ビットのデータが、１ブロックとして扱われる。例えば、判定ビットが、“０”のとき通常書き込みを示し、“１”のとき訂正書き込みを示す。
【０３３７】
符号化部６１は、データｗＤＴの入力時又は出力時、判定ビットを“０”に設定する。誤り訂正部６３は、データｒＤＴの入力時又は出力時、判定ビットを“１”に設定する。
【０３３８】
図３１に示すように、書き込みパルス幅制御回路５３は、主メモリ５０に隣接して、配置されている。書き込みパルス幅制御回路５３には、例えば、データｎＤＴ，ｃＤＴが、直接又は主メモリ５０を経由して入力される。尚、データｎＤＴ，ｃＤＴに含まれる判定ビットのみが、書き込みパルス幅制御回路５３に入力されてもよい。
【０３３９】
書き込みパルス幅制御回路５３は、１ブロックのデータに含まれる判定ビットを判別する機能を有し、判定ビットが“１”であるか“０”であるかによって、データの書き込みが、通常書き込み又は訂正書き込みを判別する。
【０３４０】
これによって、図１４に示される構成と同様に、書き込みパルス幅制御回路５３は、通常書き込みの場合に、図１７に示されるパルス幅Ｔｗｐ１を有する書き込み電流Ｉｗ１を生成及び出力するように、主メモリ５０内の書き込み回路の動作を制御する。また、書き込みパルス幅制御回路５３は、訂正書き込みの場合に、図１７に示されるパルス幅Ｔｗｐ１よりも長いパルス幅Ｔｗｐ２を有する書き込み電流Ｉｗ２を生成及び出力するように、主メモリ５０内の書き込み回路の動作を制御する。
【０３４１】
このように、ＭＴＪ素子に書き込まれるデータが含む判定ビットによって、通常書き込みか再書き込みかを判別でき、判別結果に応じ、所定のパルス幅の書き込み電流をそれぞれ用いて、データをＭＴＪ素子に書き込むことができる。
【０３４２】
これによって、新たな制御信号をＭＲＡＭチップに設ける必要はなく、それに伴って、制御信号を供給するための配線も必要ないので、チップの全体の制御やチップ内の配線レイアウトに対する負荷は小さくなる。
【０３４３】
また、本発明の実施形態のＭＲＡＭのポイントの１つは、チップ内の動作サイクルにおいて、ＭＴＪ素子１から１度読み出されたデータをＭＴＪ素子１に書き戻す場合に、通常書き込みに用いる書き込み電流Ｉｗ１に比較して、再書き込みに用いる書き込み電流Ｉｗ２のパルス幅を長くすることである。これによって、書き込み不良の発生確率は減少し、主メモリ（メモリセルアレイ）内のデータの誤りは低減する。
【０３４４】
データの再書き込み時に書き込み電流のパルス幅を長くするという動作は、主メモリ５０に対するリフレッシュ動作（記憶保持動作）に対しても適用できる。
【０３４５】
図３２は、本実施形態の一変形例のＭＲＡＭの内部構成を示し、図３３は、本変形例のＭＲＡＭの動作（リフレッシュ動作）のフローチャートを示している。
【０３４６】
例えば、図３２に示すように、本変形例のリフレッシュ動作が用いられるＭＲＡＭは、読み出し回数をカウントするカウンタ部５９を有する。
【０３４７】
図３３に示すように、外部から入力されたデータが主メモリ５０内のＭＴＪ素子に書き込まれる（ステップＳＴ２１）。この際、データｗＤＴは通常書き込みによって書き込まれ、図１７に示されるパルス幅Ｔｗｐ１を有する書き込み電流Ｉｗ１が、データの書き込みに用いられる。
【０３４８】
この後、読み出し命令が入力されると、主メモリ５０内に記憶されたデータが、読み出される（ステップＳＴ２２）。尚、この読み出されたデータに対して、誤りの検出及び訂正が実行されてもよいし、誤りの検出及び訂正が実行されなくともよい。
【０３４９】
制御回路５１内のカウンタ部５９は、データの読み出し回数をカウントする（ステップＳＴ２３）。尚、カウンタ部５９は、読み出し命令を示すコマンド信号ＣＭＤの入力をカウントしてもよいし、主メモリ５０からのデータの出力をカウントしてもよい。
【０３５０】
制御回路５１は、カウンタ部５９がカウントした値（以下、カウント値とよぶ）Ｎｎとリフレッシュ動作を実行するための参照値Ｎｒｆｌとを比較する（ステップＳＴ２４）。
【０３５１】
カウント値Ｎｎが参照値Ｎｒｆｌ以下の場合、リフレッシュ動作は実行されずに、次の動作（例えば、データの読み出し）又は動作の終了になる。動作の終了であっても、カウントされたカウンタ値Ｎｎは、これまでのカウンタ値Ｎｎ−１として、カウンタ部５９内に、保持される。
【０３５２】
一方、カウント値Ｎｎが参照値Ｎｒｆｌより大きい場合、リフレッシュ動作が実行される（ステップＳＴ２５）。リフレッシュ動作によって、主メモリ５０内に記憶されたデータが一度読み出された後、そのデータが主メモリ５０内に再び書き戻される。尚、リフレッシュ動作時に、誤りの検出及び訂正を実行してもよい。
【０３５３】
リフレッシュ動作時において、主メモリ５０から読み出されたデータは、外部からのデータを書き込む場合よりもパルス幅が長くされた書き込み電流Ｉｗ２を用いて、主メモリ５０内に書き戻される（ステップＳＴ２６）。つまり、リフレッシュ動作時において、図１７に示すように、パルス幅Ｔｗｐ１よりも長いパルス幅Ｔｗｐ２の書き込み電流Ｉｗ２が、主メモリ５０に対するデータの書き戻しに用いられる。
【０３５４】
尚、リフレッシュ動作時、リフレッシュ動作を示す制御信号ＲＦＬが、制御回路５１から書き込みパルス幅制御回路５３に入力される。その制御信号ＲＦＬに基づいて、書き込みパルス幅制御回路５３は、書き込み電流のパルス幅を長くするように、書き込み回路２Ａ，２Ｂの動作を制御する。
【０３５５】
長いパルス幅Ｔｗｐ２の書き込み電流Ｉｗ２を用いたリフレッシュ動作の後、例えば、次の動作サイクルにおけるデータの読み出しが実行される。尚、リフレッシュ動作に続く動作が、データの書き込みであってもよいのは、もちろんである。
【０３５６】
以上の動作によって、本変形例のＭＲＡＭのリフレッシュ動作が終了する。
【０３５７】
これによって、リフレッシュ動作において、主メモリ５０（ＭＴＪ素子１）に記憶されたデータが主メモリ５０に書き戻された時に、データの書き込み不良が発生するのを低減できる。また、リフレッシュ動作のときのデータの再書き込みのみに、それに用いる書き込み電流Ｉｗ２のパルス幅Ｔｗｐ２を長くするので、書き込み電流のパルス幅が長くなることによって、ＭＲＡＭの高速動作が損なわれることは無い。
【０３５８】
また、本実施形態において、構成例１の磁気メモリの読み出し動作と構成例２の磁気メモリの書き込み動作とを組み合わせた磁気メモリを構成してもよい。図３４は、この磁気メモリの回路構成が示される。
【０３５９】
この磁気メモリは、その書き込み動作において、誤り検出訂正符号を用いずに、データの誤り（書き込み不良）の検出／訂正が２つのデータの比較によって実行され、その読み出し動作において、誤り検出訂正符号を用いて、主メモリ５０内のデータの誤りの検出／訂正が実行される。
【０３６０】
図３４に示される磁気メモリ（例えば、ＭＲＡＭ）において、書き込み動作時における書き込み不良の検出及び訂正（書き直し）は、構成例２で述べたように、主メモリ５０に書き込まれたデータｗＤＴ１とバッファメモリ５４に記憶されたデータとＤＴ１とを比較することによって、実行される。
【０３６１】
図３４に示される磁気メモリにおいて、読み出し動作時に、構成例１の動作例２で述べたように、データに付加された誤り検出訂正符号を用いて、主メモリ５０に書き込まれたデータの誤り検出及び訂正が実行される。  
誤り検出訂正符号は、データが書き込まれてから数ｍｓｅｃ後に、誤り検出訂正回路５２が、主メモリ５０からデータを読み出し、そのデータに対する誤り検出訂正符号を生成し、パリティビットを書き込むことによって、主メモリ５０内のデータに付加される。尚、誤り検出訂正符号の付加は、メモリの待機状態や、並列処理が可能な動作サイクルに、実行されてもよい。例えば、符号化部６１が、主メモリ５０に書き込まれたデータを符号化する。符号化されたデータは、主メモリ５０に書き戻される。この時、符号化部６１が、再書き込み信号ＲＷＣを書き込みパルス幅制御回路５３に出力することによって、符号化されたデータが、通常書き込みより書き込みパルス幅は長く設定された再書き込みによって、主メモリ５０に書き込まれてもよい。
【０３６２】
図３４の磁気メモリにおいて、書き込み動作時及び読み出し動作時において、誤りを訂正したデータを、主メモリ５０に書き戻す際に、通常書き込み（外部からのデータの書き込み）に用いた書き込み電流Ｉｗ１のパルス幅Ｔｗｐ１より長いパルス幅Ｔｗｐ２を有する書き込み電流を用いて、実行される。これによって、主メモリ５０内に発生するデータの誤りが低減される。
【０３６３】
ＥＣＣ技術がＭＲＡＭに適用された場合、データの書き込み時に誤り検出訂正符号を、計算して、生成する。そして、外部から入力されたデータに加えて、その誤り検出訂正符号としてのパリティビットを、主メモリ５０に書き込まなければならない。その結果として、ＭＲＡＭの書き込み時の転送レートを高くしにくくなる。
【０３６４】
例えば、上述のＬＰＤＤＲ２規格をＭＲＡＭに用いた場合、書き込み動作時において誤り検出訂正符号を用いるメモリは、この規格のwrite mask命令に対応することが困難になる。
【０３６５】
ＬＰＤＤＲ２規格のwrite mask命令は、１ブロック（６４ビット）中の４８ビットのデータは変更せず（書き換えず）に、残りの１６ビットを書き換える、といった書き込み動作が発生する。
【０３６６】
このような動作に、誤り検出訂正符号を用いたＭＲＡＭが対応するためには、データを書き換える前に、６４ビットのデータを一度読み出して復号化し、それから、write mask命令に基づいてデータを書き換える、という動作が必要になる。そのため、ＥＣＣ技術を適用したＭＲＡＭは、write mask命令という書き込み動作に対して、常に、読み出し動作が必要となってしまう。その結果として、データの書き込み時における転送レートが上がりにくくなってしまう。
【０３６７】
図３４に示される磁気メモリ（例えば、ＭＲＡＭ）は、構成例２で述べたように、書き込みコマンドに基づくデータの書き込み動作時には、誤り検出訂正符号を用いないので、メモリの規格に影響されずに、高い転送レートを実現でき、且つ、入力されたデータと書き込まれたデータとを比較することによって、データの書き込みにおける高い信頼性を確保できる。
【０３６８】
この後、図３４に示されるＭＲＡＭは、構成例１の動作例２で述べたように、データの読み出し動作時において、付加された誤り検出訂正符号を用いて、読み出しディスターブとリテンション不良とを削減できる。
【０３６９】
したがって、図３４に示されるＭＲＡＭは、高い転送レート及び高速動作の磁気メモリを実現でき、且つ、その磁気メモリに生じる書き込み不良、読み出しディスターブ、及び、リテンション不良などのデータの不良（誤り）を低減できる。
【０３７０】
以上のように、図３１乃至図３４に示される変形例においても、上述の構成例１及び２と同様に、その動作の信頼性を向上でき、且つ、動作特性を向上できる。
【０３７１】
［その他］
本発明の実施形態において、図２及び図１７に示すように、通常書き込みのための書き込み電流Ｉｗ１及び再書き込みのための書き込み電流Ｉｗ２と、同じ電流値に設定されている。但し、１度読み出したデータをＭＴＪ素子に書き戻すために用いられる書き込み電流Ｉｗ２のパルス幅Ｔｗｐ２が、外部からのデータを新たにＭＴＪ素子に書き込むための書き込み電流Ｉｗ１のパルス幅Ｔｗｐ１より長ければ、２つの電流Ｉｗ１，Ｉｗ２の電流値の大きさは、それぞれ異なっていてもよい。
【０３７２】
本発明の実施形態は、磁気抵抗効果素子を記憶素子として主メモリが構成される磁気メモリ（ＭＲＡＭ）を例に挙げて、説明されている。但し、これに限定されず、例えば、ＲｅＲＡＭ（Resistive RAM）やＰＣＲＡＭ（Phase Change RAM）のように、書き込み電流（書き込み電圧）のパルス幅を制御することによって抵抗値が可逆的に変わる素子を記憶素子に用いた他のメモリが、本発明の実施形態で述べた効果と同様の効果が得られるのは、もちろんである。
【０３７３】
本発明の例は、上述の実施形態に限定されるものではなく、その要旨を逸脱しない範囲で、各構成要素を変形して具体化できる。また、上述の実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を構成できる。例えば、上述の実施形態に開示される全構成要素から幾つかの構成要素を削除してもよいし、異なる実施形態の構成要素を適宜組み合わせてもよい。
【符号の説明】
【０３７４】
５０：主メモリ、５１：制御回路、５２：誤り検出訂正回路、５３：書き込みパルス幅制御回路、５４：バッファメモリ、２０：メモリセルアレイ、１：磁気抵抗効果素子、２，２Ａ，２Ｂ：書き込み回路。
【図１】
2012022726.tif 000014
【図２】
2012022726.tif 000015
【図３】
2012022726.tif 000016
【図４】
2012022726.tif 000017
【図５】
2012022726.tif 000018
【図６】
2012022726.tif 000019
【図７】
2012022726.tif 000020
【図８】
2012022726.tif 000021
【図９】
2012022726.tif 000022
【図１０】
2012022726.tif 000023
【図１１】
2012022726.tif 000024
【図１２】
2012022726.tif 000025
【図１３】
2012022726.tif 000026
【図１４】
2012022726.tif 000027
【図１５】
2012022726.tif 000028
【図１６】
2012022726.tif 000029
【図１７】
2012022726.tif 000030
【図１８】
2012022726.tif 000031
【図１９】
2012022726.tif 000032
【図２０】
2012022726.tif 000033
【図２１】
2012022726.tif 000034
【図２２】
2012022726.tif 000035
【図２３】
2012022726.tif 000036
【図２４】
2012022726.tif 000037
【図２５】
2012022726.tif 000038
【図２６】
2012022726.tif 000039
【図２７】
2012022726.tif 000040
【図２８】
2012022726.tif 000041
【図２９】
2012022726.tif 000042
【図３０】
2012022726.tif 000043
【図３１】
2012022726.tif 000044
【図３２】
2012022726.tif 000045
【図３３】
2012022726.tif 000046
【図３４】
2012022726.tif 000047