Claims
- 1. A method comprising:
storing a plurality of statistics, wherein a statistic component portion for each statistic is stored in each of a plurality of banks of a multi-bank memory; receiving at least one statistical update stream, wherein the at least one statistical update stream includes a plurality of statistical updates, wherein a statistical update includes a statistic identifier and an update operand, wherein received statistical updates are scheduled to produce a scheduled update stream; compiling a set of read operations based on a portion of the scheduled update stream, wherein each read operation corresponds to a scheduled update in the portion of the scheduled update stream, wherein a read operation for a particular scheduled update retrieves a component value of one of the statistic component portions from one of the plurality of banks of the multi-bank memory for a statistic corresponding to the particular scheduled update, wherein the operand for the particular scheduled update is combined with the component value to produce an updated component value, wherein a set of write operations corresponding to the set of read operations is compiled, wherein the set of write operations overwrite component values fetched by the set of read operations with corresponding updated component values produced through combination operations; and issuing statistic requests corresponding to a requested statistic, wherein component values for each component portion of the requested statistic are retrieved from the multi-bank memory, wherein the component values that are retrieved are combined to produce a total statistic value for the requested statistic.
- 2. The method of claim 1, wherein the multi-bank memory is a single SDRAM integrated circuit.
- 3. The method of claim 1, wherein the multi-bank memory is plurality of memory integrated circuits.
- 4. The method of claim 1, wherein the multi-bank memory further comprises a plurality of multi-bank memories, the method further comprising:
using each multi-bank memory for alternating time intervals such that statistics from at least a most recent time interval are maintained while a current set of statistics is being compiled.
- 5. The method of claim 4 further comprising:
allowing concurrent multiple memory operations to the plurality of multi-bank memories.
- 6. The method of claim 1, further comprising:
using a receipt sequenced priority encoder to perform statistical updates in temporal order based on order of receipt.
- 7. The method of claim 6, storing a set of bits for each statistical update receipt interval in a first in first serviced buffer of the receipt sequenced priority encoder, wherein the set of bits indicates from which statistical update stream statistical updates were received for the statistical update receipt interval.
- 8. The method of claim 1, further comprising:
scheduling received statistical updates based on a weighted fair queuing technique, wherein the weighted fair queuing technique schedules received statistical updates based on at least one of: priority level of each statistical update stream, and loading level of each statistical update stream.
- 9. The method of claim 1 further comprising:
buffering a corresponding statistical update stream using at least one stream buffer.
- 10. The method of claim 1 further comprising:
buffering the scheduled update stream using an scheduled update stream buffer.
- 11. The method of claim 1 further comprising:
buffering statistic requests using a statistic request buffer.
- 12. The method of claim 1 further comprising:
storing indications of overflow conditions that result when an updated component value overflows an allocated bit width, wherein overflow conditions are included when the component values are combined in response to a statistic request.
- 13. The method of claim 1, further comprising:
detecting multiple updates to a single statistic and combining the operands of the multiple updates to produce a combined operand that is combined with the component value to produce the updated component value for the single statistic.
- 14. The method of claim 13, wherein the step of detecting multiple updates to the single statistic and combining the operands of the multiple updates is performed using a content addressable memory.
- 15. The method of claim 1, wherein servicing of statistic requests and statistical updates is controlled based on a control block arbitration scheme.
- 16. The method of claim 1, further comprising:
combining the operand for the particular schedule update with the component value to produce the updated component value.
- 17. The method of claim 1, wherein each statistical update is a single command issued by a datapath processor in a communications system.
- 18. The method of claim 17, wherein the plurality of statistics include statistics corresponding to at least one of: packet traffic and cell traffic in the communications system.
- 19. The method of claim 18, wherein the plurality of statistics include statistics corresponding to at least one of: network performance statistics, billing statistics, class of service traffic statistics, discard statistics, and statistics concerning traffic flow along particular paths in the network.
- 20. The method of claim 1, further comprising:
scheduling received statistical updates based on a round-robin scheduling scheme.
- 21. A method for controlling statistic updates, comprising:
receiving statistical updates for a plurality of statistics stored in a multi-bank memory, wherein each bank of the multi-bank memory stores a statistic component portion of at least a portion of the plurality of statistics; prioritizing the statistical updates to produce prioritized statistical updates; executing the prioritized statistical updates, wherein executing a prioritized statistical update modifies one of the statistic component portions in the multi-bank memory; and when a statistic request for a particular statistic is received, combining statistic component portions for the particular statistic to produce a total statistic value.
- 22. The method of claim 21, wherein received statistical updates include a statistic identifier and an update operand.
- 23. The method of claim 22, wherein executing a prioritized statistical update further comprises:
reading a component value corresponding to the one of the statistic component portions from the multi-bank memory; combining the operand of the prioritized statistical update with the component value to produce an updated component value; and storing the updated component value in the multi-bank memory at a location corresponding to the one of the statistic component portions.
- 24. The method of claim 23, wherein prioritizing further comprises prioritizing statistical updates based on order of receipt.
- 25. The method of claim 23, wherein executing the prioritized statistical updates further comprises combining the operands of similar prioritized statistical updates prior to execution, wherein similar prioritized statistical updates are updates directed to a same statistic.
- 26. A statistical update processor, comprising:
a processing module; and memory operably coupled to the processing module, wherein the memory stores operating instructions that, when executed by the processing module, cause the processing module to perform the functions of:
prioritizing statistical updates for a plurality of statistics stored in a multi-bank memory, wherein each bank of the multi-bank memory stores a statistic component portion of at least a portion of the plurality of statistics, wherein prioritizing the statistical updates produces prioritized statistical updates; executing the prioritized statistical updates, wherein executing a prioritized statistical update modifies one of the statistic component portions in the multi-bank memory; and when a statistic request for a particular statistic is received, combining statistic component portions for the particular statistic to produce a total statistic value.
- 27. The processor of claim 26, wherein each of the statistical updates includes a statistic identifier and an update operand, and wherein the memory includes operating instructions that cause the processing module to execute a prioritized statistical update by:
reading a component value corresponding to the one of the statistic component portions from the multi-bank memory; combining the operand of the prioritized statistical update with the component value to produce an updated component value; and storing the updated component value in the multi-bank memory at a location corresponding to the one of the statistic component portions.
- 28. The processor of claim 27, wherein the memory includes operating instructions such that the processing module prioritizes statistical updates based on order of receipt.
- 29. The processor of claim 26, wherein the memory includes operating instructions such that the processor combines the operands of similar prioritized statistical updates prior to execution, wherein similar prioritized statistical updates are updates directed to a same statistic.
RELATED APPLICATIONS
[0001] This application is a division of U.S. patent application Ser. No. 09/401,569, filed Sep. 22, 1999.
Divisions (1)
|
Number |
Date |
Country |
Parent |
09401569 |
Sep 1999 |
US |
Child |
10201766 |
Jul 2002 |
US |