(57)【要約】【課題】大容量データストレージシステムの性能を常に最大に維持する。【解決手段】実施形態に係わる記憶装置は、モジュール基板１１上に直接実装される第１の不揮発性半導体メモリＭ１〜Ｍ８と、モジュール基板１１上に実装され、第２の不揮発性半導体メモリＭ９〜Ｍ１２が実装されたメモリモジュール１３Ａ，１３Ｂの取り付け／取り外しを可能にするメモリソケット１２Ａ，１２Ｂとを備える。メモリコントローラ１４は、メモリソケット１２Ａ，１２Ｂにメモリモジュール１３Ａ，１３Ｂが取り付けられているか否かを判定する手段と、メモリソケット１２Ａ，１２Ｂにメモリモジュール１３Ａ，１３Ｂが取り付けられているときに第２の不揮発性半導体メモリＭ９〜Ｍ１２に書き換え回数を集中させる手段と、所定の交換条件を満たしたときにその旨を示唆する表示を行う手段とを備える。【選択図】図１
2012118853.tif 000002
【特許請求の範囲】
【請求項１】
モジュール基板と、前記モジュール基板上に直接実装される第１の不揮発性半導体メモリと、前記モジュール基板上に実装され、第２の不揮発性半導体メモリが実装されたメモリモジュールの取り付け／取り外しを可能にするメモリソケットと、前記第１及び第２の不揮発性半導体メモリを制御するメモリコントローラとを具備し、
前記メモリコントローラは、前記メモリソケットに前記メモリモジュールが取り付けられているか否かを判定する手段と、前記メモリソケットに前記メモリモジュールが取り付けられているときに前記第２の不揮発性半導体メモリに書き換え回数を集中させる手段と、所定の交換条件を満たしたときにその旨を示唆する表示を行う手段とを備える記憶装置。
【請求項２】
前記メモリコントローラは、前記所定の交換条件を満たしたときに前記第２の不揮発性半導体メモリ内のデータを前記第１の不揮発性半導体メモリを含む他のメモリに移動させる手段をさらに備える請求項１に記載の記憶装置。
【請求項３】
前記メモリコントローラは、前記メモリソケットに前記メモリモジュールが取り付けられているか否かに係わらず、前記第１の不揮発性半導体メモリを対象にウェアレベリングでデータを管理する手段をさらに備える請求項１に記載の記憶装置。
【請求項４】
前記メモリコントローラは、前記メモリソケットに前記メモリモジュールが取り付けられているときに前記第２の不揮発性半導体メモリの情報を読み込む手段と、前記第２の不揮発性半導体メモリのデータアクセス性能が前記第１の不揮発性半導体メモリのそれよりも高いときに前記第２の不揮発性半導体メモリに高いアクセス頻度を有するデータを優先的に記憶させる手段とを備える請求項１に記載の記憶装置。
【請求項５】
前記所定の交換条件は、前記メモリモジュール内の不良ブロック数が所定値を超えたとき、前記メモリモジュールに対する書き換え回数が所定値を超えたとき、前記メモリモジュール内の全てのブロックが不良となったとき、のいずれか１つである請求項１に記載の記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、記憶装置(storage device)に関する。
【背景技術】
【０００２】
不揮発性半導体メモリ（例えば、ＮＡＮＤフラッシュメモリ）を使用する大容量データストレージシステムは、さらなる大容量化やコストダウンなどを推し進めるため、素子の微細化や２値（SLC: Single Level Cell)方式から多値（MLC: Multi Level Cell)方式への移行などが検討されている。しかし、これらの技術は、データアクセス性能の劣化や、書き換え回数の低下などの問題を発生させる。
【０００３】
コンベンショナルな技術では、このような問題による影響を最小限に抑えるため、例えば、ウェアレベリング技術により、不揮発性半導体メモリの各メモリブロックに対する書き換え回数を均等化し、製品寿命の長期化を図っている。この技術の特徴は、特定メモリブロックに書き換え回数が集中しないように、データ書き換え時に書き換え回数の少ないブロックにデータを移動させることにある。
【０００４】
しかし、ウェアレベリング技術を採用しても、書き換え回数がその上限を超えて正常に書き換えが行えなくなったメモリブロックは、不良ブロック（bad block）として処理されるため、その後は使用することができない。結果として、大容量データストレージシステムの一部の機能が失われることになり、システム全体としての性能が低下する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−１５７８２８号公報
【特許文献２】特開２０１０−７９４４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
実施形態は、大容量データストレージシステムの性能を常に最大に維持するための技術を提案する。
【課題を解決するための手段】
【０００７】
実施形態によれば、記憶装置は、モジュール基板と、前記モジュール基板上に直接実装される第１の不揮発性半導体メモリと、前記モジュール基板上に実装され、第２の不揮発性半導体メモリが実装されたメモリモジュールの取り付け／取り外しを可能にするメモリソケットと、前記第１及び第２の不揮発性半導体メモリを制御するメモリコントローラとを備え、前記メモリコントローラは、前記メモリソケットに前記メモリモジュールが取り付けられているか否かを判定する手段と、前記メモリソケットに前記メモリモジュールが取り付けられているときに前記第２の不揮発性半導体メモリに書き換え回数を集中させる手段と、所定の交換条件を満たしたときにその旨を示唆する表示を行う手段とを備える。
【図面の簡単な説明】
【０００８】
【図１】記憶装置を示す図。
【図２】メモリシステムを示す図。
【図３】データ管理方法を示すフローチャート。
【図４】変形例のメモリモジュールを示す図。
【図５】メモリシステムを示す図。
【図６】データ管理方法を示すフローチャート。
【図７】適用例のメモリシステムを示す図。
【発明を実施するための形態】
【０００９】
以下、図面を参照しながら実施形態を説明する。
【００１０】
実施形態は、ＳＳＤ（Solid State Drive）などの大容量データストレージシステムにおいて、データストレージにメモリソケットを付加し、メモリモジュールの取り付け／取り外しを可能にする。データストレージにメモリモジュールが取り付けられると、そのメモリモジュールに実装された不揮発性半導体メモリを優先的に使用し、それに書き換え回数を集中させる。
【００１１】
これにより、データストレージに直接実装された交換不可能な不揮発性半導体メモリの書き換え回数を減らし、その不揮発性半導体メモリ内に不良ブロックが発生することを抑制する。メモリモジュールに実装された不揮発性半導体メモリには書き換え回数が集中し、不良ブロックの発生率が高くなるが、メモリモジュールは交換可能である。従って、所定の交換条件を満たしたときにメモリモジュールを交換すれば、メモリモジュールに書き換え回数が集中することによる問題は解消される。
【００１２】
以上のコンセプトは、ウェアレベリング技術のそれとは正反対である。特定の不揮発性半導体メモリに書き換え回数を集中させることにより、結果的に、大容量データストレージシステムの性能を常に最大に維持することができる。
【００１３】
但し、このコンセプトにウェアレベリング技術を組み合わせることは可能である。
【００１４】
例えば、メモリモジュールに実装された交換可能な不揮発性半導体メモリに書き換え回数を集中させるためには、それに記憶されるデータが頻繁に書き換えられるデータであればよいが、そうでないときは、ウェアレベリング技術、デフラグ技術、コンパクション技術などを利用して、交換可能な不揮発性半導体メモリに記憶されたデータを、データストレージに直接実装された交換不可能な不揮発性半導体メモリに移動させ、交換可能な不揮発性半導体メモリ内に追記データを記憶する空き容量を確保するのが望ましい。
【００１５】
同様の主旨から、交換可能な不揮発性半導体メモリに記憶されたデータが頻繁に書き換えられるデータであるときは、その頻繁に書き換えられるデータを交換可能な不揮発性半導体メモリに移動させてもよい。
【００１６】
また、必要に応じて、交換可能な不揮発性半導体メモリから別の交換可能な不揮発性半導体メモリにデータの移動を行ってもよいし、交換不可能な複数の不揮発性半導体メモリ間でデータの移動を行ってもよい。
【００１７】
さらに、メモリモジュールの取り付けの有無に係わらず、データストレージに直接実装された交換不可能な不揮発性半導体メモリを対象にウェアレベリングを実行することは、それら不揮発性半導体メモリの書き換え回数を均等化し、不良ブロックの発生を抑制するのに有効である。
【００１８】
尚、メモリモジュールの交換時期については、システム内の管理ソフトウェアにより管理するのが望ましい。
【００１９】
所定の交換条件は、(1) メモリモジュール内の不良ブロック数が所定値を超えたとき、(2) メモリモジュールに対する書き換え回数が所定値を超えたとき、(3) メモリモジュール内の全てのブロックが不良となったとき、などを採用することができる。
【００２０】
これら条件のうちの１つを満たしたときに、例えば、メモリモジュールの交換を示唆する表示を行う。
【００２１】
所定の交換条件を満たしたとき以降は、例えば、メモリモジュール内のデータは、そのメモリモジュール以外の他のメモリモジュール、又は、データストレージに直接実装された不揮発性半導体メモリに転送され、そこに記憶される。
【００２２】
図１は、実施形態に係わる記憶装置を示している。
【００２３】
モジュール基板１１は、例えば、単層又は多層の回路基板から構成される。第１の不揮発性半導体メモリＭ１〜Ｍ８は、モジュール基板１１上に直接実装され、交換不可能な状態となっている。不揮発性半導体メモリＭ１〜Ｍ８は、例えば、ＮＡＮＤ型フラッシュメモリである。
【００２４】
メモリソケット１２Ａ，１２Ｂは、モジュール基板１１上に実装され、メモリモジュール１３Ａ，１３Ｂの取り付け／取り外しを可能にする。メモリソケット１２Ａ，１２Ｂは、SIMM (Single Inline Memory Module)や、DIMM (Dual Inline Memory Module)などを採用することができる。
【００２５】
第２の不揮発性半導体メモリＭ９〜Ｍ１２は、メモリモジュール１３Ａ，１３Ｂ上に実装される。即ち、第２の不揮発性半導体メモリＭ９〜Ｍ１２は、交換可能な状態となっている。不揮発性半導体メモリＭ９〜Ｍ１２は、例えば、ＮＡＮＤ型フラッシュメモリである。
【００２６】
メモリコントローラ１４は、第１及び第２の不揮発性半導体メモリＭ１〜Ｍ１２を制御する。
【００２７】
図２は、図１の記憶装置を含むメモリシステムを示している。
【００２８】
記憶装置（データストレージ）１０は、図１の記憶装置に相当する。ここでは、第１の不揮発性半導体メモリＭ１〜Ｍ４とメモリコントローラ１４とは、第１のチャネルＣＨ１を介して互いに接続される。第１の不揮発性半導体メモリＭ５〜Ｍ８とメモリコントローラ１４とは、第２のチャネルＣＨ１を介して互いに接続される。
【００２９】
メモリモジュール１３Ａに実装された第２の不揮発性半導体メモリＭ９，Ｍ１０は、第３のチャネルＣＨ３を介してメモリコントローラ１４に接続される。メモリモジュール１３Ｂに実装された第２の不揮発性半導体メモリＭ１１，Ｍ１２は、第４のチャネルＣＨ４を介してメモリコントローラ１４に接続される。
【００３０】
記憶装置（例えば、ＳＳＤ）１０は、シリアルＡＴＡ(advanced technology attachment)などのインターフェイス２１を介して情報処理装置（例えば、ノートパソコン）２２に接続される。情報処理装置２２は、ホストコントローラ２３、メモリ（例えば、ＤＲＡＭ、ＳＲＡＭなど）２４、ＤＭＡコントローラ（direct memory access controller）２５、及び、ＣＰＵ（central processing unit）２６を有する。
【００３１】
ホストコントローラ２３は、記憶装置１０に対して、データの書き込み、読み出し、消去などの動作を指示し、メモリコントローラ１４は、ホストコントローラ２３の指示に基づいて、不揮発性半導体メモリＭ１〜Ｍ１２に対して、実際に、データの書き込み、読み出し、消去などの動作を実行する。
【００３２】
図３は、図１の記憶装置の動作を示している。  
この動作（データ管理方法）は、図１のメモリコントローラ１４により制御される。
【００３３】
まず、メモリソケットにメモリモジュールが取り付けられているか否かを判定する（ステップＳＴ１）。
【００３４】
メモリソケットにメモリモジュールが取り付けられていないときは、データストレージに直接実装された交換不可能な第１の不揮発性半導体メモリを対象にウェアレベリングによるデータ管理を行う（ステップＳＴ２）。
【００３５】
メモリソケットにメモリモジュールが取り付けられているときは、メモリモジュール内の第２の不揮発性半導体メモリに書き換え回数を集中させる。また、データストレージに直接実装された交換不可能な第１の不揮発性半導体メモリを対象にウェアレベリングによるデータ管理を行う（ステップＳＴ３）。
【００３６】
以上のデータ管理方法により、データストレージに直接実装された交換不可能な不揮発性半導体メモリの書き換え回数を減らし、その不揮発性半導体メモリ内に不良ブロックが発生することを抑制する。
【００３７】
一方、メモリモジュール内の不揮発性半導体メモリには書き換え回数が集中し、不良ブロックの発生率が高くなるため、所定の交換条件を満たしたときにメモリモジュールの交換を行う（ステップＳＴ４）。
【００３８】
所定の交換条件は、例えば、メモリモジュール内の不良ブロック数が所定値を超えたときである。不揮発性半導体メモリは、複数のメモリブロックから構成され、１つのメモリブロックは、消去の単位となる。書き換え回数がその上限を超えて正常に書き換えが行えなくなったメモリブロックは、不良ブロックとしてその後の使用が禁止される。不良ブロックか否かは、例えば、フラグにより認識可能であるため、不良ブロック数を検出し、その数が所定値を超えたか否かにより交換時期を示すことができる。
【００３９】
また、所定の交換条件は、例えば、メモリモジュールに対する書き換え回数が所定値を超えたときである。不良ブロック数は、書き換え回数の増加に比例して増える。従って、書き換え回数を交換条件とすることも可能である。
【００４０】
さらに、所定の交換条件は、例えば、メモリモジュール内の全てのブロックが不良となったときとすることもできる。メモリモジュール内の全てのブロックが不良となったときは、そのメモリモジュールを記憶装置（データストレージ）に搭載しておく意味がなくなるため、これを交換条件とすることも可能である。
【００４１】
所定の交換条件を満たしたときは、その旨を示唆する表示を行う（ステップＳＴ５）。
【００４２】
交換表示の方法は、様々であるが、例えば、ディスプレイ上に表示するようにしてもよいし、ＬＥＤなどのランプを点滅させるようにしてもよい。
【００４３】
また、所定の交換条件を満たしたときは、メモリモジュール内のデータを、そのメモリモジュール以外の他のメモリモジュール、又は、データストレージに直接実装された不揮発性半導体メモリに移動し、そこに記憶する（ステップＳＴ５）。
【００４４】
このデータ移動は、所定の交換条件を満たしたときに自動的に行ってもよいし、所定の交換条件を満たした後、メモリモジュールを交換する直前に行ってもよい。後者の場合は、メモリモジュールを交換するときにデータが失われないように、必ず、データ移動を行った後にメモリモジュールを取り外す行為が行われるようにする。
【００４５】
また、データの流出／漏洩を防止するために、メモリモジュールを取り外す前に、メモリモジュール内のデータの全てを消去する動作を行うことが望ましい。仮に、データの消去が行われないままでメモリモジュールが取り外された場合を考慮すると、メモリコントローラとメモリモジュールとの間でのデータ転送は、暗号化処理するのが望ましい。
【００４６】
図４は、メモリモジュールの変形例を示している。図５は、図４のメモリモジュールを備えた記憶装置及び情報処理装置を示している。
【００４７】
この変形例の特徴は、メモリモジュール１３Ａ，１３Ｂが不揮発性半導体メモリＭ９，Ｍ１０，Ｍ１１，Ｍ１２の情報（世代、メモリ容量、SLC/MLCなど）を記憶する手段を有している点にある。この手段は、図４及び図５に示すように、メモリチップ（ＲＯＭチップ）１５Ａ，１５Ｂであってもよいし、これに代えて、不揮発性半導体メモリＭ９，Ｍ１０，Ｍ１１，Ｍ１２内にそのような情報を記憶させる回路を設けてもよい。
【００４８】
また、不揮発性半導体メモリＭ９，Ｍ１０，Ｍ１１，Ｍ１２の情報は、メモリモジュール１３Ａ，１３Ｂに格納されているファームウェアを読み込むことにより判断することも可能である。
【００４９】
不揮発性半導体メモリＭ９，Ｍ１０，Ｍ１１，Ｍ１２の情報は、識別信号として、例えば、メモリチップ１５Ａ，１５Ｂからメモリモジュール１３Ａ，１３Ｂの外部端子の一部を介して読み出される。
【００５０】
即ち、メモリコントローラ１４は、メモリソケット１２Ａ，１２Ｂにメモリモジュール１３Ａ，１３Ｂが取り付けられているときに、それらメモリモジュール１３Ａ，１３Ｂから外部端子１６Ａ，１６Ｂを介して第２の不揮発性半導体メモリＭ９，Ｍ１０，Ｍ１１，Ｍ１２の情報を読み込む。
【００５１】
識別信号とメモリの種類の例を図４の（ｂ）に示す。
【００５２】
4x nm世代SLCとは、設計ルールが40 nm台の2値ＮＡＮＤフラッシュメモリを意味する。同様に、4x nm世代MLCとは、設計ルールが40 nm台の多値ＮＡＮＤフラッシュメモリを意味し、3x nm/2x nm世代MLCとは、設計ルールが30 nm台/20 nm台の多値ＮＡＮＤフラッシュメモリを意味する。
【００５３】
図６は、図４のメモリモジュールが取り付けられた記憶装置の動作を示している。  
この動作（データ管理方法）は、図５のメモリコントローラ１４により制御される。
【００５４】
まず、メモリソケットにメモリモジュールが取り付けられているか否かを判定する（ステップＳＴ１）。
【００５５】
メモリソケットにメモリモジュールが取り付けられているときは、メモリモジュールに実装された第２の不揮発性半導体メモリの情報を読み込む（ステップＳＴ２）。
【００５６】
そして、第２の不揮発性半導体メモリのデータアクセス性能が第１の不揮発性半導体メモリのそれよりも高いときには、第２の不揮発性半導体メモリに高いアクセス頻度を有するデータを優先的に記憶させる（ステップＳＴ３〜ＳＴ４）。
【００５７】
例えば、第２の不揮発性半導体メモリの世代（例えば、3x nm世代）が第１の不揮発性半導体メモリの世代（例えば、4x nm世代）よりも新しいとき、第２の不揮発性半導体メモリのデータアクセス性能は、第１の不揮発性半導体メモリのそれよりも高いと言える。
【００５８】
また、第１及び第２の不揮発性半導体メモリの世代が同じときは、第２の不揮発性半導体メモリがSLCで、第１の不揮発性半導体メモリがMLCであれば、第２の不揮発性半導体メモリのデータアクセス性能は、第１の不揮発性半導体メモリのそれよりも高いと言える。
【００５９】
ここで、高いアクセス頻度を有するデータとは、例えば、現在から過去に遡った一定期間内にホストコントローラからアクセス要求があったデータを意味するものとする。
【００６０】
この変形例によれば、メモリモジュールに実装される不揮発性半導体メモリを、ライトスルー／ライトバックキャッシュとして使用し、データストレージのデータアクセス性能を向上させることが可能になる。
【００６１】
例えば、メモリモジュールに実装される不揮発性半導体メモリをライトスルーキャッシュとして使用する場合、データは、メモリモジュール内の不揮発性半導体メモリ（キャッシュメモリ）に書き込まれると同時に、データストレージに直接実装される不揮発性半導体メモリにも書き込まれる。
【００６２】
また、メモリモジュールに実装される不揮発性半導体メモリをライトバックキャッシュとして使用する場合、データは、メモリモジュール内の不揮発性半導体メモリ（キャッシュメモリ）のみに書き込まれるため、そのデータを消去するときは、消去前にそのデータをデータストレージに直接実装される不揮発性半導体メモリにコピーする。
【００６３】
この変形例によれば、メモリモジュール内の不揮発性半導体メモリの情報に基づいて、メモリモジュール内の不揮発性半導体メモリとデータストレージに直接実装される不揮発性半導体メモリとの間でデータアクセス性能を比較し、データバスのチャネル毎にデータアクセス方法の最適化を行うことができる。
【００６４】
図７は、適用例としてのメモリシステムを示している。
【００６５】
このメモリシステムは、ハイブリッドHDD(Hybrid HDD)システムと呼ばれ、不揮発性半導体メモリ(FLASH)４１をキャッシュメモリとして使用する点に特徴を有する。
【００６６】
不揮発性半導体メモリ４１は、実施形態に係わる記憶装置（例えば、ＳＳＤ）であり、交換可能なメモリモジュールを有する。不揮発性半導体メモリ４１及びハードディスクドライブ(HDD)４２は、バス４３に接続される。ホストコントローラ４４は、不揮発性半導体メモリ４１及びハードディスクドライブ(HDD)４２の動作を制御する。
【００６７】
尚、不揮発性半導体メモリ４１におけるメモリモジュール数や容量などに応じて、不揮発性半導体メモリ４１を、単にキャッシュメモリとして使用するのではなく、ハードディスクドライブ４２と同様に、補助記憶メモリ（HDDとSSDの混載ドライブ）として使用してもよい。
【００６８】
上述の実施形態によれば、大容量データストレージシステムの性能を常に最大に維持することができる。即ち、各メモリブロックの書き換え回数を均等化するのではなく、消耗品として交換可能なメモリモジュールを使用し、そのメモリモジュールに優先的にデータの書き換え回数を集中させる。
【００６９】
これにより、データストレージに直接実装された交換不可能な不揮発性半導体メモリの書き換え回数を低減し、かつ、メモリモジュールが不良となったときはそれを交換することにより、製品寿命の改善と高信頼性とを実現する。
【００７０】
尚、上述の実施形態は、ＳＳＤなどのＮＡＮＤフラッシュメモリを使用する大容量データストレージシステムに適用するのが効果的である。
【００７１】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７２】
１０：  記憶装置、  １１：  モジュール基板、  １２Ａ，１２Ｂ：  メモリソケット、  １３Ａ，１３Ｂ：  メモリモジュール、  １４：  メモリコントローラ、  １５Ａ，１５Ｂ：  メモリチップ、  ２１：  インターフェイス、  ２２：  情報処理装置、  ２３：  ホストコントローラ、  ２４：  メモリ、  ２５：  ＤＭＡコントローラ、  ２６：  ＣＰＵ、  Ｍ１〜Ｍ１２：  不揮発性半導体メモリ。
【図１】
2012118853.tif 000003
【図２】
2012118853.tif 000004
【図３】
2012118853.tif 000005
【図４】
2012118853.tif 000006
【図５】
2012118853.tif 000007
【図６】
2012118853.tif 000008
【図７】
2012118853.tif 000009