(57)【特許請求の範囲】
【請求項１】
記憶領域が複数のブロックに分割され、前記ブロックのそれぞれがさらに複数のページに分割される不揮発性メモリを備え、
消去回数の管理が、前記ページ毎に行われ、
論理アドレスから物理アドレスへのアドレス変換が、前記ブロック毎に行われ、
前記論理アドレスを指定する際には、前記アドレス変換の対象となる論理ブロック番号と、前記ページを指定する剰余番号を含む論理アドレス情報を用い、
前記ブロック内で消去回数の平準化を行うために、前記剰余番号で指定されたページに対してオフセットを付与するオフセットページ数を用いることを特徴とする半導体ストレージ。
【請求項２】
請求項１記載の半導体ストレージにおいて、
アドレス変換に用いる情報のデータサイズが消去回数の管理に用いる情報のデータサイズよりも小さいことを特徴とする半導体ストレージ。
【請求項３】
請求項１記載の半導体ストレージにおいて、
アドレス変換テーブルへのライト回数よりも消去回数テーブルへのライト回数が多いことを特徴とする半導体ストレージ。
【請求項４】
請求項１記載の半導体ストレージにおいて、
前記アドレス変換を行うために、前記論理ブロック番号と前記ブロックを特定する物理ブロック番号の対応を記憶したアドレス変換テーブルを備え、前記アドレス変換テーブルは、前記物理ブロック番号に対応して、前記オフセットページ数を記憶することを特徴とする半導体ストレージ。
【請求項５】
請求項４記載の半導体ストレージにおいて、
前記ブロック内の最大ページ消去回数と最小ページ消去回数を比較し、その差が一定以上になったときに前記オフセットページ数の変更を実施することを特徴とする半導体ストレージ。
【請求項６】
請求項１記載の半導体ストレージにおいて、
前記ページのそれぞれは、主領域と予備領域とを有し、
前記ページの前記主領域へデータを書き込む際に、そのページの前記予備領域にそのページの前記消去回数が書き込まれることを特徴とする半導体ストレージ。
【請求項７】
請求項１記載の半導体ストレージにおいて、更に、
前記不揮発性メモリの予備領域に前記消去回数が記録されていることを特徴とする半導体ストレージ。
【請求項８】
請求項１記載の半導体ストレージにおいて、
前記ページが消去された場合に、前記消去回数を記憶するために用いる値を、１より小さい一定の確率で１増加させることを特徴とする半導体ストレージ。
【請求項９】
請求項１記載の半導体ストレージにおいて、
ストレージ制御装置またはサーバが、前記アドレス変換を行うことを特徴とする半導体ストレージ。
【請求項１０】
請求項１記載の半導体ストレージにおいて、
前記不揮発性メモリが、相変化メモリまたはＲｅＲＡＭであることを特徴とする半導体ストレージ。
【請求項１１】
請求項１記載の半導体ストレージにおいて、
前記ブロック単位が６４ＫＢ以上であることを特徴とする半導体ストレージ。
【請求項１２】
請求項１の半導体ストレージを備えるストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体ストレージに関する。より具体的には、特に抵抗値の差を利用して情報を記憶し、電気的に書き換え可能なメモリセルを含む半導体ストレージに関する。
【背景技術】
【０００２】
半導体ストレージ（以下、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ））は、ハードディスク代替の記憶装置や、デジタルカメラ、携帯型音楽プレーヤ、などとして幅広く用いられるようになっている。メモリ装置の容量は年々増加しているが、一方、デジタルカメラの高画素化、携帯型音楽プレーヤの高音質化や動画対応、放送通信融合によるストレージで取り扱うデータ量の増加などにより、記憶装置のさらなる大容量化が求められている。【０００３】
ＳＳＤは、不揮発性メモリと、ＳＳＤコントローラを持ち、さらに、ＤＲＡＭを持つこともある。一般に、不揮発性メモリの書き換え回数には一定回数の制限があるために、ＳＳＤは、書き込みを不揮発性メモリ全体に分散させる動作（ウェアレベリング）を行う。ウェアレベリングを行うために、ホストがＳＳＤに指定するアドレス（以下、論理アドレスとする）をＳＳＤコントローラがアドレス変換し、フラッシュメモリに論理アドレスとは異なるアドレス（以下、物理アドレスとする）でアクセスする。論理アドレスから物理アドレスへの変換をアドレス変換テーブルを用いて行う方法が、非特許文献１に述べられている。【０００４】
また、不揮発性メモリについて、積層ゲート構造を有するＮＡＮＤ型フラッシュメモリが現在、主に用いられている。ＮＡＮＤ型フラッシュメモリは、前記積層ゲート構造に電荷を蓄積し、蓄積された電荷量を‘０’と‘１’に対応させることで情報を記憶するメモリである。【０００５】
その他の不揮発性メモリとして、相変化材料を記憶部として用いる相変化メモリが、特許文献１に記載されている。相変化材料には電気抵抗が高い相と電気抵抗が低い相の２つの準安定な状態があり、この抵抗の違いを‘０’と‘１’に対応させることで情報を記憶する。さらに、金属酸化物を用いた記憶部を持つＲｅＲＡＭが、非特許文献２に記されている。ＲｅＲＡＭは、電圧の印可による電気抵抗の変化を用いて情報を記憶するメモリである。【０００６】
さらに、磁性材料を用いた記憶部を持つスピン注入型ＭＲＡＭが非特許文献３に記されている。ＭＲＡＭは、電流を流すことで磁化の方向を反転し、記憶部の抵抗が変化することを用いて情報を記憶するメモリである。【０００７】
特許文献２には、相変化メモリ等を含んだメモリ使用効率の向上が実現可能な半導体装置が記載されている。【０００８】
上記のメモリはいずれも、書き換え回数が有限である。また、相変化メモリ、ＲｅＲＡＭおよびスピン注入型ＭＲＡＭは、ＮＡＮＤ型フラッシュメモリに比べて消去の単位が小さい、もしくは小さくできるメモリである。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】ＷＯ２０１１／０７４５４５
【特許文献２】ＷＯ２０１０／０３８７３６
【非特許文献】
【００１０】
【非特許文献１】“Ｗｒｉｔｅ  ａｍｐｌｉｆｉｃａｔｉｏｎ  ａｎａｌｙｓｉｓ  ｉｎ  ｆｌａｓｈ−ｂａｓｅｄ  ｓｏｌｉｄ  ｓｔａｔｅ  ｄｒｉｖｅｓ”、  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  Ｔｈｅ  Ｉｓｒａｅｌｉ  Ｅｘｐｅｒｉｍｅｎｔａｌ  Ｓｙｓｔｅｍｓ  Ｃｏｎｆｅｒｅｎｃｅ  （ＳＹＳＴＯＲ）  （２００９）、  ｐｐ．１−９
【非特許文献２】“Ｎｏｖｅｌ  ｃｏｌｏｓｓａｌ  ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ  ｔｈｉｎ  ｆｉｌｍ  ｎｏｎｖｏｌａｔｉｌｅ  ｒｅｓｉｓｔａｎｃｅ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ“、  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｅｌｅｃｔｒｏｎ  Ｄｅｖｉｃｅｓ  Ｍｅｅｔｉｎｇ、  ２００２
【非特許文献３】“Ｏｎ−ａｘｉｓ  ｓｃｈｅｍｅ  ａｎｄ  ｎｏｖｅｌ  ＭＴＪ  ｓｔｒｕｃｔｕｒｅ  ｆｏｒ  ｓｕｂ−３０ｎｍ  Ｇｂ  ｄｅｎｓｉｔｙ  ＳＴＴ−ＭＲＡＭ”、  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｅｌｅｃｔｒｏｎ  Ｄｅｖｉｃｅｓ  Ｍｅｅｔｉｎｇ、  ２０１０
【発明の概要】
【発明が解決しようとする課題】
【００１１】
特許文献１において、アドレス変換テーブルは、不揮発性メモリ、もしくはＤＲＡＭに置かれる。ここで、アドレス変換テーブルを不揮発性メモリに置いた場合にはアドレス変換テーブルのために不揮発性メモリへのアクセス回数が増加し、ＳＳＤ性能を低下させる課題がある。これに対し、アドレス変換テーブルをＤＲＡＭに置いた場合には、アドレス変換テーブルのデータサイズの分ＳＳＤ内のＤＲＡＭ容量が増加し、ＳＳＤのコストが高くなる課題がある。また、揮発性のＤＲＡＭに置かれたアドレス変換情報を突然の停電による消失から守るため、バッテリーバックアップやスーパーキャパシタによるデータ保護システムが必要になり、ＳＳＤのコストが高くなる課題がある。【００１２】
本発明の第一の目的は、アドレス変換処理に伴う性能劣化を低減することである。また、本発明の第二の目的は、アドレス変換に伴う半導体ストレージのコストの増大を低減することである。本発明の第三の目的は、高信頼の半導体ストレージを提供することにある。
【課題を解決するための手段】
【００１３】
本願発明による課題を解決する手段のうち、代表的なものを例示すれば、半導体ストレージであって、記憶領域が複数のブロックに分割され、ブロックのそれぞれがさらに複数のページに分割される不揮発性メモリを備え、消去回数の管理が、ページ毎に行われ、論理アドレスから物理アドレスへのアドレス変換が、ブロック毎に行われることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、高性能、低価格、高信頼な半導体ストレージを提供することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施の形態１による半導体ストレージの一実施の形態を示す構成図である。
【図２】本発明の実施の形態１による半導体ストレージのテーブルのデータサイズを示す図である。
【図３】本発明の効果を示すための比較対象による半導体ストレージのテーブルのデータサイズを示す図である。
【図４】本発明の実施の形態１による半導体ストレージの一実施の形態を示す動作チャート図である。
【図５】本発明の実施の形態１による半導体ストレージの一実施の形態を示す動作チャート図である。
【図６】本発明の実施の形態１による半導体ストレージの一実施の形態で用いるブロック管理情報を示す図である。
【図７】本発明の実施の形態１による半導体ストレージの一実施の形態で用いるアドレス変換方法を示す図である。
【図８】本発明の実施の形態１による半導体ストレージの一実施の形態のライトデータ転送性能を示す図である。
【図９】本発明の実施の形態１による半導体ストレージの一実施の形態のホストがＳＳＤにライト出来る総データサイズを示す図である。
【図１０】本発明の実施の形態２による半導体ストレージの一実施の形態の概略を示す図である。
【図１１】本発明の実施の形態２による半導体ストレージの一実施の形態の構成を示す図である。
【図１２】本発明の実施の形態２による半導体ストレージの一実施の形態の必要性を示す図である。
【図１３】本発明の実施の形態２による半導体ストレージの一実施の形態を示す動作チャート図である。
【図１４】本発明の実施の形態２による半導体ストレージの一実施の形態の効果を示す図である。
【図１５】本発明の実施の形態２の効果を示すための比較対象による半導体ストレージの一実施の消去回数を示す図である。
【図１６】本発明の実施の形態３による半導体ストレージの一実施の形態を示す構成図である。
【図１７】本発明の実施の形態４による半導体ストレージの一実施の形態を示す構成図である。
【図１８】本発明の実施の形態５による半導体ストレージの一実施の形態におけるアドレス変換方法を示す図である。
【図１９】本発明の実施の形態６による半導体ストレージの一実施の形態を示す構成図である。
【図２０】本発明の実施の形態６による半導体ストレージの一実施の形態を示す構成図である。
【図２１】本発明の実施の形態６による半導体ストレージの一実施の形態を示す構成図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【実施例１】
【００１７】
本実施の形態による半導体ストレージは、不揮発性メモリを備え、前記不揮発性メモリの消去回数がページ単位で管理され、アドレス変換情報がブロック単位で管理される。不揮発性メモリの領域は複数のブロックに分割され、前記ブロックは複数のページに分割される。ＳＳＤコントローラが不揮発性メモリを消去、もしくは書き換え（ＢＩＴ  ＡＬＴＥＲＡＢＬＥ  ＷＲＩＴＥ）、書き込み（ＰＲＯＧＲＡＭ）を行う単位の中で最も大きい単位をページとする。消去とは、データが‘０’と‘１’の２値で記録される場合に、ページ内の全データを例えば‘１’にすることであり、書き換えとは、‘０’を‘１’にする、もしくは‘１’を‘０’にすることであり、書き込みとは、‘１’を‘０’にすることとする。なお、データを‘３’、‘２’、‘１’、‘０’の４値などで記録する多値記録することができる場合があることは言うまでもない。ＮＡＮＤフラッシュメモリを用いるＳＳＤでは消去の単位は例えば、５１２ＫＢであり、書き換えは行うことが出来ず、書き込みの単位は例えば、４ＫＢである。この場合、ページサイズは５１２ＫＢとなる。ここでいうページサイズはＮＡＮＤフラッシュメモリのスペックシートなどに記載されるページサイズとは異なる概念である。【００１８】
以下、不揮発性メモリへの消去、もしくは書き換え、書き込みをライト（ＷＲＩＴＥ）とする。消去回数は、例えば、ページ少なくとも一部がライトされた累積の回数を用いることが出来る。ページの一定領域以上がライトされた場合の累積回数を用いることが出来ることは言うまでもない。【００１９】
図１は、本発明の一実施形態に係るＳＳＤの全体構成を示すブロック図である。ＳＳＤ１０１は、サーバー、パーソナルコンピュータ、ストレージ制御装置を始めとする各種電子機器（以下、ホスト）にホストインターフェース１０５を介して接続して使用される。ホストインターフェース１０５は、ホストとの間で、公知の各種インターフェース仕様に従ったインターフェースであるが、独自のインターフェース仕様を用いることも可能である。ストレージ制御装置は、ボリューム仮想化やデータバックアップなどのストレージ機能を制御する装置である。 ストレージ制御装置とサーバーはサーバー−ストレージ制御装置間インターフェースを介して接続される。【００２０】
不揮発性メモリには書き換え回数の制限があるため、ＳＳＤには、書き込みを行うときに一部の領域に書き込みが偏らないように書き込みを不揮発性メモリ全体へ分散し、書き換え回数を平準化する制御、いわゆる「ウェアレベリング」が必要となる。【００２１】
ＳＳＤ１０１の構成は、不揮発性メモリ１０２と、ＳＳＤコントローラ１０３と、ＤＲＡＭ１０４と、ホストインターフェース１０５を実装基板に備えたものである。前記不揮発性メモリ１０２及びＤＲＡＭ１０４はＳＳＤコントローラ１０３のアクセス制御を受ける。【００２２】
ＳＳＤコントローラ１０３は、ハードディスク互換の制御機能をホストに提供することが出来る。ハードディスク互換とする場合は、幅広いホストに対応させることが出来る利点がある。一方、ハードディスク互換を持たない場合は、ホストからＳＳＤ１０１の特性に合わせた制御を行うことが出来るため、ＳＳＤ１０１の性能をより高くすることが出来る。ホストインターフェース１０５として有線だけではなく、無線を用いることが可能であることは言うまでもない。この場合、ＳＳＤの配置の自由度が高まり、ＳＳＤの設置に要する時間が短くなる効果がある。ＳＳＤコントローラ１０３は高機能なＳＳＤ制御動作を行うため、図示を省略するＣＰＵを内蔵することが出来る。ＳＳＤコントローラにＣＰＵを内蔵せず、ＳＳＤコントローラのハードウェアによりＳＳＤの制御を行うことや、ホストがＳＳＤのＣＰＵが行う処理を肩代わりすることが出来ることは言うまでもない。その場合は、ＳＳＤコントローラの回路規模が小さくなり、コストを低減できる利点がある。ＳＳＤコントローラ１０３が持つ図示を省略する不揮発性メモリコントローラは不揮発性メモリの動作不良ビットを訂正し、ＳＳＤに要求される信頼性を確保するために、ＥＣＣ回路を備えることが出来る。ＥＣＣ回路は例えば不揮発性メモリに格納されたＥＣＣ（Ｅｒｒｏｒ−ｃｏｒｒｅｃｔｉｎｇ  ｃｏｄｅｓ）を用いて、不揮発性メモリに格納されたデータのエラー検出とエラー訂正を行う回路である。不揮発性メモリの信頼性がＳＳＤに要求される信頼性を上回る場合はＥＣＣ制御部が不要であることは言うまでもない。その場合、ＳＳＤコントローラ１０３の回路規模が小さくなり、コストが低減できる利点がある。ＤＲＡＭとＳＳＤコントローラは図示を省略するＤＲＡＭコントローラを用いて接続されている。ＤＲＡＭコントローラはＳＳＤコントローラ内に内蔵することが出来る。ＤＲＡＭコントローラがＥＣＣ回路を内蔵し、ＤＲＡＭデータにＥＣＣを付加することが可能であることは言うまでもない。この場合、ＳＳＤが高信頼化する効果がある。【００２３】
従来技術をまず説明する。従来技術において、アドレス変換テーブルは論理ページと物理ページの対応を管理し、消去回数テーブルはブロック番号ごとの消去回数を管理する。また、図示を省略する有効、非有効テーブルを持つことが出来る。有効、非有効テーブルはページごとの有効、もしくは非有効を管理する。従来技術におけるページは例えば、書き込み単位であり、必ずしも消去単位以上にする必要はない。従来技術におけるブロックは例えば、消去単位である。有効ページとは今後、ホストからそのページがアクセスされる可能性が有るということであり、非有効ページとは今後、ホストから、そのページがアクセスされる可能性が無いということである。例えば、ホストが論理アドレス０にライトした場合、ＳＳＤコントローラは不揮発メモリの論理アドレス０（物理アドレス０）にそのデータをライトしたとする。次に、再度、ホストが同一の論理アドレス０にライトしたのに対し、ＳＳＤコントローラは物理アドレス１にそのデータをライトしたとする。この時点において、物理アドレス１は将来的にホストから論理アドレス０でアクセスされる可能性が有る有効ページであるのに対して、物理アドレス０は将来的にホストからアクセスされる可能性が無い非有効ページである。このように、有効、非有効テーブルを持つことにより、非有効ページを効率的に消去することが出来る。なお、この非有効ページを含むブロックについて、有効ページをリードし、別のブロックに書き込んだ後に、ブロックを消去し、消去済みのブロックを生成する動作は、「ガーベージコレクション」と呼ばれる。ガーベージコレクションでは、有効ページを他のブロックにコピーしたのちに、ブロックを消去することで、消去済みのブロックを生成する。ＳＳＤの予備領域が少なくなると非有効ページの割合が増加し、ページコピーが増えるため、ＳＳＤの性能、特にライトデータ転送性能とホストからの書き込み可能データサイズが低下する。【００２４】
従来技術は、アドレス変換をページ単位で行い、消去をブロック単位で行っている。従来技術の課題は、ＤＲＡＭ容量が多く必要となり、ＳＳＤのコストが増大することと、テーブルアクセス回数が多いため、ＳＳＤの性能が低下することである。図３に従来技術の課題を検討する際に本願発明者が比較対象として用いたテーブルのデータサイズの例を示す。例えば、容量８ＴＢのＳＳＤにおいて、テーブルのデータサイズの合計は１９ＧＢになる。テーブルのデータサイズが大きくなると、その格納に要するＤＲＡＭコスト、不揮発性メモリのコストが高くなり、また、テーブルアクセスに要する時間が長くなるため、ＳＳＤのコストが増大し、また、性能が低下する。前述したとおり、アドレス変換をページ単位で行い、消去をページより大きいブロック単位で行うため、アドレス変換テーブルのデータサイズ、すなわち、テーブル（１）のデータサイズ８ＧＢ＋テーブル（２）のデータサイズ１１ＧＢの合計が消去回数テーブルのデータサイズ、すなわち、テーブル（３）のデータサイズ２１ＭＢよりも大きくなる。さらに、ページを更新するごとにアドレス変換テーブルを書き換え、ブロックを更新するごとに消去回数テーブルを書き換え、ページ数はブロック数よりも多いため、アドレス変換テーブルのライト回数は消去テーブルのライト回数よりも多くなる。【００２５】
特に、連続的にホストがＳＳＤにライトすると、消去済みブロックが少なくなり、ガーベージコレクションが開始するため、データ転送性能はライト開始時の２０〜５０％程度に低下する。【００２６】
次に、本発明について図１を用いて説明する。不揮発性メモリ１０２は、データブロックと、アドレス変換テーブルバックアップと、消去回数テーブルバックアップを備える。不揮発性メモリ１０２のページのデータサイズは、例えば４３２０バイトであり、４０９６バイトの主領域と例えば２２４バイトの予備領域（冗長部）に分かれている。主領域にはデータを書き込み、予備領域にはＥＣＣを書き込むことが出来る。ＥＣＣは例えば１９２バイトのデータサイズを持ち、不揮発メモリに書き込まれたデータのエラー検出とエラー訂正をその情報を用いて行う。また、アドレス変換テーブルバックアップと、消去回数テーブルバックアップは揮発性のメモリであるＤＲＡＭ１０４に格納されたアドレス変換テーブルと消去回数テーブルを電源遮断時もしくは一定時間毎、ＳＳＤがアイドル時に不揮発性メモリにコピーし、保存する。短い時間間隔でコピーすることで突然の停電やＳＳＤの不良によるアドレス変換テーブルと消去回数テーブルの消失の危険性を低減できる。一方、時間間隔を長くすることで不揮発性メモリへのアクセス回数を低減し、ＳＳＤの性能を向上させることが出来る。アドレス変換テーブルの情報に比べて、消去回数テーブルの情報はＳＳＤの動作にとっての重要度が低い。そのため、アドレス変換テーブルのバックアップ頻度に比べて、消去回数テーブルのバックアップ頻度を低くすることで、ＳＳＤの高性能と高信頼を両立することが出来る。【００２７】
ＤＲＡＭ１０４には、アドレス変換テーブル１０８と消去回数テーブル１０９を設ける。アドレス変換テーブルは論理ブロック番号と物理ブロック番号の対応を管理するために用いるテーブルである。例えば、論理ブロック番号順に物理ブロック番号を並べることが出来る。この場合、論理ブロック番号Ａに対応する物理ブロック番号を取得する方法を述べる。アドレス変換テーブルの先頭からＡ個目の物理アドレスが求める物理アドレスになる。一方、物理ブロック番号ｂに対応する論理ブロック番号を取得する方法を述べる。まず、アドレス変換テーブルの物理アドレスを先頭から順に物理ブロック番号ｂを検索する。目的の物理ブロック番号ｂが見つかったときに、それが先頭からいくつ目の番号だったかを調べることで、求める論理ブロック番号を調べることができる。アドレス変換テーブルとして、論理ブロック番号順に物理ブロック番号を並べたテーブルのみを持ち、物理ブロック番号順に論理ブロック番号を並べたテーブルを持たないことでアドレス変換テーブルのデータサイズを小さくすることが出来る。この場合、ＤＲＡＭの容量が低減し、低コストのＳＳＤを提供することが出来る。また、物理ブロック番号から論理ブロック番号への対応を複数個、同時に調べることで物理アドレス１個当たりのアドレス変換に要する時間を短縮することができる。さらに、アドレス変換テーブルとして、前述した論理ブロック番号順に物理ブロック番号を並べた論理ブロック−物理ブロックテーブルに加えて、物理ブロック番号順に論理ブロック番号を並べた物理ブロック−論理ブロックテーブルを持つことにより、物理ブロック番号から論理ブロック番号への変換を高速化することが出来る。そのため、高速なＳＳＤを提供することが出来る。但し、この場合は、論理ブロック−物理ブロックテーブルと物理ブロック−論理ブロックテーブルを合わせたアドレス変換テーブルのデータサイズが大きくなるため、ＤＲＡＭもしくは不揮発性メモリの容量が増大する。【００２８】
消去回数テーブル１０９は、ページ毎の消去回数を管理するために用いられるる。消去回数の管理方法としては、例えば、ページが消去される毎にそのページの消去回数を１ずつ増加させることが出来る。消去毎に消去回数を増加させることに消去回数の管理を厳密に行うことができ、高信頼のＳＳＤを提供することが出来る。【００２９】
一方、消去毎に一定の確率aでのみ消去回数を管理するための値を１ずつ増加させ、それ以外の場合、すなわち、確率1-aの場合には消去回数を管理するための値を変更しないことも出来る。具体的には、ページが消去される毎に乱数を発生させ、その値が一定以下のときに消去回数を１ずつ増加させ、一定より大きい場合には、消去回数を変更しないこととすればよい。消去回数をe、消去回数を管理する値をfとすると下記の式により、消去回数ｅを見積もることが可能である。
消去回数ｅ≒消去回数を管理する値ｆ／確率ａ
これにより消去回数を管理するための値の最大値を低減し、消去回数の管理に必要なデータサイズを低減することが出来る。このため、消去回数を格納する、例えば、ＤＲＡＭの容量を低減し、ＳＳＤコストを低減することが出来る。確率aは、例えば不揮発性メモリの最大消去可能回数と消去回数を管理する目標データサイズから定めることが出来る。具体的には消去可能回数１００万回の不揮発性メモリを２Ｂのデータサイズで管理したい場合、２Ｂで表せる最大の数は０ｘＦＦＦＦ＝６５５３５であるため、６５５３５／１００万回≒０．０６６を確率aとして用いるのがよい。この場合、最大１００万回の消去回数を１ページ当たり２Ｂで管理することが可能になる。【００３０】
さらに、消去動作を行ったときに不揮発性メモリから得られる消去時間、消去結果の情報を基に消去回数を１、もしくは、１より大きな値、増加させる、もしくは増加させない、もしくは、マイナスすることも可能である。この場合は、不揮発性メモリの詳細な状態をＳＳＤの管理に用いることが出来るため、高信頼のＳＳＤを提供できる利点がある。一方、動作が複雑になるため、ＳＳＤの開発に要する期間が長くなる欠点がある。ＳＳＤの出荷前の検査において、一定の消去回数を設定し、消去するごとに１ずつ減らすことで消去回数を管理することも出来ることは言うまでもない。この場合は、消去状態が‘１’の不揮発性メモリ、消去回数の管理単位が１６ビットの例では、初期値を設定するときに例えば消去を行うだけで、消去回数を０ｂ１１１１１１１１１１１１１１１１＝６５５３６に設定することが出来るため、初期の消去回数の設定を短時間で行うことが可能であり、生産コストを低減できるメリットがある。【００３１】
図２に本発明のテーブルのデータサイズの例を示す。容量８ＴＢのＳＳＤにおいて、テーブルのデータサイズの合計は５．４ＧＢになる。従来技術の１９ＧＢに比べてテーブルのデータサイズが小さく、その格納に要するＤＲＡＭコスト、不揮発性メモリのコストが低くなり、また、テーブルアクセスに要する時間が短くなるため、ＳＳＤのコストを低減することが可能であり、また、ＳＳＤの性能を高くすることが出来る。前述したとおり、アドレス変換をブロック単位で行い、消去をブロックより小さいページ単位で行うため、アドレス変換テーブルのデータサイズ、すなわち、テーブル（１）のデータサイズ３２ＭＢ＋テーブル（２）のデータサイズ４３ＭＢの合計が消去回数テーブルのデータサイズ、すなわち、テーブル（３）のデータサイズ５３ＧＢよりも小さくなる。すなわち、アドレス変換に用いる情報のデータサイズが、消去回数の管理に用いる情報のデータサイズよりも小さい。さらに、ページを更新するごとに消去回数テーブルを書き換え、ブロックを更新するごとにアドレス変換テーブルを書き換え、ページ数はブロック数よりも多いため、消去テーブルのライト回数はアドレス変換テーブルのライト回数よりも多くなる。【００３２】
例えばＤＲＡＭの１チップ当たりの容量を４Ｇｂとすると、従来方式のサイズ１９ＧＢのテーブルデータを格納するために３８個のＤＲＡＭチップが必要になる。一方、本発明では１１個で済む。チップ数が低減することで、ＤＲＡＭのチップコストだけではなく、ＤＲＡＭコントローラやＳＳＤ回路基板を簡素化することが出来るため、大幅にＳＳＤのコストを低減することができる。【００３３】
ＳＳＤ１０１の動作を図４を用いて説明する。まず、ライト動作を述べる。ライト動作を行うために、図１に示すテーブルに加えて、図６に示すブロック情報を管理するテーブルを用いてＳＳＤの情報を管理することが出来る。ホストがホストインターフェース１０５を経由して論理アドレスＡに対するデータの書き換え要求をＳＳＤ１０１に送る（Ｓ１）。ＳＳＤコントローラは論理アドレスＡから論理ブロック番号、ページ番号、セクタ番号ｄを決定する（Ｓ２）。ＳＳＤ容量８ＴＢ、ページサイズ４ＫＢ、ブロックサイズ１ＭＢの場合について具体的な例を図７に示す。ホストはＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓｉｎｇ）にて論理アドレスを指定する。ＬＢＡアドレスの上位２３ビット、すなわち、［３３：１１］が論理ブロック番号Ｂになる。ＬＢＡアドレスの［１０：３］が剰余番号となる。［２：０］がセクタとなる。次に、ＳＳＤコントローラは論理−物理変換テーブルのＢ番目を参照する。その値が物理ブロック番号ｂである（Ｓ３）。ページ番号ｃは下記の式（１）で求められる。
ページ番号  ＝  物理ブロック番号  ｘ  ２５６  ＋  剰余番号  …（１）
次に、書き換えるデータに対応したＥＣＣを生成し（Ｓ４）、求めたページ番号ｃのセクタｄを書き換える（Ｓ５）。具体的な動作を述べる。消去動作が必要な不揮発性メモリの場合は、ページ全体を書き換える場合は、ページを消去し、その後にホストから送られたデータを書き込む。ページ内の一部のセクタを書き換える場合は、書き換え対象外のセクタのデータを読み取り、ページ全体を消去し、書き換え対象外のセクタのデータとホストから送られたデータを合わせて１ページ分のデータとし、そのデータを書き込む（いわゆる、リードモデファイライト動作）。消去動作が不要で書き換え動作が可能な（いわゆる、ダイレクトオーバーライト可能な）不揮発性メモリの場合は、ホストから指定されたセクタのデータのみを書き換える。但し、ＥＣＣ処理単位がセクタではなく、例えばページの場合はホストから指定されたセクタのデータに加えて、ＥＣＣデータの書き換えも行う。ページの消去回数が図６に示すブロック中の最大ページ消去回数を上回ったときには、ブロック情報の「現在のブロック中の最大ページ消去回数」を更新する。【００３４】
さらに、ウェアレベリングの実施判定を行う（Ｓ６）。例えば、ＷＡＦ（Ｗｒｉｔｅ  Ａｍｐｌｉｆｉｅｒ  Ｆａｃｔｏｒ）が１．０１以下である場合に、ウェアレベリングを行う。ＷＡＦとは、ＳＳＤが不揮発性メモリに書き込んだデータサイズをホストが書き込んだデータサイズで割ったものである。【００３５】
ウェアレベリングを行わない場合は、以上でライト動作は終了である。一方、ウェアレベリングを行う場合は、まず、消去回数の多い物理ブロックａを検索する（Ｓ７）。但し、単に消去回数の多い物理ブロックをウェアレベリングの対象とすると、同じ物理ブロックが連続してウェアレベリングの対象になることがあるため、例えば、物理ブロックが最後にウェアレベリングされてからの消去回数の増加分が最大のページを持つ物理ブロックａを検索する。例えば、図６の例で物理ブロック番号１〜６について考えると、「現在のブロック中の最大ページ消去回数」−「ブロックが前回ウェアレベリングされた時点のブロック中の最大ページ消去回数」が最大である物理ブロック３が選択される。【００３６】
次に、消去回数の少ないブロックｂを検索する（Ｓ８）。但し、単に消去回数の少ない物理ブロックをウェアレベリングの対象とすると、同じ物理ブロックが連続してウェアレベリングの対象になることがあるため、例えば、物理ブロックが最後にウェアレベリングされてから一定時間経過後のブロックから検索するようにすることが出来る。時間の目安として不揮発性メモリに書き込まれたページ数を用いることが出来る。具体的な検索手順を図６を用いて述べる。まず、ある物理ブロックについて、ウェアレベリングが実行されてから、不揮発性メモリ全体に９０回書き込まれないと、次のウェアレベリング対象にならないと決める。９０回という数値が説明のための例であることはいうまでもなく、実際には１億回程度のずっと大きい数値が用いられる。そのほかの数値も同様に例である。ウェアレベリング実行時点で不揮発性メモリにライトされた総ページ数が２００だとする。ＳＳＤコントローラは「ブロックが前回ウェアレベリングされた時点の不揮発性メモリにライトした総ページ数」が２００回−１１０回、すなわち９０回以上であるブロックを検索し、「現在のブロック中の最大ページ消去回数」が最小のブロックを選択する。図６の例ではブロック番号５が選択される。【００３７】
その後、物理ブロックａと物理ブロックｂのデータを入れ替える（Ｓ９）。具体的には、例えば、物理ブロックａとｂのデータをＳＳＤコントローラのバッファに一旦、読み出し、不揮発性メモリがダイレクトオーバーライト可能である場合にはそのデータをそれぞれ物理ブロックｂと物理ブロックａに対して、書き換える。不揮発性メモリがダイレクトオーバーライト可能でない場合には物理ブロックａとｂを消去したのちに、データをそれぞれ物理ブロックｂと物理ブロックａに書き込む。【００３８】
もしくは、ＳＳＤがライトバックキャッシュを持つ場合、キャッシュに物理ブロックａとｂのデータを書き込むことが出来る。このときに必要な論理ブロック番号は、物理−論理アドレス変換テーブルを検索することで得ることが出来る。キャッシュ内のデータは、ある時間の経過後に、キャッシュデータの更新であるキャッシュリフィルに伴い、不揮発性メモリに書き戻されることになる。ライトバックキャッシュは、ＳＳＤ内のＤＲＡＭ、もしくは、不揮発性メモリ、ＳＳＤコントローラ内のＳＲＡＭ、もしくはＤＲＡＭ、ホストのＤＲＡＭ、不揮発性メモリなどに置くことが出来る。ライトバックキャッシュ、もしくはその管理情報を揮発性メモリに設けた場合は、バッテリーバックアップやスーパーキャパシタなどにより、電源喪失時にそのデータの喪失を回避する構成を持つことが望ましい。【００３９】
最後に、ＳＳＤ管理情報を更新して（Ｓ１０）、ウェアレベリングを行う場合のライト動作を終了する。【００４０】
次に、リード動作を図５を用いて述べる。ホストが、ホストインターフェース１０５を経由して論理アドレスＡに対するデータの読み出し要求をＳＳＤ１０１に送る（Ｓ１１）。ＳＳＤコントローラは、ライト動作の場合と同様に論理アドレスＡから論理ブロック番号、ページ番号、セクタ番号ｄを決定する（Ｓ１２）。さらに、論理ブロック番号から物理ブロック番号を取得する（Ｓ１３）。【００４１】
次に、この方法により求められたページ番号ｃのセクタｄ、および、ＥＣＣを読み出す（Ｓ１４）。ＳＳＤコントローラは、ＥＣＣによるエラー検出、訂正を行った後に（Ｓ１５）、データをホストに送る（Ｓ１６）。読み出したデータをキャッシュにコピーすることで、ＳＳＤを高性能化することが可能であることは言うまでもない。【００４２】
本発明が従来技術に比べて特に有効な場合とは、不揮発性メモリの消去単位が小さく、ホストがＳＳＤにアクセスするデータサイズが大きい場合である。【００４３】
具体的な例を図８を用いて説明する。図８は本発明の方式を用いてＳＳＤを構成したときのライトデータ転送性能の見積もりである。【００４４】
パターンＡは、ホストからのリクエスト当たりの平均データサイズが１２ＫＢの場合であり、パターンＢは、ホストからのリクエスト当たりの平均データサイズが５２ＫＢの場合である。グラフの横軸はページサイズであり、縦軸はライトデータ転送速度である。ここで、消去単位がＬＢＡ方式で指定可能な最小のデータサイズである０．５ＫＢであるときの性能を１００％とした。ライトデータ転送速度５０％以上とするためには、パターンＡにおいてページサイズを８ＫＢ以下にする必要があり、パターンＢにおいてページサイズを６４ＫＢ以下にする必要がある。図８から明らかなように、ページサイズが小さい場合に、本発明のライトデータ転送性能が高くなり、また、ホストがＳＳＤにアクセスするデータサイズが大きいパターンＢはページサイズが同じ場合でもパターンＡに比べてライトデータ転送性能が高くなる。ホストから送られるさまざまなパターンについて分析した結果、本発明はページサイズ、すなわち、不揮発性メモリの書き込み、書き換え、消去のいずれかの最小単位のうちのもっとも大きなサイズが特に６４ＫＢ以下の場合に、高性能、かつ、低コストのＳＳＤを提供出来ることがわかった。これに対し、書き換え、もしくは消去の単位が６４ＫＢ以下にできる不揮発性メモリとして、相変化メモリやＲｅＲＡＭが開発、製造されており、本発明は特に不揮発性メモリとして、相変化メモリやＲｅＲＡＭを用いるのに有効である。不揮発性メモリとして相変化メモリを用いることで、特に大容量のＳＳＤを提供することが可能であり、不揮発性メモリとして書き換え速度の速いＲｅＲＡＭを用いることで、特に高速なＳＳＤを提供することが可能である。【００４５】
なお、動画編集用途のパターンを本願発明者が調べたところ、ホストからの平均ライトサイズが１ＭＢであり、かつ、リクエスト毎のデータ領域が隣接していることがあった。この場合、複数のライトリクエストをＳＳＤコントローラが結合して、１つの１ＭＢより大きなライトリクエストとして処理することが可能である。ＮＡＮＤフラッシュメモリの消去単位は例えば５１２ＫＢであるが、このような場合、ページサイズを５１２ＫＢ、ブロックサイズを４ＭＢとすることにより、ＳＳＤ管理情報を低減した低コスト、高性能な、例えば動画編集用途用のＳＳＤを提供することが出来る。【００４６】
本願発明者がＳＳＤのアドレス変換単位と消去単位がＳＳＤの性能に与える関係を様々なアドレス変換単位、消去単位、ホストがＳＳＤへアクセスするパターンについて詳細に検討した結果、消去単位が小さい場合に（より正確に記すと、ホストがＳＳＤにアクセスするデータサイズよりも消去単位が同程度か小さい場合に）、アドレス変換単位を消去単位より大きくしても、ＳＳＤのライトデータ転送性能と書き込み可能データサイズにおいて、顕著な性能劣化が生じず、従来技術よりライトデータ転送性能と書き込み可能データサイズが上回る場合があることを見出した。【００４７】
補足すると、ＮＡＮＤフラッシュメモリの消去単位はホストがＳＳＤにアクセスする通常の場合におけるデータサイズよりも大きいため、不揮発性メモリとしてＮＡＮＤフラッシュメモリを用いるＳＳＤの場合は、ホストがＳＳＤにアクセスするデータサイズが一般的な場合に比べて大きい場合、もしくは、リードに比べてライトの頻度が一般的な場合に比べて小さい場合に特に有効である。すなわち、ＳＳＤの用途が前述した動画編集である場合などにおいて本発明が特に有効である。一方、不揮発性メモリとして消去単位の小さい相変化メモリやＲｅＲＡＭ、ＳＴＴ−ＭＲＡＭを用いる場合は、一般的な用途向けに本発明を用いて高性能なＳＳＤを提供することが出来る。なお、現時点においては、ＳＳＤの不揮発性メモリとして、現時点ではＮＡＮＤフラッシュメモリを用いることが一般的であり、相変化メモリやＲｅＲＡＭ、ＳＴＴ−ＭＲＡＭを用いることはやや特別な場合となる。本実施の形態は上記の知見を基に考え出されたものである。【００４８】
ブロックサイズとＳＳＤの寿命について、図９に例を示して述べる。図９には、ページサイズ４ＫＢ、ＳＳＤ容量８ＴＢ、プロヴィジョナル領域２５％、不揮発性メモリの最大消去可能回数を１０万回という条件において、ＳＳＤが寿命を迎えるまでホストがＳＳＤにライトした総データサイズとブロックサイズの関係を図示している。【００４９】
ホストが送ったライトデータを理想的に平準化し、すべての不揮発性メモリのページに完全に平均的に書き込めた場合を「理想ウェアレベリング」とすると、この場合、１３０ＰＢのデータをホストがＳＳＤに書き込んだ時点でＳＳＤが寿命を迎え、それ以上、ＳＳＤのデータを書き換えることが出来なくなる。ブロックサイズを大きくするほどアドレス変換テーブルのデータサイズが小さくなり、また、アドレス変換に要する時間が短くなり、低コスト、高性能、高寿命なＳＳＤを提供することが出来る。さらに、ホストが主にリード要求を行い、ＳＳＤへのライト回数が少ないため、長いＳＳＤの寿命が要求されない場合については、本発明を用いることでブロックサイズが例えば、６４ＫＢ以上である場合でも低コスト、かつ、高性能なＳＳＤを提供することが出来る。【００５０】
さらに一般的に述べると、本発明におけるブロックサイズは、不揮発性メモリの最大消去回数、ＳＳＤの動作保証年数、想定される１日あたりのＳＳＤへのライトデータサイズ、リクエスト当たりのデータサイズなどのＳＳＤに書き込むパターンの特徴に応じて、定めるのがよい。例えば、ブロックサイズ１ＭＢの場合、ホストがＳＳＤに書き込めるライトデータサイズの上限は１２ＰＢであり、ＳＳＤが５年間使用されるとすると、１日あたりにＳＳＤに書き込み可能なライトデータサイズの平均は６．７ＴＢになる。もし、１日当たりの平均ライトデータサイズが６．７ＴＢ未満であれば、ブロックサイズ１ＭＢのＳＳＤであっても信頼性を保ち動作させることが可能である。【００５１】
以上、本実施の形態１の半導体ストレージを用いることにより、例えば、次の効果を得ることが出来る。なお、以下の説明では、アドレス変換テーブルやアドレス変換テーブルバックアップなどの、直接ホストから参照されることがないＥＣＣ以外の情報を「ＳＳＤ管理情報」とする。【００５２】
第一に、ＳＳＤ管理情報のデータサイズを低減することが可能である。そのため、同じＳＳＤ容量を維持して、ＤＲＡＭや不揮発性メモリの容量を低減することが可能となり、低コストのＳＳＤを提供することが出来る。【００５３】
第二に、ＳＳＤ管理情報のデータサイズ低減に伴い、ＳＳＤ管理情報へアクセスする回数が減少するため、高性能のＳＳＤを提供することが出来る。【００５４】
第三に、ＳＳＤの性能を維持しつつ、予備領域を減らすことが可能である。従来方式では、前述したとおり、予備領域が低下するとＷＡＦが増大するため不揮発性メモリへのライトデータサイズが増加する。一方、本発明ではガーベージコレクションを行わないため、予備領域を減らしてもライトデータ転送速度は変化しない。そのため、ＳＳＤ性能を保ちながら予備領域を減らすことが可能であり、同じＳＳＤ容量を維持して、不揮発性メモリの容量を低減することが出来るため、低コストのＳＳＤを提供することが出来る。【００５５】
第四に、従来方式に必要なガーベージコレクションが本発明では不要なため、ＳＳＤの性能を向上させることが出来る。なお、従来方式は、いわゆる、ダイナミックウェアレベリング、スタティックウェアレベリング、ガーベージコレクションを組み合わせることでウェアレベリングを実現しているが、本発明で行うウェアレベリングは、従来方式のスタティックウェアレベリングに近い動作である。【００５６】
本発明は、特に相変化メモリやＲｅＲＡＭの消去単位の小ささを活かし、相変化メモリやＲｅＲＡＭの性能を最大限に引き出すＳＳＤを提供するためのものである。しかし、ＮＡＮＤフラッシュメモリの構成、性能やホストがＳＳＤに送るデータパターンによっては、ＮＡＮＤフラッシュメモリを不揮発性メモリとして用いて、本発明のＳＳＤを提供することが出来ることは言うまでもない。特に動画や写真、音楽の編集、再生、ストリーミング配信用途ではホストがＳＳＤにライトするときのリクエスト当たりの平均データサイズが大きくなるため、本発明が有効である。また、特に、ライトアクセスに比べてリードアクセスが多い、例えば、オンライン商取引データベースの格納用途などでは、本発明が有効である。
【実施例２】
【００５７】
本実施の形態２では、ブロック毎にオフセットページ数を持ち、ブロックの消去回数のばらつきを平準化するＳＳＤのブロック構成、動作の別の例を説明する。【００５８】
図１０は本発明の一実施形態に係るブロックとページ、ブロック内オフセットの関係を示す図である。【００５９】
オフセットページ数は、物理ブロック毎に管理される。時間ｔ０からｔ１までは、物理ブロック０と１のオフセットページ数は０である。例えば、物理ページ８には、論理ページ８が対応する。次に、時間ｔ１において、物理ブロック１のオフセットが３になり、物理ブロック１にブロック内オフセット２０１が生じた場合、時間ｔ１以降は、例えば、物理ページ８が論理ページ１１に対応することになる。このようにオフセットページ数を変えることにより、特定の物理ページの消去回数のみが増加することを抑え、ブロック内でもウェアレベリングを行うことが可能になる。【００６０】
図１１はＳＳＤ内のＤＲＡＭ１０４の構成を示すブロック図である。ＤＲＡＭはアドレス変換、オフセットテーブル２０２と消去回数テーブル１０９を持つ。アドレス変換、オフセットテーブル２０２は例えば、論理ブロック−物理ブロック変換テーブル、物理ブロック−論理ブロック変換テーブルに加えて、論理ブロック毎のオフセットページ数を管理する。なお、物理ブロック−論理ブロック変換テーブルを不要に出来ることは言うまでもない。【００６１】
図１２は、ページサイズ４ＫＢ、ブロックサイズ１ＭＢ、実施の形態１の条件において、本願発明者が得たあるパターン、あるブロックに関するページ毎の消去回数を示した図である。ページ番号９の消去回数が２８３７６回と多いのに対して、ページ番号４８の消去回数が１００７回と小さく、差が２８倍と大きい。さらに分析を進めることにより、消去回数の多いページが特定の剰余番号に集中していることがわかった。このブロック内における消去回数差を平準化することでＳＳＤの寿命を長くすることが出来ると本願発明者は考え、実施の形態２を発明した。ここで、オフセット前のページ番号を論理ページ番号、オフセット後のページ番号を物理ページ番号とする。【００６２】
次に、ブロック毎にオフセットページ数を持つ場合のライト動作を、図１３を用いて述べる。【００６３】
Ｓ１〜Ｓ５までは実施の形態１と同一であるため、説明を省略する。オフセット判定（Ｓ２１）では、ブロック内の最大ページ消去回数と最小ページ消去回数を比較し、その差が一定以上になったときにオフセットページ数の変更を実施する。ブロック内のを一定のデータサイズ以上の領域を書き換えるときのみにオフセットを行うことも出来る。【００６４】
次に、オフセットページ数の変更を行う（Ｓ２２）。具体的には例えば、図１４、時間ｔ１におけるオフセットページ数０〜７の変更候補について、それぞれオフセットページ数を変更したときの消去回数と現在の物理ページの消去回数を足し合わせ、その最大値が最も小さくなるようなオフセットページ数を用いることで変更後のオフセットページ数を求めることが出来る。【００６５】
さらに、ホストから指示された書き換え対象以外のページのデータを読み出し、ホストから送られたデータと合わせて１ブロック分のデータを生成し、それを不揮発性メモリに書き込む（Ｓ２３）。残りの動作は実施の形態１と同一に出来る。【００６６】
図１４では時間ｔ１までに図に示す書き込みが行われたとする。時間ｔ１からｔ２において、同じ書き込みが行われた場合、オフセットページ数を４にすることにより最大消去回数を５６１回にすることが出来る。一方、オフセットを行わない場合の例を図１５に示す。この場合、時間ｔ２における最大消去回数が１０８４回と、オフセットを行う場合に比べて多くなることがわかる。すなわち、本実施の形態２の構成を用いることにより、最大消去回数を低減することが出来る。そのため、高信頼のＳＳＤを提供することが出来る。
【実施例３】
【００６７】
本実施の形態３による半導体ストレージは、消去回数が不揮発性メモリに用意される予備領域に記録されていることを特徴とする。図１６は本実施の形態３におけるＳＳＤの構成を示している。ＤＲＡＭ上に消去回数テーブルが無く、不揮発性メモリの予備領域にＥＣＣと消去回数が格納されていることが示されている。【００６８】
不揮発性メモリは、主にデータを記録する主領域に加えて、主にデータの管理情報を記録する予備領域を持つ。例えば、主領域のページ当たりのデータサイズは４０９６Ｂであり、予備領域は２２４Ｂである。予備領域には主領域のデータのエラー訂正、検出に用いるＥＣＣを格納することがある。本実施の形態ではＥＣＣに加えて、消去回数を格納することを特徴とする。ＥＣＣのデータサイズは１ページ当たり、例えば１９６Ｂであり、消去回数は例えば２Ｂである。【００６９】
消去回数が予備領域に記録されているため、消去回数を更新するためのみに、メモリにアクセスする必要がなくなる。消去回数が変更されるのは、不揮発性メモリを書き換えるとき、すなわち、データを書き込むときのみにすることが出来るため、データを書き込むときに同時に消去回数を更新することが可能である。もちろん、例えば読み出し動作において、不揮発性メモリから得られる情報、例えば、検出されたエラー数に基づいて、消去回数を増減させることも可能であることは言うまでもない。【００７０】
本実施の形態を用いることにより、ＤＲＡＭ１０４に消去回数テーブルを格納する必要がないため、低コストなＳＳＤを提供することが出来る。また、メモリへのアクセス回数を低減できるため、高性能なＳＳＤを提供することが出来る。
【実施例４】
【００７１】
本実施の形態４による半導体ストレージは、ＳＳＤがＤＲＡＭを持たず、消去回数テーブルを不揮発性メモリに格納することを特徴とする。図１７は本実施の形態４におけるＳＳＤの構成を示している。【００７２】
本構成の場合、ＤＲＡＭを持たないため、ＳＳＤのコストを低減できる利点がある。また、突然の停電における揮発性メモリであるＤＲＡＭの情報喪失を防げるため、ＤＲＡＭへバッテリーバックアップなどを行う必要がなくなり、ＳＳＤのコストをさらに低減できる利点がある。
【実施例５】
【００７３】
本実施の形態５による半導体ストレージは、ＬＢＡから論理ブロック番号、剰余番号、セクタを求める手順Ｓ３に関して、その計算方法を変更したものである。計算方法を図１８に示す。【００７４】
実施の形態１ではＬＢＡアドレスの上位ビットを用いて論理ブロック番号を求めていたが、本実施の形態５では例えば、上位ビットを用いて剰余番号を求める。このようにすることでブロック内の消去回数のばらつきを平準化する。必ずしも上位ビット［３３：２６］を剰余番号にし、［２５：３］を論理ブロック番号にする必要はなく、例えば、［３０：２３］を剰余番号にし、ビット［３３：３１］とビット［２２：３］を連結して論理ブロック番号にすることも出来る。この場合、ＳＳＤの特定のブロックを管理領域に割り当てるのが容易になり、ＳＳＤの設計期間を短縮することが出来る。【００７５】
本実施の形態を用いることにより、ＳＳＤの高寿命化を追加のメモリ無しで行うことが出来るため、高信頼、低コストのＳＳＤを提供することが出来る。
【実施例６】
【００７６】
本実施の形態６では、アドレス変換テーブルと消去回数テーブルをＤＲＡＭ以外の領域に置いた例を説明する。【００７７】
図１９の半導体ストレージは、アドレス変換テーブルと消去回数テーブルをＳＲＡＭ１６１上に置くことを特徴とする。構成図を図１９に示す。ＳＲＡＭはＤＲＡＭよりも低レイテンシでアクセス可能なため、より高速に動作するＳＳＤを実現することができる。【００７８】
ＳＲＡＭは、ＳＳＤコントローラと同じチップにすることができる。この場合は、ＳＳＤ製造コストを削減できる。なお、ＳＳＤコントローラを複数のチップにより構成し、協調動作させることが可能であることは言うまでもない。一方、ＳＲＡＭは、ＳＳＤコントローラと別チップにすることもできる。この場合は大容量のＳＲＡＭを用いることができるため、より細かい単位で不揮発性メモリ１０２を制御することが可能になり、長寿命のＳＳＤを実現できる。【００７９】
また、アドレス変換テーブルと消去回数テーブルを、ＳＲＡＭの代わりにＭＲＡＭ上に置くこともできる（図示略）。【００８０】
ＭＲＡＭはＤＲＡＭと異なり不揮発性であるため、不意の停電などによるデータ消失を防ぐための予備電源を不要、もしくは電源容量を小容量にすることができるため、安価にＳＳＤを製造できる利点がある。【００８１】
また、図２０のように、アドレス変換テーブルと消去回数テーブルをストレージ制御装置２１１上に置くこともできる。この場合、従来、複数のＳＳＤ毎にそれぞれ存在したアドレス変換テーブルと消去回数テーブルを1か所に集約できるため、テーブルデータ保護のためのバッテリーなどのコストを低減できる効果がある。図２０に示すような複数のＳＳＤとストレージ制御システムからなるシステムをストレージシステムとする。アドレス変換テーブルと消去回数テーブルは、ストレージ制御装置２１１内の例えば、ＤＲＡＭに置くことができる。なお、ＳＬＣ  ＮＡＮＤフラッシュメモリやＭＬＣ  ＮＡＮＤフラッシュメモリ、ＭＲＡＭ、ＳＲＡＭに格納することも可能であることは言うまでもない。なお、ＳＳＤはＤＲＡＭを持つことが出来ることは言うまでもない。その場合、ＤＲＡＭにデータキャッシュを設けることで高速なＳＳＤを実現することができる。【００８２】
ストレージ制御装置２１１は、前述したように、ＲＡＩＤなどを用いたデータ冗長化による高信頼化、バックアップ機能、スナップショット機能、重複排除機能などの制御を行う。【００８３】
また、図２１のように、アドレス変換テーブルと消去回数テーブルをサーバー２２１上に置くこともできる。この場合、ＳＳＤが持つＳＳＤ管理情報のデータサイズを少なくできるため、ＳＳＤ管理情報を格納するためのＳＳＤ内のＤＲＡＭのデータサイズを小さくする、もしくは、ＤＲＡＭを無くすことができる、もしくは同じＳＳＤ容量でＳＳＤ内の不揮発性メモリのデータサイズを小さくすること出来る。そのため、ＳＳＤのコストを低減できる利点がある。【００８４】
この場合、ホストインターフェース１０５は独自のプロトコルを用いることでホストがＳＳＤを制御する自由度を高めることが望ましい。これにより、例えばホストが不揮発性メモリ内の不要データをより適切なタイミング、例えば、ホストがアイドル時であるときに消去できるため、高性能なＳＳＤを提供することが出来る。【００８５】
ＳＳＤとサーバー間にストレージ制御装置やキャッシュ制御装置を設けることが可能であることは言うまでもない。この場合、スナップショットなどのストレージ機能の提供や、複数サーバー間でのキャッシュ共有などの機能の提供が可能になる。一方、ＳＳＤとサーバー間にストレージ制御装置やキャッシュ制御装置を設けない場合、安価なコンピュータシステムを提供することができる。
【符号の説明】
【００８６】
１０１…ＳＳＤ
１０２…不揮発性メモリ
１０３…ＳＳＤコントローラ
１０４…ＤＲＡＭ
１０５…ホストインターフェース
１０８、１１１…アドレス変換テーブル
１０９、１１２…消去回数テーブル
１６１…ＳＲＡＭ  ２０２…アドレス変換、オフセットテーブル
２１１…ストレージ制御装置
２１２…サーバー−ストレージ制御装置間インターフェース
２２１…サーバー。
【図１】
0006018696.tif 000002
【図２】
0006018696.tif 000003
【図３】
0006018696.tif 000004
【図４】
0006018696.tif 000005
【図５】
0006018696.tif 000006
【図６】
0006018696.tif 000007
【図７】
0006018696.tif 000008
【図８】
0006018696.tif 000009
【図９】
0006018696.tif 000010
【図１０】
0006018696.tif 000011
【図１１】
0006018696.tif 000012
【図１２】
0006018696.tif 000013
【図１３】
0006018696.tif 000014
【図１４】
0006018696.tif 000015
【図１５】
0006018696.tif 000016
【図１６】
0006018696.tif 000017
【図１７】
0006018696.tif 000018
【図１８】
0006018696.tif 000019
【図１９】
0006018696.tif 000020
【図２０】
0006018696.tif 000021
【図２１】
0006018696.tif 000022