(57)【特許請求の範囲】
【請求項１】
不揮発性の第１のメモリと、
前記第１のメモリより高速にアクセス可能な第２のメモリと、
前記第１のメモリおよび前記第２のメモリへのアクセスに対する制御を行う制御部とを有し、
前記制御部は、
前記第１のメモリに、前記第１のメモリにアクセスするために与えられた論理アドレスを物理アドレスに変換するアドレス変換テーブルを複数に分割して記憶し、
前記第２のメモリに、前記複数に分割された部分アドレス変換テーブルを複数記憶し、
さらに、前記制御部は、前記第２のメモリに記憶された前記複数の部分アドレス変換テーブルをキャッシュ制御し、
前記キャッシュ制御の方法として、論理アドレスを基にして検索するエントリを限定し、かつ、アクセス頻度を基にして破棄するキャッシュを決定し、
前記キャッシュ制御において更新された部分アドレス変換テーブルを前記第１のメモリに書き戻すときのデータサイズは、前記部分アドレス変換テーブルよりも大きく、かつ前記第１のメモリに適する書き込みサイズであることを特徴とする不揮発性記憶装置。
【請求項２】
請求項１に記載の不揮発性記憶装置において、
前記第１のメモリは、相変化メモリであることを特徴とする不揮発性記憶装置。
【請求項３】
請求項１に記載の不揮発性記憶装置において、
１つの半導体チップが前記第１のメモリと前記第２のメモリを有することを特徴とする不揮発性記憶装置。
【請求項４】
請求項１に記載の不揮発性記憶装置において、
前記第２のメモリは、相変化メモリであることを特徴とする不揮発性記憶装置。
【請求項５】
請求項１に記載の不揮発性記憶装置において、
前記制御部は、
前記第１のメモリに、前記アドレス変換テーブルを記憶し、
前記第２のメモリに、前記部分アドレス変換テーブルのキャッシュと、前記部分アドレス変換テーブルが前記第１のメモリのどこに記憶されているかを示す第２のテーブルとを記憶し、
前記第２のテーブルに、前記部分アドレス変換テーブルの前記第１のメモリ内でのアドレスを複数記憶する、ことを特徴する不揮発性記憶装置。
【請求項６】
請求項５に記載の不揮発性記憶装置において、
前記第２のメモリは、ＤＲＡＭであることを特徴とする不揮発性記憶装置。
【請求項７】
請求項５に記載の不揮発性記憶装置において、
前記制御部は、前記第２のテーブルを用いて前記アドレス変換テーブルのスタティックウェアレベリングを行うことを特徴とする不揮発性記憶装置。
【請求項８】
請求項１に記載の不揮発性記憶装置において、
前記制御部は、
前記第１のメモリに、前記第１のメモリに記憶されたデータが消去可能か否かを示す消去テーブルを複数に分割して記憶し、
前記第２のメモリに、前記複数に分割された部分消去テーブルを複数記憶する、ことを特徴とする不揮発性記憶装置。
【請求項９】
請求項８に記載の不揮発性記憶装置において、
前記制御部は、前記第２のメモリに記憶された前記複数の部分消去テーブルを同時に前記第１のメモリに記憶することを特徴とする不揮発性記憶装置。
【請求項１０】
請求項８に記載の不揮発性記憶装置において、
前記第２のメモリに記憶される前記複数の部分消去テーブルには、前記第１のメモリの分割された領域がホスト機器からアクセスされる可能性があるか否かを検索可能な情報を含むことを特徴する不揮発性記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ管理装置を含む不揮発性記憶装置に関する。より詳細には、書き込み可能な不揮発性メモリ、例えばフラッシュメモリもしくは相変化メモリを有する記憶装置に関し、書き込み又は読み出しを管理するメモリ管理装置を含む不揮発性記憶装置に適用して有効な技術に関する。
【背景技術】
【０００２】
不揮発性メモリの一つであるフラッシュメモリを有する不揮発性記憶装置は、フラッシュメモリにアクセスするために与えられる論理アドレスを物理アドレスに変換することで、データの書き込みや読み出しを行う。そして、このアドレス変換のためのアドレス管理情報を有している。
【０００３】
本技術分野の背景技術として、特開２００４−１９９６０５号公報（特許文献１）がある。この特許文献１には、不揮発性メモリのアドレス管理情報を不揮発性メモリ内に記憶し、そのアドレス管理情報のうちの必要部分のみを揮発性メモリに読み出して使用することや、データ更新時に発生するＡＴ（アドレス管理テーブル）の更新の際に次ＡＴを現在のＡＴとは別の書き込み領域に書き込むことが記載されている。
【０００４】
また、特開２００２−７３４０９号公報（特許文献２）がある。この特許文献２には、ＲＡＭにアドレス変換テーブルの一部を保持することや、論理アドレスに対応するアドレス変換情報がＲＡＭ内に存在しない場合、ＲＡＭ内のアドレス変換テーブルの一部を不揮発性メモリにコピーし、不揮発性メモリ内の論理アドレスに対応するアドレス変換テーブルの一部をＲＡＭにコピーすることが記載されている。
【０００５】
また、特開２００４−１２７１８５号公報（特許文献３）がある。この特許文献３には、メモリーカードは、消去及び書き込み可能な不揮発性メモリ例えばフラッシュメモリと、ＤＲＡＭ又はＳＲＡＭ等からなるバッファメモリと、メモリ制御及び外部インタフェース制御を行うカードコントローラとを、実装基板に備えてなることや、フラッシュメモリは、そのメモリアレイの一部に消去テーブル及びアドレス変換テーブルを有することが記載されている。さらに、フラッシュメモリの記憶領域（メモリアレイ）は、消去テーブル、アドレス変換テーブル及びユーザーエリア、消去テーブルとアドレス変換テーブルを更新するときに必要となる空きブロック領域に大別されることが記載されている。
【０００６】
さらに、米国特許第５，９００，０１６号明細書（特許文献４）がある。この特許文献４には、マイクロプロセッサ、キャッシュメモリ、メインメモリを含むコンピュータシステムに関して、ダーティビットを用いたキャッシュ制御ロジックが記載されている。
【０００７】
また、非特許文献１がある。この非特許文献１には、相変化メモリを積層する半導体記憶装置が記載されている。また、前記の半導体記憶装置が大容量かつ高速にアクセス可能であることが記載されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００４−１９９６０５号公報
【特許文献２】特開２００２−７３４０９号公報
【特許文献３】特開２００４−１２７１８５号公報
【特許文献４】米国特許第５，９００，０１６号明細書
【非特許文献】
【０００９】
【非特許文献１】２０１１  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  ＶＬＳＩ  Ｔｅｃｈｎｏｌｏｇｙ  Ｄｉｇｅｓｔ  ｏｆ  Ｔｅｃｈｎｉｃａｌ  Ｐａｐｅｒｓ  第９６頁〜第９７頁
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、上述した特許文献１〜４及び非特許文献１を含む従来技術において、ＤＲＡＭにアドレス変換テーブルを有する場合には、不揮発性記憶装置の大容量化に比例して、アドレス変換テーブル及び消去テーブルのサイズが大きくなる。そのため、大容量のＤＲＡＭが必要になり、ＤＲＡＭチップ数の増加やコストの増加を招くという課題があった。
【００１１】
また、フラッシュメモリや相変化メモリを含む不揮発性メモリにアドレス変換テーブル及び消去テーブルを有し、ホスト機器からのアクセス毎にアドレス変換テーブルにアクセスする場合には、ＤＲＡＭに比べて低速な不揮発性メモリからアドレス変換テーブル及び消去テーブルの情報を読み出し、書き込む必要がある。そのため、ＤＲＡＭにアドレス変換テーブル及び消去テーブルを有する場合に比べて、不揮発性記憶装置のアクセス速度が低下するという課題があった。
【００１２】
そこで、本発明は上述した従来技術の課題を解決するために成されたものであり、その代表的な目的は、製造コストを低減し、アクセス性能及び信頼性が高く、省スペースな不揮発性記憶装置を提供することにある。
【００１３】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１４】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次の通りである。
【００１５】
（１）代表的な不揮発性記憶装置は、不揮発性の第１のメモリと、前記第１のメモリより高速にアクセス可能な第２のメモリと、前記第１のメモリおよび前記第２のメモリへのアクセスに対する制御を行う制御部とを有する。そして、前記制御部は、前記第１のメモリに、前記第１のメモリにアクセスするために与えられた論理アドレスを物理アドレスに変換するアドレス変換テーブルを複数に分割して記憶し、さらに、前記第２のメモリに、前記複数に分割された部分アドレス変換テーブルを複数記憶する、ことを特徴する。
【００１６】
（２）代表的な別の不揮発性記憶装置は、不揮発性の第１のメモリと、前記第１のメモリより高速にアクセス可能な第２のメモリと、前記第１のメモリおよび前記第２のメモリへのアクセスに対する制御を行う制御部とを有する。そして、前記制御部は、前記第１のメモリに、前記第１のメモリのデータの論理アドレスを物理アドレスに変換を行う第１のテーブルを記憶し、さらに、前記第２のメモリに、前記第１のテーブルのキャッシュと、前記第１のテーブルが前記第１のメモリのどこに記憶されているかを示す第２のテーブルとを記憶し、さらに、前記第２のテーブルに、前記第１のテーブルの前記第１のメモリ内でのアドレスを複数記憶する、ことを特徴する。
【００１７】
（３）代表的な更に別の不揮発性記憶装置は、不揮発性の第１のメモリと、前記第１のメモリより高速にアクセス可能な第２のメモリと、前記第１のメモリおよび前記第２のメモリへのアクセスに対する制御を行う制御部とを有する。そして、前記制御部は、前記第１のメモリに、前記第１のメモリに記憶されたデータが消去可能か否かを示す消去テーブルを複数に分割して記憶し、さらに、前記第２のメモリに、前記複数に分割された部分消去テーブルを複数記憶する、ことを特徴とする。
【発明の効果】
【００１８】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下の通りである。
【００１９】
すなわち、代表的な効果は、製造コストを低減し、アクセス性能及び信頼性が高く、省スペースな不揮発性記憶装置を製造することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施の形態１である不揮発性記憶装置の構成の一例を示す図である。
【図２】図１に示す不揮発性記憶装置において、アドレス変換テーブルの一例を示す図である。
【図３】図１に示す不揮発性記憶装置において、容量１ＴＢの管理情報の一例を示す図である。
【図４】図１に示す不揮発性記憶装置に対する従来技術において、容量１ＴＢの課題を説明するための構成の一例を示す図である。
【図５】図１に示す不揮発性記憶装置において、容量１ＴＢの課題を解決する方法を説明するための構成の一例を示す図である。
【図６】図１に示す不揮発性記憶装置の制御方法において、読み出し動作を説明するフローチャートの一例を示す図である。
【図７】図１に示す不揮発性記憶装置の制御方法において、アドレス変換テーブルキャッシュの更新動作を説明するフローチャートの一例を示す図である。
【図８】図１に示す不揮発性記憶装置の制御方法において、書き換え動作を説明するフローチャートの一例を示す図である。
【図９】図１に示す不揮発性記憶装置の制御方法において、消去テーブルキャッシュの更新動作を説明するフローチャートの一例を示す図である。
【図１０】図１に示す不揮発性記憶装置の制御方法において、データ領域のウェアレベリング動作を説明するフローチャートの一例を示す図である。
【図１１】図１に示す不揮発性記憶装置の制御方法において、アドレス変換テーブル（データ管理情報を格納する領域）のウェアレベリング動作を説明するフローチャートの一例を示す図である。
【図１２】図１に示す不揮発性記憶装置の制御方法において、稼働時間と最大ブロック消去回数の関係の一例を示す図である。
【図１３】図１に示す不揮発性記憶装置の制御方法において、ＲＡＭの構成の変形例を示す図である。
【図１４】図１に示す不揮発性記憶装置の制御方法において、エリアテーブルを説明するための図である。
【図１５】（ａ）〜（ｃ）は図１に示す不揮発性記憶装置の制御方法において、論理アドレスと物理アドレスを説明するための図である。
【図１６】本発明の実施の形態２である不揮発性記憶装置の構成の一例を示す図である。
【図１７】図１６に示す不揮発性記憶装置において、不揮発性記憶装置の構成の変形例を示す図である。
【図１８】本発明の実施の形態４である不揮発性記憶装置において、エリアテーブルを説明するための図である。
【発明を実施するための形態】
【００２１】
以下の実施の形態においては、便宜上その必要があるときは、複数の実施の形態またはセクションに分割して説明するが、特に明示した場合を除き、それらは互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でも良い。
【００２２】
さらに、以下の実施の形態において、その構成要素（要素ステップ等も含む）は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。
【００２３】
［実施の形態の概要］
まず、実施の形態の概要について説明する。本実施の形態の概要では、一例として、括弧内に各実施の形態の対応する構成要素および符号を付して説明する。
【００２４】
（１）実施の形態の代表的な不揮発性記憶装置（ＳＳＤ２０２）は、不揮発性の第１のメモリ（ＮＶＭ２０５）と、前記第１のメモリより高速にアクセス可能な第２のメモリ（ＲＡＭ２０６）と、前記第１のメモリおよび前記第２のメモリへのアクセスに対する制御を行う制御部（制御部２０４）とを有する。そして、前記制御部は、前記第１のメモリに、前記第１のメモリにアクセスするために与えられた論理アドレスを物理アドレスに変換するアドレス変換テーブル（アドレス変換テーブルＬＰＴ）を複数に分割して記憶し、さらに、前記第２のメモリに、前記複数に分割された部分アドレス変換テーブル（アドレス変換子テーブルＬＰＴ−ＳＲ）を複数記憶する、ことを特徴する。
【００２５】
（２）実施の形態の代表的な別の不揮発性記憶装置（ＳＳＤ２０２）は、不揮発性の第１のメモリ（ＮＶＭ２０５）と、前記第１のメモリより高速にアクセス可能な第２のメモリ（ＲＡＭ２０６）と、前記第１のメモリおよび前記第２のメモリへのアクセスに対する制御を行う制御部（制御部２０４）とを有する。そして、前記制御部は、前記第１のメモリに、前記第１のメモリのデータの論理アドレスを物理アドレスに変換を行う第１のテーブル（アドレス変換テーブルＬＰＴ）を記憶し、さらに、前記第２のメモリに、前記第１のテーブルのキャッシュ（アドレス変換テーブルキャッシュＬＰＴ−Ｃ）と、前記第１のテーブルが前記第１のメモリのどこに記憶されているかを示す第２のテーブル（エリアテーブル２０７）とを記憶し、さらに、前記第２のテーブルに、前記第１のテーブルの前記第１のメモリ内でのアドレスを複数記憶する、ことを特徴する。
【００２６】
（３）実施の形態の代表的な更に別の不揮発性記憶装置（ＳＳＤ２０２）は、不揮発性の第１のメモリ（ＮＶＭ２０５）と、前記第１のメモリより高速にアクセス可能な第２のメモリ（ＲＡＭ２０６）と、前記第１のメモリおよび前記第２のメモリへのアクセスに対する制御を行う制御部（制御部２０４）とを有する。そして、前記制御部は、前記第１のメモリに、前記第１のメモリに記憶されたデータが消去可能か否かを示す消去テーブル（消去テーブルＥＴ）を複数に分割して記憶し、さらに、前記第２のメモリに、前記複数に分割された部分消去テーブル（消去子テーブルＥＴ−ＳＲ）を複数記憶する、ことを特徴とする。
【００２７】
以下、上述した実施の形態の概要に基づいた各実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００２８】
［実施の形態１］
実施の形態１の不揮発性記憶装置について、図１〜図１５を用いて説明する。
【００２９】
本実施の形態では、不揮発性記憶装置（ＳＳＤ：Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）の例を説明する。以下においては、この不揮発性記憶装置をＳＳＤと記載する場合がある。また、この不揮発性記憶装置を構成する不揮発性メモリ（ＮＶＭ：Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ）を、ＮＶＭと記載する場合がある。更に他の構成要素についても、略称で記載する場合がある。
【００３０】
＜不揮発性記憶装置（ＳＳＤ）の構成＞
図１を用いて、本実施の形態の不揮発性記憶装置（ＳＳＤ）の構成について説明する。併せて、ＳＳＤとホスト機器との接続についても述べる。図１は、このＳＳＤの構成の一例を示す図である。
【００３１】
ＳＳＤ２０２は、ホストインターフェース（Ｉ／Ｆ）２０３と、このホストＩ／Ｆ２０３にインターフェース２３０で接続された制御部２０４と、この制御部２０４に接続されたＮＶＭ２０５と、この制御部２０４に接続されたＲＡＭ２０６から構成される。
【００３２】
このＳＳＤ２０２は、ホスト機器２０１とインターフェース２３０を用いて接続される。インターフェース２３０としては、ＳＡＴＡ（Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）や、ＰＣＩ  ｅｘｐｒｅｓｓ、ＦＣ−ＡＬ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  Ａｒｂｉｔｒａｔｅｄ  Ｌｏｏｐ）、ＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ）を用いることができる。また、ホスト機器２０１がタブレット型コンピュータやスマートフォンの場合は、プリント基板上に実装されたパラレル接続の内部バスを用いることもできる。インターフェース信号として、電気信号のほかに、光信号を用いることができることは言うまでもない。
【００３３】
ホストＩ／Ｆ２０３は、ＰＨＹ（物理層）を含むことができる。特に、インターフェース２３０がシリアル接続の場合、ホストＩ／Ｆ２０３はシリアル−パラレル変換回路やシリアル転送のクロック生成、インターフェース２３０の通信制御を行うのが望ましい。
【００３４】
ホストＩ／Ｆ２０３と制御部２０４は、内部バス２３１で接続することができる。この内部バス２３１は、レイテンシの少ないパラレル接続が望ましい。
【００３５】
制御部２０４は、データ書き込みバッファを備え、データの書き込み時にはデータにＥＣＣ（Ｅｒｒｏｒ  Ｃｈｅｃｋ  ａｎｄ  Ｃｏｒｒｅｃｔ  ｍｅｍｏｒｙ）を付加し、データの読み出し時にはＥＣＣの検査、訂正を行うのが良い。また、ＮＶＭ２０５上のアドレス変換テーブルＬＰＴ、消去テーブルＥＴにもＥＣＣの付加、検査、訂正を行うのが良い。さらに、ＲＡＭ（例えばＤＲＡＭ）２０６上のアドレス変換テーブルキャッシュＬＰＴ−Ｃ、消去テーブルキャッシュＥＴ−ＣにもＥＣＣの付加、検査、訂正を行うことで、高信頼なＳＳＤ２０２を提供することもできる。このような高信頼のＳＳＤ２０２は、特にサーバーの記録装置として用いることができる。制御部２０４は、ＳＳＤコントローラのことを指す。
【００３６】
制御部２０４は、ホスト機器２０１から送られるアクセス要求に対して、制御部２０４内のＳＲＡＭや、ＲＡＭ２０６、ＮＶＭ２０５に記憶されたデータを用いて、制御を行い、ホスト機器２０１に制御の結果に応じた応答を返すコントローラである。
【００３７】
ＲＡＭ２０６には、エリアテーブル２０７と、アドレス変換テーブルキャッシュＬＰＴ−Ｃ（Ｌｏｇｉｃａｌ  Ｐｈｙｓｉｃａｌ  ｔｒａｎｓｌａｔｉｏｎ  Ｔａｂｌｅ−Ｃａｃｈｅ）、消去テーブルキャッシュＥＴ−Ｃ（Ｅｒａｓｅ  Ｔａｂｌｅ−Ｃａｃｈｅ）が記憶される。そのほかに、ブロック管理情報を設けることが可能であることは言うまでもない。
【００３８】
さらに、アドレス変換テーブルキャッシュＬＰＴ−Ｃは、複数のアドレス変換子テーブルＬＰＴ−ＳＲ（Ｌｏｇｉｃａｌ  Ｐｈｙｓｉｃａｌ  Ｔａｂｌｅ−Ｓｕｂ  ｏｎ  ＲＡＭ）（ＬＰＴ−ＳＲ＃１、ＬＰＴ−ＳＲ＃２）を持つ。アドレス変換子テーブルＬＰＴ−ＳＲ毎に、バリッドフラグ２１４（２１４ａ、２１４ｂ）、ダーティーフラグ２１５（２１５ａ、２１５ｂ）、Ｔａｇ２１６（２１６ａ、２１６ｂ）を持つ。
【００３９】
また、消去テーブルキャッシュＥＴ−Ｃは、複数の消去子テーブルＥＴ−ＳＲ（Ｅｒａｓｅ  Ｔａｂｌｅ−Ｓｕｂ  ｏｎ  ＲＡＭ）（ＥＴ−ＳＲ＃１、ＥＴ−ＳＲ＃２）を持つ。消去子テーブルＥＴ−ＳＲ毎に、バリッドフラグ２１８（２１８ａ、２１８ｂ）と、ダーティーフラグ２１９（２１９ａ、２１９ｂ）、Ｔａｇ２２０（２２０ａ、２２０ｂ）を持つ。
【００４０】
さらに、キャッシュの管理に、バリッドフラグ、ダーティーフラグ、Ｔａｇを用いることができる。具体的な制御は、下記の通り行う。例えば、アドレス変換テーブルキャッシュＬＰＴ−Ｃにアドレス変換子テーブルＬＰＴ−ＳＲがまだコピーされていない状態では、すべてのバリッドフラグは「偽」である。アドレス変換テーブルキャッシュＬＰＴ−Ｃにアドレス変換子テーブルＬＰＴ−ＳＲの一つがコピーされると、そのアドレス変換子テーブルＬＰＴ−ＳＲ部分のバリッドフラグを「真」にする。また、ダーティーフラグを「偽」にする。また、論理アドレスの少なくとも一部（例えば、アドレス３２ビット中の上位２４ビット、エントリアドレス）をＴａｇとして保存する。
【００４１】
アドレス判定は、まず、論理アドレスの少なくとも一部（例えば、アドレス３２ビット中の下位８ビット）を用いて、検索するべきアドレス変換テーブルキャッシュＬＰＴ−Ｃの検索範囲（エントリ）を限定し、次に、Ｔａｇを比較することでアドレス変換子テーブルＬＰＴ−ＳＲを検索し（同一エントリ中のライン検索）、キャッシュのヒット判定を行う。
【００４２】
以上の説明では、キャッシュのデータ更新方式としてライトバック方式、データ格納構造としてセットアソシエイティブ（Ｓｅｔ  ａｓｓｏｃｉａｔｉｖｅ）方式を例にしたが、そのほかのキャッシュ制御方式を用いることができることは言うまでもない。
【００４３】
アドレス変換テーブルキャッシュＬＰＴ−Ｃと同様の制御を、消去テーブルキャッシュＥＴ−Ｃについても行うことができる。なお、消去テーブルのデータサイズはアドレス変換テーブルのデータサイズに比べて小さいため、アドレス変換テーブルについてのみ、キャッシュ制御を行うことができる。その場合、消去テーブルの制御が単純になるため、ＳＳＤコントローラの構成が単純になり、開発期間、開発コストを低減することができる。
【００４４】
アドレス書き換えにより、ＮＶＭ２０５内のアドレス変換子テーブルＬＰＴ−Ｓの情報とＲＡＭ２０６内のアドレス変換子テーブルＬＰＴ−ＳＲの情報が異なるようになった場合、そのアドレス変換子テーブルＬＰＴ−ＳＲに関するダーティーフラグを「真」にする。さらに、アドレス変換テーブルキャッシュＬＰＴ−Ｃ内のアドレス変換子テーブルＬＰＴ−ＳＲを消去する場合は、そのアドレス変換子テーブルＬＰＴ−ＳＲに関するダーティーフラグが「偽」であれば、単に消去を行い、「真」であれば、ＮＶＭ２０５に書き戻す。なお、書き戻す先の物理アドレスは、必ずしもコピー元の物理アドレスと一致する必要はない。
【００４５】
次に、ＮＶＭ２０５は、エリアテーブルバックアップ２０８と、アドレス変換テーブルＬＰＴ（Ｌｏｇｉｃａｌ  Ｐｈｙｓｉｃａｌ  ｔｒａｎｓｌａｔｉｏｎ  Ｔａｂｌｅ）、消去テーブルＥＴ（Ｅｒａｓｅ  Ｔａｂｌｅ）、データ領域（＃０〜＃３）を持つ。アドレス変換テーブルＬＰＴは、複数のアドレス変換子テーブルＬＰＴ−Ｓ（Ｌｏｇｉｃａｌ  Ｐｈｙｓｉｃａｌ  Ｔａｂｌｅ−Ｓｕｂ）（ＬＰＴ−Ｓ＃０〜ＬＰＴ−Ｓ＃３）からなる。また、消去テーブルＥＴは、複数の消去子テーブルＥＴ−Ｓ（Ｅｒａｓｅ  Ｔａｂｌｅ−Ｓｕｂ）（ＥＴ−Ｓ＃０〜ＥＴ−Ｓ＃３）からなる。
【００４６】
なお、揮発性のメモリ、もしくは信頼性がＮＶＭ２０５よりも劣るメモリをＲＡＭ２０６として用いる場合には、エリアテーブルの内容をエリアテーブルバックアップ２０８にバックアップする。ＳＳＤ２０２の電源が遮断されるときにバックアップを行う。また、一定量のライトアクセスがエリアテーブルに行われたときにバックアップを行うこともできる。特に、ＳＳＤ２０２へのホスト機器２０１からのライト命令が一定時間ないときにバックアップを行うことができる。バックアップ頻度を高くするとエリアテーブルの情報喪失が生じにくくなるため、ＳＳＤ２０２の信頼性は向上するが、書き込みに伴うＮＶＭ２０５へのデータライトサイズとライト時間の増大は、ＳＳＤ２０２の性能を低下させる。
【００４７】
＜アドレス変換テーブルの構成＞
図２を用いて、前述したアドレス変換テーブルＬＰＴの構造を説明する。図２は、このアドレス変換テーブルＬＰＴの一例を示す図である。
【００４８】
アドレス変換テーブルＬＰＴは、ホスト機器２０１から要求されるときに指定される論理アドレスをＮＶＭ２０５の物理アドレスに変換するテーブルである。アドレス変換テーブルＬＰＴは、複数のアドレス変換子テーブルＬＰＴ−Ｓに分割されて管理される。
【００４９】
アドレス変換子テーブルＬＰＴ−ＳのＮＶＭ２０５内の物理アドレスはエリアテーブルにより管理されている。すなわち、エリアテーブルは、論理アドレス（ＬＰＮ）をアドレス変換子テーブルＬＰＴ−Ｓの物理アドレス（ＰＰＮ）に変換するテーブルである。
【００５０】
アドレス変換子テーブルＬＰＴ−Ｓの中では、論理アドレスは連続していることがテーブル管理を簡素化するために望ましい。管理方法が簡素であれば、回路及びソフトウェアの設計ミス（バグ）を低減し、高信頼で動作するＳＳＤ２０２を短期間で提供することできる効果がある。
【００５１】
ここでは、ＮＶＭ２０５の最小書き込み単位である物理ページサイズを４ＫＢとし、アドレス変換子テーブルＬＰＴ−Ｓのサイズを４ＫＢとして説明する。アドレス変換子テーブルＬＰＴ−Ｓのデータサイズを物理ページサイズにＮＶＭ２０５のプレーン数を掛け算したものにすることや、下記の（１）式にすることができる。
【００５２】
ＮＶＭの物理ページサイズ×ＮＶＭのプレーン数×ＮＶＭのｃｈ数  …  （１）
上記の（１）式のデータサイズにすることで、簡易な制御方法でＮＶＭ２０５の全ｃｈ（チャンネル）を同時に動作させることが可能になるため、高性能なＳＳＤ２０２を短期間で製造することができる。
【００５３】
ＮＶＭ２０５の物理アドレス（ＰＰＮ）１個のデータサイズを４Ｂとした。ＳＳＤ２０２におけるデータ管理サイズは４ＫＢとした。実際のデータ管理サイズは、ホスト機器２０１のＯＳ（オペレーティングシステム）や、使われ方（要求される信頼性と性能やホスト機器２０１から要求されるデータパターン）に応じて定めるのが良い。ＯＳのデータ管理単位は、４ＫＢであることがある。例えば、Ｗｉｎｄｏｗｓ  ＶＩＳＴＡ（登録商標）の場合、ＮＴＦＳ（ＮＴ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）におけるデフォルトのクラスタサイズ（ファイルを保持するために割り当てることのできるディスク領域の最小単位）は、ボリュームサイズが７ＭＢ〜１６ＴＢの場合、４ＫＢである。
【００５４】
例えば、ホスト機器２０１からデータサイズ４ＫＢのデータ書き換え要求があった場合には、データ管理サイズが４ＫＢであれば、ホスト機器２０１から送られたデータをそのままＮＶＭ２０５に書き込めば良いため、ＮＶＭ２０５へのデータ書き込みサイズは４ＫＢになる。一方、データ管理サイズが３２ＫＢであれば、まず、ＮＶＭ２０５からデータサイズ２８ＫＢのデータを読み出し、ホスト機器２０１から送られたデータ４ＫＢと足し合わせて、３２ＫＢのデータにし、ＮＶＭ２０５に書き込むことになる。データ管理サイズが４ＫＢと比較すると、データ書き込みサイズが８倍になる。
【００５５】
以上の通り、データ管理サイズを大きくすると、ＳＳＤ２０２の管理情報が少なくて済むが、ＳＳＤ２０２の転送性能や寿命が低下することがある。ＳＳＤ２０２の管理情報としては、アドレス変換テーブルＬＰＴと消去テーブルＥＴ、ブロック毎の管理情報、ＳＳＤコントローラの制御に必要な情報（例えば、次に書き込むＮＶＭ２０５のページ番号や全ブロックにおける消去回数の最低回数など）がある。
【００５６】
アドレス変換子テーブルＬＰＴ−Ｓのサイズが４ＫＢであり、物理アドレス（ＰＰＮ）のサイズが４Ｂであるため、一つのアドレス変換子テーブルＬＰＴ−Ｓは１０２４個の論理アドレスから物理アドレスへの変換を行うことができる。例えば、番号０のアドレス変換子テーブルＬＰＴ−Ｓは、論理アドレスＬＰＮと物理アドレスＰＰＮの対応を１０２４個分、持つことができる。また、番号１、２のアドレス変換子テーブルＬＰＴ−Ｓも、同様である。
【００５７】
番号０のアドレス変換子テーブルＬＰＴ−Ｓは、論理アドレスＬＰＮ０から１０２３までに対応する１０２４個分の物理アドレス（ＰＰＮ）の情報を持つ。また、番号１のアドレス変換子テーブルＬＰＴ−Ｓは論理アドレスＬＰＮ１０２４から２０４７まで、番号２のアドレス変換子テーブルＬＰＴ−Ｓは論理アドレスＬＰＮ２０４８から３０７１まで、に対応する１０２４個分の物理アドレス（ＰＰＮ）の情報を持つ。
【００５８】
なお、ホスト機器２０１は、５１２Ｂ単位のＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓｉｎｇ）により、データのアドレスとサイズを指定することができる。論理アドレスＬＰＮは、ＬＢＡに５１２Ｂを掛け、さらにデータ管理サイズで割ることで求めることができる。
【００５９】
図２に示される通り、連続するアドレス変換子テーブル番号に含まれる論理アドレス（ＬＰＮ）は連続させても良い。アドレス変換子テーブルには、複数の論理アドレスと物理テーブルの対応が含まれるのが望ましい。また、アドレス変換子テーブル単位でウェアレベリングを行うことができる。アドレス変換子テーブルのデータサイズとＳＳＤ２０２におけるデータ管理サイズは同一にすることができる。このようにすることで、データとＳＳＤ２０２の管理情報を同様に扱うことができるため、信頼性の高いＳＳＤ２０２を短期間に提供することができる。
【００６０】
図２に示された論理アドレスＬＰＮ０は、論理アドレス空間０〜３ＫＢのサイズ４ＫＢのアドレス空間に対応し、論理アドレスＬＰＮ１は４〜７ＫＢのサイズ４ＫＢのアドレス空間に対応し、以降同様に、各論理アドレスＬＰＮはそれぞれサイズ４ＫＢのアドレス空間に対応する。
【００６１】
＜不揮発性記憶装置の管理情報＞
図３を用いて、前述したＳＳＤ２０２の管理情報について説明する。図３は、容量１ＴＢの管理情報の一例を示す図である。すなわち、ＳＳＤ２０２の容量（ホスト機器２０１からアクセス可能な容量）を１ＴＢとする。ＮＶＭ２０５に必要な容量は、ＳＳＤ２０２の容量に管理情報や予備領域を足した容量となる。
【００６２】
データ管理サイズをＷｉｎｄｏｗｓ  ＯＳ（登録商標）などに向く４ＫＢとすると、アドレス変換テーブルＬＰＴのサイズは１ＧＢになる。なお、論理アドレス（ＬＰＮ）から物理アドレス（ＰＰＮ）の対応１個に要するデータサイズを４Ｂとしている。４Ｂ、すなわち３２ビットで表すことのできる４ＫＢ単位のアドレス空間は下記の（２）式で表される通り、１６ＴＢになる。
【００６３】
４ＫＢ×２３２＝１６ＴＢ  …  （２）
アドレス変換子テーブルＬＰＴ−Ｓのデータサイズは４ＫＢとする。このデータサイズは、ＮＶＭ２０５に効率的に書き込めるデータサイズにするのが良い。例えば、ＮＶＭ２０５のページサイズや上記ページサイズにＮＶＭ２０５のプレーン数を掛けたものや、さらにＮＶＭ２０５のチャンネル数を掛けたものにするのが良い。この場合、アドレス変換子テーブルＬＰＴ−Ｓの総数は２６２１４４個になる。同様に、消去テーブルＥＴのサイズは２５６ＭＢ、消去子テーブルＥＴ−Ｓのサイズは４ＫＢ、消去子テーブルＥＴ−Ｓの総数は６５５３６個とすることができる。データ管理サイズごとの消去情報は１Ｂ（バイト）で表すことができる。バリッド、非バリッドの情報だけを格納することにし、１ビットで表すこともできる。この場合、消去テーブルＥＴのサイズを小さくできるので、ＮＶＭ２０５の容量を小さくすることができるメリットがある。
【００６４】
エリアテーブルのデータサイズは１２８０ＫＢにすることができる。エリアテーブルはアドレス変換子テーブルＬＰＴ−Ｓと消去子テーブルＥＴ−Ｓの物理アドレスが格納されている。アドレス変換子テーブルＬＰＴ−Ｓ内の物理アドレスは連続しているため、先頭の物理アドレスのみを格納すれば良い。
【００６５】
エリアテーブルについて、さらに説明する。エリアテーブルにはアドレス変換子テーブルＬＰＴ−Ｓの物理アドレスと消去子テーブルＥＴ−Ｓの物理アドレスが格納されている。エリアテーブルを用いると、任意の論理アドレスに対応するアドレス変換子テーブルＬＰＴ−Ｓの物理アドレスを調べることができる。また、任意の物理アドレスに対応する消去子テーブルＥＴ−Ｓの物理アドレスを調べることもできる。
【００６６】
アドレス変換テーブルキャッシュＬＰＴ−Ｃと消去テーブルキャッシュＥＴ−Ｃのデータサイズは、それぞれ６４ＭＢと１６ＭＢにすることができる。このときに、アドレス変換子テーブルＬＰＴ−ＳＲと消去子テーブルＥＴ−ＳＲの数は、それぞれ１６３８４個と４０９６個になる。ターゲットとなるＯＳやアプリケーションに応じて、キャッシュサイズを変えることが可能なことは言うまでもない。
【００６７】
論理アドレス（ＬＰＮ）から物理アドレス（ＰＰＮ）に変換する方法について、さらに具体例を用いて説明する。
【００６８】
ホスト機器２０１から、例えば、開始アドレス「２９８２６４８」、データサイズ「８」のデータリードリクエストがＳＳＤ２０２に対して送られたとする。ホスト機器２０１の使用するアドレス指定方法は、５１２Ｂ単位でアドレス指定を行うＬＢＡであるとする。
【００６９】
制御部２０４、すなわちＳＳＤコントローラは前述した方法により、ＬＰＮ表記のスタートアドレスとデータサイズを得ることができる。すなわち、下記の（３）式と（４）式により、ＬＰＮに変換したスタートアドレスとデータサイズを求めることができる。
【００７０】
スタートアドレス（ＬＰＮ）＝２９８２６４８×５１２Ｂ／４ＫＢ
＝３７２８３１  …  （３）
データサイズ（ＬＰＮ）＝８×５１２Ｂ／４ＫＢ＝１  …  （４）
次に、参照するアドレス変換子テーブルの番号を決定する。具体的には、１個のアドレス変換子テーブルが管理する論理アドレスから物理アドレスへの対応の数は、アドレス変換子テーブルのサイズ４ＫＢを物理アドレス１個の大きさ、すなわち４Ｂで割ったものであるから、１０２４個になる。そのため、下記の（５）式により、参照するべきアドレス変換子テーブルの番号は「３６４」であることが分かる。なお、小数点以下は切り捨てている。
【００７１】
アドレス変換子テーブルの番号＝３７２８３１／１０２４＝３６４  …  （５）
次に、アドレス変換子テーブルのエントリを計算する。「３６４」は２進数で表すと「１０１１０１１００」であり、この下位６ビットは「１０１１００」である。これを１０進数で表すと「４４」になる。すなわち、アドレス変換子テーブル＃３６４はエントリ４４に所属することがわかる。なお、Ｔａｇは上位２６ビットを用いて計算することができる。アドレス変換子テーブル＃３６４のＴａｇは「５」であることがわかる。
【００７２】
そこで、ＲＡＭ２０６内のアドレス変換テーブルキャッシュＬＰＴ−Ｃのエントリ４４の検索を行う。各エントリには前述した通り、２５６個のアドレス変換子テーブルＬＰＴ−ＳＲが存在する。ＬＰＴ−ＳＲ毎にＴａｇが存在する。最大２５６個のＬＰＴ−ＳＲのＴａｇを調べ、一致するものがあるかを調べる。一致するものがあれば、さらにバリッドフラグを調べ、有効なキャッシュであれば、キャッシュがヒットしたという判定を行う。
【００７３】
まず、キャッシュヒットした場合について述べる。この場合、検索されたアドレス変換子テーブルを用いて、読み出すべきデータ、すなわち、論理アドレス（ＬＰＮ）「３７２８３１」の物理アドレスを調べる。具体的には、論理アドレス（ＬＰＮ）「３７２８３１」を、前述したアドレス変換子テーブルＬＰＴ−ＳＲ中の論理アドレスから物理アドレスへの対応の数「１０２４」で割り算し、剰余を求める。この場合、剰余は「９５」となる。すなわち、検索されたアドレス変換子テーブルＬＰＴ−ＳＲのＲＡＭ２０６における先頭アドレスから、さらに「９５」に物理アドレス１個の大きさ、すなわち、４Ｂを掛けたアドレスである３８０Ｂ分だけオフセットしたアドレスから４Ｂを読み出せば、論理アドレス（ＬＰＮ）「３７２８３１」の物理アドレスが得られる。
【００７４】
この物理アドレスには、データが収められているチップの番号、ブロック番号、ページ番号、プレーン番号を含んでおり、この物理アドレスが指すＮＶＭ２０５のアドレスにアクセスすることで、ホスト機器２０１から要求されたデータを読み出すことができる。
【００７５】
次に、キャッシュミスした場合について述べる。キャッシュミスした場合には、後述（図７）するアドレス変換テーブルキャッシュＬＰＴ−Ｃの更新処理を行い、アドレス変換テーブルＬＰＴから一部のアドレス変換子テーブルＬＰＴ−ＳをＲＡＭ２０６にコピーする。具体的には、エリアテーブル２０７を読み出し、アドレス変換子テーブルＬＰＴ−Ｓの物理アドレスを調べる。次に、アドレス変換子テーブルＬＰＴ−ＳをＲＡＭ２０６にコピーする。
【００７６】
エリアテーブル２０７のアクセス手順について、下記で述べる。前述した（５）式で計算した通り、今回の例では必要なアドレス変換子テーブルの番号は「３６４」である。エリアテーブルを用いると、論理アドレス（ＬＰＮ）からアドレス変換子テーブルの物理アドレスを調べることが可能である。具体的には、エリアテーブルの先頭アドレスから、さらに「３６４」に物理アドレス１個の大きさ、すなわち、４Ｂを掛けたアドレスである１４５６Ｂ分だけオフセットしたアドレスから４Ｂを読み出せば、アドレス変換子テーブルＬＰＴ−Ｓ＃３６４の物理アドレスが得られる。この物理アドレスを開始アドレスとし、データサイズ４ＫＢをＮＶＭ２０５から読み出せば、アドレス変換子テーブルＬＰＴ−Ｓ＃３６４が得られる。
【００７７】
このアドレス変換子テーブルＬＰＴ−Ｓ＃３６４をＲＡＭ２０６上の該当するエントリ、すなわち前述したエントリ４４のインバリッドのキャッシュに上書きし、アドレス変換子テーブルＬＰＴ−ＳＲ＃３６４とする。Ｔａｇ２１６を前述した方法で計算し、アドレス変換テーブルキャッシュＬＰＴ−Ｃに保持する。また、バリッドフラグ２１４をバリッドにする。さらに、ダーティーフラグ２１５をクリアし、クリーンなキャッシュ（ＮＶＭ２０５上のアドレス変換子テーブルＬＰＴ−ＳとＲＡＭ２０６上のアドレス変換子テーブルＬＰＴ−ＳＲが同一内容）であることを示す。
【００７８】
ＬＲＵ方式でキャッシュ制御を行う場合は、後述する図１３に示すＬＲＵフラグをゼロクリアし、最も最近にアクセスされたキャッシュであることを示す。さらに、エントリ４４に所属するそのほかのキャッシュのＬＲＵフラグをインクリメントする。
【００７９】
＜アドレス変換テーブルをＲＡＭ（特にＤＲＡＭ）においた場合の課題＞
図４を用いて、前述したアドレス変換テーブルＬＰＴをＲＡＭ２０６、特にＤＲＡＭに置いた場合（本実施の形態に対する従来技術）の課題について、さらに詳細に説明する。図４は、容量１ＴＢの課題を説明するための構成の一例を示す図である。
【００８０】
容量１ＴＢのＳＳＤのアドレス変換テーブルＬＰＴのデータサイズは１ＧＢになる。また、消去テーブルＥＴのデータサイズは２５６ＭＢになる。ＤＲＡＭのチップ当たりの容量を１Ｇｂとすると、ＤＲＡＭのチップ数は１０個となる。ＮＶＭの容量は、データ領域及び、電源遮断時のアドレス変換テーブルのバックアップ領域と消去テーブルのバックアップ領域、予備領域（ここでは３％とした）が必要であるため、例えば、１チップ当たり１３３ＧＢの容量となり、ＮＶＭのチップ数は８個となる。
【００８１】
ＤＲＡＭは、セル面積（１ビット当たりに必要とされる面積）がＮＶＭよりも大きいため、ビット当たりのコストがＮＶＭよりも高い。また、１９９０年〜２０１０年までのビット当たりのコストの変化や、ＩＴＲＳ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｔｅｃｈｎｏｌｏｇｙ  Ｒｏａｄｍａｐ  ｆｏｒ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒｓ、国際半導体技術ロードマップ）の将来予測を見ると、将来的にもＤＲＡＭ／ＮＡＮＤ型フラッシュメモリのコスト比は拡大し続ける。そのため、管理情報をＤＲＡＭに置いた場合、ＮＶＭのチップ数に対するＤＲＡＭのチップ数の割合は増加を続ける。すなわち、ＤＲＡＭのコスト増につながる。
【００８２】
また、ＤＲＡＭは揮発性のメモリであるため、電源遮断時には管理情報をＮＶＭに書き込む必要があるが、ＤＲＡＭ上のデータサイズが大きいと不意の電源遮断時のデータ消失の可能性が高いため、信頼性が低下する。
【００８３】
さらに、アドレス変換テーブルＬＰＴをＮＶＭに置き、アドレス変換テーブルキャッシュＬＰＴ−Ｃを用いない場合の課題について説明する。
【００８４】
このときは、ＮＶＭ上のデータにアクセスするため、ＮＶＭ上のアドレス変換テーブルＬＰＴにアクセスする必要がある。そのため、１回のＳＳＤのデータアクセスに対して、少なくとも２回以上のＮＶＭへのアクセスが発生する。
【００８５】
また、アドレス変換テーブルＬＰＴを複数のアドレス変換子テーブルＬＰＴ−Ｓに分割し、その１つだけをＲＡＭ２０６にバッファリングする方法の課題について説明する。
【００８６】
メモリーカードのようなシーケンシャルアクセスが主な情報記憶装置の場合、アドレス変換子テーブルＬＰＴ−Ｓを１つだけＲＡＭ２０６に保持するだけでシーケンシャルアクセス性能が高いメモリーカードを提供することができる。しかし、我々がパソコンやワークステーション、エンタープライズ向けサーバーなどのホスト機器からのアクセス要求を分析した結果、ホスト機器からのアクセスが広範な論理アドレスに対して生じるため、アドレス変換子テーブルＬＰＴ−Ｓを１つだけＲＡＭ２０６にバッファリングする方法では、効率的にＳＳＤを制御することはできないことがわかった。
【００８７】
例えば、ファイルの移動であれば、ＦＡＴ（ファイルアロケーションテーブル）やＤＣＴ（ディレクトリ管理テーブル）、ＮＴＦＳ（ＮＴ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）におけるＭＦＴ（マスタファイルテーブル）やフォルダインデックスなどの管理情報とデータ部分の２箇所以上へのアクセスが生じる。アドレス変換子テーブルＬＰＴ−Ｓの１つだけをバッファリングする方法では、論理アドレスの離れたアドレスにアクセスするたびにアドレス変換子テーブルＬＰＴ−Ｓが破棄されるため、アクセス効率が低下することがわかった。
【００８８】
＜アドレス変換テーブルキャッシュを用いる場合の長所＞
図５を用いて、前述した図４に対して、アドレス変換テーブルキャッシュＬＰＴ−Ｃを用いる場合（本実施の形態）の長所について、詳細に説明する。図５は、容量１ＴＢの課題を解決する方法を説明するための構成の一例を示す図である。
【００８９】
ＤＲＡＭのチップ当たりの容量は１Ｇｂである。ＮＶＭのチップ当たりの容量は１３３ＧＢであり、個数は８個である。アドレス変換テーブルＬＰＴと消去テーブルＥＴはＮＶＭ上に置かれる。アドレス変換テーブルキャッシュＬＰＴ−Ｃ（データサイズ６４ＭＢ）と消去テーブルキャッシュＥＴ−Ｃ（データサイズ１６ＭＢ）、エリアテーブル（データサイズ１２８０ＫＢ）がＤＲＡＭ上に置かれる。それらのデータサイズの合計は１Ｇｂ、すなわち１２８ＭＢ以下であるため、ＤＲＡＭのチップ数は１個にすることができる。そのため、ＤＲＡＭ上にアドレス変換テーブルＬＰＴを置く場合に比べて、コストを低減することができる。
【００９０】
また、上述した通り、アドレス変換テーブルキャッシュＬＰＴ−Ｃにヒットした場合、ホスト機器からのアクセス要求に対して、ＮＶＭへのアクセス回数が１回のみの場合がある。そのため、アドレス変換テーブルキャッシュＬＰＴ−Ｃを用いない場合やアドレス変換子テーブルの１つだけをＲＡＭ２０６にバッファリングする方法に比べて、効率的にＳＳＤのデータにアクセスすることが可能であり、高性能かつ高信頼なＳＳＤを提供することができる。
【００９１】
なお、アドレス変換テーブルキャッシュＬＰＴ−Ｃと同様に、消去テーブルキャッシュＥＴ−Ｃを用いることにより、性能向上が得られることは言うまでもない。
【００９２】
より詳細に、消去テーブルキャッシュＥＴ−Ｃを用いた場合の性能について説明する。例として、ＮＶＭのチャンネル数が４ｃｈの場合について考える。ＮＶＭのチップの物理ページサイズを４ＫＢ、プレーン数を２とする。テストパターンとしてランダムライト性能試験を考える。ホスト機器２０１から４ＫＢ単位のランダムライト命令が８個送信されるとする。合計のデータサイズは３２ＫＢになる。
【００９３】
まず、消去テーブルキャッシュを用いず、ＮＶＭ上に消去テーブルＥＴを設ける場合、ライト先のチャンネルはＳＳＤコントローラが定めることができるため、１ｃｈ当たり８ＫＢずつのデータをライトすることができる。ＮＶＭがマルチプレーンアクセス機能を持つ場合、１ｃｈ当たりＮＶＭの２プレーン分のレジスタに８ＫＢのデータを転送した後に、１度だけＮＶＭアレイへの書き込み時間を待つことで、１ｃｈ当たり８ＫＢのデータを書き込むことができる。
【００９４】
次に、消去テーブルＥＴの更新を行う。ランダムなアドレスに対するライト命令のため、消去テーブルＥＴの更新するべきアドレスは分散しており、多くの場合、８箇所の消去テーブルＥＴの更新が必要になる。消去テーブルＥＴが１つのＮＶＭチップにのみ存在する場合、そのチップに対して、８回のライトアクセスを行う必要がある。マルチプレーン書き込みを利用しても、ＮＶＭアレイへの１プレーン当たりの書き込み回数は４回となるため、少なくともＮＶＭアレイへの書き込み時間の４倍の時間だけ、消去テーブルＥＴの更新に時間が掛かる。消去テーブルＥＴを複数のチップに分散して記録する場合においても、少なくとも１回のＮＶＭアレイへの書き込み時間を待つことが必要になる。
【００９５】
それに対して、消去テーブルキャッシュＥＴ−Ｃを用いる場合は、ランダムなデータ書き込みに対する消去テーブルの更新において、ランダムライトする領域の消去テーブルキャッシュＥＴ−Ｃを設けた場合、４ＫＢ単位のランダムライト命令が８個送信された場合でも、ＮＶＭアレイへの書き込みを行う必要がないことがある。特に、ランダムライト試験を行う論理アドレス空間が狭く、消去テーブルキャッシュＥＴ−Ｃ内に該当論理アドレス空間の消去情報がすべて入る場合に、ＮＶＭアレイへの書き込み回数を低減することができる。
【００９６】
アドレス変換テーブルＬＰＴへのアクセスについても、消去テーブルＥＴへのアクセスと同様にアドレス変換テーブルキャッシュＬＰＴ−Ｃを用いることで、ＮＶＭ上のアドレス変換テーブルＬＰＴの更新回数を低減することができるため、ＳＳＤ２０２のアクセス性能を高くすることができる。
【００９７】
さらに、アドレス変換テーブルＬＰＴや消去テーブルＥＴの更新の頻度を低減することができるため、ＮＶＭ２０５への書き込み回数と消去回数を減らすことができる。このため、ＳＳＤ２０２の信頼性を高め、特に寿命を伸ばすことができる。
【００９８】
また、ＮＶＭ２０５へのアクセス回数の低減により、ＳＳＤ２０２の動作電力を低減することができる。これにより、ＳＳＤ２０２の冷却のための空冷ファンが不要になり、ファンの故障によるＳＳＤ２０２の動作不良をなくすことができる。この結果、高信頼なＳＳＤ２０２を提供することができる。さらに、部品点数の低減により省スペース化することができる。これにより、小型のＰＣ、特にノートＰＣやＯＳとしてＷｉｎｄｏｗｓ  Ｐｈｏｎｅ（登録商標）やｉＯＳ（登録商標）、Ａｎｄｒｏｉｄ（登録商標）を用いたタブレット型コンピュータやスマートフォン向けのＳＳＤや高密度サーバー向けのＳＳＤを提供することができる。
【００９９】
バッファリングと比較すると、本実施の形態で述べるキャッシュ制御は下記の特徴を備える。アドレス変換テーブルＬＰＴを対象としてキャッシュ制御を行う場合は、アドレス変換子テーブルＬＰＴ−Ｓを複数、ＲＡＭ２０６上にコピーする。バッファリングの場合、ＲＡＭ２０６上にコピーされるアドレス変換子テーブルＬＰＴ−Ｓの数は１個である。消去テーブルＥＴを対象としてキャッシュ制御を行う場合は、消去子テーブルＥＴ−Ｓを複数、ＲＡＭ２０６上にコピーする。バッファリングの場合、ＲＡＭ２０６上にコピーされる消去子テーブルＥＴ−Ｓの数は１個である。
【０１００】
また、バッファリングと比較すると、本実施の形態で述べるキャッシュ制御は下記の特徴を備えることができる。キャッシュの管理情報であるバリッドフラグ２１４、２１８、もしくはダーティーフラグ２１５、２１９、もしくはＬＲＵフラグ３０１、３０２を有する。
【０１０１】
さらに、制御方法が異なる。バッファリングの場合、ＲＡＭ２０６上にコピーしたバッファ中にアクセス対象の論理アドレス（ＬＰＮ）が含まれない場合は、バッファをすべて破棄し、ＮＶＭ２０５上のアドレス変換テーブルＬＰＴからアドレス変換子テーブルＬＰＴ−Ｓの１個をＲＡＭ２０６上にコピーする。しかし、キャッシュ制御の場合、ＲＡＭ２０６上のアドレス変換テーブルキャッシュＬＰＴ−Ｃをすべて破棄する必要はない。アクセス頻度などを参考にし、キャッシュの一部のみを破棄することができる。
【０１０２】
上記では、アドレス変換テーブルＬＰＴの場所として、ＤＲＡＭ（ＲＡＭ２０６）を例にして説明したが、ＮＶＭ２０５より高速にアクセスができるメモリであればよく、例えば、ＦｅＲＡＭ（強誘電体メモリ）、相変化メモリ、ＳＬＣ  ＮＡＮＤ（シングルレベルセルのＮＡＮＤ型フラッシュメモリ）、ＮＯＲ型フラッシュメモリを用いることができる。
【０１０３】
＜読み出し要求に対する動作＞
図６を用いて、前述したＳＳＤ２０２において、ホスト機器２０１からの読み出し要求に対する動作について説明する。図６は、読み出し動作を説明するフローチャートの例である。このホスト機器２０１からの読み出し要求に対する動作は、ＳＳＤ２０２内の制御部２０４であるＳＳＤコントローラの制御により実行される。
【０１０４】
アドレス変換テーブルＬＰＴは、ホスト機器２０１から要求されるときに指定される論理アドレス（以下、論理アドレス）をＮＶＭ２０５の物理アドレスに変換するテーブルである。アドレス変換テーブルＬＰＴは、複数のアドレス変換子テーブルＬＰＴ−Ｓに分割されて管理される。
【０１０５】
まず、ホスト機器２０１から、論理アドレスでＳＳＤ２０２が有するＮＶＭ２０５に存在するデータ領域への読み出しアクセスの要求が行われると、当該論理アドレスに対するアドレス変換子テーブルＬＰＴ−ＳがＲＡＭ（ＤＲＡＭ）２０６に置かれたアドレス変換テーブルキャッシュＬＰＴ−Ｃに存在するか否か、すなわち、アドレス変換テーブルキャッシュＬＰＴ−Ｃがヒットしたかを判定する（Ｓ６０１）。
【０１０６】
ヒット判定は、アドレス変換テーブルキャッシュＬＰＴ−Ｃに設けられたＴａｇ、バリッドフラグなどのキャッシュ管理情報を用いて行う。詳細な判定方法については後述する。アドレス変換テーブルキャッシュＬＰＴ−Ｃは、キャッシュのヒット率が高くなるように、複数のアドレス変換子テーブルＬＰＴ−Ｓがコピーされる。ホスト機器２０１の例はパソコンやワークステーションである。または、タブレット型コンピュータやスマートフォンの制御装置である。
【０１０７】
アドレス変換テーブルキャッシュＬＰＴ−Ｃがミスした場合（Ｓ６０１−Ｎ）には、後述（図７）するアドレス変換テーブルキャッシュＬＰＴ−Ｃの更新を行う（Ｓ６０２）。
【０１０８】
アドレス変換テーブルキャッシュＬＰＴ−Ｃがヒットした場合（Ｓ６０１−Ｙ）には、次に、アドレス変換テーブルキャッシュＬＰＴ−Ｃから、データの論理アドレスに対応するＮＶＭ２０５の物理アドレスを読み出す（Ｓ６０３）。さらに、ＮＶＭ２０５から、その物理アドレスのデータを読み出し（Ｓ６０４）、そのデータをホスト機器２０１に送信する（Ｓ６０５）。
【０１０９】
以上の方法を用いて、ＳＳＤ２０２（具体的にはＳＳＤ２０２内の制御部２０４であるＳＳＤコントローラ）は、ホスト機器２０１からの読み出し要求に対するデータ送信を行うことができる。
【０１１０】
＜アドレス変換テーブルキャッシュの更新要求に対する動作＞
図７を用いて、前述（図６−Ｓ６０２）したアドレス変換テーブルキャッシュＬＰＴ−Ｃの更新要求（Ｓ６０２）があった場合の処理について説明する。図７は、アドレス変換テーブルキャッシュＬＰＴ−Ｃの更新動作を説明するフローチャートの一例を示す図である。
【０１１１】
まず、論理アドレスから、読み出すべきアドレス変換子テーブルＬＰＴ−Ｓのテーブル番号を決める。次に、ＲＡＭ（ＤＲＡＭ）２０６上のエリアテーブルから該当するテーブル番号のアドレス変換子テーブルＬＰＴ−Ｓの物理アドレスを読み出す（Ｓ７０１）。エリアテーブルの詳細については後述（図１４）する。さらに、ＮＶＭ２０５から該当物理アドレスにあるアドレス変換子テーブルＬＰＴ−Ｓを読み出し、ＲＡＭ２０６上にコピーする（Ｓ７０２）。すなわち、アドレス変換子テーブルＬＰＴ−Ｓの１つをアドレス変換テーブルキャッシュＬＰＴ−Ｃにコピーする。
【０１１２】
次に、アドレス変換テーブルキャッシュＬＰＴ−Ｃの空き容量を調べる（Ｓ７０３）。すなわち、アドレス変換テーブルキャッシュＬＰＴ−Ｃの空きが少ないかを判定する。空き容量が閾値以上あれば（Ｓ７０３−Ｎ）、アドレス変換テーブルキャッシュＬＰＴ−Ｃの更新を終了する。
【０１１３】
アドレス変換テーブルキャッシュＬＰＴ−Ｃには常に、空き容量があるように制御することができる。もし、ダーティーなキャッシュで、アドレス変換テーブルキャッシュＬＰＴ−Ｃがすべて埋まると、アドレス変換子テーブルＬＰＴ−ＳをＲＡＭ２０６にコピーする前にダーティーなキャッシュをＮＶＭ２０５に書き戻す必要があり、ＳＳＤ２０２のアクセス性能が低下するためである。常に、アドレス変換テーブルキャッシュＬＰＴ−Ｃに空き容量が存在することで、簡易な制御で高いアクセス性能を持つＳＳＤ２０２を提供することができる。
【０１１４】
もしくは、常にクリーンなキャッシュを一定量、アドレス変換テーブルキャッシュＬＰＴ−Ｃに有するように制御することもできる。この場合、アドレス変換テーブルキャッシュＬＰＴ−Ｃに空き容量がなくても、クリーンなキャッシュを破棄し、その領域にアドレス変換子テーブルＬＰＴ−Ｓをコピーすることができる。クリーンなキャッシュを破棄するときにはＮＶＭ２０５へのアクセスは生じないため、短時間でキャッシュを破棄することが可能である。そのため、高いキャッシュヒット率を持ち、かつ、高いアクセス性能を持つＳＳＤ２０２を提供することができる。
【０１１５】
空き容量が閾値未満の場合（Ｓ７０３−Ｙ）、アドレス変換テーブルキャッシュＬＰＴ−Ｃをすべて破棄することができる。このときに、書き込み命令によりテーブル内のアドレスが更新されたキャッシュ（ダーディーキャッシュ）はキャッシュを破棄するときにＮＶＭ２０５に書き戻す（Ｓ７０４）。このときに、ダーティーキャッシュの総計データサイズが閾値以上になると、ダーディーキャッシュをすべてＮＶＭ２０５に書き戻す制御方法も可能である。この制御方法では、ＮＶＭ２０５に書き戻すときの書き込み単位をＮＶＭ２０５にとって最適なデータアクセスサイズ（ＮＶＭ２０５へのアクセス効率の良いデータサイズ）にすることが可能である。なお、ＮＶＭ２０５へのアクセスは、ページサイズ×チャネル数×１チップ当たりのプレーン数のデータサイズでアクセスすると、簡易なコントローラの設計で効率的にチップにアクセスすることができる。
【０１１６】
もしくは、上記の空き容量が閾値未満の場合（Ｓ７０３−Ｙ）に、キャッシュをすべて破棄するのではなく、一部のデータのみを破棄することができる。例えば、ライン入れ替え方式としてＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）を用いる方法について、図１３を用いて説明する。図１３は、ＬＲＵを用いる方法のＲＡＭ２０６の構成の変形例を示す図である。ＬＲＵは、キャッシュメモリや仮想メモリの制御方法において用いられるアルゴリズムである。未使用の時間が最も長いキャッシュを破棄する方法である。
【０１１７】
具体的には、アドレス変換テーブルキャッシュＬＰＴ−Ｃ内のアドレス変換子テーブルＬＰＴ−ＳＲ毎にＬＲＵフラグ３０１ａ及び３０１ｂを設ける。アドレス変換子テーブルＬＰＴ−ＳＲは、複数のエントリに分割されて管理される。例えば、アドレス変換子テーブルＬＰＴ−ＳＲの数が１６３８４個のときに、６４個のエントリに分割する。１つのエントリには、１６３８４／６４＝２５６個のアドレス変換子テーブルＬＰＴ−ＳＲが属する。
【０１１８】
キャッシュのヒット判定を行うときには、論理アドレス（ＬＰＮ）の下位６ビットの情報を用いて、検索するエントリを決定することができる。例えば、下位６ビットが「００００００」であれば、エントリ０を検索し、「０００００１」であれば、エントリ１を検索する。エントリ内の検索にはＴａｇ２１６を使用する。Ｔａｇ２１６には論理アドレスの残り上位ビットを用いる。論理アドレス１個が４Ｂ（バイト）、すなわち３２ビットで表すならば、下位６ビットを除いた上位２６ビットがＴａｇ２１６になる。
【０１１９】
検索するアドレスから計算されるＴａｇとアドレス変換子テーブルＬＰＴ−ＳＲ毎に保持されているＴａｇが一致していれば、キャッシュがヒットしたと判定する。すなわち、アドレス変換テーブルキャッシュＬＰＴ−Ｃを用いて、論理アドレス（ＬＰＮ）から物理アドレス（ＰＰＮ）へのアドレス変換を行う。アドレス変換子テーブルＬＰＴ−ＳＲが使用されたときに、そのＬＰＴ−ＳＲのＬＲＵフラグを０にし、さらに、そのＬＰＴ−ＳＲが属するエントリのすべてのＬＰＴ−ＳＲのＬＲＵフラグをインクリメントする（ＬＲＵフラグの値を１だけ増加させる）。
【０１２０】
次に、キャッシュを破棄するかの判定時にＬＲＵフラグの値を調べる。ＬＲＵフラグの値が大きければ、最後に使用されてから長時間使用されていないことがわかるため、そのキャッシュを破棄する。以上の方法により、精度よく使用頻度の少ないキャッシュを優先的に破棄し、効率的なキャッシュ制御を行うことができる。
【０１２１】
消去子テーブルＥＴ−ＳＲについても同様に、ＬＲＵフラグ３０２ａ及び３０２ｂを用いて制御する。ＬＲＵを簡略化し、より高速にキャッシュ制御可能な擬似ＬＲＵ命令キャッシュ入れ替えポリシー（ｑｕａｓｉ−ＬＲＵ  ｉｎｓｔｒｕｃｔｉｏｎ  ｃａｃｈｅ  ｅｖｉｃｔｉｏｎ  ｐｏｌｉｃｙ）を用いることもできる。
【０１２２】
さらに、書き込む際に新しいブロックが必要かを判定する（Ｓ７０５）。必要でない場合（Ｓ７０５−Ｎ）にはアドレス変換テーブルキャッシュＬＰＴ−Ｃの更新動作を終了し、必要な場合（Ｓ７０５−Ｙ）は、後述（図１１）するアドレス変換テーブルＬＰＴのウェアレベリングを行う（Ｓ７０６）。
【０１２３】
以上の方法を用いて、前述（図６）した読み出し要求に対する動作においての、アドレス変換テーブルキャッシュＬＰＴ−Ｃの更新を行うことができる。
【０１２４】
＜書き換え要求に対する動作＞
次に、図８を用いて、ホスト機器２０１が書き換え要求を行ったときの制御方法について説明する。図８は、書き換え動作を説明するフローチャートの一例を示す図である。このホスト機器２０１からの書き換え要求に対する動作は、ＳＳＤ２０２内の制御部２０４であるＳＳＤコントローラの制御により実行される。
【０１２５】
まず、ＮＶＭ２０５への書き込みに当たり、新ブロックが必要かを判定する（Ｓ８０１）。本実施の形態では、ＮＶＭ２０５の書き込み順に関して、ブロック内で連続したページ順に書き込む制約があるとする。この場合、ブロック内の最後のページに書き込んだ次の書き込みを行う場合は、新ブロックが必要であると判定できる。新ブロックが必要な場合（Ｓ８０１−Ｙ）は、データ領域のウェアレベリングを行い、新ブロックを決定する（Ｓ８０２）。詳細な手順は後述（図１０）する。
【０１２６】
次に、ＮＶＭ２０５にデータを書き込む（Ｓ８０３）。さらに、ブロック管理情報を更新する。ブロック管理情報の詳細については前述（図３）した通りである。制御部（ＳＳＤコントローラ）２０４内のＳＲＡＭ、もしくは、ＲＡＭ（ＤＲＡＭ）２０６上にライトバッファを設けて、ＮＶＭ２０５へのアクセス効率の良いデータサイズ単位でＮＶＭ２０５に書き込むこともできる。物理アドレスは、新ブロックであればブロック内の先頭ページ、新ブロックでなければ前回書き込んだページの次のページに書き込む。なお、ブロック番号とページ番号をＳＳＤコントローラ内のＳＲＡＭ上で保持することで、ＲＡＭ（ＤＲＡＭ）２０６やＮＶＭ２０５へのアクセスなしに物理アドレスを定めることが可能であり、高速に動作させることができる。
【０１２７】
次に、ＲＡＭ（ＤＲＡＭ）２０６上のアドレス変換テーブルキャッシュＬＰＴ−Ｃにヒットしたかを判定する（Ｓ８０４）。ヒットの判定は、キャッシュに含まれるＴａｇの情報を用いて行うことができる。ヒットしない場合（Ｓ８０４−Ｎ）は、アドレス変換テーブルキャッシュＬＰＴ−Ｃの更新を行う（Ｓ８０５）。この詳細は前述（図７）した通りである。
【０１２８】
次に、アドレス変換テーブルキャッシュＬＰＴ−Ｃを更新する（Ｓ８０６）。論理アドレスに対応したアドレス変換テーブルキャッシュＬＰＴ−Ｃを選択し、該当論理アドレスに対応するアドレスに格納されている物理アドレスを更新する。
【０１２９】
次に、消去テーブルキャッシュＥＴ−Ｃのヒット判定を行う（Ｓ８０７）。すなわち、消去テーブルキャッシュＥＴ−Ｃにヒットしたかを判定する。消去テーブルＥＴは、ＮＶＭ２０５のページ毎に、消去可能か、消去不可かの情報を格納する。ＳＳＤコントローラの動作検証と高信頼化のために、消去可否に加えてページが消去済みや良／不良ページ、信頼度などの情報を格納することもできる。既にＳＳＤ２０２に書き込まれている論理アドレスに対して再度、書き込みがあった場合に、古い情報は不要となり、該当する物理アドレス（古い物理アドレス）は消去可能になる。
【０１３０】
消去可能になった物理ページは、後述（図１０）するデータ領域のガーベージコレクションにより、一括して消去される。なお、新しく書き込まれた物理アドレスを新しい物理アドレスとする。消去テーブルＥＴも、アドレス変換テーブルＬＰＴと同様にキャッシュ制御される。キャッシュは、ＲＡＭ（ＤＲＡＭ）２０６上に設けられる。
【０１３１】
古い物理アドレスに対応する消去テーブルキャッシュＥＴ−Ｃがミスした場合（Ｓ８０７−Ｎ）は、後述（図９）する消去テーブルキャッシュＥＴ−Ｃの更新を行う（Ｓ８０８）。キャッシュ更新時には、消去予定の物理アドレス（消去先物理アドレス）を用いる。消去テーブルＥＴは、少なくともＮＶＭ２０５のページが消去可能か、消去不可かの情報を有していれば良く、例えば、物理アドレスから論理アドレスへの変換テーブルで消去情報を格納することもできる。
【０１３２】
例えば、ある物理アドレスに対応する論理アドレスが無効なアドレス（ホスト機器２０１からアクセスされないアドレス）であれば、その物理アドレスが消去可能であることがわかる。すなわち、消去テーブルＥＴの代わりに物理アドレスから論理アドレスへの変換テーブルを用いることができる。この場合、後述（図１０）するスタティックウェアレベリングを高速に行うことが可能になり、アクセス性能の高いＳＳＤ２０２を提供できる長所がある。
【０１３３】
さらに、消去テーブルキャッシュＥＴ−Ｃの更新を行う（Ｓ８０９）。具体的には、古い物理アドレスに対応する消去テーブルＥＴを消去可能とマークする。また、ページ毎の消去済み情報を保持する場合には、新しい物理アドレスに対応する消去テーブルＥＴを書き込み済みかつ消去不可とマークする。
【０１３４】
最後に、ホスト機器２０１に書き換え完了の応答を送信する。
【０１３５】
以上の方法を用いて、ＳＳＤ２０２（具体的にはＳＳＤ２０２内の制御部２０４であるＳＳＤコントローラ）は、ホスト機器２０１が書き換え要求を行ったときの制御を行うことができる。
【０１３６】
＜消去テーブルキャッシュの更新要求に対する動作＞
図９を用いて、前述（図８−Ｓ８０８）した消去テーブルキャッシュＥＴ−Ｃの更新要求に対する制御方法を説明する。図９は、消去テーブルキャッシュＥＴ−Ｃの更新動作を説明するフローチャートの一例を示す図である。
【０１３７】
まず、ＲＡＭ（ＤＲＡＭ）２０６上のエリアテーブルから消去先物理アドレスが含まれる消去子テーブルＥＴ−Ｓの物理アドレスを読み出す（Ｓ９０１）。次に、消去テーブルＥＴの一部（消去子テーブルＥＴ−Ｓ）をＮＶＭ２０５の該当アドレスからＲＡＭ（ＤＲＡＭ）２０６上の消去テーブルキャッシュＥＴ−Ｃにコピーする（Ｓ９０２）。
【０１３８】
次に、消去テーブルキャッシュＥＴ−Ｃの空き容量を調べる（Ｓ９０３）。すなわち、消去テーブルキャッシュＥＴ−Ｃの空きが少ないかを判定する。空き容量が閾値以上あれば（Ｓ９０３−Ｎ）、消去テーブルキャッシュＥＴ−Ｃの更新を終了する。
【０１３９】
空き容量が閾値未満の場合（Ｓ９０３−Ｙ）、使用頻度の低い消去テーブルキャッシュＥＴ−Ｃを破棄する。使用頻度の大小を判断する方法としては、ＬＲＵフラグを用いた前述（図１３）した方法がある。書き込みにより消去子テーブルＥＴ−ＳＲ内の消去情報が更新されたダーティーキャッシュは、キャッシュを破棄するときにＮＶＭ２０５に書き戻す（Ｓ９０４）。このときに、ダーティーキャッシュの総計データサイズが閾値以上になるとダーディーキャッシュをすべてＮＶＭ２０５に書き戻す制御方法を取ることができるのは言うまでもない。
【０１４０】
さらに、書き込む際に新しいブロックが必要かを判定する（Ｓ９０５）。必要でない場合（Ｓ９０５−Ｎ）には消去テーブルキャッシュＥＴ−Ｃの更新を終了し、必要な場合（Ｓ９０５−Ｙ）は、エリアテーブルの情報を用いて、後述（図１１）するアドレス変換テーブルＬＰＴのウェアレベリングを行い、新ブロックを決定する（Ｓ９０６）。
【０１４１】
以上の方法を用いて、前述（図８）した書き換え要求に対する動作においての、消去テーブルキャッシュＥＴ−Ｃの更新要求に対する制御を行うことができる。
【０１４２】
＜データ領域のウェアレベリング要求に対する動作＞
図１０を用いて、前述（図８−Ｓ８０２）したデータ領域のウェアレベリングについて説明する。図１０は、データ領域のウェアレベリング動作を説明するフローチャートの一例を示す図である。
【０１４３】
まず、ダイナミックウェアレベリングを行う。ダイナミックウェアレベリングとは、新たにデータを書き込むブロックを決定するときに消去回数の少ないブロックを選択することで、消去回数を平準化する制御方法であり、ウェアレベリングの１つである。
【０１４４】
具体的には、ＲＡＭ（ＤＲＡＭ）２０６、もしくは制御部（ＳＳＤコントローラ）２０４内のＳＲＡＭ上のブロック管理情報を参照し、消去回数の少ない消去済みブロックを検索し、該当ブロックを次に書き込むブロックとする（Ｓ１００１）。このときに、全ブロックにおける最小消去回数を保持し、その回数と等しいブロックを使用するか、もしくは、最小消去回数＋閾値以下のブロックを使用する方法を用いることで、すべての消去済みブロックの情報を検索する必要がなくなるため、高速にウェアレベリングを行うことができる。
【０１４５】
次に、消去済みブロックのブロック総数が閾値以下か（消去済みブロック数が少ないか）を判定する（Ｓ１００２）。閾値より大きければ（Ｓ１００２−Ｎ）、データ領域のウェアレベリングを終了する。
【０１４６】
閾値以下の場合（Ｓ１００２−Ｙ）、まず、ガーベージコレクションを行う。ガーベージコレクションとは、インバリッドページが含まれるブロックに対して、バリッドページのみ他のブロックにコピーした後に該当ブロックを消去することで消去済みブロックを生み出す制御方法であり、ダイナミックウェアレベリングと組み合わせることでＮＶＭ２０５内の書き換え回数を平準化することができる。
【０１４７】
具体的には、ブロック管理情報を参照し、データ用の書き込みが完了したブロックの中でバリッドページ数が少ないブロックを検索する。最も少ないブロックを全ブロックから検索しても良いし、また、全ブロック中の一定の割合のブロックについて消去回数を検索し、消去回数が下位のブロックを消去対象のブロックとしても良い。必ずしも、最小となる消去回数のブロックを検索する必要はない。一部のブロックの消去回数を一定の精度で検索するに留めることで、高速に消去対象のブロックを列挙することができる。
【０１４８】
さらに、消去対象のブロック中に含まれるバリッドページの内容を現在、書き込み中のブロック内の新規ページにコピーし、書き込んだ後に消去する（Ｓ１００３）。このときに、複数の消去対象のブロックを同時に検索し、消去することで効率的にガーベージコレクションを行うことができる。
【０１４９】
バリッドページとは、ホスト機器２０１から参照されるページである。バリッドページでないページ、すなわちインバリッドページは、ホスト機器２０１から参照されないページ、すなわち、対応する論理アドレスが存在しないページのことである。ホスト機器２０１から書き込みが行われたとき、書き込まれたページはバリッドページになり、消去テーブルＥＴや消去テーブルキャッシュＥＴ−Ｃに該当する物理アドレスがバリッドページであることを記録する。次に、同じ論理アドレスにホスト機器２０１から書き込みが行われたとき、前記の物理アドレスは以降、参照されることはなくなる。そこで、消去テーブルＥＴや消去テーブルキャッシュＥＴ−Ｃに該当する物理アドレスがインバリッドページであることを記録する。インバリッドページは不要な情報が書かれたページであり、消去可能であることを意味する。
【０１５０】
なお、ブロックは、書き込み中、書き込み完了、消去済みブロック（予備ブロック）、不良ブロックに分類される。さらに、書き込み中ブロックと書き込み完了ブロックは、データ領域用とアドレス変換テーブル用、消去テーブル用にそれぞれ区別される。さらに、消去済みブロックを、アドレス変換テーブル用と消去テーブル用、データ用とに分けて管理しても良い。管理情報用とデータ用ではアクセスパターンが異なるため、それぞれを分けて管理することでアクセスパターンに応じた制御が可能になり、ＳＳＤ２０２を高信頼化できる効果がある。上記のブロックの分類は、ブロック管理情報により管理される。
【０１５１】
ブロック管理情報にはさらに、消去回数とバリッドページの数を記録することができる。ブロックごとの消去回数を記録することで、ダイナミックウェアレベリングを効率的に行うことができる。また、ブロックに含まれるバリッドページのページ数を記録することで、ガーベージコレクションの対象ブロックを高速に検索することができる。
【０１５２】
次に、アドレス変換テーブルキャッシュＬＰＴ−Ｃ、アドレス変換テーブルＬＰＴ、消去テーブルキャッシュＥＴ−Ｃ、消去テーブルＥＴ、ブロック管理情報を更新する（Ｓ１００４）。テーブルキャッシュのヒット判定やミスした場合の処理については、ホスト機器２０１からのデータ書き換え要求において、上記で述べたのと同様の方法を用いることができる。
【０１５３】
さらに、消去回数の多いブロックと消去回数の少ないブロックを入れ替えるスタティックウェアレベリングを行う。スタティックウェアレベリングの目的は、消去回数の少ないブロックと消去回数の多いブロックの消去回数差を減らし、全ブロックが均等に書き込まれるように制御することであり、ウェアレベリングの１つである。具体的な手順を以下で述べる。
【０１５４】
まず、ブロック管理情報を参照し、消去回数の少ないブロックと消去回数の多いブロックの消去回数差が閾値以上か（消去回数差の大きなブロックがあるか）を調べる（Ｓ１００５）。このとき、すべてのブロックの消去回数を調べても良いし、一部のブロックを抜き出して消去回数を調べても良い。消去回数を調べるブロックを限定することにより、短時間でスタティックウェアレベリングを実行するかを判定することができる。
【０１５５】
次に、消去回数差が閾値以上でない場合（Ｓ１００５−Ｎ）はデータ領域のウェアレベリングを終了し、消去回数差が閾値以上の場合（Ｓ１００５−Ｙ）には、消去回数の少ないブロックのバリッドページに書かれたデータを書き込み中のブロックに書き込み、コピー元のブロック、すなわち消去回数の少ないブロックを消去する（Ｓ１００６）。これは、消去回数の少ないブロックと消去回数の多いブロックのデータの入れ替えである。複数のブロックを同時並行的に消去候補にリストアップし、消去することもできる。この場合、簡易な制御方法で効率的にウェアレベリングが行える。
【０１５６】
なお、ダイナミックウェアレベリングの後に、毎回、ガーベージコレクションの判定やスタティックウェアレベリングの判定を行う必要は必ずしもなく、一定回数ごとに１回、判定することもできる。
【０１５７】
以上の方法を用いて、前述（図８）した書き換え要求に対する動作においての、データ領域のウェアレベリングを行うことができる。
【０１５８】
＜アドレス変換テーブルのウェアレベリング要求に対する動作＞
図１１を用いて、前述（図７−Ｓ７０６）したアドレス変換テーブルＬＰＴのウェアレベリング要求の処理手順を述べる。図１１は、アドレス変換テーブルＬＰＴ（データ管理情報を格納する領域）のウェアレベリング動作を説明するフローチャートの一例を示す図である。
【０１５９】
まず、ブロック管理情報を参照し、消去済みブロックの群から消去回数の少ないブロックを検索し、書き込みブロックとする（ダイナミックウェアレベリング、Ｓ１１０１）。
【０１６０】
次に、ガーベージコレクションを実行するかを判定する（Ｓ１１０２）。具体的には、消去済みブロックの数が閾値以下か（消去済みブロック数が少ないか）を調べる。閾値より大きければ（Ｓ１１０２−Ｎ）、アドレス変換テーブルＬＰＴのウェアレベリングを終了する。
【０１６１】
消去済みブロック数が閾値以下の場合（Ｓ１１０２−Ｙ）、まず、ガーベージコレクションを行う。具体的には、ブロック管理情報を参照し、アドレス変換テーブル用の書き込みが完了したブロックの中でバリッドページ数が少ないブロックを検索する。このときに、アドレス変換テーブルＬＰＴに割り当てられたブロックだけを検索しても良いし、アドレス変換テーブルＬＰＴと消去テーブルＥＴに割り当てられたブロックから検索しても良い。さらに、アドレス変換テーブルＬＰＴと消去テーブルＥＴとデータ領域に割り当てられたブロックから検索しても良い。
【０１６２】
バリッドページ数の少ないブロック中に含まれるバリッドページの内容を現在、書き込み中のブロック内の新規ページにコピーし、書き込んだ後に消去する（Ｓ１１０３）。このときに、複数の消去対象のブロックを同時に検索し、消去することで効率的にガーベージコレクションを行うことができる。
【０１６３】
次に、エリアテーブルとブロック管理情報を更新する（Ｓ１１０４）。さらに、消去回数の多いブロックと消去回数の少ないブロックを入れ替えるスタティックウェアレベリングを行う。具体的には、ブロック管理情報を参照し、消去回数の少ないブロックと消去回数の多いブロックの消去回数差が閾値以上か（消去回数差の大きなブロックがあるか）を調べる（Ｓ１１０５）。
【０１６４】
次に、消去回数差が閾値以上でない場合（Ｓ１１０５−Ｎ）はアドレス変換テーブルＬＰＴのウェアレベリングを終了し、消去回数差が閾値以上の場合（Ｓ１１０５−Ｙ）には、消去回数の少ないブロックのバリッドページに書かれたアドレス変換テーブル情報をテーブル書き込み中のブロックに書き込み、コピー元のブロック、すなわち消去回数の少ないブロックを消去する（Ｓ１１０６）。これは、消去回数の少ないブロックと消去回数の多いブロックのデータの入れ替えである。
【０１６５】
以上の方法を用いて、前述（図７）したアドレス変換テーブルキャッシュＬＰＴ−Ｃの更新要求に対する動作においての、アドレス変換テーブルＬＰＴのウェアレベリングを行うことができる。
【０１６６】
＜ＳＳＤの稼働時間とＮＶＭの最大ブロック消去回数の関係＞
図１２を用いて、ＳＳＤ２０２の稼働時間とＮＶＭ２０５の最大ブロック消去回数の関係について説明する。図１２は、稼働時間（横軸）と最大ブロック消去回数（縦軸）の関係の一例を示す図である。
【０１６７】
図１２において、制御１〜３で示した３種類のウェアレベリング、すなわち、ダイナミックウェアレベリング、ガーベージコレクション、スタティックウェアレベリングにより、ＳＳＤ２０２中のＮＶＭ２０５の特定ブロックへの書き込みを抑え、全ブロックに均等に書き込みを生じさせることにより、ＳＳＤ２０２への書き込み量の増大に伴うＮＶＭ２０５の最大ブロック消去回数の増加を抑える。さらに、制御４で示したエリアテーブルを用いたアドレス変換テーブルＬＰＴと消去テーブルＥＴのウェアレベリングにより、最大ブロック消去回数の増加を抑えることができる。なお、最大消去回数が規定値に達したブロックは消去不可能となり、不良ブロックになる。不良ブロックの増加により、ホスト機器２０１から見たＳＳＤ容量が規定値以下になったところがＳＳＤ２０２の寿命となる。
【０１６８】
アドレス変換テーブルキャッシュＬＰＴ−Ｃの格納場所として、ＲＡＭ（ＤＲＡＭ）２０６を用いることができるが、そのほか、ＮＶＭ２０５より高速にアクセスができるメモリであれば良く、例えば、ＦｅＲＡＭ（強誘電体メモリ）、相変化メモリを用いることができる。さらに、そのほか、ＮＶＭ２０５として、ＭＬＣ  ＮＡＮＤフラッシュメモリを用いる場合はＳＬＣ  ＮＡＮＤ（シングルレベルセルのＮＡＮＤ型フラッシュメモリ）を用いることができる。また、ＮＶＭ２０５として、ＮＡＮＤフラッシュメモリを用いる場合は、ＮＯＲフラッシュメモリを用いることができる。
【０１６９】
＜エリアテーブルの詳細＞
図１４と図１５を用いて、エリアテーブルに関してさらに詳細に説明する。図１４は、エリアテーブルを説明するための図である。図１５（ａ）〜（ｃ）は、論理アドレスと物理アドレスを説明するための図である。
【０１７０】
ホスト機器２０１から指定されたデータの物理アドレスを調べる方法を述べる。ホスト機器２０１から指定される論理アドレスＬＢＡは上述した通り、５１２バイト単位でアドレッシングを行う。容量１ＴＢのＳＳＤ２０２を考えると、下記の（６）式からアドレス幅が３１ビットになることがわかる。
【０１７１】
１ＴＢ／５１２Ｂ＝２３１  …  （６）
ホスト機器２０１から要求されたデータサイズとして、５１２バイトを例にして説明する。まず、ＬＢＡ[３０：１３]（すなわちＬＢＡの上位１８ビット、図１５）がアドレス変換子テーブル番号になることを利用して、まずアドレス変換子テーブル番号を求める。図１５に示すように、さらにアドレス変換テーブルキャッシュ（ＬＰＴ−Ｃ）におけるＴａｇとエントリを求める。ＴａｇはＬＢＡ［３０：１９］（すなわち、ＬＢＡの上位１２ビット）であり、エントリはＬＢＡ［１８：１３］である。得られたエントリのＴａｇを比較することで、アドレス変換テーブルキャッシュＬＰＴ−Ｃのキャッシュヒット判定を行う。
【０１７２】
キャッシュミスした場合は、次に、エリアテーブル内に記録されるアドレス変換子テーブルの物理アドレスは４バイト単位であり、ＲＡＭ２０６の先頭アドレスからアドレス変換子テーブル番号順に記録されていることを利用して、アドレス変換子テーブル番号を４倍にしたアドレスをＲＡＭ２０６から読み出す開始アドレスとし、データサイズ４バイトを読み出すことで、エリアテーブルからアドレス変換子テーブルの物理アドレスを得る。得られた物理アドレスをＮＶＭ２０５から読み出す開始アドレスとし、データサイズ４ＫＢをＲＡＭ２０６にコピーする。
【０１７３】
ＲＡＭ２０６のコピー先のアドレスから、さらにＬＢＡ［１２：３］を４倍したアドレスを開始アドレスとし、４バイトを読み出すことでデータ領域の物理アドレスが得られる。データ管理サイズが４ＫＢであるため、この物理アドレスが示すデータのサイズは４ＫＢである。
【０１７４】
次に、この物理アドレスが示すデータ領域の先頭アドレスからＬＢＡ［２：０］（すなわちＬＢＡの下位３ビット）を５１２倍したものをオフセットしたアドレスを開始アドレスとし、データサイズ５１２バイトをＮＶＭ２０５から読み出す。最後に、ホスト機器２０１に読み出した５１２バイトのデータを送る。
【０１７５】
以上の過程を経ることにより、ホスト機器２０１から指定されたデータをＳＳＤ２０２から読み出すことができる。
【０１７６】
図１４に記載されている通り、アドレス変換子テーブル１個はＬＢＡの８Ｋセクタ領域のアドレス変換情報を持つ。また、図１５に記載されている通り、論理アドレス（ＬＰＮ）はＬＢＡの上位２８ビットである。
【０１７７】
次に、物理アドレスＰＰＮの消去情報を調べる方法を述べる。データ管理サイズは上述した通り、４ＫＢ単位とする。容量１ＴＢのＳＳＤ２０２を考えると、下記の（７）式からアドレス幅が２８ビットになることがわかる。
【０１７８】
１ＴＢ／４ＫＢ＝２２８  …  （７）
まず、ＰＰＮ［２７：１２］（すなわちＬＢＡの上位１６ビット、図１５）が消去子テーブル番号になる。消去子テーブルの物理アドレスが格納されている領域の先頭アドレス（この例では１０２４ＫＢ）から消去子テーブル番号を４倍にしたアドレスをオフセットしたアドレスを開始アドレスとし、データサイズ４バイトをＲＡＭ２０６から読み出すことにより、消去子テーブルの物理アドレスを得ることができる。得られた物理アドレスをＮＶＭ２０５から読み出す開始アドレスとし、データサイズ４ＫＢをＲＡＭ２０６にコピーする。
【０１７９】
ＲＡＭ２０６のコピー先のアドレスから、さらにＬＢＡ［１１：０］をアドレスをオフセットしたアドレスを開始アドレスとし、１バイトを読み出すことでＰＰＮの消去情報が得られる。
【０１８０】
消去情報を調べた結果、もし、消去不可であれば、最新のデータであり、今後、ホスト機器２０１から読み出される可能性がある。そのため、ガーベージコレクションにおいて、消去ができないデータである。もし、消去可能であれば、最新のデータでなく、すなわち、最新のデータがＮＶＭ２０５のそのほかの物理ページに存在し、今後、ホスト機器２０１から読み出されることのないデータである。そのため、ガーベージコレクションにおいて、消去しても良いデータであることがわかる。
【０１８１】
図１４に記載されている通り、消去子テーブル１個はＰＰＮ４Ｋ個の消去情報を持つ。
【０１８２】
また、図１５に記載されている通り、消去子テーブル番号の上位１０ビット、すなわち、ＰＰＮ［２７：１８］はＴａｇとなり、ＰＰＮ［１７：１２］はエントリとなる。また、ＬＢＡ［３０：０］、すなわち、ＬＢＡの上位２８ビットは論理アドレス（ＬＰＮ）になる。ここで、説明のために用いたビット幅はあくまでも説明を容易にするための例であり、実際にはキャッシュサイズやＳＳＤ２０２の容量に応じて変更されることは言うまでもない。
【０１８３】
＜実施の形態１の効果＞
以上に説明した本実施の形態１によれば、ＮＶＭ２０５と、ＲＡＭ２０６と、制御部２０４などを有することで、代表的には、製造コストを低減し、アクセス性能及び信頼性が高く、省スペースなＳＳＤ２０２を製造することができる。詳細には、以下のような効果を得ることができる。
【０１８４】
（１）制御部２０４は、ＮＶＭ２０５に、ＮＶＭ２０５にアクセスするために与えられた論理アドレスを物理アドレスに変換するアドレス変換テーブルＬＰＴを複数に分割して記憶し、さらに、ＲＡＭ２０６に、複数に分割されたアドレス変換子テーブルＬＰＴ−ＳＲを複数記憶することができる。
【０１８５】
（２）制御部２０４は、ＲＡＭ２０６に記憶されたアドレス変換子テーブルＬＰＴ−ＳＲをキャッシュ制御することができる。このキャッシュ制御の方法として、論理アドレスを基にして検索するエントリを限定することができる。また、アクセス頻度を基にして破棄するキャッシュを決定することができる。さらに、キャッシュ制御において更新されたアドレス変換子テーブルＬＰＴ−ＳＲをＮＶＭ２０５に書き戻すときのデータサイズは、アドレス変換子テーブルＬＰＴ−ＳＲよりも大きくすることができる。
【０１８６】
（３）制御部２０４は、ＮＶＭ２０５に、ＮＶＭ２０５のデータの論理アドレスを物理アドレスに変換を行うアドレス変換テーブルＬＰＴを記憶し、さらに、ＲＡＭ２０６に、アドレス変換テーブルＬＰＴのアドレス変換テーブルキャッシュＬＰＴ−Ｃと、アドレス変換テーブルＬＰＴがＮＶＭ２０５のどこに記憶されているかを示すエリアテーブル２０７とを記憶し、さらに、エリアテーブル２０７に、アドレス変換テーブルＬＰＴのＮＶＭ２０５内でのアドレスを複数記憶することができる。
【０１８７】
（４）制御部２０４は、エリアテーブル２０７を用いてアドレス変換テーブルＬＰＴのウェアレベリングを行うことができる。
【０１８８】
（５）制御部２０４は、ＮＶＭ２０５に、ＮＶＭ２０５に記憶されたデータが消去可能か否かを示す消去テーブルＥＴを複数に分割して記憶し、さらに、ＲＡＭ２０６に、複数に分割された消去子テーブルＥＴ−ＳＲを複数記憶することができる。
【０１８９】
（６）制御部２０４は、ＲＡＭ２０６に記憶された消去子テーブルＥＴ−ＳＲを同時にＮＶＭ２０５に記憶することができる。
【０１９０】
[実施の形態２]
実施の形態２の不揮発性記憶装置について、図１６〜図１７を用いて説明する。図１６は、この不揮発性記憶装置（ＳＳＤ）２０２の構成の一例を示す図である。図１７は、ＳＳＤ２０２の構成の変形例を示す図である。
【０１９１】
本実施の形態では、揮発性メモリの搭載コストを低減し、高いアクセス性能を持つだけでなく、上述した実施の形態１よりアクセス性能が高いＳＳＤ２０２の例を説明する。
【０１９２】
不揮発性メモリ（ＮＶＭ）として、相変化メモリを用いる。特に、大容量である３次元積層相変化メモリ３Ｄ−ＰＣＭ（３Ｄｉｍｅｎｓｉｏｎ  Ｐｈａｓｅ  Ｃｈａｎｇｅ  Ｍｅｍｏｒｙ）を用いるのが望ましい。
【０１９３】
図１６を用いて、本実施の形態２におけるＳＳＤ２０２の構成について説明する。図１６に示すＳＳＤ２０２のうち、既に上述した実施の形態１で説明した図１に示された同一の符号を付された構成と、同一の機能を有する部分については、説明を省略する。
【０１９４】
本実施の形態のＳＳＤ２０２は、ホストＩ／Ｆ２０３と、内部バス２３１と、制御部（ＳＳＤコントローラ）２０４と、３次元積層相変化メモリ（３Ｄ−ＰＣＭ）４０１と、ＲＡＭ２０６から構成される。このＳＳＤ２０２は、ホストＩ／Ｆ２０３がホスト機器２０１とインターフェース２３０で接続される。後述する通り、ＲＡＭ２０６と３Ｄ−ＰＣＭ４０１を１チップ化する構成も可能である。
【０１９５】
相変化メモリは、記憶素子自体に流れる電流によるジュール熱に応じて、記憶素子の結晶状態が変化することにより記憶情報が書き込まれる。記憶素子の材料としては、カルコゲナイドが用いられる。カルコゲナイドとは、硫黄、セレン、テルルのうちの少なくとも１元素を含む材料のことである。
【０１９６】
相変化メモリの動作原理を簡単に説明する。相変化部をアモルファス化させる場合、相変化部をカルコゲナイド材料の融点以上に熱してから急冷するようなリセットパルスを印加する。融点は、例えば６００℃である。急冷する時間は、例えば２ｎｓｅｃである。相変化部を結晶化させる場合、局所的に相変化部の温度を結晶化温度から融点で維持する。このときの温度は、例えば４００℃である。結晶化に要する時間はカルコゲナイド材料の組成によって異なるが、例えば５０ｎｓｅｃである。以後、相変化メモリの相変化部を結晶化させることをセット動作、アモルファス化させることをリセット動作と呼ぶ。
【０１９７】
相変化メモリの特徴は、相変化部の抵抗値が結晶状態に応じて２桁から３桁も変化し、この抵抗値を信号として用いるため、読み出し信号が大きく、センス動作が容易になるため、読み出しが高速であることである。
【０１９８】
さらに、３Ｄ−ＰＣＭ４０１は、平面方向だけでなく、高さ方向にもメモリ素子が積層されているため、大容量であり、ＳＳＤ２０２の用途に適する。
【０１９９】
３Ｄ−ＰＣＭ４０１をＮＶＭとして用いることで、アクセス速度が高く、大容量のＳＳＤ２０２を提供できる。
【０２００】
さらに、アクセス速度が高速であるという３Ｄ−ＰＣＭ４０１の特徴を活かすため、アドレス変換テーブル及び消去テーブルのキャッシュ制御を行うだけでなく、さらに、ＮＶＭ（本実施の形態では３Ｄ−ＰＣＭ）に対するキャッシュのデータサイズの比を大きくすることで、キャッシュのヒット率を向上させることが望ましい。例えば、上述した実施の形態１では、ＳＳＤ容量１ＴＢに対して、アドレス変換テーブルキャッシュのデータサイズは６４ＭＢであったが、これを２５６ＭＢにすることが可能である。同様に、消去テーブルキャッシュのサイズも大きくすることができる。
【０２０１】
また、ＮＶＭとして相変化メモリを用いる本実施の形態の場合は、図１７に示すような構成とすることも可能である。すなわち、図１７に示すＳＳＤ２０２は、ＮＶＭの相変化メモリ（３Ｄ−ＰＣＭ（１））４０１と異なる構成を持ち、より高速にアクセス可能な構成とした相変化メモリ（３Ｄ−ＰＣＭ（２））４０２をアドレス変換テーブルキャッシュＬＰＴ−Ｃの格納場所として用いることができる。この場合、３Ｄ−ＰＣＭ４０１と３Ｄ−ＰＣＭ４０２を同じチップにすることもできる。この場合、ＳＳＤを構成するチップ数が少なくなるため、コストを低減することができる利点がある。なお、必要とする性能に応じて、３Ｄ−ＰＣＭ４０１と３Ｄ−ＰＣＭ４０２を有するチップを複数個、ＳＳＤに実装することが可能であることはいうまでもない。ここで、「チップ」とは回路素子が形成された１枚の半導体基板を小片に切り出したあとの小片１個のことを指す。
【０２０２】
図１７に示すように、相変化メモリは、高速にアクセス可能な領域と、この領域より低速にしかアクセスできないが、より大容量の領域との２つの領域を持つ。より高速にアクセス可能な領域（３Ｄ−ＰＣＭ４０２）に本実施の形態のＲＡＭに相当する情報（アドレス変換テーブルキャッシュＬＰＴ−Ｃ、消去テーブルキャッシュＥＴ−Ｃ、エリアテーブル）を書き込み、より大容量の領域（３Ｄ−ＰＣＭ４０１）に本実施の形態のＮＶＭに相当する情報（エリアテーブルバックアップ、アドレス変換テーブルＬＰＴ、消去テーブルＥＴ、データ）を書き込む。この場合、ＮＶＭ及びＲＡＭに要するメモリのチップを低減することができるため、コスト競争力の高いＳＳＤ２０２を提供することが可能になる。
【０２０３】
以上に説明した本実施の形態２によれば、相変化メモリを用いることで、上述した実施の形態１の効果に加えて、よりアクセス性能が高く、大容量で、コスト競争力の高いＳＳＤ２０２を製造することができる。
【０２０４】
[実施の形態３]
実施の形態３の不揮発性記憶装置について、上述した実施の形態１で示した図１を参照して説明する。
【０２０５】
本実施の形態では、揮発性メモリの搭載コストを低減し、高いアクセス性能を持つだけでなく、ＲＡＭ２０６の容量をさらに低減し、信頼性の高いＳＳＤ２０２の例を説明する。
【０２０６】
本実施の形態のＳＳＤ２０２は、図１を参照して説明すると、バリッドフラグ、ダーティーフラグがＲＡＭ２０６上のアドレス変換テーブルキャッシュＬＰＴ−Ｃに存在しないことを特徴とする。
【０２０７】
簡易な制御方式で動作するため、制御部（ＳＳＤコントローラ）２０４の開発にあたって設計ミス（バグ）が混入するおそれが少なく、信頼性の高いＳＳＤ２０２を短期間で開発することができる。
【０２０８】
キャッシュ制御のアルゴリズムとしては、フルアソシエイティブ方式を用いることができる。エントリは１個であり、ヒット判定はすべてのアドレス変換子テーブルＬＰＴ−ＳＲを対象にして行う。もちろん、Ｔａｇが等しいキャッシュが見つかり、ヒット判定となった場合には残りのアドレス変換子テーブルＬＰＴ−ＳＲを検索する必要はない。
【０２０９】
ＳＳＤ２０２の電源投入時に、あらかじめ、アドレス変換テーブルキャッシュＬＰＴ−Ｃにアドレス変換テーブルの一部をコピーする。アドレス変換テーブルの先頭部分をコピーすることができる。もしくは、電源遮断時のアドレス変換テーブルキャッシュＬＰＴ−Ｃの状態に復元しても良い。常にアドレス変換テーブルキャッシュＬＰＴ−Ｃ内の情報をバリッド（有効）に維持することで、バリッドフラグを必要としない制御方法を実現できる。
【０２１０】
ホスト機器２０１からの書き込み命令により更新されたアドレス変換子テーブルＬＰＴ−ＳＲは、次のアドレス変換テーブルキャッシュＬＰＴ−Ｃへのアクセスが生じる前にＮＶＭ２０５のアドレス変換テーブルＬＰＴに書き戻す。この動作により、常にアドレス変換テーブルＬＰＴとアドレス変換テーブルキャッシュＬＰＴ−Ｃの情報が一致するように制御する。アドレス変換テーブルキャッシュＬＰＴ−Ｃの入れ替えの際には、入れ替え開始（ＮＶＭ２０５からアドレス変換子テーブルＬＰＴ−ＳのＲＡＭ２０６へのデータコピーが開始するとき）から入れ替え終了（前記の動作が完了するとき）までの間、アドレス変換テーブルキャッシュＬＰＴ−Ｃへのアクセスを一時停止する。
【０２１１】
上記の制御方法により、アドレス変換テーブルキャッシュＬＰＴ−Ｃのバリッドフラグ及びダーティーフラグが不要なＳＳＤ２０２を実現することが可能になる。
【０２１２】
以上に説明した本実施の形態３によれば、ＲＡＭ２０６上のアドレス変換テーブルキャッシュＬＰＴ−Ｃに、バリッドフラグ、ダーティーフラグが存在しないことで、上述した実施の形態１の効果に加えて、ＲＡＭ２０６の容量をさらに低減し、信頼性の高いＳＳＤ２０２を製造することができる。
【０２１３】
[実施の形態４]
実施の形態４の不揮発性記憶装置について、図１８を用いて説明する。図１８は、この不揮発性記憶装置（ＳＳＤ）２０２のエリアテーブルを説明するための図である。
【０２１４】
本実施の形態では、エリアテーブルにより、アドレス変換テーブルＬＰＴと消去テーブルＥＴがウェアレベリングされていることを特徴とする。エリアテーブルにより、アドレス変換テーブルＬＰＴと消去テーブルＥＴのＮＶＭ２０５への書き込みが平準化されるため、高信頼なＳＳＤ２０２を実現できる。
【０２１５】
エリアテーブルと、アドレス変換テーブルＬＰＴ、消去テーブルＥＴ、データ領域との関係を図１８に示す。エリアテーブルには、アドレス変換子テーブル（ＬＰＴ−Ｃ）、消去子テーブル（ＥＴ−Ｃ）の物理アドレスが格納されている。ＬＢＡアドレスの一部アドレス（例えば、上位ビット）からアドレス変換子テーブル番号を決定することができる。また、物理アドレス（ＰＰＮ）の一部アドレス（例えば、上位ビット）から、消去子テーブル番号を決定することができる。アドレス変換子テーブルに含まれる情報から、ホスト機器２０１から要求されたデータが、ＮＶＭ２０５上のデータ領域のどこに書き込まれているかを決定することができる。また、消去子テーブルに含まれる情報から、ＰＰＮに対応するデータ領域に書き込まれているデータが消去可能かを決定することができる。
【０２１６】
なお、必ずしも、アドレス変換テーブルＬＰＴと消去テーブルＥＴを同時にウェアレベリングする必要はなく、エリアテーブルを用いて消去テーブルＥＴのみをウェアレベリングすることが可能であることは言うまでもない。
【０２１７】
さらに、キャッシュ上の消去子テーブルＥＴ−ＳＲに関して、複数個のＥＴ−ＳＲを同時にＮＶＭ２０５に書き戻すことができる。このようにすることで、ＮＶＭ２０５への書き込み単位を大きくすることができるため、ページサイズの大きなＮＶＭ２０５を効率的に制御することができる。また、複数のＮＶＭチップを巧みに並列制御する必要がなくなるため、簡素かつ堅牢な制御アルゴリズムで高性能なＳＳＤ２０２を実現することが可能になる。
【０２１８】
以上に説明した本実施の形態４によれば、エリアテーブルにより、アドレス変換テーブルＬＰＴと消去テーブルＥＴがウェアレベリングされていることで、上述した実施の形態１の効果に加えて、高信頼で、高性能なＳＳＤ２０２を製造することができる。
【０２１９】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
【産業上の利用可能性】
【０２２０】
本発明のＳＳＤは、書き込み可能なＮＶＭ、例えばフラッシュメモリもしくは相変化メモリを有する記憶装置に関し、書き込み又は読み出しを管理するＳＳＤコントローラを含むＳＳＤに利用可能である。
【符号の説明】
【０２２１】
２０１  ホスト機器
２０２  ＳＳＤ（不揮発性記憶装置）
２０３  ホストＩ／Ｆ
２０４  制御部
２０５  ＮＶＭ（不揮発性メモリ）
２０６  ＲＡＭ
２０７  エリアテーブル
２０８  エリアテーブルバックアップ
２１４  ＬＰＴ−ＳＲのバリッドフラグ
２１５  ＬＰＴ−ＳＲのダーティーフラグ
２１６  ＬＰＴ−ＳＲのＴａｇ
２１８  ＥＴ−ＳＲのバリッドフラグ
２１９  ＥＴ−ＳＲのダーティーフラグ
２２０  ＥＴ−ＳＲのＴａｇ
２３０  インターフェース
２３１  内部バス
３０１  ＬＰＴ−ＳＲのＬＲＵフラグ
３０２  ＥＴ−ＳＲのＬＲＵフラグ
４０１  ３Ｄ−ＰＣＭ（３次元積層相変化メモリ）
４０２  ３Ｄ−ＰＣＭ（３次元積層相変化メモリ）
ＥＴ  消去テーブル
ＥＴ−Ｃ  消去テーブルキャッシュ
ＥＴ−Ｓ  ＮＶＭ上に設けられた消去子テーブル
ＥＴ−ＳＲ  ＲＡＭ上に設けられた消去子テーブル
ＬＰＴ  アドレス変換テーブル
ＬＰＴ−Ｃ  アドレス変換テーブルキャッシュ
ＬＰＴ−Ｓ  ＮＶＭ上に設けられたアドレス変換子テーブル
ＬＰＴ−ＳＲ  ＲＡＭ上に設けられたアドレス変換子テーブル
【図１】
0005907739.tif 000002
【図２】
0005907739.tif 000003
【図３】
0005907739.tif 000004
【図４】
0005907739.tif 000005
【図５】
0005907739.tif 000006
【図６】
0005907739.tif 000007
【図７】
0005907739.tif 000008
【図８】
0005907739.tif 000009
【図９】
0005907739.tif 000010
【図１０】
0005907739.tif 000011
【図１１】
0005907739.tif 000012
【図１２】
0005907739.tif 000013
【図１３】
0005907739.tif 000014
【図１４】
0005907739.tif 000015
【図１５】
0005907739.tif 000016
【図１６】
0005907739.tif 000017
【図１７】
0005907739.tif 000018
【図１８】
0005907739.tif 000019