JP5404947B2 - Storage device - Google Patents

Storage device Download PDF

Info

Publication number
JP5404947B2
JP5404947B2 JP2013064768A JP2013064768A JP5404947B2 JP 5404947 B2 JP5404947 B2 JP 5404947B2 JP 2013064768 A JP2013064768 A JP 2013064768A JP 2013064768 A JP2013064768 A JP 2013064768A JP 5404947 B2 JP5404947 B2 JP 5404947B2
Authority
JP
Japan
Prior art keywords
memory
packet
node
memory node
nodes
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
Application number
JP2013064768A
Other languages
Japanese (ja)
Other versions
JP2013145592A5 (en
JP2013145592A (en
Inventor
光介 辰村
敦寛 木下
弘剛 西野
正道 鈴木
義史 西
孝生 丸亀
貴宏 栗田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2013064768A priority Critical patent/JP5404947B2/en
Publication of JP2013145592A publication Critical patent/JP2013145592A/en
Publication of JP2013145592A5 publication Critical patent/JP2013145592A5/en
Application granted granted Critical
Publication of JP5404947B2 publication Critical patent/JP5404947B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System (AREA)

Description

本発明の実施形態は、転送機能を有するメモリノードを相互に接続したストレージ装置及びデータ処理方法に関わり、例えばストレージ装置におけるデータパケットの転送制御方式に関わる。   Embodiments described herein relate generally to a storage apparatus and a data processing method in which memory nodes having a transfer function are connected to each other, for example, a data packet transfer control system in the storage apparatus.

容量を容易に拡張できるストレージ装置として、転送機能を有するメモリノードを相互に接続したストレージ装置が考えられる。各メモリノードは、自身のメモリノード宛のデータパケットを受信した場合は読み出しもしくは書き込みなどの所定の処理を行う。一方、各メモリノードは、自身のメモリノード宛でないパケットを受信した場合は、受信パケットを適切な他のメモリノードに転送する。各メモリノードによって適切な転送が繰り返されることにより、データパケットは目的のメモリノードに到達できる。   As a storage device whose capacity can be easily expanded, a storage device in which memory nodes having a transfer function are connected to each other can be considered. Each memory node performs a predetermined process such as reading or writing when receiving a data packet addressed to its own memory node. On the other hand, when each memory node receives a packet that is not addressed to its own memory node, it transfers the received packet to another appropriate memory node. By repeating appropriate transfer by each memory node, the data packet can reach the target memory node.

各メモリノードは、メモリと、転送機能を有するコントローラ、複数のポートを有している。各メモリノードは、パケットの転送先を示した経路指定表(ルーティングテーブル)を維持・管理し、それに従ってパケットの転送を行う。経路指定表を管理すれば、物理的な位置に関わらず任意の論理的なパケット転送ネットワークを構築することが可能である。   Each memory node has a memory, a controller having a transfer function, and a plurality of ports. Each memory node maintains and manages a routing table (routing table) indicating the transfer destination of the packet, and transfers the packet accordingly. If the routing table is managed, it is possible to construct an arbitrary logical packet transfer network regardless of the physical position.

しかし、容量拡張のため新たなメモリノードを追加する場合、もしくは故障等の理由により既存のメモリノードを除去する場合には、各メモリノードの経路指定表を更新する必要があり、その手続きは煩雑である。経路指定表の維持・管理コストは、特にメモリノード数が大規模になった場合に膨大になり、それが容量の拡張性に制限を課すことになる。   However, when adding a new memory node for capacity expansion or removing an existing memory node due to a failure or the like, it is necessary to update the routing table of each memory node, and the procedure is complicated. It is. The routing table maintenance and management costs become enormous, especially when the number of memory nodes becomes large, which imposes restrictions on capacity scalability.

また、転送機能を有するメモリノードを相互に接続したストレージ装置おいて、複数のデータを複数のメモリノードに書き込み・読み出しを行う場合において、複数のデータを同一配線で同時に通信させることは一般に困難であるため、データの転送待機が生じやすい。このようなデータの転送待機は、データの書き込み・読み出しに必要な時間の増加を招く。   In addition, in a storage apparatus in which memory nodes having a transfer function are connected to each other, it is generally difficult to simultaneously communicate a plurality of data through the same wiring when writing / reading a plurality of data to / from a plurality of memory nodes. Therefore, there is a tendency to wait for data transfer. Such data transfer waiting increases the time required for data writing / reading.

米国特許出願公開第2009/0216924号明細書US Patent Application Publication No. 2009/0216924

メモリノードが経路指定表を管理する必要がなく、効率的にパケットを転送することができるストレージ装置、及びデータ処理方法を提供する。   There is provided a storage device and a data processing method capable of efficiently transferring a packet without requiring a memory node to manage a routing table.

一実施態様のストレージ装置は、第1の入力ポートと、第1の不揮発性メモリと、前記第1の不揮発性メモリを制御する第1の制御部と、を含む第1のメモリノードと、前記第1のメモリノードと接続される第の入力ポートと、第2の不揮発性メモリと、前記第2の不揮発性メモリを制御する第2の制御部と、いずれか1つは前記第1の入力ポートと接続される複数の第1の出力ポートと、を含む第2のメモリノードと、前記複数の第1の出力ポートのうちの1つに接続される第の入力ポートを含み、前記第1乃至第2のメモリノードとは異なる複数の第3のメモリノードとを具備するストレージ装置であって、前記第2のメモリノードは、前記ストレージ装置内における前記第2のメモリノードの位置情報である第1の位置情報を記憶し、前記第1の制御部は、送信先アドレスと送信元アドレスを少なくとも含むパケットを前記第2のメモリノードへ出力し、前記第の入力ポートは、前記第1のメモリノードから出力された前記パケットを受信し、前記第2の制御部は、前記パケット内の前記送信先アドレスと前記送信元アドレス、前記第1の位置情報を少なくとも含む情報に基づいて、少なくとも前記複数の第3のメモリノード及び前記第1のメモリノードの中から前記パケットの出力先を決定するように構成されているA storage apparatus according to an embodiment includes a first memory node including a first input port, a first nonvolatile memory, and a first control unit that controls the first nonvolatile memory; A second input port connected to the first memory node, a second nonvolatile memory, a second control unit for controlling the second nonvolatile memory, and any one of the first input port A second memory node including a plurality of first output ports connected to the input port; a third input port connected to one of the plurality of first output ports; A storage device comprising a plurality of third memory nodes different from the first to second memory nodes, wherein the second memory node is position information of the second memory node in the storage device Memorize the first position information , The first control unit outputs including at least a packet destination address and the source address to the second memory node, said second input port, the output from the first memory node The second control unit receives a packet, and the second control unit includes at least the plurality of third memory nodes based on information including at least the transmission destination address, the transmission source address, and the first position information in the packet. and is configured to determine an output destination of said packet from said first memory node.

第1実施形態のストレージ装置の構成を示す図である。It is a figure which shows the structure of the storage apparatus of 1st Embodiment. 第1実施形態におけるメモリノードの構成を示す図である。It is a figure which shows the structure of the memory node in 1st Embodiment. 第1実施形態におけるメモリノードの配置例を示す図である。It is a figure which shows the example of arrangement | positioning of the memory node in 1st Embodiment. 第1実施形態のストレージ装置における転送アルゴリズム1を示す図である。It is a figure which shows the transfer algorithm 1 in the storage apparatus of 1st Embodiment. 第1実施形態における転送アルゴリズム1によるパケットの転送過程を示す図である。It is a figure which shows the transfer process of the packet by the transfer algorithm 1 in 1st Embodiment. 第1実施形態における転送アルゴリズム1によるパケットの転送過程を示す図である。It is a figure which shows the transfer process of the packet by the transfer algorithm 1 in 1st Embodiment. 第1実施形態における転送アルゴリズム1によるパケットの転送過程のフロー図である。It is a flowchart of the transfer process of the packet by the transfer algorithm 1 in 1st Embodiment. 第1実施形態における転送アルゴリズム1によるパケットの転送過程の具体例を示す図である。It is a figure which shows the specific example of the transfer process of the packet by the transfer algorithm 1 in 1st Embodiment. 第1実施形態のストレージ装置を含むストレージシステムの構成を示す図である。It is a figure which shows the structure of the storage system containing the storage apparatus of 1st Embodiment. 第1実施形態のストレージシステムにおける書き込み動作を示す図である。It is a figure which shows the write-in operation | movement in the storage system of 1st Embodiment. 第1実施形態のストレージシステムにおける読み出し動作を示す図である。It is a figure which shows the read-out operation | movement in the storage system of 1st Embodiment. 第1実施形態のストレージ装置におけるメモリノードの自動アドレス取得方式を示す図である。It is a figure which shows the automatic address acquisition system of the memory node in the storage apparatus of 1st Embodiment. 第2実施形態のストレージ装置における転送アルゴリズム2を示す図である。It is a figure which shows the transfer algorithm 2 in the storage apparatus of 2nd Embodiment. 第2実施形態における転送アルゴリズム2によるパケットの転送過程を示す図である。It is a figure which shows the transfer process of the packet by the transfer algorithm 2 in 2nd Embodiment. 第2実施形態における転送アルゴリズム2によるパケットの転送過程を示す図である。It is a figure which shows the transfer process of the packet by the transfer algorithm 2 in 2nd Embodiment. 第2実施形態における転送アルゴリズム2によるパケットの転送過程のフロー図である。It is a flowchart of the transfer process of the packet by the transfer algorithm 2 in 2nd Embodiment. 第2実施形態における転送アルゴリズム2によるパケットの転送過程の具体例を示す図である。It is a figure which shows the specific example of the transfer process of the packet by the transfer algorithm 2 in 2nd Embodiment. 転送アルゴリズム1によるパケットの転送過程の具体例を示す図である。It is a figure which shows the specific example of the transfer process of the packet by the transfer algorithm 1. FIG. 転送アルゴリズム2によるパケットの転送過程の具体例を示す図である。It is a figure which shows the specific example of the transfer process of the packet by the transfer algorithm 2. FIG. 第3実施形態のストレージ装置における転送アルゴリズム3を示す図である。It is a figure which shows the transfer algorithm 3 in the storage apparatus of 3rd Embodiment. 第3実施形態における転送アルゴリズム3によるパケットの転送過程を示す図である。It is a figure which shows the transfer process of the packet by the transfer algorithm 3 in 3rd Embodiment. 第3実施形態における転送アルゴリズム3によるパケットの転送過程を示す図である。It is a figure which shows the transfer process of the packet by the transfer algorithm 3 in 3rd Embodiment. 第3実施形態における転送アルゴリズム3によるパケットの転送過程のフロー図である。It is a flowchart of the transfer process of the packet by the transfer algorithm 3 in 3rd Embodiment. 第3実施形態における転送アルゴリズム3によるパケットの転送過程の具体例を示す図である。It is a figure which shows the specific example of the transfer process of the packet by the transfer algorithm 3 in 3rd Embodiment. 第3実施形態のストレージ装置における転送アルゴリズム4を示す図である。It is a figure which shows the transfer algorithm 4 in the storage apparatus of 3rd Embodiment. 第3実施形態のストレージ装置における転送アルゴリズム5を示す図である。It is a figure which shows the transfer algorithm 5 in the storage apparatus of 3rd Embodiment. 第4実施形態のストレージシステムの構成を示す図である。It is a figure which shows the structure of the storage system of 4th Embodiment. 第4実施形態のストレージシステムにおけるバイパス転送発生率と渋滞発生率を示す図である。It is a figure which shows the bypass transfer incidence and the traffic congestion incidence in the storage system of 4th Embodiment. 第5実施形態のストレージ装置の構成を示す図である。It is a figure which shows the structure of the storage apparatus of 5th Embodiment. 第6実施形態のストレージシステムの構成を示す図である。It is a figure which shows the structure of the storage system of 6th Embodiment. 第6実施形態のストレージシステムの他の構成例を示す図である。It is a figure which shows the other structural example of the storage system of 6th Embodiment. 第7実施形態のストレージシステムの構成を示す図である。It is a figure which shows the structure of the storage system of 7th Embodiment. 第7実施形態のストレージシステムに対する比較例を示す図である。It is a figure which shows the comparative example with respect to the storage system of 7th Embodiment. 第7実施形態におけるパケットのヘッダー部に記録されたアドレス情報を示す図である。It is a figure which shows the address information recorded on the header part of the packet in 7th Embodiment. 第7実施形態のストレージシステムにおける書き込み動作を示す図である。It is a figure which shows write-in operation | movement in the storage system of 7th Embodiment. 第7実施形態のストレージシステムの他の構成例を示す図である。It is a figure which shows the other structural example of the storage system of 7th Embodiment. 第8実施形態のストレージシステムの構成を示す図である。It is a figure which shows the structure of the storage system of 8th Embodiment. 第8実施形態のストレージシステムに対する比較例を示す図である。It is a figure which shows the comparative example with respect to the storage system of 8th Embodiment. 第8実施形態におけるパケットのヘッダー部に記録されたアドレス情報を示す図である。It is a figure which shows the address information recorded on the header part of the packet in 8th Embodiment. 第8実施形態のストレージシステムにおける書き込み動作を示す図である。It is a figure which shows write-in operation | movement in the storage system of 8th Embodiment. 第8実施形態のストレージシステムの他の構成例を示す図である。It is a figure which shows the other structural example of the storage system of 8th Embodiment. 第8実施形態のストレージシステムの他の構成例を示す図である。It is a figure which shows the other structural example of the storage system of 8th Embodiment. 第9実施形態のストレージシステムの構成を示す図である。It is a figure which shows the structure of the storage system of 9th Embodiment. ストレージシステムにおいて転送待機が発生する読み出し動作を示す図である。FIG. 10 is a diagram illustrating a read operation in which a transfer standby occurs in the storage system. ストレージシステムにおいて転送待機が発生する読み出し動作を示す図である。FIG. 10 is a diagram illustrating a read operation in which a transfer standby occurs in the storage system. ストレージシステムにおいて転送待機が発生する読み出し動作を示す図である。FIG. 10 is a diagram illustrating a read operation in which a transfer standby occurs in the storage system. 第9実施形態のストレージシステムにおいて転送待機の発生を回避する読み出し動作を示す図である。It is a figure which shows the read-out operation | movement which avoids generation | occurrence | production of transfer waiting in the storage system of 9th Embodiment. 第9実施形態のストレージシステムにおいて転送待機の発生を回避する読み出し動作を示す図である。It is a figure which shows the read-out operation | movement which avoids generation | occurrence | production of transfer waiting in the storage system of 9th Embodiment. 第9実施形態のストレージシステムにおいて転送待機の発生を回避する読み出し動作を示す図である。It is a figure which shows the read-out operation | movement which avoids generation | occurrence | production of transfer waiting in the storage system of 9th Embodiment. 第9実施形態のストレージシステムにおいて転送待機の発生を回避する読み出し動作を示す図である。It is a figure which shows the read-out operation | movement which avoids generation | occurrence | production of transfer waiting in the storage system of 9th Embodiment. 第9実施形態のストレージシステムにおいて転送待機の発生を回避する読み出し動作を示す図である。It is a figure which shows the read-out operation | movement which avoids generation | occurrence | production of transfer waiting in the storage system of 9th Embodiment. 第9実施形態のストレージシステムにおいて転送待機の発生を回避する読み出し動作の他の例を示す図である。It is a figure which shows the other example of the read-out operation | movement which avoids generation | occurrence | production of transfer waiting in the storage system of 9th Embodiment. 第9実施形態のストレージシステムにおいて転送待機の発生を回避する読み出し動作の他の例を示す図である。It is a figure which shows the other example of the read-out operation | movement which avoids generation | occurrence | production of transfer waiting in the storage system of 9th Embodiment. 第9実施形態のストレージシステムにおいて転送待機の発生を回避する読み出し動作の他の例を示す図である。It is a figure which shows the other example of the read-out operation | movement which avoids generation | occurrence | production of transfer waiting in the storage system of 9th Embodiment. 第9実施形態のストレージシステムにおいて転送待機の発生を回避する読み出し動作の他の例を示す図である。It is a figure which shows the other example of the read-out operation | movement which avoids generation | occurrence | production of transfer waiting in the storage system of 9th Embodiment. 第9実施形態のストレージシステムにおいて転送待機の発生を回避する読み出し動作の他の例を示す図である。It is a figure which shows the other example of the read-out operation | movement which avoids generation | occurrence | production of transfer waiting in the storage system of 9th Embodiment. 第9実施形態のストレージシステムにおいて転送待機の発生を回避する読み出し動作の他の例を示す図である。It is a figure which shows the other example of the read-out operation | movement which avoids generation | occurrence | production of transfer waiting in the storage system of 9th Embodiment. 第9実施形態のストレージシステムにおいて転送待機の発生を回避する読み出し動作の他の例を示す図である。It is a figure which shows the other example of the read-out operation | movement which avoids generation | occurrence | production of transfer waiting in the storage system of 9th Embodiment. 第9実施形態のストレージシステムにおいて転送待機の発生を回避する読み出し動作の他の例を示す図である。It is a figure which shows the other example of the read-out operation | movement which avoids generation | occurrence | production of transfer waiting in the storage system of 9th Embodiment. 第10実施形態のストレージシステムの構成を示す図である。It is a figure which shows the structure of the storage system of 10th Embodiment. ストレージシステムにおいて転送待機が発生する書き込み動作を示す図である。FIG. 10 is a diagram illustrating a write operation in which a transfer standby occurs in a storage system. ストレージシステムにおいて転送待機が発生する書き込み動作を示す図である。FIG. 10 is a diagram illustrating a write operation in which a transfer standby occurs in a storage system. ストレージシステムにおいて転送待機が発生する書き込み動作を示す図である。FIG. 10 is a diagram illustrating a write operation in which a transfer standby occurs in a storage system. ストレージシステムにおいて転送待機が発生する書き込み動作を示す図である。FIG. 10 is a diagram illustrating a write operation in which a transfer standby occurs in a storage system. ストレージシステムにおいて転送待機が発生する書き込み動作を示す図である。FIG. 10 is a diagram illustrating a write operation in which a transfer standby occurs in a storage system. ストレージシステムにおいて転送待機が発生する書き込み動作を示す図である。FIG. 10 is a diagram illustrating a write operation in which a transfer standby occurs in a storage system. 第10実施形態のストレージシステムにおいて転送待機の発生を回避する書き込み動作を示す図である。It is a figure which shows the write-in operation | movement which avoids generation | occurrence | production of transfer waiting in the storage system of 10th Embodiment. 第10実施形態のストレージシステムにおいて転送待機の発生を回避する書き込み動作を示す図である。It is a figure which shows the write-in operation | movement which avoids generation | occurrence | production of transfer waiting in the storage system of 10th Embodiment. 第10実施形態のストレージシステムにおいて転送待機の発生を回避する書き込み動作を示す図である。It is a figure which shows the write-in operation | movement which avoids generation | occurrence | production of transfer waiting in the storage system of 10th Embodiment. 第10実施形態のストレージシステムにおいて転送待機の発生を回避する書き込み動作を示す図である。It is a figure which shows the write-in operation | movement which avoids generation | occurrence | production of transfer waiting in the storage system of 10th Embodiment. 第10実施形態のストレージシステムにおいて転送待機の発生を回避する書き込み動作を示す図である。It is a figure which shows the write-in operation | movement which avoids generation | occurrence | production of transfer waiting in the storage system of 10th Embodiment.

以下、図面を参照して実施形態について説明する。なお、以下の説明において、同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。   Hereinafter, embodiments will be described with reference to the drawings. In the following description, components having the same function and configuration are denoted by the same reference numerals, and redundant description will be given only when necessary.

[第1実施形態]
第1実施形態は、転送機能を有する複数のメモリノードを相互に接続したストレージ装置を備え、各メモリノードが効率的にデータパケットを転送する転送方式を有する。
[First Embodiment]
The first embodiment includes a storage apparatus in which a plurality of memory nodes having a transfer function are connected to each other, and has a transfer method in which each memory node efficiently transfers a data packet.

[1]ストレージ装置の構成
図1は、第1実施形態のストレージ装置の構成を示す図であり、複数のメモリノードの物理的な配置法と、それに対するアドレスの割り当て法の一例を示す。
[1] Configuration of Storage Device FIG. 1 is a diagram showing a configuration of a storage device according to the first embodiment, and shows an example of a physical arrangement method of a plurality of memory nodes and an address allocation method corresponding thereto.

図示するように、ストレージ装置10はデータ転送機能を有するメモリノード11を複数備える。各々のメモリノード11は、正方格子の格子点に置かれる。格子点の座標である格子座標(x,y)に位置するメモリノードの論理アドレスは、位置座標と一致して(x,y)とする。すなわち、メモリノード11の論理アドレスは、物理アドレス(格子座標(x,y))に一致する。   As illustrated, the storage apparatus 10 includes a plurality of memory nodes 11 having a data transfer function. Each memory node 11 is placed at a lattice point of a square lattice. The logical address of the memory node located at the lattice coordinate (x, y) that is the coordinate of the lattice point coincides with the position coordinate and is (x, y). That is, the logical address of the memory node 11 matches the physical address (lattice coordinate (x, y)).

各メモリノード11は、4つの入力ポート12と4つの出力ポート13を持つ。各メモリノードは、隣接する4つのメモリノードと入力ポート12及び出力ポート13を介して相互に接続される。具体的には、対向する2つの隣接したメモリノードは、互いの入力ポート12と出力ポート13とが接続される。   Each memory node 11 has four input ports 12 and four output ports 13. Each memory node is connected to four adjacent memory nodes via the input port 12 and the output port 13. Specifically, the input port 12 and the output port 13 of each other are connected to two adjacent memory nodes facing each other.

図2に、各メモリノード11の構成を示す。メモリノード11は、入力ポート12、入力ポートバッファ12A、出力ポート13、出力ポートバッファ13A、セレクタ14、パケットコントローラ15、メモリ16、メモリコントローラ17、MPU18、及びローカルバス19を有する。   FIG. 2 shows the configuration of each memory node 11. The memory node 11 includes an input port 12, an input port buffer 12A, an output port 13, an output port buffer 13A, a selector 14, a packet controller 15, a memory 16, a memory controller 17, an MPU 18, and a local bus 19.

入力ポート12に入力されたパケットは、入力ポートバッファ12Aに一時的に記憶される。セレクタ14には入力ポートバッファ12Aからパケットが入力され、またパケットコントローラ15から制御信号が入力される。セレクタ14は、制御信号に従い、入力されたパケットからいずれかのパケットを選択して出力ポートバッファ13Aに出力する。出力ポートバッファ13Aは、セレクタ14から出力されたパケットを一時的に記憶すると共に、出力ポート13に出力する。パケットコントローラ15は、セレクタ14の出力を制御する。パケットとは、送信先アドレス及び送信元アドレスを少なくとも含むヘッダー部と、データ部とからなる転送データの単位である。   A packet input to the input port 12 is temporarily stored in the input port buffer 12A. The selector 14 receives a packet from the input port buffer 12 </ b> A and receives a control signal from the packet controller 15. The selector 14 selects one of the input packets according to the control signal and outputs the selected packet to the output port buffer 13A. The output port buffer 13A temporarily stores the packet output from the selector 14 and outputs it to the output port 13. The packet controller 15 controls the output of the selector 14. The packet is a unit of transfer data including a header part including at least a transmission destination address and a transmission source address, and a data part.

メモリ16は、データを記憶する複数のメモリセルを有する。メモリ16は、例えばNAND型フラッシュメモリ等からなる。メモリコントローラ17は、メモリ16への書き込み、読み出し、及び消去の動作を制御する。MPU18は、メモリノード内で必要な演算処理を行う。ローカルバス19は、入力ポートバッファ12A、パケットコントローラ15、メモリコントローラ17、及びMPU18間を相互に接続し、これらの間の信号伝送を行う。   The memory 16 has a plurality of memory cells that store data. The memory 16 is composed of, for example, a NAND flash memory. The memory controller 17 controls writing, reading and erasing operations to the memory 16. The MPU 18 performs necessary arithmetic processing in the memory node. The local bus 19 interconnects the input port buffer 12A, the packet controller 15, the memory controller 17, and the MPU 18, and performs signal transmission among them.

メモリノード11が受信したパケットは、入力ポート12を介して入力ポートバッファ12Aに格納される。パケットコントローラ15は、パケットが含む送信先(宛先)アドレスとそのメモリノード自身(以下、自ノード)のアドレスの2つの情報に基づいて、受信したパケットが自ノード宛であるか否かを判断する。   The packet received by the memory node 11 is stored in the input port buffer 12A via the input port 12. The packet controller 15 determines whether or not the received packet is addressed to the own node based on two pieces of information, that is, the destination (destination) address included in the packet and the address of the memory node itself (hereinafter referred to as the own node). .

もし、自ノード宛であれば、パケットコントローラ15は、自ノードのメモリ16に対する書き込み、読み出し、もしくはその他所定の処理を行う。もし、自ノード宛でなければ、パケットの送信先アドレスと自ノードのアドレスの2つの情報に基づいて、パケットを転送する隣接するメモリノードを決定し、セレクタ14により対応する出力ポートバッファ13Aにパケットを出力する。   If it is addressed to the own node, the packet controller 15 performs writing, reading, or other predetermined processing to the memory 16 of the own node. If not addressed to the own node, an adjacent memory node to which the packet is to be transferred is determined based on the two information of the packet transmission destination address and the address of the own node, and the selector 14 sends the packet to the corresponding output port buffer 13A. Is output.

図1に示したストレージ装置では、正方格子の格子点にメモリノードが配置されたが、本実施形態はこの例に限定されるものではない。これを図3を参照して、例を挙げて説明する。   In the storage device shown in FIG. 1, memory nodes are arranged at lattice points of a square lattice, but the present embodiment is not limited to this example. This will be described with reference to FIG.

図3(a)に示す構成が図1に示した例に相当する。より一般的には、本実施形態において、各メモリノードは格子点に配置される。格子とは、幾何学においては平面上の点のうち、x座標、y座標がともに整数である点を言う。ここでは、x方向とy方向の単位ベクトル、eとeの長さが異なる場合、即ちx方向とy方向の繰り返し周期が異なる場合も含む。この例を図3(b)に示す。 The configuration shown in FIG. 3A corresponds to the example shown in FIG. More generally, in the present embodiment, each memory node is arranged at a lattice point. A lattice refers to a point on the plane where both x and y coordinates are integers in geometry. Here, it includes the case where the unit vectors in the x direction and the y direction, the lengths of ex and e y are different, that is, the case where the repetition period in the x direction and the y direction are different. An example of this is shown in FIG.

また、x方向とy方向の単位ベクトルが直交しない場合、即ちx軸とy軸が直交しない場合も含む。この例を図3(c)に示す。また、メモリノードの相互接続数は4とは限らない。相互接続数が6の例を図3(d)に示す。   In addition, the case where the unit vectors in the x direction and the y direction are not orthogonal, that is, the case where the x axis and the y axis are not orthogonal is included. An example of this is shown in FIG. Also, the number of memory node interconnections is not necessarily four. An example in which the number of interconnections is 6 is shown in FIG.

本実施形態においては、格子の定義に関わらず、いずれの場合においても、格子座標(x,y)に位置するメモリノードの論理アドレスは、位置座標と一致して(x,y)とする。すなわち、メモリノードの論理アドレスは、物理アドレス(格子座標(x,y))に一致する。   In this embodiment, regardless of the definition of the lattice, in any case, the logical address of the memory node located at the lattice coordinate (x, y) coincides with the position coordinate and is (x, y). That is, the logical address of the memory node matches the physical address (lattice coordinate (x, y)).

また、より一般的には、本実施形態においては、各格子点に2以上のメモリノードの組が配置される場合を含む。各格子点に2つのメモリノードが配置される例を、図3(e)に示す。この例では、格子点(1,0)などに2つのメモリノードが配置される。これを、(1,0,0)と(1,0,1)とする。即ち、1つのメモリノードの座標は(x,y,z)の3つの整数の組によって表される。この場合においても、ノード座標(x,y,z)に位置するメモリノードの論理アドレスは、位置座標と一致して(x,y,z)とする。すなわち、メモリノードの論理アドレスは、物理アドレス(格子座標(x,y,z))に一致する。さらに、格子点が配置される平面が三次元的に曲げられたり、もしくは折りたたまれた場合も含む。   More generally, the present embodiment includes a case where a set of two or more memory nodes is arranged at each lattice point. An example in which two memory nodes are arranged at each lattice point is shown in FIG. In this example, two memory nodes are arranged at a lattice point (1, 0) or the like. These are (1, 0, 0) and (1, 0, 1). That is, the coordinates of one memory node are represented by a set of three integers (x, y, z). Even in this case, the logical address of the memory node located at the node coordinates (x, y, z) coincides with the position coordinates and is (x, y, z). That is, the logical address of the memory node matches the physical address (lattice coordinates (x, y, z)). Furthermore, it includes the case where the plane on which the lattice points are arranged is bent or folded three-dimensionally.

隣接したメモリノードとは、図3(a)〜図3(e)において以下のような位置関係にあるメモリノードを指す。図3(a)〜図3(c)において、例えば自ノードが座標(1,1)に存在する場合、自ノードに隣接したメモリノードは座標(0,1)、(1,2)、(2,1)、(1,0)に存在する4つのメモリノードを指す。また図3(d)において、例えば自ノードが座標(1,1)に存在する場合、自ノードに隣接したメモリノードは座標(0,1)、(0,2)、(1,2)、(2,1)、(2,0)、(1,0)に存在する6つのメモリノードを指す。さらに、図3(e)において、例えば自ノードが座標(1,0,1)に存在する場合、自ノードに隣接したメモリノードとは座標(0,1,0)、(1,1,0)、(1,0,0)に存在する3つのメモリノードを指す。   Adjacent memory nodes refer to memory nodes having the following positional relationship in FIGS. 3 (a) to 3 (e). 3A to 3C, for example, when the own node exists at the coordinates (1, 1), the memory nodes adjacent to the own node are coordinates (0, 1), (1, 2), ( 2, 1) and (1, 0). 3D, for example, when the own node exists at the coordinates (1, 1), the memory nodes adjacent to the own node are coordinates (0, 1), (0, 2), (1, 2), Six memory nodes existing at (2, 1), (2, 0), and (1, 0). Further, in FIG. 3E, for example, when the own node exists at the coordinates (1, 0, 1), the memory nodes adjacent to the own node are the coordinates (0, 1, 0), (1, 1, 0). ), Three memory nodes existing at (1, 0, 0).

[2]ストレージ装置の転送アルゴリズム1
転送アルゴリズム1では、パケットが含む送信先アドレス、及び自ノードのアドレスの2つの情報に基づいて、転送先のメモリノードを決定する。
[2] Storage device transfer algorithm 1
In the transfer algorithm 1, the memory node of the transfer destination is determined based on two pieces of information of the transmission destination address included in the packet and the address of the own node.

図4は、第1実施形態のストレージ装置における転送アルゴリズム1を示す図である。図4を参照して、パケットの送信先アドレスと自ノードのアドレスの2つの情報に基づいて、転送先の隣接ノードを決定する方法の一例を示す。これを転送アルゴリズム1とする。   FIG. 4 is a diagram showing a transfer algorithm 1 in the storage apparatus of the first embodiment. Referring to FIG. 4, an example of a method for determining a transfer destination adjacent node based on two pieces of information, that is, a packet transmission destination address and an address of the own node will be described. This is referred to as transfer algorithm 1.

パケットを受け取ったメモリノードは、パケットの送信先ノード(to)と自ノード(PP: Present position)との距離が最も小さくなる隣接するメモリノードにパケットを転送する。   The memory node that has received the packet transfers the packet to an adjacent memory node where the distance between the packet destination node (to) and its own node (PP: Present position) is the smallest.

図5A〜図5Dを参照して、転送アルゴリズム1に従うパケットの転送過程の具体例を示す。   With reference to FIGS. 5A to 5D, a specific example of a packet transfer process according to the transfer algorithm 1 will be described.

図5Aに示すように、送信先ノード(to)のアドレスを(xto, yto)、自ノード(PP)のアドレスを(xpp, ypp)とし、さらにdx=xto−xpp、dy=yto−yppとする。転送先を示す方向として、図5Bに示すように、yが増加する方向をN(North)、xが増加する方向をE(East)、yが減少する方向をS(South)、xが減少する方向をW(West)とする。 As shown in FIG. 5A, the address of the destination node (to) is (x to , y to ), the address of its own node (PP) is (x pp , y pp ), and dx = x to −x pp , Let dy = y to −y pp . As shown in FIG. 5B, the direction indicating the transfer destination is N (North) when y increases, E (East) when x increases, S (South) when y decreases, and x decreases. The direction to perform is W (West).

aに対してその絶対値をあらわす記号を|a|として、|dx|>|dy|ならばx方向へ、|dx|<|dy|ならy方向へ進む。x方向へ進む場合は、dx>0ならEへ、dx<0ならWに転送する。同様に、y方向へ進む場合は、dy>0ならNへ、dy<0ならSに転送する。   If a symbol representing the absolute value of a is | a |, | dx |> | dy | proceeds in the x direction, and if | dx | <| dy |, proceeds in the y direction. When proceeding in the x direction, transfer to E if dx> 0, and to W if dx <0. Similarly, when proceeding in the y direction, transfer to N if dy> 0, and to S if dy <0.

図5Cに、ストレージ装置における転送アルゴリズム1のフローを示す。転送アルゴリズム1はパケットコントローラ15に記憶されており、パケットコントローラ15により実行される。   FIG. 5C shows a flow of the transfer algorithm 1 in the storage apparatus. The transfer algorithm 1 is stored in the packet controller 15 and executed by the packet controller 15.

まず、パケットコントローラ15は、dx=xto−xpp、dy=yto−yppを算出する(ステップS1)。続いて、パケットコントローラ15は、dxが0であるか否かを判定する(ステップS2)。dxが0であるとき、yto>yppが成り立つか否かを判定する(ステップS3)。yto>yppが成り立つとき、パケットをNへ転送する(ステップS4)。一方、yto>yppが成り立たないとき、パケットをSへ転送する(ステップS5)。 First, the packet controller 15 calculates dx = x to −x pp and dy = y to −y pp (step S1). Subsequently, the packet controller 15 determines whether dx is 0 (step S2). When dx is 0, it is determined whether y to > y pp is satisfied (step S3). When y to > y pp holds, the packet is transferred to N (step S4). On the other hand, when y to > y pp does not hold, the packet is transferred to S (step S5).

次に、ステップS2においてdxが0でないとき、パケットコントローラ15は、dyが0であるか否かを判定する(ステップS6)。dyが0であるとき、xto>xppが成り立つか否かを判定する(ステップS7)。xto>xppが成り立つとき、パケットをEへ転送する(ステップS8)。一方、xto>xppが成り立たないとき、パケットをWへ転送する(ステップS9)。 Next, when dx is not 0 in step S2, the packet controller 15 determines whether dy is 0 (step S6). When dy is 0, it is determined whether x to > x pp is satisfied (step S7). When x to > x pp holds, the packet is transferred to E (step S8). On the other hand, when x to > x pp does not hold, the packet is transferred to W (step S9).

次に、ステップS6においてdyが0でないとき、すなわちdxとdyが0でないとき、パケットコントローラ15は、dx>0かつdy>0が成り立つか否かを判定する(ステップS10)。dx>0かつdy>0が成り立つとき、dx>dyが成り立つか否かを判定する(ステップS11)。dx>dyが成り立つとき、パケットをEへ転送する(ステップS12)。一方、dx>dyが成り立たないとき、パケットをNへ転送する(ステップS13)。   Next, when dy is not 0 in step S6, that is, when dx and dy are not 0, the packet controller 15 determines whether dx> 0 and dy> 0 are satisfied (step S10). When dx> 0 and dy> 0 hold, it is determined whether dx> dy holds (step S11). When dx> dy holds, the packet is transferred to E (step S12). On the other hand, when dx> dy does not hold, the packet is transferred to N (step S13).

次に、ステップS10においてdx>0かつdy>0が成り立たないとき、パケットコントローラ15は、dx<0かつdy>0が成り立つか否かを判定する(ステップS14)。dx<0かつdy>0が成り立つとき、(−1)・dx>dyが成り立つか否かを判定する(ステップS15)。(−1)・dx>dyが成り立つとき、パケットをWへ転送する(ステップS16)。一方、(−1)・dx>dyが成り立たないとき、パケットをNへ転送する(ステップS17)。   Next, when dx> 0 and dy> 0 do not hold in step S10, the packet controller 15 determines whether dx <0 and dy> 0 hold (step S14). When dx <0 and dy> 0 hold, it is determined whether (−1) · dx> dy holds (step S15). (-1) When dx> dy holds, the packet is transferred to W (step S16). On the other hand, when (−1) · dx> dy does not hold, the packet is transferred to N (step S17).

次に、ステップS14においてdx<0かつdy>0が成り立たないとき、パケットコントローラ15は、dx<0かつdy<0が成り立つか否かを判定する(ステップS18)。dx<0かつdy<0が成り立つとき、dx>dyが成り立つか否かを判定する(ステップS19)。dx>dyが成り立つとき、パケットをSへ転送する(ステップS20)。一方、dx>dyが成り立たないとき、パケットをWへ転送する(ステップS21)。   Next, when dx <0 and dy> 0 do not hold in step S14, the packet controller 15 determines whether dx <0 and dy <0 hold (step S18). When dx <0 and dy <0 hold, it is determined whether dx> dy holds (step S19). When dx> dy holds, the packet is transferred to S (step S20). On the other hand, when dx> dy does not hold, the packet is transferred to W (step S21).

次に、ステップS18においてdx<0かつdy<0が成り立たないとき、パケットコントローラ15は、dx>(−1)・dyが成り立つか否かを判定する(ステップS22)。dx>(−1)・dyが成り立つとき、パケットをEへ転送する(ステップS23)。一方、dx>(−1)・dyが成り立たないとき、パケットをSへ転送する(ステップS24)。   Next, when dx <0 and dy <0 do not hold in step S18, the packet controller 15 determines whether dx> (− 1) · dy holds (step S22). When dx> (− 1) · dy holds, the packet is transferred to E (step S23). On the other hand, when dx> (− 1) · dy does not hold, the packet is transferred to S (step S24).

以上の処理により、メモリノードに入力されたパケットは、送信先ノード(to)と自ノード(PP)との距離が最も小さくなるような隣接するメモリノードに転送される。   Through the above processing, the packet input to the memory node is transferred to an adjacent memory node where the distance between the transmission destination node (to) and the own node (PP) is minimized.

図5Dに、パケットの転送過程の具体例を示す。転送アルゴリズム1においては|dx|=|dy|となるまでは|dx|>|dy|ならばx方向へ、|dx|<|dy|ならy方向へ連続して進み、|dx|=|dy|となった後はx方向とy方向へ交互に進む。   FIG. 5D shows a specific example of the packet transfer process. In the transfer algorithm 1, until | dx | = | dy |, if | dx |> | dy |, proceed in the x direction, and if | dx | <| dy |, continue in the y direction, and | dx | = | After reaching dy |, the process proceeds alternately in the x and y directions.

例えば、ケース1では、dx=0かつdy>0であるため、送信先ノード(to)に到達するまでNへ進む。ケース4では、dx>0かつdy>0であり、dx<dyであるため、dx=dyとなるまでNへ連続して進み、dx=dyとなった後はEとNへ交互に進む。   For example, in case 1, since dx = 0 and dy> 0, the process proceeds to N until the destination node (to) is reached. In case 4, since dx> 0 and dy> 0 and dx <dy, the process proceeds continuously to N until dx = dy, and after dx = dy, the process proceeds alternately to E and N.

[3]ストレージ装置を含むストレージシステム
図6は、第1実施形態のストレージ装置を含むストレージシステムの構成を示す図である。
[3] Storage System Including Storage Device FIG. 6 is a diagram showing a configuration of a storage system including the storage device of the first embodiment.

ストレージシステム20は、ストレージ装置をクライアントが使用するためのシステムであり、以下のような構成を備える。   The storage system 20 is a system for a client to use a storage apparatus, and has the following configuration.

ストレージ装置10はゲートウェイサーバを介してクライアントと接続される。ストレージ装置10内部の通信規格とゲートウェイサーバ21A,21Bの通信規格が異なる場合は、両者の間にアダプタ22A,22Bをそれぞれ設置しても良い。   The storage device 10 is connected to a client via a gateway server. When the communication standard in the storage device 10 and the communication standard of the gateway servers 21A and 21B are different, the adapters 22A and 22B may be installed between the two.

詳述すると、ストレージ装置10の外周部に配置されたメモリノード(1,4)は、アダプタ22A、ゲートウェイサーバ21Aを介してクライアント31Aと接続される。同様に、メモリノード(1,1)は、アダプタ22B、ゲートウェイサーバ21Bを介してクライアント31B1,31B2と接続される。なお、“メモリノード(x,y)”は、アドレス(x,y)のメモリノードであることを表す。以降も同様である。   More specifically, the memory nodes (1, 4) arranged on the outer periphery of the storage apparatus 10 are connected to the client 31A via the adapter 22A and the gateway server 21A. Similarly, the memory node (1, 1) is connected to the clients 31B1 and 31B2 via the adapter 22B and the gateway server 21B. “Memory node (x, y)” represents a memory node at address (x, y). The same applies thereafter.

ゲートウェイサーバ21A,21Bは、例えばコンピュータから構成され、ストレージ装置10内部のメモリノード11と同じ規約に基づいてアドレスを持つ。図6では、ゲートウェイサーバ21Aはアドレス(0,4)を持ち、ゲートウェイサーバ21Bはアドレス(0,1)を持つ。   The gateway servers 21A and 21B are composed of computers, for example, and have addresses based on the same rules as the memory node 11 inside the storage apparatus 10. In FIG. 6, the gateway server 21A has an address (0, 4), and the gateway server 21B has an address (0, 1).

次に、ストレージシステムにおける書き込み動作を説明する。   Next, a write operation in the storage system will be described.

図7は、ストレージ装置10にクライアントがファイルを書き込む手続きを示す。ここでは、クライアント31Aがストレージ装置10にファイルを書き込む場合を述べる。   FIG. 7 shows a procedure for a client to write a file to the storage apparatus 10. Here, a case where the client 31A writes a file to the storage apparatus 10 will be described.

クライアント31Aは、ファイルとファイルIDをゲートウェイサーバ21Aに送信する((1)参照)。ファイルIDは、ファイルを一意に特定できる識別子である。ファイルIDとしては、\\strage_system \home \cliantA \file1.txtといった所定のファイルシステムにおけるフルパスのファイル名を使うことができる。   The client 31A transmits the file and the file ID to the gateway server 21A (see (1)). The file ID is an identifier that can uniquely identify a file. As the file ID, a full path file name in a predetermined file system such as \\ strage_system \ home \ cliantA \ file1.txt can be used.

次に、ゲートウェイサーバ21Aは、ファイルを規定サイズのデータパケットに分割し、各パケットにパケットIDを割り振る。続いて、ファイルIDと、分割されたパケットのパケットIDをファイルテーブルに書き込む((2)参照)。パケットIDは、パケットを一意に特定できる識別子である。パケットIDとしては、・・・\file1.txt~1、・・・\file1.txt~2というように、「ファイルID+連続する番号」を割り当てることができる。   Next, the gateway server 21A divides the file into data packets of a prescribed size and assigns a packet ID to each packet. Subsequently, the file ID and the packet ID of the divided packet are written in the file table (see (2)). The packet ID is an identifier that can uniquely identify the packet. As the packet ID, “file ID + consecutive number” can be assigned such as... \ File1.txt ~ 1, ... \ file1.txt ~ 2.

次に、ゲートウェイサーバ21Aは、パケットIDの情報に基づき、そのパケットを書き込むメモリノードのアドレス(以下、書き込みノードアドレス)を決定する((3)参照)。この際、大規模分散ファイルシステムで使用されるコンシステントハッシング(文献1参照)と呼ばれるノード決定手法を使っても良い。コンシステントハッシングは、ノードアドレスのハッシュ値、およびパケットIDのハッシュ値の両方を使って、書き込みアドレスを決定する点に特徴がある。   Next, the gateway server 21A determines an address of a memory node (hereinafter referred to as a write node address) to which the packet is written based on the packet ID information (see (3)). At this time, a node determination method called consistent hashing (see Document 1) used in a large-scale distributed file system may be used. Consistent hashing is characterized in that the write address is determined using both the hash value of the node address and the hash value of the packet ID.

[文献1]:丸山不二夫/首藤一幸編、「雲の世界の向こうをつかむクラウドの技術」、株式会社アスキー・メディアワークス、2009年11月6日、p.88、ISBN978-4-04-868064-6
次に、ゲートウェイサーバ21Aは、書き込みアドレスを送信先アドレス、ゲートウェイサーバ21Aのアドレスを送信元アドレスとして、書き込みパケットをストレージ装置10に送信する((4)、(5)参照)。
[Reference 1]: Fujio Maruyama / Kazuyuki Shudo, “Cloud technology to grab beyond the cloud world”, ASCII Media Works, Inc., November 6, 2009, p.88, ISBN978-4-04-868064 -6
Next, the gateway server 21A transmits the write packet to the storage device 10 using the write address as the transmission destination address and the address of the gateway server 21A as the transmission source address (see (4) and (5)).

メモリノード(1,4)に送信されたパケットは、ストレージ装置10内で転送アルゴリズム1に従って適切な転送が繰り返されることにより、送信先アドレスのメモリノードに到達する((6)参照)。目的のメモリノードでは、受け取ったパケットを自ノードのメモリ16に書き込む((7)参照)。その後、書き込み完了パケットをゲートウェイサーバ21Aへ返信する((8)参照)。   The packet transmitted to the memory node (1, 4) reaches the memory node at the destination address by repeating appropriate transfer in the storage apparatus 10 according to the transfer algorithm 1 (see (6)). The target memory node writes the received packet in the memory 16 of its own node (see (7)). Thereafter, a write completion packet is returned to the gateway server 21A (see (8)).

次に、ストレージシステムにおける読み出し動作を説明する。   Next, a read operation in the storage system will be described.

図8は、ストレージ装置10からクライアントがファイルを読み出す手続きを示す。ここでは、クライアント31Aがストレージ装置10からファイルを読み出す場合を述べる。   FIG. 8 shows a procedure for a client to read a file from the storage apparatus 10. Here, a case where the client 31A reads a file from the storage apparatus 10 will be described.

クライアント31Aは、読み出し要求(ファイルID)をゲートウェイサーバ21Aに送信する((1)参照)。   The client 31A transmits a read request (file ID) to the gateway server 21A (see (1)).

ゲートウェイサーバ21Aは、ファイルテーブルからファイルIDに対応するパケットIDを取得する((2)参照)。続いて、ゲートウェイサーバ21Aは、パケットIDの情報に基づき、読み出しを行うメモリノードのアドレス(以下、読み出しノードアドレス)を決定する((3)参照)。この際、大規模分散ファイルシステムで使用されるコンシステントハッシングと呼ばれるノード決定手法を使っても良い。   The gateway server 21A acquires a packet ID corresponding to the file ID from the file table (see (2)). Subsequently, the gateway server 21A determines an address of a memory node to be read (hereinafter referred to as a read node address) based on the packet ID information (see (3)). At this time, a node determination method called consistent hashing used in a large-scale distributed file system may be used.

次に、ゲートウェイサーバ21Aは、読み出しノードアドレスを送信先アドレス、ゲートウェイサーバ21Aのアドレスを送信元アドレスとして、読み出しパケットをストレージ装置10に送信する((4)、(5)参照)。   Next, the gateway server 21A transmits the read packet to the storage device 10 using the read node address as the transmission destination address and the gateway server 21A as the transmission source address (see (4) and (5)).

メモリノード(1,4)に送信されたパケットは、ストレージ装置10内で転送アルゴリズム1に従って適切な転送が繰り返されることにより、送信先アドレスのメモリノードに到達する((6)参照)。目的のメモリノードでは、読み出しパケットに従い、自ノードのメモリ16から目的のデータを読み出す((7)参照)。その後、読み出したデータをデータパケットとしてゲートウェイサーバ21Aに返信する((8)参照)。   The packet transmitted to the memory node (1, 4) reaches the memory node at the destination address by repeating appropriate transfer in the storage apparatus 10 according to the transfer algorithm 1 (see (6)). The target memory node reads the target data from the memory 16 of its own node according to the read packet (see (7)). Thereafter, the read data is returned to the gateway server 21A as a data packet (see (8)).

図6に示したシステムにおいては、書き込みデータのランダマイズ処理(Rand処理)、書き込みデータへの誤り訂正符号(ECC:error-correcting code)の付与、及びECCを用いた読み出しデータの誤り検出および訂正の機能(ECC機能)をゲートウェイサーバが実施してよい。この場合、各メモリノードのメモリコントローラはランダマイズ処理とECC機能を持つ必要がない。さらに、メモリノード間の通信の際にECC処理を実施する必要がない。このため、メモリノード一つ当たりのコストを低減することが可能となる。   In the system shown in FIG. 6, randomization processing (Rand processing) of write data, addition of error-correcting code (ECC) to write data, and error detection and correction of read data using ECC are performed. The function (ECC function) may be performed by the gateway server. In this case, the memory controller of each memory node does not need to have a randomization process and an ECC function. Further, there is no need to perform ECC processing during communication between memory nodes. For this reason, the cost per memory node can be reduced.

[4]ストレージ装置の拡張性
ストレージ装置に新たなメモリノードを追加する際の方式について説明する。
[4] Extensibility of storage apparatus A method for adding a new memory node to the storage apparatus will be described.

図9は、ストレージ装置に新たなメモリノードを追加した際の自動アドレス取得方式を示す。   FIG. 9 shows an automatic address acquisition method when a new memory node is added to the storage apparatus.

本実施形態のストレージ装置10においては、格子座標(x,y)に位置するメモリノードの論理アドレスは位置座標と一致して(x,y)とするため、追加するメモリノードは隣接ノードにアドレスを問い合わせることにより、自ノードのアドレスを簡易に割り出すことができる。   In the storage apparatus 10 of this embodiment, since the logical address of the memory node located at the lattice coordinate (x, y) coincides with the position coordinate to be (x, y), the added memory node addresses the adjacent node. Can be used to easily determine the address of the own node.

例えば、追加するメモリノードがW方向にある隣接ノードにアドレスを問い合わせる場合、隣接ノードのアドレスを(x,y)とすると、追加ノードのアドレスは(x+1,y)となる。同様に、N,E,Sにある隣接ノード(x,y)に問い合わせた場合、自ノードのアドレスはそれぞれ(x,y−1),(x−1,y),(x,y+1)となる。   For example, when the memory node to be added inquires of an adjacent node in the W direction about the address, if the address of the adjacent node is (x, y), the address of the additional node is (x + 1, y). Similarly, when an inquiry is made to the adjacent nodes (x, y) in N, E, and S, the addresses of the own nodes are (x, y-1), (x-1, y), (x, y + 1) and Become.

図9に示した場合においては、メモリノード(4,4)のE方向に新しいメモリノードを追加した状況を例示している。追加するメモリノードは、toとfromがnoneであるaddress_requestパケットをW方向にある隣接ノード(4,4)に送信する。address_requestパケットを受信したメモリノード(4,4)は、fromを自ノードアドレスとし、toを(5,4)としたaddress_answerパケットをE方向にあるメモリノードの出力ポートバッファにセットする。追加ノードは、address_answerパケットを受信することにより、自ノードのアドレスが、(5,4)であることを割り出すことができる。   In the case shown in FIG. 9, a situation is shown in which a new memory node is added in the E direction of the memory node (4, 4). The memory node to be added transmits an address_request packet in which to and from are none to the adjacent nodes (4, 4) in the W direction. The memory node (4, 4) that has received the address_request packet sets an address_answer packet with from as its own node address and to as (5, 4) in the output port buffer of the memory node in the E direction. The additional node can determine that the address of its own node is (5, 4) by receiving the address_answer packet.

また、別の方式として、手動アドレス設定方式も考えられる。手動アドレス設定方式では、ストレージ装置10の運用者が予め追加するメモリノードのアドレスを割り出し、それをプリセットしてから、新規のメモリノードを追加する。   As another method, a manual address setting method is also conceivable. In the manual address setting method, the operator of the storage apparatus 10 determines the address of a memory node to be added in advance, presets it, and then adds a new memory node.

前述した自動アドレス取得方式は、各メモリノードのパケットコントローラがAddress_requestパケットに対して回答する機能を有することが必要である。このため、パケットコントローラ1つ当たりのコストが高価になる傾向がある。一方、追加するメモリノードのアドレスをプリセットする必要がないため、メモリノードを追加する時の手続きが簡易化され、運用コストを低下させることができる。   The automatic address acquisition method described above needs to have a function for the packet controller of each memory node to respond to the Address_request packet. For this reason, the cost per packet controller tends to be expensive. On the other hand, since it is not necessary to preset the address of the memory node to be added, the procedure for adding the memory node is simplified and the operation cost can be reduced.

以上説明したように第1実施形態によれば、メモリノードの論理的なアドレスと物理的な位置(物理アドレス)が一致するため、各メモリノードが経路指定表を管理する必要のない効率的なデータ転送方式を実現することができる。このため、ストレージ装置の拡張性に優れる、すなわちストレージ装置にメモリノードを容易に追加することが可能である。   As described above, according to the first embodiment, since the logical address of the memory node matches the physical position (physical address), it is not necessary for each memory node to manage the routing table. A data transfer method can be realized. For this reason, the expandability of the storage apparatus is excellent, that is, it is possible to easily add a memory node to the storage apparatus.

[第2実施形態]
第2実施形態のストレージ装置について説明する。第2実施形態は、第1実施形態が有する転送アルゴリズム1と異なる転送アルゴリズム2を有する。転送アルゴリズム2では、パケットが含む送信先アドレス及び送信元アドレス、自ノードのアドレスの3つの情報に基づいて、転送先のメモリノードを決定する。なお、このストレージ装置は、図1及び図2と同様な構成を有するため、記載を省略する。
[Second Embodiment]
A storage apparatus according to the second embodiment will be described. The second embodiment has a transfer algorithm 2 that is different from the transfer algorithm 1 of the first embodiment. In the transfer algorithm 2, the memory node of the transfer destination is determined based on the three information of the transmission destination address and the transmission source address included in the packet and the address of the own node. Since this storage device has the same configuration as that shown in FIGS. 1 and 2, description thereof is omitted.

[1]ストレージ装置の転送アルゴリズム2
図10は、第2実施形態のストレージ装置における転送アルゴリズム2を示す図である。図10を参照して、パケットの送信先アドレス及び送信元アドレス、自ノードのアドレスの3つの情報に基づいて、転送先の隣接ノードを決定する方法の一例を示す。これを転送アルゴリズム2とする。
[1] Storage device transfer algorithm 2
FIG. 10 is a diagram illustrating a transfer algorithm 2 in the storage apparatus according to the second embodiment. Referring to FIG. 10, an example of a method for determining a transfer destination adjacent node based on three pieces of information of a packet transmission destination address, a transmission source address, and an address of the own node will be described. This is referred to as transfer algorithm 2.

図10に示すように、送信先ノード(to)と送信元ノード(from)を結ぶ直線で区切られる2つの領域のどちらに自ノード(PP)が存在するかを判断し、その領域に割り当てられた方向の隣接するメモリノードにパケットを転送する。   As shown in FIG. 10, it is determined in which of the two areas separated by a straight line connecting the transmission destination node (to) and the transmission source node (from) the own node (PP) exists and assigned to that area. Transfer the packet to adjacent memory nodes in the specified direction.

図11A〜図11Dを参照して、転送アルゴリズム2に従うパケットの転送過程の具体例を示す。   A specific example of a packet transfer process according to transfer algorithm 2 will be described with reference to FIGS. 11A to 11D.

図11Aに示すように、送信先ノード(to)のアドレスを(xto, yto)、送信元ノード(from)のアドレスを(xfrom, yfrom)、自ノード(PP)のアドレスを(xpp, ypp)とする。さらに、dx=xto−xfrom、dy=yto−yfrom、Dx=xpp−xfrom、Dy=ypp−yfromとする。転送先を示す方向として、図11Bに示すように、yが増加する方向をN、xが増加する方向をE、yが減少する方向をS、xが減少する方向をWとする。 As shown in FIG. 11A, the address of the destination node (to) is (x to , y to ), the address of the source node (from) is (x from , y from ), and the address of its own node (PP) is ( x pp , y pp ). Further, dx = x to −x from , dy = y to −y from , Dx = x pp −x from , and Dy = y pp −y from . As shown in FIG. 11B, N indicates a direction in which y increases, E indicates a direction in which x increases, S indicates a direction in which y decreases, and W indicates a direction in which x decreases.

y=(dx/dy)・xという送信先ノード(to)と送信元ノード(from)を結ぶ直線の式に基づき、Dyと(dy/dx)・Dxのどちらが大きいかを比較することで、その直線で区切られる2つの領域のどちらに自ノード(PP)が存在しているかを判断する。   Based on the equation of a straight line connecting the destination node (to) and the source node (from), y = (dx / dy) · x, and comparing which of Dy and (dy / dx) · Dx is larger, It is determined in which of the two areas separated by the straight line the own node (PP) exists.

dx>0かつdy>0の場合を例に転送方向の割り当て例を説明する。Dyと(dy/dx)・Dxを比較した場合に、Dyが(dy/dx)・Dxよりも大きくなる領域をA領域、もう一方の領域をB領域とする。転送において、A領域の第一優先方向にはEを割り当て、B領域の第一優先方向にはNを割り当てる。転送アルゴリズム2においては、送信先ノード(to)と送信元ノード(from)を結ぶ直線に沿ってパケットが進むように転送が行われる。   An example of assigning the transfer direction will be described by taking the case of dx> 0 and dy> 0 as an example. When Dy is compared with (dy / dx) · Dx, an area where Dy is larger than (dy / dx) · Dx is an A area, and the other area is a B area. In the transfer, E is assigned to the first priority direction of the A area, and N is assigned to the first priority direction of the B area. In the transfer algorithm 2, transfer is performed so that the packet proceeds along a straight line connecting the transmission destination node (to) and the transmission source node (from).

図11Cに、ストレージ装置における転送アルゴリズム2のフローを示す。転送アルゴリズム2はパケットコントローラ15に記憶されており、パケットコントローラ15により実行される。   FIG. 11C shows a flow of transfer algorithm 2 in the storage apparatus. The transfer algorithm 2 is stored in the packet controller 15 and is executed by the packet controller 15.

まず、パケットコントローラ15は、dx=xto−xfrom、dy=yto−yfrom、Dx=xpp−xfrom、Dy=ypp−yfromを算出する(ステップS31)。続いて、パケットコントローラ15は、dxが0であるか否かを判定する(ステップS32)。dxが0であるとき、yto>yppが成り立つか否かを判定する(ステップS33)。yto>yppが成り立つとき、パケットをNへ転送する(ステップS34)。一方、yto>yppが成り立たないとき、パケットをSへ転送する(ステップS35)。 First, the packet controller 15 calculates dx = x to −x from , dy = y to −y from , Dx = x pp −x from , and Dy = y pp −y from (step S31). Subsequently, the packet controller 15 determines whether dx is 0 (step S32). When dx is 0, it is determined whether or not y to > y pp is satisfied (step S33). When y to > y pp holds, the packet is transferred to N (step S34). On the other hand, when y to > y pp does not hold, the packet is transferred to S (step S35).

次に、ステップS32においてdxが0でないとき、パケットコントローラ15は、dyが0であるか否かを判定する(ステップS36)。dyが0であるとき、xto>xppが成り立つか否かを判定する(ステップS37)。xto>xppが成り立つとき、パケットをEへ転送する(ステップS38)。一方、xto>xppが成り立たないとき、パケットをWへ転送する(ステップS39)。 Next, when dx is not 0 in step S32, the packet controller 15 determines whether dy is 0 (step S36). When dy is 0, it is determined whether x to > x pp is satisfied (step S37). When x to > x pp holds, the packet is transferred to E (step S38). On the other hand, when x to > x pp does not hold, the packet is transferred to W (step S39).

次に、ステップS36においてdyが0でないとき、すなわちdxとdyが0でないとき、パケットコントローラ15は、Dy・dx>dy・Dxが成り立つか否かを判定する(ステップS40)。Dy・dx>dy・Dxが成り立つとき、dx>0かつdy>0が成り立つか否かを判定する(ステップS41)。dx>0かつdy>0が成り立つとき、パケットをEへ転送する(ステップS42)。一方、dx>0かつdy>0が成り立たないとき、dx<0かつdy>0が成り立つか否かを判定する(ステップS43)。dx<0かつdy>0が成り立つとき、パケットをNへ転送する(ステップS44)。   Next, when dy is not 0 in step S36, that is, when dx and dy are not 0, the packet controller 15 determines whether or not Dy · dx> dy · Dx is satisfied (step S40). When Dy · dx> dy · Dx holds, it is determined whether dx> 0 and dy> 0 hold (step S41). When dx> 0 and dy> 0 hold, the packet is transferred to E (step S42). On the other hand, when dx> 0 and dy> 0 do not hold, it is determined whether dx <0 and dy> 0 hold (step S43). When dx <0 and dy> 0 hold, the packet is transferred to N (step S44).

次に、ステップS43においてdx<0かつdy>0が成り立たないとき、dx<0かつdy<0が成り立つか否かを判定する(ステップS45)。dx<0かつdy<0が成り立つとき、パケットをWへ転送する(ステップS46)。dx<0かつdy<0が成り立たないとき、パケットをSへ転送する(ステップS47)。   Next, when dx <0 and dy> 0 do not hold in step S43, it is determined whether dx <0 and dy <0 hold (step S45). When dx <0 and dy <0 hold, the packet is transferred to W (step S46). When dx <0 and dy <0 do not hold, the packet is transferred to S (step S47).

次に、ステップS40においてDy・dx>dy・Dxが成り立たないとき、dx>0かつdy>0が成り立つか否かを判定する(ステップS48)。dx>0かつdy>0が成り立つとき、パケットをNへ転送する(ステップS49)。dx>0かつdy>0が成り立たないとき、dx<0かつdy>0が成り立つか否かを判定する(ステップS50)。dx<0かつdy>0が成り立つとき、パケットをWへ転送する(ステップS51)。dx<0かつdy>0が成り立たないとき、dx<0かつdy<0が成り立つか否かを判定する(ステップS52)。dx<0かつdy<0が成り立つとき、パケットをSへ転送する(ステップS53)。dx<0かつdy<0が成り立たないとき、パケットをEへ転送する(ステップS54)。   Next, when Dy · dx> dy · Dx does not hold in step S40, it is determined whether dx> 0 and dy> 0 hold (step S48). When dx> 0 and dy> 0 hold, the packet is transferred to N (step S49). When dx> 0 and dy> 0 do not hold, it is determined whether dx <0 and dy> 0 hold (step S50). When dx <0 and dy> 0 hold, the packet is transferred to W (step S51). When dx <0 and dy> 0 do not hold, it is determined whether dx <0 and dy <0 hold (step S52). When dx <0 and dy <0 hold, the packet is transferred to S (step S53). When dx <0 and dy <0 do not hold, the packet is transferred to E (step S54).

以上の処理により、メモリノードに入力されたパケットは、送信先ノード(to)と送信元ノード(from)を結ぶ直線に沿ってパケットが進むように、隣接するメモリノードに転送される。   Through the above processing, the packet input to the memory node is transferred to an adjacent memory node so that the packet advances along a straight line connecting the transmission destination node (to) and the transmission source node (from).

図11Dに、パケットの転送過程の具体例を示す。転送アルゴリズム2においては、送信先ノード(to)と送信元ノード(from)を結ぶ直線に沿ってパケットが進むように転送が行われる。例えば、ケース3では、dx<0かつdy>0であり、送信先ノード(to)と送信元ノード(from)を結ぶ直線からできるだけ離れないように、WまたはNへ進む。ケース4では、dx>0かつdy>0であり、送信先ノード(to)と送信元ノード(from)を結ぶ直線からできるだけ離れないように、NまたはEへ進む。   FIG. 11D shows a specific example of the packet transfer process. In the transfer algorithm 2, transfer is performed so that the packet proceeds along a straight line connecting the transmission destination node (to) and the transmission source node (from). For example, in case 3, dx <0 and dy> 0, and the process proceeds to W or N so as not to be as far as possible from the straight line connecting the transmission destination node (to) and the transmission source node (from). In Case 4, dx> 0 and dy> 0, and the process proceeds to N or E so as not to be as far as possible from the straight line connecting the transmission destination node (to) and the transmission source node (from).

図12A及び図12Bを参照して、転送アルゴリズム1に対する転送アルゴリズム2の優位性を示す。   With reference to FIGS. 12A and 12B, the superiority of the transfer algorithm 2 over the transfer algorithm 1 is shown.

図12A及び図12Bは、2つの送信元ノード(from1)と(from2)からそれぞれ送信先ノード(to)宛てのパケットを送信した場合のパケットの転送過程を例示している。図12Aは転送アルゴリズム1による転送過程を示し、図12Bは転送アルゴリズム2による転送過程を示す。   FIG. 12A and FIG. 12B illustrate the packet transfer process when packets addressed to the destination node (to) are transmitted from the two source nodes (from1) and (from2), respectively. FIG. 12A shows a transfer process by the transfer algorithm 1, and FIG. 12B shows a transfer process by the transfer algorithm 2.

図12Aに示す転送アルゴリズム1では、2つのパケットが合流する地点で、合流待ちの渋滞(jamで示す)が発生している。一方、図12Bに示す転送アルゴリズム2では渋滞は発生していない。したがって、転送アルゴリズム2では、転送アルゴリズム1よりも渋滞発生確率を減少させることができる。   In the transfer algorithm 1 shown in FIG. 12A, a confluence waiting jam (indicated by jam) occurs at a point where two packets join. On the other hand, no congestion has occurred in the transfer algorithm 2 shown in FIG. 12B. Therefore, the transfer algorithm 2 can reduce the probability of occurrence of traffic congestion than the transfer algorithm 1.

以上説明したように第2実施形態によれば、第1実施形態に比べて渋滞発生確率を減少させることができ、多くのクライアントが同時に接続した場合でも、応答速度を維持することができるストレージ装置を提供可能である。   As described above, according to the second embodiment, it is possible to reduce the probability of occurrence of traffic congestion as compared with the first embodiment, and it is possible to maintain the response speed even when many clients are connected simultaneously. Can be provided.

また、第1実施形態と同様に、メモリノードの論理アドレスと物理アドレスが一致するため、各メモリノードが経路指定表を管理する必要のない効率的なデータ転送方式を実現することができる。このため、ストレージ装置の拡張性に優れる、すなわちストレージ装置にメモリノードを容易に追加することが可能である。その他の構成及び効果は、前述した第1実施形態と同様である。   Further, as in the first embodiment, since the logical address and the physical address of the memory node coincide with each other, an efficient data transfer method that does not require each memory node to manage the routing table can be realized. For this reason, the expandability of the storage apparatus is excellent, that is, it is possible to easily add a memory node to the storage apparatus. Other configurations and effects are the same as those of the first embodiment described above.

[第3実施形態]
第3実施形態のストレージ装置について説明する。第3実施形態は、第1,第2実施形態が有する転送アルゴリズム1,2と異なる転送アルゴリズム3を有する。転送アルゴリズム3では、パケットが含む送信先アドレス及び送信元アドレス、自ノードのアドレス、及び自ノードの出力ポート占有情報の4つの情報に基づいて、転送先のメモリノードを決定する。なお、このストレージ装置は、図1及び図2と同様な構成を有するため、記載を省略する。
[Third Embodiment]
A storage apparatus according to the third embodiment will be described. The third embodiment has a transfer algorithm 3 different from the transfer algorithms 1 and 2 of the first and second embodiments. In the transfer algorithm 3, a memory node as a transfer destination is determined based on four pieces of information including a transmission destination address and a transmission source address included in the packet, an address of the own node, and output port occupation information of the own node. Since this storage device has the same configuration as that shown in FIGS. 1 and 2, description thereof is omitted.

[1]ストレージ装置の転送アルゴリズム3
図13は、第3実施形態のストレージ装置における転送アルゴリズム3を示す図である。図13を参照して、パケットの送信先アドレス及び送信元アドレス、自ノードのアドレス、自ノードの出力ポート占有情報の4つの情報に基づいて、転送先の隣接ノードを決定する方法の一例を示す。これを転送アルゴリズム3とする。
[1] Storage device transfer algorithm 3
FIG. 13 is a diagram showing a transfer algorithm 3 in the storage apparatus of the third embodiment. Referring to FIG. 13, an example of a method for determining a transfer destination adjacent node based on four pieces of information, that is, a transmission destination address and a transmission source address of a packet, an address of the own node, and output port occupation information of the own node is shown. . This is referred to as transfer algorithm 3.

図13に示すように、送信先ノード(to)と送信元ノード(from)を結ぶ直線で区切られる2つの領域のどちらに自ノード(PP)が存在するかを判断し、その領域に割り当てられた2つの方向のうち、自ノードの出力ポートの占有情報によって決まる方向の隣接ノードにパケットを転送する。各領域には、第一優先方向と、第二優先方向を割り当てる。第一優先方向の出力ポートバッファが別のパケットにより占有されていた場合に、第二優先方向が選択される。   As shown in FIG. 13, it is determined in which of two areas separated by a straight line connecting the transmission destination node (to) and the transmission source node (from) the own node (PP) exists and assigned to that area. Of the two directions, the packet is transferred to the adjacent node in the direction determined by the occupation information of the output port of the own node. A first priority direction and a second priority direction are assigned to each area. The second priority direction is selected when the output port buffer in the first priority direction is occupied by another packet.

図13、図14A〜図14Dを参照して、転送アルゴリズム3に従うパケットの転送過程の具体例を示す。   A specific example of a packet transfer process according to transfer algorithm 3 will be described with reference to FIGS. 13 and 14A to 14D.

図14Aに示すように、送信先ノード(to)のアドレスを(xto, yto)、送信元ノード(from)のアドレスを(xfrom, yfrom)、自ノードのアドレス(PP)を(xpp, ypp)とする。さらに、dx=xto−xfrom、dy=yto−yfrom、Dx=xpp−xfrom、Dy=ypp−yfromとする。 As shown in FIG. 14A, the address of the destination node (to) is (x to , y to ), the address of the source node (from) is (x from , y from ), and the address (PP) of its own node is ( x pp , y pp ). Further, dx = x to −x from , dy = y to −y from , Dx = x pp −x from , and Dy = y pp −y from .

図13では、dx>0かつdy>0の場合を例示している。Dyと(dy/dx)・Dxを比較した場合に、Dyが(dy/dx)・Dxよりも大きくなる領域をA領域、もう一方の領域をB領域とする。転送において、A領域の第一優先方向にはEを割り当て、B領域の第一優先方向にはNを割り当てる。また、A領域の第二優先方向(bypass方向)にはNを割り当て、B領域の第二優先方向にはEを割り当てる。例えば、図示されているようにパケットを転送するメモリノードがB領域に属す場合において、第一優先方向であるN方向の出力ポートバッファが別のパケットに占有されていれば、そのメモリノードは第二優先方向であるE方向にパケットを転送する。   FIG. 13 illustrates a case where dx> 0 and dy> 0. When Dy is compared with (dy / dx) · Dx, an area where Dy is larger than (dy / dx) · Dx is an A area, and the other area is a B area. In the transfer, E is assigned to the first priority direction of the A area, and N is assigned to the first priority direction of the B area. Further, N is assigned to the second priority direction (bypass direction) of the A area, and E is assigned to the second priority direction of the B area. For example, as shown in the figure, when a memory node that transfers a packet belongs to the B region, if the output port buffer in the N direction, which is the first priority direction, is occupied by another packet, the memory node Forward the packet in the E direction, which is the second priority direction.

図14Cに、ストレージ装置における転送アルゴリズム3のフローを示す。転送アルゴリズム3はパケットコントローラ15に記憶されており、パケットコントローラ15により実行される。なお、図14Bに示すように、Nへパケットを出力するための出力ポートバッファをOPBNとし、Eへパケットを出力するための出力ポートバッファをOPBE、Wへパケットを出力するための出力ポートバッファをOPBW、Sへパケットを出力するための出力ポートバッファをOPBSとする。   FIG. 14C shows a flow of the transfer algorithm 3 in the storage apparatus. The transfer algorithm 3 is stored in the packet controller 15 and is executed by the packet controller 15. As shown in FIG. 14B, an output port buffer for outputting a packet to N is OPBN, an output port buffer for outputting a packet to E is OPBE, and an output port buffer for outputting a packet to W is provided. An output port buffer for outputting a packet to OPBW and S is OPBS.

これら出力ポートバッファOPBN、OPBE、OPBW、OPBSが空いているか(パケットが記憶できるか)、あるいはパケットに占有されているかの情報(出力ポート占有情報)は、以下のようにパケットコントローラ15に記憶される。パケットコントローラ15は、出力ポートバッファと入力ポートバッファの総数分だけバッファ占有フラグビットを有する。パケットコントローラ15は、出力ポートバッファにパケットが書き込まれた場合、そのバッファに対応するバッファ占有フラグビットを“1”にし、出力ポートバッファからパケットが出力された場合、そのバッファに対応するバッファ占有フラグビットを“0”にする。パケットコントローラ15は、バッファ占有フラグビットを評価することで、対応する出力ポートバッファが空いているか否か(パケットに占有されているか否か)を判断できる。   Information about whether these output port buffers OPBN, OPBE, OPBW, and OPBS are free (can store a packet) or is occupied by a packet (output port occupation information) is stored in the packet controller 15 as follows. The The packet controller 15 has buffer occupancy flag bits corresponding to the total number of output port buffers and input port buffers. The packet controller 15 sets the buffer occupancy flag bit corresponding to the buffer to “1” when a packet is written to the output port buffer, and when the packet is output from the output port buffer, the buffer occupancy flag corresponding to the buffer. Set the bit to “0”. The packet controller 15 can determine whether or not the corresponding output port buffer is empty (whether or not it is occupied by the packet) by evaluating the buffer occupancy flag bit.

まず、パケットコントローラ15は、dx=xto−xfrom、dy=yto−yfrom、Dx=xpp−xfrom、Dy=ypp−yfromを算出する(ステップS61)。続いて、パケットコントローラ15は、dxが0であるか否かを判定する(ステップS62)。dxが0であるとき、yto>yppが成り立つか否かを判定する(ステップS63)。yto>yppが成り立つとき、パケットをNへ転送する(ステップS64)。一方、yto>yppが成り立たないとき、パケットをSへ転送する(ステップS65)。 First, the packet controller 15 calculates dx = x to −x from , dy = y to −y from , Dx = x pp −x from , and Dy = y pp −y from (step S61). Subsequently, the packet controller 15 determines whether dx is 0 (step S62). When dx is 0, it is determined whether or not y to > y pp is satisfied (step S63). When y to > y pp holds, the packet is transferred to N (step S64). On the other hand, when y to > y pp does not hold, the packet is transferred to S (step S65).

次に、ステップS62においてdxが0でないとき、パケットコントローラ15は、dyが0であるか否かを判定する(ステップS66)。dyが0であるとき、xto>xppが成り立つか否かを判定する(ステップS67)。xto>xppが成り立つとき、パケットをEへ転送する(ステップS68)。一方、xto>xppが成り立たないとき、パケットをWへ転送する(ステップS69)。 Next, when dx is not 0 in step S62, the packet controller 15 determines whether dy is 0 (step S66). When dy is 0, it is determined whether x to > x pp is satisfied (step S67). When x to > x pp holds, the packet is transferred to E (step S68). On the other hand, when x to > x pp does not hold, the packet is transferred to W (step S69).

次に、ステップS66においてdyが0でないとき、すなわちdxとdyが0でないとき、パケットコントローラ15は、Dy・dx>dy・Dxが成り立つか否かを判定する(ステップS70)。Dy・dx>dy・Dxが成り立つとき、dx>0かつdy>0が成り立つか否かを判定する(ステップS71)。dx>0かつdy>0が成り立つとき、Eへ出力する出力ポートバッファOPBEが空いているか否か、すなわち別のパケットにより占有されていないかを判定する(ステップS72)。出力ポートバッファOPBEが空いているとき、パケットをEへ転送する(ステップS73)。一方、出力ポートバッファOPBEが空いていないとき、パケットをNへ転送する(ステップS74)。   Next, when dy is not 0 in step S66, that is, when dx and dy are not 0, the packet controller 15 determines whether or not Dy · dx> dy · Dx is satisfied (step S70). When Dy · dx> dy · Dx holds, it is determined whether dx> 0 and dy> 0 hold (step S71). When dx> 0 and dy> 0 hold, it is determined whether or not the output port buffer OPBE to be output to E is empty, that is, is not occupied by another packet (step S72). When the output port buffer OPBE is empty, the packet is transferred to E (step S73). On the other hand, when the output port buffer OPBE is not empty, the packet is transferred to N (step S74).

次に、ステップS71においてdx>0かつdy>0が成り立たないとき、dx<0かつdy>0が成り立つか否かを判定する(ステップS75)。dx<0かつdy>0が成り立つとき、Nへ出力する出力ポートバッファOPBNが空いているか否かを判定する(ステップS76)。出力ポートバッファOPBNが空いているとき、パケットをNへ転送する(ステップS77)。一方、出力ポートバッファOPBNが空いていないとき、パケットをWへ転送する(ステップS78)。   Next, when dx> 0 and dy> 0 do not hold in step S71, it is determined whether dx <0 and dy> 0 hold (step S75). When dx <0 and dy> 0 hold, it is determined whether or not the output port buffer OPBN to be output to N is empty (step S76). When the output port buffer OPBN is empty, the packet is transferred to N (step S77). On the other hand, when the output port buffer OPBN is not empty, the packet is transferred to W (step S78).

次に、ステップS75においてdx<0かつdy>0が成り立たないとき、dx<0かつdy<0が成り立つか否かを判定する(ステップS79)。dx<0かつdy<0が成り立つとき、Wへ出力する出力ポートバッファOPBWが空いているか否かを判定する(ステップS80)。出力ポートバッファOPBWが空いているとき、パケットをWへ転送する(ステップS81)。一方、出力ポートバッファOPBWが空いていないとき、パケットをSへ転送する(ステップS82)。   Next, when dx <0 and dy> 0 do not hold in step S75, it is determined whether dx <0 and dy <0 hold (step S79). When dx <0 and dy <0 hold, it is determined whether or not the output port buffer OPBW to be output to W is empty (step S80). When the output port buffer OPBW is empty, the packet is transferred to W (step S81). On the other hand, when the output port buffer OPBW is not empty, the packet is transferred to S (step S82).

次に、ステップS79においてdx<0かつdy<0が成り立たないとき、Sへ出力する出力ポートバッファOPBSが空いているか否かを判定する(ステップS83)。出力ポートバッファOPBSが空いているとき、パケットをSへ転送する(ステップS84)。一方、出力ポートバッファOPBSが空いていないとき、パケットをEへ転送する(ステップS85)。   Next, when dx <0 and dy <0 are not satisfied in step S79, it is determined whether or not the output port buffer OPBS output to S is empty (step S83). When the output port buffer OPBS is empty, the packet is transferred to S (step S84). On the other hand, when the output port buffer OPBS is not empty, the packet is transferred to E (step S85).

次に、ステップS70においてDy・dx>dy・Dxが成り立たないとき、dx>0かつdy>0が成り立つか否かを判定する(ステップS86)。dx>0かつdy>0が成り立つとき、Nへ出力する出力ポートバッファOPBNが空いているか否かを判定する(ステップS87)。出力ポートバッファOPBNが空いているとき、パケットをNへ転送する(ステップS88)。一方、出力ポートバッファOPBNが空いていないとき、パケットをEへ転送する(ステップS89)。   Next, when Dy · dx> dy · Dx does not hold in step S70, it is determined whether dx> 0 and dy> 0 hold (step S86). When dx> 0 and dy> 0 hold, it is determined whether or not the output port buffer OPBN that outputs to N is empty (step S87). When the output port buffer OPBN is empty, the packet is transferred to N (step S88). On the other hand, when the output port buffer OPBN is not empty, the packet is transferred to E (step S89).

次に、ステップS86においてdx>0かつdy>0が成り立たないとき、dx<0かつdy>0が成り立つか否かを判定する(ステップS90)。dx<0かつdy>0が成り立つとき、Wへ出力する出力ポートバッファOPBWが空いているか否かを判定する(ステップS91)。出力ポートバッファOPBWが空いているとき、パケットをWへ転送する(ステップS92)。一方、出力ポートバッファOPBWが空いていないとき、パケットをNへ転送する(ステップS93)。   Next, when dx> 0 and dy> 0 do not hold in step S86, it is determined whether dx <0 and dy> 0 hold (step S90). When dx <0 and dy> 0 hold, it is determined whether or not the output port buffer OPBW to be output to W is empty (step S91). When the output port buffer OPBW is empty, the packet is transferred to W (step S92). On the other hand, when the output port buffer OPBW is not empty, the packet is transferred to N (step S93).

次に、ステップS90においてdx<0かつdy>0が成り立たないとき、dx<0かつdy<0が成り立つか否かを判定する(ステップS94)。dx<0かつdy<0が成り立つとき、Sへ出力する出力ポートバッファOPBSが空いているか否かを判定する(ステップS95)。出力ポートバッファOPBSが空いているとき、パケットをSへ転送する(ステップS96)。一方、出力ポートバッファOPBSが空いていないとき、パケットをWへ転送する(ステップS97)。   Next, when dx <0 and dy> 0 do not hold in step S90, it is determined whether dx <0 and dy <0 hold (step S94). When dx <0 and dy <0 hold, it is determined whether or not the output port buffer OPBS to be output to S is empty (step S95). When the output port buffer OPBS is empty, the packet is transferred to S (step S96). On the other hand, when the output port buffer OPBS is not empty, the packet is transferred to W (step S97).

次に、ステップS94においてdx<0かつdy<0が成り立たないとき、Eへ出力する出力ポートバッファOPBEが空いているか否かを判定する(ステップS98)。出力ポートバッファOPBEが空いているとき、パケットをEへ転送する(ステップS99)。一方、出力ポートバッファOPBEが空いていないとき、パケットをSへ転送する(ステップS100)。   Next, when dx <0 and dy <0 do not hold in step S94, it is determined whether or not the output port buffer OPBE to be output to E is empty (step S98). When the output port buffer OPBE is empty, the packet is transferred to E (step S99). On the other hand, when the output port buffer OPBE is not empty, the packet is transferred to S (step S100).

以上の処理により、第一優先方向において渋滞が発生している場合には、第二優先方向へパケットを転送することにより、渋滞を回避しながら送信先ノード(to)と送信元ノード(from)を結ぶ直線に沿って、隣接するメモリノードにパケットが転送される。   By the above processing, if there is a traffic jam in the first priority direction, the destination node (to) and the source node (from) while avoiding the traffic jam by forwarding the packet in the second priority direction A packet is transferred to an adjacent memory node along a straight line connecting the two.

図14Dに、パケットの転送過程の具体例を示す。ケース1は渋滞が発生しない例であり、送信先ノード(to)と送信元ノード(from)を結ぶ直線に沿ってパケットが転送される。ケース2,3は、渋滞を回避する例を示す。ケース2では、パケットをNへ転送しようとしているとき、N方向に渋滞が発生している。このため、ケース3に示すように、パケットをEへ転送して渋滞を回避している。ケース4,5は、渋滞を回避する他の例を示す。ケース4では、パケットをEへ転送しようとしているとき、E方向に渋滞が発生している。このため、ケース5に示すように、パケットをNへ転送して渋滞を回避している。   FIG. 14D shows a specific example of the packet transfer process. Case 1 is an example in which no traffic jam occurs, and packets are transferred along a straight line connecting the transmission destination node (to) and the transmission source node (from). Cases 2 and 3 show examples of avoiding traffic jams. In Case 2, when trying to transfer a packet to N, there is a traffic jam in the N direction. For this reason, as shown in Case 3, the packet is transferred to E to avoid congestion. Cases 4 and 5 show other examples for avoiding traffic jams. In Case 4, there is a traffic jam in the E direction when trying to transfer a packet to E. For this reason, as shown in Case 5, the packet is transferred to N to avoid congestion.

転送アルゴリズム3においては、第一優先方向で渋滞が発生している場合には、第二優先方向へパケットを転送することにより、渋滞を回避することができる。この際、渋滞がそもそも発生しなかった場合と比べて、送信先ノードにパケットが到達するまでの転送回数は変わらない。   In the transfer algorithm 3, when a traffic jam occurs in the first priority direction, the traffic jam can be avoided by transferring the packet in the second priority direction. At this time, the number of transfers until the packet arrives at the transmission destination node does not change as compared with the case where no traffic jam occurs.

[2]ストレージ装置の転送アルゴリズム4
図15は、ストレージ装置における転送アルゴリズム4を示す図である。図15を参照して、パケットの送信先アドレス及び送信元アドレス、自ノードのアドレス、自ノードの出力ポート占有情報の4つの情報に基づいて、転送先の隣接ノードを決定する方法の別の第1例を示す。これを転送アルゴリズム4とする。
[2] Storage device transfer algorithm 4
FIG. 15 is a diagram showing the transfer algorithm 4 in the storage apparatus. Referring to FIG. 15, another method of determining a transfer destination adjacent node based on four pieces of information, that is, a transmission destination address and a transmission source address of a packet, an address of the own node, and output port occupation information of the own node. An example is shown. This is referred to as transfer algorithm 4.

図15に示すように、送信先ノード(to)と送信元ノード(from)を結ぶ直線、及びその直線と送信先ノード(to)の位置で直交する直線で区切られる4つの領域を定義する。それら4つの領域のうち、どの領域に自ノード(PP)が存在するかを判断し、自ノード(PP)が存在する領域に割り当てられた第一優先と第二優先の2つの方向のうち、自ノード(PP)の出力ポートの占有情報によって決まる方向の隣接ノードにパケットを転送する。   As shown in FIG. 15, four regions defined by a straight line connecting the transmission destination node (to) and the transmission source node (from) and a straight line orthogonal to the position of the transmission destination node (to) are defined. Of these four areas, it is determined in which area the own node (PP) exists, and among the two directions of the first priority and the second priority assigned to the area where the own node (PP) exists, The packet is forwarded to the adjacent node in the direction determined by the occupation information of the output port of the own node (PP).

アルゴリズム3と比較したアルゴリズム4の優位性は次の通りである。アルゴリズム3に対しては、送信先ノード(to)と送信元ノード(from)を結ぶ直線を対角線とする長方形により規定される領域の外にパケットを転送することを禁止する制限を設ける必要がある。一方、アルゴリズム4に対しては、その制限を設ける必要がない。   The superiority of algorithm 4 compared to algorithm 3 is as follows. For algorithm 3, it is necessary to provide a restriction that prohibits packets from being transferred outside the area defined by the rectangle whose diagonal line is the line connecting the destination node (to) and the source node (from). . On the other hand, it is not necessary to provide a restriction for algorithm 4.

[3]ストレージ装置の転送アルゴリズム5
図16は、ストレージ装置における転送アルゴリズム5を示す図である。図16を参照して、パケットの送信先アドレス及び送信元アドレス、自ノードのアドレス、自ノードの出力ポート占有情報の4つの情報に基づいて、転送先の隣接ノードを決定する方法の別の第2例を示す。これを転送アルゴリズム5とする。
[3] Storage device transfer algorithm 5
FIG. 16 is a diagram showing the transfer algorithm 5 in the storage apparatus. Referring to FIG. 16, another method for determining a transfer destination adjacent node based on four pieces of information, that is, a transmission destination address and a transmission source address of a packet, an address of the own node, and output port occupation information of the own node. Two examples are shown. This is referred to as transfer algorithm 5.

図16に示すように、送信先ノード(to)と送信元ノード(from)を結ぶ直線、その直線と送信先ノード(to)の位置で直交する直線、送信先ノード(to)の位置でx方向とy方向に伸びる2つの直線の4つの直線で区切られる8つの領域を定義する。それら8つの領域のうち、どの領域に自ノード(PP)が存在するかを判断し、自ノード(PP)が存在する領域に割り当てられた第一優先と第二優先の2つの方向のうち、自ノード(PP)の出力ポートの占有情報によって決まる方向の隣接ノードにパケットを転送する。前記送信先ノード(to)の位置でx方向とy方向に伸びる2つの直線は、例えば送信先ノード(to)を通りメモリノードの配列方向に沿った2つの直線を含む。   As shown in FIG. 16, a straight line connecting the transmission destination node (to) and the transmission source node (from), a straight line orthogonal to the position of the transmission destination node (to), and x at the position of the transmission destination node (to). Eight regions defined by four straight lines of two straight lines extending in the direction and y direction are defined. Of these 8 areas, it is determined in which area the own node (PP) exists, and among the two directions of the first priority and the second priority assigned to the area where the own node (PP) exists, The packet is forwarded to the adjacent node in the direction determined by the occupation information of the output port of the own node (PP). The two straight lines extending in the x direction and the y direction at the position of the transmission destination node (to) include, for example, two straight lines passing through the transmission destination node (to) and along the arrangement direction of the memory nodes.

アルゴリズム4と比較したアルゴリズム5の優位性は次の通りである。アルゴリズム4では、送信先ノード(to)と送信元ノード(from)を結ぶ直線を対角線とする長方形により規定される領域の外でパケットを第二優先方向(bypass方向)に転送させた場合、送信先ノード(to)にパケットが到達するまでの転送回数が少なくとも1つ増加する。一方、アルゴリズム5の場合では転送回数の増加がない。   The superiority of algorithm 5 compared to algorithm 4 is as follows. In Algorithm 4, when a packet is transferred in the second priority direction (bypass direction) outside the area defined by a rectangle whose diagonal line is a straight line connecting the transmission destination node (to) and the transmission source node (from), The number of transfers until the packet reaches the destination node (to) increases by at least one. On the other hand, in the case of algorithm 5, there is no increase in the number of transfers.

以上説明したように第3実施形態によれば、第1,第2実施形態に比べて渋滞発生確率を減少させることができ、多くのクライアントが同時に接続した場合でも、応答速度を維持することができるストレージ装置を提供可能である。   As described above, according to the third embodiment, it is possible to reduce the occurrence probability of traffic congestion as compared with the first and second embodiments, and to maintain the response speed even when many clients are connected simultaneously. It is possible to provide a storage device that can be used.

また、第1実施形態と同様に、メモリノードの論理アドレスと物理アドレスが一致するため、各メモリノードが経路指定表を管理する必要のない効率的なデータ転送方式を実現することができる。このため、ストレージ装置の拡張性に優れる、すなわちストレージ装置にメモリノードを容易に追加することが可能である。その他の構成及び効果は、前述した第1実施形態と同様である。   Further, as in the first embodiment, since the logical address and the physical address of the memory node coincide with each other, an efficient data transfer method that does not require each memory node to manage the routing table can be realized. For this reason, the expandability of the storage apparatus is excellent, that is, it is possible to easily add a memory node to the storage apparatus. Other configurations and effects are the same as those of the first embodiment described above.

[第4実施形態]
第4実施形態では、転送機能を有するメモリノードを複数備えたストレージ装置と、ストレージ装置に接続された制御コンピュータからなるストレージシステムにおいて、パケット転送時の渋滞が発生しない、つまり渋滞フリーとなるシステムの運用条件について説明する。
[Fourth Embodiment]
In the fourth embodiment, in a storage system including a storage apparatus having a plurality of memory nodes having a transfer function and a control computer connected to the storage apparatus, no congestion occurs at the time of packet transfer, that is, no congestion occurs. The operating conditions will be described.

[1]ストレージシステムの構成
図17は、第4実施形態のストレージシステムの構成を示す図である。
[1] Configuration of Storage System FIG. 17 is a diagram showing the configuration of the storage system of the fourth embodiment.

図示するように、ストレージシステムは、複数のメモリノード11を含むストレージ装置10、及びストレージ装置10に接続された複数の制御コンピュータ41を備える。ストレージ装置10は、図1に示したように、データ転送機能を有するメモリノードが相互に複数接続された構成を有する。ストレージ装置10の外周部に配置されたメモリノード11には、制御コンピュータ41が接続されている。   As illustrated, the storage system includes a storage device 10 including a plurality of memory nodes 11 and a plurality of control computers 41 connected to the storage device 10. As shown in FIG. 1, the storage apparatus 10 has a configuration in which a plurality of memory nodes having a data transfer function are connected to each other. A control computer 41 is connected to the memory node 11 arranged on the outer periphery of the storage apparatus 10.

[2]ストレージシステムの渋滞発生フリーの運用条件
図17を参照して、ストレージシステムにおけるパケット転送シミュレーションの枠組みを説明する。ストレージ装置10に接続された制御コンピュータ41から送信されたリクエストパケットが送信先アドレスのメモリノードに到達するまでの過程、および目的のメモリノードから返送されたデータパケットが元の制御コンピュータ41に到着するまでの過程をシミュレートする。パケットの転送アルゴリズムとしては、図13を用いて説明したバイパス機能付ルーティングアルゴリズム(転送アルゴリズム3)を使用する。
[2] Storage System Congestion-Free Operation Conditions With reference to FIG. 17, a framework for packet transfer simulation in the storage system will be described. The process until the request packet transmitted from the control computer 41 connected to the storage apparatus 10 reaches the memory node of the destination address, and the data packet returned from the target memory node arrives at the original control computer 41. Simulate the process up to. As a packet transfer algorithm, the routing function-added routing algorithm (transfer algorithm 3) described with reference to FIG. 13 is used.

ストレージ装置10のメモリノード数をNnode=Nx×Nyとし、ストレージ装置10に接続されている制御コンピュータ数をNcとする。メモリノード間で1回のパケット転送が行われる時間を単位ステップ時間とする。制御コンピュータ41が、単位ステップ時間当たりに、リクエストパケットを送信する確率をRrとする。Rrは最大で1である。バイパス転送発生率をRbypass、渋滞発生率をRjamとする。 The number of memory nodes of the storage apparatus 10 is N node = Nx × Ny, and the number of control computers connected to the storage apparatus 10 is Nc. The time for one packet transfer between the memory nodes is defined as a unit step time. Let Rr be the probability that the control computer 41 transmits a request packet per unit step time. Rr is 1 at the maximum. Assume that the bypass transfer occurrence rate is R bypass and the traffic jam occurrence rate is R jam .

バイパス転送発生率Rbypassは、メモリノードが1つのパケットの転送を試みた際に、バイパス転送により渋滞が回避された確率を示す。一方、渋滞発生率Rjamは、メモリノードが1つのパケットの転送を試みた際に、第一優先方向の出力ポートバッファのみならず、第二優先方向の出力ポートバッファも別のパケットにより占有されていたために、パケット転送を実施できず渋滞が発生し、パケットが滞留した確率を示す。また、負荷係数をRloadとする。負荷係数Rloadは、1つのメモリノードに存在しているパケット数の平均である。 The bypass transfer occurrence rate R bypass indicates a probability that traffic congestion is avoided by bypass transfer when the memory node attempts to transfer one packet. On the other hand, when the memory node tries to transfer one packet, the jam occurrence rate R jam is not only the output port buffer in the first priority direction but also the output port buffer in the second priority direction is occupied by another packet. Therefore, it indicates the probability that the packet transfer could not be performed and the traffic jam occurred and the packet stayed. Also, let R load be the load coefficient. The load coefficient R load is an average of the number of packets existing in one memory node.

図18は、バイパス転送発生率Rbypassと負荷係数Rloadの関係、ならびに渋滞発生率Rjamと負荷係数Rloadの関係を示す。多数のプロットは、メモリノード数Nnode、制御コンピュータ数をNc、確率Rrを様々に変化させた場合の結果を示している。 FIG. 18 shows the relationship between the bypass transfer occurrence rate R bypass and the load factor R load and the relationship between the traffic jam occurrence rate R jam and the load factor R load . Many plots show the results when the number of memory nodes is N node , the number of control computers is Nc, and the probability Rr is variously changed.

渋滞発生率Rjamは負荷係数Rloadが0.2より小さい場合ほぼゼロであり、渋滞フリーのシステム運用条件は負荷係数Rload<0.2であることが分かる。渋滞発生率Rjamは負荷係数Rloadが0.2以上になると増加し始める。しかし、負荷係数Rload=2であっても渋滞発生率Rjamは0.05程度であり、実用上ほとんど問題にならない。一方、渋滞発生率Rjamは負荷係数Rloadが2より大きくなると急増する。これは、負荷係数Rloadが2より大きくなると連鎖的に渋滞が発生するハングアップ現象が起こるためである。 The traffic jam occurrence rate R jam is almost zero when the load coefficient R load is smaller than 0.2, and it can be seen that the traffic congestion free system operating condition is the load coefficient R load <0.2. The congestion occurrence rate R jam starts to increase when the load coefficient R load becomes 0.2 or more. However, even if the load coefficient R load = 2, the traffic jam occurrence rate R jam is about 0.05, which poses no practical problem. On the other hand, the jam occurrence rate R jam increases rapidly when the load coefficient R load is larger than 2. This is because when the load coefficient R load is greater than 2, a hang-up phenomenon occurs in which traffic congestion occurs in a chained manner.

バイパス転送発生率Rbypassは負荷係数Rloadの増加に対して、渋滞発生率Rjamよりも一桁早く立ち上がっている。つまり、バイパス転送アルゴリズムは渋滞発生要件を一桁程度改善する効果がある。 The bypass transfer occurrence rate R bypass rises one digit earlier than the traffic jam occurrence rate R jam with respect to the increase of the load coefficient R load . In other words, the bypass transfer algorithm has an effect of improving the congestion occurrence requirement by about one digit.

次に、このシミュレーション結果に基づき、渋滞フリーもしくは渋滞発生が実用上問題とならない、制御コンピュータ数とメモリノード数の関係を求める。平均パケット滞在ステップ時間をSavgとする。平均パケット滞在ステップ時間Savgは、制御コンピュータ41がリクエストパケットを送信してからそのリクエストパケットが送信先アドレスのメモリノードに到達するまでのステップ時間Srequestと、目的のメモリノードから返送されたデータパケットが元の制御コンピュータに到着するまでのステップ時間Sdatの和である。ステップ時間SrequestとSdatは、渋滞が発生しない場合(Nx/2+Ny/2)である。従って、平均パケット滞在ステップ時間Savgは(Nx+Ny)であり、これはおよそ2√Nnodeである。 Next, based on the simulation results, the relationship between the number of control computers and the number of memory nodes is determined so that congestion free or occurrence of traffic congestion is not a practical problem. Let the average packet stay step time be Savg . Average packet staying step time S avg, the data control computer 41 is returned from the step time S request and the memory node of interest from sending the request packet to the request packet reaches the memory node of the destination address This is the sum of the step times S dat until the packet arrives at the original control computer. The step times S request and S dat are when no traffic jam occurs (Nx / 2 + Ny / 2). Therefore, the average packet stay step time S avg is (Nx + Ny), which is approximately 2√N node .

一方、制御コンピュータ41が、1ステップ時間当たりに送信するリクエストパケットの総数は、Nc×Rrである。従って、ストレージシステム内に存在するパケット総数は平均でNc×Rr×2√Nnodeである。このため、Rload〜Nc×Rr×2√Nnode/Nnode=Nc×Rr×2/√Nnodeである。ここで、渋滞発生要件をRload limitとすると、好ましいシステム運用条件は、Rload<Rload limitとなる。従って、渋滞フリーもしくは渋滞発生が実用上問題とならない最大の制御コンピュータ数Ncmaxは、Ncmax<Rload limit×√Nnode/(Rr×2)となる。Rrは最大1であるから、より厳しい条件は、Ncmax<Rload limit×√Nnode/2である。 On the other hand, the total number of request packets that the control computer 41 transmits per step time is Nc × Rr. Therefore, the total number of packets existing in the storage system is Nc × Rr × 2√N node on average. Therefore, R load ˜Nc × Rr × 2√N node / N node = Nc × Rr × 2 / √N node . Here, when the congestion occurrence requirement is R load limit , a preferable system operation condition is R load <R load limit . Accordingly, the maximum number of control computers Nc max at which no congestion or no occurrence of traffic congestion is a practical problem is Nc max <R load limit × √N node / (Rr × 2). Since Rr is 1 at maximum, the stricter condition is Nc max <R load limit × √N node / 2.

前述したように、パケット転送時に渋滞発生フリーの運用条件はRload limit=0.2であり、渋滞が実用上問題とならない運用条件はRload limit=2である。従って、好ましい最大の制御コンピュータ数NcmaxはNcmax<√Nnodeであり、より好ましくはNcmax<0.1×√Nnodeである。よって、Nc<√Nnodeという関係が成立している。その他の構成及び効果は、前述した第1実施形態と同様である。 As described above, the operation condition for free of occurrence of traffic congestion at the time of packet transfer is R load limit = 0.2, and the operation condition for which traffic congestion does not cause a practical problem is R load limit = 2. Therefore, the preferred maximum number of control computers Nc max is Nc max <√N node , more preferably Nc max <0.1 × √N node . Therefore, the relationship Nc <√N node is established. Other configurations and effects are the same as those of the first embodiment described above.

[第5実施形態]
第5実施形態は、図1に示した転送機能を有する複数のメモリノードを相互に接続したストレージ装置を備え、各メモリノードが分散処理機能を有する。
[Fifth Embodiment]
The fifth embodiment includes a storage device in which a plurality of memory nodes having a transfer function shown in FIG. 1 are connected to each other, and each memory node has a distributed processing function.

[1]ストレージ装置の構成
図19は、第5実施形態のストレージ装置の構成を示す図である。
[1] Configuration of Storage Device FIG. 19 is a diagram showing a configuration of a storage device according to the fifth embodiment.

図示するように、ストレージ装置は、図1に示した複数のメモリノード11を含むストレージ装置10を備えると共に、各メモリノード11はアドレス変換器42を備え、分散処理機能を有している。   As illustrated, the storage apparatus includes the storage apparatus 10 including the plurality of memory nodes 11 illustrated in FIG. 1, and each memory node 11 includes an address converter 42 and has a distributed processing function.

[2]ストレージ装置の分散処理機能
ここでは、図19を参照して、appleとorangeというキーワードを共に含むURLを見つけるAND検索処理を例に挙げて、分散処理機能を説明する。
[2] Distributed Processing Function of Storage Device Here, with reference to FIG. 19, the distributed processing function will be described by taking an AND search process for finding a URL including both the apple and orange keywords as an example.

ここで、メモリノード(1,3)と(4,3)がそれぞれappleとorangeの転置ファイルを保持しているものとする。転置ファイルとは、キーワードの一つ一つについて作成される索引ファイルで、例えばappleというキーワードに対応する転置ファイルにはappleを含む全URLのリストが格納される。   Here, it is assumed that the memory nodes (1, 3) and (4, 3) hold apple and orange transposed files, respectively. The transposed file is an index file created for each keyword. For example, the transposed file corresponding to the keyword apple stores a list of all URLs including apple.

ゲートウェイサーバは、AND検索命令をappleとorangeの転置ファイルを管理するメモリノードに送信する。転置ファイルを管理するメモリノードは、転置ファイルの内容をkey-value型データにマッピングする。ここで、keyとvalueはそれぞれURLとその転置ファイルのキーワードとする。   The gateway server transmits an AND search command to the memory node that manages the transposed files of apple and orange. The memory node that manages the transposed file maps the contents of the transposed file to key-value type data. Here, key and value are the URL and the keyword of the transposed file, respectively.

各メモリノードは、自らが保有するkey-value型データの各レコードについて、keyをアドレス変換器42によりアドレスに変換し、そのアドレスにvalueを含むパケットを送信する。アドレス変換器42は、あるルールに従い、自らkeyからアドレスを算出する場合もあるし、keyをアドレスに変換する機能を有するサーバに問い合わせて、keyに対応するアドレスを得ても良い。   Each memory node converts the key into an address by the address converter 42 for each record of the key-value type data held by itself, and transmits a packet including the value at the address. The address converter 42 may calculate an address from the key itself according to a certain rule, or may inquire a server having a function of converting the key into an address to obtain an address corresponding to the key.

例えば、アドレス変換器42は、次のアドレッシングルールに従い、keyからアドレスを算出する。   For example, the address converter 42 calculates an address from the key according to the following addressing rule.

アドレス=hash(key) mod N
ここで、hash()は暗号学的なハッシュ関数、Nはストレージ装置10内のメモリノード数、mod NはNをとする剰余演算を表す。
Address = hash (key) mod N
Here, hash () is a cryptographic hash function, N is the number of memory nodes in the storage device 10, mod N denotes the remainder operation modulo N.

また例えば、アドレス変換器42は、keyに対応するアドレスを別のサーバに問い合わせ、そして別のサーバがコンシステントハッシングによりkeyをアドレスに変換して元のアドレス変換器42に回答する。   Further, for example, the address converter 42 inquires of another server about the address corresponding to the key, and the other server converts the key into the address by consistent hashing and returns the reply to the original address converter 42.

図19に示す例では、appleとorangeの転置ファイルは共にURL1を含むとし、URL1はアドレス(2,1)に変換されたものとする。この場合、メモリノード(2,1)が、URL1がAND検索式を満たすかどうかを判定する役割を担うことになる。メモリノード(2,1)には、valueがappleとorangeである2つのパケットが届く。このため、メモリノード(2,1)はURL1がAND検索条件を満たしていることが分かる。   In the example shown in FIG. 19, it is assumed that both the apple and orange transposition files include URL1, and URL1 is converted to the address (2, 1). In this case, the memory node (2, 1) plays a role of determining whether URL1 satisfies the AND search expression. Two packets whose values are apple and orange arrive at the memory node (2, 1). For this reason, the memory node (2, 1) knows that URL1 satisfies the AND search condition.

メモリノード(2,1)はその旨をクエリーを出したゲートウェイサーバに通知する。同様の判定を転置ファイルに記載されたURLすべてについて多数のメモリノードが行うことにより、クエリーを出したゲートウェイサーバはAND検索条件を満たしたURLのリストを得ることができる。   The memory node (2, 1) notifies the gateway server that issued the query to that effect. A large number of memory nodes make the same determination for all the URLs described in the transposed file, so that the gateway server that issued the query can obtain a list of URLs that satisfy the AND search condition.

以上のAND検索演算を、単一メモリノードで行う場合は、次のコードで示す演算を行う必要がある。

Figure 0005404947
When performing the above AND search operation with a single memory node, it is necessary to perform the operation indicated by the following code.
Figure 0005404947

ここでは、appleとorangeの転置ファイルがそれぞれ格納するURLの数を、それぞれNappleとNorangeとし、==は一致演算を示す。メモリノードは一致演算を、Napple×Norange/2回だけ繰り返す必要がある。本実施形態のストレージ装置では、この一致演算を数多くのメモリノードで分散して実施することができる。 Here, the numbers of URLs stored in the transposed files of apple and orange are N apple and N orange , respectively, and == indicates a matching operation. The memory node needs to repeat the matching operation only N apple × N orange / 2 times. In the storage apparatus of the present embodiment, this coincidence operation can be carried out by being distributed among a large number of memory nodes.

以上説明したように第5実施形態によれば、第1実施形態に記載したストレージング機能だけでなく、分散処理(分散コンピューティング)機能も併せ持つことができる。その他の構成及び効果は、前述した第1実施形態と同様である。   As described above, according to the fifth embodiment, not only the storage function described in the first embodiment but also a distributed processing (distributed computing) function can be provided. Other configurations and effects are the same as those of the first embodiment described above.

[第6実施形態]
第6実施形態は、転送機能を有するメモリノードを複数備えたストレージ装置と、ストレージ装置の一部のメモリノードが、隣接するメモリノード(以下、隣接ノード)と接続された入出力ポート(以下、隣接ポート)以外の入出力ポート(以下、非隣接ポート)を有し、前記一部のメモリノードが、前記非隣接ポートにより、制御コンピュータもしくは隣接しないメモリノード(以下、非隣接ノード)と接続された構成を有する。
[Sixth Embodiment]
In the sixth embodiment, a storage apparatus including a plurality of memory nodes having a transfer function, and an input / output port (hereinafter, referred to as an adjacent node) in which a part of the memory nodes of the storage apparatus is connected to an adjacent memory node (hereinafter referred to as an adjacent node). There are input / output ports (hereinafter referred to as non-adjacent ports) other than adjacent ports, and the some memory nodes are connected to a control computer or non-adjacent memory nodes (hereinafter referred to as non-adjacent nodes) by the non-adjacent ports. Have a configuration.

[1]ストレージシステムの構成
図20は、第6実施形態のストレージシステムの構成を示す図である。
[1] Configuration of Storage System FIG. 20 is a diagram showing the configuration of the storage system of the sixth embodiment.

図示するように、ストレージシステムは、複数のメモリノード11を含むストレージ装置10、及びストレージ装置10に接続された複数のゲートウェイサーバ21A,21Bを備える。ストレージ装置10は、図1に示したように、データ転送機能を有するメモリノードが相互に複数接続された構成を有する。ストレージ装置10の外周部に配置されたメモリノード(1,4)には、アダプタ22Aを介してゲートウェイサーバ21Aが接続されている。ストレージ装置10の中央部に配置されたメモリノード(3,5)は、隣接ノードと接続された入出力ポート以外の入出力ポート(非隣接ポート)を有し、この非隣接ポートにはアダプタ22Bを介してゲートウェイサーバ21Bが接続されている。   As illustrated, the storage system includes a storage device 10 including a plurality of memory nodes 11 and a plurality of gateway servers 21A and 21B connected to the storage device 10. As shown in FIG. 1, the storage apparatus 10 has a configuration in which a plurality of memory nodes having a data transfer function are connected to each other. A gateway server 21A is connected to the memory nodes (1, 4) arranged on the outer periphery of the storage apparatus 10 via an adapter 22A. The memory nodes (3, 5) arranged in the central part of the storage apparatus 10 have input / output ports (non-adjacent ports) other than the input / output ports connected to the adjacent nodes, and the adapter 22B is connected to this non-adjacent port. The gateway server 21B is connected via

[2]ストレージシステムのパケット転送
図20を参照して、隣接ノードと接続された入出力ポート以外の入出力ポート(非隣接ポート)を有するメモリノードを導入した効果について述べる。ここで、ストレージ装置10のx方向のメモリノード数をNx、y方向のメモリノード数をNyとする。
[2] Packet Transfer of Storage System The effect of introducing a memory node having an input / output port (non-adjacent port) other than the input / output port connected to the adjacent node will be described with reference to FIG. Here, the number of memory nodes in the x direction of the storage apparatus 10 is Nx, and the number of memory nodes in the y direction is Ny.

ゲートウェイサーバの接続先がストレージ装置10の外周部に配置されたメモリノードに限定される場合、ゲートウェイサーバから目的のメモリノードに到達するまでのパケットの平均転送回数は、Nx/2+Ny/2である。   When the connection destination of the gateway server is limited to the memory nodes arranged on the outer periphery of the storage apparatus 10, the average number of packet transfers from the gateway server to the target memory node is Nx / 2 + Ny / 2. .

一方、図20に示すように、ストレージ装置10の中央部に位置するメモリノード(3,5)の入出力ポート数を増やし、追加した入出力ポート(前記非隣接ポート)によって、メモリノード(3,5)をゲートウェイサーバ21Bと接続する。すると、ゲートウェイサーバ21Bから目的のメモリノードまでのパケットの平均転送回数は、Nx/4+Ny/4となる。   On the other hand, as shown in FIG. 20, the number of input / output ports of the memory node (3, 5) located in the central part of the storage apparatus 10 is increased, and the memory node (3 , 5) is connected to the gateway server 21B. Then, the average number of packet transfers from the gateway server 21B to the target memory node is Nx / 4 + Ny / 4.

このように、ストレージ装置10内の一部のメモリノードの入出力ポート数を増やし、追加した入出力ポートでメモリノードとゲートウェイサーバを接続すると、パケットが目的のメモリノードに到達するまでの平均転送回数を低減させることができる。   As described above, when the number of input / output ports of some memory nodes in the storage apparatus 10 is increased and the memory node and the gateway server are connected by the added input / output ports, the average transfer until the packet reaches the target memory node. The number of times can be reduced.

また、図21に示すように、追加した入出力ポートによってゲートウェイサーバに接続されたメモリノードをストレージ装置10に複数配置しても良い。すなわち、メモリノード(4,7)は隣接ノードと接続された入出力ポート以外の入出力ポート(非隣接ポート)を有し、この非隣接ポートはアダプタ22Cを介してゲートウェイサーバ21Cに接続されている。   Further, as shown in FIG. 21, a plurality of memory nodes connected to the gateway server by the added input / output port may be arranged in the storage apparatus 10. That is, the memory node (4, 7) has an input / output port (non-adjacent port) other than the input / output port connected to the adjacent node, and this non-adjacent port is connected to the gateway server 21C via the adapter 22C. Yes.

さらに、ストレージ装置10内のメモリノードに接続された複数のゲートウェイサーバ21A,21B,21C,21D同士を、サーバとメモリノードとを接続する配線とは別の配線23で接続しても良い。また、ゲートウェイサーバ間、例えばゲートウェイサーバ21A,21B間にアダプタ22Eを接続しても良い。これにより、配線23を使用して、ゲートウェイサーバ間、及びゲートウェイサーバとメモリノード間でパケット転送を行うことができる。例えば、ゲートウェイサーバ21A→ゲートウェイサーバ21B→ゲートウェイサーバ21C→メモリノード(4,7)の順でパケットを転送してもよい。また、ゲートウェイサーバ21A→ゲートウェイサーバ21D→メモリノード(5,4))の順でパケットを転送してもよい。   Furthermore, the plurality of gateway servers 21A, 21B, 21C, and 21D connected to the memory nodes in the storage apparatus 10 may be connected by a wiring 23 that is different from the wiring that connects the servers and the memory nodes. Further, the adapter 22E may be connected between the gateway servers, for example, between the gateway servers 21A and 21B. Thus, packet transfer can be performed between the gateway servers and between the gateway server and the memory node using the wiring 23. For example, the packet may be transferred in the order of gateway server 21A → gateway server 21B → gateway server 21C → memory node (4, 7). Alternatively, the packet may be transferred in the order of gateway server 21A → gateway server 21D → memory node (5, 4).

以上説明したように第6実施形態によれば、ゲートウェイサーバとストレージ装置内のメモリノードとの間でパケット転送を行う際に、転送時間を短縮させることができる。その他の構成及び効果は、前述した第1実施形態と同様である。   As described above, according to the sixth embodiment, when packet transfer is performed between the gateway server and the memory node in the storage apparatus, the transfer time can be shortened. Other configurations and effects are the same as those of the first embodiment described above.

[第7実施形態]
第7実施形態は、転送機能を有するメモリノードを複数備えたストレージ装置と、ストレージ装置の一部のメモリノードが、隣接ノードと接続された入出力ポート以外の入出力ポート(非隣接ポート)を有し、前記一部のメモリノードが、前記非隣接ポートにより、制御コンピュータもしくは隣接しないメモリノード(非隣接ノード)と接続された構成を有する。
[Seventh Embodiment]
In the seventh embodiment, a storage device having a plurality of memory nodes having a transfer function, and a part of the storage device have input / output ports (non-adjacent ports) other than input / output ports connected to adjacent nodes. And a part of the memory nodes is connected to a control computer or a memory node that is not adjacent (non-adjacent node) by the non-adjacent port.

[1]ストレージシステムの構成
図22は、第7実施形態のストレージシステムの構成を示す図である。
[1] Configuration of Storage System FIG. 22 is a diagram showing the configuration of the storage system of the seventh embodiment.

図示するように、ストレージシステムは、複数のメモリノード11を含むストレージ装置10、及びストレージ装置10に接続されたゲートウェイサーバ21Aを備える。ストレージ装置10は、図1に示したように、データ転送機能を有するメモリノードが相互に複数接続された構成を有する。ストレージ装置10の外周部に配置されたメモリノード(7,1)には、アダプタ22Aを介してゲートウェイサーバ21Aが接続されている。   As illustrated, the storage system includes a storage apparatus 10 including a plurality of memory nodes 11 and a gateway server 21A connected to the storage apparatus 10. As shown in FIG. 1, the storage apparatus 10 has a configuration in which a plurality of memory nodes having a data transfer function are connected to each other. A gateway server 21A is connected to the memory nodes (7, 1) arranged on the outer periphery of the storage apparatus 10 via an adapter 22A.

ストレージ装置10の内部に配置されたメモリノード(3,3)、(3,8)、(8,3)、(8,8)は、隣接ノードと接続された入出力ポート以外の入出力ポート(非隣接ポート)を有する。非隣接ポート間は配線24により接続されている。例えば、メモリノード(3,3)と(3,8)間、メモリノード(3,8)と(8,8)間、メモリノード(8,8)と(8,3)間、及びメモリノード(8,3)と(3,3)間が、配線24により相互に接続されている。   Memory nodes (3, 3), (3, 8), (8, 3), (8, 8) arranged inside the storage apparatus 10 are input / output ports other than the input / output ports connected to the adjacent nodes. (Non-adjacent port). Non-adjacent ports are connected by wiring 24. For example, between memory nodes (3, 3) and (3, 8), between memory nodes (3, 8) and (8, 8), between memory nodes (8, 8) and (8, 3), and memory nodes (8,3) and (3,3) are connected to each other by a wiring 24.

非隣接ノードに接続されたメモリノードは、物理的な位置によって決まるアドレスに加えて、非隣接ノードと接続されたメモリノード同士の相対的な物理位置によって決まる付加アドレスを持つ。非隣接ノードと接続されたメモリノードは、自ノード以外のメモリノードを宛先とするパケットを受信した場合、自ノードのパケットコントローラが、自ノードの付加アドレス、もしくは自ノード以外の、非隣接ノードに接続されたメモリノードの付加アドレスのいずれか一つを少なくとも含む情報に基づいてパケットの出力ポートを決定する。   A memory node connected to a non-adjacent node has an additional address determined by a relative physical position of memory nodes connected to the non-adjacent node, in addition to an address determined by a physical position. When a memory node connected to a non-adjacent node receives a packet destined for a memory node other than the self-node, the packet controller of the self-node will send an additional address of the self-node or a non-adjacent node other than the self-node. A packet output port is determined based on information including at least one of the additional addresses of the connected memory nodes.

[2]ストレージシステムのパケット転送
まず、隣接しないメモリノード(非隣接ノード)同士の接続が、ストレージ装置10内のパケット転送回数に与える影響について説明する。前述したように、一部の非隣接ノードが非隣接ポートによって相互接続されたストレージ装置を図22に、全メモリノードの入出力ポート数が同じで、非隣接ノード間の接続が無いストレージ装置を図23に示す。
[2] Packet Transfer in Storage System First, the influence of the connection between non-adjacent memory nodes (non-adjacent nodes) on the number of packet transfers in the storage apparatus 10 will be described. As described above, FIG. 22 shows a storage apparatus in which some non-adjacent nodes are interconnected by non-adjacent ports, and FIG. 22 shows a storage apparatus in which the number of input / output ports of all memory nodes is the same and there is no connection between non-adjacent nodes. It shows in FIG.

これらストレージ装置において、アドレス(7,0)のゲートウェイサーバ21Aから、メモリノード(7,8)にデータパケットを送付するケースを考える。   In these storage apparatuses, consider a case in which a data packet is sent from the gateway server 21A at the address (7, 0) to the memory node (7, 8).

非隣接ノード間の接続が無い場合(図23)、最短のデータ転送経路は、ゲートウェイサーバ21A(7,0)→メモリノード(7,1)→(7,2)→(7,3)→(7,4)→(7,5)→(7,6)→(7,7)→(7,8)である。よって、ゲートウェイサーバ21Aからメモリノード(7,8)にパケット転送を行う際の(ゲートウェイサーバとメモリノード間、及びメモリノードとメモリノード間の)総パケット転送回数は8回である。   When there is no connection between non-adjacent nodes (FIG. 23), the shortest data transfer path is gateway server 21A (7,0) → memory node (7,1) → (7,2) → (7,3) → (7, 4) → (7, 5) → (7, 6) → (7, 7) → (7, 8). Therefore, the total number of packet transfers (between the gateway server and the memory node and between the memory node and the memory node) when performing packet transfer from the gateway server 21A to the memory node (7, 8) is eight.

他方、非隣接ノード間が相互接続されている場合(図22)、ゲートウェイサーバ21A→メモリノード(7,1)→(7,2)→(7,3)→(8,3)→(8,8)→(7,8)が最短経路になり、6回の転送でパケットをゲートウェイサーバ21Aから送信先メモリノード(7,8)に送ることができる。   On the other hand, when non-adjacent nodes are interconnected (FIG. 22), gateway server 21A → memory node (7, 1) → (7, 2) → (7, 3) → (8, 3) → (8 , 8) → (7, 8) is the shortest path, and the packet can be sent from the gateway server 21A to the destination memory node (7, 8) in six transfers.

このように、一部の隣接しないメモリノード同士を増設した入出力ポートによって接続し、それら入出力ポート間の接続配線を用いてパケット転送を行うことにより、送信先ノードに到達するまでのパケット転送回数を低減でき、転送時間を短縮することができる。   In this way, some non-adjacent memory nodes are connected by an additional input / output port, and packet transfer is performed using connection wiring between these input / output ports, so that packet transfer until reaching the destination node The number of times can be reduced and the transfer time can be shortened.

但し、図22に示すように、非隣接ノード間が接続されたストレージ装置では、メモリノードとメモリノード間、或いはメモリノードとゲートウェイサーバ21A間の物理的な距離と、それらのデータ転送上の距離が必ずしも一致しない点に注意が必要である。   However, as shown in FIG. 22, in a storage apparatus in which non-adjacent nodes are connected, the physical distance between the memory node and the memory node or between the memory node and the gateway server 21A and the distance in data transfer between them. Note that does not necessarily match.

前述したように、アドレス(7,0)のゲートウェイサーバ21Aから、メモリノード(7,8)のにデータパケットを送付する場合において、非隣接ノード間の接続が存在しないストレージ装置(図23)では、パケットの最低総転送回数(8回)は、パケット送信元と送信先の物理的な位置で決まるアドレス(ゲートウェイサーバ21A(7,0)、メモリノード(7,8))の差に等しい。   As described above, when a data packet is sent from the gateway server 21A at the address (7, 0) to the memory node (7, 8), the storage device (FIG. 23) in which there is no connection between non-adjacent nodes. The minimum total packet transfer count (8 times) is equal to the difference between the addresses (gateway server 21A (7, 0), memory node (7, 8)) determined by the physical location of the packet source and destination.

他方、前述したように、非隣接ノード間が接続された図22のストレージ装置では、同じ物理アドレスを有するゲートウェイサーバ21A(7,0)〜送信先メモリノード(7,8)間のパケット通信を、6回の転送で行うことができる。このように、非隣接ノード間が接続されたストレージ装置では、物理的な最短距離と、データ転送上の最短距離が異なるため、物理的な位置によって決まるアドレスのみでパケットの最短転送経路を決定することはできない。   On the other hand, as described above, in the storage apparatus of FIG. 22 in which non-adjacent nodes are connected, packet communication between the gateway server 21A (7, 0) and the destination memory node (7, 8) having the same physical address is performed. , 6 transfers can be performed. In this way, in a storage apparatus in which non-adjacent nodes are connected, the shortest physical distance and the shortest distance in data transfer are different, so the shortest transfer path of a packet is determined only by an address determined by the physical position. It is not possible.

そこで、非隣接ノード間が接続されたストレージ装置では、これら非隣接ノードに接続されたメモリノード同士の相対的な物理位置を反映したアドレス(以下、サブアドレスと記す)を非隣接ノードに接続されたメモリノードに追加付与し、全メモリノードに与えられた、物理位置を反映したアドレス(以下、メインアドレスと記す)とサブアドレスの両者からデータ転送経路・パケット転送先を決定すれば、前述したアルゴリズムに従って効率良くパケット転送を行うことができる。なお、図22では、メインアドレスを丸括弧で、サブアドレスを四角括弧で表示している。また、前記非隣接ノードに接続されたメモリノードは、例えば図22に示したメモリノード(3,3)、(3,8)、(8,3)、(8,8)を指す。   Therefore, in storage devices connected between non-adjacent nodes, addresses reflecting the relative physical positions of memory nodes connected to these non-adjacent nodes (hereinafter referred to as subaddresses) are connected to non-adjacent nodes. If the data transfer route / packet transfer destination is determined from both the sub-address and the address (hereinafter referred to as the main address) that is given to all memory nodes and reflects the physical location, it is given to all the memory nodes according to the algorithm described above. Packet transfer can be performed efficiently. In FIG. 22, the main address is displayed in parentheses and the sub address is displayed in square brackets. The memory nodes connected to the non-adjacent nodes indicate, for example, the memory nodes (3, 3), (3, 8), (8, 3), (8, 8) shown in FIG.

但し、前述したように効率良くパケット転送を行うためには、パケットのヘッダー部に必要なアドレス情報が全て書かれていること、転送先決定に用いられる、パケットの送信元アドレス及び送信先アドレスを適宜書き換えること等が必要である。これらについて、次に説明する。   However, as described above, in order to perform packet transfer efficiently, all the necessary address information is written in the header part of the packet, and the source address and destination address of the packet used for determining the transfer destination are set. It is necessary to rewrite as appropriate. These will be described next.

非隣接ノードに接続されたメモリノードを有するストレージシステムでパケット転送を行う場合、望ましいパケットのヘッダー部のアドレス情報の一例を図24に示す。   FIG. 24 shows an example of address information of a header portion of a desired packet when packet transfer is performed in a storage system having a memory node connected to a non-adjacent node.

ここで、最終送信先ノードと送信元ノードは、それぞれパケットを最終的に届ける宛先のノードと、パケットを最初に作成・発信するノードを意味する。他方、一時送信先ノードアドレスと一時送信元ノードアドレスは、各メモリノードでパケット転送先決定に用いられるアドレスであり、パケットの通信過程で書き換えられる。このときの書き換えルールについては後述する。   Here, the final transmission destination node and the transmission source node mean a destination node that finally delivers the packet and a node that first creates and transmits the packet. On the other hand, the temporary transmission destination node address and the temporary transmission source node address are addresses used for determining the packet transfer destination in each memory node, and are rewritten in the packet communication process. The rewrite rule at this time will be described later.

なお、一時送信先/送信元アドレスのタイプは、そのアドレスが、メインアドレスとサブアドレスのどちらであるか区別するためのものである。また、第1中継ノード、第2中継ノードは、パケット送信時に経由すべき非隣接ノードに接続されたメモリノードであり、送信元ノードに最も近い非隣接ノードに接続されたメモリノードが第1中継ノード、最終送信先ノードに最も近い非隣接ノードに接続されたメモリノードが第2中継ノードである。   The type of temporary transmission destination / transmission source address is used to distinguish whether the address is a main address or a sub address. Further, the first relay node and the second relay node are memory nodes connected to non-adjacent nodes that should be routed at the time of packet transmission, and the memory node connected to the non-adjacent node closest to the transmission source node is the first relay node. The memory node connected to the non-adjacent node closest to the node and the final destination node is the second relay node.

図22に示したように、隣接しないメモリノードと一部のメモリノードが接続されたストレージ装置を含むシステムで、非隣接ノード間の接続を経由したパケット転送を行う場合、パケットを受信したメモリノードにおけるパケット転送先決定やパケットのヘッダー部の修正等は、例えば次のようなルールで行うことが好ましい。   As shown in FIG. 22, in a system including a storage apparatus in which a non-adjacent memory node and a part of memory nodes are connected, when performing packet transfer via connection between non-adjacent nodes, the memory node that received the packet It is preferable to perform packet transfer destination determination, packet header correction, and the like in FIG.

(a)追加の入出力ポート(非隣接ポート)を有しないメモリノードがパケットを受信した場合、パケットコントローラがパケットのヘッダー部に記録されたアドレス情報を調べ、
(i) 最終送信先ノードのアドレスが自ノードのアドレスと一致する場合には、パケット転送を行わない。
(A) When a memory node that does not have an additional input / output port (non-adjacent port) receives a packet, the packet controller examines address information recorded in the header of the packet,
(i) If the address of the final destination node matches the address of its own node, packet transfer is not performed.

(ii) 最終送信先ノードのアドレスが自ノードのアドレスと異なる場合には、一時送信元ノード、一時送信先ノード、自ノードのメインアドレスを参照して転送先を決定し、隣接したメモリノードにパケットを送信する。     (ii) If the address of the final destination node is different from the address of its own node, determine the transfer destination by referring to the temporary source node, temporary destination node, and the main address of its own node, and Send the packet.

(b)非隣接ノードに接続されたメモリノードがパケットを受信した場合、パケットコントローラはパケットのヘッダー部に記録されたアドレス情報を調べ、
(i) 自ノードのアドレスが最終送信先ノードのアドレスと一致する場合には、パケット転送を行わない。
(B) When the memory node connected to the non-adjacent node receives the packet, the packet controller examines the address information recorded in the header part of the packet,
(i) If the address of the own node matches the address of the final destination node, packet transfer is not performed.

(ii) 自ノードのアドレスが、最終送信先ノードのアドレスと異なり、
(1) 第1中継ノードのアドレスと一致する場合は、パケットのヘッダー部の一時送信先、一時送信元のアドレスを、それぞれ第2中継ノードのサブアドレス、自ノードのサブアドレスに書き換える。さらに、一時送信元ノード、一時送信先ノード、自ノードのサブアドレスを参照して転送先を決定し、他の非隣接ノードに接続されたメモリノードにパケットを送信する。
(ii) The address of its own node is different from the address of the final destination node,
(1) If it matches the address of the first relay node, the temporary transmission destination and temporary transmission source addresses in the header of the packet are rewritten to the subaddress of the second relay node and the subaddress of the own node, respectively. Further, the transfer destination is determined with reference to the subaddress of the temporary transmission source node, temporary transmission destination node, and own node, and the packet is transmitted to the memory node connected to another non-adjacent node.

(2) 第2中継ノードのアドレスと一致する場合は、一時送信先アドレスを最終送信先ノードのメインアドレス、一時送信元アドレスを自ノードのメインアドレスに変更する。さらに、一時送信元ノード、一時送信先ノード、自ノードのメインアドレスを参照して転送先を決定し、隣接した他のメモリノードにパケットを転送する。       (2) If it matches the address of the second relay node, the temporary transmission destination address is changed to the main address of the final transmission destination node, and the temporary transmission source address is changed to the main address of the own node. Further, the transfer destination is determined with reference to the main address of the temporary transmission source node, temporary transmission destination node, and own node, and the packet is transferred to another adjacent memory node.

(3) 第1中継ノード、第2中継ノードのいずれのアドレスとも異なり、さらにパケットのヘッダー部に書かれた一時送信先アドレスと一時送信元アドレスがサブアドレスである場合には、一時送信元ノード、一時送信先ノード、自ノードのサブアドレスを参照して転送先を決定し、他の非隣接ノードに接続されたメモリノードにパケットを転送する。       (3) When the temporary transmission destination address and the temporary transmission source address written in the header part of the packet are subaddresses, unlike the addresses of the first relay node and the second relay node, the temporary transmission source node, The transfer destination is determined with reference to the subaddress of the temporary transmission destination node and its own node, and the packet is transferred to the memory node connected to another non-adjacent node.

(4) 第1中継ノード、第2中継ノードのいずれのアドレスとも異なり、さらに一時送信先アドレスと一時送信元アドレスがメインアドレスである場合には、一時送信元ノード、一時送信先ノード、自ノードのメインアドレスを参照して転送先を決定し、他の隣接したメモリノードにパケットを転送する。       (4) Unlike the addresses of the first relay node and the second relay node, and when the temporary transmission destination address and the temporary transmission source address are main addresses, the temporary transmission source node, the temporary transmission destination node, and the own node The transfer destination is determined with reference to the main address of the packet, and the packet is transferred to another adjacent memory node.

次に、非隣接ノード間の接続を併用してパケット送信を行う例として、図22に示したシステムで、クライアントがゲートウェイサーバ21Aを介してストレージ装置にファイルを書き込む手続きを説明する。   Next, as an example of performing packet transmission using a connection between non-adjacent nodes together, a procedure for a client to write a file to the storage device via the gateway server 21A in the system shown in FIG. 22 will be described.

図25は、図22に示したストレージシステムにおける書き込み動作を示す図である。   FIG. 25 is a diagram showing a write operation in the storage system shown in FIG.

まず、クライアントは、ファイルとファイルIDとをゲートウェイサーバ21Aに送信する((1)参照)。ファイルIDは、ファイルを一意に特定できる識別子である。   First, the client transmits a file and a file ID to the gateway server 21A (see (1)). The file ID is an identifier that can uniquely identify a file.

次に、ゲートウェイサーバ21Aは、ファイルを規定サイズのデータに分割し、分割した各データに分割データIDを割り振る。さらに、ファイルIDと分割データIDをファイルテーブルに書き込む。分割データIDは、分割されたデータを一意に特定できる識別子である((2)参照)。   Next, the gateway server 21A divides the file into data of a prescribed size and assigns a divided data ID to each divided data. Further, the file ID and the divided data ID are written in the file table. The divided data ID is an identifier that can uniquely identify the divided data (see (2)).

次に、ゲートウェイサーバ21Aは、分割データIDの情報に基づき、分割データを書き込む書き込み先のメモリノード(以下、書き込みノード)のアドレスを決定する(図22ではメインアドレス(7,8)のメモリノード)。   Next, the gateway server 21A determines an address of a write destination memory node (hereinafter referred to as a write node) to write the divided data based on the information of the divided data ID (in FIG. 22, the memory node of the main address (7, 8)). ).

次に、下記手順で、ゲートウェイサーバ21Aから書き込みノードにパケットを転送する際に、通信時間(パケット転送回数)が最小となる経路を求める:
1. ゲートウェイサーバ21Aに最も近い、非隣接ノードに接続されたメモリノード(第1中継ノード)と、書き込みノードに最も近接した非隣接ノードに接続されたメモリノード(第2中継ノード)のそれぞれのアドレスを調べる。図22で(7,8)に書き込む場合、ゲートウェイサーバ21Aと書き込みノードのそれぞれの最近接の非隣接ノードに接続されたメモリノードは、メインアドレス(8,3)、(8,8)のメモリノードである。
Next, in the following procedure, when a packet is transferred from the gateway server 21A to the writing node, a route that minimizes the communication time (number of packet transfers) is obtained:
1. Each of a memory node (first relay node) connected to a non-adjacent node closest to the gateway server 21A and a memory node (second relay node) connected to a non-adjacent node closest to the write node Look up the address. When writing to (7, 8) in FIG. 22, the memory nodes connected to the closest non-adjacent nodes of the gateway server 21A and the writing node are the memories of the main addresses (8, 3) and (8, 8). It is a node.

2. 非隣接ノード間の接続を含む最短経路と、含まない最短経路を求める。図22でメモリノード(7,8)に書込む場合、前者は、ゲートウェイサーバ21A→メモリノード(7,1)→(7,2)→(7,3)→(8,3)([2,1])→(8,8)([2,2])→(7,8)であり、後者は、ゲートウェイサーバ21A→メモリノード(7,1)→(7,2)→(7,3)→(7,4)→(7,5)→(7,6)→(7,7)→(7,8)である。   2. Find the shortest path that includes connections between non-adjacent nodes and the shortest path that does not. When writing to the memory node (7, 8) in FIG. 22, the former is the gateway server 21A → memory node (7,1) → (7,2) → (7,3) → (8,3) ([2 , 1]) → (8,8) ([2,2]) → (7,8), the latter being the gateway server 21A → memory node (7,1) → (7,2) → (7,8). 3) → (7,4) → (7,5) → (7,6) → (7,7) → (7,8).

3. 隣接ノードとのみ接続されたメモリノード間の経路についてはメインアドレスで、非隣接ノードに接続されたメモリノード間の経路は、サブアドレスを元にして、それぞれの経路でパケット送信を行う際に生じる転送回数を算出する。図22でメモリノード(7,8)に書き込む場合、非隣接ノードに接続されたメモリノードを介する最短経路の転送回数は6回であり、非隣接ノードに接続されたメモリノードを介さない最短経路では、転送回数は8回である。   3. The route between memory nodes connected only to adjacent nodes is the main address, and the route between memory nodes connected to non-adjacent nodes is based on sub-addresses when packets are sent on each route. Calculate the number of transfers that occur. When writing to the memory node (7, 8) in FIG. 22, the number of transfers of the shortest path through the memory node connected to the non-adjacent node is 6, and the shortest path not through the memory node connected to the non-adjacent node Then, the number of transfers is eight.

4. パケット転送回数が小さい方の経路をデフォルト経路として決定する((3)参照)。以下では、非隣接ノード間の接続を含む経路の方が、含まない経路よりもパケット転送回数が少ないケースについて説明する。   4. Determine the route with the smaller number of packet transfers as the default route (see (3)). Hereinafter, a case will be described in which a route including a connection between non-adjacent nodes has a smaller number of packet transfers than a route not including the connection.

・アドレスデータ、書き込み命令等からなるヘッダー部を、書き込みデータに付加した書き込みパケットをゲートウェイサーバ21Aで作成する。なお、パケットのヘッダー部に記録されたアドレス情報の一時送信先は第1中継ノードのメインアドレス(図22では(8,3))とし、一時送信元はパケット送信元のメインアドレス(図22では(7,0))とする。   The gateway server 21A creates a write packet in which a header portion composed of address data, a write command, etc. is added to the write data. The temporary transmission destination of the address information recorded in the packet header is the main address of the first relay node ((8, 3) in FIG. 22), and the temporary transmission source is the main address of the packet transmission source (in FIG. 22). (7, 0)).

・作成した書き込みパケットを、ゲートウェイサーバ21Aからゲートウェイサーバ21Aに接続されたメモリノードに転送する((4)参照)。   Transfer the created write packet from the gateway server 21A to the memory node connected to the gateway server 21A (see (4)).

・前述したアルゴリズムに従って、一時送信先メモリノード(図22ではメインアドレス(8,3)の第1中継ノード)に到達するまで、メモリノード間で書き込みパケットの転送を行う(各メモリノードは一時送信先、一時送信元、自ノードのメインアドレスを参照して転送先を決定する)((5)参照)。   In accordance with the algorithm described above, write packets are transferred between the memory nodes until the temporary destination memory node (the first relay node of the main address (8, 3) in FIG. 22) is reached (each memory node is temporarily transmitted). The transfer destination is determined by referring to the destination, the temporary transmission source, and the main address of the own node) (see (5)).

・書き込みパケットを受け取った第1中継ノードは、パケットのヘッダー部を読み、パケットの最終送信先ノードが他のメモリノードであり、第1中継ノードが自ノードであることから、一時送信先を第2中継ノードのサブアドレス(図22では[2,2])、一時送信元を自ノードのサブアドレス(図22では[2,1]))に変更する((6)参照)。さらに、隣接した非隣接ノードに接続されたメモリノードにパケットを転送する((7)参照)。   The first relay node that has received the write packet reads the header of the packet, and since the final destination node of the packet is another memory node and the first relay node is its own node, 2 The sub-address of the relay node ([2, 2] in FIG. 22) and the temporary transmission source are changed to the sub-address of the own node ([2, 1] in FIG. 22) (see (6)). Further, the packet is transferred to the memory node connected to the adjacent non-adjacent node (see (7)).

・前述したアルゴリズムに従い、一時送信先メモリノードである第2中継ノードに到達するまで、非隣接ノードに接続されたメモリノード間で書き込みパケットの転送を行う(各メモリノードは一時送信先、一時送信元、自ノードのサブアドレスを参照して転送先を決定する)。   In accordance with the algorithm described above, write packets are transferred between memory nodes connected to non-adjacent nodes until reaching the second relay node which is a temporary transmission destination memory node (each memory node is a temporary transmission destination, temporary transmission The forwarding destination is determined by referring to the subaddress of the original node and the own node).

・書き込みパケットを受信した第2中継ノードは、パケットのヘッダー部を読み、最終送信先が他のメモリノードで、第2中継ノードが自ノードであることから、一時送信先を最終送信先ノードのメインアドレス(図22では書き込みノード(7,8))、一時送信元を自ノードのメインアドレス(図22では(8,8))に変更する((8)参照)。さらに、隣接したメモリノードに書き込みパケットを転送する。   The second relay node that has received the write packet reads the header part of the packet, and since the final transmission destination is another memory node and the second relay node is its own node, the temporary transmission destination is the final transmission destination node. The main address (write node (7, 8) in FIG. 22) and the temporary transmission source are changed to the main address of the own node ((8, 8) in FIG. 22) (see (8)). Further, the write packet is transferred to the adjacent memory node.

・一時送信元ノード、一時送信先ノード、自ノードのメインアドレスを参照して、前述したアルゴリズムによりメモリノード間で転送が繰り返され、最終送信先である書き込みノード(図8ではメインアドレス(7,8))に書き込みパケットが到達する((9)参照)。   With reference to the main addresses of the temporary transmission source node, temporary transmission destination node, and own node, the transfer is repeated between the memory nodes by the algorithm described above, and the write node (the main address (7, The write packet arrives at 8)) (see (9)).

・パケットを受信した書き込みノードは、最終送信先が自ノードであることから、パケットを転送せず、ヘッダー部のアドレス情報や書き込みデータ等を自ノードのメモリ16に書き込む((10)参照)。その後、宛先や中継先を逆にした書き込み完了報告のパケットを作成する。このパケットでは、発信元ノードを書き込みノードの(7,8)とし、最終送信先ノードをゲートウェイサーバ21Aの(7,0)、第1中継ノードをメインアドレス(8,8)(サブアドレス[2,2])のノード、第2中継ノードをメインアドレス(8,3)(サブアドレス[2,1])のノードとする。その後、書き込み完了報告のパケットを前述した手順と同様の手続きで、ゲートウェイサーバ21Aへ返信する((11)参照)。全分割データの書き込みが終わった後、ゲートウェイサーバ21Aはクライアントにファイル書き込みの終了報告を行う。   The writing node that has received the packet does not transfer the packet because the final transmission destination is its own node, and writes address information, write data, and the like of the header portion to the memory 16 of its own node (see (10)). After that, a write completion report packet is created with the destination and relay destination reversed. In this packet, the source node is the write node (7, 8), the final destination node is (7, 0) of the gateway server 21A, and the first relay node is the main address (8, 8) (subaddress [2, 2). 2]) and the second relay node are nodes of the main address (8, 3) (sub-address [2, 1]). Thereafter, the write completion report packet is returned to the gateway server 21A in the same procedure as described above (see (11)). After all the divided data has been written, the gateway server 21A reports the end of file writing to the client.

前述した例では、隣接ノードと接続された入出力ポート以外の入出力ポート(非隣接ポート)を有し、隣接しないメモリノード同士が非隣接ポートによって相互接続されたメモリノードを有するストレージ装置にクライアントがファイルを書き込む手順を説明したが、メモリノードに書き込まれたデータの読み出し・消去やメモリの空き容量確認などのため、読み出し命令・消去命令や空き容量の返信命令等をゲートウェイサーバからストレージ装置のメモリノードに送る場合も、非隣接ノード間の接続を介して通信を行うことでパケット転送時間を短縮することができる。さらに、読み出したデータや問合せ結果などをメモリノードからゲートウェイサーバに送る場合などにおいても、非隣接ノード間の接続を介して通信を行うことでパケット転送時間を短縮することができる。   In the above-described example, a client is connected to a storage apparatus having an input / output port (non-adjacent port) other than an input / output port connected to an adjacent node and having memory nodes in which non-adjacent memory nodes are interconnected by non-adjacent ports. Explained the procedure for writing files, but in order to read / erase data written to the memory node and to check the free space of the memory, etc., a read command / erase command and a free space return command are sent from the gateway server to the storage device. Also in the case of sending to the memory node, the packet transfer time can be shortened by performing communication through the connection between the non-adjacent nodes. Furthermore, even when the read data or inquiry results are sent from the memory node to the gateway server, the packet transfer time can be shortened by performing communication via the connection between the non-adjacent nodes.

前述したように、隣接しないノード間の接続を介してデータ送信を行うことでパケットの平均転送回数を減らすことが可能である。なお、追加入出力ポート(非隣接ポート)によって非隣接ノードと接続されるメモリノードは、ストレージ装置内で均一に分散して配置されていることが好ましい。   As described above, it is possible to reduce the average number of packet transfers by performing data transmission through connections between non-adjacent nodes. Note that the memory nodes connected to the non-adjacent nodes by the additional input / output ports (non-adjacent ports) are preferably arranged uniformly distributed in the storage apparatus.

例えば、10×10のメモリノードから構成されている図22に示したストレージ装置では、5×5のメモリノードを含む4つの領域に分割(境界を点線で示す)し、各領域の中心に位置するメモリノード(3,3)、(8,3)、(3,8)、(8,8)同士を増設ポート(非隣接ポート)で接続している。この場合には、どの5×5のメモリノードブロックにも、1つの追加入出力ポート(非隣接ポート)を有するメモリノードが存在する。   For example, in the storage apparatus shown in FIG. 22 composed of 10 × 10 memory nodes, the area is divided into four areas including 5 × 5 memory nodes (the boundary is indicated by a dotted line) and positioned at the center of each area. The memory nodes (3, 3), (8, 3), (3, 8), and (8, 8) are connected to each other by extension ports (non-adjacent ports). In this case, there is a memory node having one additional input / output port (non-adjacent port) in any 5 × 5 memory node block.

このように、含まれるメモリノード数が同じであるような、複数の領域にストレージ装置を分割し、その中心のメモリノードを追加入出力ポート付きのメモリノードとして相互接続することで、追加入出力ポート付きのメモリノードをストレージ装置内で均一に分散配置させることができる。   In this way, the storage device is divided into multiple areas where the number of included memory nodes is the same, and the central memory node is interconnected as a memory node with an additional input / output port. Memory nodes with ports can be uniformly distributed in the storage apparatus.

なお、例えば、al×bmのノードから構成されたストレージ装置をl×mずつの領域ab個に分割し、各領域の中心に位置するメモリノード同士を追加入出力ポートにより接続する場合、(cl+d、em+f)(a≧c≧0、b≧e≧0、l≧d≧0、m≧f≧0)で表わされるメモリノードに最も近く、各領域の中心に位置する追加入出力ポート付きのメモリノードアドレスは、(cl+round(l/2,0)、em+round(m/2,0))で表わされる。(round(A,0)は、Aの小数点以下を四捨五入する関数)。   For example, when a storage apparatus composed of nodes of al × bm is divided into a × b areas of l × m, and memory nodes located at the center of each area are connected by an additional input / output port, (cl + d , Em + f) (a ≧ c ≧ 0, b ≧ e ≧ 0, l ≧ d ≧ 0, m ≧ f ≧ 0) with an additional input / output port located at the center of each region. The memory node address is represented by (cl + round (l / 2, 0), em + round (m / 2, 0)). (Round (A, 0) is a function that rounds off the decimal point of A).

さて、ストレージ装置において、隣接しない一部のメモリノード間を接続することで生じる課題は、その接続を介して通信を行うパケットの数が増えると、パケット通信の渋滞が生じやすくなることである。   In the storage apparatus, a problem caused by connection between some memory nodes that are not adjacent to each other is that packet communication congestion is likely to occur as the number of packets that are communicated via the connection increases.

これに対して、隣接したメモリノード間よりも、隣接しないメモリノード間のパケット通信速度を高くすることで、このパケット転送の渋滞を緩和させることができる。但し、この場合には、ゲートウェイサーバにおいて、パケット転送のデフォルト経路決定時に行う、非隣接ノード間の接続を介する最短経路と、非隣接ノード間の接続を経由しない最短経路の総パケット通信時間の算出に注意が必要である。総パケット通信時間は、メモリノード間の通信時間とパケット転送回数の積に等しい。従って、隣接したメモリノード間と隣接しないメモリノード間のデータ通信速度が等しい場合には、前述したように、各経路の転送回数でデータ通信時間を比較することができる。しかし、パケット送信速度が異なる場合には、転送回数だけで総パケット通信時間を比べることができない。   In contrast, by increasing the packet communication speed between non-adjacent memory nodes as compared to between adjacent memory nodes, this packet transfer congestion can be alleviated. However, in this case, the gateway server calculates the total packet communication time for the shortest route through the connection between non-adjacent nodes and the shortest route through the connection between non-adjacent nodes, which is performed when determining the default route for packet transfer. It is necessary to pay attention to. The total packet communication time is equal to the product of the communication time between memory nodes and the number of packet transfers. Therefore, when the data communication speeds between adjacent memory nodes and non-adjacent memory nodes are equal, as described above, the data communication times can be compared with the number of transfers of each path. However, if the packet transmission rates are different, the total packet communication time cannot be compared only by the number of transfers.

通信速度の逆数(速度=距離/時間であるから、これは通信時間に比例)と転送回数の積を参照することで、非隣接ノード同士の接続を経由する経路と、非隣接ノード同士の接続を経由しない経路の総パケット通信時間を正確に比較することができる。しかし、前述した例のように、隣接したノード間の接続と非隣接ノード間の接続がパケット通信経路で混在している場合、この計算は煩雑なものとなる。   By referring to the product of the reciprocal of the communication speed (speed = distance / time, so this is proportional to the communication time) and the number of transfers, the path via the connection between non-adjacent nodes and the connection between non-adjacent nodes It is possible to accurately compare the total packet communication time of routes that do not pass through. However, when the connection between adjacent nodes and the connection between non-adjacent nodes are mixed in the packet communication path as in the example described above, this calculation becomes complicated.

隣接ノード間と非隣接ノード間でパケット通信速度が異なるストレージ装置では、付与するアドレスのステップをパケット通信速度に逆比例させ、そのアドレス差を転送回数と見なすのも一つの方法である。   In a storage apparatus in which the packet communication speed is different between adjacent nodes and non-adjacent nodes, one method is to consider the address step to be given inversely proportional to the packet communication speed and regard the address difference as the number of transfers.

隣接ノード間よりも非隣接ノード間の方が、パケット通信速度が10倍高い場合のアドレス付与例を図26に示す。図26では、隣接しないノードと接続されたメモリノードには、それら物理位置を反映させながら、あるメモリノードと、そのメモリノードと接続された非隣接ノードとの間で1ずつ異なるようにサブアドレスを付与している(四角括弧で表示)。さらに、図26に示す全メモリノードには、互いの物理的な位置関係を反映させながら、隣り合うメモリノード間で、10ずつ異なるメインアドレスを与えている(丸括弧で表示)。   FIG. 26 shows an example of address assignment when the packet communication speed is 10 times higher between non-adjacent nodes than between adjacent nodes. In FIG. 26, the memory nodes connected to the non-adjacent nodes reflect sub-addresses so that they differ one by one between a certain memory node and a non-adjacent node connected to the memory node while reflecting their physical positions. Is given (indicated by square brackets). Further, all the memory nodes shown in FIG. 26 are given 10 different main addresses between adjacent memory nodes (indicated by parentheses) while reflecting the physical positional relationship with each other.

このようなストレージ装置で、非隣接ノードに接続されたメモリノード間でパケット送信を行う場合は各メモリノードのサブアドレスの差を計算し、隣接メモリノード間でパケット送信を行う場合はメインアドレスの差を計算し、それらを転送回数と見なす。転送回数の算出ルールをこのように定めれば、隣接ノード間と非隣接ノード間で接続速度が異なる場合においても、転送回数だけでパケット通信時間を見積もり、比較することができる。   In such a storage device, when packet transmission is performed between memory nodes connected to non-adjacent nodes, the sub-address difference of each memory node is calculated, and when packet transmission is performed between adjacent memory nodes, the difference between main addresses is calculated. And consider them as the number of transfers. If the rule for calculating the number of transfers is determined in this way, the packet communication time can be estimated and compared only by the number of transfers even when the connection speed is different between adjacent nodes and non-adjacent nodes.

以上説明したように第7実施形態によれば、ゲートウェイサーバとストレージ装置内のメモリノードとの間でパケット転送を行う際に、転送時間を短縮させることができる。その他の構成及び効果は、前述した第1実施形態と同様である。   As described above, according to the seventh embodiment, when packet transfer is performed between the gateway server and the memory node in the storage device, the transfer time can be shortened. Other configurations and effects are the same as those of the first embodiment described above.

[第8実施形態]
第8実施形態では、パケットの平均転送回数を減らすため、ゲートウェイサーバとストレージ装置との間にスイッチングリレーを追加したストレージシステムについて説明する。
[Eighth Embodiment]
In the eighth embodiment, a storage system will be described in which a switching relay is added between the gateway server and the storage apparatus in order to reduce the average number of packet transfers.

[1]ストレージシステムの構成
図27は、第8実施形態のストレージシステムの構成を示す図である。
[1] Configuration of Storage System FIG. 27 is a diagram showing the configuration of the storage system of the eighth embodiment.

図示するように、ストレージシステムは、複数のメモリノード11を含むストレージ装置10、ストレージ装置10に接続されたスイッチングリレー81、及びスイッチングリレー81に接続されたゲートウェイサーバ21Aを備える。   As illustrated, the storage system includes a storage device 10 including a plurality of memory nodes 11, a switching relay 81 connected to the storage device 10, and a gateway server 21A connected to the switching relay 81.

ストレージ装置10は、図1に示したように、データ転送機能を有するメモリノードが相互に複数接続された構成を有する。スイッチングリレー81は、ストレージ装置10の一端側(図27において左端)に配置されたメモリノード(1,1)、(1,2)、(1,3)、(1,4)、(1,5)、(1,6)、(1,7)、(1,8)、(1,9)の全てに接続されている。スイッチングリレー81には、アダプタ22Aを介してゲートウェイサーバ21Aが接続されている。   As shown in FIG. 1, the storage apparatus 10 has a configuration in which a plurality of memory nodes having a data transfer function are connected to each other. The switching relay 81 includes memory nodes (1, 1), (1, 2), (1, 3), (1, 4), (1, 1) arranged on one end side (the left end in FIG. 27) of the storage device 10. 5), (1,6), (1,7), (1,8), and (1,9) are all connected. The gateway server 21A is connected to the switching relay 81 via the adapter 22A.

スイッチングリレー81は、パケットのヘッダー部に記録されたアドレス情報に従い、受信したパケットを指定された送信先ノードに転送する。スイッチングリレー81には、ストレージ装置内のメモリノードとは異なるアドレスが付与されている(図27では四角括弧で表示)。   The switching relay 81 transfers the received packet to the designated destination node according to the address information recorded in the header part of the packet. An address different from that of the memory node in the storage apparatus is given to the switching relay 81 (indicated by square brackets in FIG. 27).

[2]ストレージシステムのパケット転送
第8実施形態のストレージシステムにおいてパケットを転送する手順について説明する。
[2] Packet Transfer of Storage System A procedure for transferring packets in the storage system of the eighth embodiment will be described.

ゲートウェイサーバ21Aから送り出されたパケットは、アダプタ22Aを通ってスイッチングリレー81に入る。スイッチングリレー81に入ったパケットは、スイッチングリレー81と接続された、メモリノード(1,1)、(1,2)、(1,3)、(1,4)、(1,5)、(1,6)、(1,7)、(1,8)、(1,9)のいずれか一つに送られ、その後、送信先アドレスのメモリノードまで転送される。   The packet sent out from the gateway server 21A enters the switching relay 81 through the adapter 22A. Packets entering the switching relay 81 are connected to the switching relay 81 and are connected to the memory nodes (1, 1), (1, 2), (1, 3), (1, 4), (1, 5), ( 1, 6), (1, 7), (1, 8), (1, 9), and then transferred to the memory node of the destination address.

逆に、ストレージ装置10内のメモリノードから発信されたパケットは、メモリノード(1,1)〜(1,9)のいずれか一つのメモリノードに送られ、スイッチングリレー81とアダプタ22Aを介してゲートウェイサーバ21Aに転送される。   On the contrary, the packet transmitted from the memory node in the storage apparatus 10 is sent to any one of the memory nodes (1, 1) to (1, 9), via the switching relay 81 and the adapter 22A. It is transferred to the gateway server 21A.

図27に示したシステムにおいて、ゲートウェイサーバ21Aからスイッチングリレー81とメモリノード(1,9)を介して、メモリノード(5,9)にパケットを送る場合は以下となる。最短経路はスイッチングリレー81→メモリノード(1,9)→(2,9)→(3,9)→(4,9)→(5,9)で、ストレージ装置10内の転送回数は4回である。   In the system shown in FIG. 27, a packet is sent from the gateway server 21A to the memory node (5, 9) via the switching relay 81 and the memory node (1, 9) as follows. The shortest path is switching relay 81 → memory node (1,9) → (2,9) → (3,9) → (4,9) → (5,9), and the number of transfers in the storage apparatus 10 is four times. It is.

他方、図28に示すように、スイッチングリレー81を介さずに、ゲートウェイサーバ21Aがストレージ装置10のメモリノード(1,4)に接続されているシステムでは、ゲートウェイサーバ21Aからメモリノード(5,9)にパケットを送る場合は以下となる。ゲートウェイサーバ21A→メモリノード(1,4)→(1,5)→(1,6)→(1,7)→(1,8)→(1,9)→(2,9)→(3,9)→(4,9)→(5,9)が最短経路の一つであり、ストレージ装置10内でパケットの転送は最低9回必要である。   On the other hand, as shown in FIG. 28, in a system in which the gateway server 21A is connected to the memory node (1, 4) of the storage apparatus 10 without passing through the switching relay 81, the gateway server 21A to the memory node (5, 9 ) To send a packet: Gateway server 21A → memory node (1,4) → (1,5) → (1,6) → (1,7) → (1,8) → (1,9) → (2,9) → (3 , 9) → (4, 9) → (5, 9) is one of the shortest paths, and the packet transfer within the storage apparatus 10 is required at least nine times.

このように、ゲートウェイサーバ21Aとストレージ装置10との間にスイッチングリレー81を導入すると、パケットの転送回数を減らし、転送時間を短縮することができる。   As described above, when the switching relay 81 is introduced between the gateway server 21A and the storage device 10, the number of packet transfers can be reduced and the transfer time can be reduced.

なお、ゲートウェイサーバ21Aからストレージ装置10にパケットを送信するケースについて説明したが、ストレージ装置10内のメモリノードに保存されたデータをゲートウェイサーバ21Aに送信する場合においても、ゲートウェイサーバ21Aとストレージ装置10との間にスイッチングリレー81が存在するシステム(図27)の方が、アダプタを介してゲートウェイサーバ21Aとストレージ装置10が直接接続されたシステム(図28)よりも、一般に、パケットの平均転送回数が少なく、転送時間が短い。   The case of transmitting a packet from the gateway server 21A to the storage apparatus 10 has been described. However, even when data stored in a memory node in the storage apparatus 10 is transmitted to the gateway server 21A, the gateway server 21A and the storage apparatus 10 In general, the system (FIG. 27) in which the switching relay 81 exists between the gateway server 21A and the storage apparatus 10 is directly connected to the gateway server 21A via the adapter (FIG. 28). And transfer time is short.

但し、スイッチングリレーを導入したシステムにおけるパケット転送回数は、スイッチングリレーとストレージ装置間でパケットの送受信を行う際に中継するメモリノードに依存する。例えば、前述したように、図27に示したシステムでゲートウェイサーバ21Aがメモリノード(5,9)との間でパケット転送を行う場合、中継するメモリノードがメモリノード(1,9)であれば、ストレージ装置10内の転送回数は最低4回である。しかし、他のメモリノードを中継した場合には、5回以上の転送が必要である。   However, the number of packet transfers in a system in which a switching relay is introduced depends on the memory node that relays when transmitting and receiving packets between the switching relay and the storage device. For example, as described above, when the gateway server 21A performs packet transfer with the memory node (5, 9) in the system shown in FIG. 27, if the memory node to be relayed is the memory node (1, 9). The number of transfers in the storage apparatus 10 is at least four. However, when another memory node is relayed, transfer is required five times or more.

このように、パケットの転送回数を最小限にするためには、スイッチングリレーに直接接続されたメモリノードのうち、送信先ノードに最も近いメモリノードを中継メモリノードとして選択することが重要である。パケット転送時間が最短となる、中継メモリノードのアドレス算出手順については後述する。   Thus, in order to minimize the number of packet transfers, it is important to select the memory node closest to the transmission destination node as the relay memory node among the memory nodes directly connected to the switching relay. The procedure for calculating the address of the relay memory node that will minimize the packet transfer time will be described later.

なお、スイッチングリレーを介さずにゲートウェイサーバとストレージ装置が接続されたシステムにおいて、ゲートウェイサーバとストレージ装置内のメモリノードとの間でパケット転送を行う場合、送信元と送信先は、ゲートウェイサーバ、メモリノードのいずれかであり、これはパケット転送が行われている間変更されない。   In a system in which a gateway server and a storage device are connected without using a switching relay, when packet transfer is performed between the gateway server and a memory node in the storage device, the transmission source and the transmission destination are the gateway server, the memory Any of the nodes, which is not changed while packet forwarding is taking place.

他方、スイッチングリレーを介してゲートウェイサーバとストレージ装置が接続されたシステムにおいて、パケット転送を行う場合には、まず中継メモリノードを宛先としてパケット転送が行われる。パケットが中継メモリノードに到達した後は、メモリノード(ゲートウェイサーバからメモリノードにパケットを送信する場合)或いはスイッチングリレー(メモリノードからゲートウェイサーバにパケット送信する場合)を送信先としてパケット転送が行われる。すなわち、パケットが中継メモリノードに到達する前後で、パケットの送信先の変更が必要である。   On the other hand, when performing packet transfer in a system in which a gateway server and a storage device are connected via a switching relay, packet transfer is first performed with the relay memory node as the destination. After the packet reaches the relay memory node, packet transfer is performed with the memory node (when the packet is transmitted from the gateway server to the memory node) or the switching relay (when the packet is transmitted from the memory node to the gateway server) as the destination. . That is, the packet transmission destination needs to be changed before and after the packet reaches the relay memory node.

スイッチングリレーを使用したシステムにおいて、パケットのヘッダー部に記録されたアドレス情報の例を図29に示す。ここで、最終送信先ノードと送信元ノードは、それぞれパケットを最終的に届ける宛先のメモリノード、パケットを最初に作成・発信するメモリノードを意味する。他方、一時送信先ノードアドレスと一時送信元ノードアドレスは、各メモリノードでパケット転送先の決定に用いられるアドレスであり、スイッチングリレーに接続された中継メモリノードで書き換えられる(書き換えルールについては後述する)。   FIG. 29 shows an example of the address information recorded in the header part of the packet in the system using the switching relay. Here, the final destination node and the source node mean a destination memory node that finally delivers the packet and a memory node that first creates and transmits the packet. On the other hand, the temporary transmission destination node address and the temporary transmission source node address are addresses used for determining the packet transfer destination in each memory node, and are rewritten in the relay memory node connected to the switching relay (the rewriting rules will be described later). ).

なお、アドレスタイプとは、そのアドレスが、ストレージ装置10内のメモリノードのアドレスであるか、スイッチングリレー81のアドレスであるかを、区別するためのものである。また、中継ノードアドレスは、パケット転送時に経由すべき、スイッチングリレー81と接続されたメモリノードのアドレスである。   The address type is for distinguishing whether the address is an address of a memory node in the storage apparatus 10 or an address of the switching relay 81. Further, the relay node address is an address of a memory node connected to the switching relay 81 that should be passed at the time of packet transfer.

前述したように、スイッチングリレーに接続されたメモリノードでは、パケットのヘッダー部に記録されたアドレス情報の書き換えが行われる。パケットのアドレス情報が図29に示したものである場合、書き換えルールは例えば次のようなものである。   As described above, in the memory node connected to the switching relay, the address information recorded in the header part of the packet is rewritten. When the address information of the packet is as shown in FIG. 29, the rewrite rule is, for example, as follows.

1. 最終送信先ノードが自ノード以外のメモリノードで、送信元がスイッチングリレーである場合、一時送信先を最終送信先ノードに、一時送信元を自ノードに変更する。   1. If the final destination node is a memory node other than its own node and the source is a switching relay, the temporary destination is changed to the final destination node and the temporary source is changed to its own node.

2. 最終送信先ノードがスイッチングリレーである場合、一時送信先をスイッチングリレーに、一時送信元を自ノードに変更する。   2. If the final destination node is a switching relay, change the temporary destination to the switching relay and the temporary source to its own node.

3. 最終送信先が自ノード以外のメモリノードで、送信元もメモリノードである場合、一時送信先、一時送信元共に変更しない。   3. If the final destination is a memory node other than its own node and the source is also a memory node, neither the temporary destination nor the temporary source is changed.

例えば、図27に示したシステムで、クライアントがストレージ装置10にファイルを書き込む手続きは次のようになる。   For example, in the system shown in FIG. 27, the procedure for the client to write a file to the storage apparatus 10 is as follows.

図30は、図27に示したストレージシステムにおける書き込み動作を示す図である。   FIG. 30 is a diagram showing a write operation in the storage system shown in FIG.

まず、クライアントは、ファイルとファイルIDとをゲートウェイサーバ21Aに送信する((1)参照)。ファイルIDは、ファイルを一意に特定できる識別子である。   First, the client transmits a file and a file ID to the gateway server 21A (see (1)). The file ID is an identifier that can uniquely identify a file.

次に、ゲートウェイサーバ21Aは、ファイルを規定サイズのデータに分割し、分割した各データに分割データIDを割り振る。さらに、ファイルIDと分割データIDをファイルテーブルに書き込む。分割データIDは、分割されたデータを一意に特定できる識別子である((2)参照)。   Next, the gateway server 21A divides the file into data of a prescribed size and assigns a divided data ID to each divided data. Further, the file ID and the divided data ID are written in the file table. The divided data ID is an identifier that can uniquely identify the divided data (see (2)).

次に、ゲートウェイサーバ21Aは、分割データIDの情報に基づき、分割データを書き込む書き込み先のメモリノード(書き込みノード)のアドレスを決定する(図27ではアドレス(5,9))。さらに、スイッチングリレー81に接続されたメモリノードのうち、書き込みノードに最も近いメモリノードを中継メモリノードとして、そのアドレスを算出する(図27ではアドレス(1,9))((3)参照)。   Next, the gateway server 21A determines the address of the memory node (write node) to which the divided data is written based on the information of the divided data ID (address (5, 9) in FIG. 27). Further, of the memory nodes connected to the switching relay 81, the memory node closest to the writing node is used as a relay memory node, and the address is calculated (in FIG. 27, the address (1, 9)) (see (3)).

次に、ゲートウェイサーバ21Aは、書き込みデータに、前述したアドレス情報を含むヘッダー部等を付け加えた書き込みパケットを作成する。ここで、一時送信先アドレスは中継ノードアドレス(図27ではアドレス(1,9))、一時送信元ノードアドレスは、スイッチングリレー81のアドレス(図27では[1])とする。その後、パケットをスイッチングリレー81に送信する((4)参照)。   Next, the gateway server 21A creates a write packet in which the header portion including the address information described above is added to the write data. Here, the temporary transmission destination address is the relay node address (address (1, 9) in FIG. 27), and the temporary transmission source node address is the address of the switching relay 81 ([1] in FIG. 27). Thereafter, the packet is transmitted to the switching relay 81 (see (4)).

書き込みパケットを受け取ったスイッチングリレー81は、指定された一時送信先メモリノード(中継メモリノード(1,9))にこの書き込みパケットを送信する((5)参照)。   The switching relay 81 that has received the write packet transmits this write packet to the designated temporary transmission destination memory node (relay memory node (1, 9)) (see (5)).

スイッチングリレー81から書き込みパケットを受信した中継メモリノードは、パケットのヘッダー部を読み、最終送信先ノードがストレージ装置10内の他のメモリノードであることから、以下のようにヘッダー部を書き換えた書き込みパケットを作成する。ヘッダー部において、一時送信元アドレスを自ノードアドレスに、一時送信先ノードアドレスを、最終送信先である書き込みノードのアドレス(図27では(5,9))に変更する((6)参照)。   The relay memory node that has received the write packet from the switching relay 81 reads the header part of the packet, and the final transmission destination node is another memory node in the storage apparatus 10, so that the write with the header part rewritten as follows Create a packet. In the header section, the temporary transmission source address is changed to its own node address, and the temporary transmission destination node address is changed to the address of the writing node which is the final transmission destination ((5, 9) in FIG. 27) (see (6)).

その後、書き込みパケットを隣接したメモリノードに転送する。ストレージ装置10内で適切な転送を繰り返すことにより、書き込みパケットを書き込みノード(図27ではメモリノード(5,9))に到達させる((7)参照)。   Thereafter, the write packet is transferred to the adjacent memory node. By repeating appropriate transfer in the storage device 10, the write packet reaches the write node (memory node (5, 9) in FIG. 27) (see (7)).

書き込み先のメモリノードでは、受け取ったパケットの書き込みデータ、パケット送信元や中継ノードのアドレス等を自ノードのメモリ16に書き込む((8)参照)。その後、書き込み完了報告のパケットを作成し、上記と逆の経路でゲートウェイサーバ21Aに返信する((9)参照)。書き込み完了報告のパケットでは、ヘッダー部のアドレス情報の最終送信先ノードはスイッチングリレーとし、送信元は書き込みノード、中継ノードはゲートウェイサーバ21Aから書き込みノードにパケット転送を行った際と同じメモリノード、一時送信先ノードは中継ノード、一時送信元ノードは書き込みノードとする。前記パケットは、中継メモリノードにおいて、一時送信先をスイッチングリレーに、一時送信元を中継ノードに、ヘッダー部のアドレス情報が書き換えられる((10)参照)。   In the write destination memory node, the write data of the received packet, the address of the packet transmission source, the relay node, and the like are written in the memory 16 of the own node (see (8)). Thereafter, a write completion report packet is created and sent back to the gateway server 21A through the reverse route (see (9)). In the write completion report packet, the final transmission destination node of the address information in the header section is a switching relay, the transmission source is the write node, the relay node is the same memory node as the packet transfer from the gateway server 21A to the write node, The transmission destination node is a relay node, and the temporary transmission source node is a writing node. In the relay memory node, the address information of the header part is rewritten in the relay memory node with the temporary transmission destination as the switching relay and the temporary transmission source as the relay node (see (10)).

全分割データの書き込みが終わった後、ゲートウェイサーバ21Aは、クライアントにファイル書き込みの終了報告を行う。   After all the divided data has been written, the gateway server 21A reports the end of file writing to the client.

なお、クライアントがストレージ装置10にファイルを書き込む場合だけでなく、書き込まれたデータの読み出し・消去やメモリの空き容量の確認などのため、読み出し・消去命令や空き容量の返信命令等をストレージ装置10のメモリノードに送る場合も、前述した手続きに従ってスイッチングリレー81に接続されたメモリノードを介してパケットを転送することができる。さらに、書き込みや消去等の命令実施完了報告、メモリノードから読み出したデータなどをメモリノードからゲートウェイサーバ21Aに送信する際などにも、同様に、前述した手続きに従ってスイッチングリレー81に接続されたメモリノードを介してパケットを転送することができる。これにより、転送時間を短縮することができる。   It should be noted that not only when the client writes a file to the storage apparatus 10, but also for reading / erasing the written data and checking the free capacity of the memory, a read / erase command, a free capacity reply command, etc. Even when the packet is sent to the memory node, the packet can be transferred via the memory node connected to the switching relay 81 in accordance with the procedure described above. In addition, when a command execution completion report such as writing or erasing, data read from a memory node, or the like is transmitted from the memory node to the gateway server 21A, the memory node connected to the switching relay 81 in the same manner as described above The packet can be transferred via Thereby, the transfer time can be shortened.

なお、ここまでは、図27に示したように、左端のメモリノードのみがスイッチングリレー81と接続されたストレージシステムについて説明したが、図31に示すように、全ての外周部のメモリノードがスイッチングリレー81,82,83,84と接続されたストレージシステムにおいても、スイッチングリレーを導入しないシステムより、パケットの平均転送回数が少なく、転送時間を短くすることができる。図31に示すストレージシステムでは、ストレージ装置の左端に配置されたメモリノードにスイッチングリレー81が接続され、上端に配置されたメモリノードにスイッチングリレー82、右端に配置されたメモリノードにスイッチングリレー83、下端に配置されたメモリノードにスイッチングリレー84がそれぞれ接続されている。また、全てのスイッチングリレーは、アダプタ22Aを介してゲートウェイサーバ21Aと接続されている。   The storage system in which only the leftmost memory node is connected to the switching relay 81 as shown in FIG. 27 has been described so far. However, as shown in FIG. Even in a storage system connected to the relays 81, 82, 83, and 84, the average number of packet transfer times is smaller and the transfer time can be shortened than a system that does not introduce a switching relay. In the storage system shown in FIG. 31, a switching relay 81 is connected to the memory node arranged at the left end of the storage device, the switching relay 82 is connected to the memory node arranged at the upper end, the switching relay 83 is connected to the memory node arranged at the right end, Switching relays 84 are respectively connected to the memory nodes arranged at the lower end. All the switching relays are connected to the gateway server 21A through the adapter 22A.

さらに、図32に示すように、隣接ノードと接続された入出力ポート以外の入出力ポート(非隣接ポート)を有する複数のメモリノードが、非隣接ポートによってスイッチングリレー81と接続されたストレージ装置を含むストレージシステムにおいても、スイッチングリレーを導入しないシステムより、パケットの平均転送回数が少なく、転送時間を短くすることができる。図32に示すストレージシステムでは、ストレージ装置10内のメモリノード(3,2)、(3,7)、(8,2)、(8,7)にスイッチングリレー81が接続されている。   Further, as shown in FIG. 32, a storage device in which a plurality of memory nodes having input / output ports (non-adjacent ports) other than the input / output ports connected to adjacent nodes are connected to the switching relay 81 by non-adjacent ports. Even in the storage system including the switching system, the average number of packet transfer times is smaller and the transfer time can be shortened than in a system that does not introduce a switching relay. In the storage system shown in FIG. 32, the switching relay 81 is connected to the memory nodes (3, 2), (3, 7), (8, 2), (8, 7) in the storage apparatus 10.

さて、前述したように、スイッチングリレーに接続されているメモリノードを介してパケット転送を行う場合、パケット転送時間(転送回数)が最小となるメモリノードを中継メモリノードとして選択することが重要である。以下では、その中継メモリノードのアドレス算出について説明する。   As described above, when packet transfer is performed via a memory node connected to a switching relay, it is important to select a memory node having a minimum packet transfer time (number of transfers) as a relay memory node. . Hereinafter, address calculation of the relay memory node will be described.

まず、図27に示したように、左端のメモリノード全てがスイッチングリレー81に接続されたストレージ装置10とゲートウェイサーバ21Aとの間でデータ転送を行う場合、ストレージ装置10内のアドレス(x,y)のパケット送信先/送信元メモリノードにとって、パケット転送距離(転送回数)が最小となる、スイッチングリレー81に接続されたメモリノードは、アドレス(1,y)のメモリノードである。   First, as shown in FIG. 27, when all the leftmost memory nodes perform data transfer between the storage apparatus 10 connected to the switching relay 81 and the gateway server 21A, the addresses (x, y in the storage apparatus 10). The memory node connected to the switching relay 81 that minimizes the packet transfer distance (number of transfers) is the memory node at the address (1, y).

角に配置されたメモリノードのアドレスが(a0,b0)で、横c0個、縦d0個のメモリノードから成るストレージ装置において、外周部の全メモリノードがスイッチングリレーに接続されている場合、ストレージ装置10内のアドレス(x,y)のメモリノードがゲートウェイサーバ21Aとの間でパケット転送を行うとき、転送時間(転送回数)が最小となる中継メモリノードのアドレスは、以下の通りである。ここで、図31に示すように、スイッチングリレーと接続されたメモリノードのアドレスは、(a0,y)、(a0+c0,y)、(x,b0)、(x,b0+d0)で表わされる(xはa0〜a0+c0の任意の整数値、yはb0〜b0+d0の任意の整数値)。   In the storage device having memory nodes arranged at the corners of (a0, b0) and having c0 horizontal and d0 vertical memory nodes, all the memory nodes on the outer periphery are connected to the switching relay. When the memory node at the address (x, y) in the device 10 performs packet transfer with the gateway server 21A, the address of the relay memory node that minimizes the transfer time (transfer count) is as follows. Here, as shown in FIG. 31, the address of the memory node connected to the switching relay is represented by (a0, y), (a0 + c0, y), (x, b0), (x, b0 + d0). Is an arbitrary integer value of a0 to a0 + c0, and y is an arbitrary integer value of b0 to b0 + d0).

min(x−a0,a0+c0−x)≦min(y−b0,b0+d0−y)かつmin(x−a0,a0+c0−x)=x−a0の場合は(x−a0,y);
min(x−a0,a0+c0−x)≦min(y−b0,b0+d0−y)かつmin(x−a0,a0+c0−x)=a0+c0−xの場合は(a0+c0−x,y);
min(x−a0,a0+c0−x)≧min(y−b0,b0+d0−y)かつmin(y−b0,b0+d0−y)=y−b0の場合は(x,y−b0);
min(x−a0,a0+c0−x)≧min(y−b0,b0+d0−y)かつmin(y−b0,b0+d0−y)=b0+d0−yの場合は(x,b0+d0−y)。
min (x−a0, a0 + c0−x) ≦ min (y−b0, b0 + d0−y) and min (x−a0, a0 + c0−x) = (x−a0, y) when x−a0;
min (x−a0, a0 + c0−x) ≦ min (y−b0, b0 + d0−y) and min (x−a0, a0 + c0−x) = a0 + c0−x (a0 + c0−x, y);
min (x−a0, a0 + c0−x) ≧ min (y−b0, b0 + d0−y) and min (y−b0, b0 + d0−y) = y−b0 (x, y−b0);
When min (x−a0, a0 + c0−x) ≧ min (y−b0, b0 + d0−y) and min (y−b0, b0 + d0−y) = b0 + d0−y, (x, b0 + d0−y).

なお、min(x,y)は、二つの引数x,yのうち、小さい方を与える関数である。   Note that min (x, y) is a function that gives the smaller of the two arguments x and y.

他方、図32に示すように、スイッチングリレー81と接続されたメモリノードのアドレスが(am+b,cn+d)(m,nは整数)で与えられる場合(図32では、a=5、b=3、c=5、d=2、m=0または1、n=0または1)、任意のメモリノード(アドレス(x,y))に対して、パケット転送時間(転送回数)が最小となる、スイッチングリレー81に接続されるメモリノード(中継メモリノード)は、(a(round(x/a,0)+b、c(round(y/c,0)+d)で与えられる。ここで、round(u,0)は、数値uを小数点で四捨五入する関数である。   On the other hand, as shown in FIG. 32, when the address of the memory node connected to the switching relay 81 is given by (am + b, cn + d) (m and n are integers) (in FIG. 32, a = 5, b = 3, c = 5, d = 2, m = 0 or 1, n = 0 or 1), packet transfer time (number of transfers) is minimized for any memory node (address (x, y)), switching The memory node (relay memory node) connected to the relay 81 is given by (a (round (x / a, 0) + b, c (round (y / c, 0) + d)) where round (u , 0) is a function for rounding the numerical value u to the decimal point.

以上説明したように第8実施形態によれば、ストレージ装置内でメモリノード間のパケット転送回数を低減させることができる。その他の構成及び効果は、前述した第1実施形態と同様である。   As described above, according to the eighth embodiment, the number of packet transfers between memory nodes in the storage apparatus can be reduced. Other configurations and effects are the same as those of the first embodiment described above.

[第9実施形態]
第9実施形態は、複数のデータを複数のメモリノードに保存するデータ処理において、ゲートウェイサーバとのデータ転送時間が互いに異なるメモリノードを、複数データの保存先として選択するデータ処理手順を備える。
[Ninth Embodiment]
The ninth embodiment includes a data processing procedure for selecting, as data storage destinations, memory nodes having different data transfer times with the gateway server in data processing for storing a plurality of data in a plurality of memory nodes.

[1]ストレージシステムの構成
図33Aは、第9実施形態のストレージシステムの構成を示す図である。
[1] Configuration of Storage System FIG. 33A is a diagram showing the configuration of the storage system of the ninth embodiment.

図示するように、ストレージシステムは、複数のメモリノード11を含むストレージ装置10、及びストレージ装置10に接続された複数のゲートウェイサーバ21Aを備える。ストレージ装置10は、図1に示したように、データ転送機能を有するメモリノードが相互に複数接続された構成を有する。ストレージ装置10の外周部に配置されたメモリノード(1,4)には、アダプタ22Aを介してゲートウェイサーバ21Aが接続されている。   As illustrated, the storage system includes a storage apparatus 10 including a plurality of memory nodes 11 and a plurality of gateway servers 21A connected to the storage apparatus 10. As shown in FIG. 1, the storage apparatus 10 has a configuration in which a plurality of memory nodes having a data transfer function are connected to each other. A gateway server 21A is connected to the memory nodes (1, 4) arranged on the outer periphery of the storage apparatus 10 via an adapter 22A.

[2]ストレージシステムのデータ処理方法
第9実施形態のストレージシステムにおけるデータ処理手順について説明する。
[2] Data processing method of storage system A data processing procedure in the storage system of the ninth embodiment will be described.

図33A〜図33D及び図34A〜図34Eは、ストレージ装置10がアダプタ22Aを介してゲートウェイサーバ21Aと接続されたストレージシステムである。ストレージ装置は、隣接したメモリノード11が相互接続された複数のメモリノードから構成される。   33A to 33D and FIGS. 34A to 34E are storage systems in which the storage apparatus 10 is connected to the gateway server 21A via the adapter 22A. The storage device is composed of a plurality of memory nodes in which adjacent memory nodes 11 are interconnected.

各メモリノード11は、送信されたパケットが自ノード宛であれば受け取り、他のメモリノードが宛先の場合は、隣接するメモリノードにパケットを転送する。このデータ転送機能により、ゲートウェイサーバ21Aと指定メモリノードとの間でパケット通信を行うことができる。   Each memory node 11 receives the transmitted packet if it is addressed to itself, and transfers the packet to an adjacent memory node if another memory node is the destination. With this data transfer function, packet communication can be performed between the gateway server 21A and the designated memory node.

但し、パケット転送に必要な転送回数は、メモリノードにより異なる。例えば、ゲートウェイサーバ21Aとのパケット通信に必要な最低転送回数は、アドレス(1,4)のメモリノードは0回、アドレス(1,5)、(2,4)、(1,3)のメモリノードは1回、アドレス(1,6)、(2,5)、(3,4)、(2,3)、(1,2)のメモリノードは2回である。図33A〜図33D及び図34A〜図34Eでは、同一の最低転送回数を持つメモリノードを同一のハッチングで表している。   However, the number of transfers required for packet transfer differs depending on the memory node. For example, the minimum number of transfers required for packet communication with the gateway server 21A is 0 for the memory node at the address (1, 4), and the memory at the addresses (1, 5), (2, 4), and (1, 3). The node is once, and the memory nodes at the addresses (1,6), (2,5), (3,4), (2,3), (1,2) are twice. In FIGS. 33A to 33D and FIGS. 34A to 34E, memory nodes having the same minimum number of transfers are represented by the same hatching.

またここでは、ストレージ装置10のメモリノード内のパケット転送時間とメモリノード間のパケット送信時間が、メモリノードに依らず一定とする。この場合、総パケット転送時間はどのメモリノード間でも同じである。なお、パケット転送時間は、入力ポートにパケットを受信した後、パケットのヘッダー部に記録されたアドレスから自ノード宛かどうかを判断し、出力ポートからパケットを出力するまでの時間である。総パケット転送時間は、メモリノードがパケットを受け取ってから隣接ノードにパケットを送信し、そのパケットが隣接ノードに到達するまでの時間である。   Here, the packet transfer time in the memory node of the storage apparatus 10 and the packet transmission time between the memory nodes are constant regardless of the memory node. In this case, the total packet transfer time is the same between any memory nodes. Note that the packet transfer time is the time from when a packet is received at the input port to when it is determined whether the packet is addressed to the own node from the address recorded in the header of the packet and when the packet is output from the output port. The total packet transfer time is the time from when a memory node receives a packet until the packet is transmitted to an adjacent node until the packet reaches the adjacent node.

さて、一つのファイルを3つに分割し、分割後のデータの順番に合わせてID=1、ID=2、ID=3とIDを付与した3つのデータを、3つのメモリノードにそれぞれ保存する。その後、メモリノードから3つのデータを読み出して、ゲートウェイサーバに送信するデータ処理について考える。   Now, one file is divided into three, and the three data with ID = 1, ID = 2, ID = 3 and ID are stored in three memory nodes according to the order of the divided data. . Then, consider data processing in which three data are read from the memory node and transmitted to the gateway server.

データを保存する3つのメモリノードが、ゲートウェイサーバとのパケット通信に必要な最低転送回数が同じになるメモリノードである場合と、最低転送回数が全て異なるメモリノードの場合のそれぞれについて、読み出されたデータのストレージ装置内の転送過程を比較する。なお、読み出し命令は一斉に行われ、読み出されたデータの送信は同時に開始されること、従って3つのデータの転送も全く同じタイミングで進行するものとする。   The three memory nodes that store data are read for each of the memory nodes that have the same minimum transfer count required for packet communication with the gateway server and the memory nodes that have different minimum transfer counts. Compare the transfer process of stored data in the storage device. It is assumed that the read command is performed all at once, and the transmission of the read data is started at the same time, so that the transfer of the three data proceeds at exactly the same timing.

ゲートウェイサーバ21Aとのパケット通信に必要な最低転送回数が3回であるメモリノード(1,1)、(2,2)、(3,5)に保存された3つのデータが、各メモリノードから読み出された後、ゲートウェイサーバ21Aに向けて転送されていく過程の一例を図33A〜図33Dに示す。   Three data stored in the memory nodes (1, 1), (2, 2), (3, 5) having a minimum transfer count of 3 required for packet communication with the gateway server 21A are received from each memory node. FIG. 33A to FIG. 33D show an example of a process in which the data is read and transferred to the gateway server 21A.

図33Aは、各メモリノード内のメモリからデータが読み出された直後(転送前)のストレージ装置10の状態を示し、図33Bは、図33Aから一定時間経過し、3つのデータ全てが、保存されていたメモリノードの隣接ノードに転送された状態を示す。図33Bに示すように、図33Aにおいてメモリノード(1,1)、(2,2)、(3,5)に保存されていた3つのデータは、メモリノード(1,2)、(2,3)、(2,5)にそれぞれ転送されている。   FIG. 33A shows the state of the storage apparatus 10 immediately after data is read from the memory in each memory node (before transfer), and FIG. 33B shows that a fixed time has passed from FIG. 33A and all three data are stored. It shows the state transferred to the adjacent node of the memory node that has been set. As shown in FIG. 33B, the three data stored in the memory nodes (1, 1), (2, 2), (3, 5) in FIG. 33A are stored in the memory nodes (1, 2), (2, 3) and (2, 5), respectively.

図33C、図33Dは、それぞれデータの転送が2回、3回行われた状態を示す。図33Cに示すように、図33Bにおいてメモリノード(1,2)、(2,3)、(2,5)に保存されていた3つのデータは、メモリノード(1,3)、(2,4)、(1,5)にそれぞれ転送されている。さらに、図33Dに示すように、図33Cにおいてメモリノード(1,3)、(2,4)、(1,5)に保存されていた3つのデータは、メモリノード(1,4)にそれぞれ転送されている。なお図33A〜図33Dは、保存されていたメモリノードからゲートウェイサーバ21Aへ向けてデータ転送を行う過程であるため、時間の経過と共に、ゲートウェイサーバ21Aとのパケット通信に必要な、最低転送回数が少ないメモリノードにデータが転送されている。   FIG. 33C and FIG. 33D show a state where data transfer is performed twice and three times, respectively. As shown in FIG. 33C, the three data stored in the memory nodes (1, 2), (2, 3), (2, 5) in FIG. 33B are stored in the memory nodes (1, 3), (2, 4) and (1, 5), respectively. Furthermore, as shown in FIG. 33D, the three data stored in the memory nodes (1, 3), (2, 4), and (1, 5) in FIG. 33C are stored in the memory nodes (1, 4), respectively. Has been transferred. 33A to 33D are processes in which data is transferred from the stored memory node to the gateway server 21A, so that the minimum number of transfers required for packet communication with the gateway server 21A with time elapses. Data is transferred to few memory nodes.

さて、図33A〜図33Cに示したストレージ装置10では、3つのデータはそれぞれ別のメモリノードに存在しているが、図33Dに示したストレージ装置10では、全てのデータがアドレス(1,4)のメモリノード上に位置している。これは、3つのデータが同時にアドレス(1,4)のメモリノードに到達した状態を表している。   In the storage apparatus 10 shown in FIGS. 33A to 33C, the three data exist in different memory nodes. However, in the storage apparatus 10 shown in FIG. ) Located on the memory node. This represents a state in which three pieces of data have reached the memory node at the address (1, 4) at the same time.

但し、メモリノードの一時保存用メモリ(入力ポートバッファ)の記憶容量サイズが、複数のデータを保存できるほど大きくない場合には、メモリノード(1,4)では一度に一つのデータしか受け入れることができない。一時保存用メモリは、自ノード宛でないデータを受信した場合に、そのデータを転送するまでの間、保管するためのメモリである。   However, if the storage capacity size of the temporary storage memory (input port buffer) of the memory node is not large enough to store a plurality of data, the memory node (1, 4) can accept only one data at a time. Can not. The temporary storage memory is a memory for storing data that is not addressed to the own node until the data is transferred.

この場合には、受信した一つのデータのアダプタ22Aへの転送が終了するまで、他のデータはアドレス(1,4)のメモリノードに転送できず、隣接ノードで待機する必要がある。   In this case, until transfer of one received data to the adapter 22A is completed, other data cannot be transferred to the memory node at the address (1, 4), and it is necessary to wait at an adjacent node.

メモリノードの一時保存用メモリのサイズが十分大きく、3つのデータを同時に一時保存できる場合においても、アドレス(1,4)のメモリノードからゲートウェイサーバ21Aに3つのデータを一度に送信することは通常できないため、一つのデータがゲートウェイサーバ21Aに送信されるまでの間、他のデータはアドレス(1,4)のメモリノードで待機する必要がある。このようなデータ転送の待機が生じると、全データの転送に要する時間が増加する。   Even when the size of the memory for temporary storage of the memory node is sufficiently large and three data can be temporarily stored at the same time, it is normal to transmit three data from the memory node at the address (1, 4) to the gateway server 21A at a time. Since this is not possible, the other data must wait at the memory node at the address (1, 4) until one data is transmitted to the gateway server 21A. When such data transfer waiting occurs, the time required to transfer all data increases.

また、図33A〜図33Dからわかるように、ゲートウェイサーバ21Aとのパケット通信に必要な最低転送回数が同じであるメモリノードの数は、転送回数が少なくなるにつれて減少する。従って、図33Aに示すように、ゲートウェイサーバ21Aとのパケット通信に必要な最低転送回数が同じで異なるメモリノードに複数データを保存し、同時に読み出して転送を開始すると、時間が経過してデータがゲートウェイサーバ21Aに近づくほど、転送先のメモリノードの数が減少し、複数データが同一のメモリノードに転送される確率が高まる。このように、ゲートウェイサーバ21Aとのパケット通信に必要な最低転送回数が同じであるメモリノードに複数データを保存すると、読み出し後の転送時に無駄な待機時間が発生しやすくなる。   As can be seen from FIGS. 33A to 33D, the number of memory nodes having the same minimum number of transfers required for packet communication with the gateway server 21A decreases as the number of transfers decreases. Therefore, as shown in FIG. 33A, when a plurality of data is stored in different memory nodes having the same minimum number of transfers required for packet communication with the gateway server 21A and read out at the same time, and the transfer starts, the data passes over time. The closer to the gateway server 21A, the smaller the number of transfer destination memory nodes, and the higher the probability that a plurality of data will be transferred to the same memory node. In this way, if a plurality of data is stored in the memory nodes having the same minimum number of transfers required for packet communication with the gateway server 21A, useless waiting time is likely to occur during transfer after reading.

図34A〜図34E、図35A、及び図35Bを参照して、このような転送時の待機時間を低減するためのデータ処理手順を説明する。   With reference to FIGS. 34A to 34E, 35A, and 35B, a data processing procedure for reducing the waiting time at the time of such transfer will be described.

図34A〜図34Eは、メモリノードから読み出されたデータがゲートウェイサーバ21Aに向けて転送されていく過程の一例を示す図である。図34A〜図34Eは、ゲートウェイサーバ21Aとのパケット通信に必要な最低転送回数が1回であるメモリノード(1,5)にID=2のデータを、最低転送回数が2回であるメモリノード(1,2)にID=1のデータを、3回であるメモリノード(4,4)にID=3のデータを保存させた後、これらデータを同時に読み出してゲートウェイサーバ21Aに転送する過程を示している。   34A to 34E are diagrams illustrating an example of a process in which data read from the memory node is transferred to the gateway server 21A. 34A to 34E show the memory node (1, 5) having the minimum transfer count required for packet communication with the gateway server 21A of 1 and the memory node having the minimum transfer count of 2 in the memory node (1, 5). The process of storing data of ID = 1 in (1, 2) and storing data of ID = 3 in the memory node (4, 4) which is three times, and simultaneously reading these data and transferring them to the gateway server 21A. Show.

この場合も、ゲートウェイサーバ21Aとのパケット通信に必要な最低転送回数が少ないメモリノードへとデータは転送されている。しかし、図34A〜図34Eの場合、全ての過程で、図33Dに示したような同一メモリノードへの複数データの転送が生じていない。これは、ゲートウェイサーバ21Aとのパケット通信に必要な最低転送回数が異なるメモリノードにデータを保存したためである。この場合にも、最低転送回数が少ないメモリノードへとデータ転送が行われるが、最低転送回数が異なるメモリノードから全データの転送が開始されるため、どの時間においても各データは最低転送回数が異なるメモリノードに位置する。   Also in this case, data is transferred to a memory node having a minimum minimum number of transfers required for packet communication with the gateway server 21A. However, in the case of FIGS. 34A to 34E, the transfer of a plurality of data to the same memory node as shown in FIG. 33D does not occur in all the processes. This is because data is stored in memory nodes having different minimum transfer counts necessary for packet communication with the gateway server 21A. In this case as well, data transfer is performed to a memory node with a minimum minimum transfer count, but since all data transfer starts from a memory node with a different minimum transfer count, each data has a minimum transfer count at any time. Located in a different memory node.

このように、ゲートウェイサーバ21Aとのパケット通信に必要な最低転送回数が異なるメモリノードにデータを保存することにより、読み出しデータの転送時における複数データの同一メモリノードへの同時転送が回避され、データ転送時間を短縮することができる。   In this way, by storing data in memory nodes having different minimum transfer counts necessary for packet communication with the gateway server 21A, simultaneous transfer of a plurality of data to the same memory node at the time of transfer of read data is avoided. Transfer time can be shortened.

なお、当然ではあるが、ゲートウェイサーバとのパケット通信に必要な最低転送回数が異なるメモリノードに保存したデータを読み出してゲートウェイサーバに転送する場合、データを保存したメモリノードがゲートウェイサーバに近い順番でゲートウェイサーバにデータが到達する。図34Aでは、ゲートウェイサーバ21Aに最も近いメモリノードにID=2のデータを、次にサーバ21Aに近いメモリノードにID=1のデータを、最もサーバ21Aから遠いメモリノードにID=3のデータを保存しているため、これらメモリノードから読み出し・転送されたデータは、図34C〜図34Eに示したように、ID=2のデータ、ID=1のデータ、ID=3のデータの順番でゲートウェイサーバ21Aに到達する。   Of course, when data stored in memory nodes with different minimum number of transfers required for packet communication with the gateway server is read out and transferred to the gateway server, the memory nodes storing the data are in the order closest to the gateway server. Data arrives at the gateway server. In FIG. 34A, ID = 2 data is stored in the memory node closest to the gateway server 21A, ID = 1 data is stored in the memory node closest to the server 21A, and ID = 3 data is stored in the memory node farthest from the server 21A. Since the data is stored, the data read / transferred from these memory nodes is the gateway in the order of data of ID = 2, data of ID = 1, and data of ID = 3 as shown in FIGS. 34C to 34E. The server 21A is reached.

前述したように、これらデータは一つのファイルを3分割したものであり、分割後のデータの順番に合わせてID=1、ID=2、ID=3とIDを付与されている。このため、分割データからファイルを再構成するためには、ゲートウェイサーバ21Aに到達したデータをID順に入れ替える必要がある。   As described above, these data are obtained by dividing one file into three, and ID = 1, ID = 2, ID = 3 and ID are assigned in accordance with the order of the divided data. For this reason, in order to reconstruct a file from the divided data, it is necessary to replace the data that has reached the gateway server 21A in the order of ID.

他方、図35Aでは、ID=1のデータをゲートウェイサーバ21Aからの最低転送回数1回のメモリノードに、ID=2のデータを最低転送回数2回のメモリノードに、ID=3のデータを最低転送回数3回のメモリノードに保存している。このため、これらのデータをメモリノードから読み出し、ゲートウェイサーバ21Aに転送すると、図35Bに示すように、ID=1のデータ、ID=2のデータ、ID=3のデータの順番でゲートウェイサーバ21Aに到達する。従って、ファイルの再構成を行う際に、データの並べ替えを行う必要が無い。   On the other hand, in FIG. 35A, ID = 1 data is transferred to the memory node having the minimum transfer count of 1 from the gateway server 21A, ID = 2 data is transferred to the memory node having the minimum transfer count of 2 times, and ID = 3 is transferred to the memory node. It is stored in a memory node with 3 transfers. Therefore, when these data are read from the memory node and transferred to the gateway server 21A, as shown in FIG. 35B, the data of ID = 1, the data of ID = 2, the data of ID = 3 are sequentially sent to the gateway server 21A. To reach. Therefore, it is not necessary to rearrange data when reconstructing a file.

このように、データの読み出し順番が意味を持つ複数のデータを、ゲートウェイサーバとのパケット通信に必要な最低転送回数が異なるメモリノードに保存する場合、その順番に合わせて、ゲートウェイサーバに近いメモリノードから遠いメモリノードへ順に保存する。これにより、ゲートウェイサーバ21Aに転送されたデータの並び替え作業を省略することができる。   As described above, when storing a plurality of data whose data reading order is meaningful in a memory node having a different minimum transfer count required for packet communication with the gateway server, a memory node close to the gateway server according to the order. The memory nodes are stored in order from the remote node. Thereby, the rearrangement work of the data transferred to the gateway server 21A can be omitted.

さて、全て等価なメモリノードから構成されたストレージ装置の単一メモリノードとゲートウェイサーバが、アダプタを介して接続されているストレージシステムで、ストレージ装置に複数データを保存する手順について説明したが、図36Aに示すように、隣接ノードと接続された入出力ポート以外の入出力ポート(非隣接ポート)を有し、非隣接ポートによって相互接続された複数のメモリノードを有するストレージ装置においても、ゲートウェイサーバ21Bとのパケット通信に必要な最低転送回数が異なるメモリノードにデータを保存することで、保存データの転送時に無駄な待機時間が発生するのを回避することができる。   Now, in the storage system in which a single memory node of a storage device composed of all equivalent memory nodes and a gateway server are connected via an adapter, the procedure for storing multiple data in the storage device has been described. As shown in FIG. 36A, a gateway server also includes a storage device having a plurality of memory nodes having input / output ports (non-adjacent ports) other than input / output ports connected to adjacent nodes and interconnected by non-adjacent ports. By storing data in memory nodes having different minimum transfer counts necessary for packet communication with 21B, it is possible to avoid unnecessary waiting time when transferring stored data.

さらに、図36B〜図36Dに示すように、スイッチングリレーを介してストレージ装置10とゲートウェイサーバ21Aが接続されている場合においても、ゲートウェイサーバ21Aとのパケット通信に必要な最低転送回数が異なるメモリノードにデータを保存することで、保存データの転送時に無駄な待機時間が発生するのを回避することができる。なお、図36A〜図36Dでは、ID=1、ID=2、ID=3のデータを、パケット通信に必要な最低転送回数が1回、2回、3回のメモリノードにそれぞれ保存した例を示している。   Further, as shown in FIGS. 36B to 36D, even when the storage apparatus 10 and the gateway server 21A are connected via a switching relay, the memory nodes having different minimum transfer counts necessary for packet communication with the gateway server 21A are different. By saving the data, it is possible to avoid useless waiting time when transferring the saved data. In FIG. 36A to FIG. 36D, an example in which data of ID = 1, ID = 2, and ID = 3 is stored in the memory nodes having the minimum transfer count of 1, 2, and 3 required for packet communication, respectively. Show.

なお前述したように、メモリノードのアドレスのハッシュ値とパケットIDのハッシュ値から、パケットデータを保存するメモリノードのアドレスを決める方法(コンシステントハッシング)がある。これは例えば、0〜2160−1の整数値を取るID空間を考え、メモリノードとパケットのそれぞれに対して、前者はアドレス、後者はパケットIDで暗号学的ハッシュ関数SHA−1を計算(計算結果は0〜2160−1のいずれかの整数値になる)することで、それらをID空間のいずれかのIDに割り当てる。次に、各パケットに対して、ハッシュ値のIDからID空間を時計回りにたどり、最初に行き当たったメモリノードを、そのパケットを保存するメモリノードとして決定するものである。 As described above, there is a method (consistent hashing) for determining the address of the memory node that stores the packet data from the hash value of the address of the memory node and the hash value of the packet ID. For example, an ID space taking an integer value of 0 to 2 160 −1 is considered, and for each of the memory node and the packet, the former is an address and the latter is a packet ID to calculate the cryptographic hash function SHA-1. The calculation result is any integer value between 0 and 2 160 −1), so that they are assigned to any ID in the ID space. Next, for each packet, the ID space is traced clockwise from the ID of the hash value, and the first memory node encountered is determined as the memory node that stores the packet.

本方法は、高い均一性でパケットをメモリノードに分散保存できるだけでなく、メモリノードを増減させても、変更が必要なパケットが少ない(すなわち、メモリノードのスケーラビリティが高い)特長を有している。しかし、この方法でパケットを保存するメモリノードを決めると、ゲートウェイサーバとの通信時に必要な転送回数が同じメモリノードにパケットが保存されうる(前述したように、これは、データ読み出し時にパケット衝突を引き起こす)。   This method not only can distribute and store packets in memory nodes with high uniformity, but also has a feature that the number of packets that need to be changed is small even if the number of memory nodes is increased or decreased (that is, the scalability of the memory nodes is high). . However, when a memory node that stores a packet is determined by this method, the packet can be stored in a memory node having the same number of transfers required for communication with the gateway server (as described above, this causes a packet collision when reading data). cause).

ゲートウェイサーバとの通信でパケット転送回数が異なるメモリノードに、N個のパケットを均一に分散させて保存するためには、例えばパケットIDのハッシュ値mod Nを計算して(modは割り算の余りを返す関数)、そのパケットを保存するメモリノードの転送回数(0〜(N−1)のいずれか)を決める(計算の結果、転送回数が一致するパケットがあれば、異なる値になるように調整する)。さらに、各パケットに対して、決められた転送回数を有するメモリノードの中から、そのパケットを保存するメモリノードを前述したコンシステントハッシングにより決めれば良い。   In order to uniformly distribute and store N packets in memory nodes having different packet transfer counts in communication with the gateway server, for example, the hash value mod N of the packet ID is calculated (mod is the remainder of the division) Return function), determine the number of transfers (any of 0 to (N-1)) of the memory node storing the packet (if there is a packet with the same number of transfers as a result of the calculation, adjust it to a different value) To do). Furthermore, for each packet, a memory node that stores the packet may be determined by the above-described consistent hashing from among the memory nodes having the determined number of transfers.

なお、このようなパケット保存先のメモリノードを決定する手順では、決められた転送回数を有するメモリノードのアドレス把握が必要である。ある転送回数を有するメモリノードのアドレスは次のように表わされる。   In the procedure for determining the memory node of the packet storage destination as described above, it is necessary to grasp the address of the memory node having the determined number of transfers. The address of a memory node having a certain number of transfers is expressed as follows.

図33A〜図35Bのように、ゲートウェイサーバ21Aが、アダプタ22Aを介してストレージ装置(ここでは、メモリノードのアドレスは全て正の整数値とする)の端に位置するメモリノード(1,a0)と接続されているシステムにおいて、メモリノード(1,a0)との間でパケット通信を行う場合に、最低転送回数がn回であるメモリノードのアドレスは、(1+b,a0+(n−b))(n≧b≧0)、及び(1+c,a0−(n−c))(a0−1≧n−c≧0)で表わされる。   As shown in FIG. 33A to FIG. 35B, the gateway server 21A has a memory node (1, a0) located at the end of the storage device (here, all memory node addresses are positive integer values) via the adapter 22A. In the system connected to the memory node, when performing packet communication with the memory node (1, a0), the address of the memory node whose minimum transfer count is n is (1 + b, a0 + (nb)) (n ≧ b ≧ 0) and (1 + c, a0− (nc)) (a0−1 ≧ nc ≧ 0).

図36A、図36D示したように、増加ポート(非隣接ポート)によって、隣接しないメモリノード同士やメモリノードとスイッチングリレーが接続されたストレージ装置(メモリノードのアドレスは正の整数値とする)において、増加ポートを有するノード(a0,b0)との間でパケット通信を行う場合に、最低転送回数がn回であるメモリノードのアドレスは、(a0+c,b0+(n−c))(n≧c≧0)、(a0+d,b0−(n−d))(n≧d≧0,b0−1≧n−d)、(a0−e,b0+(n−e))(min(a0−1,n)≧e≧0)、(a0−f,b0−(n−f))(a0−1≧f≧0,b0−1≧n−f≧0)で表わされる。   As shown in FIG. 36A and FIG. 36D, in the storage device (memory node address is a positive integer value) in which the memory nodes are not adjacent to each other or the memory node and the switching relay are connected by an increase port (non-adjacent port). When a packet communication is performed with a node (a0, b0) having an increased port, the address of the memory node having the minimum transfer count of n is (a0 + c, b0 + (nc)) (n ≧ c ≧ 0), (a0 + d, b0− (n−d)) (n ≧ d ≧ 0, b0−1 ≧ nd), (a0−e, b0 + (n−e)) (min (a0−1, n) ≧ e ≧ 0), (a0−f, b0− (n−f)) (a0−1 ≧ f ≧ 0, b0−1 ≧ n−f ≧ 0).

図36Bに示すように、ストレージ装置(全メモリノードのアドレスは正の整数値とする)の左端(アドレス(1,y))のメモリノードがスイッチングリレーと接続されているシステムにおいて、アドレス(1,a0)の中継メモリノードとの間でパケット通信を行う場合に、最低転送回数がn回であるメモリノードのアドレスは、(1,a0+n)で表わされる。   As shown in FIG. 36B, in the system in which the memory node at the left end (address (1, y)) of the storage apparatus (addresses of all memory nodes are positive integer values) is connected to the switching relay, the address (1 , A0), when performing packet communication with the relay memory node, the address of the memory node whose minimum transfer count is n is represented by (1, a0 + n).

なお、データ転送時間が同じメモリノードが相互接続されたストレージ装置を含むシステムについて説明してきたが、図36Eに示すようなデータ転送時間が同じメモリノードがツリー状に接続されたストレージシステムや、図36Fに示すようなデータ転送時間の異なるメモリノードから成るストレージシステムなど、サーバとのデータ通信時間が異なるメモリノードが存在するストレージ装置を含むシステムであれば、本実施形態を適用することができる。   Note that a system including a storage device in which memory nodes having the same data transfer time are interconnected has been described. However, as shown in FIG. 36E, a storage system in which memory nodes having the same data transfer time are connected in a tree shape, The present embodiment can be applied to any system including a storage apparatus having memory nodes having different data communication times with a server, such as a storage system including memory nodes having different data transfer times as shown in 36F.

図36Eに示すシステムは、データ転送時間が同じメモリノードがツリー状に接続されたストレージシステムであり、ゲートウェイサーバ21Aとの通信時間が同じメモリノードを同一のハッチングで示している。図36Fに示すシステムでは、メモリノード間とメモリノード〜スイッチングリレー間のデータ通信速度は同じであり、さらにアドレス(a, l)、(a, m)、(a, n)、(b, l)、(b, m)、(b, n)のメモリノード間、及びこれらメモリノード〜スイッチングリレー81間のデータ通信速度に対して、アドレス(α, δ)、(β, γ)、(β, ε)のメモリノード間、及びこれらメモリノード〜スイッチングリレー81間のデータ通信速度は2倍、アドレス(A, B)とスイッチングリレー81間の通信速度は4倍の場合を示している。なお、スイッチングリレー81とのデータ転送時間が同じメモリノードを同一のハッチングで示している。但し、メモリノード内でのデータ転送時間は、メモリノード間及びスイッチングリレー〜メモリノード間のデータ転送時間より十分に小さいと仮定する。   The system shown in FIG. 36E is a storage system in which memory nodes having the same data transfer time are connected in a tree shape, and the memory nodes having the same communication time with the gateway server 21A are indicated by the same hatching. In the system shown in FIG. 36F, the data communication speeds between the memory nodes and between the memory nodes and the switching relays are the same, and addresses (a, l), (a, m), (a, n), (b, l ), (B, m), (b, n) between the memory nodes and between the memory nodes and the switching relay 81, the addresses (α, δ), (β, γ), (β , ε) and the data communication speed between the memory nodes and the switching relay 81 are doubled, and the communication speed between the address (A, B) and the switching relay 81 is quadrupled. Note that memory nodes having the same data transfer time with the switching relay 81 are indicated by the same hatching. However, it is assumed that the data transfer time in the memory node is sufficiently shorter than the data transfer time between the memory nodes and between the switching relay and the memory node.

以上説明したように第9実施形態によれば、複数のメモリノードに保存したデータを各メモリノードから読み出した後、ゲートウェイサーバに送信する際の転送時間を短縮することができる。これにより、高速なデータ読み出しが可能となる。その他の構成及び効果は、前述した第1実施形態と同様である。   As described above, according to the ninth embodiment, it is possible to reduce the transfer time when data stored in a plurality of memory nodes is read from each memory node and then transmitted to the gateway server. Thereby, high-speed data reading becomes possible. Other configurations and effects are the same as those of the first embodiment described above.

[第10実施形態]
第10実施形態は、ゲートウェイサーバから複数のデータを複数のメモリノードに送信するデータ処理において、データ通信時間が長いメモリノードを宛先とするデータから、データ通信時間が短いメモリノードを宛先とするデータの順に、データ転送を行うデータ処理手順を備える。
[Tenth embodiment]
According to the tenth embodiment, in data processing for transmitting a plurality of data from a gateway server to a plurality of memory nodes, data destined for a memory node with a short data communication time from data destined for a memory node with a long data communication time In this order, a data processing procedure for performing data transfer is provided.

[1]ストレージシステムの構成
図37Aは、第10実施形態のストレージシステムの構成を示す図である。
[1] Configuration of Storage System FIG. 37A is a diagram showing the configuration of the storage system of the tenth embodiment.

図示するように、ストレージシステムは、複数のメモリノード11を含むストレージ装置10、及びストレージ装置10に接続された複数のゲートウェイサーバ21Aを備える。ストレージ装置10は、図1に示したように、データ転送機能を有するメモリノードが相互に複数接続された構成を有する。ストレージ装置10の外周部に配置されたメモリノード(1,4)には、アダプタ22Aを介してゲートウェイサーバ21Aが接続されている。   As illustrated, the storage system includes a storage apparatus 10 including a plurality of memory nodes 11 and a plurality of gateway servers 21A connected to the storage apparatus 10. As shown in FIG. 1, the storage apparatus 10 has a configuration in which a plurality of memory nodes having a data transfer function are connected to each other. A gateway server 21A is connected to the memory nodes (1, 4) arranged on the outer periphery of the storage apparatus 10 via an adapter 22A.

[2]ストレージシステムのデータ処理方法
第10実施形態のストレージシステムにおけるデータ処理手順について説明する。
[2] Data processing method of storage system A data processing procedure in the storage system of the tenth embodiment will be described.

図37A〜図37G及び図38A〜図38Eは、第9実施形態と同様に、ストレージ装置がアダプタ22Aを介してゲートウェイサーバ21Aと接続されたストレージシステムである。ストレージ装置は、隣接したメモリノード11が相互接続された複数のメモリノードから構成される。   37A to 37G and FIGS. 38A to 38E are storage systems in which the storage apparatus is connected to the gateway server 21A via the adapter 22A, as in the ninth embodiment. The storage device is composed of a plurality of memory nodes in which adjacent memory nodes 11 are interconnected.

ここでは、ゲートウェイサーバ21Aから、ID=1、ID=2、ID=3の3つのデータを、それぞれアドレス(1,5)、(1,2)、(4,4)のメモリノードに送信する場合の、ゲートウェイサーバ21Aからのデータ送信順番と、全データ送信に必要な時間の関係について考える。なお、メモリノードの一時保存用メモリ(入力ポートバッファ)にパケットは1つしか保存できず、また一度に1つのパケットしか、ゲートウェイサーバ21Aからアドレス(1,4)のメモリノードに送信できないものとする。   Here, the gateway server 21A transmits three data with ID = 1, ID = 2, and ID = 3 to the memory nodes with addresses (1, 5), (1, 2), and (4, 4), respectively. Consider the relationship between the data transmission order from the gateway server 21A and the time required for all data transmission. Note that only one packet can be stored in the temporary storage memory (input port buffer) of the memory node, and only one packet at a time can be transmitted from the gateway server 21A to the memory node at the address (1, 4). To do.

図37A〜図37Gでは、ゲートウェイサーバ21Aに近いメモリノードを宛先とするデータから遠いメモリノードを宛先とするデータの順番(すなわち、ID=1のデータ、ID=2のデータ、ID=3のデータの順)で、ゲートウェイサーバ21Aからストレージ装置にパケットを送信した場合のパケット転送過程を示している。   In FIGS. 37A to 37G, the order of data destined for a memory node far from the memory node close to the gateway server 21A (ie, data with ID = 1, data with ID = 2, and data with ID = 3). The packet transfer process when a packet is transmitted from the gateway server 21A to the storage device is shown in the order of

この場合当然のことながら、図37B〜図37Cに示すように、ゲートウェイサーバ21Aに最も近い、アドレス(1,5)のメモリノード宛のデータ(ID=1)送信は最も早く終了する。   In this case, as a matter of course, as shown in FIGS. 37B to 37C, the transmission of data (ID = 1) addressed to the memory node with the address (1, 5) closest to the gateway server 21A is completed earliest.

しかし、ゲートウェイサーバ21Aから最も遠い、アドレス(4,4)のメモリノードを宛先としたデータ(ID=3)は、図37Dに示すように、2つのデータ(ID=1、ID=2)が、アドレス(1,4)のメモリノードから隣接メモリノードに転送されてしまうまで、アドレス(1,4)に送信することができず、それまでの間、ゲートウェイサーバ21Aで待機する必要がある。その待機が終わり、アドレス(1,4)のメモリノードに送信されても、図37D〜図37Gに示すように、アドレス(4,4)までデータが到達するためには最低3回の転送が必要である。   However, the data (ID = 3) destined for the memory node with the address (4, 4) farthest from the gateway server 21A has two data (ID = 1, ID = 2) as shown in FIG. 37D. Until it is transferred from the memory node at the address (1, 4) to the adjacent memory node, it cannot be transmitted to the address (1, 4), and it is necessary to wait at the gateway server 21A until then. Even if the standby is completed and the data is transmitted to the memory node at the address (1, 4), as shown in FIGS. 37D to 37G, at least three transfers are required for the data to reach the address (4, 4). is necessary.

他方、図38A〜図38Eでは、ゲートウェイサーバ21Aから最も遠いメモリノードを宛先とするデータから、近いメモリノードを宛先とするデータの順番(すなわちID=3のデータ、ID=2のデータ、ID=1のデータの順)で、ゲートウェイサーバ21Aからストレージ装置にパケットを送信した場合のパケット転送過程を示している。   On the other hand, in FIG. 38A to FIG. 38E, the order of data destined for the memory node farthest from the gateway server 21A to the data destined for the nearest memory node (namely, data with ID = 3, data with ID = 2, ID = 1 shows the packet transfer process in the case where packets are transmitted from the gateway server 21A to the storage device.

この場合においても、図38B〜図38Dに示すように、ID=3のデータとID=2のデータがアドレス(1,4)のメモリノードから隣接ノードに転送されてしまうまで、ID=1のデータはアドレス(1,4)のメモリノードに送信できず、ゲートウェイサーバ21Aで待機する必要がある。   Also in this case, as shown in FIGS. 38B to 38D, ID = 1 and ID = 2 data are transferred from the memory node at address (1, 4) to the adjacent node until ID = 1. Data cannot be transmitted to the memory node at the address (1, 4), and it is necessary to wait at the gateway server 21A.

しかし、後から発信されるデータ(ID=1)の宛先であるアドレス(1,5)のメモリノードは、ゲートウェイサーバ21Aに近く、少ない転送回数で宛先のメモリノードに到達する。他方、先にゲートウェイサーバ21Aから送信されたデータ(ID=3)は、宛先がゲートウェイサーバ21Aから離れているが、他のデータがゲートウェイサーバ21Aで待機している間に転送が開始されているため、その分早く宛先に到達する。これらの結果、図38Eに示すように、3つのデータは、同時に宛先のメモリノードに到達する。   However, the memory node of the address (1, 5) that is the destination of the data (ID = 1) transmitted later is close to the gateway server 21A and reaches the destination memory node with a small number of transfers. On the other hand, the data (ID = 3) transmitted from the gateway server 21A earlier is away from the gateway server 21A, but transfer is started while other data is waiting on the gateway server 21A. Therefore, the destination is reached that much earlier. As a result, as shown in FIG. 38E, the three data reach the destination memory node at the same time.

図37A〜図37Gと図38A〜図38Eの比較からわかるように、宛先のメモリノードがゲートウェイサーバ21Aから離れたデータから、ゲートウェイサーバ21Aから近いデータの順番で、ゲートウェイサーバ21Aからデータ送信を行うことで、全てのデータ送信に必要な時間を最小にすることができる。   As can be seen from the comparison between FIGS. 37A to 37G and FIGS. 38A to 38E, the data is transmitted from the gateway server 21A in the order of the data in which the destination memory node is away from the gateway server 21A and the data closer to the gateway server 21A. As a result, the time required for all data transmission can be minimized.

なお、データ転送時間が同じメモリノードが相互接続されたストレージ装置を含むシステムについて説明してきたが、データ転送時間が同じメモリノードがツリー状に接続されたストレージシステム(図36E)や、データ転送時間の異なるメモリノードから成るストレージシステム(図36F)など、サーバとのデータ通信時間が異なるメモリノードが存在するストレージ装置に複数のデータを送信する場合には、本実施形態を同様に適用することができる
以上説明したように第10実施形態によれば、ゲートウェイサーバとの通信時間が異なる複数のメモリノードに複数のデータを送る際、必要となる通信時間を最小にすることができる。その他の構成及び効果は、前述した第1実施形態と同様である。
Although a system including a storage device in which memory nodes having the same data transfer time are interconnected has been described, a storage system (FIG. 36E) in which memory nodes having the same data transfer time are connected in a tree shape, or a data transfer time In the case where a plurality of data is transmitted to a storage apparatus having memory nodes having different data communication times, such as a storage system (FIG. 36F) including different memory nodes, the present embodiment can be similarly applied. As described above, according to the tenth embodiment, when a plurality of data is sent to a plurality of memory nodes having different communication times with the gateway server, the required communication time can be minimized. Other configurations and effects are the same as those of the first embodiment described above.

以上述べたように第1〜第10実施形態によれば、メモリノードが経路指定表を管理する必要がなく、効率的にパケットを転送することができるストレージ装置、及びデータ処理方法を提供することができる。   As described above, according to the first to tenth embodiments, it is possible to provide a storage apparatus and a data processing method capable of efficiently transferring packets without the memory node having to manage the routing table. Can do.

本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。   Although several embodiments of the present invention have been described, these embodiments are presented by way of example and are not intended to limit the scope of the invention. These novel embodiments can be implemented in various other forms, and various omissions, replacements, and changes can be made without departing from the scope of the invention. These embodiments and modifications thereof are included in the scope and gist of the invention, and are included in the invention described in the claims and the equivalents thereof.

10…ストレージ装置、11…メモリノード、12…入力ポート、12A…入力ポートバッファ、13…出力ポート、13A…出力ポートバッファ、14…セレクタ、15…パケットコントローラ、16…メモリ、17…メモリコントローラ、18…MPU、19…ローカルバス、20…ストレージシステム、21A,21B,21C,21D…ゲートウェイサーバ、22A,22B,22C,22D,22E…アダプタ、31A,31B1,31B2…クライアント、41…制御コンピュータ、42…アドレス変換器、23,24…配線、81,82,83,84…スイッチングリレー。   DESCRIPTION OF SYMBOLS 10 ... Storage apparatus, 11 ... Memory node, 12 ... Input port, 12A ... Input port buffer, 13 ... Output port, 13A ... Output port buffer, 14 ... Selector, 15 ... Packet controller, 16 ... Memory, 17 ... Memory controller, 18 ... MPU, 19 ... local bus, 20 ... storage system, 21A, 21B, 21C, 21D ... gateway server, 22A, 22B, 22C, 22D, 22E ... adapter, 31A, 31B1, 31B2 ... client, 41 ... control computer, 42 ... Address converter, 23, 24 ... Wiring, 81, 82, 83, 84 ... Switching relay.

Claims (16)

第1の入力ポートと、第1の不揮発性メモリと、前記第1の不揮発性メモリを制御する第1の制御部と、を含む第1のメモリノードと、
前記第1のメモリノードと接続される第の入力ポートと、第2の不揮発性メモリと、前記第2の不揮発性メモリを制御する第2の制御部と、いずれか1つは前記第1の入力ポートと接続される複数の第1の出力ポートと、を含む第2のメモリノードと、
前記複数の第1の出力ポートのうちの1つに接続される第の入力ポートを含み、前記第1乃至第2のメモリノードとは異なる複数の第3のメモリノードと、
を具備するストレージ装置であって、
前記第2のメモリノードは、前記ストレージ装置内における前記第2のメモリノードの位置情報である第1の位置情報を記憶し、
前記第1の制御部は、送信先アドレスと送信元アドレスを少なくとも含むパケットを前記第2のメモリノードへ出力し、
前記第の入力ポートは、前記第1のメモリノードから出力された前記パケットを受信し、
前記第2の制御部は、前記パケット内の前記送信先アドレスと前記送信元アドレス、前記第1の位置情報を少なくとも含む情報に基づいて、少なくとも前記複数の第3のメモリノード及び前記第1のメモリノードの中から前記パケットの出力先を決定するように構成されているストレージ装置。
A first memory node including: a first input port; a first nonvolatile memory; and a first controller that controls the first nonvolatile memory;
A second input port connected to said first memory node, and a second control unit for controlling the second non-volatile memory, said second non-volatile memory, any one of the first A second memory node including a plurality of first output ports connected to the input ports of
Includes a third input port connected to one of said plurality of first output ports, and a plurality of third memory node different from the first to the second memory node,
A storage device comprising:
The second memory node stores first position information that is position information of the second memory node in the storage device;
The first control unit outputs a packet including at least a transmission destination address and a transmission source address to the second memory node,
The second input port receives the packet output from the first memory node;
The second control unit, based on information including at least the transmission destination address, the transmission source address, and the first location information in the packet, at least the plurality of third memory nodes and the first A storage apparatus configured to determine an output destination of the packet from among memory nodes .
第1の不揮発性メモリと、前記第1の不揮発性メモリを制御する第1の制御部と、を含む第1のメモリノードと、
前記第1のメモリノードと接続される第1の入力ポートと、第2の不揮発性メモリと、前記第2の不揮発性メモリを制御する第2の制御部と、複数の第1の出力ポートと、を含む第2のメモリノードと、
前記複数の第1の出力ポートのうちの1つに接続される第2の入力ポートを含み、前記第1乃至第2のメモリノードとは異なる複数の第3のメモリノードと、
前記第1乃至第3のメモリノードとは異なる1以上の第4のメモリノードと、
を具備するストレージ装置であって、
前記第1の制御部は、送信先アドレスと送信元アドレスを少なくとも含むパケットを前記第2のメモリノードへ出力し、
前記第1の入力ポートは、前記第1のメモリノードから出力された前記パケットを受信し、
前記第2の制御部は、前記第1のメモリノードと前記複数の第3のメモリノードと前記1以上の第4のメモリノードのうち、前記ストレージ装置内における位置情報が前記送信元アドレスと一致する第5のメモリノードと、前記ストレージ装置内における位置情報が前記送信先アドレスと一致する第6のメモリノードとを結ぶ第1の直線で区切られる2つの領域のうち第1の領域に前記第2のメモリノードが属する場合に、前記複数の第3のメモリノードのうち第1の方向に存在する第7のメモリノードに前記パケットを出力し、前記第1の領域とは異なる第2の領域に前記第2のメモリノードが属する場合に、前記複数の第3のメモリノードのうち第2の方向に存在する第8のメモリノードに前記パケットを出力するストレージ装置。
A first memory node including: a first nonvolatile memory; and a first control unit that controls the first nonvolatile memory;
A first input port connected to the first memory node, a second non-volatile memory, a second control unit for controlling the second non-volatile memory, and a plurality of first output ports; A second memory node comprising:
A plurality of third memory nodes including a second input port connected to one of the plurality of first output ports and different from the first to second memory nodes;
One or more fourth memory nodes different from the first to third memory nodes;
A storage device comprising:
The first control unit outputs a packet including at least a transmission destination address and a transmission source address to the second memory node,
The first input port receives the packet output from the first memory node;
The second control unit is configured such that, among the first memory node, the plurality of third memory nodes, and the one or more fourth memory nodes, position information in the storage device matches the source address. Of the two areas separated by a first straight line connecting the fifth memory node and the sixth memory node whose position information in the storage device matches the destination address. A second region that is different from the first region, when the two memory nodes belong to, outputting the packet to a seventh memory node that exists in a first direction among the plurality of third memory nodes; Storage device that outputs the packet to an eighth memory node existing in a second direction among the plurality of third memory nodes when the second memory node belongs to the second memory node .
前記第2の制御部は、前記ストレージ装置内における前記第2のメモリノードの位置情報が前記送信先アドレスと一致する場合に、前記パケットに含まれる情報を、前記第2の不揮発性メモリに記録する請求項2に記載のストレージ装置。The second control unit records information included in the packet in the second non-volatile memory when position information of the second memory node in the storage device matches the transmission destination address. The storage apparatus according to claim 2. 前記第2の制御部は、前記パケット内の前記送信先アドレス、前記送信元アドレス、前記第1の位置情報、及び前記複数の第1の出力ポートにおける前記パケットとは別のパケットの出力に使用されているかを示す占有情報を少なくとも含む情報に基づいて、少なくとも前記複数の第3のメモリノード及び前記第1のメモリノードの中から前記パケットの出力先を決定する請求項1に記載のストレージ装置。 The second control unit is used for outputting the destination address, the source address, the first location information, and a packet different from the packets at the plurality of first output ports in the packet. The storage apparatus according to claim 1, wherein an output destination of the packet is determined from at least the plurality of third memory nodes and the first memory node, based on information including at least occupancy information indicating whether the packet has been processed. . 前記第2の制御部は、前記複数の第1の出力ポートにおける前記パケットとは別のパケットの出力に使用されているかを示す占有情報を少なくとも含む情報に基づいて、前記パケットを、前記複数の第3のメモリノードのいずれかに出力する請求項2に記載のストレージ装置。The second control unit, based on information including at least occupancy information indicating whether the packet is used to output a packet different from the packet at the plurality of first output ports, The storage apparatus according to claim 2, wherein the storage apparatus outputs the data to any one of the third memory nodes. 前記第2の制御部は、前記第1の領域に前記第2のメモリノードが属する場合に、前記複数の第1の出力ポートのうち前記第7のメモリノードと接続される出力ポートが前記パケットとは別のパケットの出力用に使用されている場合、前記第8のメモリノードに前記パケットを出力し、前記第2の領域に前記第2のメモリノードが属する場合に、前記複数の第1の出力ポートのうち前記第8のメモリノードと接続される出力ポートが前記パケットとは別のパケットの出力用に使用されている場合、前記第7のメモリノードに前記パケットを出力する請求項に記載のストレージ装置。 Said second control unit, when the second memory node in said first region belongs, the output port connected to the seventh memory node of the plurality of first output ports the packet if it is used for the output of another packet and outputs the packet to the memory node of the eighth, if the second memory node to the second region belongs to the plurality of first If the output port is the packet to be connected to the eighth memory node of the output ports being used for the output of another packet, claim 2 for outputting the packet to the seventh memory node The storage device described in 1. 前記第2の制御部は、前記第1の領域において、前記第1の直線と直行し、かつ前記第6のメモリノードを通過する第2の直線で区切られる領域であって、前記第5のメモリノードに近い領域を第3の領域、他方を第4の領域とし、前記第2の領域において、前記第2の直線で区切られる領域のうち、前記第のメモリノードに近い領域を第5の領域、他方を第6の領域とした場合に、前記第3の領域に前記第2のメモリノードが属する場合、前記第7のメモリノードに前記パケットを出力し、前記第4の領域に前記第2のメモリノードが属する場合、前記複数の第3のメモリノードのうち前記第の方向と逆の方向に存在するメモリノードに前記パケットを出力し、
前記第5の領域に前記第2のメモリノードが属する場合、前記第8のメモリノードに前記パケットを出力し、前記第6の領域に前記第2のメモリノードが属する場合、前記複数の第3のメモリノードのうち前記第の方向と逆の方向に存在するメモリノードに前記パケットを出力する請求項6に記載のストレージ装置。
The second control unit is a region that is perpendicular to the first straight line in the first region and delimited by a second straight line that passes through the sixth memory node, and a third region of the region close to the memory node, and the other was a fourth region in said second region, among the areas separated by the second linear, the area close to the fifth memory node 5 When the second area is the sixth area and the second memory node belongs to the third area, the packet is output to the seventh memory node, and the fourth area is When the second memory node belongs, the packet is output to a memory node existing in a direction opposite to the second direction among the plurality of third memory nodes,
When the second memory node belongs to the fifth area, the packet is output to the eighth memory node, and when the second memory node belongs to the sixth area, the plurality of third nodes The storage apparatus according to claim 6, wherein the packet is output to a memory node existing in a direction opposite to the first direction among the memory nodes.
前記第1乃至第3のメモリノードとは異なる1以上の第4のメモリノードをさらに具備し、
前記第2の制御部は、前記第1のメモリノードと前記複数の第3のメモリノードと前記1以上の第4のメモリノードのうち、前記ストレージ装置内における位置情報が前記送信先アドレスと一致するメモリノードへの転送経路が最も短いメモリノードに前記パケットを出力する請求項1に記載のストレージ装置。
One or more fourth memory nodes different from the first to third memory nodes,
The second control unit is configured such that, among the first memory node, the plurality of third memory nodes, and the one or more fourth memory nodes, position information in the storage device matches the destination address. The storage apparatus according to claim 1, wherein the packet is output to a memory node having the shortest transfer path to the memory node.
前記第2のメモリノードは前記第1の入力ポートの他にコンピュータと接続可能な1以上の入力ポートを含む請求項1に記載のストレージ装置。   The storage apparatus according to claim 1, wherein the second memory node includes one or more input ports connectable to a computer in addition to the first input port. 前記第1乃至第3のメモリノードとは異なる1以上の第4のメモリノードをさらに具備し、
前記複数の第3のメモリノードのうち前記第2のメモリノードに隣接しない第1の非隣接メモリノードと、前記1以上の第4のメモリノードのうち前記第1の非隣接メモリノードと接続され前記第1の非隣接メモリノードに隣接しない1以上の第2の非隣接メモリノードと、前記第2のメモリノードは夫々メモリノード同士の相対的な物理位置によって決定する付加アドレスを持ち、
前記第2の制御部は、前記第2のメモリノードの付加アドレス、前記第1の非隣接メモリノードの付加アドレス、前記第2の非隣接メモリノードの付加アドレスの少なくともいずれか一つを含む情報に基づいて、少なくとも前記複数の第3のメモリノード及び前記第1のメモリノードの中から前記パケットの出力先を決定する請求項1に記載のストレージ装置。
One or more fourth memory nodes different from the first to third memory nodes,
The first non-adjacent memory node not adjacent to the second memory node among the plurality of third memory nodes and the first non-adjacent memory node among the one or more fourth memory nodes are connected. One or more second non-adjacent memory nodes that are not adjacent to the first non-adjacent memory node, and the second memory node has an additional address determined by the relative physical location of the memory nodes,
The second control unit includes information including at least one of an additional address of the second memory node, an additional address of the first non-adjacent memory node, and an additional address of the second non-adjacent memory node. 2. The storage apparatus according to claim 1, wherein an output destination of the packet is determined from at least the plurality of third memory nodes and the first memory node based on.
前記第1乃至第3のメモリノードとは異なる1以上の第4のメモリノードと、
前記第1のメモリノードと前記第2のメモリノードと前記複数の第3のメモリノードと前記1以上の第4のメモリノードのうちいずれか1つ以上と接続されるリレーと、
をさらに具備し、
前記リレーは、前記リレーと接続されるメモリノードの中で、前記第1のメモリノードと前記第2のメモリノードと前記複数の第3のメモリノードと前記1以上の第4のメモリノードのうち前記ストレージ装置内における位置情報が前記送信先アドレスと一致するメモリノードへの転送経路が最も短いメモリノードに前記パケット送信することを特徴とする請求項1に記載のストレージ装置。
One or more fourth memory nodes different from the first to third memory nodes;
A relay connected to any one or more of the first memory node, the second memory node, the plurality of third memory nodes, and the one or more fourth memory nodes;
Further comprising
Among the memory nodes connected to the relay, the relay includes the first memory node, the second memory node, the plurality of third memory nodes, and the one or more fourth memory nodes. 2. The storage apparatus according to claim 1, wherein the packet is transmitted to a memory node having a shortest transfer path to a memory node whose position information in the storage apparatus matches the destination address.
前記第1のメモリノードと前記第2のメモリノードと前記複数の第3のメモリノードと前記1以上の第4のメモリノードのうちいずれか1つ以上と接続されるリレーと、A relay connected to any one or more of the first memory node, the second memory node, the plurality of third memory nodes, and the one or more fourth memory nodes;
をさらに具備し、Further comprising
前記リレーは、前記リレーと接続されるメモリノードの中で、前記第6のメモリノードへの転送経路が最も短いメモリノードに前記パケット送信することを特徴とする請求項2に記載のストレージ装置。The storage device according to claim 2, wherein the relay transmits the packet to a memory node having a shortest transfer path to the sixth memory node among the memory nodes connected to the relay.
前記第1乃至第3のメモリノードとは異なる1以上の第4のメモリノードをさらに具備し、
前記第1のメモリノードと前記第2のメモリノードと前記複数の第3のメモリノードと前記1以上の第4のメモリノードのうち、他のメモリノードと接続されない入力ポートを少なくとも1以上有するメモリノードに接続可能なコンピュータの総数をNcとし、前記第1のメモリノードと前記第2のメモリノードと前記複数の第3のメモリノードと前記1以上の第4のメモリノードの総数をNnodeとした場合、Nc<√Nnodeを満たすことを特徴とする請求項1に記載のストレージ装置。
One or more fourth memory nodes different from the first to third memory nodes,
Memory having at least one or more input ports not connected to other memory nodes among the first memory node, the second memory node, the plurality of third memory nodes, and the one or more fourth memory nodes. The total number of computers connectable to a node is Nc, and the total number of the first memory node, the second memory node, the plurality of third memory nodes, and the one or more fourth memory nodes is Nnode. 2, the storage apparatus according to claim 1, wherein Nc <√Nnode is satisfied.
前記第1のメモリノードと前記第2のメモリノードと前記複数の第3のメモリノードと前記1以上の第4のメモリノードのうち、他のメモリノードと接続されない入力ポートを少なくとも1以上有するメモリノードに接続可能なコンピュータの総数をNcとし、前記第1のメモリノードと前記第2のメモリノードと前記複数の第3のメモリノードと前記1以上の第4のメモリノードの総数をNnodeとした場合、Nc<√Nnodeを満たすことを特徴とする請求項2に記載のストレージ装置。Memory having at least one or more input ports not connected to other memory nodes among the first memory node, the second memory node, the plurality of third memory nodes, and the one or more fourth memory nodes. The total number of computers connectable to a node is Nc, and the total number of the first memory node, the second memory node, the plurality of third memory nodes, and the one or more fourth memory nodes is Nnode. 3, the storage device according to claim 2, wherein Nc <√Nnode is satisfied. Nc<0.1×√Nnodeの関係式を満たすことを特徴とする請求項13または14に記載のストレージ装置。 15. The storage apparatus according to claim 13, wherein a relational expression of Nc <0.1 × √Nnode is satisfied. 前記第2のメモリノードは前記パケットに含まれるkeyをアドレスに変換するアドレス変換器をさらに具備し、
前記第2の制御部は、key-value型データの各レコードを保有し、前記送信先アドレスを前記アドレス変換器により変換された前記アドレスとし、前記パケットにvalueを含めて出力する請求項1または2に記載のストレージ装置。
The second memory node further includes an address converter that converts a key included in the packet into an address;
It said second control unit, holds the record of the key-value type data, the destination address and converted the address by the address converter, according to claim 1 and outputs, including the value in the packet or 2. The storage device according to 2 .
JP2013064768A 2013-03-26 2013-03-26 Storage device Expired - Fee Related JP5404947B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013064768A JP5404947B2 (en) 2013-03-26 2013-03-26 Storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013064768A JP5404947B2 (en) 2013-03-26 2013-03-26 Storage device

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2010252336A Division JP5238791B2 (en) 2010-11-10 2010-11-10 Storage apparatus and data processing method in which memory nodes having transfer function are connected to each other

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2013224277A Division JP5628397B2 (en) 2013-10-29 2013-10-29 Storage device

Publications (3)

Publication Number Publication Date
JP2013145592A JP2013145592A (en) 2013-07-25
JP2013145592A5 JP2013145592A5 (en) 2013-09-26
JP5404947B2 true JP5404947B2 (en) 2014-02-05

Family

ID=49041304

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013064768A Expired - Fee Related JP5404947B2 (en) 2013-03-26 2013-03-26 Storage device

Country Status (1)

Country Link
JP (1) JP5404947B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10037165B2 (en) 2015-03-02 2018-07-31 Toshiba Memory Corporation Storage system and control method thereof

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6205923B2 (en) 2013-07-11 2017-10-04 株式会社デンソー Driving support device
CN114422436B (en) * 2021-12-14 2024-03-19 北京罗克维尔斯科技有限公司 Gateway, gateway control method, gateway control device, electronic equipment and storage medium

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003174460A (en) * 2001-12-06 2003-06-20 Hitachi Ltd Data communication method, system for performing the same and processing program therefor
EP2383657A1 (en) * 2005-04-21 2011-11-02 Violin Memory, Inc. Interconnetion system
JP2009037273A (en) * 2007-07-31 2009-02-19 Hitachi Ltd Multiprocessor system
JP2010218364A (en) * 2009-03-18 2010-09-30 Fujitsu Ltd Information processing system, and communication control apparatus and method
JP4385387B1 (en) * 2009-07-02 2009-12-16 修平 西山 Database system with attributed key-value store

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10037165B2 (en) 2015-03-02 2018-07-31 Toshiba Memory Corporation Storage system and control method thereof
US10346083B2 (en) 2015-03-02 2019-07-09 Toshiba Memory Corporation Storage system and control method thereof

Also Published As

Publication number Publication date
JP2013145592A (en) 2013-07-25

Similar Documents

Publication Publication Date Title
JP5238791B2 (en) Storage apparatus and data processing method in which memory nodes having transfer function are connected to each other
US11003604B2 (en) Procedures for improving efficiency of an interconnect fabric on a system on chip
US8819611B2 (en) Asymmetric mesh NoC topologies
US4797882A (en) Mesh-based switching network
JP6060316B2 (en) Method and system for configuring NoC and computer-readable storage medium
US5533198A (en) Direction order priority routing of packets between nodes in a networked system
JP4713902B2 (en) Storage system
JPH09153892A (en) Method and system for communicating message in wormhole network
US10305825B2 (en) Bus control device, relay device, and bus system
CN108111410B (en) Method and device for constructing deadlock-free route in network with Cartesian topology
JP2010218364A (en) Information processing system, and communication control apparatus and method
WO2021114768A1 (en) Data processing device and method, chip, processor, apparatus, and storage medium
JP5404947B2 (en) Storage device
JP5628397B2 (en) Storage device
US20170111286A1 (en) Storage system that includes a plurality of routing circuits and a plurality of node modules connected thereto
JP2015015049A (en) Storage device
CN110825689B (en) Electronic chip and implementation method thereof
KR100446243B1 (en) Method and Apparatus for dispersing packet road inter board with multi link
CN117082014A (en) CLOS network, construction method, transmission method, system, device and medium
CN118784549A (en) Data routing method, device, computer equipment, storage medium and program product

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130729

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20130729

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20130805

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130820

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130919

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: 20131008

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131029

R151 Written notification of patent or utility model registration

Ref document number: 5404947

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees