(57)【要約】【課題】メモリセルアレイにおける記憶内容の変化が少ない書込みを高速に行う。【解決手段】リクエスト判別部は、リクエストのタイプを判別する。書込む制御部は、リクエストがリフレッシュリクエストである場合にはメモリセルアレイから読み出したリードデータをメモリセルアレイの所定のページを単位としてメモリセルアレイに書込む。また、書込む制御部は、リクエストがライトリクエストである場合にはライトデータのページをグループ単位に分割して複数回に分けてメモリセルアレイに書込む。【選択図】図２
2014041573.tif 000002
【特許請求の範囲】
【請求項１】
リクエストのタイプを判別するリクエスト判別部と、
前記リクエストがリフレッシュリクエストである場合にはメモリセルアレイから読み出したリードデータを前記メモリセルアレイの所定のページを単位として前記メモリセルアレイに書込み、前記リクエストがライトリクエストである場合にはライトデータの前記ページをグループ単位に分割して複数回に分けて前記メモリセルアレイに書込む制御部と
を具備する記憶制御装置。
【請求項２】
前記グループのビット数は、前記メモリセルアレイにおいて許容される電流量に基づいて決定される請求項１記載の記憶制御装置。
【請求項３】
前記リードデータのエラー検出を行うエラー処理部をさらに具備し、
前記制御部は、前記エラー検出において検出されたエラーの数が所定の要件を満たさない場合には前記メモリセルアレイへの書込みを行わない
請求項１記載の記憶制御装置。
【請求項４】
前記リードデータのエラー検出および訂正を行うエラー処理部をさらに具備し、
前記制御部は、前記エラー検出において検出されたエラーの数が前記エラー訂正可能な数よりも多い場合には前記メモリセルアレイへの書込みを行わない
請求項１記載の記憶制御装置。
【請求項５】
前記リフレッシュリクエストまたは前記ライトリクエストに対するデータの書込みの後に前記ページを単位として前記メモリセルアレイからそのデータを読み出して、正しく書込みが行われたか否を検証する検証処理をさらに具備する請求項１記載の記憶制御装置。
【請求項６】
複数のメモリセルからなるメモリセルアレイと、
リクエストのタイプを判別するリクエスト判別部と、
前記リクエストがリフレッシュリクエストである場合には前記メモリセルアレイから読み出したリードデータを前記メモリセルアレイの所定のページを単位として前記メモリセルアレイに書込み、前記リクエストがライトリクエストである場合にはライトデータの前記ページをグループ単位に分割して複数回に分けて前記メモリセルアレイに書込む制御部と
を具備する記憶装置。
【請求項７】
複数のメモリセルからなるメモリセルアレイと、
前記メモリセルアレイに対するコマンドを発行するホストコンピュータと、
前記コマンドのタイプを判別するコマンド判別部と、
前記コマンドがリフレッシュコマンドである場合には前記メモリセルアレイから読み出したリードデータを前記メモリセルアレイの所定のページを単位として前記メモリセルアレイに書込み、前記コマンドがライトコマンドである場合にはライトデータの前記ページをグループ単位に分割して複数回に分けて前記メモリセルアレイに書込む制御部と
を具備する情報処理システム。
【請求項８】
リクエストのタイプを判別するリクエスト判別手順と、
前記リクエストがリフレッシュリクエストである場合にはメモリセルアレイから読み出したリードデータを前記メモリセルアレイの所定のページを単位として前記メモリセルアレイに書込み、前記リクエストがライトリクエストである場合にはライトデータの前記ページをグループ単位に分割して複数回に分けて前記メモリセルアレイに書込む制御手順と
を具備する記憶制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、記憶制御装置に関する。詳しくは、不揮発性メモリのための記憶制御装置、記憶装置、情報処理システム、および、これらにおける処理方法ならびに当該方法をコンピュータに実行させるプログラムに関する。
【背景技術】
【０００２】
情報処理システムにおいては、ワークメモリとしてＤＲＡＭ（Dynamic Random Access Memory）等が用いられる。このＤＲＡＭは、通常、揮発性メモリであり、電源の供給が停止するとその記憶内容は消失する。一方、近年、不揮発性メモリ（ＮＶＭ：Non-Volatile Memory）が用いられるようになっている。この不揮発性メモリとしては、大きなサイズを単位としたデータアクセスに対応したフラッシュメモリと、小さな単位での高速なランダムアクセスが可能な不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ：Non-Volatile RAM）とに大別される。ここで、フラッシュメモリの代表例としては、ＮＡＮＤ型フラッシュメモリが挙げられる。一方、不揮発性ランダムアクセスメモリの例としては、ＲｅＲＡＭ（Resistance RAM）、ＰＣＲＡＭ（Phase-Change RAM）、ＭＲＡＭ（Magnetoresistive RAM）などが挙げられる。
【０００３】
ＲｅＲＡＭは、可変抵抗素子を用いた不揮発性メモリであり、データの書込みに先立ってブロック単位で消去を行う必要がなく、必要ページのみを直接書き換えることが可能である。一方、ＲｅＲＡＭは、メモリセルに対する書込み電流に制限があることから、書込み対象となるページを分割して書込みを行う技術が提案されている（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１８２３７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述の従来技術では、書込み対象となるページを分割して書込みを行うことにより書込み電流の抑制を図っている。このような電流の抑制は、ＲｅＲＡＭ以外においても消費電力の低減を図る上で有効である。一方、メモリに対する書込みの内容によっては記憶内容の変化が少ない場合があり、そのような場合にもページを分割して書込みを行うと必要以上に時間を要してしまうおそれがある。
【０００６】
本技術はこのような状況に鑑みて生み出されたものであり、記憶内容の変化が少ない書込みを高速に行うことを目的とする。
【課題を解決するための手段】
【０００７】
本技術は、上述の問題点を解消するためになされたものであり、その第１の側面は、リクエストのタイプを判別するリクエスト判別部と、上記リクエストがリフレッシュリクエストである場合にはメモリセルアレイから読み出したリードデータを上記メモリセルアレイの所定のページを単位として上記メモリセルアレイに書込み、上記リクエストがライトリクエストである場合にはライトデータの上記ページをグループ単位に分割して複数回に分けて上記メモリセルアレイに書込む制御部とを具備する記憶制御装置およびその制御方法である。これにより、リフレッシュリクエストに基づく書込みをライトリクエストに基づく書込みよりも高速に処理するという作用をもたらす。
【０００８】
また、この第１の側面において、上記グループのビット数は、上記メモリセルアレイにおいて許容される電流量に基づいて決定されるようにしてもよい。これにより、メモリセルアレイにおいて許容される電流量を考慮した分割単位でライトリクエストを処理するという作用をもたらす。
【０００９】
また、この第１の側面において、上記リードデータのエラー検出を行うエラー処理部をさらに具備し、上記制御部は、上記エラー検出において検出されたエラーの数が所定の要件を満たさない場合には上記メモリセルアレイへの書込みを行わないようにしてもよい。これにより、検出されたエラーの数が所定の要件を満たす場合にのみリフレッシュリクエストに基づく書込みを行うという作用をもたらす。
【００１０】
また、この第１の側面において、上記リードデータのエラー検出および訂正を行うエラー処理部をさらに具備し、上記制御部は、上記エラー検出において検出されたエラーの数が上記エラー訂正可能な数よりも多い場合には上記メモリセルアレイへの書込みを行わないようにしてもよい。これにより、検出されたエラーの数がエラー訂正可能な数よりも多い場合にのみリフレッシュリクエストに基づく書込みを行うという作用をもたらす。
【００１１】
また、この第１の側面において、上記リフレッシュリクエストまたは上記ライトリクエストに対するデータの書込みの後に上記ページを単位として上記メモリセルアレイからそのデータを読み出して、正しく書込みが行われたか否を検証する検証処理をさらに具備するようにしてもよい。これにより、リフレッシュリクエストまたはライトリクエストに基づく書込みの成否を検証するという作用をもたらす。
【００１２】
また、本技術の第２の側面は、複数のメモリセルからなるメモリセルアレイと、リクエストのタイプを判別するリクエスト判別部と、上記リクエストがリフレッシュリクエストである場合には上記メモリセルアレイから読み出したリードデータを上記メモリセルアレイの所定のページを単位として上記メモリセルアレイに書込み、上記リクエストがライトリクエストである場合にはライトデータの上記ページをグループ単位に分割して複数回に分けて上記メモリセルアレイに書込む制御部とを具備する記憶装置である。これにより、リフレッシュリクエストに基づくメモリセルアレイに対する書込みをライトリクエストに基づく書込みよりも高速に処理するという作用をもたらす。
【００１３】
また、本技術の第３の側面は、複数のメモリセルからなるメモリセルアレイと、上記メモリセルアレイに対するコマンドを発行するホストコンピュータと、上記コマンドのタイプを判別するコマンド判別部と、上記コマンドがリフレッシュコマンドである場合には上記メモリセルアレイから読み出したリードデータを上記メモリセルアレイの所定のページを単位として上記メモリセルアレイに書込み、上記コマンドがライトコマンドである場合にはライトデータの上記ページをグループ単位に分割して複数回に分けて上記メモリセルアレイに書込む制御部とを具備する情報処理システムである。これにより、ホストコンピュータからのリフレッシュコマンドに基づくメモリセルアレイに対する書込みをライトコマンドに基づく書込みよりも高速に処理するという作用をもたらす。
【発明の効果】
【００１４】
本技術によれば、記憶内容の変化が少ない書込みを高速に行うことができるという優れた効果を奏し得る。
【図面の簡単な説明】
【００１５】
【図１】本技術の実施の形態における情報処理システムの構成例を示す図である。
【図２】本技術の実施の形態におけるメモリ３００の一構成例を示す図である。
【図３】本技術の実施の形態におけるメモリセルアレイ３１０の構造の一例を示す図である。
【図４】本技術の実施の形態におけるメモリセル３１３の回路例を示す図である。
【図５】本技術の実施の形態におけるメモリセル３１３の通常状態における抵抗分布を示す図である。
【図６】本技術の実施の形態におけるメモリセル３１３の変化した抵抗分布を示す図である。
【図７】本技術の実施の形態におけるメモリセルアレイ３１０に記憶されるデータの構造の一例を示す図である。
【図８】本技術の実施の形態におけるメモリセルアレイ３１０に記憶される物理ページの構造の一例を示す図である。
【図９】本技術の実施の形態におけるバッファ３４０に保持される各バッファの例を示す図である。
【図１０】本技術の実施の形態におけるバッファ３４０に保持される具体例（リセット対象特定）を示す図である。
【図１１】本技術の実施の形態におけるバッファ３４０に保持される具体例（リセット検証）を示す図である。
【図１２】本技術の実施の形態におけるバッファ３４０に保持される具体例（セット対象特定）を示す図である。
【図１３】本技術の実施の形態におけるバッファ３４０に保持される具体例（セット検証）を示す図である。
【図１４】本技術の実施の形態におけるメモリコントローラ２００のコマンド処理手順の一例を示す流れ図である。
【図１５】本技術の実施の形態におけるライトコマンド処理の処理手順の一例を示す流れ図である。
【図１６】本技術の実施の形態における物理ページリセット処理（ステップＳ９２０）の処理手順の一例を示す流れ図である。
【図１７】本技術の実施の形態におけるライト処理の際の物理ページリセットの経過例を示す図である。
【図１８】本技術の実施の形態における物理ページセット処理（ステップＳ９４０）の処理手順の一例を示す流れ図である。
【図１９】本技術の実施の形態におけるリードコマンド処理の処理手順の一例を示す流れ図である。
【図２０】本技術の実施の形態におけるリフレッシュコマンド処理の処理手順の一例を示す流れ図である。
【図２１】本技術の実施の形態におけるリフレッシュリクエスト処理の処理手順の一例を示す流れ図である。
【図２２】本技術の実施の形態における物理ページリフレッシュリセット処理（ステップＳ９６０）の処理手順の一例を示す流れ図である。
【図２３】本技術の実施の形態におけるリフレッシュ処理の際の物理ページリフレッシュリセットの経過例を示す図である。
【図２４】本技術の実施の形態における物理ページリフレッシュセット処理（ステップＳ９８０）の処理手順の一例を示す流れ図である。
【図２５】本技術の実施の形態の変形例におけるメモリセル３１３の抵抗分布と閾値との関係を示す図である。
【発明を実施するための形態】
【００１６】
以下、本技術を実施するための形態（以下、実施の形態と称する）について説明する。説明は以下の順序により行う。
１．第１の実施の形態（リフレッシュ制御）
２．変形例（閾値変更）
【００１７】
＜１．第１の実施の形態＞
［情報処理システムの構成］
図１は、本技術の実施の形態における情報処理システムの構成例を示す図である。この情報処理システムは、ホストコンピュータ１００と、メモリコントローラ２００と、メモリ３００とから構成される。メモリコントローラ２００およびメモリ３００はストレージシステムを構成する。
【００１８】
ホストコンピュータ１００は、メモリ３００に対してデータのリード、ライトまたは負リフレッシュ等を要求するコマンドを発行するものである。
【００１９】
メモリコントローラ２００は、ホストコンピュータ１００と通信してコマンドを受信し、メモリ３００へのデータ書込みおよびメモリ３００からのデータ読出しを実行するものである。メモリコントローラ２００は、ライトコマンドを受信した場合、ホストコンピュータ１００から受信したデータを、メモリ３００に書き込むよう指示する。また、メモリコントローラ２００は、リードコマンドを受信した場合、メモリ３００からデータを読み出してホストコンピュータ１００に転送する。また、メモリコントローラ２００は、リフレッシュコマンドを受信した場合、メモリ３００からデータを読み出して、その読み出したデータを再びメモリ３００に書き込むよう指示する。
【００２０】
ホストコンピュータ１００がライトコマンド、リードコマンド、リフレッシュコマンドを実行するとき、メモリコントローラ２００内で、データの位置情報を表すアドレスとして論理アドレスが用いられる。
【００２１】
メモリコントローラ２００は、プロセッサ２１０と、ＲＡＭ２２０と、ＲＯＭ２３０と、ＥＣＣ処理部２４０と、ホストインターフェース２０１と、メモリインターフェース２０３とを備える。
【００２２】
プロセッサ２１０は、メモリコントローラ２００全体の制御を行うものである。このプロセッサ２１０は、ＲＯＭ２３０に格納されたソフトウェアを実行する。このプロセッサ２１０は、ホストコンピュータ１００から発行されたコマンドを解釈して、メモリ３００に対して必要なリクエストを供給する。なお、プロセッサ２１０は、特許請求の範囲に記載のコマンド判別部の一例である。
【００２３】
ＲＡＭ２２０は、揮発性のメモリであり、プロセッサ２１０のワーキングメモリや、メモリ３００を管理するデータを一時的に保持するための領域として用いられる。また、ＲＡＭ２２０は、ホストコンピュータ１００とメモリコントローラ２００との間で転送されるデータを一時的に保持するための領域や、メモリコントローラ２００とメモリ３００との間で転送されるデータを一時的に保持するための領域としても用いられる。ＲＯＭ２３０は、ストレージシステムを制御するためのソフトウェアプログラムを格納するメモリである。
【００２４】
ＥＣＣ処理部２４０は、メモリ３００に記録されるデータのエラー訂正コード（ＥＣＣ：Error Correcting Code）の生成、および、メモリ３００から読み出したデータのエラー訂正処理を実行するものである。なお、ＥＣＣ処理部２４０は、特許請求の範囲に記載のエラー処理部の一例である。
【００２５】
ホストインターフェース２０１は、ホストコンピュータ１００と接続され、ホストコンピュータ１００からのコマンドの受信、および、ホストコンピュータ１００とのデータの受送信を実行するものである。
【００２６】
メモリインターフェース２０３は、メモリ３００と接続され、メモリ３００に対するリクエストの送信、ライトデータの送信、および、リードデータの受信を実行するものである。
【００２７】
［メモリの構成］
図２は、本技術の実施の形態におけるメモリ３００の一構成例を示す図である。このメモリ３００は、メモリセルアレイ３１０と、ロウ制御部３１１と、カラム制御部３１２と、プレート制御部３２０とを備える。また、このメモリ３００は、ライト制御部３３１と、リード制御部３３２と、リフレッシュ制御部３３３と、バッファ３４０と、検証処理部３５０と、リクエスト処理部３６０とを備える。
【００２８】
また、このメモリ３００は、メモリコントローラ２００との間のインターフェースである制御インターフェース３０９を備えている。この制御インターフェース３０９は、メモリコントローラ２００からのリクエストや物理アドレスおよびパラメータの受信、メモリセルアレイ３１０へのライトデータの受信、メモリセルアレイ３１０からのリードデータの送信、制御データの受送信などを行う。
【００２９】
メモリセルアレイ３１０は、複数のメモリセルからなるメモリセルアレイであり、ビット毎に２値の何れかの値を記憶するメモリセルが２次元状（マトリクス状）に多数配列されている。このメモリセルアレイ３１０にアクセスするメモリコントローラ２００からのリクエストの単位は物理ページ単位である。物理ページには物理ページアドレスが割り振られている。
【００３０】
ロウ制御部３１１は、リクエスト処理部３６０からの指示に従って、メモリセルアレイ３１０のロウアドレスを特定してアクセス制御するものである。カラム制御部３１２は、リクエスト処理部３６０からの指示に従って、メモリセルアレイ３１０のカラムアドレスを特定してアクセス制御するものである。プレート制御部３２０は、メモリセルアレイ３１０のメモリセルにセル電流を流すためのプレート電圧を制御するものである。
【００３１】
ライト制御部３３１は、メモリセルアレイ３１０に書込みを行うための制御を実行するものである。リード制御部３３２は、メモリセルアレイ３１０から読出しを行うための制御を実行するものである。リフレッシュ制御部３３３は、メモリセルアレイ３１０に対してリフレッシュを行うための制御を実行するものである。なお、ライト制御部３３１およびリフレッシュ制御部３３３は、特許請求の範囲に記載の制御部の一例である。
【００３２】
バッファ３４０は、各リクエストを処理するために必要なデータを保持するバッファの格納領域である。このバッファ３４０の構成については後述する。
【００３３】
検証処理部３５０は、メモリセルアレイ３１０にデータが正しく書き込まれたか否かを検証（ベリファイ）するものである。
【００３４】
リクエスト処理部３６０は、メモリコントローラ２００からのリクエストを処理するためのものである。このリクエスト処理部３６０は、メモリコントローラ２００からのリクエストがライトリクエストであれば、ライト制御部３３１に制御を指示する。また、このリクエスト処理部３６０は、メモリコントローラ２００からのリクエストがリードリクエストであれば、リード制御部３３２に制御を指示する。また、このリクエスト処理部３６０は、メモリコントローラ２００からのリクエストがリフレッシュリクエストであれば、リフレッシュ制御部３３３に制御を指示する。なお、リクエスト処理部３６０は、特許請求の範囲に記載のリクエスト判別部の一例である。
【００３５】
なお、メモリコントローラ２００またはメモリ３００におけるメモリセルアレイ３１０を除いた部分は、特許請求の範囲に記載の記憶制御装置の一例である。また、メモリ３００は、特許請求の範囲に記載の記憶装置の一例である。
【００３６】
図３は、本技術の実施の形態におけるメモリセルアレイ３１０の構造の一例を示す図である。このメモリセルアレイ３１０においては、メモリセル３１３をマトリクス状に、ロウ方向にＮ行（Ｎは２以上の整数）、カラム方向に４１６０列として配置している。メモリセル３１３は、ワード線ＷＬ、ビット線ＢＬ、プレート線ＰＬに接続されている。同図において、Ｎ本のワード線ＷＬをＷＬ［１］乃至［Ｎ］、４１６０本のビット線ＢＬをＢＬ［１］乃至［４１６０］、４１６０本のプレート線ＰＬをＰＬ［１］乃至［４１６０］と記している。ワード線ＷＬはロウ制御部３１１に接続され、ビット線ＢＬはカラム制御部３１２に接続されている。
【００３７】
この例では、メモリセルアレイ３１０のロウ方向のメモリセルを６４個のブロックＢＬＫ３１８に分割している。したがって、ブロックＢＬＫ３１８の各々はＮ行６５列のメモリセルから構成される。同図において、６４個のブロックＢＬＫ３１８の各々をＢＬＫ［１］乃至［６４］と記している。ブロックＢＬＫ３１８の各々は、６５本のビット線ＢＬに接続することになる。ブロックＢＬＫ３１８内では、６５本のビット線ＢＬをカラム線ＣＬＭ［１］乃至［６５］と記している。
【００３８】
同一のワード線ＷＬに接続された４１６０個のメモリセルの集合を物理ページと称する。メモリコントローラ２００は、物理ページを単位としてメモリ３００にアクセスする。物理ページには、固有の物理ページアドレスが割り当てられる。
【００３９】
６４個のブロックＢＬＫ３１８の各々から１つずつ選択された６４個のメモリセルから構成される集合をグループと称する。１つのグループに属するメモリセルの数は、メモリセルアレイ３１０において許容される電流量に基づいて決定される。１本のワード線ＷＬに接続された４１６０個のメモリセルのうち、ＣＬＭ［１］に接続するメモリセルの集合を第１グループと称し、ＣＬＭ［２］に接続するメモリセルの集合を第２グループと称する。以下同様にして、ＣＬＭ［６５］に接続するメモリセルの集合を第６５グループと称する。
【００４０】
ロウ制御部３１１は、リクエスト処理部３６０から入力される物理ページアドレスに基づいて指定されるワード線ＷＬを選択し、所定の期間、所定の電圧により駆動する。ワード線ＷＬの電圧は、ワード線ＷＬに接続されたメモリセルを、ライト、リード、または、リフレッシュ可能な状態にするための電圧である。この電圧はワード線電圧と呼ばれ、ハイレベルでアクティブとなる。ロウ制御部３１１は、ワード線電圧としての波高値をもつパルスの印加タイミングと持続時間および印加電圧を制御する。
【００４１】
カラム制御部３１２は、ビット線ＢＬの電位を読み出すセンスアンプを含む。これにより、４１６０ビットのデータを一括して読み出すことができる。
【００４２】
プレート制御部３２０は、メモリセルアレイ３１０のメモリセルにセル電流を流すためのプレート電圧を制御する。このプレート電圧は、ビット線ＢＬの電圧との電圧差によってメモリセル電流の向きが決まる。そのため、プレート制御部３２０は、プレート電圧のビット線電圧に対する大小関係を、セット時とリセット時とで反転させるように制御する。
【００４３】
図４は、本技術の実施の形態におけるメモリセル３１３の回路例を示す図である。ここでは、メモリセル３１３として可変抵抗素子を想定し、１つのアクセストランジスタ３１４と、１つの可変セル抵抗３１５とにより構成されるものとする。可変セル抵抗３１５の一端はプレート線ＰＬに接続され、他端はアクセストランジスタ３１４のソース端子に接続される。アクセストランジスタ３１４のドレイン端子はビット線ＢＬに接続され、ゲート端子はワード線ＷＬに接続される。
【００４４】
可変セル抵抗３１５は、ビット線ＢＬよりプレート線ＰＬを一定電圧高くすると、低抵抗状態になる。この可変セル抵抗３１５を低抵抗状態にする動作を、セット動作と称する。一方、プレート線ＰＬよりもビット線ＢＬの電圧を上げると、可変セル抵抗３１５は、高抵抗状態になる。この可変セル抵抗３１５を高抵抗状態にする動作を、リセット動作と称する。
【００４５】
低抵抗状態と高抵抗状態との間で抵抗状態を可逆的に変化させることにより、１つのメモリセルによって１ビットを記憶することが可能なメモリが実現される。電圧の印加を止めた後もデータは保持されるため不揮発性メモリとして機能する。以下では、低抵抗状態のセルから読み出されるデータを「０」とし、高抵抗状態から読み出されるデータを「１」とした例について説明するが、これらは何れに対応付けても構わない。
【００４６】
［メモリの抵抗状態］
図５は、本技術の実施の形態におけるメモリセル３１３の通常状態における抵抗分布を示す図である。メモリセル３１３は、セット動作によりＬＲＳ（低抵抗状態）に遷移し、リセット動作によりＨＲＳ（高抵抗状態）に遷移する。メモリセルアレイ３１０からデータを読み出す場合、リード閾値で示したリファレンス抵抗値を基準として抵抗状態を判断する。
【００４７】
図６は、本技術の実施の形態におけるメモリセル３１３の変化した抵抗分布を示す図である。この図は、セット動作によりＬＲＳに遷移させたメモリセルが、ＨＲＳとして読み出されてしまう例である。可変抵抗型メモリでは、データの読出し時にメモリセルに印加される電圧によるストレスや経年変化により、メモリセルの分布が変化し、誤ったデータが読み出されてしまう場合がある。この例では、ＬＲＳに遷移させたはずの抵抗状態が高抵抗側に変化してしまい、リード閾値を基準とした際に一部の抵抗状態３１においてＨＲＳと解釈されてしまう。
【００４８】
また、ここではＬＲＳのメモリセルの分布が変化したことにより、誤ったデータが読み出される例を示したが、ＨＲＳのメモリセルの分布も同様の原因により変化するおそれがある。したがって、リセット動作によりＨＲＳに遷移させたメモリセルがＬＲＳとして、値が読み出されることも発生し得る。
【００４９】
そこで、この実施の形態では、リフレッシュコマンドによって、抵抗状態が変化する前に正しい抵抗状態に書き直すことを想定する。そして、このリフレッシュコマンドの処理を高速化することにより、ストレージシステムとしての高速化を図る。
【００５０】
［データ構造］
図７は、本技術の実施の形態におけるメモリセルアレイ３１０に記憶されるデータの構造の一例を示す図である。
【００５１】
上述のように、メモリセルアレイ３１０は、メモリセル３１３をマトリクス状に、ロウ方向にＮ行、カラム方向に４１６０列として配置している。そして、ロウ方向のＮワードをそれぞれ物理ページとして、物理アドレスを割り当てる。すなわち、メモリセルアレイ３１０はＮ個の物理ページから構成され、「１」乃至「Ｎ」の物理アドレスにより特定される。このとき、各物理ページは４１６０ビットを有する。
【００５２】
図８は、本技術の実施の形態におけるメモリセルアレイ３１０に記憶される物理ページの構造の一例を示す図である。
【００５３】
物理ページは、５１２バイト（４０９６ビット）のデータ７０１と、６４ビットのＥＣＣ７０２とから構成される。ＥＣＣ７０２は、データ７０１におけるエラー（誤り）を訂正するエラー訂正符号であり、４ビットの訂正能力を有することを想定する。
【００５４】
［バッファの種類］
図９は、本技術の実施の形態におけるバッファ３４０に保持される各バッファの例を示す図である。この例では、バッファ３４０に、ライトデータバッファ３４１と、リードデータバッファ３４２と、ベリファイバッファ３４３とが設けられることを想定している。
【００５５】
ライトデータバッファ３４１は、メモリセルアレイ３１０に対するライト対象となるライトデータを保持するバッファである。リードデータバッファ３４２は、メモリセルアレイ３１０から読み出されたリードデータを保持するバッファである。ベリファイバッファ３４３は、検証処理部３５０による検証（ベリファイ）結果を保持するバッファである。また、ベリファイバッファ３４３は、セット対象またはリセット対象となるビットを特定するためにも使用される。これら各バッファは、物理ページと同様にそれぞれ４１６０ビット幅を有する。
【００５６】
図１０は、本技術の実施の形態におけるバッファ３４０に保持される具体例を示す図である。以下の例では、各バッファの４１６０ビットの一部として、対応する８ビットの部分のみを示している。
【００５７】
ライトデータバッファ３４１はライトデータとして「１１１１００００」を保持しており、リードデータバッファ３４２はプレリードデータとして「１０１０１０１０」を保持している。ここでは、リセットすべきメモリセル３１３を特定して、その結果をベリファイバッファ３４３に保持したことを想定している。すなわち、既に書き込まれているデータが「０」で、書き込もうとするデータが「１」であるメモリセルが、「０」から「１」にリセットするべきメモリセルであると特定される。この例では、ベリファイバッファ３４３は「０１０１００００」を保持し、２番目と４番目のメモリセルがリセットするべきメモリセルであると特定される。
【００５８】
図１１は、本技術の実施の形態におけるバッファ３４０に保持される具体例を示す図である。
【００５９】
ライトデータバッファ３４１はライトデータとして「１１１１００００」を保持しており、リードデータバッファ３４２は検証のために読み出されたデータとして「１１１０１０１０」を保持している。ここでは、ライトデータバッファ３４１の保持内容とリードデータバッファ３４２の保持内容とを比較することにより検証を行い、その結果をベリファイバッファ３４３に保持したことを想定している。すなわち、本来のライトデータと実際に書き込まれたデータとで一致していないメモリセルが、検証に失敗したメモリセルということになる。この例では、ベリファイバッファ３４３は「０００１００００」を保持し、４番目のメモリセルが検証に失敗した旨が示される。
【００６０】
図１２は、本技術の実施の形態におけるバッファ３４０に保持される具体例を示す図である。
【００６１】
ライトデータバッファ３４１はライトデータとして「１１１１００００」を保持しており、リードデータバッファ３４２はプレリードデータとして「１１１１１０１０」を保持している。ここでは、セットすべきメモリセル３１３を特定して、その結果をベリファイバッファ３４３に保持したことを想定している。すなわち、既に書き込まれているデータが「１」で、書き込もうとするデータが「０」であるメモリセルが、「１」から「０」にセットするべきメモリセルであると特定される。この例では、ベリファイバッファ３４３は「００００１０１０」を保持し、５番目と７番目のメモリセルがセットするべきメモリセルであると特定される。
【００６２】
図１３は、本技術の実施の形態におけるバッファ３４０に保持される具体例を示す図である。
【００６３】
ライトデータバッファ３４１はライトデータとして「１１１１００００」を保持しており、リードデータバッファ３４２は検証のために読み出されたデータとして「１１１１００１０」を保持している。ここでは、ライトデータバッファ３４１の保持内容とリードデータバッファ３４２の保持内容とを比較することにより検証を行い、その結果をベリファイバッファ３４３に保持したことを想定している。すなわち、本来のライトデータと実際に書き込まれたデータとで一致していないメモリセルが、検証に失敗したメモリセルということになる。この例では、ベリファイバッファ３４３は「００００００１０」を保持し、７番目のメモリセルが検証に失敗した旨が示される。
【００６４】
［情報処理システムの動作］
図１４は、本技術の実施の形態におけるメモリコントローラ２００のコマンド処理手順の一例を示す流れ図である。
【００６５】
メモリコントローラ２００のプロセッサ２１０は、ホストコンピュータ１００からコマンドを受け取ると、そのコマンドの種別を解釈して、対応する処理を行う（ステップＳ８０１）。すなわち、そのコマンドがライトコマンドであれば、ライトコマンド処理を行う（ステップＳ８０２）。また、そのコマンドがリードコマンドであれば、リードコマンド処理を行う（ステップＳ８０３）。また、そのコマンドがリフレッシュコマンドであれば、リフレッシュコマンド処理を行う（ステップＳ８０４）。それら以外のコマンドについても、コマンドに応じた処理を行う（ステップＳ８０５）。
【００６６】
［ライト処理］
図１５は、本技術の実施の形態におけるライトコマンド処理の処理手順の一例を示す流れ図である。ライトコマンド処理として、メモリコントローラ２００はメモリ３００にライトリクエストを指示する。これにより、リクエスト処理部３６０は、以下の手順によりライト動作を行う。
【００６７】
リクエスト処理部３６０は、制御インターフェース３０９からライトリクエストと物理ページアドレスを受信すると、物理ページライト処理を開始する。物理ページライト処理の開始の際には、メモリセルアレイ３１０に書き込まれるライトデータは、制御インターフェース３０９からライトデータバッファ３４１に転送されて保持されている。
【００６８】
リクエスト処理部３６０は、物理ページリセット処理を実行する（ステップＳ９２０）。その後、リクエスト処理部３６０は、ステップＳ９２０で実行された物理ページリセット処理が正常に終了したか否かを判定する（ステップＳ９１１）。このとき、正常終了しなかった場合には（ステップＳ９１１：Ｎｏ）、リクエスト処理部３６０は、物理ページライト処理がエラー終了したことを、制御インターフェース３０９を介してメモリコントローラ２００に通知する（ステップＳ９１４）。
【００６９】
物理ページリセット処理が正常に終了した場合には（ステップＳ９１１：Ｙｅｓ）、リクエスト処理部３６０は、物理ページセット処理を実行する（ステップＳ９４０）。その後、リクエスト処理部３６０は、ステップＳ９４０で実行された物理ページセット処理が正常に終了したか否かを判定する（ステップＳ９１２）。このとき、正常終了しなかった場合には（ステップＳ９１２：Ｎｏ）、リクエスト処理部３６０は、物理ページライト処理がエラー終了したことを、制御インターフェース３０９を介してメモリコントローラ２００に通知する（ステップＳ９１４）。
【００７０】
物理ページセット処理が正常に終了した場合には（ステップＳ９１２：Ｙｅｓ）、リクエスト処理部３６０は、物理ページライト処理が正常終了したことを、制御インターフェース３０９を介してメモリコントローラ２００に通知する（ステップＳ９１３）。
【００７１】
図１６は、本技術の実施の形態における物理ページリセット処理（ステップＳ９２０）の処理手順の一例を示す流れ図である。
【００７２】
リクエスト処理部３６０は、プレート制御部３２０、ロウ制御部３１１、リード制御部３３２に制御信号を供給し、指定された物理ページアドレスからデータを読み出す（ステップＳ９２１）。読み出されたデータは、プレリードデータとしてリードデータバッファ３４２に転送されて保持される。
【００７３】
リクエスト処理部３６０は、リードデータバッファ３４２に保持されたプレリードデータと、ライトデータバッファ３４１に保持されているライトデータとをビット単位で比較し、リセット処理を実行するメモリセルを特定する（ステップＳ９２２）。リセット処理を実行するメモリセルは、ライトデータバッファ３４１に保持されたデータの値が「１」であり、かつ、リードデータバッファ３４２に保持されたデータの値が「０」となっているメモリセルである。これは、対応するメモリセルが、「０」（低抵抗状態）から「１」（高抵抗状態）に状態を変化させる必要があることを意味する。リセット処理を実行するメモリセルの情報として、リセット処理を実行するメモリセルに対応するビットの値に「１」、リセット処理を実行する必要のないセルに対応するビットの値に「０」とし、データをベリファイバッファ３４３に保持する。
【００７４】
リクエスト処理部３６０は、リセットおよび検証の繰返し実行回数をカウントするためのカウンタｋの値を「１」に設定する（ステップＳ９２３）。
【００７５】
リクエスト処理部３６０は、リセット処理を実行するグループ番号を決定するためのカウンタｉの値に「１」に設定する（ステップＳ９２４）。
【００７６】
リクエスト処理部３６０は、プレート制御部３２０、ロウ制御部３１１、ライト制御部３３１に制御信号を供給するとともに、ベリファイバッファ３４３からリセットを実行するセルの特定情報をカラム制御部３１２に供給する。これにより、メモリセルアレイ３１０に対してリセットパルスを印加して、リセット動作を行う（ステップＳ９２５）。ここで、リセットパルスを印加するメモリセルは、指定された物理ページアドレス内の第ｉグループに属するメモリセルのうち、リセット処理を実行するセルである。
【００７７】
リクエスト処理部３６０は、リセット動作を行ったグループ番号を示すカウンタｉの値が「６５」であるか否かを判定する（ステップＳ９２６）。カウンタｉの値が「６５」でなければ（ステップＳ９２６：Ｎｏ）、カウンタｉに「１」を加算した後に（ステップＳ９２７）、ステップＳ９２５以降の処理を繰り返す。一方、カウンタｉの値が「６５」となった場合には、グループ毎のリセット動作を終了する（ステップＳ９２６：Ｙｅｓ）。
【００７８】
リクエスト処理部３６０は、リセット動作を検証するため、プレート制御部３２０、ロウ制御部３１１、リード制御部３３２に制御信号を供給して、リセットパルスを印加した物理ページアドレスからデータを読み出す（ステップＳ９３１）。読み出したデータは、リードデータバッファ３４２に転送されて保持される。
【００７９】
リクエスト処理部３６０は、検証処理部３５０に制御信号を供給して、リードデータバッファ３４２に保持されているデータと、ライトデータバッファ３４１に保持されているライトデータとをビット単位で比較して検証処理を実行する（ステップＳ９３２）。検証処理の対象となるビットは、ライトデータバッファ３４１に保持されたデータの値が「１」を示すビットである。ライトデータバッファ３４１に保持されたデータの値が「１」で、かつ、リードデータバッファ３４２に保持された値が「０」のビットは検証失敗となる。ライトデータバッファ３４１に保持されたデータの値が「１」で、かつ、リードデータバッファ３４２に保持された値が「１」のビットは検証成功となる。その結果、検証失敗となったビットに「１」、検証成功となったビットに「０」、それ以外のビットに「０」の値がセットされたものがベリファイバッファ３４３に保持される。
【００８０】
ベリファイバッファ３４３に保持されたデータの全てのビットが「０」を示す場合、全体が検証処理に成功したものとして（ステップＳ９３３：Ｙｅｓ）、検証処理部３５０はその旨をリクエスト処理部３６０に通知して、物理ページリセット処理を正常終了する。
【００８１】
一方、ベリファイバッファ３４３に保持されたデータの何れかのビットが「１」を示す場合、全体として検証処理に成功していないものとして（ステップＳ９３３：Ｎｏ）、リセット処理のリトライ動作が行われる。その際、カウンタｋの値が参照され、カウンタｋの値が「４」になっている場合には（ステップＳ９３４：Ｙｅｓ）、それ以上のリトライ動作を行わずに物理ページリセット処理をエラー終了する。カウンタｋの値が「４」になっていない場合には（ステップＳ９３４：Ｎｏ）、カウンタｋの値に「１」を加算して（ステップＳ９３５）、ステップＳ９２４以降の処理を繰り返す。
【００８２】
図１７は、本技術の実施の形態におけるライト処理の際の物理ページリセットの経過例を示す図である。
【００８３】
物理ページリセットが開始すると、物理ページ全体についてプレリードが行われる（上述のステップＳ９２１）。そして、リセット対象となるメモリセルが特定された後に（上述のステップＳ９２２）、グループ毎にリセット処理が行われる（上述のステップＳ９２５）。第１グループから第６５グループまでのリセット処理が完了すると、物理ページ全体について検証処理が行われる（上述のステップＳ９３２）。
【００８４】
１回目の検証処理において検証成功とならなかった場合には、再びグループ毎にリセット処理が行われ（上述のステップＳ９２５）、その後、物理ページ全体について検証処理が行われる（上述のステップＳ９３２）。
【００８５】
このように、ライト処理においては、パルス印加の対象となるメモリセルは最大で全てのビットになるため、電流値を考慮すると、グループ毎に分けてリセット動作を行うことになる。そのため、リセット動作に要する時間が増大してしまう。
【００８６】
図１８は、本技術の実施の形態における物理ページセット処理（ステップＳ９４０）の処理手順の一例を示す流れ図である。
【００８７】
この物理ページセット処理は、図１６により説明した物理ページリセット処理と同様の手順となっている。ただし、物理ページリセット処理ではステップＳ９２２においてリセット対象となるメモリセルを特定していたが、この物理ページリセット処理ではステップＳ９４２においてセット対象となるメモリセルを特定する。そして、その特定されたセット対象について、ステップＳ９４５においてグループ毎のセット処理が行われる。それ以外の点については、図１６により説明した物理ページリセット処理と同様であるため、詳細な説明は省略する。
【００８８】
［リード処理］
図１９は、本技術の実施の形態におけるリードコマンド処理の処理手順の一例を示す流れ図である。リードコマンド処理として、メモリコントローラ２００はメモリ３００にリードリクエストを指示する。これにより、リクエスト処理部３６０は、以下の手順によりリード動作を行う。
【００８９】
リクエスト処理部３６０は、制御インターフェース３０９からリードリクエストと物理ページアドレスを受信すると、物理ページリード処理を開始する。読み出されたデータは、リードデータとしてリードデータバッファ３４２に転送されて保持される。
【００９０】
リクエスト処理部３６０は、リードデータバッファ３４２に保持されたデータを、制御インターフェース３０９を介してメモリコントローラ２００に転送する（ステップＳ８１２）。その後、リクエスト処理部３６０は、物理ページリード処理を終了する。
【００９１】
［リフレッシュ処理］
図２０は、本技術の実施の形態におけるリフレッシュコマンド処理の処理手順の一例を示す流れ図である。メモリコントローラ２００は、ホストコンピュータ１００からリフレッシュコマンドを受信すると、リフレッシュコマンドで指定された論理アドレスの範囲を物理ページ単位に分解し、物理ページ毎に以下のリフレッシュ動作を行う。
【００９２】
リフレッシュ動作がエラー終了した場合、メモリコントローラ２００は、リフレッシュコマンドを中断し、エラー終了したことをホストコンピュータ１００に通知する。リフレッシュ動作が正常終了した場合、メモリコントローラ２００は、リフレッシュコマンドで指定された論理アドレスの範囲の全ての物理ページが終了するまで、リフレッシュ動作を続ける。全ての物理ページのリフレッシュが終了した後、正常終了したことをホストコンピュータ１００に通知する。
【００９３】
プロセッサ２１０は、メモリインターフェース２０３を通してリードリクエストおよび物理アドレスをメモリ３００に送信してデータを読み出す（ステップＳ８２１）。プロセッサ２１０は、メモリインターフェース２０３から受信したリードデータをＲＡＭ２２０に転送して保持する。
【００９４】
ＥＣＣ処理部２４０は、ＲＡＭ２２０に保持されたリードデータについてデータのエラー検出および訂正処理を実行する（ステップＳ８２２）。エラー訂正後のデータはＲＡＭ２２０に保持される。
【００９５】
プロセッサ２１０は、ステップＳ８２２におけるエラー訂正が正常に終了したか否かを判定する。上述の例では、検出されたエラーの数が４ビット以内であればエラー訂正は正常に終了する。また、エラーが何も検出されなかった場合も正常終了と判定される。エラー訂正が正常に終了しなかった場合は（ステップＳ８２３：Ｎｏ）、リフレッシュ動作をエラー終了させる。エラー訂正が正常に終了した場合は（ステップＳ８２３：Ｙｅｓ）、リフレッシュリクエストをメモリ３００に指示する（ステップＳ８２４）。すなわち、ステップＳ８２４において、プロセッサ２１０は、メモリインターフェース２０３を介して、リフレッシュリクエスト、物理アドレス、ＲＡＭ２２０に保持されたエラー訂正済データをメモリ３００に送信する。物理アドレスによって指定されたアドレスは、ステップＳ８２１においてリードを実行した物理アドレスと同じである。リフレッシュリクエストの実行結果は、メモリインターフェース２０３を介して受信される。
【００９６】
プロセッサ２１０は、ステップＳ８２４で実行したリフレッシュリクエストが正常に終了したか否かを判定する。リフレッシュリクエストが正常に終了した場合は（ステップＳ８２５：Ｙｅｓ）、リフレッシュ動作は正常終了する。リフレッシュリクエストが正常に終了しなかった場合は（ステップＳ８２５：Ｎｏ）、リフレッシュ動作をエラー終了させる。
【００９７】
図２１は、本技術の実施の形態におけるリフレッシュリクエスト処理の処理手順の一例を示す流れ図である。
【００９８】
リクエスト処理部３６０は、制御インターフェース３０９からリフレッシュリクエストと物理ページアドレスを受信すると、物理ページリフレッシュ処理を開始する。物理ページリフレッシュ処理の開始の際には、メモリセルアレイ３１０に書き込まれるデータはステップＳ８２２において訂正済であり、制御インターフェース３０９からライトデータバッファ３４１に転送されて保持されている。
【００９９】
リクエスト処理部３６０は、物理ページリフレッシュリセット処理を実行する（ステップＳ９６０）。その後、リクエスト処理部３６０は、ステップＳ９６０で実行された物理ページリフレッシュリセット処理が正常に終了したか否かを判定する（ステップＳ９１５）。このとき、正常終了しなかった場合には（ステップＳ９１５：Ｎｏ）、リクエスト処理部３６０は、物理ページリフレッシュライト処理がエラー終了したことを、制御インターフェース３０９を介してメモリコントローラ２００に通知する（ステップＳ９１８）。
【０１００】
物理ページリフレッシュリセット処理が正常に終了した場合には（ステップＳ９１５：Ｙｅｓ）、リクエスト処理部３６０は、物理ページリフレッシュセット処理を実行する（ステップＳ９８０）。その後、リクエスト処理部３６０は、ステップＳ９８０で実行された物理ページリフレッシュセット処理が正常に終了したか否かを判定する（ステップＳ９１６）。このとき、正常終了しなかった場合には（ステップＳ９１６：Ｎｏ）、リクエスト処理部３６０は、物理ページリフレッシュライト処理がエラー終了したことを、制御インターフェース３０９を介してメモリコントローラ２００に通知する（ステップＳ９１８）。
【０１０１】
物理ページリフレッシュセット処理が正常に終了した場合には（ステップＳ９１６：Ｙｅｓ）、リクエスト処理部３６０は、物理ページリフレッシュライト処理が正常終了したことを、制御インターフェース３０９を介してメモリコントローラ２００に通知する（ステップＳ９１７）。
【０１０２】
図２２は、本技術の実施の形態における物理ページリフレッシュリセット処理（ステップＳ９６０）の処理手順の一例を示す流れ図である。
【０１０３】
リクエスト処理部３６０は、プレート制御部３２０、ロウ制御部３１１、リード制御部３３２に制御信号を供給し、指定された物理ページアドレスからデータを読み出す（ステップＳ９６１）。読み出されたデータは、プレリードデータとしてリードデータバッファ３４２に転送されて保持される。
【０１０４】
リクエスト処理部３６０は、リードデータバッファ３４２に保持されたプレリードデータと、ライトデータバッファ３４１に保持されているライトデータとをビット単位で比較し、リセット処理を実行するメモリセルを特定する（ステップＳ９６２）。リセット処理を実行するメモリセルは、ライトデータバッファ３４１に保持されたデータの値が「１」であり、かつ、リードデータバッファ３４２に保持されたデータの値が「０」となっているメモリセルである。これは、対応するメモリセルが、「０」（低抵抗状態）から「１」（高抵抗状態）に状態を変化させる必要があることを意味する。リセット処理を実行するメモリセルの情報として、リセット処理を実行するメモリセルに対応するビットの値に「１」、リセット処理を実行する必要のないセルに対応するビットの値に「０」とし、データをベリファイバッファ３４３に保持する。
【０１０５】
リクエスト処理部３６０は、リセットおよび検証の繰返し実行回数をカウントするためのカウンタｋの値を「１」に設定する（ステップＳ９６３）。
【０１０６】
リクエスト処理部３６０は、プレート制御部３２０、ロウ制御部３１１、ライト制御部３３１に制御信号を供給するとともに、ベリファイバッファ３４３からリセットを実行するセルの特定情報をカラム制御部３１２に供給する。これにより、メモリセルアレイ３１０に対してリセットパルスを印加して、リセット動作を行う（ステップＳ９６５）。ここで、リセットパルスを印加するメモリセルは、指定された物理ページアドレスのメモリセルのうち、リセット処理を実行するセルである。すなわち、このリフレッシュにおけるリセット処理は、ライトのリセット処理のようにグループ毎に分けることなく、物理ページ全体に対して行われる。
【０１０７】
リクエスト処理部３６０は、リセット動作を検証するため、プレート制御部３２０、ロウ制御部３１１、リード制御部３３２に制御信号を供給して、リセットパルスを印加した物理ページアドレスからデータを読み出す（ステップＳ９７１）。読み出したデータは、リードデータバッファ３４２に転送されて保持される。
【０１０８】
リクエスト処理部３６０は、検証処理部３５０に制御信号を供給して、リードデータバッファ３４２に保持されているデータと、ライトデータバッファ３４１に保持されているライトデータとをビット単位で比較して検証処理を実行する（ステップＳ９７２）。検証処理の対象となるビットは、ライトデータバッファ３４１に保持されたデータの値が「１」を示すビットである。ライトデータバッファ３４１に保持されたデータの値が「１」で、かつ、リードデータバッファ３４２に保持された値が「０」のビットは検証失敗となる。ライトデータバッファ３４１に保持されたデータの値が「１」で、かつ、リードデータバッファ３４２に保持された値が「１」のビットは検証成功となる。その結果、検証失敗となったビットに「１」、検証成功となったビットに「０」、それ以外のビットに「０」の値がセットされたものがベリファイバッファ３４３に保持される。
【０１０９】
ベリファイバッファ３４３に保持されたデータの全てのビットが「０」を示す場合、全体が検証処理に成功したものとして（ステップＳ９７３：Ｙｅｓ）、検証処理部３５０はその旨をリクエスト処理部３６０に通知して、物理ページリフレッシュリセット処理を正常終了する。
【０１１０】
一方、ベリファイバッファ３４３に保持されたデータの何れかのビットが「１」を示す場合、全体として検証処理に成功していないものとして（ステップＳ９７３：Ｎｏ）、リセット処理のリトライ動作が行われる。その際、カウンタｋの値が参照され、カウンタｋの値が「４」になっている場合には（ステップＳ９７４：Ｙｅｓ）、それ以上のリトライ動作を行わずに物理ページリフレッシュリセット処理をエラー終了する。カウンタｋの値が「４」になっていない場合には（ステップＳ９７４：Ｎｏ）、カウンタｋの値に「１」を加算して（ステップＳ９７５）、ステップＳ９６５以降の処理を繰り返す。
【０１１１】
図２３は、本技術の実施の形態におけるリフレッシュ処理の際の物理ページリフレッシュリセットの経過例を示す図である。
【０１１２】
物理ページリフレッシュリセットが開始すると、物理ページ全体についてプレリードが行われる（上述のステップＳ９６１）。そして、リセット対象となるメモリセルが特定された後に（上述のステップＳ９６２）、物理ページ全体についてリフレッシュリセット処理が行われる（上述のステップＳ９６５）。その後、物理ページ全体について検証処理が行われる（上述のステップＳ９７２）。
【０１１３】
１回目の検証処理において検証成功とならなかった場合には、再び物理ページ全体についてリフレッシュリセット処理が行われ（上述のステップＳ９６５）、その後、物理ページ全体について検証処理が行われる（上述のステップＳ９７２）。
【０１１４】
このように、物理ページリフレッシュリセットでは、エラー訂正されたメモリセルのみがパルス印加の対象となるため、この例では物理ページ全体でも最大で４ビットとなる。したがって、電流値を考慮しても、グループ毎に分けることなく物理ページ全体について１回でリセット処理を行うことができるため、高速にリフレッシュ処理を実行することができる。
【０１１５】
図２４は、本技術の実施の形態における物理ページリフレッシュセット処理（ステップＳ９８０）の処理手順の一例を示す流れ図である。
【０１１６】
この物理ページリフレッシュセット処理は、図２２により説明した物理ページリフレッシュリセット処理と同様の手順となっている。ただし、物理ページリフレッシュリセット処理ではステップＳ９６２においてリセット対象となるメモリセルを特定していたが、この物理ページリフレッシュリセット処理ではステップＳ９８２においてセット対象となるメモリセルを特定する。そして、その特定されたセット対象について、ステップＳ９８５においてグループ毎のセット処理が行われる。それ以外の点については、図２２により説明した物理ページリフレッシュリセット処理と同様であるため、詳細な説明は省略する。
【０１１７】
このように、本技術の実施の形態によれば、ライト処理のようにグループ毎に分けることなく、物理ページ全体に対してリセット動作およびセット動作が行われるため、高速にリフレッシュ処理を実行することができる。また、リフレッシュコマンドに基づいてパルス印加されるメモリセルの数は、ライトコマンドに基づいてパルス印加されるメモリセルの数よりも少ない。したがって、リフレッシュコマンドを用いた方がメモリセルに対して与えるストレスを少なくすることができ、メモリの寿命を長く維持することが期待される。
【０１１８】
＜２．変形例＞
上述の実施の形態では、図５に示したように、ＬＲＳとＨＲＳの中間位置にあるリード閾値を用いてリードを行っていた。これに対し、リフレッシュの際には、より厳しい閾値を用いることにより、抵抗状態の分布を以下のように改善することができる。
【０１１９】
図２５は、本技術の実施の形態の変形例におけるメモリセル３１３の抵抗分布と閾値との関係を示す図である。この図にはＬＲＳとＨＲＳの中間位置にあるリード閾値に加えて、ＨＲＳ寄りに設けられたリセット閾値と、ＬＲＳ寄りに設けられたセット閾値とが示されている。
【０１２０】
リフレッシュリセット処理の場合、図２２のステップＳ９６１やＳ９７１においてリード動作を行う。その際、リード閾値ではなくリセット閾値を用いることにより、ＨＲＳの低抵抗寄りの裾野をＬＲＳであるとみなす。これにより、ＨＲＳの低抵抗寄りの裾野にあったメモリセルをＨＲＳの高抵抗寄りに変化させて、より安定した状態にすることができる。
【０１２１】
リフレッシュセット処理の場合、図２４のステップＳ９８１やＳ９９１においてリード動作を行う。その際、リード閾値ではなくセット閾値を用いることにより、ＬＲＳの高抵抗寄りの裾野をＨＲＳであるとみなす。これにより、ＨＲＳの高抵抗寄りの裾野にあったメモリセルをＬＲＳの低抵抗寄りに変化させて、より安定した状態にすることができる。
【０１２２】
なお、上述の実施の形態では、リフレッシュ処理の際、物理ページを単位として書込みを行っていたが、物理ページを分割した分割ページを単位として書込みを行うようにしてもよい。この場合でも、複数のグループを分割ページとして書込みを行えば、通常のライト処理のように単一のグループを単位とするよりも高速に処理することができる。
【０１２３】
また、上述の実施の形態では、リフレッシュ処理による実施を例示したが、メモリセルに対する書込み電流の制限に対して変更ビット数が少ないことが保証できるものであれば、リフレッシュ処理以外の名称を有する処理に対しても本技術を適用することができる。
【０１２４】
また、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
【０１２５】
なお、本技術は以下のような構成もとることができる。
（１）リクエストのタイプを判別するリクエスト判別部と、
前記リクエストがリフレッシュリクエストである場合にはメモリセルアレイから読み出したリードデータを前記メモリセルアレイの所定のページを単位として前記メモリセルアレイに書込み、前記リクエストがライトリクエストである場合にはライトデータの前記ページをグループ単位に分割して複数回に分けて前記メモリセルアレイに書込む制御部と
を具備する記憶制御装置。
（２）前記グループのビット数は、前記メモリセルアレイにおいて許容される電流量に基づいて決定される前記（１）に記載の記憶制御装置。
（３）前記リードデータのエラー検出を行うエラー処理部をさらに具備し、
前記制御部は、前記エラー検出において検出されたエラーの数が所定の要件を満たさない場合には前記メモリセルアレイへの書込みを行わない
前記（１）または（２）に記載の記憶制御装置。
（４）前記リードデータのエラー検出および訂正を行うエラー処理部をさらに具備し、
前記制御部は、前記エラー検出において検出されたエラーの数が前記エラー訂正可能な数よりも多い場合には前記メモリセルアレイへの書込みを行わない
前記（１）または（２）に記載の記憶制御装置。
（５）前記リフレッシュリクエストまたは前記ライトリクエストに対するデータの書込みの後に前記ページを単位として前記メモリセルアレイからそのデータを読み出して、正しく書込みが行われたか否を検証する検証処理をさらに具備する前記（１）から（４）のいずれかに記載の記憶制御装置。
（６）複数のメモリセルからなるメモリセルアレイと、
リクエストのタイプを判別するリクエスト判別部と、
前記リクエストがリフレッシュリクエストである場合には前記メモリセルアレイから読み出したリードデータを前記メモリセルアレイの所定のページを単位として前記メモリセルアレイに書込み、前記リクエストがライトリクエストである場合にはライトデータの前記ページをグループ単位に分割して複数回に分けて前記メモリセルアレイに書込む制御部と
を具備する記憶装置。
（７）複数のメモリセルからなるメモリセルアレイと、
前記メモリセルアレイに対するコマンドを発行するホストコンピュータと、
前記コマンドのタイプを判別するコマンド判別部と、
前記コマンドがリフレッシュコマンドである場合には前記メモリセルアレイから読み出したリードデータを前記メモリセルアレイの所定のページを単位として前記メモリセルアレイに書込み、前記コマンドがライトコマンドである場合にはライトデータの前記ページをグループ単位に分割して複数回に分けて前記メモリセルアレイに書込む制御部と
を具備する情報処理システム。
（８）リクエストのタイプを判別するリクエスト判別手順と、
前記リクエストがリフレッシュリクエストである場合にはメモリセルアレイから読み出したリードデータを前記メモリセルアレイの所定のページを単位として前記メモリセルアレイに書込み、前記リクエストがライトリクエストである場合にはライトデータの前記ページをグループ単位に分割して複数回に分けて前記メモリセルアレイに書込む制御手順と
を具備する記憶制御方法。
【符号の説明】
【０１２６】
１００  ホストコンピュータ
２００  メモリコントローラ
２０１  ホストインターフェース
２０３  メモリインターフェース
２１０  プロセッサ
２２０  ＲＡＭ
２３０  ＲＯＭ
２４０  ＥＣＣ処理部
３００  メモリ
３０９  制御インターフェース
３１０  メモリセルアレイ
３１１  ロウ制御部
３１２  カラム制御部
３１３  メモリセル
３１４  アクセストランジスタ
３１５  可変セル抵抗
３２０  プレート制御部
３３１  ライト制御部
３３２  リード制御部
３３３  リフレッシュ制御部
３４０  バッファ
３４１  ライトデータバッファ
３４２  リードデータバッファ
３４３  ベリファイバッファ
３５０  検証処理部
３６０  リクエスト処理部
【図１】
2014041573.tif 000003
【図２】
2014041573.tif 000004
【図３】
2014041573.tif 000005
【図４】
2014041573.tif 000006
【図５】
2014041573.tif 000007
【図６】
2014041573.tif 000008
【図７】
2014041573.tif 000009
【図８】
2014041573.tif 000010
【図９】
2014041573.tif 000011
【図１０】
2014041573.tif 000012
【図１１】
2014041573.tif 000013
【図１２】
2014041573.tif 000014
【図１３】
2014041573.tif 000015
【図１４】
2014041573.tif 000016
【図１５】
2014041573.tif 000017
【図１６】
2014041573.tif 000018
【図１７】
2014041573.tif 000019
【図１８】
2014041573.tif 000020
【図１９】
2014041573.tif 000021
【図２０】
2014041573.tif 000022
【図２１】
2014041573.tif 000023
【図２２】
2014041573.tif 000024
【図２３】
2014041573.tif 000025
【図２４】
2014041573.tif 000026
【図２５】
2014041573.tif 000027