(57)【要約】      （修正有）【課題】パフォーマンスの低下の防止に有利なストレージシステム、メモリコントローラ、および制御方法を提供する。【解決手段】ストレージシステム１は、多ビットデータを記憶可能な記憶領域を備える第１不揮発性メモリ１１と、第１不揮発性メモリよりも記憶容量が大きい第２不揮発性メモリ２１と、記憶領域の使用状態に基づいて、記憶領域が記憶するビット数を低減させるように第１不揮発性メモリ１１を制御するメモリコントローラ１２と、を含む。【選択図】図１
2016004387.tif 000002
【特許請求の範囲】
【請求項１】
多ビットデータを記憶可能な記憶領域を備える第１不揮発性メモリと、
前記第１不揮発性メモリよりも記憶容量が大きい第２不揮発性メモリと、
前記記憶領域の使用状態に基づいて、前記記憶領域が記憶するビット数を低減させるように前記第１不揮発性メモリを制御するメモリコントローラと、を具備する
ストレージシステム。
【請求項２】
前記メモリコントローラは、前記記憶領域が記憶するビット数を低減させる際に、ビット数を低減させた前記記憶領域を使用できない領域としないように制御する
請求項１に記載のストレージシステム。
【請求項３】
前記第１不揮発性メモリの書き込みの制限回数が格納される第１メモリを更に具備し、
前記メモリコントローラは、前記記憶領域の書き込み回数が、前記第１メモリに格納された前記制限回数を超えるか否かを判定することで、前記第１不揮発性メモリの使用状態を判定する
請求項１または２に記載のストレージシステム。
【請求項４】
前記第１不揮発性メモリのＥＣＣレベルの制限レベルが格納される第２メモリを更に具備し、
前記メモリコントローラは、前記記憶領域のＥＣＣレベルが、前記第２メモリに格納された前記制限レベルを超えるか否かを判定することで、前記第１不揮発性メモリの使用状態を判定する
請求項１乃至３のいずれかに記載のストレージシステム。
【請求項５】
前記記憶領域は、各々が１ビットデータを記憶可能な複数のメモリセルにより構成されるＳＬＣ領域と、各々が多ビットデータを記憶可能な複数のメモリセルにより構成されるＭＬＣ領域とを備え、
前記メモリコントローラは、前記ＭＬＣ領域の使用状態に基づいて、前記ＭＬＣ領域から前記ＳＬＣ領域に切り替えるように前記第１不揮発性メモリの記憶領域を制御する
請求項１乃至４のいずれかに記載のストレージシステム。
【請求項６】
前記ＳＬＣ領域は、システム領域であり、
前記ＭＬＣ領域は、キャッシュ領域である
請求項５に記載のストレージシステム。
【請求項７】
前記第１不揮発性メモリは、ＮＡＮＤ型フラッシュメモリであり、
前記第２不揮発性メモリは、磁気ディスクである
請求項１乃至６のいずれかに記載のストレージシステム。
【請求項８】
多ビットデータを記憶可能な記憶領域を備える不揮発性メモリとのインターフェースを制御するメモリＩ／Ｆ部と、
前記記憶領域の使用状態に基づいて、前記記憶領域が記憶するビット数を低減させるように前記Ｉ／Ｆ部を介して前記第１不揮発性メモリを制御する制御部と、を具備する
メモリコントローラ。
【請求項９】
記憶領域の使用状態に基づいて、前記記憶領域が記憶するビット数を低減させるように、多ビットデータを記憶可能な前記記憶領域を備える不揮発性メモリを制御する制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、ストレージシステム、メモリコントローラ、および制御方法に関する。
【背景技術】
【０００２】
磁気ディスクおよびＮＡＮＤ型フラッシュメモリの２つの不揮発性メモリを組み合わせたストレージシステム（以下、ハイブリッドドライブと称する。）がある。
【０００３】
磁気ディスクは、アクセス速度は低いが容量単価を低廉にできる。一方、ＮＡＮＤ型フラッシュメモリは、容量単価は高いが高速アクセス可能である。そのため、ハイブリッドドライブは、ハードディスクドライブの容量単価の低廉さとＮＡＮＤ型フラッシュメモリの高速アクセスとのそれぞれの長所を生かすことが可能である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−２０３８６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
パフォーマンスの低下の防止に有利なストレージシステム、メモリコントローラ、および制御方法を提供する。
【課題を解決するための手段】
【０００６】
実施形態によれば、ストレージシステムは、多ビットデータを記憶可能な記憶領域を備える第１不揮発性メモリと、第１不揮発性メモリよりも記憶容量が大きい第２不揮発性メモリと、記憶領域の使用状態に基づいて、記憶領域が記憶するビット数を低減させるように第１不揮発性メモリを制御するメモリコントローラと、を含む。
【図面の簡単な説明】
【０００７】
【図１】第１の実施形態に係るハイブリッドドライブの構成例を示すブロック図。
【図２】図１中のＮＡＮＤメモリにおける記憶領域のフォーマットの一例を示す図。
【図３】ＳＬＣ領域を構成するメモリセル（２値メモリセル）の閾値分布を示す図。
【図４】ＭＬＣ領域を構成するメモリセル（４値メモリセル）の閾値分布を示す図。
【図５】図１中のテーブルＴ１を示す図。
【図６】図１中のテーブルＴ２を示す図。
【図７】第１の実施形態に係るＮＡＮＤメモリのデータ書き込み動作を示すフロー。
【図８】第１の実施形態に係るＮＡＮＤメモリのデータ読み出し動作を示すフロー。
【図９】第１の実施形態に係るＮＡＮＤメモリの記憶領域を示す図であって、（ａ）は初期状態、（ｂ）は所定の使用後の状態を示す。
【図１０】第２の実施形態に係るＮＡＮＤメモリのデータ書き込み動作を示すフロー。
【図１１】第２の実施形態に係るＮＡＮＤメモリのデータ読み出し動作を示すフロー。
【図１２】第２の実施形態に係るＮＡＮＤメモリの記憶領域を示す図であって、（ａ）は初期状態、（ｂ）は所定の使用後の状態を示す。
【発明を実施するための形態】
【０００８】
以下、図面を参照して、発明の実施形態について説明する。この説明においては、全図にわたり共通の部分には共通の参照符号を付す。
【０００９】
（第１の実施形態）  
［１−１．ハイブリッドドライブ（ストレージシステム）の構成］  
まず、図１を用い、第１の実施形態に係るハイブリッドドライブ（ストレージシステム）１の構成について説明する。図１は、第１の実施形態に係るハイブリッドドライブ１の構成例を示すブロック図である。ハイブリッドドライブ１は、例えば、パーソナルコンピュータ、ビデオカメラ、音楽プレーヤー、携帯端末、携帯電話機、タブレット端末、プリンタ装置、録画機、ゲーム機、サーバ等の電子機器に搭載される。
【００１０】
図示するように、ハイブリッドドライブ１は、ＨＤＤに代表され、磁気ディスクを備えるディスクユニット２０に、不揮発半導体メモリを備えるメモリユニット１０を追加した構成である。なお、ハイブリッドドライブ１は、不揮発半導体メモリを備えるメモリユニット１０と、磁気ディスクを備えるディスクユニット２０とから構成されてもよい。
【００１１】
（Ａ）メモリユニット１０について
メモリユニット１０は、ＮＡＮＤ型フラッシュメモリ（以下、ＮＡＮＤメモリと称する）１１と、メモリコントローラ１２とを含む。
【００１２】
ＮＡＮＤメモリ（第１不揮発性メモリ）１１は、ホスト装置によって最近アクセスされたデータを格納するためのキャッシュメモリとして用いられる。そのため、ホスト装置は、ハイブリッドドライブ１を自身のストレージ装置として利用する際に、高速にアクセスすることができる。ＮＡＮＤメモリ１１は、複数のメモリセルが配置されるメモリセルアレイ（図示せず）を備える。各メモリセルは、複数のビット線と複数のワード線との交差位置に配置される。メモリセルアレイは、データを各メモリセルに記憶させることで、記憶領域として構成される。記憶領域は、データ消去単位である複数のブロックから構成され、システム領域とキャッシュ領域とに区分される。この記憶領域の詳細については、後述する。
【００１３】
メモリコントローラ１２は、メインコントローラ２７からのアクセス要求（例えば、ライト要求またはリード要求）に応じて、ＮＡＮＤメモリ１１へのアクセス全体を制御する。メモリコントローラ１２は、ホストインタフェースコントローラ（以下、ホストＩＦと称する）１２１と、メモリインタフェースコントローラ（以下、メモリＩＦと称する）１２２と、マイクロプロセッサユニット（ＭＰＵ）１２３と、フラッシュＲＯＭ（ＦＲＯＭ）１２４と、ランダムアクセスメモリ（ＲＡＭ）１２５とを含む。
【００１４】
ホストＩＦ１２１は、メインコントローラ２７と電気的に接続される。ホストＩＦ１２１は、メインコントローラ２７から転送される信号を受信し、メインコントローラ２７に信号を送信する。具体的には、ホストＩＦ１２１は、メインコントローラ２７から転送されるコマンド（ライトコマンド、リードコマンド等）を受信して、当該受信したコマンドをＭＰＵ１２３に転送する。ホストＩＦ１２１は、メインコントローラ２７から転送されたコマンドに対するＭＰＵ１２３からの応答を、メインコントローラ２７に返信する。このように、ホストＩＦ１２１は、メインコントローラ２７とＭＰＵ１２３との間のデータ転送を制御する。
【００１５】
メモリＩＦ１２２は、ＮＡＮＤメモリ１１と電気的に接続されており、ＭＰＵ１２３の制御に従い、ＮＡＮＤメモリ１１にアクセスする。
【００１６】
ＭＰＵ（制御部）１２３は、メインコントローラ２７から転送されたコマンドに基づいて、ＮＡＮＤメモリ１１へのアクセス処理（例えば、ライト処理またはリード処理）を、所定の制御プログラムに従って実行する。
【００１７】
ＦＲＯＭ１２４は、ＭＰＵ１２３を実行させるための上記所定の制御プログラムを予め格納する。ＲＯＭ１２４は、またテーブルＴ１，Ｔ２を予め格納する。テーブルＴ１，Ｔ２の詳細については、後述する。
【００１８】
ＲＡＭ１２５は、必要なデータを一時的に格納する。ＲＡＭ１２５は、その記憶領域の一部が、ＭＰＵ１２３のワーク領域として用いられる。
【００１９】
（Ｂ）ディスクユニット２０について
ディスクユニット２０は、ディスク２１と、ヘッド２２と、スピンドルモータ（ＳＰＭ）２３と、アクチュエータ２４と、ドライバ集積回路（ＩＣ）２５と、ヘッドＩＣ２６と、メインコントローラ２７と、フラッシュＲＯＭ（ＦＲＯＭ）２８と、ＲＡＭ２９とを含む。
【００２０】
ディスク（第２不揮発性メモリ）２１は、例えばその一方の面に、データが磁気記録される記録面を有する。ディスク２１は、ＳＰＭ２３によって高速に回転する。ＳＰＭ２３は、ドライバＩＣ２５から供給される駆動電流（または駆動電圧）により駆動される。ディスク２１（より詳細には、ディスク２１の記録面）は、例えば同心円状の複数のトラックを備える。なお、ディスク２１が、スパイラル状に配置される複数のトラックを備えていてもよい。
【００２１】
ヘッド（ヘッドスライダ）２２は、ディスク２１の記録面に対応して配置される。ヘッド２２は、アクチュエータ２４のアームから延出したサスペンションの先端に取り付けられる。アクチュエータ２４は、当該アクチュエータ２４の駆動源となるボイスコイルモータ（ＶＣＭ）２４０を有する。ＶＣＭ２４０は、ドライバＩＣ２５から供給される駆動電流により駆動される。ヘッド２２は、アクチュエータ２４がＶＣＭ２４０によって駆動されることにより、ディスク２１上を当該ディスク２１の半径方向に、円弧を描くように移動する。
【００２２】
なお、図１では、単一枚のディスク２１を備えたディスクユニット２０を示している。しかし、ディスク２１が複数枚積層配置されたＨＤＤであっても構わない。また、図１の構成では、ディスク２１は、その一方の面に記録面を備えている。しかし、ディスク２１がその両面に記録面を備え、当該両記録面にそれぞれ対応してヘッドが配置されても構わない。
【００２３】
ドライバＩＣ２５は、メインコントローラ２７の制御に従い、ＳＰＭ２３とＶＣＭ２４０とを駆動する。ドライバＩＣ２５によりＶＣＭ２４０が駆動されることで、ヘッド２２はディスク２１上の目標トラックに位置付けられる。
【００２４】
ヘッドＩＣ２６は、図１ではアクチュエータ２４から離れた箇所に配置されているが、例えばアクチュエータ２４の所定の箇所に固定され、フレキシブル印刷回路基板（ＦＰＣ）を介してメインコントローラ２７と電気的に接続される。ヘッドＩＣ２６は、ヘッド２２のリード素子によりリードされたリード信号を増幅する。ヘッドＩＣ２６は、また、メインコントローラ２７から出力されるライトデータをライト電流に変換して、当該ライト電流をヘッド２２のライト素子に出力する。
【００２５】
メインコントローラ２７は、例えば、複数の要素が単一チップに集積された大規模集積回路（ＬＳＩ）によって実現される。メインコントローラ２７は、リード／ライト（Ｒ／Ｗ）チャネル２７１と、ハードディスクコントローラ（ＨＤＣ）２７２と、ＭＰＵ２７３とを含む。
【００２６】
Ｒ／Ｗチャネル２７１は、リード／ライトに関連する信号を処理する。即ち、Ｒ／Ｗチャネル２７１は、ヘッドＩＣ２６によって増幅されたリード信号をデジタルデータに変換し、このデジタルデータからリードデータを復号する。Ｒ／Ｗチャネル２７１はまた、ＭＰＵ２７３を介してＨＤＣ２７２から転送されるライトデータを符号化し、この符号化されたライトデータをヘッドＩＣ２６に転送する。
【００２７】
ＨＤＣ２７２は、ホストインタフェース（ストレージインタフェース）３０を介してホホスト装置と電気的に接続される。ＨＤＣ２７２は、ホスト装置から転送される信号を受信し、ホスト装置に信号を転送するホストインタフェースコントローラとして機能する。具体的には、ＨＤＣ２７２は、ホストから転送されるコマンド（ライトコマンド、リードコマンド等）を受信して、当該受信されたコマンドをＭＰＵ２７３に渡す。ＨＤＣ２７２は、ホストと当該ＨＤＣ２７２との間のデータ転送を制御する。ＨＤＣ２７２は、ＭＰＵ２７３、Ｒ／Ｗチャネル２７１、ヘッドＩＣ２６およびヘッド２２を介して、ディスク２１へのライトおよびディスク２１からのリードを制御するディスクインタフェースコントローラとしても機能する。
【００２８】
ＭＰＵ２７３は、ホスト装置からのアクセス要求（ライト要求またはリード要求）に応じて、メモリコントローラ１２を介したＮＡＮＤメモリ１１へのアクセスと、Ｒ／Ｗチャネル２７１、ヘッドＩＣ２６、及びヘッド２２を介したディスク２１へのアクセスとを制御する。この制御は、ＦＲＯＭ２８に格納される所定の制御プログラムにより実行される。ＲＡＭ２９の記憶領域の一部は、ＭＰＵ２７３のワーク領域として用いられる。
【００２９】
なお、本実施形態に係るハイブリッドドライブ１は、ＮＡＮＤメモリ１１と、ディスク２１との２つの不揮発性メモリを一例に挙げた。しかし、ハイブリッドドライブ１は、これに限られず、アクセス速度や記憶容量が異なる複数種類の不揮発性メモリにより構成されていればよい。
【００３０】
［１−２．ＮＡＮＤメモリ］  
次に、図２乃至図４を用いて、図１に示したＮＡＮＤメモリ１１について説明する。
【００３１】
（Ａ）記憶領域について
図２は、ＮＡＮＤメモリ１１における記憶領域のフォーマットの一例を示す図である。図示するように、ＮＡＮＤメモリ１１の記憶領域は、Ｍ個の物理ブロックから構成される。ＮＡＮＤメモリ１１では、このブロックを単位にデータが一括して消去される。つまりブロックは、データ消去単位である。Ｍ個のブロックは、システム領域１１１とキャッシュ領域１１２とに区分してフォーマットされる。
【００３２】
システム領域１１１は、物理ブロックアドレスＰＢＡが０乃至Ｎ−１であるＮ個（Ｎ＜Ｍ）の物理ブロックから構成され、システム（例えば、メモリコントローラ１２）が管理するために必要な管理情報を格納する。本実施形態では、システム領域１１１は、ＳＬＣ（Single Level Cell）領域である。ここで、ＳＬＣ領域とは、各々が１ビットデータを記憶可能な複数のメモリセルにより構成される記憶領域をいう。また、システム領域１１１は、キャッシュ管理テーブル１１１ａ、バッドブロックリスト１１１ｂ等を格納する。
【００３３】
キャッシュ管理テーブル１１１ａは、キャッシュ領域１１２内の各ブロックを管理するブロック管理情報のために用いられる。ブロック管理情報は、キャッシュ領域１１２内のブロック（予め定められたサイズの領域）各々に格納されたデータのアドレス（記憶場所）に関するキャッシュディレクトリ情報として用いられる。キャッシュディレクトリ情報は、データが格納されたブロックの物理ブロックアドレスＰＢＡと当該データの論理アドレスとの対応を管理するための情報を含む。物理ブロックアドレスＰＢＡは、当該データが格納されているＮＡＮＤメモリ１１内のブロックの位置を示す。論理アドレスは、当該データの論理アドレス空間内の位置を示す。
【００３４】
バッドブロックリスト１１１ｂは、使用不可能とされたブロックであるバッドブロックを登録するために用いられる。
【００３５】
キャッシュ領域１１２は、物理ブロックアドレスＰＢＡがＮ乃至Ｍ−１であるＭ−Ｎ個の物理ブロックから構成され、ホスト装置によってアクセスされたデータを格納するために用いられる。キャッシュ領域１１２には最新アクセスデータとアクセス頻度の高いデータとが格納される。このように、アクセス頻度の高いデータを格納することで、パフォーマンスを向上させることができる。本実施形態では、キャッシュ領域１１２は、ＭＬＣ（Multi Level Cell）領域である。ここで、ＭＬＣ領域とは、各々が多ビットデータを記憶可能な複数のメモリセルにより構成される記憶領域をいう。なお、一般に、Ｍは、Ｎに対して十分に大きい。
【００３６】
また、ＮＡＮＤメモリ１１の記憶領域は、データが既に格納されている領域に、新たな更新データを上書きすることはできない。このため、キャッシュ管理テーブル１１１ａのシステム領域１１１内の位置は、当該テーブル１１１ａが更新されるごとに変更される。これは、バッドブロックリスト１１１ｂのシステム領域１１１内の位置についても同様である。なお、システム領域１１１とキャッシュ領域１１２との物理ブロックアドレスＰＢＡの並びは、図示する通りでなくてもよい。例えば、システム領域１１１のほうがキャッシュ領域１１２の後でもよいし、システム領域１１１がキャッシュ領域１１２の間に配置されていてもよい。
【００３７】
（Ｂ）ＳＬＣ領域について
図３を用い、ＳＬＣ領域１１１について説明する。図３は、ＳＬＣ領域１１１を構成するメモリセル（２値メモリセル）の閾値電圧の分布（閾値分布）を示す図である。
【００３８】
図示するように、ＳＬＣ領域１１１を構成するメモリセルの閾値分布（Vth分布）は、メモリセルにデータを記録した後において、図示するような’１’、’０’の分布を示す。ここでは、消去状態に’１’を割り当て、書き込み状態に’０’を割り当てている。
【００３９】
データ読み出しの際には、’０’分布と’１’分布との中間に読み出し電圧TH0を設定することで、各メモリセルがいずれのデータを保持しているかを判別する。具体的には、メモリセルの制御ゲートに読み出し電圧TH0を印加した際に、メモリセルＭＣがオン状態となれば’１’と判別し、メモリセルがオフ状態のままであれば’０’と判別する。
【００４０】
このように、ＳＬＣ領域１１１は、ＭＬＣ領域１１２と比較して、記録容量は小さいが、データ保持能力が高い。そのため、ＳＬＣ領域１１１は、許容される書き換え回数（以降では、書き込みの制限回数、又は、制限回数、と称する）が多く、メモリセルの寿命が長い。そこで、本実施形態に係るハイブリッドドライブ１では、信頼性確保が必要なデータはシステム領域であるＳＬＣ領域１１１に記憶させる。
【００４１】
（Ｃ）ＭＬＣ領域について
次に、図４を用い、ＭＬＣ領域１１２について説明する。図４は、ＭＬＣ領域１１２を構成するメモリセル（多値メモリセル）の閾値電圧の分布（閾値分布）を示す図である。
【００４２】
図示するように、ＭＬＣ領域１１２を構成する多値メモリセルは、書き込み状態における浮遊ゲートへの電子の注入量をより細かく制御することで、１個のメモリセルに２ビットを保持する場合には４つの閾値分布を形成する。そのため、本実施形態における多値メモリセルは、４値メモリセルである。なお、４値に限られず、例えば１個のメモリセルが３ビットを保持する場合は、８つの閾値分布を同様に形成する。
【００４３】
図４に示す４値メモリセルの４つの閾値分布（Vth分布）に対して、閾値電圧の低い方から順に、’１１’、’０１’、’００’、’１０’を割り当てる。なお、４つの閾値分布を閾値電圧の低い方から順に’Ｅ’レベル、’Ａ’レベル、’Ｂ’レベル、’Ｃ’レベルと称する場合もある。
【００４４】
データ読み出しの際には、各分布の中間において、読み出しの電圧TH1，TH2，TH3を設定することで、各メモリセルが’１１’、’０１’、’００’、’１０’のいずれのデータを保持しているかを判別する。
【００４５】
このように、ＭＬＣ領域１１２は、ＳＬＣ領域１１１と比較して、記憶容量は増大（本実施形態では、倍増）するが、データ保持能力が低い。そのため、ＭＬＣ領域１１２は、制限回数が少なく、メモリセルの寿命が短い。そこで、本実施形態に係るハイブリッドドライブ１では、信頼性が比較的必要とされないリードキャッシュとしてのデータは、キャッシュ領域であるＭＬＣ領域１１２に記憶させる。
【００４６】
［１−３．テーブルＴ１、Ｔ２］  
次に、図５および図６を用い、テーブルＴ１、Ｔ２について説明する。  
図５は、図１中のＲＯＭ１２４に格納されるテーブルＴ１を示す図である。図示するように、テーブルＴ１には、ＭＬＣ領域１１２の書き込みの制限回数ＷＮを含む書き換え回数（０，１，２，３， ，，，ＷＺ）が物理ブロックアドレス（ＰＢ０，ＰＢ１，ＰＢ２， ，，，）と対応付けて表される。ここで、本実施形態において、制限回数ＷＮは、最大書き換え回数ＷＺの例えば６０％〜８０％程度である。なお、制限回数ＷＮは、使用するＮＡＮＤメモリ１１毎に評価して設定するのが望ましい。また、制限回数ＷＮは、最大書き換え回数ＷＺから所定のマージンをもって設定される。
【００４７】
図６は、図１中のＲＯＭ１２４に格納されるテーブルＴ２を示す図である。図示するように、テーブルＴ２には、ＭＬＣ領域１１２の制限レベルＬＮを含むＥＣＣ（Error Correcting Code）レベル（Ｌ０，Ｌ１，Ｌ２，Ｌ３， ，，，ＬＺ）が物理ブロックアドレス（ＰＢ０，ＰＢ１，ＰＢ２， ，，，）と対応付けて表される。ここで、本実施形態において、例えば、最大訂正ビット長が８０ｂｉｔ程度の場合、制限レベルＬＮを６０ｂｉｔ程度とすることが望ましい。上記と同様に、制限レベルＬＮは、最大ＥＣＣレベルＬＺから所定のマージンをもって設定されるからである。
【００４８】
なお、本実施形態に係るテーブルＴ１，Ｔ２には、書き換え回数等と物理ブロックアドレスとが対応付けて表されているが、これに限られない。例えば、所定のテーブルにおいて、書き換え回数等とページアドレスとが対応付けて表されていてもよい。さらに、テーブル形式に限られず、例えば、所定の関数等をＦＲＯＭ１２４に格納してもよいことは勿論である。
【００４９】
［２−１．データ書き込み動作］  
上記説明した構成において、図７を用い、第１の実施形態に係るＮＡＮＤメモリ１１へのデータ書き込み動作について説明する。図７は、第１の実施形態に係るＮＡＮＤメモリ１１へのデータ書き込み動作を示すフローである。
【００５０】
図７に示すように、まず、ブロックＢ１１において、メモリコントローラ１２は、ホスト装置からのデータ書き込み指示（ライト要求）を受ける。具体的には、メモリコントローラ１２は、ホスト装置から、データ書き込み指示としてのライトコマンド、書き込みデータ、およびアドレスを受ける。
【００５１】
ブロックＢ１２において、メモリコントローラ１２は、受信したデータ書き込み指示が、ＭＬＣ書き込みか否かを判定する。
【００５２】
ブロックＢ１３において、ブロックＢ１２でＭＬＣ書き込みでないと判定する場合（Ｎｏ）、メモリコントローラ１２は、受信した書き込みデータをＳＬＣ領域１１１に書き込む。
【００５３】
ブロックＢ１４において、ブロックＢ１２でＭＬＣ書き込みであると判定する場合（Ｙｅｓ）、メモリコントローラ１２は、受信した書き込みデータをＭＬＣ領域１１２に書き込む。
【００５４】
ブロックＢ１５において、メモリコントローラ１２は、ＭＬＣ領域１１２にデータを書き込んだ回数（書き換え回数）を１回分インクリメント（＋１）する。
【００５５】
ブロックＢ１６において、メモリコントローラ１２は、テーブルＴ１を参照し、上記書き換え回数をインクリメントしたＭＬＣ領域１１２の書き換え回数が、制限回数ＷＮを超えるか否かを判定する。
【００５６】
このブロックＢ１６を行うことで、ＮＡＮＤメモリ１１のＭＬＣ領域１１２の使用状態を判定することができる。換言すれば、ＮＡＮＤメモリ１１のＭＬＣ領域１１２の疲弊度により、ＭＬＣ領域１１２として使用可能か否かを判定する。即ち、ブロックＢ１６で書き換え回数が制限回数ＷＮを超えないと判定される場合（Ｎｏ）では、ＭＬＣ領域１１２の疲弊度がまだ低く、ＭＬＣ領域１１２として使用可能であると判定し、この動作を終了する。
【００５７】
一方、ブロックＢ１７において、ブロックＢ１６で書き換え回数が制限回数ＷＮを超えると判定する場合（Ｙｅｓ）、メモリコントローラ１２は、当該ＭＬＣ領域１１２をＳＬＣ領域１１１Ａに切り替える。具体的には、メモリコントローラ１２は、書き換え回数が制限回数ＷＮを超え、物理ブロックアドレスＰＢＮのＭＬＣ領域１１２の疲弊度が高いと判定した場合であっても、当該ＭＬＣ領域１１２のブロックについて、バッドブロックリスト１１１ｂにバッドブロック登録を行わない。そして、ＭＬＣ領域１１２の物理ブロックアドレスＰＢＮのブロックについては、メモリセルのデータ保持能力がＭＬＣ領域１１２として不十分と判断し、ＳＬＣ領域１１１Ａに切り替えて使用を継続する。上記制御は、例えば、メモリコントローラ１２のファームウェア（ＦＷ）が行う。
【００５８】
このように、ＭＬＣ領域１１２としては使用できないと判定されるブロックであっても、ＭＬＣ領域１１２からＳＬＣ領域１１１Ａに切り替えて使用を継続することで、バッドブロック登録により失う容量を低減させることができる。そのため、ＮＡＮＤメモリ１１をより長期間有効に使用することができ、ハイブリッドドライブ１のパフォーマンスの低下を防止することが可能となる。
【００５９】
［２−２．データ読み出し動作］  
次に、図８を用い、第１の実施形態に係るＮＡＮＤメモリ１１からのデータ読み出し動作について説明する。図８は、第１の実施形態に係るＮＡＮＤメモリ１１からのデータ読み出し動作を示すフローである。
【００６０】
図８に示すように、まず、ブロックＢ２１において、メモリコントローラ１２は、ホスト装置からのデータ読み出し指示（リード要求）を受ける。より具体的には、メモリコントローラ１２は、ホスト装置から、データ読み出し指示としてのリードコマンドおよびアドレスを受ける。
【００６１】
ブロックＢ２２において、メモリコントローラ１２は、受信したデータ読み出し指示が、ＭＬＣ領域１１２からの読み出しか否かを判定する。
【００６２】
ブロックＢ２３において、ブロックＢ２２でＭＬＣ領域１１２からの読み出しでないと判定する場合（Ｎｏ）、メモリコントローラ１２は、ＳＬＣ領域１１１から指示に係るデータを読み出し、この動作を終了する。
【００６３】
ブロックＢ２４において、ブロックＢ２２でＭＬＣ領域１１２からの読み出しであると判定する場合（Ｙｅｓ）、メモリコントローラ１２は、ＭＬＣ領域１１２から指示に係るデータを読み出す。
【００６４】
ブロックＢ２５において、メモリコントローラ１２は、テーブルＴ２を参照し、ＭＬＣ領域１１２から読み出したデータ（ページデータ）のＥＣＣレベルが、制限レベルＬＮを超えるか否かを判定する。具体的には、メモリコントローラ１２は、ＭＬＣ領域１１２から読み出したページデータの各セクタ単位で付与されるＥＣＣレベル（エラービット長）が、所定の制限レベルＬＮを超えるか否かを判定する。例えば、制限レベルＬＮを６０ｂｉｔとする場合、メモリコントローラ１２は、データ読み出しの際に使用したＥＣＣレベルのエラービット長が、６０ｂｉｔを超えるか否かを判定する。
【００６５】
このブロックＢ２５を行うことで、上記Ｓ１６と同様に、ＮＡＮＤメモリ１１のＭＬＣ領域１１２の使用状態を判定することができる。即ち、ブロックＢ２５でＥＣＣレベルが制限レベルＬＮを超えないと判定する場合（Ｎｏ）、ＭＬＣ領域１１２の疲弊度がまだ低く、ＭＬＣ領域１１２として使用可能であると判定し、この動作を終了する。
【００６６】
一方、ブロックＢ２６において、ブロックＢ２５でＥＣＣレベルが制限レベルＬＮを超えると判定する場合（Ｙｅｓ）、メモリコントローラ１２は、当該ＭＬＣ領域１１２をＳＬＣ領域１１１Ａに切り替える。具体的には、メモリコントローラ１２は、ＥＣＣレベルが制限レベルＬＮを超え、当該ＭＬＣ領域１１２の疲弊度が高いと判定した場合であっても、当該ＭＬＣ領域１１２のブロックについて、バッドブロックリスト１１１ｂにバッドブロック登録を行わない。そして、当該ＭＬＣ領域１１２のブロックについては、メモリセルのデータ保持能力がＭＬＣ領域１１２として不十分と判断し、ＳＬＣ領域１１１Ａに切り替えて使用を継続する。上記制御は、例えば、メモリコントローラ１２のファームウェア（ＦＷ）が行う。
【００６７】
このように、データ読み出し動作の際においても、同様に、ＭＬＣ領域１１２の使用状況を判定し、ＭＬＣ領域１１２からＳＬＣ領域１１１Ａに切り替えて使用を継続することで、バッドブロック登録により失う容量を低減させることができる。そのため、ＮＡＮＤメモリ１１をより長期間有効に使用することができ、ハイブリッドドライブ１のパフォーマンスの低下を防止することが可能となる。
【００６８】
［３．作用効果］
以上説明したように、第１の実施形態に係る構成および動作によれば、少なくとも下記（１）の効果が得られる。
【００６９】
（１）ＮＡＮＤメモリ１１をより長期間有効に使用することができ、ハイブリッドドライブ１のパフォーマンスの低下を防止することができる。
【００７０】
ここで、作用効果の説明に関しては、比較例と図９で示す第１の実施形態とを対比して、説明する。
【００７１】
まず、比較例に係るＮＡＮＤメモリの記憶領域は、単に物理的にシステム領域としてのＳＬＣ領域とキャッシュ領域としてのＭＬＣ領域とに分けて管理しているにすぎない。そのため、所定時間が経過した使用後の状態では、ある物理ブロックアドレスのＭＬＣ領域のブロックについて、ＭＬＣ領域として不十分であると判断されると、当該ブロックがバッドブロック登録される。その結果、メモリセルの寿命により、使用できないとされたバッドブロック領域が時間経過に伴って増大し、ＮＡＮＤメモリを有効に使用することができず、ハイブリッドドライブのパフォーマンスが低下するという傾向がある。
【００７２】
加えて、この傾向は、ＮＡＮＤメモリの世代の進行に伴って、より顕著となる。つまり、ＮＡＮＤメモリの世代が進行すると、メモリセルの微細化により、前世代と同じ回数のデータ書き込みやデータ読み出しを行った場合でも、ＮＡＮＤメモリの疲弊が急速に進む。そのため、ＮＡＮＤメモリの制限回数やＥＣＣレベルの制限レベルに早々に達する。その結果、使用できない領域であるバッドブロック領域が急速に増加し、記憶領域の容量低下により、ハイブリッドドライブのパフォーマンスがより急速に低下する。
【００７３】
これに対して、第１の実施形態では、データ書き込み動作において、メモリコントローラ１２は、書き換え回数が制限回数ＷＮを超えると判定する場合、当該ＭＬＣ領域１１２のブロックについてバッドブロック登録を行わず、当該ＭＬＣ領域１１２をＳＬＣ領域１１１Ａに切り替える（図7のＢ１７）。換言すれば、メモリコントローラ１２は、記憶領域の使用状態に基づいて、記憶領域が記憶するビット数が低減するようにＮＡＮＤメモリ１１を制御する。
【００７４】
さらに、データ読み出し動作においても、メモリコントローラ１２は、ＥＣＣレベルが制限レベルＬＮを超えると判定する場合、当該ＭＬＣ領域１１２についてバッドブロック登録を行わず、当該ＭＬＣ領域１１２をＳＬＣ領域１１１Ａに切り替える（図８のＢ２６）。
【００７５】
そのため、第１の実施形態に係るＮＡＮＤメモリ１１の記憶領域は、例えば、図９のように示される。図９で示すように、第１の実施形態では、（ｂ）所定の使用後の状態の物理ブロックアドレスＢ乃至Ｍ−１のＭＬＣ領域１１２のブロックについて、バッドブロック登録を行わない。さらに、当該ＭＬＣ領域１１２であったブロックをＳＬＣ領域１１１Ａに切り替える。その結果、メモリセルの寿命を実質的に延命させて、ＮＡＮＤメモリ１１を長期間有効に使用することができ、ハイブリッドドライブ１のパフォーマンスの低下を防止することができる点で有利である。
【００７６】
換言すれば、ＮＡＮＤメモリ１１の使用状況に応じて、ＳＬＣ領域１１１とＭＬＣ領域１１２とをアダプティブに切り替えて使用することで、ＮＡＮＤメモリ１１の構造に依存した早期疲弊によるＮＡＮＤメモリ１１の容量低下を抑制できる。そのため、ＮＡＮＤメモリ１１の使用可能期間を最大化でき、ハイブリッドドライブ１のパフォーマンス維持期間を最大化できる。
【００７７】
なお、第１の実施形態に係るハイブリッドドライブ１のように、ＮＡＮＤメモリ１１をキャシュメモリとして使用する場合、基本的には磁気ディスク２１に全データが記録されている。そのため、疲弊したと判断されたＭＬＣ領域１１２のブロックに要求される信頼性は、ＳＬＣ領域１１１に比較して高くない。また、ＭＬＣ領域１１２をＳＬＣ領域１１１Ａに切り替えることで、ＮＡＮＤメモリ１１の容量が減少しても、ホスト装置に対する記録装置としてのストレージ容量には影響しないため、問題とはならない。このように、第１の実施形態は、ハイブリットドライブ１において実施する上でより有効である。
【００７８】
（第２の実施形態）  
次に、第２の実施形態に係るハイブリッドドライブについて説明する。この説明において、上記第１の実施形態と重複する部分の詳細な説明を省略する。
【００７９】
［ＮＡＮＤメモリの記憶領域］
第２の実施形態では、ＮＡＮＤメモリ１１の記憶領域のおけるキャッシュ領域が、初期状態において、ＭＬＣ領域（８値）１１２Ａとしてフォーマットされる点で、第１の実施形態と相違する。
【００８０】
［データ書き込み動作］
次に、図１０を用い、第２の実施形態に係るＮＡＮＤメモリ１１のデータ書き込み動作について説明する。図１０に示すように、第２の実施形態に係るデータ書き込み動作は、以下の点で、第１の実施形態と相違する。
【００８１】
まず、ブロックＢ１２Ａにおいて、メモリコントローラ１２は、受信したデータ書き込み指示が、ＭＬＣ（８値）書き込みか否かを判定する。
【００８２】
ブロックＢ１４Ａにおいて、ブロックＢ１２ＡでＭＬＣ（８値）書き込みであると判定する場合（Ｙｅｓ）、メモリコントローラ１２は、受信した書き込みデータをＭＬＣ領域（８値）１１２Ａに書き込む。
【００８３】
ブロックＢ１７Ａにおいて、ブロックＢ１６で書き換え回数が制限回数ＷＮを超えると判定する場合（Ｙｅｓ）、メモリコントローラ１２は、当該ＭＬＣ領域（８値）１１２ＡをＭＬＣ領域（４値）１１２に切り替える。具体的には、メモリコントローラ１２は、書き換え回数が制限回数ＷＮを超え、当該ＭＬＣ領域（８値）１１２Ａの疲弊度が高いと判定した場合であっても、当該ＭＬＣ領域（８値）１１２Ａのブロックについて、バッドブロックリスト１１１ｂにバッドブロック登録を行わない。そして、当該ＭＬＣ領域（８値）１１２Ａのブロックについては、メモリセルのデータ保持能力がＭＬＣ領域（８値）１１２Ａとして不十分と判断され、ＭＬＣ領域（４値）１１２に切り替えられて使用を継続する。
【００８４】
［データ読み出し動作］
次に、図１１を用い、第２の実施形態に係るＮＡＮＤメモリ１１のデータ読み出し動作について説明する。図１１に示すように、第２の実施形態に係るデータ読み出し動作は、以下の点で、第１の実施形態と相違する。
【００８５】
ブロックＢ２２Ａにおいて、メモリコントローラ１２は、受信したデータ読み出し指示が、ＭＬＣ領域（８値）１１２Ａからの読み出しか否かを判定する。
【００８６】
ブロックＢ２４Ａにおいて、ブロックＢ２２ＡでＭＬＣ領域（８値）１１２Ａからの読み出しであると判定する場合（Ｙｅｓ）、メモリコントローラ１２は、ＭＬＣ領域（８値）１１２Ａから指示に係るデータを読み出す。
【００８７】
ブロックＢ２６Ａにおいて、ブロックＢ２５でＥＣＣレベルが制限レベルＬＮを超えると判定する場合（Ｙｅｓ）、メモリコントローラ１２は、当該ＭＬＣ領域（８値）１１２ＡをＭＬＣ領域（４値）１１２に切り替える。
【００８８】
［作用効果］
以上説明したように、第２の実施形態に係るハイブリッドドライブ１の構成および動作によれば、少なくとも上記（１）と同様の効果が得られる。
【００８９】
さらに、第２の実施形態によれば、メモリコントローラ１２は、データ書き込み動作およびデータ読み出し動作において、ＭＬＣ領域（８値）１１２ＡをＭＬＣ領域（４値）１１１に切り替える（図１０のＢ１７Ａ、図１１のＢ２６Ａ）。
【００９０】
そのため、例えば、図１２の（ｂ）所定の使用後の状態の記憶領域に示すように、物理ブロックアドレスＢ乃至Ｍ−１のＭＬＣ領域（８値）１１２Ａのブロックについて、バッドブロック登録が行われない。そして、当該ＭＬＣ領域（８値）１１２ＡであったブロックがＭＬＣ領域（４値）１１２に切り替えられる。その結果、メモリセルの寿命を実質的に延命させ、ＮＡＮＤメモリ１１をより長期間有効に使用することができ、ハイブリッドドライブ１のパフォーマンスの低下をさらに防止することができる点で有利である。
【００９１】
（変形例）
上記第２の実施形態においては、ＭＬＣ領域（８値）１１２ＡからＭＬＣ領域（４値）１１２に切り替える場合を一例に示したが、これに限られない。例えば、必要に応じて、ＭＬＣ領域（８値）１１２ＡからＳＬＣ領域（２値）１１１Ａに切り替えることも同様に可能である。
【００９２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００９３】
１…ハイブリッドドライブ（ストレージシステム）、１１…ＮＡＮＤメモリ（第１不揮発性メモリ）、１２…メモリコントローラ、２１…磁気ディスク（第２不揮発性メモリ）、Ｔ１，Ｔ２…テーブル、１１１，１１１Ａ…ＳＬＣ領域、１１２，１１２Ａ…ＭＬＣ領域、１２２…メモリＩ／Ｆ部、１２３…ＭＰＵ（制御部）
【図１】
2016004387.tif 000003
【図２】
2016004387.tif 000004
【図３】
2016004387.tif 000005
【図４】
2016004387.tif 000006
【図５】
2016004387.tif 000007
【図６】
2016004387.tif 000008
【図７】
2016004387.tif 000009
【図８】
2016004387.tif 000010
【図９】
2016004387.tif 000011
【図１０】
2016004387.tif 000012
【図１１】
2016004387.tif 000013
【図１２】
2016004387.tif 000014