JP5931595B2 - 情報処理装置 - Google Patents
情報処理装置 Download PDFInfo
- Publication number
- JP5931595B2 JP5931595B2 JP2012130641A JP2012130641A JP5931595B2 JP 5931595 B2 JP5931595 B2 JP 5931595B2 JP 2012130641 A JP2012130641 A JP 2012130641A JP 2012130641 A JP2012130641 A JP 2012130641A JP 5931595 B2 JP5931595 B2 JP 5931595B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- data
- information processing
- graph
- cpu
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2219—Large Object storage; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1072—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
但し、DRAMを大規模に搭載したグラフ処理システムは、高価になる。
情報処理サブシステムと、該情報処理サブシステムとデータ通信を行うメモリサブシステムとを備えた情報処理装置であって、前記情報処理サブシステムは、グラフ処理命令に従ってグラフの処理を行う情報処理回路を有し、前記メモリサブシステムは、第一のメモリと、第二のメモリと、該第一及び第二のメモリよりも読み出し及び書き込みレイテンシが長い第三のメモリと、前記第一のメモリと前記第二のメモリと前記第三のメモリ間でデータ転送を制御するメモリコントローラとを有し、前記グラフの処理の対象となるグラフデータは、グラフの各頂点に該各頂点を一意に特定するIDが割り当てられており、前記頂点の1つに割り当てられたIDが分かれば、該頂点と関係性を持つ他の頂点のIDがアドレス空間でどの場所にあるのか特定できるデータであり、複数のデータブロックから構成され、前記データブロックは、前記1つの頂点のIDを前記メモリコントローラによって解析することで判明するアドレスに対応する全データもしくはデータの一部であり、その中に少なくとも前記1つの頂点のIDが記録されており、前記メモリコントローラは、前記第三のメモリに、処理の対象となる前記グラフデータを格納する機能と、複数の前記データブロックを前記第三のメモリから前記第一もしくは前記第二のメモリへ転送するプレロード機能とを有し、前記メモリコントローラは該プレロード機能により、1つの前記データブロックAに含まれる少なくとも1つの前記頂点のIDを自律的に解析し、当該情報処理回路が次に必要とする少なくとも1つの前記データブロックBのアドレスを計算し、当該データブロックBを前記第三のメモリから前記第一のメモリもしくは前記第二のメモリへ転送し、続けて、以前に前記第三のメモリから前記第一もしくは前記第二のメモリへ転送した前記データブロックAもしくはBもしくはA及びBとは異なる前記データブロックCに含まれる少なくとも1つの前記頂点のIDを解析し、当該情報処理回路が次に必要とする少なくとも1つの前記データブロックDのアドレスを計算し、当該データブロックDを前記第三のメモリから前記第一もしくは前記第二のメモリへ転送し、以下同様に複数のデータブロックを前記第三のメモリから第一もしくは第二のメモリへ転送し、前記情報処理回路において、前記プレロード機能が実行されている前記データブロックの転送先とは異なる前記第一もしくは第二のメモリから、前記グラフデータを読み出し、前記処理命令に従って該グラフデータの処理を実行することを特徴とする情報処理装置。
本実施例の情報処理装置は、情報処理サブシステムと、メモリサブシステムと、これらを接続するネットワークスイッチとから構成されている。情報処理サブシステムは、複数の情報処理回路(CPU)と、各情報処理回路(CPU)に接続されたDRAMから構成されている。各情報処理回路(CPU)に接続されたメモリサブシステムは、第一のメモリと、第二のメモリと、第三のメモリと、第一のメモリと第二のメモリと第三のメモリ間でグラフデータの転送を制御するメモリコントローラから構成されている。第三のメモリは、第一のメモリ及び第二のメモリよりも、読み出し及び書き込みレイテンシが長い。
まず、本発明の情報処理装置を適用した第一の実施例に係るサーバー(SVR) 100の構成について、図1〜図2を用いて説明する。
図1に、本発明を適用した第一の実施の形態であるサーバー(SVR)100の構成例を示す。サーバー(SVR)100は、複数の情報処理サブシステムIPSS (IPSS(0)〜IPSS(m)) 110と、それら全てに接続されたネットワークスイッチ(Switch) 120と、複数のメモリサブシステムMSS (MSS(0)〜MSS(n)) 130とから構成される。サーバー(SVR)100は、通信ネットワークを介して外部記憶装置(Storage)150と接続されている。m、nは自然数である。なお、サーバー(SVR)100は、ユーザーインターフェースとして、キーボードやディスプレイ等の入出力手段(図示略)を保有している。
夫々の情報処理サブシステムIPSS 110は、情報処理回路(CPU) 111と、この情報処理回路(CP)に接続されたDRAM 112から構成される。情報処理サブシステムIPSS(0)〜IPSS(m)を構成する各情報処理回路(CPU)を、それぞれ情報処理回路CPU(0)〜CPU(m)と表す。各情報処理回路CPU(0)〜CPU(m)は、それぞれに1個以上のDRAMチップ112が接続されており、それぞれの情報処理回路と接続されたDRAMの間で互いにデータ通信を行う。
すなわち、情報処理回路CPU(0)は、固有の機能(プログラム)として、ユーザーインターフェースを介してグラフ処理に関する仕様を受け付ける機能、受け付けた仕様のグラフ演算処理を実行するために必要なデータを外部記憶装置150からサーバーに取り込む機能、各情報処理回路CPU(0)〜CPU(m)にグラフ演算処理のタスクを分散して処理させる機能、各情報処理回路CPU(0)〜CPU(m)にグラフ演算処理のために必要なデータを供給する機能、及び、分散処理されたグラフ処理の結果を取り纏め外部記憶装置150に記録しユーザーインターフェースを介して出力する機能等を備えている。
メモリサブシステムMSS 130は、メモリコントローラHyMC 131と、不揮発性メモリNVM (NVM(0)〜NVM(j)) 132と、DRAM (DRAM (0)〜DRAM(i)) 133とから構成される。i、jは自然数である。
メモリコントローラHyMC 131は、コマンドデータバッファCMDBF 1311と、メモリアクセス制御回路DMAC 1312と、データバッファDBF 1313と、アドレス変換テーブルATT 1314と、プレロード制御ブロックPCB 1315と、不揮発性メモリ制御回路NVMC (NVMC(0)〜NVMC(j)) 1316と、DRAM制御回路DRAMC (DRAMC(0)〜DRAMC(i)) 1317とから構成される。以下に各々について説明する。
プレロード制御ブロックPCB 1315は、データバッファDBF 1313、アドレス変換テーブルATT 1314、不揮発性メモリ制御回路NVMC(0)〜NVMC(j) 1316、及び、DRAM制御回路DRAMC(0)〜DRAMC(i) 1317と接続されており、それらの間で互いにデータ通信を行う。
次に、本発明の情報処理装置を適用した実施例に係る情報処理システムIPS について、図3〜図4を用いて説明する。
図3は、情報処理システムの一例として、情報処理サブシステムIPSS 110とそれに接続された1つのメモリサブシステムMSS 130とから構成される情報処理システムIPS(0) 200と、外部記憶装置150とを示したものである。以下に各々について説明する。
まず、図5〜図7を用いて、本発明のサーバーで取り扱うグラフの例とそのグラフデータのデータ形式の例を説明する。
図5は、本サーバーで取り扱うグラフの一例を示す図である。
ここで例として挙げるグラフは、グラフの頂点(Vertex)に各頂点を一意に特定する番号が割り当てられており、各頂点同士が一本のグラフの辺(Edge)によって直接繋がれている、もしくは繋がれていない、という2種類の関係性を持つこととする。
図7は、図5に示されたグラフにおける、頂点同士のつながりが表現可能なデータ形式の一つである、CSR(Compressed Sparse Row)形式を示す。CSR形式においては、グラフデータは、配列Aと配列Bによって表される。配列Aは、頂点番号の順に、それぞれの頂点が繋がっている頂点の番号を並べたものであり、配列Bは、配列Aの頂点番号の切り替わりの位置を表現するものである。
まず、図5におけるグラフにおいて、頂点番号1と繋がる頂点の番号は4、5、7、9であるため、図7に示される配列Aの初めに4、5、7、9が格納される。それらの数字に続いて、頂点2と繋がる頂点の番号5が配列Aに格納される。また、頂点の番号4、5、7、9、5が書かれた配列Aのみでは、頂点1と繋がる頂点の番号と頂点2と繋がる頂点の番号が切り替わる場所が分からない。そこで、配列Bには、配列Aにおいて頂点1と繋がる頂点の番号が開始する位置1と、頂点2と繋がる頂点の番号が開始する位置5とが格納される。
グラフ処理アルゴリズムの一例として、グラフ上のあるグラフ頂点から別のグラフ頂点までの、グラフ上での最短経路を求める問題を、幅優先探索アルゴリズムで処理した場合を挙げる。
ここでは、図5に示されているグラフが図7に示されるCSR形式で保存されている場合を考える。
以下、同様に配列A及び配列Bを次々と参照し、終点の17番の頂点(Goal)の一つ手前の頂点が参照された時点で、最短経路が判明し、このアルゴリズムは終了する。
<E.グラフ処理における本サーバーの動作>
(1)サーバーの動作の全体概要
まず、本サーバーがグラフ処理を行う際のサーバーの動作の概要を、図9〜図13を用いて説明する。なお、それぞれの動作の詳細は以下の(2)〜(6)において説明する。
メモリコントローラHyMCからのFin 1を受け、情報処理回路CPU(0)はグラフ処理(Graph analysis)を開始する(Start)。
情報処理回路CPUによるグラフ処理の間、グラフ処理の結果が必要に応じてメモリサブシステムに格納される。その際、グラフ処理の結果は一旦メモリサブシステム内のDRAM内にアドレスを付加して一定量保存され、まとめて不揮発性メモリに書き込みが行われる。
(2)グラフデータのダウンロード時の動作
グラフデータのダウンロード時における動作を、図9及び図13を用いて説明する。
(3−1)動作の全体概要
図14は、メモリコントローラHyMCによるグラフデータのプレロード動作の全体概要の一例を示す模式図である。
メモリコントローラHyMCによるグラフデータのプレロード動作は、情報処理回路CPUによるグラフ処理の前及びグラフ処理中行われ、(One cycle of preload)の繰り返しから構成される。
(3−2)プレロード処理の1サイクル分の動作の詳細
以下、図15を用いて、メモリコントローラによるグラフデータのプレロード動作の詳細を示す。図15は、図14のpreloadで示したプレロード処理の1サイクル分の動作(One cycle of preload)を示す模式図である。
グラフデータのプレロード処理の開始時、まずプレロード制御ブロックPCBは、データバッファDBFに保存されたデータを参照する(Ref 1)。
この参照によって、プレロード制御ブロックPCBは初めに必要となるグラフデータの一部分であるグラフデータブロック0の論理アドレスを特定する。
次に、プレロード制御ブロックPCBは、アドレス変換テーブルATTを参照する(Ref 2)。
この参照によって、プレロード制御ブロックPCBは初めに必要となるグラフデータブロック0の物理アドレスを特定する。
プレロード制御ブロックPCBは、初めに必要となるグラフデータブロック0の読み出し要求を不揮発性メモリ制御回路NVMCに送る(Req 1)。
プレロード制御ブロックPCBは、送られたデータの書き込み要求を、DRAM制御回路DRAMC(0)に送り(Req 2)、DRAM制御回路DRAMC(0)は送られた要求を基にDRAM(0)にグラフデータを保存する(Data 2)。
また、不揮発性メモリNVMはデータ転送サイズがページ単位もしくはセクター単位と決められているため、NVMから読み出したグラフデータが全て次に必要なグラフデータブロックであるとは限らない。このため図16に示されているように、プレロード制御ブロックPCBは、NVMからデータをページ単位もしくはセクター単位で読み出した後(Step 1)、必要に応じて読み出したデータを、CPUがメモリサブシステムへ要求するデータサイズ単位に分割する(Step 2)。分割されたデータのうち、CPUが必要としないものは削除する(del)。また、分割されたデータはそれぞれのデータに対応した論理アドレスが付加され(Step 3)、DRAMへ転送される(Step 4, 図15(Data 2)に対応)。
また、グラフデータをプレロードする際は、プレロード済み頂点番号リストを参照し、プレロード済みの頂点番号は、次に探索する深さの頂点番号を格納する配列に格納をしない。
(b) プレロード制御ブロックPCBはアドレス変換テーブルATTを参照(Ref 2)し、次に必要となるデータの物理アドレスを特定する。
(c) プレロード制御ブロックPCBは、次に必要となるグラフデータの読み出し要求を不揮発性メモリ制御回路NVMCに送る(Req 1)。
(d) 不揮発性メモリ制御回路NVMCは要求されたデータを不揮発性メモリNVMから読み出して、プレロード制御ブロックPCBに送る(Data 1)。
(e) プレロード制御ブロックPCBは送られたデータの書き込み要求をDRAM制御回路DRAMC 0に送る(Req 2)。
(f) DRAM制御回路DRAMCは送られた要求を基にDRAM 0にグラフデータを保存する(Data 2)。
(g) 必要に応じてDRAM に保存されたグラフデータを、各CPUによるデータ要求単位に分割し、次に必要なデータブロックを含む部分のみを抽出し、分割されたデータに論理アドレスを付加して、各CPUによるデータの参照順にDRAMに保存する(Data 2)。
(h) プレロード制御ブロックPCBはアドレス変換テーブルATTを更新する(Update 1)。
(i) プレロード制御ブロックPCBはデータ転送量をカウントする。
(j) プレロード制御ブロックPCBは、必要に応じて、データバッファDBFに保存されたグラフデータのプレロード処理を進めるために必要な情報を更新する(Update 2)。
図18及び図19は、グラフデータが複数のメモリサブシステムにまたがった際の動作の例を示す模式図である。
もしくは、情報処理回路CPU(0)〜CPU(m)は、グラフデータがまたがった際に必要なデータを削除するように、プレロード制御ブロックPCBに指示する(CMD 1)。指示を受けたプレロード制御ブロックPCBは、グラフデータがまたがった際に必要なデータを削除する(Delete 1)。
(4−1)グラフデータ読み出し動作の全体フロー
まず、情報処理回路CPUによるグラフデータの読み出し動作を説明する。
図21は、グラフデータの読み出し時におけるメモリコントローラHyMCの動作のフローチャートである。
まず、情報処理回路CPU(0)〜CPU(m)はグラフ処理において、グラフ処理において必要なグラフデータが格納されている不揮発性メモリを搭載するメモリサブシステムに対して、データ読み出し要求を行う(Step 1)。
DRAMの切り替え動作を、図22を用いて説明する。
グラフデータ読み出し動作(4−1)の間も、(3)のプレロード処理は並行して行われる。並行して行われるプレロード処理では、不揮発性メモリNVMから読み出したデータの格納先となるDRAM(左のDRAM 0)は、グラフデータ読み出し動作(4−1)において、情報処理回路CPUが読み出すグラフデータが格納されているDRAM(左のDRAM 1)とは異なる。異なるとは、同じDRAM chipの異なる物理領域でもよいし、異なるDRAM chip、異なるDIMMでもよい。
図23に、各情報処理回路における、グラフ処理の結果の書き込み動作のフローチャートの一例を示す。
プレロード制御ブロックPCBはコマンドバッファCMDBFを参照して、書き込みデータに論理アドレスを付加して(Step 2)、DRAM制御回路DRAMCへ書き込み要求を送る。
DRAM制御回路DRAMCはDRAMへ、論理アドレスが付加された書き込みデータを書き込む(Step 3)。
以上のようにして、DRAMに書き込まれたデータのサイズが不揮発性メモリの書き込み単位に達した時(Step 4のYes)、プレロード制御ブロックPCBはDRAM制御回路DRAMCへデータの読み出し要求を送る。DRAM制御回路DRAMCは、DRAMから要求されたデータをプレロード制御ブロックPCBへ転送する。
図24に、プレロード制御ブロックPCBが、不揮発性メモリからDRAMへのグラフデータ転送量を動的変化にさせるフローチャートの一例を示す。グラフ処理中にグラフデータ転送量を動的変化させる動作は、図24のStep 1からStep 3に示されている。
<F.実施の形態1に示される発明の効果のまとめ>(※請求項1に合わせて変更要)
以上説明したように実施の形態1の発明によって得られる主な効果は以下の通りである。
また、複数のメモリコントローラによって管理される複数の第三のメモリのチップにグラフデータが分散して存在していた場合においても、上記の高速なグラフ処理が可能となる。
110…情報処理サブシステム (IPSS(0) 〜IPSS(m))
111…情報処理回路 (CPU(0)〜CPU(m))
112…DRAM
120…ネットワークスイッチ (Switch)
130…メモリサブシステム MSS(0) 〜MSS(n)
131…メモリコントローラ (HyMC)
1311…コマンドデータバッファ (CMDBF)
1312…メモリアクセス制御回路 (DMAC)
1313…データバッファ (DBF)
1314…アドレス変換テーブル (ATT)
1315…プレロード制御ブロック (PCB)
1316…不揮発性メモリ制御回路 (NVMC(0) 〜NVMC(j))
1317…DRAM制御回路 (DRAMC(0) 〜DRAMC(i))
132…不揮発性メモリ (NVM(0)からNVM(j))
133…DRAM (DRAM (0)〜DRAM(i))
150…外部記憶装置 (Storage)
200…情報処理システム (IPS (0))
210…情報処理システム (IPS (0))
Edge…グラフのつながり(辺)
Vertex…グラフの頂点
Adr 0, Adr 1, Adr 2…グラフデータのアドレス
VTX 1, VTX 2, VTX 3…(それぞれ)頂点番号1、頂点番号2、頂点番号3。
Claims (14)
- 情報処理サブシステムと、該情報処理サブシステムとデータ通信を行うメモリサブシステムとを備えた情報処理装置であって、
前記情報処理サブシステムは、グラフ処理命令に従ってグラフの処理を行う情報処理回路を有し、
前記メモリサブシステムは、第一のメモリと、第二のメモリと、該第一及び第二のメモリよりも読み出し及び書き込みレイテンシが長い第三のメモリと、前記第一のメモリと前記第二のメモリと前記第三のメモリ間でデータ転送を制御するメモリコントローラとを有し、
前記グラフの処理の対象となるグラフデータは、グラフの各頂点に該各頂点を一意に特定するIDが割り当てられており、前記頂点の1つに割り当てられたIDが分かれば、該頂点と関係性を持つ他の頂点のIDがアドレス空間でどの場所にあるのか特定できるデータであり、複数のデータブロックから構成され、
前記データブロックは、前記1つの頂点のIDを前記メモリコントローラによって解析することで判明するアドレスに対応する全データもしくはデータの一部であり、その中に少なくとも前記1つの頂点のIDが記録されており、
前記メモリコントローラは、
前記第三のメモリに、処理の対象となる前記グラフデータを格納する機能と、
複数の前記データブロックを前記第三のメモリから前記第一もしくは前記第二のメモリへ転送するプレロード機能とを有し、
前記メモリコントローラは該プレロード機能により、
1つの前記データブロックAに含まれる少なくとも1つの前記頂点のIDを自律的に解析し、当該情報処理回路が次に必要とする少なくとも1つの前記データブロックBのアドレスを計算し、当該データブロックBを前記第三のメモリから前記第一のメモリもしくは前記第二のメモリへ転送し、
続けて、以前に前記第三のメモリから前記第一もしくは前記第二のメモリへ転送した前記データブロックAもしくはBもしくはA及びBとは異なる前記データブロックCに含まれる少なくとも1つの前記頂点のIDを解析し、当該情報処理回路が次に必要とする少なくとも1つの前記データブロックDのアドレスを計算し、当該データブロックDを前記第三のメモリから前記第一もしくは前記第二のメモリへ転送し、
以下同様に複数のデータブロックを前記第三のメモリから第一もしくは第二のメモリへ転送し、
前記情報処理回路において、前記プレロード機能が実行されている前記データブロックの転送先とは異なる前記第一もしくは第二のメモリから、前記グラフデータを読み出し、前記処理命令に従って該グラフデータの処理を実行することを特徴とする情報処理装置。 - 請求項1において、
前記メモリコントローラは、前記プレロード機能により、
前記データブロックと共に、該データブロックに対応するアドレスも前記第一もしくは第二のメモリへ転送する
ことを特徴とする情報処理装置。 - 請求項2において、
前記メモリコントローラは、
前記情報処理回路が要求した処理の対象となる前記グラフデータのアドレスと、前記情報処理回路のグラフデータ参照先の第一もしくは第二のメモリへ転送された前記データブロックに対応する前記アドレスを比較し、両者が一致するか否かを判定する機能を有する
ことを特徴とする情報処理装置。 - 請求項3において、
前記メモリコントローラは、
前記第三のメモリに格納された前記グラフデータのうち、前記第一もしくは第二のメモリに転送されたデータブロックと転送されていないデータブロックを区別する機能を有する
ことを特徴とする情報処理装置。 - 請求項3において、
前記メモリコントローラは、
前記第三のメモリから転送される前記データブロックの保存先を、前記第一のメモリから前記第二のメモリへ切り替える機能、及び前記第二のメモリから前記第一のメモリへ切り替える機能を有する
ことを特徴とする情報処理装置。 - 請求項3において、
前記メモリコントローラは、
前記情報処理回路によるグラフデータの参照先のメモリを前記第一のメモリから前記第二のメモリに切り替える機能、及び前記第二のメモリから前記第一のメモリに切り替える機能を有する
ことを特徴とする情報処理装置。 - 請求項3において、
前記情報処理回路から前記メモリコントローラに、該メモリコントローラが前記グラフデータの自律的な解析を行うために必要なデータやアルゴリズムを伝達する
ことを特徴とする情報処理装置。 - 請求項3において、
前記情報処理回路若しくは前記メモリコントローラは、
前記グラフデータのデータ形式が当該情報処理装置で取り扱うデータ形式と異なる場合は、当該情報処理装置で取り扱うデータ形式に変更する
ことを特徴とする情報処理装置。 - 請求項3において、
前記メモリコントローラは、
前記第三のメモリから読み出した前記グラフデータのうち、前記情報処理回路が前記処理の実行に必要とする部分を抽出し、抽出されたデータを前記第一のメモリ若しくは前記第二のメモリへ転送する機能を有する
ことを特徴とする情報処理装置。 - 請求項3において、
前記メモリコントローラは、
前記第三のメモリから読み出した前記グラフデータを、前記情報処理回路が前記メモリコントローラに要求するデータサイズ単位で、前記第一のメモリ若しくは前記第二のメモリへ転送する機能を有する
ことを特徴とする情報処理装置。 - 請求項3において、
前記メモリコントローラは、
前記情報処理回路から前記第三のメモリへのデータ書き込み要求があった場合、前記第一のメモリ若しくは前記第二のメモリに、書き込み要求のあったデータを、当該データのアドレスと共に書き込み、書き込まれたデータが一定のデータサイズに達したのち、当該データを当該データのアドレスと共にまとめて前記第三のメモリへ書き込む
ことを特徴とする情報処理装置。 - 請求項3において、
前記メモリコントローラは、前記情報処理回路による前記処理の実行前に行われる、前記第三のメモリから前記第一のメモリ若しくは前記第二のメモリへの前記グラフデータ転送終了を前記情報処理回路に通知する
ことを特徴とする情報処理装置。 - 請求項3において、
前記メモリコントローラは、
前記第一もしくは第二のメモリと前記第三のメモリの間で転送される単位時間当たりの前記グラフデータの転送量を計測し、
前記情報処理回路が処理する単位時間当たりの前記グラフデータの処理量を計測し、
前記メモリコントローラは、前記情報処理回路が処理する単位時間当たりの前記グラフデータの処理量と、前記第一もしくは第二のメモリと前記第三のメモリの間で転送される単位時間当たりの前記グラフデータの転送量の比較をし、該比較結果に基づき、前記第一もしくは第二のメモリと前記第三のメモリの間の前記グラフデータの転送量を変化させる
ことを特徴とする情報処理装置。 - 請求項13おいて、
前記メモリコントローラは、前記比較結果に基づき、前記情報処理回路が過去実行したものと同じ処理命令を再度実行した場合に、前記第一もしくは第二のメモリと前記第三のメモリの間で転送する単位時間当たりの前記グラフデータの転送量を最適化する
ことを特徴とする情報処理装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012130641A JP5931595B2 (ja) | 2012-06-08 | 2012-06-08 | 情報処理装置 |
US13/875,448 US9099171B2 (en) | 2012-06-08 | 2013-05-02 | Information processor |
US14/799,795 US9268486B2 (en) | 2012-06-08 | 2015-07-15 | Information processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012130641A JP5931595B2 (ja) | 2012-06-08 | 2012-06-08 | 情報処理装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016088829A Division JP6100952B2 (ja) | 2016-04-27 | 2016-04-27 | 情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013254419A JP2013254419A (ja) | 2013-12-19 |
JP5931595B2 true JP5931595B2 (ja) | 2016-06-08 |
Family
ID=49716223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012130641A Expired - Fee Related JP5931595B2 (ja) | 2012-06-08 | 2012-06-08 | 情報処理装置 |
Country Status (2)
Country | Link |
---|---|
US (2) | US9099171B2 (ja) |
JP (1) | JP5931595B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015116173A2 (en) | 2014-01-31 | 2015-08-06 | Hewlett-Packard Development Company, L.P. | Unifying memory controller |
US10698878B2 (en) | 2015-03-06 | 2020-06-30 | Hewlett Packard Enterprise Development Lp | Graph update flush to a shared memory |
US9460791B1 (en) * | 2015-12-08 | 2016-10-04 | Inphi Corporation | Data clock synchronization in hybrid memory modules |
JP6611679B2 (ja) * | 2016-06-30 | 2019-11-27 | 株式会社日立製作所 | データ生成方法及び計算機システム |
US10540398B2 (en) * | 2017-04-24 | 2020-01-21 | Oracle International Corporation | Multi-source breadth-first search (MS-BFS) technique and graph processing system that applies it |
US10373658B2 (en) * | 2017-06-30 | 2019-08-06 | SK Hynix Inc. | Semiconductor modules |
CN108804631A (zh) * | 2018-05-31 | 2018-11-13 | 北京字节跳动网络技术有限公司 | 表情符号存储方法、装置、计算机可读存储介质和终端 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0996537A (ja) * | 1995-09-29 | 1997-04-08 | Matsushita Electric Ind Co Ltd | 経路探索装置 |
US20050253858A1 (en) * | 2004-05-14 | 2005-11-17 | Takahide Ohkami | Memory control system and method in which prefetch buffers are assigned uniquely to multiple burst streams |
JP2006260170A (ja) * | 2005-03-17 | 2006-09-28 | Seiko Epson Corp | 文書画像表示装置及び文書画像表示方法をコンピュータに実行させるためのプログラム |
US20070276989A1 (en) * | 2006-05-29 | 2007-11-29 | Sandisk Il Ltd. | Predictive data-loader |
JP2008257317A (ja) * | 2007-04-02 | 2008-10-23 | Fuji Xerox Co Ltd | 情報処理装置、情報処理システム及びプログラム |
JP2011170669A (ja) * | 2010-02-19 | 2011-09-01 | Oki Semiconductor Co Ltd | メモリ書き込みシステム及び方法 |
US8731835B2 (en) * | 2012-05-25 | 2014-05-20 | Xerox Corporation | System and method for trip plan crowdsourcing using automatic fare collection data |
-
2012
- 2012-06-08 JP JP2012130641A patent/JP5931595B2/ja not_active Expired - Fee Related
-
2013
- 2013-05-02 US US13/875,448 patent/US9099171B2/en not_active Expired - Fee Related
-
2015
- 2015-07-15 US US14/799,795 patent/US9268486B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20150317086A1 (en) | 2015-11-05 |
US20130332667A1 (en) | 2013-12-12 |
US9099171B2 (en) | 2015-08-04 |
JP2013254419A (ja) | 2013-12-19 |
US9268486B2 (en) | 2016-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5931595B2 (ja) | 情報処理装置 | |
TWI750176B (zh) | 對記憶體通道執行軟體調訓的電子裝置、其記憶體通道調訓方法及其系統 | |
US20150378888A1 (en) | Controller, flash memory apparatus, and method for writing data into flash memory apparatus | |
US11379381B2 (en) | Main memory device having heterogeneous memories, computer system including the same, and data management method thereof | |
CN104580437A (zh) | 一种云存储客户端及其高效数据访问方法 | |
WO2015162752A1 (ja) | データベース演算部を備えるフラッシュモジュール、及びストレージ装置 | |
CN111143234A (zh) | 存储设备、包括这种存储设备的系统及其操作方法 | |
CN113127177B (zh) | 处理装置及分布式处理系统 | |
WO2015114829A1 (ja) | 情報処理装置 | |
US11327929B2 (en) | Method and system for reduced data movement compression using in-storage computing and a customized file system | |
CN112214162A (zh) | 存储装置和控制方法 | |
JP6582721B2 (ja) | 制御装置、ストレージシステム、及び制御プログラム | |
JP2015158910A (ja) | ラップ読出しから連続読出しを行うメモリサブシステム | |
KR101363422B1 (ko) | 비휘발성 메모리 시스템 | |
WO2015087651A1 (ja) | メモリの使用可能期間を延ばすための装置、プログラム、記録媒体および方法 | |
CN106557277B (zh) | 磁盘阵列的读方法及装置 | |
JP6100952B2 (ja) | 情報処理装置 | |
CN116401043A (zh) | 一种计算任务的执行方法和相关设备 | |
US11029878B2 (en) | Information processing system | |
WO2015118623A1 (ja) | 情報処理装置 | |
US20180329756A1 (en) | Distributed processing system, distributed processing method, and storage medium | |
JP7067256B2 (ja) | データ転送装置およびデータ転送方法 | |
US20150089264A1 (en) | Processing apparatus and processing method | |
JP6200100B2 (ja) | 計算機システム | |
JPWO2021079535A5 (ja) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20140908 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150306 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160127 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160216 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160311 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20160405 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160427 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5931595 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |