(57)【要約】      （修正有）【課題】メモリの１ビット当りの指示の情報量を複数ビットとすることにより、適応的な制御を行う。【解決手段】記憶制御装置は、メモリの記憶状態を取得するメモリ状態取得部と、操作指示を生成する操作指示生成部とを備える。メモリ状態取得部は、ライト対象に係るメモリの記憶状態を取得する。操作指示生成部は、取得された記憶状態とライトデータとからライト対象に係るメモリの１セル（１ビット）当り少なくとも２ビットの操作指示を生成する。【選択図】図４
2014022004.tif 000002
【特許請求の範囲】
【請求項１】
ライト対象に係るメモリの記憶状態を取得するメモリ状態取得部と、
前記取得された記憶状態とライトデータとから前記ライト対象に係るメモリの１セル当り少なくとも２ビットの操作指示を生成する操作指示生成部と
を具備する記憶制御装置。
【請求項２】
前記メモリ状態取得部は、
前記ライト対象に係るメモリに記憶されているデータを読み出してリードデータとするリード処理部と、
前記リードデータについてエラー検出を行って、エラーが検出された位置を示すエラー位置情報を生成するエラー検出部とを備え、
前記リードデータおよび前記エラー位置情報を前記記憶状態として取得する
請求項１記載の記憶制御装置。
【請求項３】
前記操作指示は、前記ライト対象に係るメモリに対する書込みの極性および強度の組合せに関する指示を含む請求項１記載の記憶制御装置。
【請求項４】
前記メモリが可変抵抗素子である場合において、
前記書込みの極性は、前記可変抵抗素子において所定の閾値により判別される高抵抗状態または低抵抗状態の何れか一方の状態であり、
前記書込みの強度は、前記可変抵抗素子における抵抗状態の強度である
請求項３記載の記憶制御装置。
【請求項５】
前記操作指示は、前記ライト対象に係るメモリに対する互いに異なる極性の２回の書込みに関する指示を含む請求項１記載の記憶制御装置。
【請求項６】
前記操作指示生成部は、前記操作指示を可変長符号により符号化する
請求項１記載の記憶制御装置。
【請求項７】
複数のメモリセルからなるメモリと、
前記ライト対象に係る前記メモリセルの１セル当り少なくとも２ビットの操作指示を取得する操作指示取得部と、
前記操作指示に従って前記ライト対象に係る前記メモリセルに対するライト処理を行う制御部と
を具備する記憶装置。
【請求項８】
複数のメモリセルからなるメモリと、
ライト対象に係る前記メモリセルの記憶状態を取得するメモリ状態取得部と、
前記取得された記憶状態とライトデータとから前記ライト対象に係る前記メモリセルの１セル当り少なくとも２ビットの操作指示を生成する操作指示生成部と、
前記操作指示に従って前記ライト対象に係る前記メモリセルに対するライト処理を行う制御部と
を具備する記憶装置。
【請求項９】
ライト対象に係るメモリの記憶状態を取得するメモリ状態取得手順と、
前記取得された記憶状態とライトデータとから前記ライト対象に係るメモリの１セル当り少なくとも２ビットの操作指示を生成する操作指示生成手順と
を具備する記憶制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、記憶制御装置に関する。詳しくは、不揮発性メモリのための記憶制御装置、記憶装置、情報処理システム、および、これらにおける処理方法ならびに当該方法をコンピュータに実行させるプログラムに関する。
【背景技術】
【０００２】
情報処理システムにおいては、ワークメモリとしてＤＲＡＭ（Dynamic Random Access Memory）等が用いられる。このＤＲＡＭは、通常、揮発性メモリであり、電源の供給が停止するとその記憶内容は消失する。一方、近年、不揮発性メモリ（ＮＶＭ：Non-Volatile Memory）が用いられるようになっている。この不揮発性メモリとしては、大きなサイズを単位としたデータアクセスに対応したフラッシュメモリと、小さな単位での高速なランダムアクセスが可能な不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ：Non-Volatile RAM）とに大別される。ここで、フラッシュメモリの代表例としては、ＮＡＮＤ型フラッシュメモリが挙げられる。一方、不揮発性ランダムアクセスメモリの例としては、ＲｅＲＡＭ（Resistance RAM）、ＰＣＲＡＭ（Phase-Change RAM）、ＭＲＡＭ（Magnetoresistive RAM）などが挙げられる。
【０００３】
従来の一般的なメモリシステムでは、メモリに対する書込みの指示における情報量は、メモリに書き込む１ビット当り１ビットであり、書込み動作後のメモリセルの状態が０または１の何れになるかの二者択一となっていた（例えば、非特許文献１参照。）。これは、例えば、ＤＲＡＭに対するライトコマンドにおいて、ライトイネーブル端子をアサートした状態でデータバスがラッチされ、ラッチされたデータが指定されたアドレスに対して書き込まれることに対応する。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】桑野雅彦著：「メモリＩＣの実践活用法」、ＣＱ出版社、２００１年９月、ｐ．５４、１００、１２０、１９１
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述の従来技術では、メモリの１ビット当り指示の情報量が１ビットであるため、メモリ外部から与えることができる情報が限られたものとなっていた。一方、ＲｅＲＡＭやＰＣＲＡＭなどの不揮発性ランダムアクセスメモリを用いるメモリシステムでは、高効率のエラー訂正機能を併用することが多い。そのような高効率のエラー訂正機能は、ハードウェア規模が大きいため、例えばメモリコントローラと呼ばれるメモリの外部のチップに置かれることが多い。また、このようなメモリシステムでは、エラー訂正機能により知ることができるエラー位置情報などを用いて適応的な制御を行う可能性があるが、従来の一般的なメモリにおけるインターフェースの機能限界から、適応的な制御を行うことが困難であった。
【０００６】
本技術はこのような状況に鑑みて生み出されたものであり、メモリの１ビット当りの指示の情報量を複数ビットとすることにより、適応的な制御を行うことを目的とする。
【課題を解決するための手段】
【０００７】
本技術は、上述の問題点を解消するためになされたものであり、その第１の側面は、ライト対象に係るメモリの記憶状態を取得するメモリ状態取得部と、上記取得された記憶状態とライトデータとから上記ライト対象に係るメモリの１セル当り少なくとも２ビットの操作指示を生成する操作指示生成部とを具備する記憶制御装置またはその制御方法である。これにより、ライト対象に係るメモリの記憶状態に応じて適応的な制御を行うという作用をもたらす。
【０００８】
また、この第１の側面において、上記メモリ状態取得部は、上記ライト対象に係るメモリに記憶されているデータを読み出してリードデータとするリード処理部と、上記リードデータについてエラー検出を行って、エラーが検出された位置を示すエラー位置情報を生成するエラー検出部とを備え、上記リードデータおよび上記エラー位置情報を上記記憶状態として取得するようにしてもよい。これにより、リードデータおよびエラー位置情報に応じて適応的な制御を行うという作用をもたらす。
【０００９】
また、この第１の側面において、上記操作指示は、上記ライト対象に係るメモリに対する書込みの極性および強度の組合せに関する指示を含むようにしてもよい。これにより、ライト対象に係るメモリの記憶状態に応じて書込みの極性および強度の組合せを制御するという作用をもたらす。
【００１０】
この場合において、上記メモリが可変抵抗素子である場合において、上記書込みの極性は、上記可変抵抗素子において所定の閾値により判別される高抵抗状態または低抵抗状態の何れか一方の状態であり、上記書込みの強度は、上記可変抵抗素子における抵抗状態の強度であるようにしてもよい。
【００１１】
また、この第１の側面において、上記操作指示は、上記ライト対象に係るメモリに対する互いに異なる極性の２回の書込みに関する指示を含むようにしてもよい。これにより、連続して同じ極性の書込みを回避するという作用をもたらす。
【００１２】
また、この第１の側面において、上記操作指示生成部は、上記操作指示を可変長符号により符号化するようにしてもよい。これにより、操作指示のサイズを小さくするという作用をもたらす。
【００１３】
また、本技術の第２の側面は、複数のメモリセルからなるメモリと、上記ライト対象に係る上記メモリセルの１セル当り少なくとも２ビットの操作指示を取得する操作指示取得部と、上記操作指示に従って上記ライト対象に係る上記メモリセルに対するライト処理を行う制御部とを具備する記憶装置である。これにより、ライト対象に係るメモリセルの記憶状態に応じて適応的な制御を受けるという作用をもたらす。
【００１４】
また、本技術の第３の側面は、複数のメモリセルからなるメモリと、ライト対象に係る上記メモリセルの記憶状態を取得するメモリ状態取得部と、上記取得された記憶状態とライトデータとから上記ライト対象に係る上記メモリセルの１セル当り少なくとも２ビットの操作指示を生成する操作指示生成部と、上記操作指示に従って上記ライト対象に係る上記メモリセルに対するライト処理を行う制御部とを具備する記憶装置である。これにより、ライト対象に係るメモリセルの記憶状態に応じて適応的な制御を行うという作用をもたらす。
【発明の効果】
【００１５】
本技術によれば、メモリの１ビット当りの指示の情報量を複数ビットとすることにより、適応的な制御を行うことができるという優れた効果を奏し得る。
【図面の簡単な説明】
【００１６】
【図１】本技術の実施の形態における情報処理システムの一構成例を示す図である。
【図２】本技術の実施の形態における論理ページの管理例を示す図である。
【図３】本技術の実施の形態における物理ページの管理例を示す図である。
【図４】本技術の実施の形態における記憶制御装置２００の機能構成例を示す図である。
【図５】本技術の実施の形態におけるメモリ１００の構成例を示す図である。
【図６】本技術の実施の形態におけるメモリセルアレイ１１０の構造の一例を示す図である。
【図７】本技術の実施の形態におけるメモリセルアレイ１１０のドライブ電圧を説明するための図である。
【図８】本技術の実施の形態におけるメモリセルアレイ１１０の抵抗状態の極性と強度を説明するための図である。
【図９】本技術の第１の実施の形態におけるリードデータ、ライトデータおよびエラー位置情報とメモリ１００における処理内容との関係例を示す図である。
【図１０】本技術の第１の実施の形態における操作指示番号の例を示す図である。
【図１１】本技術の第１の実施の形態におけるメモリ操作指示パターンの例を示す図である。
【図１２】本技術の第１の実施の形態におけるセルパターンの種別例を示す図である。
【図１３】本技術の第１の実施の形態におけるセルパターンの具体例を示す図である。
【図１４】本技術の実施の形態における記憶制御装置２００のライトコマンドに対する動作の処理手順例を示す流れ図である。
【図１５】本技術の実施の形態におけるメモリ１００のリードリクエストに対する動作の処理手順例を示す流れ図である。
【図１６】本技術の実施の形態におけるメモリ１００のライトリクエストに対する動作の処理手順例を示す流れ図である。
【図１７】本技術の実施の形態におけるメモリ１００のセット動作の処理手順例を示す流れ図である。
【図１８】本技術の実施の形態におけるメモリ１００の強セット動作の処理手順例を示す流れ図である。
【図１９】本技術の実施の形態におけるメモリ１００のリセット動作の処理手順例を示す流れ図である。
【図２０】本技術の実施の形態におけるメモリ１００の強リセット動作（ステップＳ９７０）の処理手順例を示す流れ図である。
【図２１】本技術の第２の実施の形態における操作指示番号の割当て例を示す図である。
【図２２】本技術の第２の実施の形態における操作指示番号の仮想的な言語表現を用いた定義例を示す図である。
【図２３】本技術の第３の実施の形態における操作指示番号の割当て例を示す図である。
【図２４】本技術の第３の実施の形態における操作指示番号の仮想的な言語表現を用いた定義例を示す図である。
【図２５】本技術の第４の実施の形態におけるリードデータ、ライトデータおよびエラー位置情報とメモリ１００における処理内容との関係例を示す図である。
【図２６】本技術の第４の実施の形態における操作指示番号の例を示す図である。
【発明を実施するための形態】
【００１７】
以下、本技術を実施するための形態（以下、実施の形態と称する）について説明する。説明は以下の順序により行う。
１．第１の実施の形態（強書込みを想定した例）
２．第２の実施の形態（メモリ操作指示パターンに可変長符号を用いた例）
３．第３の実施の形態（強書込みおよび弱書込みを想定した例）
４．第４の実施の形態（２回操作を想定した例）
【００１８】
＜１．第１の実施の形態＞
［情報処理システムの構成］
図１は、本技術の実施の形態における情報処理システムの一構成例を示す図である。この情報処理システムは、ホストコンピュータ３００と、記憶制御装置２００と、メモリ１００とを備えている。ホストコンピュータ３００は、この情報処理システムにおける各処理を実行する装置であり、メモリ１００に対してリードコマンドやライトコマンドを発行することにより、メモリ１００へのアクセスを行うコンピュータである。メモリ１００は、ホストコンピュータ３００の処理に必要なデータを記憶するメモリである。このメモリ１００としては、不揮発性メモリ、特に可変抵抗素子からなるメモリセルアレイを備える抵抗変化型メモリ（ＲｅＲＡＭ）を想定する。このメモリ１００は、データとともにエラー訂正コード（ＥＣＣ）を記憶することにより、データ保持特性の改善を図る。記憶制御装置２００は、ホストコンピュータ３００とメモリ１００の間に接続され、ホストコンピュータ３００からのリクエストに応じてメモリ１００の制御を行う装置である。なお、エラー訂正コードはエラー（誤り）検出の機能も包含しているため、誤り検出符号、エラー検出符号、エラー検出コードなどと呼称する場合もある。
【００１９】
記憶制御装置２００は、メモリインターフェース２１０と、ホストインターフェース２３０と、制御部２４０と、ＲＯＭ２５０と、ＲＡＭ２６０と、ＥＣＣ処理部２７０とを備えている。これらはバス２９０を介して相互に接続されている。
【００２０】
メモリインターフェース２１０は、メモリ１００との間のやりとりを行うインターフェース回路である。ホストインターフェース２３０は、ホストコンピュータ３００との間のやりとりを行うインターフェース回路である。
【００２１】
制御部２４０は、記憶制御装置２００における種々の処理を実行する処理装置である。ＲＯＭ２５０は、制御部２４０において実行されるプログラムやその実行に必要なパラメータなどを記憶する読出し専用のメモリである。ＲＡＭ２６０は、制御部２４０における処理に必要な作業領域を記憶するメモリである。
【００２２】
ＥＣＣ処理部２７０は、メモリ１００に記憶されるエラー訂正コードに関する処理を行うものである。このＥＣＣ処理部２７０は、後述するように、エラー訂正コードを生成する機能およびメモリ１００から読み出されたデータとエラー訂正コードとからエラー検出およびエラー訂正を行う機能を含む。
【００２３】
図２は、本技術の実施の形態における論理ページの管理例を示す図である。メモリ１００のアクセス空間は固定長の物理ページに区分けして管理される。メモリ１００の物理ページの各々は論理ページにマッピングされる。ホストコンピュータ３００からは、基本的には論理アドレスによりアクセスされる。以下では、論理ページのデータサイズを２５６バイトとする。
【００２４】
ライトコマンドでは、ライト対象となる論理ページのアドレスと、指定された論理ページ全体を書き換えるべきライトデータ（２５６バイト）とが、ホストコンピュータ３００から記憶制御装置２００に供給される。また、リードコマンドでは、リード対象となる論理ページのアドレスがホストコンピュータ３００から記憶制御装置２００に供給され、メモリ１００から読み出された論理ページ全体（２５６バイト）が一括してホストコンピュータ３００に返送される。
【００２５】
図３は、本技術の実施の形態における物理ページの管理例を示す図である。物理ページにはエラー訂正コードが付与されて記憶される。以下では、物理ページには２５６バイトのデータおよび１６バイトのエラー訂正コードが記憶されるものとする。すなわち、物理ページのサイズは２７２バイトとなる。ただし、これらのサイズは一例であり、本技術はこれに限定されるものではない。
【００２６】
［記憶制御装置の機能構成］
図４は、本技術の実施の形態における記憶制御装置２００の機能構成例を示す図である。この記憶制御装置２００では、ＲＡＭ２６０内に、ライトデータバッファ２６１、リードデータバッファ２６２、エラー位置情報バッファ２６３、アドレスバッファ２６４、および、メモリ操作指示パターンバッファ２６５の領域が割り当てられている。また、この記憶制御装置２００は、リード処理部２４１と、操作指示生成部２４２と、ＥＣＣ生成部２７１と、エラー検出部２７２とを備えている。リード処理部２４１および操作指示生成部２４２は、制御部２４０において構成することができる。ＥＣＣ生成部２７１およびエラー検出部２７２は、ＥＣＣ処理部２７０において構成することができる。
【００２７】
ライトデータバッファ２６１は、ライトデータおよびそのエラー訂正コード（ＥＣＣ）を保持するバッファである。リードデータバッファ２６２は、リードデータおよびそのＥＣＣを保持するバッファである。エラー位置情報バッファ２６３は、エラー検出処理により検出されたエラーのビット位置を保持するバッファである。これら３つのバッファのサイズは、上述のように２７２バイトとなる。
【００２８】
アドレスバッファ２６４は、ライト対象またはリード対象となるメモリ１００におけるアドレスを保持するバッファである。メモリ操作指示パターンバッファ２６５は、後述するメモリ操作指示パターンを保持するバッファである。
【００２９】
リード処理部２４１は、メモリ１００からの読出し処理を行うものである。このリード処理部２４１は、ホストコンピュータ３００からのリードコマンドに対して、リード対象アドレスに記憶されているデータをリードデータ（およびＥＣＣ）として読み出す。また、このリード処理部２４１は、ホストコンピュータ３００からのライトコマンドに対して、ライト対象アドレスに既に記憶されているデータをプレリードデータ（およびＥＣＣ）として読み出す。このリード処理部２４１によって読み出されたデータはリードデータバッファ２６２に保持される。なお、リード処理部２４１は、特許請求の範囲に記載のリード処理部またはメモリ状態取得部の一例である。
【００３０】
ＥＣＣ生成部２７１は、データに対応するエラー訂正コード（ＥＣＣ）を生成するものである。このＥＣＣ生成部２７１は、ホストコンピュータ３００から指示されたライトデータについてＥＣＣを生成して、ライトデータとともにライトデータバッファ２６１に保持させる。
【００３１】
エラー検出部２７２は、ＥＣＣに基づいてデータのエラー検出処理を行うものである。このエラー検出部２７２は、リード処理部２４１によってメモリ１００から読み出されたリードデータおよびそのＥＣＣに基づいてリードデータのエラー検出を行うものである。このエラー検出部２７２により検出されたエラーのリードデータにおけるビット位置はエラー位置情報バッファ２６３に保持される。なお、エラー検出部２７２は、特許請求の範囲に記載のエラー検出部またはメモリ状態取得部の一例である。
【００３２】
操作指示生成部２４２は、ライトデータバッファ２６１に保持されたライトデータ、リードデータバッファ２６２に保持されたリードデータ、および、エラー位置情報バッファ２６３に保持されたエラー位置情報に基づいて、メモリ操作指示パターンを生成する。この操作指示生成部２４２により生成されたメモリ操作指示パターンは、メモリ操作指示パターンバッファ２６５に保持され、または、メモリ１００に対して出力される。メモリ１００に対するメモリ操作指示パターンは、メモリ１００の１セル（１ビット）当り少なくとも２ビットを占める。
【００３３】
ここで、リードデータバッファ２６２に保持されたリードデータ、および、エラー位置情報バッファ２６３に保持されたエラー位置情報は、ライト対象に係るメモリの記憶状態を構成する。また、メモリ操作指示パターンは、操作指示を構成する。
【００３４】
［メモリ構成］
図５は、本技術の実施の形態におけるメモリ１００の構成例を示す図である。メモリ１００は、複数のブロック１０１、１０２等に分割された記憶部と、制御インターフェース１２０と、制御部１３０とを備える。制御インターフェース１２０は、記憶制御装置２００との間のやりとりを司るインターフェースである。制御部１３０は、各ブロックに対するアクセスを制御するものである。なお、制御インターフェース１２０は、特許請求の範囲に記載の操作指示取得部の一例である。
【００３５】
記憶部のブロック（例えば、ブロック１０１）は、メモリセルアレイ１１０と、ワードラインデコーダ１４０と、ビットラインセレクタ１５０と、ドライバ１６０とを備えている。
【００３６】
メモリセルアレイ１１０は、Ｎ本のワードライン（ＷＬ：Word Lines）とＭ本のビットライン（ＢＬ：Bit Lines）の交点にそれぞれアクセストランジスタと可変抵抗素子を有する。ワードラインは、ワードラインデコーダ１４０に接続される。ビットラインは、ビットラインセレクタ１５０に接続される。プレート端子は、ドライバ１６０のプレート電圧出力に接続される。以下、ビットラインの数Ｍは２１７６ビットであることを前提に説明する。２１７６ビットをバイトの単位である８ビットで除すると２７２が得られる。すなわち、メモリセルアレイ１１０は、ワードラインあたり２７２バイトの記憶容量となり、上述の物理ページサイズの２７２バイトと一致する。
【００３７】
メモリセルアレイ１１０の可変抵抗素子は、高抵抗状態（ＨＲＳ：High Resistive State）と低抵抗状態（ＬＲＳ：Low Resistive State）の２状態で１ビットの情報を記録する。各状態と論理値との対応付けは任意であるが、以下では低抵抗状態を用いて論理値「０」を表現し、高抵抗状態を用いて論理値「１」を表現するものと定義する。また、２つの状態間の遷移を行う操作をビット反転操作と呼ぶ。ビット反転操作はセット操作とリセット操作の２種類で構成される。以下では、セット操作により高抵抗状態のビットを低抵抗状態に遷移させ、リセット操作により低抵抗状態のビットを高抵抗状態に遷移させる。すなわち、セット操作により論理値「１」のビットを論理値「０」に遷移させ、リセット操作により論理値「０」のビットを論理値「１」に遷移させる。ライト処理においては、セット操作およびリセット操作が順番に行われるが、その順序は何れが先であっても構わない。なお、この低抵抗状態および高抵抗状態の２状態の何れであるかを、以下では極性と称する場合がある。
【００３８】
ワードラインデコーダ１４０は、制御部１３０からのワードライン指定を受け取り、メモリセルアレイ１１０のＮ本のワードラインを制御する。すなわち、ワードラインデコーダ１４０は、制御部１３０によって指定されたワードラインを論理値「Ｈ」でドライブし、それ以外のワードラインを論理値「Ｌ」でドライブする機能を有する。ワードライン指定が行われていない場合、または、ワードライン指定が取り消された場合には、ワードラインデコーダ１４０は全てのワードラインを論理値「Ｌ」でドライブする。
【００３９】
ビットラインセレクタ１５０は、制御部１３０および制御インターフェース１２０との間で、メモリセルアレイ１１０から読み出したリードデータ、および、書込みを行うためのライトデータをやりとりする。また、このビットラインセレクタ１５０は、ドライバ１６０からビットラインをドライブするための電圧を受け取る。
【００４０】
このビットラインセレクタ１５０は、大きく分けると二つの機能を有する。すなわち、ビットラインセレクタ１５０は、メモリセルアレイ１１０の読出し時にはセンスアンプとしての機能を有する。具体的には、ビットラインセレクタ１５０は、ビットラインを流れる電流量を計測することにより、選択している可変抵抗素子が低抵抗状態または高抵抗状態の何れであるかを判別し、それぞれのビットラインに対する論理値「０」あるいは「１」を決定する。決定された論理値は、制御部１３０または制御インターフェース１２０に対して出力される。
【００４１】
また、このビットラインセレクタ１５０は、メモリセルアレイ１１０の書込み時には、制御部１３０による指定に基づいてビットライン毎のドライブ電圧を選択する機能を有する。具体的には、ビットラインセレクタ１５０は、各ビットラインに対して、ドライバ１６０から供給されるプレート電圧またはビットライン電圧のいずれかを選択的に供給する。
【００４２】
ドライバ１６０は、ビットラインセレクタ１５０にビットライン電圧を供給するとともに、ビットラインセレクタ１５０およびメモリセルアレイ１１０にプレート電圧を供給するドライバである。すなわち、このドライバ１６０は、プレートとビットラインとの間のドライブ電圧を供給する。
【００４３】
［メモリセルアレイの構造］
図６は、本技術の実施の形態におけるメモリセルアレイ１１０の構造の一例を示す図である。この図では、１本のワードラインＷＬ＿０にそった断面を模式的に表しているが、他のワードラインについても同様の構造を有する。ここでは、先頭８本のビットラインＢＬ＿０乃至ＢＬ＿７のみを図示している。ワードラインＷＬ＿０と８本のビットライン（ＢＬ＿０乃至ＢＬ＿７）の交点には、アクセストランジスタであるＦＥＴ（Field Effect Transistor：電界効果トランジスタ）１１２と、可変抵抗素子１１１が接続されている。
【００４４】
ワードラインＷＬ＿０は８つのＦＥＴ１１２のゲート端子に接続されており、８本のビットライン（ＢＬ＿０乃至ＢＬ＿７）はそれぞれ対応するＦＥＴ１１２のドレイン端子に接続される。８つのＦＥＴのソース端子はそれぞれ可変抵抗素子１１１を経由してプレート１１３に接続される。同一ブロックにおけるメモリセルアレイ１１０を構成する全ての（ここではＮ×Ｍ個の）ＦＥＴ１１２のソース端子は、それぞれに対応する可変抵抗素子１１１を経由してプレート１１３に接続される。
【００４５】
図７は、本技術の実施の形態におけるメモリセルアレイ１１０のドライブ電圧を説明するための図である。メモリセルアレイ１１０の可変抵抗素子１１１に対する操作としては、上述のセット操作およびリセット操作の他に、可変抵抗素子１１１の状態を読み出すためのリード操作がある。これら３つの操作、すなわちリード操作、セット操作およびリセット操作において、プレート１１３とビットラインＢＬ＿０との間のドライブ電圧は異なるものとなる。
【００４６】
セット操作の場合には、プレート１１３がビットラインに対して「＋Ｖｓｅｔ」の電位となるように電圧バイアスを設定する。リセット操作の場合には、ビットラインがプレート１１３に対して「＋Ｖｒｅｓｅｔ」の電位となるように電圧バイアスを設定する。また、リード操作の場合には、ビットラインがプレート１１３に対して「＋Ｖｒｅａｄ」の電圧になるように電圧バイアスを設定する。
【００４７】
図８は、本技術の実施の形態におけるメモリセルアレイ１１０の抵抗状態の極性と強度を説明するための図である。上述のように、メモリセルアレイ１１０の可変抵抗素子は、高抵抗状態（ＨＲＳ）と低抵抗状態（ＬＲＳ）の２状態で１ビットの情報を記録する。同図において、横軸を抵抗値、縦軸を相対的な累積ビット数とすると、抵抗値の低い部分と高い部分に分布が分かれる。抵抗値の低い部分がＬＲＳ状態、抵抗値の高い部分がＨＲＳ状態である。
【００４８】
この可変抵抗素子においては、データ保持力を長くするために、より大きいパルス電圧を使用して書込みを行うことや、通常の書込み後に追加のパルス印加を行うことによって強書込みを行う技術が提案されている。すなわち、ＬＲＳ状態に遷移させる際に強書込みを行った場合には、通常のＬＲＳ状態よりも低い抵抗状態（以下、強ＬＲＳ状態と称する。）となる。また、ＨＲＳ状態に遷移させる際に強書込みを行った場合には、通常のＨＲＳ状態よりも高い抵抗状態（以下、強ＨＲＳ状態と称する。）となる。このような強書込みによれば、その書込みによるデータ保持力は長くなるが、その反面、メモリセルに与えるストレスも大きくなり、耐久性は低下することになる。なお、通常の書込みにより形成された抵抗状態および強書込みにより形成された抵抗状態の何れであるかを、以下では強度と称する場合がある。
【００４９】
［メモリ操作指示パターン］
図９は、本技術の第１の実施の形態におけるリードデータ、ライトデータおよびエラー位置情報とメモリ１００における処理内容との関係例を示す図である。ここでは、リードデータ、ライトデータおよびエラー位置情報のビット毎の組合せとして８通りの組合せを示している。以下では、これら８通りの組合せがライトデータバッファ２６１、リードデータバッファ２６２およびエラー位置情報バッファ２６３の先頭８ビットであったと仮定して、順番にＢ０乃至Ｂ７のビット番号を付して説明する。ここでは、先頭８ビットのみを切り出して説明するが、実際にはライトデータバッファ２６１、リードデータバッファ２６２およびエラー位置情報バッファ２６３のビット数（この例では２１７６ビット）分の組合せが生じる。なお、ここでいうリードデータは、ライト対象アドレスに既に記憶されているデータを読み出したプレリードデータである。
【００５０】
ビット番号Ｂ０乃至Ｂ３については、エラー位置情報の値が「０」であるため、エラーは検出されていないことを示している。したがって、リードデータとライトデータとを比較することにより、必要な操作内容が決定される。ビット番号Ｂ０およびＢ３の場合、リードデータとライトデータとが等しいため、操作の必要はない。ビット番号Ｂ１の場合、「０」から「１」へ遷移させる必要があるため、リセット操作を行う。ビット番号Ｂ２の場合、「１」から「０」へ遷移させる必要があるため、セット操作を行う。
【００５１】
ビット番号Ｂ４乃至Ｂ７については、エラー位置情報の値が「１」であるため、リードデータにはエラーが含まれていることが前提となる。すなわち、そのセルは特定の値について保持力が弱いことを意味する。
【００５２】
ビット番号Ｂ４の場合、もともと「１」にライトされたセルが経時変化により「０」としてリードされる状態に変化したと考えられる。現時点での抵抗値は「１」と「０」の中間値で、「０」に近い付近に存在すると考えられる。そのため、セット操作により「０」に対応する抵抗値に遷移させる。このメモリセルの「１」の保持力は弱いと考えられるが、このメモリセルの「０」の保持力の強弱はこの段階では不明なため、通常のセット操作を行う。
【００５３】
ビット番号Ｂ５の場合、もともと「１」にライトされたセルが経時変化により「０」としてリードされる状態に変化したと考えられる。現時点での抵抗値は「１」と「０」の中間値で、「０」に近い付近に存在すると考えられる。そのため、リセット操作により「１」に対応する抵抗値に遷移させる。また、このメモリセルの「１」の保持力は弱いと考えられるため、通常のリセット操作より強めに操作を行う強リセット操作を行う。
【００５４】
ビット番号Ｂ６の場合、もともと「０」にライトされたセルが経時変化により「１」としてリードされる状態に変化したと考えられる。現時点での抵抗値は「１」と「０」の中間値で、「１」に近い付近に存在すると考えられる。そのため、セット操作により「０」に対応する抵抗値に遷移させる。また、このメモリセルの「０」の保持力は弱いと考えられるため、通常のセット操作より強めに操作を行う強セット操作を行う。
【００５５】
ビット番号Ｂ７の場合、もともと「０」にライトされたセルが経時変化により「１」としてリードされる状態に変化したと考えられる。現時点での抵抗値は「１」と「０」の中間値で、「１」に近い付近に存在すると考えられる。そのため、リセット操作により「１」に対応する抵抗値に遷移させる。このメモリセルの「０」の保持力は弱いと考えられるが、このメモリセルの「１」の保持力の強弱はこの段階では不明なため、通常のリセット操作を行う。
【００５６】
図１０は、本技術の第１の実施の形態における操作指示番号の例を示す図である。この例では、操作しない場合には、操作指示番号として「０」（"０００"）を示している。リセット操作をする場合には、操作指示番号として「１」（"００１"）を示している。セット操作をする場合には、操作指示番号として「２」（"０１０"）を示している。強リセット操作をする場合には、操作指示番号として「３」（"０１１"）を示している。強セット操作をする場合には、操作指示番号として「４」（"１００"）を示している。
【００５７】
図１１は、本技術の第１の実施の形態におけるメモリ操作指示パターンの例を示す図である。この例では、上述のビット番号Ｂ０乃至Ｂ７について、先頭から順番に操作指示番号を３ビットずつの２進数で並べたものをメモリ操作指示パターンとしている。
【００５８】
すなわち、ビット番号Ｂ０に対しては、操作しないことを表す"０００"が示されている。ビット番号Ｂ１に対しては、リセット操作をすることを表す"００１"が示されている。ビット番号Ｂ２に対しては、セット操作をすることを表す"０１０"が示されている。ビット番号Ｂ３に対しては、操作しないことを表す"０００"が示されている。ビット番号Ｂ４に対しては、セット操作をすることを表す"０１０"が示されている。ビット番号Ｂ５に対しては、強リセット操作をすることを表す"０１１"が示されている。ビット番号Ｂ６に対しては、強セット操作をすることを表す"１００"が示されている。ビット番号Ｂ７に対しては、リセット操作をすることを表す"００１"が示されている。
【００５９】
このように、この例では、メモリ操作指示パターンとして、ビット番号Ｂ０乃至７の８ビットに対して２４ビットの操作指示を含んでいる。すなわち、メモリ１００の１セル当り３ビットの操作指示が含まれていることになる。このメモリ操作指示パターンは、操作指示生成部２４２によって生成され、メモリ１００に出力される。なお、上述のように、ここでは、先頭８ビットのみを切り出して説明したが、実際にはライトデータバッファ２６１、リードデータバッファ２６２またはエラー位置情報バッファ２６３のビット数に対して３ビットずつメモリ操作指示パターンが生成される。したがって、この例では、メモリ操作指示パターンは２１７６×３ビットとなる。
【００６０】
図１２は、本技術の第１の実施の形態におけるセルパターンの種別例を示す図である。記憶制御装置２００から３ビットのメモリ操作指示パターンを受け取ったメモリ１００は、制御部１３０において４ビットのセルパターンを生成する。このセルパターンは、メモリセルアレイ１１０に対する制御を行うための制御信号である。ここでは便宜上、各セルパターンに対してセルパターン番号を付与している。
【００６１】
セルパターン番号Ｃ０については、リセット操作または強リセット操作を行うセルには「１」、何れも行わないセルには「０」を示す。セルパターン番号Ｃ１については、強リセット操作を行うセルには「１」、強リセット操作を行わないセルには「０」を示す。セルパターン番号Ｃ２については、セット操作または強セット操作を行うセルには「１」、何れも行わないセルには「０」を示す。セルパターン番号Ｃ３については、強セット操作を行うセルには「１」、強セット操作を行わないセルには「０」を示す。
【００６２】
図１３は、本技術の第１の実施の形態におけるセルパターンの具体例を示す図である。この図では、上述のビット番号Ｂ０乃至Ｂ７の例に対して、セルパターンを生成した例が示されている。
【００６３】
ビット番号Ｂ０およびＢ３については、何も操作が行われないため、何れのセルパターンも「０」を示す。ビット番号Ｂ１およびＢ７については、強リセット操作ではなく、リセット操作を行うため、セルパターン番号Ｃ０のみが「１」を示す。ビット番号Ｂ２およびＢ４については、強セット操作ではなく、セット操作を行うため、セルパターン番号Ｃ２のみが「１」を示す。ビット番号Ｂ５については、強リセット操作を行うため、セルパターン番号Ｃ０およびＣ１が「１」を示す。ビット番号Ｂ６については、強セット操作を行うため、セルパターン番号Ｃ２およびＣ３が「１」を示す。
【００６４】
これらセルパターンを生成するためのメモリ操作指示パターンの走査は、例えばソフトウェアを用いることによりビット毎に順次確認することができ、また、ハードウェアを用いて並列に確認することもできる。
【００６５】
メモリ１００において、制御部１３０は、このようにして生成されたセルパターンを用いて、メモリセルアレイ１１０に対する操作を行う。
【００６６】
［情報処理システムの動作］
図１４は、本技術の実施の形態における記憶制御装置２００のライトコマンドに対する動作の処理手順例を示す流れ図である。記憶制御装置２００は、ホストコンピュータ３００からライトコマンドを受け取ると、以下の手順に沿った処理を行う。
【００６７】
ホストコンピュータ３００から指示されたライトコマンドは、ホストインターフェース２３０経由で記憶制御装置２００に入力される。ライトコマンドは、ライト対象の論理ページアドレス、および、ライトデータから構成される。ライトデータの大きさは論理ページのサイズであり、具体的には２５６バイトである。ライトコマンドのうちライトデータはＲＡＭ２６０のライトデータバッファ２６１の先頭２５６バイトに一時的に格納される。
【００６８】
まず、ホストコンピュータ３００から指定されたライトデータに対するＥＣＣが生成される（ステップＳ９１１）。具体的には、ＥＣＣ処理部２７０のＥＣＣ生成部２７１に対して、ライトデータバッファ２６１の先頭アドレスと、パリティ生成の指示が与えられる。ＥＣＣ生成部２７１は、ライトデータバッファ２６１の先頭から２５６バイトを読み出し、１６バイトのＥＣＣを生成し、ライトデータバッファ２６１の末尾１６バイトに書き込み、物理ページのイメージである２７２バイトを完成する。
【００６９】
ホストコンピュータ３００から指示されたライトコマンドにおいて指定された論理ページに対応する物理ページのデータ読み出しが行われる（ステップＳ９２０）。具体的には、記憶制御装置２００はメモリ１００に対して、リードを指示するリードリクエストと物理ページアドレスとを与える。このとき、物理ページアドレスとして指定する値は、ホストコンピュータ３００から指示されたライト対象の論理ページアドレスと同じ値である。メモリ１００は、指定された物理ページアドレスに対応するページの内容を読み出し、記憶制御装置２００に返送する。記憶制御装置２００は、メモリ１００から転送された物理ページのデータをリードデータバッファ２６２に格納する。なお、メモリ１００におけるリードリクエスト処理の詳細は後述する。
【００７０】
そして、エラー検出が行われ、エラー位置情報が確定される（ステップＳ９１３）。具体的には、ＥＣＣ処理部２７０のエラー検出部２７２に対して、リードデータバッファ２６２の先頭アドレスと、エラー位置検出の指示とを与える。
【００７１】
上述のように、物理ページには論理ページに該当するデータ２５６バイトとＥＣＣ１６バイトとが含まれている。エラー検出部２７２は、いわゆるエラー訂正処理のうち、シンドローム計算およびエラー位置の推定を行い、エラーが検出された位置のビットに値「１」、それ以外の位置のビットに値「０」を設定したエラー位置情報をエラー位置情報バッファ２６３に保持させる。エラー位置情報の大きさは物理ページのサイズ（２７２バイト）に等しい。
【００７２】
なお、ここでは、検出されたエラーに対する訂正処理、すなわちエラーとされたビットを反転する処理は行わない。したがって、リードデータバッファ２６２には依然としてメモリ１００から読み出したそのままのデータが置かれていることになる。
【００７３】
次に、物理ページを構成するすべてのビット（２７２バイト×８ビット）に対して、メモリ１００に対するメモリ操作指示パターンが形成される（ステップＳ９１４）。上述の例では、１セル（１ビット）のデータに対して３ビットずつのメモリ操作指示パターンが形成されるため、物理ページ全体では２７２バイト×８ビット×３となる。メモリ操作指示パターンの具体的な例は、図９乃至１１により詳述したとおりである。
【００７４】
そして、ホストコンピュータ３００から指示されたライトコマンドで指定された論理ページに対応する物理ページに対してライト処理が行われる（ステップＳ９３０）。具体的には、記憶制御装置２００はメモリ１００に対して、ライトを指示するライトリクエストと、ライト対象となる物理ページアドレスと、メモリ操作指示パターンとを供給する。なお、メモリ１００におけるライトリクエスト処理の詳細は後述する。
【００７５】
記憶制御装置２００は、メモリ１００からのライトリクエストに対する完了通知を待ち受け、完了通知を確認するとライト動作を終了し、ホストコンピュータ３００に対して完了通知を出力する（ステップＳ９１６）。なお、ライトリクエストに対する完了通知が制限時間内に到着しない場合や、ライトに失敗したなどの状況に対応するエラー処理は省略している。
【００７６】
なお、ここまでの説明では、ライトデータ、リードデータに加えて、ライト対象ページの現時点におけるエラー状況（読み出してＥＣＣによるエラー検出を行った結果）を加味してセルに対する操作を決定していた。このほかにも、ページごとに保存されたエラー状況を用いてセルに対する操作を決定することが可能である。
【００７７】
記憶制御装置２００は、ＲＡＭ２６０内部の領域にページエラー状況を保持するようにしてもよい。ページエラー状況は、記憶制御装置２００の起動時にメモリ１００の特定の領域から読み出され、また記憶制御装置２００の停止時にメモリ１００の特定の領域に書き戻される。このページエラー状況は、ページごとのエラーセルの位置とその状況が記述されている。ホストコンピュータ３００からのライト指示に対し、ライトデータ、リードデータに加えて、ページエラー状況に記録されたエラー履歴を加味して、セルごとの操作を決定することができる。
【００７８】
図１５は、本技術の実施の形態におけるメモリ１００のリードリクエストに対する動作の処理手順例を示す流れ図である。なお、この処理はステップＳ９２０において記憶制御装置２００から指示された動作に対応するものである。
【００７９】
メモリ１００の制御部１３０は、制御インターフェース１２０からの通知によりリクエストを受け取ったことを知り、そのコマンド種類を判別する。受け取ったリクエストがリードリクエストであることを知った制御部１３０は、以下の手順に沿った処理を行う。なお、ここでは、説明を簡略にするために、リードリクエストの構成要素である物理ページアドレスにおいて指定された値を、そのままワードライン番号として使用する。
【００８０】
まず、制御部１３０は、制御インターフェース１２０からリードリクエストの構成要素である物理ページアドレスを取得する（ステップＳ９２１）。
【００８１】
そして、制御部１３０は、ドライバ１６０に対してリード操作における電圧バイアスの発生を指示する（ステップＳ９２２）。具体的には、ビットライン電圧がプレート電圧に対して＋Ｖｒｅａｄとなるように設定を行う。ドライバ１６０から供給されたプレート電圧によりメモリセルアレイ１１０のプレートがドライブされる。
【００８２】
制御部１３０は、ビットラインセレクタ１５０に対して全てのビットラインをビットライン電圧でドライブするように指示を行う（ステップＳ９２３）。ビットラインセレクタ１５０は、制御部１３０からの指示に従い、全てのビットラインに対してドライバ１６０から供給されたビットライン電圧を供給する。
【００８３】
制御部１３０は、リードリクエストで指定されたワードライン番号（すなわち、指定された物理ページアドレス）をワードラインデコーダ１４０に設定する（ステップＳ９２４）。そして、ビットラインセレクタ１５０に対してリード動作の開始を指示する（ステップＳ９２５）。
【００８４】
ワードラインデコーダ１４０は、指定されたワードライン番号に対応するワードラインを論理値「Ｈ」でドライブする。これにより、該当するワードラインに接続されたアクセストランジスタが導通状態となり、ドライバ１６０で発生したリード操作における電圧バイアスがＲｅＲＡＭ素子に印可される。そして、それぞれの素子の高抵抗状態または低抵抗状態に応じた電流が、ビットラインを通じてビットラインセレクタ１５０に流入される。ビットラインセレクタ１５０は、流入した電流量を測定することにより、それぞれのＲｅＲＡＭ素子に対応する論理「０」または「１」を決定する。これにより、指定されたワードライン番号に接続されたＲｅＲＡＭ素子の論理状態が、ビットラインセレクタ１５０により読み出される。
【００８５】
制御部１３０は、ビットラインセレクタ１５０に対するリード動作の停止を指示し、ワードラインデコーダ１４０に対するワードライン番号の設定を取り消す。そして、ビットラインセレクタ１５０に対するビットラインのドライブ指示を取り消し、ドライバ１６０に対する電圧バイアスの発生の停止を指示する（ステップＳ９２６）。
【００８６】
なお、リード完了のタイミングは、制御部１３０などが内部に持つ時計によって決定される場合や、ビットラインセレクタ１５０において十分な電流量が確保できたことを確認することによって決定される場合などが考えられるが、ここでは詳細な説明を省略する。
【００８７】
制御部１３０は、ビットラインセレクタ１５０が読み出したデータを制御インターフェース１２０に出力することを指示する（ステップＳ９２７）。そして、制御部１３０は、制御インターフェース１２０に指示し、リードデータを記憶制御装置２００に供給する（ステップＳ９２８）。
【００８８】
図１６は、本技術の実施の形態におけるメモリ１００のライトリクエストに対する動作の処理手順例を示す流れ図である。なお、この処理はステップＳ９３０において記憶制御装置２００から指示された動作に対応するものである。
【００８９】
メモリ１００の制御部１３０は、制御インターフェース１２０からの通知によりリクエストを受け取ったことを知り、そのコマンド種類を判別する。受け取ったリクエストがライトリクエストであることを知った制御部１３０は、以下の手順に沿った処理を行う。なお、ここでは、説明を簡略にするために、ライトリクエストの構成要素である物理ページアドレスにおいて指定された値を、そのままワードライン番号として使用する。
【００９０】
制御部１３０は、制御インターフェース１２０からライトリクエストの構成要素である物理ページアドレスと、メモリ操作指示パターンとを取得する（ステップＳ９３１）。ここでは、メモリ操作指示パターンの具体例として、上述の図１１の例を想定する。制御部１３０は、メモリ操作指示パターンの数値の意味を把握している。すなわち、記憶制御装置２００が符号化したメモリ操作指示パターンの対応表を、メモリ１００の制御部１３０も知っている。この対応表を用いることにより、制御部１３０は６５２８ビットのメモリ操作指示パターンから２１７６セル分の処理内容を解釈することができる。
【００９１】
制御部１３０は、メモリ操作指示パターンからセルパターンを生成する（ステップＳ９３２）。セルパターンの具体的な例は、図１３により詳述したとおりである。上述のように、４つのセルパターンのそれぞれは、２１７６ビットで構成されている。これはワードラインあたりのセル数と一致している。
【００９２】
このようにして生成されたセルパターンを用いて、セット動作（ステップＳ９４０）、強セット動作（ステップＳ９５０）、リセット動作（ステップＳ９６０）、強リセット動作（ステップＳ９７０）が順次実行される。これらの動作が完了すると、制御部１３０は、制御インターフェース１２０に指示し、ライトリクエストの終了を記憶制御装置２００に通知する（ステップＳ９３７）。
【００９３】
図１７は、本技術の実施の形態におけるメモリ１００のセット動作（ステップＳ９４０）の処理手順例を示す流れ図である。
【００９４】
制御部１３０は、ドライバ１６０に対してセット操作における電圧バイアスの発生を指示する（ステップＳ９４１）。具体的にはプレート電圧がビットライン電圧に対して＋Ｖｓｅｔとなるように設定を行う。ドライバ１６０から供給されたプレート電圧によりメモリセルアレイ１１０のプレートがドライブされる。
【００９５】
制御部１３０は、ビットラインセレクタ１５０に対してセット操作を行うセルパターンを与え、値「１」に対応するビットラインをビットライン電圧で、値「０」に対応するビットラインをプレート電圧でドライブするよう指示する（ステップＳ９４２）。ビットラインセレクタ１５０は、制御部１３０からの指示に従い、ドライバ１６０から供給されたビットライン電圧またはプレート電圧を供給する。
【００９６】
ステップＳ９４１乃至Ｓ９４６の処理は、Ｓ９４７における判定結果に応じて繰り返される。その際、ステップＳ９４２を１回目に実行する場合には、セット操作を行うセルパターンは、セルパターン番号Ｃ２である。ステップＳ９４２を２回目以降に実行する際には、Ｓ９４７において正常にセット操作が行われなかったことが判明したビットのみを「１」としたパターンが使用される。
【００９７】
ステップＳ９４２を１回目に実行する場合を説明する。ここで、ライトするページの先頭８セルに注目すると、セルパターン番号Ｃ２の先頭８ビットは"００１０１０１０"であるため、ビット番号Ｂ２、Ｂ４、Ｂ６に対応するビットラインのみがビットライン電圧でドライブされる。そして、それ以外の対応するビット番号Ｂ０、Ｂ１、Ｂ３、Ｂ５、Ｂ７に対応するビットラインはプレート電圧でドライブされる。
【００９８】
制御部１３０は、ライトリクエストで指定されたワードライン番号（すなわち、指定された物理ページアドレス）をワードラインデコーダ１４０に設定する（ステップＳ９４３）。ワードラインデコーダ１４０は、指定されたワードライン番号に対応するワードラインを論理値「Ｈ」でドライブする。これにより、該当ワードラインに接続されたアクセストランジスタが導通状態となる。
【００９９】
このとき、メモリセルアレイ１１０のプレートは、ドライバ１６０から供給されたプレート電圧でドライブされており、ビット番号Ｂ２、Ｂ４、Ｂ６に対応するビットラインは、ステップＳ９４２における設定によりビットライン電圧でドライブされている。これはセット操作に必要な電圧バイアスであるため、該当ワードラインとビット番号Ｂ２、Ｂ４、Ｂ６に対応するビットラインの交点に接続されたＲｅＲＡＭ素子に対してセット操作が行われる。
【０１００】
一方、ビット番号Ｂ０、Ｂ１、Ｂ３、Ｂ５、Ｂ７に対応するビットラインは、ステップＳ９４２における設定によりプレート電圧でドライブされている。そのため、アクセストランジスタが導通状態となってもＲｅＲＡＭ素子の両端に電位差が生じず、ビット反転操作は行われない。
【０１０１】
制御部１３０は、ワードラインデコーダ１４０に対するワードライン番号の設定を取り消し、ビットラインセレクタ１５０に対するビットラインのドライブ指示を取り消し、ドライバ１６０に対する電圧バイアスの発生の停止を指示する（ステップＳ９４４）。
【０１０２】
なお、セット操作完了のタイミングは、制御部１３０などが内部に持つ時計によって決定されることなどが考えられるが、ここでは詳細な説明を省略する。
【０１０３】
制御部１３０は、図１５のリードリクエストの動作におけるステップＳ９２２乃至Ｓ９２６までの処理を行い、操作中のワードライン番号に対応するセルに記録されている値を読み出す（ステップＳ９４５）。そして、制御部１３０は、ビットラインセレクタ１５０にアクセスし、メモリセルアレイ１１０から読み出したリードデータを取得する（ステップＳ９４６）。
【０１０４】
制御部１３０は、リードデータとセルパターン番号Ｃ２とを比較して、正常にセット操作が行われたか否かを確認する（ステップＳ９４７）。正常にセット操作が行われた場合には（ステップＳ９４７：Ｙｅｓ）、セット動作を終了する。一方、正常にセット操作が行われていない場合には（ステップＳ９４７：Ｎｏ）、ステップＳ９４１に遷移し、再びセット操作を行う。
【０１０５】
なお、２回目以降のセット操作ではステップＳ９４７において正常にセット操作が行われなかったことが判明したビットのみを対象として、ステップＳ９４２におけるセット操作を行うセルパターンとする。
【０１０６】
また、セット操作のリトライを行う回数の上限を定めるために、カウンタを設けて規定回数以上の失敗をエラーとするという手法も考えられるが、ここでは説明を省略する。
【０１０７】
図１８は、本技術の実施の形態におけるメモリ１００の強セット動作（ステップＳ９５０）の処理手順例を示す流れ図である。ここで説明する強セット操作とは、セルパターン番号Ｃ３で指定されたセルにのみ、セット操作におけるステップＳ９４１乃至Ｓ９４４と同様の操作をさらに１回行うものである。ステップＳ９４７において、すでにセットされたと判断されたセルに対して、再度追加のセット操作を行うことにより強セット操作が実現される。なお、追加のセット操作を行う手法以外に、印加する電圧や電流を大きくする手法や、その印加時間を長くするという手法も考えられる。
【０１０８】
制御部１３０は、ドライバ１６０に対してセット操作における電圧バイアスの発生を指示する（ステップＳ９５１）。具体的には、プレート電圧がビットライン電圧に対して＋Ｖｓｅｔとなるように設定を行う。ドライバ１６０から供給されたプレート電圧によりメモリセルアレイ１１０のプレートがドライブされる。
【０１０９】
制御部１３０は、ビットラインセレクタ１５０に対して強セット操作を行うセルパターン（Ｃ３）を与え、値「１」に対応するビットラインをビットライン電圧で、値「０」に対応するビットラインをプレート電圧でドライブするよう指示する（ステップＳ９５２）。ビットラインセレクタ１５０は、制御部１３０からの指示に従い、ドライバ１６０から供給されたビットライン電圧またはプレート電圧を供給する。
【０１１０】
ここで、書き込むべきページの先頭８セルに注目すると、セルパターン番号Ｃ３の先頭８ビットは"００００００１０"であるため、ビット番号Ｂ６に対応するビットラインのみがビットライン電圧でドライブされる。そして、それ以外の対応するビットライン（ビット番号Ｂ０乃至Ｂ５およびＢ７）はプレート電圧でドライブされる。
【０１１１】
制御部１３０は、ライトリクエストで指定されたワードライン番号（すなわち、指定された物理ページアドレス）をワードラインデコーダ１４０に設定する（ステップＳ９５３）。ワードラインデコーダ１４０は、指定されたワードライン番号に対応するワードラインを論理値「Ｈ」でドライブする。これにより、該当ワードラインに接続されたアクセストランジスタが導通状態となる。
【０１１２】
このとき、メモリセルアレイ１１０のプレートはドライバ１６０から供給されたプレート電圧でドライブされており、ビット番号Ｂ６に対応するビットラインは、ステップＳ９５２における設定によりビットライン電圧でドライブされている。これはセット操作に必要な電圧バイアスであるため、該当ワードラインとビット番号Ｂ６に対応するビットラインの交点に接続されたＲｅＲＡＭ素子に対してセット操作が行われる。
【０１１３】
一方、ビット番号Ｂ０乃至Ｂ５およびＢ７に対応するビットラインは、ステップＳ９５２における設定によりプレート電圧でドライブされている。そのため、アクセストランジスタが導通状態となってもＲｅＲＡＭ素子の両端に電位差が生じず、ビット反転操作は行われない。
【０１１４】
制御部１３０は、ワードラインデコーダ１４０に対するワードライン番号の設定を取り消し、ビットラインセレクタ１５０に対するビットラインのドライブ指示を取り消し、ドライバ１６０に対する電圧バイアスの発生の停止を指示する（ステップＳ９５４）。
【０１１５】
なお、セット操作完了のタイミングは、制御部１３０などが内部に持つ時計によって決定されることなどが考えられるが、ここでは詳細な説明を省略する。
【０１１６】
図１９は、本技術の実施の形態におけるメモリ１００のリセット動作（ステップＳ９６０）の処理手順例を示す流れ図である。
【０１１７】
制御部１３０は、ドライバ１６０に対してリセット操作における電圧バイアスの発生を指示する（ステップＳ９６１）。具体的には、ビットライン電圧がプレート電圧に対して＋Ｖｒｅｓｅｔとなるように設定を行う。ドライバ１６０から供給されたプレート電圧によりメモリセルアレイ１１０のプレートがドライブされる。
【０１１８】
制御部１３０は、ビットラインセレクタ１５０に対してリセット操作を行うセルパターンを与え、値「１」に対応するビットラインをビットライン電圧で、値「０」に対応するビットラインをプレート電圧でドライブするよう指示する（ステップＳ９６２）。ビットラインセレクタ１５０は、制御部１３０からの指示に従い、ドライバ１６０から供給されたビットライン電圧またはプレート電圧を供給する。
【０１１９】
ステップＳ９６１乃至Ｓ９６６の処理は、Ｓ９６７における判定結果に応じて繰り返される。その際、ステップＳ９６２を１回目に実行する場合には、リセット操作を行うセルパターンは、セルパターン番号Ｃ０である。ステップＳ９６２を２回目以降に実行する際には、Ｓ９６７において正常にリセット操作が行われなかったことが判明したビットのみを「１」としたパターンが使用される。
【０１２０】
ステップＳ９６２を１回目に実行する場合を説明する。ここで、ライトするページの先頭８セルに注目すると、セルパターン番号Ｃ０の先頭８ビットは"０１０００１０１"であるため、ビット番号Ｂ１、Ｂ５、Ｂ７に対応するビットラインのみがビットライン電圧でドライブされる。そして、それ以外の対応するビット番号Ｂ０、Ｂ２乃至Ｂ４、Ｂ６に対応するビットラインはプレート電圧でドライブされる。
【０１２１】
制御部１３０は、ライトリクエストで指定されたワードライン番号（すなわち、指定された物理ページアドレス）をワードラインデコーダ１４０に設定する（ステップＳ９６３）。ワードラインデコーダ１４０は、指定されたワードライン番号に対応するワードラインを論理値「Ｈ」でドライブする。これにより、該当ワードラインに接続されたアクセストランジスタが導通状態となる。
【０１２２】
このとき、メモリセルアレイ１１０のプレートは、ドライバ１６０から供給されたプレート電圧でドライブされており、ビット番号Ｂ１、Ｂ５、Ｂ７に対応するビットラインは、ステップＳ９６２における設定によりビットライン電圧でドライブされている。これはリセット操作に必要な電圧バイアスであるため、該当ワードラインとビット番号Ｂ１、Ｂ５、Ｂ７に対応するビットラインの交点に接続されたＲｅＲＡＭ素子に対してリセット操作が行われる。
【０１２３】
一方、ビット番号Ｂ０、Ｂ２乃至Ｂ４、Ｂ６に対応するビットラインは、ステップＳ９６２における設定によりプレート電圧でドライブされている。そのため、アクセストランジスタが導通状態となってもＲｅＲＡＭ素子の両端に電位差が生じず、ビット反転操作は行われない。
【０１２４】
制御部１３０は、ワードラインデコーダ１４０に対するワードライン番号の設定を取り消し、ビットラインセレクタ１５０に対するビットラインのドライブ指示を取り消し、ドライバ１６０に対する電圧バイアスの発生の停止を指示する（ステップＳ９６４）。
【０１２５】
なお、リセット操作完了のタイミングは、制御部１３０などが内部に持つ時計によって決定されることなどが考えられるが、ここでは詳細な説明を省略する。
【０１２６】
制御部１３０は、図１５のリードリクエストの動作におけるステップＳ９２２乃至Ｓ９２６までの処理を行い、操作中のワードライン番号に対応するセルに記録されている値を読み出す（ステップＳ９６５）。そして、制御部１３０は、ビットラインセレクタ１５０にアクセスし、メモリセルアレイ１１０から読み出したリードデータを取得する（ステップＳ９６６）。
【０１２７】
制御部１３０は、リードデータとセルパターン番号Ｃ０とを比較して、正常にリセット操作が行われたか否かを確認する（ステップＳ９６７）。正常にリセット操作が行われた場合には（ステップＳ９６７：Ｙｅｓ）、リセット動作を終了する。一方、正常にリセット操作が行われていない場合には（ステップＳ９６７：Ｎｏ）、ステップＳ９６１に遷移し、再びリセット操作を行う。
【０１２８】
なお、２回目以降のリセット操作ではステップＳ９６７において正常にリセット操作が行われなかったことが判明したビットのみを対象として、ステップＳ９６２におけるリセット操作を行うセルパターンとする。
【０１２９】
また、リセット操作のリトライを行う回数の上限を定めるために、カウンタを設けて規定回数以上の失敗をエラーとするという手法も考えられるが、ここでは説明を省略する。
【０１３０】
図２０は、本技術の実施の形態におけるメモリ１００の強リセット動作（ステップＳ９７０）の処理手順例を示す流れ図である。ここで説明する強リセット操作とは、セルパターン番号Ｃ１で指定されたセルにのみ、リセット操作におけるステップＳ９６１乃至Ｓ９６４と同様の操作をさらに１回行うものである。ステップＳ９６７において、すでにリセットされたと判断されたセルに対して、再度追加のリセット操作を行うことにより強リセット操作が実現されるなお、追加のリセット操作を行う手法以外に、印加する電圧や電流を大きくする手法や、その印加時間を長くするという手法も考えられる。
【０１３１】
制御部１３０は、ドライバ１６０に対してリセット操作における電圧バイアスの発生を指示する（ステップＳ９７１）。具体的には、プレート電圧がビットライン電圧に対して＋Ｖｒｅｓｅｔとなるように設定を行う。ドライバ１６０から供給されたプレート電圧によりメモリセルアレイ１１０のプレートがドライブされる。
【０１３２】
制御部１３０は、ビットラインセレクタ１５０に対して強リセット操作を行うセルパターン（Ｃ１）を与え、値「１」に対応するビットラインをビットライン電圧で、値「０」に対応するビットラインをプレート電圧でドライブするよう指示する（ステップＳ９７２）。ビットラインセレクタ１５０は、制御部１３０からの指示に従い、ドライバ１６０から供給されたビットライン電圧またはプレート電圧を供給する。
【０１３３】
ここで、書き込むべきページの先頭８セルに注目すると、セルパターン番号Ｃ１の先頭８ビットは"０００００１００"であるため、ビット番号Ｂ５に対応するビットラインのみがビットライン電圧でドライブされる。そして、それ以外の対応するビットライン（ビット番号Ｂ０乃至Ｂ４、Ｂ６、Ｂ７）はプレート電圧でドライブされる。
【０１３４】
制御部１３０は、ライトリクエストで指定されたワードライン番号（すなわち、指定された物理ページアドレス）をワードラインデコーダ１４０に設定する（ステップＳ９７３）。ワードラインデコーダ１４０は、指定されたワードライン番号に対応するワードラインを論理値「Ｈ」でドライブする。これにより、該当ワードラインに接続されたアクセストランジスタが導通状態となる。
【０１３５】
このとき、メモリセルアレイ１１０のプレートはドライバ１６０から供給されたプレート電圧でドライブされており、ビット番号Ｂ５に対応するビットラインは、ステップＳ９７２における設定によりビットライン電圧でドライブされている。これはリセット操作に必要な電圧バイアスであるため、該当ワードラインとビット番号Ｂ５に対応するビットラインの交点に接続されたＲｅＲＡＭ素子に対してリセット操作が行われる。
【０１３６】
一方、ビット番号Ｂ０乃至Ｂ４、Ｂ６、Ｂ７に対応するビットラインは、ステップＳ９７２における設定によりプレート電圧でドライブされている。そのため、アクセストランジスタが導通状態となってもＲｅＲＡＭ素子の両端に電位差が生じず、ビット反転操作は行われない。
【０１３７】
制御部１３０は、ワードラインデコーダ１４０に対するワードライン番号の設定を取り消し、ビットラインセレクタ１５０に対するビットラインのドライブ指示を取り消し、ドライバ１６０に対する電圧バイアスの発生の停止を指示する（ステップＳ９７４）。
【０１３８】
なお、リセット操作完了のタイミングは、制御部１３０などが内部に持つ時計によって決定されることなどが考えられるが、ここでは詳細な説明を省略する。
【０１３９】
このように、本技術の第１の実施の形態によれば、記憶制御装置２００からメモリ１００への１ビット当りのメモリ操作指示パターンの情報量を３ビットとすることにより、メモリ１００に対する適応的制御を行うことができる。
【０１４０】
＜２．第２の実施の形態＞
上述の実施の形態では、各処理内容に対して均等に３ビットずつの操作指示番号を割り当てていた。ＲｅＲＡＭデバイスの研究開発では、保持力が小さいことにより強セット操作または強リセット操作を必要とするセルの割合を小さくしようとする努力が続いている。また、強セット操作または強リセット操作を必要とするセルの割合が大きくなったページについては、信頼性が低いものとして、代替ページと置き換えてしまうことが考えられる。その場合、実際に使用されているページの範囲内で考えると、強セット操作または強リセット操作を必要とするセルの割合は、小さくなることが期待される。
【０１４１】
そこで、この第２の実施の形態では、強書込みの発生頻度が比較的低いことを想定し、各処理内容に対する符号の割当てを可変長とする。なお、情報処理システムとしての基本的な構成については、第１の実施の形態と同様であるため、構成に関する詳細な説明は省略する。
【０１４２】
［メモリ操作指示パターン］
図２１は、本技術の第２の実施の形態における操作指示番号の割当て例を示す図である。この例では、強書込みの発生頻度が比較的低いことを前提として、強書込みの操作に対しては３ビットの符号、それ以外の操作に対しては２ビットの符号、すなわち可変長符号を割り当てている。
【０１４３】
この例では、操作しない場合には、操作指示番号の符号として"００"が割り当てられている。リセット操作をする場合には、操作指示番号の符号として"０１"が割り当てられている。セット操作をする場合には、操作指示番号の符号として"１０"が割り当てられている。強リセット操作をする場合には、操作指示番号の符号として"１１０"が割り当てられている。強セット操作をする場合には、操作指示番号の符号として"１１１"が割り当てられている。
【０１４４】
図２２は、本技術の第２の実施の形態における操作指示番号の仮想的な言語表現を用いた定義例を示す図である。
【０１４５】
第８１１行は、定義の開始を宣言している。「メモリ操作指示パターン」の引数として与えられる「処理内容［］」は、２１７６個の要素を持つ配列である。第８１２行のｆｏｒ文により２１７６個のセルに対するループ処理を制御している。第８１３行のｓｗｉｔｃｈ文により、それぞれのセルに対する処理内容を振り分けている。第８１４乃至８１８行のｃａｓｅ文により、各セルの操作内容に応じた長さ、および、パターンの符号が出力される。
【０１４６】
このように可変長符号化された「メモリ操作指示パターン」を受信したメモリ１００の制御インターフェース１２０は、以下のように可変長符号の復号を行う。すなわち、制御インターフェース１２０は、「メモリ操作指示パターン」の先頭２ビットを取得する。このときそれが"００"の場合には０、"０１"の場合には１、"１０"の場合には２の値をそれぞれ出力する。先頭２ビットが"１１"の場合には「メモリ操作指示パターン」の先頭１ビットをさらに取得し、追加して読み出した１ビットが"０"の場合には３、"１"の場合には４をそれぞれ出力する。
【０１４７】
なお、ここではソフトウェア的なアルゴリズムを示したが、バレルシフタを用いるような可変長符号の復号方法を用いることも可能である。
【０１４８】
このように、本技術の第２の実施の形態によれば、メモリ操作指示パターンに可変長符号を割り当てることにより、メモリ操作指示パターンのサイズを小さくすることができる。
【０１４９】
＜３．第３の実施の形態＞
上述の実施の形態では、セルに対する操作が「操作しない」も含めて５種類に限定されることを前提として例示していた。しかし、ＲｅＲＡＭのセル操作に関するパラメータは、電圧や時間など多様な選択肢が存在する。ただし、特別なパラメータを使用するべきセルの割合は小さい。このため、特別な操作を行うセルに関する情報をメモリ操作指示パターンの後半にまとめて記述するという方法がある。
【０１５０】
すなわち、メモリ操作指示パターンの前半は２１７６セル×２ビットの大きさのデータにより、全てのセルに対する状況を表現する。そして、後半には「その他の操作」としたセルの位置情報とその操作を具体的に示す情報を記述する。
【０１５１】
［メモリ操作指示パターン］
図２３は、本技術の第３の実施の形態における操作指示番号の割当て例を示す図である。この例では、「操作しない」、「リセット操作」、「セット操作」にはそれぞれ２ビットで構成される"００"、"０１"、"１０"を割り当てている。さらに、「それ以外の操作」を行うべきセルには"１１"を割り当てている。
【０１５２】
そして、「それ以外の操作」の場合には、さらに複数の選択肢のうちから何れかを指定するようになっている。すなわち、「強リセット操作」であれば"００００"、「強セット操作」であれば"０００１"、「弱リセット操作」であれば"００１０"、「弱セット操作」であれば"００１１"をそれぞれ割り当てている。
【０１５３】
ここで、弱リセット操作および弱セット操作は、図８により説明した強書込みとは逆に、弱い書込みを行うものである。すなわち、ＬＲＳ状態に遷移させる際に小さいパルス電圧を使用して書込みを行った場合には、通常のＬＲＳ状態よりも高い抵抗状態（以下、弱ＬＲＳ状態と称する。）となる。また、ＨＲＳ状態に遷移させる際に小さいパルス電圧を使用して書込みを行った場合には、通常のＨＲＳ状態よりも低い抵抗状態（以下、弱ＨＲＳ状態と称する。）となる。
【０１５４】
図２４は、本技術の第３の実施の形態における操作指示番号の仮想的な言語表現を用いた定義例を示す図である。
【０１５５】
第８２１行は、定義の開始を宣言している。「メモリ操作指示パターン」の引数として与えられる「処理内容［］」は、２１７６個の要素を持つ配列である。第８２２行において内部変数ＣＯＵＮＴを宣言し、値「０」で初期化している。第８２３行のｆｏｒ文により２１７６個のセルに対する１回目のループ処理を制御している。第８２４行のｓｗｉｔｃｈ文により、それぞれのセルに対する処理内容を振り分けている。第８２５乃至８２７行のｃａｓｅ文により、操作しない、リセット操作、セット操作の３つの場合に対する符号が出力される。第８２８行のｄｅｆａｕｌｔ文により上述の３つの場合以外の操作に対する符号"１１"が出力される。また、内部変数ＣＯＵＮＴがインクリメントされる。
【０１５６】
ここまでの第１のループにより、２１７６個のセルに対する第１の情報が出力される。内部変数ＣＯＵＮＴは、２１７６個のセルのうち「処理内容」が「強リセット操作」、「強セット操作」、「弱リセット操作」、「弱セット操作」の何れかであるセルの数を示している。
【０１５７】
第８３１行では、内部変数ＣＯＵＮＴの値を出力している。ここで関数ｉｎｔ２ｂｉｎ（）は、第１引数の値を、第２引数のビット数で出力する関数である。この例では、内部変数ＣＯＵＮＴの値を１６ビットの２進数によって出力している。第８３２行のｆｏｒ文により、２１７６個のセルに対する２回目のループ処理を制御している。第８３３行のｉｆ文により、操作しない、リセット操作、セット操作、の何れでもない場合に対して、第８３４乃至８３９行の情報出力を行う。第８３４行では、セルの位置を１２ビットの２進数で出力している。第８３５行では、ｓｗｉｔｃｈ文により、セルに対する処理内容を振り分けている。第８３６乃至８３９行のｃａｓｅ文により、強リセット操作、強セット操作、弱リセット操作、弱セット操作の何れかに対する符号が出力される。
【０１５８】
このように、本技術の第３の実施の形態によれば、メモリ操作指示パターンの後半にその他の操作をまとめることにより、例外的な処理を分けて管理することができる。
【０１５９】
＜４．第４の実施の形態＞
上述の実施の形態では、通常のセット操作の後に再度セット操作を行うことによって強セット操作が実現されるデバイスを例にしていた。しかしながら、デバイスによっては連続したセット操作または連続したリセット操作によりデバイスの破壊が発生してしまう場合がある。このようなデバイスを用いる場合には、以下のような判断と指示を適用することができる。
【０１６０】
［メモリ操作指示パターン］
図２５は、本技術の第４の実施の形態におけるリードデータ、ライトデータおよびエラー位置情報とメモリ１００における処理内容との関係例を示す図である。この例は、図９において説明したものと比べて、ビット番号Ｂ５およびＢ６の処理内容が異なっている。他のビット番号Ｂ０乃至Ｂ４およびＢ７については、図９において説明したものと同様であるため、説明を省略する。
【０１６１】
ビット番号Ｂ５の場合、もともと「１」にライトされたセルが経時変化により「０」としてリードされる状態に変化したと考えられるが、このセルを「１」とするために連続してリセット操作を行ってしまうと、デバイスの品質問題が発生する場合がある。そこで、一旦セット操作により「０」に対応する抵抗値に遷移させた後にリセット操作を行って「１」に対応する抵抗値に遷移させることにより、同一セルに対する連続リセット操作を回避する。
【０１６２】
ビット番号Ｂ６の場合、もともと「０」にライトされたセルが経時変化により「１」としてリードされる状態に変化したと考えられるが、このセルを「０」とするために連続してセット操作を行ってしまうと、デバイスの品質問題が発生する場合がある。そこで、一旦リセット操作により「１」に対応する抵抗値に遷移させた後にセット操作を行って「０」に対応する抵抗値に遷移させることにより、同一セルに対する連続セット操作を回避する。
【０１６３】
図２６は、本技術の第４の実施の形態における操作指示番号の例を示す図である。この例では、操作しない場合には、操作指示番号として「０」（"０００"）を示している。リセット操作をする場合には、操作指示番号として「１」（"００１"）を示している。セット操作をする場合には、操作指示番号として「２」（"０１０"）を示している。セット操作後にリセット操作をする場合には、操作指示番号として「３」（"０１１"）を示している。リセット操作後にセット操作をする場合には、操作指示番号として「４」（"１００"）を示している。
【０１６４】
このように、本技術の第４の実施の形態によれば、セット操作またはリセット操作を連続して行うことが適切ではないデバイスを利用したメモリ１００に対してもメモリ操作指示パターンによる適応的制御を行うことができる。
【０１６５】
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
【０１６６】
なお、本技術は以下のような構成もとることができる。
（１）ライト対象に係るメモリの記憶状態を取得するメモリ状態取得部と、
前記取得された記憶状態とライトデータとから前記ライト対象に係るメモリの１セル当り少なくとも２ビットの操作指示を生成する操作指示生成部と
を具備する記憶制御装置。
（２）前記メモリ状態取得部は、
前記ライト対象に係るメモリに記憶されているデータを読み出してリードデータとするリード処理部と、
前記リードデータについてエラー検出を行って、エラーが検出された位置を示すエラー位置情報を生成するエラー検出部とを備え、
前記リードデータおよび前記エラー位置情報を前記記憶状態として取得する
前記（１）に記載の記憶制御装置。
（３）前記操作指示は、前記ライト対象に係るメモリに対する書込みの極性および強度の組合せに関する指示を含む前記（１）または（２）に記載の記憶制御装置。
（４）前記メモリが可変抵抗素子である場合において、
前記書込みの極性は、前記可変抵抗素子において所定の閾値により判別される高抵抗状態または低抵抗状態の何れか一方の状態であり、
前記書込みの強度は、前記可変抵抗素子における抵抗状態の強度である
前記（３）に記載の記憶制御装置。
（５）前記操作指示は、前記ライト対象に係るメモリに対する互いに異なる極性の２回の書込みに関する指示を含む前記（１）から（４）のいずれかに記載の記憶制御装置。
（６）前記操作指示生成部は、前記操作指示を可変長符号により符号化する
前記（１）から（５）のいずれかに記載の記憶制御装置。
（７）複数のメモリセルからなるメモリと、
前記ライト対象に係る前記メモリセルの１セル当り少なくとも２ビットの操作指示を取得する操作指示取得部と、
前記操作指示に従って前記ライト対象に係る前記メモリセルに対するライト処理を行う制御部と
を具備する記憶装置。
（８）複数のメモリセルからなるメモリと、
ライト対象に係る前記メモリセルの記憶状態を取得するメモリ状態取得部と、
前記取得された記憶状態とライトデータとから前記ライト対象に係る前記メモリセルの１セル当り少なくとも２ビットの操作指示を生成する操作指示生成部と、
前記操作指示に従って前記ライト対象に係る前記メモリセルに対するライト処理を行う制御部と
を具備する記憶装置。
（９）ライト対象に係るメモリの記憶状態を取得するメモリ状態取得手順と、
前記取得された記憶状態とライトデータとから前記ライト対象に係るメモリの１セル当り少なくとも２ビットの操作指示を生成する操作指示生成手順と
を具備する記憶制御方法。
【符号の説明】
【０１６７】
１００  メモリ
１０１  ブロック
１１０  メモリセルアレイ
１１１  可変抵抗素子
１１３  プレート
１２０  制御インターフェース
１３０  制御部
１４０  ワードラインデコーダ
１５０  ビットラインセレクタ
１６０  ドライバ
２００  記憶制御装置
２１０  メモリインターフェース
２３０  ホストインターフェース
２４０  制御部
２４１  リード処理部
２４２  操作指示生成部
２６１  ライトデータバッファ
２６２  リードデータバッファ
２６３  エラー位置情報バッファ
２６４  アドレスバッファ
２６５  メモリ操作指示パターンバッファ
２７０  ＥＣＣ処理部
２７１  ＥＣＣ生成部
２７２  エラー検出部
２９０  バス
３００  ホストコンピュータ
【図１】
2014022004.tif 000003
【図２】
2014022004.tif 000004
【図３】
2014022004.tif 000005
【図４】
2014022004.tif 000006
【図５】
2014022004.tif 000007
【図６】
2014022004.tif 000008
【図７】
2014022004.tif 000009
【図８】
2014022004.tif 000010
【図９】
2014022004.tif 000011
【図１０】
2014022004.tif 000012
【図１１】
2014022004.tif 000013
【図１２】
2014022004.tif 000014
【図１３】
2014022004.tif 000015
【図１４】
2014022004.tif 000016
【図１５】
2014022004.tif 000017
【図１６】
2014022004.tif 000018
【図１７】
2014022004.tif 000019
【図１８】
2014022004.tif 000020
【図１９】
2014022004.tif 000021
【図２０】
2014022004.tif 000022
【図２１】
2014022004.tif 000023
【図２２】
2014022004.tif 000024
【図２３】
2014022004.tif 000025
【図２４】
2014022004.tif 000026
【図２５】
2014022004.tif 000027
【図２６】
2014022004.tif 000028