Inter-processor communication method for transmitting data and processor dependent information predetermined for a receiving process of another processor
First Claim
1. A multiple processor system, comprising:
- a first cluster including at least one first processor and a first storage for holding data and a program executed by said first processor, said first cluster executing at least one first process under control of a first operating system of said first cluster, said first process being assigned with a first virtual address space;
a second cluster including at least one second processor and a second storage for holding data and a program executed by said second processor, said second cluster executing at least one second process under control of a second operating system of said second cluster, said second process being assigned with a second virtual address space which includes a virtual communication area for data transferred from other clusters including said first cluster, said second memory holding a real communication area assigned to said virtual communication area at a position of said second memory determined by said second operating system, and a base address of said real communication area written by said second operating system into said second memory, said base address indicating a top position of said real communication area within said second memory;
a network for connecting said first cluster and said second cluster;
wherein said first cluster comprises;
a send circuit connected to said first processor and said network for transmitting a packet to said second cluster by way of said network, said packet including;
(1) transmission data designated by said first process, (2) process-dependent information predetermined by said second operating system for said second process, and (3) a data offset address indicative of a difference between a base address of said virtual communication area and a virtual write address at which said transmission data is to be written within said second virtual address space; and
wherein said second cluster comprises;
a receive circuit connected to said network for receiving by way of said network, said transmission dam, said process-dependent information and said dam offset address;
a base address read circuit connected to said second memory and said receive circuit and responsive to a received said process-dependent information for generating a read address of a location within said second memory where the base address of the real communication area provided for said second process is held and for reading said base address from the location;
an address adder connected to said receive circuit and said read circuit for adding a received said data offset address to a read out said base address to generate a real address of a location within said real communication area at which said transmission data is to be written; and
a write circuit connected to said second memory and said address adder for writing, received said transmission dam at a generated said real address of said second memory.
1 Assignment
0 Petitions
Accused Products
Abstract
In a parallel computer, in order to reduce the overhead of data transmissions between the processes, a data transmission from the virtual space of a process in a certain cluster to the virtual space of a process in other cluster is executed without copying the data to the buffer provided within the operating system. The real communication area resident in the real memory is provided in a part of the virtual space of the process, and an identifier unique within the cluster is given to the communication area. When the transmission process has issued a transmission instruction at the time of data transmission, the cluster address of the cluster in which the transmission destination process exists and the identifier of the communication area are determined based on the name of the transmission destination process. Then, the data is directly transmitted between the mutual real communication areas of the transmission originating process and the transmission destination process. Overhead for the data transmission between the processes can be reduced by avoiding making a copy of the data between the user space and the buffer provided within the operating system at the time of data transmission between the processes.
156 Citations
16 Claims
-
1. A multiple processor system, comprising:
-
a first cluster including at least one first processor and a first storage for holding data and a program executed by said first processor, said first cluster executing at least one first process under control of a first operating system of said first cluster, said first process being assigned with a first virtual address space; a second cluster including at least one second processor and a second storage for holding data and a program executed by said second processor, said second cluster executing at least one second process under control of a second operating system of said second cluster, said second process being assigned with a second virtual address space which includes a virtual communication area for data transferred from other clusters including said first cluster, said second memory holding a real communication area assigned to said virtual communication area at a position of said second memory determined by said second operating system, and a base address of said real communication area written by said second operating system into said second memory, said base address indicating a top position of said real communication area within said second memory; a network for connecting said first cluster and said second cluster; wherein said first cluster comprises; a send circuit connected to said first processor and said network for transmitting a packet to said second cluster by way of said network, said packet including;
(1) transmission data designated by said first process, (2) process-dependent information predetermined by said second operating system for said second process, and (3) a data offset address indicative of a difference between a base address of said virtual communication area and a virtual write address at which said transmission data is to be written within said second virtual address space; andwherein said second cluster comprises; a receive circuit connected to said network for receiving by way of said network, said transmission dam, said process-dependent information and said dam offset address; a base address read circuit connected to said second memory and said receive circuit and responsive to a received said process-dependent information for generating a read address of a location within said second memory where the base address of the real communication area provided for said second process is held and for reading said base address from the location; an address adder connected to said receive circuit and said read circuit for adding a received said data offset address to a read out said base address to generate a real address of a location within said real communication area at which said transmission data is to be written; and a write circuit connected to said second memory and said address adder for writing, received said transmission dam at a generated said real address of said second memory. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. An inter-process data transmission method in a multiple processor system which includes first and second clusters, and a network for connecting said first and second clusters, said first cluster including at least one first processor and a first storage for holding data and a program to be executed by said first processor and executing at least one first process under control of a first operating system of said first cluster, said first process being assigned with a first virtual address space which includes a first virtual communication area, said second cluster including at least one second processor and a second storage for holding data and a program to be executed by said second processor and executing at least one second process under control of a second operating system of said second cluster, said second process being assigned with a virtual address space which includes a virtual communication area,
said method comprising the steps of: -
allocating, using said first operating system, an area provided within said first memory at a location determined by said first operating system to said first virtual communication area as a real communication area for said first process; allocating, using said second operating system, an area provided within said second memory at a location determined by said second operating system to said second virtual communication area as a real communication area for said second process; writing, using said first process, transmission data within said first virtual communication area, thereby writing said transmission data into said real communication area for said first process; designating, using said first process;
(1) a name of said second process as a name of a destination process, (2) a virtual data read address of said first virtual space from which transmission data is to be read, (3) a length of said transmission data, and (4) a virtual data write address within said second virtual space at which said transmission data is to be written;supplying, using said first cluster, a cluster number predetermined for said second cluster and an identifier predetermined for said real communication area provided for said second process, in response to said designated name of said second process; calculating, using said first cluster, a data offset address indicative of a difference between a base address predetermined for second virtual communication area assigned to said second process and said virtual data write address designated by said first process; translating, using said first cluster, said designated virtual dam read address into a real data read address for said first memory, by means of an address translation table provided by said first operating system in said first memory; reading, using said first cluster, said transmission data from said first memory, based upon said generated real data read address and a designated said length of said transmission data; generating, using said first cluster, a packet including;
(1) the selected cluster number of said second cluster. (2) the selected identifier of said real communication area provided for said second process, (3) a calculated said data offset address, and (4) said transmission data as read out;sending, from said first cluster, said packet to said network; receiving, at said second cluster, by way of said network, said identifier, said data offset address and said transmission data included in said packet; generating, using said second cluster, an address of a location of said second memory at which the base address of the real communication area provided for said second process is held, in response to a received said identifier; adding, using said second cluster, a received said data offset address to a selected said base address to generate a real data write address of one location within said real communication area at which said transmission data is to be written; and writing, using said second cluster, received said transmission data at a generated said real data write address of said second memory, based upon a received length. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14)
-
-
15. A multiple processor system, comprising:
-
a first cluster including at least one first processor and a first storage for holding data and a program executed by said first processor and executing at least one first process under control of a first operation system of said first cluster, said first process being assigned with a first virtual address space, a second cluster including at least one second processor and a second storage for holding data and a program executed by said second processor and executing at least one second process under control of a second operating system of said second cluster, said second process being assigned with a second virtual address space; a network for connecting said first cluster and said second cluster; said first cluster comprising; a send circuit connected to said first processor and said network for transmitting a packet to said second cluster by way of said network, said packet including;
(1) transmission data designated by said first process, (2) a virtual write address designated by said first process as an address of a location at which said transmission data is to be written within said second virtual space, and (3) an origin address of a page table used for address translation of the virtual write address; andsaid second cluster comprising; a receive circuit connected to said network for receiving by way of said network, said transmission data, said virtual write address and said origin address; an address translation circuit connected to said second memory and said receive circuit and responsive to a received said original address for reading the page table held in said second memory and for translating a received said virtual write address into a real write address; a write circuit connected to said second memory and said address translation circuit for writing a received said transmission data at a generated said real write address of said second memory.
-
-
16. A multiple processor system, comprising:
-
a first cluster including at least one first processor and a first storage for holding data and a program executed by said first processor and executing at least one first process under control of a first operating system of said first cluster, said first process being assigned with a first virtual address space; a second cluster including at least one second processor and a second storage for holding data and a program executed by said second processor, and executing at least one second process under control of a second operating system of said second cluster, said second process being assigned with a second virtual address space; a network for connecting said first and second clusters; said first cluster including; a path table provided by said first operating system and held in said first memory, said path table having cluster numbers of other clusters; a cluster number read circuit responsive to a send instruction issued by said first process for reading a cluster number of said second cluster in response to path relation information designated by said send instruction which requires transfer of transmission data to said second process; a data read circuit responsive to a virtual data read address designated by said send instruction for reading transmission data from said first memory; an address translation circuit responsive to said path selection information designated by said send instruction for translating a virtual data write address designated by said send instruction into a real data write address of said second memory at which transmission data is to be written; and a send circuit for transferring a packet to said network, said packet including a read said read cluster number, said transmission data and said real data write address; said second cluster including; a packet receive circuit connected to said network for receiving said packet; and a data write circuit for writing said transmission dam included in a received said packet at a location having said real data write address within said second memory.
-
Specification