(57)【要約】      （修正有）【課題】微細化および高速動作に有利なストレージシステムを提供する。【解決手段】ストレージシステムは、第１不揮発性メモリを含むデータ書き込みの単位である複数のページＰＭから構成される第１グループＢＫＭ１と、第１グループのデータ書き込みの回数をカウントする第１カウンタＣＯ１と、を備える第１ストレージと、第１ストレージを制御するコントローラと、を具備する。コントローラは、第１グループ内において、全てのページのデータ書き込みが行われたか否かを判定し、全ての前記ページのデータ書き込みが行われていない場合、第１グループにおいてデータ書き込みが行われていないページに対してデータ書き込みを行い、全ての前記ページのデータ書き込みが行われている場合、第１カウンタの値をカウントアップする。【選択図】図１４
2018198087.tif 000002
【特許請求の範囲】
【請求項１】
第１ストレージを含む１つ以上のストレージを制御する制御方法であって、
前記第１ストレージは、各々が第１不揮発性メモリを含むデータ書き込みの単位である複数のページを備え、
前記複数のページの各ページは、当該ページが書き込まれたことを示す第１状態と当該ページが書き込まれていないことを示す第２状態のいずれか一方に設定されるフラグビットを含み、
前記制御方法は、
ホストから第１データの書き込みが要求された場合、前記複数のページの内の複数の第１ページに含まれるページであって、前記第１状態に設定された第１フラグビットを含む第２ページに、前記第１データを書き込み、前記第１フラグビットの状態を前記第１状態から前記第２状態に変更し、
前記複数の第１ページのそれぞれのフラグビットが全て前記第２状態に設定されている場合、前記複数の第１ページのそれぞれのフラグビットの各状態を、前記第２状態から前記第１状態に戻す
制御方法。
【請求項２】
前記第１ストレージは、前記複数の第１ページへの書き込みの回数をカウントする第１カウンタを更に備え、
前記複数の第１ページのそれぞれのフラグビットが全て前記第２状態に設定されている場合、前記第１カウンタの値をインクリメントすることを更に含む、
請求項１に記載の制御方法。
【請求項３】
前記第１ストレージは、前記複数のページの内の複数の第３ページへの書き込みの回数をカウントする第２カウンタを更に備え、
前記ホストから第２データの書き込みが要求された場合、前記複数の第３ページの内の、前記第１状態に設定された第２フラグビットを含む第４ページに、前記第２データを書き込み、前記第２フラグビットの状態を前記第１状態から前記第２状態に変更し、
前記複数の第３ページのそれぞれのフラグビットが全て前記第２状態に設定されている場合、前記第２カウンタの値をインクリメントし、前記複数の第３ページのそれぞれのフラグビットの各状態を、前記第２状態から前記第１状態に戻すことを更に含む、
請求項２に記載の制御方法。
【請求項４】
前記第１および第２カウンタによってカウントされた書き込み回数を参照することによって、前記複数の第１ページと前記複数の第３ページとから、書き込み回数が少ない一方を書き込みの対象ページとして選択することを更に含む、
請求項３に記載の制御方法。
【請求項５】
前記１つ以上のストレージは、第２ストレージを更に含み、
前記第１不揮発性メモリは、記憶するデータが読み出されると、記憶していたデータが破壊されるメモリであり、
前記第１不揮発性メモリの第１アドレスからデータを読み出し、
前記読み出したデータを、前記第１ストレージに書き戻すか否かを判定し、
前記第１ストレージに書き戻さないと判定する場合、前記第２ストレージの第２アドレスにおける第２不揮発性メモリに、前記読み出したデータを書き込むことを更に含む、
請求項１に記載の制御方法。
【請求項６】
前記第１ストレージに書き戻すと判定する場合、前記第１ストレージの第３アドレスにおける第１不揮発性メモリに、前記読み出したデータを書き込むことを更に含む、
請求項５に記載の制御方法。
【請求項７】
前記第１不揮発性メモリは、
自身に流される電流の向きに従い、自身の抵抗値が変化する抵抗変化素子と、
前記抵抗変化素子に流れる電流の向きを切り替えるために設けられるスイッチング素子と、を備える
請求項１乃至６のいずれかに記載の制御方法。
【請求項８】
前記第１ストレージは、ＭＲＡＭである
請求項１乃至７のいずれかに記載の制御方法。
【請求項９】
前記第２ストレージは、ＮＡＮＤ型フラッシュメモリである
請求項５に記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、一般的に、ストレージシステムに関する。
【背景技術】
【０００２】
メモリセルからデータを読み出すと、当該メモリセルに記憶されたデータが破壊される半導体メモリがある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−１８２５０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
微細化および高速動作に有利なストレージシステムを提供する。
【課題を解決するための手段】
【０００５】
実施形態によれば、制御方法は、第１ストレージを含む１つ以上のストレージを制御する。前記第１ストレージは、各々が第１不揮発性メモリを含むデータ書き込みの単位である複数のページを備える。前記複数のページの各ページは、当該ページが書き込まれたことを示す第１状態と当該ページが書き込まれていないことを示す第２状態のいずれか一方に設定されるフラグビットを含む。前記制御方法は、ホストから第１データの書き込みが要求された場合、前記複数のページの内の複数の第１ページに含まれるページであって、前記第１状態に設定された第１フラグビットを含む第２ページに、前記第１データを書き込み、前記第１フラグビットの状態を前記第１状態から前記第２状態に変更し、前記複数の第１ページのそれぞれのフラグビットが全て前記第２状態に設定されている場合、前記複数の第１ページのそれぞれのフラグビットの各状態を、前記第２状態から前記第１状態に戻す。
【図面の簡単な説明】
【０００６】
【図１】第１実施形態に係る情報処理システムを示すブロック図
【図２】第１実施形態に係るストレージシステムを概念的に示す図
【図３】第１実施形態に係るアドレス変換テーブルを示すブロック図
【図４】第１実施形態に係る第１ストレージユニットＳＵ１を示す図
【図５】第１ストレージユニットＳＵ１の物理ブロックＢＫＭ１を示すブロック図
【図６】図５のメモリセルＭＣ１を示す等価回路図
【図７】メモリセルＭＣ１のデバイス構成を示す断面図
【図８】第２ストレージユニットＳＵ２の物理ブロックＢＫＮ１を示す等価回路図
【図９】第１実施形態に係るデータ読み出し動作を示すフローチャート
【図１０】図９におけるデータの移動（Ｓ１４）を説明するための図
【図１１】図９におけるデータの移動（Ｓ１７）を説明するための図
【図１２】第１実施形態に係る情報処理システムのメモリアーキテクチャにおけるデータ容量とアクセス速度との関係を模式的に示す図
【図１３】第２実施形態に係るＭＲＡＭ２０を示すブロック図
【図１４】第２実施形態に係るデータ書き込み動作を示すフローチャート
【図１５】図１４における一ステップ（Ｓ２１）を説明するための図
【図１６】図１４における一ステップ（Ｓ２２）を説明するための図
【図１７】変形例２に係るＭＲＡＭ２０を示すブロック図
【図１８】変形例２に係るデータ書き込み動作を示すフローチャート
【発明を実施するための形態】
【０００７】
以下、図面を参照して、発明の実施形態について説明する。この説明においては、全図にわたり共通の部分には共通の参照符号を付す。
【０００８】
なお、以下の説明において、実質的に同一の機能及び要素については、同一符号を付し、必要に応じて説明を行う。また、本明細書では、いくつかの要素に複数の表現の例を付している。これら表現の例はあくまで例示であり、上記要素が他の表現で表現されることを否定するものではない。また、複数の表現が付されていない要素についても、別の表現で表現されてもよい。
【０００９】
（第１実施形態）  
［１．構成］
［１−１．全体構成（情報処理システム）］
図１を用い、第１実施形態に係る情報処理システム１の全体構成を説明する。
【００１０】
図示するように、第１実施形態に係る情報処理システム１は、ホスト１１と、ホスト１１により制御されるストレージシステム１０とを備える。
【００１１】
［ホスト１１］
ホスト１１は、メモリＣＭ１，ＣＭ２、およびＣＰＵ（Central processing unit）１７を備える。
【００１２】
メモリＣＭ１は、ＣＰＵ１７のキャッシュメモリ等として用いられるＳＲＡＭ（Static random access memory）１２を備える。ＳＲＡＭ１２は、揮発的にデータを記憶する半導体メモリである。このシステム１において、ＳＲＡＭ１２のアクセス速度ＳＰ１は、最も速い。ＳＲＡＭ１２は、メモリセル（ＳＲＡＭセル）を構成するセルトランジスタの数が、後述するＤＲＡＭ１３等と比較して多いため、その専有サイズが大きい。そのため、このシステム１において、ＳＲＡＭ１２を備えるメモリＣＭ１のデータ容量は、最も小さい。
【００１３】
メモリＣＭ２は、制御線（内部バス）１４を介してＣＰＵ１７のメインメモリ等として用いられるＤＲＡＭ（Dynamic random access memory）１３を備える。ＤＲＡＭ１３は、揮発的にデータを記憶する半導体メモリである。このシステム１において、ＤＲＡＭ１３のアクセス速度ＳＰ２は、ＳＲＡＭ１２のアクセス速度ＳＰ１よりも大きい（ＳＰ１＜ＳＰ２）。ＤＲＡＭ１３は、データを記憶するキャパシタと、キャパシタを選択するトランジスタとにより構成される。このシステム１において、ＤＲＡＭ１３を備えるメモリＣＭ２のデータ容量は、ＳＲＡＭ１２を備えるメモリＣＭ１よりも大きい。
【００１４】
ＣＰＵ（Central processing unit）１７は、制御線１４を介して、情報処理システム１の全体の動作を制御する。例えば、ＣＰＵ１７は、所定の演算処理を行うために、コマンドＣＯＭ，論理アドレスＬＡ，およびデータＤＡＴＡ等を、インタフェースからストレージシステム１０に送信し、ストレージシステム１０にアクセスする。このアクセスに際し、ＣＰＵ１７は、メモリＣＭ１，ＣＭ２を、キャッシュメモリ，ワークメモリ，メインメモリ等として用いる。これらの詳細については、後述する。
【００１５】
［ストレージシステム１０］
ストレージシステム１０は、第１から第３ストレージユニットＳＵ１〜ＳＵ３と、マスタコントローラＭＣＮＴとを備える。
【００１６】
第１ストレージユニットＳＵ１は、複数のＭＲＡＭ（Magnetic random access memory）２０と、第１サブコントローラＳＵＢＣＮＴ１とを備える。第１サブコントローラＳＵＢＣＮＴ１は、データ読み出しまたはデータ書き込み動作等において、各ＭＲＡＭ２０を制御する。ここでは、第１ストレージユニットＳＵ１の数は、１つであるが、第１ストレージユニットＳＵ１の数はこれに限定されない。ＭＲＡＭ２０は、データを不揮発に記憶する半導体メモリである。ＭＲＡＭ２０の詳細については、後述する。
【００１７】
第２ストレージユニットＳＵ２は、複数のＮＡＮＤ型フラッシュメモリ（以下、単に「ＮＡＮＤ」という。）３０と、第２サブコントローラＳＵＢＣＮＴ２とを備える。第２サブコントローラＳＵＢＣＮＴ２は、データ読み出しまたはデータ書き込み動作等において、各ＮＡＮＤ３０を制御する。ここでは、第２ストレージユニットＳＵ２の数は２つであるが、第２ストレージユニットＳＵ２の数はこれに限定されない。ＮＡＮＤ３０は、データを不揮発に記憶する半導体メモリである。ＮＡＮＤ３０の詳細については、後述する。
【００１８】
第３ストレージユニットＳＵ３は、ＨＤＤ（Hard disc drive）４０と、第３サブコントローラＳＵＢＣＮＴ３とを備える。第３サブコントローラＳＵＢＣＮＴ３は、データ読み出しまたはデータ書き込み動作等において、ＨＤＤ４０を制御する。ＨＤＤ４０は、データを不揮発に記憶する記録面を有する磁気ディスクと、磁気ディスクからデータを読み出しまたは磁気ディスクへデータを書き込むヘッド等とを備える。ここでは、第３ストレージユニットＳＵ３の数は３つであるが、第３ストレージユニットＳＵ３の数はこれに限定されない。
【００１９】
マスタコントローラＭＣＮＴは、ホスト１１からの要求に基づき、第１から第３のストレージユニットＳＵ１〜ＳＵ３の第１から第３サブコントローラＳＵＢＣＮＴ１〜ＳＵＢＣＮＴ３を制御する。また、マスタコントローラＭＣＮＴは、アドレス変換テーブル（Ｌ２Ｐ）５０を格納するレジスタ６０を備える。
【００２０】
アドレス変換テーブル５０は、ホスト１１が管理する入出力データの論理アドレスＬＡとストレージシステム１０が管理する物理アドレスＰＡとの対応関係を示すテーブルである。例えば、データ読み出しまたはデータ書き込み動作においてホスト１１からストレージシステム１０にアクセスがあった場合、入出力データの論理アドレスＬＡを、第１から第３のストレージユニットＳＵ１〜ＳＵ３のいずれかの物理アドレスＰＡに変換する。アドレス変換テーブル５０は、ストレージシステム１０へのアクセス頻度に応じて、論理アドレスＬＡと物理アドレスＰＡとの対応関係を更新する。このアドレス変換テーブル５０の詳細については、後述する。
【００２１】
レジスタ６０は、各論理アドレスＬＡおよび各物理アドレスＰＡについてのデータ書換え回数および／またはデータ読み出し回数を保持する。データ書き込みまたはデータ読み出し動作においてホスト１１からアクセスがあった場合、マスタコントローラＭＣＮＴは、アクセスされた論理アドレスＬＡおよび物理アドレスＰＡの書換え回数および／またはデータ読み出し回数をインクリメント（カウントアップ）し、インクリメントした回数をレジスタ６０に保持する。
【００２２】
なお、マスタコントローラＭＣＮＴおよび第１から第３サブコントローラＳＵＢＣＮＴ１〜ＳＵＢＣＮＴ３は、それぞれワーキングメモリＷＭ０，ＷＭ１，ＷＭ２，ＷＭ３を備えてもよい。ワーキングメモリＷＭ０〜ＷＭ３は、例えば、コントローラＭＣＮＴ、ＳＵＢＣＮＴ１〜ＳＵＢＣＮＴ３が様々な動作を実行する際のキャッシュメモリ等として用いることが可能である。また、アドレス変換テーブル５０は、レジスタ６０内に格納されるが、これに限られない。アドレス変換テーブル５０は、必要に応じて、ストレージシステム１０内のその他のメモリ等に格納されてもよいことは勿論である。さらに、第２ストレージユニットＳＵ２は、ＮＡＮＤ３０を用いて、ＨＤＤ４０と同様のインタフェースであるＳＳＤ（Solid state drive）として構成してもよい。
【００２３】
［１−２．ストレージシステム］
図２を用い、第１実施形態に係るストレージシステム１０の概念的な構成について説明する。
【００２４】
図示するように、ストレージシステム１０は、ＭＲＡＭ２０を含む第１ストレージユニットＳＵ１と、ＮＡＮＤ３０を含む第２ストレージユニットＳＵ２と、ＨＤＤ４０を含む第３ストレージユニットＳＵ３とを備える。第１ストレージユニットＳＵ１は、ストレージシステム１０において、最上位層である。第２ストレージユニットＳＵ２は、ストレージシステム１０において、中位層である。第３ストレージユニットＳＵ３は、ストレージシステム１０において、最下位層である。
【００２５】
上記のように、第１から第３のストレージユニットＳＵ１〜ＳＵ３は、階層化されているものの、単体のストレージシステム１０としてデータを格納することが可能である。例えば、データＤ１は、第３から第１ストレージシステムＳＵ３〜ＳＵ１のいずれにも順次格納することが可能である。例えば、データＤ２は、第１から第３ストレージシステムＳＵ１〜ＳＵ３のいずれにも順次格納することが可能である。この詳細については、後述する。
【００２６】
［１−３．アドレス変換テーブル］
図３を用い、図１に示したアドレス変換テーブル５０について、詳細に説明する。
【００２７】
図示するように、アドレス変換テーブル５０には、ストレージシステム１０が管理する物理アドレスＰＡ１０〜ＰＡ３ｍ（ｍは整数）と、ホスト１１が管理する論理アドレスＬＡ０〜ＬＡｎ（ｎは整数）とが関連付けて示される。
【００２８】
物理アドレスＰＡ１０、ＰＡ１１・・・は、第１ストレージユニットＳＵ１（ＭＲＡＭ２０）に割り当てられるアドレスである。物理アドレスＰＡ２０、ＰＡ２１・・・は、第２ストレージユニットＳＵ２（ＮＡＮＤ３０）に割り当てられるアドレスである。物理アドレスＰＡ３０、ＰＡ３１・・・ＰＡ３ｍは、第３ストレージユニットＳＵ３（ＨＤＤ４０）に割り当てられるアドレスである。
【００２９】
論理アドレスＬＡ０〜ＬＡｎは、それぞれ物理アドレスＰＡ１０〜ＰＡ３ｍのいずれかに関連付けられる。それにより、マスタコントローラＭＣＮＴは、例えば、データ書き込み動作において、論理アドレスＬＡを、該論理アドレスＬＡに関連付けられた物理アドレスＰＡに変換し、該物理アドレスＰＡに対応するストレージユニットＳＵ１〜ＳＵ３へデータを書き込むことができる。
【００３０】
例えば、図３において、論理アドレスＬＡｋ（ｋ＝０〜ｎ）と物理アドレスＰＡ３１とが関連付けられている場合を一例に挙げて説明する。この場合、論理アドレスＬＡｋを指定するアクセスがホスト１１からあった場合、マスタコントローラＭＣＮＴは、論理アドレスＬＡｋを物理アドレスＰＡ３１に変換し、物理アドレスＰＡ３１に対応する第３ストレージユニットＳＵ３のＨＤＤ４０へアクセスする。ここで、上記アクセスが、データ読み出し動作の場合、第３サブコントローラＳＵＢＣＮＴ３は、物理アドレスＰＡ３１に対応する第３のストレージユニットＳＵ３のストレージ部分であるＨＤＤ４０からデータを読み出す。読み出されたデータは、ストレージシステム１０からホスト１１へ送信される。上記アクセスがデータ書き込み動作の場合、第３サブコントローラＳＵＢＣＮＴ３は、物理アドレスＰＡ３１に対応する第３ストレージユニットＳＵ３のＨＤＤ４０へ書き込みデータを書き込む。
【００３１】
［１−４．第１ストレージユニット（ＭＲＡＭ）］
図４を用い、第１ストレージユニットＳＵ１の構成について、詳細に説明する。
【００３２】
図示するように、第１ストレージユニットＳＵ１は、入出力回路Ｉ／Ｏ１と、ページバッファＰＢ１と、メモリセルアレイＭＣＡ１とを備える。
【００３３】
入出力回路Ｉ／Ｏ１は、サブコントローラＳＵＢＣＮＴ１と第１ストレージユニットＳＵ１との間のインタフェースとして働く。具体的には、入出力回路Ｉ／Ｏ１は、データＤＡＴＡの他、後述する制御信号ＲＹ、ＢＹ等について、サブコントローラＳＵＢＣＮＴ１とやり取りを行う。
【００３４】
ページバッファＰＢ１は、メモリセルアレイＭＣＡ１から読み出された読み出しデータやホスト１１から送信される書き込みデータを一時的に格納する。
【００３５】
メモリセルアレイＭＣＡ１は、複数の物理ブロックＢＫＭ１〜ＢＫＭｎを備える。複数の物理ブロックＢＫＭ１〜ＢＫＭｎのそれぞれは、複数のワード線とビット線との交差位置に配置される複数のメモリセルＭＣ１を備える。物理ブロックＢＫＭ１〜ＢＫＭｎの詳細については、後述する。
【００３６】
複数のＭＲＡＭ２０は、チップイネーブル信号ＣＥ１〜ＣＥ４を入力するＣＥピンをそれぞれ備える。従って、各ＭＲＡＭ２０は、対応するチップイネーブル信号ＣＥ１〜ＣＥ４のいずれかが活性化されることにより選択される。例えば、チップイネーブル信号ＣＥ１が活性化される場合、チップイネーブル信号ＣＥ１に対応するＣＥピンを備える１つのＭＲＡＭ２０が選択される。
【００３７】
さらに、ＭＲＡＭ２０は、ＮＡＮＤ３０と同様に、Ｉ／Ｏピン（Ｉ／Ｏ１〜Ｉ／Ｏ８）、ＷＥピン、ＲＥピン、ＣＬＥピン、ＡＬＥピン、ＷＰピン、ＲＹ／ＢＹピン等を備える。Ｉ／Ｏピンは、データ、アドレスまたはコマンドの入出力に用いられるピンである。ＷＥピンは、ライトイネーブル信号ＷＥを入力するピンである。ＲＥピンは、リードイネーブル信号ＲＥを入力するピンである。ＣＬＥピンは、コマンドラッチイネーブル信号を入力するピンである。ＡＬＥピンは、アドレスラッチイネーブル信号を入力するピンである。ＷＰピンは、ライトプロテクト信号を入力するピンである。ＲＹ／ＢＹピンは、レディ信号またはビジー信号を出力するピンである。このように、第１実施形態によれば、ＭＲＡＭ２０とＮＡＮＤ３０とのメモリインタフェースを共通化することも可能である。
【００３８】
［１−５．物理ブロックＢＫＭ］
図５を用い、第１ストレージユニットＳＵ１のメモリセルアレイＭＣＡ１を構成する物理ブロックＢＫＭを説明する。ここでは、１つの物理ブロックＢＫＭ１を一例に挙げて説明する。
【００３９】
図示するように、物理ブロックＢＫＭ１は、複数のワード線ＷＬと複数のビット線ＢＬとの交差位置にマトリックス状に配置される複数のメモリセル（ＭＲＡＭセル）ＭＣ１を備える。各メモリセルＭＣ１は、データを不揮発に記憶する。但し、一旦、メモリセルＭＣ１からデータが読み出されると、メモリセルＭＣ１に記憶されたデータは破壊される。メモリセルＭＣ１の詳細については、後述する。
【００４０】
ワード線ＷＬごとにページＰＭが設けられる。ＭＲＡＭ２０においては、ページＰＭごとにデータ書き込みおよびデータ読み出しが行われる。従って、ページＰＭは、データ書き込み単位であり、データ読み出し単位である。
【００４１】
［１−６．メモリセルＭＣ１］
図６を用い、ＭＲＡＭ２０のメモリセルＭＣ１の詳細構成について説明する。
【００４２】
図示するように、メモリセルＭＣ１は、抵抗変化素子（磁気抵抗変化素子）ＭＴＪと、セルトランジスタ（スイッチング素子）ＣＴとにより構成される。
【００４３】
抵抗変化素子ＭＴＪは、自身に流される電流の向きに従い、自身の抵抗値が変化するように構成される。抵抗変化素子ＭＴＪの一端はビット線ＢＬに接続され、他端はセルトランジスタＣＴの電流経路の一端（ドレイン）に接続される。
【００４４】
セルトランジスタＣＴは、抵抗変化素子ＭＴＪに流れる電流の向きを切り替えて制御するように構成される。セルトランジスタの制御端子（ゲート）はワード線ＷＬに接続され、電流経路の一端（ドレイン）は抵抗変化素子ＭＴＪの他端に接続され、電流経路の他端（ソース）はソース線ＳＬに接続される。
【００４５】
例えば、上記構成において、ワード線ＷＬが選択されると、セルトランジスタＣＴの電流経路がオン状態となる。このオン状態において、制御回路が、ビット線ＢＬとソース線ＳＬと間に流す電流の向きを制御することにより、抵抗変化素子ＭＴＪに流れる電流の向きを切り替えて制御する。より具体的には、セルトランジスタＣＴの電流経路がオン状態で、制御回路が、ビット線ＢＬからソース線ＳＬへ電流を流すか、ソース線ＳＬからビット線ＢＬへ電流を流すかのいずれかを選択する。その結果、抵抗変化素子ＭＴＪに流れる電流の向きが切り替えて制御される。
【００４６】
［１−７．メモリセルＭＣ１のデバイス構成］
図７を用い、ＭＲＡＭ２０の各メモリセルＭＣ１のデバイス構成について説明する。
【００４７】
図示するように、ＭＲＡＭ２０の各メモリセルＭＣ１は、半導体基板１１上の層間絶縁膜１６中に設けられるセルトランジスタＣＴと抵抗変化素子ＭＴＪとを備える。
【００４８】
セルトランジスタＣＴのソースは、半導体基板１１上のソース線ＳＬ上に設けられる。セルトランジスタＣＴのチャネル領域ＣＨは、ソース線ＳＬ上に設けられる。セルトランジスタＣＴのゲート絶縁膜１５は、チャネル領域ＣＨの周囲を覆うように設けられる。ゲート電極ＣＧ（ＷＬ）は、ゲート絶縁膜１５上にチャネル領域ＣＨを取り囲むように設けられる。ドレイン領域Ｄは、チャネル領域ＣＨ上に設けられる。
【００４９】
チャネル領域ＣＨは、例えば、柱状のｐ型シリコン等を用いて形成される。ソース線ＳＬおよびドレイン領域Ｄは、例えば、ｎ型シリコン等を用いて形成される。ゲート電極ＣＧは、例えば、ポリシリコン等を用いて形成される。このように、第１実施形態に係るセルトランジスタＣＴは、ｎ型のＳＧＴ（Surrounding gate transistor）として構成される。
【００５０】
また、第１実施形態では、ソース線ＳＬが抵抗変化素子ＭＴＪのカラムごとに互いに分離されているため、ソース線ＳＬの寄生容量を低減させることができる。これにより、ＭＲＡＭ２０の動作を高速化できる。
【００５１】
抵抗変化素子ＭＴＪは、ドレイン領域Ｄ上に設けられ、その下端はドレイン領域Ｄと電気的に接続される。抵抗変化素子ＭＴＪは、記録層（フリー層）Ｆと、固定層（ピン層）Ｐと、トンネル絶縁膜Ｂと、を備える。記録層Ｆは、膜面垂直方向において、その磁化方向（スピンの方向）ＳＰＦが可変（上方向または下方向）である。固定層Ｐは、膜面垂直方向において、その磁化方向（スピンの方向）ＳＰＳが固定（ここでは、上方向）される。
【００５２】
記録層Ｆおよび固定層Ｐの材料は、例えば、Ｃｏ、Ｆｅ、Ｎｉ、Ｐｔ、Ｆｅ、Ｐｄ、Ｂ、Ｔａ、Ｄｙ、Ｔｖ、Ｃｒ等を含む磁性体材料である。トンネル絶縁膜Ｂの材料は、例えば、酸化マグネシウム、酸化アルミニウム等の非磁性体の絶縁材料を用いて形成される。なお、トンネル絶縁膜Ｂは、記録層Ｆと固定層Ｐとの間の電流の流れを妨げないように、記録層Ｆおよび固定層Ｐに比較して、その膜厚が非常に薄く形成される。
【００５３】
［メモリセルＭＣ１のデータ書き込みおよびデータ読み出し］
上記構成のメモリセルＭＣ１のデータ書き込みおよびデータ読み出しについて簡単に説明する。
【００５４】
ここで、第１実施形態に係る抵抗変化素子ＭＴＪとして、ＳＴＴ（Spin Transfer Torque）型の抵抗変化素子を一例に挙げて説明する。ＳＴＴ型の抵抗変化素子ＭＴＪは、スピン偏極トンネル効果による磁気抵抗の変化により、データを記憶する。
【００５５】
固定層Ｐは、磁化の向きＳＰＳが固定される層である。記録層Ｆは、磁化の向きＳＰＦが膜面垂直方向において可変である。メモリセルＭＣ１は、記録層Ｆの磁化方向ＳＰＦの向きに伴って抵抗変化素子ＭＴＪの抵抗値が変化することを利用し、データを記憶する。具体的には、抵抗変化素子ＭＴＪは、２枚の強磁性である固着層Ｐおよび記録層Ｆの磁化配列によって、低抵抗状態と高抵抗状態とを取り得る。
【００５６】
例えば、抵抗変化素子ＭＴＪの低抵抗状態をデータ“０”と定義し、高抵抗状態をデータ“１”と定義すれば、抵抗変化素子ＭＴＪに１ビットデータを記録することができる。もちろん、低抵抗状態をデータ“１”と定義し、高抵抗状態をデータ“０”と定義してもよい。
【００５７】
図７において、抵抗変化素子ＭＴＪの各矢印は、磁化方向ＳＰＦ，ＳＰＳを示す。このように、第１実施形態に係る固着層Ｐおよび記録層Ｆの磁化方向ＳＰＳおよびＳＰＦの磁化は、半導体基板１１の表面に対して交差する方向（垂直方向）の磁化（以下、「垂直磁化（perpendicular magnetization）」という。）である。このような垂直磁化による抵抗変化素子ＭＴＪは、半導体基板１１と平行な方向の磁化（以下、「面内磁化（In-plane magnetization）」という。）の抵抗変化素子に比べて、より高密度に配置することができる。
【００５８】
上記構成において、ビット線ＢＬからソース線ＳＬへ矢印Ａ１の向きに、反転閾値電流以上の電流を流すと、固着層Ｐの磁化方向ＳＰＳに対して記録層Ｆの磁化方向ＳＰＦがパラレル状態（Ｐ状態）となる。例えば、図７に示す場合、磁化方向ＳＰＳ，ＳＰＦがいずれも上方向となる。このパラレル状態において、抵抗変化素子ＭＴＪは、低抵抗状態（データ“０”）となる。
【００５９】
一方、ソース線ＳＬからビット線ＢＬへ矢印Ａ２の向きに、反転閾値電流以上の電流を流すと、記録層Ｆの磁化方向ＳＰＦが反転する（ＳＰＦ：上方向→下方向）。そのため、磁化方向ＳＰＦ，ＳＰＳが、互いにアンチパラレル状態（ＡＰ状態）となる。このアンチパラレル状態において、抵抗変化素子ＭＴＪは、高抵抗状態（データ“１”）となる。
【００６０】
このように、メモリセルＭＣ１は、抵抗変化素子ＭＴＪに流される電流の方向によって抵抗値が異なることを利用し、データを書き込むことができる。
【００６１】
また、データ読み出しについては、セルトランジスタＣＴの電流経路をオン状態とし、ソース線ＳＬからビット線ＢＬに電流を流し、抵抗変化素子ＭＴＪの抵抗値をセンスアンプで検知する。例えば、抵抗変化素子ＭＴＪの抵抗値が低抵抗状態と検知される場合、メモリセルＭＣ１は、データ“０”が読み出される。例えば、抵抗変化素子ＭＴＪの抵抗値が高抵抗状態と検知される場合、メモリセルＭＣ１は、データ“１”が読み出される。
【００６２】
ここで、ＭＲＡＭ２０のメモリセルＭＣ１からデータを読み出すと、メモリセルＭＣ１に記憶されたデータが破壊される。この「データ破壊」が発生する理由は、データ読み出しにおいて、抵抗変化素子ＭＴＪの抵抗値を検知するために、抵抗変化素子ＭＴＪに電流を流すと、抵抗変化素子ＭＴＪに蓄えられたエネルギーが外部に放出されるからであると考えられる。より具体的には、読み出し後の抵抗変化素子ＭＴＪの記録層Ｆの磁化方向ＳＰＦは、抵抗変化素子ＭＴＪに流された読み出し電流により、読み出し前の当該磁化方向ＳＰＦと比較して、再び読み出すことができない程度にまで変化し不安定化するからである。
【００６３】
なお、上記データ読み出し後のデータ破壊は、ＭＲＡＭ２０に限られず、例えば、ＦｅＲＡＭ（Ferroelectric random access memory）等のその他の半導体メモリでも同様に発生し得る。ＦｅＲＡＭの場合には、データ読み出しにおいて、データを記憶する強誘電体の分極が反転するために、データ破壊が発生し得る。そこで、上記データ破壊が発生すると、破壊されたデータを、当該半導体メモリに再び書き込む（書き戻す）ことが必要となる。
【００６４】
このように、第１実施形態に係るＭＲＡＭ２０は、高密度化に有利であるため、ストレージシステム１０を構成するストレージユニットＳＵ１としての利用に対して有利である。一方で、ＭＲＡＭ２０のメモリセルＭＣ１からデータを読み出すと、メモリセルＭＣ１に記憶されたデータが破壊される。
【００６５】
さらに、ＭＲＡＭ２０のメモリセルＭＣ１は、書き換え回数の制限がある。例えば、ＭＲＡＭ２０のメモリセルＭＣ１の書き換え回数の限度は、１０９回程度（２進数表記で２３０回程度）である。データ書換え回数およびデータ読み出し回数は、レジスタ６０やワークメモリＷＭ０〜ＷＭ３等に記録される。
【００６６】
なお、固着層Ｐと記憶層Ｆとの上下の位置関係は逆であってもよい。また、第１実施形態に係るＭＲＡＭ２０は、半導体基板１１の表面に対して垂直方向に抵抗変化素子ＭＴＪおよびセルトランジスタＣＴが積層される。従って、ＭＲＡＭ２０のレイアウト面積を低減でき、高密度化できる。例えば、図７に示すメモリセルＭＣ１のレイアウト面積は、４Ｆ２である。ここで、Ｆ（Feature Size）は、半導体製造プロセスにおいて形成可能な最小線幅を示す。
【００６７】
［１−８．物理ブロックＢＫＮのデバイス構成］
図８を用い、ＮＡＮＤ３０を構成する物理ブロックＢＫＮについて説明する。ここでは、１つの物理ブロックＢＫＮ１を一例に挙げて説明する。
【００６８】
図示するように、ＮＡＮＤ３０の物理ブロックＢＫＮ１は、ビット線方向に配置される複数のメモリセルユニットＭＵを備える。メモリセルユニットＭＵは、電流経路が直列接続される８個のメモリセルＭＣ２からなるＮＡＮＤストリング（メモリセルストリング）と、ＮＡＮＤストリングの電流経路の一端に接続されるソース側の選択トランジスタＳ１と、ＮＡＮＤストリングの電流経路の他端に接続されるドレイン側の選択トランジスタＳ２とから構成される。メモリセルＭＣ２は、制御ゲートＣＧおよび浮遊ゲートＦＧを備える。なお、ここでは、メモリセルユニットＭＵは、８個のメモリセルＭＣ２から構成されるが、これに限られない。メモリセルユニットＭＵは、２つ以上のメモリセルＭＣ２、例えば、５６個、３２個等から構成されていればよい。
【００６９】
ソース側の選択トランジスタＳ１の電流経路の他端は、ソース線ＳＬＮに共通接続される。ドレイン側の選択トランジスタＳ２の電流経路の他端は、各ビット線ＢＬ０〜ＢＬｍ−１にそれぞれ接続される。
【００７０】
ワード線ＷＬ０〜ＷＬ７は、ワード線方向の複数のメモリセルＭＣ２の制御ゲートＣＧに共通に接続される。選択ゲート線ＳＧＳは、ワード線方向の複数の選択トランジスタＳ１のゲート電極に共通に接続される。選択ゲート線ＳＧＤも、ワード線方向の複数の選択トランジスタＳ２のゲート電極に共通に接続される。
【００７１】
また、ワード線ＷＬ０〜ＷＬ７ごとにページＰＮが存在する。例えば、図中の破線で囲って示すように、ワード線ＷＬ７には、ページＰＮ７が存在する。このページＰＮごとに、データ読み出し動作およびデータ書き込み動作が行われる。そのため、ページＰＮは、データ読み出し単位であり、データ書き込み単位である。
【００７２】
なお、データ消去は、物理ブロックＢＫＮで一括して行われる。そのため、ＮＡＮＤ３０では、物理ブロックＢＫＮは、データ消去単位である。
【００７３】
［２．動作］
［２−１．データ読み出し動作］
次に、上記構成において、第１実施形態に係るストレージシステム１０のデータ読み出し動作について説明する。ここでは、図９を用い、ストレージユニットＳＵ１のデータ読み出し動作を一例に挙げる。
【００７４】
ステップＳ１１において、サブコントローラＳＵＢＣＮＴ１は、ストレージユニットＳＵ１のＭＲＡＭ２０からページＰＭ単位で、読み出しデータＲＤ１を読み出す。上述の通り、読み出されたページＰＭの各メモリセルＭＣ１が記憶していたデータＲＤ１は破壊される。なお、サブコントローラＳＵＢＣＮＴ１は、データ読み出し回数をインクリメントし、ワークメモリＷＭ１にインクリメント後のデータ読み出し回数を記録する。
【００７５】
ステップＳ１２において、サブコントローラＳＵＢＣＮＴ１は、破壊されたデータＲＤ１を、ストレージユニットＳＵ１のＭＲＡＭ２０の同じページＰＭに、再び書き込む（書き戻す）か否かを判定する。具体的には、サブコントローラＳＵＢＣＮＴ１は、ワークメモリＷＭ１に記録されたデータ書き込み回数を参照し、当該ページＰＭのアドレスのデータ書き込み回数が、所定の書き込み回数の閾値を超えるか否かを判定する。
【００７６】
ステップＳ１３において、ストレージユニットＳＵ１に書き戻さないと判定する場合（Ｓ１２でＮｏ）、コントローラＳＵＢＣＮＴ１，ＭＣＮＴは、破壊されたデータＲＤ１を書き込むべき、他のストレージユニットＳＵ２,ＳＵ３を選択する。この場合は、ＭＲＡＭ２０の書き込み回数が制限回数である（または制限回数に近い）と判定されるからである。
【００７７】
より具体的には、この場合、サブコントローラＳＵＢＣＮＴ１は、マスタコントローラＭＣＮＴに、書き換え回数が閾値を超えることを通知する。通知を受けたマスタコントローラＭＣＮＴは、他のストレージユニットＳＵ２，ＳＵ３のワークメモリＷＭ２，ＷＭ３を参照し、書き換え回数がより少ないアドレスを選択する。例えば、ストレージユニットＳＵ２のＮＡＮＤ３０のページＰＮ１の書き換え回数が少ない場合、通知を受けたマスタコントローラＭＣＮＴは、ストレージユニットＳＵ２にデータＲＤ１を書き込むように、サブコントローラＳＵＢＣＮＴ２を制御する。
【００７８】
ステップＳ１４において、サブコントローラＳＵＢＣＮＴ２，ＳＵＢＣＮＴ３は、選択した他のストレージユニットＳＵ２,ＳＵ３に、破壊されたデータＲＤ１を書き込む。例えば、上記の例の場合、サブコントローラＳＵＢＣＮＴ２は、書き換え回数が少ないストレージユニットＳＵ２のＮＡＮＤ３０のページＰＮ１に、破壊されたデータＲＤ１を書き込む。その結果、図１０に示すように、ストレージユニットＳＵ１のＭＲＡＭ２０のページＰＭ１に記憶されていたデータＲＤ１は、より下層のストレージユニットＳＵ２のＮＡＤＮ３０のページＰＮ１に書き込まれる。
【００７９】
ステップＳ１５において、マスタコントローラＣＮＴは、ステップＳ１４のデータ書き込みに伴い、アドレス変換テーブル５０を更新する。例えば、図３に示したように、マスタコントローラＭＣＮＴは、ページＰＭ１に対応するストレージユニットＳＵ１の物理アドレス（ＰＡ１０，ＰＡ１１，，，，）を、ページＰＮ１に対応するストレージユニットＳＵ２の物理アドレス（ＰＡ２０，ＰＡ２１，，，，）に更新する。
【００８０】
ステップＳ１６において、ストレージユニットＳＵ１に書き戻すと判定する場合（Ｓ１２でＹｅｓ）、サブコントローラＳＵＢＣＮＴ１は、破壊されたデータＲＤ１を書き込むべき、ストレージユニットＳＵ１中の位置（ページアドレス）を更に選択する。より具体的には、この場合、サブコントローラＳＵＢＣＮＴ１は、ワークメモリＷＭ１を参照し、書き換え回数がより少ないページアドレスを選択する。例えば、ストレージユニットＳＵ１のＭＲＡＭ２０のページＰＭ２の書き換え回数が少ない場合、サブコントローラＳＵＢＣＮＴ１は、ストレージユニットＳＵ１の当該ＭＲＡＭ２０のページＰＭ２を選択する。
【００８１】
ステップＳ１７において、サブコントローラＳＵＢＣＮＴ１は、選択した位置（ページアドレス）に、破壊されたデータＲＤ１を書き込む。例えば、上記の例の場合、サブコントローラＳＵＢＣＮＴ１は、書き換え回数が少ないストレージユニットＳＵ１のＭＲＡＭ２０のページＰＭ２に、破壊されたデータＲＤ１を書き込む。その結果、図１１に示すように、ストレージユニットＳＵ１のＭＲＡＭ２０のページＰＭ１に記憶されていたデータＲＤ１は、同じストレージユニットＳＵ１のＭＲＡＭ２０のページＰＭ２に書き込まれる。
【００８２】
ステップＳ１８において、マスタコントローラＭＣＮＴは、ステップＳ１７のデータ書き込みに伴い、アドレス変換テーブル５０を更新する。例えば、図３に示したように、マスタコントローラＭＣＮＴは、ページＰＭ１に対応するストレージユニットＳＵ１の物理アドレスを、ページＰＭ２に対応するストレージユニットＳＵ１の物理アドレスに更新する。
【００８３】
［３．作用効果］
以上説明したように、第１実施形態に係る情報処理システム１の構成および動作によれば、少なくとも下記（１）および（２）の効果が得られる。
【００８４】
（１）ストレージシステム１０のストレージユニットの寿命を長期化できる。
【００８５】
ここで、ＭＲＡＭ２０のメモリセルＭＣ１等からデータを読み出すと、メモリセルＭＣ１に記憶されたデータが破壊される。さらに、ＭＲＡＭ２０のメモリセルＭＣ１は、データ書き込み回数の制限がある。そのため、メモリセルＭＣ１から読み出したデータを、単純に同じアドレスのメモリセルＭＣ１に書き戻すと、特定のメモリセルＭＣ１の書き込み回数が増大し、メモリ寿命が低減する。
【００８６】
そこで、第１実施形態に係るストレージシステム１０のサブコントローラＳＵＢＣＮＴ１は、メモリセルＭＣ１からデータＲＤ１を読み出した後、破壊されたデータＲＤ１をストレージユニットＳＵ１のＭＲＡＭ２０の同じページＰＭ１に、再び書き込む（書き戻す）か否かを判定する（図９のＳ１２）。
【００８７】
さらに、書き戻さないと判定する場合、サブコントローラＳＵＢＣＮＴ２，ＳＵＢＣＮＴ３は、他のストレージユニットＳＵ２,ＳＵ３に、破壊されたデータＲＤ１を書き込む（Ｓ１３，Ｓ１４）。例えば、サブコントローラＳＵＢＣＮＴ２は、書き換え回数が少ないストレージユニットＳＵ２のＮＡＮＤ３０のあるページＰＮ１に、破壊されたデータＲＤ１を書き込む（図１０)。
【００８８】
一方、ＭＲＡＭ２０に書き戻すと判断する場合であっても、サブコントローラＳＵＢＣＮＴ１は、ページＰＭ１と異なり、書き換え回数がより少ないページＰＭ２に、破壊されたデータＲＤ１を選択的に書き込む（Ｓ１６，Ｓ１７）。例えば、サブコントローラＳＵＢＣＮＴ１は、書き換え回数が少ないストレージユニットＳＵ１のＭＲＡＭ２０のページＰＭ２に、破壊されたデータＲＤ１を書き込む（図１１）。
【００８９】
このように、第１実施形態に係るストレージシステム１０によれば、ストレージユニットＳＵ１のＭＲＡＭ２０からデータＲＤ１を読み出した後、破壊されたデータＲＤ１を再び書き込む際に、書き込み先のアドレス（ＰＮ１，ＰＭ２）を指定する。アドレスを指定する際には、書き込み先の書き込み回数等のデータが書き込まれる可能性がより低いアドレスを指定する。
【００９０】
そのため、データ書き込みがある特定のメモリセル（ＭＣ１等）に集中することを防止でき、データ書き込みをストレージシステム１０において均等化すること（ウェアレべリング（Wear leveling））ができる。その結果、ストレージシステム１０のストレージユニットＳＵ１〜ＳＵ３の寿命を長期化できる。
【００９１】
（２）情報処理システム１のメモリアーキテクチャにおいて、アクセス速度とデータ容量との関係を最適化できる。
【００９２】
第１実施形態に係る情報処理システム１は、メモリＣＭ１〜ＣＭ２やストレージメモリＳＵ１〜ＳＵ３等の様々なメモリを備える。そこで、図１２を用い、第１実施形態に係る情報処理システム１のアクセス速度とデータ容量との関係について説明する。ここで、「アクセス速度（レイテンシ）」とは、データ読み出し動作ではホスト１１のコマンドがメモリに入力されてから読み出しデータがメモリから出力されるまで時間に基づいて決定され、データ書き込み動作ではホスト１１のコマンドがメモリに入力されてから書き込みデータがメモリに入力されるまでの時間に基づき決定される。「データ容量」とは、メモリにデータを書き込むことが可能なデータサイズをいう。
【００９３】
図１２に示すように、情報処理システム１の各メモリＣＭ１〜ＣＭ２，ＳＵ１〜ＳＵ３のアクセス速度は、ＣＰＵ１７から近い側から順に、アクセス速度が速いように構成される。例えば、メモリＣＭ１（ＳＲＡＭ１２）のアクセス速度ＳＰ１は、数ｎｓ程度である。メモリＣＭ２（ＤＲＡＭ１３）のアクセス速度ＳＰ２は、数十ｎｓ程度である。ストレージユニットＳＵ１（ＭＲＡＭ２０）のアクセス速度ＳＰ３は、数μｓ程度である。ストレージユニットＳＵ２（ＮＡＮＤ３０）のアクセス速度ＳＰ４は、数百μｓ程度である。ストレージユニットＳＵ３（ＨＤＤ４０）のアクセス速度ＳＰ５は、数十ｍｓ程度である。
【００９４】
このように、情報処理システム１が備える各メモリＣＭ１〜ＣＭ２，ＳＵ１〜ＳＵ３の間のアクセス速度の差（ギャップ）を低減させることができる。
【００９５】
さらに、情報処理システム１の各メモリＣＭ１〜ＣＭ２，ＳＵ１〜ＳＵ３のデータ容量は、ＣＰＵ１７から近い側から順に、データ容量の値が小さくなるように構成される（データ容量：ＳＲＡＭ１２＜ＤＲＡＭ１３＜ＭＲＡＭ２０＜ＮＡＮＤ（ＳＳＤ）３０＜ＨＤＤ４０）。
【００９６】
このように、第１実施形態によれば、情報処理システム１のメモリアーキテクチャにおいて、アクセス速度とデータ容量との関係を最適化できる。
【００９７】
加えて、ストレージシステム１０のストレージユニットＳＵ１〜ＳＵ３を構成するメモリＭＲＡＭ２０，ＮＡＮＤ３０，ＨＤＤ４０は、いずれもデータを不揮発に記憶する。従って、ストレージシステム１０に電源が供給されない状態でも、そのデータはストレージユニットＳＵ１〜ＳＵ３に保持される。その結果、ストレージシステム１０の使用をしていないときには電力が不要である、ノーマリオフのストレージシステム１０を提供することができる。
【００９８】
（変形例１）
上記第１実施形態に限られず、以下のように、必要に応じて変形することが可能である。なお、この説明において、上記第１実施形態と重複する構成および動作の詳細な説明を省略する。
【００９９】
［ストレージユニットＳＵ１］
ストレージユニットＳＵ１のＭＲＡＭ２０については、第１実施形態に説明したもの限られない。
【０１００】
例えば、メモリセルＭＣ１は、ワード線ＷＬと互いに相補的なビット線（ＢＬ，ｂＢＬ）との交差位置に配置されるものでもよい。かかる構成により、メモリセルＭＣ１の読み出し速度を高速化できる。例えば、メモリセルＭＣ１の抵抗効果素子ＭＴＪは、半導体基板１１と平行な方向の面内磁化によるものでもよい。このように、ＭＲＡＭ２０については、必要に応じて変形して適用することが可能である。
【０１０１】
さらに、ストレージユニットＳＵ１は、ＭＲＡＭ２０に限られず、少なくともデータが破壊され得る不揮発性の半導体メモリであればよい。ストレージユニットＳＵ１として、例えば、ＲｅＲＡＭ（Resistance random access memory）、ＦｅＲＡＭ（Ferroelectric random access memory）、ＯＵＭ（Ovonic unified memory）等のその他の不揮発性の半導体メモリを適用することが可能である。
【０１０２】
［ストレージユニットＳＵ１のデータ読み出し動作］
ストレージユニットＳＵ１のデータ読み出し動作についても、第１実施形態に説明したもの限られない。
【０１０３】
例えば、ステップＳ１２において、書き込み回数に基づいて判定したが、当該判定基準は、これに限られない。ステップＳ１２において、コントローラＳＵＢＣＮＴ１は、例えば、破壊されたデータＲＤ１の重要度等に基づいて、判定しても良い。破壊されたデータＲＤ１が例えば写真データのユーザデータ等の場合、コントローラＳＵＢＣＮＴ１は、重要度がより低いと判定し、より下層側のストレージユニットＳＵ２，ＳＵ３にデータＲＤ１を書き込んでもよい。破壊されたデータＲＤ１が例えば管理データ等の場合、コントローラＳＵＢＣＮＴ１は、重要度がより高いと判定し、より上層側のストレージユニットＳＵ１にデータＲＤ１を書き込んでもよい。
【０１０４】
さらに、例えば、ステップＳ１３において、ストレージユニットＳＵ１に書き戻さないと判定する場合（Ｓ１２でＮｏ）、コントローラＭＣＮＴ，ＳＵＢＣＮＴ１〜３は、当該書き換える可能性が高いデータについて、ページインの際にダーティフラグを立てもよい。この場合、コントローラＭＣＮＴ，ＳＵＢＣＮＴ１〜３は、ページアウトの際に、ダーティデータを書き込んでもよい。また、ステップＳ１６において、ストレージユニットＳＵ１に書き戻すと判定する場合（Ｓ１２でＹｅｓ）、コントローラＳＵＢＣＮＴ１は、書き換える可能性が低いデータについて、ページインの際に同様にして、異なるアドレスに書き戻してもよい。
【０１０５】
（第２実施形態（カウンタごとに１つのグループを配置する一例））
図１３乃至図１６を用い、第２実施形態に係るストレージシステム１０について説明する。第２実施形態は、カウンタごとに１つのグループを配置する一例に関する。ここでは、カウンタごとに配置されるグループとして、上記物理ブロックを一例に挙げて説明する。この説明においては、第１実施形態と重複する部分の説明については省略する。
【０１０６】
［構成］
［ＭＲＡＭ２０の構成］
図１３を用い、第２実施形態に係るＭＲＡＭ２０の構成について説明する。図１３に示すように、第２実施形態に係るＭＲＡＭ２０は、カウンタＣＯ１ごとに１つのグループとしての物理ブロックＢＫＭ１を備える点で、第１実施形態と相違する。
【０１０７】
カウンタＣＯ１は、ＭＲＡＭ２０のメモリセルアレイＭＣＡ１において、所定の１つのグループ（ここでは、物理ブロックＢＫＭ１）ごとに配置される。カウンタＣＯ１は、物理ブロックＢＫＭ１単位で、データ書き込みの回数を一括してカウントする。換言すると、カウンタＣＯ１は、少なくともページ単位でデータ書き込みの回数をカウントしない。カウンタＣＯ１のカウント動作の詳細についは、後述する。
【０１０８】
物理ブロックＢＫＭ１は、カウンタＣＯ１ごとに設けられる１つのグループであって、ここでは、ＭＲＡＭ２０のメモリ空間２０Ｍ１として示される。そのため、物理ブロックＢＫＭ１は、複数のページＰＭ１０〜ＰＭ１ｎから構成される。複数のページＰＭ１０〜ＰＭ１ｎのそれぞれは、ヘッダ領域ＨＡ１、データ領域ＤＡ１、および冗長領域ＲＡ１から構成される。
【０１０９】
ヘッダ領域ＨＡ１には、例えば、アドレス（ページアドレス、ブロックアドレス等）やフラグビットＦＬＧ等が配置される。フラグビットＦＬＧは、例えば、フラグビットが立った“１状態（ＦＬＧ１）”では当該ページＰＭのデータ書き込みが行われたことを示す。上記「ページＰＭのデータ書き込みが行われていないこと」とは、少なくともページＰＭのデータ領域ＤＡ１に、ホスト１１から送信された書き込みデータが書き込まれていればよい。
【０１１０】
また、フラグビットＦＬＧは、例えば、フラグビットが立っていない“０状態（ＦＬＧ０）”では当該ページＰＭのデータ書き込みが行われていないことを示す。上記「ページＰＭのデータ書き込みが行われていないこと」とは、少なくともページＰＭのデータ領域ＤＡ１にホスト１１から送信された書き込みデータが書き込まれていなければよい。
【０１１１】
ここでは、全てのページＰＭ１０〜ＰＭ１ｎのフラグビットは、“０状態（ＦＬＧ０）”である。そのため、全てのページＰＭ１０〜ＰＭ１ｎについて、データ書き込みが行われていない状態（初期状態）が示される。
【０１１２】
データ領域ＤＡ１には、例えば、データ（ＤＡＴＡ）やコマンド等が配置される。
【０１１３】
冗長領域ＲＡ１には、例えば、データ領域ＤＡ１に配置されるデータに対して誤り訂正を行うためのＥＣＣ符号（Error Correcting Code）等が配置される。
【０１１４】
なお、ページＰＭ１０〜ＰＭ１ｎの構成は、例示である。これらの詳細については、後述する。
【０１１５】
その他の構成については、第１実施形態と実質的に同様であるため、その詳細な説明を省略する。
【０１１６】
［動作］
［データ書き込み動作］
図１４に沿って、第２実施形態に係るストレージシステム１０のデータ書き込み動作について説明する。
【０１１７】
ステップＳ２１において、コントローラＳＵＢＣＮＴ１は、ホスト１１からデータ書き込み要求を受けると、カウンタＣＯ１ごとのグループであるブロックＢＫＭ１内において、フラグビットが立っていない“０状態（ＦＬＧ０）”のページＰＭに対して、データ書き込みを行う。例えば、図１５に示すように、コントローラＳＵＢＣＮＴ１は、ヘッダ領域ＨＡ１を参照し、ブロックＢＫＭ１内において、フラグビットが立っていない“０状態（ＦＬＧ０）”の最初のページＰＭ１１のデータ領域ＤＡ１に、ホスト１１から受信した書き込みデータを書き込む。
【０１１８】
ステップＳ２２において、コントローラＳＵＢＣＮＴ１は、データ書き込みを行ったページＰＭのフラグビットを立てる。例えば、図１６に示すように、コントローラＳＵＢＣＮＴ１は、書き込みデータを書き込んだページＰＭ１１のヘッダ領域ＨＡ１のフラグビットＦＬＧを、“０状態（ＦＬＧ０）”から“１状態（ＦＬＧ１）”とする。
【０１１９】
ステップＳ２３において、コントローラＳＵＢＣＮＴ１は、データ書き込みを行ったページＰＭについて、アドレス変換テーブル５０を更新する。例えば、図３に示したように、コントローラＳＵＢＣＮＴ１は、アドレス変換テーブル５０を参照し、データ書き込みを行ったページＰＭ１１の物理アドレス（ページアドレス）ＰＡ１１を、当該物理アドレスＰＡ１１に対応する論理アドレスＬＡに対応して割り当てる。
【０１２０】
ステップＳ２４において、コントローラＳＵＢＣＮＴ１は、グループ（物理ブロック）ＢＫＭ１内において、全てのページＰＭのフラグビットＦＬＧが立っているか否かを判定する。より具体的には、コントローラＳＵＢＣＮＴ１は、物理ブロックＢＫＭ１内において、全てのページＰＭ１０〜ＰＭ１ｎのヘッダ領域ＨＡ１を参照し、全てのフラグビットＦＬＧが“１状態（ＦＬＧ１）”であるか否かを判定する。
【０１２１】
全てのページＰＭ１０〜ＰＭ１ｎのフラグビットＦＬＧが立っていない（“０状態（ＦＬＧ０）”のページＰＭが１でもある）場合（Ｓ２４でＮｏ）、コントローラＳＵＢＣＮＴ１は、ステップＳ２１に戻り、同様の動作を繰り返す。
【０１２２】
ステップＳ２５において、全てのページＰＭ１０〜ＰＭ１ｎのフラグビットＦＬＧが立っている（全てのページＰＭが“１状態（ＦＬＧ１）”である）場合（Ｓ２４でＹｅｓ）、コントローラＳＵＢＣＮＴ１は、カウンタＣＯ１の回数の値をインクリメント（カウントアップ）する。例えば、この場合、コントローラＳＵＢＣＮＴ１は、カウンタＣＯ１の回数の値を１つインクリメントし、回数１から回数２に進める。
【０１２３】
ステップＳ２６において、コントローラＳＵＢＣＮＴ１は、ブロックＢＫＭ１のフラグビットＦＬＧの値を全てクリア（消去）する。より具体的には、コントローラＳＵＢＣＮＴ１は、全てのページＰＭ１０〜ＰＭ１ｎのフラグビットＦＬＧが“１状態（ＦＬＧ１）”であるため、物理ブロックＢＫＭ１の全てのページＰＭ１０〜ＰＭ１ｎがデータ書き込み済みであると判定する。そのため、コントローラＳＵＢＣＮＴ１は、物理ブロックＢＫＭ１の全てのページＰＭ１０〜ＰＭ１ｎのフラグビットＦＬＧの値を“１状態（ＦＬＧ１）”から“０状態（ＦＬＧ０）”とする。このように制御することで、ブロックＢＫＭ１の全てのページＰＭ１０〜ＰＭ１ｎを、再び書き込み可能な状態に戻す。
【０１２４】
なお、以降、コントローラＳＵＢＣＮＴ１は、ホスト１１の書き込み要求に基づいて、同様にデータ書き込み動作を行う。
【０１２５】
その他の動作については、第１実施形態と実質的に同様であるため、その詳細な説明を省略する。
【０１２６】
［作用効果］
以上説明したように、第２実施形態に係る情報処理システム１の構成および動作によれば、少なくとも上記（１）および（２）の効果が得られる。さらに、第２実施形態に係る情報処理システム１によれば、下記（３）の効果が得られる。
【０１２７】
（３）微細化および高速動作に対して有利である。
【０１２８】
第２実施形態に係るＭＲＡＭ２０は、カウンタＣＯ１ごとに１つのグループとしての物理ブロックＢＫＭ１を備える（図１３）。データ書き込みの有無は、ブロックＢＫＭ１を構成するページＰＭのフラグビットＦＬＧの状態（ＦＬＧ：“０”状態（第１状態）または“１”状態（第２状態））に基づき、判定される（図１４のＳ２４）。データ書き込みが行われた回数は、カウンタＣＯ１により、ブロックＢＫＭ１ごとに一括してカウントされる（図１４のＳ２５）。
【０１２９】
上記構成および動作によれば、ページＰＭごとに、データ書き込みが行われた回数をカウントするためのカウンタを設ける必要がない。第２実施形態では、ページＰＭの余裕領域であるヘッダ領域ＨＡ１に、フラグビットＦＬＧを設けることで、ページＰＭにデータ書き込みが行われた否かを認識することができる。なお、フラグビットＦＬＧを配置する位置は、ヘッダ領域ＨＡ１に限られない。例えば、冗長領域ＲＡ１に、フラグビットＦＬＧを配置することも可能である。このように、フラグビットＦＬＧを配置可能な、データ領域ＤＡ１以外の余裕領域（ＨＡ１，ＲＡ１）は、例えば、ページＰＭ全体３７％程度を占める。
【０１３０】
このように、第２実施形態では、当該余裕領域を利用することで、ページＰＭ毎に書き込み回数をカウントするカウンタを備える必要がなく、カウンタＣＯ１によりブロックＢＫＭ１ごとに一括して書き込み回数を管理することが可能である。従って、第２実施形態は、カウンタを配置するための専有面積、および当該カウンタがカウントする書き込み回数を更新するためのメモリ領域が不要となり、微細化に対して有利である。
【０１３１】
加えて、ページＰＭ毎に書き込み回数をカウントするカウンタの回数を更新しない（図１４のＳ２５）ので、カウンタＣＯ１の回数の更新に伴うロスタイムを削減できる。従って、第２実施形態は、高速動作化に対しても有利である。
【０１３２】
（変形例２（複数のグループを備える一例））
図１７および図１８を用い、変形例２に係るストレージシステム１０について説明する。変形例２は、複数のカウンタに対応して複数のグループを配置する一例に関する。ここでは、２つカウンタに対応して、２つの物理ブロックが配置される場合を一例に挙げて説明する。この説明においては、第１，第２実施形態と重複する部分の説明については省略する。
【０１３３】
［構成］
［ＭＲＡＭ２０の構成］
図１７を用い、変形例２に係るＭＲＡＭ２０の構成について説明する。図１７に示すように、変形例２に係るＭＲＡＭ２０は、２つのカウンタＣＯ１，ＣＯ２に対応して、２つのグループとしての物理ブロックＢＫＭ１，ＢＫＭ２を備える点で、第２実施形態と相違する。
【０１３４】
カウンタＣＯ２は、ＭＲＡＭ２０のメモリセルアレイＭＣＡ１において、所定の１つのグループ（ここでは、物理ブロックＢＫＭ２）ごとに配置される。カウンタＣＯ２は、物理ブロックＢＫＭ２単位で、データ書き込みの回数を一括してカウントする。
【０１３５】
物理ブロックＢＫＭ２は、カウンタＣＯ２ごとに設けられる１つのグループであって、ここでは、ＭＲＡＭ２０のメモリ空間２０Ｍ２として示される。物理ブロックＢＫＭ２は、複数のページＰＭ２０〜ＰＭ２ｎから構成される。複数のページＰＭ２０〜ＰＭ２ｎのそれぞれは、同様に、ヘッダ領域ＨＡ２、データ領域ＤＡ２、および冗長領域ＲＡ２から構成される。
【０１３６】
ヘッダ領域ＨＡ２には、例えば、アドレス（ページアドレス、ブロックアドレス等）やフラグビットＦＬＧ等が配置される。ここでは、全てのページＰＭ２０〜ＰＭ２ｎのフラグビットは、“０状態（ＦＬＧ０）”である。そのため、全てのページＰＭ２０〜ＰＭ２ｎについて、データ書き込みが行われていない状態（初期状態）である。
【０１３７】
データ領域ＤＡ２には、例えば、データ（ＤＡＴＡ）やコマンド等が配置される。
【０１３８】
冗長領域ＲＡ２には、例えば、データ領域ＤＡ２に配置されるデータに対して誤り訂正を行うためのＥＣＣ符号（Error Correcting Code）等が配置される。なお、ページＰＭ２０〜ＰＭ２ｎの構成は、例示である。
【０１３９】
その他の構成については、第２実施形態と実質的に同様であるため、その詳細な説明を省略する。
【０１４０】
［動作］
［データ書き込み動作］
図１８に沿って、変形例２に係るストレージシステム１０のデータ書き込み動作について説明する。図１８に示すように、変形例２に係るデータ書き込み動作は、ステップＳ３０を更に備える点で、第２実施形態と相違する。
【０１４１】
即ち、ステップＳ３０において、コントローラＳＵＢＣＮＴ１は、ホスト１１から書き込み要求を受けると、カウンタＣＯ１,ＣＯ２に対応して配置されたグループ（ブロック）ＢＫＭ１,ＢＫＭ２のうち、書き込み回数が少ないグループを選択する。
【０１４２】
より具体的には、コントローラＳＵＢＣＮＴ１は、カウンタＣＯ１,ＣＯ２の書き込み回数を参照し、書き込み回数が少ないブロックＢＫＭ１,ＢＫＭ２をデータ書き込みの対象ブロックとして選択する。ここでは、カウンタＣＯ１の書き込み回数が、カウンタＣＯ２の書き込み回数よりも少ない場合を一例に挙げる。そのため、この場合、コントローラＳＵＢＣＮＴ１は、より書き込み回数が少ないカウンタＣＯ１に対応して配置されるブロックＢＫＭ１をデータ書き込みの対象ブロックとして選択する。以降、コントローラＳＵＢＣＮＴ１は、第２実施形態と同様のステップＳ２１〜Ｓ２６を行う。
【０１４３】
［作用効果］
以上説明したように、変形例２に係る情報処理システム１の構成および動作によれば、少なくとも上記（１）乃至（３）の効果が得られる。さらに、変形例２に係る情報処理システム１によれば、下記（４）の効果が得られる。
【０１４４】
（４）グループ（物理ブロック）ＢＫＭ１，ＢＫＭ２単位で、ウェアレベリングを行うことができる。
【０１４５】
変形例２に係るＭＲＡＭ２０は、２つのカウンタＣＯ１，ＣＯ２に対応して、２つのグループとしての物理ブロックＢＫＭ１，ＢＫＭ２を備える（図１７）。上記構成において、コントローラＳＵＢＣＮＴ１は、ホスト１１から書き込み要求を受けると、カウンタＣＯ１,ＣＯ２に対応して配置されたグループ（ブロック）ＢＫＭ１,ＢＫＭ２のうち、書き込み回数が少ないグループを書き込み対象として選択する（図１８のＳ３０）。
【０１４６】
このように、変形例２は、より書き込み回数が少ないグループＢＫＭ１に対して書き込みを行うことができ、ＭＲＡＭ２０のグループＢＫＭ１，ＢＫＭ２単位で、書き込み回数の均一化（ウェアレベリング）を行うことができる点で有利である。
【０１４７】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１４８】
１…情報処理システム、１０…ストレージシステム、１１…ホスト、１２…ＳＲＡＭ、１３…ＤＲＡＭ、１４…制御線、１７…ＣＰＵ、２０…ＭＲＡＭ、３０…ＮＡＮＤメモリ、４０…ＨＤＤ、５０…アドレス変換テーブル、６０…レジスタ、ＣＭ１，ＣＭ２…メモリユニット、ＳＵ１〜ＳＵ３…第１〜第３ストレージユニット、ＭＣＮＴ…メインコントローラ、ＳＵＢＣＮＴ１〜ＳＵＢＣＮＴ３…第１〜第３サブコントローラ、ＭＣ１，ＭＣ２…第１，第２不揮発性メモリ、ＭＴＪ…磁気抵抗変化素子、ＣＴ…セルトランジスタ、ＰＭ，ＰＮ…ページ、ＢＫＭ，ＢＫＮ…ブロック、ＣＯ１，ＣＯ２…カウンタ。
【図１】
2018198087.tif 000003
【図２】
2018198087.tif 000004
【図３】
2018198087.tif 000005
【図４】
2018198087.tif 000006
【図５】
2018198087.tif 000007
【図６】
2018198087.tif 000008
【図７】
2018198087.tif 000009
【図８】
2018198087.tif 000010
【図９】
2018198087.tif 000011
【図１０】
2018198087.tif 000012
【図１１】
2018198087.tif 000013
【図１２】
2018198087.tif 000014
【図１３】
2018198087.tif 000015
【図１４】
2018198087.tif 000016
【図１５】
2018198087.tif 000017
【図１６】
2018198087.tif 000018
【図１７】
2018198087.tif 000019
【図１８】
2018198087.tif 000020