Token ID mechanism for network data transfer
First Claim
Patent Images
1. A method performed by a receiving node in a network, comprising:
- the receiving node receiving an indication from the network that a sending node wants to send data to the receiving node, the indication from the sending node including a field for identifying a request for sending data using token identifiers;
the receiving node sending to the sending node a token identifier identifying a memory location on the receiving node, an offset value that is updated when a transfer is split into multiple packets, and a data size for the memory location, the token identifier being a value that acts as an index into a token array, which identifies the memory location, but is not a physical or virtual address, so that the sending node is unaware of the memory location;
the receiving node receiving from the sending node the token identifier and at least a first portion of the data;
writing the data to the receiving node at the memory location;
using a first token identifier array for processing the data, if the data is unexpected, as indicated by a field of the token identifier; and
using a second token identifier array for processing the data, if the data is expected.
5 Assignments
0 Petitions
Accused Products
Abstract
A node in a network that receives data from a data source, such as another node. The receiving node sends a token identifier to the data source and receives data from the data source, along with the token identifier. A token identifier identifies a location in memory on the receiving node, but is not the same as an address in the memory. Thus, a token identifier is preferably neither a physical memory address nor a virtual address.
100 Citations
34 Claims
-
1. A method performed by a receiving node in a network, comprising:
-
the receiving node receiving an indication from the network that a sending node wants to send data to the receiving node, the indication from the sending node including a field for identifying a request for sending data using token identifiers; the receiving node sending to the sending node a token identifier identifying a memory location on the receiving node, an offset value that is updated when a transfer is split into multiple packets, and a data size for the memory location, the token identifier being a value that acts as an index into a token array, which identifies the memory location, but is not a physical or virtual address, so that the sending node is unaware of the memory location; the receiving node receiving from the sending node the token identifier and at least a first portion of the data; writing the data to the receiving node at the memory location; using a first token identifier array for processing the data, if the data is unexpected, as indicated by a field of the token identifier; and using a second token identifier array for processing the data, if the data is expected. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A method performed by an interface of a receiving node in a network between a host, which has a memory, and a network, the method comprising:
-
the interface of the receiving node receiving an indication from a sending node in the network that the sending node wants to send data to the receiving node, wherein the indication includes a field for identifying a request for sending data using token identifiers; the receiving node sending to the sending node a token identifier identifying a memory location on the receiving node, an offset value that is updated when a transfer is split into multiple packets, and a data size for the memory location, wherein the token identifier is a value that acts as an index into a token array, which identifies the memory location, but is not a physical or virtual address, so that the sending node is unaware of the memory location; the interface of the receiving node receiving a packet having at least a first portion of data and a token identifier; extracting the token identifier from the received packet; determining a memory address in the memory of the host in accordance with the token identifier; writing the data to the memory of the host at the determined memory address; using a first token identifier array for processing the data, if the data is unexpected, as indicated by a field of the token identifier; and using a second token identifier array for processing the data, if the data is expected. - View Dependent Claims (23, 24)
-
-
25. An interface to a host in a network, which has a memory, the interface comprising:
-
a token sending unit for sending a token identifier identifying a memory location on the host to a packet sending node in the network, an offset value that is updated when a transfer is split into multiple packets, and a data size for the memory location, the token identifier being a value that acts as an index into a token array, which identifies the memory location, but is not a physical or virtual address, so that the sending node is unaware of the memory location, and before the interface sends the token identifier, the interface receives an indication from the sending node that the sending node wants to send data to the host, and the indication includes a field for identifying a request for sending data using token identifiers; a staging buffer for holding a packet received by the interface from the sending node, the packet received from the sending node containing at least received data and the token identifier; a first token identifier array indexed by the token identifier to yield an address of the memory location, if the data is expected data; a second token identifier array indexed by the token identifier to yield the address of the memory location, if the data is unexpected data, as indicated by a field of the token identifier; and an engine to send the data to the extracted memory location of the host. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33)
-
-
34. A system, comprising:
-
a host system; and an interface to the host system connected to the host system and to a network, the interface including; a module that receives an indication that a sending node in the network wants to send data to the host system, the indication including a field for identifying a request for sending data using token identifiers; a module that sends to the sending node a token identifier identifying a memory location on the host system, an offset value that is updated when a transfer is split into multiple packets, and a data size for the memory location, the token identifier being a value that acts as an index into a token array, which identifies the memory location, but is not a physical or virtual address, so that the sending node is unaware of the memory location; a module that receives, from the sending node, the token identifier and at least a first portion of the data, and a module that writes the data at the memory location; a first token identifier array for processing the data, if the data is unexpected, as indicated by a field of the token identifier; and a second token identifier array for processing the data, if the data is expected.
-
Specification