Early credit return for credit-based flow control
AssigneeMicron Technology, Inc.
InventorKirk D. Pospesel
Life of this patent
Estimating the term…
Abstract
A device allocates buffer space for storing data received from another device. The other device has a credit balance corresponding to the amount of buffer space. A sending device reduces its number of credits by a cost of a packet and sends the packet. To ensure that the buffer does not overflow, the sending device spends a credit for each entry in the buffer that could be consumed by the sent data packet. When received data is added to the buffer without consuming a new entry, a response packet that returns a credit is sent to the sending device before the data is read from the buffer. Thus, the sending device is enabled to continue sending data without waiting for the buffer to be read, enabling the communication between the two devices to make more efficient use of the buffer.
Claims20
A system comprising:
- a hardware transceiver configured to perform operations comprising:
- receiving, from a source, a packet comprising a first command;
- a buffer control unit configured to control a buffer and perform operations comprising:
- based on a entry of the buffer that already contains a second command having an available entry:
- storing the first command in the available entry;
- and
- causing the hardware transceiver to transmit, to the source, a packet comprising a credit return that indicates buffer space available for the source.
A method comprising:
- receiving, from a source, a packet comprising a first memory command;
- based on a entry of a buffer that already contains a second memory command having an available entry;
- storing the first command in the available entry;
- and
- transmitting, to the source, a packet comprising a credit return that indicates buffer space available for the source.
A non-transitory machine-readable medium that stores instructions that, when executed by a system, cause the system to perform operations comprising:
- receiving, from a source, a packet comprising a first command;
- based on a entry of a buffer that already contains a second command having an available entry:
- storing the first command in the available entry;
- and
- transmitting, to the source, a packet comprising a credit return that indicates buffer space available for the source.
Dependencies are inferred from the claim text.