Buffer management in packet switched fabric devices
First Claim
1. A buffer management system comprising:
- a plurality of requesters having a plurality of request signals a resource having a request completed signal, and an arbiter comprising;
a counter having;
an input coupled to said request completed signal, and an output asserting a priority state signal in response thereto;
a priority and request decoder having;
an input coupled to said priority state signal, an input coupled to said plurality of request signals, and an output asserting up to one of a plurality of acknowledge signals in response to at least one asserted said plurality of request signals.
0 Assignments
0 Petitions
Accused Products
Abstract
A buffer management system for cooperating with a packet based switching system is proposed. The purpose of this system is to reduce traffic congestion, ameliorate its effects, provide fairness to each data source, and to increase functionality while respecting advantageous system characteristics. Fabric output buffers include an arbitration function, a quality of service function, and are associated with individual routing tables. The system uses shallow logic that allows for single clock cycle operation even at high clock speeds. In order to provide for system control of bandwidth, sources with bandwidth practices counter to system interests are addressed. Where there is a conflict of sources over a resource, the buffer management system arbitrates traffic to resolve conflicts in a timely manner while fairly allocating traffic share using a weighted round robin arbitration scheme.
34 Citations
6 Claims
-
1. A buffer management system comprising:
-
a plurality of requesters having a plurality of request signals a resource having a request completed signal, and an arbiter comprising;
a counter having;
an input coupled to said request completed signal, and an output asserting a priority state signal in response thereto;
a priority and request decoder having;
an input coupled to said priority state signal, an input coupled to said plurality of request signals, and an output asserting up to one of a plurality of acknowledge signals in response to at least one asserted said plurality of request signals. - View Dependent Claims (2)
-
-
3. A method for queuing data packets of various priority levels in a buffer management system comprising an output port, a plurality of data packet memories, a corresponding plurality of validity flags, a corresponding plurality of priority tags, said method comprising:
-
Storing a head pointer, and a tail pointer Writing incoming said data packets to the memory array with the steps;
i) Locating one available of said plurality of data packet memories determined to be the one;
a) having an invalid corresponding one of said plurality of validity flags. b) Being beyond the tail pointer ii) Recording said incoming data packets in said available data packet memories. iii) Marking said corresponding one of plurality of validity flags valid. iv) Recording said data packets'"'"' corresponding priority level in said available data packet memory corresponding priority tag v) Determining if said available data packet memory is beyond said head pointer and vi) If so, pointing said write head pointer at said available said data packet memory and reading outgoing said data packets in the memory array with the steps;
i) Locating the next outgoing said data packet memories determined to be;
a) Between, inclusively, said tail pointer and said head pointer, b) having a valid corresponding one of said plurality of validity flags, c) Having no other said data packet memories with both a corresponding priority tag recording a greater said priority level and also fulfills a) and b), and d) Having no other said data packet memories that is both nearer the tail pointer and fulfills a) and b) and c) ii) Asserting said outgoing data packets on said output port iii) Marking said corresponding one of said plurality of validity flags invalid. iv) Determining if in said next outgoing data packet memory corresponds to said tail pointer and v) If so, pointing said tail pointer at the nearest one of said plurality of data packet memories toward the head pointer and with a valid corresponding one of said plurality of validity flags. - View Dependent Claims (4)
-
-
5. A method for queuing data packets in a buffer management system having an addressed array of data packet memories, and a plurality of address stacks, said method comprising the actions:
-
writing incoming said data packets said writing comprising the steps of;
1) Popping top addresses off a first said address stack, 2) Writing said incoming data packets to said addressed array at said top addresses, 3) And Pushing said top addresses onto the top of a second said address stack, and Reading outgoing said data packets said reading comprising the steps of;
1) Reading selected addresses from said second said address stack, 2) Reading said incoming data packets from said addressed array at said selected addresses, 3) And Pushing said selected addresses onto the top of said first said address stack, - View Dependent Claims (6)
-
Specification