Controlling Shared Memory
Abstract
In view of the characteristics of distributed applications, the present invention proposes a technical solution for applying a shared memory on an NIC comprising: a shared memory configured to provide shared storage space for a task of a distributed application, and a microcontroller. Furthermore, the present invention provides a computer device that includes the above-mentioned NIC, a method for controlling a read/write operation on a shared memory of a NIC, and a method for invoking the NIC. The use of the technical solution provided in the present invention bypasses the processing of network protocol stack, avoids the time delay introduced by the network protocol stack. The present invention does not need to perform TCP/IP encapsulation on the data packet, thus greatly saving additional packet header and packet tail overheads generated from the TCP/IP layer data encapsulation.
Claims
exact text as granted — not AI-modified1 . A network interface card, comprising:
a shared memory configured to provide shared storage for tasks of distributed applications, wherein said shared memory can be accessed by a plurality of computing nodes executing a same task; and a microcontroller configured to control read/write operations on said shared memory.
2 . The network interface card of claim 1 , wherein said microcontroller is further configured to:
determine whether said shared memory supports a received read/write request; and perform the read/write operation to said shared memory when said shared memory supports the received read/write request.
3 . The network interface card of claim 1 , further comprising:
a command port, wherein (i) said command port is connected with said microcontroller, and (ii) said command port is configured to transmit a control command to the microcontroller.
4 . The network interface card of claim 3 , wherein said control command includes fields for controlling said shared memory to perform one of the following operations: read operation, write operation, allocation operation and release operation.
5 . The network interface card of claim 1 , further comprising:
a state switch; and said microcontroller being further configured to determine whether a shared memory is configured on said network interface card according to said state switch.
6 . The network interface card of claim 5 , wherein a task identification code is stored in said shared memory, and wherein if a shared memory is configured on said network interface card, then said microcontroller is further configured to determine whether said shared memory supports the received read/write request according to said task identification code.
7 . The network interface card of claim 1 , wherein the frame structure of data stored in said shared memory includes an identifier to indicate that said data is targeted at said shared memory.
8 . The network interface card of claim 7 , wherein said identifier is recorded in a type field of a physical layer header of said data.
9 . The network interface card of claim 1 , further comprising:
a network interface card memory configured to buffer the data read/written by said shared memory.
10 . The network interface card of claim 1 , wherein said shared memory is further configured to directly perform the read/write operation with a program buffer outside said network interface card.
11 . A computer device, comprising the network interface card of claim 1 .
12 . A method for controlling a read/write operation on a shared memory of a network interface card, wherein said shared memory is configured to provide shared storage for tasks of a distributed application, and said shared memory is accessed by a plurality of computing nodes executing a same task, said method comprising:
determining whether a local network interface card is configured with a shared memory supporting said read/write operation; and performing the read/write operation to the shared memory on the local network interface card when the local network interface card is configured with the shared memory supporting said read/write operation.
13 . The method of claim 12 , wherein the step of determining whether the local network interface card is configured with the shared memory supporting said read/write operation comprises:
determining whether the local network interface card is configured with the shared memory according to a state switch on the network interface card.
14 . The method of claim 13 , wherein the step of determining whether the local network interface card is configured with the shared memory supporting said read/write operation further comprises:
determining whether the shared memory configured on the local network interface card supports the read/write operation according to a task identification code stored on the shared memory on the local network interface card if the local network interface card is configured with the shared memory.
15 . The method of claim 12 , further comprising:
requesting a shared memory on a remote network interface card to perform the read/write operation when there is no shared memory supporting said read/write operation configured on the local network interface card.
16 . The method of claim 15 , wherein if said read/write operation is a write operation, then said step of requesting a shared memory on a remote network interface card to perform the read/write operation further comprises:
transmitting data to be written to the shared memory on the remote network interface card.
17 . The method of claim 15 , wherein if the read/write operation is a read operation, then said step of requesting a shared memory on a remote network interface card to perform the read/write operation further comprises:
transmitting a data read request to the shared memory on the remote network interface card.
18 . The method of claim 12 , wherein said network interface card further comprises a network interface card memory, and wherein the step of performing the read/write operation on the shared memory on the local network interface card further comprises:
performing the read/write operation on the shared memory on the local network interface card through a buffer of the memory of the local network interface card.
19 . The method of claim 12 , wherein the step of performing the read/write operation on the shared memory on the local network interface card further comprises:
directly performing said read/write operation between the shared memory on the local network interface card and a program buffer outside the local network interface card.
20 . The method of claim 12 , further comprises:
performing physical layer encapsulation on the data to be written if said read/write operation is a write operation.
21 . The method of claim 12 , further comprises:
performing physical layer encapsulation on a program buffer address of the program buffer into which the data to be read out is to be written if said read/write operation is a read operation.
22 . A method for invoking a network interface card, the method comprising:
providing a program buffer of a distributed application; invoking a language runtime through a dedicated interface on the language runtime; invoking a device driver module to perform physical layer encapsulation; and controlling a read/write operation on a shared memory of the network interface card by a method comprising:
determining whether a local network interface card is configured with a shared memory supporting said read/write operation; and
performing the read/write operation to the shared memory on the local network interface card when the local network interface card is configured with the shared memory supporting said read/write operation;
wherein said shared memory is configured to provide shared storage for tasks of a distributed application; and
wherein said shared memory is accessed by a plurality of computing nodes executing a same task.Join the waitlist — get patent alerts
Track US2012221671A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.