(57)【要約】  ホストとメモリサブシステムとを備えた情報処理装置であって、前記ホストは、前記メモリサブシステムへ、データの消去可能な順序を示す識別子と、データの書き込み命令を発行し、前記データを処理する情報処理回路を備え、前記メモリサブシステムは、第１のメモリと、第１のメモリへ前記データを書き込む制御回路を備えており、前記第１のメモリは、データの消去単位のサイズがデータの書き込み単位のサイズより大きく、前記制御回路は、前記識別子に基づいて前記データを分類分けし、第１の分類に属する前記データを、前記第１のメモリ内の同時に消去可能な第１の同一消去領域へ書き込み、前記第１の分類とは異なる第２の分類に属する前記データを、前記第１のメモリ内の同時に消去可能な第２の同一消去領域へ書き込む情報処理装置により、記憶装置の性能及び寿命を向上させつつ、記憶装置のコストを低減することが可能となる。
2015118623.tif 000002
【特許請求の範囲】
【請求項１】
ホストとメモリサブシステムとを備えた情報処理装置であって、
前記ホストは、前記メモリサブシステムへ、データの消去可能な順序を示す識別子と、データの書き込み命令を発行し、前記データを処理する情報処理回路を備え、
前記メモリサブシステムは、第１のメモリと、第１のメモリへ前記データを書き込む制御回路を備えており、
前記第１のメモリは、データの消去単位のサイズがデータの書き込み単位のサイズより大きく、
前記制御回路は、前記識別子に基づいて前記データを分類分けし、第１の分類に属する前記データを、前記第１のメモリ内の同時に消去可能な第１の同一消去領域へ書き込み、前記第１の分類とは異なる第２の分類に属する前記データを、前記第１のメモリ内の同時に消去可能な第２の同一消去領域へ書き込むことを特徴とする情報処理装置。
【請求項２】
前記ホストは、
前記データの処理を実行する前に、異なる前記識別子の数と識別子ごとのデータのサイズのうち、少なくともいずれか一方をメモリサブシステムの制御回路に通知することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記メモリサブシステムの制御回路は、
異なる前記識別子の数と前記識別子ごとのデータのサイズのうち、少なくともいずれか一方を基に、前記識別子に対応する前記データの分類分けの方法を決定することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記ホストは、
前記データの処理の実行中に、前記データの付帯情報をメモリサブシステムの制御回路に通知することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記メモリサブシステムは、
前記データの処理の実行中に、前記データの付帯情報を基に、前記識別子に対応する前記データの分類分けの方法を変更することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記データの付帯情報は、
解析されたデータのサイズと、異なる前記識別子の数と、識別子に属するデータのサイズの少なくともいずれか一つを含むことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記ホストが割り当てる論理アドレスの総サイズよりも、前記論理アドレスが割り当てられた前記メモリサブシステムに属する前記第１のメモリの総容量の方が小さいことを特徴とする  請求項１に記載の情報処理装置。
【請求項８】
前記メモリサブシステムは、
前記第１のメモリよりも高速にアクセス可能な第２のメモリと、不揮発性メモリである前記第１のメモリを備えたことを特徴とする請求項１に記載の情報処理装置。
【請求項９】
前記メモリサブシステムは、
前記データの分類分けを管理する情報を前記第２のメモリへ書き込むことを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
ホストとメモリサブシステムとを備えた情報処理装置であって、
前記ホストは、前記メモリサブシステムへ、データの書き込み命令を発行し、前記データを処理する情報処理回路を備え、データの消去可能な順序を示す識別子を基に、前記データを分類分けし、
前記メモリサブシステムは、
データの消去単位のサイズがデータの書き込み単位のサイズより大きな第１のメモリと、
前記ホストの前記書き込み命令により、第１の分類に属する前記データを、前記第１のメモリ内の同時に消去可能な第１の同一消去領域へ書き込み、前記第１の分類とは異なる第２の分類に属する前記データを、前記第１のメモリ内の同時に消去可能な第２の同一消去領域へ書き込むメモリサブシステム制御回路を備えたことを特徴とする情報処理装置。
【請求項１１】
前記ホストは、
前記データの処理を実行する前に、異なる前記識別子の数と識別子ごとのデータのサイズのうち、少なくともいずれか一方を基に、前記識別子に対応する前記データの分類分けの方法を決定することを特徴とする請求項１０に記載の情報処理装置。
【請求項１２】
前記ホストは、
前記データの処理の実行中に、前記データの付帯情報を基に、前記識別子に対応する前記データの分類分けの方法を変更することを特徴とする請求項１０に記載の情報処理装置。
【請求項１３】
前記データの付帯情報は、
解析されたデータのサイズと、異なる前記識別子の数と、識別子に属するデータのサイズの少なくともいずれか一つを含むことを特徴とする請求項１２に記載の情報処理装置。
【請求項１４】
前記ホストが割り当てる論理アドレスの総サイズよりも、前記論理アドレスが割り当てられた前記メモリサブシステムに属する前記第１のメモリの総容量の方が小さいことを特徴とする  請求項１０に記載の情報処理装置。
【請求項１５】
前記メモリサブシステムは、
前記第１のメモリよりも高速にアクセス可能な第２のメモリと、不揮発性メモリである前記第１のメモリを備えたことを特徴とする請求項１０に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はビッグデータの高速処理に適した情報処理装置に関するものである。
【背景技術】
【０００２】
今後、ビッグデータ解析の需要が高まるため、計算機が扱うデータ量は爆発的に増加する。一方、計算機に搭載できるＤＲＡＭ容量は限られるため、安価な大容量不揮発性メモリにビックデータを格納し、高速に解析する技術が望まれる。【０００３】
大容量不揮発性メモリは、データ消去単位（ブロック）がデータ書き込み単位より大きく、データの上書きができない。また、不揮発性メモリを用いた従来の記憶装置では、異なるタイミングで不要となるデータが不揮発性メモリの同一ブロック内に混在する。このため、記憶装置は物理的に散在する必要なデータをそれぞれのブロックから読み出したのち、データを読み出したブロックを消去し、読み出されたデータを消去されたブロックへ書き戻す。この処理はガーベッジコレクションと呼ばれる。【０００４】
特許文献１、２には、不揮発性メモリを用いた記憶装置に対し、データの論理アドレスや書き込み順を基にデータを分類し、その分類を基にデータの書き込み先を決定する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許公報ＵＳ７２５４６６８  Ｂ１
【特許文献２】米国特許公報ＵＳ７１３９８６４  Ｂ２
【発明の概要】
【発明が解決しようとする課題】
【０００６】
不揮発性メモリを用いた記憶装置でガーベッジコレクションが発生すると、ホストの読み書きの処理が待たされ、記憶装置の性能が低下する。加えて、ガーベッジコレクションそのものが消去処理を含むため、消去回数に上限のある記憶装置の寿命劣化を招く。更に、ガーベッジコレクションを実行するため、記憶装置に不揮発性メモリを余分に搭載する必要があり、記憶装置のコスト増大の原因となる。これらの問題を解決するには、ガーベッジコレクションを排除する必要がある。【０００７】
特許文献１に開示された技術では、論理アドレスを基にデータを分類分けしており、依然として、不揮発性メモリの同じブロック内に必要なデータと不要なデータが混在する。また、特許文献２に開示された技術では、データの書き込み順を基にデータを分類分けしており、依然として、不揮発性メモリの同じブロックに必要なデータと不要なデータが混在する。このため、ガーベッジコレクションを排除しようとすると、不揮発性メモリ上に確保するデータ書き込み先領域のサイズは増大し、記憶装置のコスト増大を招いていた。【０００８】
そこで、本発明の目的は、ガーベッジコレクションを排除し、更に、記憶装置に必要な不揮発性メモリの容量を減らすことで、記憶装置のコストを低減することである。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明は請求の範囲に記載の構成を採用する。【００１０】
本発明にかかる情報処理装置は、ホストとメモリサブシステムとを備えた情報処理装置であって、前記ホストは、前記メモリサブシステムへ、データの消去可能な順序を示す識別子と、データの書き込み命令を発行し、前記データを処理する情報処理回路を備え、前記メモリサブシステムは、第１のメモリと、第１のメモリへ前記データを書き込む制御回路を備えており、前記第１のメモリは、データの消去単位のサイズがデータ書き込み単位のサイズより大きく、前記制御回路は、前記識別子に基づいて前記データを分類分けし、第１の分類に属する前記データを、前記第１のメモリ内の同時に消去可能な第１の同一消去領域へ書き込み、前記第１の分類とは異なる第２の分類に属する前記データを、前記第１のメモリ内の同時に消去可能な第２の同一消去領域へ書き込むことを特徴とする。【００１１】
また、本発明にかかる情報処理装置は、ホストとメモリサブシステムとを備えた情報処理装置であって、前記ホストは、前記メモリサブシステムへ、データの書き込み命令を発行し、前記データを処理する情報処理回路を備え、データの消去可能な順序を示す識別子を基に、前記データを分類分けし、前記メモリサブシステムは、データの消去単位のサイズがデータの書き込み単位のサイズより大きな第１のメモリと、前記ホストの前記書き込み命令により、第１の分類に属する前記データを、前記第１のメモリ内の同時に消去可能な第１の同一消去領域へ書き込み、前記第１の分類とは異なる第２の分類に属する前記データを、前記第１のメモリ内の同時に消去可能な第２の同一消去領域へ書き込むメモリサブシステムの制御回路を備えたことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、ビッグデータ解析などに必要な大規模なメモリ空間を不揮発性メモリで安価に提供でき、かつ、データ消去可能な順序を示す識別子の種類が多い場合でも、ガーベッジコレクションを排除し、更に必要な不揮発性メモリの容量を減らすことができる。これにより、記憶装置の性能及び寿命を向上させつつ、記憶装置のコストを低減することが可能となる。
【図面の簡単な説明】
【００１３】
【図１】サーバ（情報処理装置）の構成の例を示す図である。
【図２】サーバ内のメモリサブシステムの構成の例を示す図である。
【図３】メモリサブシステム内の不揮発性メモリのチップ、ブロック、ページの構成と読み書き消去の処理対象の例を示す図である。
【図４】サーバの処理対象であり、ビッグデータであるグラフの例を示す図である。
【図５】サーバにおいて実行されるグラフ解析処理のシーケンスの例を示す図である。
【図６】ホストからメモリサブシステムへ送信される情報の例を示す図である。
【図７】グラフ解析前におけるメモリサブシステム制御回路の処理の例を示すフローチャートである。
【図８】メモリサブシステム制御回路の処理に用いるデータ管理テーブルの例を示す図である。
【図９】メモリサブシステム制御回路によるデータ書き込み処理におけるデータフロー、及びラージグループ番号に対応するデータが格納される不揮発性メモリのチップの例を示す図である。
【図１０】メモリサブシステム制御回路によるデータ書き込み処理の例を示すフローチャートである。
【図１１】メモリサブシステム制御回路の処理に用いるブロック管理テーブルの例を示す図である。
【図１２】グラフ処理における、消去可能なデータ順の例を示す図である。
【図１３】前スーパーステップの解析結果の格納領域、及び現スーパーステップの開始時に確保される書き込み先領域と不揮発性メモリチップの関係の例を示す図である。
【図１４】サーバにおける仮想メモリと論理アドレス及び物理アドレスの関係の例を示す図である。
【図１５】グラフ解析における論理アドレスと物理アドレスの関係の例を示す図である。
【図１６】グラフ解析のスーパーステップの切れ目もしくはグラフ更新の際のメモリサブシステム制御回路の処理の例を示すフローチャートである。
【図１７】グラフ解析のスーパーステップの切れ目もしくはグラフ更新の際のメモリサブシステム制御回路の処理における、管理テーブルの更新の例を示す図である。
【発明を実施するための形態】
【００１４】
以下に添付図面を参照して、好ましいサーバ（情報処理装置）の実施の形態を詳細に説明する。
＜Ａ．サーバの構成＞
まず、サーバ（ＳＶＲ）の構成について、図１と図２を用いて説明する。図１に、情報処理装置であるサーバ全体の構成を示す。サーバは、複数のホスト（Ｈｏｓｔ（１）〜Ｈｏｓｔ（Ｎ））と、全てのホストを接続するインターコネクト（Ｉｎｔｅｒｃｏｎｎｅｃｔ）と、それぞれのホストに接続された複数のメモリサブシステム（ＭＳＳ（１）〜ＭＳＳ（Ｎ））とから構成される。
【００１５】
ホストは、情報処理回路（ＣＰＵ）と、この情報処理回路に接続された１個以上のメモリ（ＤＲＡＭ）から構成される。全てのホストはインターコネクトを介して互いに通信することができる。また、ホストはそれぞれ接続されたメモリサブシステムと互いに通信することができる。情報処理回路は、メモリ及びメモリサブシステムから情報を読み込み、情報を書き込むことにより処理を実行する。
【００１６】
メモリサブシステムは、それぞれ１個のメモリサブシステム制御回路（ＭＳＣ）と１個以上の不揮発性メモリ（ＮＶＭ）と１個以上のメモリ（ＤＲＡＭ）から構成される。メモリサブシステム制御回路はホスト、不揮発性メモリ、メモリと互いに通信することができる。
【００１７】
メモリサブシステムの中のメモリは管理情報などを格納するメモリであり、高速なＤＲＡＭが好ましいが、ＤＲＡＭ以外にＭＲＡＭ、相変化メモリ、ＳＲＡＭ、ＮＯＲフラッシュメモリ、ＲｅＲＡＭなどのメモリでもよい。また、不揮発性メモリへ書き込むデータと読み出すデータとを一時的に記憶して不揮発性メモリのキャッシュとして使用してもよい。不揮発性メモリはホストから書き込まれたデータを格納するメモリであり、安価で大容量なＮＡＮＤフラッシュメモリ、相変化メモリ、ＲｅＲＡＭなどが挙げられる。これらはデータ消去単位のサイズがデータ書き込み単位のサイズ以上であるメモリである。
【００１８】
図２はメモリサブシステムを更に詳細に示したものである。
【００１９】
メモリサブシステムは、１個のメモリサブシステム制御回路（ＭＳＣ）と、不揮発性メモリ（ＮＶＭ（１，１）〜ＮＶＭ（ｉ，ｊ））と、メモリ（ＤＲＡＭ（１）〜ＤＲＡＭ（ｐ））とから構成される（ｉ、ｊ、ｐは自然数）。メモリサブシステム制御回路は、メモリアクセス制御回路（ＤＭＡＣ）とコマンドバッファ（Ｃ−ＢＦ）と、データバッファ（Ｄ−ＢＦ）と、アドレスバッファ（Ａ−ＢＦ）と、メタデータバッファ（Ｍ−ＢＦ）と、レジスタ（ＲＧ）と、データ再分類ブロック（Ｄ−ＲＣＬＳＦＹ＿ＢＬＫ）と、不揮発性メモリ制御回路（ＮＶＭＣ（１）〜ＮＶＭＣ（ｉ））と、ＤＲＡＭ制御回路（ＤＲＡＭＣ（１）〜ＤＲＡＭＣ（ｐ））とから構成される。
【００２０】
メモリアクセス制御回路（ＤＭＡＣ）は、図１におけるホストと、コマンドバッファと、データバッファと、アドレスバッファと、メタデータバッファと、レジスタと接続されており、接続先間のデータ通信を行う。コマンドバッファ、データバッファ、アドレスバッファ、メタデータバッファ、レジスタのぞれぞれはデータ再分類ブロックとも接続されており、コマンドバッファは、データの読み出し命令、書き込み命令、消去命令を一時的に格納するバッファであり、データバッファは、読み書きされるデータを一時的に格納するバッファである。アドレスバッファは、ホストからの読み出し、書き込み及び消去命令におけるデータのアドレスを一時的に格納するバッファである。なお、データのサイズも一時的に格納することができる。
【００２１】
メタデータバッファは、ホストからの読み出し、書き込み及び消去命令におけるデータのグループ番号、データの種類（グラフデータ（ＣＳＲ）、解析結果（ＭＳＧ）など）などのメタデータを一時的に格納するバッファである。ただし、メタデータはこれらに限定されるものではなく、これ以外の情報であってもよい。
【００２２】
レジスタは、データ再分類ブロックにおける各制御に必要な制御情報（データの総グループ番号、グループごとのデータサイズ、前回のスーパーステップで書き込まれたデータサイズ、グラフの更新情報など）を格納して、データ再分類ブロックから読み出し可能とするレジスタである。ただし、必要な制御情報はこれらに限定されるものではなく、これ以外の情報であってもよい。
【００２３】
データ再分類ブロックは、レジスタ、コマンドバッファ、データバッファ、アドレスバッファ、メタデータバッファと通信し、不揮発性メモリ制御回路とＤＲＡＭ制御回路を制御するものである。
【００２４】
不揮発性メモリ制御回路（ＮＶＭＣ（１）〜ＮＶＭＣ（ｉ））は、不揮発性メモリ（ＮＶＭ（ｉ，１）〜ＮＶＭ（ｉ，ｊ））に接続されており、接続された不揮発性メモリのデータ読み出しと、データの書き込みと、データの消去を行う。ここで、ｉは自然数であってチャネル番号を表し、複数のチャネルはそれぞれ独立して通信できるデータ転送バス（Ｉ／Ｏ）を備える。１つのチャネルに属するｊ個の不揮発性メモリ（ＮＶＭ（ｉ，１），ＮＶＭ（ｉ，２），…，ＮＶＭ（ｉ，ｊ））は、データ転送バスを共有する。また、各チャネルに属するｊ個の不揮発性メモリは、メモリとしては独立しているため、不揮発性メモリ制御回路からの命令を独立に処理することができる。ｊ個の不揮発性メモリは、不揮発性メモリ制御回路から物理的に近い順にウェイ（Ｗａｙ１，Ｗａｙ２，…，Ｗａｙｊ）に属する。各不揮発性メモリがデータ処理中か否かを、不揮発性メモリ制御回路は、各不揮発性メモリに接続されたレディービジー線（ＲＹ／ＢＹ）の信号を読むことで判定することができる。不揮発性メモリ制御回路は、データ再分類ブロックと接続され、互いに通信できる。
【００２５】
ＤＲＡＭ制御回路（ＤＲＡＭＣ（１）〜ＤＲＡＭＣ（ｐ））は、それぞれメモリ（ＤＲＡＭ（１）〜ＤＲＡＭ（ｐ））に接続され、メモリからのデータ読み出しとメモリへのデータの書き込みを行う。また、ＤＲＡＭ制御回路はデータ再分類ブロックと接続され、互いに通信できる。
＜Ｂ．不揮発性メモリの構造と読み書き消去処理＞
次に、図３を用いて、不揮発性メモリ内の構成及びデータの読み出しと書き込みと消去の処理を説明する。それぞれの不揮発性メモリは、Ｎ＿ｂｌｋ個のブロック（ＢＬＫ）から構成され、各ブロックはＮ＿ｐｇ個のページ（ＰＧ）から構成される。ここで、Ｎ＿ｂｌｋとＮ＿ｐｇは自然数である。例えば、不揮発性メモリである容量８ＧＢ／ｃｈｉｐのＮＡＮＤフラッシュメモリにおける１ブロックのデータサイズが１ＭＢで、１ページのデータサイズが８ｋＢの時、Ｎ＿ｂｌｋ＝８ｋ＝（８ＧＢ／１ＭＢ）であり、Ｎ＿ｐｇ＝１２８＝（１ＭＢ／８ｋＢ）である。
【００２６】
不揮発性メモリに格納されたデータはページの単位で読み出され、不揮発性メモリへデータを書き込む際はページの単位で書き込む。また、不揮発性メモリに格納されたデータはブロックの単位で消去される。不揮発性メモリにデータを書き込む際、データの上書きはできない。したがって、例えば図３において消去されたブロック内のページ（ＰＧ＿ｅ）へデータを書き込むことはできるが、既にデータが書き込まれたページ（ＰＧ＿ｄ）には新しいデータを書き込むことはできない。以上をまとめると不揮発性メモリは以下の２つの特徴を有する。
【００２７】
特徴１：消去単位（ブロック）のデータサイズは書き込み単位（ページ）のデータサイズ以上である。
【００２８】
特徴２：データが既に書き込まれたページなどには新しいデータを上書きできない。
【００２９】
以下、サーバの処理について、大規模グラフ解析を例に挙げて説明する。まず、図４、５を用いて、サーバで取り扱うグラフの例とそのグラフデータの解析シーケンスの例を説明する。
＜Ｃ．グラフとグラフ解析シーケンス＞
図４は、サーバで取り扱うグラフの一例を示す図である。ここで例として挙げるグラフは、グラフの頂点（Ｖｅｒｔｅｘ）に各頂点を一意に特定する頂点番号が割り当てられており、２つの頂点を繋ぐ一本のグラフの辺（Ｅｄｇｅ）は、その２つの頂点の間に関係性があることを表す。グラフの各頂点及び頂点間の関係性が解析対象のグラフデータとなる。
【００３０】
一般にグラフ解析の対象となるグラフの頂点は膨大な数となるため、グラフデータは頂点番号に応じてグループに分けられ、グループごとに解析される。ただし、解析対象となるグラフはこの例に限定されるものではなく、頂点間の関係性に方向性を有する有向グラフ（Ｄｉｒｅｃｔｅｄ  Ｇｒａｐｈ）や、複数種類の関係性を有するＭｕｌｔｉ−ｒｅｌａｔｉｏｎａｌ  Ｇｒａｐｈや、各頂点及び辺に付帯情報を有するＰｒｏｐｅｒｔｙ  Ｇｒａｐｈ及び付帯情報に重みが付けられたＷｅｉｇｈｔｅｄ  Ｇｒａｐｈなど、この例以外のグラフであってもよい。
【００３１】
図５にサーバにおけるグラフ解析のシーケンスの一例を示す。メモリサブシステム（ＭＳＳ）内の不揮発性メモリには、グラフデータ（ＣＳＲ）とグラフ解析の結果（ＭＳＧ）が格納され、それらはそれぞれグループごと読み書きされる。以下のシーケンスは、Ｎ個のホスト及びメモリサブシステムにおいて、同時並行的に実行される。
【００３２】
時刻１（Ｔ１）：まず、メモリサブシステムは不揮発性メモリに格納されたグループ１に属するグラフデータ（Ｒｅａｄ  ＣＳＲ  Ｇｒ．１）とグラフ解析の結果（Ｒｅａｄ  ＭＳＧ  Ｇｒ．１）を読み出し、ホストへ送付する。
【００３３】
時刻２（Ｔ２）：次に、ホストは、メモリサブシステムから送られてきたグループ１のグラフデータ及びグラフ解析の結果を解析する（Ａｎａｌｙｚｅ  Ｇｒ．１）。これと並行して、メモリサブシステムは、次にホストで解析されるグループ２のグラフデータ（Ｒｅａｄ  ＣＳＲ  Ｇｒ．２）及びグラフ解析の結果（Ｒｅａｄ  ＭＳＧ  Ｇｒ．２）を読み出す。またこれらと並行して、メモリサブシステムは、グループ１のグラフ解析結果を消去する（Ｅｒａｓｅ  ＭＳＧ  Ｇｒ．１）。この結果はホストによる解析の後、二度と使われないため、このタイミングで消去が可能である。
【００３４】
時刻３（Ｔ３）：それぞれのホストは、グループ１のグラフ解析の結果を他のホストへ伝える。各ホストは他のホストから送られてきたグラフ解析の結果をグループごとにまとめ、メモリサブシステムに送付する。メモリサブシステムは、ホストから送られたグラフ解析の結果を不揮発性メモリの書き込み単位で不揮発性メモリに書き込む（Ｗｒｉｔｅ  ＭＳＧ（Ｇｒ．  ＃  ａｔ  ｒａｎｄｏｍ））。
【００３５】
以上のシーケンスをグループ順に繰り返し、全てのグループ１〜Ｍの処理の終了後、各ホスト（Ｈｏｓｔ（１）〜Ｈｏｓｔ（Ｎ））の間で処理終了の同期が実行される（ＳＹＮＣ）。この一連のグループ１〜Ｍの処理及び同期をスーパーステップ（Ｓ．Ｓ．）と呼び、同期の後、再度グループ１から順に処理は繰り返される。前のスーパーステップでメモリサブシステムに書き込まれたグラフ解析の結果（ＭＳＧ）は、次のスーパーステップで読み出される。グラフ解析はこのスーパーステップの繰り返しによって実行される。
＜Ｄ．ホストとメモリサブシステム間の通信＞
図６を用いて、ホストとメモリサブシステムの間の通信を説明する。図６は、グラフ解析開始前、データ書き込み時、及びグラフ解析中に、ホストがメモリサブシステムへ送付する情報を示す図である。
（ａ）グラフ解析開始前（Ｂｅｆｏｒｅ  Ａｎａｌｙｓｉｓ）
ホストがグラフ解析を開始する前、ホストはメモリサブシステムへ、グループ番号の総数（Ｔｏｔａｌ  Ｇｒ．＃，図５のＭに対応）とグループごとのデータサイズ（Ｓｉｚｅ／Ｇｒ．）を送付する。メモリサブシステムは、ホストから送付された上記情報を基に、データの再分類方法を決定し、各グループ番号のデータの書き込み先を決定する。
（ｂ）データ書き込み時（Ｗｒｉｔｅ）
ホストがメモリサブシステムへデータ書き込み命令を発行する際（Ｗｒｉｔｅ）、ホストはメモリサブシステムへ、書き込みデータのグループ（Ｇｒ．）の番号と、データの種類（グラフデータ（ＣＳＲ）、解析結果（ＭＳＧ）など）と、書き込みデータ（ｄａｔａ）と、論理アドレス（Ａｄｒ）と書き込みデータサイズ（ｓｉｚｅ）を送付する。メモリサブシステムはホストから送付された上記情報を基に、データを不揮発性メモリへ書き込む。
（ｃ）グラフ解析中（Ｓ．Ｓ．／Ｕｐｄａｔｅ）
グラフ解析を実行中、例えばスーパーステップの切れ目のタイミングなどで、前スーパーステップにメモリサブシステムへ書き込まれた解析結果のデータサイズや、解析された頂点数など（Ｓｉｚｅ／Ｐｒｅ  Ｓ．Ｓ．）を、ホストはメモリサブシステムへ送付する。また、グラフ解析中にグラフデータが更新された場合、グラフデータが更新されたタイミングなどで、ホストはメモリサブシステムへグラフの更新情報（Ｕｐｄａｔｅ  ｉｎｆｏ．）を送付する。メモリサブシステムは、ホストから送付された上記情報を基に、データの再分類方法を更新する。
【００３６】
次に、サーバがグラフ処理を行う際のメモリサブシステムの処理を図７〜１７を用いて説明する。
＜Ｅ．グラフ解析におけるメモリサブシステム制御回路の処理＞
（１）グラフ解析開始前の処理
図７、図８を用いて、グラフ解析開始前のメモリサブシステムの制御に関して説明する。
【００３７】
図７にメモリサブシステムの制御シーケンスを示す。まず、グラフ解析の開始前、ホストは、メモリサブシステムの制御に必要な情報モリサブシステムのレジスタに書き込む（Ｓｔｅｐ  １  ＲＣＶ  ｉｎｆｏ）。メモリサブシステムの制御に必要な情報は、グラフ解析におけるグループの総数、グループごとのデータサイズ（Ｓｉｚｅ／Ｇｒ．）、グラフの頂点数や辺の数などであり、グラフの最短経路探索の場合は、最短経路を求めたい２頂点、すなわち、始点と終点を特定する情報なども含まれる。次に、メモリサブシステム制御回路内のデータ再分類ブロックは、レジスタを参照し（Ｓｔｅｐ  ２  Ｒｅａｄ  ＲＧ）、ホストから送付されたグループの総数及びグループごとのデータサイズなどを基にして、データの再分類方法を決定する（Ｓｔｅｐ  ３  Ｄｅｔ．  Ｇｒ．  ＣＬＳ．）。また、その再分類方法に基づき、データ再分類ブロックは、図８に示すテーブルを作成し、メモリサブシステム内のＤＲＡＭへ格納する（Ｓｔｅｐ  ４  Ｍａｋｅ  Ｔａｂｌｅ）。
【００３８】
図８（ａ）Ｇｒ−ＬＧｒは、ホストから送られたデータのグループ番号と、データ再分類ブロックによって決定されたデータ分類であるラージグループ番号（ＬＧｒ）との間の対応付けを管理するテーブルである。図８（ｂ）ＬＧｒ−ＰＡは、ラージグループ番号とデータの書き込み先（Ｐｈｙｓｉｃａｌ  Ａｄｄｒｅｓｓ）の間の対応付けを管理するテーブルである。データの再分類方法の詳細は、（３）データの再分類方法で説明する。
（２）データ書き込み処理
図９〜１１を用いて、メモリサブシステムへデータを書き込む際の制御に関して説明する。
【００３９】
図９に示すように、メモリサブシステムへデータ書き込む際、ホストは、書き込みリクエストと共に、データのグループ番号（Ｇｒ．３８３）、データの種類（ＭＳＧ）、論理アドレス（Ａｄｒ）及びデータサイズ（ｓｉｚｅ）を、メモリサブシステム制御回路（ＭＳＣ）へ送付する（１．  Ｗｒｉｔｅ  Ｒｅｑ．）。メモリサブシステム制御回路は、メモリサブシステム内のＤＲＡＭに格納された管理テーブル（図８（ａ）Ｇｒ−ＬＧｒ，  （ｂ）ＬＧｒ−ＰＡ）を参照し、データの書き込み先を決定する（２．  Ｄｅｔ．  Ａｄｄｒ）。図９に示すように、各チャネルに属する複数の不揮発性メモリチップ（ＮＶＭ  ｃｈｉｐ）に、同一ラージグループに属するデータの書き込み先を分散させ、且つ同時に、不揮発性メモリの同一の消去単位（Ｂｌｏｃｋ）内は同一ラージグループのデータのみを書き込む。
【００４０】
図１０にデータ書き込み時のデータ再分類ブロックの制御シーケンスを示す。まず、メモリサブシステム制御回路（ＭＳＣ）内のデータ再分類ブロックは、コマンドバッファを参照し、ホストから送付されたデータ書き込みリクエストを受領する（Ｓｔｅｐ  １  ＲＣＶ  Ｒｅｑ．）。次に、データ再分類ブロックは、メタデータバッファ（Ｍ−ＢＦ）を参照し（Ｓｔｅｐ  ２  Ｒｅａｄ  ＢＦ）、データのグループ番号を読み出す。同様に、データ再分類ブロックは、アドレスバッファからデータの論理アドレスとデータサイズを読み出す。そのあと、データ再分類ブロックは、メモリサブシステム内のＤＲＡＭに格納された管理テーブルＧｒ−ＬＧｒ（図８（ａ））を参照し、メタデータバッファから読み出したグループ番号が、どのラージグループ番号に対応するかを判定する。次に、データ再分類ブロックは、管理テーブルＬＧｒ−ＰＡ（図８（ｂ））のうち、該当するラージグループ番号に対応する行を参照する。そして、データ再分類ブロックは、対応する行のＰａｇｅ  ｃｎｔｓ．を１増加させる。その結果、Ｐａｇｅ  ｃｎｔｓ．がメモリサブシステム制御回路によって決定された閾値を超えた場合、図１１に示すブロック管理テーブル（ＢＬＫ＿ＳＴ）を参照する。そして、各チャネルに属する不揮発性メモリチップから、１つずつ空きブロック”ＥＲＡＳＥＤ”を選択し、管理テーブルＬＧｒ−ＰＡのＰｈｙｓｉｃａｌ  Ａｄｄｒｅｓｓの項目を更新する。また、選択されたブロックに関して、ブロック管理テーブル（ＢＬＫ＿ＳＴ）に記録されているブロックの状態を”ＥＲＡＳＥＤ”から”ＡＬＬＯＣＡＴＥＤ”に更新し、管理テーブルＬＧｒ−ＰＡの対応する行のＰａｇｅ  ｃｎｔｓ．の値を０に更新する（Ｓｔｅｐ  ３  ｓｅｅ  ＆  ｕｐｄａｔｅ  ｔａｂｌｅ）。次に、データ再分類ブロックは、管理テーブルＬＧｒ−ＰＡのうち、該当するラージグループ番号の行を参照し、データの書き込み先を決定する（Ｓｔｅｐ  ４  Ｄｅｔ．  Ａｄｄｒ）。最後に、データ再分類ブロックは、ブロック管理テーブル（ＢＬＫ＿ＳＴ）のＳｔａｔｕｓ  ｏｆ  ｂｌｏｃｋの欄を”ＡＬＬＯＣＡＴＥＤ”から”ＰＲＯＧＲＡＭＭＥＤ”に更新する（Ｓｔｅｐ  ５  Ｕｐｄａｔｅ  ｔａｂｌｅ）。
（３）データの再分類方法
図１２、図１３を用いて、本発明におけるデータの再分類方法の一例に関して説明する。  図１２は、グループ及びラージグループに分類されたデータが消去可能となる順を示す。図５のグラフ解析シーケンスに示したように、グラフ解析を実行するホストは、グループ番号順に処理を行い、解析結果のデータ（ＭＳＧ）もその順に消去可能となる（図１２の左の“Ｅｒａｓａｂｌｅ”）。データ再分類ブロックは、連続する複数のグループ番号のデータをまとめてラージグループ（ＬＧｒ．）に分類する。したがって、グループと同様に、解析結果のデータ（ＭＳＧ）はラージグループ順に消去可能となる（図１２の左の“Ｅｒａｓａｂｌｅ”）。
【００４１】
図１３に示すように、グラフ解析のスーパーステップの開始時に、メモリサブシステム制御回路（ＭＳＣ）内のデータ再分類ブロックは、ラージグループ数分の書き込み領域を不揮発性メモリ上に確保する（Ｓ．Ｓ．２）。１つのラージグループの書き込み先として割り当てる不揮発性メモリの数をＮ＿ＮＶＭ（図１３ではチャネル数に等しく、Ｎ＿ＮＶＭ＝ｉ）とすると、Ｎ＿ＮＶＭ×（ラージグループ数）個の不揮発性メモリの消去ブロックが、スーパーステップの開始時に書き込み先として割り当てられる。ページランク計算の場合、このスーパーステップ開始時に割り当てられる不揮発性メモリの容量と、１ラージグループあたりに消去されるデータ容量が等しくなったとき、トータルで必要となる不揮発性メモリの容量は最小となる。不揮発性メモリの消去ブロックの容量をＢＬＫ＿ｓｚ、総グループ数をｇ、１ラージグループあたりのグループ数をｐとおくと、スーパーステップ開始時に割り当てられる不揮発性メモリの容量は、
（Ｎ＿ＮＶＭ×ＢＬＫ＿ｓｚ×ｇ）／ｐ
となる。また、１グループあたりのデータサイズをｓとすると、１ラージグループあたりに消去されるデータ容量は、
ｓ×ｐ
となる。したがって、これらが等しくなるためのｐの条件から、
ｐ＝  √（（Ｎ＿ＮＶＭ×ＢＬＫ＿ｓｚ×ｇ）／ｓ）
が導かれる。上式に従って、データ再分類ブロックは、幾つのグループを１つのラージグループにまとめたらよいか計算する。
（４）論理アドレスと物理アドレスの関係
図１４、図１５を用いて、本発明における論理アドレスと物理アドレスの関係を説明する。
【００４２】
図１４は仮想アドレスと論理アドレスと物理アドレスの関係を示す。仮想アドレスは、ＯＳ上で実行されるプロセスが利用するアドレス空間を指し、ページ（Ｖ＿ｐａｇｅ）単位で管理される。また仮想アドレスは、通常ＤＲＡＭや記憶装置の実容量とは関係なく、ＯＳから各プロセスに割り当てられる。一方、論理アドレスは、ＤＲＡＭや記憶装置毎に割り振られたアドレスであり、ページ単位（Ｌ＿ｐａｇｅ）で管理される。また、ＯＳは仮想アドレスと論理アドレスの間の変換を行う（図１４、Ａ）。物理アドレスは、記憶装置のデータ格納先を直接指し示すアドレスであり、メモリサブシステムの例では、チャネル、ウェイ、ブロック、ページなどである。通常、記憶装置のコントローラによって、論理アドレスと物理アドレスは変換される（図１４、Ｂ）。
【００４３】
次に、図１５を用いて、本発明における論理アドレスと物理アドレスの容量の関係の一例を示す。グラフ解析を実行するホストは、グループ１から順に、前スーパーステップの解析結果データ（ＭＳＧ）を読み出し、読み出し後、データは不要となる。そのため、ラージグループも同様に１から順に不要となる。ホストは、メモリサブシステムに、２スーパーステップ分の解析結果のデータサイズを格納できるだけの論理アドレス空間を割り当てる。メモリサブシステム内の不揮発性メモリの容量である物理アドレス空間の領域は、論理アドレス空間の領域より小さく取ることが可能である。データ再分類ブロックは、スーパーステップの開始時に、次のスーパーステップの解析結果データを格納するための物理アドレス領域（図１５、ｂ）を確保する。ここで、ｂの領域は、１スーパーステップで書き込まれる全てのデータ（Ｌｏｇｉｃａｌ内のＳ．Ｓ．２  Ｌ＿Ｇｒ．１  ＭＳＧ  １−８  〜  Ｓ．Ｓ．２  Ｌ＿Ｇｒ．３２  ＭＳＧ  １−８）が収まる必要はなく、全ラージグループに属するデータの書き込み先（図１５、ｂ：  Ｓ．Ｓ．２  Ｌ＿Ｇｒ．１  ＭＳＧ  １  〜  Ｓ．Ｓ．２  Ｌ＿Ｇｒ．３２  ＭＳＧ  １）が一意に定まる領域であればよい。データ再分類ブロックは、不要となった解析結果のデータ（図１５、ａ）を不揮発性メモリから消去し、ｂの領域が不足した場合は、新たに空き領域となった不揮発性メモリの領域を、新しいｂの領域として割り当てる。
（５）グラフ解析中の処理
図１６、図１７を用いて、本発明におけるグラフ解析中の制御を説明する。
【００４４】
図１６は、グラフ解析中の処理シーケンスを示す。グラフ解析のスーパーステップの間やグラフデータの更新時、ホストは、メモリサブシステムの制御に必要なデータを、メモリサブシステムのレジスタに書き込む（Ｓｔｅｐ  １  ＲＣＶ  ｉｎｆｏ）。制御に必要なデータは、例えば、前スーパーステップに書き込まれた解析結果（ＭＳＧ）のデータ量や、各グループのデータサイズ及び頂点数の増減などの情報である。次に、データ再分類ブロックは、レジスタを参照し（Ｓｔｅｐ  ２  Ｒｅａｄ  ＲＧ）、ホストから送付された情報を基に、データの再分類方法を更新する（Ｓｔｅｐ  ３  Ｕｐｄａｔｅ  Ｇｒ．  ＣＬＳ．）。その後、データ再分類ブロックは、更新された再分類方法を、管理テーブルに反映させる（Ｓｔｅｐ  ４  Ｕｐｄａｔｅ  ｔａｂｌｅ）。
【００４５】
図１７は、データ再分類方法の更新の一例を示す。ホストから送られた前スーパーステップにメモリサブシステムに書き込まれた解析結果のデータサイズの情報を基に、データ再分類ブロックは、図８（ａ）に示すようにＧｒ−ＬＧｒテーブルを更新する。例えば、前スーパーステップに書き込まれた解析結果のデータサイズが、もともと想定されていたデータサイズより大きかった場合、（３）で示した式により、ｐが減少する。このため、データ再分類ブロックは、１ラージグループに属するグループの数を減少させる（図１７（ａ）Ｐｒｅ  Ｓ．Ｓ．  ｓｉｚｅ／Ｇｒ．）。これらの制御は、ホストからメモリサブシステムへ、前スーパーステップの間に書き込まれた解析結果のデータサイズが送付されない場合においても、メモリサブシステムが、前スーパーステップの間に書き込まれた解析結果のデータサイズをカウントすることにより、実行可能である。また、グラフが更新された際、各グループのデータ量及び頂点数の増減の情報がホストからメモリサブシステムへ送付された場合、データ再分類ブロックは、図８（ｂ）に示すようにＧｒ−ＬＧｒテーブルを更新する。例えば、グラフデータの更新の結果、もともとのラージグループ１に属するグループ内の頂点数及びデータ量が増大し、もともとのラージグループ２に属するグループ内の頂点数及びデータ量が減少した場合、データ再分類ブロックは、ラージグループ１に属するグループの数を減少させ、ラージグループ２に属するグループ数を増大させる（図１７（ｂ）Ｕｐｄａｔｅ  ｇｒａｐｈ）。これにより、データ再分類ブロックは、ラージグループ間のデータサイズを均等にする。
＜Ｆ．効果のまとめ＞
以上説明した構成及び処理により得られる主な効果は以下の通りである。
【００４６】
大容量不揮発性メモリを使用することで、ビッグデータの解析などに必要な大規模なメモリ空間を安価に提供でき、かつ、データ消去可能な順序を示す識別子の種類が多い場合でも、ガーベッジコレクションを排除し、必要な不揮発性メモリの容量を減らすことができる。すなわち、ビッグデータの高速処理を行うサーバにおいて、ＤＲＡＭなどよりビットコストが安価なＮＡＮＤフラッシュメモリなどの不揮発性メモリにデータを格納し、かつ、その場合でも、消去可能な順序を示すグループ番号を複数束ねて新しいラージグループを形成し、同一ラージグループのデータが不揮発性メモリの同一消去単位を共有することによって、不揮発性メモリにおけるガーベッジコレクションを排除し、高速なデータ処理を可能にし、更に、グループ番号の数が増大した場合でも、必要な不揮発性メモリの容量を削減することを可能にする。これにより、記憶装置の性能を向上させつつ、記憶装置のコストを低減することが可能となる。
【００４７】
以上の説明では、データ処理を行うホスト、不揮発性メモリ、及び不揮発性メモリを管理するメモリサブシステム制御回路から構成されるサーバの例を挙げたが、サーバはデータ解析及び不揮発性メモリを管理するホスト、及びホストの管理にしたがって不揮発性メモリを制御するメモリサブシステム制御回路とから構成してもよい。上記では、グループ番号と頂点番号の関係性が固定された状態で大規模グラフを解析する例を挙げたが、グラフが動的に変更する場合、グループ番号と頂点番号の関係性を動的に変更してもよい。また、本願で取り扱うビッグデータ処理は上記グラフ解析に限定されるものではなく、たとえば、ＭａｐＲｅｄｕｃｅ処理において、Ｋｅｙに応じて（ｋｅｙとｖａｌｕｅで制御された）ビッグデータを、ｋｅｙ値ごとに複数のグループに分割し、上記処理と同様にメモリ処理を行ってもよい。また、ソースコード上で大きな配列を確保するビッグデータ処理アプリケーションにおいて、同一配列を同一グループとみなして上記メモリ処理を実行しても良く、上記処理の適用範囲は、大規模なデータベースの検索及びデータ抽出などを行う場合も含まれる。そして、これらの処理においてもビッグデータを高速に読み書きできるため、ビッグデータ処理を高速化できる。
【００４８】
以上、添付図面を参照して具体的に説明したが、好ましい実施の形態は以上の説明に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【００４９】
ＳＶＲ・・・サーバ、Ｈｏｓｔ・・・ホスト、Ｉｎｔｅｒｃｏｎｎｅｃｔ・・・インターコネクト、ＭＳＳ・・・メモリサブシステム、ＣＰＵ・・・情報処理回路、ＭＳＣ・・・メモリサブシステム制御回路、ＮＶＭ・・・不揮発性メモリ、ＤＭＡＣ・・・メモリアクセス制御回路、Ｃ−ＢＦ・・・コマンドバッファ、Ｄ−ＢＦ・・・データバッファ、Ａ−ＢＦ・・・アドレスバッファ、Ｍ−ＢＦ・・・メタデータバッファ、ＲＧ・・・レジスタ、Ｄ−ＲＣＬＳＦＹ＿ＢＬＫ・・・データ再分類ブロック、ＮＶＭＣ・・・不揮発性メモリ制御回路、ＤＲＡＭＣ  ・・・ＤＲＡＭ制御回路、Ｃｈ・・・チャネル（１〜ｉ）、Ｗａｙ・・・ウェイ（１〜ｊ）、ＲＹ／ＢＹ・・・レディービジー線、Ｉ／Ｏ・・・データ転送バス、ＢＬＫ・・・ブロック（ＢＬＫ）、ＰＧ・・・ページ（ＰＧ）、ＰＧ＿ｄ・・・データが書き込まれているページ、ＰＧ＿ｅ・・・データが消去されたページ、Ｎ＿ｐｇ・・・１ブロックあたりのページ数、Ｎ＿ｂｌｋ・・・１チップ当たりのブロック数、Ｖｅｒｔｅｘ・・・頂点、Ｅｄｇｅ・・・辺、Ｓ．Ｓ．  ・・・スーパーステップ、ＣＳＲ・・・グラフデータ、ＭＳＧ・・・解析結果、ＳＹＮＣ・・・バリア同期、Ｇｒ−ＬＧｒ・・・グループ／ラージグループ変換テーブル、ＬＧｒ−ＰＡ・・・ラージグループ／物理アドレス変換テーブル、ＢＬＫ＿ＳＴ・・・ブロック管理テーブル。
【図１】
2015118623.tif 000003
【図２】
2015118623.tif 000004
【図３】
2015118623.tif 000005
【図４】
2015118623.tif 000006
【図５】
2015118623.tif 000007
【図６】
2015118623.tif 000008
【図７】
2015118623.tif 000009
【図８】
2015118623.tif 000010
【図９】
2015118623.tif 000011
【図１０】
2015118623.tif 000012
【図１１】
2015118623.tif 000013
【図１２】
2015118623.tif 000014
【図１３】
2015118623.tif 000015
【図１４】
2015118623.tif 000016
【図１５】
2015118623.tif 000017
【図１６】
2015118623.tif 000018
【図１７】
2015118623.tif 000019
【国際調査報告】
2015118623.tif 000020
2015118623.tif 000021