Patent ID: 8570916

Claim:
A method for distributing credits associated with a destination client to one or more source clients to manage data packet transmissions between the one or more source clients and the destination client, the method comprising: receiving, at a crossbar unit, a first data packet from a first source client for transmission to the destination client, wherein the first source client is associated with a first source arbiter that includes an first quantity of credits needed to transmit data packets; determining whether at least one credit in the first quantity of credits is available; if at least one credit in the first quantity of credits is not available, then storing the first data packet in a local memory; or if at least one credit in the first quantity of credits is available, then: consuming one credit from the first quantity of credits, transmitting the first data packet from the destination credit management unit to the destination client for storage in a first unit of memory space within the destination client, determining whether at least one credit stored in a second quantity of credits is available for transmission to the first source arbiter, wherein the second quantity of credits comprises a shared credit pool in the destination credit management unit that is shared among the one or more source clients, and if at least one credit in a second quantity of credits is not available, then: not transmitting any credits to the first source arbiter when a credit is unavailable for transmission to the first source arbiter; and adding an identifier associated with the first source client to a waiting client buffer, or, if at least one credit in a second quantity of credits is available, then transmitting a credit from the second quantity of credits to the first source arbiter for storage in the first quantity of credits.