Network-on-chip system, method, and computer program product for transmitting messages utilizing a centralized on-chip shared memory switch
First Claim
Patent Images
1. A system comprising:
- a plurality of agents;
at least one message chain, the at least one message chain being coupled to the plurality of agents;
an input queue credit ring and an output queue credit ring; and
a central shared memory switch coupled to the at least one message chain, the central shared memory switch being configured to route messages from a sender agent to a receiver agent, and the central shared memory switch including input queues, output queues, and memory comprising a plurality of banks,wherein the input queue credit ring is configured to transport input credits from the input queues to the plurality of agents, the output queue credit ring is configured to transport output credits from the output queues to the plurality of agents, and the input queue credit ring and the output queue credit ring are configured to recirculate the respective input credits and output credits based on an availability of the plurality of agents to accept the input credits and the output credits from the input queue credit ring and the output queue credit ring, respectively, andwherein the output queues are respectively associated with the plurality of agents, queue entries in the output queues are located in successive banks in the plurality of banks, and the output queues are configured so that at least two banks of the plurality of banks are accessible concurrently.
11 Assignments
0 Petitions
Accused Products
Abstract
A network-on-chip system, method, and computer program product are provided for transmitting messages utilizing a centralized on-chip shared memory switch. In operation, a message is sent from one of a plurality of agents connected on a messaging network. The message is received at a central shared memory switch, the central shared memory switch being in communication with each of the plurality of agents. Further, the message is transmitted from the central shared memory switch to a destination agent, the destination agent being one of the plurality of agents.
27 Citations
22 Claims
-
1. A system comprising:
-
a plurality of agents; at least one message chain, the at least one message chain being coupled to the plurality of agents; an input queue credit ring and an output queue credit ring; and a central shared memory switch coupled to the at least one message chain, the central shared memory switch being configured to route messages from a sender agent to a receiver agent, and the central shared memory switch including input queues, output queues, and memory comprising a plurality of banks, wherein the input queue credit ring is configured to transport input credits from the input queues to the plurality of agents, the output queue credit ring is configured to transport output credits from the output queues to the plurality of agents, and the input queue credit ring and the output queue credit ring are configured to recirculate the respective input credits and output credits based on an availability of the plurality of agents to accept the input credits and the output credits from the input queue credit ring and the output queue credit ring, respectively, and wherein the output queues are respectively associated with the plurality of agents, queue entries in the output queues are located in successive banks in the plurality of banks, and the output queues are configured so that at least two banks of the plurality of banks are accessible concurrently. - View Dependent Claims (2, 3, 4, 5, 6, 7, 19, 20, 21, 22)
-
-
8. A method comprising:
-
sending a message from one of a plurality of agents connected on a messaging network; receiving the message at a central shared memory switch, the central shared memory switch being in communication with each of the plurality of agents; transmitting the message from the central shared memory switch to a destination agent, the destination agent being one of the plurality of agents, wherein the central shared memory switch includes input queues, output queues, and memory comprising a plurality of banks; transporting, using an input queue credit ring, input credits from the input queues to the plurality of agents, wherein the transporting of input credits includes recirculating the input credits to the plurality of agents based on an availability of the plurality of agents to accept the input credits from the input queue credit ring; transporting, using an output queue credit ring, output credits from the output queues to the plurality of agents, wherein the transporting of the output credits includes recirculating the output credits to the plurality of agents based on an availability of the plurality of agents to accept the output credits from the output queue credit ring; and allocating a portion of the memory as output queues respectively associated with the plurality of agents, wherein queue entries in the output queues are located in successive banks in the plurality of banks, and the output queues are configured so that at least two banks of the plurality of banks are accessible concurrently. - View Dependent Claims (9, 10, 11)
-
-
12. A computer program product embodied on a non-transitory computer readable medium, comprising:
-
computer code configured to send a message from one of a plurality of agents connected on a messaging network; computer code configured to receive the message at a central shared memory switch, the central shared memory switch being in communication with each of the plurality of agents; and computer code configured to transmit the message from the central shared memory switch to a destination agent, the destination agent being one of the plurality of agents, wherein the central shared memory switch includes input queues, output queues, and memory comprising a plurality of banks; computer code configured to transport, using an input queue credit ring, input credits from the input queues to the plurality of agents, wherein the transporting of input credits includes recirculating the input credits to the plurality of agents based on an availability of the plurality of agents to accept the input credits from the input queue credit ring; and computer code configured to transport, using an output queue credit ring, output credits from the output queues to the plurality of agents, wherein the transporting of the output credits includes recirculating the output credits to the plurality of agents based on an availability of the plurality of agents to accept the output credits from the output queue credit ring, wherein the output queues are respectively associated with the plurality of agents, queue entries in the output queues are located in successive banks in the plurality of banks, and the output queues are configured so that at least two banks of the plurality of banks are accessible concurrently. - View Dependent Claims (13, 14, 15, 16, 17, 18)
-
Specification