Multi-processor communication framework using TCP/IP architecture
AssigneeAmazon Technologies, Inc.
InventorsPraveen Chebolu, Venkateshwar Junnuthulla, Kranthi Thimmapuram, Shanthini Chetlur Kannan
Life of this patent
Estimating the term…
Abstract
A multi-processor communication framework (MCF) based on Transmission Control Protocol/Internet Protocol (TCP/IP) architecture is defined that can be used for inter-processor communication between heterogenous processing nodes. The MCF includes an application layer, a transport layer, a network layer, and an inter-processor communication (IPC) layer for each processing node. The IPC layer can be used to facilitate data transfer between two processing nodes via a physical channel within an electronic device, or through shared memory. The MCF can support multicast, broadcast, unicast, and zero-copy features like the TCP/IP stack.
Claims20
A method for inter-processor communication within a system-on-a-chip (SoC), the method comprising:
- initializing a socket at a sender processing node within the SoC to transfer application data associated with a service to a recipient processing node within the SoC by binding the socket to a source port that is designated for the service at the sender processing node;
- performing a transmission control protocol handshake with the recipient processing node to establish a connection between the sender processing node and the recipient processing node in the SoC;
- generating a set of inter-processor packets that each include a source address that is a static Internet Protocol (IP) address of the sender processing node, a destination address that is a static IP address of the recipient processing node, a first transmission control protocol header used for inter-processor communications within the SoC and including the source port of the sender processing node and a destination port of the recipient processing node, and a payload containing a portion of the application data;
- providing the set of inter-processor packets to an inter-processor communication channel that transfers the set of inter-processor packets to the recipient processing node within the SoC;
- and
- generating a network packet having a second transport protocol layer header that encapsulates an entire inter-processor packet as payload to transmit the payload to an external component on a network.
A computing device comprising:
- a system-on-chip (SoC) including:
- a plurality of processing nodes within the SoC;
- and
- an inter-processor communication channel within the SoC coupling the plurality of processing nodes,
- wherein each of the plurality of processing nodes within the SoC is associated with an Internet Protocol (IP) address,
- wherein each of the plurality of processing nodes within the SoC communicates with each other via the inter-processor communication channel using inter-processor packets, each of the inter-processor packets having a first IP address identifying a sender processing node, a second IP address identifying a recipient processing node, a first transport protocol layer header used for inter-processor communications within the SoC, and a data payload, and
- wherein communication of an inter-processor packet is performed by selecting between transmitting the inter-processor packet on the inter-processor communication channel when the inter-processor packet is being communicated to another processing node within the SoC, and encapsulating the inter-processor packet as payload in a network packet having a second transport protocol layer header when communicating the inter-processor packet to an external component on a network.
A system-on-a-chip (SoC) comprising:
- an inter-processor communication channel within the SoC;
- a processing unit within the SoC and coupled to the inter-processor communication channel;
- and
- a memory coupled to the processing unit and storing code which, when executed by the processing unit, causes the processing unit to perform operations including:
- initializing a socket to transfer data associated with a service to a destination processing unit via the inter-processor communication channel by binding the socket to a logical port designated for the service;
- and
- generating an inter-processor packet that includes a first transport protocol layer header used for inter-processor communications within the SoC, and a payload containing the data,
- wherein communication of the inter-processor packet is performed by selecting between providing the inter-processor packet to the inter-processor communication channel when communicating the inter-processor packet to to a destination within the SoC, and encapsulating the inter-processor packet as payload in a network packet having a second transport protocol layer header when communicating the inter-processor packet to an external component on a network.
Dependencies are inferred from the claim text.