(57)【特許請求の範囲】
【請求項１】
不揮発性メモリと、
前記不揮発性メモリに含まれている複数の書き込み管理エリアを複数のスペースとインプットスペースとに割り当て、前記書き込み管理エリアは書き込み回数を管理する単位のエリアである、設定部と、
前記インプットスペースに前記書き込みデータを書き込んだ後に、前記インプットスペースの前記書き込みデータを、前記複数のスペースのうちの前記書き込みデータに対応するスペースに書き込む書き込み部と、
前記不揮発性メモリに対して前記複数のスペースごとにガベージコレクションを実行する制御部と、
を具備する、メモリシステム。
【請求項２】
前記不揮発性メモリは、ＮＡＮＤ型フラッシュメモリであり、
前記複数の書き込み管理エリアは、複数のブロックであり、
前記インプットスペースは、インプットネームスペースであり、
前記複数のスペースは、複数のネームスペースである、
請求項１に記載のメモリシステム。
【請求項３】
前記書き込み部は、前記複数のスペースのうちの第１のスペースに対する第１のガベージコレクションの実行に基づいて、前記インプットスペースに格納されており前記第１のスペースに対応する第１のデータを、前記第１のスペースに書き込む、
請求項１又は請求項２に記載のメモリシステム。
【請求項４】
前記設定部は、前記インプットスペースに格納されているデータと前記データに対応するスペースとの関係を含む管理データを生成する、
請求項１乃至請求項３のいずれか１項に記載のメモリシステム。
【請求項５】
前記設定部は、前記インプットスペースに格納されており前記複数のスペースのうちの第１のスペースに対応するデータのデータ量を求め、前記第１のスペースに対応する所定のデータ量から前記求められたデータ量を引いた値に基づいて、前記第１のスペースに対して少なくとも１つの書き込み管理エリアを割り当てる、
請求項１乃至請求項４のいずれか１項に記載のメモリシステム。
【請求項６】
前記管理データは、前記第１のスペースと前記求められたデータ量との関係をさらに含み、
前記設定部は、前記インプットスペースのうちのデータ移動対象の書き込み管理エリアに格納されており前記第１のスペースに対応する有効データが、前記第１のスペースに移動された場合に、前記求められたデータ量から、前記第１のスペースに移動された前記有効データのデータ量を引いた値に基づいて、前記管理データを更新する、
請求項５に記載のメモリシステム。
【請求項７】
前記設定部は、前記インプットスペースから、最も書き込み時間の古い書き込み管理エリアを、データ移動対象の書き込み管理エリアとして選択し、
前記書き込み部は、前記データ移動対象の書き込み管理エリアに格納されている有効データを、前記有効データに対応するスペースに書き込む、
請求項１乃至請求項５のいずれか１項に記載のメモリシステム。
【請求項８】
前記設定部は、前記インプットスペースから、有効データのデータ量の最も少ない書き込み管理エリアを、データ移動対象の書き込み管理エリアとして選択し、
前記書き込み部は、前記データ移動対象の書き込み管理エリアに格納されている前記有効データを、前記有効データに対応するスペースに書き込む、
請求項１乃至請求項５のいずれか１項に記載のメモリシステム。
【請求項９】
前記設定部は、前記インプットスペースから、有効データのデータ量がしきい値より少ない書き込み管理エリアを、データ移動対象の書き込み管理エリアとして選択し、
前記書き込み部は、前記データ移動対象の書き込み管理エリアに格納されている前記有効データを、前記有効データに対応するスペースに書き込む、
請求項１乃至請求項５のいずれか１項に記載のメモリシステム。
【請求項１０】
前記設定部は、前記インプットスペースのうちのデータ移動対象の書き込み管理エリアに格納されている有効データのデータ量が、しきい値より少ない場合に、前記インプットスペースに含まれている前記書き込み管理エリアの数を減らす、
請求項１乃至請求項５のいずれか１項に記載のメモリシステム。
【請求項１１】
前記設定部は、前記インプットスペースのうちのデータ移動対象の書き込み管理エリアに格納されている有効データのデータ量が、しきい値より多い場合に、前記インプットスペースに含まれている前記書き込み管理エリアの数を増やす、
請求項１乃至請求項５のいずれか１項に記載のメモリシステム。
【請求項１２】
前記設定部は、前記複数のスペースを複数のインプットスペースに割り当て、
前記書き込み部は、前記複数のインプットスペースのうちの前記書き込みデータに対応する第１のインプットスペースに前記書き込みデータを書き込んだ後に、前記第１のインプットスペースの前記書き込みデータを、前記複数のスペースのうちの前記書き込みデータに対応する前記スペースに書き込む、
請求項１乃至請求項１１のいずれか１項に記載のメモリシステム。
【請求項１３】
コンピュータを、
不揮発性メモリに含まれている複数の書き込み管理エリアを複数のスペースとインプットスペースとに割り当て、前記書き込み管理エリアは書き込み回数を管理する単位のエリアである、設定部と、
前記インプットスペースに前記書き込みデータを書き込んだ後に、前記インプットスペースの前記書き込みデータを、前記複数のスペースのうちの前記書き込みデータに対応するスペースに書き込む書き込み部と、
前記不揮発性メモリに対して前記複数のスペースごとにガベージコレクションを実行する制御部と、
して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、メモリシステム及びプログラムに関する。
【背景技術】
【０００２】
ソリッドステートドライブ（ＳＳＤ）は、不揮発性半導体メモリを備え、ハードディスクドライブ（ＨＤＤ）と同様のインタフェースを持つ。例えば、ＳＳＤは、データ書き込み時に、書き込みコマンド、書き込み先のＬＢＡ（Logical Block Addressing）、書き込みデータを情報処理装置から受け、ＬＵＴ（Look Up Table）に基づいて、ＬＢＡをＰＢＡ（Physical Block Addressing）に変換し、ＰＢＡの示す位置に書き込みデータを書き込む。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−１９１１７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
実施形態は、不揮発性メモリに対する制御を効率化するメモリシステム及びプログラムを提供する。
【課題を解決するための手段】
【０００５】
実施形態によれば、メモリシステムは、不揮発性メモリと、設定部と、書き込み部と、制御部とを含む。設定部は、不揮発性メモリに含まれている複数の書き込み管理エリアを複数のスペースとインプットスペースとに割り当てる。書き込み管理エリアは書き込み回数を管理する単位のエリアである。書き込み部は、インプットスペースに書き込みデータを書き込んだ後に、インプットスペースの書き込みデータを、複数のスペースのうちの書き込みデータに対応するスペースに書き込む。制御部は、不揮発性メモリに対して複数のスペースごとにガベージコレクションを実行する。
【図面の簡単な説明】
【０００６】
【図１】第１の実施形態に係る情報処理システムの構成の一例を示すブロック図。
【図２】ＬＢＡ空間と、ネームスペースと、アドレス変換テーブルと、ガベージコレクション部と、管理データとの関係の一例を示すブロック図。
【図３】第１の実施形態に係る受付部及び設定部の処理の一例を示すフローチャート。
【図４】第１の実施形態に係るガベージコレクション部及びアドレス変換部の処理の一例を示すフローチャート。
【図５】第２の実施形態に係る情報処理システムの構成の一例を示すブロック図。
【図６】第２の実施形態に係る変換テーブルの一例を示すデータ構造図。
【図７】第２の実施形態に係るメモリシステムの第１の書き込み処理の一例を示すフローチャート。
【図８】第２の実施形態に係るメモリシステムの第２の書き込み処理の一例を示すフローチャート。
【図９】第２の実施形態に係るメモリシステムの読み出し処理の一例を示すフローチャート。
【図１０】第３の実施形態に係る情報処理システムの構成の一例を示すブロック図。
【図１１】第３の実施形態に係るストレージシステムを示す斜視図。
【発明を実施するための形態】
【０００７】
以下、図面を参照して実施形態について説明する。以下の説明において、略同一の機能及び構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。以下の実施形態において、アクセスとは、データの読み出し及びデータの書き込みの双方を意味する。
【０００８】
［第１の実施形態］
図１は、本実施形態に係る情報処理システムの構成の一例を示すブロック図である。
【０００９】
情報処理システム１は、情報処理装置２と、メモリシステム３とを含む。情報処理システム１は、複数の情報処理装置２を含むとしてもよい。情報処理システム１が複数の情報処理装置を備える場合については、後述の第２の実施形態で説明する。
【００１０】
メモリシステム３は、例えばＳＳＤであり、コントローラ４と不揮発性メモリ５とを含む。メモリシステム３は、情報処理装置２に内蔵されてもよく、情報処理装置２とメモリシステム３とは、ネットワークなどによりデータを送受信可能に接続されるとしてもよい。
【００１１】
本実施形態において、不揮発性メモリ５としては、例えば、少なくとも１つのＮＡＮＤ型フラッシュメモリが用いられる。しかしながら、本実施形態は、例えば、ＮＯＲ型フラッシュメモリ、ＭＲＡＭ（Magnetoresistive Random Access Memory）、ＰＲＡＭ（Phase change Random Access Memory）、ＲｅＲＡＭ（Resistive Random Access Memory）、又は、ＦｅＲＡＭ（Ferroelectric Random Access Memory）などのような各種の不揮発性メモリが複数の書き込み管理エリアを含む場合に、適用可能である。ここで、書き込み管理エリアは、書き込み回数を管理する単位のエリアとする。不揮発性メモリ５は、３次元メモリを含むとしてもよい。
【００１２】
例えば、不揮発性メモリ５は、複数のブロック（物理ブロック）を備える。複数のブロックは、ワード線とビット線との交点に配置される複数のメモリセルを含む。不揮発性メモリ５では、ブロック単位にデータが一括して消去される。すなわち、ブロックは、データ消去単位の領域である。データ書き込み及びデータ読み出しは、各ブロックにおけるページ（ワード線）単位で行う。すなわち、ページは、データの書き込み単位又はデータの読み出し単位の領域である。
【００１３】
本実施形態では、書き込み回数がブロック単位で管理されるとする。
【００１４】
情報処理装置２は、メモリシステム３のホスト装置である。情報処理装置２は、メモリシステム３へ、不揮発性メモリ５のブロックと、少なくとも１つのブロックを含むスペースとを関係付けるための設定コマンドＣ１を送る。
【００１５】
以下の説明では、スペースは、ネームスペースであるとして説明する。
【００１６】
また、情報処理装置２は、書き込みコマンドＣ２とともに、ネームスペースの識別データ（ＮＳＩＤ）６、書き込み先を示すＬＢＡ７、書き込みデータのデータサイズ８、及び、書き込みデータ９を、メモリシステム３へ送る。
【００１７】
本実施形態において、複数のネームスペースＮＳ0〜ＮＳM（Ｍは１以上の整数）のそれぞれは、不揮発性メモリ５に含まれる複数のブロックＢ0〜ＢN（ＮはＭ以上の整数）を区分けすることによって得られるスペースである。本実施形態では、ネームスペースＮＳ0がブロックＢ0〜Ｂ2を含み、ネームスペースＮＳMがブロックＢN-2〜ＢNを含む。他のネームスペースＮＳ1〜ＮＳM-1もネームスペースＮＳ0，ＮＳMと同様であるとする。
【００１８】
さらに、本実施形態においては、ネームスペースＮＳ0〜ＮＳMを複数のインプットグループＩＧ0〜ＩＧP（Ｐは１以上の整数）に区分けしている。なお、ネームスペースＮＳ0〜ＮＳMは区分けされることなく、１つのインプットグループとして扱われてもよい。
【００１９】
インプットグループＩＧ0はネームスペースＮＳ0，ＮＳ1を含み、インプットグループＩＧPはネームスペースＮＳM-1〜ＮＳMを含む。他のインプットグループＩＧ1〜ＩＧP-1もインプットグループＩＧ0，ＩＧPと同様であるとする。
【００２０】
さらに、インプットグループＩＧ0〜ＩＧPは、それぞれ、インプットネームスペースＩＮＳ0〜ＩＮＳPを含む。
【００２１】
インプットネームスペースＩＮＳ0〜ＩＮＳPは、それぞれ、３つのブロックＢを含む。しかしながら、インプットネームスペースＩＮＳ0に含まれるブロックＢの数は、１以上であればよい。
【００２２】
以下で、ネームスペースＮＳ0，ＮＳ1を含むインプットグループＩＧ0を用いて、インプットネームスペースＩＮＳ0について説明する。
【００２３】
インプットネームスペースＩＮＳ0は、ネームスペースＮＳ0，ＮＳ1に対する書き込みデータ９を格納する。本実施形態において、インプットネームスペースＩＮＳ0は、ネームスペースＮＳ0，ＮＳ1からのデータを格納しないとする。インプットネームスペースＩＮＳ0は、当該インプットネームスペースＩＮＳ0内のブロック間でデータを移動する場合がある。
【００２４】
インプットネームスペースＩＮＳ0に格納されているデータは、ネームスペースＮＳ0又はネームスペースＮＳ1に対して独立のガベージコレクションが実行された場合に、ガベージコレクションの実行されたネームスペースＮＳ0又はネームスペースＮＳ1に格納される。
【００２５】
なお、本実施形態におけるネームスペースＮＳ0〜ＮＳMとブロックＢ0〜ＢNとの間の割り当て関係、インプットネームスペースＩＮＳ0〜ＩＮＳPとブロックＢとの間の割り当て関係、ネームスペースＮＳ0〜ＮＳMとインプットネームスペースＩＮＳ0〜ＩＮＳPとの割り当て関係は一例であり、１つのネームスペースに割り当てられるブロックの個数、１つのインプットネームスペースに割り当てられるブロックの個数、１つのインプットグループに割り当てられるネームスペースの個数などは適宜変更可能である。例えば、各ネームスペースＮＳ0〜ＮＳMに割り当てられるインプットネームスペースＩＮＳ0〜ＩＮＳPは選択可能としてもよい。複数のネームスペースＮＳ0〜ＮＳMの間でブロックの個数は異なっていてもよく、複数のインプットネームスペースＩＮＳ0〜ＩＮＳPの間でブロックの個数は異なっていてもよい。
【００２６】
コントローラ４は、記憶部１０、バッファメモリＦ0〜ＦM、プロセッサ１１を含む。
【００２７】
記憶部１０は、各ネームスペースＮＳ0〜ＮＳMに対応するアドレス変換テーブル（アドレス変換データ）Ｔ0〜ＴMを格納する。例えば、記憶部１０は、作業用メモリとして使用されてもよい。記憶部１０は、例えばＤＲＡＭ（Dynamic Random Access Memory）又はＳＲＡＭ（Static Random Access Memory）などのような揮発性メモリでもよく、又は、不揮発性メモリでもよい。記憶部１０は、不揮発性メモリと揮発性メモリとの組み合わせでもよい。
【００２８】
アドレス変換テーブルＴ0〜ＴMは、ネームスペースＮＳ0〜ＮＳMに対するデータ書き込みにおいて、ＬＢＡとＰＢＡとを関係付けたデータであり、例えばＬＵＴである。なお、アドレス変換テーブルＴ0〜ＴMの一部又は全部は、メモリ１２などのような他のメモリに格納されてもよい。
【００２９】
バッファメモリＦ0〜ＦMは、それぞれ、ネームスペースＮＳ0〜ＮＳMに対するデータ書き込みにおいて、書き込みデータを書き込みに適したデータ量になるまで格納する。本実施形態において、バッファメモリＦ0〜ＦMは、それぞれ、ネームスペースＮＳ0〜ＮＳMごとに備えられている。しかしながら、バッファメモリは、インプットネームスペースＩＮＳ0〜ＩＮＳPごとに備えられてもよい。この場合、バッファメモリの数を少なくすることができる。
【００３０】
プロセッサ１１は、メモリ１２、受付部１３、設定部１４、アドレス変換部１５、書き込み部１６、ガベージコレクション部Ｇ0〜ＧYを含む。
【００３１】
メモリ１２は、プログラム１７及び管理データ１８を格納する。本実施形態において、メモリ１２は、プロセッサ１１に含まれているが、プロセッサ１１の外部に備えられてもよい。メモリ１２は、例えば不揮発性のメモリとする。なお、プログラム１７及び管理データ１８の一部又は全部は、記憶部１０などのような他のメモリに格納されてもよい。
【００３２】
プログラム１７は、例えばファームウェアである。プロセッサ１１は、プログラム１７を実行することにより、受付部１３、設定部１４、アドレス変換部１５、書き込み部１６、ガベージコレクション部Ｇ0〜ＧYとして機能する。
【００３３】
管理データ１８は、ネームスペースＮＳ0〜ＮＳMとブロックＢ0〜ＢNとの関係、インプットネームスペースＩＮＳ0〜ＩＮＳPとブロックＢとの関係、ネームスペースＮＳ0〜ＮＳMとインプットネームスペースＩＮＳ0〜ＩＮＳPとの関係（インプットグループＩＧ0〜ＩＧP）を示すデータである。管理データ１８を参照することにより、どのブロックがどのネームスペース又はインプットネームスペースに所属しているか、どのインプットネームスペースがどのネームスペースに割り当てられているか、判断可能である。
【００３４】
さらに、本実施形態では、管理データ１８は、インプットネームスペースＩＮＳ0〜ＩＮＳPに格納されているデータと当該データに対応するネームスペースＮＳ0〜ＮＳMとの関係、インプットネームスペースＩＮＳ0〜ＩＮＳPに格納されているネームスペースＮＳ0〜ＮＳMごとのデータのデータ量、ネームスペースＮＳ0〜ＮＳMごとの書き込み可能データ量、ネームスペースＮＳ0〜ＮＳMごとの書き込み可能な最大データ量、インプットネームスペースＩＮＳ0〜ＩＮＳPに含まれるブロックＢの書き込み時間データ（書き込みが実行された時間）、インプットネームスペースＩＮＳ0〜ＩＮＳPに含まれるブロックＢごとの有効データのデータ量など、各種の情報を含む。
【００３５】
本実施形態において、データ量は、例えば、データサイズ又はブロックサイズで表されてもよい。データ量は、例えば、各データのデータサイズが同じ場合には、データの個数又はブロックの個数で表されてもよい。
【００３６】
受付部１３は、情報処理装置２から、不揮発性メモリ５の各ブロックと、各ネームスペースとを関係付けるための設定コマンドＣ１を受け付ける。また、受付部１３は、情報処理装置２から、書き込みコマンドＣ２、ＮＳＩＤ６、ＬＢＡ７、データサイズ８、データ９を受け付ける。
【００３７】
以下の説明では、説明を簡略化するため、書き込みコマンドＣ２に、ネームスペースＮＳ0を示すＮＳＩＤ６が付されている場合について説明する。しかしながら、書き込みコマンドＣ２に、他のネームスペースＮＳ1〜ＮＳMを示すＮＳＩＤを付すことも可能である。
【００３８】
設定部１４は、受付部１３によってネームスペースの設定コマンドＣ１が受け付けられた場合に、設定コマンドＣ１に基づいて、ネームスペースＮＳ0〜ＮＳMにブロックＢ0〜ＢNを割り当て、インプットネームスペースＩＮＳ0〜ＩＮＳPにブロックＢを割り当て、インプットネームスペースＩＮＳ0〜ＩＮＳPにネームスペースＮＳ0〜ＮＳMを割り当て、インプットグループＩＧ0〜ＩＧPを設定する。
【００３９】
ネームスペースＮＳ0〜ＮＳMとブロックＢ0〜ＢNとの間の割り当ては、設定部１４がネームスペースＮＳ0〜ＮＳMのデータ格納状態を監視し、各ネームスペースＮＳ0〜ＮＳMで、データ容量、アクセス頻度、書き込み頻度、アクセス回数、書き込み回数、又は、データ格納率が同レベルとなるように行われてもよく、情報処理装置２からの指示に応じて行われてもよく、メモリシステム３の管理者の指示に応じて行われてもよい。
【００４０】
ここで、データ容量とは書き込み可能なデータサイズであり、アクセス頻度又は書き込み頻度とは単位時間当たりのアクセス回数又は書き込み回数であり、データ格納率とは、ある領域サイズに対するデータ格納済みの領域サイズの割合を示す値とする。
【００４１】
そして、設定部１４は、ネームスペースＮＳ0〜ＮＳMにブロックＢ0〜ＢNを割り当てた情報、インプットネームスペースＩＮＳ0〜ＩＮＳPにブロックＢを割り当てた情報、インプットネームスペースＩＮＳ0〜ＩＮＳPにネームスペースＮＳ0〜ＮＳMを割り当てた情報、インプットネームスペースＩＮＳ0〜ＩＮＳPに格納されているデータと当該データに対応するネームスペースＮＳ0〜ＮＳMとの関係を示す情報、インプットネームスペースＩＮＳ0〜ＩＮＳPに格納されており各ネームスペースＮＳ0〜ＮＳMに対応するデータのデータ量、ネームスペースＮＳ0〜ＮＳMごとの書き込み可能データ量、ネームスペースＮＳ0〜ＮＳMごとの書き込み可能な最大データ量、インプットネームスペースＩＮＳ0〜ＩＮＳPに含まれるブロックの書き込み時間データ、インプットネームスペースＩＮＳ0〜ＩＮＳPのブロックＢごとの有効データのデータ量など各種の情報を含む管理データ１８を生成し、管理データ１８をメモリ１２に格納する。
【００４２】
例えば、設定部１４は、インプットネームスペースＩＮＳ0〜ＩＮＳPにデータが書き込まれるごとに、インプットネームスペースＩＮＳ0〜ＩＮＳPに格納されているネームスペースＮＳ0〜ＮＳMごとのデータのデータ量を求める。そして、設定部１４は、ネームスペースＮＳ0〜ＮＳMに対応する所定のデータ量から、求められたインプットネームスペースＩＮＳ0〜ＩＮＳPに格納されているネームスペースＮＳ0〜ＮＳMごとのデータのデータ量を差し引いた値に相当する数のブロックを、ネームスペースＮＳ0〜ＮＳMに割り当てる。
【００４３】
例えば、設定部１４は、ネームスペースＮＳ0〜ＮＳMと、インプットネームスペースＩＮＳ0〜ＩＮＳPに格納されているネームスペースＮＳ0〜ＮＳMごとのデータのデータ量との関係を示す情報を、管理データ１８で管理する。
【００４４】
例えば、設定部１４は、インプットネームスペースＩＮＳ0〜ＩＮＳPに含まれているブロックＢの中からデータ移動対象のブロックを選択する。設定部１４は、データ移動対象のブロックに格納されておりネームスペースＮＳ0〜ＮＳMに対応する有効データが、当該有効データに対応するネームスペースＮＳ0〜ＮＳMのブロックに移動された場合、インプットネームスペースＩＮＳ0〜ＩＮＳPに格納されているネームスペースＮＳ0〜ＮＳMごとのデータのデータ量から、ネームスペースＮＳ0〜ＮＳMに移動された有効データのデータ量を差し引く。そして、設定部１４は、差し引いた値で、管理データ１８を更新する。
【００４５】
ここで、設定部１４は、有効データを移動するブロックの選択方法として、インプットネームスペースＩＮＳ0〜ＩＮＳPに含まれているブロックＢのうち、最も書き込み時間データの古いブロックをデータ移動対象のブロックとして選択してもよい。
【００４６】
設定部１４は、有効データを移動するブロックの選択方法として、インプットネームスペースＩＮＳ0〜ＩＮＳPに含まれているブロックＢのうち、有効データのデータ量の最も少ないブロックをデータ移動対象のブロックとして選択してもよい。また、本実施形態においては、例えば、インプットネームスペースＩＮＳ0〜ＩＮＳPに含まれているブロックの中から、有効データのデータ量が第１のしきい値より少ないブロックを、データ移動対象のブロックとして選択してもよい。
【００４７】
設定部１４は、有効データを移動するために選択されたデータ移動対象のブロックに格納されている有効データのデータ量が第２のしきい値より少ない場合に、インプットネームスペースＩＮＳ0〜ＩＮＳPに割り当てるブロック数を少なくしてもよい。これとは逆に、設定部１４は、データ移動対象のブロックに格納されている有効データのデータ量が第３のしきい値より多い場合に、インプットネームスペースＩＮＳ0〜ＩＮＳPに割り当てるブロック数を多くしてもよい。
【００４８】
例えば、設定部１４は、インプットネームスペースＩＮＳ0〜ＩＮＳPに含まれるブロックの数が第４のしきい値より多い場合に、インプットネームスペースＩＮＳ0〜ＩＮＳPからデータ移動対象のブロックを選択してもよい。この場合、書き込み部１６は、データ移動対象のブロックに格納されている有効データを当該有効データに対応するネームスペースＮＳ0〜ＮＳMに移動する。そして、設定部１４は、インプットネームスペースＩＮＳ0〜ＩＮＳPに含まれるブロックの数を減らし、ネームスペースＮＳ0〜ＮＳMに含まれるブロック数を増やす。
【００４９】
加えて、設定部１４は、ネームスペースＮＳ0〜ＮＳMごとに実行されたガベージコレクションの結果に基づいて、データを格納していない空ブロックを、ガベージコレクション前に属するネームスペースから他のネームスペースに変更し、管理データ１８を更新する。これにより、ネームスペースＮＳ0〜ＮＳM間でウェアレベリング（Wear Leveling）を実行することができる。ネームスペースＮＳ0〜ＮＳMとブロックＢ0〜ＢNとの間の割り当て変更は、設定部１４がネームスペースＮＳ0〜ＮＳMのデータ格納状態を監視し、上記の管理データ１８の生成時と同様に監視結果に応じて行われてもよく、情報処理装置２からの指示に応じて行われてもよく、メモリシステム３の管理者の指示に応じて行われてもよい。例えば、ネームスペースＮＳ0〜ＮＳMの変更は、データ容量の少ない、アクセス頻度の低い、アクセス回数の少ない、又は、データ格納率の低いネームスペースの空ブロックを、データ容量の多い、アクセス頻度の高い、アクセス回数の多い、又は、データ格納率の高いネームスペースに変換する。
【００５０】
さらに、設定部１４は、オーバープロビジョニング（Over Provisioning）のために、設定コマンドＣ１に基づいて、ネームスペースＮＳ0〜ＮＳM及びインプットネームスペースＩＮＳ0〜ＩＮＳPごとに、不揮発性メモリ５に、普段使用されない予備領域Ｐ0〜ＰYを設定する。予備領域Ｐ0〜ＰYの設定は、設定部１４がネームスペースＮＳ0〜ＮＳM及びインプットネームスペースＩＮＳ0〜ＩＮＳPの各データ容量などに応じて行うとしてもよく、情報処理装置２からの指示に応じて行われてもよく、メモリシステム３の管理者の指示に応じて行われてもよい。
【００５１】
本実施形態において、予備領域Ｐ0〜ＰYは、不揮発性メモリ５に確保されているが、不揮発性メモリ５ではないメモリシステム３内の他のメモリに確保されていてもよい。例えば、予備領域Ｐ0〜ＰYは、ＤＲＡＭ、ＳＲＡＭなどのメモリに確保されてもよい。
【００５２】
アドレス変換部１５は、受付部１３によって書き込みコマンドＣ２が受け付けられた場合に、書き込みコマンドＣ２に付されていたＮＳＩＤ６の示すネームスペースＮＳ0に対応するアドレス変換テーブルＴ0に対して、書き込みコマンドＣ２に付されていたＬＢＡ７をＰＢＡに変換するための関係付けを行う。
【００５３】
例えば、アドレス変換部１５は、書き込み時に、ＬＢＡ７と、インプットネームスペースＩＮＳ0内のＰＢＡとを関係付けて、アドレス変換テーブルＴ0を更新する。さらに、アドレス変換部１５は、インプットネームスペースＩＮＳ0からネームスペースＮＳ0へのデータの移動によってＬＢＡ７とＰＢＡとの関係が変更された場合に、ＬＢＡ７とネームスペースＮＳ0のＰＢＡとを関連付けて、アドレス変換テーブルＴ0を更新する。
【００５４】
本実施形態において、アドレス変換部１５は、プロセッサ１１によって実現されるとしている。しかしながら、アドレス変換部１５は、プロセッサ１１と別の構成としてもよい。
【００５５】
また、アドレス変換部１５は、アドレス変換テーブルＴ0〜ＴMに基づいてアドレス変換を行うが、これに代えてキーバリュー型検索によりアドレス変換を行ってもよい。例えば、ＬＢＡをキーとし、ＰＢＡをバリューとすることで、キーバリュー型検索によるアドレス変換は実現可能である。
【００５６】
書き込み部１６は、アドレス変換部１５によって得られたインプットネームスペースＩＮＳ0〜ＩＮＳPにおけるＰＢＡの示す位置に書き込みデータ９を書き込み、その後、インプットネームスペースＩＮＳ0〜ＩＮＳPからアドレス変換部１５によって得られたネームスペースＮＳ0〜ＮＳMにおけるＰＢＡの示す位置に書き込みデータ９を書き込む。
【００５７】
本実施形態において、書き込み部１６は、書き込みコマンドＣ２に付されていたＮＳＩＤ６の示すネームスペースＮＳ0に対応するバッファメモリＦ0に、書き込みデータ９を格納する。次に、書き込み部１６は、バッファメモリＦ0がインプットネームスペースＩＮＳ0又はネームスペースＮＳ0に適したデータ量になった場合に、インプットネームスペースＩＮＳ0に、バッファメモリＦ0のデータを書き込む。そして、書き込み部１６は、例えば、ネームスペースＮＳ0に対するガベージコレクションの実行に基づいて、設定部１４によって選択されたデータ移動対象のブロックに格納されておりネームスペースＮＳ0に対応する有効データを、当該有効データに関連付けられているネームスペースＮＳ0のブロックに移動する。例えば、書き込み部１６は、ネームスペースＮＳ0に対するガベージコレクションの実行時に併せてインプットネームスペースＩＮＳ0に格納されておりネームスペースＮＳ0に対応する有効データを、ネームスペースＮＳ0に書き込む。なお、書き込み部１６によるインプットネームスペースＩＮＳ0からネームスペースＮＳ0へのデータの移動は、任意のタイミングで実行されてもよい。
【００５８】
ガベージコレクション部Ｇ0〜ＧYは、ネームスペースＮＳ0〜ＮＳM及びインプットネームスペースＩＮＳ0〜ＩＮＳPに対応しており、ネームスペースＮＳ0〜ＮＳM及びインプットネームスペースＩＮＳ0〜ＩＮＳPごとに独立にガベージコレクションを実行可能である。ガベージコレクションとは、不要になったメモリ領域を解放する処理、又は、隙間のあるメモリ領域に書き込まれているデータを集めて連続した利用可能なメモリ領域を確保する処理である。ガベージコレクション部Ｇ0〜ＧYは、並列にガベージコレクションを実行可能としてもよく、順にガベージコレクション部Ｇ0〜ＧYを実行してもよい。
【００５９】
ガベージコレクション部Ｇ0〜ＧYのうちガベージコレクション部Ｇ0を用いて具体的に説明する。ガベージコレクション部Ｇ0は、まず、管理データ１８に基づいて、ネームスペースＮＳ0に対応するブロックＢ0〜Ｂ2を選択する。次に、ガベージコレクション部Ｇ0は、選択されたブロックＢ0〜Ｂ2に対するガベージコレクションを実行する。そして、ガベージコレクション部Ｇ0によるガベージコレクション結果に基づいて、アドレス変換部１５は、アドレス変換テーブルＴ0を更新する。
【００６０】
なお、本実施形態においては、ＬＢＡとＰＢＡとがアドレス変換テーブルＴ0〜ＴMで関係付けられており、ＰＢＡで特定可能なブロックとＮＳＩＤとが管理データ１８で関係付けられている。したがって、ＬＢＡが重複しないユニークなアドレスであり管理データ１８が生成されれば、プロセッサ１１側で、書き込みコマンドＣ２に付されているＬＢＡ７から書き込み先のネームスペースＮＳ0を特定可能である。したがって、ＬＢＡ７が重複せず管理データ１８が生成された後には、書き込みコマンドＣ２にＮＳＩＤ６が付されることを省略し、ＬＢＡ７とアドレス変換テーブルＴ0〜ＴMと管理データ１８に基づいて、プロセッサ１１側でＮＳＩＤ６が求められるとしてもよい。
【００６１】
図２は、ＬＢＡ空間と、ネームスペースＮＳ0〜ＮＳMと、アドレス変換テーブルＴ0〜ＴMと、ガベージコレクション部Ｇ0〜ＧMと、管理データ１８との関係の一例を示すブロック図である。
【００６２】
情報処理装置２のＬＢＡ空間Ａ0〜ＡMは、それぞれネームスペースＮＳ0〜ＮＳMに割り当てられている。
【００６３】
ＬＢＡ空間Ａ0は論理アドレス０〜Ｅ0を含む。ＬＢＡ空間Ａ1は論理アドレス０〜Ｅ1を含む。ＬＢＡ空間ＡMは論理アドレス０〜ＥMを含む。他のＬＢＡ空間Ａ2〜ＡM-1も同様に複数の論理アドレスを含む。
【００６４】
以下の説明では、説明を簡略化するために、ＬＢＡ空間Ａ0とこのＬＢＡ空間Ａ0に対して割り当てられているネームスペースＮＳ0とを代表して説明する。しかしながら、他のＬＢＡ空間Ａ1〜ＡM及びネームスペースＮＳ1〜ＮＳMについても同様である。
【００６５】
情報処理装置２は、ＬＢＡ空間Ａ0のデータを不揮発性メモリ５に書き込む場合に、書き込みコマンドＣ２、ＬＢＡ空間Ａ0に対応するネームスペースＮＳ0を示すＮＳＩＤ６、ＬＢＡ空間Ａ0内のＬＢＡ７、データサイズ８、ＬＢＡ７に対応する書き込みデータ９をメモリシステム３に送る。
【００６６】
管理データ１８は、ネームスペースＮＳ0とブロックＢ0〜Ｂ2と関係付けている。
【００６７】
ガベージコレクション部Ｇ0は、管理データ１８に基づいて、ガベージコレクション部Ｇ0に対応するネームスペースＮＳ0に含まれているブロックＢ0〜Ｂ2に対して、ガベージコレクションを実行する。
【００６８】
ガベージコレクションの結果、ブロックＢ0〜Ｂ2内でデータの配置が変化する。このため、ガベージコレクション部Ｇ0は、図２において省略されているアドレス変換部１５にアドレス変換テーブルＴ0の更新を指示し、アドレス変換部１５は、ガベージコレクション後のデータ配置と整合するように、ネームスペースＮＳ0に対応するアドレス変換テーブルＴ0を更新する。
【００６９】
図３は、本実施形態に係る受付部１３及び設定部１４の処理の一例を示すフローチャートである。
【００７０】
ステップＳ３０１において、受付部１３は、ネームスペースＮＳ0〜ＮＳMの設定コマンドＣ１を受け付ける。
【００７１】
ステップＳ３０２において、設定部１４は、ネームスペースＮＳ0〜ＮＳMにブロックＢ0〜ＢNを割り当てた情報、インプットネームスペースＩＮＳ0〜ＩＮＳPにブロックＢを割り当てた情報、インプットネームスペースＩＮＳ0〜ＩＮＳPにネームスペースＮＳ0〜ＮＳMを割り当てた情報、インプットネームスペースＩＮＳ0〜ＩＮＳPに格納されているデータと当該データに対応するネームスペースＮＳ0〜ＮＳMとの関係を示す情報、その他の各種の情報を含む管理データ１８を生成する。
【００７２】
ステップＳ３０３において、設定部１４は、管理データ１８をメモリ１２に格納する。
【００７３】
ステップＳ３０４において、設定部１４は、管理データ１８を更新するか否か判断する。例えば、設定部１４は、ガベージコレクションの実行に基づいて、インプットネームスペースＩＮＳ0〜ＩＮＳPからネームスペースＮＳ0〜ＮＳMへデータが移動した場合に、管理データ１８を更新すると判断する。
【００７４】
管理データ１８を更新しない場合には、処理はステップＳ３０７に移動する。
【００７５】
管理データ１８を更新する場合には、ステップＳ３０５において、設定部１４は、管理データ１８を更新する。
【００７６】
ステップＳ３０６において、設定部１４は、更新された管理データ１８をメモリ１２に格納する。
【００７７】
ステップＳ３０７において、設定部１４は、処理を継続するか否か判断する。
【００７８】
処理を継続する場合、処理はステップＳ３０４に移動する。
【００７９】
処理を継続しない場合、処理は終了する。
【００８０】
図４は、本実施形態に係るガベージコレクション部Ｇ0及びアドレス変換部１５の処理の一例を示すフローチャートである。なお、他のガベージコレクション部Ｇ1〜ＧMでも同様の処理が実行される。この図４の処理は、例えば、情報処理装置２からの指示に応じて行われてもよく、メモリシステム３の管理者の指示に応じて行われてもよい。また、ガベージコレクション部Ｇ0は、例えば、ガベージコレクション対象のネームスペースＮＳ0のデータ格納状態を監視し、ガベージコレクションの開始を判断するなどのように、自発的に図４の処理を実行してもよい。より具体的に説明すると、例えば、ガベージコレクション部Ｇ0は、ネームスペースＮＳ0内の空きブロックが所定数以下、又は、ネームスペースＮＳ0内の全ブロックに対する空きブロックの割合が所定値以下、の場合に、ネームスペースＮＳ0に対するガベージコレクションを実行する。
【００８１】
ステップＳ４０１において、ガベージコレクション部Ｇ0は、管理データ１８に基づいて、ガベージコレクション対象のネームスペースＮＳ0に対応するブロックＢ0〜Ｂ2を選択する。
【００８２】
ステップＳ４０２において、ガベージコレクション部Ｇ0は、選択されたネームスペースＮＳ0内のブロックＢ0〜Ｂ2に対するガベージコレクションを実行する。このガベージコレクションの実行に基づいて、書き込み部１６は、インプットネームスペースＩＮＳ0からネームスペースＮＳ0へデータを移動させてもよい。
【００８３】
ステップＳ４０３において、アドレス変換部１５は、ガベージコレクション対象のネームスペースＮＳ0に対応するアドレス変換テーブルＴ0を、ガベージコレクション後のブロックＢ0〜Ｂ2の状態及びインプットネームスペースＩＮＳ0のブロックＢの状態にそって更新する。
【００８４】
以上説明した本実施形態においては、ネームスペースＮＳ0〜ＮＳMごとに、予め定められた又は情報処理装置２から設定されたブロック量を割り当てることができ、ネームスペースＮＳ0〜ＮＳMに対応するデータを、そのネームスペースＮＳ0〜ＮＳMに割り当てられたブロックＢ0〜ＢNに書き込むことができ、ネームスペースＮＳ0〜ＮＳMごとに異なるデータ量を設定することができる。
【００８５】
本実施形態においては、例えばガベージコレクション実行などのような任意のタイミングで、インプットネームスペースＩＮＳ0〜ＩＮＳPに格納されていたデータを、ネームスペースＮＳ0〜ＮＳMに移動させることができる。
【００８６】
本実施形態においては、管理データ１８に基づいて、インプットネームスペースＩＮＳ0〜ＩＮＳPに格納されている各データが、どのネームスペースＮＳ0〜ＮＳMに関係するか認識することができる。
【００８７】
本実施形態においては、インプットネームスペースＩＮＳ0〜ＩＮＳPにデータが書き込まれた場合に、インプットネームスペースＩＮＳ0〜ＩＮＳPに格納されておりネームスペースＮＳ0〜ＮＳMに対応するデータのデータ量を計算する。そして、ネームスペースＮＳ0〜ＮＳMに割り当てるブロックＢ0〜ＢNの数を、当該求められたデータ量の分、差し引く。
【００８８】
これにより、インプットネームスペースＩＮＳ0〜ＩＮＳPに格納されているデータの分だけ、対応するネームスペースＮＳ0〜ＮＳMに割り当てられるブロックの数を減らすことができ、効率的にネームスペースＮＳ0〜ＮＳMを割り当てることができる。
【００８９】
本実施形態においては、インプットネームスペースＩＮＳ0〜ＩＮＳPに含まれているブロックＢの中からデータ移動対象のブロックを選択し、データ移動対象のブロックに格納されている有効データを、当該有効データに対応するネームスペースのブロックに移動することができる。この場合に、インプットネームスペースＩＮＳ0〜ＩＮＳPに格納されておりネームスペースＮＳ0〜ＮＳMに対応するデータのデータ量から、データ移動対象のブロックに格納されておりネームスペースＮＳ0〜ＮＳMに対応する有効データのデータ量を差し引く。
【００９０】
これにより、インプットネームスペースＩＮＳ0〜ＩＮＳPからネームスペースＮＳ0〜ＮＳMへデータが移動された場合であっても、インプットネームスペースＩＮＳ0〜ＩＮＳPに格納されておりネームスペースＮＳ0〜ＮＳMに対応するデータのデータ量を認識することができる。
【００９１】
本実施形態においては、インプットネームスペースＩＮＳ0〜ＩＮＳPからネームスペースＮＳ0〜ＮＳMへ古いデータを移動させることができる。
【００９２】
本実施形態においては、例えば、インプットネームスペースＩＮＳ0〜ＩＮＳPから有効データの少ないブロックを選択し、当該選択されたブロックからネームスペースＮＳ0〜ＮＳMへ有効データを移動させることができる。また、本実施形態においては、例えば、インプットネームスペースＩＮＳ0〜ＩＮＳPに含まれているブロックの中から、有効データのデータ量が第１のしきい値より少ないブロックを、データ移動対象のブロックとして選択することができる。
【００９３】
これにより、インプットネームスペースＩＮＳ0〜ＩＮＳPからネームスペースＮＳ0〜ＮＳMへ移動されるデータのデータ量を少なくすることができ、メモリシステム３の性能低下を防止することができる。
【００９４】
本実施形態においては、有効データを移動するために選択されたブロックの有効データのデータ量が第２のしきい値より少ない場合に、インプットネームスペースＩＮＳ0〜ＩＮＳPに割り当てるブロック数を少なくすることができる。また、本実施形態においては、有効データを移動するために選択されたブロックの有効データのデータ量が第３のしきい値より大きい場合に、インプットネームスペースＩＮＳ0〜ＩＮＳPに割り当てるブロック数を多くすることができる。
【００９５】
これにより、インプットネームスペースＩＮＳ0〜ＩＮＳPに割り当てられるブロック数を適切化することができる。
【００９６】
本実施形態においては、インプットネームスペースＩＮＳ0〜ＩＮＳPに含まれるブロックの数が第４のしきい値より多い場合に、設定部１４によってインプットネームスペースＩＮＳ0〜ＩＮＳPからブロックが選択され、書き込み部１６によって、選択されたブロックに格納されている有効データが当該有効データに対応するネームスペースＮＳ0〜ＮＳMへ移動される。そして、本実施形態においては、設定部１４によってインプットネームスペースＩＮＳ0〜ＩＮＳPに含まれるブロックの数が減らされ、ネームスペースＮＳ0〜ＮＳMに含まれるブロック数が増加される。
【００９７】
これにより、インプットネームスペースＩＮＳ0〜ＩＮＳPのサイズが大きくなることにより、ネームスペースＮＳ0〜ＮＳMが不足することを防止することができる。
【００９８】
本実施形態においては、ネームスペースＮＳ0〜ＮＳMのうちのどの位置にデータを書き込むか指定することができる。
【００９９】
本実施形態においては、ガベージコレクションを、ネームスペースＮＳ0〜ＮＳM及びインプットネームスペースＩＮＳ0〜ＩＮＳPごとに独立して、効率的に、実行することができる。
【０１００】
本実施形態においては、ガベージコレクションの結果、データを格納していない空ブロックを、ガベージコレクション前のネームスペースから他のネームスペースに変更することができ、他のネームスペース内で空ブロックを確保することができる。これにより、ブロックに対して割り当てられるネームスペースを変更することができ、ネームスペースＮＳ0〜ＮＳM間でウェアレベリングを実行することができ、不揮発性メモリ５を長寿命化することができる。
【０１０１】
本実施形態では、ネームスペースＮＳ0〜ＮＳMごとに異なるデータ量の予備領域Ｐ0〜ＰMを設定することができ、ネームスペースＮＳ0〜ＮＳMごとにオーバープロビジョニングを実現することができる。これにより、書き込み速度の高速化及び性能維持を実現し、信頼性を向上させることができる。
【０１０２】
本実施形態においては、ネームスペースＮＳ0〜ＮＳMごとにアドレス変換テーブルＴ0〜ＴMが管理されており、ネームスペースＮＳ0〜ＮＳMごとに、アドレス変換及びＬＢＡとＰＢＡとの関係の変更を効率的に行うことができる。
【０１０３】
本実施形態において、アドレス変換をキーバリュー型検索によって行う場合には、不揮発性メモリ５のデータ容量が大きくても、効率的にアドレス変換を行うことができる。
【０１０４】
本実施形態においては、ネームスペースＮＳ0〜ＮＳMごとに高度なメモリ管理を実現することができ、不揮発性メモリ５を長寿命化することができ、コストを削減することができ、ネームスペースＮＳ0〜ＮＳMで区分けされている不揮発性メモリ５に対する書き込み及び読み出しを高速化することができる。
【０１０５】
本実施形態においては、ガベージコレクション部Ｇ0〜ＧYに代えて、又は、ガベージコレクション部Ｇ0〜ＧYとともに、ネームスペースＮＳ0〜ＮＳM及びインプットネームスペースＩＮＳ0〜ＩＮＳPごとのコンパクション部を備えるとしてもよい。ネームスペースＮＳ0〜ＮＳM及びインプットネームスペースＩＮＳ0〜ＩＮＳPのそれぞれに対応するコンパクション部は、管理データ１８に基づいて、ネームスペースＮＳ0〜ＮＳM及びインプットネームスペースＩＮＳ0〜ＩＮＳPのそれぞれに対してコンパクションを実行する。
【０１０６】
本実施形態において、例えば、情報処理装置２とメモリシステム３との間の設定コマンドＣ１の通信は、省略されてもよい。例えば、アドレス変換部１５は、設定部１４の一部又は全部の機能を備えるとしてもよい。例えば、アドレス変換部１５は、書き込みコマンドＣ２に付されているＮＳＩＤ６及びＬＢＡ７と、ＬＢＡ７に対応するＰＢＡとを関係付けることで、管理データ１８及びネームスペースＮＳ0〜ＮＳMごとのアドレス変換テーブルＴ0〜ＴMを生成するとしてもよい。管理データ１８とアドレス変換テーブルＴ0〜ＴMとは、適宜組み合わせることができ、又は、分割することができる。このように設定コマンドＣ１の通信が省略され、設定部１４の一部又は全部の機能がアドレス変換部１５に備えられる構成は、後述の第２の実施形態で説明する。
【０１０７】
［第２の実施形態］
本実施形態においては、メモリシステムが複数の情報処理装置からの書き込みデータを書き込み、メモリシステムが読み出しデータを複数の情報処理装置へ送る情報処理システムについて説明する。
【０１０８】
図５は、本実施形態に係る情報処理システムの構成の一例を示すブロック図である。
【０１０９】
情報処理システム１Ａは、複数の情報処理装置Ｄ0〜ＤMとメモリシステム３Ａとを含む。複数の情報処理装置Ｄ0〜ＤMのそれぞれは、上記の情報処理装置２と同様の機能を備える。メモリシステム３Ａは、主に、アドレス変換テーブルＴ0〜ＴM及び管理データ１８に代えて変換テーブル（変換データ）２０を備える点、複数の情報処理装置Ｄ0〜ＤMとの間でデータ、情報、信号、コマンドなどの送信及び受信を行う点、設定部１４の機能がアドレス変換部１５に備えられる点で、上記のメモリシステム３と相違している。本実施形態においては、上記第１の実施形態と異なる点を説明し、同じ部分又は実質的に同じ部分については説明を省略するか又は簡単に説明する。
【０１１０】
メモリシステム３Ａは、例えばクラウドコンピューティングシステムに備えられる。メモリシステム３Ａは、複数の情報処理装置Ｄ0〜ＤMによってシェアされる場合を例として説明するが、例えば複数のユーザによってシェアされてもよい。複数の情報処理装置Ｄ0〜ＤMの少なくとも１つは、仮想マシンでもよい。
【０１１１】
本実施形態において、コマンドに付されるＮＳＩＤは、ネームスペースのアクセス鍵として用いられる。
【０１１２】
本実施形態においては、複数の情報処理装置Ｄ0〜ＤMは、自己に対応するネームスペースＮＳ0〜ＮＳMに対してアクセス権限を持つとする。しかしながら、１つの情報処理装置が１以上のネームスペースに対してアクセス権限を持つとしてもよく、複数の情報処理装置が共通のネームスペースに対してアクセス権限を持つとしてもよい。
【０１１３】
情報処理装置Ｄ0〜ＤMのそれぞれは、書き込みコマンドＣ２とともに、例えば自己に対応する書き込み先スペースを示すＮＳＩＤ６Ｗ、書き込み先を示すＬＢＡ７Ｗ、データサイズ８、及び、書き込みデータ９Ｗを、メモリシステム３Ａへ送る。
【０１１４】
情報処理装置Ｄ0〜ＤMのそれぞれは、読み出しコマンドＣ３とともに、例えば自己に対応する読み出し先スペースを示すＮＳＩＤ６Ｒ、読み出し先を示すＬＢＡ７Ｒを、メモリシステム３Ａへ送る。
【０１１５】
情報処理装置Ｄ0〜ＤMのそれぞれは、読み出しコマンドＣ３に対応する読み出しデータ９Ｒ、又は、読み出し不可であったことを示す情報を、メモリシステム３Ａから受ける。
【０１１６】
メモリシステム３Ａは、コントローラ４Ａと不揮発性メモリ５とを含む。
【０１１７】
コントローラ４Ａは、インタフェース部１９、記憶部１０、バッファメモリＦ0〜ＦM、プロセッサ１１を含む。本実施形態においては、コントローラ４Ａに備えられるプロセッサの数は１以上で自由に変更可能である。
【０１１８】
インタフェース部１９は、例えば情報処理装置Ｄ0〜ＤMなどのような外部装置との間で、データ、情報、信号、コマンドなどの送信及び受信を行う。
【０１１９】
記憶部１０は、変換テーブル２０を格納する。なお、変換テーブル２０の一部又は全部は、メモリ１２などのような他のメモリに格納されてもよい。
【０１２０】
変換テーブル２０は、ＬＢＡ、ＰＢＡ、ＮＳＩＤ、データサイズ、データがインプットネームスペースに格納されているか否かを示す情報（以下、インプットフラグという）を互いに関係付けたデータである。この変換テーブル２０については、図６を用いて後で説明する。
【０１２１】
バッファメモリＦ0〜ＦMは、それぞれ、ネームスペースＮＳ0〜ＮＳMに対する書き込みバッファメモリ及び読み出しバッファメモリとして使用される。
【０１２２】
プロセッサ１１は、プログラム１７を格納するメモリ１２、受付部１３、アドレス変換部１５、書き込み部１６、読み出し部２１、ガベージコレクション部Ｇ0〜ＧYを含む。プロセッサ１１は、プログラム１７を実行することにより、受付部１３、アドレス変換部１５、書き込み部１６、読み出し部２１、ガベージコレクション部Ｇ0〜ＧYとして機能する。
【０１２３】
受付部１３は、データ書き込み時に、情報処理装置Ｄ0〜ＤMからインタフェース部１９経由で書き込みコマンドＣ２、ＮＳＩＤ６Ｗ、ＬＢＡ７Ｗ、データサイズ８、書き込みデータ９Ｗを受け付ける。
【０１２４】
受付部１３は、データ読み出し時に、情報処理装置Ｄ0〜ＤMからインタフェース部１９経由で読み出しコマンドＣ３、ＮＳＩＤ６Ｒ、ＬＢＡ７Ｒを受け付ける。
【０１２５】
アドレス変換部１５は、受付部１３によって書き込みコマンドＣ２が受け付けられた場合に、書き込みコマンドＣ２に付されていたＬＢＡ７ＷとＮＳＩＤ６Ｗに基づいて、ＮＳＩＤ６Ｗの示すネームスペースに対応するインプットネームスペースにおける書き込み先のＰＢＡを決定し、ＬＢＡ７Ｗ、ＮＳＩＤ６Ｗ、決定されたインプットネームスペースのＰＢＡ、データサイズ、インプットネームスペースにデータが格納されていることを示すインプットフラグＹを関係付けた状態で変換テーブル２０を更新する。
【０１２６】
アドレス変換部１５は、インプットネームスペースからネームスペースへデータが移動される場合に、ネームスペースにおける書き込み先のＰＢＡを決定し、ＬＢＡ７Ｗ、ＮＳＩＤ６Ｗ、決定されたネームスペースのＰＢＡ、データサイズ、インプットネームスペースにデータが格納されていないことを示すインプットフラグＮを関係付けた状態で変換テーブル２０を更新する。
【０１２７】
アドレス変換部１５は、受付部１３によって読み出しコマンドＣ３が受け付けられた場合に、読み出しコマンドＣ３に付されていたＬＢＡ７ＲとＮＳＩＤ６Ｒと変換テーブル２０とに基づいて、ＮＳＩＤ６Ｒの示すネームスペース、又は、ＮＳＩＤ６Ｒの示すネームスペースに対応するインプットネームスペースにおける読み出し先のＰＢＡを決定する。
【０１２８】
書き込み部１６は、ＮＳＩＤ６Ｗの示すネームスペースに対応するバッファメモリを経由して、ＮＳＩＤ６Ｗの示すネームスペースに対応するインプットネームスペースにおけるＰＢＡの示す位置に、書き込みデータ９Ｗを書き込む。その後、書き込み部１６は、インプットネームスペースからアドレス変換部１５によって得られたＮＳＩＤ６Ｗの示すネームスペースにおけるＰＢＡの示す位置に、書き込みデータ９Ｗを書き込む。
【０１２９】
読み出し部２１は、ＮＳＩＤ６Ｒの示すネームスペースに対応するバッファメモリを経由して、ＮＳＩＤ６Ｒの示すネームスペース、又は、当該ネームスペースに対応するインプットネームスペースにおけるＰＢＡの示す位置から、読み出しデータ９Ｒを読み出す。そして、読み出し部２１は、インタフェース部１９経由で、読み出しコマンドＣ３を発行した情報処理装置に、読み出しデータ９Ｒを送る。
【０１３０】
本実施形態において、ガベージコレクション部Ｇ0〜ＧYは、変換テーブル２０に基づいて、ネームスペースＮＳ0〜ＮＳM及びインプットネームスペースＩＮＳ0〜ＩＮＳPごとにガベージコレクションを実行する。
【０１３１】
図６は、本実施形態に係る変換テーブル２０の一例を示すデータ構造図である。
【０１３２】
変換テーブル２０は、ＬＢＡ、ＰＢＡ、ＮＳＩＤ、データサイズ、インプットフラグを関係付けて管理する。例えば、変換テーブル２０は、ＬＢＡ２００、ＰＢＡ３００、ＮＳ0、データサイズＺ、データがインプットネームスペースに格納されていないことを示すインプットフラグＮを関係付けている。例えば、変換テーブル２０は、ＬＢＡ２０１、ＰＢＡ３０１、ＮＳ0、データサイズＺ、データがインプットネームスペースに格納されていることを示すインプットフラグＹを関係付けている。例えば、変換テーブル２０は、ＬＢＡ２００、ＰＢＡ３９９、ＮＳM、データサイズＺ、データがインプットネームスペースに格納されていないことを示すインプットフラグＮを関係付けている。
【０１３３】
本実施形態においては、変換テーブル２０でデータサイズが管理されている。しかしながら、データサイズが一定の場合には、変換テーブル２０からデータサイズを削除してもよい。データサイズが一定の場合には、データサイズに代えて、インプットネームスペースＩＮＳ0〜ＩＮＳPの各ブロックＢ、ネームスペースＮＳ0〜ＮＳMの各ブロックＢ0〜ＢNの有効データの個数に基づいて、各ブロックＢ，Ｂ0〜ＢNの有効データのデータ量が認識されるとしてもよい。
【０１３４】
本実施形態においては、変換テーブル２０でインプットフラグが管理されている。しかしながら、ＰＢＡに基づいて、データがインプットネームスペースＩＮＳ0〜ＩＮＳPとネームスペースＮＳ0〜ＮＳMとのうちのどちらに格納されているか認識できるため、変換テーブル２０からインプットフラグが省略されてもよい。
【０１３５】
アドレス変換部１５は、例えば、ＬＢＡ２００とネームスペースＮＳ0を示すＮＳＩＤとに関係するＰＢＡ３００と、ＬＢＡ２００とネームスペースＮＳMを示すＮＳＩＤとに関係するＰＢＡ３９９とが互いに異なるように、ＰＢＡの決定を行う。
【０１３６】
これにより、アドレス変換部１５は、ＬＢＡ２００とともに受け付けられたＮＳＩＤがネームスペースＮＳ0を示す場合にはＰＢＡ３００を選択することができ、ＬＢＡ２００とともに受け付けられたＮＳＩＤがネームスペースＮＳMを示す場合にはＰＢＡ３９９を選択することができる。
【０１３７】
したがって、複数の情報処理装置Ｄ0〜ＤMの間で同じ論理アドレスが使用される場合であっても、メモリシステム３Ａを複数の情報処理装置Ｄ0〜ＤMでシェアすることができる。
【０１３８】
図７は、本実施形態に係るメモリシステム３Ａの第１の書き込み処理の一例を示すフローチャートである。
【０１３９】
この図７の説明では、複数の情報処理装置Ｄ0〜ＤMのうちの情報処理装置Ｄ0から書き込みコマンドＣ２が発行され、書き込みコマンドＣ２にはネームスペースＮＳ0を示すＮＳＩＤ６Ｗが付されている場合を例として説明する。しかしながら、情報処理装置Ｄ1〜ＤMから書き込みコマンドＣ２が発行された場合も同様である。また、書き込みコマンドＣ２に他のネームスペースＮＳ1〜ＮＳMのいずれかを示すＮＳＩＤ６Ｗが付されている場合も同様である。
【０１４０】
ステップＳ７０１において、受付部１３は、情報処理装置Ｄ0からインタフェース部１９経由で書き込みコマンドＣ２、ＮＳＩＤ６Ｗ、ＬＢＡ７Ｗ、データサイズ８、書き込みデータ９Ｗを受け付ける。
【０１４１】
ステップＳ７０２において、アドレス変換部１５は、受付部１３によって書き込みコマンドＣ２が受け付けられた場合に、書き込みコマンドＣ２に付されていたＬＢＡ７ＷとＮＳＩＤ６Ｗに基づいて、ＮＳＩＤ６Ｗの示すネームスペースＮＳ0に対応するインプットネームスペースＩＮＳ0における書き込み先のＰＢＡを決定する。
【０１４２】
ステップＳ７０３において、アドレス変換部１５は、ＬＢＡ７Ｗ、ＮＳＩＤ６Ｗ、決定されたＰＢＡ、データサイズＺ、インプットネームスペースにデータが格納されていることを示すインプットフラグＹを関係付けた状態で変換テーブル２０を更新する。
【０１４３】
ステップＳ７０４において、書き込み部１６は、ＮＳＩＤ６Ｗの示すネームスペースＮＳ0に対応するバッファメモリＦ0を経由して、ＮＳＩＤ６Ｗの示すネームスペースＮＳ0に対応するインプットネームスペースＩＮＳ0におけるＰＢＡの示す位置に、書き込みデータ９Ｗを書き込む。
【０１４４】
図８は、本実施形態に係るメモリシステム３Ａの第２の書き込み処理の一例を示すフローチャートである。
【０１４５】
この図８の説明では、インプットネームスペースＩＮＳ0からネームスペースＮＳ0へ有効データが移動される場合を例として説明する。しかしながら、インプットネームスペースＩＮＳ1〜ＩＮＳPからネームスペースＮＳ0〜ＮＳMへ有効データが移動される場合も同様である。
【０１４６】
ステップＳ８０１において、書き込み部１６は、例えば、ガベージコレクションが実行されたか否かを判断するなどにより、インプットネームスペースＩＮＳ0からネームスペースＮＳ0へ有効データを移動させるか判断する。
【０１４７】
有効データを移動させると判断されなかった場合、処理は、ステップＳ８０５に移る。
【０１４８】
有効データを移動させると判断された場合、ステップＳ８０２において、アドレス変換部１５は、インプットネームスペースＩＮＳ0に含まれているブロックＢの中からデータ移動対象のブロックを選択する。
【０１４９】
ステップＳ８０３において、書き込み部１６は、データ移動対象のブロックに格納されている有効データを当該有効データに対応するネームスペースＮＳ0のブロックに移動する。
【０１５０】
ステップＳ８０４において、アドレス変換部１５は、有効データに対応するＬＢＡ、ネームスペースＮＳ0におけるＰＢＡ、ネームスペースＮＳ0を示すＮＳＩＤ、データサイズＺ、データがインプットネームスペースに格納されていないことを示すインプットフラグＮを関係付けるように、変換テーブル２０を更新する。
【０１５１】
ステップＳ８０５において、第２の書き込み処理は継続されるか否か判断する。
【０１５２】
第２の書き込み処理が継続される場合、第２の書き込み処理はステップＳ８０１に移動する。
【０１５３】
第２の書き込み処理が継続されない場合、第２の書き込み処理は終了する。
【０１５４】
図９は、本実施形態に係るメモリシステム３Ａの読み出し処理の一例を示すフローチャートである。
【０１５５】
この図９の説明では、複数の情報処理装置Ｄ0〜ＤMのうちの情報処理装置ＤMから読み出しコマンドＣ３が発行され、読み出しコマンドＣ３にはネームスペースＮＳMを示すＮＳＩＤ６Ｒが付されている場合を例として説明する。しかしながら、情報処理装置Ｄ0〜ＤM-1から読み出しコマンドＣ３が発行された場合も同様である。また、読み出しコマンドＣ３に他のネームスペースＮＳ0〜ＮＳM-1のいずれかを示すＮＳＩＤ６Ｒが付されている場合も同様である。
【０１５６】
ステップＳ９０１において、受付部１３は、情報処理装置ＤMからインタフェース部１９経由で読み出しコマンドＣ３、ＮＳＩＤ６Ｒ、ＬＢＡ７Ｒを受け付ける。
【０１５７】
ステップＳ９０２において、アドレス変換部１５は、受付部１３によって読み出しコマンドＣ３が受け付けられた場合に、読み出しコマンドＣ３に付されていたＬＢＡ７ＲとＮＳＩＤ６Ｒと変換テーブル２０とに基づいて、インプットネームスペースＩＮＳP、又は、ネームスペースＮＳMにおける読み出し先のＰＢＡを決定する。
【０１５８】
ステップＳ９０３において、読み出し部２１は、ＮＳＩＤ６Ｒの示すネームスペースＮＳMに対応するバッファメモリＦMを経由して、ＮＳＩＤ６Ｒの示すネームスペースＮＳM、又は、ネームスペースＮＳMに対応するインプットネームスペースＩＮＳPにおけるＰＢＡの示す位置から、読み出しデータ９Ｒを読み出し、インタフェース部１９経由で、読み出しコマンドＣ３を発行した情報処理装置ＤMに、読み出しデータ９Ｒを送る。
【０１５９】
以上説明した本実施形態においては、不揮発性メモリ５が複数のインプットネームスペースＩＮＳ0〜ＩＮＳP及びネームスペースＮＳ0〜ＮＳMに区切られる。情報処理装置Ｄ0〜ＤMは、複数のインプットネームスペースＩＮＳ0〜ＩＮＳP及びネームスペースＮＳ0〜ＮＳMのうち自己がアクセス権限を持つネームスペースをアクセス可能である。これにより、データセキュリティを向上させることができる。
【０１６０】
メモリシステム３Ａのコントローラ４Ａは、インプットネームスペースＩＮＳ0〜ＩＮＳP及びネームスペースＮＳ0〜ＮＳMごとに、独立の制御を行う。これにより、インプットネームスペースＩＮＳ0〜ＩＮＳP及びネームスペースＮＳ0〜ＮＳMごとに使用条件を切り替えることができる。
【０１６１】
メモリシステム３Ａは、ＬＢＡとＰＢＡとＮＳＩＤとを関係付けているため、例えば互いに独立の複数の情報処理装置から同じＬＢＡを受信した場合であっても、ＮＳＩＤによりデータを区別することができる。
【０１６２】
上記各実施形態において、テーブル形式のデータは、例えばリスト形式などの他のデータ構造で実装されてもよい。
【０１６３】
［第３の実施形態］
本実施形態においては、上記第１及び第２の実施形態で説明した情報処理システム１，１Ａの詳細構成について説明する。
【０１６４】
図１０は、本実施形態に係る情報処理システムの詳細構成の一例を示すブロック図である。
【０１６５】
この図１０において、情報処理システム１Ｂは、情報処理装置２Ｂとメモリシステム３Ｂとを含む。情報処理システム１Ｂは、上記第２の実施形態と同様に、複数の情報処理装置を備えるとしてもよい。すなわち、上記第１及び第２の実施形態の情報処理装置２、Ｄ0〜ＤMのいずれかは、情報処理装置２Ｂに対応する。
【０１６６】
上記第１及び第２の実施形態のメモリシステム３，３Ａは、メモリシステム３Ｂに対応する。
【０１６７】
上記第１及び第２の実施形態のプロセッサ１１は、ＣＰＵ４３Ｆ，４３Ｂに対応する。
【０１６８】
上記第１の実施形態のアドレス変換テーブルＴ0〜ＴM、及び、上記第２の実施形態の変換テーブル２０は、ＬＵＴ４５に対応する。
【０１６９】
上記第１及び第２の実施形態の記憶部１０は、ＤＲＡＭ４７に対応する。
【０１７０】
上記第２の実施形態のインタフェース部１９は、ホストインタフェース４１及びホストインタフェースコントローラ４２に対応する。
【０１７１】
上記第１及び第２の実施形態のバッファメモリＦ0〜ＦMは、ライトバッファＷＢ及びリードバッファＲＢに対応する。
【０１７２】
情報処理装置２Ｂは、ホスト装置として機能する。
【０１７３】
コントローラ４は、フロントエンド４Ｆと、バックエンド４Ｂとを備える。
【０１７４】
フロントエンド（ホスト通信部）４Ｆは、ホストインタフェース４１、ホストインタフェースコントローラ４２、暗号化／復号化部４４、及びＣＰＵ４３Ｆを備える。
【０１７５】
ホストインタフェース４１は、情報処理装置２Ｂとの間で、要求（書き込みコマンド、読み出しコマンド、消去コマンドなど）、ＬＢＡ及びデータなどを通信する。
【０１７６】
ホストインタフェースコントローラ（制御部）４２は、ＣＰＵ４３Ｆの制御に基づいて、上記ホストインタフェース４１の通信を制御する。
【０１７７】
暗号化／復号化部（Advanced Encryption Standard(AES)）４４は、データ書き込み動作において、ホストインタフェースコントローラ４２から送信される書き込みデータ（平文）を暗号化する。暗号化／復号化部４４は、データ読み出し動作において、バックエンド４ＢのリードバッファＲＢから送信される暗号化された読み出しデータを復号化する。なお、この暗号化／復号化部４４を介さずに、書き込みデータ及び読み出しデータを送信することも、必要に応じて可能である。
【０１７８】
ＣＰＵ４３Ｆは、フロントエンド４Ｆの上記各構成４１，４２，４４を制御し、フロントエンド４Ｆの全体の動作を制御する。
【０１７９】
バックエンド（メモリ通信部）４Ｂは、ライトバッファＷＢ、リードバッファＲＢ、ＬＵＴ４５、ＤＤＲＣ４６、ＤＲＡＭ４７、ＤＭＡＣ４８、ＥＣＣ４９、ランダマイザＲＺ、ＮＡＮＤＣ５０、及びＣＰＵ４３Ｂを備える。
【０１８０】
ライトバッファ（ライトデータ転送部）ＷＢは、情報処理装置２Ｂから送信された書き込みデータを一時的に格納する。具体的には、ライトバッファＷＢは、当該書き込みデータが不揮発性メモリ５に適した所定のデータサイズになるまで、一時的にデータを格納する。
【０１８１】
リードバッファ（リードデータ転送部）ＲＢは、不揮発性メモリ５から読み出された読み出しデータを一時的に格納する。具体的には、リードバッファＲＢにおいて、読み出しデータは、情報処理装置２Ｂに適した順序（情報処理装置２Ｂが指定した論理アドレスＬＢＡの順序）になるように並び替えられる。
【０１８２】
ＬＵＴ４５は、論理アドレスＬＢＡを所定の物理アドレスＰＢＡに変換するためのデータである。
【０１８３】
ＤＤＲＣ４６は、ＤＲＡＭ４７におけるＤＤＲ（Double Data Rate）を制御する。
【０１８４】
ＤＲＡＭ４７は、例えば、ＬＵＴ４５を格納する揮発性のメモリである。
【０１８５】
ＤＭＡＣ（Direct Memory Access Controller）４８は、内部バスＩＢを介して、書き込みデータや読み出しデータなどを転送する。図１０においては１つのＤＭＡＣ４８が図示されているが、コントローラ４は、２以上のＤＭＡＣ４８を備えるとしてもよい。ＤＭＡＣ４８は、必要に応じて、コントローラ４内の様々な位置に設定される。
【０１８６】
ＥＣＣ（誤り訂正部）４９は、ライトバッファＷＢから送信される書き込みデータにＥＣＣ（Error Correcting Code）を付加する。ＥＣＣ４９は、リードバッファＲＢに送信する際に、付加したＥＣＣを用いて、不揮発性メモリ５から読み出した読み出しデータを必要に応じて訂正する。
【０１８７】
ランダマイザＲＺ（又はスクランブラ）は、データ書き込み動作の際に、書き込みデータが不揮発性メモリ５の特定のページ又はワード線方向などに偏らないように、書き込みデータを分散させる。このように、書き込みデータを分散させることで、書き込み回数を平準化でき、不揮発性メモリ５のメモリセルのセル寿命を長期化できる。そのため、不揮発性メモリ５の信頼性を向上できる。また、データ読み出し動作の際に、不揮発性メモリ５から読み出された読み出しデータはランダマイザＲＺを通過する。
【０１８８】
ＮＡＮＤＣ（NAND Controller）５０は、所定の速度の要求を満たすため、複数のチャンネル（ここでは、４つのチャンネルＣＨ０〜ＣＨ３）を用いて、並列に不揮発性メモリ５にアクセスする。
【０１８９】
ＣＰＵ４３Ｂは、バックエンド４Ｂの上記各構成（４５〜５０，ＲＺ）を制御し、バックエンド４Ｂの全体の動作を制御する。
【０１９０】
なお、図１０に示したコントローラ４の構成は例示であり、この構成に限定されることはない。
【０１９１】
図１１は、本実施形態に係るストレージシステムを示す斜視図である。
【０１９２】
ストレージシステム１００は、ＳＳＤとしてのメモリシステム３Ｂを備える。
【０１９３】
メモリシステム３Ｂは、例えば比較的小型のモジュールであり、その外形寸法の一例は、２０ｍｍ×３０ｍｍ程度である。なお、メモリシステム３Ｂの大きさ及び寸法は、これに限られるものではなく、種々の大きさのものに適宜変更可能である。
【０１９４】
また、メモリシステム３Ｂは、例えば、企業（エンタープライズ）で運用されるデータセンター又はクラウドコンピューティングシステムにおいて、サーバのような情報処理装置２Ｂに装着されて使用可能である。そのため、メモリシステム３Ｂは、エンタープライズ用ＳＳＤ（ｅＳＳＤ）であってもよい。
【０１９５】
メモリシステム３Ｂは、例えば上方に開口した複数のコネクタ（例えばスロット）３０を備える。各コネクタ３０は、例えばＳＡＳ（Serial Attached SCSI）コネクタ等である。このＳＡＳコネクタによれば、6GbpsのDual Portにより、情報処理装置２Ｂと各メモリシステム３Ｂとが互いに高速通信を行うことが可能である。なお、これに限られず、各コネクタ３０は、例えば、ＰＣＩｅ（PCI Express）又はＮＶＭｅ（NVM Express）等であってもよい。
【０１９６】
複数のメモリシステム３Ｂは、情報処理装置２Ｂのコネクタ３０にそれぞれ装着され、略鉛直方向に起立した姿勢で互いに並べて支持される。このような構成によれば、複数のメモリシステム３Ｂをコンパクトに纏めて実装可能であり、メモリシステム３Ｂの小型化を図ることができる。さらに、本実施形態に係るメモリシステム３Ｂの各形状は、２．５型のＳＦＦ（Small Form Factor)である。このような形状により、メモリシステム３Ｂは、エンタープライズ用ＨＤＤ（ｅＨＤＤ）と互換形状（コンパチ形状）を図ることができ、ｅＨＤＤとの容易なシステム互換性を実現することができる。
【０１９７】
なお、メモリシステム３Ｂは、エンタープライズ用に限られない。例えば、メモリシステム３Ｂは、ノートブック型ポータブルコンピュータ又はタブレット型端末のようなコンシューマ用の電子機器の記憶媒体としても適用可能である。
【０１９８】
以上説明したように、本実施形態で説明した構成を持つ情報処理システム１Ｂ及びストレージシステム１００においては、大容量の記憶に、上記第１及び第２の実施形態と同様の効果を得ることができる。
【０１９９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０２００】
１,１Ａ，１Ｂ…情報処理システム、２，２Ａ，２Ｂ，Ｄ0〜ＤM…情報処理装置、３，３Ａ，３Ｂ…メモリシステム、４…コントローラ、５…不揮発性メモリ、６,６Ｗ,６Ｒ…ＮＳＩＤ、２０…置換管理部、７，７Ｗ，７Ｒ…ＬＢＡ、８…データサイズ、９，９Ｗ…書き込みデータ、９Ｒ…読み出しデータ、１０…記憶部、１１…プロセッサ、１２…メモリ、１３…受付部、１４…設定部、１５…アドレス変換部、１６…書き込み部、１７…プログラム、１８、１９…インタフェース部、２０…変換テーブル…管理データ、ＮＳ0〜ＮＳM…ネームスペース、ＩＧ0〜ＩＧP…インプットグループ、ＮＳ0〜ＩＮＳP…インプットネームスペース、Ｃ１…設定コマンド、Ｃ２…書き込みコマンド、Ｐ0〜ＰY…予備領域、Ｆ0〜ＦM…バッファメモリ、Ｇ0〜ＧY…ガベージコレクション部、Ａ0〜ＡM…ＬＢＡ空間、Ｔ0〜ＴM…アドレス変換テーブル、４１…ホストインタフェース、４２…ホストインタフェースコントローラ、４３Ｂ，４３Ｆ…ＣＰＵ、ＷＢ…ライトバッファ、ＲＢ…リードバッファ、４Ｆ…フロントエンド、４Ｂ…バックエンド、４４…暗号化／復号化部、４５…ＬＵＴ、４６…ＤＤＲＣ、４７…ＤＲＡＭ、４８…ＤＭＡＣ、４９…ＥＣＣ、ＲＺ…ランダマイザ、５０…ＮＡＮＤＣ、ＩＢ…内部バス。
【図１】
0006276208.tif 000002
【図２】
0006276208.tif 000003
【図３】
0006276208.tif 000004
【図４】
0006276208.tif 000005
【図５】
0006276208.tif 000006
【図６】
0006276208.tif 000007
【図７】
0006276208.tif 000008
【図８】
0006276208.tif 000009
【図９】
0006276208.tif 000010
【図１０】
0006276208.tif 000011
【図１１】
0006276208.tif 000012