(57)【要約】【課題】不良が発生した記憶素子から情報を読み出す場合に、書き込まれるべき情報を正しく読み出すこと。【解決手段】ＳｐＲＡＭ１は、１ビットの情報を記憶する記憶素子２と、記憶素子２に書き込まれた情報を読み出すセンスアンプ１０を備える。センスアンプ１０は、所定の単位数の記憶素子２を有する記憶ブロックの内、特定の１個の記憶素子２を反転フラッグ素子として定める。そして、センスアンプ１０は、反転フラッグ素子に書き込まれた１ビットの情報が、“０”又は“１”の内、いずれかを示す第１の値である場合に、他の記憶素子２に書き込まれた所定の単位数−１ビットの情報をビット反転して読み出す。一方、反転フラッグ素子に書き込まれた１ビットの情報が、第１の値とは異なる第２の値である場合に、他の記憶素子２に書き込まれた所定の単位数−１ビットの情報をそのまま読み出す。【選択図】図１
2011008850.tif 000002
【特許請求の範囲】
【請求項１】
１ビットの情報を記憶する記憶素子と、
所定の単位数の前記記憶素子を有する記憶ブロックの内、特定の１個の前記記憶素子を反転フラッグ素子として用い、前記反転フラッグ素子に書き込まれた１ビットの情報が、“０”又は“１”の内、いずれかを示す第１の値である場合に、他の前記記憶素子に書き込まれた前記所定の単位数−１ビットの情報をビット反転して読み出し、前記反転フラッグ素子に書き込まれた１ビットの情報が、前記第１の値とは異なる第２の値である場合に、前記他の記憶素子に書き込まれた前記所定の単位数−１ビットの情報をそのまま読み出す読み出し部と、を備える
メモリ。
【請求項２】
更に、前記反転フラッグ素子に前記第１の値を書き込む場合には、前記他の記憶素子に前記所定の単位数−１ビットの情報をビット反転して書き込み、前記反転フラッグ素子に前記第２の値を書き込む場合には、前記他の記憶素子に前記所定の単位数−１ビットの情報をそのまま書き込む書き込み部と、
前記書き込み部が前記記憶ブロックに情報を書き込むための書き込み電圧を制御する電圧制御部と、を備える
請求項１記載のメモリ。
【請求項３】
前記読み出し部は、前記書き込み部が前記記憶ブロックに情報を初めて書き込む場合には、前記反転フラッグ素子に前記第２の値を書き込み、前記他の記憶素子には前記所定の単位数−１ビットの情報をそのまま書き込み、前記記憶ブロックから前記他の記憶素子に書き込まれた前記所定の単位数−１ビットの情報をそのまま読み出した結果、前記他の記憶素子に前記所定の単位数−１ビットの情報が正しく書き込まれていることを判定した場合には、前記書き込み部による情報の書き込みを終了させ、１ビット以上のデータが正しく書き込まれていないことを判定した場合には、前記反転フラッグ素子に前記第１の値を書き込み、前記他の記憶素子に前記所定の単位数−１ビットの情報をビット反転して、少なくとも１回以上書き込むことを前記書き込み部に指示する
請求項２記載のメモリ。
【請求項４】
前記読み出し部は、前記記憶ブロックから前記他の記憶素子に書き込まれた前記所定の単位数−１ビットの情報をそのまま読み出した結果、１ビット以上のデータが正しく書き込まれていないと判定した場合には、前記電圧制御部に対して、前記書き込み電圧を増加する指示を行い、再度前記書き込み部に書き込みをさせる
請求項３記載のメモリ。
【請求項５】
前記記憶素子は、前記書き込み部が前記１ビットの情報を書き込んだことによる抵抗の変化によって前記１ビットの情報を記憶する
請求項１〜３のいずれか１項に記載のメモリ。
【請求項６】
前記記憶素子は、情報を磁性体の磁化状態により保持する記憶層と、
前記記憶層に対して非磁性層を介して、磁化の向きが固定された磁化固定層とを有し、
積層方向に流す書き込み電流を印加することによって、前記記憶層の磁化の向きが変化して、前記記憶層に対して情報を記憶する
請求項５記載のメモリ。
【請求項７】
１ビットの情報を記憶する記憶素子を所定の単位数有する記憶ブロックの内、特定の１個の前記記憶素子を反転フラッグ素子として用い、前記反転フラッグ素子に書き込まれた１ビットの情報が、“０”又は“１”の内、いずれかを示す第１の値である場合に、他の前記記憶素子に書き込まれた前記所定の単位数−１ビットの情報をビット反転して読み出し、
前記反転フラッグ素子に書き込まれた１ビットの情報が、前記第１の値とは異なる第２の値である場合に、前記他の記憶素子に書き込まれた前記所定の単位数−１ビットの情報をそのまま読み出す
情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、“０”又は“１”のいずれかによる１ビットの情報を記憶素子に記憶させる場合に適用して好適なメモリ及び情報処理方法に関する。
【背景技術】
【０００２】
従来、情報通信機器、特に携帯端末等に用いられる小型の電子機器が飛躍的に普及したことに伴い、これを構成するメモリやロジック等の素子に対して、高集積化、高速化、低電力化等、一層の高性能化が要請されている。
このような小型機器では、不揮発性メモリが電子機器の高機能化に必要不可欠な部品と考えられている。不揮発性メモリとしては、半導体フラッシュメモリやＦｅＲＡＭ（強誘電体不揮発メモリ）等が実用化されており、さらなる高性能化に向けて活発な研究開発が行われている。
【０００３】
最近、磁性体を利用した新しい不揮発メモリとして、例えば、特許文献１に記載がある。このように、トンネル磁気抵抗効果を利用した磁気メモリの開発進捗が著しく、その中でもスピントランスファによる磁化反転を利用する構成のメモリが注目されている。
【０００４】
ここで、特許文献２には、スピントランスファによる磁化反転について記載されている。スピントランスファによる磁化反転とは、磁性体の中を通過してスピン偏極した電子を、他の磁性体に注入することにより、他の磁性体において磁化反転を起こさせるものである。
【０００５】
このため、磁化の向きが固定された磁性層（磁化固定層）を通過したスピン偏極電子が、磁化の向きが固定されない他の磁性層に進入する際に、この磁性層の磁化にトルクを与える。そして、ある閾値以上の電流を他の磁性体に流せば、磁性層の磁化の向きを反転させることができる。
【０００６】
例えば、磁化固定層と磁化自由層とを有する、磁気トンネル接合素子（ＭＴＪ素子）に対して、その層面に垂直な方向に電流を流す。これにより、これらの素子の少なくとも一部の磁性層の磁化の向きを反転させることができる。
【０００７】
そして、磁化固定層と磁化自由層（記憶層）とを有する記憶素子に流す電流の極性を変えることにより、記憶層の磁化の向きを反転させ、“０”情報と“１”情報との書き換えを行う。以下、記憶素子に情報を書き込んで、情報を記憶させることを、「情報の書き込み」又は「書き込み」と略称する場合がある。また、記憶素子から情報を読み出すことを、「情報の読み出し」又は「読み出し」と略称する場合がある。
【０００８】
情報の読み出しは、トランジスタ等の素子を用いてメモリセルの選択を行い、記憶素子のトンネル磁気抵抗効果を利用して、記憶層の磁化の向きの違いを電圧信号の差として検出することにより、記憶された情報を検知できる。
以下の説明では、スピントランスファを利用した記憶素子をＳｐＲＡＭ(Spin transfer Random Access Memory)と呼ぶ。また、スピントランスファを引き起こすスピン偏極電子流をスピン注入電流(Spin injection current)と呼ぶ。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】米国特許第５６９５８６４号明細書
【特許文献２】特開２００３−１７７８２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
ところで、ＳｐＲＡＭにおいては、記憶素子に情報を書き込むために、記憶素子の積層方向に書き込み電流を流す。その際、記憶素子のトンネル絶縁層の両端に０．５Ｖから１Ｖ程度の電圧が生じる。この電圧は、トンネル絶縁層の破壊電圧に比べて無視できる大きさではない。すなわち、繰り返し書き込みが行われ、トンネル絶縁層が電界ストレスを受けると、トンネル絶縁層が静電破壊される場合がある。このような素子は書き込みを行っても抵抗変化は生じず、トンネル絶縁層が静電破壊された記憶素子は、素子の抵抗が著しく減少してしまい、もはや抵抗変化から情報を読み出すことが不可能になってしまう。
【００１１】
また、トンネル絶縁層を形成する際に生じた欠陥や、ＴＭＲ素子を微細に加工する際に生じた初期不良等によって、トンネル絶縁層の抵抗が著しく減少することもある。このように初期状態において低抵抗となってしまう不良が発生した場合にも、抵抗変化から情報を読み出したり、情報を書き込んだりすることが困難となる。
【００１２】
本発明はこのような状況に鑑みて成されたものであり、不良が発生した記憶素子から、書き込まれるべき情報を正しく読み出すことを目的とする。
【課題を解決するための手段】
【００１３】
本発明は、１ビットの情報を記憶する記憶素子を所定の単位数有する記憶ブロックの内、特定の１個の記憶素子を反転フラッグ素子として用いる。
次に、反転フラッグ素子に書き込まれた１ビットの情報が、“０”又は“１”の内、いずれかを示す第１の値である場合に、他の記憶素子に書き込まれた所定の単位数−１ビットの情報をビット反転して読み出す。
そして、反転フラッグ素子に書き込まれた１ビットの情報が、第１の値とは異なる第２の値である場合に、他の記憶素子に書き込まれた所定の単位数−１ビットの情報をそのまま読み出すものである。
【００１４】
このようにしたことで、記憶ブロックに誤って情報が記憶された場合であっても、正しい情報を読み出すことが可能となる。
【発明の効果】
【００１５】
本発明によれば、例えば、記憶ブロックの一部の記憶素子が不良であるため、記憶ブロックから情報を正しく読み出せない場合においても、反転フラッグ素子の情報を用いることで、正しく情報を読み出すことができるという効果がある。
【図面の簡単な説明】
【００１６】
【図１】本発明の第１の実施の形態に係るＳｐＲＡＭの内部構成例を示す機能ブロック図である。
【図２】本発明の第１の実施の形態に係るスピントランスファを利用するメモリのメモリセルの模式的断面図である。
【図３】本発明の第１の実施の形態に係るメモリを構成する記憶ブロックの模式図である。
【図４】本発明の第１の実施の形態に係る不良素子が２個あるいは３個の場合の書き込みデータと不良箇所の関係を示した図である。
【図５】本発明の第１の実施の形態に係る書き込み方法のフローチャートである。
【図６】本発明の第１の実施の形態に係る記憶ブロックと比較例の記憶ブロックを示した図である。
【図７】本発明の第１の実施の形態に係る実施例における不良パターンの例である。
【図８】本発明の第１の実施の形態に係る素子不良率とブロック不良率の関係を計算した図である。
【図９】本発明の第２の実施の形態に係る書き込みエラー率と、破壊のビットエラー率の計算結果の例を示す説明図である。
【図１０】本発明の第２の実施の形態に係る書き込み方法のフローチャートである。
【発明を実施するための形態】
【００１７】
以下、発明を実施するための最良の形態（以下実施の形態とする。）について説明する。なお、説明は以下の順序で行う。
１．第１の実施の形態（書き込み制御：書き込み電圧を一定とした場合における書き込み制御の例）
２．第２の実施の形態（書き込み制御：書き込み電圧を可変とした場合における書き込み制御の例）
３．変形例
【００１８】
＜１．第１の実施の形態＞
［書き込み電圧を一定とした場合における書き込み制御の例］
【００１９】
以下、本発明の第１の実施の形態について、図１〜図８を参照して説明する。本実施の形態（以下、「本例」という。）では、書き込み電圧を一定とした場合における書き込み制御を行うメモリ（以下、ＳｐＲＡＭ１とする。）に適用した例について説明する。ＳｐＲＡＭ１は、以下に示す処理によって、記憶素子に対する情報の書き込み又は読み出しを行う。
【００２０】
図１は、ＳｐＲＡＭ１の内部構成例を示す機能ブロック図である。
情報を保持する記憶素子２はアレイ状に配置され、セルアレイ５を構成する。各記憶素子２は選択用ＭＯＳトランジスタ３を通じて、セルアレイ５上を上下に延びるビット線１２（ＢＬ）−ソース線１３（ＳＬ）対に接続されており、“０”又は“１”の１ビットの情報を記憶する。一方、選択用ＭＯＳトランジスタ３のゲートはセルアレイ５上を左右に延びるワード線１４（ＷＬ）に接続されている。
【００２１】
ところで、図１には４ロー×４カラムの構成としたセルアレイ５を示しているが、実際にはこれより大きく、例えば５１２ロー×５１２カラムの構成とすることができる。このとき、ワード線１４、ビット線１２及びソース線１３はそれぞれ５１２本となる。各ワード線１４の左端はセルアレイ５の左に配置されたローデコーダ６に接続され、右端は開放されている。各ソース線１３及びビット線１２の上下端はセルアレイ５の上下に配置されたカラムスイッチ７に接続されている。
【００２２】
セルアレイ５を５１２ロー×５１２カラムの構成とした場合、アドレスは１８ビットとなるが、上位９ビットをローアドレスに、下位９ビットをカラムアドレスに割り当てる。ローアドレスはローデコーダ６に入力され、カラムアドレスは上下のカラムスイッチ７に入力される。
【００２３】
また、ＳｐＲＡＭ１は、ソース線１３に書き込み電圧を加えるＳＬライトドライバ８と、ビット線１２に書き込み電圧を加えるＢＬライトドライバ９を備え、共に記憶素子２に情報を書き込む書き込み部として機能する。書き込み部は、後述する反転フラッグ素子に、“０”又は“１”のうち、いずれかを示す第１の値（本例では、“１”）を書き込む場合には、他の記憶素子に所定の単位数−１ビットの情報をビット反転して書き込む。一方、書き込み部は、ＳＬライトドライバ８とＢＬライトドライバ９は、反転フラッグ素子に第１の値とは異なる第２の値（本例では、“０”）を書き込む場合には、他の記憶素子に所定の単位数−１ビットの情報をそのまま書き込む。書き込み部が記憶ブロックに情報を書き込むための書き込み電圧と、センスアンプ１０に供給されるリファレンス電圧は、電圧制御部１１によって制御される。
【００２４】
また、ＳｐＲＡＭ１は、ソース線１３に接続され、記憶素子２から読み出し電流を流すために必要なセンス電圧が入力されるセンスアンプ１０を備える。１個の記憶素子２は、１ビットの情報を記憶しており、センスアンプ１０には、所定の大きさのリファレンス電圧が入力される。センスアンプ１０は、センス電圧とリファレンス電圧を比べることで、記憶素子２に書き込まれた情報を読み出す。本例のセンスアンプ１０は、記憶素子２から情報を読み出す読み出し部として機能する。
【００２５】
本例のセンスアンプ１０は、所定の単位数の記憶素子２を有する記憶ブロックの内、特定の１個の記憶素子２を反転フラッグ素子として用いる（後述する図４参照）。センスアンプ１０は、反転フラッグ素子に書き込まれた１ビットの情報が、“０”又は“１”の内、いずれかを示す第１の値（本例では“１”）である場合に、他の記憶素子２に書き込まれた所定の単位数−１ビットの情報をビット反転して読み出す。一方、センスアンプ１０は、反転フラッグ素子に書き込まれた１ビットの情報が、第１の値とは異なる第２の値（本例では“０”）である場合には、他の記憶素子２に書き込まれた所定の単位数−１ビットの情報をそのまま読み出す。これにより、記憶ブロックに書き込まれた情報の一部が誤っていたとしても、センスアンプ１０が誤り訂正を行うことが可能になる。
【００２６】
次に、スピントランスファを使用するメモリ（ＳｐＲＡＭ１）のメモリセルについて内部構成例を説明する。
【００２７】
図２は、記憶素子２とメモリセルの模式化した断面図を示す。
図２に示す全体構造は、メモリセルを表す。記憶素子２に記憶された情報を読み出すために、メモリセルを電気的に選択するためには、ダイオード又はＭＯＳトランジスタ等を用いることができる。本例のメモリセルはＭＯＳトランジスタを用いている。
【００２８】
まず、メモリセルの構成例を説明する。
強磁性層２２及び強磁性層２４は、非磁性層２３を介して配置されていることにより、反強磁性結合している。さらに、下層側の強磁性層２２は、反強磁性層２１と接して配置されており、これらの層間に働く交換相互作用によって、強い一方向の磁気異方性を有する。そして、これらの層２１，２２，２３，２４により磁化固定層１５が構成される。即ち、磁化固定層１５は、２層の強磁性層２２，２４を有している。
【００２９】
強磁性層２６は、その磁化Ｍ１の向きが比較的容易に回転するように構成されており、この強磁性層２６によって記憶層（磁化自由層）１６が構成される。記憶層１６は、情報を磁性体の磁化状態により保持するものである。
【００３０】
磁化固定層１５の強磁性層２４と強磁性層２６との間、即ち磁化固定層１５と記憶層１６との間には、トンネル絶縁層２５が形成されている。このトンネル絶縁層２５は、上下の強磁性層２６及び２４の磁気的結合を切ると共に、トンネル電流を流す役割を担う。このため、記憶層１６に対して非磁性層２３を介して、磁性層の磁化の向きが固定された磁化固定層１５と、トンネル絶縁層２５と、磁化の向きを変化させることが可能な記憶層１６とにより、ＴＭＲ（トンネル磁気抵抗効果）素子が構成されている。
【００３１】
このように、上述の各層２１〜２６と、下地膜２０及びトップコート層２７により、ＴＭＲ素子から成る記憶素子２が構成されている。
そして、記憶素子２は、積層方向に流す書き込み電流を印加することによって、記憶層１６の磁化の向きが変化して、記憶層１６に対して情報を記憶することができる。
【００３２】
記憶素子２を構成する各層の材料は、以下のとおりである。
反強磁性層２１の材料としては、例えばＰｔＭｎを用いることができる。
磁化固定層１５の強磁性層２２，２４の材料としては、ＣｏＦｅ等の強磁性材料を用いることができる。
非磁性層２３の材料としては、例えば、Ｒｕ，Ｔａ，Ｃｒ，Ｃｕ等を用いることができる。
トンネル絶縁層２５の材料としては、例えばＭｇＯを用いることができる。
記憶層１６の強磁性層２６の材料としては、ＣｏＦｅＢ等の強磁性材料を用いることができる。
【００３３】
シリコン基板３０中には、選択用ＭＯＳトランジスタ３が形成され、この選択用ＭＯＳトランジスタ３の一方の拡散層３３上に接続プラグ１７が形成されている。この接続プラグ１７上には、記憶素子２の下地膜２０が接続されている。選択用ＭＯＳトランジスタ３のもう一方の拡散層３２は、不図示の接続プラグを介してソース線１３に接続されている。選択用ＭＯＳトランジスタ３のゲート３１は、不図示の接続プラグを介してワード線１４に接続されている。記憶素子２のトップコート層２７は、その上のビット線１２に接続されている。
【００３４】
定常状態において、非磁性層２３を介した強い反強磁性結合により、強磁性層２２の磁化Ｍ１１と強磁性層２４の磁化Ｍ１２は、ほぼ完全な反平行状態にある。
通常、強磁性層２２と強磁性層２４とは、磁気モーメントが等しい構成とされるため、磁極磁界の漏洩成分は無視できるくらい小さい。
【００３５】
そして、トンネル絶縁層２５を挟む、記憶層１６の強磁性層２６の磁化Ｍ１の向きと、磁化固定層１５の強磁性層２４の磁化Ｍ１２の向きとが、平行状態にあるか反平行状態にあるかによって、これらの層２４，２５，２６から成るＴＭＲ素子の抵抗値が変化する。２つの磁化Ｍ１，Ｍ１２が平行状態では抵抗値が低くなり、反平行状態では抵抗値が高くなる。ＴＭＲ素子の抵抗値が変化すると、記憶素子２全体の抵抗値も変化する。このことを利用して、記憶素子２に情報を書き込んだり、情報を読み出したりすることができる。例えば、抵抗値が低い状態を”０”情報に割り当て、抵抗値が高い状態を”１”情報に割り当てることにより、２値（１ビット）の情報を書き込むことができる。
なお、磁化固定層１５のうち記憶層１６側の強磁性層２４は、記憶した情報を読み出す際に、記憶層１６の磁化Ｍ１の向きの基準となり参照される強磁性層であるため、「参照層」とも称される。
【００３６】
メモリセルの情報を書き換えたり、メモリセルに書き込まれた情報を読み出したりするためには、スピン注入電流Ｉｚを流す必要がある。このスピン注入電流Ｉｚは、拡散層３３、記憶素子２及びビット線１２を通過する。
一方、スピン注入電流Ｉｚの極性を変えると、記憶素子２を流れるスピン注入電流Ｉｚを、上向きから下向きに、或いは下向きから上向きに、変えることができる。
これにより、記憶層１６の磁化Ｍ１の向きを変化させて、メモリセルの情報を書き換えることができる。
【００３７】
次に、書き込み部が行う情報の書き込み動作の例について説明する。
ローデコーダ６はローアドレスに応じて５１２本のうち一本のワード線１４の電圧を電源電圧に設定し、当該ワード線１４に接続されている選択用ＭＯＳトランジスタ３をＯＮ状態にする。上側のカラムスイッチ７はカラムアドレスに応じて５１２本のうち一本のソース線１３をＳＬライトドライバ８に接続する。下側のカラムスイッチ７はカラムアドレスに応じて５１２本のうち一本のビット線１２をＢＬライトドライバ９に接続する。
【００３８】
ＳＬライトドライバ８はデータ入力が“１”のとき、書き込み電圧を出力し、“０”のときＧＮＤを出力する。反対にＢＬライトドライバ９はデータ入力が“０”のとき、書き込み電圧を出力し、“１”のときＧＮＤを出力する。このようにするとデータ入力に応じて電流の向きが変わることによって、選択された記憶素子２に“０”あるいは“１”の情報を書き込むことができる。
【００３９】
次に、センスアンプ１０が行う情報の読み出し動作の例について説明する。
ワード線１４の選択は情報の書き込み時と同じである。上側のカラムスイッチ７はカラムアドレスに応じて５１２本のうち一本のビット線１２をＳＬライトドライバ８に接続する。下側のカラムスイッチ７はカラムアドレスに応じて５１２本のうち一本のソース線１３をセンスアンプ１０に接続する。ＳＬライトドライバ８は常にＧＮＤを出力する。このようにして、センスアンプ１０から選択された記憶素子２に一定の読み出し電流を流す。
【００４０】
記憶素子２の状態が“１”、すなわち高抵抗状態の場合に、読み出し電流を流すために必要なセンス電圧をＶ１とする。同様に、記憶素子２の状態が“０”、すなわち低抵抗状態の場合に、読み出し電流を流すために必要なセンス電圧をＶ０とする。このとき、抵抗の大小関係よりＶ１＞Ｖ２となる。そこで、Ｖ１よりも小さく、Ｖ２よりも大きいリファレンス電圧をセンスアンプ１０に入力する。
【００４１】
センスアンプ１０は、センス電圧とリファレンス電圧を比較する。ここで、「センス電圧＞リファレンス電圧」となる場合は、当該記憶素子２は、“１”が記憶された状態、「センス電圧＜リファレンス電圧」となる場合は、当該記憶素子２は、“０”が記憶された状態であると判断できる。すなわち、情報の読み出し動作が行える。
【００４２】
上述したように、ＳｐＲＡＭ１においては記憶素子が記憶されている情報に応じて高抵抗状態と低抵抗状態のどちらか一方をとる。本例では、高抵抗状態を“１”、低抵抗状態を“０”とする。このとき、ＳｐＲＡＭ１における主要な不良要因であるトンネル絶縁層の静電破壊及び初期低抵抗不良は、いずれも記憶素子の抵抗値を著しく減少させることに注目する。
【００４３】
センスアンプ１０によって読み出しを行う場合、リファレンス抵抗値との大小比較により出力値を確定させるので、記憶素子２が必ず“０”を出力することになる。
すなわちこのような記憶素子２に対し、“０”を書き込んだ後に読み出しを行った場合には、書き込み動作によって抵抗が変化したわけではないものの、結果としてセンスアンプ１０が正しく“０”を読み出すことができる。
反対に、“１”を書き込んだ後に読み出しを行った場合には、書き込み動作によって抵抗が変化しないので、センスアンプ１０が必ず誤った“０”を読み出すことになる。このことを踏まえた上で、次に、本例のＳｐＲＡＭ１が行う反転フラッグ素子４１を用いた読み出し処理の例について説明する。
【００４４】
図３は、複数の記憶素子２を有する記憶ブロック４０の例を示す。
図３Ａは、読み出しに係わる情報単位の例を示す模式図である。
センスアンプ１０は、８ビットのデータを記憶するデータ素子４０ａ〜４０ｈと、１ビットの反転フラッグ素子４１を、１単位の記憶ブロック４０として読み出しを行う。本例では、記憶ブロック４０が９ビットを１単位とする９つの記憶素子２で構成されるため、特定の１個の記憶素子２を反転フラッグ素子４１として用いると、他の記憶素子２には、９ビットから１ビットを減じた８ビットの情報が記憶される。
【００４５】
読み出し時には、まず、センスアンプ１０が全てのビットを読み出してＣＮＯＴ（Controlled NOT）回路４２を通過させる。次に、反転フラッグ素子４１が“０”であれば、ＣＮＯＴ回路４２からデータ素子４０ａ〜４０ｈのデータをそのまま出力する。逆に、反転フラッグ素子４１が“１”であれば、ＣＮＯＴ回路４２からデータ素子４０ａ〜４０ｈの全てのビットの“０”と“１”とを置き換えたデータを出力する。
【００４６】
図３Ｂは、ビット２に該当するデータ素子４０ｃが不良素子である場合を示す。
この場合、ビット２以外のデータ素子４０ａ，４０ｂ，４０ｄ〜４０ｈには“０”又は“１”の情報をどちらも正しく書き込むことが出来るが、ビット２に該当するデータ素子４０ｃは常に“０”状態にある。このため、ビット２に該当するデータ素子４０ｃに書き込むデータが“０”である場合は、そのままのデータをビット０からビット７に該当するデータ素子４０ａ〜４０ｈに書き込み、反転フラッグ素子４１には“０”を書き込む。そうすると前述の読み出し方法によって正しいデータを読み出すことができる。
【００４７】
次に、ビット２に該当するデータ素子４０ｃに書き込むデータが“１”である場合は、データの“０”と“１”とを入れ替えたデータをビット０からビット７に該当するデータ素子４０ａ〜４０ｈに書き込み、反転フラッグ素子４１には“１”を書き込む。このときビット２に該当するデータ素子４０ｃに書き込まれたデータは“０”に変換されるので、必ず“０”であるビット２の状態に合致する。データの読み出し時には反転フラッグ素子４１が“１”であるので、再度データ素子４０ａ〜４０ｈに書き込まれたデータの“０”と“１”とを入れ替えるため、正しくデータを再現して読出すことができる。
【００４８】
図３Ｃは、反転フラッグ素子４１が不良素子である場合を示す。
不良素子はどの記憶素子（データ素子４０ａ〜４０ｈ、反転フラッグ素子４１）についても対等に発生するため、反転フラッグ素子４１に不良素子が発生することもある。この場合、反転フラッグ素子４１自身が“０”に固定されるので、読み出し時はＣＮＯＴ回路４２からビット０からビット７のデータがそのまま出力される。このため、ビット０からビット７の全てのデータ素子４０ａ〜４０ｈが正常であるかぎり、正しく読み出し動作と書き込み動作を行うことができる。
【００４９】
図４は、４ビットの記憶素子のうち、２ビット以上の記憶素子が不良素子となる場合の例を示す。
図４Ａは、２ビットの記憶素子が不良素子となる場合を示す。
図４Ｂは、３ビットの記憶素子が不良素子となる場合を示す。
【００５０】
データ素子４０ａ〜４０ｈに書き込まれるデータのパターンは、２×２＝４通り、又は、２×２×２＝８通りである。
全ての不良素子に“０”を書き込む場合は反転フラッグ素子４１を“０”とし、全ての不良素子に“１”を書き込む場合は反転フラッグ素子４１を“１”とすれば問題なく書き込みと読み出しを行うことが出来る。
【００５１】
ただし、“０”と“１”が混在したデータを書き込む場合は、センスアンプ１０は、反転フラッグ素子４１にかかわらず、少なくとも１つ以上のビットが正しく読み出せない。ここで、図４Ａ，図４Ｂ中において、灰色の下地をつけた部分が正しく読み出せないビットに該当する。そして、正しく読み出せないビットの個数の最大値は、２ビットが不良素子である場合に“１”、３ビットが不良素子である場合に“２”となる。
【００５２】
一般に、（不良素子数−１）のビットが、データの書き込みも読み出しも行えない不良ビットとして残る。ここで、不良素子に反転フラッグ素子４１が含まれている場合は、反転フラッグ素子４１に対する不良以外がそのまま不良ビットとなるから、同様に（不良素子数−１）のビットが不良ビットとして残る。このように本例のＳｐＲＡＭ１は、反転フラッグ素子４１を用いることによって、記憶ブロック４０に発生した不良素子によるデータの書き込み又は読み出し時のエラーの影響を、不良素子数から一つ減らす効果を奏する。
【００５３】
本例において、ＳｐＲＡＭ１から情報を読み出す際には、同時に誤り訂正符号（ＥＣＣ）を用いることもできる。誤り訂正符号はどのような種類であっても構わないが、例えば（１２，８）符号を用いる。（１２，８）符号は、８ビットのデータを１２ビットの符号に符号化することを表す。そして、１２ビットのうち１ビットのエラーを検出して訂正した後、８ビットのデータに復号する。この符号化と、復号化の仕組みについては、例えば、技術文献〔A Systematic (12,8) Code for Correcting Single Errors and Detecting Adjacent Errors, Jay W. Schwartz and Jack Keil Wolf, IEEE Transactions on Computers,Volume 39 , Issue 11 (1990) Pages: 1403 - 1404〕に記載されている。
【００５４】
図５は、記憶素子２に情報を書き込む場合におけるフローチャートを示す。
一般に、ＳｐＲＡＭ１が有する記憶素子２が不良素子である割合（不良素子率）は低い。このため、始めは、反転フラッグ素子４１を用いることなく、電圧制御部１１から供給される書き込み電圧に従って、書き込み部が記憶ブロック４０に書き込みを試みる（ステップＳ１）。すなわち、書き込み部が記憶ブロックに情報を初めて書き込む場合には、反転フラッグ素子４１への書き込みデータを“０”に設定し、データ素子４０ａ〜４０ｈへの書き込みデータをそのまま設定する。
【００５５】
次に、電圧制御部１１から供給される書き込み電圧に従って、書き込み部が記憶ブロック４０に実際の書き込みを行う（ステップＳ２）。次に、センスアンプ１０がデータ素子４０ａ〜４０ｈから８ビットのデータを読み出し（ステップＳ３）、データ素子４０ａ〜４０ｈに８ビットのデータが正しく書き込まれているか否かを判定する。
【００５６】
このとき、センスアンプ１０は、１ビットの情報を記憶する記憶素子を所定の単位数有する記憶ブロックの内、特定の１個の記憶素子を反転フラッグ素子４１として用いて読み出しを行う。そして、反転フラッグ素子４１に書き込まれた１ビットの情報が、第２の値（“０”）であるため、他の記憶素子に書き込まれた所定の単位数−１ビットの情報（本例では８ビットの情報）をそのまま読み出す。センスアンプ１０は、８ビットのデータが記憶素子２に書き込まれていることを確認すると書き込みを終了する。
【００５７】
センスアンプ１０は、１ビット以上のデータが正しく書き込まれていないことを判定した場合には、センスアンプ１０は、記憶ブロック４０中に不良素子が発生していると判断し、反転フラッグ素子４１を用いた書き込みへ移行する。すなわち、反転フラッグ素子４１への書き込みデータを“１”、データ素子への書き込みデータを書き込みたいデータの“０”と“１”とを入れ替えたデータに設定する（ステップＳ４）。
【００５８】
再び、電圧制御部１１から供給される書き込み電圧に従って、書き込み部が記憶ブロック４０に実際の書き込みを行う（ステップＳ５）。すなわち、書き込み部は、反転フラッグ素子４１への書き込みデータを“１”、データ素子４０ａ〜４０ｈへの書き込みデータをビット反転して、少なくとも１回以上書き込むことを書き込み部に指示する。
【００５９】
ここで、ステップＳ２，Ｓ５における記憶ブロック４０への書き込み時に用いられる書き込み電圧は一定である。次に、センスアンプ１０が読み出しを行い、８ビットのデータが正しく書き込まれていれば書き込みを終了する（ステップＳ６）。
【００６０】
このとき、センスアンプ１０は、反転フラッグ素子に書き込まれた１ビットの情報が、第１の値（“１”）であるため、他の記憶素子に書き込まれた所定の単位数−１ビットの情報をビット反転して読み出す。
【００６１】
書き込みができなかった場合（ステップＳ７）には、正しいデータを書き込むことを断念し、誤り訂正符号（以下、ＥＣＣ：Error Correcting Code）による救済に期待することになる。なお、反転フラッグ素子４１が“０”のときに正しく書けていないビット数が、反転フラッグ素子４１が“１”のときに正しく書けていないビット数よりも少ない場合には、再度反転フラッグ素子４１を“０”に設定する。そして、書き込みたいデータをそのまま設定して、データ素子４０ａ〜４０ｈに書き込みを行うことも出来る。
【００６２】
以上は、ＳｐＲＡＭ１を念頭においた書き込み方法について説明したものであるが、他の種類のメモリに適用する場合には、「書き込み電圧」を適宜、適用するメモリに合わせた書き込み動作量に置き換えればよい。
【００６３】
以下、本例の反転フラッグ素子４１を付加した記憶ブロックの構成例について、従来の記憶ブロックを比較例として参照しながら説明する。ここでは、不良素子の発生する確率をｒとし、次式（１）で定義した関数を適宜用いる。次式（１）において、ｆ（ｎ，ｍ，ｒ）は、ｎビットの中で丁度ｍビットがエラーを起こす確率を表す。また、Ｆ（ｎ，ｓ，ｒ）は、ｎビットの中でｓ＋１ビット以上がエラーを起こす確率を表す。このように変数ｓはエラーとなるビット数の程度を表す。
【００６４】
【数１】
2011008850.tif 000003
【００６５】
（比較例ａ）
記憶ブロック５０は、ＥＣＣを用いない従来の記憶ブロックの構造例を示す。
記憶ブロック５０は８ビットのデータ素子からなり、正味８ビットの情報を格納できる。ただし、８ビットのデータ素子のうち、１ビットでも不良が発生すると、８ビットのデータ素子全体として正しく動作しなくなる。ここで、記憶ブロック５０のブロック不良率（記憶ブロックに含まれる記憶素子が不良である割合）は、１−（１−ｒ）８＝Ｆ［８，０，ｒ］で表される。
【００６６】
（比較例ｂ）
記憶ブロック５５は、ＥＣＣを用いた従来の記憶ブロックの構造例を示す。
記憶ブロック５５は１２ビットのデータ素子からなり、正味８ビットの情報を格納できる。ただし、８ビットのデータ素子のうち、２ビット以上の不良が発生すると、１２ビットのデータ素子全体として正しく動作しない。ここで、記憶ブロック５５のブロック不良率は、Ｆ［１２，１，ｒ］で表される。
【００６７】
（実施例Ａ）
記憶ブロック４０は、ＥＣＣを用いない場合における本発明に係る記憶ブロックの構造例を示す。
記憶ブロック４０は８ビットのデータ素子と１ビットの反転フラッグ素子４１からなり、正味８ビットの情報を格納できる。上述したように、反転フラッグ素子４１を用いたことによりエラー訂正能力が１ビット向上するため、記憶ブロック４０のブロック不良率はＦ［９，１，ｒ］で表される。
【００６８】
（実施例Ｂ）
記憶ブロック４５は、ＥＣＣを用いた場合における本発明に係る記憶ブロックの構造例を示す。
記憶ブロック４５は１２ビットのデータ素子と１ビットの反転フラッグ素子４１からなり、正味８ビットの情報を格納できる。上述したように、反転フラッグ素子４１を用いたことによりエラー訂正能力が１ビット向上するため、記憶ブロック４５のブロック不良率はＦ［１３，２，ｒ］で表される。
【００６９】
（実施例Ｃ１〜Ｃ３）
ところで、メモリデバイス（ＳｐＲＡＭ１）を設計する際にはデータ幅は２のべき乗であることが望ましい。そこで、８×３＝２４ビットを２分割し、１２ビットの符号データ２つに対応させることが考えられる。
実施例Ｃ１〜Ｃ３は、この場合の本発明に係る記憶ブロックの構造例を示す。
【００７０】
３つの記憶ブロック４６ａ〜４６ｃは、いずれも８ビットのデータ素子と１ビットの反転フラッグ素子４１からなる。ここで、記憶ブロック４６ａのデータ素子と、記憶ブロック４６ｃの下位４ビットのデータ素子を用いて１２ビットの符号データとすることにより、記憶ブロック４６ａ，４６ｂに正味８ビットの情報を格納する。このため、記憶ブロック４６ａと記憶ブロック４６ｃの下位４ビットからなる１２ビットのうち、１ビットのエラーはＥＣＣにより訂正できる。
【００７１】
同様に、記憶ブロック４６ｂのデータ素子と記憶ブロック４６ｃの上位４ビットのデータ素子を用いて１２ビットの符号データとすることにより、記憶ブロック４６ｂ，４６ｃに正味８ビットの情報を格納する。結局、記憶ブロック４６ａ〜４６ｃで１６ビットの情報を格納することとなる。
【００７２】
図７は、記憶ブロック４６ａ〜４６ｃを用いた場合に許される不良素子の配置例を示す。
データ素子に不良が発生する不良パターンの例として、記憶ブロック４６ａ，４６ｂに対しては不良パターンＰ１、記憶ブロック４６ｃに対して不良パターンはＰ２がある。
【００７３】
不良パターンＰ１，Ｐ２は、各記憶ブロックが反転フラッグ素子４１を備えたことによって、各記憶ブロックにおけるデータ素子の不良による影響が１ビット以下になる。不良パターンＰ１のパターン数が５であり、不良パターンＰ２のパターン数が１３であることにより、全体のパターン数の組合せは、５×５×１３＝３２５通りある。しかし、１２ビットの符号データにまとめた後の不良数が２ビット以上となる場合を除外すると、全体のパターン数の組合せは、２３３通りとなる。ここで、２３３通りとは、計算プログラムをコンピュータに計算させて得られる、全てのパターンの中から当該パターンを数えた結果を表す。そして、不良素子の発生する確率ｒを総当りで計算することでブロック不良率が計算できる。ただし、他の例との比較のため、ブロック不良率は正味８ビット当たりの値に換算する。
【００７４】
（実施例Ｄ１〜Ｄ３）
記憶ブロック４７ａ〜４７ｃは、実際例Ｃ１〜Ｃ３に係る記憶ブロック４６ａ〜４６ｃをさらに細分化したものである。３つの記憶ブロック４７ａ〜４７ｃはいずれも４ビットのデータ素子と１ビットの反転フラッグ素子４１からなる。この場合、４×３＝１２ビットの符号データとすることによって、記憶ブロック４７ａ〜４７ｃに正味８ビットの情報を格納する。このように情報を格納すれば、実際例Ｃ１〜Ｃ３と同様に、総当りでブロック不良率を計算できる。
【００７５】
次に、各実施例に係る記憶ブロックを用いた場合におけるブロック不良率について検証する。
図８に示す曲線は、上述した比較例ａ，ｂと実施例Ａ，Ｂ，Ｃ１〜Ｃ３，Ｄ１〜Ｄ３から求められる、不良素子率ｒに対するブロック不良率の関係を示す。
図中の数値は、各比較例ａ，ｂと実施例Ａ，Ｂ，Ｃ１〜Ｃ３，Ｄ１〜Ｄ３における、情報８ビット当りに必要となる記憶素子数を表す。
【００７６】
各曲線は、不良素子率ｒが低い領域で直線に近似することが可能であり、その傾きはエラー訂正能力に依存する。すなわちエラー訂正能力のない比較例ａに示した記憶ブロック５０は傾き１で示される。一方、エラー訂正能力が１である比較例ｂに示した記憶ブロック５５と実施例Ａに示した記憶ブロック４０は傾き２で示される。また、エラー訂正能力が２である実施例Ｂ，Ｃ，Ｄに示した記憶ブロック４５，４６ａ〜４６Ｃ，４７ａ〜４７ｃは傾き３で示される。このようにエラー訂正能力が高くなるほどブロック不良率は不良素子率ｒとともに急激に減少する。
【００７７】
ここで、比較例ｂに対応する曲線と、実施例Ａに対応する曲線を比較すると、実施例Ａに係る記憶ブロック４０のブロック不良率が優れていることが分かる。さらに、情報８ビットあたりの記憶素子数を比較すると、比較例ｂに係る記憶ブロック５５の記憶素子数が“１２”であるのに対して、実施例Ａに係る記憶ブロック４０の記憶素子数が“９”であり、３／４の数になっている。これは記憶素子２がＳｐＲＡＭ１中で占有する面積を減少させるのに有利である。このように不良素子が“０”のみの場合には、通常のＥＣＣを用いるよりも、本発明に係る反転フラッグ素子４１を記憶ブロックに付加して用いるほうが有利であると言える。
【００７８】
また、実施例Ｂ，Ｃ１〜Ｃ３，Ｄ１〜Ｄ３に対応する曲線よりブロック不良率が示されるように、本発明に係る技術とＥＣＣを組み合わせることにより、より強力なエラー訂正が実現できる。この場合、ブロック不良率は、実施例Ｂ，Ｃ１〜Ｃ３，Ｄ１〜Ｄ３に係る記憶ブロック４５，４６ａ〜４６ｃ，４７ａ〜４７ｃの順で改善している。ここで、実施例Ｃ１〜Ｃ３，Ｄ１〜Ｄ３に係る記憶ブロック４６ａ〜４６ｃ，４７ａ〜４７ｃは、データ幅を２のべき乗にしているため、メモリ設計に都合がよいブロック構造になっている。
【００７９】
以上説明した第１の実施の形態に係るＳｐＲＡＭ１によれば、反転フラッグ素子４１を付加した記憶ブロックを用いてエラー訂正をする場合であって、不良素子の出力が必ず“０”である場合に、センスアンプ１０が正しくデータを読み出すことができる。逆に、不良素子の出力が必ず“１”である場合も、センスアンプ１０が反転フラッグ素子４１の解釈を修正すれば正しくデータを読み出すことができる。このため、本例のように反転フラッグ素子４１を用いてデータを書き込んだ場合、反転フラッグ素子４１の情報に基づいて記憶ブロックからデータを読み出すことによって、不良素子によるエラー読取りの可能性を著しく減少できるという効果がある。
【００８０】
＜２．第２の実施の形態＞
［書き込み電圧を可変とした場合における書き込み制御の例］
【００８１】
次に、本発明に係る第２の実施の形態例について説明する。
本例では、書き込み電圧を可変とした場合における書き込み制御を行うメモリに適用した例について説明する。以下の説明において、既に第１の実施の形態で説明した図１と図３に対応する部分には同一符号を付し、詳細な説明を省略する。
【００８２】
本例のＳｐＲＡＭ１においても、読み出し部（本例ではセンスアンプ１０）は、記憶素子２から出力された電圧値に基づいて、書き込みが成功したか否かを判定する。センスアンプ１０が、途中で書き込みが成功したことを判定すると、電圧制御部１１は、記憶素子２に対する書き込み電圧の印加を停止するが、書き込みが失敗したことを判定すると、電圧制御部１１に対して書き込み電圧の増加を指示する。
【００８３】
具体的には、センスアンプ１０は、記憶ブロックに情報を初めて書き込む場合には、反転フラッグ素子に第２の値（本例では、“０”）を書き込み、他の記憶素子には所定の単位数−１ビットの情報をそのまま書き込む。そして、センスアンプ１０が記憶ブロックから他の記憶素子に書き込まれた所定の単位数−１ビットの情報をそのまま読み出す。この結果、センスアンプ１０が他の記憶素子に所定の単位数−１ビットの情報が正しく書き込まれていることを判定した場合には、書き込み部による情報の書き込みを終了させる。
【００８４】
一方、センスアンプ１０が１ビット以上のデータが正しく書き込まれていないことを判定した場合には、書き込み部に以下の動作を指示する。すなわち、反転フラッグ素子に第１の値（本例では、“１”）を書き込ませ、他の記憶素子に所定の単位数−１ビットの情報をビット反転して、少なくとも１回以上書き込ませる。
【００８５】
そして、センスアンプ１０が記憶ブロックから他の記憶素子に書き込まれた所定の単位数−１ビットの情報をそのまま読み出す。この結果、センスアンプ１０が１ビット以上のデータが正しく書き込まれていないと判定した場合には、電圧制御部１１に対して、書き込み電圧を増加する指示を行い、再度書き込み部に書き込みをさせる。
【００８６】
図９は、書き込み電圧に対するビットエラー率Ｒｂの例を示す。
ただし、１０―６以下の書き込みエラー率は測定では求まらないため、測定結果を直線で外挿して計算した。
ここで、実線６２は、書き込みエラー率を表し、破線６３は、破壊のビットエラー率Ｒｂを表す。
【００８７】
破壊のビットエラー率Ｒｂは、複数の記憶素子２に一定の電圧を印加したことにより、記憶素子２が破壊するまでの時間を測定する定ストレス試験によって、ワイブル分布および及びパワーローモデルのパラメータを決定して求めることができる。この図より、書き込みエラー率は書き込み電圧の増加とともに減少し、反対に、破壊のビットエラー率Ｒｂは書き込み電圧の増加とともに増加することが示される。
【００８８】
図９より、書き込み電圧が０．６５Ｖである場合、書き込みエラー率が“−４”、つまり、１万回に１回だけ書き込みが失敗することが分かる。しかし、記憶素子２に対して、できるだけストレスをかけないようにするためには、書き込み電圧は低い方がよい。このため、本例では、書き込み電圧の初期値を低く設定し、書き込みに失敗した場合に、書き込み電圧を徐々に高めて再度書き込みを行うようにした。
【００８９】
図１０は、記憶素子２に情報を書き込む場合におけるフローチャートを示す。
始めは、反転フラッグ素子４１を用いることなく、電圧制御部１１から供給される書き込み電圧に従って、記憶ブロック４０に書き込みを試みる（ステップＳ１１）。すなわち、反転フラッグ素子４１への書き込みデータを“０”、データ素子４０ａ〜４０ｈへの書き込みデータをそのまま設定する。
【００９０】
次に、書き込み電圧を初期値に設定し（ステップＳ１２）、電圧制御部１１から供給される書き込み電圧に従って、書き込み部が記憶ブロック４０に実際の書き込みを行う（ステップＳ１３）。次に、センスアンプ１０がデータを読み出し、所望のデータが書き込まれているか否かを判定する（ステップＳ１４）。
【００９１】
センスアンプ１０が所望のデータが書き込まれていることを確認すると書き込みを終了する。１ビット以上のデータが正しく書き込まれていないと判断した場合には、書き込み電圧を増加し（ステップＳ１５）、増加した書き込み電圧が、許容される最大値を超えるか否かを判定する（ステップＳ１６）。増加した書き込み電圧が、許容される最大値を超えていない場合、ステップＳ１３に処理を移し、再度書き込み部がデータを書き込む。書き込み部は、このループを、書き込み電圧が最大電圧に達するまで繰り返す。
【００９２】
ここで、本例では、最大電圧を０．７０Ｖとする。この値は、図９から示されるように、書き込みエラー率を示す実線６２と、破壊のビットエラー率Ｒｂを示す破線６３の交点に該当する。そして、最大電圧を超えると、書き込みエラー率より、破壊のビットエラー率Ｒｂの方が上回ってしまう。このため、書き込み電圧の上限を最大電圧までとする必要がある。
【００９３】
このループの中においても正しく書き込めなかった場合には、センスアンプ１０は、記憶ブロック４０中に不良素子が発生していると判断し、反転フラッグ素子４１を用いた書き込みへ移行する。すなわち、反転フラッグ素子４１への書き込みデータを“１”とし、データ素子への書き込みデータを書き込みたいデータの“０”と“１”とを入れ替えたデータに設定する（ステップＳ１７）。
【００９４】
再び、書き込み電圧を初期値に設定した後（ステップＳ１８）、電圧制御部１１から供給される書き込み電圧に従って、書き込み部が記憶ブロック４０に実際の書き込みを行う（ステップＳ１９）。次に、センスアンプ１０が読み出し、所望のデータが書き込まれているか否かを判定する（ステップＳ２０）。センスアンプ１０が所望のデータが書き込まれていることを確認すると、書き込みを終了する。
【００９５】
センスアンプ１０は、１ビット以上のデータが正しく書き込まれていないと確認すると、書き込み電圧を増加し（ステップＳ２１）、増加した書き込み電圧が、許容される最大値を超えるか否かを判定する（ステップＳ２２）。増加した書き込み電圧が、許容される最大値を超えていない場合、ステップＳ１９に処理を移し、再度書き込み部が書き込む。書き込み部は、このループを、書き込み電圧が最大電圧に達するまで繰り返す。
【００９６】
書き込み電圧が最大電圧に達しても書き込めなかった場合、エラー判定を行う（ステップＳ２３）。このとき、正しいデータを書き込むことを断念し、ＥＣＣによる救済に期待することになる。
【００９７】
なお、反転フラッグ素子４１が“０”のときに正しく書けていないビット数が、反転フラッグ素子４１が“１”のときに正しく書けていないビット数よりも少ない場合には、再度反転フラッグ素子４１を“０”に設定する。そして、書き込みたいデータをそのまま設定して、データ素子４０ａ〜４０ｈに書き込みを行うことも出来る。
【００９８】
以上説明した第２の実施の形態によれば、初期値に設定した書き込み電圧であってもデータを書き込むことができない場合に、最大電圧に達するまで書き込み電圧を増加させることにより、記憶素子２に確実に書き込むことが可能となった。ここで、書き込み電圧が初期値であっても、１万回に１回失敗する程度の確率で書き込むことができる。このため、記憶素子２に加わる電圧は低く、記憶素子２の破壊を防ぐことができる。また、書き込みが失敗したとしても、電圧を上げることで書き込みの成功率を高めることができる。このように、記憶素子２に加えるストレスをできるだけ減らして書き込むことが可能であるため、ＳｐＲＡＭ１の使用可能な期間を延ばすことができるという効果がある。
【００９９】
＜３．変形例＞
なお、不良素子の発生がある場合には、ＳｐＲＡＭ１に限らず、他のメモリであっても本発明に係る技術を適用することが出来る。記憶素子２に発生する不良の原因は、ＳｐＲＡＭ１の場合のように低抵抗になる場合はもちろん、高抵抗になる場合等どのようなものでもよい。
【０１００】
また、上述した実施の形態に係る情報処理方法は、ＳｐＲＡＭ１を念頭においた書き込み方法であるが、その他の種類のメモリに適用する場合には、「書き込み電圧」を適宜別の書き込み動作量に置き換えればよい。
【０１０１】
また、上述した実施の形態に係る記憶素子２では、磁化固定層１５を記憶層１６より下層に形成しているが、磁化固定層を記憶層より上層に形成した構成としてもよい。また、上述した実施の形態では、磁化固定層１５を強磁性層２２，２４の２層によって構成しているが、磁化固定層１５を構成する強磁性層の数は特に限定されない。
【０１０２】
また、本実施の形態では、記憶層１６の下層にのみ磁化固定層１５を形成しているが、別の磁化固定層を記憶層１６の上層にも形成し、２つの磁化固定層で記憶層を挟む構成にすることもできる。このときには、別の磁化固定層を構成する強磁性層のうち、記憶層に最も近い層の磁化の向きは、磁化固定層１５を構成する強磁性層２４の磁化の向きとは反対方向に固定されていることが望ましい。また、別の磁化固定層と記憶層１６を隔てる層は、トンネル絶縁層２５と同様に絶縁体であってもよいし、Ｒｕ，Ｔａ，Ｃｒ，Ｃｕ等の非磁性金属であってもよい。
【０１０３】
また、本発明は、上述の構成に限定されるものではなく、本発明の要旨を逸脱しない範囲でその他様々な構成を取り得る。
【符号の説明】
【０１０４】
１…ＳｐＲＡＭ、２…記憶素子、３…選択用ＭＯＳトランジスタ、５…セルアレイ、６…ローデコーダ、７…カラムスイッチ、８…ＳＬライトドライバ、９…ＢＬライトドライバ、１０…センスアンプ、１１…電圧制御部、１２…ビット線、１３…ソース線、１４…ワード線、１５…磁化固定層、１６…記憶層、１７…接続プラグ、２０…下地膜、２１…反強磁性層、２２…強磁性層、２３…非磁性層、２４…強磁性層、２５…トンネル絶縁層、２６…強磁性層、２７…トップコート層、３０…シリコン基板、３１…ゲート、３２…拡散層、３３…拡散層、４０…記憶ブロック、４０ａ〜４０ｃ…データ素子、４１…反転フラッグ素子、４２…ＣＮＯＴ回路、４５…記憶ブロック、４６ａ〜４６ｃ…記憶ブロック、４７ａ〜４６ｃ…記憶ブロック、５０…記憶ブロック、５５…記憶ブロック
【図１】
2011008850.tif 000004
【図２】
2011008850.tif 000005
【図３】
2011008850.tif 000006
【図４】
2011008850.tif 000007
【図５】
2011008850.tif 000008
【図６】
2011008850.tif 000009
【図７】
2011008850.tif 000010
【図８】
2011008850.tif 000011
【図９】
2011008850.tif 000012
【図１０】
2011008850.tif 000013