Credit recovery in a credit based flow control system
AssigneeNortel Networks Limited
InventorsDavid Stuart, Markus Wandel, Blake Toplis
Life of this patent
Estimating the term…
Abstract
An apparatus and a method for sender-initiated credit recovery in a closed-loop credit based flow control system, includes assigning a number of credits to a sender unit in the credit based flow control system. The method also includes decrementing a credit count in the sender unit in response to the sender sending data to the receiver and incrementing the credit count in the sender unit in response to receiving returned credits from the receiver unit. The method also includes determining if a loss or gain in the number of credits in the credit based flow control system has occurred and adjusting the credit count based on the determined loss or gain.
Claims21
A method for adjusting a credit count in a credit based flow control system, the credit based flow control system having a credit head end and a credit queue end, the method comprising the steps of:
- assigning an initial credit count of credits in the credit head end, each credit representing a permission to send a unit of data from the credit head end to the credit queue end;
- initializing a credit count to be equal to the initial credit count;
- decrementing the credit count for every unit of data sent from the credit head end to the credit queue end;
- sending a credit return message including a returned credit number, the returned credit number indicating a number of units of data removed from a queue at the credit queue end;
- incrementing the credit count in the credit head end by the returned credit number received from the credit queue end;
- sending a credit check message from the credit head end to the credit queue end;
- initializing a credit owed counter with a number of outstanding credits;
- receiving, at the credit head end, the credit return message including the returned credit number;
- decrementing the credit owed counter based on the returned credit number;
- determining a loss or a gain in the credits used in the credit based flow control system using the credit owed counter and the returned credit number;
- and
- adjusting the credit count based on the loss or the gain.
A credit based flow control system comprising:
- a credit head end and a credit queue end;
- the credit head end comprising:
- a receiver receiving a credit return message including a returned credit number;
- a credit counter initializing a credit count to be equal to a initial credit count of credits, each credit representing a permission to send a unit of data from the credit head end to the credit queue end;
- the credit counter decrementing the credit count for every unit of data sent from the credit head end to the credit queue end and incrementing the credit count by a returned credit number received from the credit queue end;
- a sender sending a credit check message to the credit queue end;
- a credit owed counter initialized with a number of outstanding credits;
- and decremented by the returned credit number;
- the credit queue end comprising:
- a queue receiving units of data from the credit head end;
- a credit return sender sending the credit return message including the returned credit number, the returned credit number indicating a number of units of data removed from the queue;
- wherein a loss or a gain in the credits used in the credit based flow control system is determined using the credit owed counter and the returned credit number;
- and the credit count is adjusted based on the loss or the gain.
A machine readable storage medium comprising a plurality of instructions for causing a computer to:
- assign an initial credit count of credits in a credit head end, each credit representing a permission to send a unit of data from the credit head end to a credit queue end;
- initialize a credit count to be equal to the initial credit count;
- decrement the credit count for every unit of data sent from the credit head end to the credit queue end;
- send a credit return message including a returned credit number, the returned credit number indicating a number of units of data removed from a queue at the credit queue end;
- increment the credit count in the credit head end by the returned credit number received from the credit queue end;
- send a credit check message from the credit head end to the credit queue end;
- initialize a credit owed counter with a number of outstanding credits;
- receive, at the credit head end, the credit return message including the returned credit number;
- decrement the credit owed counter based on the returned credit number;
- determining a loss or a gain in the credits used in the credit based flow control system using the credit owed counter and the returned credit number;
- and
- adjust the credit count based on the loss or the gain.
Dependencies are inferred from the claim text.