IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 東芝メモリ株式会社の特許一覧

特開2024-176734メモリシステム、情報処理装置、情報処理システムおよびデータの再配置方法
<>
  • 特開-メモリシステム、情報処理装置、情報処理システムおよびデータの再配置方法 図1
  • 特開-メモリシステム、情報処理装置、情報処理システムおよびデータの再配置方法 図2
  • 特開-メモリシステム、情報処理装置、情報処理システムおよびデータの再配置方法 図3
  • 特開-メモリシステム、情報処理装置、情報処理システムおよびデータの再配置方法 図4
  • 特開-メモリシステム、情報処理装置、情報処理システムおよびデータの再配置方法 図5
  • 特開-メモリシステム、情報処理装置、情報処理システムおよびデータの再配置方法 図6
  • 特開-メモリシステム、情報処理装置、情報処理システムおよびデータの再配置方法 図7
  • 特開-メモリシステム、情報処理装置、情報処理システムおよびデータの再配置方法 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024176734
(43)【公開日】2024-12-19
(54)【発明の名称】メモリシステム、情報処理装置、情報処理システムおよびデータの再配置方法
(51)【国際特許分類】
   G06F 3/06 20060101AFI20241212BHJP
   G06F 3/08 20060101ALI20241212BHJP
   G06F 16/11 20190101ALI20241212BHJP
【FI】
G06F3/06 302J
G06F3/06 301K
G06F3/08 H
G06F16/11
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023095506
(22)【出願日】2023-06-09
(71)【出願人】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】110001737
【氏名又は名称】弁理士法人スズエ国際特許事務所
(72)【発明者】
【氏名】安田 哲也
(57)【要約】
【課題】ファイルのデータの断片化を効率的に解消することができるメモリシステムを提供する。
【解決手段】実施形態によれば、メモリシステムは、不揮発性メモリと、コントローラと、を具備する。コントローラは、ホストと通信可能であり、不揮発性メモリを制御する。コントローラは、メモリシステムの論理アドレス空間に対するファイルのデータのマッピングに関する第1情報をホストから受信し、受信した第1情報と、論理アドレス空間での位置を示す論理アドレスと不揮発性メモリの物理アドレス空間での位置を示す物理アドレスとの対応関係が記録されている第2情報とに基づき、ファイルのデータが物理アドレス空間において連続するように、物理アドレス空間において断片化しているファイルのデータの物理アドレス空間における再配置を実行する。
【選択図】図5
【特許請求の範囲】
【請求項1】
不揮発性メモリと、
ホストと通信可能であり、前記不揮発性メモリを制御するコントローラと、
を具備するメモリシステムであって、
前記コントローラは、
前記メモリシステムの論理アドレス空間に対するファイルのデータのマッピングに関する第1情報を前記ホストから受信し、
受信した前記第1情報と、前記論理アドレス空間での位置を示す論理アドレスと前記不揮発性メモリの物理アドレス空間での位置を示す物理アドレスとの対応関係が記録されている第2情報とに基づき、前記ファイルのデータが前記物理アドレス空間において連続するように、前記物理アドレス空間において断片化している前記ファイルのデータの前記物理アドレス空間における再配置を実行する、
メモリシステム。
【請求項2】
前記コントローラは、前記ホストからのリードコマンドに応じた前記不揮発性メモリからのデータの読み出しまたは前記ホストからのライトコマンドに応じた前記不揮発性メモリへのデータの書き込みが行われていないアイドル期間に前記再配置を実行する請求項1に記載のメモリシステム。
【請求項3】
前記コントローラは、
第1規格に準拠したプロトコルで前記ホストとの間の通信を実行し、
前記第1規格で拡張コマンドとして定義される第1コマンドによって前記第1情報を前記ホストから受信し、
前記第1コマンドに応じて、前記第1情報と、前記第2情報とに基づき、前記物理アドレス空間における前記ファイルのデータの断片数を検出し、前記断片数を前記ホストへ送信する、
請求項1に記載のメモリシステム。
【請求項4】
前記コントローラは、前記断片数を前記ホストへ送信した後、前記第1規格で前記拡張コマンドとして定義され前記第1コマンドと異なる第2コマンドを前記ホストから受信した場合に、前記再配置を実行する請求項3に記載のメモリシステム。
【請求項5】
前記不揮発性メモリは、それぞれがデータの消去単位である複数のブロックを有し、
前記コントローラは、L(Lは2以上の自然数)個のブロックの有効データをK(Kは1以上L未満の自然数)個のブロックへ移動させて(L-K)個のブロック分のフリー領域を生成するガベッジコレクションによって前記再配置を実行する、
請求項1に記載のメモリシステム。
【請求項6】
メモリシステムの不揮発性メモリに格納されているファイルのデータを更新し、
前記ファイルの前記データの更新の後、前記不揮発性メモリの物理アドレス空間における前記ファイルの前記データの断片数を前記メモリシステムに問い合わせ、
前記メモリシステムから得られた断片数が閾値を超えている場合、
前記メモリシステムの論理アドレス空間に対する前記ファイルの前記データのマッピングに関する第1情報を前記メモリシステムに提供し、
前記ファイルのデータが前記物理アドレス空間において連続するように、前記物理アドレス空間において断片化している前記ファイルのデータの前記物理アドレス空間における再配置を前記メモリシステムに指示する、
情報処理装置。
【請求項7】
ホストと、
不揮発性メモリを有するメモリシステムと、
を具備し、
前記ホストは、
前記メモリシステムの前記不揮発性メモリに格納されているファイルのデータを更新し、
前記ファイルの前記データの更新の後、前記不揮発性メモリの物理アドレス空間における前記ファイルの前記データの断片数を前記メモリシステムに問い合わせ、
前記メモリシステムから得られた断片数が閾値を超えている場合、
前記メモリシステムの論理アドレス空間に対する前記ファイルの前記データのマッピングに関する第1情報を前記メモリシステムに提供し、
前記ファイルのデータが前記物理アドレス空間において連続するように、前記物理アドレス空間において断片化している前記ファイルのデータの前記物理アドレス空間における再配置を前記メモリシステムに指示し、
前記メモリシステムは、
前記問い合わせを前記ホストから受けた場合、前記第1情報と、前記論理アドレス空間での位置を示す論理アドレスと前記物理アドレス空間での位置を示す物理アドレスとの対応関係が記録されている第2情報とに基づき、前記物理アドレス空間における前記ファイルのデータの断片数を検出し、前記断片数を前記ホストへ送信し、
前記断片数を前記ホストへ送信した後、前記指示を前記ホストから受けた場合に、前記ファイルのデータが前記物理アドレス空間において連続するように、前記第1情報と、前記第2情報とに基づき、前記物理アドレス空間において断片化している前記ファイルのデータの前記物理アドレス空間における再配置を実行する、
情報処理システム。
【請求項8】
不揮発性メモリを有するメモリシステムにおけるデータの再配置方法であって、
前記メモリシステムの論理アドレス空間に対するファイルのデータのマッピングに関する第1情報をホストから受信し、
受信した前記第1情報と、前記論理アドレス空間での位置を示す論理アドレスと前記不揮発性メモリの物理アドレス空間での位置を示す物理アドレスとの対応関係が記録されている第2情報とに基づき、前記ファイルのデータが前記物理アドレス空間において連続するように、前記ファイルのデータの前記物理アドレス空間への再配置を実行する、
データの再配置方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、メモリシステム、情報処理装置、情報処理システムおよびデータの再配置方法に関する。
【背景技術】
【0002】
近年、ストレージ装置としてSSD(Solid State Drive)が広く普及している。
【0003】
SSDへのファイルの書き込み時など、ホストのファイルシステムがSSDの論理アドレス空間に対してファイルのデータをマッピングする際、状況によっては、データが断片化する場合がある。ファイルのデータのような連続データが、論理アドレス空間に対して断片化されてマッピングされた場合には、SSDの物理アドレス空間においても断片化されてマッピングされる可能性が高い。
【0004】
物理アドレス空間においてデータが断片化されているファイルは、断片化されていないファイルと比較して、SSDのシーケンシャルリード性能を低下させる傾向にある。
【0005】
一般的なファイルシステムは、断片化による性能低下を抑制するために、論理アドレス空間において断片化している連続データを、論理アドレス空間の連続した領域に移動させる機能としてデフラグを実行する。デフラグを実行することで、物理アドレス空間においても連続した領域に連続データが移動することが期待される。
【0006】
デフラグは、エンドユーザからの指示によって起動される。デフラグ期間中は、SSDのI/O性能は低下する。したがって、エンドユーザは、デフラグを安易に指示することはできない。しかし、デフラグを実施しない限り、断片化による性能低下からSSDを回復させることはできない。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】米国特許第11042317号明細書
【特許文献2】米国特許第11520695号明細書
【発明の概要】
【発明が解決しようとする課題】
【0008】
1つの実施形態は、ファイルのデータの断片化を効率的に解消することができるメモリシステム、情報処理装置、情報処理システムおよびデータの再配置方法を提供する。
【課題を解決するための手段】
【0009】
実施形態によれば、メモリシステムは、不揮発性メモリと、コントローラと、を具備する。コントローラは、ホストと通信可能であり、不揮発性メモリを制御する。コントローラは、メモリシステムの論理アドレス空間に対するファイルのデータのマッピングに関する第1情報をホストから受信し、受信した第1情報と、論理アドレス空間での位置を示す論理アドレスと不揮発性メモリの物理アドレス空間での位置を示す物理アドレスとの対応関係が記録されている第2情報とに基づき、ファイルのデータが物理アドレス空間において連続するように、物理アドレス空間において断片化しているファイルのデータの物理アドレス空間における再配置を実行する。
【図面の簡単な説明】
【0010】
図1】第1実施形態の情報処理システムの一構成例を示す図。
図2】第1実施形態のメモリシステムのメモリダイの一構成例を示す図。
図3】第1実施形態のメモリシステムの論理ブロックの一構成例を示す図。
図4】データ再配置に関する第1比較例を説明するための図。
図5】第1実施形態のメモリシステムによるデータ再配置を説明するための図。
図6】第1実施形態のメモリシステムが実行するデータ再配置の処理手順を示すフローチャート。
図7】第2実施形態の情報処理システムにおけるホストが管理するファイルデフラグ状態の一遷移例を示す図。
図8】第2実施形態の情報処理システムにおけるホストとメモリシステムとの間のファイルデフラグに関する通信シーケンスを示す図。
【発明を実施するための形態】
【0011】
以下、実施の形態について、図面を参照して説明する。
【0012】
(第1実施形態)
まず、第1実施形態について説明する。
【0013】
図1は、第1実施形態の情報処理システムの一構成例を示す図である。
【0014】
情報処理システムは、メモリシステム1とホスト2とを含む。ここでは、メモリシステム1がSSDとして実現されている例を説明する。メモリシステム1は、ホスト2と接続可能に構成される。ホスト2は、サーバやパーソナルコンピュータのような情報処理装置である。図1は、メモリシステム1とホスト2とが接続されている状態を示す。
【0015】
メモリシステム1は、コントローラ11と、DRAM(Dynamic Random Access Memory)12と、NAND型フラッシュメモリ(以下、フラッシュメモリ)13とを有する。メモリシステム1は、たとえばPCI ExpressTM(PCIeTM)規格に準拠するインタフェースを介してホスト2と接続される。
【0016】
コントローラ11は、フラッシュメモリ13を制御するデバイスである。コントローラ11は、たとえば、ホスト2からのコマンドに基づいて、DRAM12の領域を作業領域として用いながら、フラッシュメモリ13へのデータの書き込み処理や、フラッシュメモリ13からのデータの読み出し処理を制御する。コントローラ11は、たとえばNVM ExpressTM(NVMeTM)規格に準拠するプロトコルでホスト2と通信する。コントローラ11は、たとえばSoC(System on a Chip)といった半導体集積回路として構成され得る。
【0017】
コントローラ11は、データ再配置制御部111を有する。データ再配置制御部111は、フラッシュメモリ13内で断片化された状態となっているデータを、連続した状態へ移行させるためのデータ再配置を実行する。データ再配置制御部111の詳細については詳述する。
【0018】
DRAM12は、揮発性の記憶デバイスである。ここでは、コントローラ11に作業領域を提供するデバイスとして、メモリシステム1がDRAM12を備える例を示す。コントローラ11がSRAM(Static Random Access Memory)を内蔵し、このSRAMの領域が作業領域として用いられてもよい。つまり、メモリシステム1の一構成例として、DRAM12を備えない構成も考えられる。
【0019】
フラッシュメモリ13は、不揮発性の記憶デバイスである。フラッシュメモリ13は、複数のメモリダイ131を有する。
【0020】
複数のメモリダイ131の中の所定数のメモリダイ131は、フラッシュメモリ13の並列動作単位として用いられる。コントローラ11は、フラッシュメモリ13の並列動作単位として用いられる所定数のメモリダイ131から1つずつ物理ブロックを選択し、選択した所定数の物理ブロックを含む論理ブロックを構成する。論理ブロックは、コントローラ11がフラッシュメモリ13の領域を効率的に使用するために構成される拡張的な管理単位である。論理ブロックは、スーパーブロックとも称される。
【0021】
なお、複数のメモリダイ131のそれぞれが、各メモリダイ131において並列動作可能な複数のプレーンを有する場合には、コントローラ11は、所定数のメモリダイ131の各プレーンから1つずつ物理ブロックを選択し、論理ブロックを構成する。
【0022】
ここで、コントローラ11が構成する論理ブロックについて説明する。
【0023】
図2は、メモリダイ131の一構成例を示す図である。
【0024】
各メモリダイ131は、複数の物理ブロック150を含む。複数の物理ブロック150のそれぞれは、複数のページ151を含む。メモリダイ131に対するデータの書き込みや読み出しは、このページ151の単位で実行される。なお、図2では、分かり易くするために、プレーンの図示を省略している。
【0025】
図3は、論理ブロック200の一構成例を示す図である。
【0026】
たとえばN(Nは2以上の自然数)個のメモリダイ131がフラッシュメモリ13の並列動作単位として用いられる場合を説明する。この場合、コントローラ11は、N個のメモリダイ131から1つずつ物理ブロック150を選択し、選択したN個の物理ブロック150を含む論理ブロック200を構成する。論理ブロック200に含まれるN個の物理ブロック150は並列動作が可能なので、コントローラ11は、たとえば論理ブロック200へのデータの書き込みを、Nページずつ実行していくことができる。
【0027】
なお、複数のメモリダイ131のそれぞれが、M(Mは2以上の自然数)個のプレーンを有する場合は、N個のメモリダイ131×M個のプレーンがフラッシュメモリ13の並列動作単位として用いられる。この場合、コントローラ11は、N個のメモリダイ131のそれぞれについてM個のプレーンから1つずつ物理ブロック150を選択し、選択したN×M個の物理ブロック150を含む論理ブロック200を構成する。論理ブロック200に含まれるN×M個の物理ブロック150は並列動作が可能なので、コントローラ11は、たとえば論理ブロック200へのデータの書き込みを、N×Mページずつ実行していくことができる。
【0028】
次に、図4を参照して、データ再配置に関する第1比較例を説明する。この第1比較例は、ファイルのデータの断片化を解消するためのデータ再配置を、ホスト2のファイルシステムによるデフラグによって実行する例である。
【0029】
図4(A)は、ファイルのデータの断片化が発生する一例を示している。ここでは、ファイル1の書き込みと、ファイル2の書き込みとが、同じタイミングで並列的に実行されている。図4(A)の符号300で示されるテーブルは、ファイルシステムが管理するマッピング情報の一部を示している。このマッピング情報は、メモリシステム1の論理アドレス空間(LBA[Logical Block Address]領域)に対するファイルのデータのマッピングに関する情報である。マッピング情報は、第1情報の一例である。
【0030】
ホスト2のファイルシステムは、メモリシステム1の論理アドレス空間に対して、まず、ファイル1の1ページ分のデータをマッピングし、また、ファイル2の1ページ分のデータをマッピングしている。具体的には、論理アドレス空間のアドレス(LBA)0h-20hにファイル1の最初の1ページ分のデータ(F1_0)をマッピングし、また、アドレス20h-40hにファイル2の最初の1ページ分のデータ(F2_0)をマッピングしている。
【0031】
続いて、ファイルシステムは、アドレス40h-60hにファイル1のデータF1_1をマッピングし、また、アドレス60h-80hにファイル2のデータF2_1をマッピングしている。
【0032】
以下、同様に、ファイルシステムは、アドレス80h-a0hにファイル1のデータF1_2をマッピング、アドレスa0h-c0hにファイル2のデータF2_2をマッピング、アドレスc0h-e0hにファイル1のデータF1_3をマッピング、アドレスe0h-100hにファイル2のデータF2_3をマッピング、とメモリシステム1の論理アドレス空間に対するデータのマッピングを行っている。
【0033】
つまり、ファイル1およびファイル2のデータの両方が、メモリシステム1の論理アドレス空間に対して断片化されてマッピングされている。
【0034】
この論理アドレス空間に対するマッピング順に、ファイル1およびファイル2のデータがメモリシステム1に書き込まれていくと、詳細については後述するが、図4(A)に示すように、メモリシステム1の物理アドレス空間、すなわちフラッシュメモリ13においても断片化されて配置される。すなわち、メモリシステム1の論理アドレス空間は、メモリシステム1が備えるフラッシュメモリ13が記憶可能な領域の物理アドレス空間に対応する。
【0035】
なお、メモリシステム1の論理アドレス空間と物理アドレス空間との対応関係は、メモリシステム1のコントローラ11が、論物変換テーブルなどと称される情報を使って管理している。論物変換テーブルは、第2情報の一例である。
【0036】
図4(A)では、分かり易くするために、4個の物理ブロック150で論理ブロック200が構成されている例を示している。たとえば、複数のメモリダイ131の中の4個のメモリダイ131から1つずつ選択された4個の物理ブロック150で論理ブロック200が構成されている。この場合、4個の物理ブロック150のそれぞれにおいてワード線(WL)0に接続されている4個のページ151のデータについては、その読み出しを並列的に実行することができる(a1)。これは、4個の物理ブロック150のそれぞれにおいてワード線(WL)1に接続されている4個のページ151のデータについても同様である。一方、ワード線0に接続されているページ151のデータと、ワード線1に接続されているページ151のデータとのような、異なるワード線に接続されている複数のページ151のデータについては、同じ物理ブロック150に格納されているデータであっても、その読み出しをワード線毎に順次的に実行していかなければならない(a2)。
【0037】
ここで、メモリシステム1のコントローラ11は、論理ブロック200の並列的に読み書きが可能なページ151群が一塊となって連続するように、物理アドレス空間に対するページ151のマッピングを管理する。したがって、図4(A)に示すファイル1およびファイル2のデータは、物理アドレス空間、すなわちフラッシュメモリ13において断片化されている状態である。
【0038】
この断片化を解消するために、ホスト2のファイルシステムによるデフラグが起動されると、ホスト2は、ファイル1のデータの読み出しおよび書き戻しと、ファイル2のデータの読み出しおよび書き戻しとをそれぞれ実行する。その際、図4(B)に示すように、ファイルシステムは、ファイル1のデータの書き戻し時には、ファイル1のデータを論理アドレス空間の連続した領域にマッピングし、また、ファイル2のデータの書き戻し時には、ファイル2のデータを論理アドレス空間の連続した領域にマッピングする。
【0039】
つまり、ホスト2のファイルシステムによるデフラグでは、ホスト2主導でファイル1およびファイル2のデータの再配置が行われる。これにより、論理アドレス空間における断片化を解消するとともに、物理アドレス空間における断片化の解消も期待される。ところで、メモリシステム1では、データの保全などのために、ホスト2からのコマンドによらずに、コントローラ11がフラッシュメモリ13に対するデータの書き込みや読み出しを内部処理として実行する場合がある。そのため、ホスト2主導では、論理アドレス空間における断片化の解消に伴って、物理アドレス空間における断片化の解消が確実に図られる保証はない。
【0040】
なお、図4(B)の論理ブロック200は、図4(A)の論理ブロック200とは異なるものである。また、図4(B)では、図4(A)と比較する上で、分かり易くするために、ファイル1のデータがワード線0に接続されているページ151群に再配置され、ファイル2のデータがワード線1に接続されているページ151群に再配置されている例を示している。しかし、再配置前の論理ブロック200においてファイル1およびファイル2のデータを格納していたページ群151が接続されているワード線の位置に関係なく、再配置後の論理ブロック200においていずれのワード線に接続されているページ151群にデータが再配置されても構わない。
【0041】
ところで、デフラグは、エンドユーザからの指示によって起動される。デフラグ期間中は、メモリシステム1のI/O性能は低下する。したがって、エンドユーザは、デフラグを安易に指示することはできない。しかし、デフラグを実施しない限り、断片化による性能低下からメモリシステム1を回復させることはできない。
【0042】
この第1比較例を踏まえて、次に、図5を参照して、第1実施形態のメモリシステム1のデータ再配置について説明する。
【0043】
第1実施形態の情報処理システムにおいて、ファイル1およびファイル2のデータの断片化を解消しようとする場合、ホスト2は、ファイルシステムが管理するマッピング情報のうち、少なくともファイル1およびファイル2のデータに関する情報を含む一部をメモリシステム1へ提供する(b1)。以下、ホスト2からメモリシステム1へ提供されるマッピング情報の一部を、ファイル断片情報とも称する。図5において、ファイル断片情報は、少なくともファイル1のデータの論理アドレスおよびファイル2のデータの論理アドレスを含む。
【0044】
ホスト2からメモリシステム1へのファイル断片情報の提供は、たとえばNVMeTM規格で定義される拡張コマンドを、ホスト2がメモリシステム1に対して発行することによって実行される。この拡張コマンドは、ホスト2がメモリシステム1に対してデータの断片化を解消することを依頼するコマンドとして定義されるものであってもよい。
【0045】
ファイル断片情報は、メモリシステム1のコントローラ11によって受信される。コントローラ11のデータ再配置制御部111は、ファイル断片情報と、コントローラ11が管理する論物変換テーブルとに基づき、ファイル1のデータおよびファイル2のデータの再配置を実行する(b2)。このとき、データ再配置制御部111は、ファイル1のデータおよびファイル2のデータが物理アドレス空間において連続するように、これらのデータを移動させる。
【0046】
データ再配置制御部111は、連続データの断片化を解消するための物理アドレス空間における再配置を、ホスト2からのリードコマンドやライトコマンドに対応する処理が実行されていないアイドル期間に実行する。すなわち、データ再配置制御部111によるデータ再配置は、バックグラウンド処理として実行される。これにより、メモリシステム1のI/O性能を低下させることを回避できる。
【0047】
また、データ再配置制御部111が、メモリシステム1の内部的な処理として、物理アドレス空間におけるデータ再配置を実行するので、コントローラ11は、ホスト2の管理とは無関係に、管理する論物変換テーブルを更新する。したがって、ホスト2のファイルシステムが管理するマッピング情報の更新は不要である。
【0048】
さらに、物理アドレス空間におけるデータ再配置が、メモリシステム1の内部的な処理として実行されることで、ホスト2主導の場合とは異なり、物理アドレス空間における断片化の解消が確実に図られる。
【0049】
コントローラ11は、データ再配置制御部111による、物理アドレス空間におけるデータ再配置が完了すると、前述の拡張コマンドの応答として、データ再配置の完了をホスト2に通知する。したがって、ホスト2は、拡張コマンドでファイル断片情報をメモリシステム1へ提供した後は、データ再配置の進捗状況について何ら考慮することなく、メモリシステム1からの応答を待っていればよい。すなわち、ホスト2は、メモリシステム1へのデータの書き込みやメモリシステム1からのデータの読み出しを通常通り行いながら、データ再配置の完了を示す応答を待っていればよい。
【0050】
このように、第1実施形態の情報処理システムにおいては、ファイルのデータの断片化を効率的に解消することが実現される。
【0051】
ところで、フラッシュメモリ13は、既にデータが書き込まれているページ151へのデータの上書きを行うことができない不揮発性の記憶媒体である。そのため、コントローラ11は、データの書き換えを、元のデータが格納されているページ151とは別のページ151に新たなデータを書き込み、元のデータを無効化することによって実行する。データの書き換えの回数が増えると、無効なデータが格納されているページ151の数が増加する。したがって、コントローラ11は、無効なデータが格納されている複数のページ151を再利用するためのガベッジコレクションを実行する。
【0052】
ガベッジコレクションは、L(Lは2以上の自然数)個の論理ブロック200の有効データをK(Kは1以上L未満の自然数)個の論理ブロック200へ移動させて(L-K)個の論理ブロック200分のフリー領域を生成する。L個の論理ブロック200は、無効化されたデータが書き込まれているページ151をより多く含んでいる論理ブロック200が好ましい。
【0053】
データ再配置制御部111は、このガベッジコレクションを利用して、ホスト2が要求するデータ再配置を実行してもよい。
【0054】
図6は、第1実施形態のメモリシステム1が実行するデータ再配置の処理手順を示すフローチャートである。
【0055】
コントローラ11は、ファイル断片情報をホスト2から受信する(S101)。コントローラ11のデータ再配置制御部111は、断片化しているファイルのデータを物理的に連続させて再配置するための新規ブロックを確保する(S102)。なお、図6におけるブロックとは、論理ブロック200である。
【0056】
データ再配置制御部111は、論物変換テーブルを参照しながら、ファイル断片情報から移動元ブロックを特定する(S103)。移動元ブロックは、断片化しているファイルのデータが存在する1以上の論理ブロック200である。
【0057】
データ再配置制御部111は、S103で特定した移動元ブロックからS102で確保した新規ブロックへ、断片化しているファイルのデータを移動する(S104)。データ再配置制御部111によるデータの移動が完了すると、コントローラ11は、データ再配置完了をホスト2へ通知する(S105)。
【0058】
以上のように、第1実施形態の情報処理システムは、ファイルのデータの断片化を効率的に解消することができる。
【0059】
(第2実施形態)
次に、第2実施形態について説明する。
【0060】
第1実施形態では、ファイルのデータといった連続データの断片化を解消するためのデータ再配置について、メモリシステム1の動作を主に説明した。
【0061】
第2実施形態では、データ再配置を要求する拡張コマンドをメモリシステム1に対して発行するタイミングの制御を含むホスト2の動作を主に説明する。
【0062】
図7は、データ再配置の要否を判断するためにホスト2が管理するファイルデフラグ状態の一遷移例を示す図である。
【0063】
ホスト2は、「必要未実行」(S201)、「不要実行中」(S202)、「必要実行中」(S203)、「不要未実行」(S204)の4つの状態間を遷移させるようにファイルデフラグ状態を管理する。ファイルデフラグ状態は、ファイルのデフラグが必要か不要かと、ファイルのデフラグが実行中か未実行かと、の組み合わせで示される状態である。
【0064】
「必要未実行」(S201)は、データ再配置が必要であり、かつ、メモリシステム1に対して拡張コマンドを未発行の状態である。ファイルデフラグ状態が「必要未実行」(S201)である場合、ホスト2は、メモリシステム1に対して、データ再配置(ファイルデフラグ)を要求する拡張コマンドを発行する(c1)。この拡張コマンドでメモリシステム1に提供するファイル断片情報は、後述する「不要実行中」(S202)時に発生したファイル更新(c2)または「不要未実行」(S204)時に発生したファイル更新(c5)の対象ファイルに関するマッピング情報を含む。
【0065】
ファイルの更新を行うと、ファイルのデータが断片化する可能性が高い。そこで、ホスト2は、ファイル更新の発生を契機として、データ再配置を要求する拡張コマンドをメモリシステム1に対して発行する(c1)。
【0066】
メモリシステム1に対して拡張コマンドを発行すると、ホスト2は、ファイルデフラグ状態を「不要実行中」(S202)に遷移させる(c1)。メモリシステム1からデータ再配置完了の通知を受ける前に、ファイル更新が発生した場合、ホスト2は、ファイルデフラグ状態を「必要実行中」(S203)に遷移させる(c2)。「必要実行中」(S203)時にファイル更新が発生した場合には、ホスト2は、ファイルデフラグ状態を「必要実行中」(S203)に維持する。
【0067】
「必要実行中」(S203)への遷移後、メモリシステム1からデータ再配置完了の通知を受けた場合、ホスト2は、ファイルデフラグ状態を「必要未実行」(S201)に移行させる(c3)。よって、ホスト2は、メモリシステム1に対して、データ再配置を要求する次の拡張コマンドを連続的に発行することになる。
【0068】
「不要実行中」(S202)時にファイル更新が発生することなく、メモリシステム1からデータ再配置完了の通知を受けた場合、ホスト2は、ファイルデフラグ状態を「不要未実行」(S204)に移行させる(c4)。「不要未実行」(S204)時にファイル更新が発生した場合、ホスト2は、ファイルデフラグ状態を「必要未実行」(S201)に移行させる(c5)。これにより、ホスト2は、メモリシステム1に対して、データ再配置を要求する次の拡張コマンドを発行することになる。
【0069】
このようにしてファイルデフラグ状態を管理することで、ホスト2は、適切なタイミングで、データ再配置を要求する拡張コマンドを発行することができる。これにより、エンドユーザによるデフラグ指示を不要とし、エンドユーザが、デフラグ指示を行うべきタイミングを考慮する負荷を削減することができる。
【0070】
また、ホスト2は、ファイル更新の発生を契機としてデータ再配置を要求する拡張コマンドをメモリシステム1に対して発行する前処理として、対象ファイルのデータがマッピングされた論理アドレスに対応する物理アドレスにおける断片数をメモリシステム1に対して問い合わせてもよい。ホスト2は、メモリシステム1から通知された断片数が閾値を超える場合に、データ再配置をメモリシステム1に要求するようにしてもよい。換言すれば、メモリシステム1から通知された断片数が閾値以下である場合、ホスト2は、その時点でのデータ再配置を保留してもよい。この断片数の問い合わせも、たとえばNVMeTM規格で定義される拡張コマンドをメモリシステム1に対して発行することによって実行される。
【0071】
図8は、第2実施形態の情報処理システムにおけるホスト2とメモリシステム1との間のファイルデフラグに関する通信シーケンスを示す図である。
【0072】
ホスト2は、ファイルの更新を行った場合、メモリシステム1に対して、対象ファイルがマッピングされた論理アドレスに対応する物理アドレスにおけるデータの断片数を問い合わせる(d1)。このとき、ホスト2は、対象ファイルの論理アドレスをメモリシステム1に通知する。メモリシステム1は、論物変換テーブルを参照しながら、ホスト2から提供されるファイル断片情報から対象ファイルの物理アドレスにおけるデータの断片数を求めて、求めた断片数をホスト2へ応答する(d2)。
【0073】
ホスト2は、メモリシステム1から得られた断片数が閾値を超えていた場合、メモリシステム1に対して、対象ファイルのデータの断片化を解消するためのデータ再配置(ファイルデフラグ)を要求する拡張コマンドを発行する(d3)。拡張コマンドの発行後、ホスト2は、要求したデフラグに関わらず、通常のメモリシステム1へのデータの書き込みやメモリシステム1からのデータの読み出しを行っていればよい。
【0074】
メモリシステム1は、ホスト2からのライトコマンドやリードコマンドに応じた処理を行っていないアイドル期間において、要求されたデータ再配置をバックグラウンド処理として実行する。そして、データ再配置が完了したら、受信した拡張コマンドの応答として、データ再配置の完了をホスト2へ通知する(d4)。
【0075】
以上のように、第2実施形態の情報処理システムによれば、ホスト2とメモリシステム1とが協働することによって、ファイルのデータの断片化を効率的に解消することが実現される。
【0076】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0077】
1…メモリシステム、2…ホスト、11…コントローラ、12…DRAM、13…フラッシュメモリ、111…データ再配置制御部、131…メモリダイ、150…物理ブロック、151…ページ、200…論理ブロック、300…マッピング情報。
図1
図2
図3
図4
図5
図6
図7
図8