JP2009140224A - Inter-node data transfer controller, inter-node data transfer control method and program - Google Patents

Inter-node data transfer controller, inter-node data transfer control method and program Download PDF

Info

Publication number
JP2009140224A
JP2009140224A JP2007315813A JP2007315813A JP2009140224A JP 2009140224 A JP2009140224 A JP 2009140224A JP 2007315813 A JP2007315813 A JP 2007315813A JP 2007315813 A JP2007315813 A JP 2007315813A JP 2009140224 A JP2009140224 A JP 2009140224A
Authority
JP
Japan
Prior art keywords
area
memory
node
distributed shared
shared memory
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.)
Granted
Application number
JP2007315813A
Other languages
Japanese (ja)
Other versions
JP5068151B2 (en
Inventor
Akira Tanaka
晶 田中
Mitsuo Teramoto
光生 寺元
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2007315813A priority Critical patent/JP5068151B2/en
Publication of JP2009140224A publication Critical patent/JP2009140224A/en
Application granted granted Critical
Publication of JP5068151B2 publication Critical patent/JP5068151B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Multi Processors (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To efficiently allocate an area to a distributed shared memory shared between nodes, and to release the allocation while maintaining efficiency in performing allocation. <P>SOLUTION: A node address association means 1-B has a means converting a memory address into a node address and a table wherein the memory address and the node address are associated, or has a means corresponding to calculation associating the memory address and the node address. The memory address is converted into the node address based on a prescribed rule such as retrieval of the table, partial masking or a shift of the memory address, or the calculation. When the node address association means 1-B releases the allocation of a part or all of the memory area allocated for the distributed shared memory 1-C on a local memory as the distributed shared memory 1-C, the node address association means 1-B precedingly releases the allocation of the area present in an address different form initial allocation inside the area of the distributed shared memory 1-C to improve use efficiency of a local memory area. <P>COPYRIGHT: (C)2009,JPO&INPIT

Description

本発明は、ノード内、あるいはノード間でデータ転送を行う、分散共有メモリを用いる転送制御装置のメモリの構成で、特に分散共有メモリと各ノード内のローカルメモリの構成において、既に構成された分散共有メモリに他の設定を行って、分散共有メモリの割り当てを解除するノード間データ転送制御装置、ノード間データ転送制御方法、及びプログラムに関する。   The present invention relates to a memory configuration of a transfer control device using a distributed shared memory that transfers data within a node or between nodes, and particularly in a distributed shared memory and a local memory configuration within each node. The present invention relates to an inter-node data transfer control device, an inter-node data transfer control method, and a program that perform other settings on the shared memory and cancel the allocation of the distributed shared memory.

分散共有メモリを用いたプロセッサ間(あるいはノード間)データ転送制御装置は、通常、LAN、ATM、TCP/IP等の既存の伝送方式を利用して、これら伝送方式のネットワーク内のノード番地(IPアドレス等を指すが、IPアドレスでなくてもネットワーク内でノードを識別する識別子であれば良い)を分散共有メモリ番地に対応付けることで、データ転送を行うものである。   An inter-processor (or inter-node) data transfer control device using a distributed shared memory usually uses existing transmission systems such as LAN, ATM, TCP / IP, etc., and node addresses (IP Data is transferred by associating an address or the like, but not an IP address, as long as it is an identifier that identifies a node in the network with a distributed shared memory address.

従来、上記プロセッサ間データ転送制御装置において、ローカルメモリの一部を分散共有メモリに割り当てて利用する場合、既に分散共有メモリ用に割り当てられたローカルメモリについて分散共有メモリとしての割り当て解除は、ローカルメモリを分散共有メモリ用に割り当てる手段に依存する。そのため、利用者側が割り当ての仕方を用意する技術が提案されている(例えば、特許文献1参照)。
特開平10−133941号公報
Conventionally, in the inter-processor data transfer control device, when a part of the local memory is allocated to the distributed shared memory and used, the local memory already allocated for the distributed shared memory is unallocated as the distributed shared memory. Depends on the means for allocating for distributed shared memory. For this reason, a technique has been proposed in which the user side prepares an allocation method (see, for example, Patent Document 1).
JP 10-133941 A

ところで、分散共有メモリは、ローカルメモリの一部をノード間データ転送用に割り当てたものであり、従ってノード間データ転送のために常に十分な領域が確保されているわけではなく、ローカルメモリを分散共有メモリに割り当てる手段が必要になる。現在使用している分散共有メモリにおける、ネットワーク内の個々のノードと対応する個々のメモリ領域の集合の中で、ある定まったメモリサイズを超過しているものがあるかどうかを判定し、超過しているメモリ領域の集合に対して新たなメモリ領域を確保し、確保したメモリ領域に対して、ノード番地対応手段に関する機能を修正することにより、超過しているメモリ領域の集合に追加して確保したメモリ領域を利用していた。   By the way, the distributed shared memory is a part of local memory allocated for inter-node data transfer. Therefore, a sufficient area is not always secured for inter-node data transfer. A means to allocate to the shared memory is required. In the distributed shared memory currently in use, determine whether there is any memory area that exceeds a certain memory size in the set of individual memory areas corresponding to individual nodes in the network. A new memory area is allocated to the set of memory areas that have been allocated, and the function related to the node address handling method is modified for the allocated memory areas, thereby ensuring additional memory areas. Used memory area.

分散共有メモリは、ローカルメモリの一部であることから、メモリ番地のみで、その位置を識別することになり、新たに確保するメモリ領域のサイズも、現在使用している分散共有メモリのメモリ領域の集合のサイズと同じであれば、割り当てが容易である。しかし、個々のメモリ領域の集合に対して、サイズ超過判定する必要があるため、使用状況を識別したメモリの構成と処理のフローを適用することで、サイズ超過を判定して割り当てを行うことが必要となる。また、新たなメモリ割り当てに不足や無駄が生じるため、使用状況を識別したメモリの構成と処理のフローを適用することが必要となる。また、ネットワーク構造に適合したメモリ構成と割り当て処理のフローにより、複数に区分されたネットワークに対応付けを行うことが必要となる。この場合、効率的な割り当て解除が行えるように、割り当ての段階で予め割り当て解除を前提とした手段を組み込み、割り当て解除時には、現在のメモリ使用状況とネットワーク区分を前提に、効率の良いメモリ割り当て状態になり、かつ、メモリ読出し書き込み速度を低下させない手段を用意することが必要となる。   Since the distributed shared memory is a part of the local memory, the location is identified only by the memory address, and the size of the newly allocated memory area is also the memory area of the currently used distributed shared memory. If it is the same as the size of the set, the assignment is easy. However, since it is necessary to determine the size excess for a set of individual memory areas, it is possible to determine the size excess and perform allocation by applying the memory configuration and processing flow that identifies the usage status. Necessary. In addition, since a new memory allocation is insufficient or wasted, it is necessary to apply a memory configuration and a processing flow in which the usage status is identified. In addition, it is necessary to associate a plurality of divided networks with a memory configuration adapted to the network structure and an allocation process flow. In this case, in order to perform efficient deallocation, a means based on the premise of deallocation is incorporated in the allocation stage, and at the time of deallocation, an efficient memory allocation state based on the current memory usage status and network classification Therefore, it is necessary to prepare a means that does not decrease the memory read / write speed.

しかしながら、該従来技術では、割り当て手段を効果的に機能させているものの、該割り当て手段を、効果的な解除手段として用いることは考慮されていない。すなわち、従来技術では、現在使用している分散共有メモリにおける、ネットワーク内の個々のノードと対応する個々のメモリ領域の集合の中で、ある定まったメモリサイズを超過しているものがあるかどうかを判定し、超過しているメモリ領域の集合に対して新たなメモリ領域を確保し、該確保したメモリ領域に対して、ノード番地対応機能を修正することにより、超過しているメモリ領域の集合に追加して確保したメモリ領域を利用していた。新たに確保するメモリ領域のサイズも、現在使用している分散共有メモリのメモリ領域の集合のサイズと同じである。   However, in the prior art, although the assigning unit functions effectively, it is not considered to use the assigning unit as an effective release unit. In other words, in the conventional technology, in the distributed shared memory that is currently used, whether a set of individual memory areas corresponding to individual nodes in the network exceeds a certain memory size. And determining a new memory area for the set of excess memory areas, and correcting the node address correspondence function for the reserved memory area, The memory area secured in addition to was used. The size of the newly secured memory area is also the same as the size of the set of memory areas of the distributed shared memory currently used.

さらに、個々のメモリ領域の集合に対して、ある定まったメモリサイズを超過しているかどうかを判定し、新たに割り当てるメモリ領域のサイズを多く必要としなくても多く割り当てたり、あるいは、より多く必要としても割り当てサイズが小さかったりするという問題がある。また、分散共有メモリの割り当て方法がどのノードに対しても共通であるため、ネットワークが複数に区分されている場合には、分散共有メモリとノードの対応付けが複雑になるにもかかわらず、これらを考慮した設計はなされていないという問題がある。   Furthermore, it is determined whether or not a certain memory size has been exceeded for each set of memory areas, and a larger or more memory area is allocated even if it does not require a large amount of newly allocated memory area. However, there is a problem that the allocation size is small. In addition, since the distributed shared memory allocation method is common to all nodes, when the network is divided into a plurality of sections, the correspondence between the distributed shared memory and the nodes is complicated, but these are complicated. There is a problem that the design considering the above is not made.

したがって、割り当てを解除する場合においても、ある定まったサイズごとに無作為に解除されるため、使用していないメモリの範囲が多く存在しても、割り当てが解除されないままになり、メモリ使用効率が悪化したり、また、同じノードを対象にしている分散共有メモリがローカルメモリ上に不連続に存在したり、同じネットワーク区分を対象にしている分散共有メモリがローカルメモリ上に不連続に存在したりすることになり、メモリ読出し書き出しの時間が大きくなる、という問題があった。   Therefore, even when deallocating, since it is randomly deallocated for each fixed size, even if there is a lot of unused memory range, it remains unallocated, and the memory usage efficiency It becomes worse, or distributed shared memory targeting the same node exists discontinuously on local memory, or distributed shared memory targeted to the same network partition exists discontinuously on local memory As a result, there is a problem that the memory read / write time is increased.

本発明は、このような事情を考慮してなされたものであり、その目的は、効率的に割り当てを行うことができるとともに、後で割り当てが不要になった場合でも、割り当て時の効率を維持しながら割り当て解除を行うことができるノード間データ転送制御装置、ノード間データ転送制御方法、及びプログラムを提供することにある。   The present invention has been made in consideration of such circumstances, and the purpose thereof is to enable efficient allocation and maintain efficiency at the time of allocation even when allocation becomes unnecessary later. An object is to provide an inter-node data transfer control device, an inter-node data transfer control method, and a program that can be deallocated.

上述した課題を解決するために、本発明は、ネットワークに接続された複数のノード間で、各ノードが有するローカルメモリ上に割り当てられた分散共有メモリを用いて、他プロセスとの間のデータ転送を制御するノード間データ転送制御装置であって、前記複数のノード間でメモリ番地が仮想的あるいは物理的に同一である分散共有メモリと、前記ノードの増設に応じて、該ノードに対応する領域を前記分散共有メモリに割り当てる領域割当手段と、前記ノードの減設に応じて、前記分散共有メモリに割り当てられた領域を解除する領域解除手段と、を備え、前記領域解除手段は、領域を解除する際に、前記領域割当手段により後から割り当てられた領域を、先に解除することを特徴とするノード間データ転送制御装置である。   In order to solve the above-described problem, the present invention provides a data transfer between a plurality of nodes connected to a network using a distributed shared memory allocated on a local memory included in each node. An inter-node data transfer control device for controlling a distributed shared memory whose memory addresses are virtually or physically the same among the plurality of nodes, and an area corresponding to the node according to the addition of the nodes Area allocating means for allocating to the distributed shared memory, and area releasing means for releasing the area allocated to the distributed shared memory in response to the reduction of the node, the area releasing means releasing the area In this case, the inter-node data transfer control device is characterized in that the area allocated later by the area allocating unit is released first.

本発明は、上記の発明において、前記複数のノードの接続関係に基づくグループ単位で、所定の閾値を超過して前記分散共有メモリに割り当てられた領域が使用されているか判定する判定手段を更に備え、前記領域割当手段は、前記判定手段により、所定の閾値を超過して領域が使用されていると判定された場合に、前記グループ単位で、前記分散共有メモリに新たに領域を割り当てることを特徴とする。   In the above invention, the present invention further includes a determination unit that determines whether an area allocated to the distributed shared memory exceeding a predetermined threshold is used in units of groups based on a connection relationship of the plurality of nodes. The area allocating means allocates a new area to the distributed shared memory in units of groups when the determining means determines that the area is used exceeding a predetermined threshold. And

本発明は、上記の発明において、前記所定の閾値は、少なくとも1つ以上であり、前記領域割当手段は、超過している所定の閾値の数に基づいて、前記グループ単位で前記分散共有メモリに割り当てる領域の容量を決定することを特徴とする。   According to the present invention, in the above invention, the predetermined threshold value is at least one or more, and the area allocating unit stores the distributed shared memory in the group unit based on the number of predetermined threshold values exceeding the predetermined threshold value. The capacity of the area to be allocated is determined.

本発明は、上記の発明において、前記領域解除手段は、後から前記グループ単位で割り当てられた領域を、先に解除することを特徴とする。   The present invention is characterized in that, in the above-mentioned invention, the area releasing means releases an area allocated later in units of groups first.

また、上述した課題を解決するために、本発明は、ネットワークに接続された複数のノード間で、各ノードが有するローカルメモリ上に割り当てられた分散共有メモリを用いて、他プロセスとの間のデータ転送を制御するノード間データ転送制御方法であって、前記ノードの増設に応じて、該ノードに対応する領域を、前記複数のノード間でメモリ番地が仮想的あるいは物理的に同一である分散共有メモリに割り当てるステップと、前記ノードの減設に応じて、前記分散共有メモリに割り当てられた領域を解除する際に、後から割り当てられた領域を、先に解除するステップと、を含むことを特徴とするノード間データ転送制御方法である。   Further, in order to solve the above-described problem, the present invention uses a distributed shared memory allocated on a local memory included in each node among a plurality of nodes connected to a network, to communicate with other processes. An inter-node data transfer control method for controlling data transfer, wherein an area corresponding to a node is distributed in such a manner that memory addresses are virtually or physically the same among the plurality of nodes according to the addition of the node. Allocating to shared memory, and releasing the area allocated later when releasing the area allocated to the distributed shared memory in accordance with the reduction of the node. A feature is a data transfer control method between nodes.

本発明は、上記の発明において、前記複数のノードの接続関係に基づくグループ単位で、所定の閾値を超過して前記分散共有メモリに割り当てられた領域が使用されているか判定するステップを更に含み、前記所定の閾値を超過して領域が使用されていると判定された場合に、前記グループ単位で前記分散共有メモリに新たに領域を割り当てることを特徴とする。   The present invention further includes a step of determining whether an area allocated to the distributed shared memory exceeding a predetermined threshold is used in a group unit based on a connection relation of the plurality of nodes in the above invention, When it is determined that an area is used exceeding the predetermined threshold, a new area is allocated to the distributed shared memory in units of groups.

本発明は、上記の発明において、前記所定の閾値は、少なくとも1つ以上であり、前記超過している所定の閾値の数に基づいて、前記グループ単位で前記分散共有メモリに割り当てる領域の容量を決定するステップを更に含むことを特徴とする。   According to the present invention, in the above invention, the predetermined threshold is at least one or more, and a capacity of an area to be allocated to the distributed shared memory in units of groups is determined based on the number of the predetermined thresholds exceeding the predetermined threshold. The method further includes the step of determining.

本発明は、上記の発明において、前記割り当てられた領域を解除する際に、後から前記グループ単位で割り当てられた領域を、先に解除することを特徴とする。   The present invention is characterized in that, in the above invention, when the allocated area is released, the area allocated in the group unit is released first.

また、上述した課題を解決するために、本発明は、ネットワークに接続された複数のノード間で、各ノードが有するローカルメモリ上に割り当てられた分散共有メモリを用いて、他プロセスとの間のデータ転送を制御するノード間データ転送制御装置を制御するコンピュータに、前記ノードの増設に応じて、該ノードに対応する領域を、前記複数のノード間でメモリ番地が仮想的あるいは物理的に同一である分散共有メモリに割り当てるステップと、前記ノードの減設に応じて、前記分散共有メモリに割り当てられた領域を解除する際に、後から割り当てられた領域を、先に解除するステップと、を実行させることを特徴とするプログラムである。   Further, in order to solve the above-described problem, the present invention uses a distributed shared memory allocated on a local memory included in each node among a plurality of nodes connected to a network, to communicate with other processes. According to the increase in the number of nodes, the computer corresponding to the node-to-node data transfer control device that controls data transfer has an area corresponding to the node, and the memory addresses are virtually or physically the same among the plurality of nodes. A step of allocating to a certain distributed shared memory, and a step of releasing the area allocated later when releasing the area allocated to the distributed shared memory according to the reduction of the node. It is a program characterized by making it carry out.

この発明によれば、ノードの増設に応じて、該ノードに対応する領域を分散共有メモリに割り当て、ノードの減設に応じて、分散共有メモリに割り当てられた領域を解除する際に、後から割り当てられた領域を、先に解除するようにしたので、分散共有メモリを効率的に利用することができ、また、後で割り当てが不要になった場合も、割り当て時の効率を維持しながら割り当てた領域を解除することができるという利点が得られる。   According to the present invention, when a node is added, an area corresponding to the node is allocated to the distributed shared memory, and when the area allocated to the distributed shared memory is released according to the reduction of the node, Since the allocated area is released first, distributed shared memory can be used efficiently, and even if allocation becomes unnecessary later, allocation is performed while maintaining efficiency at the time of allocation. The advantage is that the area can be released.

また、本発明によれば、複数のノードの接続関係に基づくグループ単位で、所定の閾値を超過して分散共有メモリに割り当てられた領域が使用されているか判定し、所定の閾値を超過して領域が使用されていると判定された場合に、グループ単位で、分散共有メモリに新たに領域を割り当てるようにしたので、分散共有メモリの中で使用されている領域がある定まったメモリサイズを超過しているものがあり、領域不足が起こり得るような場合において、効率的にサイズ超過を判定し、効率的に割り当てを行うことができるという利点が得られる。   Further, according to the present invention, it is determined whether the area allocated to the distributed shared memory exceeding the predetermined threshold is used in units of groups based on the connection relationship of the plurality of nodes, and the predetermined threshold is exceeded. When an area is determined to be in use, a new area is allocated to the distributed shared memory in units of groups, so the area used in the distributed shared memory exceeds the specified memory size. In the case where there is a possibility that an area shortage may occur, there is an advantage that it is possible to efficiently determine that the size is exceeded and to perform allocation efficiently.

また、本発明によれば、超過している所定の閾値の数に基づいて、前記グループ単位で前記分散共有メモリに割り当てる領域の容量を決定するようにしたので、領域不足が起こり得るような場合において、効率的にサイズ超過を判定し、効率的に割り当てを行うことができるという利点が得られる。   According to the present invention, the capacity of the area to be allocated to the distributed shared memory is determined in units of the group based on the number of predetermined thresholds that have been exceeded. Thus, it is possible to obtain an advantage that it is possible to efficiently determine the excess of the size and perform the allocation efficiently.

また、本発明によれば、後からグループ単位で割り当てられた領域を、先に解除するようにしたので、後で割り当てが不要になった場合も、割り当て時の効率を維持しながら割り当て解除を行うことができるという利点が得られる。   Further, according to the present invention, since the area allocated in units of groups later is released first, even if the allocation becomes unnecessary later, the allocation is released while maintaining the efficiency at the time of allocation. The advantage is that it can be done.

以下、本発明の一実施形態を、図面を参照して説明する。
ノード番地に対して少なくとも1つ以上の分散共有メモリ番地が対応付けられており、メモリ番地を指定することで対応するノードヘデータが送られる構造を有している。市販されているメモリであっても番地は十分多いので、通常はノードに対応付けるメモリ領域が不足することはないが、何らかの理由でメモリ番地の数が不十分である場合は仮想メモリ番地を用いて、対応付けるメモリ番地の数を増やすことができるようになっている。
Hereinafter, an embodiment of the present invention will be described with reference to the drawings.
At least one distributed shared memory address is associated with a node address, and data is sent to the corresponding node by designating the memory address. Even with commercially available memory, the number of addresses is sufficiently large, so normally there is no shortage of memory area associated with the node, but if for some reason the number of memory addresses is insufficient, use virtual memory addresses The number of memory addresses to be associated can be increased.

しかしながら、さらにメモリ番地の数が不足する場合や、ノードの下位にさらに他のネットワーク(下位ネットワーク)が接続されるようなネットワーク構造等においては、ノードの識別子に子番号を用意し、階層的に分散共有メモリの領域を構成することになる。この場合、下位ネットワークが接続されたノードを介してネットワークを区分するようになっている。すなわち、下位ネットワークに属するノードは、親(上位)のノード番地を共有しており、子(下位)のノード番地が異なるようにして、分散共有メモリ領域を構成しておく。ノード間の構造がリング状の場合など、メモリ領域をノード間構造に割り当てにくい場合には、メモリの構成をノードの関係の構造に一致させるか、あるいは近づけて構成することになる。   However, when the number of memory addresses is insufficient or in a network structure in which another network (lower network) is connected to a lower level of the node, a child number is prepared for the node identifier, and hierarchically An area of the distributed shared memory is configured. In this case, the network is divided through the node to which the lower network is connected. In other words, the nodes belonging to the lower network share the parent (upper) node address, and the child (lower) node addresses are different so that the distributed shared memory area is configured. When it is difficult to allocate the memory area to the inter-node structure, such as when the structure between the nodes is ring-shaped, the memory configuration is configured to be close to or close to the structure of the node relationship.

図1は、本発明の実施形態による通信システムと通信を行うノード内部の構成を示すブロック図である。図において、本通信システムは、ネットワーク1−Iと、該ネットワーク1−Iに接続された複数のノード1−F、1−J〜1−Nとからなる。なお、以下の説明では、ノード1−Fの構成についてのみ説明するが、他のノード1−J〜1−Nについても同じ構成である。   FIG. 1 is a block diagram showing an internal configuration of a node that communicates with a communication system according to an embodiment of the present invention. In the figure, the communication system includes a network 1-I and a plurality of nodes 1-F and 1-J to 1-N connected to the network 1-I. In the following description, only the configuration of the node 1-F will be described, but the other nodes 1-J to 1-N have the same configuration.

ノード1−Fは、アプリケーションプログラム1−A、1−A’と、ノード番地変換手段1−B、分散共有メモリ1−C、転送制御手段1−Dを備え、各々、内部バス1−Eにより接続されている。図1に示す内部バス1−Eおいて、一点鎖線と点線は、データ・アドレスの流れを示している。アプリケーションプログラム1−Aは、例えば、ローカルメモリ上に確保された分散共有メモリ1−Cにデータを書き込む。分散共有メモリ1−Cは、ローカルメモリ上に確保され、各ノードで共有されるメモリ領域である。ノード番地対応手段(領域割当手段、領域解除手段、判定手段)1−Bは、内部バス1−E上を流れるデータのメモリ番地を参照し、メモリ番地をノード番地に変換し、転送制御手段1−Dに通知する。転送制御手段1−Dは、通知されたノード番地に向けてデータをネットワーク1−Iに送出する。   The node 1-F includes application programs 1-A and 1-A ′, a node address conversion unit 1-B, a distributed shared memory 1-C, and a transfer control unit 1-D. It is connected. In the internal bus 1-E shown in FIG. 1, an alternate long and short dash line and a dotted line indicate the flow of data addresses. For example, the application program 1-A writes data to the distributed shared memory 1-C secured on the local memory. The distributed shared memory 1-C is a memory area secured on the local memory and shared by each node. Node address correspondence means (area allocation means, area release means, determination means) 1-B refers to the memory address of the data flowing on the internal bus 1-E, converts the memory address to the node address, and transfers control means 1 -Notify D. The transfer control unit 1-D sends data to the network 1-I toward the notified node address.

ノード番地対応手段1−Bにおいて、メモリ番地をノード番地に変換する手段は、(a)メモリ番地とノード番地とが対応付けられたテーブルを備えており、このテーブルを検索するか、あるいは、(b)メモリ番地のシフトや、一部のマスク、あるいは演算といった所定の規則に基づいてメモリ番地を加工したものをノード番地とする。   In the node address correspondence means 1-B, the means for converting the memory address into the node address includes (a) a table in which the memory address and the node address are associated, and this table is searched or ( b) A node address is obtained by processing a memory address based on a predetermined rule such as a shift of a memory address, a partial mask, or an operation.

なお、「通知」と記載したが、転送制御手段1−Dがノード番地対応手段1−Bに問い合わせるか、あるいは、ノード番地対応手段1−B内の変換後のノード番地を参照する、等でも構わない。   Although “notification” is described, the transfer control means 1-D inquires of the node address correspondence means 1-B or refers to the converted node address in the node address correspondence means 1-B. I do not care.

データを受信したノードにおいては、データのメモリ番地を参照して受信ノードのローカルメモリ上に確保された分散共有メモリ上の該メモリ番地にデータを書き込む。これにより、送信ノードと受信ノードとは、それぞれ自ノード内の分散共有メモリの同一メモリ番地に同じデータを共有することになる。   In the node that has received the data, the memory address of the data is referred to and the data is written to the memory address on the distributed shared memory secured on the local memory of the receiving node. As a result, the transmission node and the reception node share the same data in the same memory address of the distributed shared memory in the own node.

例えば、アプリケーションプログラム1−Aが、分散共有メモリ1−Cにデータ1−Gを書き込むと、ノード番地対応手段1−Bは、内部バス1−E上を流れるデータ1−Gのメモリ番地部を参照し、メモリ番地「1−C−1」をノード番地に変換し、転送制御手段1−Dに通知する。転送制御手段1−Dは、通知されたノード番地1−Hに向けてデータ1−Gをネットワーク1−Iに送出する。   For example, when the application program 1-A writes the data 1-G to the distributed shared memory 1-C, the node address handling means 1-B sets the memory address portion of the data 1-G flowing on the internal bus 1-E. The memory address “1-C-1” is converted into a node address with reference to the transfer control means 1-D. The transfer control means 1-D sends data 1-G to the network 1-I toward the notified node address 1-H.

データ1−Gを受信したノードにおいては、データ1−Gのメモリ番地を参照して受信ノードのローカルメモリ上に確保された分散共有メモリ上の該メモリ番地にデータ1−Gを書き込むことで、送信ノードと受信ノードは、それぞれ自ノード内の分散共有メモリの同一番地に同じデータを共有する。図1には、ノード1−Fとノード1−J〜1−Nとがデータを送受信する例として、データがノード1−M宛である場合、すなわち、受信側をノード1−Mとしており、ノード1−Mで転送制御手段1−D’により分散共有メモリ1−C’上の送信側と同じメモリ番地1−C−1に書き込む。他のノード1−F〜1−Nでも同じ動作である。   In the node that has received the data 1-G, by referring to the memory address of the data 1-G, the data 1-G is written to the memory address on the distributed shared memory secured on the local memory of the receiving node. The transmission node and the reception node share the same data at the same address of the distributed shared memory in the own node. In FIG. 1, as an example in which the node 1-F and the nodes 1-J to 1-N transmit and receive data, the data is addressed to the node 1-M, that is, the receiving side is the node 1-M. In the node 1-M, the transfer control means 1-D ′ writes the data to the same memory address 1-C-1 as the transmission side on the distributed shared memory 1-C ′. The same operation is performed in the other nodes 1-F to 1-N.

次に、図2は、本実施形態による、通信システムであって、ネットワークに接続されたノードの関係の概略を示す概念図である。また、図3は、本実施形態による、通信システムであって、ノード内部のメモリの構造の概略を示す概念図である。図2(a)に示すように、ネットワーク区分が複数(1−a、2−a、…、m−a;1−b、…、m−b;…)ある場合、ネットワーク区分の集まりがこの1つだけであれば、図3(b)に示すように、ノード1−a(便宜上、ノード番地、あるいはノード番地をノード名で兼ねた表記とする)宛の共有メモリ領域を、メモリ番地上位が1、メモリ番地下位がa、のように分散共有メモリの構成を設定し、ノード番地変換手段1−Bにその変換方法を登録しておく。但し、メモリ番地は、マスクを設定することができ、各メモリ領域は、複数のバッファ(以降、区別可能と思われる箇所は、バッファを単にメモリ領域と記す)から構成されるので、同一のノード宛に複数のデータを送ることもできる。つまり、図2(a)のノード1−aに対応したメモリ領域を図3(b)の共有メモリ領域(1,a)とすると、図3(a)に示すように、p個の番地で構成されるバッファが複数個集まった構成をとることを意味する。   Next, FIG. 2 is a conceptual diagram showing an outline of a relationship between nodes connected to a network in the communication system according to the present embodiment. FIG. 3 is a conceptual diagram showing an outline of a memory structure inside the node in the communication system according to the present embodiment. As shown in FIG. 2A, when there are a plurality of network segments (1-a, 2-a,..., Ma; 1-b,. If there is only one, as shown in FIG. 3 (b), the shared memory area addressed to the node 1-a (for convenience, the node address or the node address also serves as the node name) is assigned to the upper memory address. 1 and the memory address lower order is a, and the configuration of the distributed shared memory is set, and the conversion method is registered in the node address conversion means 1-B. However, a mask can be set for the memory address, and each memory area is composed of a plurality of buffers (hereinafter, the parts that are considered to be distinguishable are simply referred to as a memory area), so that the same node Multiple data can be sent to the address. That is, if the memory area corresponding to the node 1-a in FIG. 2 (a) is the shared memory area (1, a) in FIG. 3 (b), as shown in FIG. This means that a plurality of configured buffers are collected.

分散共有メモリ1−Cを、ある単位で区切った場合(ハードディスクのセクタ相当)、セクタの最大数は、共有メモリサイズ/(セクタの中の最大バッファ数×バッファサイズ)となるので、使用セクタ数をm、セクタ内の使用バッファ数をnとすると、搭載するメモリに余裕がある限り、mは大きくできるが、nはセクタ内の最大バッファ数までしか大きくできない。   When the distributed shared memory 1-C is divided in a certain unit (equivalent to a hard disk sector), the maximum number of sectors is shared memory size / (maximum number of buffers in the sector × buffer size), so the number of sectors used Assuming that m is the number of buffers used in a sector, m can be increased as long as there is room in the memory to be mounted, but n can only be increased up to the maximum number of buffers in the sector.

このように、nまたはmのどちらか一方は、メモリ空間を使いきる程度までは十分大きくとれるが、他方は制限されるので、図3(e)に示すように、制限が生じにくい側(前述の例では、mは余裕があるがメモリサイズに制限があるので、nに比較して制限が生じにくい)を、複数番地を1つの番地に代表して扱い、他方の不足を避けるようにする。あるいは、図3(d)に示すように、不足番号に相当する部分を途中で不連続(図3(d)では、cとdの間や、wとxの間が不連続になっている)になっても、実際には、仮想番地を用いて別のメモリ領域を割り当てておき、ネットワーク内のノード関係とメモリ番地の関係は、同じ配列で識別可能とする。   Thus, either n or m can be sufficiently large to the extent that the memory space is used up, but the other is restricted, and as shown in FIG. In this example, m has a margin but the memory size is limited, so that it is difficult to generate a limit compared to n), so that a plurality of addresses are represented as one address and the other is avoided. . Alternatively, as shown in FIG. 3 (d), the portion corresponding to the shortage number is discontinuous in the middle (in FIG. 3 (d), there is a discontinuity between c and d or between w and x. However, in reality, another memory area is allocated using a virtual address, and the node relationship in the network and the memory address relationship can be identified by the same arrangement.

このように、本実施形態では、ネットワーク区分の構造に合わせて分散共有メモリ領域の構造をブロック化しておく。例えば、図3(b)のa〜m、…と1〜nとで示されたメモリ領域が連続して確保できない場合には、図3(d)のように、幾つかに分けて確保することになる。なお、図2(a)に示すネットワーク区分構成と図3(b)に示す分散共有メモリ領域の構成とが対応し、図2(b)に示すネットワーク区分構成と図3(c)に示す分散共有メモリ領域の構成とがそれぞれ対応している。   As described above, in this embodiment, the structure of the distributed shared memory area is made into a block according to the structure of the network partition. For example, when the memory areas indicated by a to m,... And 1 to n in FIG. 3B cannot be secured continuously, they are secured in several parts as shown in FIG. It will be. The network partition configuration shown in FIG. 2 (a) corresponds to the configuration of the distributed shared memory area shown in FIG. 3 (b), and the network partition configuration shown in FIG. 2 (b) and the distribution shown in FIG. 3 (c). The configuration of the shared memory area corresponds to each.

例えば、ネットワーク上でノードが増減し、例えば、図2(b)でノード1−aのネットワーク区分にノード1−nが追加されても、図3(b)の分散共有メモリ1−C上のmに続く位置にノード1−nに対応する領域を割り当てればよい。   For example, even if the number of nodes increases or decreases on the network, and the node 1-n is added to the network section of the node 1-a in FIG. 2B, for example, the data on the distributed shared memory 1-C in FIG. An area corresponding to the node 1-n may be allocated at a position following m.

また、図2(b)に示すように、ネットワーク区分C−1に、ノード1−a’、1−b’、1−c’からなる集合C−2が増加する場合には、前述したように、ノード1−nを追加した場合と同様に、1−(n+1),1−(n+2)、…、と追加しても良いが、これらノード1−a’、1−b’、1−c’を新たなネットワーク区分として、ノード1−a、…、1−nや、ノード2−a、…、2−p等と並列になるよう、分散共有メモリ1−C上にバッファを割り当てても良い。この場合、図3(c)では、分散共有メモリ領域C−1が既存のノード用の分散共有メモリ、すなわち、図2(b)のネットワーク区分C−1に対応し、分散共有メモリ領域C−2が図2(b)のネットワーク区分C−2に対応する。つまり、既存の分散共有メモリ領域(図3(c)のC−1)に、図2(b)のネットワーク区分C−2に対応する、新たな分散共有メモリ領域C−2を追加することになる。また、ノードが減少する場合には、バッファを減らすことになる。   As shown in FIG. 2B, when the set C-2 including the nodes 1-a ′, 1-b ′, and 1-c ′ increases in the network section C-1, as described above. , 1- (n + 1), 1- (n + 2),... May be added as in the case of adding the node 1-n, but these nodes 1-a ′, 1-b ′, 1- With c ′ as a new network section, a buffer is allocated on the distributed shared memory 1-C so as to be in parallel with the nodes 1-a,..., 1-n and the nodes 2-a,. Also good. In this case, in FIG. 3C, the distributed shared memory area C-1 corresponds to the existing shared distributed memory for the node, that is, the network section C-1 in FIG. 2B, and the distributed shared memory area C- 2 corresponds to the network section C-2 in FIG. That is, a new distributed shared memory area C-2 corresponding to the network section C-2 in FIG. 2B is added to the existing distributed shared memory area (C-1 in FIG. 3C). Become. If the number of nodes decreases, the number of buffers will be decreased.

このような、メモリの割り当てには、ノードの変更規則(後述)を予め設けておく。したがって、新たなノードが追加されたり、ノードが減少されたり、新たなネットワーク区分が追加されたり、削除されたりしても、送信データを生成し宛先を指定するアプリケーションプログラムや、OSなどは、ノード関係が変更されたとしても、変更/追加/削除される各々のノードの変更/追加/削除後のノード番号を登録したり、設定したりするなどの操作を行うことはない。   For such memory allocation, node change rules (described later) are provided in advance. Therefore, even if a new node is added, a number of nodes is reduced, a new network segment is added or deleted, an application program that generates transmission data and specifies a destination, an OS, etc. Even if the relationship is changed, an operation such as registering or setting the node number after change / addition / deletion of each node to be changed / added / deleted is not performed.

ここで、本実施形態によるメモリ構成変更処理による効果を明確にするために、通常のメモリ構成変更処理と本実施形態によるメモリ構成変更処理について説明する。   Here, in order to clarify the effect of the memory configuration change processing according to the present embodiment, the normal memory configuration change processing and the memory configuration change processing according to the present embodiment will be described.

図4は、通常のメモリ構成変更処理の動作を説明するためのフローチャートである。図において、まず、分散共有メモリ利用者やアプリケーションやOS類が遷移を起こさせるために、ノード関係に変更があると(ステップSa1)、ノード関係変更のために通信停止状態へ遷移させる(ステップSa2)。次に、ノード番地(IP番号等)の変更情報を入力し(ステップSa3)、アプリケーションやOSなどに変更箇所を通知する(ステップSa4)。アプリケーションやOSなどは、更新されたメモリ番地をそれぞれに設定する(ステップSa5)。その後、アプリケーションや、OSなどを、ノード関係変更後の通信可能状態へ遷移させる(ステップSa6)。   FIG. 4 is a flowchart for explaining the operation of a normal memory configuration change process. In the figure, first, when a node relationship is changed (step Sa1) in order to cause a distributed shared memory user, an application, or an OS to cause a transition (step Sa1), a transition to a communication stop state is made to change the node relationship (step Sa2). ). Next, change information of the node address (IP number or the like) is input (step Sa3), and the changed location is notified to the application, OS, etc. (step Sa4). The application, the OS, etc. set the updated memory address for each (step Sa5). Thereafter, the application, the OS, and the like are transitioned to a communicable state after the node relationship is changed (step Sa6).

次に、図5は、本実施形態によるメモリ構成変更処理の動作を説明するためのフローチャートである。図において、分散共有メモリ利用者やアプリケーションやOS類が遷移を起こさせるために、ネットワークや、ネットワーク区分でノードが増減すると(ステップSb1)、まず、ノード番地対応手段1−Bは、アプリケーションや、OSなどを、ノード関係変更のために通信停止状態へ遷移させる(ステップSb2)。また、ノード番地対応手段1−Bは、分散共有メモリ構成の変更規則(後述)に従ってメモリ位置を決定し(ステップSb3)、アプリケーションや、OSなどを、ノード関係変更後の通信可能状態へ遷移させる(ステップSb4)。   Next, FIG. 5 is a flowchart for explaining the operation of the memory configuration changing process according to the present embodiment. In the figure, in order for the distributed shared memory user, application, and OS to cause a transition, when the number of nodes increases or decreases in the network or network classification (step Sb1), first, the node address handling means 1-B determines whether the application, The OS or the like is transitioned to a communication stop state to change the node relationship (step Sb2). Further, the node address handling means 1-B determines the memory location according to the distributed shared memory configuration change rule (described later) (step Sb3), and transitions the application, OS, etc. to the communicable state after the node relationship change. (Step Sb4).

このように、本実施形態では、メモリ構造の変更規則を参照できる状態にありさえすれば、アプリケーションや、OSなどは、分散共有メモリ1−Cにおける、ノード関係の変更に対応してノード番地対応手段1−Bにより変更された、メモリ構造の指定領域にデータを書き込むだけで、転送制御手段1−Dにより、変更後の所定のノード宛にデータを送信することができる。   As described above, in this embodiment, as long as the change rule of the memory structure can be referred to, the application, the OS, and the like correspond to the node address corresponding to the change of the node relationship in the distributed shared memory 1-C. By simply writing data to the designated area of the memory structure changed by the means 1-B, the transfer control means 1-D can send the data to the predetermined node after the change.

上述した変更規則は、メモリ構造とノードとの関係の対応付けを意味しており、例えば、次のような規則が考えられる。
(1)ノードの追加
ノードが含まれるセグメントに対応するメモリブロックのIPアドレス(非マスク部分)と一致するメモリ番地を割り当てる。
The above-mentioned change rule means associating the relationship between the memory structure and the node. For example, the following rule can be considered.
(1) Adding a node A memory address that matches the IP address (non-masked portion) of the memory block corresponding to the segment including the node is assigned.

(2)ノードの減少
ノードが含まれるセグメントに対応するメモリブロックのIPアドレス(非マスク部分)と一致するメモリ番地を、分散共有メモリ1−Cとしての割り当てから解除する。
(2) Node reduction The memory address that matches the IP address (unmasked portion) of the memory block corresponding to the segment including the node is released from the allocation as the distributed shared memory 1-C.

変更規則の決め方によっては、セグメントとメモリブロックとを対応させたり、ノード番地(IPアドレス等)とメモリ番地の一部とを一致させたり、単純な演算で対応付けを可能にする。例えば、セグメント毎にメモリのブロックを区分し、IPアドレスの非マスク部分とメモリ番地とを一致させる変更規則の場合には、セグメントとメモリブロックとの対応関係の情報に変更があると、ノード番地変換手段1−Bに登録する必要はある。   Depending on how to determine the change rule, the segment and the memory block are associated with each other, the node address (IP address or the like) is matched with a part of the memory address, or the association can be performed by a simple calculation. For example, in the case of a change rule that divides a memory block for each segment and matches the non-masked portion of the IP address with the memory address, if the information on the correspondence between the segment and the memory block changes, the node address It is necessary to register in the conversion means 1-B.

但し、新たなノードが加わった場合、すなわち、新たにノードに対応するメモリ番地を割り当てることになる場合には、必ずしも、割り当てられたメモリ番地の対応関係を登録する必要はない。つまり、アプリケーションが上記変更規則を参照さえできる状態であれば、目的ノードが対応するメモリ番地を指定してデータを書き込む(送信)ことができる。参照できる状態とは、用いる変更規則をソフトウェアとして、あるいはメモリ上に保持されたテーブルや、プログラム、あるいは組み込みロジックなどとして保持しておき、アプリケーションや、OSなどがデータを送信する処理の中、あるいはその前にリードするか、あるいは目的ノード名や、プロセス名などを指定すると、メモリ番地が出力され、該メモリ番地を取得することが可能な状態である。   However, when a new node is added, that is, when a memory address corresponding to a new node is to be allocated, it is not always necessary to register the correspondence relationship of the allocated memory address. That is, if the application can even refer to the change rule, data can be written (transmitted) by designating a memory address corresponding to the target node. The state that can be referred to means that a change rule to be used is stored as software, a table, a program, or embedded logic stored in a memory, and an application, an OS, or the like transmits data, or If reading is performed before that, or a target node name, a process name, or the like is specified, a memory address is output, and the memory address can be acquired.

変更規則を用いる場合、分散共有メモリ1−Cの領域に不足が生じても、1つ1つのメモリ領域(例えば、図3(b)の(1,a)で示されたメモリの部分、つまり、図2(a)のノード1−a宛の領域がその1つ)に不足があったとしても、必ずしも個々のメモリ毎に不足を判定する必要はない。つまり、あるまとまった複数のメモリ領域で構成された単位で不足を判定し、その複数のメモリ領域の単位で、ある不足の基準を超えない間は、その単位の中で、メモリ領域の不足があるところに、余剰のあるところからのメモリを追加する、といった方法を、変更規則を修正するだけで適用することができる。   When the change rule is used, even if a shortage occurs in the area of the distributed shared memory 1-C, each memory area (for example, the memory portion indicated by (1, a) in FIG. Even if there is a shortage in the area addressed to the node 1-a in FIG. 2A, it is not always necessary to determine the shortage for each individual memory. In other words, a shortage is determined in a unit composed of a plurality of memory areas, and there is a shortage of memory areas in the unit of the plurality of memory areas as long as a certain shortage criterion is not exceeded. It is possible to apply a method of adding memory from a place where there is a surplus only by correcting the change rule.

また、ノードが減少する場合も、必ずしも、割り当てられているメモリ番地の対応を直接特定して割り当てから削除することはない。これは、検索等の処理の負荷が大きくなるためである。ノードが減少する場合には、上述したノード追加の場合の反対方向のプロセスであって、ノード番地(IPアドレス等)とメモリ番地の一部同士を一致させたり、単純な演算で対応付けたりすることによって、出力されたメモリ番地を、ノードとの対応関係から削除するようにすればよい。   Also, even when the number of nodes decreases, it is not always necessary to directly identify the correspondence of the allocated memory address and delete it from the allocation. This is because the processing load such as search increases. When the number of nodes decreases, it is a process in the opposite direction to the case of adding a node as described above, and a part of a node address (such as an IP address) and a memory address are matched with each other or are associated by a simple calculation. As a result, the output memory address may be deleted from the correspondence with the node.

なお、ノードと記述した装置は、コンピュータ、サーバ、ルータ、センサ(ノード)、駆動装置、制御装置などで通信機能を有する装置であれば制限はない。また、メモリ配置は、物理的でなくてもよく、仮想メモリを用いても構わない。ここで説明しているメモリ構成は、ネットワーク接続前に通信機能を初期化する段階で予め行ってもよいし、既に通信を行っている状況でメモリを再構成しても構わない。また、ノードの関係は、便宜上、バス構造のように表記しているが、リング状やスター状など、実際の物理的な接続状態はどのような形態であっても構わない。   The device described as a node is not limited as long as it has a communication function such as a computer, a server, a router, a sensor (node), a driving device, a control device, or the like. Further, the memory arrangement may not be physical, and virtual memory may be used. The memory configuration described here may be performed in advance at the stage of initializing the communication function before connection to the network, or the memory may be reconfigured in a situation where communication is already performed. In addition, the relationship between nodes is expressed as a bus structure for convenience, but the actual physical connection state such as a ring shape or a star shape may be in any form.

また、ノードの増減や、メモリ構成の変更などがあっても、ノード番地変換手段1−Bは、ノード番地とメモリ番地との対応関係を示すテーブルを保持し、そのテーブルにおいてノード番地とメモリ番地の対応を変更するようになっている。あるいは、ノード番地変換手段1−Bは、メモリ番地のシフトや、一部のマスク、あるいは演算といった事前に定められた規則に基づいて、メモリ番地に加工を施したものがノード番地となる、等の手段によって、メモリ番地とノード番地との変換を行う。そのため、分散共有メモリ1−Cの領域が不足しても、ノード番地変換手段1−Bを、大規模に書き換えたり、修正したりすることなしに、ノード番地変換手段1−Bのテーブルに、メモリ番地とノードの新たな対応関係を付け加えるだけで、あるいは、ノード番地変換手段1−Bの演算を、メモリ番地とノードの新たな対応となるように修正するだけで、不足を解消することができる。   Even if the number of nodes is increased or decreased, or the memory configuration is changed, the node address conversion unit 1-B holds a table indicating the correspondence between the node addresses and the memory addresses, and the node address and the memory address in the table. The correspondence of is to be changed. Alternatively, the node address conversion means 1-B is a node address obtained by processing a memory address based on a predetermined rule such as a shift of a memory address, a partial mask, or an operation. The memory address and the node address are converted by the above means. Therefore, even if the area of the distributed shared memory 1-C is insufficient, the node address conversion unit 1-B is stored in the table of the node address conversion unit 1-B without rewriting or correcting it on a large scale. It is possible to solve the shortage by simply adding a new correspondence between the memory address and the node, or by correcting the operation of the node address conversion means 1-B so as to be a new correspondence between the memory address and the node. it can.

次に、ネットワーク構造が、図2(b)のように、ネットワーク区分C−1とネットワーク区分C−2のみのであった場合を例にメモリ構成の設定法について説明する。   Next, a memory configuration setting method will be described by taking as an example a case where the network structure is only the network section C-1 and the network section C-2 as shown in FIG.

図6は、本実施形態による、メモリ構成の設定法の一例を説明するための概念図である。尚、図6(a)において、1、2、q(1)とある箇所は、本来、1、2、3、…、q(1)、の合計q(1)個の領域集合を示しているが、記載の簡略化のために省略してある。他の領域についても同様である。また、領域のグループを示す符号G5と記した1、2、q(5)の次の領域を、領域のグループを示す符号Gsと記した1、2、q(s)と記載している。これも、領域のグループを示す符号G1と記した領域のグループである、1、2、q(1)の後に、領域のグループを示す符号G2と記した次の領域のグループの1、2、q(2)があり、同様に、最左に符号G5と記した次の領域のグループの1、2、q(5)があり、さらに、領域のグループを示す符号Gsと記した次の領域のグループの1,2、q(s)があるというように、同種の領域のグループがs個ある、という意味であるが、記載の簡略化のために省略してある。   FIG. 6 is a conceptual diagram for explaining an example of a memory configuration setting method according to the present embodiment. In FIG. 6 (a), a part with 1, 2, q (1) originally indicates a total of q (1) area sets of 1, 2, 3,..., Q (1). However, it is omitted for simplification of description. The same applies to other regions. In addition, a region next to 1, 2, q (5) indicated as a reference G5 indicating a group of regions is indicated as 1, 2, q (s) indicated as a reference Gs indicating a region group. This is also a group of regions denoted G1 indicating a group of regions, 1, 2, q (1), followed by 1, 2, q of the next region group denoted G2 indicating a region group. There is q (2), and similarly, there are 1, 2 and q (5) of the group of the next region indicated by the symbol G5 on the leftmost side, and the next region indicated by the symbol Gs indicating the region group This means that there are s groups of regions of the same kind, such as 1, 2 and q (s) of the above groups, but this is omitted for the sake of simplicity.

また、図6(a)に示す、メモリ領域M1とメモリ領域M2は、横に表記しているが、図2(b)のC−1、C−2、…、C−iの何れかに相当するメモリ領域、あるいは、図3(d)に示す「1、2、…、n」、及び「a、b、…、d、f」の正方領域で示されるメモリ領域と同等のメモリ領域の何れかに相当する。メモリ領域のサイズは、図3と図6とで異なっているが、これらはメモリ構成の一例を示しているのであって、メモリ領域のサイズは考慮せず、構成が互いに対応していることを示している。   Further, although the memory area M1 and the memory area M2 shown in FIG. 6A are written horizontally, any of C-1, C-2,..., C-i in FIG. Or a memory area equivalent to the memory area indicated by the square areas “1, 2,..., N” and “a, b,..., D, f” shown in FIG. It corresponds to either. The size of the memory area differs between FIG. 3 and FIG. 6, but these are only examples of the memory configuration, and the size of the memory area is not considered and the configurations correspond to each other. Show.

したがって、ローカルメモリ内に、図3(c)や、図3(d)の正方領域で示される、メモリ領域が複数あって、M1やM2は、その中の2つのメモリ領域である。但し、物理的に連続した位置に確保される必要はない。また、仮想メモリにより、図3(c)や、図3(d)の正方領域で示される、メモリ領域の各々が、物理的な位置に関して、複数に分かれていて、物理的に不連続であっても構わない。   Therefore, there are a plurality of memory areas indicated by the square areas in FIG. 3C and FIG. 3D in the local memory, and M1 and M2 are two memory areas. However, it is not necessary to be secured in physically continuous positions. Further, due to the virtual memory, each of the memory areas indicated by the square areas in FIG. 3C and FIG. 3D is divided into a plurality of physical positions and is physically discontinuous. It doesn't matter.

また、図6において、メモリ領域M1、M2の最小領域として記されている、番地[G1−1,a]、[G1−1,b]、…、[Gs−q(s),c]等は、物理的なメモリの最小構成でなくても構わない。つまり、これらは、上位レイヤから見たデータ転送の最小単位であり(データ転送最小単位領域と記す)、「この単位領域にデータが書きこまれると、そのデータがこの単位領域のサイズに達していなくても、目的ノードに転送される」といった用途の領域であり、ある程度のサイズを有している。   Further, in FIG. 6, addresses [G1-1, a], [G1-1, b],..., [Gs-q (s), c], etc., which are indicated as the minimum areas of the memory areas M1 and M2. May not be the minimum physical memory configuration. In other words, these are the minimum units of data transfer as seen from the upper layer (denoted as the minimum data transfer unit area). “When data is written in this unit area, the data reaches the size of this unit area. It is an area for use such as “there is no transfer to the target node”, and has a certain size.

図面上、その位置を示す記号として数字やアルファベットの組み合わせを用いているが、その一文字は、1つの番地であっても構わないし、図3(e)のように複数番地(あるいは図3(e)より更に多い、多数番地)を示しても構わない。   In the drawing, a combination of numbers and alphabets is used as a symbol indicating the position, but one character may be one address, and a plurality of addresses (or FIG. 3 (e) as shown in FIG. ), A larger number of addresses) may be indicated.

分散共有メモリ1−Cとして現在使用されているメモリ領域の不足が予測される場合に、分散共有メモリ1−Cにメモリ領域を新たに割り当てる必要が生じる。そこで、本実施形態では、現在使用されているメモリ領域M1の不足が予測されると、ローカルメモリ内で空き領域として存在し、かつ分散共有メモリ1−Cとして割り当て可能なメモリ領域が存在すれば、これをメモリ領域M2として、メモリ領域M1に追加することで、分散共有メモリ1−Cのメモリ領域不足を解消する。   When a shortage of a memory area currently used as the distributed shared memory 1-C is predicted, a new memory area needs to be allocated to the distributed shared memory 1-C. Therefore, in the present embodiment, if a shortage of the memory area M1 currently used is predicted, if there is a memory area that exists as a free area in the local memory and can be allocated as the distributed shared memory 1-C, By adding this as the memory area M2 to the memory area M1, the shortage of the memory area of the distributed shared memory 1-C is solved.

既に分散共有メモリ1−Cとして使用されているメモリ領域M1において、網掛したデータ転送最小単位領域が現在、ノードと対応付けられているとする。すなわち、図6(a)の番地[G1−1,a]が図1のノード1−Jと対応しているか、あるいは、図2(a)のノード1−aと対応している、とする。また、領域のグループG1、G2、…、Gsは、例えば、領域グループG1の[G1−1,a]、[G1−1,b]、…、[G1−1,x]は、図2(a)において、ノード1−aに対応し、領域グループG1の[G1−2,a]、[G1−2,b]、…、[G1−2,x]は、図2(a)において、ノード1−bに対応し、領域グループG2の[G2−1,a]、[G2−1,b]、…、[G2−1,x]は、図2(a)において、ノード2−aに対応している、というように、ネットワーク区分と対応しているとする。   In the memory area M1 already used as the distributed shared memory 1-C, it is assumed that the shaded data transfer minimum unit area is currently associated with a node. That is, it is assumed that the address [G1-1, a] in FIG. 6A corresponds to the node 1-J in FIG. 1 or corresponds to the node 1-a in FIG. . In addition, the area groups G1, G2,..., Gs are, for example, [G1-1, a], [G1-1, b],. In FIG. 2A, [G1-2, a], [G1-2, b],..., [G1-2, x] of the region group G1 correspond to the node 1-a in FIG. [G2-1, a], [G2-1, b],..., [G2-1, x] of the area group G2 correspond to the node 1-b in FIG. Suppose that it corresponds to the network classification.

このような状態において、図6(a)には、領域グループG1、領域グループG3、領域グループG4、及び領域グループG5が所定の不足基準を上回ったとした状況を示している。所定の不足基準は、通常、適用するシステムにより、適切な値は異なるため、システムによって適切な値を選択して設定しても構わない。また、複数存在しても構わない。例えば、図6(a)において、メモリ領域M1では、不足基準L1と不足基準L2の2つの不足基準が存在している。閾値に相当する値である。   In such a state, FIG. 6A shows a situation in which the region group G1, the region group G3, the region group G4, and the region group G5 have exceeded a predetermined shortage criterion. The predetermined shortage criterion usually has an appropriate value that differs depending on the system to be applied. Therefore, an appropriate value may be selected and set depending on the system. A plurality of them may exist. For example, in FIG. 6A, in the memory area M1, there are two shortage criteria, the shortage criterion L1 and the shortage criterion L2. It is a value corresponding to the threshold value.

図6(a)に示す網掛け部分は、ノード番地とメモリ番地とが既に対応付けられている領域、すなわち、ノード番地変換手段1−Bにおいて、メモリ番地が入力されれば、ノード番地が出力される状態とされているような、分散共有メモリ1−C内の領域を示している。例えば、当該領域グループ内に、対応付け済みメモリ領域が領域集合内の区分cを超えた位置に存在する場合、すなわち、不足基準L1を右側に超えた位置に存在する場合を、不足基準を超えたと判定し、さらに、不足基準L2を右側に超えた位置に存在する場合には、不足基準を2回超えたと判定する。   The shaded portion shown in FIG. 6A is an area in which the node address and the memory address are already associated, that is, in the node address conversion means 1-B, if the memory address is input, the node address is output. An area in the distributed shared memory 1-C that is in a state to be set is shown. For example, if the associated memory area exists in the area group at a position that exceeds the section c in the area set, that is, if it exists at a position that exceeds the shortage criterion L1 on the right side, the shortage criterion is exceeded. In addition, if it exists at a position that exceeds the shortage criterion L2 on the right side, it is determined that the shortage criterion has been exceeded twice.

メモリ領域M1で不足基準L1を超えた領域グループが存在するかどうかを判定することにより、まず、領域グループG1、領域グルーブG3、領域グループG4、及び領域グループG5が、不足基準L1を超えたと判定される。ここで述べた不足基準L1は、領域グルーブ内では、メモリ領域割り当て基準として扱われる。不足基準L1を上回った領域グループG1、領域グループG3、領域グループG4、及び領域グループG5の夫々に対し、メモリ領域割り当て基準を超えているかどうかを判定する。   By determining whether or not there is a region group that exceeds the shortage criterion L1 in the memory region M1, it is first determined that the region group G1, the region group G3, the region group G4, and the region group G5 have exceeded the shortage criterion L1. Is done. The shortage criterion L1 described here is treated as a memory region allocation criterion in the region groove. It is determined whether or not the memory area allocation standard is exceeded for each of the area group G1, area group G3, area group G4, and area group G5 that exceeds the shortage criterion L1.

但し、メモリ領域割り当て基準は、複数存在していても構わないし(例えば、図6(a)のメモリ領域M1では、L1とL2の2つのメモリ領域割り当て基準が存在している)、複数の場合には、それぞれのメモリ領域割り当て基準に対して、メモリ領域割り当て基準を超えているかどうかを判定する。すなわち、図6(a)のメモリ領域M1では、L1とL2の2個のメモリ領域割り当て基準が存在していて、領域グループG1、領域グループG3、領域グループG4、及び領域グループG5がメモリ領域割り当て基準L1を超えていて、領域グループG1及び領域グループG5がメモリ領域割り当て基準L2を超えている。   However, there may be a plurality of memory area allocation criteria (for example, in the memory area M1 in FIG. 6A, there are two memory area allocation standards L1 and L2), and there are a plurality of cases. Determines whether the memory area allocation criterion is exceeded for each memory area allocation criterion. That is, in the memory area M1 of FIG. 6A, there are two memory area allocation criteria L1 and L2, and the area group G1, area group G3, area group G4, and area group G5 are allocated to the memory area. The reference L1 is exceeded, and the area group G1 and the area group G5 exceed the memory area allocation reference L2.

メモリ領域割り当て基準を超えた領域グループに対して、新たなメモリ領域を追加割り当てするが、メモリ領域割り当て基準を幾つ超えているかを判定することにより、追加割り当てするメモリ領域のサイズを決定することで、メモリ領域の不足が多いメモリグループに対して、より大きなメモリ領域を新たに割り当てる。すなわち、いかに大きなサイズのメモリ領域を割り当てるかが、メモリ領域割り当て基準をどの区分(領域グループ内の領域集合の区分)に定めるかによって決定される。このため、この例で説明したように、領域グループ内の最大のメモリ領域を使用している領域集合のメモリ領域使用量を、メモリ領域割り当て基準との比較判定の対象としないで、他の値をメモリ領域割り当て基準との比較判定の対象とする場合があっても構わない。つまり、適用対象とするシステム、あるいは、メモリ領域の使用状況によっては、他の値をメモリ領域割り当て基準との比較判定の対象としてもよい。   A new memory area is additionally allocated to the area group that exceeds the memory area allocation criteria. By determining how many memory area allocation standards are exceeded, the size of the memory area to be additionally allocated can be determined. A larger memory area is newly allocated to a memory group having a large shortage of memory areas. That is, how large a memory area is allocated is determined by which section (partition of an area set in an area group) is determined as a memory area allocation criterion. For this reason, as described in this example, the memory area usage of the area set that uses the largest memory area in the area group is not subject to the comparison determination with the memory area allocation criterion, but other values. May be the target of comparison determination with the memory area allocation criterion. That is, depending on the system to be applied or the usage status of the memory area, another value may be a target for comparison with the memory area allocation reference.

図6(a)のメモリ領域M2は、メモリ領域M1で不足している領域グループに対して新たに割り当てるメモリ領域の例である。新たに割り当てるメモリのサイズは、メモリ領域割り当て基準を幾つ超えているかに基づく。例えば、図6(a)のメモリ領域M1で、メモリ領域割り当て基準L1を1個超えている、領域グループG3と領域グループG4に対しては、1個の新たな領域グループに相当するサイズのメモリ領域を割り当てており、それぞれG3とG4で示している。また、メモリ領域割り当て基準L2を2個超えている、領域グループG1と領域グループG5に対しては、2個の新たな領域グループに相当するサイズのメモリ領域を割り当てており、それぞれG1とG5で示している。なお、メモリ領域割り当て基準L1、L2を超えていない、領域グループG2と領域グループGsについては、新たなメモリ領域を割り当てていない。 The memory area M2 in FIG. 6A is an example of a memory area that is newly allocated to an area group that is insufficient in the memory area M1. The size of the newly allocated memory is based on how many memory area allocation criteria are exceeded. For example, in the memory area M1 in FIG. 6A, a memory having a size corresponding to one new area group for the area group G3 and the area group G4 that exceeds the memory area allocation reference L1 by one. and allocate space, it is indicated by respective G3 2 and G4 2. In addition, for the area group G1 and the area group G5 that exceed the memory area allocation reference L2, the memory areas having the sizes corresponding to the two new area groups are allocated, and G1 2 and G5, respectively. 2 . Note that no new memory area is allocated to the area group G2 and the area group Gs that do not exceed the memory area allocation criteria L1 and L2.

また、本実施形態では、領域グループに相当するサイズのメモリ領域を単位として割り当てている。しかし、これは、一例であって、適用対象とするシステム、あるいは、メモリ領域の使用状況によっては、別のサイズを単位として割り当てても構わないし、メモリ領域割り当て基準L1、L2を超えていない領域グループに対しても、メモリ領域割り当て基準を超えている領域グループに対して割り当てるメモリサイズに比較して小さなサイズの新たな割り当てを行うようにしてもよい。   In this embodiment, a memory area having a size corresponding to the area group is assigned as a unit. However, this is merely an example, and depending on the system to be applied or the usage status of the memory area, another size may be allocated as a unit, and the area that does not exceed the memory area allocation standards L1 and L2 Also for the group, a new allocation having a smaller size than the memory size allocated to the area group exceeding the memory area allocation criterion may be performed.

図6(a)において、メモリ領域M1とメモリ領域M2との間を結ぶ矢線(点線)は、メモリ領域M1における領域集合の境界がメモリ領域M2においてどこに対応するかを示している。新たなメモリ領域の割り当てを行った後、引き続き分散共有メモリ1−Cが使用されている状況の一例を、図6(b)のメモリ領域M1’とメモリ領域M2’で示している。新たな割り当て前に分散共有メモリ1−Cのメモリ領域M1が使用されていたのと同じ使用量増加率で分散共有メモリ1−Cが使用されたとした場合には、領域グループG1、領域グルーブG5においては、メモリ領域M1’が全て使用され、それに加えてメモリ領域M2’が使用されており、領域グループG1、領域グループG3、領域グループG4においては、メモリ領域M1’がまだ全て使用されていないが、メモリ領域M2’も使用されている状況である。なお、メモリ領域M1’とメモリ領域M2’は、隣接して記載されているが、物理的なメモリの位置が隣接している必要はない。   In FIG. 6A, an arrow line (dotted line) connecting the memory area M1 and the memory area M2 indicates where the boundary of the area set in the memory area M1 corresponds in the memory area M2. An example of a situation in which the distributed shared memory 1-C is continuously used after a new memory area is allocated is shown as a memory area M1 'and a memory area M2' in FIG. 6B. When the distributed shared memory 1-C is used at the same usage rate increase rate as the memory area M1 of the distributed shared memory 1-C was used before the new allocation, the area group G1 and the area group G5 In FIG. 2, the memory area M1 ′ is all used, and in addition, the memory area M2 ′ is used. In the area group G1, the area group G3, and the area group G4, the memory area M1 ′ is not yet used. However, the memory area M2 ′ is also used. Although the memory area M1 'and the memory area M2' are described adjacent to each other, the physical memory positions need not be adjacent to each other.

次に、図7は、本実施形態において、メモリ領域が変更された後の分散共有メモリ1−Cの状況の概略を示す概念図である。図において、図7(a)には、ノードが新たに加わったり、ノードに割り当てる分散共有メモリ1−Cが不足したりしてメモリ構成の変更が行われた後の、メモリの状態の一例を示している。図7(b)には、ノードに割り当てる分散共有メモリ1−Cの一部が不要になったり、ノード数が減少したりしたために、対象部分の分散共有メモリ1−Cの割り当てが解除され、通常のローカルメモリ用途にされた状況を示している。   Next, FIG. 7 is a conceptual diagram showing an outline of the situation of the distributed shared memory 1-C after the memory area is changed in the present embodiment. In FIG. 7A, FIG. 7A shows an example of the state of the memory after the memory configuration is changed due to a new node being added or the distributed shared memory 1-C allocated to the node being insufficient. Show. In FIG. 7B, since a part of the distributed shared memory 1-C assigned to the node becomes unnecessary or the number of nodes decreases, the assignment of the distributed shared memory 1-C of the target part is released. It shows the situation for normal local memory usage.

まず、図7(a)では、領域グループG1に属する領域[G1−1,a]が領域不足のために追加される場合、領域グループG3が存在するために、領域[G1−1,a]が領域グループG1の領域に連続した領域として割り当てられず、不連続な位置に領域[G1−1,a]用として割り当てられている([G1−1,a](増設)やG1(増設)と示した箇所)。また、割り当ては、本来、領域[G1−1,b]のように、初期的に割り当てられた後、不足が生じると、メモリ幅方向に割り当て単位を増やすことを前提にしている。つまり、領域[G1−1,e]のように、割り当て単位を2個割り当てられることを前提にしている。   First, in FIG. 7A, when the region [G1-1, a] belonging to the region group G1 is added due to a region shortage, the region [G1-1, a] Is not allocated as a continuous area to the area of the area group G1, but is allocated for the area [G1-1, a] at discontinuous positions ([G1-1, a] (addition) or G1 (addition)) Where). In addition, the allocation is originally based on the premise that the allocation unit is increased in the memory width direction when a shortage occurs after the initial allocation as in the area [G1-1, b]. That is, it is assumed that two allocation units can be allocated as in the area [G1-1, e].

例えば、効率化のために、図6(a)、(b)で説明したような手法で、割り当て単位の大きさより小さい単位で割り当てていく。つまり、図6(a)では、メモリ幅方向の増設対象となる割り当て単位領域が縦方向に置かれている状況に相当しており、図6(a)でメモリ領域M1とメモリ領域M2を横に並べると、図6(b)に相当する。しかし、図6(b)で示したように、割り当て単位は、本来の割り当て方を前提に分けられている(図6(a)のメモリ領域M1、M2も同様)。   For example, for efficiency, allocation is performed in units smaller than the allocation unit size by the method described with reference to FIGS. 6A and 6B. That is, FIG. 6A corresponds to a situation in which the allocation unit area to be added in the memory width direction is placed in the vertical direction. In FIG. 6A, the memory area M1 and the memory area M2 are arranged horizontally. 6 corresponds to FIG. 6B. However, as shown in FIG. 6B, the allocation unit is divided on the premise of the original allocation method (the same applies to the memory areas M1 and M2 in FIG. 6A).

図7(a)には、領域[G1−1,a]は、[G1−1,a](増設)として割り当てられる前に、既に、本来は[G1−1,b]用である領域(※1)や、本来は[G1−1,c]用である領域(※2)に割り当てられていたが、それだけで不足したために[G1−1,a](増設)として割り当てられている状態が示されている。初期的に分散共有メモリ1−Cとして用いられる範囲とは異なる位置に取られる。   In FIG. 7 (a), the area [G1-1, a] is already assigned to [G1-1, b] before being assigned as [G1-1, a] (addition). * 1) or a state that was originally assigned to the area (* 2) for [G1-1, c], but was assigned as [G1-1, a] (additional) because it was insufficient in itself It is shown. Initially, the position is different from the range used as the distributed shared memory 1-C.

図7(b)には、[G1−1,a]用が一部不要になったため、増設の手順と逆の順序で減設され状態が示されている。まず、[G1−1,a](増設)が分散共有メモリ1−Cとしての割り当てを解除される。さらに、[G1−1,a]用で不要な量が増えると、本来は[G1−1,c]用である領域(※2)や、本来は[G1−1,b]用である領域(※1)1が[G1−1,a]用としての割り当てを解除される。但し、ここは、領域グループG1内の領域なので、分散共有メモリ領域としての割り当ては解除されず、[G1−1,b]や[G1−1,c]の必要量が増えた際に、それぞれに割り当てられる領域として確保される。図7(b)で[G1−1,c]が消えているのは、[G1−1,c]と対応するノードがネットワークから削除された場合を示していて、領域(※3)は、[G1−1,c]としての割り当ては解除されるが、領域グループG1内であるので、分散共有メモリ領域としての割り当ては解除されず、領域グループG1内で新たにノードが加わった場合に割り当てるために確保された状態を維持する。   FIG. 7B shows a state in which a part for [G1-1, a] is no longer necessary, and is removed in the reverse order of the procedure of addition. First, [G1-1, a] (addition) is deallocated as the distributed shared memory 1-C. Further, when an unnecessary amount increases for [G1-1, a], an area (* 2) originally intended for [G1-1, c] and an area originally intended for [G1-1, b] (* 1) 1 is deassigned for [G1-1, a]. However, since this is an area in the area group G1, the allocation as the distributed shared memory area is not released, and when the necessary amount of [G1-1, b] and [G1-1, c] increases, It is secured as an area allocated to. In FIG. 7B, [G1-1, c] disappears when the node corresponding to [G1-1, c] is deleted from the network, and the area (* 3) is Allocation as [G1-1, c] is released, but since it is in the area group G1, allocation as a distributed shared memory area is not released, and is allocated when a new node is added in the area group G1. Maintain the state reserved for.

次に、本実施形態による、メモリ構成設定処理の主要な部分の動作について、従来技術と比較して説明する。   Next, the operation of the main part of the memory configuration setting process according to the present embodiment will be described in comparison with the prior art.

図8は、従来技術による、メモリ構成設定処理の主要な部分の動作を説明するためのフローチャートである。図8では、従来技術において、必要な分散共有メモリ1−Cが増えたためローカルメモリの一部を分散共有メモリ1−Cとして割り当て、その結果、分散共有メモリ1−Cが追加される場合の、メモリ構成の設定法の主要な部分の動作の流れの概略を示したものである。なお、図において、領域M1、M2として記したものは、図6(a)に示した領域M1、M2に対応しており、それぞれ既に分散共有メモリ1−Cとして使用されている領域と新たに分散共有メモリ1−Cとして割り当てる領域を示すものである。領域グループ長単位とは、図6(a)の太線で囲まれた最小領域であり、メモリ割り当て処理において、新たにメモリ領域を割り当てる際のメモリ領域の単位である。   FIG. 8 is a flowchart for explaining the operation of the main part of the memory configuration setting process according to the prior art. In FIG. 8, in the conventional technique, since the necessary distributed shared memory 1-C is increased, a part of the local memory is allocated as the distributed shared memory 1-C, and as a result, the distributed shared memory 1-C is added. The outline of the operation | movement flow of the main part of the setting method of a memory structure is shown. In the figure, what are indicated as areas M1 and M2 correspond to the areas M1 and M2 shown in FIG. 6A, and are newly used as the areas already used as the distributed shared memory 1-C. An area allocated as the distributed shared memory 1-C is shown. The area group length unit is a minimum area surrounded by a thick line in FIG. 6A, and is a unit of a memory area when a new memory area is allocated in the memory allocation process.

まず、ノード番地対応手段は、分散共有メモリ1−Cの領域M1において、メモリ領域割り当て基準を超過している領域集合があるか否かを判定し(ステップSc1)、超過している領域集合がある場合には、領域集合のサイズが、未使用領域で分散共有メモリ1−Cとして確保可能であるか否かを判定する(ステップSc2)。そして、確保可能でない場合には、エラーを通知する(ステップSc3)。一方、未使用領域で分散共有メモリ1−Cとして確保可能である場合には、ノード番地対応手段は、領域集合のサイズの確保可能な領域の番地を、ノード番地変換手段が参照するテーブル内の番地の領域M1の後続に追加する(ステップSc4)。その後、所定時間だけ待機し(ステップSc5)、その後、ステップSc1に戻る。なお、ここでは、テーブルを使用する前提で説明しているが、演算によりノード番地変換を行う場合には、演算手段を修正する。   First, the node address handling means determines whether or not there is an area set that exceeds the memory area allocation criterion in the area M1 of the distributed shared memory 1-C (step Sc1). If there is, it is determined whether or not the size of the area set can be secured as the distributed shared memory 1-C in the unused area (step Sc2). If it cannot be secured, an error is notified (step Sc3). On the other hand, if the unused area can be secured as the distributed shared memory 1-C, the node address handling means stores the address of the area in which the size of the area set can be secured in the table referred to by the node address conversion means. It is added after the address area M1 (step Sc4). Thereafter, the process waits for a predetermined time (step Sc5), and then returns to step Sc1. Here, the description is based on the assumption that a table is used. However, when node address conversion is performed by calculation, the calculation means is corrected.

上述したように、従来技術では、現在使用している分散共有メモリ1−Cのメモリ領域集合の中で、メモリ割り当て基準を超過しているものがあるかどうかを判定し、超過しているメモリ領域集合が存在すれば、新たなメモリ領域を確保し、確保したメモリ領域に対して、超過しているメモリ領域集合が対応しているノード番地と同じノード番地を対応付けるために、ノード番地対応手段が参照するテーブル、あるいは、演算手段を修正する。   As described above, in the prior art, it is determined whether there is any memory area set in the distributed shared memory 1-C that is currently used that exceeds the memory allocation criterion, and the memory that exceeds the memory allocation standard. If there is an area set, a new memory area is secured, and in order to associate the reserved memory area with the same node address as the node address to which the excess memory area set corresponds, the node address handling means The table or calculation means referred to is corrected.

このことにより、超過しているメモリ領域集合の後続として確保したメモリ領域を利用できるように、すなわち、超過しているメモリ領域集合が、「超過しているメモリ領域集合及び確保したメモリ領域」に置き換えられることになる。確保したメモリ領域のサイズは、通常、現在使用している分散共有メモリ1−Cのメモリ領域集合のサイズと同じであるが、これは、メモリ領域集合を全て同じ大きさにしておき、さらに、追加する領域も同じサイズにすることで、ローカルメモリから分散共有メモリ1−Cヘの割り当てが容易になるからである。超過するメモリ領域集合があるかどうかの判定は、定期的、あるいは非定期に本ノード間データ転送制御装置の利用者や、利用システムなどからの指示を契機に行う。従来技術では、図6(a)のような領域の集合や、グループなどを構成していないため、分散共有メモリ1−Cの使用伏況や、ノード間の関係にあわせた効率的なメモリ割り当てが困難である。   As a result, the reserved memory area can be used as a successor of the excess memory area set, that is, the excess memory area set is changed to “exceeded memory area set and reserved memory area”. Will be replaced. The size of the secured memory area is usually the same as the size of the memory area set of the distributed shared memory 1-C currently used. This is because all the memory area sets are made the same size, This is because by making the added area the same size, the allocation from the local memory to the distributed shared memory 1-C becomes easy. Whether or not there is an excess memory area set is determined periodically or irregularly in response to an instruction from the user of the inter-node data transfer control device or the usage system. In the prior art, since a set of areas and groups as shown in FIG. 6A are not configured, an efficient memory allocation according to the usage situation of the distributed shared memory 1-C and the relationship between nodes is possible. Have difficulty.

次に、図9及び図10は、本実施形態による、メモリ構成の設定処理の主要な部分の動作を説明するためのフローチャートである。図9及び図10に示すフローチャートも、図8と同様に、必要な分散共有メモリ1−Cが増えたためローカルメモリの一部を分散共有メモリ1−Cとして割り当て、その結果、分散共有メモリ1−Cが追加される場合の、メモリ構成の設定法の主要な部分の動作の流れの概略を示したものである。   Next, FIGS. 9 and 10 are flowcharts for explaining the operation of the main part of the memory configuration setting process according to this embodiment. Similarly to FIG. 8, the flowcharts shown in FIGS. 9 and 10 also allocate a part of the local memory as the distributed shared memory 1-C because the necessary distributed shared memory 1-C has increased. The outline of the operation | movement flow of the main part of the setting method of a memory structure when C is added is shown.

まず、ノード番地変換手段1−Bは、現在使用している分散共有メモリ1−Cのメモリ領域M1において、メモリ領域集合が複数集まった領域グループの中で、不足基準を超過しているものがあるか否かを判定し(ステップSd1)、不足基準を超過しているものがある場合には、対象の領域グループの中で最もメモリ領域を多く使用しているメモリ領域集合が、メモリ領域割り当て基準を超えているかを判定する(ステップSd2)。通常、不足基準とメモリ領域割り当て基準は同じ値であるが、これを異なった値に設定してもよく、それによりマージンを確保し、メモリ領域追加の時期を変え、他の領域グループヘのメモリ領域追加と時期をあわせるなどを行うことも可能である。   First, the node address converting means 1-B is a memory group M1 of the currently used distributed shared memory 1-C, in which a plurality of memory area sets are in excess of the shortage criterion. It is determined whether there is a shortage criterion (step Sd1), and if there are those that exceed the shortage criterion, the memory area set that uses the most memory area in the target area group is assigned the memory area allocation. It is determined whether the reference is exceeded (step Sd2). Normally, the shortage criterion and the memory area allocation criterion are the same value, but they may be set to different values, thereby ensuring a margin, changing the timing of adding the memory area, and saving the memory to other area groups. It is also possible to add a region and time.

そして、メモリ領域割り当て基準を超過しているメモリ領域集合がある場合には、当該メモリ領域集合を含む領域グループヘの新たな領域グループ割り当て数を1だけ加算する(ステップSd3)。次に、ノード番地変換手段1−Bは、対象の領域グループ内で最もメモリ領域を多く使用しているメモリ領域集合のメモリ使用量の値を、対象の領域グループ内の最大メモリ使用量として、対象の領域グループ内の最大メモリ使用量から領域グループ長単位を引き(ステップSd4)、グループ超過数を1だけ加算し(ステップSd5)、ステップSd2に戻る。以降、対象の領域グループの中で最もメモリ領域を多く使用しているメモリ領域集合が、メモリ領域割り当て基準を超えなくなるまで、ステップSd2〜Sd5を繰り返す。   If there is a memory area set that exceeds the memory area allocation criteria, the number of new area group allocations to the area group including the memory area set is incremented by 1 (step Sd3). Next, the node address conversion unit 1-B uses the value of the memory usage of the memory area set that uses the most memory area in the target area group as the maximum memory usage in the target area group. The area group length unit is subtracted from the maximum memory usage in the target area group (step Sd4), the group excess number is added by 1 (step Sd5), and the process returns to step Sd2. Thereafter, steps Sd2 to Sd5 are repeated until the memory area set that uses the most memory area in the target area group does not exceed the memory area allocation criterion.

そして、対象の領域グループの中で最もメモリ領域を多く使用しているメモリ領域集合が、メモリ領域割り当て基準を超えなくなると、ノード番地変換手段1−Bは、領域集合([Gx−x,x]等)に対し新たに加わった割り当て単位数を1だけ加算し(ステップSd6)、領域閾値M1で不足基準を超過する領域グループが無くなるまで、上記ステップSd2〜Sd5を繰り返す(ステップSd7)。そして、領域閾値M1で不足基準を超過する領域グループが無くなると、領域グループ割り当て数と領域グループ長単位の積をとり、その積を各領域グループについて合計する(ステップSd8)。   When the memory area set that uses the most memory area in the target area group does not exceed the memory area allocation standard, the node address conversion unit 1-B determines that the area set ([Gx−x, x ] Is added by 1 (step Sd6), and steps Sd2 to Sd5 are repeated until there are no region groups that exceed the shortage criterion in the region threshold M1 (step Sd7). When there are no region groups that exceed the shortage criterion in the region threshold M1, the product of the number of region group allocations and the region group length unit is taken and the products are summed for each region group (step Sd8).

次に、ノード番地変換手段1−Bは、上記合計サイズが、未使用領域で分散共有メモリ1−Cとして確保可能であるか否かを判定し(ステップSd9)、上記合計サイズが確保できない場合には、(空きサイズ÷合計サイズ)×領域グループ長を、新たに割り当てる領域グループ長とすることで、合計サイズの値を確保可能なサイズに縮小し(ステップSd10)、合計サイズが未使用領域で分散共有メモリ1−Cとして確保可能であるか否かを判定する(ステップSd11)。そして、合計サイズが分散共有メモリ1−Cとして割り当て可能なサイズに達しなければ、ノード間データ転送制御装置の利用者や、利用システムにエラーを通知する(ステップSd12)。   Next, the node address conversion unit 1-B determines whether or not the total size can be secured as the distributed shared memory 1-C in the unused area (step Sd9), and the total size cannot be secured. The (free size ÷ total size) × area group length is set to a newly allocated area group length to reduce the total size value to a size that can be secured (step Sd10), and the total size is an unused area. To determine whether it can be secured as the distributed shared memory 1-C (step Sd11). If the total size does not reach the size that can be allocated as the distributed shared memory 1-C, an error is notified to the user of the inter-node data transfer control device and the use system (step Sd12).

一方、ステップSd9、あるいはステップSd11で、合計サイズが、分散共有メモリ1−Cとして割り当て可能なローカルメモリ内に確保可能であった場合には、確保可能領域のうち、合計サイズに相当する領域を領域M2とする(ステップSd13)。次に、領域M2のメモリ番地を、ノード番地変換手段1−Bが参照するテーブル内の番地の、領域M1の後続に追加する(ステップSd14)。その後、所定時間待機し(ステップSd15)、その後、ステップSd1に戻る。   On the other hand, when the total size can be secured in the local memory that can be allocated as the distributed shared memory 1-C in step Sd9 or step Sd11, an area corresponding to the total size is selected from the securable areas. Region M2 is set (step Sd13). Next, the memory address of the area M2 is added to the succeeding area M1 of the address in the table referred to by the node address converting means 1-B (step Sd14). Then, it waits for a predetermined time (step Sd15), and then returns to step Sd1.

なお、演算によりノード番地変換を行う場合には、演算手段を修正する。また、領域グループ割り当て数の初期値は0である。不足基準を超過する領域グループがあるかどうかの判定は、定期的、あるいは非定期に本ノード間データ転送制御装置の利用者や、利用システムからの指示を契機に行えばよい。   In addition, when performing node address conversion by calculation, a calculation means is corrected. The initial value of the number of area group assignments is 0. Whether or not there is an area group that exceeds the shortage criterion may be determined periodically or irregularly in response to an instruction from the user of the inter-node data transfer control device or the usage system.

次に、本実施形態による、割り当て解除処理について説明する。
図9及び図10において、領域M1で、不足基準を超過する領域グループがある場合、当該グループについて超過していることを領域集合(図6(a)の[Gx−x,x]等)毎に割り当て単位の番地とともに記録しておく(グループ超過数と記す)。当該グループに分散共有メモリ1−Cを割り当てた後、もし、当該グループについて分散共有メモリ1−Cが少なくても良い状況となれば、割り当てを解除することになるが、このとき、まず、上記グループ超過数の記録を参照し、記録に何らかの値があれば、その値が0になるまで、分散共有メモリ1−Cとして初期的に割り当てない範囲(図7(a)参照)の番地を対象に、ノード番地変換手段1−Bが保持するテーブル(ノード番地とメモリ番地との対応を示すテーブル)を検索して、該当ノードの増設領域を特定し、その領域に対して分散共有メモリ1−Cとしての割り当てを解除することを続ける。
Next, the deallocation process according to this embodiment will be described.
9 and 10, when there is a region group that exceeds the shortage criterion in the region M1, it is determined that the group is exceeded for each region set ([Gx-x, x], etc. in FIG. 6A). Record with the address of the allocation unit (denoted as the number of excess groups). After allocating the distributed shared memory 1-C to the group, if the number of the distributed shared memory 1-C may be small for the group, the allocation will be canceled. Refers to the record of the number of excess groups, and if there is any value in the record, until the value becomes 0, addresses in the range not initially allocated as the distributed shared memory 1-C (see FIG. 7A) are targeted. Then, the table (table indicating the correspondence between the node address and the memory address) held by the node address converting means 1-B is searched to identify the additional area of the corresponding node, and the distributed shared memory 1- Continue to deallocate as C.

当該グループについて分散共有メモリ1−Cが少なくて良い状況となって、このグループ超過数の記録が0であるならば、領域集合(図6(a)の[Gx−x,x]等)に対して新た加わった割り当て単位数を参照し、この割り当て単位数の値が0になるまで、グループ内の番地を対象に、ノード番地変換手段1−Bが保持するテーブルを検索して、該当ノードの増設領域を特定し、その領域に対して分散共有メモリ1−Cとしての割り当てを解除することを続ける。割り当てを解除する順番としては、「グループ超過によって増設された領域」を先に解除し、「グループ内で増設された領域」を次に解除する。したがって、通常は、テーブル内の後続に追加されたメモリ番地を後ろから順に削除する処理を行えばよい。なお、解除した後の領域の用途は、図7(a)で説明した通りである。   If the number of distributed shared memories 1-C may be small for the group and the record of the number of excess groups is 0, the area set ([Gx-x, x], etc. in FIG. 6A) is set. With reference to the newly added allocation unit number, until the value of the allocation unit number becomes 0, the table held by the node address conversion means 1-B is searched for the address in the group, and the corresponding node The additional area is identified, and the allocation of the area as the distributed shared memory 1-C is continued. As the order of releasing the allocation, “area added due to excess of group” is released first, and “area added in group” is released next. Therefore, normally, the process of deleting the memory addresses added to the subsequent in the table in order from the back may be performed. In addition, the use of the area | region after canceling | release is as having demonstrated in Fig.7 (a).

次に、本実施形態による、割り当て解除処理の動作について説明する。
図11は、本実施形態による、割り当て解除処理の動作を説明するためのフローチャートである。ノード番地変換手段1−Bは、まず、領域集合の減設が必要であるか判定し(ステップSe1)、領域集合の減設の必要がある場合には、(該当領域集合の)グループ超過数が0であるか否かを判定する(ステップSe2)。そして、(該当領域集合の)グループ超過数が0より大きければ、グループ超過に該当する番地に存在する当該領域集合の割り当て単位の内、1つに相当する番地を減設する(ステップSe3)。これは、図6(a)で[G1−1,a](増設)部分で割り当て単位を1つ減設することに相当し、(該当領域集合の)グループ超過数を1つ減し(ステップSe4)、ステップSe1に戻り、上述した処理を繰り返す。
Next, the operation of deallocation processing according to this embodiment will be described.
FIG. 11 is a flowchart for explaining the operation of deallocation processing according to this embodiment. The node address converting means 1-B first determines whether or not the area set needs to be reduced (step Se1). If the area set needs to be reduced, the number of excess groups (of the corresponding area set) Is determined to be 0 (step Se2). If the number of group excesses (of the corresponding area set) is greater than 0, an address corresponding to one of the allocation units of the area set existing at the address corresponding to the group excess is reduced (step Se3). This corresponds to reducing the allocation unit by 1 in the [G1-1, a] (addition) portion in FIG. 6A, and reducing the number of excess groups (of the corresponding area set) by 1 (step Se4), returning to step Se1, and repeating the above-described processing.

一方、グループ超過数が0であれば、領域集合に対し新た加わった割り当て単位数が0であるか否かを判定する(ステップSe5)。そして、領域集合に対し新た加わった割り当て単位数が0より大きい場合には、領域集合に対し新た加わった割り当て単位の内、1つに相当する番地を減設する(ステップSe6)。これは、図7(a)において、領域(※1)や、(※2)を減設することに相当し、領域集合に対し新た加わった割り当て単位数=領域集合に対して新た加わった割り当て単位数を1つ減らし(ステップSe7)、減設した領域の初期的割り当て時に割り当てられていた領域集合の領域としてノード番地変換手段1−Bを変更する(ステップSe8)。このとき、メモリ領域割り当て基準は、超えている状態が維持されるので、変更された領域は、初期的割り当て時に割り当てられていた領域集合として用いられず、領域グループ内の他の領域集合の領域が不足した際に利用できる状態となる。その後、ステップSe1に戻り、上述した処理を繰り返す。   On the other hand, if the group excess number is 0, it is determined whether or not the number of allocation units newly added to the area set is 0 (step Se5). If the number of allocation units newly added to the area set is larger than 0, an address corresponding to one of the allocation units newly added to the area set is reduced (step Se6). This corresponds to the reduction of the area (* 1) and (* 2) in FIG. 7A, and the number of allocation units newly added to the area set = assignment newly added to the area set. The number of units is reduced by 1 (step Se7), and the node address conversion means 1-B is changed as the area of the area set assigned at the time of initial allocation of the reduced area (step Se8). At this time, since the state where the memory area allocation criterion is exceeded is maintained, the changed area is not used as the area set allocated at the time of initial allocation, but the area of another area set in the area group. It becomes available when there is not enough. Then, it returns to step Se1 and repeats the process mentioned above.

上記ステップSe5における、「領域集合(図6(a)の[Gx−x,x]等)に対し新たに加わった割り当て単位数≠0か」とは、「領域グループ内の当該領域集合で初期的割り当てと異なる領域が存在するか」を判定していることである。例えば、ネットワークのセグメントに領域グループが対応している場合には、セグメント内のあるノードが削除されることで、領域グループ内の領域集合に相当する箇所にローカルメモリが置かれ、領域グループが複数に分離されてしまうことを防げる。   In the above step Se5, “whether the number of allocation units newly added to the region set ([Gx−x, x], etc. in FIG. 6A) ≠ 0” is “the initial value of the region set in the region group” It is determined whether there is an area different from the target assignment. For example, if an area group corresponds to a segment of the network, a certain node in the segment is deleted, so that local memory is placed at a location corresponding to the area set in the area group, and there are multiple area groups. Can be prevented from being separated.

すなわち、初期的割り当て状態では、送信先/元ノードとメモリ番地との対応をとる際、セグメント単位で対応付けができ、検索などもセグメント単位で行えるが、分離されてしまうと、セグメント単位のメモリ操作ができなくなるので、このような非効率性を避けることができる。そこで、領域集合に対し新た加わった割り当て単位数が0であれば、領域集合に対して初期的割り当て時に割り当てられていた割り当て単位の内、1つに相当する番地を減設する(ステップSe9)。これは、図7(a)において、領域(※4)や、(※5)を減設することであり、領域(※5)も減設されることは、当該領域集合に対するノードが削減されたことに相当する。領域集合(図6(a)の[Gx−x,x]等)に対して割り当て単位の内、1つに相当する番地を減設するが、ノード番地変換手段1−Bを変更しない(メモリ領域割り当て基準を超えていない状態となれば、領域グループ内の他の領域集合の領域が不足した際に利用できる状態となる)。その後、待機状態とする(ステップSe10)。   That is, in the initial allocation state, when the correspondence between the transmission destination / source node and the memory address is made, the correspondence can be made in segment units, and the search can be performed in segment units. Such inefficiencies can be avoided because the operation becomes impossible. Therefore, if the number of allocation units newly added to the area set is 0, an address corresponding to one of the allocation units assigned to the area set at the time of initial allocation is reduced (step Se9). . This is to reduce the area (* 4) and (* 5) in FIG. 7A, and to reduce the area (* 5) also reduces the nodes for the area set. It corresponds to that. An address corresponding to one of the allocation units is reduced for the area set ([Gx-x, x], etc. in FIG. 6A), but the node address conversion means 1-B is not changed (memory) If it does not exceed the area allocation criteria, it can be used when the area of another area set in the area group is insufficient). Thereafter, the standby state is set (step Se10).

なお、本発明においては、概ねメモリ構成を物理的に想定して説明示しているが、仮想メモリを用いることで、使用するメモリ番地が実メモリ番地と異なっても構わない。この場合、本実施形態によるメモリ構成は、仮想メモリ上の説明となり、仮想番地と実番地との変換を経て、物理メモリ番地に基づいて処理が行われることになる。また、あるメモリ領域について、仮想的なメモリ番地が連続していても、物理的なメモリ配置が不連続となる場合も可能となるので、例えば、図6(a)の領域M1は、メモリ領域が連続しているように記されているが、これは仮想メモリ上のことであり、実メモリ上では、離散的に割り当てられたものであっても構わない。   In the present invention, the description has been made assuming that the memory configuration is physically assumed, but by using virtual memory, the memory address to be used may be different from the real memory address. In this case, the memory configuration according to the present embodiment is the description on the virtual memory, and the processing is performed based on the physical memory address through the conversion between the virtual address and the real address. Further, even if the virtual memory addresses are continuous for a certain memory area, the physical memory arrangement may be discontinuous. For example, the area M1 in FIG. However, this is on virtual memory, and may be discretely allocated on real memory.

ノード番地変換は、ノード番地と分散共有メモリ1−Cのメモリ番地とを対応付けるテーブルを用いる場合もある。あるいは、例えば、メモリ番地の下位をマスクすると、ノード番地となるように設定する等して、演算、あるいは、メモリ操作等により、ノード番地と分散共有メモリ1−Cのメモリ番地とを対応付ける場合もある。   The node address conversion may use a table that associates the node address with the memory address of the distributed shared memory 1-C. Alternatively, for example, when the lower address of the memory address is masked, the node address may be set to be a node address, and the node address and the memory address of the distributed shared memory 1-C may be associated with each other by calculation or memory operation. is there.

ここで、ノード番地変換手段1−Bが演算によりノード番地を変換する場合について、簡単な一例について説明する。図12は、本実施形態において、ノード番地変換手段1−Bが演算によりノード番地を変換する場合について説明するための概念図である。ノード番地や、メモリ番地などが複雑な値をとったり、同一領域グループに対応するノード数が多数存在する場合には、ノード番号や、メモリ番地などを、演算前に、(a)整列する、(b)オフセットを与える、(c)以下の例内の10倍や、100倍等の値を適切な大きな値にしたりすることによって、同様の処理で実行できる。   Here, a simple example will be described in the case where the node address converting unit 1-B converts the node address by calculation. FIG. 12 is a conceptual diagram for explaining a case where the node address conversion unit 1-B converts a node address by calculation in the present embodiment. If the node address, memory address, etc. take complex values, or there are a large number of nodes corresponding to the same area group, the node numbers, memory addresses, etc. are (a) aligned before calculation ( b) Give an offset. (c) By making a value such as 10 times or 100 times in the following example an appropriate large value, the same processing can be executed.

同一領域グループに対応するノードが10以下のときは、図12(a)、(b)に示すように、ノード番地を「10×領域集合サイズ倍」した値を領域集合の先頭番地とし、領域グループを「100×領域集合サイズ倍」毎に設定しておく。増設が不要な領域集合については、「10倍単位とする領域集合」であるが、メモリを増設する領域集合については、「10倍」の処理を、例えば、11倍にして、「11倍単位とする領域集合」としてリスト化しておく。減設する領域集合については、「10倍」の処理を、例えば、9倍にして、「9倍単位とする領域集合」としてリスト化しておく。「10倍単位とする領域集合」については、ノード番地を「10×領域集合サイズ倍」すれば、メモリ番地を得られる(メモリ番地からノード番地を得るには、その逆の処理を行う)。   When the number of nodes corresponding to the same area group is 10 or less, as shown in FIGS. 12A and 12B, the value obtained by multiplying the node address by “10 × area set size” is set as the start address of the area set. A group is set for each “100 × area set size multiple”. The area set that does not need to be added is the “area set in units of 10 times”. However, for the area set in which the memory is added, “10 times” processing is increased to 11 times, for example, “11 times unit. As a region set ”. For the area set to be removed, the process of “10 times” is listed as “area set in units of 9 times” by multiplying, for example, 9 times. For the “area set in units of 10”, the memory address can be obtained by multiplying the node address by “10 × area set size” (the reverse process is performed to obtain the node address from the memory address).

「11(9)倍単位とする領域集合」にリスト化されている領域集合は、ノード番地を「11(9)×領域集合サイズ倍」でノード番地を得る。演算、あるいは、メモリ操作等により、ノード番地と分散共有メモリ1−Cのメモリ番地とを対応付ける場合における増減設は、図12(c)に示すように、このように、「α倍単位とする領域集合」リストに領域集合の番地、またはノード番地を追加、または削除することで行う。領域グループ自体が増減設の対象となった場合も、領域集合の増減設の場合と同様である。なお、「10倍する」等に相当する処理を、シフトや、マスクなどで行っても良いし、演算を使用しても構わない。   For the area set listed in “area set with 11 (9) times unit”, the node address is obtained by “11 (9) × area set size multiple”. As shown in FIG. 12C, the increase / decrease in the case of associating the node address with the memory address of the distributed shared memory 1-C by an operation or a memory operation or the like is as follows. This is done by adding or deleting an area set address or node address to the "area set" list. The case where the area group itself is subject to increase / decrease is the same as the case where the area set is increased / decreased. Note that a process corresponding to “multiply by 10” or the like may be performed by a shift or a mask, or an operation may be used.

図12において、例えば、「ノード番地6は、11個の領域集合を持ち、領域集合の開始番地は通常の初期割り当て(各ノードが10個ずつ)の場合に対し10番地減じた位置となっている」ことを示す。このリストの「α倍単位」にノード番地を登録することで、演算即ち、「ノード番地×10×領域集合によりノード番地に対応する領域集合の位置を決定する」を用いたメモリ増設減設を可能にする。「11倍」に登録していたノードを「10倍」に登録することで、初期状態のメモリ割り当てに戻る。「9倍」から「11倍」にすると増設される(逆は減設される)ことになる。   In FIG. 12, for example, “node address 6 has 11 area sets, and the start address of the area set is a position reduced by 10 addresses compared to the case of normal initial allocation (10 nodes each). " By registering the node address in the “α multiple unit” of this list, the memory expansion / reduction using the calculation, that is, “determine the position of the area set corresponding to the node address by the node address × 10 × area set” is performed. enable. By registering the node registered as “11 times” as “10 times”, the memory allocation in the initial state is restored. If it is changed from “9 times” to “11 times”, it will be added (reversely, it will be removed).

上述した実施形態によれば、分散共有メモリ1−Cの中で使用されている領域、あるいは、バッファがある定まったメモリサイズを超過しているものがあり、領域不足が起こり得るような場合において、効率的にサイズ超過を判定し、効率的に割り当てを行い、その際、後で割り当てが不要になった場合も、割り当て時の効率を維持しながら割り当て解除を行うことができる。   According to the above-described embodiment, in the case where there is an area used in the distributed shared memory 1-C or a buffer that exceeds a certain memory size, and an area shortage may occur. In this case, it is possible to efficiently determine that the size has been exceeded and perform the allocation efficiently. At this time, even if the allocation becomes unnecessary later, the allocation can be canceled while maintaining the efficiency at the time of allocation.

また、分散共有メモリ1−Cが効率的に利用でき、また、ローカルメモリを効率的に割り当て、その際、後で割り当てが不要になった場合も、割り当て時の効率を維持しながら割り当て解除を行うことができる。   In addition, the distributed shared memory 1-C can be used efficiently, and local memory can be allocated efficiently. In this case, even when allocation becomes unnecessary later, deallocation is performed while maintaining the efficiency at the time of allocation. It can be carried out.

また、本実施形態によれば、ノードの変更規則を用いる場合、必ずしも個々の領域の不足に対してメモリを追加する必要はなく、変更規則を修正することにより、あるまとまった単位の領域に対して不足を判定し、追加するといった、効率的な割り当てが可能になり、割り当て解除する場合にも変更規則を修正することにより同様の効果が得られる。   Further, according to the present embodiment, when using the node change rule, it is not always necessary to add a memory to the shortage of individual areas, and by correcting the change rule, for a certain unit area Thus, it is possible to efficiently allocate such as determining and adding a shortage, and the same effect can be obtained by modifying the change rule when canceling the allocation.

また、複数に区分されたネットワークに容易に対応付けを行うことができるので、割り当て/割り当て解除の双方共に、個々のメモリ領域の集合に対して、サイズ超過判定/減設必要性判定を行う必要はなく、また、新たなメモリ割り当て/メモリ割り当て解除の結果にメモリの不足や、無駄を減少させることができ、ノード関係にあわせたメモリ割り当て/割り当て解除が可能になる。   In addition, since it is possible to easily associate with a network divided into a plurality of areas, it is necessary to perform an oversize determination / removal necessity determination for each set of memory areas for both allocation and deallocation. In addition, it is possible to reduce memory shortage and waste as a result of new memory allocation / memory deallocation, and memory allocation / deallocation in accordance with the node relationship becomes possible.

なお、上述した実施形態において、上述したノード番地変換手段1−Bなどによる各ステップを実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、また、ノード番地変換手段1−Bなどの機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行するようにしてもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。   In the above-described embodiment, a program for realizing each step by the node address converting unit 1-B described above is recorded on a computer-readable recording medium, and the node address converting unit 1-B or the like is recorded. A program for realizing the function may be recorded on a computer-readable recording medium, and the program recorded on the recording medium may be read by a computer system and executed. Here, the “computer system” may include an OS and hardware such as peripheral devices. Further, the “computer system” includes a homepage providing environment (or display environment) if a WWW system is used. The “computer-readable recording medium” means a flexible disk, a magneto-optical disk, a ROM, a writable nonvolatile memory such as a flash memory, a portable medium such as a CD-ROM, a hard disk built in a computer system, etc. This is a storage device.

さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。   Further, the “computer-readable recording medium” means a volatile memory (for example, DRAM (Dynamic DRAM) in a computer system that becomes a server or a client when a program is transmitted through a network such as the Internet or a communication line such as a telephone line. Random Access Memory)), etc., which hold programs for a certain period of time. The program may be transmitted from a computer system storing the program in a storage device or the like to another computer system via a transmission medium or by a transmission wave in the transmission medium. Here, the “transmission medium” for transmitting the program refers to a medium having a function of transmitting information, such as a network (communication network) such as the Internet or a communication line (communication line) such as a telephone line. The program may be for realizing a part of the functions described above. Furthermore, what can implement | achieve the function mentioned above in combination with the program already recorded on the computer system, and what is called a difference file (difference program) may be sufficient.

本発明の実施形態による通信システムと通信を行うノード内部の構成を示すブロック図である。It is a block diagram which shows the structure inside the node which communicates with the communication system by embodiment of this invention. 本実施形態による、通信システムであって、ネットワークに接続されたノードの関係の概略を示す概念図である。It is a communication system by this embodiment, Comprising: It is a conceptual diagram which shows the outline of the relationship of the node connected to the network. 本実施形態による、通信システムであって、ノード内部のメモリの構造の概略を示す概念図である。It is a communication system by this embodiment, Comprising: It is a conceptual diagram which shows the outline of the structure of the memory inside a node. 通常のメモリ構成変更処理の動作を説明するためのフローチャートである。It is a flowchart for demonstrating operation | movement of a normal memory structure change process. 本実施形態によるメモリ構成変更処理の動作を説明するためのフローチャートである。It is a flowchart for demonstrating operation | movement of the memory structure change process by this embodiment. 本実施形態による、メモリ構成の設定法の一例を説明するための概念図である。It is a conceptual diagram for demonstrating an example of the setting method of a memory structure by this embodiment. 本実施形態において、メモリ領域が変更された後の分散共有メモリ1−Cの状況の概略を示す概念図である。In this embodiment, it is a conceptual diagram which shows the outline of the condition of the distributed shared memory 1-C after a memory area is changed. 従来技術による、メモリ構成の設定法の主要な部分の動作を説明するためのフローチャートである。It is a flowchart for demonstrating operation | movement of the main part of the setting method of a memory structure by a prior art. 本実施形態による、メモリ構成の設定法の主要な部分の動作を説明するためのフローチャートである。It is a flowchart for demonstrating operation | movement of the main part of the setting method of a memory structure by this embodiment. 本実施形態による、メモリ構成の設定法の主要な部分の動作を説明するためのフローチャートである。It is a flowchart for demonstrating operation | movement of the main part of the setting method of a memory structure by this embodiment. 本実施形態による、割り当て解除の手順を説明するためのフローチャートである。It is a flowchart for demonstrating the procedure of deallocation by this embodiment. 本実施形態において、ノード番地変換手段1−Bが演算によりノード番地を変換する場合について説明するための概念図である。In this embodiment, it is a conceptual diagram for demonstrating the case where the node address conversion means 1-B converts a node address by calculation.

符号の説明Explanation of symbols

1−A アプリケーションプログラムまたはOS類
1−B ノード番地変換手段
1−C、1−C’ 分散共有メモリ
1−C−1、1−C−n メモリ番地
1−D、1−D’ 転送制御手段
1−E 内部バス
1−F、1−J、…、1−N ノード
1−G データ
1−H ノード番地
1−I ネットワーク
1-A application program or OS 1-B node address conversion means 1-C, 1-C ′ distributed shared memory 1-C-1, 1-Cn memory address 1-D, 1-D ′ transfer control means 1-E internal bus 1-F, 1-J,..., 1-N node 1-G data 1-H node address 1-I network

Claims (9)

ネットワークに接続された複数のノード間で、各ノードが有するローカルメモリ上に割り当てられた分散共有メモリを用いて、他プロセスとの間のデータ転送を制御するノード間データ転送制御装置であって、
前記複数のノード間でメモリ番地が仮想的あるいは物理的に同一である分散共有メモリと、
前記ノードの増設に応じて、該ノードに対応する領域を前記分散共有メモリに割り当てる領域割当手段と、
前記ノードの減設に応じて、前記分散共有メモリに割り当てられた領域を解除する領域解除手段と、を備え、
前記領域解除手段は、
領域を解除する際に、前記領域割当手段により後から割り当てられた領域を、先に解除することを特徴とするノード間データ転送制御装置。
A node-to-node data transfer control device that controls data transfer with other processes using a distributed shared memory allocated on a local memory of each node among a plurality of nodes connected to a network,
A distributed shared memory in which memory addresses are virtually or physically the same among the plurality of nodes;
An area allocation means for allocating an area corresponding to the node to the distributed shared memory in response to the addition of the node;
An area releasing means for releasing an area allocated to the distributed shared memory in accordance with the reduction of the node,
The area releasing means is
An inter-node data transfer control device, wherein when an area is released, an area assigned later by the area assigning unit is released first.
前記複数のノードの接続関係に基づくグループ単位で、所定の閾値を超過して前記分散共有メモリに割り当てられた領域が使用されているか判定する判定手段を更に備え、
前記領域割当手段は、
前記判定手段により、所定の閾値を超過して領域が使用されていると判定された場合に、前記グループ単位で、前記分散共有メモリに新たに領域を割り当てることを特徴とする請求項1記載のノード間データ転送制御装置。
A determination unit for determining whether an area allocated to the distributed shared memory exceeding a predetermined threshold is used in units of groups based on a connection relationship of the plurality of nodes;
The area allocating means includes
The area according to claim 1, wherein when the determination unit determines that an area is used exceeding a predetermined threshold, an area is newly allocated to the distributed shared memory in units of groups. Internode data transfer control device.
前記所定の閾値は、少なくとも1つ以上であり、
前記領域割当手段は、超過している所定の閾値の数に基づいて、前記グループ単位で前記分散共有メモリに割り当てる領域の容量を決定することを特徴とする請求項2記載のノード間データ転送制御装置。
The predetermined threshold is at least one or more,
3. The inter-node data transfer control according to claim 2, wherein the area allocating unit determines a capacity of an area to be allocated to the distributed shared memory in units of groups based on a predetermined number of thresholds that have been exceeded. apparatus.
前記領域解除手段は、
後から前記グループ単位で割り当てられた領域を、先に解除することを特徴とする請求項2または3に記載のノード間データ転送制御装置。
The area releasing means is
The inter-node data transfer control device according to claim 2 or 3, wherein an area allocated in group units later is released first.
ネットワークに接続された複数のノード間で、各ノードが有するローカルメモリ上に割り当てられた分散共有メモリを用いて、他プロセスとの間のデータ転送を制御するノード間データ転送制御方法であって、
前記ノードの増設に応じて、該ノードに対応する領域を、前記複数のノード間でメモリ番地が仮想的あるいは物理的に同一である分散共有メモリに割り当てるステップと、
前記ノードの減設に応じて、前記分散共有メモリに割り当てられた領域を解除する際に、後から割り当てられた領域を、先に解除するステップと、
を含むことを特徴とするノード間データ転送制御方法。
A node-to-node data transfer control method for controlling data transfer with another process using a distributed shared memory allocated on a local memory of each node between a plurality of nodes connected to a network,
Allocating an area corresponding to the node to a distributed shared memory whose memory address is virtually or physically the same among the plurality of nodes in response to the addition of the node;
Releasing the area allocated later when releasing the area allocated to the distributed shared memory according to the reduction of the node;
A data transfer control method between nodes.
前記複数のノードの接続関係に基づくグループ単位で、所定の閾値を超過して前記分散共有メモリに割り当てられた領域が使用されているか判定するステップを更に含み、
前記所定の閾値を超過して領域が使用されていると判定された場合に、前記グループ単位で前記分散共有メモリに新たに領域を割り当てることを特徴とする請求項5記載のノード間データ転送制御方法。
A step of determining whether or not an area allocated to the distributed shared memory exceeding a predetermined threshold is used in units of groups based on a connection relationship of the plurality of nodes;
6. The inter-node data transfer control according to claim 5, wherein when it is determined that an area is used exceeding the predetermined threshold, a new area is allocated to the distributed shared memory in units of groups. Method.
前記所定の閾値は、少なくとも1つ以上であり、
前記超過している所定の閾値の数に基づいて、前記グループ単位で前記分散共有メモリに割り当てる領域の容量を決定するステップを更に含むことを特徴とする請求項6記載のノード間データ転送制御方法。
The predetermined threshold is at least one or more,
7. The inter-node data transfer control method according to claim 6, further comprising a step of determining a capacity of an area to be allocated to the distributed shared memory in units of groups based on the number of the predetermined threshold values that have been exceeded. .
前記割り当てられた領域を解除する際に、後から前記グループ単位で割り当てられた領域を、先に解除することを特徴とする請求項6または7に記載のノード間データ転送制御方法。   8. The inter-node data transfer control method according to claim 6 or 7, wherein when the allocated area is released, an area allocated later in units of groups is released first. ネットワークに接続された複数のノード間で、各ノードが有するローカルメモリ上に割り当てられた分散共有メモリを用いて、他プロセスとの間のデータ転送を制御するノード間データ転送制御装置を制御するコンピュータに、
前記ノードの増設に応じて、該ノードに対応する領域を、前記複数のノード間でメモリ番地が仮想的あるいは物理的に同一である分散共有メモリに割り当てるステップと、
前記ノードの減設に応じて、前記分散共有メモリに割り当てられた領域を解除する際に、後から割り当てられた領域を、先に解除するステップと、
を実行させることを特徴とするプログラム。
A computer for controlling an inter-node data transfer control device that controls data transfer with other processes using a distributed shared memory allocated on a local memory of each node among a plurality of nodes connected to a network In addition,
Allocating an area corresponding to the node to a distributed shared memory whose memory address is virtually or physically the same among the plurality of nodes in response to the addition of the node;
Releasing the area allocated later when releasing the area allocated to the distributed shared memory according to the reduction of the node;
A program characterized by having executed.
JP2007315813A 2007-12-06 2007-12-06 Inter-node data transfer control device, inter-node data transfer control method, and program Expired - Fee Related JP5068151B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007315813A JP5068151B2 (en) 2007-12-06 2007-12-06 Inter-node data transfer control device, inter-node data transfer control method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007315813A JP5068151B2 (en) 2007-12-06 2007-12-06 Inter-node data transfer control device, inter-node data transfer control method, and program

Publications (2)

Publication Number Publication Date
JP2009140224A true JP2009140224A (en) 2009-06-25
JP5068151B2 JP5068151B2 (en) 2012-11-07

Family

ID=40870771

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007315813A Expired - Fee Related JP5068151B2 (en) 2007-12-06 2007-12-06 Inter-node data transfer control device, inter-node data transfer control method, and program

Country Status (1)

Country Link
JP (1) JP5068151B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012060278A (en) * 2010-09-07 2012-03-22 Mitsubishi Electric Corp Network system
WO2015162754A1 (en) * 2014-04-24 2015-10-29 三菱電機株式会社 Control system, master station, and remote station
US9549412B2 (en) 2011-04-18 2017-01-17 Fujitsu Limited Scheduling method and task processing method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007004312A (en) * 2005-06-21 2007-01-11 Nippon Telegr & Teleph Corp <Ntt> Internodal data transfer control device
JP2008305201A (en) * 2007-06-07 2008-12-18 Nippon Telegr & Teleph Corp <Ntt> Inter-node data transfer control device, memory configuration changing method, and program

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007004312A (en) * 2005-06-21 2007-01-11 Nippon Telegr & Teleph Corp <Ntt> Internodal data transfer control device
JP2008305201A (en) * 2007-06-07 2008-12-18 Nippon Telegr & Teleph Corp <Ntt> Inter-node data transfer control device, memory configuration changing method, and program

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012060278A (en) * 2010-09-07 2012-03-22 Mitsubishi Electric Corp Network system
US9549412B2 (en) 2011-04-18 2017-01-17 Fujitsu Limited Scheduling method and task processing method
WO2015162754A1 (en) * 2014-04-24 2015-10-29 三菱電機株式会社 Control system, master station, and remote station
JP5908175B2 (en) * 2014-04-24 2016-04-26 三菱電機株式会社 Control system, master station, and remote station
US9577882B2 (en) 2014-04-24 2017-02-21 Mitsubishi Electric Corporation Control system, master station, and remote station

Also Published As

Publication number Publication date
JP5068151B2 (en) 2012-11-07

Similar Documents

Publication Publication Date Title
CA2142030C (en) Method and apparatus for dynamically allocating shared resource access quota
CN104090847B (en) Address distribution method of solid-state storage device
US20060070046A1 (en) Allocating call stack frame entries at different memory levels to functions in a program
CN109154917A (en) Storage system and solid state hard disk
JP6880402B2 (en) Memory access control device and its control method
TW201619829A (en) Method and apparatus for memory management
Subramanian et al. An adaptive algorithm for dynamic priority based virtual machine scheduling in cloud
US7002956B2 (en) Network addressing method and system for localizing access to network resources in a computer network
JP5068151B2 (en) Inter-node data transfer control device, inter-node data transfer control method, and program
KR100659614B1 (en) ZigBee network device for assigning address to his childrens after constructing cluster-tree structure, address assigning method thereof, and, routing method thereof
CN106940712B (en) Sequence generation method and device
Rezaei et al. Multi-objective task mapping approach for wireless NoC in dark silicon age
CN111240853A (en) Method and system for bidirectionally transmitting massive data in node
KR102376474B1 (en) Method for allocating storage using buddy allocator
JP2008305201A (en) Inter-node data transfer control device, memory configuration changing method, and program
JP5976046B2 (en) Operating system configuration apparatus and method
Huang et al. A priority-based resource allocation strategy in distributed computing networks
JP2005505434A (en) Method, apparatus, computer program with program code means, and computer program product for dividing all planes into partial planes and assigning each partial plane to each moving unit
JP2005322049A (en) Image processor and program
CN114546393A (en) Multitask program compiling method and device and multi-core chip
US20080005338A1 (en) Allocation of tracker resources in a computing system
JP5641300B2 (en) Storage system and memory cache area control method for storage system
JP4019056B2 (en) Read request arbitration control system and method
Yoo et al. On task relocation in two-dimensional meshes
JP2008310610A (en) System configuration management method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100127

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120730

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120814

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150824

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150824

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees