(57)【特許請求の範囲】
【請求項１】
コマンド列に含まれる複数のコマンドのアクセス対象アドレスが、メモリセルアレイのプレートを共通にする同一ブロックにおける異なるワードに対するものであるか否かを判定するコマンドデコーダと、
前記複数のコマンドのアクセス対象アドレスが前記メモリセルアレイの同一ブロックにおける異なるワードに対するものであると判定された場合には、前記複数のコマンドの処理における操作のうち前記プレートとビットラインとの間のドライブ電圧として等しい電圧を印加する操作同士をまとめて連続して実行するコマンド処理部と
を具備する記憶制御装置。
【請求項２】
前記コマンドデコーダは、前記複数のコマンドが２つのリードコマンドであるか否かをさらに判定し、
前記コマンド処理部は、前記２つのリードコマンドのアクセス対象アドレスが前記メモリセルアレイの同一ブロックにおける異なるワードに対するものであると判定された場合には、前記２つのリードコマンドの処理における操作のうち前記ドライブ電圧としてリードドライブ電圧を印加する操作同士をまとめて連続して実行する
請求項１記載の記憶制御装置。
【請求項３】
前記コマンドデコーダは、前記複数のコマンドが２つのライトコマンドであるか否かをさらに判定し、
前記コマンド処理部は、前記２つのライトコマンドのアクセス対象アドレスが前記メモリセルアレイの同一ブロックにおける異なるワードに対するものであると判定された場合には、前記２つのライトコマンドの処理における操作のうち前記ドライブ電圧としてリードドライブ電圧を印加する操作同士をまとめて連続して実行し、前記ドライブ電圧としてセットドライブ電圧を印加する操作同士をまとめて連続して実行し、前記ドライブ電圧としてリセットドライブ電圧を印加する操作同士をまとめて連続して実行する
請求項１記載の記憶制御装置。
【請求項４】
前記コマンドデコーダは、前記複数のコマンドが１つのリードコマンドおよび１つのライトコマンドの組合せであるか否かをさらに判定し、
前記コマンド処理部は、前記リードコマンドおよび前記ライトコマンドのアクセス対象アドレスが前記メモリセルアレイの同一ブロックにおける異なるワードに対するものであると判定された場合には、前記リードコマンドおよび前記ライトコマンドの処理における操作のうち前記ドライブ電圧としてリードドライブ電圧を印加する操作同士をまとめて連続して実行する
請求項１記載の記憶制御装置。
【請求項５】
前記コマンドデコーダは、前記複数のコマンドが２つの消去コマンドであるか否かをさらに判定し、
前記コマンド処理部は、前記２つの消去コマンドのアクセス対象アドレスが前記メモリセルアレイの同一ブロックにおける異なるワードに対するものであると判定された場合には、前記２つの消去コマンドの処理における操作のうち前記ドライブ電圧としてリードドライブ電圧を印加する操作同士をまとめて連続して実行し、前記ドライブ電圧としてセットドライブ電圧を印加する操作同士をまとめて連続して実行する
請求項１記載の記憶制御装置。
【請求項６】
前記コマンドデコーダは、前記複数のコマンドが２つのプログラムコマンドであるか否かをさらに判定し、
前記コマンド処理部は、前記２つのプログラムコマンドのアクセス対象アドレスが前記メモリセルアレイの同一ブロックにおける異なるワードに対するものであると判定された場合には、前記２つのプログラムコマンドの処理における操作のうち前記ドライブ電圧としてリードドライブ電圧を印加する操作同士をまとめて連続して実行し、前記ドライブ電圧としてリセットドライブ電圧を印加する操作同士をまとめて連続して実行する
請求項１記載の記憶制御装置。
【請求項７】
前記コマンドデコーダは、前記複数のコマンドが１つのリードコマンドおよび１つの消去コマンドの組合せであるか否かをさらに判定し、
前記コマンド処理部は、前記リードコマンドおよび前記消去コマンドのアクセス対象アドレスが前記メモリセルアレイの同一ブロックにおける異なるワードに対するものであると判定された場合には、前記リードコマンドおよび前記消去コマンドの処理における操作のうち前記ドライブ電圧としてリードドライブ電圧を印加する操作同士をまとめて連続して実行する
請求項１記載の記憶制御装置。
【請求項８】
前記コマンドデコーダは、前記複数のコマンドが１つのリードコマンドおよび１つのプログラムコマンドの組合せであるか否かをさらに判定し、
前記コマンド処理部は、前記リードコマンドおよび前記プログラムコマンドのアクセス対象アドレスが前記メモリセルアレイの同一ブロックにおける異なるワードに対するものであると判定された場合には、前記リードコマンドおよび前記プログラムコマンドの処理における操作のうち前記ドライブ電圧としてリードドライブ電圧を印加する操作同士をまとめて連続して実行する
請求項１記載の記憶制御装置。
【請求項９】
前記コマンドデコーダは、前記複数のコマンドが１つの消去コマンドおよび１つのプログラムコマンドの組合せであるか否かをさらに判定し、
前記コマンド処理部は、前記消去コマンドおよび前記プログラムコマンドのアクセス対象アドレスが前記メモリセルアレイの同一ブロックにおける異なるワードに対するものであると判定された場合には、前記消去コマンドおよび前記プログラムコマンドの処理における操作のうち前記ドライブ電圧としてリードドライブ電圧を印加する操作同士をまとめて連続して実行する
請求項１記載の記憶制御装置。
【請求項１０】
プレートを共通にするブロック毎に分割されたメモリセルアレイと、
前記プレートとビットラインとの間のドライブ電圧を供給するドライバと、
コマンド列に含まれる複数のコマンドのアクセス対象アドレスが、前記メモリセルアレイの同一ブロックにおける異なるワードに対するものであるか否かを判定するコマンドデコーダと、
前記複数のコマンドのアクセス対象アドレスが前記メモリセルアレイの同一ブロックにおける異なるワードに対するものであると判定された場合には、前記複数のコマンドの処理における操作のうち前記ドライブ電圧として等しい電圧を印加する操作同士をまとめて連続して実行するコマンド処理部と
を具備する記憶装置。
【請求項１１】
前記メモリセルアレイは抵抗変化型メモリである請求項１０記載の記憶装置。
【請求項１２】
コマンド列に含まれる複数のコマンドのアクセス対象アドレスが、メモリセルアレイのプレートを共通にする同一ブロックにおける異なるワードに対するものであるか否かを判定する判定手順と、
前記複数のコマンドのアクセス対象アドレスが前記メモリセルアレイの同一ブロックにおける異なるワードに対するものであると判定された場合には、前記複数のコマンドの処理における操作のうち前記プレートとビットラインとの間のドライブ電圧として等しい電圧を印加する操作同士をまとめて連続して実行するコマンド処理手順と
を具備する記憶制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、記憶制御装置に関する。詳しくは、不揮発性メモリのための記憶制御装置、記憶装置、情報処理システム、および、これらにおける処理方法ならびに当該方法をコンピュータに実行させるプログラムに関する。
【背景技術】
【０００２】
情報処理システムにおいては、ワークメモリとしてＤＲＡＭ（Dynamic Random Access Memory）等が用いられる。このＤＲＡＭは、通常、揮発性メモリであり、電源の供給が停止するとその記憶内容は消失する。一方、近年、不揮発性メモリ（ＮＶＭ：Non-Volatile Memory）が用いられるようになっている。この不揮発性メモリとしては、大きなサイズを単位としたデータアクセスに対応したフラッシュメモリと、小さな単位での高速なランダムアクセスが可能な不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ：Non-Volatile RAM）とに大別される。ここで、フラッシュメモリの代表例としては、ＮＡＮＤ型フラッシュメモリが挙げられる。一方、不揮発性ランダムアクセスメモリの例としては、ＲｅＲＡＭ（Resistance RAM）、ＰＣＲＡＭ（Phase-Change RAM）、ＭＲＡＭ（Magnetoresistive RAM）などが挙げられる。
【０００３】
不揮発性ランダムアクセスメモリの中で、ＲｅＲＡＭは、可変抵抗素子を用いた抵抗変化型メモリである。このＲｅＲＡＭの可変抵抗素子は、高抵抗状態（ＨＲＳ：High Resistive State）と低抵抗状態（ＬＲＳ：Low Resistive State）の２状態で１ビットの情報を記録することができる。このＲｅＲＡＭでは、可変抵抗素子を高抵抗状態に遷移させる際と、低抵抗状態に遷移させる際とでは、異なる電位のドライブ電圧を印加する必要がある（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１４０５２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述のように、ＲｅＲＡＭの可変抵抗素子の状態を遷移させるためには、抵抗状態に応じて異なる電位のドライブ電圧を印加する必要がある。また、ＲｅＲＡＭは、多数のメモリセルを共通のプレートに接続した構造を採るため、容量が非常に大きい。そのため、異なる電位のドライブ電圧が繰返し印加されると、それに伴う充放電の際に大きな電力を消費してしまうという問題がある。
【０００６】
本技術はこのような状況に鑑みて生み出されたものであり、抵抗変化型メモリにおける充放電の発生を抑制して、消費電力を低減することを目的とする。
【課題を解決するための手段】
【０００７】
本技術は、上述の問題点を解消するためになされたものであり、その第１の側面は、コマンド列に含まれる複数のコマンドのアクセス対象アドレスが、メモリセルアレイのプレートを共通にする同一ブロックにおける異なるワードに対するものであるか否かを判定するコマンドデコーダと、上記複数のコマンドのアクセス対象アドレスが上記メモリセルアレイの同一ブロックにおける異なるワードに対するものであると判定された場合には、上記複数のコマンドの処理における操作のうち上記プレートとビットラインとの間のドライブ電圧として等しい電圧を印加する操作同士をまとめて連続して実行するコマンド処理部とを具備する記憶制御装置およびその方法である。これにより、複数のコマンドの処理における操作のうちドライブ電圧として等しい電圧を印加する操作同士をまとめて連続して実行するという作用をもたらす。
【０００８】
また、この第１の側面において、上記コマンドデコーダは、上記複数のコマンドが２つのリードコマンドであるか否かをさらに判定し、上記コマンド処理部は、上記２つのリードコマンドのアクセス対象アドレスが上記メモリセルアレイの同一ブロックにおける異なるワードに対するものであると判定された場合には、上記２つのリードコマンドの処理における操作のうち上記ドライブ電圧としてリードドライブ電圧を印加する操作同士をまとめて連続して実行するようにしてもよい。これにより、２つのリードコマンドの処理における操作のうちドライブ電圧として等しい電圧を印加する操作同士をまとめて連続して実行するという作用をもたらす。
【０００９】
また、この第１の側面において、上記コマンドデコーダは、上記複数のコマンドが２つのライトコマンドであるか否かをさらに判定し、上記コマンド処理部は、上記２つのライトコマンドのアクセス対象アドレスが上記メモリセルアレイの同一ブロックにおける異なるワードに対するものであると判定された場合には、上記２つのライトコマンドの処理における操作のうち上記ドライブ電圧としてリードドライブ電圧を印加する操作同士をまとめて連続して実行し、上記ドライブ電圧としてセットドライブ電圧を印加する操作同士をまとめて連続して実行し、上記ドライブ電圧としてリセットドライブ電圧を印加する操作同士をまとめて連続して実行するようにしてもよい。これにより、２つのライトコマンドの処理における操作のうちドライブ電圧として等しい電圧を印加する操作同士をまとめて連続して実行するという作用をもたらす。
【００１０】
また、この第１の側面において、上記コマンドデコーダは、上記複数のコマンドが１つのリードコマンドおよび１つのライトコマンドの組合せであるか否かをさらに判定し、上記コマンド処理部は、上記リードコマンドおよび上記ライトコマンドのアクセス対象アドレスが上記メモリセルアレイの同一ブロックにおける異なるワードに対するものであると判定された場合には、上記リードコマンドおよび上記ライトコマンドの処理における操作のうち上記ドライブ電圧としてリードドライブ電圧を印加する操作同士をまとめて連続して実行するようにしてもよい。これにより、ライトコマンドおよびリードコマンドの処理における操作のうちドライブ電圧として等しい電圧を印加する操作同士をまとめて連続して実行するという作用をもたらす。
【００１１】
また、この第１の側面において、前記コマンドデコーダは、前記複数のコマンドが２つの消去コマンドであるか否かをさらに判定し、前記コマンド処理部は、前記２つの消去コマンドのアクセス対象アドレスが前記メモリセルアレイの同一ブロックにおける異なるワードに対するものであると判定された場合には、前記２つの消去コマンドの処理における操作のうち前記ドライブ電圧としてリードドライブ電圧を印加する操作同士をまとめて連続して実行し、前記ドライブ電圧としてセットドライブ電圧を印加する操作同士をまとめて連続して実行するようにしてもよい。これにより、２つの消去コマンドの処理における操作のうちドライブ電圧として等しい電圧を印加する操作同士をまとめて連続して実行するという作用をもたらす。
【００１２】
また、この第１の側面において、前記コマンドデコーダは、前記複数のコマンドが２つのプログラムコマンドであるか否かをさらに判定し、前記コマンド処理部は、前記２つのプログラムコマンドのアクセス対象アドレスが前記メモリセルアレイの同一ブロックにおける異なるワードに対するものであると判定された場合には、前記２つのプログラムコマンドの処理における操作のうち前記ドライブ電圧としてリードドライブ電圧を印加する操作同士をまとめて連続して実行し、前記ドライブ電圧としてリセットドライブ電圧を印加する操作同士をまとめて連続して実行するようにしてもよい。これにより、２つのプログラムコマンドの処理における操作のうちドライブ電圧として等しい電圧を印加する操作同士をまとめて連続して実行するという作用をもたらす。
【００１３】
また、この第１の側面において、前記コマンドデコーダは、前記複数のコマンドが１つのリードコマンドおよび１つの消去コマンドの組合せであるか否かをさらに判定し、前記コマンド処理部は、前記リードコマンドおよび前記消去コマンドのアクセス対象アドレスが前記メモリセルアレイの同一ブロックにおける異なるワードに対するものであると判定された場合には、前記リードコマンドおよび前記消去コマンドの処理における操作のうち前記ドライブ電圧としてリードドライブ電圧を印加する操作同士をまとめて連続して実行するようにしてもよい。これにより、リードコマンドおよび消去コマンドの処理における操作のうちドライブ電圧として等しい電圧を印加する操作同士をまとめて連続して実行するという作用をもたらす。
【００１４】
また、この第１の側面において、前記コマンドデコーダは、前記複数のコマンドが１つのリードコマンドおよび１つのプログラムコマンドの組合せであるか否かをさらに判定し、前記コマンド処理部は、前記リードコマンドおよび前記プログラムコマンドのアクセス対象アドレスが前記メモリセルアレイの同一ブロックにおける異なるワードに対するものであると判定された場合には、前記リードコマンドおよび前記プログラムコマンドの処理における操作のうち前記ドライブ電圧としてリードドライブ電圧を印加する操作同士をまとめて連続して実行するようにしてもよい。これにより、リードコマンドおよびプログラムコマンドの処理における操作のうちドライブ電圧として等しい電圧を印加する操作同士をまとめて連続して実行するという作用をもたらす。
【００１５】
また、この第１の側面において、前記コマンドデコーダは、前記複数のコマンドが１つの消去コマンドおよび１つのプログラムコマンドの組合せであるか否かをさらに判定し、前記コマンド処理部は、前記消去コマンドおよび前記プログラムコマンドのアクセス対象アドレスが前記メモリセルアレイの同一ブロックにおける異なるワードに対するものであると判定された場合には、前記消去コマンドおよび前記プログラムコマンドの処理における操作のうち前記ドライブ電圧としてリードドライブ電圧を印加する操作同士をまとめて連続して実行するようにしてもよい。これにより、消去コマンドおよびプログラムコマンドの処理における操作のうちドライブ電圧として等しい電圧を印加する操作同士をまとめて連続して実行するという作用をもたらす。
【００１６】
また、本技術の第２の側面は、プレートを共通にするブロック毎に分割されたメモリセルアレイと、上記プレートとビットラインとの間のドライブ電圧を供給するドライバと、コマンド列に含まれる複数のコマンドのアクセス対象アドレスが、上記メモリセルアレイの同一ブロックにおける異なるワードに対するものであるか否かを判定するコマンドデコーダと、上記複数のコマンドのアクセス対象アドレスが上記メモリセルアレイの同一ブロックにおける異なるワードに対するものであると判定された場合には、上記複数のコマンドの処理における操作のうち上記ドライブ電圧として等しい電圧を印加する操作同士をまとめて連続して実行するコマンド処理部とを具備する記憶装置である。これにより、メモリセルアレイに対する複数のコマンドの処理における操作のうちドライバから等しい電圧を印加する操作同士をまとめて連続して実行するという作用をもたらす。なお、この第２の側面において、上記メモリセルアレイは抵抗変化型メモリを想定することができる。
【発明の効果】
【００１７】
本技術によれば、抵抗変化型メモリにおける充放電の発生を抑制して、消費電力を低減することができるという優れた効果を奏し得る。
【図面の簡単な説明】
【００１８】
【図１】本技術の実施の形態における情報処理システムの一構成例を示す図である。
【図２】本技術の実施の形態におけるメモリセルアレイ１１０の構造の一例を示す図である。
【図３】本技術の実施の形態におけるメモリセルアレイ１１０のドライブ電圧を説明するための図である。
【図４】本技術の実施の形態におけるメモリ１００の機能構成例を示す図である。
【図５】ライトコマンドを処理するために必要なドライブ電圧を示す図である。
【図６】本技術の第１の実施の形態におけるメモリ１００の処理手順の一例を示す流れ図である。
【図７】本技術の実施の形態における１つのリードコマンドの処理手順の一例を示す流れ図である。
【図８】本技術の実施の形態における１つのライトコマンドの処理手順の一例を示す流れ図である。
【図９】本技術の実施の形態における１つのセット操作の処理手順の一例を示す流れ図である。
【図１０】本技術の実施の形態における１つのリセット操作の処理手順の一例を示す流れ図である。
【図１１】本技術の実施の形態における２つのリード操作の処理手順の一例を示す流れ図である。
【図１２】本技術の実施の形態における２つのライト操作の処理手順の一例を示す流れ図である。
【図１３】本技術の実施の形態における２つのセット操作の処理手順の一例を示す流れ図である。
【図１４】本技術の実施の形態における２つのリセット操作の処理手順の一例を示す流れ図である。
【図１５】本技術の実施の形態における１つのリード操作と１つのライト操作の処理手順の一例を示す流れ図である。
【図１６】本技術の第１の実施の形態の変形例におけるメモリ１００の処理手順の一例を示す流れ図である。
【図１７】本技術の第２の実施の形態におけるメモリ１００の処理手順の一例を示す流れ図である。
【図１８】本技術の第２の実施の形態における１つの消去コマンドの処理手順の一例を示す流れ図である。
【図１９】本技術の第２の実施の形態における１つのプログラムコマンドの処理手順の一例を示す流れ図である。
【図２０】本技術の第２の実施の形態における２つの消去操作の処理手順の一例を示す流れ図である。
【図２１】本技術の第２の実施の形態における２つのプログラム操作の処理手順の一例を示す流れ図である。
【図２２】本技術の第２の実施の形態における１つのリード操作と１つの消去操作の処理手順の一例を示す流れ図である。
【図２３】本技術の第２の実施の形態における１つのリード操作と１つのプログラム操作の処理手順の一例を示す流れ図である。
【図２４】本技術の第２の実施の形態における１つの消去操作と１つのプログラム操作の処理手順の一例を示す流れ図である。
【発明を実施するための形態】
【００１９】
以下、本技術を実施するための形態（以下、実施の形態と称する）について説明する。説明は以下の順序により行う。
１．第１の実施の形態（リードコマンドとライトコマンドを利用した例）
２．第２の実施の形態（リードコマンドと消去コマンドとプログラムコマンドを利用した例）
【００２０】
＜１．第１の実施の形態＞
［情報処理システムの構成］
図１は、本技術の実施の形態における情報処理システムの一構成例を示す図である。この情報処理システムは、メモリ１００と、メモリコントローラ２００と、ホストコンピュータ３００とを備えている。メモリ１００としては、可変抵抗素子からなるメモリセルアレイ１１０を備える抵抗変化型メモリ（ＲｅＲＡＭ）を想定する。ホストコンピュータ３００は、メモリ１００に対してリードコマンドやライトコマンドを発行することにより、メモリ１００へのアクセスを行うコンピュータである。メモリコントローラ２００は、メモリ１００とホストコンピュータ３００との間に接続され、メモリ１００に対するアクセス制御を行うものである。なお、メモリコントローラ２００自身の判断によりリードコマンドやライトコマンドが発行されることもある。
【００２１】
メモリ１００は、複数のブロック１０１、１０２等に分割された記憶部と、制御インターフェース１２０と、制御部１３０と、コマンドキュー１３１とを備える。制御インターフェース１２０は、メモリコントローラ２００との間のやりとりを司るインターフェースである。制御部１３０は、各ブロックに対するアクセスを制御するものである。コマンドキュー１３１は、メモリ１００において処理されるコマンドを保持するキューである。このコマンドキュー１３１は、ここでは制御部１３０とは別個の構成としているが、制御部１３０に内蔵されてもよく、また、制御インターフェース１２０に内蔵されるように構成してもよい。
【００２２】
記憶部のブロック（例えば、ブロック１０１）は、メモリセルアレイ１１０と、ワードラインデコーダ１４０と、ビットラインセレクタ１５０と、ドライバ１６０とを備えている。
【００２３】
メモリセルアレイ１１０は、複数のワードライン（ＷＬ：Word Lines）と複数のビットライン（ＢＬ：Bit Lines）の交点にそれぞれアクセストランジスタと可変抵抗素子を有する。ここでは説明を簡単にするために、８ワードライン×８ビットラインの６４交点を有するメモリセルアレイを例示する。この場合、メモリセルアレイ１１０は、８本のワードライン（ＷＬ＿０乃至ＷＬ＿７）と、８本のビットライン（ＢＬ＿０乃至ＢＬ＿７）と、プレート端子とを備える。８本のワードライン（ＷＬ＿０乃至ＷＬ＿７）は、ワードラインデコーダ１４０に接続される。８本のビットライン（ＢＬ＿０乃至ＢＬ＿７）は、ビットラインセレクタ１５０に接続される。プレート端子は、ドライバ１６０のプレート電圧出力に接続される。
【００２４】
メモリセルアレイ１１０の可変抵抗素子は、高抵抗状態（ＨＲＳ：High Resistive State）と低抵抗状態（ＬＲＳ：Low Resistive State）の２状態で１ビットの情報を記録する。各状態と論理値との対応付けは任意であるが、以下では低抵抗状態を用いて論理値「０」を表現し、高抵抗状態を用いて論理値「１」を表現するものと定義する。また、２つの状態間の遷移を行う操作をビット反転操作と呼ぶ。ビット反転操作はセット操作とリセット操作の２種類で構成される。以下では、セット操作により高抵抗状態のビットを低抵抗状態に遷移させ、リセット操作により低抵抗状態のビットを高抵抗状態に遷移させる。すなわち、セット操作により論理値「１」のビットを論理値「０」に遷移させ、リセット操作により論理値「０」のビットを論理値「１」に遷移させる。ライト処理においては、セット操作およびリセット操作が順番に行われるが、その順序は何れが先であっても構わない。
【００２５】
ワードラインデコーダ１４０は、制御部１３０からのワードライン指定を受け取り、メモリセルアレイ１１０の８本のワードラインを制御する。すなわち、ワードラインデコーダ１４０は、制御部１３０によって指定されたワードラインを論理値「Ｈ」でドライブし、それ以外のワードラインを論理値「Ｌ」でドライブする機能を有する。ワードライン指定が行われていない場合、または、ワードライン指定が取り消された場合には、ワードラインデコーダ１４０は全てのワードラインを論理値「Ｌ」でドライブする。
【００２６】
ビットラインセレクタ１５０は、制御部１３０および制御インターフェース１２０との間で、メモリセルアレイ１１０から読み出したリードデータ、および、書込みを行うためのライトデータをやりとりする。また、このビットラインセレクタ１５０は、ドライバ１６０からビットラインをドライブするための電圧を受け取る。
【００２７】
このビットラインセレクタ１５０は、大きく分けると二つの機能を有する。すなわち、ビットラインセレクタ１５０は、メモリセルアレイ１１０の読出し時にはセンスアンプとしての機能を有する。具体的には、ビットラインセレクタ１５０は、ビットラインを流れる電流量を計測することにより、選択している可変抵抗素子が低抵抗状態または高抵抗状態の何れであるかを判別し、それぞれのビットラインに対する論理値「０」あるいは「１」を決定する。決定された論理値は、制御部１３０または制御インターフェース１２０に対して出力される。
【００２８】
また、このビットラインセレクタ１５０は、メモリセルアレイ１１０の書込み時には、制御部１３０による指定に基づいてビットライン毎のドライブ電圧を選択する機能を有する。具体的には、ビットラインセレクタ１５０は、各ビットラインに対して、ドライバ１６０から供給されるプレート電圧またはビットライン電圧のいずれかを選択的に供給する。
【００２９】
ドライバ１６０は、ビットラインセレクタ１５０にビットライン電圧を供給するとともに、ビットラインセレクタ１５０およびメモリセルアレイ１１０にプレート電圧を供給するドライバである。すなわち、このドライバ１６０は、プレートとビットラインとの間のドライブ電圧を供給する。
【００３０】
［メモリセルアレイの構造］
図２は、本技術の実施の形態におけるメモリセルアレイ１１０の構造の一例を示す図である。この図では、１本のワードラインＷＬ＿０にそった断面を模式的に表しているが、他のワードラインについても同様の構造を有する。ワードラインＷＬ＿０と８本のビットライン（ＢＬ＿０乃至ＢＬ＿７）の交点には、アクセストランジスタであるＦＥＴ（Field effect transistor：電界効果トランジスタ）１１２と、可変抵抗素子１１１が接続されている。
【００３１】
ワードラインＷＬ＿０は８つのＦＥＴ１１２のゲート端子に接続されており、８本のビットライン（ＢＬ＿０乃至ＢＬ＿７）はそれぞれ対応するＦＥＴ１１２のドレイン端子に接続される。８つのＦＥＴのソース端子はそれぞれ可変抵抗素子１１１を経由してプレート１１３に接続される。同一ブロックにおけるメモリセルアレイ１１０を構成する全ての（ここでは６４個の）ＦＥＴ１１２のソース端子は、それぞれに対応する可変抵抗素子１１１を経由してプレート１１３に接続される。
【００３２】
図３は、本技術の実施の形態におけるメモリセルアレイ１１０のドライブ電圧を説明するための図である。メモリセルアレイ１１０の可変抵抗素子１１１に対する操作としては、上述のセット操作およびリセット操作の他に、可変抵抗素子１１１の状態を読み出すためのリード操作がある。これら３つの操作、すなわちリード操作、セット操作およびリセット操作において、プレート１１３とビットラインＢＬ＿０との間のドライブ電圧は異なるものとなる。
【００３３】
セット操作の場合には、プレート１１３がビットラインに対して「＋Ｖｓｅｔ」の電位となるように電圧バイアスを設定する。リセット操作の場合には、ビットラインがプレート１１３に対して「＋Ｖｒｅｓｅｔ」の電位となるように電圧バイアスを設定する。また、リード操作の場合には、ビットラインがプレート１１３に対して「＋Ｖｒｅａｄ」の電圧になるように電圧バイアスを設定する。
【００３４】
［メモリの機能構成］
図４は、本技術の実施の形態におけるメモリ１００の機能構成例を示す図である。ここでは、これまでに説明したコマンドキュー１３１、ワードラインデコーダ１４０、ビットラインセレクタ１５０、ドライバ１６０およびメモリセルアレイ１１０に加えて、コマンドデコーダ１３２およびコマンド処理部１３３を示している。
【００３５】
コマンドキュー１３１には、ホストコンピュータ３００等から発行されたリードコマンドやライトコマンド等が順番に保持される。このコマンドキュー１３１は、ＦＩＦＯ（First-In First-Out）メモリやＲＡＭ等によって構成される。上述のように、このコマンドキュー１３１は、メモリ１００内の何れに存在してもよいが、複数のコマンドを保持して、各コマンドがコマンドデコーダ１３２およびコマンド処理部１３３から参照できるように構成される必要がある。コマンドデコーダ１３２には信号線１３５を介して、コマンド処理部１３３には信号線１３６を介して、コマンドキュー１３１に保持されたコマンドが参照される。
【００３６】
コマンドデコーダ１３２は、コマンドキュー１３１に保持される複数のコマンドをデコードして、コマンドの種別やメモリセルアレイ１１０のアクセス対象アドレスなどの情報を抽出するものである。コマンドデコーダ１３２は、例えば、コマンドキュー１３１に保持される複数のコマンドが、ライトコマンドやリードコマンドの何れに該当するかを判定する。また、コマンドデコーダ１３２は、例えば、コマンドキュー１３１に保持される複数のコマンドのアクセス対象アドレスが、何れのブロックにおけるメモリセルアレイ１１０の何れのワードに対するものであるかを判定する。
【００３７】
リードコマンドは、リードコマンドであることを示す情報と、ブロックを示す情報と、指定されたブロック内のメモリセルアレイ１１０において読出しを行うべきワードライン番号とによって構成される。ライトコマンドは、ライトコマンドであることを示す情報と、ブロックを示す情報と、指定されたブロック内のメモリセルアレイ１１０において書込みを行うべきワードライン番号と、書込みを行うべきライトデータとによって構成される。
【００３８】
以下の説明においては、書き込むべきワードラインを特定するための情報として、ブロックを示す情報と、指定されたブロック内のメモリセルアレイ１１０において書込みを行うべきワードライン番号とを組み合わせて用いている。メモリの実装によっては、ページ番号等のメカニズムを導入し、ページ番号と、ブロック番号およびワードライン番号との一対一変換を行う場合があるが、本質的な差異は存在しない。なお、一対一変換は、テーブル等を用いて行う場合や、ページ番号の上位ビットをバンク番号として用い、残り下位ビットをワードライン番号として用いる場合などが考えられる。また、別のメモリの実装によっては、１つのワードラインで選択される複数のビットを２以上のページに分割することで、複数のページ番号が単一のワードラインに対応する場合があるが、本質的な差異は存在しない。
【００３９】
コマンド処理部１３３は、コマンドキュー１３１に保持される複数のコマンドの各々について、その処理内容を実現するための制御を行うものである。このコマンド処理部１３３は、信号線１３７を介してワードラインデコーダ１４０に接続し、信号線１３８を介してビットラインセレクタ１５０に接続し、また、信号線１３９を介してドライバ１６０に接続する。コマンド処理部１３３は、コマンドデコーダ１３２によってデコードされた情報に従って、ワードラインデコーダ１４０、ビットラインセレクタ１５０およびドライバ１６０を制御する。
【００４０】
例えば、コマンドデコーダ１３２がリードコマンドである旨をデコードした場合には、コマンド処理部１３３は、リード操作を行うために、ビットラインがプレート１１３に対して「＋Ｖｒｅａｄ」のドライブ電圧を印加するようドライバ１６０を制御する。また、例えば、コマンドデコーダ１３２がライトコマンドである旨をデコードした場合には、プレリードのためのリード操作、セット操作、プレリードのためのリード操作、リセット操作、検証（ベリファイ）のためのリード操作が順次行われる。その際、それぞれの操作に必要なドライブ電圧をビットラインとプレート１１３との間に印加するようドライバ１６０を制御する。
【００４１】
なお、ここでは、各機能構成がメモリ１００内に配置されることを想定したが、その一部として、例えばコマンドキュー１３１、コマンドデコーダ１３２およびコマンド処理部１３３をメモリコントローラ２００に配置することも考えられる。
【００４２】
図５は、ライトコマンドを処理するために必要なドライブ電圧を示す図である。この図では、ビットラインの電位を固定した場合のプレート電位を示している。上述のように、ライトコマンドを処理する際には、リード操作、セット操作、リード操作、リセット操作、リード操作が順次行われる。この場合、ビットラインとプレート１１３との間に印加されるドライブ電圧は、リード操作、セット操作、リセット操作のそれぞれにおいて異なる電位を示す。２つのライトコマンドが連続した場合、それらをそのままの順序で実行すると、同図におけるａのように、ドライブ電圧が頻繁に変化することになり、それに伴う充放電の際に大きな電力が消費される。
【００４３】
そこで、本技術の実施の形態では、同図におけるｂに示すように、異なるワードに対する２つのライトコマンドについて、それぞれの対応する操作をまとめて実行することにより、ドライブ電圧の変化を抑制する。これにより、ドライブ電圧の変化に伴う充放電を抑制して、省電力化を図るものである。
【００４４】
［メモリの動作］
図６は、本技術の第１の実施の形態におけるメモリ１００の処理手順の一例を示す流れ図である。メモリコントローラ２００は、ホストコンピュータ３００からの指示により、リードコマンド、ライトコマンド、または、リードコマンドとライトコマンドとから構成されたコマンド群を構成し、メモリ１００の制御インターフェース１２０に対して書き込む。なお、メモリコントローラ２００は、自身の判断により、コマンド等を発行することもできる。
【００４５】
メモリ１００の制御部１３０は、制御インターフェース１２０が保持しているコマンドの数を読み出す（ステップＳ８１１）。そして、制御部１３０は読み出したコマンド数を判定し、コマンド数が０である、すなわち制御インターフェース１２０がコマンドを保持していない場合には再びステップＳ８１１に遷移する（ステップＳ８１２：Ｎｏ）。このように、ステップＳ８１１およびステップＳ８１２はポーリングループを形成しており、制御部１３０がこのポーリングループで待ち合わせている間に、メモリコントローラ２００からコマンドが書き込まれることを期待している。
【００４６】
制御部１３０は読み出したコマンド数をさらに判定する（ステップＳ８１３）。コマンド数が２以上である場合には（ステップＳ８１３：Ｙｅｓ）、制御部１３０は制御インターフェース１２０が保持している複数のコマンドのうち先頭の２つをコマンドキュー１３１に移動する（ステップＳ８１４）。一方、コマンド数が１である場合には（ステップＳ８１３：Ｎｏ）、制御部１３０は制御インターフェース１２０が保持している単一のコマンド（リードコマンドまたはライトコマンド）を実行する（ステップＳ８２１）。これらリードコマンドおよびライトコマンドの各々の実行処理手順については、図７および図８を参照して後述する。コマンドの実行後、制御インターフェース１２０が保持している処理済みのコマンドを破棄して、ステップＳ８１１に遷移する。
【００４７】
制御部１３０は、コマンドキュー１３１に置いた２つのコマンドが同一のブロックに対する指示であるか否かを判定する（ステップＳ８１５）。２つのコマンドが異なるブロックに対するものである場合には（ステップＳ８１５：Ｎｏ）、それぞれのブロックにおいて２つのコマンド（リードコマンドまたはライトコマンド）を並列に実行する（ステップＳ８２２）。これらリードコマンドおよびライトコマンドの各々の実行処理手順については、図７および図８を参照して後述する。２つのコマンドの実行後、コマンドキュー１３１が保持している処理済みの２つのコマンドを破棄して、ステップＳ８１１に遷移する。
【００４８】
なお、ステップＳ８２２において、コマンドキュー１３１に保持している２つのコマンドを実行する前に、制御インターフェース１２０が保持しているコマンドを再度判定する方法も考えられる。すなわち、同一のブロックかつワードライン番号が異なるコマンドが存在する場合には、該当コマンドとコマンドキュー１３１に保持しているコマンドとを組み合わせてステップＳ８１７以下に示す手順を行うことも考えられる。
【００４９】
２つのコマンドが同一のブロックに対するものである場合には（ステップＳ８１５：Ｙｅｓ）、制御部１３０は、さらに同一のワードに対するものであるか否かを判定する（ステップＳ８１６）。同一のブロックの同一のワードに対するものである場合（ステップＳ８１６：Ｙｅｓ）、制御部１３０は、コマンドキュー１３１に置いた２つのコマンド（リードコマンドまたはライトコマンド）を順次実行する（ステップＳ８２３）。同一ブロックの同一ワードライン番号に対するコマンドは順次実行する必要があるからである。また、異なる種別のコマンドは、この実施の形態においては、順次に実行するものとする。これらリードコマンドおよびライトコマンドの各々の実行処理手順については、図７および図８を参照して後述する。２つのコマンドの実行後、コマンドキュー１３１が保持している処理済みの２つのコマンドを破棄して、ステップＳ８１１に遷移する。
【００５０】
なお、ステップＳ８２３において、コマンドキュー１３１に保持している２つのコマンドを実行する前に、制御インターフェース１２０が保持しているコマンドを再度判定してもよい。その際、同一のブロックかつワードライン番号が異なるコマンドが存在する場合には、該当コマンドとコマンドキュー１３１に保持しているコマンドとを組み合わせてステップＳ８１７以下に示す手順を行うことも考えられる。
【００５１】
なお、ステップＳ８２３において、コマンドキュー１３１に保持している２つのコマンドを実行する場合、同一ブロックの同一ワードライン番号に対するコマンドという特性を生かし、以下のような考え方によりコマンドを効率的に実行してもよい。２つのコマンドがリードコマンドである場合、１つ目のリードコマンドを実行した後、２つ目のリードコマンドの動作は省略して１つ目のリードコマンドで読み出したデータをメモリコントローラ２００に通知する。２つのコマンドがライトコマンドである場合、１つ目のライトコマンドは破棄し、２つ目のライトコマンドのみを実行する。２つのコマンドがリードコマンドとライトコマンドであり、２つのコマンドの順序がライトコマンド、リードコマンドである場合には、リードコマンドを実行せずに、ライトデータとして与えられたデータをメモリコントローラ２００に通知する。２つのコマンドの順序がリードコマンド、ライトコマンドである場合、ライトコマンドにおけるリード操作（ステップＳ９２２）で読み出したデータをリードコマンドのデータとしてメモリコントローラ２００に通知し、その後にライトコマンドの操作を続ける。このようなコマンド動作の省略による効率化は、実行時間を短縮するためには効果がある一方、上位システムから見たメモリ１００の動作が不透明になるという欠点を有する。このため、このような省略を許すか許さないかを電源投入時等に初期設定する機能を持つてもよい。また、上述のような省略を可能とするコマンドと、省略を不可とするコマンドとの２系統を使い分けるようにしてもよい。
【００５２】
制御部１３０は、同一ブロックかつ異なるワードに対する２つのコマンドについて、コマンド種別の組合せについて判定する（ステップＳ８１７、Ｓ８１８）。その結果、２つのリードコマンドであればステップＳ８３０を実行し、２つのライトコマンドであればステップＳ８４０を実行し、１つのリードコマンドと１つのライトコマンドの組合せであればステップＳ８７０を実行する。
【００５３】
図７は、本技術の実施の形態における１つのリードコマンドの処理手順の一例を示す流れ図である。なお、ここでは、リードコマンドの構成要素であるブロック番号としてブロック１０１を示す情報が指定され、ワードライン番号としてＷＬ＿０が指定されたことを想定する。
【００５４】
まず、制御部１３０は、制御インターフェース１２０からリードコマンドの構成要素であるブロック番号およびワードライン番号を取得する（ステップＳ９１１）。ここでは、上述のとおり、ブロック番号としてブロック１０１を示す情報、および、ワードライン番号としてＷＬ＿０が取得される。ブロック番号としてブロック１０１が指定されているため、制御部１３０は、これ以降、ブロック１０１の構成要素に対して指示を行う。
【００５５】
制御部１３０はドライバ１６０に対してリード操作における電圧バイアスの発生を指示する（ステップＳ９１２）。具体的には、ビットライン電圧がプレート電圧に対して「＋Ｖｒｅａｄ」となるように設定を行う。ドライバ１６０から供給されたプレート電圧によりメモリセルアレイ１１０のプレート１１３がドライブされる。
【００５６】
制御部１３０は、ビットラインセレクタ１５０に対して全てのビットラインをビットライン電圧でドライブするように指示を行う（ステップＳ９１３）。ビットラインセレクタ１５０は制御部１３０からの指示に従って、全てのビットラインに対してドライバ１６０から供給されたビットライン電圧を供給する。
【００５７】
制御部１３０は、リードコマンドで指定されたワードライン番号（ここではＷＬ＿０）をワードラインデコーダ１４０に設定するとともに、ビットラインセレクタ１５０に対して読出し動作の開始を指示する（ステップＳ９１４）。ワードラインデコーダ１４０は指定されたワードライン番号（ここではＷＬ＿０）に対応するワードライン（ＷＬ＿０）を論理値「Ｈ」でドライブする。これにより、ＷＬ＿０に接続されたアクセストランジスタが導通状態となり、ドライバ１６０で発生したリード操作における電圧バイアスが可変抵抗素子に印可される。そのため、それぞれの素子の高抵抗状態あるいは低抵抗状態に応じた電流がビットラインを通じてビットラインセレクタ１５０に流入する。ビットラインセレクタ１５０は、流入した電流量を測定することにより、それぞれの可変抵抗素子に対応する論理「０」あるいは「１」を決定する。これにより、指定されたワードライン番号（ＷＬ＿０）に接続された可変抵抗素子の論理状態が、ビットラインセレクタ１５０により読み出される。
【００５８】
読出しが完了すると、制御部１３０は、ビットラインセレクタ１５０に対する読出し動作の停止を指示する（ステップＳ９１６）。すなわち、ワードラインデコーダ１４０に対するワードライン番号の設定を取り消し、ビットラインセレクタ１５０に対するビットラインのドライブ指示を取り消し、ドライバ１６０に対する電圧バイアスの発生の停止を指示する。なお、読み出し完了のタイミングは、制御部１３０などが内部に持つ時計で決定される場合や、ビットラインセレクタ１５０において十分な電流量が確保できたことを確認することで決定される場合など考えられるが、ここでは詳細な説明を省略する。
【００５９】
制御部１３０は、ビットラインセレクタ１５０が読み出したデータを制御インターフェース１２０に対して出力するように指示する（ステップＳ９１７）。そして、制御部１３０は、制御インターフェース１２０に指示して、読み出したデータをメモリコントローラ２００に通知する（ステップＳ９１８）。
【００６０】
図８は、本技術の実施の形態における１つのライトコマンドの処理手順の一例を示す流れ図である。ここでは、ライトコマンドの構成要素であるブロック番号としてブロック１０１を示す情報が指定され、ワードライン番号としてＷＬ＿０が指定され、書込みを行うデータとして値「６」（２進数表記で「０００００１１０）が指定されたことを想定する。
【００６１】
また、書込みを行う以前の状況として、ブロック１０１内のメモリセルアレイ１１０のＷＬ＿０に対応するビット群には値「３」（２進数表記で「００００００１１」）が記録されているものとする。これらをビットごとに観察すると、ＢＬ＿０に対応するビットは現状の論理値「１」を論理値「０」に変更することが必要である。ＢＬ＿１に対応するビットは現状の論理値「１」のままで変更する必要はない。ＢＬ＿２に対応するビットは現状の論理値「０」を論理値「１」に変更することが必要である。ＢＬ＿７乃至ＢＬ＿３に対応するビットは現状の論理値「０」のままで変更する必要はない。
【００６２】
ＲｅＲＡＭを含めて不揮発性メモリに対する書込みでは、不要なビット反転や上書きを防ぐために、記録されている情報と書き込みを行う情報を比較し、必要最小限のビット反転のみを行うという方法がよく用いられる。すなわち、この例の場合には、ＢＬ＿０に対応するビットとＢＬ＿２に対応するビットのみにビット反転操作を行い、そのほかのビットに関しては現状を維持することが好ましい。このため、以下の実施の形態では、書込みを行う位置の情報をまず読み出し、反転を行うべきビットを決定し、決定したビットに対してのみビット反転操作を行う。
【００６３】
制御部１３０は、制御インターフェース１２０からライトコマンドの構成要素であるブロック番号、ワードライン番号および書込みを行うデータを取得する（ステップＳ９２１）。ここでは、上述のとおり、ブロック番号としてブロック１０１を示す情報、および、ワードライン番号としてＷＬ＿０が取得される。ブロック番号としてブロック１０１が指定されているため、制御部１３０は、これ以降、ブロック１０１の構成要素に対して指示を行う。
【００６４】
制御部１３０は、図７において説明したステップＳ９１２乃至Ｓ９１６の処理を行い、指定されたワードライン番号（ここではＷＬ＿０）に対応するビットに現在記録されている値を読み出す（ステップＳ９２２）。制御部１３０はビットラインセレクタ１５０にアクセスし、メモリセルアレイ１１０から読み出したデータを取得する（ステップＳ９２３）。
【００６５】
制御部１３０は、メモリセルアレイ１１０から読み出したデータと、書込みを行うライトデータとを比較し、セット操作を行うべきビットとリセット操作を行うべきビットを決定する（ステップＳ９２４）。すなわち、このステップにおいて制御部１３０は、セット操作を行うべきビットパターン（セットマスク）としてＢＬ＿０のみに値「１」を割り当てた２進数表現の数「０００００００１」を生成する。また、リセット操作を行うべきビットパターン（リセットマスク）としてＢＬ＿２のみに値「１」を割り当てた２進数表現の数「０００００１００」を生成する。
【００６６】
制御部１３０は、セット操作を行い（ステップＳ９２５）、正常にセットが行われるまで繰り返す（ステップＳ９２６）。このセット操作（ステップＳ９２５）の実行処理手順については、図９を参照して後述する。ステップＳ９２６において、制御部１３０は読み出したデータとセット操作を行うべきビットパターンを比較して、正常にセット操作が行われたかどうかを確認する。なお、２回目以降のセット操作では、ステップＳ９２６において正常にセット操作が行われなかったことが判明したビットのみをセット操作対象とする。また、セット操作に続くリード操作によりセット操作のリトライを行う回数の上限を定めるために、カウンタを設けて規定回数以上の失敗をエラーとするという手法が考えられるが、ここでは説明を省略する。
【００６７】
制御部１３０は、リセット操作を行い（ステップＳ９２７）、正常にリセットが行われるまで繰り返す（ステップＳ９２８）。このリセット操作（ステップＳ９２７）の実行処理手順については、図１０を参照して後述する。ステップＳ９２８において、制御部１３０は読み出したデータとリセット操作を行うべきビットパターンを比較して、正常にリセット操作が行われたかどうかを確認する。なお、２回目以降のリセット操作では、ステップＳ９２８において正常にリセット操作が行われなかったことが判明したビットのみをリセット操作対象とする。また、リセット操作に続くリード操作によりリセット操作のリトライを行う回数の上限を定めるために、カウンタを設けて規定回数以上の失敗をエラーとするという手法が考えられるが、ここでは説明を省略する。
【００６８】
これらの処理が完了すると、制御部１３０は制御インターフェース１２０に指示し、ライトコマンドの終了をメモリコントローラ２００に通知する（ステップＳ９２９）。
【００６９】
図９は、本技術の実施の形態における１つのセット操作（ステップＳ９２５）の処理手順の一例を示す流れ図である。
制御部１３０は、ドライバ１６０に対してセット操作における電圧バイアスの発生を指示する（ステップＳ９３１）。具体的には、プレート電圧がビットライン電圧に対して「＋Ｖｓｅｔ」となるように設定を行う。ドライバ１６０から供給されたプレート電圧によりメモリセルアレイ１１０のプレートがドライブされる。
【００７０】
制御部１３０は、ビットラインセレクタ１５０に対してセット操作を行うべきセルパターンを与え、値「１」に対応するビットラインをビットライン電圧で、値「０」に対応するビットラインをプレート電圧でドライブするように指示を行う（ステップＳ９３２）。ビットラインセレクタ１５０は制御部１３０からの指示に従い、ドライバ１６０から供給されたビットライン電圧あるいはプレート電圧を供給する。
【００７１】
ここで、ステップＳ９３２を１回目に実行する場合のセット操作を行うべきセルパターンとは、ステップＳ９２４において生成したセットマスク「０００００００１」である。すなわち、ＢＬ＿０のみがビットライン電圧でドライブされ、それ以外のビットライン（ＢＬ＿７乃至ＢＬ＿１）はプレート電圧でドライブされる。ステップＳ９３２を２回目以降に実行する場合には、ステップＳ９２６において正常にセット操作が行われなかったことが判明したビットのみを「１」としたセットマスクが使用される。
【００７２】
制御部１３０は、ライトコマンドで指定されたワードライン番号（ここではＷＬ＿０）をワードラインデコーダ１４０に設定する（ステップＳ９３３）。ワードラインデコーダ１４０は、指定されたワードライン番号（ここではＷＬ＿０）に対応するワードライン（ＷＬ＿０）を論理値「Ｈ」でドライブする。これによりＷＬ＿０に接続されたアクセストランジスタが導通状態となる。
【００７３】
このとき、メモリセルアレイ１１０のプレート１１３はドライバ１６０から供給されたプレート電圧でドライブされており、ＢＬ＿０はステップＳ９３２において行った設定によりビットライン電圧でドライブされている。これはセット操作に必要な電圧バイアスであるため、ＷＬ＿０とＢＬ＿０の交点に接続された可変抵抗素子に対してセット操作が行われる。一方、ＢＬ＿７乃至ＢＬ＿１は、ステップＳ９３２において行った設定によりプレート電圧でドライブされているため、アクセストランジスタが導通状態となっても可変抵抗素子の両端に電位差が生じず、ビット反転操作は行われない。
【００７４】
制御部１３０は、ワードラインデコーダ１４０に対するワードライン番号の設定を取り消し、ビットラインセレクタ１５０に対するビットラインのドライブ指示を取り消し、ドライバ１６０に対する電圧バイアスの発生の停止を指示する（ステップＳ９３４）。なお、セット操作完了のタイミングは、制御部１３０などが内部に持つ時計で決定されることなどが考えられるが、ここでは詳細な説明を省略する。
【００７５】
制御部１３０は、ステップＳ９２２と同様の処理を行い、指定されたワードライン番号（ここではＷＬ＿０）に対応するビットに現在記録されている値を読み出す（ステップＳ９３８）。制御部１３０は、ビットラインセレクタ１５０にアクセスし、メモリセルアレイ１１０から読み出したデータを取得する（ステップＳ９３９）。
【００７６】
図１０は、本技術の実施の形態における１つのリセット操作（ステップＳ９２７）の処理手順の一例を示す流れ図である。
【００７７】
制御部１３０はドライバ１６０に対してリセット操作における電圧バイアスの発生を指示する（ステップＳ９４１）。具体的にはビットライン電圧がプレート電圧に対して「＋Ｖｒｅｓｅｔ」となるように設定を行う。ドライバ１６０から供給されたプレート電圧によりメモリセルアレイ１１０のプレートがドライブされる。
【００７８】
制御部１３０は、ビットラインセレクタ１５０に対してリセット操作を行うべきセルパターンを与え、値「１」に対応するビットラインをビットライン電圧で、値「０」に対応するビットラインをプレート電圧でドライブするように指示を行う（ステップＳ９４２）。ビットラインセレクタ１５０は、制御部１３０からの指示に従って、ドライバ１６０から供給されたビットライン電圧あるいはプレート電圧を供給する。
【００７９】
ここで、ステップＳ９４２を１回目に実行する場合には、リセット操作を行うべきセルパターンとはステップＳ９２４において生成したリセットマスク「０００００１００」である。すなわち、ＢＬ＿２のみがビットライン電圧でドライブされ、それ以外のビットライン（ＢＬ＿７乃至ＢＬ＿３、ＢＬ＿１、ＢＬ＿０）はプレート電圧でドライブされる。ステップＳ９４２を２回目以降に実行する際には、ステップＳ９２８において正常にリセット操作が行われなかったことが判明したビットのみを「１」としたリセットマスクが使用される。
【００８０】
制御部１３０は、ライトコマンドで指定されたワードライン番号（ここではＷＬ＿０）をワードラインデコーダ１４０に設定する（ステップＳ９４３）。ワードラインデコーダ１４０は、指定されたワードライン番号（ここではＷＬ＿０）に対応するワードライン（ＷＬ＿０）を論理値「Ｈ」でドライブする。これによりＷＬ＿０に接続されたアクセストランジスタが導通状態となる。このとき、メモリセルアレイ１１０のプレート１１３はドライバ１６０から供給されたプレート電圧でドライブされており、ＢＬ＿２はステップＳ９４２において行った設定によりビットライン電圧でドライブされている。これはリセット操作に必要な電圧バイアスであるため、ＷＬ＿０とＢＬ＿２の交点に接続された可変抵抗素子に対してリセット操作が行われる。一方、ＢＬ＿７乃至ＢＬ＿３、ＢＬ＿１およびＢＬ＿０は、ステップＳ９４２において行った設定によりプレート電圧でドライブされているため、アクセストランジスタが導通状態となっても可変抵抗素子の両端に電位差が生じず、ビット反転操作は行われない。
【００８１】
制御部１３０は、ワードラインデコーダ１４０に対するワードライン番号の設定を取り消し、ビットラインセレクタ１５０に対するビットラインのドライブ指示を取り消し、ドライバ１６０に対する電圧バイアスの発生の停止を指示する（ステップＳ９４４）。なお、リセット操作完了のタイミングは、制御部１３０などが内部に持つ時計で決定されることなどが考えられるが、ここでは詳細な説明を省略する。
【００８２】
制御部１３０は、図７におけるステップＳ９１２乃至Ｓ９１６の処理を行い、指定されたワードライン番号（ここではＷＬ＿０）に対応するビットに現在記録されている値を読み出す（ステップＳ９４８）。制御部１３０は、ビットラインセレクタ１５０にアクセスし、メモリセルアレイ１１０から読み出したデータを取得する（ステップＳ９４９）。
【００８３】
図１１は、本技術の実施の形態における２つのリード操作（ステップＳ８３０）の処理手順の一例を示す流れ図である。以下では、コマンドキュー１３１に置かれた２つのリードコマンドのブロックをともにブロック１０１とし、一方のワードライン番号をＷＬ＿３、他方のワードライン番号をＷＬ＿６とする。
【００８４】
制御部１３０は、図７を用いて説明したリードコマンドの動作におけるＳ９１２と同様に、ドライバ１６０に対してリード操作における電圧バイアスの発生を指示する（ステップＳ８３２）。具体的には、ビットライン電圧がプレート電圧に対して「＋Ｖｒｅａｄ」となるように設定を行う。ドライバ１６０から供給されたプレー電圧によりメモリセルアレイ１１０のプレートがドライブされる。
【００８５】
制御部１３０は、図７を用いて説明したリードコマンドの動作におけるＳ９１３と同様に、ビットラインセレクタ１５０に対して全てのビットラインをビット電圧でドライブするように指示を行う（ステップＳ８３３）。ビットラインセレクタ１５０は制御部１３０からの指示に従い、全てのビットラインに対してドライバ１６０から供給されたビットライン電圧を供給する。
【００８６】
制御部１３０は、図７を用いて説明したリードコマンドの動作におけるＳ９１４と同様に、１番目のリードコマンドで指定されたワードライン番号（ここではＷＬ＿３）をワードラインデコーダ１４０に設定する。そして、ビットラインセレクタ１５０に対して読み出し動作の開始を指示する（ステップＳ８３４）。ワードラインデコーダ１４０は指定されたワードライン番号（ここではＷＬ＿０）に対応するワードライン（ＷＬ＿０）を論理値「Ｈ」でドライブする。これにより、ＷＬ＿０に接続されたアクセストランジスタが導通状態となり、ドライバ１６０で発生したリード操作における電圧バイアスが可変抵抗素子に印可される。そのため、それぞれの素子の高抵抗状態あるいは低抵抗状態に応じた電流がビットラインを通じてビットラインセレクタ１５０に流入する。ビットラインセレクタ１５０は、流入した電流量を測定することにより、それぞれの可変抵抗素子に対応する論理「０」あるいは「１」を決定する。これにより指定されたワードライン番号（ＷＬ＿３）に接続された可変抵抗素子の論理状態が、ビットラインセレクタ１５０により読み出される。
【００８７】
制御部１３０は、図７を用いて説明したリードコマンドの動作におけるＳ９１４と同様に、２番目のリードコマンドで指定されたワードライン番号（ここではＷＬ＿６）をワードラインデコーダ１４０に設定する。そして、ビットラインセレクタ１５０に対して読み出し動作の開始を指示する（ステップＳ８３５）。ワードラインデコーダ１４０は指定されたワードライン番号（ここではＷＬ＿０）に対応するワードライン（ＷＬ＿０）を論理値「Ｈ」でドライブする。これにより、ＷＬ＿０に接続されたアクセストランジスタが導通状態となり、ドライバ１６０で発生したリード操作における電圧バイアスが可変抵抗素子に印可される。そのため、それぞれの素子の高抵抗状態あるいは低抵抗状態に応じた電流がビットラインを通じてビットラインセレクタ１５０に流入する。ビットラインセレクタ１５０は、流入した電流量を測定することにより、それぞれの可変抵抗素子に対応する論理「０」あるいは「１」を決定する。これにより指定されたワードライン番号（ＷＬ＿６）に接続された可変抵抗素子の論理状態が、ビットラインセレクタ１５０により読み出される。
【００８８】
制御部１３０は、図７を用いて説明したリードコマンドの動作におけるＳ９１６と同様に、動作停止を指示する（ステップＳ８３６）。すなわち、ビットラインセレクタ１５０に対する読出し動作の停止を指示し、ワードラインデコーダ１４０に対するワードライン番号の設定を取り消す。そして、ビットラインセレクタ１５０に対するビットラインのドライブ指示を取り消し、ドライバ１６０に対する電圧バイアスの発生の停止を指示する。
【００８９】
なお、それぞれの読出し完了のタイミングは、制御部１３０などが内部に持つ時計で決定される場合や、ビットラインセレクタ１５０において十分な電流量が確保できたことを確認することで決定される場合など考えられるが、ここでは詳細な説明を省略する。また、２つのワードラインからの読み出しの途中（ステップＳ８３４とＳ８３５の間）で、ビットラインセレクタ１５０に対して読出し停止を指令してから再度読出し開始をする方がよい場合なども考えられる。
【００９０】
制御部１３０は、図７を用いて説明したリードコマンドの動作におけるＳ９１７と同様に、ビットラインセレクタ１５０が読み出した、２つのコマンドに対応するデータを順次、制御インターフェース１２０に対して出力することを指示する（ステップＳ８３７）。
【００９１】
なお、図７を用いて説明したリードコマンドの流れ図との整合性を維持するために、ビットラインセレクタ１５０が２回分の読出しデータを保持することを前提に説明しているが、これは１回分にすることができる。例えば、データが読み出されるたび（具体的にはステップＳ８３４とＳ８３５のそれぞれの後）に制御インターフェース１２０に対して出力するようにすればビットラインセレクタ１５０が保持すべき読出しデータは１回分となる。
【００９２】
制御部１３０は、図７を用いて説明したリードコマンドの動作におけるＳ９１８と同様に、制御インターフェース１２０に指示して、２つのリードコマンドに対応して読み出したデータをメモリコントローラ２００に通知する（ステップＳ８３８）。
【００９３】
図１２は、本技術の実施の形態における２つのライト操作（ステップＳ８４０）の処理手順の一例を示す流れ図である。以下では、コマンドキュー１３１に置かれた２つのライトコマンドのブロックをともにブロック１０１とし、一方のワードライン番号をＷＬ＿３、他方のワードライン番号をＷＬ＿６とする。
【００９４】
制御部１３０は、ステップＳ８３２乃至Ｓ８３６において説明したものと同様の操作を行い、２つのライトコマンドで指定された２つのワードライン番号（ここではＷＬ＿３とＷＬ＿６）に対応するビットに現在記録されている値を読み出す（ステップＳ８４２）。この操作は、図８を用いて説明したライトコマンドにおいてステップＳ９２２に対応する。
【００９５】
制御部１３０は、図８を用いて説明したライトコマンドの動作におけるステップＳ９２３と同様に、ビットラインセレクタ１５０にアクセスする。これにより、メモリセルアレイ１１０から読み出した二つのライトコマンドのそれぞれに対応したデータを取得する（ステップＳ８４３）。
【００９６】
なお、図８を用いて説明したライトコマンドの流れ図との整合性を維持するために、ビットラインセレクタ１５０が２回分の読出しデータを保持することを前提に説明しているが、これは１回分とすることができる。例えば、データが読み出されるたびに制御部１３０に入力するようにすれば、ビットラインセレクタ１５０が保持すべき読出しデータは１回分となる。
【００９７】
制御部１３０は、図８を用いて説明したライトコマンドの動作におけるＳ９２４と同様に、メモリセルアレイ１１０から読み出したデータと、書き込みを行うデータとを比較する。そして、２つのライトコマンドそれぞれに対応した、セット操作を行うべきビットを示すセットマスク、および、リセット操作を行うべきビットを示すリセットマスクを決定する（ステップＳ８４４）。
【００９８】
制御部１３０は、２つのセット操作を行い（ステップＳ８４５）、正常にセットが行われるまで繰り返す（ステップＳ８４６）。この２つのセット操作（ステップＳ９４５）の実行処理手順については、図１３を参照して後述する。ステップＳ８４６において、制御部１３０は読み出したデータとセット操作を行うべきビットパターンを比較して、正常にセット操作が行われたかどうかを確認する。なお、２回目以降のセット操作では、ステップＳ８４６において正常にセット操作が行われなかったことが判明したビットのみをセット操作対象とする。また、セット操作に続くリード操作によりセット操作のリトライを行う回数の上限を定めるために、カウンタを設けて規定回数以上の失敗をエラーとするという手法が考えられるが、ここでは説明を省略する。
【００９９】
制御部１３０は、２つのリセット操作を行い（ステップＳ８４７）、正常にリセットが行われるまで繰り返す（ステップＳ８４８）。この２つのリセット操作（ステップＳ８４７）の実行処理手順については、図１４を参照して後述する。ステップＳ８４８において、制御部１３０は読み出したデータとリセット操作を行うべきビットパターンを比較して、正常にリセット操作が行われたかどうかを確認する。なお、２回目以降のリセット操作では、ステップＳ８４８において正常にリセット操作が行われなかったことが判明したビットのみをリセット操作対象とする。また、リセット操作に続くリード操作によりリセット操作のリトライを行う回数の上限を定めるために、カウンタを設けて規定回数以上の失敗をエラーとするという手法が考えられるが、ここでは説明を省略する。
【０１００】
これらの処理が完了すると、制御部１３０は制御インターフェース１２０に指示し、ライトコマンドの終了をメモリコントローラ２００に通知する（ステップＳ８４９）。
【０１０１】
図１３は、本技術の実施の形態における２つのセット操作（ステップＳ８４５）の処理手順の一例を示す流れ図である。
【０１０２】
制御部１３０は、図９を用いて説明したセット操作の動作におけるステップＳ９３１と同様に、ドライバ１６０に対してセット操作における電圧バイアスの発生を指示する（ステップＳ８５１）。具体的にはプレート電圧がビットライン電圧に対して「＋Ｖｓｅｔ」となるように設定を行う。ドライバ１６０から供給されたプレート電圧によりメモリセルアレイ１１０のプレートがドライブされる。
【０１０３】
制御部１３０は、図９を用いて説明したセット操作の動作におけるステップＳ９３２と同様に、ビットラインセレクタ１５０に対して、１番目のライトコマンドに対応するセット操作を行うべきビットパターンを与える。そして、値「１」に対応するビットラインをビットライン電圧で、値「０」に対応するビットラインをプレート電圧でドライブするように指示を行う（ステップＳ８５２）。ビットラインセレクタ１５０は制御部１３０からの指示に従い、ドライバ１６０から供給されたビットライン電圧あるいはプレート電圧を供給する。
【０１０４】
制御部１３０は、図９を用いて説明したセット操作の動作におけるステップＳ９３３と同様に、１番目のライトコマンドで指定されたワードライン番号（ここではＷＬ＿３）をワードラインデコーダ１４０に設定する（ステップＳ８５３）。これにより１番目のライトコマンドに対応するセット操作が行われる。
【０１０５】
制御部１３０は、ワードラインデコーダ１４０に対するワードライン番号の設定を取り消し、ビットラインセレクタ１５０に対するビットラインのドライブ指示を取り消す（ステップＳ８５４）。なお、セット操作完了のタイミングは、制御部１３０などが内部に持つ時計で決定されること等が考えられるが、ここでは詳細な説明を省略する。
【０１０６】
制御部１３０は、図９を用いて説明したセット操作の動作におけるステップＳ９３２と同様に、ビットラインセレクタ１５０に対して、２番目のライトコマンドに対応するセット操作を行うべきビットパターンを与える。そして、値「１」に対応するビットラインをビットライン電圧で、値「０」に対応するビットラインをプレート電圧でドライブするように指示を行う（ステップＳ８５５）。ビットラインセレクタ１５０は制御部１３０からの指示に従い、ドライバ１６０から供給されたビットライン電圧あるいはプレート電圧を供給する。
【０１０７】
制御部１３０は、図９を用いて説明したセット操作の動作におけるステップＳ９３３と同様に、２番目のライトコマンドで指定されたワードライン番号（ここではＷＬ＿６）をワードラインデコーダ１４０に設定する（ステップＳ８５６）。これにより２番目のライトコマンドに対応するセット操作が行われる。
【０１０８】
制御部１３０は、ワードラインデコーダ１４０に対するワードライン番号の設定を取り消し、ビットラインセレクタ１５０に対するビットラインのドライブ指示を取り消す（ステップＳ８５７）。さらに、ドライバ１６０に対する電圧バイアスの発生の停止を指示する。なお、セット操作完了のタイミングは、制御部１３０などが内部に持つ時計で決定されること等が考えられるが、ここでは詳細な説明を省略する。
【０１０９】
制御部１３０は、図９を用いて説明したセット操作の動作におけるステップＳ９３８と同様に、指定されたワードライン番号（ここではＷＬ＿３とＷＬ＿６）に対応するビットに現在記録されている値を読み出す（ステップＳ８５８）。制御部１３０は、図９を用いて説明したセット操作の動作におけるステップＳ９３９と同様に、ビットラインセレクタ１５０にアクセスし、メモリセルアレイ１１０から読み出したデータを取得する（ステップＳ８５９）。
【０１１０】
なお、ステップＳ８４６において正常にセットされていないと判断された場合、２回目以降のセット操作では、正常にセット操作が行われなかったことが判明したビットのみを、セット操作対象とする。このため、ステップＳ８５２およびＳ８５３に示した１番目のライトコマンドに対応するセット操作、または、ステップＳ８５５およびＳ８５６に示した２番目のライトコマンドに対応するセット操作の何れかをスキップすることが考えられる。
【０１１１】
図１４は、本技術の実施の形態における２つのリセット操作（ステップＳ８４７）の処理手順の一例を示す流れ図である。
【０１１２】
制御部１３０は、図１０を用いて説明したリセット操作の動作におけるステップＳ９４１と同様に、ドライバ１６０に対してリセット操作における電圧バイアスの発生を指示する（ステップＳ８６１）。具体的には、ビットライン電圧がプレート電圧に対して「＋Ｖｒｅｓｅｔ」となるように設定を行う。ドライバ１６０から供給されたプレート電圧によりメモリセルアレイ１１０のプレート１１３がドライブされる。
【０１１３】
制御部１３０は、図１０を用いて説明したリセット操作の動作におけるステップＳ９４２と同様に、ビットラインセレクタ１５０に対して１番目のライトコマンドに対応するリセット操作を行うべきセルパターンを与える。そして、値「１」に対応するビットラインをビットライン電圧で、値「０」に対応するビットラインをプレート電圧でドライブするように指示を行う（ステップＳ８６２）。ビットラインセレクタ１５０は、制御部１３０からの指示に従って、ドライバ１６０から供給されたビットライン電圧またはプレート電圧を供給する。
【０１１４】
制御部１３０は、図１０を用いて説明したリセット操作の動作におけるステップＳ９４３と同様に、１番目のライトコマンドで指定されたワードライン番号（ここではＷＬ＿３）をワードラインデコーダ１４０に設定する（ステップＳ８６３）。これにより、１番目のライトコマンドに対応するリセット操作が行われる。
【０１１５】
制御部１３０は、ワードラインデコーダ１４０に対するワードライン番号の設定を取り消し、ビットラインセレクタ１５０に対するビットラインのドライブ指示を取り消す（ステップＳ８６４）。なお、リセット操作完了のタイミングは、制御部１３０などが内部に持つ時計で決定されることなどが考えられるが、ここでは詳細な説明を省略する。
【０１１６】
制御部１３０は、図１０を用いて説明したリセット操作の動作におけるステップＳ９４２と同様に、ビットラインセレクタ１５０に対して２番目のライトコマンドに対応するリセット操作を行うべきセルパターンを与える。そして、値「１」に対応するビットラインをビットライン電圧で、値「０」に対応するビットラインをプレート電圧でドライブするように指示を行う（ステップＳ８６５）。ビットラインセレクタ１５０は、制御部１３０からの指示に従って、ドライバ１６０から供給されたビットライン電圧またはプレート電圧を供給する。
【０１１７】
制御部１３０は、図１０を用いて説明したリセット操作の動作におけるステップＳ９４３と同様に、２番目のライトコマンドで指定されたワードライン番号（ここではＷＬ＿６）をワードラインデコーダ１４０に設定する（ステップＳ８６６）。これにより、２番目のライトコマンドに対応するリセット操作が行われる。
【０１１８】
制御部１３０は、図１０を用いて説明したリセット操作の動作におけるステップＳ９４４と同様に、動作停止指示を行う（ステップＳ８６７）。すなわち、ワードラインデコーダ１４０に対するワードライン番号の設定を取り消し、ビットラインセレクタ１５０に対するビットラインのドライブ指示を取り消し、ドライバ１６０に対する電圧バイアスの発生の停止を指示する。なお、リセット操作完了のタイミングは、制御部１３０などが内部に持つ時計で決定されることなどが考えられるが、ここでは詳細な説明を省略する。
【０１１９】
制御部１３０は、図１０を用いて説明したリセット操作の動作におけるステップＳ９４８と同様に、指定されたワードライン番号（ここではＷＬ＿３およびＷＬ＿６）に対応するビットに現在記録されている値を読み出す（ステップＳ８６８）。制御部１３０は、図１０を用いて説明したリセット操作の動作におけるステップＳ９４９と同様に、ビットラインセレクタ１５０にアクセスし、メモリセルアレイ１１０から読み出したデータを取得する（ステップＳ８６９）。
【０１２０】
なお、ステップＳ９４８において正常にリセットされていないと判断された場合、２回目以降のリセット操作では、正常にリセット操作が行われなかったことが判明したビットのみをリセット操作対象とする。このため、ステップＳ８６２およびＳ８６３に示した１番目のライトコマンドに対応するリセット操作、または、ステップＳ８６５およびＳ８６６に示した２番目のライトコマンドに対応するリセット操作の何れかをスキップすることが考えられる。
【０１２１】
図１５は、本技術の実施の形態における１つのリード操作と１つのライト操作（ステップＳ８７０）の処理手順の一例を示す流れ図である。以下では、コマンドキュー１３１に置かれた１つのリードコマンドと１つのライトコマンドのブロックをともにブロック１０１とし、リードコマンドのワードライン番号をＷＬ＿３、ライトコマンドのワードライン番号をＷＬ＿６とする。
【０１２２】
制御部１３０は、ステップＳ８３２乃至Ｓ８３６と同様の操作を行い、リードコマンドおよびライトコマンドで指定された２つのワードライン番号（ここではＷＬ＿３とＷＬ＿６）に対応するビットに現在記録されている値を読み出す（ステップＳ８７２）。このステップＳ８７２における動作は、図１１において説明した２つのリード操作（ステップＳ８３０）と同様である。すなわち、例えば、ステップＳ８３４においてリードコマンドのためのリード操作を行い、ステップＳ８３５においてライトコマンドのためのリード操作を行う。これにより、リードコマンドおよびライトコマンドにおける、リード操作の電圧バイアスの印加をまとめて行うことができる。
【０１２３】
制御部１３０は、図８を用いて説明したライトコマンドの動作におけるステップＳ９２３と同様に、ビットラインセレクタ１５０にアクセスする。これにより、メモリセルアレイ１１０から読み出したリードコマンドおよびライトコマンドのそれぞれに対応したデータを取得する（ステップＳ８７３）。リードコマンドのための処理はここで完了し、以降はライトコマンドのための処理が行われる。
【０１２４】
制御部１３０は、図８を用いて説明したライトコマンドの動作におけるＳ９２４と同様に、メモリセルアレイ１１０から読み出したデータと、書き込みを行うデータとを比較する。そして、ライトコマンドに対応した、セット操作を行うべきビットを示すセットマスク、および、リセット操作を行うべきビットを示すリセットマスクを決定する（ステップＳ８７４）。
【０１２５】
制御部１３０は、セット操作を行い（ステップＳ８７５）、正常にセットが行われるまで繰り返す（ステップＳ８７６）。このセット操作（ステップＳ８７５）の実行処理手順は、図９により説明した手順（ステップＳ９２５）と同様である。ステップＳ８７６において、制御部１３０は読み出したデータとセット操作を行うべきビットパターンを比較して、正常にセット操作が行われたかどうかを確認する。なお、２回目以降のセット操作では、ステップＳ８７６において正常にセット操作が行われなかったことが判明したビットのみをセット操作対象とする。また、セット操作に続くリード操作によりセット操作のリトライを行う回数の上限を定めるために、カウンタを設けて規定回数以上の失敗をエラーとするという手法が考えられるが、ここでは説明を省略する。
【０１２６】
制御部１３０は、リセット操作を行い（ステップＳ８７７）、正常にリセットが行われるまで繰り返す（ステップＳ８７８）。このリセット操作（ステップＳ８７７）の実行処理手順は、図１０により説明した手順（ステップＳ９２７）と同様である。ステップＳ８７８において、制御部１３０は読み出したデータとリセット操作を行うべきビットパターンを比較して、正常にリセット操作が行われたかどうかを確認する。なお、２回目以降のリセット操作では、ステップＳ８７８において正常にリセット操作が行われなかったことが判明したビットのみをリセット操作対象とする。また、リセット操作に続くリード操作によりリセット操作のリトライを行う回数の上限を定めるために、カウンタを設けて規定回数以上の失敗をエラーとするという手法が考えられるが、ここでは説明を省略する。
【０１２７】
これらの処理が完了すると、制御部１３０は制御インターフェース１２０に指示し、リードコマンドに対応して読み出したデータ、および、ライトコマンドの終了をメモリコントローラ２００に通知する（ステップＳ８７９）。なお、リードコマンドに対応して読み出したデータを、ステップＳ８７３においてメモリコントローラ２００に通知するようにしてもよい。
【０１２８】
このように、本技術の第１の実施の形態では、抵抗変化型メモリにおいて、プレートを共通にする同一ブロックにおける異なるワードに対する複数のコマンドの処理における操作のうち、ドライブ電圧として等しい電圧を印加する操作同士をまとめて連続して実行する。すなわち、２つのリードコマンドを実行する際には、２つのリード操作をまとめて連続して実行する。２つのライトコマンドを実行する際には、プレリードのための２つのリード操作、２つのセット操作、検証のための２つのリード操作、２つのリセット操作、および、検証のための２つのリード操作をそれぞれまとめて連続して実行する。１つのリードコマンドおよび１つのライトコマンドを実行する際には、リードコマンドのリード操作と、ライトコマンドのプレリードのためのリード操作とをまとめて連続して実行する。これにより、ドライブ電圧の変化に伴う充放電の発生を抑制して、消費電力を低減することができる。
【０１２９】
［変形例］
上述の第１の実施の形態では、同一ブロックにおける異なるワードに対する２つのコマンドが、リードコマンドとライトコマンドの組合せであった場合、両者におけるリード操作をまとめて実行するように構成していた。これに対し、両者を順次実行するようにしてもよい。
【０１３０】
図１６は、本技術の第１の実施の形態の変形例におけるメモリ１００の処理手順の一例を示す流れ図である。この変形例では、同一ブロックにおける異なるワードに対する２つのコマンドが、リードコマンドとライトコマンドの組合せであった場合（ステップＳ８１８：Ｎｏ）、両者を順次実行する（ステップＳ８２３）。これは、２つのコマンドが同一ブロックにおける同一ワードに対するものであった場合と同様の取り扱いをしたものである。このような取り扱いをすることにより、リード操作をまとめることによる効果は得られなくなる。ただし、異なる種別のコマンドをまとめるという煩雑さをなくすことができ、制御の簡素化および高速化を図ることができる。
【０１３１】
＜２．第２の実施の形態＞
上述の第１の実施の形態では、セット操作およびリセット操作を１つのコマンドにおいて実行するライトコマンドを想定したが、セット操作およびリセット操作は個別のコマンドにおいて実行してもよい。この第２の実施の形態では、ライトコマンドに代えて、リセット操作を行わずにセット操作のみを行う消去コマンドと、セット操作を行わずにリセット操作のみを行うプログラムコマンドとを想定して説明する。なお、ここでは、ライトコマンドに代えて消去コマンドおよびプログラムコマンドを備えることを想定するが、ライトコマンドを併せて利用するようにしてもよい。また、情報処理システムとしての全体構成やメモリ１００の構成は上述の第１の実施の形態と同様であるため、以下では説明を省略する。
【０１３２】
図１７は、本技術の第２の実施の形態におけるメモリ１００の処理手順の一例を示す流れ図である。メモリコントローラ２００は、ホストコンピュータ３００からの指示により、リードコマンド、消去コマンド、プログラムコマンド、または、これらの組合せから構成されたコマンド群を構成し、メモリ１００の制御インターフェース１２０に対して書き込む。消去コマンドは、論理値「１」のビットをセット操作により論理値「０」に遷移させるコマンドである。プログラムコマンドは、論理値「０」のビットをリセット操作により論理値「１」に遷移させるコマンドである。
【０１３３】
この第２の実施の形態では、第１の実施の形態における図６のステップＳ８１７およびＳ８１８に代えて、２つのコマンドの組合せを判断するステップＳ８１９を実行する。このステップＳ８１９以前の処理手順は第１の実施の形態と同様である。
【０１３４】
ステップＳ８１９では、同一ブロックの異なるワードに対してアクセスする２つのコマンドの組合せが判断される。２つのコマンドが２つのリードコマンドであれば、ステップＳ８３０が実行される。このステップＳ８３０は、第１の実施の形態における図１１の処理手順と同様である。２つのコマンドが２つの消去コマンドであれば、ステップＳ７１０が実行される。２つのコマンドが２つのプログラムコマンドであれば、ステップＳ７２０が実行される。２つのコマンドがリードコマンドと消去コマンドであれば、ステップＳ７３０が実行される。２つのコマンドがリードコマンドとプログラムコマンドであれば、ステップＳ７４０が実行される。２つのコマンドが消去コマンドとプログラムコマンドであれば、ステップＳ７５０が実行される。これら何れかが実行された後、ステップＳ８１１に戻って動作が繰り返される。
【０１３５】
図１８は、本技術の第２の実施の形態における１つの消去コマンドの処理手順の一例を示す流れ図である。この消去コマンドの処理は、図１７のステップＳ８２１、Ｓ８２２またはＳ８２３において、第１の実施の形態において説明したライトコマンドに代えて実行される。この消去コマンドの処理は、第１の実施の形態における図８のライトコマンドの処理からリセット操作（ステップＳ９２７およびＳ９２８）を除いたものと同様である。ステップＳ９５５のセット操作の処理手順は、第１の実施の形態における図９と同様である。
【０１３６】
図１９は、本技術の第２の実施の形態における１つのプログラムコマンドの処理手順の一例を示す流れ図である。このプログラムコマンドの処理は、図１７のステップＳ８２１、Ｓ８２２またはＳ８２３において、第１の実施の形態において説明したライトコマンドに代えて実行される。このプログラムコマンドの処理は、第１の実施の形態における図８のライトコマンドの処理からセット操作（ステップＳ９２５およびＳ９２６）を除いたものと同様である。ステップＳ９６７のリセット操作の処理手順は、第１の実施の形態における図１０と同様である。
【０１３７】
図２０は、本技術の第２の実施の形態における２つの消去操作（ステップＳ７１０）の処理手順の一例を示す流れ図である。この２つの消去操作の処理は、図１７のステップＳ７１０において実行される。この２つの消去操作の処理は、第１の実施の形態における図１２の２つのライト操作の処理から２つのリセット操作（ステップＳ８４７およびＳ８４８）を除いたものと同様である。ステップＳ７１５の２つのセット操作の処理手順は、第１の実施の形態における図１３と同様である。
【０１３８】
図２１は、本技術の第２の実施の形態における２つのプログラム操作（ステップＳ７２０）の処理手順の一例を示す流れ図である。この２つのプログラム操作の処理は、図１７のステップＳ７２０において実行される。この２つのプログラム操作の処理は、第１の実施の形態における図１２の２つのライト操作の処理から２つのセット操作（ステップＳ８４５およびＳ８４６）を除いたものと同様である。ステップＳ７２７の２つのリセット操作の処理手順は、第１の実施の形態における図１４と同様である。
【０１３９】
図２２は、本技術の第２の実施の形態における１つのリード操作と１つの消去操作（ステップＳ７３０）の処理手順の一例を示す流れ図である。この１つのリード操作と１つの消去操作の処理は、図１７のステップＳ７３０において実行される。この１つのリード操作と１つの消去操作の処理は、第１の実施の形態における図１５の１つのリード操作と１つのライト操作の処理からリセット操作（ステップＳ８７７およびＳ８７８）を除いたものと同様である。ステップＳ７３５のセット操作の処理手順は、第１の実施の形態における図９と同様である。
【０１４０】
図２３は、本技術の第２の実施の形態における１つのリード操作と１つのプログラム操作（ステップＳ７４０）の処理手順の一例を示す流れ図である。この１つのリード操作と１つのプログラム操作の処理は、図１７のステップＳ７４０において実行される。この１つのリード操作と１つのプログラム操作の処理は、第１の実施の形態における図１５の１つのリード操作と１つのライト操作の処理からセット操作（ステップＳ８７５およびＳ８７６）を除いたものと同様である。ステップＳ７４７のリセット操作の処理手順は、第１の実施の形態における図１０と同様である。
【０１４１】
図２４は、本技術の第２の実施の形態における１つの消去操作と１つのプログラム操作（ステップＳ７５０）の処理手順の一例を示す流れ図である。この１つの消去操作と１つのプログラム操作の処理は、図１７のステップＳ７５０において実行される。この１つの消去操作と１つのプログラム操作の処理は、第１の実施の形態における図１５の１つのリード操作と１つのライト操作の処理に準じたものとなる。すなわち、消去操作のためのセット操作をステップＳ７５５で実行し、プログラム操作のためのリセット操作をステップＳ７５７で実行する。ステップＳ７５５のセット操作の処理手順は、第１の実施の形態における図９と同様である。ステップＳ７５７のリセット操作の処理手順は、第１の実施の形態における図１０と同様である。
【０１４２】
このように、本技術の第２の実施の形態では、消去コマンドおよびプログラムコマンドを想定して、ドライブ電圧として等しい電圧を印加する操作同士をまとめて連続して実行する。すなわち、２つの消去コマンドを実行する際には、プレリードのための２つのリード操作、２つのセット操作、および、検証のための２つのリード操作をそれぞれまとめて連続して実行する。２つのプログラムコマンドを実行する際には、プレリードのための２つのリード操作、２つのリセット操作、および、検証のための２つのリード操作をそれぞれまとめて連続して実行する。１つのリードコマンドおよび１つの消去コマンドを実行する際には、リードコマンドのリード操作と、消去コマンドのプレリードのためのリード操作とをまとめて連続して実行する。１つのリードコマンドおよび１つのプログラムコマンドを実行する際には、リードコマンドのリード操作と、プログラムコマンドのプレリードのためのリード操作とをまとめて連続して実行する。１つの消去コマンドおよび１つのプログラムコマンドを実行する際には、プレリードのための２つのリード操作をまとめて連続して実行する。これにより、ドライブ電圧の変化に伴う充放電の発生を抑制して、消費電力を低減することができる。
【０１４３】
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
【０１４４】
また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、ＣＤ（Compact Disc）、ＭＤ（MiniDisc）、ＤＶＤ（Digital Versatile Disk）、メモリカード、ブルーレイディスク（Blu-ray Disc（登録商標））等を用いることができる。
【０１４５】
なお、本技術は以下のような構成もとることができる。
（１）コマンド列に含まれる複数のコマンドのアクセス対象アドレスが、メモリセルアレイのプレートを共通にする同一ブロックにおける異なるワードに対するものであるか否かを判定するコマンドデコーダと、
前記複数のコマンドのアクセス対象アドレスが前記メモリセルアレイの同一ブロックにおける異なるワードに対するものであると判定された場合には、前記複数のコマンドの処理における操作のうち前記プレートとビットラインとの間のドライブ電圧として等しい電圧を印加する操作同士をまとめて連続して実行するコマンド処理部と
を具備する記憶制御装置。
（２）前記コマンドデコーダは、前記複数のコマンドが２つのリードコマンドであるか否かをさらに判定し、
前記コマンド処理部は、前記２つのリードコマンドのアクセス対象アドレスが前記メモリセルアレイの同一ブロックにおける異なるワードに対するものであると判定された場合には、前記２つのリードコマンドの処理における操作のうち前記ドライブ電圧としてリードドライブ電圧を印加する操作同士をまとめて連続して実行する
前記（１）に記載の記憶制御装置。
（３）前記コマンドデコーダは、前記複数のコマンドが２つのライトコマンドであるか否かをさらに判定し、
前記コマンド処理部は、前記２つのライトコマンドのアクセス対象アドレスが前記メモリセルアレイの同一ブロックにおける異なるワードに対するものであると判定された場合には、前記２つのライトコマンドの処理における操作のうち前記ドライブ電圧としてリードドライブ電圧を印加する操作同士をまとめて連続して実行し、前記ドライブ電圧としてセットドライブ電圧を印加する操作同士をまとめて連続して実行し、前記ドライブ電圧としてリセットドライブ電圧を印加する操作同士をまとめて連続して実行する
前記（１）に記載の記憶制御装置。
（４）前記コマンドデコーダは、前記複数のコマンドが１つのリードコマンドおよび１つのライトコマンドの組合せであるか否かをさらに判定し、
前記コマンド処理部は、前記リードコマンドおよび前記ライトコマンドのアクセス対象アドレスが前記メモリセルアレイの同一ブロックにおける異なるワードに対するものであると判定された場合には、前記リードコマンドおよび前記ライトコマンドの処理における操作のうち前記ドライブ電圧としてリードドライブ電圧を印加する操作同士をまとめて連続して実行する
前記（１）に記載の記憶制御装置。
（５）前記コマンドデコーダは、前記複数のコマンドが２つの消去コマンドであるか否かをさらに判定し、
前記コマンド処理部は、前記２つの消去コマンドのアクセス対象アドレスが前記メモリセルアレイの同一ブロックにおける異なるワードに対するものであると判定された場合には、前記２つの消去コマンドの処理における操作のうち前記ドライブ電圧としてリードドライブ電圧を印加する操作同士をまとめて連続して実行し、前記ドライブ電圧としてセットドライブ電圧を印加する操作同士をまとめて連続して実行する
前記（１）に記載の記憶制御装置。
（６）前記コマンドデコーダは、前記複数のコマンドが２つのプログラムコマンドであるか否かをさらに判定し、
前記コマンド処理部は、前記２つのプログラムコマンドのアクセス対象アドレスが前記メモリセルアレイの同一ブロックにおける異なるワードに対するものであると判定された場合には、前記２つのプログラムコマンドの処理における操作のうち前記ドライブ電圧としてリードドライブ電圧を印加する操作同士をまとめて連続して実行し、前記ドライブ電圧としてリセットドライブ電圧を印加する操作同士をまとめて連続して実行する
前記（１）に記載の記憶制御装置。
（７）前記コマンドデコーダは、前記複数のコマンドが１つのリードコマンドおよび１つの消去コマンドの組合せであるか否かをさらに判定し、
前記コマンド処理部は、前記リードコマンドおよび前記消去コマンドのアクセス対象アドレスが前記メモリセルアレイの同一ブロックにおける異なるワードに対するものであると判定された場合には、前記リードコマンドおよび前記消去コマンドの処理における操作のうち前記ドライブ電圧としてリードドライブ電圧を印加する操作同士をまとめて連続して実行する
前記（１）に記載の記憶制御装置。
（８）前記コマンドデコーダは、前記複数のコマンドが１つのリードコマンドおよび１つのプログラムコマンドの組合せであるか否かをさらに判定し、
前記コマンド処理部は、前記リードコマンドおよび前記プログラムコマンドのアクセス対象アドレスが前記メモリセルアレイの同一ブロックにおける異なるワードに対するものであると判定された場合には、前記リードコマンドおよび前記プログラムコマンドの処理における操作のうち前記ドライブ電圧としてリードドライブ電圧を印加する操作同士をまとめて連続して実行する
前記（１）に記載の記憶制御装置。
（９）前記コマンドデコーダは、前記複数のコマンドが１つの消去コマンドおよび１つのプログラムコマンドの組合せであるか否かをさらに判定し、
前記コマンド処理部は、前記消去コマンドおよび前記プログラムコマンドのアクセス対象アドレスが前記メモリセルアレイの同一ブロックにおける異なるワードに対するものであると判定された場合には、前記消去コマンドおよび前記プログラムコマンドの処理における操作のうち前記ドライブ電圧としてリードドライブ電圧を印加する操作同士をまとめて連続して実行する
前記（１）に記載の記憶制御装置。
（１０）プレートを共通にするブロック毎に分割されたメモリセルアレイと、
前記プレートとビットラインとの間のドライブ電圧を供給するドライバと、
コマンド列に含まれる複数のコマンドのアクセス対象アドレスが、前記メモリセルアレイの同一ブロックにおける異なるワードに対するものであるか否かを判定するコマンドデコーダと、
前記複数のコマンドのアクセス対象アドレスが前記メモリセルアレイの同一ブロックにおける異なるワードに対するものであると判定された場合には、前記複数のコマンドの処理における操作のうち前記ドライブ電圧として等しい電圧を印加する操作同士をまとめて連続して実行するコマンド処理部と
を具備する記憶装置。
（１１）前記メモリセルアレイは抵抗変化型メモリである前記（１０）に記載の記憶装置。
（１２）コマンド列に含まれる複数のコマンドのアクセス対象アドレスが、メモリセルアレイのプレートを共通にする同一ブロックにおける異なるワードに対するものであるか否かを判定する判定手順と、
前記複数のコマンドのアクセス対象アドレスが前記メモリセルアレイの同一ブロックにおける異なるワードに対するものであると判定された場合には、前記複数のコマンドの処理における操作のうち前記プレートとビットラインとの間のドライブ電圧として等しい電圧を印加する操作同士をまとめて連続して実行するコマンド処理手順と
を具備する記憶制御方法。
【符号の説明】
【０１４６】
１００  メモリ
１０１  ブロック
１１０  メモリセルアレイ
１１１  可変抵抗素子
１１２  ＦＥＴ
１１３  プレート
１２０  制御インターフェース
１３０  制御部
１３１  コマンドキュー
１３２  コマンドデコーダ
１３３  コマンド処理部
１４０  ワードラインデコーダ
１５０  ビットラインセレクタ
１６０  ドライバ
２００  メモリコントローラ
３００  ホストコンピュータ
【図１】
0005853843.tif 000002
【図２】
0005853843.tif 000003
【図３】
0005853843.tif 000004
【図４】
0005853843.tif 000005
【図５】
0005853843.tif 000006
【図６】
0005853843.tif 000007
【図７】
0005853843.tif 000008
【図８】
0005853843.tif 000009
【図９】
0005853843.tif 000010
【図１０】
0005853843.tif 000011
【図１１】
0005853843.tif 000012
【図１２】
0005853843.tif 000013
【図１３】
0005853843.tif 000014
【図１４】
0005853843.tif 000015
【図１５】
0005853843.tif 000016
【図１６】
0005853843.tif 000017
【図１７】
0005853843.tif 000018
【図１８】
0005853843.tif 000019
【図１９】
0005853843.tif 000020
【図２０】
0005853843.tif 000021
【図２１】
0005853843.tif 000022
【図２２】
0005853843.tif 000023
【図２３】
0005853843.tif 000024
【図２４】
0005853843.tif 000025